Changeset 183300 in webkit


Ignore:
Timestamp:
Apr 24, 2015, 6:02:52 PM (10 years ago)
Author:
Simon Fraser
Message:

Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached
https://bugs.webkit.org/show_bug.cgi?id=144165

Reviewed by Dean Jackson.

Source/WebCore:

Push in the clipRect as the secondary rect when doing a GraphicsLayerCA flush,
which maps this rect through all the layers. Each layer tests intersection with
this rect to determine if its backing store should be attached.

This will cause us to drop backing store for layers that don't intersect the
visible part of the view, which is too aggressive. A future patch will add
some padding.

Tests: compositing/visible-rect/coverage-clipped.html

compositing/visible-rect/coverage-scrolling.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA): Remove initialization of things with
C++11 initializers. Initialize the new m_intersectsCoverageRect bit.
(WebCore::GraphicsLayerCA::flushCompositingState): Push the clipRect in as the
secondary coverage rect. A future patch will inflate this on the way down the tree.
(WebCore::GraphicsLayerCA::computeVisibleRect): If we're clipping, and
we have a secondary coverage rect, that rect can be clipped to us too.
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackingStoreAttachment):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h: New CoverageRectChanged bit.

Use more C++11 initializers.
(WebCore::GraphicsLayerCA::coverageRect):

LayoutTests:

Updated results that now include coverage rects, and a new test that includes both visible
and hidden layers.

  • compositing/contents-scale/animating-expected.txt:
  • compositing/contents-scale/rounded-contents-scale-expected.txt:
  • compositing/contents-scale/scaled-ancestor-expected.txt:
  • compositing/contents-scale/simple-scale-expected.txt:
  • compositing/contents-scale/z-translate-expected.txt:
  • compositing/visible-rect/coverage-clipped-expected.txt: Added.
  • compositing/visible-rect/coverage-clipped.html: Added.
  • compositing/visible-rect/coverage-scrolling-expected.txt: Added.
  • compositing/visible-rect/coverage-scrolling.html: Added.
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-clipped-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: Added.
  • platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac/compositing/visible-rect/2d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/animated-expected.txt:
  • platform/mac/compositing/visible-rect/animated-from-none-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt:
  • platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac/compositing/visible-rect/nested-transform-expected.txt:
  • platform/mac/compositing/visible-rect/scrolled-expected.txt:
