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

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

Issue 2337913003: Fork cc::OutputSurface into cc::CompositorFrameSink. (Closed)
Patch Set: cfsfork: ccperftests2 Created 4 years, 3 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 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 bool RenderWidgetHostImpl::OnSwapCompositorFrame( 1589 bool RenderWidgetHostImpl::OnSwapCompositorFrame(
1590 const IPC::Message& message) { 1590 const IPC::Message& message) {
1591 // This trace event is used in 1591 // This trace event is used in
1592 // chrome/browser/extensions/api/cast_streaming/performance_test.cc 1592 // chrome/browser/extensions/api/cast_streaming/performance_test.cc
1593 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame"); 1593 TRACE_EVENT0("test_fps,benchmark", "OnSwapCompositorFrame");
1594 1594
1595 ViewHostMsg_SwapCompositorFrame::Param param; 1595 ViewHostMsg_SwapCompositorFrame::Param param;
1596 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param)) 1596 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param))
1597 return false; 1597 return false;
1598 cc::CompositorFrame frame(std::move(std::get<1>(param))); 1598 cc::CompositorFrame frame(std::move(std::get<1>(param)));
1599 uint32_t output_surface_id = std::get<0>(param); 1599 uint32_t compositor_frame_sink_id = std::get<0>(param);
1600 std::vector<IPC::Message> messages_to_deliver_with_frame; 1600 std::vector<IPC::Message> messages_to_deliver_with_frame;
1601 messages_to_deliver_with_frame.swap(std::get<2>(param)); 1601 messages_to_deliver_with_frame.swap(std::get<2>(param));
1602 1602
1603 if (!ui::LatencyInfo::Verify(frame.metadata.latency_info, 1603 if (!ui::LatencyInfo::Verify(frame.metadata.latency_info,
1604 "RenderWidgetHostImpl::OnSwapCompositorFrame")) { 1604 "RenderWidgetHostImpl::OnSwapCompositorFrame")) {
1605 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info); 1605 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info);
1606 } 1606 }
1607 1607
1608 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info); 1608 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info);
1609 1609
1610 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); 1610 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata);
1611 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); 1611 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized);
1612 if (touch_emulator_) 1612 if (touch_emulator_)
1613 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); 1613 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized);
1614 1614
1615 if (view_) { 1615 if (view_) {
1616 view_->OnSwapCompositorFrame(output_surface_id, std::move(frame)); 1616 view_->OnSwapCompositorFrame(compositor_frame_sink_id, std::move(frame));
1617 view_->DidReceiveRendererFrame(); 1617 view_->DidReceiveRendererFrame();
1618 } else { 1618 } else {
1619 cc::ReturnedResourceArray resources; 1619 cc::ReturnedResourceArray resources;
1620 if (frame.delegated_frame_data) { 1620 if (frame.delegated_frame_data) {
1621 cc::TransferableResource::ReturnResources( 1621 cc::TransferableResource::ReturnResources(
1622 frame.delegated_frame_data->resource_list, &resources); 1622 frame.delegated_frame_data->resource_list, &resources);
1623 } 1623 }
1624 SendReclaimCompositorResources(routing_id_, output_surface_id, 1624 SendReclaimCompositorResources(routing_id_, compositor_frame_sink_id,
1625 process_->GetID(), true /* is_swap_ack */, 1625 process_->GetID(), true /* is_swap_ack */,
1626 resources); 1626 resources);
1627 } 1627 }
1628 1628
1629 RenderProcessHost* rph = GetProcess(); 1629 RenderProcessHost* rph = GetProcess();
1630 for (std::vector<IPC::Message>::const_iterator i = 1630 for (std::vector<IPC::Message>::const_iterator i =
1631 messages_to_deliver_with_frame.begin(); 1631 messages_to_deliver_with_frame.begin();
1632 i != messages_to_deliver_with_frame.end(); 1632 i != messages_to_deliver_with_frame.end();
1633 ++i) { 1633 ++i) {
1634 rph->OnMessageReceived(*i); 1634 rph->OnMessageReceived(*i);
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 return false; 2053 return false;
2054 } 2054 }
2055 2055
2056 Send(new ViewMsg_LockMouse_ACK(routing_id_, true)); 2056 Send(new ViewMsg_LockMouse_ACK(routing_id_, true));
2057 return true; 2057 return true;
2058 } 2058 }
2059 2059
2060 // static 2060 // static
2061 void RenderWidgetHostImpl::SendReclaimCompositorResources( 2061 void RenderWidgetHostImpl::SendReclaimCompositorResources(
2062 int32_t route_id, 2062 int32_t route_id,
2063 uint32_t output_surface_id, 2063 uint32_t compositor_frame_sink_id,
2064 int renderer_host_id, 2064 int renderer_host_id,
2065 bool is_swap_ack, 2065 bool is_swap_ack,
2066 const cc::ReturnedResourceArray& resources) { 2066 const cc::ReturnedResourceArray& resources) {
2067 RenderProcessHost* host = RenderProcessHost::FromID(renderer_host_id); 2067 RenderProcessHost* host = RenderProcessHost::FromID(renderer_host_id);
2068 if (!host) 2068 if (!host)
2069 return; 2069 return;
2070 host->Send(new ViewMsg_ReclaimCompositorResources(route_id, output_surface_id, 2070 host->Send(new ViewMsg_ReclaimCompositorResources(
2071 is_swap_ack, resources)); 2071 route_id, compositor_frame_sink_id, is_swap_ack, resources));
2072 } 2072 }
2073 2073
2074 void RenderWidgetHostImpl::DelayedAutoResized() { 2074 void RenderWidgetHostImpl::DelayedAutoResized() {
2075 gfx::Size new_size = new_auto_size_; 2075 gfx::Size new_size = new_auto_size_;
2076 // Clear the new_auto_size_ since the empty value is used as a flag to 2076 // Clear the new_auto_size_ since the empty value is used as a flag to
2077 // indicate that no callback is in progress (i.e. without this line 2077 // indicate that no callback is in progress (i.e. without this line
2078 // DelayedAutoResized will not get called again). 2078 // DelayedAutoResized will not get called again).
2079 new_auto_size_.SetSize(0, 0); 2079 new_auto_size_.SetSize(0, 0);
2080 if (!auto_resize_enabled_) 2080 if (!auto_resize_enabled_)
2081 return; 2081 return;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
2203 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL; 2203 return delegate_ ? delegate_->GetRootBrowserAccessibilityManager() : NULL;
2204 } 2204 }
2205 2205
2206 BrowserAccessibilityManager* 2206 BrowserAccessibilityManager*
2207 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() { 2207 RenderWidgetHostImpl::GetOrCreateRootBrowserAccessibilityManager() {
2208 return delegate_ ? 2208 return delegate_ ?
2209 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL; 2209 delegate_->GetOrCreateRootBrowserAccessibilityManager() : NULL;
2210 } 2210 }
2211 2211
2212 } // namespace content 2212 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698