Chromium Code Reviews| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 80 void ContainerNode::removeDetachedChildren() | 80 void ContainerNode::removeDetachedChildren() |
| 81 { | 81 { |
| 82 ASSERT(!connectedSubframeCount()); | 82 ASSERT(!connectedSubframeCount()); |
| 83 ASSERT(needsAttach()); | 83 ASSERT(needsAttach()); |
| 84 removeDetachedChildrenInContainer<Node, ContainerNode>(*this); | 84 removeDetachedChildrenInContainer<Node, ContainerNode>(*this); |
| 85 } | 85 } |
| 86 #endif | 86 #endif |
| 87 | 87 |
| 88 void ContainerNode::parserTakeAllChildrenFrom(ContainerNode& oldParent) | 88 void ContainerNode::parserTakeAllChildrenFrom(ContainerNode& oldParent) |
| 89 { | 89 { |
| 90 while (RefPtr<Node> child = oldParent.firstChild()) { | 90 while (RefPtrWillBeRawPtr<Node> child = oldParent.firstChild()) { |
| 91 oldParent.parserRemoveChild(*child); | 91 oldParent.parserRemoveChild(*child); |
| 92 treeScope().adoptIfNeeded(*child); | 92 treeScope().adoptIfNeeded(*child); |
| 93 parserAppendChild(child.get()); | 93 parserAppendChild(child.get()); |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 | 96 |
| 97 ContainerNode::~ContainerNode() | 97 ContainerNode::~ContainerNode() |
| 98 { | 98 { |
| 99 ASSERT(needsAttach()); | 99 ASSERT(needsAttach()); |
| 100 #if !ENABLE(OILPAN) | 100 #if !ENABLE(OILPAN) |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 169 bool ContainerNode::checkAcceptChildGuaranteedNodeTypes(const Node& newChild, Ex ceptionState& exceptionState) const | 169 bool ContainerNode::checkAcceptChildGuaranteedNodeTypes(const Node& newChild, Ex ceptionState& exceptionState) const |
| 170 { | 170 { |
| 171 ASSERT(isChildTypeAllowed(newChild)); | 171 ASSERT(isChildTypeAllowed(newChild)); |
| 172 if (newChild.contains(this)) { | 172 if (newChild.contains(this)) { |
| 173 exceptionState.throwDOMException(HierarchyRequestError, "The new child e lement contains the parent."); | 173 exceptionState.throwDOMException(HierarchyRequestError, "The new child e lement contains the parent."); |
| 174 return false; | 174 return false; |
| 175 } | 175 } |
| 176 return true; | 176 return true; |
| 177 } | 177 } |
| 178 | 178 |
| 179 void ContainerNode::insertBefore(PassRefPtr<Node> newChild, Node* refChild, Exce ptionState& exceptionState) | 179 void ContainerNode::insertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node* re fChild, ExceptionState& exceptionState) |
| 180 { | 180 { |
| 181 #if !ENABLE(OILPAN) | 181 #if !ENABLE(OILPAN) |
| 182 // Check that this node is not "floating". | 182 // Check that this node is not "floating". |
| 183 // If it is, it can be deleted as a side effect of sending mutation events. | 183 // If it is, it can be deleted as a side effect of sending mutation events. |
| 184 ASSERT(refCount() || parentOrShadowHostNode()); | 184 ASSERT(refCount() || parentOrShadowHostNode()); |
| 185 #endif | 185 #endif |
| 186 | 186 |
| 187 RefPtr<Node> protect(this); | 187 RefPtrWillBeRawPtr<Node> protect(this); |
| 188 | 188 |
| 189 // insertBefore(node, 0) is equivalent to appendChild(node) | 189 // insertBefore(node, 0) is equivalent to appendChild(node) |
| 190 if (!refChild) { | 190 if (!refChild) { |
| 191 appendChild(newChild, exceptionState); | 191 appendChild(newChild, exceptionState); |
| 192 return; | 192 return; |
| 193 } | 193 } |
| 194 | 194 |
| 195 // Make sure adding the new child is OK. | 195 // Make sure adding the new child is OK. |
| 196 if (!checkAcceptChild(newChild.get(), 0, exceptionState)) | 196 if (!checkAcceptChild(newChild.get(), 0, exceptionState)) |
| 197 return; | 197 return; |
| 198 ASSERT(newChild); | 198 ASSERT(newChild); |
| 199 | 199 |
| 200 // NotFoundError: Raised if refChild is not a child of this node | 200 // NotFoundError: Raised if refChild is not a child of this node |
| 201 if (refChild->parentNode() != this) { | 201 if (refChild->parentNode() != this) { |
| 202 exceptionState.throwDOMException(NotFoundError, "The node before which t he new node is to be inserted is not a child of this node."); | 202 exceptionState.throwDOMException(NotFoundError, "The node before which t he new node is to be inserted is not a child of this node."); |
| 203 return; | 203 return; |
| 204 } | 204 } |
| 205 | 205 |
| 206 if (refChild->previousSibling() == newChild || refChild == newChild) // noth ing to do | 206 if (refChild->previousSibling() == newChild || refChild == newChild) // noth ing to do |
| 207 return; | 207 return; |
| 208 | 208 |
| 209 RefPtr<Node> next = refChild; | 209 RefPtrWillBeRawPtr<Node> next = refChild; |
| 210 | 210 |
| 211 NodeVector targets; | 211 NodeVector targets; |
| 212 collectChildrenAndRemoveFromOldParent(*newChild, targets, exceptionState); | 212 collectChildrenAndRemoveFromOldParent(*newChild, targets, exceptionState); |
| 213 if (exceptionState.hadException()) | 213 if (exceptionState.hadException()) |
| 214 return; | 214 return; |
| 215 if (targets.isEmpty()) | 215 if (targets.isEmpty()) |
| 216 return; | 216 return; |
| 217 | 217 |
| 218 // We need this extra check because collectChildrenAndRemoveFromOldParent() can fire mutation events. | 218 // We need this extra check because collectChildrenAndRemoveFromOldParent() can fire mutation events. |
| 219 if (!checkAcceptChildGuaranteedNodeTypes(*newChild, exceptionState)) | 219 if (!checkAcceptChildGuaranteedNodeTypes(*newChild, exceptionState)) |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 264 prev->setNextSibling(&newChild); | 264 prev->setNextSibling(&newChild); |
| 265 } else { | 265 } else { |
| 266 ASSERT(firstChild() == nextChild); | 266 ASSERT(firstChild() == nextChild); |
| 267 m_firstChild = &newChild; | 267 m_firstChild = &newChild; |
| 268 } | 268 } |
| 269 newChild.setParentOrShadowHostNode(this); | 269 newChild.setParentOrShadowHostNode(this); |
| 270 newChild.setPreviousSibling(prev); | 270 newChild.setPreviousSibling(prev); |
| 271 newChild.setNextSibling(&nextChild); | 271 newChild.setNextSibling(&nextChild); |
| 272 } | 272 } |
| 273 | 273 |
| 274 void ContainerNode::parserInsertBefore(PassRefPtr<Node> newChild, Node& nextChil d) | 274 void ContainerNode::parserInsertBefore(PassRefPtrWillBeRawPtr<Node> newChild, No de& nextChild) |
| 275 { | 275 { |
| 276 ASSERT(newChild); | 276 ASSERT(newChild); |
| 277 ASSERT(nextChild.parentNode() == this); | 277 ASSERT(nextChild.parentNode() == this); |
| 278 ASSERT(!newChild->isDocumentFragment()); | 278 ASSERT(!newChild->isDocumentFragment()); |
| 279 ASSERT(!isHTMLTemplateElement(this)); | 279 ASSERT(!isHTMLTemplateElement(this)); |
| 280 | 280 |
| 281 if (nextChild.previousSibling() == newChild || nextChild == newChild) // not hing to do | 281 if (nextChild.previousSibling() == newChild || nextChild == newChild) // not hing to do |
| 282 return; | 282 return; |
| 283 | 283 |
| 284 if (document() != newChild->document()) | 284 if (document() != newChild->document()) |
| 285 document().adoptNode(newChild.get(), ASSERT_NO_EXCEPTION); | 285 document().adoptNode(newChild.get(), ASSERT_NO_EXCEPTION); |
| 286 | 286 |
| 287 insertBeforeCommon(nextChild, *newChild); | 287 insertBeforeCommon(nextChild, *newChild); |
| 288 | 288 |
| 289 newChild->updateAncestorConnectedSubframeCountForInsertion(); | 289 newChild->updateAncestorConnectedSubframeCountForInsertion(); |
| 290 | 290 |
| 291 ChildListMutationScope(*this).childAdded(*newChild); | 291 ChildListMutationScope(*this).childAdded(*newChild); |
| 292 | 292 |
| 293 childrenChanged(true, newChild->previousSibling(), &nextChild, 1); | 293 childrenChanged(true, newChild->previousSibling(), &nextChild, 1); |
| 294 | 294 |
| 295 notifyNodeInserted(*newChild); | 295 notifyNodeInserted(*newChild); |
| 296 } | 296 } |
| 297 | 297 |
| 298 void ContainerNode::replaceChild(PassRefPtr<Node> newChild, Node* oldChild, Exce ptionState& exceptionState) | 298 void ContainerNode::replaceChild(PassRefPtrWillBeRawPtr<Node> newChild, Node* ol dChild, ExceptionState& exceptionState) |
| 299 { | 299 { |
| 300 #if !ENABLE(OILPAN) | 300 #if !ENABLE(OILPAN) |
| 301 // Check that this node is not "floating". | 301 // Check that this node is not "floating". |
| 302 // If it is, it can be deleted as a side effect of sending mutation events. | 302 // If it is, it can be deleted as a side effect of sending mutation events. |
| 303 ASSERT(refCount() || parentOrShadowHostNode()); | 303 ASSERT(refCount() || parentOrShadowHostNode()); |
| 304 #endif | 304 #endif |
| 305 | 305 |
| 306 RefPtr<Node> protect(this); | 306 RefPtrWillBeRawPtr<Node> protect(this); |
| 307 | 307 |
| 308 if (oldChild == newChild) // nothing to do | 308 if (oldChild == newChild) // nothing to do |
| 309 return; | 309 return; |
| 310 | 310 |
| 311 if (!oldChild) { | 311 if (!oldChild) { |
| 312 exceptionState.throwDOMException(NotFoundError, "The node to be replaced is null."); | 312 exceptionState.throwDOMException(NotFoundError, "The node to be replaced is null."); |
| 313 return; | 313 return; |
| 314 } | 314 } |
| 315 | 315 |
| 316 // Make sure replacing the old child with the new is ok | 316 // Make sure replacing the old child with the new is ok |
| 317 if (!checkAcceptChild(newChild.get(), oldChild, exceptionState)) | 317 if (!checkAcceptChild(newChild.get(), oldChild, exceptionState)) |
| 318 return; | 318 return; |
| 319 | 319 |
| 320 // NotFoundError: Raised if oldChild is not a child of this node. | 320 // NotFoundError: Raised if oldChild is not a child of this node. |
| 321 if (oldChild->parentNode() != this) { | 321 if (oldChild->parentNode() != this) { |
| 322 exceptionState.throwDOMException(NotFoundError, "The node to be replaced is not a child of this node."); | 322 exceptionState.throwDOMException(NotFoundError, "The node to be replaced is not a child of this node."); |
| 323 return; | 323 return; |
| 324 } | 324 } |
| 325 | 325 |
| 326 ChildListMutationScope mutation(*this); | 326 ChildListMutationScope mutation(*this); |
| 327 | 327 |
| 328 RefPtr<Node> next = oldChild->nextSibling(); | 328 RefPtrWillBeRawPtr<Node> next = oldChild->nextSibling(); |
| 329 | 329 |
| 330 // Remove the node we're replacing | 330 // Remove the node we're replacing |
| 331 RefPtr<Node> removedChild = oldChild; | 331 // FIXME: Oilpan: |removedChild| is unnecessary. |
| 332 RefPtrWillBeRawPtr<Node> removedChild ALLOW_UNUSED = oldChild; | |
|
tkent
2014/06/04 08:58:45
This was not buildable without ALLOW_UNUSED.
haraken
2014/06/04 09:04:04
Shall we rename the removeChild to something else?
zerny-chromium
2014/06/04 09:28:18
RefPtrWillBeRawPtr<Node> removedChild(oldChild);
Erik Corry
2014/06/04 09:35:47
I think you are confusing removedChild and removeC
tkent
2014/06/05 00:22:27
I removed this part due to https://codereview.chro
| |
| 332 removeChild(oldChild, exceptionState); | 333 removeChild(oldChild, exceptionState); |
| 333 if (exceptionState.hadException()) | 334 if (exceptionState.hadException()) |
| 334 return; | 335 return; |
| 335 | 336 |
| 336 if (next && (next->previousSibling() == newChild || next == newChild)) // no thing to do | 337 if (next && (next->previousSibling() == newChild || next == newChild)) // no thing to do |
| 337 return; | 338 return; |
| 338 | 339 |
| 339 // Does this one more time because removeChild() fires a MutationEvent. | 340 // Does this one more time because removeChild() fires a MutationEvent. |
| 340 if (!checkAcceptChild(newChild.get(), oldChild, exceptionState)) | 341 if (!checkAcceptChild(newChild.get(), oldChild, exceptionState)) |
| 341 return; | 342 return; |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 422 } | 423 } |
| 423 | 424 |
| 424 void ContainerNode::removeChild(Node* oldChild, ExceptionState& exceptionState) | 425 void ContainerNode::removeChild(Node* oldChild, ExceptionState& exceptionState) |
| 425 { | 426 { |
| 426 #if !ENABLE(OILPAN) | 427 #if !ENABLE(OILPAN) |
| 427 // Check that this node is not "floating". | 428 // Check that this node is not "floating". |
| 428 // If it is, it can be deleted as a side effect of sending mutation events. | 429 // If it is, it can be deleted as a side effect of sending mutation events. |
| 429 ASSERT(refCount() || parentOrShadowHostNode()); | 430 ASSERT(refCount() || parentOrShadowHostNode()); |
| 430 #endif | 431 #endif |
| 431 | 432 |
| 432 RefPtr<Node> protect(this); | 433 RefPtrWillBeRawPtr<Node> protect(this); |
| 433 | 434 |
| 434 // NotFoundError: Raised if oldChild is not a child of this node. | 435 // NotFoundError: Raised if oldChild is not a child of this node. |
| 435 // FIXME: We should never really get PseudoElements in here, but editing wil l sometimes | 436 // FIXME: We should never really get PseudoElements in here, but editing wil l sometimes |
| 436 // attempt to remove them still. We should fix that and enable this ASSERT. | 437 // attempt to remove them still. We should fix that and enable this ASSERT. |
| 437 // ASSERT(!oldChild->isPseudoElement()) | 438 // ASSERT(!oldChild->isPseudoElement()) |
| 438 if (!oldChild || oldChild->parentNode() != this || oldChild->isPseudoElement ()) { | 439 if (!oldChild || oldChild->parentNode() != this || oldChild->isPseudoElement ()) { |
| 439 exceptionState.throwDOMException(NotFoundError, "The node to be removed is not a child of this node."); | 440 exceptionState.throwDOMException(NotFoundError, "The node to be removed is not a child of this node."); |
| 440 return; | 441 return; |
| 441 } | 442 } |
| 442 | 443 |
| 443 RefPtr<Node> child = oldChild; | 444 RefPtrWillBeRawPtr<Node> child = oldChild; |
| 444 | 445 |
| 445 document().removeFocusedElementOfSubtree(child.get()); | 446 document().removeFocusedElementOfSubtree(child.get()); |
| 446 | 447 |
| 447 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist s(document())) | 448 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist s(document())) |
| 448 fullscreen->removeFullScreenElementOfSubtree(child.get()); | 449 fullscreen->removeFullScreenElementOfSubtree(child.get()); |
| 449 | 450 |
| 450 // Events fired when blurring currently focused node might have moved this | 451 // Events fired when blurring currently focused node might have moved this |
| 451 // child into a different parent. | 452 // child into a different parent. |
| 452 if (child->parentNode() != this) { | 453 if (child->parentNode() != this) { |
| 453 exceptionState.throwDOMException(NotFoundError, "The node to be removed is no longer a child of this node. Perhaps it was moved in a 'blur' event handle r?"); | 454 exceptionState.throwDOMException(NotFoundError, "The node to be removed is no longer a child of this node. Perhaps it was moved in a 'blur' event handle r?"); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 519 } | 520 } |
| 520 | 521 |
| 521 // this differs from other remove functions because it forcibly removes all the children, | 522 // this differs from other remove functions because it forcibly removes all the children, |
| 522 // regardless of read-only status or event exceptions, e.g. | 523 // regardless of read-only status or event exceptions, e.g. |
| 523 void ContainerNode::removeChildren() | 524 void ContainerNode::removeChildren() |
| 524 { | 525 { |
| 525 if (!m_firstChild) | 526 if (!m_firstChild) |
| 526 return; | 527 return; |
| 527 | 528 |
| 528 // The container node can be removed from event handlers. | 529 // The container node can be removed from event handlers. |
| 529 RefPtr<ContainerNode> protect(this); | 530 RefPtrWillBeRawPtr<ContainerNode> protect(this); |
| 530 | 531 |
| 531 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist s(document())) | 532 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist s(document())) |
| 532 fullscreen->removeFullScreenElementOfSubtree(this, true); | 533 fullscreen->removeFullScreenElementOfSubtree(this, true); |
| 533 | 534 |
| 534 // Do any prep work needed before actually starting to detach | 535 // Do any prep work needed before actually starting to detach |
| 535 // and remove... e.g. stop loading frames, fire unload events. | 536 // and remove... e.g. stop loading frames, fire unload events. |
| 536 willRemoveChildren(); | 537 willRemoveChildren(); |
| 537 | 538 |
| 538 { | 539 { |
| 539 // Removing focus can cause frames to load, either via events (focusout, blur) | 540 // Removing focus can cause frames to load, either via events (focusout, blur) |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 565 | 566 |
| 566 childrenChanged(false, 0, 0, -static_cast<int>(removedChildren.size())); | 567 childrenChanged(false, 0, 0, -static_cast<int>(removedChildren.size())); |
| 567 | 568 |
| 568 for (size_t i = 0; i < removedChildren.size(); ++i) | 569 for (size_t i = 0; i < removedChildren.size(); ++i) |
| 569 notifyNodeRemoved(*removedChildren[i]); | 570 notifyNodeRemoved(*removedChildren[i]); |
| 570 } | 571 } |
| 571 | 572 |
| 572 dispatchSubtreeModifiedEvent(); | 573 dispatchSubtreeModifiedEvent(); |
| 573 } | 574 } |
| 574 | 575 |
| 575 void ContainerNode::appendChild(PassRefPtr<Node> newChild, ExceptionState& excep tionState) | 576 void ContainerNode::appendChild(PassRefPtrWillBeRawPtr<Node> newChild, Exception State& exceptionState) |
| 576 { | 577 { |
| 577 RefPtr<ContainerNode> protect(this); | 578 RefPtrWillBeRawPtr<ContainerNode> protect(this); |
| 578 | 579 |
| 579 #if !ENABLE(OILPAN) | 580 #if !ENABLE(OILPAN) |
| 580 // Check that this node is not "floating". | 581 // Check that this node is not "floating". |
| 581 // If it is, it can be deleted as a side effect of sending mutation events. | 582 // If it is, it can be deleted as a side effect of sending mutation events. |
| 582 ASSERT(refCount() || parentOrShadowHostNode()); | 583 ASSERT(refCount() || parentOrShadowHostNode()); |
| 583 #endif | 584 #endif |
| 584 | 585 |
| 585 // Make sure adding the new child is ok | 586 // Make sure adding the new child is ok |
| 586 if (!checkAcceptChild(newChild.get(), 0, exceptionState)) | 587 if (!checkAcceptChild(newChild.get(), 0, exceptionState)) |
| 587 return; | 588 return; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 623 treeScope().adoptIfNeeded(child); | 624 treeScope().adoptIfNeeded(child); |
| 624 appendChildToContainer(child, *this); | 625 appendChildToContainer(child, *this); |
| 625 } | 626 } |
| 626 | 627 |
| 627 updateTreeAfterInsertion(child); | 628 updateTreeAfterInsertion(child); |
| 628 } | 629 } |
| 629 | 630 |
| 630 dispatchSubtreeModifiedEvent(); | 631 dispatchSubtreeModifiedEvent(); |
| 631 } | 632 } |
| 632 | 633 |
| 633 void ContainerNode::parserAppendChild(PassRefPtr<Node> newChild) | 634 void ContainerNode::parserAppendChild(PassRefPtrWillBeRawPtr<Node> newChild) |
| 634 { | 635 { |
| 635 ASSERT(newChild); | 636 ASSERT(newChild); |
| 636 ASSERT(!newChild->parentNode()); // Use appendChild if you need to handle re parenting (and want DOM mutation events). | 637 ASSERT(!newChild->parentNode()); // Use appendChild if you need to handle re parenting (and want DOM mutation events). |
| 637 ASSERT(!newChild->isDocumentFragment()); | 638 ASSERT(!newChild->isDocumentFragment()); |
| 638 ASSERT(!isHTMLTemplateElement(this)); | 639 ASSERT(!isHTMLTemplateElement(this)); |
| 639 | 640 |
| 640 if (document() != newChild->document()) | 641 if (document() != newChild->document()) |
| 641 document().adoptNode(newChild.get(), ASSERT_NO_EXCEPTION); | 642 document().adoptNode(newChild.get(), ASSERT_NO_EXCEPTION); |
| 642 | 643 |
| 643 Node* last = m_lastChild; | 644 Node* last = m_lastChild; |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 656 childrenChanged(true, last, 0, 1); | 657 childrenChanged(true, last, 0, 1); |
| 657 notifyNodeInserted(*newChild); | 658 notifyNodeInserted(*newChild); |
| 658 } | 659 } |
| 659 | 660 |
| 660 void ContainerNode::notifyNodeInserted(Node& root) | 661 void ContainerNode::notifyNodeInserted(Node& root) |
| 661 { | 662 { |
| 662 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); | 663 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); |
| 663 | 664 |
| 664 InspectorInstrumentation::didInsertDOMNode(&root); | 665 InspectorInstrumentation::didInsertDOMNode(&root); |
| 665 | 666 |
| 666 RefPtr<Node> protect(this); | 667 RefPtrWillBeRawPtr<Node> protect(this); |
| 667 RefPtr<Node> protectNode(root); | 668 RefPtrWillBeRawPtr<Node> protectNode(root); |
| 668 | 669 |
| 669 NodeVector postInsertionNotificationTargets; | 670 NodeVector postInsertionNotificationTargets; |
| 670 notifyNodeInsertedInternal(root, postInsertionNotificationTargets); | 671 notifyNodeInsertedInternal(root, postInsertionNotificationTargets); |
| 671 | 672 |
| 672 for (size_t i = 0; i < postInsertionNotificationTargets.size(); ++i) { | 673 for (size_t i = 0; i < postInsertionNotificationTargets.size(); ++i) { |
| 673 Node* targetNode = postInsertionNotificationTargets[i].get(); | 674 Node* targetNode = postInsertionNotificationTargets[i].get(); |
| 674 if (targetNode->inDocument()) | 675 if (targetNode->inDocument()) |
| 675 targetNode->didNotifySubtreeInsertionsToDocument(); | 676 targetNode->didNotifySubtreeInsertionsToDocument(); |
| 676 } | 677 } |
| 677 } | 678 } |
| (...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1277 return true; | 1278 return true; |
| 1278 | 1279 |
| 1279 if (node->isElementNode() && toElement(node)->shadow()) | 1280 if (node->isElementNode() && toElement(node)->shadow()) |
| 1280 return true; | 1281 return true; |
| 1281 | 1282 |
| 1282 return false; | 1283 return false; |
| 1283 } | 1284 } |
| 1284 #endif | 1285 #endif |
| 1285 | 1286 |
| 1286 } // namespace WebCore | 1287 } // namespace WebCore |
| OLD | NEW |