Index: components/crash/content/app/crashpad_mac.h |
diff --git a/components/crash/content/app/crashpad_mac.h b/components/crash/content/app/crashpad_mac.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3e84ca67f226757d7ec598c8498ea012cfba08c2 |
--- /dev/null |
+++ b/components/crash/content/app/crashpad_mac.h |
@@ -0,0 +1,73 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_MAC_H_ |
+#define COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_MAC_H_ |
+ |
+#include <time.h> |
+ |
+#include <string> |
+#include <vector> |
+ |
+namespace crash_reporter { |
+ |
+// Initializes Crashpad in a way that is appropriate for initial_client and |
+// process_type. |
+// |
+// If initial_client is true, this starts crashpad_handler and sets it as the |
+// exception handler. Child processes will inherit this exception handler, and |
+// should specify false for this parameter. Although they inherit the exception |
+// handler, child processes still need to call this function to perform |
+// additional initialization. |
+// |
+// If process_type is empty, initialization will be done for the browser |
+// process. The browser process performs additional initialization of the crash |
+// report database. The browser process is also the only process type that is |
+// eligible to have its crashes forwarded to the system crash report handler (in |
+// release mode only). Note that when process_type is empty, initial_client must |
+// be true. |
+// |
+// process_type may be non-empty with initial_client set to true. This indicates |
+// that an exception handler has been inherited but should be discarded in favor |
+// of a new Crashpad handler. This configuration should be used infrequently. It |
+// is provided to allow an install-from-.dmg relauncher process to disassociate |
+// from an old Crashpad handler so that after performing an installation from a |
+// disk image, the relauncher process may unmount the disk image that contains |
+// its inherited crashpad_handler. This is only supported when initial_client is |
+// true and process_type is "relauncher". |
+void InitializeCrashpad(bool initial_client, const std::string& process_type); |
+ |
+// Enables or disables crash report upload. This is a property of the Crashpad |
+// database. In a newly-created database, uploads will be disabled. This |
+// function only has an effect when called in the browser process. Its effect is |
+// immediate and applies to all other process types, including processes that |
+// are already running. |
+void SetUploadsEnabled(bool enabled); |
+ |
+// Determines whether uploads are enabled or disabled. This information is only |
+// available in the browser process. |
+bool GetUploadsEnabled(); |
+ |
+struct UploadedReport { |
+ std::string local_id; |
+ std::string remote_id; |
+ time_t creation_time; |
+}; |
+ |
+// Obtains a list of reports uploaded to the collection server. This function |
+// only operates when called in the browser process. All reports in the Crashpad |
+// database that have been successfully uploaded will be included in this list. |
+// The list will be sorted in descending order by report creation time (newest |
+// reports first). |
+// |
+// TODO(mark): The about:crashes UI expects to show only uploaded reports. If it |
+// is ever enhanced to work well with un-uploaded reports, those should be |
+// returned as well. Un-uploaded reports may have a pending upload, may have |
+// experienced upload failure, or may have been collected while uploads were |
+// disabled. |
+void GetUploadedReports(std::vector<UploadedReport>* uploaded_reports); |
+ |
+} // namespace crash_reporter |
+ |
+#endif // COMPONENTS_CRASH_CONTENT_APP_CRASHPAD_MAC_H_ |