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

Side by Side Diff: chrome/browser/net/chrome_url_request_context.h

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix PrefNotifierImpl Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_ 5 #ifndef CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_
6 #define CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_ 6 #define CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/prefs/public/pref_change_registrar.h" 11 #include "base/prefs/public/pref_change_registrar.h"
12 #include "content/public/browser/notification_observer.h" 12 #include "base/prefs/public/pref_observer.h"
13 #include "content/public/browser/notification_registrar.h"
14 #include "net/url_request/url_request_context.h" 13 #include "net/url_request/url_request_context.h"
15 #include "net/url_request/url_request_context_getter.h" 14 #include "net/url_request/url_request_context_getter.h"
16 #include "net/url_request/url_request_job_factory.h" 15 #include "net/url_request/url_request_job_factory.h"
17 16
18 class ChromeURLDataManagerBackend; 17 class ChromeURLDataManagerBackend;
19 class ChromeURLRequestContextFactory; 18 class ChromeURLRequestContextFactory;
20 class IOThread; 19 class IOThread;
21 class Profile; 20 class Profile;
22 class ProfileIOData; 21 class ProfileIOData;
23 22
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 DISALLOW_COPY_AND_ASSIGN(ChromeURLRequestContext); 91 DISALLOW_COPY_AND_ASSIGN(ChromeURLRequestContext);
93 }; 92 };
94 93
95 // A net::URLRequestContextGetter subclass used by the browser. This returns a 94 // A net::URLRequestContextGetter subclass used by the browser. This returns a
96 // subclass of net::URLRequestContext which can be used to store extra 95 // subclass of net::URLRequestContext which can be used to store extra
97 // information about requests. 96 // information about requests.
98 // 97 //
99 // Most methods are expected to be called on the UI thread, except for 98 // Most methods are expected to be called on the UI thread, except for
100 // the destructor and GetURLRequestContext(). 99 // the destructor and GetURLRequestContext().
101 class ChromeURLRequestContextGetter : public net::URLRequestContextGetter, 100 class ChromeURLRequestContextGetter : public net::URLRequestContextGetter,
102 public content::NotificationObserver { 101 public PrefObserver {
103 public: 102 public:
104 // Constructs a ChromeURLRequestContextGetter that will use |factory| to 103 // Constructs a ChromeURLRequestContextGetter that will use |factory| to
105 // create the ChromeURLRequestContext. If |profile| is non-NULL, then the 104 // create the ChromeURLRequestContext. If |profile| is non-NULL, then the
106 // ChromeURLRequestContextGetter will additionally watch the preferences for 105 // ChromeURLRequestContextGetter will additionally watch the preferences for
107 // changes to charset/language and CleanupOnUIThread() will need to be 106 // changes to charset/language and CleanupOnUIThread() will need to be
108 // called to unregister. 107 // called to unregister.
109 ChromeURLRequestContextGetter(Profile* profile, 108 ChromeURLRequestContextGetter(Profile* profile,
110 ChromeURLRequestContextFactory* factory); 109 ChromeURLRequestContextFactory* factory);
111 110
112 // Note that GetURLRequestContext() can only be called from the IO 111 // Note that GetURLRequestContext() can only be called from the IO
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 Profile* profile, 172 Profile* profile,
174 const ProfileIOData* profile_io_data, 173 const ProfileIOData* profile_io_data,
175 const std::string& app_id, 174 const std::string& app_id,
176 scoped_ptr<net::URLRequestJobFactory::Interceptor> 175 scoped_ptr<net::URLRequestJobFactory::Interceptor>
177 protocol_handler_interceptor); 176 protocol_handler_interceptor);
178 177
179 // Clean up UI thread resources. This is expected to get called on the UI 178 // Clean up UI thread resources. This is expected to get called on the UI
180 // thread before the instance is deleted on the IO thread. 179 // thread before the instance is deleted on the IO thread.
181 void CleanupOnUIThread(); 180 void CleanupOnUIThread();
182 181
183 // content::NotificationObserver implementation. 182 // PrefObserver implementation.
184 virtual void Observe(int type, 183 virtual void OnPreferenceChanged(PrefServiceBase* service,
185 const content::NotificationSource& source, 184 const std::string& pref_name) OVERRIDE;
186 const content::NotificationDetails& details) OVERRIDE;
187 185
188 private: 186 private:
189 // Must be called on the IO thread. 187 // Must be called on the IO thread.
190 virtual ~ChromeURLRequestContextGetter(); 188 virtual ~ChromeURLRequestContextGetter();
191 189
192 // Registers an observer on |profile|'s preferences which will be used 190 // Registers an observer on |profile|'s preferences which will be used
193 // to update the context when the default language and charset change. 191 // to update the context when the default language and charset change.
194 void RegisterPrefsObserver(Profile* profile); 192 void RegisterPrefsObserver(Profile* profile);
195 193
196 // These methods simply forward to the corresponding method on 194 // These methods simply forward to the corresponding method on
197 // ChromeURLRequestContext. 195 // ChromeURLRequestContext.
198 void OnAcceptLanguageChange(const std::string& accept_language); 196 void OnAcceptLanguageChange(const std::string& accept_language);
199 void OnDefaultCharsetChange(const std::string& default_charset); 197 void OnDefaultCharsetChange(const std::string& default_charset);
200 198
201 PrefChangeRegistrar registrar_; 199 PrefChangeRegistrar registrar_;
202 200
203 // Deferred logic for creating a ChromeURLRequestContext. 201 // Deferred logic for creating a ChromeURLRequestContext.
204 // Access only from the IO thread. 202 // Access only from the IO thread.
205 scoped_ptr<ChromeURLRequestContextFactory> factory_; 203 scoped_ptr<ChromeURLRequestContextFactory> factory_;
206 204
207 // NULL if not yet initialized. Otherwise, it is the ChromeURLRequestContext 205 // NULL if not yet initialized. Otherwise, it is the ChromeURLRequestContext
208 // instance that was lazily created by GetURLRequestContext(). 206 // instance that was lazily created by GetURLRequestContext().
209 // Access only from the IO thread. 207 // Access only from the IO thread.
210 base::WeakPtr<ChromeURLRequestContext> url_request_context_; 208 base::WeakPtr<ChromeURLRequestContext> url_request_context_;
211 209
212 DISALLOW_COPY_AND_ASSIGN(ChromeURLRequestContextGetter); 210 DISALLOW_COPY_AND_ASSIGN(ChromeURLRequestContextGetter);
213 }; 211 };
214 212
215 #endif // CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_ 213 #endif // CHROME_BROWSER_NET_CHROME_URL_REQUEST_CONTEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698