Changeset 122302 in webkit


Ignore:
Timestamp:
Jul 10, 2012 11:23:02 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Style not updated for element with display:none becoming first/last-child
https://bugs.webkit.org/show_bug.cgi?id=90356

Patch by Douglas Stockwell <dstockwell@chromium.org> on 2012-07-10
Reviewed by Kent Tamura.

Source/WebCore:

Always trigger style recalc when an element without a renderer becomes the first/last-child.

Tests: fast/css/first-child-display-change.html

fast/css/last-child-display-change.html

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

LayoutTests:

  • fast/css/first-child-display-change-expected.txt: Added.
  • fast/css/first-child-display-change-inverse-expected.txt: Added.
  • fast/css/first-child-display-change-inverse.html: Added.
  • fast/css/first-child-display-change.html: Added.
  • fast/css/last-child-display-change-expected.txt: Added.
  • fast/css/last-child-display-change-inverse-expected.txt: Added.
  • fast/css/last-child-display-change-inverse.html: Added.
  • fast/css/last-child-display-change.html: Added.
Location:
trunk
Files:
8 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r122300 r122302  
     12012-07-10  Douglas Stockwell  <dstockwell@chromium.org>
     2
     3        Style not updated for element with display:none becoming first/last-child
     4        https://bugs.webkit.org/show_bug.cgi?id=90356
     5
     6        Reviewed by Kent Tamura.
     7
     8        * fast/css/first-child-display-change-expected.txt: Added.
     9        * fast/css/first-child-display-change-inverse-expected.txt: Added.
     10        * fast/css/first-child-display-change-inverse.html: Added.
     11        * fast/css/first-child-display-change.html: Added.
     12        * fast/css/last-child-display-change-expected.txt: Added.
     13        * fast/css/last-child-display-change-inverse-expected.txt: Added.
     14        * fast/css/last-child-display-change-inverse.html: Added.
     15        * fast/css/last-child-display-change.html: Added.
     16
    1172012-07-10  Hayato Ito  <hayato@chromium.org>
    218
  • trunk/Source/WebCore/ChangeLog

    r122298 r122302  
     12012-07-10  Douglas Stockwell  <dstockwell@chromium.org>
     2
     3        Style not updated for element with display:none becoming first/last-child
     4        https://bugs.webkit.org/show_bug.cgi?id=90356
     5
     6        Reviewed by Kent Tamura.
     7
     8        Always trigger style recalc when an element without a renderer becomes the first/last-child.
     9
     10        Tests: fast/css/first-child-display-change.html
     11               fast/css/last-child-display-change.html
     12
     13        * dom/Element.cpp:
     14        (WebCore::checkForSiblingStyleChanges):
     15
    1162012-07-10  Shinya Kawanaka  <shinyak@chromium.org>
    217
  • trunk/Source/WebCore/dom/Element.cpp

    r122298 r122302  
    12571257           
    12581258        // We also have to handle node removal.
    1259         if (childCountDelta < 0 && newFirstChild == firstElementAfterInsertion && newFirstChild && newFirstChild->renderStyle() && !newFirstChild->renderStyle()->firstChildState())
     1259        if (childCountDelta < 0 && newFirstChild == firstElementAfterInsertion && newFirstChild && (!newFirstChild->renderStyle() || !newFirstChild->renderStyle()->firstChildState()))
    12601260            newFirstChild->setNeedsStyleRecalc();
    12611261    }
     
    12801280        // We also have to handle node removal.  The parser callback case is similar to node removal as well in that we need to change the last child
    12811281        // to match now.
    1282         if ((childCountDelta < 0 || finishedParsingCallback) && newLastChild == lastElementBeforeInsertion && newLastChild && newLastChild->renderStyle() && !newLastChild->renderStyle()->lastChildState())
     1282        if ((childCountDelta < 0 || finishedParsingCallback) && newLastChild == lastElementBeforeInsertion && newLastChild && (!newLastChild->renderStyle() || !newLastChild->renderStyle()->lastChildState()))
    12831283            newLastChild->setNeedsStyleRecalc();
    12841284    }
Note: See TracChangeset for help on using the changeset viewer.