diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-02 07:31:33 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-02 07:31:33 +0000 |
commit | 8a5928021fcd9cb365a623708e1c05d9bcdfe3e9 (patch) | |
tree | e75f61529a6709423ea9ff631674c6e79fb841e4 /content/browser/android | |
parent | 37b32460bc6c21b0926427f308cc4a7c33670b4a (diff) | |
download | chromium_src-8a5928021fcd9cb365a623708e1c05d9bcdfe3e9.zip chromium_src-8a5928021fcd9cb365a623708e1c05d9bcdfe3e9.tar.gz chromium_src-8a5928021fcd9cb365a623708e1c05d9bcdfe3e9.tar.bz2 |
Add switch to disable recording whole document
Add an android webview switch to disable the workaround to record the
whole document on in each commit. The setting is plumbed through
SynchronousCompositorFactory.
BUG=390702
Review URL: https://codereview.chromium.org/361073002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280970 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/android')
3 files changed, 20 insertions, 1 deletions
diff --git a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc index 7c5646e..4449ca1 100644 --- a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc +++ b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc @@ -123,7 +123,8 @@ class VideoContextProvider using webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl; SynchronousCompositorFactoryImpl::SynchronousCompositorFactoryImpl() - : num_hardware_compositors_(0) { + : record_full_layer_(true), + num_hardware_compositors_(0) { SynchronousCompositorFactory::SetInstance(this); } @@ -134,6 +135,11 @@ SynchronousCompositorFactoryImpl::GetCompositorMessageLoop() { return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI); } +bool +SynchronousCompositorFactoryImpl::RecordFullLayer() { + return record_full_layer_; +} + scoped_ptr<cc::OutputSurface> SynchronousCompositorFactoryImpl::CreateOutputSurface(int routing_id) { scoped_ptr<SynchronousCompositorOutputSurface> output_surface( @@ -240,4 +246,8 @@ void SynchronousCompositorFactoryImpl::SetDeferredGpuService( service_ = service; } +void SynchronousCompositorFactoryImpl::DisableRecordFullLayer() { + record_full_layer_ = false; +} + } // namespace content diff --git a/content/browser/android/in_process/synchronous_compositor_factory_impl.h b/content/browser/android/in_process/synchronous_compositor_factory_impl.h index 7fdc910..5565da9 100644 --- a/content/browser/android/in_process/synchronous_compositor_factory_impl.h +++ b/content/browser/android/in_process/synchronous_compositor_factory_impl.h @@ -32,6 +32,7 @@ class SynchronousCompositorFactoryImpl : public SynchronousCompositorFactory { // SynchronousCompositorFactory virtual scoped_refptr<base::MessageLoopProxy> GetCompositorMessageLoop() OVERRIDE; + virtual bool RecordFullLayer() OVERRIDE; virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(int routing_id) OVERRIDE; virtual InputHandlerManagerClient* GetInputHandlerManagerClient() OVERRIDE; @@ -49,6 +50,7 @@ class SynchronousCompositorFactoryImpl : public SynchronousCompositorFactory { void SetDeferredGpuService( scoped_refptr<gpu::InProcessCommandBuffer::Service> service); + void DisableRecordFullLayer(); void CompositorInitializedHardwareDraw(); void CompositorReleasedHardwareDraw(); @@ -71,6 +73,8 @@ class SynchronousCompositorFactoryImpl : public SynchronousCompositorFactory { scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> video_context_provider_; + bool record_full_layer_; + // |num_hardware_compositor_lock_| is updated on UI thread only but can be // read on renderer main thread. base::Lock num_hardware_compositor_lock_; diff --git a/content/browser/android/in_process/synchronous_compositor_impl.cc b/content/browser/android/in_process/synchronous_compositor_impl.cc index d7b3eb7..7a40281 100644 --- a/content/browser/android/in_process/synchronous_compositor_impl.cc +++ b/content/browser/android/in_process/synchronous_compositor_impl.cc @@ -89,6 +89,11 @@ void SynchronousCompositor::SetGpuService( g_factory.Get().SetDeferredGpuService(service); } +// static +void SynchronousCompositor::DisableRecordFullLayer() { + g_factory.Get().DisableRecordFullLayer(); +} + bool SynchronousCompositorImpl::InitializeHwDraw() { DCHECK(CalledOnValidThread()); DCHECK(output_surface_); |