Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index 33612b0acb372936fd2e6a378a4caad2d6cae38b..2ef22b851c048f27ad354b7ec47f411ae71b97b0 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -39,6 +39,10 @@ |
#include "ui/gl/gl_switches.h" |
#include "ui/native_theme/native_theme_switches.h" |
+#if defined(OS_ANDROID) |
+#include "content/renderer/android/synchronous_compositor_factory.h" |
+#endif |
+ |
namespace base { |
class Value; |
} |
@@ -99,10 +103,7 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
!cmd->HasSwitch(cc::switches::kDisableMainFrameBeforeActivation); |
settings.main_frame_before_draw_enabled = |
!cmd->HasSwitch(cc::switches::kDisableMainFrameBeforeDraw); |
- settings.using_synchronous_renderer_compositor = |
- widget->UsingSynchronousRendererCompositor(); |
- settings.report_overscroll_only_for_scrollable_axes = |
- !widget->UsingSynchronousRendererCompositor(); |
+ settings.report_overscroll_only_for_scrollable_axes = true; |
settings.accelerated_animation_enabled = |
!cmd->HasSwitch(cc::switches::kDisableThreadedAnimation); |
settings.touch_hit_testing = |
@@ -260,8 +261,18 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
cmd->HasSwitch(cc::switches::kStrictLayerPropertyChangeChecking); |
#if defined(OS_ANDROID) |
+ SynchronousCompositorFactory* synchronous_compositor_factory = |
+ SynchronousCompositorFactory::GetInstance(); |
+ |
+ settings.using_synchronous_renderer_compositor = |
+ synchronous_compositor_factory; |
+ settings.record_full_layer = |
+ synchronous_compositor_factory && |
+ synchronous_compositor_factory->RecordFullLayer(); |
+ settings.report_overscroll_only_for_scrollable_axes = |
+ !synchronous_compositor_factory; |
settings.max_partial_texture_updates = 0; |
- if (widget->UsingSynchronousRendererCompositor()) { |
+ if (synchronous_compositor_factory) { |
// Android WebView uses system scrollbars, so make ours invisible. |
settings.scrollbar_animator = cc::LayerTreeSettings::NoAnimator; |
settings.solid_color_scrollbar_color = SK_ColorTRANSPARENT; |
@@ -274,13 +285,13 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
settings.highp_threshold_min = 2048; |
// Android WebView handles root layer flings itself. |
settings.ignore_root_layer_flings = |
- widget->UsingSynchronousRendererCompositor(); |
+ synchronous_compositor_factory; |
// RGBA_4444 textures are only enabled for low end devices |
// and are disabled for Android WebView as it doesn't support the format. |
settings.use_rgba_4444_textures = |
base::SysInfo::IsLowEndDevice() && |
- !widget->UsingSynchronousRendererCompositor(); |
- if (widget->UsingSynchronousRendererCompositor()) { |
+ !synchronous_compositor_factory; |
+ if (synchronous_compositor_factory) { |
// TODO(boliu): Set this ratio for Webview. |
} else if (base::SysInfo::IsLowEndDevice()) { |
// On low-end we want to be very carefull about killing other |
@@ -295,7 +306,7 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
} |
// Webview does not own the surface so should not clear it. |
settings.should_clear_root_render_pass = |
- !widget->UsingSynchronousRendererCompositor(); |
+ !synchronous_compositor_factory; |
#elif !defined(OS_MACOSX) |
if (ui::IsOverlayScrollbarEnabled()) { |