RESOLVED FIXED72682
iframe fails to scroll in composited page
https://bugs.webkit.org/show_bug.cgi?id=72682
Summary iframe fails to scroll in composited page
Vangelis Kokkevis
Reported 2011-11-17 17:30:48 PST
This was reported in:http://code.google.com/p/chromium/issues/detail?id=103250 To reproduce: 1. Go to http://dl.dropbox.com/u/671766/chromecanvasbug/testcanvas.html 2. Try to scroll the inner scrollable iframe. It should scroll fine. 3. Open the inspector and find the canvas element. Add a -webkit-transform:translateZ(0) to it. 4. Try to scroll the inner scrollable iframe again. The scrollbar moves but the contents won't update. This repros in Chrome 17, Safari 5 and WebKit nightly r100547
Attachments
Patch (7.85 KB, patch)
2011-12-12 14:50 PST, Adrienne Walker
no flags
Add a transform to the test (8.18 KB, patch)
2011-12-12 17:11 PST, Adrienne Walker
no flags
Greatly simplify (7.28 KB, patch)
2011-12-12 17:23 PST, Adrienne Walker
no flags
Adrienne Walker
Comment 1 2011-12-12 14:50:15 PST
Simon Fraser (smfr)
Comment 2 2011-12-12 14:53:17 PST
Comment on attachment 118860 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=118860&action=review > Source/WebCore/page/FrameView.cpp:1548 > + LayoutRect rect(frameRenderer->borderLeft() + frameRenderer->paddingLeft(), > + frameRenderer->borderTop() + frameRenderer->paddingTop(), > + frameView->visibleWidth(), frameView->visibleHeight()); > + frameRenderer->repaintRectangle(rect); It's not clear that this rect math works correctly if there's a CSS transform between this frame view and the one doing the repainting.
Adrienne Walker
Comment 3 2011-12-12 17:11:25 PST
Created attachment 118915 [details] Add a transform to the test
Adrienne Walker
Comment 4 2011-12-12 17:14:25 PST
Comment on attachment 118915 [details] Add a transform to the test Er, ignore this patch. Sorry.
Simon Fraser (smfr)
Comment 5 2011-12-12 17:18:05 PST
Comment on attachment 118915 [details] Add a transform to the test View in context: https://bugs.webkit.org/attachment.cgi?id=118915&action=review > Source/WebCore/page/FrameView.cpp:1550 > + FloatPoint absoluteLocation = thisOwnerRenderer->localToAbsolute(rect.location(), false, true); > + rect.setLocation(roundedIntPoint(frameRenderer->absoluteToLocal(absoluteLocation, false, true))); I think you should use Widget::convertToContainingView() here.
Adrienne Walker
Comment 6 2011-12-12 17:23:05 PST
Created attachment 118922 [details] Greatly simplify
Adrienne Walker
Comment 7 2011-12-12 17:24:33 PST
(In reply to comment #6) > Created an attachment (id=118922) [details] > Greatly simplify It looks like repaintRectangle on the inner iframe renderer ends up converting to the right space. That seems simpler than doing the conversion manually.
WebKit Review Bot
Comment 8 2011-12-12 18:32:37 PST
Comment on attachment 118922 [details] Greatly simplify Clearing flags on attachment: 118922 Committed r102649: <http://trac.webkit.org/changeset/102649>
WebKit Review Bot
Comment 9 2011-12-12 18:32:42 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.