[webkit-reviews] review granted: [Bug 116994] Setting overflow:hidden on position:absolute does not repaint hidden content : [Attachment 203661] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jun 6 17:28:57 PDT 2013


Simon Fraser (smfr) <simon.fraser at apple.com> has granted Yuki Sekiguchi
<yuki.sekiguchi at access-company.com>'s request for review:
Bug 116994: Setting overflow:hidden on position:absolute does not repaint
hidden content
https://bugs.webkit.org/show_bug.cgi?id=116994

Attachment 203661: Patch
https://bugs.webkit.org/attachment.cgi?id=203661&action=review

------- Additional Comments from Simon Fraser (smfr) <simon.fraser at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=203661&action=review


> Source/WebCore/ChangeLog:18
> +	   In the reproduced content, overflow:hidden parent(called P) has
display:none replaced child(called C).
> +	   If we hover a element, P becomes overflow:visible, and C becomes
display:block.
> +	   If we mouse out from the element, P becomes hidden, and C becomes
none, and part of C is not repainted.
> +
> +	   When we mouse out from the element, P and C request repaint.
> +	   Before requesting repaint, P becomes overflow: hidden, and it makes
hasOverflowClip() true.
> +	   Requesting repaint from C is clipped by P at
RenderBox::computeRectForRepaint().
> +	   The rect which P requests repaint is content rect of P, so the rect
which is overflowed from P is not requested.
> +
> +	   If C is not relative, visual overflow rect of P has the rect of C,
so we can repaint well.
> +	   If C doesn't become display:none, layouting C requests repaint the
rect of C, so we can repaint well.

I don't think this long explanation is necessary.

> Source/WebCore/rendering/RenderLayerModelObject.cpp:82
> +    return !hasSelfPaintingLayer() && container->hasOverflowClip();

You should ASSERT that o is the container.

>
LayoutTests/fast/repaint/change-overflow-and-display-of-relative-expected.html:
2
> +<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">

Don't need the <meta> tag.

> LayoutTests/fast/repaint/change-overflow-and-display-of-relative.html:32
> +	   }, 50);

Can this be < 50ms?


More information about the webkit-reviews mailing list