diff options
author | vollick@chromium.org <vollick@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-03-24 17:54:03 +0000 |
---|---|---|
committer | vollick@chromium.org <vollick@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-03-24 17:54:03 +0000 |
commit | 06f0b6be08ba75d26cc04ee35ae854961d1cb068 (patch) | |
tree | 0f18f2c752f896ddd97e5a70b1532d8a32715232 /third_party/WebKit | |
parent | 19d9b93ab812c8265892fade1ce6d9a3d9119cf4 (diff) | |
download | chromium_src-06f0b6be08ba75d26cc04ee35ae854961d1cb068.zip chromium_src-06f0b6be08ba75d26cc04ee35ae854961d1cb068.tar.gz chromium_src-06f0b6be08ba75d26cc04ee35ae854961d1cb068.tar.bz2 |
Fix bug in scrollParent
We were early'ing out, but not calling cache->setScrollParent. The result: the
cache thought it was dirty, but it wasn't. This CL fixes that.
BUG=TBD
Review URL: https://codereview.chromium.org/209663007
git-svn-id: svn://svn.chromium.org/blink/trunk@169870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit')
-rw-r--r-- | third_party/WebKit/Source/core/rendering/RenderLayer.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/third_party/WebKit/Source/core/rendering/RenderLayer.cpp b/third_party/WebKit/Source/core/rendering/RenderLayer.cpp index 412d4c5..20f618d 100644 --- a/third_party/WebKit/Source/core/rendering/RenderLayer.cpp +++ b/third_party/WebKit/Source/core/rendering/RenderLayer.cpp @@ -1752,14 +1752,19 @@ RenderLayer* RenderLayer::scrollParent() const return m_ancestorDependentPropertyCache->scrollParent(); RenderLayer* scrollParent = ancestorCompositedScrollingLayer(); - if (!scrollParent || scrollParent->stackingNode()->isStackingContainer()) + if (!scrollParent || scrollParent->stackingNode()->isStackingContainer()) { + if (m_ancestorDependentPropertyCache) + m_ancestorDependentPropertyCache->setScrollParent(0); return 0; + } // If we hit a stacking context on our way up to the ancestor scrolling layer, it will already // be composited due to an overflow scrolling parent, so we don't need to. for (RenderLayer* ancestor = parent(); ancestor && ancestor != scrollParent; ancestor = ancestor->parent()) { - if (ancestor->stackingNode()->isStackingContainer()) - return 0; + if (ancestor->stackingNode()->isStackingContainer()) { + scrollParent = 0; + break; + } if (!isInCompositingUpdate()) continue; if (AncestorDependentPropertyCache* ancestorCache = ancestor->m_ancestorDependentPropertyCache.get()) { |