| 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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 90             mutation.willRemoveChild(children[i].get()); | 90             mutation.willRemoveChild(children[i].get()); | 
| 91     } | 91     } | 
| 92 | 92 | 
| 93     // FIXME: We need to do notifyMutationObserversNodeWillDetach() for each chi
      ld, | 93     // FIXME: We need to do notifyMutationObserversNodeWillDetach() for each chi
      ld, | 
| 94     // probably inside removeDetachedChildrenInContainer. | 94     // probably inside removeDetachedChildrenInContainer. | 
| 95 | 95 | 
| 96     oldParent->removeDetachedChildren(); | 96     oldParent->removeDetachedChildren(); | 
| 97 | 97 | 
| 98     for (unsigned i = 0; i < children.size(); ++i) { | 98     for (unsigned i = 0; i < children.size(); ++i) { | 
| 99         if (children[i]->attached()) | 99         if (children[i]->attached()) | 
| 100             children[i]->detach(); | 100             children[i]->destroyRenderTree(); | 
| 101         // FIXME: We need a no mutation event version of adoptNode. | 101         // FIXME: We need a no mutation event version of adoptNode. | 
| 102         RefPtr<Node> child = document().adoptNode(children[i].release(), ASSERT_
      NO_EXCEPTION); | 102         RefPtr<Node> child = document().adoptNode(children[i].release(), ASSERT_
      NO_EXCEPTION); | 
| 103         // FIXME: Together with adoptNode above, the tree scope might get update
      d recursively twice | 103         // FIXME: Together with adoptNode above, the tree scope might get update
      d recursively twice | 
| 104         // (if the document changed or oldParent was in a shadow tree, AND *this
       is in a shadow tree). | 104         // (if the document changed or oldParent was in a shadow tree, AND *this
       is in a shadow tree). | 
| 105         // Can we do better? | 105         // Can we do better? | 
| 106         treeScope().adoptIfNeeded(child.get()); | 106         treeScope().adoptIfNeeded(child.get()); | 
| 107         parserAppendChild(child.get()); | 107         parserAppendChild(child.get()); | 
| 108     } | 108     } | 
| 109 } | 109 } | 
| 110 | 110 | 
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 491 | 491 | 
| 492 void ContainerNode::removeBetween(Node* previousChild, Node* nextChild, Node* ol
      dChild) | 492 void ContainerNode::removeBetween(Node* previousChild, Node* nextChild, Node* ol
      dChild) | 
