summaryrefslogtreecommitdiffstats
path: root/ios/chrome/browser/crash_loop_detection_util.h
blob: 0d8118ba81c7b922af8c5e07175e7fb89774fce3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright 2013 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 IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_
#define IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_

namespace crash_util {

// Returns the number of consecutive failed startups ('instant' crashes) prior
// to this one. This method always returns the number of prior failures even
// after calls to increment or reset the value.
int GetFailedStartupAttemptCount();

// Increases the failed startup count. This should be called immediately after
// startup, so that if there is a crash, it is recorded.
// If |flush_immediately| is true, the value will be persisted immediately. If
// |flush_immediately| is false, this should be followed by a call to
// [[NSUserDefaults standardUserDefaults] synchronize]. This is optional to
// allow coallescing of the potentially expensive call during startup.
void IncrementFailedStartupAttemptCount(bool flush_immediately);

// Resets the failed startup count. This should be called once there is some
// indication the user isn't in a crash loop (e.g., some amount of time has
// elapsed, or some deliberate user action has been taken).
void ResetFailedStartupAttemptCount();

}  // namespace crash_util

#endif  // IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_