Changeset 251680 in webkit


Ignore:
Timestamp:
Oct 28, 2019 4:09:39 PM (4 years ago)
Author:
Alan Bujtas
Message:

Hidden framesets should provide default edgeInfo value
https://bugs.webkit.org/show_bug.cgi?id=203506
<rdar://problem/56233726>

Reviewed by Simon Fraser.

Source/WebCore:

The grid information (and certain associated structures e.g. edegeInfo) for a frameset is updated through the layout() call.
When the used height/width computes to zero on a frameset child (frame or nested frameset), we don't run layout on the renderer thus
hidden nested framesets can only provide the default edge info.
This patch changes this behaviour and we now call layout on those hidden renderers the same way we do it on iOS.

Test: fast/frames/hidden-frameset.html

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::edgeInfo const):

LayoutTests:

  • fast/frames/hidden-frameset-expected.txt: Added.
  • fast/frames/hidden-frameset.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r251677 r251680  
     12019-10-28  Zalan Bujtas  <zalan@apple.com>
     2
     3        Hidden framesets should provide default edgeInfo value
     4        https://bugs.webkit.org/show_bug.cgi?id=203506
     5        <rdar://problem/56233726>
     6
     7        Reviewed by Simon Fraser.
     8
     9        * fast/frames/hidden-frameset-expected.txt: Added.
     10        * fast/frames/hidden-frameset.html: Added.
     11
    1122019-10-28  Chris Dumez  <cdumez@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r251678 r251680  
     12019-10-28  Zalan Bujtas  <zalan@apple.com>
     2
     3        Hidden framesets should provide default edgeInfo value
     4        https://bugs.webkit.org/show_bug.cgi?id=203506
     5        <rdar://problem/56233726>
     6
     7        Reviewed by Simon Fraser.
     8
     9        The grid information (and certain associated structures e.g. edegeInfo) for a frameset is updated through the layout() call.
     10        When the used height/width computes to zero on a frameset child (frame or nested frameset), we don't run layout on the renderer thus
     11        hidden nested framesets can only provide the default edge info.
     12        This patch changes this behaviour and we now call layout on those hidden renderers the same way we do it on iOS.
     13
     14        Test: fast/frames/hidden-frameset.html
     15
     16        * rendering/RenderFrameSet.cpp:
     17        (WebCore::RenderFrameSet::edgeInfo const):
     18
    1192019-10-28  Chris Dumez  <cdumez@apple.com>
    220
  • trunk/Source/WebCore/rendering/RenderFrameSet.cpp

    r239645 r251680  
    526526
    527527            // has to be resized and itself resize its contents
    528             if (width != child->width() || height != child->height()) {
    529                 child->setWidth(width);
    530                 child->setHeight(height);
     528            child->setWidth(width);
     529            child->setHeight(height);
    531530#if PLATFORM(IOS_FAMILY)
    532                 // FIXME: Is this iOS-specific?
    533                 child->setNeedsLayout(MarkOnlyThis);
     531            // FIXME: Is this iOS-specific?
     532            child->setNeedsLayout(MarkOnlyThis);
    534533#else
    535                 child->setNeedsLayout();
     534            child->setNeedsLayout();
    536535#endif
    537                 child->layout();
    538             }
     536            child->layout();
    539537
    540538            xPos += width + borderThickness;
Note: See TracChangeset for help on using the changeset viewer.