Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / ios / chrome / browser / crash_loop_detection_util.h
blob0d8118ba81c7b922af8c5e07175e7fb89774fce3
1 // Copyright 2013 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_LOOP_DETECTION_UTIL_H_
6 #define IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_
8 namespace crash_util {
10 // Returns the number of consecutive failed startups ('instant' crashes) prior
11 // to this one. This method always returns the number of prior failures even
12 // after calls to increment or reset the value.
13 int GetFailedStartupAttemptCount();
15 // Increases the failed startup count. This should be called immediately after
16 // startup, so that if there is a crash, it is recorded.
17 // If |flush_immediately| is true, the value will be persisted immediately. If
18 // |flush_immediately| is false, this should be followed by a call to
19 // [[NSUserDefaults standardUserDefaults] synchronize]. This is optional to
20 // allow coallescing of the potentially expensive call during startup.
21 void IncrementFailedStartupAttemptCount(bool flush_immediately);
23 // Resets the failed startup count. This should be called once there is some
24 // indication the user isn't in a crash loop (e.g., some amount of time has
25 // elapsed, or some deliberate user action has been taken).
26 void ResetFailedStartupAttemptCount();
28 } // namespace crash_util
30 #endif // IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_