Changeset 257280 in webkit


Ignore:
Timestamp:
Feb 24, 2020 4:40:14 PM (4 years ago)
Author:
Alan Bujtas
Message:

REGRESSION (r257126): fast/frames/flattening/iframe-tiny.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208055
<rdar://problem/59668089>

Reviewed by Simon Fraser.

In the frame flattening context when optional layout is delayed, getComputedStyle() might return
the un-flattened geometry unless the iframe element is forced to get laid out.

  1. main frame content is loaded and laid out -> if the iframe content is not ready yet, we don't initiate iframe flattening.
  2. iframe content is ready -> layout is scheduled.
  3. getComputedStyle() is called which initiates a style update/layout on the main frame, but only dirty boxes trigger layout (the iframe renderer itself is not dirty <- this is where frame flattening fails: webkit.org/b/208161)
  4. getComputedStyle() returns with the "stale" geometry.
  • fast/frames/flattening/iframe-tiny.html:
Location:
trunk/LayoutTests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r257277 r257280  
     12020-02-24  Zalan Bujtas  <zalan@apple.com>
     2
     3        REGRESSION (r257126): fast/frames/flattening/iframe-tiny.html is flaky failing
     4        https://bugs.webkit.org/show_bug.cgi?id=208055
     5        <rdar://problem/59668089>
     6
     7        Reviewed by Simon Fraser.
     8
     9        In the frame flattening context when optional layout is delayed, getComputedStyle() might return
     10        the un-flattened geometry unless the iframe element is forced to get laid out.
     11        1. main frame content is loaded and laid out -> if the iframe content is not ready yet, we don't initiate iframe flattening.
     12        2. iframe content is ready -> layout is scheduled.
     13        3. getComputedStyle() is called which initiates a style update/layout on the main frame,
     14           but only dirty boxes trigger layout (the iframe renderer itself is not dirty <- this is where frame flattening fails: webkit.org/b/208161)
     15        4. getComputedStyle() returns with the "stale" geometry.
     16
     17        * fast/frames/flattening/iframe-tiny.html:
     18
    1192020-02-24  Chris Dumez  <cdumez@apple.com>
    220
  • trunk/LayoutTests/fast/frames/flattening/iframe-tiny.html

    r218480 r257280  
    1313    frame = document.getElementById(frameName);
    1414    debug(frameName);
     15    // Force layout on the subframe. See webkit.org/b/208161.
     16    frame.style.whiteSpace = "pre-line";
    1517    shouldBe("getComputedStyle(frame, 0).width", expectedWidth);
    1618    shouldBe("getComputedStyle(frame, 0).height", expectedHeight);
Note: See TracChangeset for help on using the changeset viewer.