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

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

Issue 2737563007: Add support for tracking loading behavior of child frames. (Closed)
Patch Set: address comments Created 3 years, 9 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/page_load_tracker.cc
diff --git a/chrome/browser/page_load_metrics/page_load_tracker.cc b/chrome/browser/page_load_metrics/page_load_tracker.cc
index f6d8e104267d9e300da4da1dadab01eac9151889..d7f9a213ae38f05cbf2f028b0f4c765c54257182 100644
--- a/chrome/browser/page_load_metrics/page_load_tracker.cc
+++ b/chrome/browser/page_load_metrics/page_load_tracker.cc
@@ -506,6 +506,22 @@ void PageLoadTracker::NotifyClientRedirectTo(
}
}
+void PageLoadTracker::UpdateChildMetadata(
+ const PageLoadMetadata& child_metadata) {
+ // Merge the child loading behavior flags with any we've already observed,
+ // possibly from other child frames.
+ const int last_child_loading_behavior_flags =
+ child_frame_metadata_.behavior_flags;
+ child_frame_metadata_.behavior_flags |= child_metadata.behavior_flags;
+ if (last_child_loading_behavior_flags == child_frame_metadata_.behavior_flags)
+ return;
+
+ PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo());
+ for (const auto& observer : observers_) {
+ observer->OnLoadingBehaviorObserved(extra_info);
+ }
+}
+
bool PageLoadTracker::UpdateTiming(const PageLoadTiming& new_timing,
const PageLoadMetadata& new_metadata) {
// Throw away IPCs that are not relevant to the current navigation.
@@ -619,7 +635,7 @@ PageLoadExtraInfo PageLoadTracker::ComputePageLoadExtraInfo() {
first_foreground_time, started_in_foreground_,
user_initiated_info_, url(), start_url_, did_commit_,
page_end_reason_, page_end_user_initiated_info_,
- page_end_time, metadata_);
+ page_end_time, metadata_, child_frame_metadata_);
}
bool PageLoadTracker::HasMatchingNavigationRequestID(

Powered by Google App Engine
This is Rietveld 408576698