Bug 87580 - Clip rects assertion when hovering div with transform
Summary: Clip rects assertion when hovering div with transform
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-26 10:16 PDT by Simon Fraser (smfr)
Modified: 2012-05-26 13:16 PDT (History)
3 users (show)

See Also:


Attachments
Patch (4.11 KB, patch)
2012-05-26 10:22 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2012-05-26 10:16:06 PDT
Now that we cache clip rects for hit testing, which are relative to the "rootLayer" passed through RenderLayer::hitTest methods, we need to clear those caches when transforms come and go, otherwise we'll hit:

ASSERTION FAILED: rootLayer == m_clipRectsCache->m_clipRectsRoot[clipRectsType]
/Volumes/DataSSD/Development/apple/webkit/WebKit.git/Source/WebCore/rendering/RenderLayer.cpp(3777) : void WebCore::RenderLayer::updateClipRects(const WebCore::RenderLayer *, WebCore::RenderRegion *, WebCore::ClipRectsType, WebCore::OverlayScrollbarSizeRelevancy)
1   0x10586b6e7 WebCore::RenderLayer::updateClipRects(WebCore::RenderLayer const*, WebCore::RenderRegion*, WebCore::ClipRectsType, WebCore::OverlayScrollbarSizeRelevancy)
2   0x10586c455 WebCore::RenderLayer::parentClipRects(WebCore::RenderLayer const*, WebCore::RenderRegion*, WebCore::ClipRectsType, WebCore::ClipRects&, WebCore::OverlayScrollbarSizeRelevancy) const
3   0x105863b31 WebCore::RenderLayer::backgroundClipRect(WebCore::RenderLayer const*, WebCore::RenderRegion*, WebCore::ClipRectsType, WebCore::OverlayScrollbarSizeRelevancy) const
4   0x105865ef9 WebCore::RenderLayer::calculateRects(WebCore::RenderLayer const*, WebCore::RenderRegion*, WebCore::ClipRectsType, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutRect&, WebCore::ClipRect&, WebCore::ClipRect&, WebCore::ClipRect&, WebCore::OverlayScrollbarSizeRelevancy) const
5   0x1058684cf WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
6   0x105869f1e WebCore::RenderLayer::hitTestList(WTF::Vector<WebCore::RenderLayer*, 0ul>*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, WebCore::HitTestingTransformState const*, double*, double*, WebCore::HitTestingTransformState const*, bool)
7   0x10586878c WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
8   0x1058680d4 WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
9   0x105869f1e WebCore::RenderLayer::hitTestList(WTF::Vector<WebCore::RenderLayer*, 0ul>*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, WebCore::HitTestingTransformState const*, double*, double*, WebCore::HitTestingTransformState const*, bool)
10  0x10586878c WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
11  0x105869f1e WebCore::RenderLayer::hitTestList(WTF::Vector<WebCore::RenderLayer*, 0ul>*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, WebCore::HitTestingTransformState const*, double*, double*, WebCore::HitTestingTransformState const*, bool)
12  0x10586878c WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::FractionalLayoutRect const&, WebCore::FractionalLayoutPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
13  0x105867b68 WebCore::RenderLayer::hitTest(WebCore::HitTestRequest const&, WebCore::HitTestResult&)
14  0x1059e7d60 WebCore::RenderView::hitTest(WebCore::HitTestRequest const&, WebCore::HitTestResult&)
15  0x1048e849a WebCore::Document::prepareMouseEvent(WebCore::HitTestRequest const&, WebCore::FractionalLayoutPoint const&, WebCore::PlatformMouseEvent const&)
16  0x104b170e3 WebCore::EventHandler::prepareMouseEvent(WebCore::HitTestRequest const&, WebCore::PlatformMouseEvent const&)
17  0x104b176de WebCore::EventHandler::handleMouseMoveEvent(WebCore::PlatformMouseEvent const&, WebCore::HitTestResult*, bool)
18  0x104b171c1 WebCore::EventHandler::mouseMoved(WebCore::PlatformMouseEvent const&)
19  0x104b27614 WebCore::EventHandler::mouseMoved(NSEvent*)
20  0x10288a163 -[WebHTMLView(WebPrivate) _updateMouseoverWithEvent:]
21  0x1028978b4 -[WebHTMLView mouseMovedNotification:]
22  0x7fff8e908d0e __-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_1
23  0x7fff98f6f7ba _CFXNotificationPost
24  0x7fff8e8f4fc3 -[NSNotificationCenter postNotificationName:object:userInfo:]
25  0x7fff93ff3fbd forwardMethod
26  0x7fff98fb670d -[NSObject performSelector:withObject:]
27  0x7fff93ff3f6a forwardMethod
28  0x7fff98fb670d -[NSObject performSelector:withObject:]
29  0x7fff93ff3f6a forwardMethod
30  0x7fff98fb670d -[NSObject performSelector:withObject:]
Comment 1 Simon Fraser (smfr) 2012-05-26 10:22:08 PDT
Created attachment 144204 [details]
Patch
Comment 2 Eric Seidel (no email) 2012-05-26 11:55:24 PDT
Comment on attachment 144204 [details]
Patch

LGTM.
Comment 3 WebKit Review Bot 2012-05-26 13:16:12 PDT
Comment on attachment 144204 [details]
Patch

Clearing flags on attachment: 144204

Committed r118612: <http://trac.webkit.org/changeset/118612>
Comment 4 WebKit Review Bot 2012-05-26 13:16:17 PDT
All reviewed patches have been landed.  Closing bug.