1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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)
|