Changeset 73972 in webkit
- Timestamp:
- Dec 13, 2010 3:05:25 PM (13 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r73964 r73972 1 2010-12-13 David Hyatt <hyatt@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 https://bugs.webkit.org/show_bug.cgi?id=50963 6 7 REGRESSION: Scrolling nested iframes is messed up on platforms that use the cross-platform ScrollView. 8 9 The selfClipRect and childrenClipRect methods of RenderLayer were incorrectly relying on the bounding box 10 of the root layer. This bounding box was only coincidentally incorporating overflow as part of the 11 RenderLayer's bounds. Since I fixed the RenderLayer bounds to not include layout overflow any longer, 12 this check is now exposed as incorrect. Use the entire document size when computing layer clip 13 rects. 14 15 * rendering/RenderLayer.cpp: 16 (WebCore::RenderLayer::childrenClipRect): 17 (WebCore::RenderLayer::selfClipRect): 18 * rendering/RenderView.h: 19 (WebCore::RenderView::documentRect): 20 1 21 2010-12-13 Simon Fraser <simon.fraser@apple.com> 2 22 -
trunk/WebCore/rendering/RenderLayer.cpp
r73941 r73972 3303 3303 IntRect RenderLayer::childrenClipRect() const 3304 3304 { 3305 Render Layer* rootLayer = renderer()->view()->layer();3305 RenderView* renderView = renderer()->view(); 3306 3306 RenderLayer* clippingRootLayer = clippingRoot(); 3307 3307 IntRect layerBounds, backgroundRect, foregroundRect, outlineRect; 3308 calculateRects(clippingRootLayer, r ootLayer->boundingBox(rootLayer), layerBounds, backgroundRect, foregroundRect, outlineRect);3308 calculateRects(clippingRootLayer, renderView->documentRect(), layerBounds, backgroundRect, foregroundRect, outlineRect); 3309 3309 return clippingRootLayer->renderer()->localToAbsoluteQuad(FloatQuad(foregroundRect)).enclosingBoundingBox(); 3310 3310 } … … 3312 3312 IntRect RenderLayer::selfClipRect() const 3313 3313 { 3314 Render Layer* rootLayer = renderer()->view()->layer();3314 RenderView* renderView = renderer()->view(); 3315 3315 RenderLayer* clippingRootLayer = clippingRoot(); 3316 3316 IntRect layerBounds, backgroundRect, foregroundRect, outlineRect; 3317 calculateRects(clippingRootLayer, r ootLayer->boundingBox(rootLayer), layerBounds, backgroundRect, foregroundRect, outlineRect);3317 calculateRects(clippingRootLayer, renderView->documentRect(), layerBounds, backgroundRect, foregroundRect, outlineRect); 3318 3318 return clippingRootLayer->renderer()->localToAbsoluteQuad(FloatQuad(backgroundRect)).enclosingBoundingBox(); 3319 3319 } -
trunk/WebCore/rendering/RenderView.h
r73385 r73972 173 173 int docRight() const; 174 174 int docWidth() const { return docRight() - docLeft(); } 175 IntRect documentRect() const { return IntRect(docLeft(), docTop(), docWidth(), docHeight()); } 175 176 176 177 protected:
Note: See TracChangeset
for help on using the changeset viewer.