| 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 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 | 472 |
| 473 // FIXME: After sending the mutation events, "this" could be destroyed. | 473 // FIXME: After sending the mutation events, "this" could be destroyed. |
| 474 // We can prevent that by doing a "ref", but first we have to make sure | 474 // We can prevent that by doing a "ref", but first we have to make sure |
| 475 // that no callers call with ref count == 0 and parent = 0 (as of this | 475 // that no callers call with ref count == 0 and parent = 0 (as of this |
| 476 // writing, there are definitely callers who call that way). | 476 // writing, there are definitely callers who call that way). |
| 477 | 477 |
| 478 Node* prev = child->previousSibling(); | 478 Node* prev = child->previousSibling(); |
| 479 Node* next = child->nextSibling(); | 479 Node* next = child->nextSibling(); |
| 480 removeBetween(prev, next, child.get()); | 480 removeBetween(prev, next, child.get()); |
| 481 | 481 |
| 482 childrenChanged(false, prev, next, -1); |
| 483 |
| 482 if (child->inDocument()) | 484 if (child->inDocument()) |
| 483 child->removedFromDocument(); | 485 child->removedFromDocument(); |
| 484 else | 486 else |
| 485 child->removedFromTree(true); | 487 child->removedFromTree(true); |
| 486 | 488 |
| 487 // Dispatch post-removal mutation events | |
| 488 childrenChanged(false, prev, next, -1); | |
| 489 dispatchSubtreeModifiedEvent(); | 489 dispatchSubtreeModifiedEvent(); |
| 490 | 490 |
| 491 return child; | 491 return child; |
| 492 } | 492 } |
| 493 | 493 |
| 494 void ContainerNode::removeBetween(Node* previousChild, Node* nextChild, Node* ol
dChild) | 494 void ContainerNode::removeBetween(Node* previousChild, Node* nextChild, Node* ol
dChild) |
| 495 { | 495 { |
| 496 ASSERT(oldChild); | 496 ASSERT(oldChild); |
| 497 ASSERT(oldChild->parentNode() == this); | 497 ASSERT(oldChild->parentNode() == this); |
| 498 | 498 |
| (...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1173 if (!document()->hasListenerType(Document::BEFORELOAD_LISTENER)) | 1173 if (!document()->hasListenerType(Document::BEFORELOAD_LISTENER)) |
| 1174 return true; | 1174 return true; |
| 1175 | 1175 |
| 1176 RefPtr<ContainerNode> protector(this); | 1176 RefPtr<ContainerNode> protector(this); |
| 1177 RefPtr<BeforeLoadEvent> beforeLoadEvent = BeforeLoadEvent::create(sourceURL)
; | 1177 RefPtr<BeforeLoadEvent> beforeLoadEvent = BeforeLoadEvent::create(sourceURL)
; |
| 1178 dispatchEvent(beforeLoadEvent.get()); | 1178 dispatchEvent(beforeLoadEvent.get()); |
| 1179 return !beforeLoadEvent->defaultPrevented(); | 1179 return !beforeLoadEvent->defaultPrevented(); |
| 1180 } | 1180 } |
| 1181 | 1181 |
| 1182 } // namespace WebCore | 1182 } // namespace WebCore |
| OLD | NEW |