Location:
trunk
Files:
6 added
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r183290 r183300  
     12015-04-24  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached
     4        https://bugs.webkit.org/show_bug.cgi?id=144165
     5
     6        Reviewed by Dean Jackson.
     7       
     8        Updated results that now include coverage rects, and a new test that includes both visible
     9        and hidden layers.
     10
     11        * compositing/contents-scale/animating-expected.txt:
     12        * compositing/contents-scale/rounded-contents-scale-expected.txt:
     13        * compositing/contents-scale/scaled-ancestor-expected.txt:
     14        * compositing/contents-scale/simple-scale-expected.txt:
     15        * compositing/contents-scale/z-translate-expected.txt:
     16        * compositing/visible-rect/coverage-clipped-expected.txt: Added.
     17        * compositing/visible-rect/coverage-clipped.html: Added.
     18        * compositing/visible-rect/coverage-scrolling-expected.txt: Added.
     19        * compositing/visible-rect/coverage-scrolling.html: Added.
     20        * platform/ios-simulator-wk2/compositing/visible-rect/coverage-clipped-expected.txt: Added.
     21        * platform/ios-simulator-wk2/compositing/visible-rect/coverage-scrolling-expected.txt: Added.
     22        * platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
     23        * platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
     24        * platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
     25        * platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt:
     26        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
     27        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
     28        * platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
     29        * platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
     30        * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
     31        * platform/mac/compositing/visible-rect/2d-transformed-expected.txt:
     32        * platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
     33        * platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
     34        * platform/mac/compositing/visible-rect/animated-expected.txt:
     35        * platform/mac/compositing/visible-rect/animated-from-none-expected.txt:
     36        * platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt:
     37        * platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt:
     38        * platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt:
     39        * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
     40        * platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt:
     41        * platform/mac/compositing/visible-rect/nested-transform-expected.txt:
     42        * platform/mac/compositing/visible-rect/scrolled-expected.txt:
     43
    1442015-04-21  Geoffrey Garen  <ggaren@apple.com>
    245
  • trunk/LayoutTests/compositing/contents-scale/animating-expected.txt

    r180441 r183300  
    44  (bounds 800.00 600.00)
    55  (visible rect 0.00, 0.00 800.00 x 600.00)
     6  (coverage rect 0.00, 0.00 800.00 x 600.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    1012      (contentsOpaque 1)
    1113      (visible rect 0.00, 0.00 800.00 x 600.00)
     14      (coverage rect 0.00, 0.00 800.00 x 600.00)
     15      (intersects coverage rect 1)
    1216      (contentsScale 1.00)
    1317      (children 1
     
    2024          (transform [1.50 0.00 0.00 0.00] [0.00 1.50 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
    2125          (visible rect 0.00, 0.00 100.00 x 100.00)
     26          (coverage rect 0.00, 0.00 800.00 x 600.00)
     27          (intersects coverage rect 1)
    2228          (contentsScale 1.00)
    2329        )
  • trunk/LayoutTests/compositing/contents-scale/rounded-contents-scale-expected.txt

    r169229 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1620          (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.78 0.51 1.00 -0.00] [0.00 0.00 0.00 1.00])
    1721          (visible rect 0.00, 0.00 784.00 x 512.00)
     22          (coverage rect -8.00, -8.00 800.00 x 600.00)
     23          (intersects coverage rect 1)
    1824          (contentsScale 1.00)
    1925          (children 6
     
    2430              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 -200.00 1.00])
    2531              (visible rect 0.00, 0.00 102.00 x 102.00)
     32              (coverage rect -8.00, -8.00 800.00 x 600.00)
     33              (intersects coverage rect 1)
    2634              (contentsScale 1.00)
    2735            )
     
    3341              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 -100.00 1.00])
    3442              (visible rect 0.00, 0.00 102.00 x 102.00)
     43              (coverage rect -8.00, -8.00 800.00 x 600.00)
     44              (intersects coverage rect 1)
    3545              (contentsScale 1.00)
    3646            )
     
    4151              (drawsContent 1)
    4252              (visible rect 0.00, 0.00 102.00 x 102.00)
     53              (coverage rect -8.00, -8.00 800.00 x 600.00)
     54              (intersects coverage rect 1)
    4355              (contentsScale 1.00)
    4456            )
     
    5062              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 50.00 1.00])
    5163              (visible rect 0.00, 0.00 102.00 x 102.00)
     64              (coverage rect -8.00, -8.00 800.00 x 600.00)
     65              (intersects coverage rect 1)
    5266              (contentsScale 1.00)
    5367            )
     
    5973              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 100.00 1.00])
    6074              (visible rect 0.00, 0.00 102.00 x 102.00)
     75              (coverage rect -8.00, -8.00 800.00 x 600.00)
     76              (intersects coverage rect 1)
    6177              (contentsScale 1.00)
    6278            )
     
    6884              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 150.00 1.00])
    6985              (visible rect 0.00, 0.00 102.00 x 4.40)
     86              (coverage rect -8.00, -8.00 800.00 x 600.00)
     87              (intersects coverage rect 1)
    7088              (contentsScale 1.00)
    7189            )
  • trunk/LayoutTests/compositing/contents-scale/scaled-ancestor-expected.txt

    r180441 r183300  
    44  (bounds 800.00 600.00)
    55  (visible rect 0.00, 0.00 800.00 x 600.00)
     6  (coverage rect 0.00, 0.00 800.00 x 600.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    1012      (contentsOpaque 1)
    1113      (visible rect 0.00, 0.00 800.00 x 600.00)
     14      (coverage rect 0.00, 0.00 800.00 x 600.00)
     15      (intersects coverage rect 1)
    1216      (contentsScale 1.00)
    1317      (children 1
     
    1923          (transform [2.00 0.00 0.00 0.00] [0.00 2.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
    2024          (visible rect 0.00, 0.00 102.00 x 102.00)
     25          (coverage rect 0.00, 0.00 800.00 x 600.00)
     26          (intersects coverage rect 1)
    2127          (contentsScale 1.00)
    2228          (children 1
     
    2733              (drawsContent 1)
    2834              (visible rect 0.00, 0.00 100.00 x 100.00)
     35              (coverage rect -11.00, -11.00 800.00 x 600.00)
     36              (intersects coverage rect 1)
    2937              (contentsScale 1.00)
    3038            )
  • trunk/LayoutTests/compositing/contents-scale/simple-scale-expected.txt

    r180441 r183300  
    44  (bounds 800.00 600.00)
    55  (visible rect 0.00, 0.00 800.00 x 600.00)
     6  (coverage rect 0.00, 0.00 800.00 x 600.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    1012      (contentsOpaque 1)
    1113      (visible rect 0.00, 0.00 800.00 x 600.00)
     14      (coverage rect 0.00, 0.00 800.00 x 600.00)
     15      (intersects coverage rect 1)
    1216      (contentsScale 1.00)
    1317      (children 1
     
    2024          (transform [2.00 0.00 0.00 0.00] [0.00 2.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
    2125          (visible rect 0.00, 0.00 100.00 x 100.00)
     26          (coverage rect 0.00, 0.00 800.00 x 600.00)
     27          (intersects coverage rect 1)
    2228          (contentsScale 1.00)
    2329        )
  • trunk/LayoutTests/compositing/contents-scale/z-translate-expected.txt

    r180441 r183300  
    55  (bounds 800.00 600.00)
    66  (visible rect 0.00, 0.00 800.00 x 600.00)
     7  (coverage rect 0.00, 0.00 800.00 x 600.00)
     8  (intersects coverage rect 1)
    79  (contentsScale 1.00)
    810  (children 1
     
    1113      (contentsOpaque 1)
    1214      (visible rect 0.00, 0.00 800.00 x 600.00)
     15      (coverage rect 0.00, 0.00 800.00 x 600.00)
     16      (intersects coverage rect 1)
    1317      (contentsScale 1.00)
    1418      (children 1
     
    1822          (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    1923          (visible rect 0.00, 0.00 102.00 x 102.00)
     24          (coverage rect -8.00, -8.00 800.00 x 600.00)
     25          (intersects coverage rect 1)
    2026          (contentsScale 1.00)
    2127          (children 1
     
    2834              (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 100.00 1.00])
    2935              (visible rect 0.00, 0.00 100.00 x 100.00)
     36              (coverage rect -7.20, -7.20 640.00 x 480.00)
     37              (intersects coverage rect 1)
    3038              (contentsScale 1.00)
    3139              (children 1
     
    3846                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 100.00 1.00])
    3947                  (visible rect 0.00, 0.00 100.00 x 100.00)
     48                  (coverage rect -15.40, -33.40 480.00 x 360.00)
     49                  (intersects coverage rect 1)
    4050                  (contentsScale 1.00)
    4151                )
  • trunk/LayoutTests/platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt

    r169278 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (tile cache coverage 0, 0 800 x 600)
     
    1822          (bounds 502.00 302.00)
    1923          (visible rect 0.00, 0.00 502.00 x 302.00)
     24          (coverage rect -58.00, -50.00 800.00 x 600.00)
     25          (intersects coverage rect 1)
    2026          (contentsScale 1.00)
    2127          (children 1
     
    2531              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2632              (visible rect 0.00, 0.00 500.00 x 300.00)
     33              (coverage rect 0.00, 0.00 500.00 x 300.00)
     34              (intersects coverage rect 1)
    2735              (contentsScale 1.00)
    2836              (children 1
     
    3644                  (transform [0.17 0.00 -0.98 0.00] [0.00 1.00 0.00 0.00] [0.98 0.00 0.17 0.00] [0.00 0.00 0.00 1.00])
    3745                  (visible rect 0.00, 0.00 2800.00 x 300.00)
     46                  (coverage rect 0.00, 0.00 500.00 x 300.00)
     47                  (intersects coverage rect 1)
    3848                  (contentsScale 1.00)
    3949                  (tile cache coverage 0, 0 2800 x 300)
  • trunk/LayoutTests/platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt

    r177200 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (tile cache coverage 0, 0 800 x 600)
     
    1822          (bounds 502.00 302.00)
    1923          (visible rect 0.00, 0.00 502.00 x 302.00)
     24          (coverage rect -58.00, -50.00 800.00 x 600.00)
     25          (intersects coverage rect 1)
    2026          (contentsScale 1.00)
    2127          (children 1
     
    2531              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2632              (visible rect 0.00, 0.00 500.00 x 300.00)
     33              (coverage rect 0.00, 0.00 500.00 x 300.00)
     34              (intersects coverage rect 1)
    2735              (contentsScale 1.00)
    2836              (children 1
     
    3038                  (preserves3D 1)
    3139                  (visible rect 0.00, 0.00 0.00 x 0.00)
     40                  (coverage rect 0.00, 0.00 500.00 x 300.00)
     41                  (intersects coverage rect 0)
    3242                  (contentsScale 1.00)
    3343                  (children 1
     
    4151                      (transform [0.17 0.00 -0.98 0.00] [0.00 1.00 0.00 0.00] [0.98 0.00 0.17 0.00] [0.00 0.00 0.00 1.00])
    4252                      (visible rect 0.00, 0.00 2800.00 x 300.00)
     53                      (coverage rect -1562500.00, -1562500.00 1563571.88 x 1562694.63)
     54                      (intersects coverage rect 1)
    4355                      (contentsScale 1.00)
    4456                      (tile cache coverage 0, 0 2800 x 300)
  • trunk/LayoutTests/platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt

    r168244 r183300  
    33  (bounds 1932.00 4150.00)
    44  (visible rect 0.00, 0.00 785.00 x 585.00)
     5  (coverage rect 0.00, 0.00 785.00 x 585.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    1113      (transform [1.60 0.00 0.00 0.00] [0.00 1.60 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
    1214      (visible rect 0.00, 0.00 490.63 x 365.63)
     15      (coverage rect 0.00, 0.00 785.00 x 585.00)
     16      (intersects coverage rect 1)
    1317      (contentsScale 1.60)
    1418      (tile cache coverage 0, 0 640 x 640)
     
    2226          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    2327          (visible rect 0.00, 0.00 482.63 x 357.63)
     28          (coverage rect 0.00, 0.00 785.00 x 585.00)
     29          (intersects coverage rect 1)
    2430          (contentsScale 1.60)
    2531        )
  • trunk/LayoutTests/platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt

    r180441 r183300  
    44  (bounds 1508.00 1516.00)
    55  (visible rect 10.00, 100.00 285.00 x 135.00)
     6  (coverage rect 10.00, 100.00 285.00 x 135.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    1012      (drawsContent 1)
    1113      (visible rect 10.00, 100.00 285.00 x 135.00)
     14      (coverage rect 10.00, 100.00 285.00 x 135.00)
     15      (intersects coverage rect 1)
    1216      (contentsScale 1.00)
    1317      (children 1
     
    1923          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    2024          (visible rect 2.00, 92.00 98.00 x 135.00)
     25          (coverage rect 10.00, 100.00 285.00 x 135.00)
     26          (intersects coverage rect 1)
    2127          (contentsScale 1.00)
    2228        )
  • trunk/LayoutTests/platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt

    r180107 r183300  
    99  (bounds 807.00 585.00)
    1010  (visible rect 0.00, 0.00 800.00 x 585.00)
     11  (coverage rect 0.00, 0.00 800.00 x 585.00)
     12  (intersects coverage rect 1)
    1113  (contentsScale 1.00)
    1214  (children 1
     
    1517      (contentsOpaque 1)
    1618      (visible rect 0.00, 0.00 800.00 x 585.00)
     19      (coverage rect 0.00, 0.00 800.00 x 585.00)
     20      (intersects coverage rect 1)
    1721      (contentsScale 1.00)
    1822      (children 6
     
    2226          (drawsContent 1)
    2327          (visible rect 0.00, 0.00 22.00 x 22.00)
     28          (coverage rect -8.00, -96.00 800.00 x 585.00)
     29          (intersects coverage rect 1)
    2430          (contentsScale 1.00)
    2531        )
     
    2935          (drawsContent 1)
    3036          (visible rect 0.00, 0.00 22.00 x 22.00)
     37          (coverage rect -8.00, -138.00 800.00 x 585.00)
     38          (intersects coverage rect 1)
    3139          (contentsScale 1.00)
    3240        )
     
    3644          (drawsContent 1)
    3745          (visible rect 0.00, 0.00 102.00 x 20.00)
     46          (coverage rect -8.00, -86.00 800.00 x 585.00)
     47          (intersects coverage rect 1)
    3848          (contentsScale 1.00)
    3949        )
     
    4252          (bounds 100.00 18.00)
    4353          (visible rect 0.00, 0.00 100.00 x 18.00)
     54          (coverage rect 0.00, 0.00 100.00 x 18.00)
     55          (intersects coverage rect 1)
    4456          (contentsScale 1.00)
    4557          (children 1
     
    4860              (drawsContent 1)
    4961              (visible rect 0.00, 0.00 100.00 x 18.00)
     62              (coverage rect 0.00, 0.00 100.00 x 18.00)
     63              (intersects coverage rect 1)
    5064              (contentsScale 1.00)
    5165            )
     
    5771          (drawsContent 1)
    5872          (visible rect 0.00, 0.00 102.00 x 20.00)
     73          (coverage rect -8.00, -128.00 800.00 x 585.00)
     74          (intersects coverage rect 1)
    5975          (contentsScale 1.00)
    6076        )
     
    6480          (drawsContent 1)
    6581          (visible rect 0.00, 0.00 800.00 x 18.00)
     82          (coverage rect 0.00, -129.00 800.00 x 585.00)
     83          (intersects coverage rect 1)
    6684          (contentsScale 1.00)
    6785        )
  • trunk/LayoutTests/platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt

    r180107 r183300  
    99  (bounds 807.00 585.00)
    1010  (visible rect 0.00, 0.00 800.00 x 585.00)
     11  (coverage rect 0.00, 0.00 800.00 x 585.00)
     12  (intersects coverage rect 1)
    1113  (contentsScale 1.00)
    1214  (children 1
     
    1517      (contentsOpaque 1)
    1618      (visible rect 0.00, 0.00 800.00 x 585.00)
     19      (coverage rect 0.00, 0.00 800.00 x 585.00)
     20      (intersects coverage rect 1)
    1721      (contentsScale 1.00)
    1822      (children 6
     
    2226          (drawsContent 1)
    2327          (visible rect 0.00, 0.00 22.00 x 22.00)
     28          (coverage rect -8.00, -96.00 800.00 x 585.00)
     29          (intersects coverage rect 1)
    2430          (contentsScale 1.00)
    2531        )
     
    2935          (drawsContent 1)
    3036          (visible rect 0.00, 0.00 22.00 x 22.00)
     37          (coverage rect -8.00, -138.00 800.00 x 585.00)
     38          (intersects coverage rect 1)
    3139          (contentsScale 1.00)
    3240        )
     
    3644          (drawsContent 1)
    3745          (visible rect 0.00, 0.00 102.00 x 20.00)
     46          (coverage rect -8.00, -86.00 800.00 x 585.00)
     47          (intersects coverage rect 1)
    3848          (contentsScale 1.00)
    3949        )
     
    4252          (bounds 100.00 18.00)
    4353          (visible rect 0.00, 0.00 100.00 x 18.00)
     54          (coverage rect 0.00, 0.00 100.00 x 18.00)
     55          (intersects coverage rect 1)
    4456          (contentsScale 1.00)
    4557          (children 1
     
    4860              (drawsContent 1)
    4961              (visible rect 0.00, 0.00 100.00 x 18.00)
     62              (coverage rect 0.00, 0.00 100.00 x 18.00)
     63              (intersects coverage rect 1)
    5064              (contentsScale 1.00)
    5165            )
     
    5771          (drawsContent 1)
    5872          (visible rect 0.00, 0.00 102.00 x 20.00)
     73          (coverage rect -8.00, -128.00 800.00 x 585.00)
     74          (intersects coverage rect 1)
    5975          (contentsScale 1.00)
    6076        )
     
    6480          (drawsContent 1)
    6581          (visible rect 0.00, 0.00 791.00 x 18.00)
     82          (coverage rect -9.00, -129.00 800.00 x 585.00)
     83          (intersects coverage rect 1)
    6684          (contentsScale 1.00)
    6785        )
  • trunk/LayoutTests/platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 302.00)
    1620          (visible rect 0.00, 0.00 502.00 x 302.00)
     21          (coverage rect -58.00, -50.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2228              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2329              (visible rect 0.00, 0.00 500.00 x 300.00)
     30              (coverage rect 0.00, 0.00 500.00 x 300.00)
     31              (intersects coverage rect 1)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    3341                  (transform [0.17 0.00 -0.98 0.00] [0.00 1.00 0.00 0.00] [0.98 0.00 0.17 0.00] [0.00 0.00 0.00 1.00])
    3442                  (visible rect 0.00, 0.00 2800.00 x 300.00)
     43                  (coverage rect 0.00, 0.00 500.00 x 300.00)
     44                  (intersects coverage rect 1)
    3545                  (contentsScale 1.00)
    3646                  (tile cache coverage 0, 0 2800 x 300)
  • trunk/LayoutTests/platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 302.00)
    1620          (visible rect 0.00, 0.00 502.00 x 302.00)
     21          (coverage rect -58.00, -50.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2228              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2329              (visible rect 0.00, 0.00 500.00 x 300.00)
     30              (coverage rect 0.00, 0.00 500.00 x 300.00)
     31              (intersects coverage rect 1)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    2735                  (preserves3D 1)
    2836                  (visible rect 0.00, 0.00 0.00 x 0.00)
     37                  (coverage rect 0.00, 0.00 500.00 x 300.00)
     38                  (intersects coverage rect 0)
    2939                  (contentsScale 1.00)
    3040                  (children 1
     
    3848                      (transform [0.17 0.00 -0.98 0.00] [0.00 1.00 0.00 0.00] [0.98 0.00 0.17 0.00] [0.00 0.00 0.00 1.00])
    3949                      (visible rect 0.00, 0.00 2800.00 x 300.00)
     50                      (coverage rect -1562500.00, -1562500.00 1563571.88 x 1562694.63)
     51                      (intersects coverage rect 1)
    4052                      (contentsScale 1.00)
    4153                      (tile cache coverage 0, 0 2800 x 300)
  • trunk/LayoutTests/platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt

    r180441 r183300  
    33  (bounds 1932.00 4150.00)
    44  (visible rect 0.00, 0.00 785.00 x 585.00)
     5  (coverage rect 0.00, 0.00 785.00 x 585.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    1113      (transform [1.60 0.00 0.00 0.00] [0.00 1.60 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
    1214      (visible rect 0.00, 0.00 490.63 x 365.63)
     15      (coverage rect 0.00, 0.00 785.00 x 585.00)
     16      (intersects coverage rect 1)
    1317      (contentsScale 1.60)
    1418      (children 1
     
    1923          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    2024          (visible rect 0.00, 0.00 482.63 x 357.63)
     25          (coverage rect 0.00, 0.00 785.00 x 585.00)
     26          (intersects coverage rect 1)
    2127          (contentsScale 1.60)
    2228        )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/2d-transformed-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 202.00)
    1620          (visible rect 0.00, 0.00 502.00 x 202.00)
     21          (coverage rect -8.00, -8.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2127              (bounds 500.00 200.00)
    2228              (visible rect 0.00, 0.00 500.00 x 200.00)
     29              (coverage rect 0.00, 0.00 500.00 x 200.00)
     30              (intersects coverage rect 1)
    2331              (contentsScale 1.00)
    2432              (children 3
     
    2836                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [-100.00 0.00 0.00 1.00])
    2937                  (visible rect 100.00, 0.00 100.00 x 200.00)
     38                  (coverage rect 100.00, 0.00 500.00 x 200.00)
     39                  (intersects coverage rect 1)
    3040                  (contentsScale 1.00)
    3141                )
     
    3545                  (transform [0.71 0.71 0.00 0.00] [-0.71 0.71 0.00 0.00] [0.00 0.00 1.00 0.00] [150.00 0.00 0.00 1.00])
    3646                  (visible rect 0.00, 0.00 200.00 x 200.00)
     47                  (coverage rect 0.00, 0.00 500.00 x 200.00)
     48                  (intersects coverage rect 1)
    3749                  (contentsScale 1.00)
    3850                )
     
    4254                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [400.00 0.00 0.00 1.00])
    4355                  (visible rect 0.00, 0.00 100.00 x 200.00)
     56                  (coverage rect -400.00, 0.00 500.00 x 200.00)
     57                  (intersects coverage rect 1)
    4458                  (contentsScale 1.00)
    4559                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/3d-transform-style-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 2
     
    1519          (bounds 204.00 204.00)
    1620          (visible rect 0.00, 0.00 204.00 x 204.00)
     21          (coverage rect -18.00, -10.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2228              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.07 0.07 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2329              (visible rect 0.00, 0.00 200.00 x 200.00)
     30              (coverage rect 0.00, 0.00 200.00 x 200.00)
     31              (intersects coverage rect 1)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    2735                  (preserves3D 1)
    2836                  (visible rect 0.00, 0.00 0.00 x 0.00)
     37                  (coverage rect 0.00, 0.00 200.00 x 200.00)
     38                  (intersects coverage rect 0)
    2939                  (contentsScale 1.00)
    3040                  (children 1
     
    3444                      (transform [1.00 0.00 0.00 0.00] [0.00 0.91 0.42 0.00] [0.00 -0.42 0.91 0.00] [0.00 0.00 0.00 1.00])
    3545                      (visible rect 0.00, 0.00 213.67 x 200.68)
     46                      (coverage rect -4.32, -20.27 217.99 x 220.95)
     47                      (intersects coverage rect 1)
    3648                      (contentsScale 1.00)
    3749                    )
     
    4658          (bounds 204.00 204.00)
    4759          (visible rect 0.00, 0.00 204.00 x 204.00)
     60          (coverage rect -18.00, -224.00 800.00 x 600.00)
     61          (intersects coverage rect 1)
    4862          (contentsScale 1.00)
    4963          (children 1
     
    5367              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.07 0.07 1.00 -0.00] [0.00 0.00 0.00 1.00])
    5468              (visible rect 0.00, 0.00 200.00 x 200.00)
     69              (coverage rect 0.00, 0.00 200.00 x 200.00)
     70              (intersects coverage rect 1)
    5571              (contentsScale 1.00)
    5672              (children 1
     
    5874                  (preserves3D 1)
    5975                  (visible rect 0.00, 0.00 0.00 x 0.00)
     76                  (coverage rect 0.00, 0.00 200.00 x 200.00)
     77                  (intersects coverage rect 0)
    6078                  (contentsScale 1.00)
    6179                  (children 1
     
    6583                      (transform [0.91 0.00 0.42 0.00] [0.00 1.00 0.00 0.00] [-0.42 0.00 0.91 0.00] [0.00 0.00 0.00 1.00])
    6684                      (visible rect 0.00, 0.00 200.68 x 213.67)
     85                      (coverage rect -20.27, -4.32 220.95 x 217.99)
     86                      (intersects coverage rect 1)
    6787                      (contentsScale 1.00)
    6888                    )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/3d-transformed-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 2
     
    1519          (bounds 204.00 204.00)
    1620          (visible rect 0.00, 0.00 204.00 x 204.00)
     21          (coverage rect -18.00, -10.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2228              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.07 0.07 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2329              (visible rect 0.00, 0.00 200.00 x 200.00)
     30              (coverage rect 0.00, 0.00 200.00 x 200.00)
     31              (intersects coverage rect 1)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    3038                  (transform [1.00 0.00 0.00 0.00] [0.00 0.71 0.71 0.00] [0.00 -0.71 0.71 0.00] [0.00 0.00 0.00 1.00])
    3139                  (visible rect 0.00, 0.00 220.62 x 218.46)
     40                  (coverage rect 0.00, 0.00 200.00 x 200.00)
     41                  (intersects coverage rect 1)
    3242                  (contentsScale 1.00)
    3343                )
     
    4050          (bounds 204.00 204.00)
    4151          (visible rect 0.00, 0.00 204.00 x 204.00)
     52          (coverage rect -18.00, -224.00 800.00 x 600.00)
     53          (intersects coverage rect 1)
    4254          (contentsScale 1.00)
    4355          (children 1
     
    4759              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.07 0.07 1.00 -0.00] [0.00 0.00 0.00 1.00])
    4860              (visible rect 0.00, 0.00 200.00 x 200.00)
     61              (coverage rect 0.00, 0.00 200.00 x 200.00)
     62              (intersects coverage rect 1)
    4963              (contentsScale 1.00)
    5064              (children 1
     
    5569                  (transform [0.71 0.00 0.71 0.00] [0.00 1.00 0.00 0.00] [-0.71 0.00 0.71 0.00] [0.00 0.00 0.00 1.00])
    5670                  (visible rect 0.00, 0.00 218.46 x 220.62)
     71                  (coverage rect 0.00, 0.00 200.00 x 200.00)
     72                  (intersects coverage rect 1)
    5773                  (contentsScale 1.00)
    5874                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/animated-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 202.00)
    1620          (visible rect 0.00, 0.00 502.00 x 202.00)
     21          (coverage rect -8.00, -8.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2127              (bounds 500.00 200.00)
    2228              (visible rect 0.00, 0.00 500.00 x 200.00)
     29              (coverage rect 0.00, 0.00 500.00 x 200.00)
     30              (intersects coverage rect 1)
    2331              (contentsScale 1.00)
    2432              (children 1
     
    2836                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [-100.00 0.00 0.00 1.00])
    2937                  (visible rect 100.00, 0.00 100.00 x 200.00)
     38                  (coverage rect 100.00, 0.00 500.00 x 200.00)
     39                  (intersects coverage rect 1)
    3040                  (contentsScale 1.00)
    3141                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/animated-from-none-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 202.00)
    1620          (visible rect 0.00, 0.00 502.00 x 202.00)
     21          (coverage rect -8.00, -8.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2127              (bounds 500.00 200.00)
    2228              (visible rect 0.00, 0.00 500.00 x 200.00)
     29              (coverage rect 0.00, 0.00 500.00 x 200.00)
     30              (intersects coverage rect 1)
    2331              (contentsScale 1.00)
    2432              (children 1
     
    2836                  (contentsOpaque 1)
    2937                  (visible rect 100.00, 0.00 100.00 x 200.00)
     38                  (coverage rect 100.00, 0.00 500.00 x 200.00)
     39                  (intersects coverage rect 1)
    3040                  (contentsScale 1.00)
    3141                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 2
     
    1721          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    1822          (visible rect 100.00, 120.00 100.00 x 80.00)
     23          (coverage rect 0.00, 0.00 800.00 x 600.00)
     24          (intersects coverage rect 1)
    1925          (contentsScale 1.00)
    2026        )
     
    2531          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    2632          (visible rect 100.00, 0.00 100.00 x 200.00)
     33          (coverage rect 0.00, 0.00 800.00 x 600.00)
     34          (intersects coverage rect 1)
    2735          (contentsScale 1.00)
    2836        )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt

    r180441 r183300  
    33  (bounds 800.00 600.00)
    44  (visible rect 0.00, 0.00 800.00 x 600.00)
     5  (coverage rect 0.00, 0.00 800.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 800.00 x 600.00)
     13      (coverage rect 0.00, 0.00 800.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1519          (bounds 502.00 202.00)
    1620          (visible rect 0.00, 0.00 502.00 x 202.00)
     21          (coverage rect -8.00, -8.00 800.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2127              (bounds 500.00 200.00)
    2228              (visible rect 0.00, 0.00 500.00 x 200.00)
     29              (coverage rect 0.00, 0.00 500.00 x 200.00)
     30              (intersects coverage rect 1)
    2331              (contentsScale 1.00)
    2432              (children 3
     
    2937                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    3038                  (visible rect 100.00, 0.00 100.00 x 200.00)
     39                  (coverage rect 0.00, 0.00 500.00 x 200.00)
     40                  (intersects coverage rect 1)
    3141                  (contentsScale 1.00)
    3242                )
     
    3747                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    3848                  (visible rect 0.00, 0.00 200.00 x 200.00)
     49                  (coverage rect 0.00, 0.00 500.00 x 200.00)
     50                  (intersects coverage rect 1)
    3951                  (contentsScale 1.00)
    4052                )
     
    4557                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    4658                  (visible rect 0.00, 0.00 100.00 x 200.00)
     59                  (coverage rect 0.00, 0.00 500.00 x 200.00)
     60                  (intersects coverage rect 1)
    4761                  (contentsScale 1.00)
    4862                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/flipped-preserve-3d-expected.txt

    r168244 r183300  
    99  (bounds 785.00 615.00)
    1010  (visible rect 0.00, 0.00 785.00 x 600.00)
     11  (coverage rect 0.00, 0.00 785.00 x 600.00)
     12  (intersects coverage rect 1)
    1113  (contentsScale 1.00)
    1214  (children 1
     
    1517      (contentsOpaque 1)
    1618      (visible rect 0.00, 0.00 785.00 x 600.00)
     19      (coverage rect 0.00, 0.00 785.00 x 600.00)
     20      (intersects coverage rect 1)
    1721      (contentsScale 1.00)
    1822      (children 1
     
    2226          (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2327          (visible rect 0.00, 0.00 602.00 x 587.00)
     28          (coverage rect 0.00, -13.00 785.00 x 600.00)
     29          (intersects coverage rect 1)
    2430          (contentsScale 1.00)
    2531          (children 1
     
    3137              (transform [-1.00 0.00 -0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 -1.00 0.00] [0.00 0.00 0.00 1.00])
    3238              (visible rect 0.00, 0.00 440.00 x 440.00)
     39              (coverage rect -184.00, -114.00 785.00 x 600.00)
     40              (intersects coverage rect 1)
    3341              (contentsScale 1.00)
    3442              (children 1
     
    3846                  (transform [-1.00 0.00 -0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 -1.00 0.00] [0.00 0.00 0.00 1.00])
    3947                  (visible rect 0.00, 0.00 420.00 x 420.00)
     48                  (coverage rect -181.00, -114.00 785.00 x 600.00)
     49                  (intersects coverage rect 1)
    4050                  (contentsScale 1.00)
    4151                  (children 1
     
    4353                      (bounds 420.00 420.00)
    4454                      (visible rect 0.00, 0.00 420.00 x 420.00)
     55                      (coverage rect 0.00, 0.00 420.00 x 420.00)
     56                      (intersects coverage rect 1)
    4557                      (contentsScale 1.00)
    4658                      (children 1
     
    5062                          (contentsOpaque 1)
    5163                          (visible rect 0.00, 90.00 418.00 x 420.00)
     64                          (coverage rect 0.00, 90.00 420.00 x 420.00)
     65                          (intersects coverage rect 1)
    5266                          (contentsScale 1.00)
    5367                          (children 1
     
    5569                              (bounds 418.00 510.00)
    5670                              (visible rect 0.00, 90.00 418.00 x 420.00)
     71                              (coverage rect 0.00, 90.00 418.00 x 420.00)
     72                              (intersects coverage rect 1)
    5773                              (contentsScale 1.00)
    5874                              (children 3
     
    6480                                  (drawsContent 1)
    6581                                  (visible rect 3000.00, 90.00 418.00 x 30.00)
     82                                  (coverage rect 3000.00, 90.00 418.00 x 420.00)
     83                                  (intersects coverage rect 1)
    6684                                  (contentsScale 1.00)
    6785                                )
     
    7391                                  (drawsContent 1)
    7492                                  (visible rect 3000.00, 0.00 418.00 x 120.00)
     93                                  (coverage rect 3000.00, -30.00 418.00 x 420.00)
     94                                  (intersects coverage rect 1)
    7595                                  (contentsScale 1.00)
    7696                                )
     
    82102                                  (drawsContent 1)
    83103                                  (visible rect 3000.00, 0.00 418.00 x 120.00)
     104                                  (coverage rect 3000.00, -150.00 418.00 x 420.00)
     105                                  (intersects coverage rect 1)
    84106                                  (contentsScale 1.00)
    85107                                )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt

    r180441 r183300  
    44  (bounds 1508.00 1516.00)
    55  (visible rect 0.00, 0.00 785.00 x 585.00)
     6  (coverage rect 0.00, 0.00 785.00 x 585.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    1012      (contentsOpaque 1)
    1113      (visible rect 0.00, 0.00 785.00 x 585.00)
     14      (coverage rect 0.00, 0.00 785.00 x 585.00)
     15      (intersects coverage rect 1)
    1216      (contentsScale 1.00)
    1317      (children 2
     
    1721          (drawsContent 1)
    1822          (visible rect 0.00, 0.00 360.00 x 210.00)
     23          (coverage rect -10.00, -10.00 785.00 x 585.00)
     24          (intersects coverage rect 1)
    1925          (contentsScale 1.00)
    2026          (children 1
     
    2228              (position 30.00 30.00)
    2329              (visible rect 0.00, 0.00 0.00 x 0.00)
     30              (coverage rect -40.00, -40.00 785.00 x 585.00)
     31              (intersects coverage rect 0)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    2836                  (bounds 285.00 135.00)
    2937                  (visible rect 0.00, 0.00 285.00 x 135.00)
     38                  (coverage rect 0.00, 0.00 285.00 x 135.00)
     39                  (intersects coverage rect 1)
    3040                  (contentsScale 1.00)
    3141                  (children 1
    3242                    (GraphicsLayer
    3343                      (visible rect 0.00, 0.00 0.00 x 0.00)
     44                      (coverage rect 0.00, 0.00 285.00 x 135.00)
     45                      (intersects coverage rect 0)
    3446                      (contentsScale 1.00)
    3547                      (children 1
     
    3850                          (bounds 1508.00 1516.00)
    3951                          (visible rect 0.00, 0.00 285.00 x 135.00)
     52                          (coverage rect 0.00, 0.00 285.00 x 135.00)
     53                          (intersects coverage rect 1)
    4054                          (contentsScale 1.00)
    4155                          (children 1
     
    4458                              (drawsContent 1)
    4559                              (visible rect 0.00, 0.00 285.00 x 135.00)
     60                              (coverage rect 0.00, 0.00 285.00 x 135.00)
     61                              (intersects coverage rect 1)
    4662                              (contentsScale 1.00)
    4763                              (children 1
     
    5369                                  (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    5470                                  (visible rect 0.00, 0.00 100.00 x 127.00)
     71                                  (coverage rect 0.00, 0.00 285.00 x 135.00)
     72                                  (intersects coverage rect 1)
    5573                                  (contentsScale 1.00)
    5674                                )
     
    7391          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    7492          (visible rect 0.00, 0.00 200.00 x 200.00)
     93          (coverage rect 0.00, 0.00 785.00 x 585.00)
     94          (intersects coverage rect 1)
    7595          (contentsScale 1.00)
    7696        )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt

    r180441 r183300  
    44  (bounds 1508.00 1516.00)
    55  (visible rect 10.00, 100.00 285.00 x 135.00)
     6  (coverage rect 10.00, 100.00 285.00 x 135.00)
     7  (intersects coverage rect 1)
    68  (contentsScale 1.00)
    79  (children 1
     
    911      (bounds 1508.00 1516.00)
    1012      (visible rect 10.00, 100.00 285.00 x 135.00)
     13      (coverage rect 10.00, 100.00 285.00 x 135.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1822          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    1923          (visible rect 2.00, 92.00 98.00 x 135.00)
     24          (coverage rect 10.00, 100.00 285.00 x 135.00)
     25          (intersects coverage rect 1)
    2026          (contentsScale 1.00)
    2127        )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/nested-transform-expected.txt

    r180441 r183300  
    33  (bounds 785.00 669.00)
    44  (visible rect 0.00, 0.00 785.00 x 600.00)
     5  (coverage rect 0.00, 0.00 785.00 x 600.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 0.00, 0.00 785.00 x 600.00)
     13      (coverage rect 0.00, 0.00 785.00 x 600.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 2
     
    1519          (bounds 304.00 304.00)
    1620          (visible rect 0.00, 0.00 304.00 x 304.00)
     21          (coverage rect -18.00, -10.00 785.00 x 600.00)
     22          (intersects coverage rect 1)
    1723          (contentsScale 1.00)
    1824          (children 1
     
    2228              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.26 0.26 1.00 -0.00] [0.00 0.00 0.00 1.00])
    2329              (visible rect 0.00, 0.00 300.00 x 300.00)
     30              (coverage rect 0.00, 0.00 300.00 x 300.00)
     31              (intersects coverage rect 1)
    2432              (contentsScale 1.00)
    2533              (children 1
     
    2937                  (transform [0.94 0.00 -0.34 0.00] [0.00 1.00 0.00 0.00] [0.34 0.00 0.94 0.00] [0.00 0.00 0.00 1.00])
    3038                  (visible rect 0.00, 0.00 0.00 x 0.00)
     39                  (coverage rect -2.95, -8.50 360.07 x 353.13)
     40                  (intersects coverage rect 0)
    3141                  (contentsScale 1.00)
    3242                  (children 1
     
    3646                      (transform [0.94 0.00 -0.34 0.00] [0.00 1.00 0.00 0.00] [0.34 0.00 0.94 0.00] [0.00 0.00 0.00 1.00])
    3747                      (visible rect 0.00, 0.00 0.00 x 0.00)
     48                      (coverage rect -27.90, -32.04 593.31 x 500.27)
     49                      (intersects coverage rect 0)
    3850                      (contentsScale 1.00)
    3951                      (children 1
     
    4355                          (transform [1.00 0.00 0.00 0.00] [0.00 0.82 0.57 0.00] [0.00 -0.57 0.82 0.00] [0.00 0.00 0.00 1.00])
    4456                          (visible rect 0.00, 0.00 500.00 x 369.91)
     57                          (coverage rect -21.28, -198.73 1388.86 x 568.64)
     58                          (intersects coverage rect 1)
    4559                          (contentsScale 1.00)
    4660                        )
     
    5771          (bounds 304.00 304.00)
    5872          (visible rect 0.00, 0.00 304.00 x 276.00)
     73          (coverage rect -18.00, -324.00 785.00 x 600.00)
     74          (intersects coverage rect 1)
    5975          (contentsScale 1.00)
    6076          (children 1
     
    6480              (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.26 0.26 1.00 -0.00] [0.00 0.00 0.00 1.00])
    6581              (visible rect 0.00, 0.00 300.00 x 274.00)
     82              (coverage rect 0.00, 0.00 300.00 x 274.00)
     83              (intersects coverage rect 1)
    6684              (contentsScale 1.00)
    6785              (children 1
     
    7088                  (preserves3D 1)
    7189                  (visible rect 0.00, 0.00 0.00 x 0.00)
     90                  (coverage rect 0.00, 0.00 300.00 x 274.00)
     91                  (intersects coverage rect 0)
    7292                  (contentsScale 1.00)
    7393                  (children 1
     
    7797                      (transform [0.77 0.00 -0.64 0.00] [0.00 1.00 0.00 0.00] [0.64 0.00 0.77 0.00] [0.00 0.00 0.00 1.00])
    7898                      (visible rect 0.00, 0.00 0.00 x 0.00)
     99                      (coverage rect -27.90, -32.04 593.31 x 456.91)
     100                      (intersects coverage rect 0)
    79101                      (contentsScale 1.00)
    80102                      (children 1
     
    84106                          (transform [1.00 0.00 0.00 0.00] [0.00 0.82 0.57 0.00] [0.00 -0.57 0.82 0.00] [0.00 0.00 0.00 1.00])
    85107                          (visible rect 0.00, 0.00 500.00 x 351.87)
     108                          (coverage rect -15.25, -198.73 1382.84 x 550.60)
     109                          (intersects coverage rect 1)
    86110                          (contentsScale 1.00)
    87111                        )
  • trunk/LayoutTests/platform/mac/compositing/visible-rect/scrolled-expected.txt

    r180441 r183300  
    33  (bounds 1508.00 2008.00)
    44  (visible rect 25.00, 200.00 785.00 x 585.00)
     5  (coverage rect 25.00, 200.00 785.00 x 585.00)
     6  (intersects coverage rect 1)
    57  (contentsScale 1.00)
    68  (children 1
     
    911      (contentsOpaque 1)
    1012      (visible rect 25.00, 200.00 785.00 x 585.00)
     13      (coverage rect 25.00, 200.00 785.00 x 585.00)
     14      (intersects coverage rect 1)
    1115      (contentsScale 1.00)
    1216      (children 1
     
    1721          (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 1.00 1.00])
    1822          (visible rect 17.00, 200.00 183.00 x 300.00)
     23          (coverage rect 25.00, 200.00 785.00 x 585.00)
     24          (intersects coverage rect 1)
    1925          (contentsScale 1.00)
    2026        )
  • trunk/Source/WebCore/ChangeLog

    r183295 r183300  
     12015-04-24  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Track a coverage rect through GraphicsLayerCA flushes, use it to mark backing store attached
     4        https://bugs.webkit.org/show_bug.cgi?id=144165
     5
     6        Reviewed by Dean Jackson.
     7       
     8        Push in the clipRect as the secondary rect when doing a GraphicsLayerCA flush,
     9        which maps this rect through all the layers. Each layer tests intersection with
     10        this rect to determine if its backing store should be attached.
     11       
     12        This will cause us to drop backing store for layers that don't intersect the
     13        visible part of the view, which is too aggressive. A future patch will add
     14        some padding.
     15
     16        Tests: compositing/visible-rect/coverage-clipped.html
     17               compositing/visible-rect/coverage-scrolling.html
     18
     19        * platform/graphics/ca/GraphicsLayerCA.cpp:
     20        (WebCore::GraphicsLayerCA::GraphicsLayerCA): Remove initialization of things with
     21        C++11 initializers. Initialize the new m_intersectsCoverageRect bit.
     22        (WebCore::GraphicsLayerCA::flushCompositingState): Push the clipRect in as the
     23        secondary coverage rect. A future patch will inflate this on the way down the tree.
     24        (WebCore::GraphicsLayerCA::computeVisibleRect): If we're clipping, and
     25        we have a secondary coverage rect, that rect can be clipped to us too.
     26        (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
     27        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
     28        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
     29        (WebCore::GraphicsLayerCA::updateBackingStoreAttachment):
     30        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
     31        * platform/graphics/ca/GraphicsLayerCA.h: New CoverageRectChanged bit.
     32        Use more C++11 initializers.
     33        (WebCore::GraphicsLayerCA::coverageRect):
     34
    1352015-04-24  Dean Jackson  <dino@apple.com>
    236
  • trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

    r183274 r183300  
    352352GraphicsLayerCA::GraphicsLayerCA(Type layerType, GraphicsLayerClient& client)
    353353    : GraphicsLayer(layerType, client)
    354     , m_contentsLayerPurpose(NoContentsLayer)
    355354    , m_needsFullRepaint(false)
    356355    , m_usingBackdropLayerType(false)
    357     , m_uncommittedChanges(0)
    358     , m_isCommittingChanges(false)
     356    , m_intersectsCoverageRect(true)
    359357{
    360358}
     
    10781076{
    10791077    TransformState state(TransformState::UnapplyInverseTransformDirection, FloatQuad(clipRect));
     1078    FloatQuad coverageQuad(clipRect);
     1079    state.setSecondaryQuad(&coverageQuad);
    10801080    recursiveCommitChanges(CommitState(), state);
    10811081}
     
    12121212        state.flatten();
    12131213        state.setQuad(clipRectForSelf);
     1214        if (state.lastPlanarSecondaryQuad()) {
     1215            FloatQuad secondaryQuad(clipRectForSelf);
     1216            state.setSecondaryQuad(&secondaryQuad);
     1217        }
    12141218    }
    12151219
     
    12171221}
    12181222
    1219 // rootRelativeTransformForScaling is a transform from the root, but for layers with transform animations, it cherry-picked the state of the
    1220 // animation that contributes maximally to the scale (on every layer with animations down the hierarchy).
    1221 void GraphicsLayerCA::recursiveCommitChanges(const CommitState& commitState, const TransformState& state, float pageScaleFactor, const FloatPoint& positionRelativeToBase, bool affectedByPageScale)
    1222 {
    1223     TransformState localState = state;
    1224     CommitState childCommitState = commitState;
    1225     bool affectedByTransformAnimation = commitState.ancestorHasTransformAnimation;
    1226    
    1227     FloatRect visibleRect = computeVisibleRect(localState);
    1228     FloatRect oldVisibleRect = m_visibleRect;
    1229     if (visibleRect != m_visibleRect) {
     1223void GraphicsLayerCA::setVisibleAndCoverageRects(const FloatRect& visibleRect, const FloatRect& coverageRect)
     1224{
     1225    bool visibleRectChanged = visibleRect != m_visibleRect;
     1226    bool coverageRectChanged = coverageRect != m_coverageRect;
     1227    if (!visibleRectChanged && !coverageRectChanged)
     1228        return;
     1229
     1230    if (visibleRectChanged) {
    12301231        m_uncommittedChanges |= VisibleRectChanged;
    12311232        m_visibleRect = visibleRect;
     
    12371238        }
    12381239    }
     1240
     1241    if (coverageRectChanged) {
     1242        m_uncommittedChanges |= CoverageRectChanged;
     1243        m_coverageRect = coverageRect;
     1244
     1245        // FIXME: we need to take reflections into account when determining whether this layer intersects the coverage rect.
     1246        m_intersectsCoverageRect = m_coverageRect.intersects(FloatRect(m_boundsOrigin, size()));
     1247
     1248        if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
     1249            maskLayer->m_uncommittedChanges |= CoverageRectChanged;
     1250            maskLayer->m_coverageRect = coverageRect;
     1251        }
     1252    }
     1253}
     1254
     1255// rootRelativeTransformForScaling is a transform from the root, but for layers with transform animations, it cherry-picked the state of the
     1256// animation that contributes maximally to the scale (on every layer with animations down the hierarchy).
     1257void GraphicsLayerCA::recursiveCommitChanges(const CommitState& commitState, const TransformState& state, float pageScaleFactor, const FloatPoint& positionRelativeToBase, bool affectedByPageScale)
     1258{
     1259    TransformState localState = state;
     1260    CommitState childCommitState = commitState;
     1261    bool affectedByTransformAnimation = commitState.ancestorHasTransformAnimation;
     1262   
     1263    FloatRect visibleRect = computeVisibleRect(localState);
     1264    FloatRect coverageRect = visibleRect;
     1265    if (std::unique_ptr<FloatQuad> quad = localState.mappedSecondaryQuad())
     1266        coverageRect = quad->boundingBox();
     1267
     1268    FloatRect oldVisibleRect = m_visibleRect;
     1269    setVisibleAndCoverageRects(visibleRect, coverageRect);
    12391270
    12401271#ifdef VISIBLE_TILE_WASH
     
    14581489    if (m_uncommittedChanges & VisibleRectChanged)
    14591490        updateVisibleRect(oldVisibleRect);
     1491   
     1492    if (m_uncommittedChanges & CoverageRectChanged)
     1493        updateBackingStoreAttachment();
    14601494
    14611495    if (m_uncommittedChanges & TilingAreaChanged) // Needs to happen after VisibleRectChanged, ContentsScaleChanged
     
    19291963                it->value->setContents(0);
    19301964        }
     1965    }
     1966}
     1967
     1968void GraphicsLayerCA::updateBackingStoreAttachment()
     1969{
     1970    m_layer->setBackingStoreAttached(m_intersectsCoverageRect);
     1971    if (m_layerClones) {
     1972        LayerMap::const_iterator end = m_layerClones->end();
     1973        for (LayerMap::const_iterator it = m_layerClones->begin(); it != end; ++it)
     1974            it->value->setBackingStoreAttached(m_intersectsCoverageRect);
    19311975    }
    19321976}
     
    31343178}
    31353179
    3136 
    31373180static void dumpInnerLayer(TextStream& textStream, String label, PlatformCALayer* layer, int indent, LayerTreeAsTextBehavior behavior)
    31383181{
     
    31533196        writeIndent(textStream, indent + 1);
    31543197        textStream << "(visible rect " << m_visibleRect.x() << ", " << m_visibleRect.y() << " " << m_visibleRect.width() << " x " << m_visibleRect.height() << ")\n";
     3198
     3199        writeIndent(textStream, indent + 1);
     3200        textStream << "(coverage rect " << m_coverageRect.x() << ", " << m_coverageRect.y() << " " << m_coverageRect.width() << " x " << m_coverageRect.height() << ")\n";
     3201
     3202        writeIndent(textStream, indent + 1);
     3203        textStream << "(intersects coverage rect " << m_intersectsCoverageRect << ")\n";
    31553204
    31563205        writeIndent(textStream, indent + 1);
  • trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h

    r183274 r183300  
    277277    typedef unsigned ComputeVisibleRectFlags;
    278278    FloatRect computeVisibleRect(TransformState&, ComputeVisibleRectFlags = RespectAnimatingTransforms) const;
     279
    279280    const FloatRect& visibleRect() const { return m_visibleRect; }
     281    const FloatRect& coverageRect() const { return m_coverageRect; }
     282
     283    void setVisibleAndCoverageRects(const FloatRect& visibleRect, const FloatRect& coverageRect);
    280284   
    281285    static FloatRect adjustTiledLayerVisibleRect(TiledBacking*, const FloatRect& oldVisibleRect, const FloatRect& newVisibleRect, const FloatSize& oldSize, const FloatSize& newSize);
     
    448452        ContentsVisibilityChanged =     1LLU << 25,
    449453        VisibleRectChanged =            1LLU << 26,
    450         FiltersChanged =                1LLU << 27,
    451         BackdropFiltersChanged =        1LLU << 28,
    452         TilingAreaChanged =             1LLU << 29,
    453         TilesAdded =                    1LLU << 30,
    454         DebugIndicatorsChanged =        1LLU << 31,
    455         CustomAppearanceChanged =       1LLU << 32,
    456         BlendModeChanged =              1LLU << 33,
    457         ShapeChanged =                  1LLU << 34,
    458         WindRuleChanged =               1LLU << 35,
     454        CoverageRectChanged =           1LLU << 27,
     455        FiltersChanged =                1LLU << 28,
     456        BackdropFiltersChanged =        1LLU << 29,
     457        TilingAreaChanged =             1LLU << 30,
     458        TilesAdded =                    1LLU << 31,
     459        DebugIndicatorsChanged =        1LLU << 32,
     460        CustomAppearanceChanged =       1LLU << 33,
     461        BlendModeChanged =              1LLU << 34,
     462        ShapeChanged =                  1LLU << 35,
     463        WindRuleChanged =               1LLU << 36,
    459464    };
    460465    typedef uint64_t LayerChangeFlags;
     
    489494    FloatRect m_visibleRect;
    490495    FloatSize m_sizeAtLastVisibleRectUpdate;
    491    
    492     ContentsLayerPurpose m_contentsLayerPurpose;
     496
     497    FloatRect m_coverageRect; // Area for which we should maintain backing store, in the coordinate space of this layer.
     498   
     499    ContentsLayerPurpose m_contentsLayerPurpose { NoContentsLayer };
    493500    bool m_needsFullRepaint : 1;
    494501    bool m_usingBackdropLayerType : 1;
     502    bool m_intersectsCoverageRect : 1;
    495503
    496504    Color m_contentsSolidColor;
     
    543551    FloatSize m_pixelAlignmentOffset;
    544552
    545     LayerChangeFlags m_uncommittedChanges;
    546     bool m_isCommittingChanges;
     553    LayerChangeFlags m_uncommittedChanges { 0 };
     554    bool m_isCommittingChanges { false };
    547555};
    548556
Note: See TracChangeset for help on using the changeset viewer.