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 |