Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Side by Side Diff: chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc

Issue 2841623004: Adding opt out and previews type information to DRP pingback (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/page_load_metrics/metrics_web_contents_observer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/loader/chrome_resource_dispatcher_host_delegate.h" 5 #include "chrome/browser/loader/chrome_resource_dispatcher_host_delegate.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 } 344 }
345 } 345 }
346 } 346 }
347 347
348 void NotifyUIThreadOfRequestComplete( 348 void NotifyUIThreadOfRequestComplete(
349 const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, 349 const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter,
350 const GURL& url, 350 const GURL& url,
351 const content::GlobalRequestID& request_id, 351 const content::GlobalRequestID& request_id,
352 ResourceType resource_type, 352 ResourceType resource_type,
353 bool was_cached, 353 bool was_cached,
354 bool used_data_reduction_proxy, 354 std::unique_ptr<data_reduction_proxy::DataReductionProxyData>
355 data_reduction_proxy_data,
355 int net_error, 356 int net_error,
356 int64_t total_received_bytes, 357 int64_t total_received_bytes,
357 int64_t raw_body_bytes, 358 int64_t raw_body_bytes,
358 int64_t original_content_length, 359 int64_t original_content_length,
359 base::TimeTicks request_creation_time, 360 base::TimeTicks request_creation_time,
360 base::TimeDelta request_loading_time) { 361 base::TimeDelta request_loading_time) {
361 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 362 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
362 content::WebContents* web_contents = web_contents_getter.Run(); 363 content::WebContents* web_contents = web_contents_getter.Run();
363 if (!web_contents) 364 if (!web_contents)
364 return; 365 return;
365 if (resource_type == content::RESOURCE_TYPE_MAIN_FRAME) { 366 if (resource_type == content::RESOURCE_TYPE_MAIN_FRAME) {
366 LogMainFrameMetricsOnUIThread(url, net_error, request_loading_time, 367 LogMainFrameMetricsOnUIThread(url, net_error, request_loading_time,
367 web_contents); 368 web_contents);
368 } 369 }
369 if (!was_cached) { 370 if (!was_cached) {
370 UpdatePrerenderNetworkBytesCallback(web_contents, total_received_bytes); 371 UpdatePrerenderNetworkBytesCallback(web_contents, total_received_bytes);
371 #if defined(OS_ANDROID) 372 #if defined(OS_ANDROID)
372 offline_pages::BackgroundLoaderOffliner* background_loader = 373 offline_pages::BackgroundLoaderOffliner* background_loader =
373 offline_pages::BackgroundLoaderOffliner::FromWebContents(web_contents); 374 offline_pages::BackgroundLoaderOffliner::FromWebContents(web_contents);
374 375
375 if (background_loader) 376 if (background_loader)
376 background_loader->OnNetworkBytesChanged(total_received_bytes); 377 background_loader->OnNetworkBytesChanged(total_received_bytes);
377 #endif // OS_ANDROID 378 #endif // OS_ANDROID
378 } 379 }
379 page_load_metrics::MetricsWebContentsObserver* metrics_observer = 380 page_load_metrics::MetricsWebContentsObserver* metrics_observer =
380 page_load_metrics::MetricsWebContentsObserver::FromWebContents( 381 page_load_metrics::MetricsWebContentsObserver::FromWebContents(
381 web_contents); 382 web_contents);
382 if (metrics_observer) { 383 if (metrics_observer) {
383 metrics_observer->OnRequestComplete( 384 metrics_observer->OnRequestComplete(request_id, resource_type, was_cached,
384 request_id, resource_type, was_cached, used_data_reduction_proxy, 385 std::move(data_reduction_proxy_data),
385 raw_body_bytes, original_content_length, request_creation_time); 386 raw_body_bytes, original_content_length,
387 request_creation_time);
386 } 388 }
387 } 389 }
388 390
389 } // namespace 391 } // namespace
390 392
391 ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate() 393 ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate()
392 : download_request_limiter_(g_browser_process->download_request_limiter()), 394 : download_request_limiter_(g_browser_process->download_request_limiter()),
393 safe_browsing_(g_browser_process->safe_browsing_service()) 395 safe_browsing_(g_browser_process->safe_browsing_service())
394 #if BUILDFLAG(ENABLE_EXTENSIONS) 396 #if BUILDFLAG(ENABLE_EXTENSIONS)
395 , user_script_listener_(new extensions::UserScriptListener()) 397 , user_script_listener_(new extensions::UserScriptListener())
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 if (!url_request) 817 if (!url_request)
816 return; 818 return;
817 // TODO(maksims): remove this and use net_error argument in RequestComplete 819 // TODO(maksims): remove this and use net_error argument in RequestComplete
818 // once ResourceDispatcherHostDelegate is modified. 820 // once ResourceDispatcherHostDelegate is modified.
819 int net_error = url_request->status().error(); 821 int net_error = url_request->status().error();
820 const ResourceRequestInfo* info = 822 const ResourceRequestInfo* info =
821 ResourceRequestInfo::ForRequest(url_request); 823 ResourceRequestInfo::ForRequest(url_request);
822 824
823 data_reduction_proxy::DataReductionProxyData* data = 825 data_reduction_proxy::DataReductionProxyData* data =
824 data_reduction_proxy::DataReductionProxyData::GetData(*url_request); 826 data_reduction_proxy::DataReductionProxyData::GetData(*url_request);
825 bool used_data_reduction_proxy = data && data->used_data_reduction_proxy(); 827 std::unique_ptr<data_reduction_proxy::DataReductionProxyData>
828 data_reduction_proxy_data;
829 if (data)
830 data_reduction_proxy_data = data->DeepCopy();
826 int64_t original_content_length = 831 int64_t original_content_length =
827 used_data_reduction_proxy 832 data && data->used_data_reduction_proxy()
828 ? data_reduction_proxy::util::CalculateEffectiveOCL(*url_request) 833 ? data_reduction_proxy::util::CalculateEffectiveOCL(*url_request)
829 : url_request->GetRawBodyBytes(); 834 : url_request->GetRawBodyBytes();
830 835
831 BrowserThread::PostTask( 836 BrowserThread::PostTask(
832 BrowserThread::UI, FROM_HERE, 837 BrowserThread::UI, FROM_HERE,
833 base::Bind(&NotifyUIThreadOfRequestComplete, 838 base::Bind(&NotifyUIThreadOfRequestComplete,
834 info->GetWebContentsGetterForRequest(), url_request->url(), 839 info->GetWebContentsGetterForRequest(), url_request->url(),
835 info->GetGlobalRequestID(), info->GetResourceType(), 840 info->GetGlobalRequestID(), info->GetResourceType(),
836 url_request->was_cached(), used_data_reduction_proxy, 841 url_request->was_cached(),
837 net_error, url_request->GetTotalReceivedBytes(), 842 base::Passed(&data_reduction_proxy_data), net_error,
843 url_request->GetTotalReceivedBytes(),
838 url_request->GetRawBodyBytes(), original_content_length, 844 url_request->GetRawBodyBytes(), original_content_length,
839 url_request->creation_time(), 845 url_request->creation_time(),
840 base::TimeTicks::Now() - url_request->creation_time())); 846 base::TimeTicks::Now() - url_request->creation_time()));
841 } 847 }
842 848
843 content::PreviewsState ChromeResourceDispatcherHostDelegate::GetPreviewsState( 849 content::PreviewsState ChromeResourceDispatcherHostDelegate::GetPreviewsState(
844 const net::URLRequest& url_request, 850 const net::URLRequest& url_request,
845 content::ResourceContext* resource_context) { 851 content::ResourceContext* resource_context) {
846 ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context); 852 ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
847 data_reduction_proxy::DataReductionProxyIOData* data_reduction_proxy_io_data = 853 data_reduction_proxy::DataReductionProxyIOData* data_reduction_proxy_io_data =
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 base::Bind(&ChromeResourceDispatcherHostDelegate::OnAbortedFrameLoad, 918 base::Bind(&ChromeResourceDispatcherHostDelegate::OnAbortedFrameLoad,
913 base::Unretained(this), url, request_loading_time)); 919 base::Unretained(this), url, request_loading_time));
914 return; 920 return;
915 } 921 }
916 922
917 std::string metric_name = (request_loading_time.InMilliseconds() < 100 ? 923 std::string metric_name = (request_loading_time.InMilliseconds() < 100 ?
918 "Net.ErrAborted.Fast" : "Net.ErrAborted.Slow"); 924 "Net.ErrAborted.Fast" : "Net.ErrAborted.Slow");
919 rappor::SampleDomainAndRegistryFromGURL( 925 rappor::SampleDomainAndRegistryFromGURL(
920 g_browser_process->rappor_service(), metric_name, url); 926 g_browser_process->rappor_service(), metric_name, url);
921 } 927 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/page_load_metrics/metrics_web_contents_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698