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/net/chrome_network_delegate.h" | 5 #include "chrome/browser/net/chrome_network_delegate.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 18 matching lines...) Expand all Loading... | |
29 #include "chrome/browser/prerender/prerender_tracker.h" | 29 #include "chrome/browser/prerender/prerender_tracker.h" |
30 #include "chrome/browser/profiles/profile_manager.h" | 30 #include "chrome/browser/profiles/profile_manager.h" |
31 #include "chrome/browser/task_manager/task_manager.h" | 31 #include "chrome/browser/task_manager/task_manager.h" |
32 #include "chrome/common/pref_names.h" | 32 #include "chrome/common/pref_names.h" |
33 #include "chrome/common/url_constants.h" | 33 #include "chrome/common/url_constants.h" |
34 #include "components/data_reduction_proxy/browser/data_reduction_proxy_auth_requ est_handler.h" | 34 #include "components/data_reduction_proxy/browser/data_reduction_proxy_auth_requ est_handler.h" |
35 #include "components/data_reduction_proxy/browser/data_reduction_proxy_metrics.h " | 35 #include "components/data_reduction_proxy/browser/data_reduction_proxy_metrics.h " |
36 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" | 36 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" |
37 #include "components/data_reduction_proxy/browser/data_reduction_proxy_protocol. h" | 37 #include "components/data_reduction_proxy/browser/data_reduction_proxy_protocol. h" |
38 #include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_sta ts.h" | 38 #include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_sta ts.h" |
39 #include "components/data_reduction_proxy/common/data_reduction_proxy_pref_names .h" | |
39 #include "components/domain_reliability/monitor.h" | 40 #include "components/domain_reliability/monitor.h" |
40 #include "components/google/core/browser/google_util.h" | 41 #include "components/google/core/browser/google_util.h" |
41 #include "content/public/browser/browser_thread.h" | 42 #include "content/public/browser/browser_thread.h" |
42 #include "content/public/browser/render_frame_host.h" | 43 #include "content/public/browser/render_frame_host.h" |
43 #include "content/public/browser/render_view_host.h" | 44 #include "content/public/browser/render_view_host.h" |
44 #include "content/public/browser/resource_request_info.h" | 45 #include "content/public/browser/resource_request_info.h" |
45 #include "extensions/common/constants.h" | 46 #include "extensions/common/constants.h" |
46 #include "net/base/host_port_pair.h" | 47 #include "net/base/host_port_pair.h" |
47 #include "net/base/net_errors.h" | 48 #include "net/base/net_errors.h" |
48 #include "net/base/net_log.h" | 49 #include "net/base/net_log.h" |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
285 | 286 |
286 } // namespace | 287 } // namespace |
287 | 288 |
288 ChromeNetworkDelegate::ChromeNetworkDelegate( | 289 ChromeNetworkDelegate::ChromeNetworkDelegate( |
289 extensions::EventRouterForwarder* event_router, | 290 extensions::EventRouterForwarder* event_router, |
290 BooleanPrefMember* enable_referrers) | 291 BooleanPrefMember* enable_referrers) |
291 : profile_(NULL), | 292 : profile_(NULL), |
292 enable_referrers_(enable_referrers), | 293 enable_referrers_(enable_referrers), |
293 enable_do_not_track_(NULL), | 294 enable_do_not_track_(NULL), |
294 force_google_safe_search_(NULL), | 295 force_google_safe_search_(NULL), |
296 data_reduction_proxy_enabled_(NULL), | |
295 #if defined(ENABLE_CONFIGURATION_POLICY) | 297 #if defined(ENABLE_CONFIGURATION_POLICY) |
296 url_blacklist_manager_(NULL), | 298 url_blacklist_manager_(NULL), |
297 #endif | 299 #endif |
298 domain_reliability_monitor_(NULL), | 300 domain_reliability_monitor_(NULL), |
299 received_content_length_(0), | 301 received_content_length_(0), |
300 original_content_length_(0), | 302 original_content_length_(0), |
301 first_request_(true), | 303 first_request_(true), |
302 prerender_tracker_(NULL), | 304 prerender_tracker_(NULL), |
303 data_reduction_proxy_params_(NULL), | 305 data_reduction_proxy_params_(NULL), |
304 data_reduction_proxy_usage_stats_(NULL), | 306 data_reduction_proxy_usage_stats_(NULL), |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
339 // static | 341 // static |
340 void ChromeNetworkDelegate::NeverThrottleRequests() { | 342 void ChromeNetworkDelegate::NeverThrottleRequests() { |
341 g_never_throttle_requests_ = true; | 343 g_never_throttle_requests_ = true; |
342 } | 344 } |
343 | 345 |
344 // static | 346 // static |
345 void ChromeNetworkDelegate::InitializePrefsOnUIThread( | 347 void ChromeNetworkDelegate::InitializePrefsOnUIThread( |
346 BooleanPrefMember* enable_referrers, | 348 BooleanPrefMember* enable_referrers, |
347 BooleanPrefMember* enable_do_not_track, | 349 BooleanPrefMember* enable_do_not_track, |
348 BooleanPrefMember* force_google_safe_search, | 350 BooleanPrefMember* force_google_safe_search, |
351 BooleanPrefMember* data_reduction_proxy_enabled, | |
349 PrefService* pref_service) { | 352 PrefService* pref_service) { |
350 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 353 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
351 enable_referrers->Init(prefs::kEnableReferrers, pref_service); | 354 enable_referrers->Init(prefs::kEnableReferrers, pref_service); |
352 enable_referrers->MoveToThread( | 355 enable_referrers->MoveToThread( |
353 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 356 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
354 if (enable_do_not_track) { | 357 if (enable_do_not_track) { |
355 enable_do_not_track->Init(prefs::kEnableDoNotTrack, pref_service); | 358 enable_do_not_track->Init(prefs::kEnableDoNotTrack, pref_service); |
356 enable_do_not_track->MoveToThread( | 359 enable_do_not_track->MoveToThread( |
357 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 360 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
358 } | 361 } |
359 if (force_google_safe_search) { | 362 if (force_google_safe_search) { |
360 force_google_safe_search->Init(prefs::kForceSafeSearch, pref_service); | 363 force_google_safe_search->Init(prefs::kForceSafeSearch, pref_service); |
361 force_google_safe_search->MoveToThread( | 364 force_google_safe_search->MoveToThread( |
362 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 365 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
363 } | 366 } |
367 if (data_reduction_proxy_enabled) { | |
368 data_reduction_proxy_enabled->Init( | |
369 data_reduction_proxy::prefs::kDataReductionProxyEnabled, | |
370 pref_service); | |
371 data_reduction_proxy_enabled->MoveToThread( | |
372 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | |
373 } | |
364 } | 374 } |
365 | 375 |
366 // static | 376 // static |
367 void ChromeNetworkDelegate::AllowAccessToAllFiles() { | 377 void ChromeNetworkDelegate::AllowAccessToAllFiles() { |
368 g_allow_file_access_ = true; | 378 g_allow_file_access_ = true; |
369 } | 379 } |
370 | 380 |
371 // static | 381 // static |
372 base::Value* ChromeNetworkDelegate::HistoricNetworkStatsInfoToValue() { | 382 base::Value* ChromeNetworkDelegate::HistoricNetworkStatsInfoToValue() { |
373 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
497 const net::HttpRequestHeaders& headers) { | 507 const net::HttpRequestHeaders& headers) { |
498 extensions_delegate_->OnSendHeaders(request, headers); | 508 extensions_delegate_->OnSendHeaders(request, headers); |
499 } | 509 } |
500 | 510 |
501 int ChromeNetworkDelegate::OnHeadersReceived( | 511 int ChromeNetworkDelegate::OnHeadersReceived( |
502 net::URLRequest* request, | 512 net::URLRequest* request, |
503 const net::CompletionCallback& callback, | 513 const net::CompletionCallback& callback, |
504 const net::HttpResponseHeaders* original_response_headers, | 514 const net::HttpResponseHeaders* original_response_headers, |
505 scoped_refptr<net::HttpResponseHeaders>* override_response_headers, | 515 scoped_refptr<net::HttpResponseHeaders>* override_response_headers, |
506 GURL* allowed_unsafe_redirect_url) { | 516 GURL* allowed_unsafe_redirect_url) { |
517 net::ProxyService::DataReductionProxyBypassType bypass_type = | |
518 net::ProxyService::BYPASS_EVENT_TYPE_MAX; | |
507 if (data_reduction_proxy::MaybeBypassProxyAndPrepareToRetry( | 519 if (data_reduction_proxy::MaybeBypassProxyAndPrepareToRetry( |
520 bypass_type, | |
508 data_reduction_proxy_params_, | 521 data_reduction_proxy_params_, |
509 request, | 522 request, |
510 original_response_headers, | 523 original_response_headers, |
511 override_response_headers)) { | 524 override_response_headers)) { |
525 data_reduction_proxy_usage_stats_->SetBypassType(bypass_type); | |
mef
2014/07/15 18:20:04
Is it expected to always be net::ProxyService::BYP
| |
512 return net::OK; | 526 return net::OK; |
513 } | 527 } |
514 | 528 |
515 return extensions_delegate_->OnHeadersReceived( | 529 return extensions_delegate_->OnHeadersReceived( |
516 request, | 530 request, |
517 callback, | 531 callback, |
518 original_response_headers, | 532 original_response_headers, |
519 override_response_headers, | 533 override_response_headers, |
520 allowed_unsafe_redirect_url); | 534 allowed_unsafe_redirect_url); |
521 } | 535 } |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
591 int64 adjusted_original_content_length = | 605 int64 adjusted_original_content_length = |
592 data_reduction_proxy::GetAdjustedOriginalContentLength( | 606 data_reduction_proxy::GetAdjustedOriginalContentLength( |
593 request_type, original_content_length, | 607 request_type, original_content_length, |
594 received_content_length); | 608 received_content_length); |
595 AccumulateContentLength(received_content_length, | 609 AccumulateContentLength(received_content_length, |
596 adjusted_original_content_length, | 610 adjusted_original_content_length, |
597 request_type); | 611 request_type); |
598 RecordContentLengthHistograms(received_content_length, | 612 RecordContentLengthHistograms(received_content_length, |
599 original_content_length, | 613 original_content_length, |
600 freshness_lifetime); | 614 freshness_lifetime); |
615 data_reduction_proxy_usage_stats_->RecordBypassedBytesHistograms( | |
616 received_content_length, request, data_reduction_proxy_enabled_); | |
601 DVLOG(2) << __FUNCTION__ | 617 DVLOG(2) << __FUNCTION__ |
602 << " received content length: " << received_content_length | 618 << " received content length: " << received_content_length |
603 << " original content length: " << original_content_length | 619 << " original content length: " << original_content_length |
604 << " url: " << request->url(); | 620 << " url: " << request->url(); |
605 } | 621 } |
606 | 622 |
607 extensions_delegate_->OnCompleted(request, started); | 623 extensions_delegate_->OnCompleted(request, started); |
608 } else if (request->status().status() == net::URLRequestStatus::FAILED || | 624 } else if (request->status().status() == net::URLRequestStatus::FAILED || |
609 request->status().status() == net::URLRequestStatus::CANCELED) { | 625 request->status().status() == net::URLRequestStatus::CANCELED) { |
610 extensions_delegate_->OnCompleted(request, started); | 626 extensions_delegate_->OnCompleted(request, started); |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
824 data_reduction_proxy::DataReductionProxyRequestType request_type) { | 840 data_reduction_proxy::DataReductionProxyRequestType request_type) { |
825 DCHECK_GE(received_content_length, 0); | 841 DCHECK_GE(received_content_length, 0); |
826 DCHECK_GE(original_content_length, 0); | 842 DCHECK_GE(original_content_length, 0); |
827 StoreAccumulatedContentLength(received_content_length, | 843 StoreAccumulatedContentLength(received_content_length, |
828 original_content_length, | 844 original_content_length, |
829 request_type, | 845 request_type, |
830 reinterpret_cast<Profile*>(profile_)); | 846 reinterpret_cast<Profile*>(profile_)); |
831 received_content_length_ += received_content_length; | 847 received_content_length_ += received_content_length; |
832 original_content_length_ += original_content_length; | 848 original_content_length_ += original_content_length; |
833 } | 849 } |
OLD | NEW |