| 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 db99ea7c5be1dffdad3cdbe1ffd7784d160f7264..2d787943b9833fd0e5320fb717cc60558ca7c84d 100644
|
| --- a/content/renderer/gpu/render_widget_compositor.cc
|
| +++ b/content/renderer/gpu/render_widget_compositor.cc
|
| @@ -877,6 +877,51 @@ void RenderWidgetCompositor::ApplyViewportDeltas(
|
| top_controls_delta);
|
| }
|
|
|
| +namespace {
|
| +
|
| +blink::WebFrameTimingEvent CompositeTimingEventToDouble(
|
| + const cc::FrameTimingTracker::CompositeTimingEvent& event) {
|
| + return blink::WebFrameTimingEvent(event.frame_id,
|
| + (event.timestamp - base::TimeTicks()).InSecondsF());
|
| +}
|
| +
|
| +blink::WebFrameTimingEvent MainFrameTimingEventToDouble(
|
| + const cc::FrameTimingTracker::MainFrameTimingEvent& event) {
|
| + return blink::WebFrameTimingEvent(event.frame_id,
|
| + (event.timestamp - base::TimeTicks()).InSecondsF(),
|
| + (event.end_time - base::TimeTicks()).InSecondsF());
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +void RenderWidgetCompositor::RecordCompositeTimings(
|
| + cc::FrameTimingTracker::CompositeTimingSet* composites) {
|
| + for (const auto& record : *composites ) {
|
| + int64_t frameId = record.first;
|
| + const std::vector<cc::FrameTimingTracker::CompositeTimingEvent>& events =
|
| + record.second;
|
| + std::vector<blink::WebFrameTimingEvent> webEvents(events.size());
|
| + std::transform(events.begin(), events.end(), webEvents.begin(),
|
| + CompositeTimingEventToDouble);
|
| + widget_->webwidget()->recordFrameTimingEvent(
|
| + blink::WebWidget::CompositeEvent, frameId, webEvents);
|
| + }
|
| +}
|
| +
|
| +void RenderWidgetCompositor::RecordRenderTimings(
|
| + cc::FrameTimingTracker::MainFrameTimingSet* renders) {
|
| + for (const auto& record : *renders ) {
|
| + int64_t frameId = record.first;
|
| + const std::vector<cc::FrameTimingTracker::MainFrameTimingEvent>& events =
|
| + record.second;
|
| + std::vector<blink::WebFrameTimingEvent> webEvents(events.size());
|
| + std::transform(events.begin(), events.end(), webEvents.begin(),
|
| + MainFrameTimingEventToDouble);
|
| + widget_->webwidget()->recordFrameTimingEvent(
|
| + blink::WebWidget::RenderEvent, frameId, webEvents);
|
| + }
|
| +}
|
| +
|
| void RenderWidgetCompositor::RequestNewOutputSurface() {
|
| // If the host is closing, then no more compositing is possible. This
|
| // prevents shutdown races between handling the close message and
|
|
|