OLD | NEW |
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 #include "chrome/browser/io_thread.h" | 5 #include "chrome/browser/io_thread.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 if (!command_line.HasSwitch(switches::kHostResolverRules)) | 165 if (!command_line.HasSwitch(switches::kHostResolverRules)) |
166 return global_host_resolver; | 166 return global_host_resolver; |
167 | 167 |
168 net::MappedHostResolver* remapped_resolver = | 168 net::MappedHostResolver* remapped_resolver = |
169 new net::MappedHostResolver(global_host_resolver); | 169 new net::MappedHostResolver(global_host_resolver); |
170 remapped_resolver->SetRulesFromString( | 170 remapped_resolver->SetRulesFromString( |
171 command_line.GetSwitchValueASCII(switches::kHostResolverRules)); | 171 command_line.GetSwitchValueASCII(switches::kHostResolverRules)); |
172 return remapped_resolver; | 172 return remapped_resolver; |
173 } | 173 } |
174 | 174 |
175 class LoggingNetworkChangeObserver | |
176 : public net::NetworkChangeNotifier::IPAddressObserver { | |
177 public: | |
178 // |net_log| must remain valid throughout our lifetime. | |
179 explicit LoggingNetworkChangeObserver(net::NetLog* net_log) | |
180 : net_log_(net_log) { | |
181 net::NetworkChangeNotifier::AddIPAddressObserver(this); | |
182 } | |
183 | |
184 ~LoggingNetworkChangeObserver() { | |
185 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); | |
186 } | |
187 | |
188 virtual void OnIPAddressChanged() { | |
189 VLOG(1) << "Observed a change to the network IP addresses"; | |
190 | |
191 net_log_->AddGlobalEntry(net::NetLog::TYPE_NETWORK_IP_ADDRESSES_CHANGED, | |
192 NULL); | |
193 } | |
194 | |
195 private: | |
196 net::NetLog* net_log_; | |
197 DISALLOW_COPY_AND_ASSIGN(LoggingNetworkChangeObserver); | |
198 }; | |
199 | |
200 // TODO(willchan): Remove proxy script fetcher context since it's not necessary | 175 // TODO(willchan): Remove proxy script fetcher context since it's not necessary |
201 // now that I got rid of refcounting URLRequestContexts. | 176 // now that I got rid of refcounting URLRequestContexts. |
202 // See IOThread::Globals for details. | 177 // See IOThread::Globals for details. |
203 net::URLRequestContext* | 178 net::URLRequestContext* |
204 ConstructProxyScriptFetcherContext(IOThread::Globals* globals, | 179 ConstructProxyScriptFetcherContext(IOThread::Globals* globals, |
205 net::NetLog* net_log) { | 180 net::NetLog* net_log) { |
206 net::URLRequestContext* context = new URLRequestContextWithUserAgent; | 181 net::URLRequestContext* context = new URLRequestContextWithUserAgent; |
207 context->set_net_log(net_log); | 182 context->set_net_log(net_log); |
208 context->set_host_resolver(globals->host_resolver.get()); | 183 context->set_host_resolver(globals->host_resolver.get()); |
209 context->set_cert_verifier(globals->cert_verifier.get()); | 184 context->set_cert_verifier(globals->cert_verifier.get()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 globals->system_ftp_transaction_factory.get()); | 219 globals->system_ftp_transaction_factory.get()); |
245 context->set_cookie_store(globals->system_cookie_store.get()); | 220 context->set_cookie_store(globals->system_cookie_store.get()); |
246 context->set_server_bound_cert_service( | 221 context->set_server_bound_cert_service( |
247 globals->system_server_bound_cert_service.get()); | 222 globals->system_server_bound_cert_service.get()); |
248 context->set_throttler_manager(globals->throttler_manager.get()); | 223 context->set_throttler_manager(globals->throttler_manager.get()); |
249 return context; | 224 return context; |
250 } | 225 } |
251 | 226 |
252 } // namespace | 227 } // namespace |
253 | 228 |
| 229 class IOThread::LoggingNetworkChangeObserver |
| 230 : public net::NetworkChangeNotifier::IPAddressObserver { |
| 231 public: |
| 232 // |net_log| must remain valid throughout our lifetime. |
| 233 explicit LoggingNetworkChangeObserver(net::NetLog* net_log) |
| 234 : net_log_(net_log) { |
| 235 net::NetworkChangeNotifier::AddIPAddressObserver(this); |
| 236 } |
| 237 |
| 238 ~LoggingNetworkChangeObserver() { |
| 239 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); |
| 240 } |
| 241 |
| 242 virtual void OnIPAddressChanged() { |
| 243 VLOG(1) << "Observed a change to the network IP addresses"; |
| 244 |
| 245 net_log_->AddGlobalEntry(net::NetLog::TYPE_NETWORK_IP_ADDRESSES_CHANGED, |
| 246 NULL); |
| 247 } |
| 248 |
| 249 private: |
| 250 net::NetLog* net_log_; |
| 251 DISALLOW_COPY_AND_ASSIGN(LoggingNetworkChangeObserver); |
| 252 }; |
| 253 |
254 class SystemURLRequestContextGetter : public net::URLRequestContextGetter { | 254 class SystemURLRequestContextGetter : public net::URLRequestContextGetter { |
255 public: | 255 public: |
256 explicit SystemURLRequestContextGetter(IOThread* io_thread); | 256 explicit SystemURLRequestContextGetter(IOThread* io_thread); |
257 | 257 |
258 // Implementation for net::UrlRequestContextGetter. | 258 // Implementation for net::UrlRequestContextGetter. |
259 virtual net::URLRequestContext* GetURLRequestContext(); | 259 virtual net::URLRequestContext* GetURLRequestContext(); |
260 virtual scoped_refptr<base::MessageLoopProxy> GetIOMessageLoopProxy() const; | 260 virtual scoped_refptr<base::MessageLoopProxy> GetIOMessageLoopProxy() const; |
261 | 261 |
262 protected: | 262 protected: |
263 virtual ~SystemURLRequestContextGetter(); | 263 virtual ~SystemURLRequestContextGetter(); |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 new net::HttpNetworkLayer( | 623 new net::HttpNetworkLayer( |
624 new net::HttpNetworkSession(system_params))); | 624 new net::HttpNetworkSession(system_params))); |
625 globals_->system_ftp_transaction_factory.reset( | 625 globals_->system_ftp_transaction_factory.reset( |
626 new net::FtpNetworkLayer(globals_->host_resolver.get())); | 626 new net::FtpNetworkLayer(globals_->host_resolver.get())); |
627 globals_->system_request_context.reset( | 627 globals_->system_request_context.reset( |
628 ConstructSystemRequestContext(globals_, net_log_)); | 628 ConstructSystemRequestContext(globals_, net_log_)); |
629 | 629 |
630 sdch_manager_->set_sdch_fetcher( | 630 sdch_manager_->set_sdch_fetcher( |
631 new SdchDictionaryFetcher(system_url_request_context_getter_.get())); | 631 new SdchDictionaryFetcher(system_url_request_context_getter_.get())); |
632 } | 632 } |
OLD | NEW |