Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(814)

Side by Side Diff: third_party/WebKit/WebCore/dom/ContainerNode.cpp

Issue 21165: Revert the merge. Mac build is mysteriously broken. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 if (childCountDelta) 274 if (childCountDelta)
275 childrenChanged(false, prev.get(), next.get(), childCountDelta); 275 childrenChanged(false, prev.get(), next.get(), childCountDelta);
276 dispatchSubtreeModifiedEvent(); 276 dispatchSubtreeModifiedEvent();
277 return true; 277 return true;
278 } 278 }
279 279
280 void ContainerNode::willRemove() 280 void ContainerNode::willRemove()
281 { 281 {
282 for (Node *n = m_firstChild; n != 0; n = n->nextSibling()) 282 for (Node *n = m_firstChild; n != 0; n = n->nextSibling())
283 n->willRemove(); 283 n->willRemove();
284 Node::willRemove(); 284 EventTargetNode::willRemove();
285 } 285 }
286 286
287 static ExceptionCode willRemoveChild(Node *child) 287 static ExceptionCode willRemoveChild(Node *child)
288 { 288 {
289 ExceptionCode ec = 0; 289 ExceptionCode ec = 0;
290 290
291 // fire removed from document mutation events. 291 // fire removed from document mutation events.
292 dispatchChildRemovalEvents(child, ec); 292 dispatchChildRemovalEvents(child, ec);
293 if (ec) 293 if (ec)
294 return ec; 294 return ec;
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 } 563 }
564 s_postAttachCallbackQueue->clear(); 564 s_postAttachCallbackQueue->clear();
565 } 565 }
566 566
567 void ContainerNode::attach() 567 void ContainerNode::attach()
568 { 568 {
569 ++s_attachDepth; 569 ++s_attachDepth;
570 570
571 for (Node* child = m_firstChild; child; child = child->nextSibling()) 571 for (Node* child = m_firstChild; child; child = child->nextSibling())
572 child->attach(); 572 child->attach();
573 Node::attach(); 573 EventTargetNode::attach();
574 574
575 if (s_attachDepth == 1 && s_postAttachCallbackQueue) 575 if (s_attachDepth == 1 && s_postAttachCallbackQueue)
576 dispatchPostAttachCallbacks(); 576 dispatchPostAttachCallbacks();
577 --s_attachDepth; 577 --s_attachDepth;
578 } 578 }
579 579
580 void ContainerNode::detach() 580 void ContainerNode::detach()
581 { 581 {
582 for (Node* child = m_firstChild; child; child = child->nextSibling()) 582 for (Node* child = m_firstChild; child; child = child->nextSibling())
583 child->detach(); 583 child->detach();
584 setHasChangedChild(false); 584 setHasChangedChild(false);
585 Node::detach(); 585 EventTargetNode::detach();
586 } 586 }
587 587
588 void ContainerNode::insertedIntoDocument() 588 void ContainerNode::insertedIntoDocument()
589 { 589 {
590 Node::insertedIntoDocument(); 590 EventTargetNode::insertedIntoDocument();
591 insertedIntoTree(false); 591 insertedIntoTree(false);
592 for (Node* child = m_firstChild; child; child = child->nextSibling()) 592 for (Node* child = m_firstChild; child; child = child->nextSibling())
593 child->insertedIntoDocument(); 593 child->insertedIntoDocument();
594 } 594 }
595 595
596 void ContainerNode::removedFromDocument() 596 void ContainerNode::removedFromDocument()
597 { 597 {
598 Node::removedFromDocument(); 598 EventTargetNode::removedFromDocument();
599 setInDocument(false); 599 setInDocument(false);
600 removedFromTree(false); 600 removedFromTree(false);
601 for (Node* child = m_firstChild; child; child = child->nextSibling()) 601 for (Node* child = m_firstChild; child; child = child->nextSibling())
602 child->removedFromDocument(); 602 child->removedFromDocument();
603 } 603 }
604 604
605 void ContainerNode::insertedIntoTree(bool deep) 605 void ContainerNode::insertedIntoTree(bool deep)
606 { 606 {
607 if (!deep) 607 if (!deep)
608 return; 608 return;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 lowerRight.setY(max(upperLeft.y(), lowerRight.y())); 768 lowerRight.setY(max(upperLeft.y(), lowerRight.y()));
769 769
770 return enclosingIntRect(FloatRect(upperLeft, lowerRight - upperLeft)); 770 return enclosingIntRect(FloatRect(upperLeft, lowerRight - upperLeft));
771 } 771 }
772 772
773 void ContainerNode::setFocus(bool received) 773 void ContainerNode::setFocus(bool received)
774 { 774 {
775 if (focused() == received) 775 if (focused() == received)
776 return; 776 return;
777 777
778 Node::setFocus(received); 778 EventTargetNode::setFocus(received);
779 779
780 // note that we need to recalc the style 780 // note that we need to recalc the style
781 setChanged(); 781 setChanged();
782 } 782 }
783 783
784 void ContainerNode::setActive(bool down, bool pause) 784 void ContainerNode::setActive(bool down, bool pause)
785 { 785 {
786 if (down == active()) return; 786 if (down == active()) return;
787 787
788 Node::setActive(down); 788 EventTargetNode::setActive(down);
789 789
790 // note that we need to recalc the style 790 // note that we need to recalc the style
791 // FIXME: Move to Element 791 // FIXME: Move to Element
792 if (renderer()) { 792 if (renderer()) {
793 bool reactsToPress = renderer()->style()->affectedByActiveRules(); 793 bool reactsToPress = renderer()->style()->affectedByActiveRules();
794 if (reactsToPress) 794 if (reactsToPress)
795 setChanged(); 795 setChanged();
796 if (renderer() && renderer()->style()->hasAppearance()) { 796 if (renderer() && renderer()->style()->hasAppearance()) {
797 if (theme()->stateChanged(renderer(), PressedState)) 797 if (theme()->stateChanged(renderer(), PressedState))
798 reactsToPress = true; 798 reactsToPress = true;
(...skipping 22 matching lines...) Expand all
821 usleep(static_cast<useconds_t>(remainingTime * 1000000.0)); 821 usleep(static_cast<useconds_t>(remainingTime * 1000000.0));
822 #endif 822 #endif
823 } 823 }
824 } 824 }
825 } 825 }
826 826
827 void ContainerNode::setHovered(bool over) 827 void ContainerNode::setHovered(bool over)
828 { 828 {
829 if (over == hovered()) return; 829 if (over == hovered()) return;
830 830
831 Node::setHovered(over); 831 EventTargetNode::setHovered(over);
832 832
833 // note that we need to recalc the style 833 // note that we need to recalc the style
834 // FIXME: Move to Element 834 // FIXME: Move to Element
835 if (renderer()) { 835 if (renderer()) {
836 if (renderer()->style()->affectedByHoverRules()) 836 if (renderer()->style()->affectedByHoverRules())
837 setChanged(); 837 setChanged();
838 if (renderer() && renderer()->style()->hasAppearance()) 838 if (renderer() && renderer()->style()->hasAppearance())
839 theme()->stateChanged(renderer(), HoverState); 839 theme()->stateChanged(renderer(), HoverState);
840 } 840 }
841 } 841 }
(...skipping 21 matching lines...) Expand all
863 ASSERT(!eventDispatchForbidden()); 863 ASSERT(!eventDispatchForbidden());
864 864
865 RefPtr<Node> c = child; 865 RefPtr<Node> c = child;
866 DocPtr<Document> doc = child->document(); 866 DocPtr<Document> doc = child->document();
867 867
868 if (c->parentNode() && c->parentNode()->inDocument()) 868 if (c->parentNode() && c->parentNode()->inDocument())
869 c->insertedIntoDocument(); 869 c->insertedIntoDocument();
870 else 870 else
871 c->insertedIntoTree(true); 871 c->insertedIntoTree(true);
872 872
873 if (c->parentNode() && doc->hasListenerType(Document::DOMNODEINSERTED_LISTEN ER)) { 873 if (c->parentNode() &&
874 doc->hasListenerType(Document::DOMNODEINSERTED_LISTENER) &&
875 c->isEventTargetNode()) {
874 ec = 0; 876 ec = 0;
875 c->dispatchEvent(MutationEvent::create(eventNames().DOMNodeInsertedEvent , true, false, 877 EventTargetNodeCast(c.get())->dispatchEvent(MutationEvent::create(eventN ames().DOMNodeInsertedEvent, true, false,
876 c->parentNode(), String(), String(), String(), 0), ec); 878 c->parentNode(), String(), String(), String(), 0), ec);
877 if (ec) 879 if (ec)
878 return; 880 return;
879 } 881 }
880 882
881 // dispatch the DOMNodeInsertedIntoDocument event to all descendants 883 // dispatch the DOMNodeInsertedIntoDocument event to all descendants
882 if (c->inDocument() && doc->hasListenerType(Document::DOMNODEINSERTEDINTODOC UMENT_LISTENER)) 884 if (c->inDocument() && doc->hasListenerType(Document::DOMNODEINSERTEDINTODOC UMENT_LISTENER))
883 for (; c; c = c->traverseNextNode(child)) { 885 for (; c; c = c->traverseNextNode(child)) {
886 if (!c->isEventTargetNode())
887 continue;
888
884 ec = 0; 889 ec = 0;
885 c->dispatchEvent(MutationEvent::create(eventNames().DOMNodeInsertedI ntoDocumentEvent, false, false, 890 EventTargetNodeCast(c.get())->dispatchEvent(MutationEvent::create(ev entNames().DOMNodeInsertedIntoDocumentEvent, false, false,
886 0, String(), String(), String(), 0), ec); 891 0, String(), String(), String(), 0), ec);
887 if (ec) 892 if (ec)
888 return; 893 return;
889 } 894 }
890 } 895 }
891 896
892 static void dispatchChildRemovalEvents(Node* child, ExceptionCode& ec) 897 static void dispatchChildRemovalEvents(Node* child, ExceptionCode& ec)
893 { 898 {
894 RefPtr<Node> c = child; 899 RefPtr<Node> c = child;
895 DocPtr<Document> doc = child->document(); 900 DocPtr<Document> doc = child->document();
896 901
897 // update auxiliary doc info (e.g. iterators) to note that node is being rem oved 902 // update auxiliary doc info (e.g. iterators) to note that node is being rem oved
898 doc->nodeWillBeRemoved(child); 903 doc->nodeWillBeRemoved(child);
899 904
900 // dispatch pre-removal mutation events 905 // dispatch pre-removal mutation events
901 if (c->parentNode() && doc->hasListenerType(Document::DOMNODEREMOVED_LISTENE R)) { 906 if (c->parentNode() &&
907 doc->hasListenerType(Document::DOMNODEREMOVED_LISTENER) &&
908 c->isEventTargetNode()) {
902 ec = 0; 909 ec = 0;
903 c->dispatchEvent(MutationEvent::create(eventNames().DOMNodeRemovedEvent, true, false, 910 EventTargetNodeCast(c.get())->dispatchEvent(MutationEvent::create(eventN ames().DOMNodeRemovedEvent, true, false,
904 c->parentNode(), String(), String(), String(), 0), ec); 911 c->parentNode(), String(), String(), String(), 0), ec);
905 if (ec) 912 if (ec)
906 return; 913 return;
907 } 914 }
908 915
909 // dispatch the DOMNodeRemovedFromDocument event to all descendants 916 // dispatch the DOMNodeRemovedFromDocument event to all descendants
910 if (c->inDocument() && doc->hasListenerType(Document::DOMNODEREMOVEDFROMDOCU MENT_LISTENER)) 917 if (c->inDocument() && doc->hasListenerType(Document::DOMNODEREMOVEDFROMDOCU MENT_LISTENER))
911 for (; c; c = c->traverseNextNode(child)) { 918 for (; c; c = c->traverseNextNode(child)) {
919 if (!c->isEventTargetNode())
920 continue;
912 ec = 0; 921 ec = 0;
913 c->dispatchEvent(MutationEvent::create(eventNames().DOMNodeRemovedFr omDocumentEvent, false, false, 922 EventTargetNodeCast(c.get())->dispatchEvent(MutationEvent::create(ev entNames().DOMNodeRemovedFromDocumentEvent, false, false,
914 0, String(), String(), String(), 0), ec); 923 0, String(), String(), String(), 0), ec);
915 if (ec) 924 if (ec)
916 return; 925 return;
917 } 926 }
918 } 927 }
919 928
920 } 929 }
OLDNEW
« no previous file with comments | « third_party/WebKit/WebCore/dom/ContainerNode.h ('k') | third_party/WebKit/WebCore/dom/Document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698