Changeset 212499 in webkit


Ignore:
Timestamp:
Feb 16, 2017 4:56:33 PM (7 years ago)
Author:
matthew_hanson@apple.com
Message:

Merge r212172. rdar://problem/30476807

Location:
branches/safari-603-branch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-603-branch/LayoutTests/ChangeLog

    r212498 r212499  
     12017-02-16  Matthew Hanson  <matthew_hanson@apple.com>
     2
     3        Merge r212172. rdar://problem/30476807
     4
     5    2017-02-10  Simon Fraser  <simon.fraser@apple.com>
     6
     7            REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure
     8            https://bugs.webkit.org/show_bug.cgi?id=168054
     9
     10            Reviewed by Tim Horton.
     11
     12            Make the timeout 10ms so the test consistently fails with the old code.
     13
     14            * compositing/masks/solid-color-masked.html:
     15
    1162017-02-16  Matthew Hanson  <matthew_hanson@apple.com>
    217
  • branches/safari-603-branch/LayoutTests/compositing/masks/solid-color-masked.html

    r170306 r212499  
    1111       
    1212        .composited {
    13           -webkit-transform: translateZ(0);
     13          transform: translateZ(0);
    1414        }
    1515
     
    2727                if (window.testRunner)
    2828                    testRunner.notifyDone();
    29             }, 0);
     29            }, 10);
    3030        }
    3131        window.addEventListener('load', doTest, false);
  • branches/safari-603-branch/Source/WebCore/ChangeLog

    r212496 r212499  
     12017-02-16  Matthew Hanson  <matthew_hanson@apple.com>
     2
     3        Merge r212172. rdar://problem/30476807
     4
     5    2017-02-10  Simon Fraser  <simon.fraser@apple.com>
     6
     7            REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure
     8            https://bugs.webkit.org/show_bug.cgi?id=168054
     9
     10            Reviewed by Tim Horton.
     11
     12            When adding mask layers, there was an ordering dependency. There was a hack in GraphicsLayerCA::setVisibleAndCoverageRects()
     13            to propagate m_intersectsCoverageRect to masks. However, if GraphicsLayerCA::setVisibleAndCoverageRects()
     14            ran on the masked layer before the mask was added, nothing updated the "m_intersectsCoverageRect" state of the mask layer.
     15
     16            Fix by explicitly calling setVisibleAndCoverageRects() on the mask layer, passing the same rects and
     17            viewport-constrained state as for its host layer (we already assume that their geometry matches).
     18
     19            Tested by compositing/masks/solid-color-masked.html
     20
     21            * platform/graphics/ca/GraphicsLayerCA.cpp:
     22            (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
     23            (WebCore::GraphicsLayerCA::recursiveCommitChanges):
     24
    1252017-02-16  Matthew Hanson  <matthew_hanson@apple.com>
    226
  • branches/safari-603-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

    r212489 r212499  
    13331333        m_uncommittedChanges |= CoverageRectChanged;
    13341334        m_intersectsCoverageRect = intersectsCoverageRect;
    1335 
    1336         if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
    1337             maskLayer->m_uncommittedChanges |= CoverageRectChanged;
    1338             maskLayer->m_intersectsCoverageRect = intersectsCoverageRect;
    1339         }
    13401335    }
    13411336
     
    13431338        m_uncommittedChanges |= CoverageRectChanged;
    13441339        m_visibleRect = rects.visibleRect;
    1345 
    1346         if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
    1347             // FIXME: this assumes that the mask layer has the same geometry as this layer (which is currently always true).
    1348             maskLayer->m_uncommittedChanges |= CoverageRectChanged;
    1349             maskLayer->m_visibleRect = rects.visibleRect;
    1350         }
    13511340    }
    13521341
     
    13541343        m_uncommittedChanges |= CoverageRectChanged;
    13551344        m_coverageRect = rects.coverageRect;
    1356 
    1357         if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
    1358             maskLayer->m_uncommittedChanges |= CoverageRectChanged;
    1359             maskLayer->m_coverageRect = rects.coverageRect;
    1360         }
    13611345    }
    13621346}
     
    14241408    childCommitState.ancestorIsViewportConstrained |= m_isViewportConstrained;
    14251409
    1426     if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer))
     1410    if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
     1411        maskLayer->setVisibleAndCoverageRects(rects, m_isViewportConstrained || commitState.ancestorIsViewportConstrained);
    14271412        maskLayer->commitLayerChangesBeforeSublayers(childCommitState, pageScaleFactor, baseRelativePosition);
     1413    }
    14281414
    14291415    const Vector<GraphicsLayer*>& childLayers = children();
Note: See TracChangeset for help on using the changeset viewer.