// 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();

// Resets the hidden state of failed startup attempt count for testing.
void ResetFailedStartupAttemptCountForTests();

}  // namespace crash_util

#endif  // IOS_CHROME_BROWSER_CRASH_LOOP_DETECTION_UTIL_H_
