summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit
diff options
context:
space:
mode:
authorvollick@chromium.org <vollick@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2014-03-24 17:54:03 +0000
committervollick@chromium.org <vollick@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2014-03-24 17:54:03 +0000
commit06f0b6be08ba75d26cc04ee35ae854961d1cb068 (patch)
tree0f18f2c752f896ddd97e5a70b1532d8a32715232 /third_party/WebKit
parent19d9b93ab812c8265892fade1ce6d9a3d9119cf4 (diff)
downloadchromium_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.cpp11
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()) {