From 1b123400eb70fa4710f21caab8d716396beacfb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Wed, 26 Jul 2017 20:24:42 +0200 Subject: Wait for actual paint before setting paint related metrics --- components/layout_thread/lib.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'components/layout_thread/lib.rs') diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs index 097cf74a2ac..caff54134d7 100644 --- a/components/layout_thread/lib.rs +++ b/components/layout_thread/lib.rs @@ -674,6 +674,10 @@ impl LayoutThread { Request::FromPipeline(LayoutControlMsg::ExitNow) => { self.handle_request_helper(Msg::ExitNow, possibly_locked_rw_data) }, + Request::FromPipeline(LayoutControlMsg::PaintMetric(epoch, paint_time)) => { + self.paint_time_metrics.maybe_set_metric(epoch, paint_time); + true + }, Request::FromScript(msg) => { self.handle_request_helper(msg, possibly_locked_rw_data) }, @@ -1079,10 +1083,10 @@ impl LayoutThread { let viewport_size = webrender_api::LayoutSize::from_untyped(&viewport_size); - // Set paint metrics if needed right before sending the display list to WebRender. - // XXX At some point, we may want to set this metric from WebRender itself. - self.paint_time_metrics.maybe_set_first_paint(self); - self.paint_time_metrics.maybe_set_first_contentful_paint(self, &display_list); + // Observe notifications about rendered frames if needed right before + // sending the display list to WebRender in order to set time related + // Progressive Web Metrics. + self.paint_time_metrics.maybe_observe_paint_time(self, epoch, &display_list); self.webrender_api.set_display_list( self.webrender_document, -- cgit v1.2.3