Changeset 212152 in webkit


Ignore:
Timestamp:
Feb 10, 2017, 2:40:18 PM (8 years ago)
Author:
Simon Fraser
Message:

Tiled layers are sometimes left with some tiles when outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=168104
Source/WebCore:

rdar://problem/30459055

Reviewed by Tim Horton.

When the coverage rect of a TiledBacking goes from a non-empty rect to an empty rect, we
shouldn't just early return from TileGrid::revalidateTiles(), otherwise we are left with some
tiles. Run through the function as normal, which will remove all the tiles for an empty coverage rect.

Minor logging changes.

Test: tiled-drawing/tile-coverage-iframe-to-zero-coverage.html

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::revalidateTiles):

LayoutTests:

Reviewed by Tim Horton.

  • tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Added.
  • tiled-drawing/tile-coverage-iframe-to-zero-coverage.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r212150 r212152  
     12017-02-09  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Tiled layers are sometimes left with some tiles when outside the viewport
     4        https://bugs.webkit.org/show_bug.cgi?id=168104
     5
     6        Reviewed by Tim Horton.
     7
     8        * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Added.
     9        * tiled-drawing/tile-coverage-iframe-to-zero-coverage.html: Added.
     10
    1112017-02-10  Joseph Pecoraro  <pecoraro@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r212151 r212152  
     12017-02-09  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Tiled layers are sometimes left with some tiles when outside the viewport
     4        https://bugs.webkit.org/show_bug.cgi?id=168104
     5        rdar://problem/30459055
     6
     7        Reviewed by Tim Horton.
     8
     9        When the coverage rect of a TiledBacking goes from a non-empty rect to an empty rect, we
     10        shouldn't just early return from TileGrid::revalidateTiles(), otherwise we are left with some
     11        tiles. Run through the function as normal, which will remove all the tiles for an empty coverage rect.
     12       
     13        Minor logging changes.
     14
     15        Test: tiled-drawing/tile-coverage-iframe-to-zero-coverage.html
     16
     17        * platform/graphics/ca/TileGrid.cpp:
     18        (WebCore::TileGrid::revalidateTiles):
     19
    1202017-02-10  Zalan Bujtas  <zalan@apple.com>
    221
  • trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp

    r211766 r212152  
    353353    IntRect bounds = m_controller.bounds();
    354354
    355     LOG_WITH_STREAM(Tiling, stream << "TileGrid " << this << " revalidateTiles: bounds " << bounds << " coverageRect" << coverageRect << " validation: " << validationPolicyAsString(validationPolicy));
    356 
    357     if (coverageRect.isEmpty() || bounds.isEmpty())
    358         return;
     355    LOG_WITH_STREAM(Tiling, stream << "TileGrid " << this << " (controller " << &m_controller << ") revalidateTiles: bounds " << bounds << " coverageRect" << coverageRect << " validation: " << validationPolicyAsString(validationPolicy));
    359356
    360357    FloatRect scaledRect(coverageRect);
Note: See TracChangeset for help on using the changeset viewer.