blob: 0d8118ba81c7b922af8c5e07175e7fb89774fce3 [file] [log] [blame]
// 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_