diff options
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/render_view_impl.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index db3b307..2154257 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -1935,10 +1935,24 @@ WebView* RenderViewImpl::createView( WebUserGestureIndicator::consumeUserGesture(); + webkit_glue::WebPreferences transferred_preferences = webkit_preferences_; + + // Unless accelerated compositing has been explicitly disabled from the + // command line (e.g. via the blacklist or about:flags) re-enable it for + // new views that get spawned by this view. This gets around the issue that + // background extension pages disable accelerated compositing via web prefs + // but can themselves spawn a visible render view which should be allowed + // use gpu acceleration. + if (!webkit_preferences_.accelerated_compositing_enabled) { + const CommandLine& command_line = *CommandLine::ForCurrentProcess(); + if (!command_line.HasSwitch(switches::kDisableAcceleratedCompositing)) + transferred_preferences.accelerated_compositing_enabled = true; + } + RenderViewImpl* view = RenderViewImpl::Create( routing_id_, renderer_preferences_, - webkit_preferences_, + transferred_preferences, shared_popup_counter_, routing_id, surface_id, |