OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ | 5 #ifndef COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ |
6 #define COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ | 6 #define COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ |
7 | 7 |
8 #include <time.h> | 8 #include <time.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
11 #include <string> | 11 #include <string> |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/files/file_path.h" | 14 #include "base/files/file_path.h" |
15 #include "third_party/kasko/kasko_features.h" | |
16 | |
17 #if BUILDFLAG(ENABLE_KASKO) | |
18 #include "base/process/process.h" | |
19 #include "syzygy/kasko/api/crash_key.h" | |
20 #endif // BUILDFLAG(ENABLE_KASKO) | |
21 | 15 |
22 namespace crash_reporter { | 16 namespace crash_reporter { |
23 | 17 |
24 // Initializes Crashpad in a way that is appropriate for initial_client and | 18 // Initializes Crashpad in a way that is appropriate for initial_client and |
25 // process_type. | 19 // process_type. |
26 // | 20 // |
27 // If initial_client is true, this starts crashpad_handler and sets it as the | 21 // If initial_client is true, this starts crashpad_handler and sets it as the |
28 // exception handler. Child processes will inherit this exception handler, and | 22 // exception handler. Child processes will inherit this exception handler, and |
29 // should specify false for this parameter. Although they inherit the exception | 23 // should specify false for this parameter. Although they inherit the exception |
30 // handler, child processes still need to call this function to perform | 24 // handler, child processes still need to call this function to perform |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 ReportUploadState state; | 80 ReportUploadState state; |
87 }; | 81 }; |
88 | 82 |
89 // Obtains a list of reports uploaded to the collection server. This function | 83 // Obtains a list of reports uploaded to the collection server. This function |
90 // only operates when called in the browser process. All reports in the Crashpad | 84 // only operates when called in the browser process. All reports in the Crashpad |
91 // database that have been successfully uploaded will be included in this list. | 85 // database that have been successfully uploaded will be included in this list. |
92 // The list will be sorted in descending order by report creation time (newest | 86 // The list will be sorted in descending order by report creation time (newest |
93 // reports first). | 87 // reports first). |
94 void GetReports(std::vector<Report>* reports); | 88 void GetReports(std::vector<Report>* reports); |
95 | 89 |
96 #if BUILDFLAG(ENABLE_KASKO) | |
97 // Returns a copy of the current crash keys for Kasko. | |
98 void GetCrashKeysForKasko(std::vector<kasko::api::CrashKey>* crash_keys); | |
99 | |
100 // Reads the annotations for the executable module for |process| and puts them | |
101 // into |crash_keys|. | |
102 void ReadMainModuleAnnotationsForKasko( | |
103 const base::Process& process, | |
104 std::vector<kasko::api::CrashKey>* crash_keys); | |
105 #endif // BUILDFLAG(ENABLE_KASKO) | |
106 | |
107 namespace internal { | 90 namespace internal { |
108 | 91 |
109 #if defined(OS_WIN) | 92 #if defined(OS_WIN) |
110 // Returns platform specific annotations. This is broken out on Windows only so | 93 // Returns platform specific annotations. This is broken out on Windows only so |
111 // that it may be reused by GetCrashKeysForKasko. | 94 // that it may be reused by GetCrashKeysForKasko. |
112 void GetPlatformCrashpadAnnotations( | 95 void GetPlatformCrashpadAnnotations( |
113 std::map<std::string, std::string>* annotations); | 96 std::map<std::string, std::string>* annotations); |
114 #endif // defined(OS_WIN) | 97 #endif // defined(OS_WIN) |
115 | 98 |
116 // The platform-specific portion of InitializeCrashpad(). | 99 // The platform-specific portion of InitializeCrashpad(). |
117 // Returns the database path, if initializing in the browser process. | 100 // Returns the database path, if initializing in the browser process. |
118 base::FilePath PlatformCrashpadInitialization(bool initial_client, | 101 base::FilePath PlatformCrashpadInitialization(bool initial_client, |
119 bool browser_process, | 102 bool browser_process, |
120 bool embedded_handler); | 103 bool embedded_handler); |
121 | 104 |
122 } // namespace internal | 105 } // namespace internal |
123 | 106 |
124 } // namespace crash_reporter | 107 } // namespace crash_reporter |
125 | 108 |
126 #endif // COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ | 109 #endif // COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_H_ |
OLD | NEW |