summaryrefslogtreecommitdiffstats
path: root/webkit/plugins
diff options
context:
space:
mode:
authorpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-26 13:07:13 +0000
committerpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-26 13:07:13 +0000
commit63127e5c7e901e36afb46498c767d18a3feac565 (patch)
treeb8bfc4b89be012141d45145d961395468f4c86d0 /webkit/plugins
parent65deb3859ad02e71dc990fb8bcb5570a400ba1a6 (diff)
downloadchromium_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.cc11
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_;
}