diff options
author | sdefresne <sdefresne@chromium.org> | 2016-02-03 08:11:07 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-03 16:12:23 +0000 |
commit | ad20c4eb6b6a1cf095f7af93a3bddb16adf1f54b (patch) | |
tree | 69016b8e3dbfc10e5641084c27abc152fe36fecb /ios/chrome/browser/browser_state/chrome_browser_state.h | |
parent | f836852278a068c37ee01960fb2d681190ac1c64 (diff) | |
download | chromium_src-ad20c4eb6b6a1cf095f7af93a3bddb16adf1f54b.zip chromium_src-ad20c4eb6b6a1cf095f7af93a3bddb16adf1f54b.tar.gz chromium_src-ad20c4eb6b6a1cf095f7af93a3bddb16adf1f54b.tar.bz2 |
Move chrome_browser_state.{cc,h} to ios/chrome/browser/browser_state.
In preparation of upstreaming the implementation of ChromeBrowserState,
move the code to ios/chrome/browser/browser_state.
Leave a forwarding header to avoid breaking downstream at next merge.
BUG=None
Review URL: https://codereview.chromium.org/1667733002
Cr-Commit-Position: refs/heads/master@{#373249}
Diffstat (limited to 'ios/chrome/browser/browser_state/chrome_browser_state.h')
-rw-r--r-- | ios/chrome/browser/browser_state/chrome_browser_state.h | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state.h b/ios/chrome/browser/browser_state/chrome_browser_state.h new file mode 100644 index 0000000..b04c33e --- /dev/null +++ b/ios/chrome/browser/browser_state/chrome_browser_state.h @@ -0,0 +1,146 @@ +// 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_BROWSER_STATE_CHROME_BROWSER_STATE_H_ +#define IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_H_ + +#include <map> +#include <string> + +#include "base/callback_forward.h" +#include "base/compiler_specific.h" +#include "base/macros.h" +#include "base/memory/linked_ptr.h" +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_vector.h" +#include "ios/web/public/browser_state.h" +#include "net/url_request/url_request_job_factory.h" + +class ChromeBrowserStateIOData; +class PrefProxyConfigTracker; +class PrefService; +class TestChromeBrowserState; + +namespace base { +class SequencedTaskRunner; +class Time; +} + +namespace net { +class SSLConfigService; +class URLRequestInterceptor; +} + +namespace syncable_prefs { +class PrefServiceSyncable; +} + +namespace web { +class WebUIIOS; +} + +namespace ios { + +enum class ChromeBrowserStateType { + REGULAR_BROWSER_STATE, + INCOGNITO_BROWSER_STATE, +}; + +// This class is a Chrome-specific extension of the BrowserState interface. +class ChromeBrowserState : public web::BrowserState { + public: + ~ChromeBrowserState() override {} + + // Returns the ChromeBrowserState corresponding to the given BrowserState. + static ChromeBrowserState* FromBrowserState(BrowserState* browser_state); + + // Returns the ChromeBrowserState corresponding to the given WebUIIOS. + static ChromeBrowserState* FromWebUIIOS(web::WebUIIOS* web_ui); + + // Returns sequenced task runner where browser state dependent I/O + // operations should be performed. + virtual scoped_refptr<base::SequencedTaskRunner> GetIOTaskRunner() = 0; + + // Returns the original "recording" ChromeBrowserState. This method returns + // |this| if the ChromeBrowserState is not incognito. + virtual ChromeBrowserState* GetOriginalChromeBrowserState() = 0; + + // Returns true if the ChromeBrowserState is off-the-record or if the + // associated off-the-record browser state has been created. + // Calling this method does not create the off-the-record browser state if it + // does not already exist. + virtual bool HasOffTheRecordChromeBrowserState() const = 0; + + // Returns the incognito version of this ChromeBrowserState. The returned + // ChromeBrowserState instance is owned by this ChromeBrowserState instance. + // WARNING: This will create the OffTheRecord ChromeBrowserState if it + // doesn't already exist. + virtual ChromeBrowserState* GetOffTheRecordChromeBrowserState() = 0; + + // Destroys the OffTheRecord ChromeBrowserState that is associated with this + // ChromeBrowserState, if one exists. + virtual void DestroyOffTheRecordChromeBrowserState() = 0; + + // Retrieves a pointer to the PrefService that manages the preferences. + virtual PrefService* GetPrefs() = 0; + + // Retrieves a pointer to the PrefService that manages the preferences + // for OffTheRecord browser states. + virtual PrefService* GetOffTheRecordPrefs() = 0; + + // Allows access to ChromeBrowserStateIOData without going through + // ResourceContext that is not compiled on iOS. This method must be called on + // UI thread, but the returned object must only be accessed on the IO thread. + virtual ChromeBrowserStateIOData* GetIOData() = 0; + + // Retrieves a pointer to the PrefService that manages the preferences as + // a syncable_prefs::PrefServiceSyncable. + virtual syncable_prefs::PrefServiceSyncable* GetSyncablePrefs() = 0; + + // Deletes all network related data since |time|. It deletes transport + // security state since |time| and it also deletes HttpServerProperties data. + // Works asynchronously, however if the |completion| callback is non-null, it + // will be posted on the UI thread once the removal process completes. + // Be aware that theoretically it is possible that |completion| will be + // invoked after the Profile instance has been destroyed. + virtual void ClearNetworkingHistorySince(base::Time time, + const base::Closure& completion) = 0; + + // Returns an identifier of the browser state for debugging. + std::string GetDebugName(); + + // Returns the helper object that provides the proxy configuration service + // access to the the proxy configuration possibly defined by preferences. + virtual PrefProxyConfigTracker* GetProxyConfigTracker() = 0; + + // Returns the SSLConfigService for this browser state. + virtual net::SSLConfigService* GetSSLConfigService() = 0; + + // Creates the main net::URLRequestContextGetter that will be returned by + // GetRequestContext(). Should only be called once. + virtual net::URLRequestContextGetter* CreateRequestContext( + std::map<std::string, + linked_ptr<net::URLRequestJobFactory::ProtocolHandler>>* + protocol_handlers, + ScopedVector<net::URLRequestInterceptor> request_interceptors) = 0; + + // Creates a isolated net::URLRequestContextGetter. Should only be called once + // per partition_path per browser state object. + virtual net::URLRequestContextGetter* CreateIsolatedRequestContext( + const base::FilePath& partition_path) = 0; + + // Returns the current ChromeBrowserState casted as a TestChromeBrowserState + // or null if it is not a TestChromeBrowserState. + virtual TestChromeBrowserState* AsTestChromeBrowserState() = 0; + + protected: + ChromeBrowserState() {} + + private: + DISALLOW_COPY_AND_ASSIGN(ChromeBrowserState); +}; + +} // namespace ios + +#endif // IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_H_ |