| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" | 5 #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/prefs/proxy_config_dictionary.h" | 10 #include "chrome/browser/prefs/proxy_config_dictionary.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 pref_config_state_, pref_config_, | 62 pref_config_state_, pref_config_, |
| 63 system_availability, system_config, false, | 63 system_availability, system_config, false, |
| 64 &config_state, config); | 64 &config_state, config); |
| 65 } | 65 } |
| 66 | 66 |
| 67 void ChromeProxyConfigService::OnLazyPoll() { | 67 void ChromeProxyConfigService::OnLazyPoll() { |
| 68 if (base_service_.get()) | 68 if (base_service_.get()) |
| 69 base_service_->OnLazyPoll(); | 69 base_service_->OnLazyPoll(); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void ChromeProxyConfigService::StartTearDown() { |
| 73 if (base_service_.get()) |
| 74 base_service_->StartTearDown(); |
| 75 } |
| 76 |
| 72 void ChromeProxyConfigService::UpdateProxyConfig( | 77 void ChromeProxyConfigService::UpdateProxyConfig( |
| 73 ProxyPrefs::ConfigState config_state, | 78 ProxyPrefs::ConfigState config_state, |
| 74 const net::ProxyConfig& config) { | 79 const net::ProxyConfig& config) { |
| 75 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 80 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 76 | 81 |
| 77 pref_config_read_pending_ = false; | 82 pref_config_read_pending_ = false; |
| 78 pref_config_state_ = config_state; | 83 pref_config_state_ = config_state; |
| 79 pref_config_ = config; | 84 pref_config_ = config; |
| 80 | 85 |
| 81 if (!observers_.size()) | 86 if (!observers_.size()) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 101 const net::ProxyConfig& config, | 106 const net::ProxyConfig& config, |
| 102 ConfigAvailability availability) { | 107 ConfigAvailability availability) { |
| 103 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 108 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 104 | 109 |
| 105 // Check whether there is a proxy configuration defined by preferences. In | 110 // Check whether there is a proxy configuration defined by preferences. In |
| 106 // this case that proxy configuration takes precedence and the change event | 111 // this case that proxy configuration takes precedence and the change event |
| 107 // from the delegate proxy service can be disregarded. | 112 // from the delegate proxy service can be disregarded. |
| 108 if (!PrefProxyConfigTrackerImpl::PrefPrecedes(pref_config_state_)) { | 113 if (!PrefProxyConfigTrackerImpl::PrefPrecedes(pref_config_state_)) { |
| 109 net::ProxyConfig actual_config; | 114 net::ProxyConfig actual_config; |
| 110 availability = GetLatestProxyConfig(&actual_config); | 115 availability = GetLatestProxyConfig(&actual_config); |
| 111 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_, | 116 // Don't send out notification if we don't really have a configuration yet. |
| 112 OnProxyConfigChanged(actual_config, availability)); | 117 if (availability != net::ProxyConfigService::CONFIG_PENDING) |
| 118 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_, |
| 119 OnProxyConfigChanged(actual_config, availability)); |
| 113 } | 120 } |
| 114 } | 121 } |
| 115 | 122 |
| 116 void ChromeProxyConfigService::RegisterObserver() { | 123 void ChromeProxyConfigService::RegisterObserver() { |
| 117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 124 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 118 if (!registered_observer_ && base_service_.get()) { | 125 if (!registered_observer_ && base_service_.get()) { |
| 119 base_service_->AddObserver(this); | 126 base_service_->AddObserver(this); |
| 120 registered_observer_ = true; | 127 registered_observer_ = true; |
| 121 } | 128 } |
| 122 } | 129 } |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 config_state = ProxyPrefs::CONFIG_EXTENSION; | 342 config_state = ProxyPrefs::CONFIG_EXTENSION; |
| 336 else | 343 else |
| 337 config_state = ProxyPrefs::CONFIG_OTHER_PRECEDE; | 344 config_state = ProxyPrefs::CONFIG_OTHER_PRECEDE; |
| 338 } else { | 345 } else { |
| 339 config_state = ProxyPrefs::CONFIG_FALLBACK; | 346 config_state = ProxyPrefs::CONFIG_FALLBACK; |
| 340 } | 347 } |
| 341 } | 348 } |
| 342 | 349 |
| 343 return config_state; | 350 return config_state; |
| 344 } | 351 } |
| OLD | NEW |