Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.h

Issue 1664823003: Upstream ChromeBrowserState sub-classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.h
diff --git a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.h b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..6f0e8ce5fdfa0067718cfc6d5ac6a9eefd9fc482
--- /dev/null
+++ b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.h
@@ -0,0 +1,66 @@
+// 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_OFF_THE_RECORD_CHROME_BROWSER_STATE_IMPL_H_
+#define IOS_CHROME_BROWSER_BROWSER_STATE_OFF_THE_RECORD_CHROME_BROWSER_STATE_IMPL_H_
+
+#include "base/macros.h"
+#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.h"
+
+namespace syncable_prefs {
+class PrefServiceSyncable;
+}
+
+// The implementation of ChromeBrowserState that is used for incognito browsing.
+// Each OffTheRecordChromeBrowserStateImpl instance is associated with and owned
+// by a non-incognito ChromeBrowserState instance.
+class OffTheRecordChromeBrowserStateImpl : public ios::ChromeBrowserState {
+ public:
+ ~OffTheRecordChromeBrowserStateImpl() override;
+
+ // ChromeBrowserState:
+ ios::ChromeBrowserState* GetOriginalChromeBrowserState() override;
+ bool HasOffTheRecordChromeBrowserState() const override;
+ ios::ChromeBrowserState* GetOffTheRecordChromeBrowserState() override;
+ void DestroyOffTheRecordChromeBrowserState() override;
+ PrefProxyConfigTracker* GetProxyConfigTracker() override;
+ net::SSLConfigService* GetSSLConfigService() override;
+ PrefService* GetPrefs() override;
+ PrefService* GetOffTheRecordPrefs() override;
+ ChromeBrowserStateIOData* GetIOData() override;
+ void ClearNetworkingHistorySince(base::Time time,
+ const base::Closure& completion) override;
+ net::URLRequestContextGetter* CreateRequestContext(
+ ProtocolHandlerMap* protocol_handlers,
+ URLRequestInterceptorScopedVector request_interceptors) override;
+ net::URLRequestContextGetter* CreateIsolatedRequestContext(
+ const base::FilePath& partition_path) override;
+
+ // BrowserState:
+ bool IsOffTheRecord() const override;
+ base::FilePath GetStatePath() const override;
+
+ private:
+ friend class ChromeBrowserStateImpl;
+
+ // |original_chrome_browser_state_| is the non-incognito
+ // ChromeBrowserState instance that owns this instance.
+ OffTheRecordChromeBrowserStateImpl(
+ ios::ChromeBrowserState* original_chrome_browser_state,
+ const base::FilePath& otr_path);
+
+ base::FilePath otr_state_path_;
+ ios::ChromeBrowserState* original_chrome_browser_state_; // weak
+
+ // Weak pointer owned by |original_chrome_browser_state_|.
+ syncable_prefs::PrefServiceSyncable* prefs_;
+
+ scoped_ptr<OffTheRecordChromeBrowserStateIOData::Handle> io_data_;
+ scoped_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
+
+ DISALLOW_COPY_AND_ASSIGN(OffTheRecordChromeBrowserStateImpl);
+};
+
+#endif // IOS_CHROME_BROWSER_BROWSER_STATE_OFF_THE_RECORD_CHROME_BROWSER_STATE_IMPL_H_

Powered by Google App Engine
This is Rietveld 408576698