OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/renderer_host/render_widget_host_impl.h" | 5 #include "content/browser/renderer_host/render_widget_host_impl.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 1570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1581 | 1581 |
1582 bool RenderWidgetHostImpl::OnSwapCompositorFrame( | 1582 bool RenderWidgetHostImpl::OnSwapCompositorFrame( |
1583 const IPC::Message& message) { | 1583 const IPC::Message& message) { |
1584 // This trace event is used in | 1584 // This trace event is used in |
1585 // chrome/browser/extensions/api/cast_streaming/performance_test.cc | 1585 // chrome/browser/extensions/api/cast_streaming/performance_test.cc |
1586 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame"); | 1586 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame"); |
1587 | 1587 |
1588 ViewHostMsg_SwapCompositorFrame::Param param; | 1588 ViewHostMsg_SwapCompositorFrame::Param param; |
1589 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, ¶m)) | 1589 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, ¶m)) |
1590 return false; | 1590 return false; |
1591 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 1591 cc::CompositorFrame frame(std::move(std::get<1>(param))); |
1592 uint32_t output_surface_id = std::get<0>(param); | 1592 uint32_t output_surface_id = std::get<0>(param); |
1593 std::get<1>(param).AssignTo(frame.get()); | |
1594 std::vector<IPC::Message> messages_to_deliver_with_frame; | 1593 std::vector<IPC::Message> messages_to_deliver_with_frame; |
1595 messages_to_deliver_with_frame.swap(std::get<2>(param)); | 1594 messages_to_deliver_with_frame.swap(std::get<2>(param)); |
1596 | 1595 |
1597 if (!ui::LatencyInfo::Verify(frame->metadata.latency_info, | 1596 if (!ui::LatencyInfo::Verify(frame.metadata.latency_info, |
1598 "RenderWidgetHostImpl::OnSwapCompositorFrame")) { | 1597 "RenderWidgetHostImpl::OnSwapCompositorFrame")) { |
1599 std::vector<ui::LatencyInfo>().swap(frame->metadata.latency_info); | 1598 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info); |
1600 } | 1599 } |
1601 | 1600 |
1602 latency_tracker_.OnSwapCompositorFrame(&frame->metadata.latency_info); | 1601 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info); |
1603 | 1602 |
1604 bool is_mobile_optimized = IsMobileOptimizedFrame(frame->metadata); | 1603 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); |
1605 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); | 1604 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); |
1606 if (touch_emulator_) | 1605 if (touch_emulator_) |
1607 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1606 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
1608 | 1607 |
1609 if (view_) { | 1608 if (view_) { |
1610 view_->OnSwapCompositorFrame(output_surface_id, std::move(frame)); | 1609 view_->OnSwapCompositorFrame(output_surface_id, std::move(frame)); |
1611 view_->DidReceiveRendererFrame(); | 1610 view_->DidReceiveRendererFrame(); |
1612 } else { | 1611 } else { |
1613 cc::CompositorFrameAck ack; | 1612 cc::CompositorFrameAck ack; |
1614 if (frame->gl_frame_data) { | 1613 if (frame.gl_frame_data) { |
1615 ack.gl_frame_data = std::move(frame->gl_frame_data); | 1614 ack.gl_frame_data = std::move(frame.gl_frame_data); |
1616 ack.gl_frame_data->sync_token.Clear(); | 1615 ack.gl_frame_data->sync_token.Clear(); |
1617 } else if (frame->delegated_frame_data) { | 1616 } else if (frame.delegated_frame_data) { |
1618 cc::TransferableResource::ReturnResources( | 1617 cc::TransferableResource::ReturnResources( |
1619 frame->delegated_frame_data->resource_list, | 1618 frame.delegated_frame_data->resource_list, &ack.resources); |
1620 &ack.resources); | |
1621 } | 1619 } |
1622 SendSwapCompositorFrameAck(routing_id_, output_surface_id, | 1620 SendSwapCompositorFrameAck(routing_id_, output_surface_id, |
1623 process_->GetID(), ack); | 1621 process_->GetID(), ack); |
1624 } | 1622 } |
1625 | 1623 |
1626 RenderProcessHost* rph = GetProcess(); | 1624 RenderProcessHost* rph = GetProcess(); |
1627 for (std::vector<IPC::Message>::const_iterator i = | 1625 for (std::vector<IPC::Message>::const_iterator i = |
1628 messages_to_deliver_with_frame.begin(); | 1626 messages_to_deliver_with_frame.begin(); |
1629 i != messages_to_deliver_with_frame.end(); | 1627 i != messages_to_deliver_with_frame.end(); |
1630 ++i) { | 1628 ++i) { |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2199 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL; | 2197 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL; |
2200 } | 2198 } |
2201 | 2199 |
2202 BrowserAccessibilityManager* | 2200 BrowserAccessibilityManager* |
2203 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() { | 2201 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() { |
2204 return delegate_ ? | 2202 return delegate_ ? |
2205 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL; | 2203 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL; |
2206 } | 2204 } |
2207 | 2205 |
2208 } // namespace content | 2206 } // namespace content |
OLD | NEW |