OLD | NEW |
---|---|
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "android_webview/common/crash_reporter/crash_keys.h" | 5 #include "android_webview/common/crash_reporter/crash_keys.h" |
6 | 6 |
7 #include "base/debug/crash_logging.h" | 7 #include "base/debug/crash_logging.h" |
8 #include "components/crash/content/app/breakpad_linux.h" | |
8 #include "components/crash/core/common/crash_keys.h" | 9 #include "components/crash/core/common/crash_keys.h" |
9 | 10 |
10 using namespace crash_keys; | 11 using namespace crash_keys; |
11 | 12 |
12 namespace android_webview { | 13 namespace android_webview { |
13 namespace crash_keys { | 14 namespace crash_keys { |
14 | 15 |
16 const char kActiveURL[] = "url-chunk"; | |
17 | |
18 const char kFontKeyName[] = "font_key_name"; | |
19 | |
20 const char kShutdownType[] = "shutdown-type"; | |
21 const char kBrowserUnpinTrace[] = "browser-unpin-trace"; | |
22 | |
15 const char kGPUDriverVersion[] = "gpu-driver"; | 23 const char kGPUDriverVersion[] = "gpu-driver"; |
16 const char kGPUPixelShaderVersion[] = "gpu-psver"; | 24 const char kGPUPixelShaderVersion[] = "gpu-psver"; |
17 const char kGPUVertexShaderVersion[] = "gpu-vsver"; | 25 const char kGPUVertexShaderVersion[] = "gpu-vsver"; |
18 const char kGPUVendor[] = "gpu-gl-vendor"; | 26 const char kGPUVendor[] = "gpu-gl-vendor"; |
19 const char kGPURenderer[] = "gpu-gl-renderer"; | 27 const char kGPURenderer[] = "gpu-gl-renderer"; |
20 | 28 |
29 const char kInputEventFilterSendFailure[] = "input-event-filter-send-failure"; | |
30 | |
31 const char kViewCount[] = "view-count"; | |
32 | |
33 const char kZeroEncodeDetails[] = "zero-encode-details"; | |
34 | |
21 size_t RegisterWebViewCrashKeys() { | 35 size_t RegisterWebViewCrashKeys() { |
22 base::debug::CrashKey fixed_keys[] = { | 36 base::debug::CrashKey fixed_keys[] = { |
23 { kGPUDriverVersion, kSmallSize }, | 37 {"AW_WHITELISTED_DEBUG_KEY", kSmallSize}, |
24 { kGPUPixelShaderVersion, kSmallSize }, | 38 {"AW_NONWHITELISTED_DEBUG_KEY", kSmallSize}, |
25 { kGPUVertexShaderVersion, kSmallSize }, | 39 {kClientId, kSmallSize}, |
26 { kGPUVendor, kSmallSize }, | 40 {kChannel, kSmallSize}, |
27 { kGPURenderer, kSmallSize }, | 41 {kActiveURL, kLargeSize}, |
42 {kNumVariations, kSmallSize}, | |
43 {kVariations, kHugeSize}, | |
44 {kShutdownType, kSmallSize}, | |
45 {kBrowserUnpinTrace, kMediumSize}, | |
46 {kGPUDriverVersion, kSmallSize}, | |
47 {kGPUPixelShaderVersion, kSmallSize}, | |
48 {kGPUVertexShaderVersion, kSmallSize}, | |
49 {kGPUVendor, kSmallSize}, | |
50 {kGPURenderer, kSmallSize}, | |
28 | 51 |
29 // content/: | 52 // content/: |
30 { "bad_message_reason", kSmallSize }, | 53 {"bad_message_reason", kSmallSize}, |
31 { "discardable-memory-allocated", kSmallSize }, | 54 {"discardable-memory-allocated", kSmallSize}, |
32 { "discardable-memory-free", kSmallSize }, | 55 {"discardable-memory-free", kSmallSize}, |
33 { "mojo-message-error", kMediumSize }, | 56 {kFontKeyName, kSmallSize}, |
34 { "total-discardable-memory-allocated", kSmallSize }, | 57 {"mojo-message-error", kMediumSize}, |
58 {"ppapi_path", kMediumSize}, | |
59 {"subresource_url", kLargeSize}, | |
60 {"total-discardable-memory-allocated", kSmallSize}, | |
61 {kInputEventFilterSendFailure, kSmallSize}, | |
62 {kBug464926CrashKey, kSmallSize}, | |
63 {kViewCount, kSmallSize}, | |
64 | |
65 // media/: | |
66 {kZeroEncodeDetails, kSmallSize}, | |
67 | |
68 // gin/: | |
69 {"v8-ignition", kSmallSize}, | |
70 | |
71 // sandbox/: | |
72 {"seccomp-sigsys", kMediumSize}, | |
73 | |
74 // Temporary for http://crbug.com/575245. | |
75 {"swapout_frame_id", kSmallSize}, | |
76 {"swapout_proxy_id", kSmallSize}, | |
77 {"swapout_view_id", kSmallSize}, | |
78 {"commit_frame_id", kSmallSize}, | |
79 {"commit_proxy_id", kSmallSize}, | |
80 {"commit_view_id", kSmallSize}, | |
81 {"commit_main_render_frame_id", kSmallSize}, | |
82 {"newproxy_proxy_id", kSmallSize}, | |
83 {"newproxy_view_id", kSmallSize}, | |
84 {"newproxy_opener_id", kSmallSize}, | |
85 {"newproxy_parent_id", kSmallSize}, | |
86 {"rvinit_view_id", kSmallSize}, | |
87 {"rvinit_proxy_id", kSmallSize}, | |
88 {"rvinit_main_frame_id", kSmallSize}, | |
89 {"initrf_frame_id", kSmallSize}, | |
90 {"initrf_proxy_id", kSmallSize}, | |
91 {"initrf_view_id", kSmallSize}, | |
92 {"initrf_main_frame_id", kSmallSize}, | |
93 {"initrf_view_is_live", kSmallSize}, | |
94 | |
95 // Temporary for https://crbug.com/591478. | |
96 {"initrf_parent_proxy_exists", kSmallSize}, | |
97 {"initrf_render_view_is_live", kSmallSize}, | |
98 {"initrf_parent_is_in_same_site_instance", kSmallSize}, | |
99 {"initrf_parent_process_is_live", kSmallSize}, | |
100 {"initrf_root_is_in_same_site_instance", kSmallSize}, | |
101 {"initrf_root_is_in_same_site_instance_as_parent", kSmallSize}, | |
102 {"initrf_root_process_is_live", kSmallSize}, | |
103 {"initrf_root_proxy_is_live", kSmallSize}, | |
104 | |
105 // Temporary for https://crbug.com/626802. | |
106 {"newframe_routing_id", kSmallSize}, | |
107 {"newframe_proxy_id", kSmallSize}, | |
108 {"newframe_opener_id", kSmallSize}, | |
109 {"newframe_parent_id", kSmallSize}, | |
110 {"newframe_widget_id", kSmallSize}, | |
111 {"newframe_widget_hidden", kSmallSize}, | |
112 {"newframe_replicated_origin", kSmallSize}, | |
113 {"newframe_oopifs_possible", kSmallSize}, | |
114 | |
115 // Temporary for https://crbug.com/630103. | |
116 {"origin_mismatch_url", kLargeSize}, | |
117 {"origin_mismatch_origin", kMediumSize}, | |
118 {"origin_mismatch_transition", kSmallSize}, | |
119 {"origin_mismatch_redirects", kSmallSize}, | |
120 {"origin_mismatch_same_page", kSmallSize}, | |
121 | |
122 // Temporary for https://crbug.com/612711. | |
123 {"aci_wrong_sp_extension_id", kSmallSize}, | |
124 | |
125 // Temporary for https://crbug.com/668633. | |
126 {"swdh_set_hosted_version_worker_pid", kSmallSize}, | |
127 {"swdh_set_hosted_version_host_pid", kSmallSize}, | |
128 {"swdh_set_hosted_version_is_new_process", kSmallSize}, | |
129 {"swdh_set_hosted_version_restart_count", kSmallSize}, | |
35 }; | 130 }; |
36 | 131 |
132 // This dynamic set of keys is used for sets of key value pairs when gathering | |
133 // a collection of data, like command line switches or extension IDs. | |
37 std::vector<base::debug::CrashKey> keys(fixed_keys, | 134 std::vector<base::debug::CrashKey> keys(fixed_keys, |
38 fixed_keys + arraysize(fixed_keys)); | 135 fixed_keys + arraysize(fixed_keys)); |
39 | 136 |
137 GetCrashKeysForCommandLineSwitches(&keys); | |
138 | |
40 return base::debug::InitCrashKeys(&keys.at(0), keys.size(), kChunkMaxLength); | 139 return base::debug::InitCrashKeys(&keys.at(0), keys.size(), kChunkMaxLength); |
41 } | 140 } |
141 | |
142 const char* WHITE_LISTED_WEBVIEW_CRASH_KEYS[] = { | |
Robert Sesek
2017/03/02 22:29:39
You can also move this into GetWhiteListedWebViewC
Robert Sesek
2017/03/02 22:29:39
Naming: Globals in C++ are kCamelCase.
Robert Sesek
2017/03/02 22:29:40
Can this be even more const (const char* const) ?
gsennton
2017/03/03 00:09:32
If I move this inside GetWhiteListedWebViewCrashKe
| |
143 "AW_WHITELISTED_DEBUG_KEY", kGPUDriverVersion, kGPUPixelShaderVersion, | |
Robert Sesek
2017/03/02 22:29:39
I know this was probably clang-format's doing, but
gsennton
2017/03/03 00:09:32
Awesome! I didn't know we had this.
| |
144 kGPUVertexShaderVersion, kGPUVendor, kGPURenderer, | |
145 | |
146 // content/: | |
147 "bad_message_reason", "discardable-memory-allocated", | |
148 "discardable-memory-free", "mojo-message-error-1", "mojo-message-error-2", | |
149 "mojo-message-error-3", "mojo-message-error-4", | |
150 "total-discardable-memory-allocated", NULL}; | |
Robert Sesek
2017/03/02 22:29:39
nullptr
gsennton
2017/03/03 00:09:32
Done.
| |
151 | |
152 const char** GetWhiteListedWebViewCrashKeys() { | |
153 return WHITE_LISTED_WEBVIEW_CRASH_KEYS; | |
42 } | 154 } |
43 | 155 |
156 void InitCrashKeysForWebViewTesting() { | |
157 breakpad::InitCrashKeysForTesting(); | |
158 } | |
159 | |
160 void SetCrashKeyValue(const std::string& key, const std::string& value) { | |
Robert Sesek
2017/03/02 22:29:40
What's the point of this function?
gsennton
2017/03/03 00:09:32
Ooops! To ensure you're awake of course ;)
| |
161 base::debug::SetCrashKeyValue(key, value); | |
162 } | |
Robert Sesek
2017/03/02 22:29:40
nit: blank line after
gsennton
2017/03/03 00:09:32
Done.
| |
44 } // namespace crash_keys | 163 } // namespace crash_keys |
164 | |
165 } // namespace android_webview | |
OLD | NEW |