Bug 98579

Summary: REGRESSION (r128787): Fixed position div causes other elements to not update correctly
Product: WebKit Reporter: Kevin M. Dean <kevin>
Component: WebCore Misc.Assignee: Simon Fraser (smfr) <simon.fraser>
Status: ASSIGNED ---    
Severity: Normal CC: bdakin, cabanier, dglazkov, enne, eric, jchaffraix, simon.fraser, thorton, webkit-bug-importer, webkit.review.bot
Priority: P1 Keywords: InRadar, Regression
Version: 528+ (Nightly build)   
Hardware: Mac (Intel)   
OS: OS X 10.8   
URL: http://development.rhubarbproductions.com/webkit/update/
Attachments:
Description Flags
Simpler testcase
none
Patch
none
Patch none

Description Kevin M. Dean 2012-10-05 18:22:42 PDT
This test link is reduced from a wordpress admin page where it places an admin bar with a position: fixed; on it.

Load the test page. Scroll the Shortcodes list. About 25% down it stops updating, but if you roll your arrow over the content, that triggers and rendering update. Scroll it back to the top and it starts updating normally again.

Removing the position: fixed; from the top div with Web Inspector causes the glitch to not occur.

Likely related to Bug 98578
Comment 1 Simon Fraser (smfr) 2012-10-08 11:59:25 PDT
It pops into compositing layers then stops updating.
Comment 2 Radar WebKit Bug Importer 2012-10-08 12:00:09 PDT
<rdar://problem/12454632>
Comment 3 Simon Fraser (smfr) 2012-10-15 21:54:10 PDT
Created attachment 168848 [details]
Simpler testcase
Comment 4 Simon Fraser (smfr) 2012-10-15 22:16:47 PDT
As you scroll, the positioned children of the overflow div overlap the position:fixed bar, so they become composited (even though they are clipped out, which could be improved).

The issue here is related to the fact that we create a compositing layer for the overflow:hidden, but it is marked as not requiring its own backing store. When scrolling, we repaint this layer's m_repaintRect, but that has been computing local to this layer, even though the layer doesn't paint itself.
Comment 5 Simon Fraser (smfr) 2012-10-15 23:04:45 PDT
Created attachment 168860 [details]
Patch
Comment 6 Rik Cabanier 2012-10-15 23:09:06 PDT
Attachment 168860 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
LayoutTests/compositing/repaint/requires-backing-repaint-expected.png:0:  Set the svn:mime-type property (svn propset svn:mime-type image/png LayoutTests/compositing/repaint/requires-backing-repaint-expected.png).  [image/png] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 WebKit Review Bot 2012-10-16 00:00:47 PDT
Comment on attachment 168860 [details]
Patch

Attachment 168860 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14392050

New failing tests:
compositing/repaint/requires-backing-repaint.html
platform/chromium/virtual/softwarecompositing/repaint/requires-backing-repaint.html
Comment 8 Simon Fraser (smfr) 2012-10-16 11:09:24 PDT
Created attachment 168981 [details]
Patch
Comment 9 Simon Fraser (smfr) 2012-10-16 11:30:05 PDT
Comment on attachment 168981 [details]
Patch

http://trac.webkit.org/changeset/131479

Keeping the bug open because there's still an issue with the scrollbar layers not showing up right away.
Comment 10 Eric Seidel (no email) 2013-01-04 00:42:39 PST
Comment on attachment 168981 [details]
Patch

Cleared Beth Dakin's review+ from obsolete attachment 168981 [details] so that this bug does not appear in http://webkit.org/pending-commit.