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

Unified Diff: chrome/browser/page_load_metrics/metrics_web_contents_observer.cc

Issue 2218583002: [page_load_metrics] Log cache warmth ratios at parse stop (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: thestig@ review Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
index f34a99596684586f6fd870b85392677e2762b6e4..30106cd952933e10bcdecb429ee7a906aaa27a0b 100644
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
@@ -259,6 +259,8 @@ PageLoadTracker::PageLoadTracker(
abort_type_(ABORT_NONE),
started_in_foreground_(in_foreground),
page_transition_(navigation_handle->GetPageTransition()),
+ num_cache_requests_(0),
+ num_network_requests_(0),
aborted_chain_size_(aborted_chain_size),
aborted_chain_size_same_url_(aborted_chain_size_same_url),
embedder_interface_(embedder_interface) {
@@ -478,6 +480,14 @@ bool PageLoadTracker::UpdateTiming(const PageLoadTiming& new_timing,
return false;
}
+void PageLoadTracker::OnLoadedSubresource(bool was_cached) {
+ if (was_cached) {
+ ++num_cache_requests_;
+ } else {
+ ++num_network_requests_;
+ }
+}
+
void PageLoadTracker::StopTracking() {
did_stop_tracking_ = true;
}
@@ -545,7 +555,7 @@ PageLoadExtraInfo PageLoadTracker::ComputePageLoadExtraInfo() {
return PageLoadExtraInfo(
first_background_time, first_foreground_time, started_in_foreground_,
commit_time_.is_null() ? GURL() : url_, time_to_commit, abort_type_,
- time_to_abort, metadata_);
+ time_to_abort, num_cache_requests_, num_network_requests_, metadata_);
}
void PageLoadTracker::NotifyAbort(UserAbortType abort_type,
@@ -732,6 +742,22 @@ void MetricsWebContentsObserver::WillStartNavigationRequest(
navigation_handle, chain_size, chain_size_same_url))));
}
+void MetricsWebContentsObserver::OnRequestComplete(
+ content::ResourceType resource_type,
+ bool was_cached,
+ int net_error) {
+ // For simplicity, only count subresources. Navigations are hard to attribute
+ // here because we won't have a committed load by the time data streams in
+ // from the IO thread.
+ if (resource_type == content::RESOURCE_TYPE_MAIN_FRAME &&
+ net_error != net::OK) {
+ return;
+ }
+ if (!committed_load_)
+ return;
+ committed_load_->OnLoadedSubresource(was_cached);
+}
+
const PageLoadExtraInfo
MetricsWebContentsObserver::GetPageLoadExtraInfoForCommittedLoad() {
DCHECK(committed_load_);

Powered by Google App Engine
This is Rietveld 408576698