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

Side by Side Diff: Source/core/html/HTMLElement.cpp

Issue 365673002: Pass a struct to ContainerNode::childrenChanged() instead of separate arguments (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove dead code Created 6 years, 5 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
« no previous file with comments | « Source/core/html/HTMLElement.h ('k') | Source/core/html/HTMLFieldSetElement.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Apple Inc. All rights reserv ed.
5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
6 * Copyright (C) 2011 Motorola Mobility. All rights reserved. 6 * Copyright (C) 2011 Motorola Mobility. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version. 11 * version 2 of the License, or (at your option) any later version.
12 * 12 *
13 * This library is distributed in the hope that it will be useful, 13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 node = NodeTraversal::nextSkippingChildren(*node, firstNode); 642 node = NodeTraversal::nextSkippingChildren(*node, firstNode);
643 continue; 643 continue;
644 } 644 }
645 node->setSelfOrAncestorHasDirAutoAttribute(flag); 645 node->setSelfOrAncestorHasDirAutoAttribute(flag);
646 if (node == lastNode) 646 if (node == lastNode)
647 return; 647 return;
648 node = NodeTraversal::next(*node, firstNode); 648 node = NodeTraversal::next(*node, firstNode);
649 } 649 }
650 } 650 }
651 651
652 void HTMLElement::childrenChanged(bool changedByParser, Node* beforeChange, Node * afterChange, int childCountDelta) 652 void HTMLElement::childrenChanged(const ChildrenChange& change)
653 { 653 {
654 Element::childrenChanged(changedByParser, beforeChange, afterChange, childCo untDelta); 654 Element::childrenChanged(change);
655 adjustDirectionalityIfNeededAfterChildrenChanged(beforeChange, childCountDel ta); 655 adjustDirectionalityIfNeededAfterChildrenChanged(change);
656 } 656 }
657 657
658 bool HTMLElement::hasDirectionAuto() const 658 bool HTMLElement::hasDirectionAuto() const
659 { 659 {
660 const AtomicString& direction = fastGetAttribute(dirAttr); 660 const AtomicString& direction = fastGetAttribute(dirAttr);
661 return (isHTMLBDIElement(*this) && direction == nullAtom) || equalIgnoringCa se(direction, "auto"); 661 return (isHTMLBDIElement(*this) && direction == nullAtom) || equalIgnoringCa se(direction, "auto");
662 } 662 }
663 663
664 TextDirection HTMLElement::directionalityIfhasDirAutoAttribute(bool& isAuto) con st 664 TextDirection HTMLElement::directionalityIfhasDirAutoAttribute(bool& isAuto) con st
665 { 665 {
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 { 749 {
750 Node* strongDirectionalityTextNode; 750 Node* strongDirectionalityTextNode;
751 TextDirection textDirection = directionality(&strongDirectionalityTextNode); 751 TextDirection textDirection = directionality(&strongDirectionalityTextNode);
752 setHasDirAutoFlagRecursively(this, hasDirectionAuto(), strongDirectionalityT extNode); 752 setHasDirAutoFlagRecursively(this, hasDirectionAuto(), strongDirectionalityT extNode);
753 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root()) 753 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow Root())
754 setHasDirAutoFlagRecursively(root, hasDirectionAuto()); 754 setHasDirAutoFlagRecursively(root, hasDirectionAuto());
755 if (renderer() && renderer()->style() && renderer()->style()->direction() != textDirection) 755 if (renderer() && renderer()->style() && renderer()->style()->direction() != textDirection)
756 setNeedsStyleRecalc(SubtreeStyleChange); 756 setNeedsStyleRecalc(SubtreeStyleChange);
757 } 757 }
758 758
759 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(Node* beforeC hange, int childCountDelta) 759 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(const Childre nChange& change)
760 { 760 {
761 if (document().renderView() && childCountDelta < 0) {
762 Node* node = beforeChange ? NodeTraversal::nextSkippingChildren(*beforeC hange) : 0;
763 for (int counter = 0; node && counter < childCountDelta; counter++, node = NodeTraversal::nextSkippingChildren(*node)) {
Inactive 2014/07/01 14:53:01 This was dead code because: - if childCountDelta <
764 if (elementAffectsDirectionality(node))
765 continue;
766
767 setHasDirAutoFlagRecursively(node, false);
768 }
769 }
770
771 if (!selfOrAncestorHasDirAutoAttribute()) 761 if (!selfOrAncestorHasDirAutoAttribute())
772 return; 762 return;
773 763
774 Node* oldMarkedNode = beforeChange ? NodeTraversal::nextSkippingChildren(*be foreChange) : 0; 764 Node* oldMarkedNode = change.siblingBeforeChange ? NodeTraversal::nextSkippi ngChildren(*change.siblingBeforeChange) : 0;
775 while (oldMarkedNode && elementAffectsDirectionality(oldMarkedNode)) 765 while (oldMarkedNode && elementAffectsDirectionality(oldMarkedNode))
776 oldMarkedNode = NodeTraversal::nextSkippingChildren(*oldMarkedNode, this ); 766 oldMarkedNode = NodeTraversal::nextSkippingChildren(*oldMarkedNode, this );
777 if (oldMarkedNode) 767 if (oldMarkedNode)
778 setHasDirAutoFlagRecursively(oldMarkedNode, false); 768 setHasDirAutoFlagRecursively(oldMarkedNode, false);
779 769
780 for (Element* elementToAdjust = this; elementToAdjust; elementToAdjust = ele mentToAdjust->parentElement()) { 770 for (Element* elementToAdjust = this; elementToAdjust; elementToAdjust = ele mentToAdjust->parentElement()) {
781 if (elementAffectsDirectionality(elementToAdjust)) { 771 if (elementAffectsDirectionality(elementToAdjust)) {
782 toHTMLElement(elementToAdjust)->calculateAndAdjustDirectionality(); 772 toHTMLElement(elementToAdjust)->calculateAndAdjustDirectionality();
783 return; 773 return;
784 } 774 }
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 #ifndef NDEBUG 949 #ifndef NDEBUG
960 950
961 // For use in the debugger 951 // For use in the debugger
962 void dumpInnerHTML(WebCore::HTMLElement*); 952 void dumpInnerHTML(WebCore::HTMLElement*);
963 953
964 void dumpInnerHTML(WebCore::HTMLElement* element) 954 void dumpInnerHTML(WebCore::HTMLElement* element)
965 { 955 {
966 printf("%s\n", element->innerHTML().ascii().data()); 956 printf("%s\n", element->innerHTML().ascii().data());
967 } 957 }
968 #endif 958 #endif
OLDNEW
« no previous file with comments | « Source/core/html/HTMLElement.h ('k') | Source/core/html/HTMLFieldSetElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698