OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 9 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
10 * | 10 * |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 DEFINE_STATIC_LOCAL(CSSParserContext, strictContext, (CSSStrictMode)); | 240 DEFINE_STATIC_LOCAL(CSSParserContext, strictContext, (CSSStrictMode)); |
241 return strictContext; | 241 return strictContext; |
242 } | 242 } |
243 | 243 |
244 CSSParserContext::CSSParserContext(CSSParserMode mode, const KURL& baseURL) | 244 CSSParserContext::CSSParserContext(CSSParserMode mode, const KURL& baseURL) |
245 : baseURL(baseURL) | 245 : baseURL(baseURL) |
246 , mode(mode) | 246 , mode(mode) |
247 , isHTMLDocument(false) | 247 , isHTMLDocument(false) |
248 , isCSSCustomFilterEnabled(false) | 248 , isCSSCustomFilterEnabled(false) |
249 , isCSSStickyPositionEnabled(false) | 249 , isCSSStickyPositionEnabled(false) |
250 , isCSSRegionsEnabled(false) | |
251 , isCSSCompositingEnabled(false) | 250 , isCSSCompositingEnabled(false) |
252 , isCSSGridLayoutEnabled(false) | 251 , isCSSGridLayoutEnabled(false) |
253 , isCSSVariablesEnabled(false) | 252 , isCSSVariablesEnabled(false) |
254 , needsSiteSpecificQuirks(false) | 253 , needsSiteSpecificQuirks(false) |
255 { | 254 { |
256 } | 255 } |
257 | 256 |
258 CSSParserContext::CSSParserContext(Document* document, const KURL& baseURL, cons
t String& charset) | 257 CSSParserContext::CSSParserContext(Document* document, const KURL& baseURL, cons
t String& charset) |
259 : baseURL(baseURL.isNull() ? document->baseURL() : baseURL) | 258 : baseURL(baseURL.isNull() ? document->baseURL() : baseURL) |
260 , charset(charset) | 259 , charset(charset) |
261 , mode(document->inQuirksMode() ? CSSQuirksMode : CSSStrictMode) | 260 , mode(document->inQuirksMode() ? CSSQuirksMode : CSSStrictMode) |
262 , isHTMLDocument(document->isHTMLDocument()) | 261 , isHTMLDocument(document->isHTMLDocument()) |
263 , isCSSCustomFilterEnabled(document->settings() ? document->settings()->isCS
SCustomFilterEnabled() : false) | 262 , isCSSCustomFilterEnabled(document->settings() ? document->settings()->isCS
SCustomFilterEnabled() : false) |
264 , isCSSStickyPositionEnabled(document->cssStickyPositionEnabled()) | 263 , isCSSStickyPositionEnabled(document->cssStickyPositionEnabled()) |
265 , isCSSRegionsEnabled(document->cssRegionsEnabled()) | |
266 , isCSSCompositingEnabled(document->cssCompositingEnabled()) | 264 , isCSSCompositingEnabled(document->cssCompositingEnabled()) |
267 , isCSSGridLayoutEnabled(document->cssGridLayoutEnabled()) | 265 , isCSSGridLayoutEnabled(document->cssGridLayoutEnabled()) |
268 , isCSSVariablesEnabled(document->settings() ? document->settings()->cssVari
ablesEnabled() : false) | 266 , isCSSVariablesEnabled(document->settings() ? document->settings()->cssVari
ablesEnabled() : false) |
269 , needsSiteSpecificQuirks(document->settings() ? document->settings()->needs
SiteSpecificQuirks() : false) | 267 , needsSiteSpecificQuirks(document->settings() ? document->settings()->needs
SiteSpecificQuirks() : false) |
270 { | 268 { |
271 } | 269 } |
272 | 270 |
273 bool operator==(const CSSParserContext& a, const CSSParserContext& b) | 271 bool operator==(const CSSParserContext& a, const CSSParserContext& b) |
274 { | 272 { |
275 return a.baseURL == b.baseURL | 273 return a.baseURL == b.baseURL |
276 && a.charset == b.charset | 274 && a.charset == b.charset |
277 && a.mode == b.mode | 275 && a.mode == b.mode |
278 && a.isHTMLDocument == b.isHTMLDocument | 276 && a.isHTMLDocument == b.isHTMLDocument |
279 && a.isCSSCustomFilterEnabled == b.isCSSCustomFilterEnabled | 277 && a.isCSSCustomFilterEnabled == b.isCSSCustomFilterEnabled |
280 && a.isCSSStickyPositionEnabled == b.isCSSStickyPositionEnabled | 278 && a.isCSSStickyPositionEnabled == b.isCSSStickyPositionEnabled |
281 && a.isCSSRegionsEnabled == b.isCSSRegionsEnabled | |
282 && a.isCSSCompositingEnabled == b.isCSSCompositingEnabled | 279 && a.isCSSCompositingEnabled == b.isCSSCompositingEnabled |
283 && a.isCSSGridLayoutEnabled == b.isCSSGridLayoutEnabled | 280 && a.isCSSGridLayoutEnabled == b.isCSSGridLayoutEnabled |
284 && a.isCSSVariablesEnabled == b.isCSSVariablesEnabled | 281 && a.isCSSVariablesEnabled == b.isCSSVariablesEnabled |
285 && a.needsSiteSpecificQuirks == b.needsSiteSpecificQuirks; | 282 && a.needsSiteSpecificQuirks == b.needsSiteSpecificQuirks; |
286 } | 283 } |
287 | 284 |
288 CSSParser::CSSParser(const CSSParserContext& context) | 285 CSSParser::CSSParser(const CSSParserContext& context) |
289 : m_context(context) | 286 : m_context(context) |
290 , m_important(false) | 287 , m_important(false) |
291 , m_id(CSSPropertyInvalid) | 288 , m_id(CSSPropertyInvalid) |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) | 912 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) |
916 case CSSPropertyWebkitOverflowScrolling: | 913 case CSSPropertyWebkitOverflowScrolling: |
917 if (valueID == CSSValueAuto || valueID == CSSValueTouch) | 914 if (valueID == CSSValueAuto || valueID == CSSValueTouch) |
918 return true; | 915 return true; |
919 break; | 916 break; |
920 #endif | 917 #endif |
921 case CSSPropertyWebkitPrintColorAdjust: | 918 case CSSPropertyWebkitPrintColorAdjust: |
922 if (valueID == CSSValueExact || valueID == CSSValueEconomy) | 919 if (valueID == CSSValueExact || valueID == CSSValueEconomy) |
923 return true; | 920 return true; |
924 break; | 921 break; |
925 #if ENABLE(CSS_REGIONS) | |
926 case CSSPropertyWebkitRegionBreakAfter: | 922 case CSSPropertyWebkitRegionBreakAfter: |
927 case CSSPropertyWebkitRegionBreakBefore: | 923 case CSSPropertyWebkitRegionBreakBefore: |
928 if (parserContext.isCSSRegionsEnabled && (valueID == CSSValueAuto || val
ueID == CSSValueAlways || valueID == CSSValueAvoid || valueID == CSSValueLeft ||
valueID == CSSValueRight)) | 924 if (RuntimeEnabledFeatures::cssRegionsEnabled() && (valueID == CSSValueA
uto || valueID == CSSValueAlways || valueID == CSSValueAvoid || valueID == CSSVa
lueLeft || valueID == CSSValueRight)) |
929 return true; | 925 return true; |
930 break; | 926 break; |
931 case CSSPropertyWebkitRegionBreakInside: | 927 case CSSPropertyWebkitRegionBreakInside: |
932 if (parserContext.isCSSRegionsEnabled && (valueID == CSSValueAuto || val
ueID == CSSValueAvoid)) | 928 if (RuntimeEnabledFeatures::cssRegionsEnabled() && (valueID == CSSValueA
uto || valueID == CSSValueAvoid)) |
933 return true; | 929 return true; |
934 break; | 930 break; |
935 case CSSPropertyWebkitRegionOverflow: | 931 case CSSPropertyWebkitRegionOverflow: |
936 if (parserContext.isCSSRegionsEnabled && (valueID == CSSValueAuto || val
ueID == CSSValueBreak)) | 932 if (RuntimeEnabledFeatures::cssRegionsEnabled() && (valueID == CSSValueA
uto || valueID == CSSValueBreak)) |
937 return true; | 933 return true; |
938 break; | 934 break; |
939 #endif | |
940 case CSSPropertyWebkitRtlOrdering: | 935 case CSSPropertyWebkitRtlOrdering: |
941 if (valueID == CSSValueLogical || valueID == CSSValueVisual) | 936 if (valueID == CSSValueLogical || valueID == CSSValueVisual) |
942 return true; | 937 return true; |
943 break; | 938 break; |
944 | 939 |
945 case CSSPropertyWebkitRubyPosition: | 940 case CSSPropertyWebkitRubyPosition: |
946 if (valueID == CSSValueBefore || valueID == CSSValueAfter) | 941 if (valueID == CSSValueBefore || valueID == CSSValueAfter) |
947 return true; | 942 return true; |
948 break; | 943 break; |
949 | 944 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 case CSSPropertyWebkitMarginAfterCollapse: | 1089 case CSSPropertyWebkitMarginAfterCollapse: |
1095 case CSSPropertyWebkitMarginBeforeCollapse: | 1090 case CSSPropertyWebkitMarginBeforeCollapse: |
1096 case CSSPropertyWebkitMarginBottomCollapse: | 1091 case CSSPropertyWebkitMarginBottomCollapse: |
1097 case CSSPropertyWebkitMarginTopCollapse: | 1092 case CSSPropertyWebkitMarginTopCollapse: |
1098 case CSSPropertyWebkitMarqueeDirection: | 1093 case CSSPropertyWebkitMarqueeDirection: |
1099 case CSSPropertyWebkitMarqueeStyle: | 1094 case CSSPropertyWebkitMarqueeStyle: |
1100 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) | 1095 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) |
1101 case CSSPropertyWebkitOverflowScrolling: | 1096 case CSSPropertyWebkitOverflowScrolling: |
1102 #endif | 1097 #endif |
1103 case CSSPropertyWebkitPrintColorAdjust: | 1098 case CSSPropertyWebkitPrintColorAdjust: |
1104 #if ENABLE(CSS_REGIONS) | |
1105 case CSSPropertyWebkitRegionBreakAfter: | 1099 case CSSPropertyWebkitRegionBreakAfter: |
1106 case CSSPropertyWebkitRegionBreakBefore: | 1100 case CSSPropertyWebkitRegionBreakBefore: |
1107 case CSSPropertyWebkitRegionBreakInside: | 1101 case CSSPropertyWebkitRegionBreakInside: |
1108 case CSSPropertyWebkitRegionOverflow: | 1102 case CSSPropertyWebkitRegionOverflow: |
1109 #endif | |
1110 case CSSPropertyWebkitRtlOrdering: | 1103 case CSSPropertyWebkitRtlOrdering: |
1111 case CSSPropertyWebkitRubyPosition: | 1104 case CSSPropertyWebkitRubyPosition: |
1112 #if ENABLE(CSS3_TEXT) | 1105 #if ENABLE(CSS3_TEXT) |
1113 case CSSPropertyWebkitTextAlignLast: | 1106 case CSSPropertyWebkitTextAlignLast: |
1114 #endif // CSS3_TEXT | 1107 #endif // CSS3_TEXT |
1115 case CSSPropertyWebkitTextCombine: | 1108 case CSSPropertyWebkitTextCombine: |
1116 case CSSPropertyWebkitTextEmphasisPosition: | 1109 case CSSPropertyWebkitTextEmphasisPosition: |
1117 case CSSPropertyWebkitTextSecurity: | 1110 case CSSPropertyWebkitTextSecurity: |
1118 case CSSPropertyWebkitTransformStyle: | 1111 case CSSPropertyWebkitTransformStyle: |
1119 case CSSPropertyWebkitUserDrag: | 1112 case CSSPropertyWebkitUserDrag: |
(...skipping 1307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2427 validPrimitive = true; | 2420 validPrimitive = true; |
2428 else | 2421 else |
2429 validPrimitive = validUnit(value, FInteger | FNonNeg); | 2422 validPrimitive = validUnit(value, FInteger | FNonNeg); |
2430 break; | 2423 break; |
2431 case CSSPropertyWebkitMarqueeSpeed: | 2424 case CSSPropertyWebkitMarqueeSpeed: |
2432 if (id == CSSValueNormal || id == CSSValueSlow || id == CSSValueFast) | 2425 if (id == CSSValueNormal || id == CSSValueSlow || id == CSSValueFast) |
2433 validPrimitive = true; | 2426 validPrimitive = true; |
2434 else | 2427 else |
2435 validPrimitive = validUnit(value, FTime | FInteger | FNonNeg); | 2428 validPrimitive = validUnit(value, FTime | FInteger | FNonNeg); |
2436 break; | 2429 break; |
2437 #if ENABLE(CSS_REGIONS) | |
2438 case CSSPropertyWebkitFlowInto: | 2430 case CSSPropertyWebkitFlowInto: |
2439 if (!cssRegionsEnabled()) | 2431 if (!RuntimeEnabledFeatures::cssRegionsEnabled()) |
2440 return false; | 2432 return false; |
2441 return parseFlowThread(propId, important); | 2433 return parseFlowThread(propId, important); |
2442 case CSSPropertyWebkitFlowFrom: | 2434 case CSSPropertyWebkitFlowFrom: |
2443 if (!cssRegionsEnabled()) | 2435 if (!RuntimeEnabledFeatures::cssRegionsEnabled()) |
2444 return false; | 2436 return false; |
2445 return parseRegionThread(propId, important); | 2437 return parseRegionThread(propId, important); |
2446 #endif | |
2447 case CSSPropertyWebkitTransform: | 2438 case CSSPropertyWebkitTransform: |
2448 if (id == CSSValueNone) | 2439 if (id == CSSValueNone) |
2449 validPrimitive = true; | 2440 validPrimitive = true; |
2450 else { | 2441 else { |
2451 RefPtr<CSSValue> transformValue = parseTransform(); | 2442 RefPtr<CSSValue> transformValue = parseTransform(); |
2452 if (transformValue) { | 2443 if (transformValue) { |
2453 addProperty(propId, transformValue.release(), important); | 2444 addProperty(propId, transformValue.release(), important); |
2454 return true; | 2445 return true; |
2455 } | 2446 } |
2456 return false; | 2447 return false; |
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2918 case CSSPropertyWebkitMarginAfterCollapse: | 2909 case CSSPropertyWebkitMarginAfterCollapse: |
2919 case CSSPropertyWebkitMarginBeforeCollapse: | 2910 case CSSPropertyWebkitMarginBeforeCollapse: |
2920 case CSSPropertyWebkitMarginBottomCollapse: | 2911 case CSSPropertyWebkitMarginBottomCollapse: |
2921 case CSSPropertyWebkitMarginTopCollapse: | 2912 case CSSPropertyWebkitMarginTopCollapse: |
2922 case CSSPropertyWebkitMarqueeDirection: | 2913 case CSSPropertyWebkitMarqueeDirection: |
2923 case CSSPropertyWebkitMarqueeStyle: | 2914 case CSSPropertyWebkitMarqueeStyle: |
2924 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) | 2915 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING) |
2925 case CSSPropertyWebkitOverflowScrolling: | 2916 case CSSPropertyWebkitOverflowScrolling: |
2926 #endif | 2917 #endif |
2927 case CSSPropertyWebkitPrintColorAdjust: | 2918 case CSSPropertyWebkitPrintColorAdjust: |
2928 #if ENABLE(CSS_REGIONS) | |
2929 case CSSPropertyWebkitRegionBreakAfter: | 2919 case CSSPropertyWebkitRegionBreakAfter: |
2930 case CSSPropertyWebkitRegionBreakBefore: | 2920 case CSSPropertyWebkitRegionBreakBefore: |
2931 case CSSPropertyWebkitRegionBreakInside: | 2921 case CSSPropertyWebkitRegionBreakInside: |
2932 case CSSPropertyWebkitRegionOverflow: | 2922 case CSSPropertyWebkitRegionOverflow: |
2933 #endif | |
2934 case CSSPropertyWebkitRtlOrdering: | 2923 case CSSPropertyWebkitRtlOrdering: |
2935 case CSSPropertyWebkitRubyPosition: | 2924 case CSSPropertyWebkitRubyPosition: |
2936 #if ENABLE(CSS3_TEXT) | 2925 #if ENABLE(CSS3_TEXT) |
2937 case CSSPropertyWebkitTextAlignLast: | 2926 case CSSPropertyWebkitTextAlignLast: |
2938 #endif // CSS3_TEXT | 2927 #endif // CSS3_TEXT |
2939 case CSSPropertyWebkitTextCombine: | 2928 case CSSPropertyWebkitTextCombine: |
2940 case CSSPropertyWebkitTextEmphasisPosition: | 2929 case CSSPropertyWebkitTextEmphasisPosition: |
2941 case CSSPropertyWebkitTextSecurity: | 2930 case CSSPropertyWebkitTextSecurity: |
2942 case CSSPropertyWebkitTransformStyle: | 2931 case CSSPropertyWebkitTransformStyle: |
2943 case CSSPropertyWebkitUserDrag: | 2932 case CSSPropertyWebkitUserDrag: |
(...skipping 5735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8679 if (!filterValue) | 8668 if (!filterValue) |
8680 return 0; | 8669 return 0; |
8681 | 8670 |
8682 list->append(filterValue); | 8671 list->append(filterValue); |
8683 } | 8672 } |
8684 } | 8673 } |
8685 | 8674 |
8686 return list.release(); | 8675 return list.release(); |
8687 } | 8676 } |
8688 | 8677 |
8689 #if ENABLE(CSS_REGIONS) | |
8690 static bool validFlowName(const String& flowName) | 8678 static bool validFlowName(const String& flowName) |
8691 { | 8679 { |
8692 return !(equalIgnoringCase(flowName, "auto") | 8680 return !(equalIgnoringCase(flowName, "auto") |
8693 || equalIgnoringCase(flowName, "default") | 8681 || equalIgnoringCase(flowName, "default") |
8694 || equalIgnoringCase(flowName, "inherit") | 8682 || equalIgnoringCase(flowName, "inherit") |
8695 || equalIgnoringCase(flowName, "initial") | 8683 || equalIgnoringCase(flowName, "initial") |
8696 || equalIgnoringCase(flowName, "none")); | 8684 || equalIgnoringCase(flowName, "none")); |
8697 } | 8685 } |
8698 #endif | |
8699 | |
8700 bool CSSParser::cssRegionsEnabled() const | |
8701 { | |
8702 return m_context.isCSSRegionsEnabled; | |
8703 } | |
8704 | 8686 |
8705 bool CSSParser::cssCompositingEnabled() const | 8687 bool CSSParser::cssCompositingEnabled() const |
8706 { | 8688 { |
8707 return m_context.isCSSCompositingEnabled; | 8689 return m_context.isCSSCompositingEnabled; |
8708 } | 8690 } |
8709 | 8691 |
8710 bool CSSParser::cssGridLayoutEnabled() const | 8692 bool CSSParser::cssGridLayoutEnabled() const |
8711 { | 8693 { |
8712 return m_context.isCSSGridLayoutEnabled; | 8694 return m_context.isCSSGridLayoutEnabled; |
8713 } | 8695 } |
8714 | 8696 |
8715 #if ENABLE(CSS_REGIONS) | |
8716 bool CSSParser::parseFlowThread(const String& flowName) | 8697 bool CSSParser::parseFlowThread(const String& flowName) |
8717 { | 8698 { |
8718 setupParser("@-internal-decls{-webkit-flow-into:", flowName, "}"); | 8699 setupParser("@-internal-decls{-webkit-flow-into:", flowName, "}"); |
8719 cssyyparse(this); | 8700 cssyyparse(this); |
8720 | 8701 |
8721 m_rule = 0; | 8702 m_rule = 0; |
8722 | 8703 |
8723 return ((m_parsedProperties.size() == 1) && (m_parsedProperties.first().id()
== CSSPropertyWebkitFlowInto)); | 8704 return ((m_parsedProperties.size() == 1) && (m_parsedProperties.first().id()
== CSSPropertyWebkitFlowInto)); |
8724 } | 8705 } |
8725 | 8706 |
8726 // none | <ident> | 8707 // none | <ident> |
8727 bool CSSParser::parseFlowThread(CSSPropertyID propId, bool important) | 8708 bool CSSParser::parseFlowThread(CSSPropertyID propId, bool important) |
8728 { | 8709 { |
8729 ASSERT(propId == CSSPropertyWebkitFlowInto); | 8710 ASSERT(propId == CSSPropertyWebkitFlowInto); |
8730 ASSERT(cssRegionsEnabled()); | 8711 ASSERT(RuntimeEnabledFeatures::cssRegionsEnabled()); |
8731 | 8712 |
8732 if (m_valueList->size() != 1) | 8713 if (m_valueList->size() != 1) |
8733 return false; | 8714 return false; |
8734 | 8715 |
8735 CSSParserValue* value = m_valueList->current(); | 8716 CSSParserValue* value = m_valueList->current(); |
8736 if (!value) | 8717 if (!value) |
8737 return false; | 8718 return false; |
8738 | 8719 |
8739 if (value->unit != CSSPrimitiveValue::CSS_IDENT) | 8720 if (value->unit != CSSPrimitiveValue::CSS_IDENT) |
8740 return false; | 8721 return false; |
(...skipping 11 matching lines...) Expand all Loading... |
8752 } else | 8733 } else |
8753 addProperty(propId, cssValuePool().createIdentifierValue(CSSValueNone),
important); | 8734 addProperty(propId, cssValuePool().createIdentifierValue(CSSValueNone),
important); |
8754 | 8735 |
8755 return true; | 8736 return true; |
8756 } | 8737 } |
8757 | 8738 |
8758 // -webkit-flow-from: none | <ident> | 8739 // -webkit-flow-from: none | <ident> |
8759 bool CSSParser::parseRegionThread(CSSPropertyID propId, bool important) | 8740 bool CSSParser::parseRegionThread(CSSPropertyID propId, bool important) |
8760 { | 8741 { |
8761 ASSERT(propId == CSSPropertyWebkitFlowFrom); | 8742 ASSERT(propId == CSSPropertyWebkitFlowFrom); |
8762 ASSERT(cssRegionsEnabled()); | 8743 ASSERT(RuntimeEnabledFeatures::cssRegionsEnabled()); |
8763 | 8744 |
8764 if (m_valueList->size() != 1) | 8745 if (m_valueList->size() != 1) |
8765 return false; | 8746 return false; |
8766 | 8747 |
8767 CSSParserValue* value = m_valueList->current(); | 8748 CSSParserValue* value = m_valueList->current(); |
8768 if (!value) | 8749 if (!value) |
8769 return false; | 8750 return false; |
8770 | 8751 |
8771 if (value->unit != CSSPrimitiveValue::CSS_IDENT) | 8752 if (value->unit != CSSPrimitiveValue::CSS_IDENT) |
8772 return false; | 8753 return false; |
8773 | 8754 |
8774 if (value->id == CSSValueNone) | 8755 if (value->id == CSSValueNone) |
8775 addProperty(propId, cssValuePool().createIdentifierValue(value->id), imp
ortant); | 8756 addProperty(propId, cssValuePool().createIdentifierValue(value->id), imp
ortant); |
8776 else { | 8757 else { |
8777 String inputProperty = String(value->string); | 8758 String inputProperty = String(value->string); |
8778 if (!inputProperty.isEmpty()) { | 8759 if (!inputProperty.isEmpty()) { |
8779 if (!validFlowName(inputProperty)) | 8760 if (!validFlowName(inputProperty)) |
8780 return false; | 8761 return false; |
8781 addProperty(propId, cssValuePool().createValue(inputProperty, CSSPri
mitiveValue::CSS_STRING), important); | 8762 addProperty(propId, cssValuePool().createValue(inputProperty, CSSPri
mitiveValue::CSS_STRING), important); |
8782 } else | 8763 } else |
8783 addProperty(propId, cssValuePool().createIdentifierValue(CSSValueNon
e), important); | 8764 addProperty(propId, cssValuePool().createIdentifierValue(CSSValueNon
e), important); |
8784 } | 8765 } |
8785 | 8766 |
8786 return true; | 8767 return true; |
8787 } | 8768 } |
8788 #endif | |
8789 | 8769 |
8790 bool CSSParser::parseTransformOrigin(CSSPropertyID propId, CSSPropertyID& propId
1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtr<CSSValue>& value, RefP
tr<CSSValue>& value2, RefPtr<CSSValue>& value3) | 8770 bool CSSParser::parseTransformOrigin(CSSPropertyID propId, CSSPropertyID& propId
1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtr<CSSValue>& value, RefP
tr<CSSValue>& value2, RefPtr<CSSValue>& value3) |
8791 { | 8771 { |
8792 propId1 = propId; | 8772 propId1 = propId; |
8793 propId2 = propId; | 8773 propId2 = propId; |
8794 propId3 = propId; | 8774 propId3 = propId; |
8795 if (propId == CSSPropertyWebkitTransformOrigin) { | 8775 if (propId == CSSPropertyWebkitTransformOrigin) { |
8796 propId1 = CSSPropertyWebkitTransformOriginX; | 8776 propId1 = CSSPropertyWebkitTransformOriginX; |
8797 propId2 = CSSPropertyWebkitTransformOriginY; | 8777 propId2 = CSSPropertyWebkitTransformOriginY; |
8798 propId3 = CSSPropertyWebkitTransformOriginZ; | 8778 propId3 = CSSPropertyWebkitTransformOriginZ; |
(...skipping 1440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10239 switch (length) { | 10219 switch (length) { |
10240 case 15: | 10220 case 15: |
10241 if (hasEscape) | 10221 if (hasEscape) |
10242 return; | 10222 return; |
10243 | 10223 |
10244 if (isEqualToCSSIdentifier(name + 2, "internal-rule")) { | 10224 if (isEqualToCSSIdentifier(name + 2, "internal-rule")) { |
10245 m_token = INTERNAL_RULE_SYM; | 10225 m_token = INTERNAL_RULE_SYM; |
10246 return; | 10226 return; |
10247 } | 10227 } |
10248 | 10228 |
10249 #if ENABLE(CSS_REGIONS) | |
10250 if (isASCIIAlphaCaselessEqual(name[14], 'n') && isEqualToCSSIdentifi
er(name + 2, "webkit-regio")) { | 10229 if (isASCIIAlphaCaselessEqual(name[14], 'n') && isEqualToCSSIdentifi
er(name + 2, "webkit-regio")) { |
10251 m_token = WEBKIT_REGION_RULE_SYM; | 10230 m_token = WEBKIT_REGION_RULE_SYM; |
10252 return; | 10231 return; |
10253 } | 10232 } |
10254 #endif | 10233 |
10255 if (isASCIIAlphaCaselessEqual(name[14], 'r') && isEqualToCSSIdentifi
er(name + 2, "webkit-filte")) { | 10234 if (isASCIIAlphaCaselessEqual(name[14], 'r') && isEqualToCSSIdentifi
er(name + 2, "webkit-filte")) { |
10256 m_token = WEBKIT_FILTER_RULE_SYM; | 10235 m_token = WEBKIT_FILTER_RULE_SYM; |
10257 return; | 10236 return; |
10258 } | 10237 } |
10259 return; | 10238 return; |
10260 | 10239 |
10261 case 16: | 10240 case 16: |
10262 if (hasEscape) | 10241 if (hasEscape) |
10263 return; | 10242 return; |
10264 | 10243 |
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11209 } | 11188 } |
11210 | 11189 |
11211 void CSSParser::setReusableRegionSelectorVector(Vector<OwnPtr<CSSParserSelector>
>* selectors) | 11190 void CSSParser::setReusableRegionSelectorVector(Vector<OwnPtr<CSSParserSelector>
>* selectors) |
11212 { | 11191 { |
11213 if (selectors) | 11192 if (selectors) |
11214 m_reusableRegionSelectorVector.swap(*selectors); | 11193 m_reusableRegionSelectorVector.swap(*selectors); |
11215 } | 11194 } |
11216 | 11195 |
11217 StyleRuleBase* CSSParser::createRegionRule(Vector<OwnPtr<CSSParserSelector> >* r
egionSelector, RuleList* rules) | 11196 StyleRuleBase* CSSParser::createRegionRule(Vector<OwnPtr<CSSParserSelector> >* r
egionSelector, RuleList* rules) |
11218 { | 11197 { |
11219 if (!cssRegionsEnabled() || !regionSelector || !rules) { | 11198 if (!RuntimeEnabledFeatures::cssRegionsEnabled() || !regionSelector || !rule
s) { |
11220 endRuleBody(true); | 11199 endRuleBody(true); |
11221 return 0; | 11200 return 0; |
11222 } | 11201 } |
11223 | 11202 |
11224 m_allowImportRules = m_allowNamespaceDeclarations = false; | 11203 m_allowImportRules = m_allowNamespaceDeclarations = false; |
11225 | 11204 |
11226 RefPtr<StyleRuleRegion> regionRule = StyleRuleRegion::create(regionSelector,
*rules); | 11205 RefPtr<StyleRuleRegion> regionRule = StyleRuleRegion::create(regionSelector,
*rules); |
11227 | 11206 |
11228 StyleRuleRegion* result = regionRule.get(); | 11207 StyleRuleRegion* result = regionRule.get(); |
11229 m_parsedRules.append(regionRule.release()); | 11208 m_parsedRules.append(regionRule.release()); |
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11727 { | 11706 { |
11728 // The tokenizer checks for the construct of an+b. | 11707 // The tokenizer checks for the construct of an+b. |
11729 // However, since the {ident} rule precedes the {nth} rule, some of those | 11708 // However, since the {ident} rule precedes the {nth} rule, some of those |
11730 // tokens are identified as string literal. Furthermore we need to accept | 11709 // tokens are identified as string literal. Furthermore we need to accept |
11731 // "odd" and "even" which does not match to an+b. | 11710 // "odd" and "even" which does not match to an+b. |
11732 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 11711 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
11733 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 11712 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
11734 } | 11713 } |
11735 | 11714 |
11736 } | 11715 } |
OLD | NEW |