RESOLVED FIXED 12729
box-shadow disappears when scrolling a div that it falls on/under
https://bugs.webkit.org/show_bug.cgi?id=12729
Summary box-shadow disappears when scrolling a div that it falls on/under
Alexander Kempgen
Reported 2007-02-10 17:56:47 PST
scrolling a div that has overlay: auto makes box-shadows that might be behind that div disappear
Attachments
testcase (626 bytes, text/html)
2007-02-10 17:57 PST, Alexander Kempgen
no flags
Alternate testcase (1.33 KB, text/html)
2007-04-09 17:52 PDT, Lucas Newman
no flags
First cut (12.15 KB, patch)
2007-05-18 09:25 PDT, mitz
no flags
Fixed :first-line and scrolling dimensions inconsistency (14.41 KB, patch)
2007-05-18 10:27 PDT, mitz
no flags
Fix most box-shadow repaint issues (151.31 KB, patch)
2007-05-18 13:08 PDT, mitz
hyatt: review+
Alexander Kempgen
Comment 1 2007-02-10 17:57:33 PST
Created attachment 13114 [details] testcase
David Kilzer (:ddkilzer)
Comment 2 2007-02-10 18:01:13 PST
Confirmed with local debug build of WebKit r19554 with Safari 2.0.4 (419.3) on Mac OS X 10.4.8 (8N1037).
mitz
Comment 3 2007-02-10 22:38:18 PST
box-shadow is currently completely unaccounted for in dirty rect calculation. This will be easier to change once WebCore's notion of "overflow" becomes strictly visual overflow. There's a patch attached to bug 12123 that does that.
Lucas Newman
Comment 4 2007-04-09 17:52:17 PDT
Created attachment 13995 [details] Alternate testcase I've added an attachment that animates a box with a shadow across the window, which leaves a visible trail because the dirty rect calculations do not include shadows as mentioned.
Lucas Newman
Comment 5 2007-04-09 18:36:12 PDT
<radr://problem/5122659> WebKit: -webkit-box-shadow does not clear shadow rect correctly when repainting
mitz
Comment 6 2007-04-10 08:27:11 PDT
*** Bug 12832 has been marked as a duplicate of this bug. ***
Jonathan del Strother
Comment 7 2007-04-30 03:14:31 PDT
*** Bug 13319 has been marked as a duplicate of this bug. ***
mitz
Comment 8 2007-05-08 22:48:36 PDT
*** Bug 13633 has been marked as a duplicate of this bug. ***
mitz
Comment 9 2007-05-16 11:24:00 PDT
*** Bug 13748 has been marked as a duplicate of this bug. ***
mitz
Comment 10 2007-05-18 09:25:31 PDT
Created attachment 14608 [details] First cut Still missing tests. There is an inconsistency in how boxes with shadow affect scroll dimensions, since overflow is factored into {rightmost,leftmost,lowest}Position for normal boxes but not for overflow boxes. The bigger issue, though, is that due to Core Graphics bugs, sometimes damage is not repaired even though the right rect was invalidated and all the painting code executed. Specifically, I verified using a standalone app that CG will not paint the the blurred part of the shadow if the non-blurred part and the object casting the shadow are entirely above or to the right of the damage rect. Another CG bug is that sometimes that shadow is painted at a smaller offset than requested (bug 12943).
mitz
Comment 11 2007-05-18 09:37:58 PDT
Also failing a :first-line { -webkit-box-shadow: ... } test case.
mitz
Comment 12 2007-05-18 10:27:02 PDT
Created attachment 14609 [details] Fixed :first-line and scrolling dimensions inconsistency
mitz
Comment 13 2007-05-18 13:08:20 PDT
Created attachment 14612 [details] Fix most box-shadow repaint issues Reviewable. What's not included: (1) inline-flow layers (those are broken for outlines already); (2) in quirks mode if you have an inline flow with no text children, vertical overflow isn't updated correctly; (3) WebKit magic that fixes Core Graphics bugs.
Dave Hyatt
Comment 14 2007-05-18 15:33:08 PDT
Comment on attachment 14612 [details] Fix most box-shadow repaint issues r=me
Mark Rowe (bdash)
Comment 15 2007-05-19 17:40:07 PDT
Landed in r21605.
Note You need to log in before you can comment on or make changes to this bug.