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