Changeset 167796 in webkit


Ignore:
Timestamp:
Apr 25, 2014 1:04:28 AM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Incomplete body painting when using blend modes
https://bugs.webkit.org/show_bug.cgi?id=131889

Source/WebCore:
The incomplete painting was caused by the transparency layer created for
the root renderer. We can safely skip creating this transparency layer at
the root level, as there is nothing else being painted behind this layer that
could be used erroneously as a backdrop.

Patch by Ion Rosca <Ion Rosca> on 2014-04-25
Reviewed by Simon Fraser.

Test: css3/compositing/blend-mode-with-body.html

  • rendering/RenderLayer.h:

Changing RenderLayer::paintsWithTransparency so that it will not
return true when the root renderer needs to isolate blending.

LayoutTests:
Patch by Ion Rosca <Ion Rosca> on 2014-04-25
Reviewed by Simon Fraser.

  • css3/compositing/blend-mode-with-body-expected.html: Added.
  • css3/compositing/blend-mode-with-body.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r167780 r167796  
     12014-04-25  Ion Rosca  <rosca@adobe.com>
     2
     3        Incomplete body painting when using blend modes
     4        https://bugs.webkit.org/show_bug.cgi?id=131889
     5
     6        Reviewed by Simon Fraser.
     7
     8        * css3/compositing/blend-mode-with-body-expected.html: Added.
     9        * css3/compositing/blend-mode-with-body.html: Added.
     10
    1112014-04-24  Commit Queue  <commit-queue@webkit.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r167794 r167796  
     12014-04-25  Ion Rosca  <rosca@adobe.com>
     2
     3        Incomplete body painting when using blend modes
     4        https://bugs.webkit.org/show_bug.cgi?id=131889
     5
     6        The incomplete painting was caused by the transparency layer created for
     7        the root renderer. We can safely skip creating this transparency layer at
     8        the root level, as there is nothing else being painted behind this layer that
     9        could be used erroneously as a backdrop.
     10
     11        Reviewed by Simon Fraser.
     12
     13        Test: css3/compositing/blend-mode-with-body.html
     14
     15        * rendering/RenderLayer.h:
     16        Changing RenderLayer::paintsWithTransparency so that it will not
     17        return true when the root renderer needs to isolate blending.
     18
    1192014-04-25  Darin Adler  <darin@apple.com>
    220
  • trunk/Source/WebCore/rendering/RenderLayer.h

    r167714 r167796  
    834834    bool paintsWithTransparency(PaintBehavior paintBehavior) const
    835835    {
    836         return (isTransparent() || hasBlendMode() || isolatesBlending()) && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || !isComposited());
     836        return (isTransparent() || hasBlendMode() || (isolatesBlending() && !renderer().isRoot())) && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || !isComposited());
    837837    }
    838838
Note: See TracChangeset for help on using the changeset viewer.