| 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 * Copyright (C) 2004-2008, 2013, 2014 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004-2008, 2013, 2014 Apple Inc. All rights reserved. |
| 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 |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 removeChildren(); | 420 removeChildren(); |
| 421 return; | 421 return; |
| 422 } | 422 } |
| 423 replaceChildrenWithText(this, text, exceptionState); | 423 replaceChildrenWithText(this, text, exceptionState); |
| 424 return; | 424 return; |
| 425 } | 425 } |
| 426 | 426 |
| 427 // FIXME: Do we need to be able to detect preserveNewline style even when th
ere's no renderer? | 427 // FIXME: Do we need to be able to detect preserveNewline style even when th
ere's no renderer? |
| 428 // FIXME: Can the renderer be out of date here? Do we need to call updateSty
leIfNeeded? | 428 // FIXME: Can the renderer be out of date here? Do we need to call updateSty
leIfNeeded? |
| 429 // For example, for the contents of textarea elements that are display:none? | 429 // For example, for the contents of textarea elements that are display:none? |
| 430 LayoutObject* r = renderer(); | 430 LayoutObject* r = layoutObject(); |
| 431 if (r && r->style()->preserveNewline()) { | 431 if (r && r->style()->preserveNewline()) { |
| 432 if (!text.contains('\r')) { | 432 if (!text.contains('\r')) { |
| 433 replaceChildrenWithText(this, text, exceptionState); | 433 replaceChildrenWithText(this, text, exceptionState); |
| 434 return; | 434 return; |
| 435 } | 435 } |
| 436 String textWithConsistentLineBreaks = text; | 436 String textWithConsistentLineBreaks = text; |
| 437 textWithConsistentLineBreaks.replace("\r\n", "\n"); | 437 textWithConsistentLineBreaks.replace("\r\n", "\n"); |
| 438 textWithConsistentLineBreaks.replace('\r', '\n'); | 438 textWithConsistentLineBreaks.replace('\r', '\n'); |
| 439 replaceChildrenWithText(this, textWithConsistentLineBreaks, exceptionSta
te); | 439 replaceChildrenWithText(this, textWithConsistentLineBreaks, exceptionSta
te); |
| 440 return; | 440 return; |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 773 if (equalIgnoringCase(value, "auto")) | 773 if (equalIgnoringCase(value, "auto")) |
| 774 calculateAndAdjustDirectionality(); | 774 calculateAndAdjustDirectionality(); |
| 775 } | 775 } |
| 776 | 776 |
| 777 void HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged(Element
* child) | 777 void HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged(Element
* child) |
| 778 { | 778 { |
| 779 ASSERT(selfOrAncestorHasDirAutoAttribute()); | 779 ASSERT(selfOrAncestorHasDirAutoAttribute()); |
| 780 Node* strongDirectionalityTextNode; | 780 Node* strongDirectionalityTextNode; |
| 781 TextDirection textDirection = directionality(&strongDirectionalityTextNode); | 781 TextDirection textDirection = directionality(&strongDirectionalityTextNode); |
| 782 setHasDirAutoFlagRecursively(child, false); | 782 setHasDirAutoFlagRecursively(child, false); |
| 783 if (renderer() && renderer()->style() && renderer()->style()->direction() !=
textDirection) { | 783 if (layoutObject() && layoutObject()->style() && layoutObject()->style()->di
rection() != textDirection) { |
| 784 Element* elementToAdjust = this; | 784 Element* elementToAdjust = this; |
| 785 for (; elementToAdjust; elementToAdjust = elementToAdjust->parentElement
()) { | 785 for (; elementToAdjust; elementToAdjust = elementToAdjust->parentElement
()) { |
| 786 if (elementAffectsDirectionality(elementToAdjust)) { | 786 if (elementAffectsDirectionality(elementToAdjust)) { |
| 787 elementToAdjust->setNeedsStyleRecalc(SubtreeStyleChange, StyleCh
angeReasonForTracing::create(StyleChangeReason::WritingModeChange)); | 787 elementToAdjust->setNeedsStyleRecalc(SubtreeStyleChange, StyleCh
angeReasonForTracing::create(StyleChangeReason::WritingModeChange)); |
| 788 return; | 788 return; |
| 789 } | 789 } |
| 790 } | 790 } |
| 791 } | 791 } |
| 792 } | 792 } |
| 793 | 793 |
| 794 void HTMLElement::calculateAndAdjustDirectionality() | 794 void HTMLElement::calculateAndAdjustDirectionality() |
| 795 { | 795 { |
| 796 Node* strongDirectionalityTextNode; | 796 Node* strongDirectionalityTextNode; |
| 797 TextDirection textDirection = directionality(&strongDirectionalityTextNode); | 797 TextDirection textDirection = directionality(&strongDirectionalityTextNode); |
| 798 setHasDirAutoFlagRecursively(this, hasDirectionAuto(), strongDirectionalityT
extNode); | 798 setHasDirAutoFlagRecursively(this, hasDirectionAuto(), strongDirectionalityT
extNode); |
| 799 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) | 799 for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadow
Root()) |
| 800 setHasDirAutoFlagRecursively(root, hasDirectionAuto()); | 800 setHasDirAutoFlagRecursively(root, hasDirectionAuto()); |
| 801 if (renderer() && renderer()->style() && renderer()->style()->direction() !=
textDirection) | 801 if (layoutObject() && layoutObject()->style() && layoutObject()->style()->di
rection() != textDirection) |
| 802 setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::cre
ate(StyleChangeReason::WritingModeChange)); | 802 setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::cre
ate(StyleChangeReason::WritingModeChange)); |
| 803 } | 803 } |
| 804 | 804 |
| 805 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(const Childre
nChange& change) | 805 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(const Childre
nChange& change) |
| 806 { | 806 { |
| 807 if (!selfOrAncestorHasDirAutoAttribute()) | 807 if (!selfOrAncestorHasDirAutoAttribute()) |
| 808 return; | 808 return; |
| 809 | 809 |
| 810 Node* oldMarkedNode = change.siblingBeforeChange ? NodeTraversal::nextSkippi
ngChildren(*change.siblingBeforeChange) : 0; | 810 Node* oldMarkedNode = change.siblingBeforeChange ? NodeTraversal::nextSkippi
ngChildren(*change.siblingBeforeChange) : 0; |
| 811 while (oldMarkedNode && elementAffectsDirectionality(oldMarkedNode)) | 811 while (oldMarkedNode && elementAffectsDirectionality(oldMarkedNode)) |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1036 #ifndef NDEBUG | 1036 #ifndef NDEBUG |
| 1037 | 1037 |
| 1038 // For use in the debugger | 1038 // For use in the debugger |
| 1039 void dumpInnerHTML(blink::HTMLElement*); | 1039 void dumpInnerHTML(blink::HTMLElement*); |
| 1040 | 1040 |
| 1041 void dumpInnerHTML(blink::HTMLElement* element) | 1041 void dumpInnerHTML(blink::HTMLElement* element) |
| 1042 { | 1042 { |
| 1043 printf("%s\n", element->innerHTML().ascii().data()); | 1043 printf("%s\n", element->innerHTML().ascii().data()); |
| 1044 } | 1044 } |
| 1045 #endif | 1045 #endif |
| OLD | NEW |