| OLD | NEW |
| 1 // Copyright (c) 2010 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 "net/proxy/proxy_config_service_mac.h" | 5 #include "net/proxy/proxy_config_service_mac.h" |
| 6 | 6 |
| 7 #include <CoreFoundation/CoreFoundation.h> | 7 #include <CoreFoundation/CoreFoundation.h> |
| 8 #include <SystemConfiguration/SystemConfiguration.h> | 8 #include <SystemConfiguration/SystemConfiguration.h> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/mac/mac_util.h" | 11 #include "base/mac/mac_util.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 void ProxyConfigServiceMac::AddObserver(Observer* observer) { | 203 void ProxyConfigServiceMac::AddObserver(Observer* observer) { |
| 204 DCHECK_EQ(io_loop_, MessageLoop::current()); | 204 DCHECK_EQ(io_loop_, MessageLoop::current()); |
| 205 observers_.AddObserver(observer); | 205 observers_.AddObserver(observer); |
| 206 } | 206 } |
| 207 | 207 |
| 208 void ProxyConfigServiceMac::RemoveObserver(Observer* observer) { | 208 void ProxyConfigServiceMac::RemoveObserver(Observer* observer) { |
| 209 DCHECK_EQ(io_loop_, MessageLoop::current()); | 209 DCHECK_EQ(io_loop_, MessageLoop::current()); |
| 210 observers_.RemoveObserver(observer); | 210 observers_.RemoveObserver(observer); |
| 211 } | 211 } |
| 212 | 212 |
| 213 bool ProxyConfigServiceMac::GetLatestProxyConfig(ProxyConfig* config) { | 213 net::ProxyConfigService::ConfigAvailability |
| 214 ProxyConfigServiceMac::GetLatestProxyConfig(ProxyConfig* config) { |
| 214 DCHECK_EQ(io_loop_, MessageLoop::current()); | 215 DCHECK_EQ(io_loop_, MessageLoop::current()); |
| 215 | 216 |
| 216 // Lazy-initialize by fetching the proxy setting from this thread. | 217 // Lazy-initialize by fetching the proxy setting from this thread. |
| 217 if (!has_fetched_config_) { | 218 if (!has_fetched_config_) { |
| 218 GetCurrentProxyConfig(&last_config_fetched_); | 219 GetCurrentProxyConfig(&last_config_fetched_); |
| 219 has_fetched_config_ = true; | 220 has_fetched_config_ = true; |
| 220 } | 221 } |
| 221 | 222 |
| 222 *config = last_config_fetched_; | 223 *config = last_config_fetched_; |
| 223 return has_fetched_config_; | 224 return has_fetched_config_ ? CONFIG_VALID : CONFIG_PENDING; |
| 224 } | 225 } |
| 225 | 226 |
| 226 void ProxyConfigServiceMac::SetDynamicStoreNotificationKeys( | 227 void ProxyConfigServiceMac::SetDynamicStoreNotificationKeys( |
| 227 SCDynamicStoreRef store) { | 228 SCDynamicStoreRef store) { |
| 228 // Called on notifier thread. | 229 // Called on notifier thread. |
| 229 | 230 |
| 230 CFStringRef proxies_key = SCDynamicStoreKeyCreateProxies(NULL); | 231 CFStringRef proxies_key = SCDynamicStoreKeyCreateProxies(NULL); |
| 231 CFArrayRef key_array = CFArrayCreate( | 232 CFArrayRef key_array = CFArrayCreate( |
| 232 NULL, (const void **)(&proxies_key), 1, &kCFTypeArrayCallBacks); | 233 NULL, (const void **)(&proxies_key), 1, &kCFTypeArrayCallBacks); |
| 233 | 234 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 255 | 256 |
| 256 void ProxyConfigServiceMac::OnProxyConfigChanged( | 257 void ProxyConfigServiceMac::OnProxyConfigChanged( |
| 257 const ProxyConfig& new_config) { | 258 const ProxyConfig& new_config) { |
| 258 DCHECK_EQ(io_loop_, MessageLoop::current()); | 259 DCHECK_EQ(io_loop_, MessageLoop::current()); |
| 259 | 260 |
| 260 // Keep track of the last value we have seen. | 261 // Keep track of the last value we have seen. |
| 261 has_fetched_config_ = true; | 262 has_fetched_config_ = true; |
| 262 last_config_fetched_ = new_config; | 263 last_config_fetched_ = new_config; |
| 263 | 264 |
| 264 // Notify all the observers. | 265 // Notify all the observers. |
| 265 FOR_EACH_OBSERVER(Observer, observers_, OnProxyConfigChanged(new_config)); | 266 FOR_EACH_OBSERVER(Observer, observers_, |
| 267 OnProxyConfigChanged(new_config, CONFIG_VALID)); |
| 266 } | 268 } |
| 267 | 269 |
| 268 } // namespace net | 270 } // namespace net |
| OLD | NEW |