| 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();
|
|
|