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 1517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1528 | 1528 |
1529 bool RenderWidgetHostImpl::OnSwapCompositorFrame( | 1529 bool RenderWidgetHostImpl::OnSwapCompositorFrame( |
1530 const IPC::Message& message) { | 1530 const IPC::Message& message) { |
1531 // This trace event is used in | 1531 // This trace event is used in |
1532 // chrome/browser/extensions/api/cast_streaming/performance_test.cc | 1532 // chrome/browser/extensions/api/cast_streaming/performance_test.cc |
1533 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame"); | 1533 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame"); |
1534 | 1534 |
1535 ViewHostMsg_SwapCompositorFrame::Param param; | 1535 ViewHostMsg_SwapCompositorFrame::Param param; |
1536 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, ¶m)) | 1536 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, ¶m)) |
1537 return false; | 1537 return false; |
1538 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 1538 cc::CompositorFrame frame(std::move(std::get<1>(param))); |
1539 uint32_t output_surface_id = std::get<0>(param); | 1539 uint32_t output_surface_id = std::get<0>(param); |
1540 std::get<1>(param).AssignTo(frame.get()); | |
1541 std::vector<IPC::Message> messages_to_deliver_with_frame; | 1540 std::vector<IPC::Message> messages_to_deliver_with_frame; |
1542 messages_to_deliver_with_frame.swap(std::get<2>(param)); | 1541 messages_to_deliver_with_frame.swap(std::get<2>(param)); |
1543 | 1542 |
1544 if (!ui::LatencyInfo::Verify(frame->metadata.latency_info, | 1543 if (!ui::LatencyInfo::Verify(frame.metadata.latency_info, |
1545 "RenderWidgetHostImpl::OnSwapCompositorFrame")) { | 1544 "RenderWidgetHostImpl::OnSwapCompositorFrame")) { |
1546 std::vector<ui::LatencyInfo>().swap(frame->metadata.latency_info); | 1545 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info); |
1547 } | 1546 } |
1548 | 1547 |
1549 latency_tracker_.OnSwapCompositorFrame(&frame->metadata.latency_info); | 1548 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info); |
1550 | 1549 |
1551 bool is_mobile_optimized = IsMobileOptimizedFrame(frame->metadata); | 1550 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); |
1552 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); | 1551 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); |
1553 if (touch_emulator_) | 1552 if (touch_emulator_) |
1554 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1553 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
1555 | 1554 |
1556 if (view_) { | 1555 if (view_) { |
1557 view_->OnSwapCompositorFrame(output_surface_id, std::move(frame)); | 1556 view_->OnSwapCompositorFrame(output_surface_id, std::move(frame)); |
1558 view_->DidReceiveRendererFrame(); | 1557 view_->DidReceiveRendererFrame(); |
1559 } else { | 1558 } else { |
1560 cc::CompositorFrameAck ack; | 1559 cc::CompositorFrameAck ack; |
1561 if (frame->gl_frame_data) { | 1560 if (frame.gl_frame_data) { |
1562 ack.gl_frame_data = std::move(frame->gl_frame_data); | 1561 ack.gl_frame_data = std::move(frame.gl_frame_data); |
1563 ack.gl_frame_data->sync_token.Clear(); | 1562 ack.gl_frame_data->sync_token.Clear(); |
1564 } else if (frame->delegated_frame_data) { | 1563 } else if (frame.delegated_frame_data) { |
1565 cc::TransferableResource::ReturnResources( | 1564 cc::TransferableResource::ReturnResources( |
1566 frame->delegated_frame_data->resource_list, | 1565 frame.delegated_frame_data->resource_list, &ack.resources); |
1567 &ack.resources); | |
1568 } | 1566 } |
1569 SendSwapCompositorFrameAck(routing_id_, output_surface_id, | 1567 SendSwapCompositorFrameAck(routing_id_, output_surface_id, |
1570 process_->GetID(), ack); | 1568 process_->GetID(), ack); |
1571 } | 1569 } |
1572 | 1570 |
1573 RenderProcessHost* rph = GetProcess(); | 1571 RenderProcessHost* rph = GetProcess(); |
1574 for (std::vector<IPC::Message>::const_iterator i = | 1572 for (std::vector<IPC::Message>::const_iterator i = |
1575 messages_to_deliver_with_frame.begin(); | 1573 messages_to_deliver_with_frame.begin(); |
1576 i != messages_to_deliver_with_frame.end(); | 1574 i != messages_to_deliver_with_frame.end(); |
1577 ++i) { | 1575 ++i) { |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2146 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL; | 2144 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL; |
2147 } | 2145 } |
2148 | 2146 |
2149 BrowserAccessibilityManager* | 2147 BrowserAccessibilityManager* |
2150 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() { | 2148 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() { |
2151 return delegate_ ? | 2149 return delegate_ ? |
2152 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL; | 2150 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL; |
2153 } | 2151 } |
2154 | 2152 |
2155 } // namespace content | 2153 } // namespace content |
OLD | NEW |