Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ios / chrome / browser / crash_report / breakpad_helper.h
blob0167b5cdb63128749607e6ae93289196bf78e89e
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
3 // found in the LICENSE file.
5 #ifndef IOS_CHROME_BROWSER_CRASH_REPORT_BREAKPAD_HELPER_H_
6 #define IOS_CHROME_BROWSER_CRASH_REPORT_BREAKPAD_HELPER_H_
8 #include <string>
10 @class NSString;
12 namespace breakpad_helper {
14 // Starts the crash handlers. This must be run as soon as possible to catch
15 // early crashes.
16 void Start(const std::string& channel_name);
18 // Enables/Disables crash handling.
19 void SetEnabled(bool enabled);
21 // Enable/Disable uploading crash reports.
22 void SetUploadingEnabled(bool enabled);
24 // Returns true if uploading crash reports is enabled.
25 bool IsUploadingEnabled();
27 // Cleans up all stored crash reports.
28 void CleanupCrashReports();
30 // Add a key/value pair the next crash report. If async is false, this function
31 // will wait until the key is registered before returning.
32 void AddReportParameter(NSString* key, NSString* value, bool async);
34 // Remove the key/value pair associated to key from the next crash report.
35 void RemoveReportParameter(NSString* key);
37 // Returns the number of crash reports waiting to send to the server. This
38 // function will wait for an operation to complete on a background thread.
39 int GetCrashReportCount();
41 // Gets the number of crash reports on a background thread and invokes
42 // |callback| with the result when complete.
43 void GetCrashReportCount(void (^callback)(int));
45 // Check if there is currently a crash report to upload. This function will wait
46 // for an operation to complete on a background thread.
47 bool HasReportToUpload();
49 // Sets a key if |background| is true, unset if false. This will allow tracking
50 // of crashes that occur when the app is backgrounded.
51 void SetCurrentlyInBackground(bool background);
53 // Sets a key if |signedIn| is true, unset if false. The key indicates that the
54 // user is signed-in.
55 void SetCurrentlySignedIn(bool signedIn);
57 // Sets a key to indicate the number of memory warnings the application has
58 // received over its lifetime, or unset the key if the count is zero.
59 void SetMemoryWarningCount(int count);
61 // Sets a key indicating a memory warning is deemed to be in progress (if value
62 // is 'true'), otherwise remove the key.
63 void SetMemoryWarningInProgress(bool value);
65 // Sets a key indicating the current free memory amount in KB. 0 does not remove
66 // the key as getting no memory is important information.
67 void SetCurrentFreeMemoryInKB(int value);
69 // Sets a key indicating the current free disk space in KB. 0 does not remove
70 // the key as getting no free disk space is important information.
71 void SetCurrentFreeDiskInKB(int value);
73 // Sets a key indicating application is using Flywheel Data Reduction Proxy.
74 void SetDataReductionProxyIsEnabled(bool value);
76 // Increases a key indicating the number of PDF tabs opened. If value is TRUE,
77 // the counter is increased. If value is FALSE, the counter is decreased. If
78 // counter falls to 0, the entry is removed. This function does not keep
79 // previous state. If SetCurrentTabIsPDF is called twice with TRUE, the counter
80 // will be incremented twice.
81 void SetCurrentTabIsPDF(bool value);
83 // Sets a key in browser_state dictionary to store the device orientation.
84 // Each values is 1 digit: first is the UI orientation from the Foundation
85 // UIInterfaceOrientation enum (values decimal from 1 to 4) and the second is
86 // the device orientation with values from the Foundation UIDeviceOrientation
87 // enum (values decimal from 0 to 7).
88 void SetCurrentOrientation(int statusBarOrientation, int deviceOrientation);
90 // Sets a key in browser to store the playback state of media player (audio or
91 // video). This function records a new start. This function is called for each
92 // stream in the media (once or twice for audio, two or three times for video).
93 void MediaStreamPlaybackDidStart();
95 // Sets a key in browser to store the playback state of media player (audio or
96 // video). This function records a stop or pause. This function must be called
97 // the same number of times as MediaStreamPlaybackDidStart.
98 void MediaStreamPlaybackDidStop();
100 // Informs the crash report helper that crash restoration is about to begin.
101 void WillStartCrashRestoration();
103 // Starts uploading crash reports. Sets the upload interval to 1 second, and
104 // sets a key in uploaded reports to allow tracking of reports that are uploaded
105 // in recovery mode.
106 void StartUploadingReportsInRecoveryMode();
108 // Resets the Breakpad configuration from the main bundle.
109 void RestoreDefaultConfiguration();
111 } // namespace breakpad_helper
113 #endif // IOS_CHROME_BROWSER_CRASH_REPORT_BREAKPAD_HELPER_H_