Changeset 146882 in webkit


Ignore:
Timestamp:
Mar 26, 2013 8:06:59 AM (11 years ago)
Author:
morrita@google.com
Message:

remoeveAllEventListeners() should be called to shadow trees
https://bugs.webkit.org/show_bug.cgi?id=113037

Reviewed by Dimitri Glazkov.

Source/WebCore:

Document::removeAllEventListeners() doesn't traverse shadow tree, but we should.
This change override Element::removeAllEventListeners() so that it cleans its shadow trees up.

Test: fast/dom/shadow/shadow-tree-listener-clearance.html

  • dom/Element.cpp:

(WebCore::Element::removeAllEventListeners):
(WebCore):

  • dom/Element.h:

(Element):

  • dom/ElementShadow.cpp:

(WebCore::ElementShadow::removeAllEventListeners): Added.
(WebCore):

  • dom/ElementShadow.h:

(ElementShadow):

LayoutTests:

  • fast/dom/shadow/resources/shadow-tree-listener-clearance-frame.html: Added.
  • fast/dom/shadow/shadow-tree-listener-clearance-expected.txt: Added.
  • fast/dom/shadow/shadow-tree-listener-clearance.html: Added.
Location:
trunk
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r146881 r146882  
     12013-03-26  Hajime Morrita  <morrita@google.com>
     2
     3        remoeveAllEventListeners() should be called to shadow trees
     4        https://bugs.webkit.org/show_bug.cgi?id=113037
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        * fast/dom/shadow/resources/shadow-tree-listener-clearance-frame.html: Added.
     9        * fast/dom/shadow/shadow-tree-listener-clearance-expected.txt: Added.
     10        * fast/dom/shadow/shadow-tree-listener-clearance.html: Added.
     11
    1122013-03-26  Yury Semikhatsky  <yurys@chromium.org>
    213
  • trunk/Source/WebCore/ChangeLog

    r146879 r146882  
     12013-03-26  Hajime Morrita  <morrita@google.com>
     2
     3        remoeveAllEventListeners() should be called to shadow trees
     4        https://bugs.webkit.org/show_bug.cgi?id=113037
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        Document::removeAllEventListeners() doesn't traverse shadow tree, but we should.
     9        This change override Element::removeAllEventListeners() so that it cleans its shadow trees up.
     10
     11        Test: fast/dom/shadow/shadow-tree-listener-clearance.html
     12
     13        * dom/Element.cpp:
     14        (WebCore::Element::removeAllEventListeners):
     15        (WebCore):
     16        * dom/Element.h:
     17        (Element):
     18        * dom/ElementShadow.cpp:
     19        (WebCore::ElementShadow::removeAllEventListeners): Added.
     20        (WebCore):
     21        * dom/ElementShadow.h:
     22        (ElementShadow):
     23
    1242013-03-26  Andrei Bucur  <abucur@adobe.com>
    225
  • trunk/Source/WebCore/dom/Element.cpp

    r146860 r146882  
    16941694}
    16951695
     1696void Element::removeAllEventListeners()
     1697{
     1698    ContainerNode::removeAllEventListeners();
     1699    if (ElementShadow* shadow = this->shadow())
     1700        shadow->removeAllEventListeners();
     1701}
     1702
    16961703void Element::beginParsingChildren()
    16971704{
  • trunk/Source/WebCore/dom/Element.h

    r146860 r146882  
    628628    virtual void removedFrom(ContainerNode*) OVERRIDE;
    629629    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     630    virtual void removeAllEventListeners() OVERRIDE;
    630631
    631632    virtual bool willRecalcStyle(StyleChange);
  • trunk/Source/WebCore/dom/ElementShadow.cpp

    r141570 r146882  
    124124}
    125125
     126void ElementShadow::removeAllEventListeners()
     127{
     128    for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) {
     129        for (Node* node = root; node; node = NodeTraversal::next(node))
     130            node->removeAllEventListeners();
     131    }
     132}
     133
    126134void ElementShadow::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
    127135{
  • trunk/Source/WebCore/dom/ElementShadow.h

    r141218 r146882  
    6565    bool needsStyleRecalc() const;
    6666    void recalcStyle(Node::StyleChange);
     67    void removeAllEventListeners();
    6768
    6869    void invalidateDistribution() { m_distributor.invalidateDistribution(host()); }
Note: See TracChangeset for help on using the changeset viewer.