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 |
11 #include "base/base_paths.h" | 11 #include "base/base_paths.h" |
12 #include "base/debug/trace_event.h" | 12 #include "base/debug/trace_event.h" |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
| 15 #include "base/metrics/user_metrics.h" |
15 #include "base/path_service.h" | 16 #include "base/path_service.h" |
16 #include "base/prefs/pref_member.h" | 17 #include "base/prefs/pref_member.h" |
17 #include "base/prefs/pref_service.h" | 18 #include "base/prefs/pref_service.h" |
18 #include "base/strings/string_number_conversions.h" | 19 #include "base/strings/string_number_conversions.h" |
19 #include "base/time/time.h" | 20 #include "base/time/time.h" |
20 #include "chrome/browser/browser_process.h" | 21 #include "chrome/browser/browser_process.h" |
21 #include "chrome/browser/content_settings/cookie_settings.h" | 22 #include "chrome/browser/content_settings/cookie_settings.h" |
22 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 23 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
23 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" | 24 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
24 #include "chrome/browser/net/chrome_extensions_network_delegate.h" | 25 #include "chrome/browser/net/chrome_extensions_network_delegate.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 | 227 |
227 void RecordIOThreadToRequestStartOnUIThread( | 228 void RecordIOThreadToRequestStartOnUIThread( |
228 const base::TimeTicks& request_start) { | 229 const base::TimeTicks& request_start) { |
229 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 230 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
230 base::TimeDelta request_lag = request_start - | 231 base::TimeDelta request_lag = request_start - |
231 g_browser_process->io_thread()->creation_time(); | 232 g_browser_process->io_thread()->creation_time(); |
232 UMA_HISTOGRAM_TIMES("Net.IOThreadCreationToHTTPRequestStart", request_lag); | 233 UMA_HISTOGRAM_TIMES("Net.IOThreadCreationToHTTPRequestStart", request_lag); |
233 } | 234 } |
234 #endif // defined(OS_ANDROID) | 235 #endif // defined(OS_ANDROID) |
235 | 236 |
| 237 void ReportInvalidReferrerSend(const GURL& target_url, |
| 238 const GURL& referrer_url) { |
| 239 base::RecordAction( |
| 240 base::UserMetricsAction("Net.URLRequest_StartJob_InvalidReferrer")); |
| 241 } |
| 242 |
236 } // namespace | 243 } // namespace |
237 | 244 |
238 ChromeNetworkDelegate::ChromeNetworkDelegate( | 245 ChromeNetworkDelegate::ChromeNetworkDelegate( |
239 extensions::EventRouterForwarder* event_router, | 246 extensions::EventRouterForwarder* event_router, |
240 BooleanPrefMember* enable_referrers) | 247 BooleanPrefMember* enable_referrers) |
241 : profile_(NULL), | 248 : profile_(NULL), |
242 enable_referrers_(enable_referrers), | 249 enable_referrers_(enable_referrers), |
243 enable_do_not_track_(NULL), | 250 enable_do_not_track_(NULL), |
244 force_google_safe_search_(NULL), | 251 force_google_safe_search_(NULL), |
245 data_reduction_proxy_enabled_(NULL), | 252 data_reduction_proxy_enabled_(NULL), |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
804 socket->net_log()->AddEvent( | 811 socket->net_log()->AddEvent( |
805 net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST, | 812 net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST, |
806 net::NetLog::StringCallback("url", | 813 net::NetLog::StringCallback("url", |
807 &socket->url().possibly_invalid_spec())); | 814 &socket->url().possibly_invalid_spec())); |
808 return net::ERR_BLOCKED_BY_ADMINISTRATOR; | 815 return net::ERR_BLOCKED_BY_ADMINISTRATOR; |
809 } | 816 } |
810 #endif | 817 #endif |
811 return net::OK; | 818 return net::OK; |
812 } | 819 } |
813 | 820 |
| 821 bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader( |
| 822 const net::URLRequest& request, |
| 823 const GURL& target_url, |
| 824 const GURL& referrer_url) const { |
| 825 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 826 base::Bind(&ReportInvalidReferrerSend, target_url, referrer_url)); |
| 827 return true; |
| 828 } |
| 829 |
814 void ChromeNetworkDelegate::AccumulateContentLength( | 830 void ChromeNetworkDelegate::AccumulateContentLength( |
815 int64 received_content_length, | 831 int64 received_content_length, |
816 int64 original_content_length, | 832 int64 original_content_length, |
817 data_reduction_proxy::DataReductionProxyRequestType request_type) { | 833 data_reduction_proxy::DataReductionProxyRequestType request_type) { |
818 DCHECK_GE(received_content_length, 0); | 834 DCHECK_GE(received_content_length, 0); |
819 DCHECK_GE(original_content_length, 0); | 835 DCHECK_GE(original_content_length, 0); |
820 StoreAccumulatedContentLength(received_content_length, | 836 StoreAccumulatedContentLength(received_content_length, |
821 original_content_length, | 837 original_content_length, |
822 request_type, | 838 request_type, |
823 reinterpret_cast<Profile*>(profile_)); | 839 reinterpret_cast<Profile*>(profile_)); |
824 received_content_length_ += received_content_length; | 840 received_content_length_ += received_content_length; |
825 original_content_length_ += original_content_length; | 841 original_content_length_ += original_content_length; |
826 } | 842 } |
OLD | NEW |