Changeset 201529 in webkit


Ignore:
Timestamp:
May 31, 2016 2:57:39 PM (8 years ago)
Author:
hyatt@apple.com
Message:

REGRESSION(r201040): Repainting of moving overflow:hidden objects is broken.
https://bugs.webkit.org/show_bug.cgi?id=158079

Reviewed by Zalan Bujtas.

Source/WebCore:

Added new test fast/repaint/overflow-hidden-movement.html

Change checkForRepaintDuringLayout() to only be true for self-painting layers
and not for all layers.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::hasSelfPaintingLayer):
(WebCore::RenderObject::checkForRepaintDuringLayout):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSelfPaintingLayer):

LayoutTests:

  • fast/repaint/overflow-hidden-movement-expected.txt: Added.
  • fast/repaint/overflow-hidden-movement.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r201522 r201529  
     12016-05-31  Dave Hyatt  <hyatt@apple.com>
     2
     3        REGRESSION(r201040): Repainting of moving overflow:hidden objects is broken.
     4        https://bugs.webkit.org/show_bug.cgi?id=158079
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        * fast/repaint/overflow-hidden-movement-expected.txt: Added.
     9        * fast/repaint/overflow-hidden-movement.html: Added.
     10
    1112016-05-31  Eric Carlson  <eric.carlson@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r201528 r201529  
     12016-05-31  Dave Hyatt  <hyatt@apple.com>
     2
     3        REGRESSION(r201040): Repainting of moving overflow:hidden objects is broken.
     4        https://bugs.webkit.org/show_bug.cgi?id=158079
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Added new test fast/repaint/overflow-hidden-movement.html
     9
     10        Change checkForRepaintDuringLayout() to only be true for self-painting layers
     11        and not for all layers.
     12
     13        * rendering/RenderObject.cpp:
     14        (WebCore::RenderObject::hasSelfPaintingLayer):
     15        (WebCore::RenderObject::checkForRepaintDuringLayout):
     16        * rendering/RenderObject.h:
     17        (WebCore::RenderObject::hasSelfPaintingLayer):
     18
    1192016-05-31  Zalan Bujtas  <zalan@apple.com>
    220
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r201528 r201529  
    937937}
    938938
     939bool RenderObject::hasSelfPaintingLayer() const
     940{
     941    if (!hasLayer())
     942        return false;
     943    auto* layer = downcast<RenderLayerModelObject>(*this).layer();
     944    if (!layer)
     945        return false;
     946    return layer->isSelfPaintingLayer();
     947}
     948   
    939949bool RenderObject::checkForRepaintDuringLayout() const
    940950{
    941     return !document().view()->needsFullRepaint() && !hasLayer() && everHadLayout();
     951    return !document().view()->needsFullRepaint() && everHadLayout() && !hasSelfPaintingLayer();
    942952}
    943953
  • trunk/Source/WebCore/rendering/RenderObject.h

    r201201 r201529  
    508508
    509509    bool hasLayer() const { return m_bitfields.hasLayer(); }
     510    bool hasSelfPaintingLayer() const;
    510511
    511512    enum BoxDecorationState {
Note: See TracChangeset for help on using the changeset viewer.