blob: a59f1d759acf1b5ce55da2f7efad6a23a4434777 [file] [log] [blame]
// Copyright 2015 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_BROWSER_STATE_CHROME_BROWSER_STATE_REMOVAL_CONTROLLER_H_
#define IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_REMOVAL_CONTROLLER_H_
#include <string>
// Controls the removal of extra browser states.
class ChromeBrowserStateRemovalController {
public:
static ChromeBrowserStateRemovalController* GetInstance();
// Removes the browser states marked as not to keep if they exist. It also
// converts the most recently used bookmarks file to an HTML representation.
void RemoveBrowserStatesIfNecessary();
// Returns whether a browser state has been removed. The value is conserved
// across application restarts.
bool HasBrowserStateBeenRemoved();
// Returns the GAIA Id of the removed browser state if it was authenticated.
// The value should not be trusted unless HasBrowserStateBeenRemoved() returns
// true.
const std::string& removed_browser_state_gaia_id() const {
return removed_browser_state_gaia_id_;
}
// Returns whether the last used browser sate was changed during this session.
bool has_changed_last_used_browser_state() const {
return has_changed_last_used_browser_state_;
}
private:
ChromeBrowserStateRemovalController();
~ChromeBrowserStateRemovalController();
// Returns the relative path of the browser state path to keep. This value
// was stored from the user choice.
std::string GetBrowserStatePathToKeep();
// Sets whether a browser state has been removed. The value is conserved
// across application restarts.
void SetHasBrowserStateBeenRemoved(bool value);
// Returns the relative path of the last browser state used (during the
// previous application run).
std::string GetLastBrowserStatePathUsed();
// Sets the relative path of the last browser state used.
void SetLastBrowserStatePathUsed(const std::string& browser_state_path);
// The GAIA Id of the removed browser state (if any).
std::string removed_browser_state_gaia_id_;
// Whether the last used browser state was changed.
bool has_changed_last_used_browser_state_;
};
#endif // IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_REMOVAL_CONTROLLER_H_