Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1164)

Unified Diff: Source/core/rendering/compositing/CompositedLayerMapping.cpp

Issue 209473002: Partial revert of r169693 (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp
diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
index 9c33d6d5a627ad1c672af4faa32e030e5a80ff4d..592739d51bfde55c970559e0f205bcec517f5235 100644
--- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp
+++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
@@ -136,6 +136,17 @@ static bool contentLayerSupportsDirectBackgroundComposition(const RenderObject*
return contentsRect(renderer).contains(backgroundRect(renderer));
}
+static blink::WebLayer* platformLayerForPlugin(RenderObject* renderer)
+{
+ if (!renderer->isEmbeddedObject())
+ return 0;
+ Widget* widget = toRenderEmbeddedObject(renderer)->widget();
+ if (!widget || !widget->isPluginView())
+ return 0;
+ return toPluginView(widget)->platformLayer();
+
+}
+
static inline bool isAcceleratedContents(RenderObject* renderer)
{
return isAcceleratedCanvas(renderer)
@@ -530,9 +541,8 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration()
if (isDirectlyCompositedImage())
updateImageContents();
- if (renderer->isEmbeddedObject() && toRenderEmbeddedObject(renderer)->requiresAcceleratedCompositing()) {
- PluginView* pluginView = toPluginView(toRenderWidget(renderer)->widget());
- m_graphicsLayer->setContentsToPlatformLayer(pluginView->platformLayer());
+ if (blink::WebLayer* layer = platformLayerForPlugin(renderer)) {
+ m_graphicsLayer->setContentsToPlatformLayer(layer);
} else if (renderer->node() && renderer->node()->isFrameOwnerElement() && toHTMLFrameOwnerElement(renderer->node())->contentFrame()) {
blink::WebLayer* layer = toHTMLFrameOwnerElement(renderer->node())->contentFrame()->remotePlatformLayer();
if (layer)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698