Changeset 109054 in webkit


Ignore:
Timestamp:
Feb 27, 2012 5:51:32 PM (12 years ago)
Author:
adamk@chromium.org
Message:

Always notify subtree of removal in ContainerNode::removeChildren
https://bugs.webkit.org/show_bug.cgi?id=79316

Reviewed by Ryosuke Niwa.

Source/WebCore:

In the inDocument case, Node::removedFromDocument is called.
In the out-of-document case, call ContainerNode::removedFromTree to ensure,
e.g., form-associated elements are properly disconnected.

Test: fast/forms/form-associated-element-removal.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeChildren):

LayoutTests:

  • fast/forms/form-associated-element-removal-expected.txt: Added.
  • fast/forms/form-associated-element-removal.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r109048 r109054  
     12012-02-27  Adam Klein  <adamk@chromium.org>
     2
     3        Always notify subtree of removal in ContainerNode::removeChildren
     4        https://bugs.webkit.org/show_bug.cgi?id=79316
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * fast/forms/form-associated-element-removal-expected.txt: Added.
     9        * fast/forms/form-associated-element-removal.html: Added.
     10
    1112012-02-27  Adrienne Walker  <enne@google.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r109052 r109054  
     12012-02-27  Adam Klein  <adamk@chromium.org>
     2
     3        Always notify subtree of removal in ContainerNode::removeChildren
     4        https://bugs.webkit.org/show_bug.cgi?id=79316
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        In the inDocument case, Node::removedFromDocument is called.
     9        In the out-of-document case, call ContainerNode::removedFromTree to ensure,
     10        e.g., form-associated elements are properly disconnected.
     11
     12        Test: fast/forms/form-associated-element-removal.html
     13
     14        * dom/ContainerNode.cpp:
     15        (WebCore::ContainerNode::removeChildren):
     16
    1172012-02-27  Adam Barth  <abarth@webkit.org>
    218
  • trunk/Source/WebCore/dom/ContainerNode.cpp

    r109030 r109054  
    583583        if (removedChild->inDocument())
    584584            removedChild->removedFromDocument();
    585         // removeChild() calls removedFromTree(true) if the child was not in the
    586         // document. There is no explanation for this discrepancy between removeChild()
    587         // and its optimized version removeChildren().
     585        else if (removedChild->isContainerNode())
     586            toContainerNode(removedChild)->removedFromTree(true);
    588587    }
    589588
Note: See TracChangeset for help on using the changeset viewer.