| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/renderer/render_frame_proxy.h" | 5 #include "content/renderer/render_frame_proxy.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "content/common/frame_messages.h" | 10 #include "content/common/frame_messages.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 130 |
| 131 // TODO(nick): Should all RenderFrameProxies remain observers of their views? | 131 // TODO(nick): Should all RenderFrameProxies remain observers of their views? |
| 132 render_view_->RegisterRenderFrameProxy(this); | 132 render_view_->RegisterRenderFrameProxy(this); |
| 133 | 133 |
| 134 std::pair<FrameMap::iterator, bool> result = | 134 std::pair<FrameMap::iterator, bool> result = |
| 135 g_frame_map.Get().insert(std::make_pair(web_frame_, this)); | 135 g_frame_map.Get().insert(std::make_pair(web_frame_, this)); |
| 136 CHECK(result.second) << "Inserted a duplicate item."; | 136 CHECK(result.second) << "Inserted a duplicate item."; |
| 137 } | 137 } |
| 138 | 138 |
| 139 void RenderFrameProxy::DidCommitCompositorFrame() { | 139 void RenderFrameProxy::DidCommitCompositorFrame() { |
| 140 if (compositing_helper_) | 140 if (compositing_helper_.get()) |
| 141 compositing_helper_->DidCommitCompositorFrame(); | 141 compositing_helper_->DidCommitCompositorFrame(); |
| 142 } | 142 } |
| 143 | 143 |
| 144 bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) { | 144 bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) { |
| 145 bool handled = true; | 145 bool handled = true; |
| 146 IPC_BEGIN_MESSAGE_MAP(RenderFrameProxy, msg) | 146 IPC_BEGIN_MESSAGE_MAP(RenderFrameProxy, msg) |
| 147 IPC_MESSAGE_HANDLER(FrameMsg_DeleteProxy, OnDeleteProxy) | 147 IPC_MESSAGE_HANDLER(FrameMsg_DeleteProxy, OnDeleteProxy) |
| 148 IPC_MESSAGE_HANDLER(FrameMsg_ChildFrameProcessGone, OnChildFrameProcessGone) | 148 IPC_MESSAGE_HANDLER(FrameMsg_ChildFrameProcessGone, OnChildFrameProcessGone) |
| 149 IPC_MESSAGE_HANDLER(FrameMsg_BuffersSwapped, OnBuffersSwapped) | 149 IPC_MESSAGE_HANDLER(FrameMsg_BuffersSwapped, OnBuffersSwapped) |
| 150 IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped, | 150 IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 174 RenderFrameImpl* render_frame = | 174 RenderFrameImpl* render_frame = |
| 175 RenderFrameImpl::FromRoutingID(frame_routing_id_); | 175 RenderFrameImpl::FromRoutingID(frame_routing_id_); |
| 176 | 176 |
| 177 if (render_frame) | 177 if (render_frame) |
| 178 render_frame->set_render_frame_proxy(NULL); | 178 render_frame->set_render_frame_proxy(NULL); |
| 179 | 179 |
| 180 delete this; | 180 delete this; |
| 181 } | 181 } |
| 182 | 182 |
| 183 void RenderFrameProxy::OnChildFrameProcessGone() { | 183 void RenderFrameProxy::OnChildFrameProcessGone() { |
| 184 if (compositing_helper_) | 184 if (compositing_helper_.get()) |
| 185 compositing_helper_->ChildFrameGone(); | 185 compositing_helper_->ChildFrameGone(); |
| 186 } | 186 } |
| 187 | 187 |
| 188 void RenderFrameProxy::OnBuffersSwapped( | 188 void RenderFrameProxy::OnBuffersSwapped( |
| 189 const FrameMsg_BuffersSwapped_Params& params) { | 189 const FrameMsg_BuffersSwapped_Params& params) { |
| 190 if (!compositing_helper_) { | 190 if (!compositing_helper_.get()) { |
| 191 compositing_helper_ = | 191 compositing_helper_ = |
| 192 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); | 192 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); |
| 193 compositing_helper_->EnableCompositing(true); | 193 compositing_helper_->EnableCompositing(true); |
| 194 } | 194 } |
| 195 compositing_helper_->OnBuffersSwapped( | 195 compositing_helper_->OnBuffersSwapped( |
| 196 params.size, | 196 params.size, |
| 197 params.mailbox, | 197 params.mailbox, |
| 198 params.gpu_route_id, | 198 params.gpu_route_id, |
| 199 params.gpu_host_id, | 199 params.gpu_host_id, |
| 200 web_frame()->view()->deviceScaleFactor()); | 200 web_frame()->view()->deviceScaleFactor()); |
| 201 } | 201 } |
| 202 | 202 |
| 203 void RenderFrameProxy::OnCompositorFrameSwapped(const IPC::Message& message) { | 203 void RenderFrameProxy::OnCompositorFrameSwapped(const IPC::Message& message) { |
| 204 FrameMsg_CompositorFrameSwapped::Param param; | 204 FrameMsg_CompositorFrameSwapped::Param param; |
| 205 if (!FrameMsg_CompositorFrameSwapped::Read(&message, ¶m)) | 205 if (!FrameMsg_CompositorFrameSwapped::Read(&message, ¶m)) |
| 206 return; | 206 return; |
| 207 | 207 |
| 208 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 208 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| 209 param.a.frame.AssignTo(frame.get()); | 209 param.a.frame.AssignTo(frame.get()); |
| 210 | 210 |
| 211 if (!compositing_helper_) { | 211 if (!compositing_helper_.get()) { |
| 212 compositing_helper_ = | 212 compositing_helper_ = |
| 213 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); | 213 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); |
| 214 compositing_helper_->EnableCompositing(true); | 214 compositing_helper_->EnableCompositing(true); |
| 215 } | 215 } |
| 216 compositing_helper_->OnCompositorFrameSwapped(frame.Pass(), | 216 compositing_helper_->OnCompositorFrameSwapped(frame.Pass(), |
| 217 param.a.producing_route_id, | 217 param.a.producing_route_id, |
| 218 param.a.output_surface_id, | 218 param.a.output_surface_id, |
| 219 param.a.producing_host_id, | 219 param.a.producing_host_id, |
| 220 param.a.shared_memory_handle); | 220 param.a.shared_memory_handle); |
| 221 } | 221 } |
| 222 | 222 |
| 223 } // namespace | 223 } // namespace |
| OLD | NEW |