| 493 { | 493 { | 
| 494     NoEventDispatchAssertion assertNoEventDispatch; | 494     NoEventDispatchAssertion assertNoEventDispatch; | 
| 495 | 495 | 
| 496     ASSERT(oldChild); | 496     ASSERT(oldChild); | 
| 497     ASSERT(oldChild->parentNode() == this); | 497     ASSERT(oldChild->parentNode() == this); | 
| 498 | 498 | 
| 499     // Remove from rendering tree | 499     // Remove from rendering tree | 
| 500     if (oldChild->attached()) | 500     if (oldChild->attached()) | 
| 501         oldChild->detach(); | 501         oldChild->destroyRenderTree(); | 
| 502 | 502 | 
| 503     if (nextChild) | 503     if (nextChild) | 
| 504         nextChild->setPreviousSibling(previousChild); | 504         nextChild->setPreviousSibling(previousChild); | 
| 505     if (previousChild) | 505     if (previousChild) | 
| 506         previousChild->setNextSibling(nextChild); | 506         previousChild->setNextSibling(nextChild); | 
| 507     if (m_firstChild == oldChild) | 507     if (m_firstChild == oldChild) | 
| 508         m_firstChild = nextChild; | 508         m_firstChild = nextChild; | 
| 509     if (m_lastChild == oldChild) | 509     if (m_lastChild == oldChild) | 
| 510         m_lastChild = previousChild; | 510         m_lastChild = previousChild; | 
| 511 | 511 | 
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 659     } | 659     } | 
| 660 | 660 | 
| 661     newChild->updateAncestorConnectedSubframeCountForInsertion(); | 661     newChild->updateAncestorConnectedSubframeCountForInsertion(); | 
| 662 | 662 | 
| 663     ChildListMutationScope(this).childAdded(newChild.get()); | 663     ChildListMutationScope(this).childAdded(newChild.get()); | 
| 664 | 664 | 
| 665     childrenChanged(true, last, 0, 1); | 665     childrenChanged(true, last, 0, 1); | 
| 666     ChildNodeInsertionNotifier(this).notify(newChild.get()); | 666     ChildNodeInsertionNotifier(this).notify(newChild.get()); | 
| 667 } | 667 } | 
| 668 | 668 | 
| 669 void ContainerNode::attach(const AttachContext& context) | 669 void ContainerNode::createRenderTree(const AttachContext& context) | 
| 670 { | 670 { | 
| 671     attachChildren(context); | 671     AttachContext childrenContext(context); | 
|  | 672     childrenContext.resolvedStyle = 0; | 
|  | 673 | 
|  | 674     for (Node* child = firstChild(); child; child = child->nextSibling()) { | 
|  | 675         ASSERT(!child->attached() || childAttachedAllowedWhenAttachingChildren(t
      his)); | 
|  | 676         if (!child->attached()) | 
|  | 677             child->createRenderTree(childrenContext); | 
|  | 678     } | 
|  | 679 | 
| 672     clearChildNeedsStyleRecalc(); | 680     clearChildNeedsStyleRecalc(); | 
| 673     Node::attach(context); | 681     Node::createRenderTree(context); | 
| 674 } | 682 } | 
| 675 | 683 | 
| 676 void ContainerNode::detach(const AttachContext& context) | 684 void ContainerNode::destroyRenderTree(const AttachContext& context) | 
| 677 { | 685 { | 
| 678     detachChildren(context); | 686     AttachContext childrenContext(context); | 
|  | 687     childrenContext.resolvedStyle = 0; | 
|  | 688 | 
|  | 689     for (Node* child = firstChild(); child; child = child->nextSibling()) | 
|  | 690         child->destroyRenderTree(childrenContext); | 
|  | 691 | 
| 679     clearChildNeedsStyleRecalc(); | 692     clearChildNeedsStyleRecalc(); | 
| 680     Node::detach(context); | 693     Node::destroyRenderTree(context); | 
| 681 } | 694 } | 
| 682 | 695 | 
| 683 void ContainerNode::childrenChanged(bool changedByParser, Node*, Node*, int chil
      dCountDelta) | 696 void ContainerNode::childrenChanged(bool changedByParser, Node*, Node*, int chil
      dCountDelta) | 
| 684 { | 697 { | 
| 685     document().incDOMTreeVersion(); | 698     document().incDOMTreeVersion(); | 
| 686     if (!changedByParser && childCountDelta) | 699     if (!changedByParser && childCountDelta) | 
| 687         document().updateRangesAfterChildrenChanged(this); | 700         document().updateRangesAfterChildrenChanged(this); | 
| 688     invalidateNodeListCachesInAncestors(); | 701     invalidateNodeListCachesInAncestors(); | 
| 689 } | 702 } | 
| 690 | 703 | 
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 999         return true; | 1012         return true; | 
| 1000 | 1013 | 
| 1001     if (node->isElementNode() && toElement(node)->shadow()) | 1014     if (node->isElementNode() && toElement(node)->shadow()) | 
| 1002         return true; | 1015         return true; | 
| 1003 | 1016 | 
| 1004     return false; | 1017     return false; | 
| 1005 } | 1018 } | 
| 1006 #endif | 1019 #endif | 
| 1007 | 1020 | 
| 1008 } // namespace WebCore | 1021 } // namespace WebCore | 
| OLD | NEW | 
|---|