Source code

Revision control

Copy as Markdown

Other Tools

# 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, "r") as src:
for l in src.readlines():
for id, value in subst:
if id in l:
l = l.replace(id, value)
o.write(l)