diff options
author | jbauman <jbauman@chromium.org> | 2016-02-04 17:07:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-05 01:08:27 +0000 |
commit | 42dd9fb1e8ab9e0e4d1e5f813b1f2a8b52e835f1 (patch) | |
tree | 5a38ef7c4e98625b3553aed759b8324c2719f21e | |
parent | ea7809e7f3db13f2fdc2393c085e5debcd535bbe (diff) | |
download | chromium_src-42dd9fb1e8ab9e0e4d1e5f813b1f2a8b52e835f1.zip chromium_src-42dd9fb1e8ab9e0e4d1e5f813b1f2a8b52e835f1.tar.gz chromium_src-42dd9fb1e8ab9e0e4d1e5f813b1f2a8b52e835f1.tar.bz2 |
Remove DelegatedRendererLayer and IPCs from OOPIF and webview
Surfaces should always be used instead of this path.
BUG=579275
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/1643573005
Cr-Commit-Position: refs/heads/master@{#373698}
23 files changed, 15 insertions, 609 deletions
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc index 1855e5d..65ed156 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.cc +++ b/content/browser/browser_plugin/browser_plugin_guest.cc @@ -250,8 +250,6 @@ bool BrowserPluginGuest::OnMessageReceivedFromEmbedder( bool handled = true; IPC_BEGIN_MESSAGE_MAP(BrowserPluginGuest, message) - IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_CompositorFrameSwappedACK, - OnCompositorFrameSwappedACK) IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_Detach, OnDetach) IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_DragStatusUpdate, OnDragStatusUpdate) @@ -264,8 +262,6 @@ bool BrowserPluginGuest::OnMessageReceivedFromEmbedder( IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_ImeSetComposition, OnImeSetComposition) IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_LockMouse_ACK, OnLockMouseAck) - IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_ReclaimCompositorResources, - OnReclaimCompositorResources) IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_SetEditCommandsForNextKeyEvent, OnSetEditCommandsForNextKeyEvent) IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_SetFocus, OnSetFocus) @@ -397,24 +393,6 @@ void BrowserPluginGuest::PointerLockPermissionResponse(bool allow) { new BrowserPluginMsg_SetMouseLock(browser_plugin_instance_id(), allow)); } -// TODO(wjmaclean): Remove this once any remaining users of this pathway -// are gone. -void BrowserPluginGuest::SwapCompositorFrame( - uint32_t output_surface_id, - int host_process_id, - int host_routing_id, - scoped_ptr<cc::CompositorFrame> frame) { - last_pending_frame_.reset(new FrameMsg_CompositorFrameSwapped_Params()); - frame->AssignTo(&last_pending_frame_->frame); - last_pending_frame_->output_surface_id = output_surface_id; - last_pending_frame_->producing_route_id = host_routing_id; - last_pending_frame_->producing_host_id = host_process_id; - - SendMessageToEmbedder( - new BrowserPluginMsg_CompositorFrameSwapped( - browser_plugin_instance_id(), *last_pending_frame_)); -} - void BrowserPluginGuest::SetChildFrameSurface( const cc::SurfaceId& surface_id, const gfx::Size& frame_size, @@ -752,21 +730,6 @@ void BrowserPluginGuest::Attach( WebContentsImpl* embedder_web_contents, const BrowserPluginHostMsg_Attach_Params& params) { browser_plugin_instance_id_ = browser_plugin_instance_id; - // If a guest is detaching from one container and attaching to another - // container, then late arriving ACKs may be lost if the mapping from - // |browser_plugin_instance_id| to |guest_instance_id| changes. Thus we - // ensure that we always get new frames on attachment by ACKing the pending - // frame if it's still waiting on the ACK. - if (last_pending_frame_) { - cc::CompositorFrameAck ack; - RenderWidgetHostImpl::SendSwapCompositorFrameAck( - last_pending_frame_->producing_route_id, - last_pending_frame_->output_surface_id, - last_pending_frame_->producing_host_id, - ack); - last_pending_frame_.reset(); - } - // The guest is owned by the embedder. Attach is queued up so we cannot // change embedders before attach completes. If the embedder goes away, // so does the guest and so we will never call WillAttachComplete because @@ -817,16 +780,6 @@ void BrowserPluginGuest::OnWillAttachComplete( RecordAction(base::UserMetricsAction("BrowserPlugin.Guest.Attached")); } -void BrowserPluginGuest::OnCompositorFrameSwappedACK( - int browser_plugin_instance_id, - const FrameHostMsg_CompositorFrameSwappedACK_Params& params) { - RenderWidgetHostImpl::SendSwapCompositorFrameAck(params.producing_route_id, - params.output_surface_id, - params.producing_host_id, - params.ack); - last_pending_frame_.reset(); -} - void BrowserPluginGuest::OnDetach(int browser_plugin_instance_id) { if (!attached()) return; @@ -922,15 +875,6 @@ void BrowserPluginGuest::OnExtendSelectionAndDelete( rfh->ExtendSelectionAndDelete(before, after); } -void BrowserPluginGuest::OnReclaimCompositorResources( - int browser_plugin_instance_id, - const FrameHostMsg_ReclaimCompositorResources_Params& params) { - RenderWidgetHostImpl::SendReclaimCompositorResources(params.route_id, - params.output_surface_id, - params.renderer_host_id, - params.ack); -} - void BrowserPluginGuest::OnLockMouse(bool user_gesture, bool last_unlocked_by_target, bool privileged) { diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h index 9cdc85e..e6676f7 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.h +++ b/content/browser/browser_plugin/browser_plugin_guest.h @@ -45,9 +45,6 @@ #include "ui/gfx/geometry/rect.h" struct BrowserPluginHostMsg_Attach_Params; -struct FrameHostMsg_CompositorFrameSwappedACK_Params; -struct FrameHostMsg_ReclaimCompositorResources_Params; -struct FrameMsg_CompositorFrameSwapped_Params; struct ViewHostMsg_TextInputState_Params; #if defined(OS_MACOSX) @@ -241,11 +238,7 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, void PointerLockPermissionResponse(bool allow); - // The next two functions are virtual for test purposes. - virtual void SwapCompositorFrame(uint32_t output_surface_id, - int host_process_id, - int host_routing_id, - scoped_ptr<cc::CompositorFrame> frame); + // The next function is virtual for test purposes. virtual void SetChildFrameSurface(const cc::SurfaceId& surface_id, const gfx::Size& frame_size, float scale_factor, @@ -289,9 +282,6 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, const cc::SurfaceId& id, const cc::SurfaceSequence& sequence); // Message handlers for messages from embedder. - void OnCompositorFrameSwappedACK( - int instance_id, - const FrameHostMsg_CompositorFrameSwappedACK_Params& params); void OnDetach(int instance_id); // Handles drag events from the embedder. // When dragging, the drag events go to the embedder first, and if the drag @@ -307,11 +297,6 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, void OnExecuteEditCommand(int instance_id, const std::string& command); - // Returns compositor resources reclaimed in the embedder to the guest. - void OnReclaimCompositorResources( - int instance_id, - const FrameHostMsg_ReclaimCompositorResources_Params& params); - void OnLockMouse(bool user_gesture, bool last_unlocked_by_target, bool privileged); @@ -456,15 +441,6 @@ class CONTENT_EXPORT BrowserPluginGuest : public GuestHost, // Indicates the URL dragged into the guest if any. GURL dragged_url_; - // Guests generate frames and send a CompositorFrameSwapped (CFS) message - // indicating the next frame is ready to be positioned and composited. - // Subsequent frames are not generated until the IPC is ACKed. We would like - // to ensure that the guest generates frames on attachment so we directly ACK - // an unACKed CFS. ACKs could get lost between the time a guest is detached - // from a container and the time it is attached elsewhere. This mitigates this - // race by ensuring the guest is ACKed on attachment. - scoped_ptr<FrameMsg_CompositorFrameSwapped_Params> last_pending_frame_; - // This is a queue of messages that are destined to be sent to the embedder // once the guest is attached to a particular embedder. std::deque<linked_ptr<IPC::Message> > pending_messages_; diff --git a/content/browser/frame_host/cross_process_frame_connector.cc b/content/browser/frame_host/cross_process_frame_connector.cc index fef7ff7..5105049 100644 --- a/content/browser/frame_host/cross_process_frame_connector.cc +++ b/content/browser/frame_host/cross_process_frame_connector.cc @@ -38,10 +38,6 @@ bool CrossProcessFrameConnector::OnMessageReceived(const IPC::Message& msg) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(CrossProcessFrameConnector, msg) - IPC_MESSAGE_HANDLER(FrameHostMsg_CompositorFrameSwappedACK, - OnCompositorFrameSwappedACK) - IPC_MESSAGE_HANDLER(FrameHostMsg_ReclaimCompositorResources, - OnReclaimCompositorResources) IPC_MESSAGE_HANDLER(FrameHostMsg_ForwardInputEvent, OnForwardInputEvent) IPC_MESSAGE_HANDLER(FrameHostMsg_FrameRectChanged, OnFrameRectChanged) IPC_MESSAGE_HANDLER(FrameHostMsg_VisibilityChanged, OnVisibilityChanged) @@ -76,20 +72,6 @@ void CrossProcessFrameConnector::RenderProcessGone() { frame_proxy_in_parent_renderer_->GetRoutingID())); } -void CrossProcessFrameConnector::ChildFrameCompositorFrameSwapped( - uint32_t output_surface_id, - int host_id, - int route_id, - scoped_ptr<cc::CompositorFrame> frame) { - FrameMsg_CompositorFrameSwapped_Params params; - frame->AssignTo(¶ms.frame); - params.output_surface_id = output_surface_id; - params.producing_route_id = route_id; - params.producing_host_id = host_id; - frame_proxy_in_parent_renderer_->Send(new FrameMsg_CompositorFrameSwapped( - frame_proxy_in_parent_renderer_->GetRoutingID(), params)); -} - void CrossProcessFrameConnector::SetChildFrameSurface( const cc::SurfaceId& surface_id, const gfx::Size& frame_size, @@ -120,22 +102,6 @@ void CrossProcessFrameConnector::OnRequireSequence( surface->AddDestructionDependency(sequence); } -void CrossProcessFrameConnector::OnCompositorFrameSwappedACK( - const FrameHostMsg_CompositorFrameSwappedACK_Params& params) { - RenderWidgetHostImpl::SendSwapCompositorFrameAck(params.producing_route_id, - params.output_surface_id, - params.producing_host_id, - params.ack); -} - -void CrossProcessFrameConnector::OnReclaimCompositorResources( - const FrameHostMsg_ReclaimCompositorResources_Params& params) { - RenderWidgetHostImpl::SendReclaimCompositorResources(params.route_id, - params.output_surface_id, - params.renderer_host_id, - params.ack); -} - void CrossProcessFrameConnector::OnInitializeChildFrame(gfx::Rect frame_rect, float scale_factor) { if (scale_factor != device_scale_factor_) diff --git a/content/browser/frame_host/cross_process_frame_connector.h b/content/browser/frame_host/cross_process_frame_connector.h index 6ad56a2..9958c9e 100644 --- a/content/browser/frame_host/cross_process_frame_connector.h +++ b/content/browser/frame_host/cross_process_frame_connector.h @@ -25,9 +25,6 @@ namespace IPC { class Message; } -struct FrameHostMsg_CompositorFrameSwappedACK_Params; -struct FrameHostMsg_ReclaimCompositorResources_Params; - namespace content { class RenderFrameProxyHost; class RenderWidgetHostImpl; @@ -87,11 +84,6 @@ class CONTENT_EXPORT CrossProcessFrameConnector { void RenderProcessGone(); - virtual void ChildFrameCompositorFrameSwapped( - uint32_t output_surface_id, - int host_id, - int route_id, - scoped_ptr<cc::CompositorFrame> frame); virtual void SetChildFrameSurface(const cc::SurfaceId& surface_id, const gfx::Size& frame_size, float scale_factor, @@ -110,10 +102,6 @@ class CONTENT_EXPORT CrossProcessFrameConnector { private: // Handlers for messages received from the parent frame. - void OnCompositorFrameSwappedACK( - const FrameHostMsg_CompositorFrameSwappedACK_Params& params); - void OnReclaimCompositorResources( - const FrameHostMsg_ReclaimCompositorResources_Params& params); void OnForwardInputEvent(const blink::WebInputEvent* event); void OnFrameRectChanged(const gfx::Rect& frame_rect); void OnVisibilityChanged(bool visible); diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.cc b/content/browser/frame_host/render_widget_host_view_child_frame.cc index ee65594..f1399a0 100644 --- a/content/browser/frame_host/render_widget_host_view_child_frame.cc +++ b/content/browser/frame_host/render_widget_host_view_child_frame.cc @@ -36,19 +36,16 @@ namespace content { RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( RenderWidgetHost* widget_host) : host_(RenderWidgetHostImpl::From(widget_host)), - use_surfaces_(true), next_surface_sequence_(1u), last_output_surface_id_(0), current_surface_scale_factor_(1.f), ack_pending_count_(0), frame_connector_(nullptr), weak_factory_(this) { - if (use_surfaces_) { - id_allocator_ = CreateSurfaceIdAllocator(); - if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { - host_->delegate()->GetInputEventRouter()->AddSurfaceIdNamespaceOwner( - GetSurfaceIdNamespace(), this); - } + id_allocator_ = CreateSurfaceIdAllocator(); + if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { + host_->delegate()->GetInputEventRouter()->AddSurfaceIdNamespaceOwner( + GetSurfaceIdNamespace(), this); } host_->SetView(this); @@ -211,8 +208,7 @@ void RenderWidgetHostViewChildFrame::Destroy() { frame_connector_ = NULL; } - if (use_surfaces_ && host_->delegate() && - host_->delegate()->GetInputEventRouter()) { + if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner( GetSurfaceIdNamespace()); } @@ -265,15 +261,6 @@ void RenderWidgetHostViewChildFrame::OnSwapCompositorFrame( if (!frame_connector_) return; - // When not using surfaces, the frame just gets proxied to - // the embedder's renderer to be composited. - if (!frame->delegated_frame_data || !use_surfaces_) { - frame_connector_->ChildFrameCompositorFrameSwapped( - output_surface_id, host_->GetProcess()->GetID(), host_->GetRoutingID(), - std::move(frame)); - return; - } - cc::RenderPass* root_pass = frame->delegated_frame_data->render_pass_list.back().get(); @@ -371,9 +358,6 @@ void RenderWidgetHostViewChildFrame::UnlockMouse() { } uint32_t RenderWidgetHostViewChildFrame::GetSurfaceIdNamespace() { - if (!use_surfaces_) - return 0; - return id_allocator_->id_namespace(); } @@ -404,7 +388,7 @@ void RenderWidgetHostViewChildFrame::ProcessMouseWheelEvent( gfx::Point RenderWidgetHostViewChildFrame::TransformPointToRootCoordSpace( const gfx::Point& point) { - if (!frame_connector_ || !use_surfaces_) + if (!frame_connector_) return point; return frame_connector_->TransformPointToRootCoordSpace(point, surface_id_); diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.h b/content/browser/frame_host/render_widget_host_view_child_frame.h index 817bc2e..bfff4b1 100644 --- a/content/browser/frame_host/render_widget_host_view_child_frame.h +++ b/content/browser/frame_host/render_widget_host_view_child_frame.h @@ -195,9 +195,6 @@ class CONTENT_EXPORT RenderWidgetHostViewChildFrame // The model object. RenderWidgetHostImpl* host_; - // Flag determining whether we render into a compositing Surface. - bool use_surfaces_; - // Surface-related state. scoped_ptr<cc::SurfaceIdAllocator> id_allocator_; scoped_ptr<cc::SurfaceFactory> surface_factory_; diff --git a/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc b/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc index 97a7baf..4584e08 100644 --- a/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc +++ b/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc @@ -42,23 +42,9 @@ class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { class MockCrossProcessFrameConnector : public CrossProcessFrameConnector { public: MockCrossProcessFrameConnector() - : CrossProcessFrameConnector(nullptr), - last_scale_factor_received_(0.f), - received_delegated_frame_(false) {} + : CrossProcessFrameConnector(nullptr), last_scale_factor_received_(0.f) {} ~MockCrossProcessFrameConnector() override {} - void ChildFrameCompositorFrameSwapped( - uint32_t output_surface_id, - int host_id, - int route_id, - scoped_ptr<cc::CompositorFrame> frame) override { - received_delegated_frame_ = true; - last_frame_size_received_ = - frame->delegated_frame_data->render_pass_list.back() - ->output_rect.size(); - last_scale_factor_received_ = frame->metadata.device_scale_factor; - } - void SetChildFrameSurface(const cc::SurfaceId& surface_id, const gfx::Size& frame_size, float scale_factor, @@ -71,8 +57,6 @@ class MockCrossProcessFrameConnector : public CrossProcessFrameConnector { cc::SurfaceId last_surface_id_received_; gfx::Size last_frame_size_received_; float last_scale_factor_received_; - - bool received_delegated_frame_; }; } // namespace diff --git a/content/browser/frame_host/render_widget_host_view_guest.cc b/content/browser/frame_host/render_widget_host_view_guest.cc index a080567..a1a4a59 100644 --- a/content/browser/frame_host/render_widget_host_view_guest.cc +++ b/content/browser/frame_host/render_widget_host_view_guest.cc @@ -243,13 +243,6 @@ void RenderWidgetHostViewGuest::OnSwapCompositorFrame( } last_scroll_offset_ = frame->metadata.root_scroll_offset; - // When not using surfaces, the frame just gets proxied to - // the embedder's renderer to be composited. - if (!frame->delegated_frame_data || !use_surfaces_) { - guest_->SwapCompositorFrame(output_surface_id, host_->GetProcess()->GetID(), - host_->GetRoutingID(), std::move(frame)); - return; - } cc::RenderPass* root_pass = frame->delegated_frame_data->render_pass_list.back().get(); diff --git a/content/browser/frame_host/render_widget_host_view_guest_unittest.cc b/content/browser/frame_host/render_widget_host_view_guest_unittest.cc index 8d2ac18..3d772d4 100644 --- a/content/browser/frame_host/render_widget_host_view_guest_unittest.cc +++ b/content/browser/frame_host/render_widget_host_view_guest_unittest.cc @@ -106,17 +106,15 @@ TEST_F(RenderWidgetHostViewGuestTest, VisibilityTest) { class TestBrowserPluginGuest : public BrowserPluginGuest { public: TestBrowserPluginGuest(WebContentsImpl* web_contents, - BrowserPluginGuestDelegate* delegate): - BrowserPluginGuest(web_contents->HasOpener(), web_contents, delegate), - last_scale_factor_received_(0.f), - received_delegated_frame_(false) {} + BrowserPluginGuestDelegate* delegate) + : BrowserPluginGuest(web_contents->HasOpener(), web_contents, delegate), + last_scale_factor_received_(0.f) {} ~TestBrowserPluginGuest() override {} void ResetTestData() { last_surface_id_received_ = cc::SurfaceId(); last_frame_size_received_ = gfx::Size(); last_scale_factor_received_ = 0.f; - received_delegated_frame_ = false; } void set_has_attached_since_surface_set(bool has_attached_since_surface_set) { @@ -128,21 +126,6 @@ class TestBrowserPluginGuest : public BrowserPluginGuest { BrowserPluginGuest::set_attached_for_test(attached); } - void SwapCompositorFrame(uint32_t output_surface_id, - int host_process_id, - int host_routing_id, - scoped_ptr<cc::CompositorFrame> frame) override { - received_delegated_frame_ = true; - last_frame_size_received_ = - frame->delegated_frame_data->render_pass_list.back() - ->output_rect.size(); - last_scale_factor_received_ = frame->metadata.device_scale_factor; - - // Call base-class version so that we can test UpdateGuestSizeIfNecessary(). - BrowserPluginGuest::SwapCompositorFrame(output_surface_id, host_process_id, - host_routing_id, std::move(frame)); - } - void SetChildFrameSurface(const cc::SurfaceId& surface_id, const gfx::Size& frame_size, float scale_factor, @@ -156,8 +139,6 @@ class TestBrowserPluginGuest : public BrowserPluginGuest { gfx::Size last_frame_size_received_; float last_scale_factor_received_; float update_scale_factor_received_; - - bool received_delegated_frame_; }; // TODO(wjmaclean): we should restructure RenderWidgetHostViewChildFrameTest to diff --git a/content/common/browser_plugin/browser_plugin_messages.h b/content/common/browser_plugin/browser_plugin_messages.h index 1a264ce..04fa2b2 100644 --- a/content/common/browser_plugin/browser_plugin_messages.h +++ b/content/common/browser_plugin/browser_plugin_messages.h @@ -12,7 +12,6 @@ #include "content/common/content_param_traits.h" #include "content/common/cursors/webcursor.h" #include "content/common/edit_command.h" -#include "content/common/frame_param_macros.h" #include "content/public/common/common_param_traits.h" #include "content/public/common/drop_data.h" #include "ipc/ipc_channel_handle.h" @@ -117,13 +116,6 @@ IPC_MESSAGE_CONTROL3(BrowserPluginHostMsg_HandleInputEvent, gfx::Rect /* guest_window_rect */, IPC::WebInputEventPointer /* event */) -// Notify the guest renderer that some resources given to the embededer -// are not used any more. -IPC_MESSAGE_CONTROL2( - BrowserPluginHostMsg_ReclaimCompositorResources, - int /* browser_plugin_instance_id */, - FrameHostMsg_ReclaimCompositorResources_Params /* params */) - // Tells the guest it has been shown or hidden. IPC_MESSAGE_CONTROL2(BrowserPluginHostMsg_SetVisibility, int /* browser_plugin_instance_id */, @@ -185,10 +177,6 @@ IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetCursor, int /* browser_plugin_instance_id */, content::WebCursor /* cursor */) -IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompositorFrameSwapped, - int /* browser_plugin_instance_id */, - FrameMsg_CompositorFrameSwapped_Params /* params */) - IPC_MESSAGE_CONTROL5(BrowserPluginMsg_SetChildFrameSurface, int /* browser_plugin_instance_id */, cc::SurfaceId /* surface_id */, @@ -205,8 +193,3 @@ IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetTooltipText, int /* browser_plugin_instance_id */, base::string16 /* tooltip_text */) - -// Acknowledge that we presented an ubercomp frame. -IPC_MESSAGE_CONTROL2(BrowserPluginHostMsg_CompositorFrameSwappedACK, - int /* browser_plugin_instance_id */, - FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h index 568585e..96ecbf4 100644 --- a/content/common/frame_messages.h +++ b/content/common/frame_messages.h @@ -19,7 +19,6 @@ #include "content/common/content_export.h" #include "content/common/content_param_traits.h" #include "content/common/frame_message_enums.h" -#include "content/common/frame_param.h" #include "content/common/frame_replication_state.h" #include "content/common/navigation_gesture.h" #include "content/common/navigation_params.h" @@ -44,6 +43,8 @@ #include "third_party/WebKit/public/web/WebFindOptions.h" #include "third_party/WebKit/public/web/WebFrameOwnerProperties.h" #include "third_party/WebKit/public/web/WebTreeScopeType.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/ipc/gfx_param_traits.h" #include "url/gurl.h" #include "url/origin.h" @@ -555,15 +556,6 @@ IPC_STRUCT_TRAITS_END() // ----------------------------------------------------------------------------- // Messages sent from the browser to the renderer. -// Notifies the embedding frame that a new CompositorFrame is ready to be -// presented. When the frame finishes presenting, a matching -// FrameHostMsg_CompositorFrameSwappedACK should be sent back to the -// RenderViewHost that was produced the CompositorFrame. -// -// This is used in the ubercomp compositing path. -IPC_MESSAGE_ROUTED1(FrameMsg_CompositorFrameSwapped, - FrameMsg_CompositorFrameSwapped_Params /* params */) - IPC_MESSAGE_ROUTED4(FrameMsg_SetChildFrameSurface, cc::SurfaceId /* surface_id */, gfx::Size /* frame_size */, @@ -1189,12 +1181,6 @@ IPC_MESSAGE_CONTROL3(FrameHostMsg_PluginInstanceThrottleStateChange, bool /* is_throttled */) #endif // defined(ENABLE_PLUGINS) -// Acknowledge that we presented an ubercomp frame. -// -// See FrameMsg_CompositorFrameSwapped -IPC_MESSAGE_ROUTED1(FrameHostMsg_CompositorFrameSwappedACK, - FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) - // Satisfies a Surface destruction dependency associated with |sequence|. IPC_MESSAGE_ROUTED1(FrameHostMsg_SatisfySequence, cc::SurfaceSequence /* sequence */) @@ -1216,9 +1202,6 @@ IPC_MESSAGE_ROUTED3(FrameHostMsg_BeforeUnload_ACK, // Indicates that the current frame has swapped out, after a SwapOut message. IPC_MESSAGE_ROUTED0(FrameHostMsg_SwapOut_ACK) -IPC_MESSAGE_ROUTED1(FrameHostMsg_ReclaimCompositorResources, - FrameHostMsg_ReclaimCompositorResources_Params /* params */) - // Forwards an input event to a child. // TODO(nick): Temporary bridge, revisit once the browser process can route // input directly to subframes. http://crbug.com/339659 diff --git a/content/common/frame_param.cc b/content/common/frame_param.cc deleted file mode 100644 index dbeaaa7..0000000 --- a/content/common/frame_param.cc +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/common/frame_param.h" -#include "content/common/cc_messages.h" - -#define IPC_MESSAGE_IMPL -#include "content/common/frame_param_macros.h" - -// Generate constructors. -#include "ipc/struct_constructor_macros.h" -#undef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#include "content/common/frame_param_macros.h" - -// Generate destructors. -#include "ipc/struct_destructor_macros.h" -#undef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#include "content/common/frame_param_macros.h" - -// Generate param traits write methods. -#include "ipc/param_traits_write_macros.h" -namespace IPC { -#undef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#include "content/common/frame_param_macros.h" -} // namespace IPC - -// Generate param traits read methods. -#include "ipc/param_traits_read_macros.h" -namespace IPC { -#undef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#include "content/common/frame_param_macros.h" -} // namespace IPC - -// Generate param traits log methods. -#include "ipc/param_traits_log_macros.h" -namespace IPC { -#undef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#include "content/common/frame_param_macros.h" -} // namespace IPC diff --git a/content/common/frame_param.h b/content/common/frame_param.h deleted file mode 100644 index 29c4010..0000000 --- a/content/common/frame_param.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_COMMON_FRAME_PARAM_H_ -#define CONTENT_COMMON_FRAME_PARAM_H_ - -#include "content/common/frame_param_macros.h" - -#endif // CONTENT_COMMON_FRAME_PARAM_H_ diff --git a/content/common/frame_param_macros.h b/content/common/frame_param_macros.h deleted file mode 100644 index fd2256d..0000000 --- a/content/common/frame_param_macros.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Allows for sharing of IPC param structures between BrowserPlugin code and -// RenderFrame code. All these should be folded directly back into the IPCs in -// frame_messages.h once BrowserPlugin has been fully converted over to use -// the RenderFrame infrastructure. -// -// TODO(ajwong): Remove once BrowserPlugin has been converted to use -// RenderFrames. http://crbug.com/330264 - -#ifndef CONTENT_COMMON_FRAME_PARAM_MACROS_H_ -#define CONTENT_COMMON_FRAME_PARAM_MACROS_H_ - -#include <stdint.h> - -#include "cc/output/compositor_frame.h" -#include "cc/output/compositor_frame_ack.h" -#include "content/public/common/common_param_traits.h" -#include "ipc/ipc_message_macros.h" -#include "ui/gfx/ipc/gfx_param_traits.h" - -#undef IPC_MESSAGE_EXPORT -#define IPC_MESSAGE_EXPORT CONTENT_EXPORT - -IPC_STRUCT_BEGIN(FrameMsg_BuffersSwapped_Params) - IPC_STRUCT_MEMBER(int, gpu_host_id) - IPC_STRUCT_MEMBER(int, gpu_route_id) - IPC_STRUCT_MEMBER(gpu::Mailbox, mailbox) - IPC_STRUCT_MEMBER(gfx::Size, size) -IPC_STRUCT_END() - -IPC_STRUCT_BEGIN(FrameMsg_CompositorFrameSwapped_Params) - // Specifies which RenderWidget produced the CompositorFrame. - IPC_STRUCT_MEMBER(int, producing_host_id) - IPC_STRUCT_MEMBER(int, producing_route_id) - - IPC_STRUCT_MEMBER(cc::CompositorFrame, frame) - IPC_STRUCT_MEMBER(uint32_t, output_surface_id) - IPC_STRUCT_MEMBER(base::SharedMemoryHandle, shared_memory_handle) -IPC_STRUCT_END() - -IPC_STRUCT_BEGIN(FrameHostMsg_CompositorFrameSwappedACK_Params) - // Specifies which RenderWidget produced the CompositorFrame. - IPC_STRUCT_MEMBER(int, producing_host_id) - IPC_STRUCT_MEMBER(int, producing_route_id) - - IPC_STRUCT_MEMBER(uint32_t, output_surface_id) - IPC_STRUCT_MEMBER(cc::CompositorFrameAck, ack) -IPC_STRUCT_END() - -IPC_STRUCT_BEGIN(FrameHostMsg_ReclaimCompositorResources_Params) - IPC_STRUCT_MEMBER(int, route_id) - IPC_STRUCT_MEMBER(uint32_t, output_surface_id) - IPC_STRUCT_MEMBER(int, renderer_host_id) - IPC_STRUCT_MEMBER(cc::CompositorFrameAck, ack) -IPC_STRUCT_END() - -#endif // CONTENT_COMMON_FRAME_PARAM_MACROS_H_ diff --git a/content/common/swapped_out_messages.cc b/content/common/swapped_out_messages.cc index 7980014..a480310 100644 --- a/content/common/swapped_out_messages.cc +++ b/content/common/swapped_out_messages.cc @@ -40,8 +40,6 @@ bool SwappedOutMessages::CanSendWhileSwappedOut(const IPC::Message* msg) { // Frame detach must occur after the RenderView has swapped out. case FrameHostMsg_Detach::ID: case FrameHostMsg_DomOperationResponse::ID: - case FrameHostMsg_CompositorFrameSwappedACK::ID: - case FrameHostMsg_ReclaimCompositorResources::ID: // Input events propagate from parent to child. case FrameHostMsg_ForwardInputEvent::ID: case FrameHostMsg_InitializeChildFrame::ID: diff --git a/content/content_common.gypi b/content/content_common.gypi index b4d2e94..45809cd 100644 --- a/content/content_common.gypi +++ b/content/content_common.gypi @@ -273,9 +273,6 @@ 'common/font_list_win.cc', 'common/frame_message_enums.h', 'common/frame_messages.h', - 'common/frame_param.cc', - 'common/frame_param.h', - 'common/frame_param_macros.h', 'common/frame_replication_state.cc', 'common/frame_replication_state.h', 'common/gamepad_hardware_buffer.h', diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc index 44bbbed..4e44c92 100644 --- a/content/renderer/browser_plugin/browser_plugin.cc +++ b/content/renderer/browser_plugin/browser_plugin.cc @@ -104,8 +104,6 @@ bool BrowserPlugin::OnMessageReceived(const IPC::Message& message) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(BrowserPlugin, message) IPC_MESSAGE_HANDLER(BrowserPluginMsg_AdvanceFocus, OnAdvanceFocus) - IPC_MESSAGE_HANDLER_GENERIC(BrowserPluginMsg_CompositorFrameSwapped, - OnCompositorFrameSwapped(message)) IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestGone, OnGuestGone) IPC_MESSAGE_HANDLER(BrowserPluginMsg_SetCursor, OnSetCursor) IPC_MESSAGE_HANDLER(BrowserPluginMsg_SetMouseLock, OnSetMouseLock) @@ -188,8 +186,6 @@ void BrowserPlugin::Detach() { } void BrowserPlugin::DidCommitCompositorFrame() { - if (compositing_helper_.get()) - compositing_helper_->DidCommitCompositorFrame(); } void BrowserPlugin::OnAdvanceFocus(int browser_plugin_instance_id, @@ -201,28 +197,6 @@ void BrowserPlugin::OnAdvanceFocus(int browser_plugin_instance_id, render_view->GetWebView()->advanceFocus(reverse); } -void BrowserPlugin::OnCompositorFrameSwapped(const IPC::Message& message) { - if (!attached()) - return; - - BrowserPluginMsg_CompositorFrameSwapped::Param param; - if (!BrowserPluginMsg_CompositorFrameSwapped::Read(&message, ¶m)) - return; - // Note that there is no need to send ACK for this message. - // If the guest has updated pixels then it is no longer crashed. - guest_crashed_ = false; - - scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); - base::get<1>(param).frame.AssignTo(frame.get()); - - EnableCompositing(true); - compositing_helper_->OnCompositorFrameSwapped( - std::move(frame), base::get<1>(param).producing_route_id, - base::get<1>(param).output_surface_id, - base::get<1>(param).producing_host_id, - base::get<1>(param).shared_memory_handle); -} - void BrowserPlugin::OnGuestGone(int browser_plugin_instance_id) { guest_crashed_ = true; diff --git a/content/renderer/browser_plugin/browser_plugin.h b/content/renderer/browser_plugin/browser_plugin.h index 8320f1d..f0ccb70 100644 --- a/content/renderer/browser_plugin/browser_plugin.h +++ b/content/renderer/browser_plugin/browser_plugin.h @@ -152,7 +152,6 @@ class CONTENT_EXPORT BrowserPlugin : // IPC message handlers. // Please keep in alphabetical order. void OnAdvanceFocus(int instance_id, bool reverse); - void OnCompositorFrameSwapped(const IPC::Message& message); void OnGuestGone(int instance_id); void OnSetChildFrameSurface(int instance_id, const cc::SurfaceId& surface_id, diff --git a/content/renderer/browser_plugin/browser_plugin_manager.cc b/content/renderer/browser_plugin/browser_plugin_manager.cc index 9cde473..b6dbd2e 100644 --- a/content/renderer/browser_plugin/browser_plugin_manager.cc +++ b/content/renderer/browser_plugin/browser_plugin_manager.cc @@ -96,35 +96,11 @@ bool BrowserPluginManager::OnControlMessageReceived( bool success = iter.ReadInt(&browser_plugin_instance_id); DCHECK(success); BrowserPlugin* plugin = GetBrowserPlugin(browser_plugin_instance_id); - if (plugin && plugin->OnMessageReceived(message)) - return true; - - // TODO(fsamuel): This is probably forcing the compositor to continue working - // even on display:none. We should optimize this. - if (message.type() == BrowserPluginMsg_CompositorFrameSwapped::ID) { - OnCompositorFrameSwappedPluginUnavailable(message); - return true; - } - - return false; + return plugin && plugin->OnMessageReceived(message); } bool BrowserPluginManager::Send(IPC::Message* msg) { return RenderThreadImpl::current()->Send(msg); } -void BrowserPluginManager::OnCompositorFrameSwappedPluginUnavailable( - const IPC::Message& message) { - BrowserPluginMsg_CompositorFrameSwapped::Param param; - if (!BrowserPluginMsg_CompositorFrameSwapped::Read(&message, ¶m)) - return; - - FrameHostMsg_CompositorFrameSwappedACK_Params params; - params.producing_host_id = base::get<1>(param).producing_host_id; - params.producing_route_id = base::get<1>(param).producing_route_id; - params.output_surface_id = base::get<1>(param).output_surface_id; - Send(new BrowserPluginHostMsg_CompositorFrameSwappedACK( - base::get<0>(param), params)); -} - } // namespace content diff --git a/content/renderer/browser_plugin/browser_plugin_manager.h b/content/renderer/browser_plugin/browser_plugin_manager.h index 4703fd8..b8471af 100644 --- a/content/renderer/browser_plugin/browser_plugin_manager.h +++ b/content/renderer/browser_plugin/browser_plugin_manager.h @@ -64,9 +64,6 @@ class CONTENT_EXPORT BrowserPluginManager : public RenderProcessObserver { bool OnControlMessageReceived(const IPC::Message& message) override; private: - // IPC message handlers. - void OnCompositorFrameSwappedPluginUnavailable(const IPC::Message& message); - // This map is keyed by guest instance IDs. IDMap<BrowserPlugin> instances_; diff --git a/content/renderer/child_frame_compositing_helper.cc b/content/renderer/child_frame_compositing_helper.cc index 9c45511..6909d12 100644 --- a/content/renderer/child_frame_compositing_helper.cc +++ b/content/renderer/child_frame_compositing_helper.cc @@ -7,8 +7,6 @@ #include <utility> #include "cc/blink/web_layer_impl.h" -#include "cc/layers/delegated_frame_provider.h" -#include "cc/layers/delegated_frame_resource_collection.h" #include "cc/layers/delegated_renderer_layer.h" #include "cc/layers/solid_color_layer.h" #include "cc/layers/surface_layer.h" @@ -57,17 +55,11 @@ ChildFrameCompositingHelper::ChildFrameCompositingHelper( RenderFrameProxy* render_frame_proxy, int host_routing_id) : host_routing_id_(host_routing_id), - last_route_id_(0), - last_output_surface_id_(0), - last_host_id_(0), - ack_pending_(true), browser_plugin_(browser_plugin), render_frame_proxy_(render_frame_proxy), frame_(frame) {} ChildFrameCompositingHelper::~ChildFrameCompositingHelper() { - if (resource_collection_.get()) - resource_collection_->SetClient(nullptr); } BrowserPluginManager* ChildFrameCompositingHelper::GetBrowserPluginManager() { @@ -91,50 +83,6 @@ int ChildFrameCompositingHelper::GetInstanceID() { return browser_plugin_->browser_plugin_instance_id(); } -void ChildFrameCompositingHelper::SendCompositorFrameSwappedACKToBrowser( - FrameHostMsg_CompositorFrameSwappedACK_Params& params) { - // This function will be removed when BrowserPluginManager is removed and - // BrowserPlugin is modified to use a RenderFrame. - if (GetBrowserPluginManager()) { - GetBrowserPluginManager()->Send( - new BrowserPluginHostMsg_CompositorFrameSwappedACK(GetInstanceID(), - params)); - } else if (render_frame_proxy_) { - render_frame_proxy_->Send( - new FrameHostMsg_CompositorFrameSwappedACK(host_routing_id_, params)); - } -} - -void ChildFrameCompositingHelper::SendReclaimCompositorResourcesToBrowser( - FrameHostMsg_ReclaimCompositorResources_Params& params) { - // This function will be removed when BrowserPluginManager is removed and - // BrowserPlugin is modified to use a RenderFrame. - if (GetBrowserPluginManager()) { - GetBrowserPluginManager()->Send( - new BrowserPluginHostMsg_ReclaimCompositorResources(GetInstanceID(), - params)); - } else if (render_frame_proxy_) { - render_frame_proxy_->Send( - new FrameHostMsg_ReclaimCompositorResources(host_routing_id_, params)); - } -} - -void ChildFrameCompositingHelper::DidCommitCompositorFrame() { - if (!resource_collection_.get() || !ack_pending_) - return; - - FrameHostMsg_CompositorFrameSwappedACK_Params params; - params.producing_host_id = last_host_id_; - params.producing_route_id = last_route_id_; - params.output_surface_id = last_output_surface_id_; - resource_collection_->TakeUnusedResourcesForChildCompositor( - ¶ms.ack.resources); - - SendCompositorFrameSwappedACKToBrowser(params); - - ack_pending_ = false; -} - void ChildFrameCompositingHelper::UpdateWebLayer(blink::WebLayer* layer) { if (GetContainer()) { GetContainer()->setWebLayer(layer); @@ -160,18 +108,7 @@ void ChildFrameCompositingHelper::CheckSizeAndAdjustLayerProperties( } void ChildFrameCompositingHelper::OnContainerDestroy() { - // If we have a pending ACK, then ACK now so we don't lose frames in the - // future. - DidCommitCompositorFrame(); - UpdateWebLayer(nullptr); - - if (resource_collection_.get()) - resource_collection_->SetClient(nullptr); - - ack_pending_ = false; - resource_collection_ = nullptr; - frame_provider_ = nullptr; } void ChildFrameCompositingHelper::ChildFrameGone() { @@ -183,72 +120,6 @@ void ChildFrameCompositingHelper::ChildFrameGone() { UpdateWebLayer(layer); } -void ChildFrameCompositingHelper::OnCompositorFrameSwapped( - scoped_ptr<cc::CompositorFrame> frame, - int route_id, - uint32_t output_surface_id, - int host_id, - base::SharedMemoryHandle handle) { - cc::DelegatedFrameData* frame_data = frame->delegated_frame_data.get(); - - // Do nothing if we are getting destroyed or have no frame data. - if (!frame_data) - return; - - DCHECK(!frame_data->render_pass_list.empty()); - cc::RenderPass* root_pass = frame_data->render_pass_list.back().get(); - gfx::Size frame_size = root_pass->output_rect.size(); - - if (last_route_id_ != route_id || - last_output_surface_id_ != output_surface_id || - last_host_id_ != host_id) { - // Resource ids are scoped by the output surface. - // If the originating output surface doesn't match the last one, it - // indicates the guest's output surface may have been recreated, in which - // case we should recreate the DelegatedRendererLayer, to avoid matching - // resources from the old one with resources from the new one which would - // have the same id. - frame_provider_ = nullptr; - - // Drop the cc::DelegatedFrameResourceCollection so that we will not return - // any resources from the old output surface with the new output surface id. - if (resource_collection_.get()) { - resource_collection_->SetClient(nullptr); - - if (resource_collection_->LoseAllResources()) - SendReturnedDelegatedResources(); - resource_collection_ = nullptr; - } - last_output_surface_id_ = output_surface_id; - last_route_id_ = route_id; - last_host_id_ = host_id; - } - if (!resource_collection_.get()) { - resource_collection_ = new cc::DelegatedFrameResourceCollection; - resource_collection_->SetClient(this); - } - if (!frame_provider_.get() || frame_provider_->frame_size() != frame_size) { - frame_provider_ = new cc::DelegatedFrameProvider( - resource_collection_.get(), std::move(frame->delegated_frame_data)); - scoped_refptr<cc::DelegatedRendererLayer> delegated_layer = - cc::DelegatedRendererLayer::Create( - cc_blink::WebLayerImpl::LayerSettings(), frame_provider_.get()); - delegated_layer->SetIsDrawable(true); - buffer_size_ = gfx::Size(); - blink::WebLayer* layer = new cc_blink::WebLayerImpl(delegated_layer); - UpdateWebLayer(layer); - } else { - frame_provider_->SetFrameData(std::move(frame->delegated_frame_data)); - } - - CheckSizeAndAdjustLayerProperties( - frame_data->render_pass_list.back()->output_rect.size(), - frame->metadata.device_scale_factor, - static_cast<cc_blink::WebLayerImpl*>(web_layer_.get())->layer()); - - ack_pending_ = true; -} - // static void ChildFrameCompositingHelper::SatisfyCallback( scoped_refptr<ThreadSafeSender> sender, @@ -350,24 +221,4 @@ void ChildFrameCompositingHelper::UpdateVisibility(bool visible) { web_layer_->setDrawsContent(visible); } -void ChildFrameCompositingHelper::UnusedResourcesAreAvailable() { - if (ack_pending_) - return; - - SendReturnedDelegatedResources(); -} - -void ChildFrameCompositingHelper::SendReturnedDelegatedResources() { - FrameHostMsg_ReclaimCompositorResources_Params params; - if (resource_collection_.get()) - resource_collection_->TakeUnusedResourcesForChildCompositor( - ¶ms.ack.resources); - DCHECK(!params.ack.resources.empty()); - - params.route_id = last_route_id_; - params.output_surface_id = last_output_surface_id_; - params.renderer_host_id = last_host_id_; - SendReclaimCompositorResourcesToBrowser(params); -} - } // namespace content diff --git a/content/renderer/child_frame_compositing_helper.h b/content/renderer/child_frame_compositing_helper.h index 707955c..2f2e3c3 100644 --- a/content/renderer/child_frame_compositing_helper.h +++ b/content/renderer/child_frame_compositing_helper.h @@ -30,9 +30,6 @@ class CompositorFrame; class Layer; class SolidColorLayer; class SurfaceLayer; -class DelegatedFrameProvider; -class DelegatedFrameResourceCollection; -class DelegatedRendererLayer; } namespace blink { @@ -57,21 +54,14 @@ class RenderFrameProxy; class ThreadSafeSender; class CONTENT_EXPORT ChildFrameCompositingHelper - : public base::RefCounted<ChildFrameCompositingHelper>, - public cc::DelegatedFrameResourceCollectionClient { + : public base::RefCounted<ChildFrameCompositingHelper> { public: static ChildFrameCompositingHelper* CreateForBrowserPlugin( const base::WeakPtr<BrowserPlugin>& browser_plugin); static ChildFrameCompositingHelper* CreateForRenderFrameProxy( RenderFrameProxy* render_frame_proxy); - void DidCommitCompositorFrame(); void OnContainerDestroy(); - void OnCompositorFrameSwapped(scoped_ptr<cc::CompositorFrame> frame, - int route_id, - uint32_t output_surface_id, - int host_id, - base::SharedMemoryHandle handle); void OnSetSurface(const cc::SurfaceId& surface_id, const gfx::Size& frame_size, float scale_factor, @@ -81,9 +71,6 @@ class CONTENT_EXPORT ChildFrameCompositingHelper cc::SurfaceId surface_id() const { return surface_id_; } - // cc::DelegatedFrameProviderClient implementation. - void UnusedResourcesAreAvailable() override; - protected: // Friend RefCounted so that the dtor can be non-public. friend class base::RefCounted<ChildFrameCompositingHelper>; @@ -101,14 +88,9 @@ class CONTENT_EXPORT ChildFrameCompositingHelper blink::WebPluginContainer* GetContainer(); int GetInstanceID(); - void SendCompositorFrameSwappedACKToBrowser( - FrameHostMsg_CompositorFrameSwappedACK_Params& params); - void SendReclaimCompositorResourcesToBrowser( - FrameHostMsg_ReclaimCompositorResources_Params& params); void CheckSizeAndAdjustLayerProperties(const gfx::Size& new_size, float device_scale_factor, cc::Layer* layer); - void SendReturnedDelegatedResources(); static void SatisfyCallback(scoped_refptr<ThreadSafeSender> sender, int host_routing_id, cc::SurfaceSequence sequence); @@ -130,10 +112,6 @@ class CONTENT_EXPORT ChildFrameCompositingHelper void UpdateWebLayer(blink::WebLayer* layer); int host_routing_id_; - int last_route_id_; - uint32_t last_output_surface_id_; - int last_host_id_; - bool ack_pending_; bool opaque_; gfx::Size buffer_size_; @@ -144,9 +122,6 @@ class CONTENT_EXPORT ChildFrameCompositingHelper base::WeakPtr<BrowserPlugin> browser_plugin_; RenderFrameProxy* render_frame_proxy_; - scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection_; - scoped_refptr<cc::DelegatedFrameProvider> frame_provider_; - scoped_ptr<blink::WebLayer> web_layer_; cc::SurfaceId surface_id_; blink::WebFrame* frame_; diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc index 7a52f2c..3c4df02 100644 --- a/content/renderer/render_frame_proxy.cc +++ b/content/renderer/render_frame_proxy.cc @@ -207,8 +207,6 @@ void RenderFrameProxy::WillBeginCompositorFrame() { } void RenderFrameProxy::DidCommitCompositorFrame() { - if (compositing_helper_.get()) - compositing_helper_->DidCommitCompositorFrame(); } void RenderFrameProxy::SetReplicatedState(const FrameReplicationState& state) { @@ -246,8 +244,6 @@ bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) { IPC_BEGIN_MESSAGE_MAP(RenderFrameProxy, msg) IPC_MESSAGE_HANDLER(FrameMsg_DeleteProxy, OnDeleteProxy) IPC_MESSAGE_HANDLER(FrameMsg_ChildFrameProcessGone, OnChildFrameProcessGone) - IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped, - OnCompositorFrameSwapped(msg)) IPC_MESSAGE_HANDLER(FrameMsg_SetChildFrameSurface, OnSetChildFrameSurface) IPC_MESSAGE_HANDLER(FrameMsg_UpdateOpener, OnUpdateOpener) IPC_MESSAGE_HANDLER(FrameMsg_DidStartLoading, OnDidStartLoading) @@ -281,32 +277,6 @@ void RenderFrameProxy::OnChildFrameProcessGone() { compositing_helper_->ChildFrameGone(); } -void RenderFrameProxy::OnCompositorFrameSwapped(const IPC::Message& message) { - // If this WebFrame has already been detached, its parent will be null. This - // can happen when swapping a WebRemoteFrame with a WebLocalFrame, where this - // message may arrive after the frame was removed from the frame tree, but - // before the frame has been destroyed. http://crbug.com/446575. - if (!web_frame()->parent()) - return; - - FrameMsg_CompositorFrameSwapped::Param param; - if (!FrameMsg_CompositorFrameSwapped::Read(&message, ¶m)) - return; - - scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); - base::get<0>(param).frame.AssignTo(frame.get()); - - if (!compositing_helper_.get()) { - compositing_helper_ = - ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); - } - compositing_helper_->OnCompositorFrameSwapped( - std::move(frame), base::get<0>(param).producing_route_id, - base::get<0>(param).output_surface_id, - base::get<0>(param).producing_host_id, - base::get<0>(param).shared_memory_handle); -} - void RenderFrameProxy::OnSetChildFrameSurface( const cc::SurfaceId& surface_id, const gfx::Size& frame_size, |