diff options
Diffstat (limited to 'toolkit/components/crashes/gen_CrashManager.py')
-rw-r--r-- | toolkit/components/crashes/gen_CrashManager.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/toolkit/components/crashes/gen_CrashManager.py b/toolkit/components/crashes/gen_CrashManager.py new file mode 100644 index 0000000000..7c0ba8ab90 --- /dev/null +++ b/toolkit/components/crashes/gen_CrashManager.py @@ -0,0 +1,55 @@ +# 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) |