summaryrefslogtreecommitdiffstats
path: root/toolkit/components/crashes/gen_CrashManager.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/crashes/gen_CrashManager.py')
-rw-r--r--toolkit/components/crashes/gen_CrashManager.py55
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)