OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/gpu/render_widget_compositor.h" | 5 #include "content/renderer/gpu/render_widget_compositor.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 void RenderWidgetCompositor::ApplyViewportDeltas( | 870 void RenderWidgetCompositor::ApplyViewportDeltas( |
871 const gfx::Vector2d& scroll_delta, | 871 const gfx::Vector2d& scroll_delta, |
872 float page_scale, | 872 float page_scale, |
873 float top_controls_delta) { | 873 float top_controls_delta) { |
874 widget_->webwidget()->applyViewportDeltas( | 874 widget_->webwidget()->applyViewportDeltas( |
875 scroll_delta, | 875 scroll_delta, |
876 page_scale, | 876 page_scale, |
877 top_controls_delta); | 877 top_controls_delta); |
878 } | 878 } |
879 | 879 |
| 880 namespace { |
| 881 |
| 882 blink::WebFrameTimingEvent CompositeTimingEventToDouble( |
| 883 const cc::FrameTimingTracker::CompositeTimingEvent& event) { |
| 884 return blink::WebFrameTimingEvent(event.frame_id, |
| 885 (event.timestamp - base::TimeTicks()).InSecondsF()); |
| 886 } |
| 887 |
| 888 blink::WebFrameTimingEvent MainFrameTimingEventToDouble( |
| 889 const cc::FrameTimingTracker::MainFrameTimingEvent& event) { |
| 890 return blink::WebFrameTimingEvent(event.frame_id, |
| 891 (event.timestamp - base::TimeTicks()).InSecondsF(), |
| 892 (event.end_time - base::TimeTicks()).InSecondsF()); |
| 893 } |
| 894 |
| 895 } // namespace |
| 896 |
| 897 void RenderWidgetCompositor::RecordCompositeTimings( |
| 898 cc::FrameTimingTracker::CompositeTimingSet* composites) { |
| 899 for (const auto& record : *composites ) { |
| 900 int64_t frameId = record.first; |
| 901 const std::vector<cc::FrameTimingTracker::CompositeTimingEvent>& events = |
| 902 record.second; |
| 903 std::vector<blink::WebFrameTimingEvent> webEvents(events.size()); |
| 904 std::transform(events.begin(), events.end(), webEvents.begin(), |
| 905 CompositeTimingEventToDouble); |
| 906 widget_->webwidget()->recordFrameTimingEvent( |
| 907 blink::WebWidget::CompositeEvent, frameId, webEvents); |
| 908 } |
| 909 } |
| 910 |
| 911 void RenderWidgetCompositor::RecordRenderTimings( |
| 912 cc::FrameTimingTracker::MainFrameTimingSet* renders) { |
| 913 for (const auto& record : *renders ) { |
| 914 int64_t frameId = record.first; |
| 915 const std::vector<cc::FrameTimingTracker::MainFrameTimingEvent>& events = |
| 916 record.second; |
| 917 std::vector<blink::WebFrameTimingEvent> webEvents(events.size()); |
| 918 std::transform(events.begin(), events.end(), webEvents.begin(), |
| 919 MainFrameTimingEventToDouble); |
| 920 widget_->webwidget()->recordFrameTimingEvent( |
| 921 blink::WebWidget::RenderEvent, frameId, webEvents); |
| 922 } |
| 923 } |
| 924 |
880 void RenderWidgetCompositor::RequestNewOutputSurface() { | 925 void RenderWidgetCompositor::RequestNewOutputSurface() { |
881 // If the host is closing, then no more compositing is possible. This | 926 // If the host is closing, then no more compositing is possible. This |
882 // prevents shutdown races between handling the close message and | 927 // prevents shutdown races between handling the close message and |
883 // the CreateOutputSurface task. | 928 // the CreateOutputSurface task. |
884 if (widget_->host_closing()) | 929 if (widget_->host_closing()) |
885 return; | 930 return; |
886 | 931 |
887 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/466870 | 932 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/466870 |
888 // is fixed. | 933 // is fixed. |
889 tracked_objects::ScopedTracker tracking_profile( | 934 tracked_objects::ScopedTracker tracking_profile( |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 return; | 1013 return; |
969 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); | 1014 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); |
970 } | 1015 } |
971 | 1016 |
972 void RenderWidgetCompositor::SetSurfaceIdNamespace( | 1017 void RenderWidgetCompositor::SetSurfaceIdNamespace( |
973 uint32_t surface_id_namespace) { | 1018 uint32_t surface_id_namespace) { |
974 layer_tree_host_->set_surface_id_namespace(surface_id_namespace); | 1019 layer_tree_host_->set_surface_id_namespace(surface_id_namespace); |
975 } | 1020 } |
976 | 1021 |
977 } // namespace content | 1022 } // namespace content |
OLD | NEW |