// 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_