diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-26 13:07:13 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-26 13:07:13 +0000 |
commit | 63127e5c7e901e36afb46498c767d18a3feac565 (patch) | |
tree | b8bfc4b89be012141d45145d961395468f4c86d0 /webkit/plugins | |
parent | 65deb3859ad02e71dc990fb8bcb5570a400ba1a6 (diff) | |
download | chromium_src-63127e5c7e901e36afb46498c767d18a3feac565.zip chromium_src-63127e5c7e901e36afb46498c767d18a3feac565.tar.gz chromium_src-63127e5c7e901e36afb46498c767d18a3feac565.tar.bz2 |
Ignore transparency in full-screen Flash
r187831 started honoring transparency for full-screen Flash. Unfortunately,
Flash produces a transparent frame when wmode=transparent, even in full-screen,
because switching from transparent to opaque currently requires recreating the
context (which is slow).
Instead, force opaque because we know Flash never wants transparent full-screen.
BUG=222877
Review URL: https://chromiumcodereview.appspot.com/13065004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190662 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins')
-rw-r--r-- | webkit/plugins/ppapi/ppapi_plugin_instance.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc index 4850da8..9334cb7 100644 --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc @@ -1722,11 +1722,16 @@ void PluginInstance::UpdateLayer() { DCHECK(bound_graphics_3d_.get()); texture_layer_ = cc::TextureLayer::Create(this); web_layer_.reset(new webkit::WebLayerImpl(texture_layer_)); - if (fullscreen_container_) + if (fullscreen_container_) { fullscreen_container_->SetLayer(web_layer_.get()); - else + // Ignore transparency in fullscreen, since that's what Flash always + // wants to do, and that lets it not recreate a context if + // wmode=transparent was specified. + texture_layer_->SetContentsOpaque(true); + } else { container_->setWebLayer(web_layer_.get()); - texture_layer_->SetContentsOpaque(bound_graphics_3d_->IsOpaque()); + texture_layer_->SetContentsOpaque(bound_graphics_3d_->IsOpaque()); + } } layer_bound_to_fullscreen_ = !!fullscreen_container_; } |