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

Side by Side Diff: ios/chrome/browser/browser_state/chrome_browser_state_impl.h

Issue 1664823003: Upstream ChromeBrowserState sub-classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_IMPL_
6 #define IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_IMPL_
7
8 #include "base/gtest_prod_util.h"
droger 2016/02/04 13:56:14 Maybe not needed?
sdefresne 2016/02/04 15:27:41 Removed.
9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
12 #include "ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.h"
13
14 namespace ssl_config {
15 class SSLConfigServiceManager;
16 }
17
18 namespace syncable_prefs {
19 class PrefServiceSyncable;
20 }
21
22 namespace user_prefs {
23 class PrefRegistrySyncable;
24 }
25
26 class PrefProxyConfigTracker;
27
28 // This class is the implementation of ChromeBrowserState used for
29 // non-incognito browsing.
30 class ChromeBrowserStateImpl : public ios::ChromeBrowserState {
droger 2016/02/04 13:56:14 Not related to this CL, but ChromeBrowserState sho
sdefresne 2016/02/04 15:27:41 Ack (as ios::ChromeBrowserStateManager, ...). I th
31 public:
32 ~ChromeBrowserStateImpl() override;
33
34 // ChromeBrowserState:
35 ios::ChromeBrowserState* GetOriginalChromeBrowserState() override;
36 bool HasOffTheRecordChromeBrowserState() const override;
37 ios::ChromeBrowserState* GetOffTheRecordChromeBrowserState() override;
38 void DestroyOffTheRecordChromeBrowserState() override;
39 PrefProxyConfigTracker* GetProxyConfigTracker() override;
40 net::SSLConfigService* GetSSLConfigService() override;
41 PrefService* GetPrefs() override;
42 PrefService* GetOffTheRecordPrefs() override;
43 ChromeBrowserStateIOData* GetIOData() override;
44 void ClearNetworkingHistorySince(base::Time time,
45 const base::Closure& completion) override;
46 net::URLRequestContextGetter* CreateRequestContext(
47 ProtocolHandlerMap* protocol_handlers,
48 URLRequestInterceptorScopedVector request_interceptors) override;
49 net::URLRequestContextGetter* CreateIsolatedRequestContext(
50 const base::FilePath& partition_path) override;
51
52 // BrowserState:
53 bool IsOffTheRecord() const override;
54 base::FilePath GetStatePath() const override;
55
56 protected:
57 explicit ChromeBrowserStateImpl(const base::FilePath& path);
droger 2016/02/04 13:56:14 Nit: I think this can be private. No need to be pr
sdefresne 2016/02/04 15:27:40 Made private because all ChromeBrowserStateImpl sh
58
59 private:
60 friend class ChromeBrowserStateManagerImpl;
61
62 // Sets the OffTheRecordChromeBrowserState.
63 void SetOffTheRecordChromeBrowserState(
64 scoped_ptr<ios::ChromeBrowserState> otr_state);
65
66 base::FilePath state_path_;
67
68 // The incognito ChromeBrowserState instance that is associated with this
69 // ChromeBrowserState instance. NULL if |GetOffTheRecordChromeBrowserState()|
70 // has never been called or has not been called since
71 // |DestroyOffTheRecordChromeBrowserState()|.
72 scoped_ptr<ios::ChromeBrowserState> otr_state_;
73 base::FilePath otr_state_path_;
74
75 // !!! BIG HONKING WARNING !!!
76 // The order of the members below is important. Do not change it unless
77 // you know what you're doing. Also, if adding a new member here make sure
78 // that the declaration occurs AFTER things it depends on as destruction
79 // happens in reverse order of declaration.
80
81 // Keep |prefs_| on top for destruction order because |io_data_| and others
82 // store pointers to |prefs_| and shall be destructed first.
83 scoped_refptr<user_prefs::PrefRegistrySyncable> pref_registry_;
84 scoped_ptr<syncable_prefs::PrefServiceSyncable> prefs_;
85 scoped_ptr<syncable_prefs::PrefServiceSyncable> otr_prefs_;
86 scoped_ptr<ChromeBrowserStateImplIOData::Handle> io_data_;
87
88 scoped_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
89 scoped_ptr<ssl_config::SSLConfigServiceManager> ssl_config_service_manager_;
90
91 // STOP!!!! DO NOT ADD ANY MORE ITEMS HERE!!!!
92 //
93 // Instead, make your Service/Manager/whatever object you're hanging off the
94 // BrowserState use our BrowserStateKeyedServiceFactory system instead.
95 // You can find the design document here:
96 //
97 // https://sites.google.com/a/chromium.org/dev/developers/design-documents/p rofile-architecture
98 //
99 // and you can read the raw headers here:
100 //
101 // components/keyed_service/ios/browser_state_dependency_manager.*
102 // components/keyed_service/core/keyed_service.h
103 // components/keyed_service/ios/browser_state_keyed_service_factory.*
104
105 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserStateImpl);
106 };
107
108 #endif // IOS_CHROME_BROWSER_BROWSER_STATE_CHROME_BROWSER_STATE_IMPL_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698