Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dana's nits Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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, &param)) 1536 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param))
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
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
OLDNEW
« no previous file with comments | « content/browser/renderer_host/delegated_frame_host.cc ('k') | content/browser/renderer_host/render_widget_host_view_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698