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

Side by Side Diff: net/proxy/proxy_config_service_linux.h

Issue 2957433002: Use SequencedTaskRunner rather than SingledThreadedTaskRunner for passing io_task_runner (Closed)
Patch Set: undo change to glib_task_runner (keep it SingleThreadBlaBla) Created 3 years, 6 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
« no previous file with comments | « no previous file | net/proxy/proxy_config_service_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 5 #ifndef NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
6 #define NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 6 #define NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 178
179 // Synchronously obtains the proxy configuration. If gconf, 179 // Synchronously obtains the proxy configuration. If gconf,
180 // gsettings, or kioslaverc are used, also enables notifications for 180 // gsettings, or kioslaverc are used, also enables notifications for
181 // setting changes. gconf/gsettings must only be accessed from the 181 // setting changes. gconf/gsettings must only be accessed from the
182 // thread running the default glib main loop, and so this method 182 // thread running the default glib main loop, and so this method
183 // must be called from the UI thread. The message loop for the IO 183 // must be called from the UI thread. The message loop for the IO
184 // thread is specified so that notifications can post tasks to it 184 // thread is specified so that notifications can post tasks to it
185 // (and for assertions). 185 // (and for assertions).
186 void SetUpAndFetchInitialConfig( 186 void SetUpAndFetchInitialConfig(
187 const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner, 187 const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
188 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner); 188 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner);
189 189
190 // Handler for setting change notifications: fetches a new proxy 190 // Handler for setting change notifications: fetches a new proxy
191 // configuration from settings, and if this config is different 191 // configuration from settings, and if this config is different
192 // than what we had before, posts a task to have it stored in 192 // than what we had before, posts a task to have it stored in
193 // cached_config_. 193 // cached_config_.
194 // Left public for simplicity. 194 // Left public for simplicity.
195 void OnCheckProxyConfigSettings(); 195 void OnCheckProxyConfigSettings();
196 196
197 // Called from IO thread. 197 // Called from IO thread.
198 void AddObserver(Observer* observer); 198 void AddObserver(Observer* observer);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 // base/message_loop/message_pump_glib.h). It is the glib default loop in 260 // base/message_loop/message_pump_glib.h). It is the glib default loop in
261 // the sense that it runs the glib default context: as in the context where 261 // the sense that it runs the glib default context: as in the context where
262 // sources are added by g_timeout_add and g_idle_add, and returned by 262 // sources are added by g_timeout_add and g_idle_add, and returned by
263 // g_main_context_default. gconf uses glib timeouts and idles and possibly 263 // g_main_context_default. gconf uses glib timeouts and idles and possibly
264 // other callbacks that will all be dispatched on this thread. Since gconf 264 // other callbacks that will all be dispatched on this thread. Since gconf
265 // is not thread safe, any use of gconf must be done on the thread running 265 // is not thread safe, any use of gconf must be done on the thread running
266 // this loop. 266 // this loop.
267 scoped_refptr<base::SingleThreadTaskRunner> glib_task_runner_; 267 scoped_refptr<base::SingleThreadTaskRunner> glib_task_runner_;
268 // Task runner for the IO thread. GetLatestProxyConfig() is called from 268 // Task runner for the IO thread. GetLatestProxyConfig() is called from
269 // the thread running this loop. 269 // the thread running this loop.
270 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 270 scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
271 271
272 base::ObserverList<Observer> observers_; 272 base::ObserverList<Observer> observers_;
273 273
274 DISALLOW_COPY_AND_ASSIGN(Delegate); 274 DISALLOW_COPY_AND_ASSIGN(Delegate);
275 }; 275 };
276 276
277 // Thin wrapper shell around Delegate. 277 // Thin wrapper shell around Delegate.
278 278
279 // Usual constructor 279 // Usual constructor
280 ProxyConfigServiceLinux(); 280 ProxyConfigServiceLinux();
281 281
282 // For testing: take alternate setting and env var getter implementations. 282 // For testing: take alternate setting and env var getter implementations.
283 explicit ProxyConfigServiceLinux( 283 explicit ProxyConfigServiceLinux(
284 std::unique_ptr<base::Environment> env_var_getter); 284 std::unique_ptr<base::Environment> env_var_getter);
285 ProxyConfigServiceLinux(std::unique_ptr<base::Environment> env_var_getter, 285 ProxyConfigServiceLinux(std::unique_ptr<base::Environment> env_var_getter,
286 SettingGetter* setting_getter); 286 SettingGetter* setting_getter);
287 287
288 ~ProxyConfigServiceLinux() override; 288 ~ProxyConfigServiceLinux() override;
289 289
290 void SetupAndFetchInitialConfig( 290 void SetupAndFetchInitialConfig(
291 const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner, 291 const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
292 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) { 292 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
293 delegate_->SetUpAndFetchInitialConfig(glib_task_runner, io_task_runner); 293 delegate_->SetUpAndFetchInitialConfig(glib_task_runner, io_task_runner);
294 } 294 }
295 void OnCheckProxyConfigSettings() { 295 void OnCheckProxyConfigSettings() {
296 delegate_->OnCheckProxyConfigSettings(); 296 delegate_->OnCheckProxyConfigSettings();
297 } 297 }
298 298
299 // ProxyConfigService methods: 299 // ProxyConfigService methods:
300 // Called from IO thread. 300 // Called from IO thread.
301 void AddObserver(Observer* observer) override; 301 void AddObserver(Observer* observer) override;
302 void RemoveObserver(Observer* observer) override; 302 void RemoveObserver(Observer* observer) override;
303 ProxyConfigService::ConfigAvailability GetLatestProxyConfig( 303 ProxyConfigService::ConfigAvailability GetLatestProxyConfig(
304 ProxyConfig* config) override; 304 ProxyConfig* config) override;
305 305
306 private: 306 private:
307 scoped_refptr<Delegate> delegate_; 307 scoped_refptr<Delegate> delegate_;
308 308
309 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux); 309 DISALLOW_COPY_AND_ASSIGN(ProxyConfigServiceLinux);
310 }; 310 };
311 311
312 } // namespace net 312 } // namespace net
313 313
314 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_ 314 #endif // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
OLDNEW
« no previous file with comments | « no previous file | net/proxy/proxy_config_service_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698