Index: third_party/WebKit/Source/core/layout/compositing/GraphicsLayerUpdater.cpp |
diff --git a/third_party/WebKit/Source/core/layout/compositing/GraphicsLayerUpdater.cpp b/third_party/WebKit/Source/core/layout/compositing/GraphicsLayerUpdater.cpp |
index 85d6ab5c0169d04d6bfe9a3ad2bed05e52d7dec4..6d68894dad669a5e17833d94ecc901fc84fb4d93 100644 |
--- a/third_party/WebKit/Source/core/layout/compositing/GraphicsLayerUpdater.cpp |
+++ b/third_party/WebKit/Source/core/layout/compositing/GraphicsLayerUpdater.cpp |
@@ -56,13 +56,15 @@ class GraphicsLayerUpdater::UpdateContext { |
const PaintLayer* compositingContainer(const PaintLayer& layer) const { |
// TODO(chrishtr) this is not very performant for floats, but they should |
// be uncommon enough, and SPv2 will remove this code. |
- if (layer.layoutObject()->isFloating() && layer.layoutObject()->parent() && |
- !layer.stackingNode()->isStacked() && |
- !layer.layoutObject()->parent()->isLayoutBlockFlow()) { |
+ if (layer.stackingNode()->isStacked()) |
+ return m_compositingStackingContext; |
+ |
+ const LayoutObject* object = layer.layoutObject(); |
+ if (object->isFloating() && object->parent() && |
+ !object->parent()->canContainFloatingObject(*object)) |
return layer.enclosingLayerWithCompositedLayerMapping(ExcludeSelf); |
- } |
- return layer.stackingNode()->isStacked() ? m_compositingStackingContext |
- : m_compositingAncestor; |
+ |
+ return m_compositingAncestor; |
} |
const PaintLayer* compositingStackingContext() const { |