[Webkit-unassigned] [Bug 140183] Failed to display background image when body is composited

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 7 10:51:17 PST 2015


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

Simon Fraser (smfr) <simon.fraser at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #244160|review?                     |review-
              Flags|                            |

--- Comment #2 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
Comment on attachment 244160
  --> https://bugs.webkit.org/attachment.cgi?id=244160
Render: properly update body's background image

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

> LayoutTests/ChangeLog:9
> +        When HTML and BODY renderers are both composited the
> +        skipBodyBackground condition should also take into account
> +        if the HTML's layer can draw its contents.
> +        Also ensure the background is displayed when loaded.

There are lots of other places in the code that need to know about root background propagation, and I wonder which other of them need similar logic.

> LayoutTests/compositing/backgrounds/background-image-layer.html:21
> +function createVideo() {
> +    var video = document.createElement("video");
> +    video.style.width = "320px";
> +    video.style.height = "180px";
> +    var source = document.createElement("source");
> +    source.src = "../../media/content/test-25fps.mp4";
> +    source.type = "video/mp4";
> +    video.appendChild(source);
> +    
> +    return video;
> +}

It would be better to us something other than video to trigger compositing. Video tests are notoriously unreliable.

> Source/WebCore/rendering/RenderBox.cpp:115
> +    if (skip && bodyElementRenderer->isComposited() && documentElementRenderer->isBox()) {

Seems weird to test documentElementRenderer->isBox(). Maybe just a hasLayer() check?

> Source/WebCore/rendering/RenderBox.cpp:118
> +            if (backing && backing->graphicsLayer())

If there's a backing, it will always have a graphics layer. You can just test layer->isComposited()

> Source/WebCore/rendering/RenderLayerBacking.cpp:1920
> +        // Both update grometry and set content needs redisplay.

"grometry"

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150107/332816c1/attachment-0002.html>


More information about the webkit-unassigned mailing list