| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 940 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); | 940 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); |
| 941 | 941 |
| 942 RefPtr<Node> c(child); | 942 RefPtr<Node> c(child); |
| 943 RefPtr<Document> document(child.document()); | 943 RefPtr<Document> document(child.document()); |
| 944 | 944 |
| 945 if (c->parentNode() && document->hasListenerType(Document::DOMNODEINSERTED_L
ISTENER)) | 945 if (c->parentNode() && document->hasListenerType(Document::DOMNODEINSERTED_L
ISTENER)) |
| 946 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNodeInse
rted, true, c->parentNode())); | 946 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNodeInse
rted, true, c->parentNode())); |
| 947 | 947 |
| 948 // dispatch the DOMNodeInsertedIntoDocument event to all descendants | 948 // dispatch the DOMNodeInsertedIntoDocument event to all descendants |
| 949 if (c->inDocument() && document->hasListenerType(Document::DOMNODEINSERTEDIN
TODOCUMENT_LISTENER)) { | 949 if (c->inDocument() && document->hasListenerType(Document::DOMNODEINSERTEDIN
TODOCUMENT_LISTENER)) { |
| 950 for (; c; c = NodeTraversal::next(c.get(), &child)) | 950 for (; c; c = NodeTraversal::next(*c, &child)) |
| 951 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNode
InsertedIntoDocument, false)); | 951 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNode
InsertedIntoDocument, false)); |
| 952 } | 952 } |
| 953 } | 953 } |
| 954 | 954 |
| 955 static void dispatchChildRemovalEvents(Node& child) | 955 static void dispatchChildRemovalEvents(Node& child) |
| 956 { | 956 { |
| 957 if (child.isInShadowTree()) { | 957 if (child.isInShadowTree()) { |
| 958 InspectorInstrumentation::willRemoveDOMNode(&child); | 958 InspectorInstrumentation::willRemoveDOMNode(&child); |
| 959 return; | 959 return; |
| 960 } | 960 } |
| 961 | 961 |
| 962 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); | 962 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); |
| 963 | 963 |
| 964 InspectorInstrumentation::willRemoveDOMNode(&child); | 964 InspectorInstrumentation::willRemoveDOMNode(&child); |
| 965 | 965 |
| 966 RefPtr<Node> c(child); | 966 RefPtr<Node> c(child); |
| 967 RefPtr<Document> document(child.document()); | 967 RefPtr<Document> document(child.document()); |
| 968 | 968 |
| 969 // dispatch pre-removal mutation events | 969 // dispatch pre-removal mutation events |
| 970 if (c->parentNode() && document->hasListenerType(Document::DOMNODEREMOVED_LI
STENER)) { | 970 if (c->parentNode() && document->hasListenerType(Document::DOMNODEREMOVED_LI
STENER)) { |
| 971 NodeChildRemovalTracker scope(child); | 971 NodeChildRemovalTracker scope(child); |
| 972 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNodeRemo
ved, true, c->parentNode())); | 972 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNodeRemo
ved, true, c->parentNode())); |
| 973 } | 973 } |
| 974 | 974 |
| 975 // dispatch the DOMNodeRemovedFromDocument event to all descendants | 975 // dispatch the DOMNodeRemovedFromDocument event to all descendants |
| 976 if (c->inDocument() && document->hasListenerType(Document::DOMNODEREMOVEDFRO
MDOCUMENT_LISTENER)) { | 976 if (c->inDocument() && document->hasListenerType(Document::DOMNODEREMOVEDFRO
MDOCUMENT_LISTENER)) { |
| 977 NodeChildRemovalTracker scope(child); | 977 NodeChildRemovalTracker scope(child); |
| 978 for (; c; c = NodeTraversal::next(c.get(), &child)) | 978 for (; c; c = NodeTraversal::next(*c, &child)) |
| 979 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNode
RemovedFromDocument, false)); | 979 c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNode
RemovedFromDocument, false)); |
| 980 } | 980 } |
| 981 } | 981 } |
| 982 | 982 |
| 983 static void updateTreeAfterInsertion(ContainerNode& parent, Node& child) | 983 static void updateTreeAfterInsertion(ContainerNode& parent, Node& child) |
| 984 { | 984 { |
| 985 ASSERT(parent.refCount()); | 985 ASSERT(parent.refCount()); |
| 986 ASSERT(child.refCount()); | 986 ASSERT(child.refCount()); |
| 987 | 987 |
| 988 ChildListMutationScope(parent).childAdded(child); | 988 ChildListMutationScope(parent).childAdded(child); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1004 return true; | 1004 return true; |
| 1005 | 1005 |
| 1006 if (node->isElementNode() && toElement(node)->shadow()) | 1006 if (node->isElementNode() && toElement(node)->shadow()) |
| 1007 return true; | 1007 return true; |
| 1008 | 1008 |
| 1009 return false; | 1009 return false; |
| 1010 } | 1010 } |
| 1011 #endif | 1011 #endif |
| 1012 | 1012 |
| 1013 } // namespace WebCore | 1013 } // namespace WebCore |
| OLD | NEW |