Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index abc113929c2b8f9cf38e7b7c8bca0e7330b3ffd8..4a3cba843336770eb27491064d5bbdfb44295d29 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -954,6 +954,38 @@ void RenderWidgetCompositor::DidAbortSwapBuffers() { |
widget_->OnSwapBuffersAborted(); |
} |
+void RenderWidgetCompositor::RecordFrameTimingEvents( |
+ scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events, |
+ scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events) { |
+ for (const auto& composite_event : *composite_events ) { |
+ int64_t frameId = composite_event.first; |
+ const std::vector<cc::FrameTimingTracker::CompositeTimingEvent>& events = |
+ composite_event.second; |
+ std::vector<blink::WebFrameTimingEvent> webEvents; |
+ for (size_t i = 0; i < events.size(); ++i) { |
+ webEvents.push_back(blink::WebFrameTimingEvent( |
+ events[i].frame_id, |
+ (events[i].timestamp - base::TimeTicks()).InSecondsF())); |
+ } |
+ widget_->webwidget()->recordFrameTimingEvent( |
+ blink::WebWidget::CompositeEvent, frameId, webEvents); |
+ } |
+ for (const auto& main_frame_event : *main_frame_events ) { |
+ int64_t frameId = main_frame_event.first; |
+ const std::vector<cc::FrameTimingTracker::MainFrameTimingEvent>& events = |
+ main_frame_event.second; |
+ std::vector<blink::WebFrameTimingEvent> webEvents; |
+ for (size_t i = 0; i < events.size(); ++i) { |
+ webEvents.push_back(blink::WebFrameTimingEvent( |
+ events[i].frame_id, |
+ (events[i].timestamp - base::TimeTicks()).InSecondsF(), |
+ (events[i].end_time - base::TimeTicks()).InSecondsF())); |
+ } |
+ widget_->webwidget()->recordFrameTimingEvent( |
+ blink::WebWidget::RenderEvent, frameId, webEvents); |
+ } |
+} |
+ |
void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { |
cc::ContextProvider* provider = |
compositor_deps_->GetSharedMainThreadContextProvider(); |