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 7018c79cf874e87fa8a8659a6dc6ad5abcf23237..7df8709f5228be0e15bdb85eeca1bd0f2d6d5e91 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(events.size()); |
+ for (size_t i = 0; i < events.size(); ++i) { |
+ webEvents[i] = blink::WebFrameTimingEvent( |
vmpstr
2015/06/02 22:05:19
nit: just create a default vector above and .push_
MikeB
2015/06/03 20:19:20
Done.
|
+ 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(events.size()); |
+ for (size_t i = 0; i < events.size(); ++i) { |
+ webEvents[i] = blink::WebFrameTimingEvent( |
vmpstr
2015/06/02 22:05:19
nit: just create a default vector above and .push_
MikeB
2015/06/03 20:19:20
Done.
|
+ 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(); |