⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 184077 in webkit


Ignore:
Timestamp:
May 11, 2015, 4:06:25 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r182835 - Make inline continuation style change logic consistent.
https://bugs.webkit.org/show_bug.cgi?id=143737
rdar://problem/20486596

Reviewed by Simon Fraser.

Do not force RenderBlock type-casting on the first sibling of the continuation's container.
The first sibling of the container of a continuation should be handled as the rest of the siblings.

Source/WebCore:

Test: fast/inline/inline-with-column-span-and-remove-block-child-crash.html

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/inline-with-column-span-and-remove-block-child-crash-expected.txt: Added.
  • fast/inline/inline-with-column-span-and-remove-block-child-crash.html: Added.
Location:
releases/WebKitGTK/webkit-2.8
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog

    r182786 r184077  
     12015-04-14  Zalan Bujtas  <zalan@apple.com>
     2
     3        Make inline continuation style change logic consistent.
     4        https://bugs.webkit.org/show_bug.cgi?id=143737
     5        rdar://problem/20486596
     6
     7        Reviewed by Simon Fraser.
     8
     9        Do not force RenderBlock type-casting on the first sibling of the continuation's container.
     10        The first sibling of the container of a continuation should be handled as the rest of the siblings.
     11
     12        * fast/inline/inline-with-column-span-and-remove-block-child-crash-expected.txt: Added.
     13        * fast/inline/inline-with-column-span-and-remove-block-child-crash.html: Added.
     14
    1152015-04-13  Said Abou-Hallawa  <sabouhallawa@apple.com>
    216
  • releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog

    r184074 r184077  
     12015-04-14  Zalan Bujtas  <zalan@apple.com>
     2
     3        Make inline continuation style change logic consistent.
     4        https://bugs.webkit.org/show_bug.cgi?id=143737
     5        rdar://problem/20486596
     6
     7        Reviewed by Simon Fraser.
     8
     9        Do not force RenderBlock type-casting on the first sibling of the continuation's container.
     10        The first sibling of the container of a continuation should be handled as the rest of the siblings.
     11
     12        Test: fast/inline/inline-with-column-span-and-remove-block-child-crash.html
     13
     14        * rendering/RenderInline.cpp:
     15        (WebCore::updateStyleOfAnonymousBlockContinuations):
     16        (WebCore::RenderInline::styleDidChange):
     17
    1182015-04-14  Brady Eidson  <beidson@apple.com>
    219
  • releases/WebKitGTK/webkit-2.8/Source/WebCore/rendering/RenderInline.cpp

    r182429 r184077  
    139139}
    140140
    141 static void updateStyleOfAnonymousBlockContinuations(RenderBlock& block, const RenderStyle* newStyle, const RenderStyle* oldStyle)
    142 {
    143     for (RenderBox* box = &block; box && box->isAnonymousBlock(); box = box->nextSiblingBox()) {
     141static void updateStyleOfAnonymousBlockContinuations(const RenderBlock& block, const RenderStyle* newStyle, const RenderStyle* oldStyle)
     142{
     143    // If any descendant blocks exist then they will be in the next anonymous block and its siblings.
     144    for (RenderBox* box = block.nextSiblingBox(); box && box->isAnonymousBlock(); box = box->nextSiblingBox()) {
    144145        if (box->style().position() == newStyle->position())
    145146            continue;
     
    185186        // then any descendant blocks will need to change their in-flow positioning accordingly.
    186187        // Do this by updating the position of the descendant blocks' containing anonymous blocks - there may be more than one.
    187         if (containingBlock()->isAnonymousBlock() && oldStyle && newStyle.position() != oldStyle->position() && (newStyle.hasInFlowPosition() || oldStyle->hasInFlowPosition())) {
    188             // If any descendant blocks exist then they will be in the next anonymous block and its siblings.
    189             ASSERT(containingBlock()->nextSibling());
    190             RenderBlock& block = downcast<RenderBlock>(*containingBlock()->nextSibling());
    191             ASSERT(block.isAnonymousBlock());
    192             updateStyleOfAnonymousBlockContinuations(block, &newStyle, oldStyle);
    193         }
     188        if (containingBlock()->isAnonymousBlock() && oldStyle && newStyle.position() != oldStyle->position() && (newStyle.hasInFlowPosition() || oldStyle->hasInFlowPosition()))
     189            updateStyleOfAnonymousBlockContinuations(*containingBlock(), &newStyle, oldStyle);
    194190    }
    195191
Note: See TracChangeset for help on using the changeset viewer.