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 044495e8c15477c6feb9d26f3b8e58b564fdebe0..e6b9ebdee27b2e2d518178ad6cd35d8a8d920d56 100644 |
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
@@ -39,16 +39,6 @@ namespace page_load_metrics { |
namespace { |
-content::RenderFrameHost* GetMainFrame(content::RenderFrameHost* rfh) { |
- // Don't use rfh->GetRenderViewHost()->GetMainFrame() here because |
- // RenderViewHost is being deprecated and because in OOPIF, |
- // RenderViewHost::GetMainFrame() returns nullptr for child frames hosted in a |
- // different process from the main frame. |
- while (rfh->GetParent() != nullptr) |
- rfh = rfh->GetParent(); |
- return rfh; |
-} |
- |
UserInitiatedInfo CreateUserInitiatedInfo( |
content::NavigationHandle* navigation_handle, |
PageLoadTracker* committed_load) { |
@@ -595,19 +585,15 @@ void MetricsWebContentsObserver::OnTimingUpdated( |
if (error) |
return; |
- if (render_frame_host->GetParent() != nullptr) { |
- // Child frames may send PageLoadMetadata updates, but not PageLoadTiming |
- // updates. |
- if (!timing.IsEmpty()) |
- RecordInternalError(ERR_TIMING_IPC_FROM_SUBFRAME); |
- committed_load_->UpdateChildFrameMetadata(metadata); |
- return; |
+ const bool is_main_frame = (render_frame_host->GetParent() == nullptr); |
+ if (is_main_frame) { |
+ committed_load_->UpdateTiming(timing, metadata); |
+ } else { |
+ committed_load_->UpdateSubFrameTiming(render_frame_host, timing, metadata); |
} |
- committed_load_->UpdateTiming(timing, metadata); |
- |
for (auto& observer : testing_observers_) |
- observer.OnTimingUpdated(timing, metadata); |
+ observer.OnTimingUpdated(is_main_frame, timing, metadata); |
} |
bool MetricsWebContentsObserver::ShouldTrackNavigation( |