| 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 {
|
|
|