Bug 49746 - compositing/masks/simple-composited-mask.html failure
Summary: compositing/masks/simple-composited-mask.html failure
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Macintosh OS X 10.6
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2010-11-18 10:37 PST by Vangelis Kokkevis
Modified: 2010-12-14 17:18 PST (History)
5 users (show)

See Also:


Attachments
Patch (11.59 KB, patch)
2010-12-13 22:50 PST, Simon Fraser (smfr)
mitz: review+
eric: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vangelis Kokkevis 2010-11-18 10:37:22 PST
When loading:

compositing/masks/simple-composited-mask.html

the top image in the composited column is blank.

This is with a recent nightly build: Version 5.0 (6533.16, r72146)

It also occasionally happens for the masked-ancestor test, after successive reloads.  

I did spend a little bit of time trying to debug this and it appears that the mask layer's bounds are zero when that happens.
Comment 1 Simon Fraser (smfr) 2010-11-18 10:42:40 PST
I can reproduce. I think this must have regressed at some point.
Comment 2 Simon Fraser (smfr) 2010-11-18 10:43:02 PST
<rdar://problem/8683794>
Comment 3 Simon Fraser (smfr) 2010-12-13 21:12:56 PST
The mask isn't getting painted for some reason.
Comment 4 Simon Fraser (smfr) 2010-12-13 21:39:15 PST
The masked compositing layer is 0x0; it gets its size via box->maskClipRect() but that returns 0x0 before the image has loaded. So when the mask image loads, we need to rejigger some composting geometry.
Comment 5 Simon Fraser (smfr) 2010-12-13 22:50:37 PST
Created attachment 76503 [details]
Patch
Comment 6 mitz 2010-12-13 22:54:20 PST
Comment on attachment 76503 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=76503&action=review

> WebCore/rendering/RenderLayerBacking.cpp:801
> -    if (isDirectlyCompositedImage()) {
> +    if ((changeType == RenderLayer::ImageChanged) && isDirectlyCompositedImage()) {

This method’s body can now be a switch statement.
Comment 7 WebKit Review Bot 2010-12-13 22:57:39 PST
Attachment 76503 [details] did not build on chromium:
Build output: http://queues.webkit.org/results/6977103
Comment 8 Eric Seidel (no email) 2010-12-13 23:58:45 PST
Attachment 76503 [details] did not build on chromium:
Build output: http://queues.webkit.org/results/6889119
Comment 9 Eric Seidel (no email) 2010-12-14 01:17:39 PST
Comment on attachment 76503 [details]
Patch

Seems this patch will need an update to avoid breaking Chromium.
Comment 10 Vangelis Kokkevis 2010-12-14 10:03:47 PST
(In reply to comment #9)
> (From update of attachment 76503 [details])
> Seems this patch will need an update to avoid breaking Chromium.

Definitely.  I'll update and resubmit!  Thanks.
Comment 11 Simon Fraser (smfr) 2010-12-14 11:18:57 PST
I can take care of it.
Comment 12 Simon Fraser (smfr) 2010-12-14 16:10:33 PST
http://trac.webkit.org/changeset/74066
Comment 13 WebKit Review Bot 2010-12-14 17:18:29 PST
http://trac.webkit.org/changeset/74066 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
fast/css/focus-ring-detached.html
fast/css/focus-ring-multiline.html