| 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. | 5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
| 6 * (http://www.torchmobile.com/) | 6 * (http://www.torchmobile.com/) |
| 7 * Copyright (C) 2011 Motorola Mobility. All rights reserved. | 7 * Copyright (C) 2011 Motorola Mobility. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "core/dom/shadow/ElementShadow.h" | 44 #include "core/dom/shadow/ElementShadow.h" |
| 45 #include "core/dom/shadow/FlatTreeTraversal.h" | 45 #include "core/dom/shadow/FlatTreeTraversal.h" |
| 46 #include "core/dom/shadow/ShadowRoot.h" | 46 #include "core/dom/shadow/ShadowRoot.h" |
| 47 #include "core/editing/EditingUtilities.h" | 47 #include "core/editing/EditingUtilities.h" |
| 48 #include "core/editing/serializers/Serialization.h" | 48 #include "core/editing/serializers/Serialization.h" |
| 49 #include "core/events/EventListener.h" | 49 #include "core/events/EventListener.h" |
| 50 #include "core/events/KeyboardEvent.h" | 50 #include "core/events/KeyboardEvent.h" |
| 51 #include "core/frame/Settings.h" | 51 #include "core/frame/Settings.h" |
| 52 #include "core/frame/UseCounter.h" | 52 #include "core/frame/UseCounter.h" |
| 53 #include "core/html/HTMLBRElement.h" | 53 #include "core/html/HTMLBRElement.h" |
| 54 #include "core/html/HTMLDimension.h" |
| 54 #include "core/html/HTMLFormElement.h" | 55 #include "core/html/HTMLFormElement.h" |
| 55 #include "core/html/HTMLInputElement.h" | 56 #include "core/html/HTMLInputElement.h" |
| 56 #include "core/html/HTMLMenuElement.h" | 57 #include "core/html/HTMLMenuElement.h" |
| 57 #include "core/html/HTMLTemplateElement.h" | 58 #include "core/html/HTMLTemplateElement.h" |
| 58 #include "core/html/parser/HTMLParserIdioms.h" | 59 #include "core/html/parser/HTMLParserIdioms.h" |
| 59 #include "core/layout/LayoutBoxModelObject.h" | 60 #include "core/layout/LayoutBoxModelObject.h" |
| 60 #include "core/layout/LayoutObject.h" | 61 #include "core/layout/LayoutObject.h" |
| 61 #include "core/page/SpatialNavigation.h" | 62 #include "core/page/SpatialNavigation.h" |
| 62 #include "core/svg/SVGSVGElement.h" | 63 #include "core/svg/SVGSVGElement.h" |
| 63 #include "platform/Language.h" | 64 #include "platform/Language.h" |
| (...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 elementToAdjust = FlatTreeTraversal::parentElement(*elementToAdjust)) { | 896 elementToAdjust = FlatTreeTraversal::parentElement(*elementToAdjust)) { |
| 896 if (elementAffectsDirectionality(elementToAdjust)) { | 897 if (elementAffectsDirectionality(elementToAdjust)) { |
| 897 toHTMLElement(elementToAdjust)->calculateAndAdjustDirectionality(); | 898 toHTMLElement(elementToAdjust)->calculateAndAdjustDirectionality(); |
| 898 return; | 899 return; |
| 899 } | 900 } |
| 900 } | 901 } |
| 901 } | 902 } |
| 902 | 903 |
| 903 void HTMLElement::addHTMLLengthToStyle(MutableStylePropertySet* style, | 904 void HTMLElement::addHTMLLengthToStyle(MutableStylePropertySet* style, |
| 904 CSSPropertyID propertyID, | 905 CSSPropertyID propertyID, |
| 905 const String& value) { | 906 const String& value, |
| 906 // FIXME: This function should not spin up the CSS parser, but should instead | 907 AllowPercentage allowPercentage) { |
| 907 // just figure out the correct length unit and make the appropriate parsed | 908 HTMLDimension dimension; |
| 908 // value. | 909 if (!parseDimensionValue(value, dimension)) |
| 909 | 910 return; |
| 910 // strip attribute garbage.. | 911 if (propertyID == CSSPropertyWidth && |
| 911 StringImpl* v = value.impl(); | 912 (dimension.isPercentage() || dimension.isRelative())) { |
| 912 if (v) { | 913 UseCounter::count(document(), UseCounter::HTMLElementDeprecatedWidth); |
| 913 unsigned length = 0; | |
| 914 | |
| 915 while (length < v->length() && (*v)[length] <= ' ') | |
| 916 length++; | |
| 917 | |
| 918 for (; length < v->length(); length++) { | |
| 919 UChar cc = (*v)[length]; | |
| 920 if (cc > '9') | |
| 921 break; | |
| 922 if (cc < '0') { | |
| 923 if (cc == '%' || cc == '*') { | |
| 924 if (propertyID == CSSPropertyWidth) | |
| 925 UseCounter::count(document(), | |
| 926 UseCounter::HTMLElementDeprecatedWidth); | |
| 927 length++; | |
| 928 } | |
| 929 if (cc != '.') | |
| 930 break; | |
| 931 } | |
| 932 } | |
| 933 | |
| 934 if (length != v->length()) { | |
| 935 addPropertyToPresentationAttributeStyle(style, propertyID, | |
| 936 v->substring(0, length)); | |
| 937 return; | |
| 938 } | |
| 939 } | 914 } |
| 940 | 915 if (dimension.isRelative()) |
| 941 addPropertyToPresentationAttributeStyle(style, propertyID, value); | 916 return; |
| 917 if (dimension.isPercentage() && allowPercentage != AllowPercentageValues) |
| 918 return; |
| 919 CSSPrimitiveValue::UnitType unit = |
| 920 dimension.isPercentage() ? CSSPrimitiveValue::UnitType::Percentage |
| 921 : CSSPrimitiveValue::UnitType::Pixels; |
| 922 addPropertyToPresentationAttributeStyle(style, propertyID, dimension.value(), |
| 923 unit); |
| 942 } | 924 } |
| 943 | 925 |
| 944 static RGBA32 parseColorStringWithCrazyLegacyRules(const String& colorString) { | 926 static RGBA32 parseColorStringWithCrazyLegacyRules(const String& colorString) { |
| 945 // Per spec, only look at the first 128 digits of the string. | 927 // Per spec, only look at the first 128 digits of the string. |
| 946 const size_t maxColorLength = 128; | 928 const size_t maxColorLength = 128; |
| 947 // We'll pad the buffer with two extra 0s later, so reserve two more than the | 929 // We'll pad the buffer with two extra 0s later, so reserve two more than the |
| 948 // max. | 930 // max. |
| 949 Vector<char, maxColorLength + 2> digitBuffer; | 931 Vector<char, maxColorLength + 2> digitBuffer; |
| 950 | 932 |
| 951 size_t i = 0; | 933 size_t i = 0; |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 | 1184 |
| 1203 #ifndef NDEBUG | 1185 #ifndef NDEBUG |
| 1204 | 1186 |
| 1205 // For use in the debugger | 1187 // For use in the debugger |
| 1206 void dumpInnerHTML(blink::HTMLElement*); | 1188 void dumpInnerHTML(blink::HTMLElement*); |
| 1207 | 1189 |
| 1208 void dumpInnerHTML(blink::HTMLElement* element) { | 1190 void dumpInnerHTML(blink::HTMLElement* element) { |
| 1209 printf("%s\n", element->innerHTML().ascii().data()); | 1191 printf("%s\n", element->innerHTML().ascii().data()); |
| 1210 } | 1192 } |
| 1211 #endif | 1193 #endif |
| OLD | NEW |