| Index: content/browser/compositor/software_browser_compositor_output_surface.cc
|
| diff --git a/content/browser/compositor/software_browser_compositor_output_surface.cc b/content/browser/compositor/software_browser_compositor_output_surface.cc
|
| index 4e80d5bf99cd1cd354624223db7041102134f3d7..8e08629c9abb7853f6a11ed6f5a0b1de906ae020 100644
|
| --- a/content/browser/compositor/software_browser_compositor_output_surface.cc
|
| +++ b/content/browser/compositor/software_browser_compositor_output_surface.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <utility>
|
|
|
| +#include "base/bind.h"
|
| #include "base/location.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| @@ -23,10 +24,12 @@ namespace content {
|
| SoftwareBrowserCompositorOutputSurface::SoftwareBrowserCompositorOutputSurface(
|
| std::unique_ptr<cc::SoftwareOutputDevice> software_device,
|
| const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager,
|
| - cc::SyntheticBeginFrameSource* begin_frame_source)
|
| + cc::SyntheticBeginFrameSource* begin_frame_source,
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner)
|
| : BrowserCompositorOutputSurface(std::move(software_device),
|
| vsync_manager,
|
| begin_frame_source),
|
| + task_runner_(std::move(task_runner)),
|
| weak_factory_(this) {}
|
|
|
| SoftwareBrowserCompositorOutputSurface::
|
| @@ -56,9 +59,9 @@ void SoftwareBrowserCompositorOutputSurface::SwapBuffers(
|
| ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0,
|
| swap_time, 1);
|
| }
|
| - base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| - FROM_HERE, base::Bind(&RenderWidgetHostImpl::CompositorFrameDrawn,
|
| - frame.latency_info));
|
| + task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&RenderWidgetHostImpl::CompositorFrameDrawn,
|
| + frame.latency_info));
|
|
|
| gfx::VSyncProvider* vsync_provider = software_device()->GetVSyncProvider();
|
| if (vsync_provider) {
|
| @@ -66,7 +69,15 @@ void SoftwareBrowserCompositorOutputSurface::SwapBuffers(
|
| &BrowserCompositorOutputSurface::OnUpdateVSyncParametersFromGpu,
|
| weak_factory_.GetWeakPtr()));
|
| }
|
| - PostSwapBuffersComplete();
|
| +
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SoftwareBrowserCompositorOutputSurface::SwapBuffersCallback,
|
| + weak_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void SoftwareBrowserCompositorOutputSurface::SwapBuffersCallback() {
|
| + client_->DidSwapBuffersComplete();
|
| }
|
|
|
| bool SoftwareBrowserCompositorOutputSurface::IsDisplayedAsOverlayPlane() const {
|
| @@ -89,13 +100,6 @@ SoftwareBrowserCompositorOutputSurface::GetFramebufferCopyTextureFormat() {
|
| return 0;
|
| }
|
|
|
| -void SoftwareBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted(
|
| - const std::vector<ui::LatencyInfo>& latency_info,
|
| - gfx::SwapResult result,
|
| - const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) {
|
| - NOTREACHED();
|
| -}
|
| -
|
| #if defined(OS_MACOSX)
|
| void SoftwareBrowserCompositorOutputSurface::SetSurfaceSuspendedForRecycle(
|
| bool suspended) {
|
|
|