[Webkit-unassigned] [Bug 111701] Basic child obscuration test for backgrounds

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 12 15:49:16 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=111701





--- Comment #19 from Simon Fraser (smfr) <simon.fraser at apple.com>  2013-03-12 15:51:41 PST ---
(From update of attachment 192795)
View in context: https://bugs.webkit.org/attachment.cgi?id=192795&action=review

> Source/WebCore/rendering/RenderBox.cpp:1135
> +bool RenderBox::isOpaqueInRect(const LayoutRect& localRect) const

I think this should be backgroundIsOpaqueInRect() since it only checks the background.

> Source/WebCore/rendering/RenderBox.cpp:1174
> +    // Table background painting is special.
> +    if (isTable())
> +        return false;

The body/document elements are also special, because of root background propagation.

> Source/WebCore/rendering/RenderBox.cpp:1176
> +    LayoutRect backgroundRect = borderBoxRect();

Why doesn't this needs to get the right background rect by checking style()->backgroundClip() like the function above?

> Source/WebCore/rendering/RenderBox.cpp:1189
> +        if (childStyle->visibility() != VISIBLE || childStyle->zIndex() < zIndex || childStyle->shapeOutside())
> +            continue;

I don't think the z-index check makes sense if we're not a stacking context, or we're not positioned. It would be better to deal with this if the child is a layer, and it should be explicit about us being a stacking context. It's very hard for me to think about whether this check is correct.

> LayoutTests/fast/repaint/obscured-background-no-repaint.html:26
> +        setTimeout(logRepaints, 200);

Do we really have to wait 200ms? This will be a very slow test.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list