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

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

Issue 19331002: Associate an id with the output surface to handle lost contexts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android, tests Created 7 years, 5 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 | Annotate | Revision Log
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 "base/bind_helpers.h" 5 #include "base/bind_helpers.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "content/browser/browser_plugin/browser_plugin_guest.h" 9 #include "content/browser/browser_plugin/browser_plugin_guest.h"
10 #include "content/browser/renderer_host/render_view_host_impl.h" 10 #include "content/browser/renderer_host/render_view_host_impl.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 new BrowserPluginMsg_BuffersSwapped(guest_->instance_id(), guest_params)); 171 new BrowserPluginMsg_BuffersSwapped(guest_->instance_id(), guest_params));
172 } 172 }
173 173
174 void RenderWidgetHostViewGuest::AcceleratedSurfacePostSubBuffer( 174 void RenderWidgetHostViewGuest::AcceleratedSurfacePostSubBuffer(
175 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params, 175 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
176 int gpu_host_id) { 176 int gpu_host_id) {
177 NOTREACHED(); 177 NOTREACHED();
178 } 178 }
179 179
180 void RenderWidgetHostViewGuest::OnSwapCompositorFrame( 180 void RenderWidgetHostViewGuest::OnSwapCompositorFrame(
181 uint32 output_surface_id,
181 scoped_ptr<cc::CompositorFrame> frame) { 182 scoped_ptr<cc::CompositorFrame> frame) {
182 if (frame->software_frame_data) { 183 if (frame->software_frame_data) {
183 cc::SoftwareFrameData* frame_data = frame->software_frame_data.get(); 184 cc::SoftwareFrameData* frame_data = frame->software_frame_data.get();
184 #ifdef OS_WIN 185 #ifdef OS_WIN
185 base::SharedMemory shared_memory(frame_data->handle, true, 186 base::SharedMemory shared_memory(frame_data->handle, true,
186 host_->GetProcess()->GetHandle()); 187 host_->GetProcess()->GetHandle());
187 #else 188 #else
188 base::SharedMemory shared_memory(frame_data->handle, true); 189 base::SharedMemory shared_memory(frame_data->handle, true);
189 #endif 190 #endif
190 191
191 RenderWidgetHostView* embedder_view = 192 RenderWidgetHostView* embedder_view =
192 guest_->GetEmbedderRenderWidgetHostView(); 193 guest_->GetEmbedderRenderWidgetHostView();
193 base::ProcessHandle embedder_pid = 194 base::ProcessHandle embedder_pid =
194 embedder_view->GetRenderWidgetHost()->GetProcess()->GetHandle(); 195 embedder_view->GetRenderWidgetHost()->GetProcess()->GetHandle();
195 196
196 shared_memory.GiveToProcess(embedder_pid, &frame_data->handle); 197 shared_memory.GiveToProcess(embedder_pid, &frame_data->handle);
197 } 198 }
198 199
199 guest_->clear_damage_buffer(); 200 guest_->clear_damage_buffer();
200 guest_->SendMessageToEmbedder( 201 guest_->SendMessageToEmbedder(
201 new BrowserPluginMsg_CompositorFrameSwapped( 202 new BrowserPluginMsg_CompositorFrameSwapped(
202 guest_->instance_id(), 203 guest_->instance_id(),
203 *frame, 204 *frame,
204 host_->GetRoutingID(), 205 host_->GetRoutingID(),
206 output_surface_id,
205 host_->GetProcess()->GetID())); 207 host_->GetProcess()->GetID()));
206 } 208 }
207 209
208 void RenderWidgetHostViewGuest::SetBounds(const gfx::Rect& rect) { 210 void RenderWidgetHostViewGuest::SetBounds(const gfx::Rect& rect) {
209 SetSize(rect.size()); 211 SetSize(rect.size());
210 } 212 }
211 213
212 bool RenderWidgetHostViewGuest::OnMessageReceived(const IPC::Message& msg) { 214 bool RenderWidgetHostViewGuest::OnMessageReceived(const IPC::Message& msg) {
213 return platform_view_->OnMessageReceived(msg); 215 return platform_view_->OnMessageReceived(msg);
214 } 216 }
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 return; 541 return;
540 for (ui::GestureRecognizer::Gestures::iterator g_it = gestures->begin(); 542 for (ui::GestureRecognizer::Gestures::iterator g_it = gestures->begin();
541 g_it != gestures->end(); 543 g_it != gestures->end();
542 ++g_it) { 544 ++g_it) {
543 ForwardGestureEventToRenderer(*g_it); 545 ForwardGestureEventToRenderer(*g_it);
544 } 546 }
545 } 547 }
546 548
547 549
548 } // namespace content 550 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_guest.h ('k') | content/browser/renderer_host/test_render_view_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698