55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from geckoprocesstypes import process_types
|
|
|
|
|
|
def process_name(string_name):
|
|
if string_name == "default":
|
|
string_name = "main"
|
|
if string_name == "tab":
|
|
string_name = "content"
|
|
return string_name
|
|
|
|
|
|
def gen_process_map():
|
|
kIdentifier = "/* SUBST: CRASH_MANAGER_PROCESS_MAP */"
|
|
crashManagerMap = """
|
|
processTypes: {"""
|
|
|
|
for p in process_types:
|
|
crashManagerMap += """
|
|
// A crash in the %(procname)s process.
|
|
%(proctype)d: "%(procname)s",""" % {
|
|
"proctype": p.enum_value,
|
|
"procname": process_name(p.string_name),
|
|
}
|
|
crashManagerMap += """
|
|
},"""
|
|
|
|
return (kIdentifier, crashManagerMap)
|
|
|
|
|
|
def gen_process_pings():
|
|
kIdentifier = "/* SUBST: CRASH_MANAGER_PROCESS_PINGS */"
|
|
crashManagerPing = ""
|
|
|
|
for p in process_types:
|
|
crashManagerPing += """
|
|
"%(proctype)s": %(crashping)s,""" % {
|
|
"proctype": process_name(p.string_name),
|
|
"crashping": "true" if p.crash_ping else "false",
|
|
}
|
|
|
|
return (kIdentifier, crashManagerPing)
|
|
|
|
|
|
def main(o, crashManager):
|
|
subst = [gen_process_map(), gen_process_pings()]
|
|
with open(crashManager) as src:
|
|
for l in src.readlines():
|
|
for id, value in subst:
|
|
if id in l:
|
|
l = l.replace(id, value)
|
|
o.write(l)
|