| Index: content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| diff --git a/content/browser/android/in_process/synchronous_compositor_output_surface.cc b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| index 041de4ddfec0fa4b45229aae5285b0ebc7881636..3bda6795edee7bb5bd5d9ade2be4dfeba0659864 100644
|
| --- a/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| +++ b/content/browser/android/in_process/synchronous_compositor_output_surface.cc
|
| @@ -14,6 +14,7 @@
|
| #include "content/browser/android/in_process/synchronous_compositor_impl.h"
|
| #include "content/browser/gpu/compositor_util.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/renderer/gpu/frame_swap_message_queue.h"
|
| #include "gpu/command_buffer/client/gles2_interface.h"
|
| #include "gpu/command_buffer/common/gpu_memory_allocation.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| @@ -67,7 +68,8 @@ class SynchronousCompositorOutputSurface::SoftwareDevice
|
| };
|
|
|
| SynchronousCompositorOutputSurface::SynchronousCompositorOutputSurface(
|
| - int routing_id)
|
| + int routing_id,
|
| + scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue)
|
| : cc::OutputSurface(
|
| scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareDevice(this))),
|
| routing_id_(routing_id),
|
| @@ -75,7 +77,8 @@ SynchronousCompositorOutputSurface::SynchronousCompositorOutputSurface(
|
| invoking_composite_(false),
|
| current_sw_canvas_(NULL),
|
| memory_policy_(0),
|
| - output_surface_client_(NULL) {
|
| + output_surface_client_(NULL),
|
| + frame_swap_message_queue_(frame_swap_message_queue) {
|
| capabilities_.deferred_gl_initialization = true;
|
| capabilities_.draw_and_swap_full_viewport_every_frame = true;
|
| capabilities_.adjust_deadline_for_parent = false;
|
| @@ -254,6 +257,14 @@ void SynchronousCompositorOutputSurface::SetMemoryPolicy(
|
| output_surface_client_->SetMemoryPolicy(memory_policy_);
|
| }
|
|
|
| +void SynchronousCompositorOutputSurface::GetMessagesToDeliver(
|
| + ScopedVector<IPC::Message>* messages) {
|
| + DCHECK(CalledOnValidThread());
|
| + scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
|
| + frame_swap_message_queue_->AcquireSendMessageScope();
|
| + frame_swap_message_queue_->DrainMessages(messages);
|
| +}
|
| +
|
| // Not using base::NonThreadSafe as we want to enforce a more exacting threading
|
| // requirement: SynchronousCompositorOutputSurface() must only be used on the UI
|
| // thread.
|
|
|