Index: components/page_load_metrics/renderer/metrics_render_frame_observer.cc |
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc |
index 9f923939a8ec3771b32f722a652a8ae35f7a4dcb..e3066f836a158901e0586a036cedc8760c12d2ac 100644 |
--- a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc |
+++ b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc |
@@ -11,6 +11,7 @@ |
#include "base/timer/timer.h" |
#include "components/page_load_metrics/renderer/page_timing_metrics_sender.h" |
#include "content/public/renderer/render_frame.h" |
+#include "services/shell/public/cpp/interface_provider.h" |
#include "third_party/WebKit/public/platform/WebURLResponse.h" |
#include "third_party/WebKit/public/web/WebDataSource.h" |
#include "third_party/WebKit/public/web/WebDocument.h" |
@@ -32,7 +33,16 @@ base::TimeDelta ClampDelta(double event, double start) { |
MetricsRenderFrameObserver::MetricsRenderFrameObserver( |
content::RenderFrame* render_frame) |
- : content::RenderFrameObserver(render_frame) {} |
+ : content::RenderFrameObserver(render_frame) { |
+ render_frame->GetRemoteInterfaces()->GetInterface( |
+ mojo::GetProxy(&page_load_metrics_)); |
+} |
+ |
+MetricsRenderFrameObserver::MetricsRenderFrameObserver( |
+ content::RenderFrame* render_frame, |
+ page_load_metrics::mojom::PageLoadMetricsPtr page_load_metrics) |
+ : content::RenderFrameObserver(render_frame), |
+ page_load_metrics_(std::move(page_load_metrics)) {} |
MetricsRenderFrameObserver::~MetricsRenderFrameObserver() {} |
@@ -67,8 +77,8 @@ void MetricsRenderFrameObserver::DidCommitProvisionalLoad( |
if (ShouldSendMetrics()) { |
PageLoadTiming timing(GetTiming()); |
DCHECK(!timing.navigation_start.is_null()); |
- page_timing_metrics_sender_.reset( |
- new PageTimingMetricsSender(this, routing_id(), CreateTimer(), timing)); |
+ page_timing_metrics_sender_.reset(new PageTimingMetricsSender( |
+ page_load_metrics_.get(), CreateTimer(), timing)); |
} |
} |