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

Side by Side Diff: third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp

Issue 1249423002: Make createCSSImageValueWithReferrer static (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/css/parser/CSSPropertyParser.h" 6 #include "core/css/parser/CSSPropertyParser.h"
7 7
8 #include "core/StylePropertyShorthand.h" 8 #include "core/StylePropertyShorthand.h"
9 #include "core/css/CSSCalculationValue.h" 9 #include "core/css/CSSCalculationValue.h"
10 #include "core/css/CSSCursorImageValue.h" 10 #include "core/css/CSSCursorImageValue.h"
(...skipping 2159 matching lines...) Expand 10 before | Expand all | Expand 10 after
2170 } 2170 }
2171 2171
2172 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> consumeBaselineShift(CSSParserT okenRange& range) 2172 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> consumeBaselineShift(CSSParserT okenRange& range)
2173 { 2173 {
2174 CSSValueID id = range.peek().id(); 2174 CSSValueID id = range.peek().id();
2175 if (id == CSSValueBaseline || id == CSSValueSub || id == CSSValueSuper) 2175 if (id == CSSValueBaseline || id == CSSValueSub || id == CSSValueSuper)
2176 return consumeIdent(range); 2176 return consumeIdent(range);
2177 return consumeLengthOrPercent(range, SVGAttributeMode, ValueRangeAll, Unitle ssQuirk::Forbid); 2177 return consumeLengthOrPercent(range, SVGAttributeMode, ValueRangeAll, Unitle ssQuirk::Forbid);
2178 } 2178 }
2179 2179
2180 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::consumeImageSet(CSSParserTok enRange& range) 2180 static PassRefPtrWillBeRawPtr<CSSValue> consumeImageSet(CSSParserTokenRange& ran ge, CSSParserContext context)
2181 { 2181 {
2182 CSSParserTokenRange rangeCopy = range; 2182 CSSParserTokenRange rangeCopy = range;
2183 CSSParserTokenRange args = consumeFunction(rangeCopy); 2183 CSSParserTokenRange args = consumeFunction(rangeCopy);
2184 RefPtrWillBeRawPtr<CSSImageSetValue> imageSet = CSSImageSetValue::create(); 2184 RefPtrWillBeRawPtr<CSSImageSetValue> imageSet = CSSImageSetValue::create();
2185 do { 2185 do {
2186 AtomicString urlValue(consumeUrl(args)); 2186 AtomicString urlValue(consumeUrl(args));
2187 if (urlValue.isNull()) 2187 if (urlValue.isNull())
2188 return nullptr; 2188 return nullptr;
2189 2189
2190 RefPtrWillBeRawPtr<CSSValue> image = createCSSImageValueWithReferrer(url Value, completeURL(urlValue)); 2190 RefPtrWillBeRawPtr<CSSValue> image = CSSPropertyParser::createCSSImageVa lueWithReferrer(urlValue, context);
2191 imageSet->append(image); 2191 imageSet->append(image);
2192 2192
2193 const CSSParserToken& token = args.consumeIncludingWhitespace(); 2193 const CSSParserToken& token = args.consumeIncludingWhitespace();
2194 if (token.type() != DimensionToken) 2194 if (token.type() != DimensionToken)
2195 return nullptr; 2195 return nullptr;
2196 if (String(token.value()) != "x") 2196 if (String(token.value()) != "x")
2197 return nullptr; 2197 return nullptr;
2198 ASSERT(token.unitType() == CSSPrimitiveValue::UnitType::Unknown); 2198 ASSERT(token.unitType() == CSSPrimitiveValue::UnitType::Unknown);
2199 double imageScaleFactor = token.numericValue(); 2199 double imageScaleFactor = token.numericValue();
2200 if (imageScaleFactor <= 0) 2200 if (imageScaleFactor <= 0)
2201 return nullptr; 2201 return nullptr;
2202 imageSet->append(cssValuePool().createValue(imageScaleFactor, CSSPrimiti veValue::UnitType::Number)); 2202 imageSet->append(cssValuePool().createValue(imageScaleFactor, CSSPrimiti veValue::UnitType::Number));
2203 } while (consumeCommaIncludingWhitespace(args)); 2203 } while (consumeCommaIncludingWhitespace(args));
2204 if (!args.atEnd()) 2204 if (!args.atEnd())
2205 return nullptr; 2205 return nullptr;
2206 range = rangeCopy; 2206 range = rangeCopy;
2207 return imageSet.release(); 2207 return imageSet.release();
2208 } 2208 }
2209 2209
2210 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::consumeCursor(CSSParserToken Range& range) 2210 static PassRefPtrWillBeRawPtr<CSSValue> consumeCursor(CSSParserTokenRange& range , CSSParserContext context, bool inQuirksMode)
2211 { 2211 {
2212 RefPtrWillBeRawPtr<CSSValueList> list = nullptr; 2212 RefPtrWillBeRawPtr<CSSValueList> list = nullptr;
2213 while (!range.atEnd()) { 2213 while (!range.atEnd()) {
2214 RefPtrWillBeRawPtr<CSSValue> image = nullptr; 2214 RefPtrWillBeRawPtr<CSSValue> image = nullptr;
2215 AtomicString uri(consumeUrl(range)); 2215 AtomicString uri(consumeUrl(range));
2216 if (!uri.isNull()) { 2216 if (!uri.isNull()) {
2217 image = createCSSImageValueWithReferrer(uri, completeURL(uri)); 2217 image = CSSPropertyParser::createCSSImageValueWithReferrer(uri, cont ext);
2218 } else if (range.peek().type() == FunctionToken && range.peek().function Id() == CSSValueWebkitImageSet) { 2218 } else if (range.peek().type() == FunctionToken && range.peek().function Id() == CSSValueWebkitImageSet) {
2219 image = consumeImageSet(range); 2219 image = consumeImageSet(range, context);
2220 if (!image) 2220 if (!image)
2221 return nullptr; 2221 return nullptr;
2222 } else { 2222 } else {
2223 break; 2223 break;
2224 } 2224 }
2225 2225
2226 double num; 2226 double num;
2227 IntPoint hotSpot(-1, -1); 2227 IntPoint hotSpot(-1, -1);
2228 bool hotSpotSpecified = false; 2228 bool hotSpotSpecified = false;
2229 if (consumeNumberRaw(range, num)) { 2229 if (consumeNumberRaw(range, num)) {
2230 hotSpot.setX(int(num)); 2230 hotSpot.setX(int(num));
2231 if (!consumeNumberRaw(range, num)) 2231 if (!consumeNumberRaw(range, num))
2232 return nullptr; 2232 return nullptr;
2233 hotSpot.setY(int(num)); 2233 hotSpot.setY(int(num));
2234 hotSpotSpecified = true; 2234 hotSpotSpecified = true;
2235 } 2235 }
2236 2236
2237 if (!list) 2237 if (!list)
2238 list = CSSValueList::createCommaSeparated(); 2238 list = CSSValueList::createCommaSeparated();
2239 2239
2240 list->append(CSSCursorImageValue::create(image, hotSpotSpecified, hotSpo t)); 2240 list->append(CSSCursorImageValue::create(image, hotSpotSpecified, hotSpo t));
2241 if (!consumeCommaIncludingWhitespace(range)) 2241 if (!consumeCommaIncludingWhitespace(range))
2242 return nullptr; 2242 return nullptr;
2243 } 2243 }
2244 2244
2245 CSSValueID id = range.peek().id(); 2245 CSSValueID id = range.peek().id();
2246 if (!range.atEnd() && m_context.useCounter()) { 2246 if (!range.atEnd() && context.useCounter()) {
2247 if (id == CSSValueWebkitZoomIn) 2247 if (id == CSSValueWebkitZoomIn)
2248 m_context.useCounter()->count(UseCounter::PrefixedCursorZoomIn); 2248 context.useCounter()->count(UseCounter::PrefixedCursorZoomIn);
2249 else if (id == CSSValueWebkitZoomOut) 2249 else if (id == CSSValueWebkitZoomOut)
2250 m_context.useCounter()->count(UseCounter::PrefixedCursorZoomOut); 2250 context.useCounter()->count(UseCounter::PrefixedCursorZoomOut);
2251 } 2251 }
2252 RefPtrWillBeRawPtr<CSSValue> cursorType = nullptr; 2252 RefPtrWillBeRawPtr<CSSValue> cursorType = nullptr;
2253 if (id == CSSValueHand) { 2253 if (id == CSSValueHand) {
2254 if (inQuirksMode()) // Non-standard behavior 2254 if (inQuirksMode) // Non-standard behavior
2255 cursorType = cssValuePool().createIdentifierValue(CSSValuePointer); 2255 cursorType = cssValuePool().createIdentifierValue(CSSValuePointer);
2256 range.consumeIncludingWhitespace(); 2256 range.consumeIncludingWhitespace();
2257 } else if ((id >= CSSValueAuto && id <= CSSValueWebkitZoomOut) || id == CSSV alueCopy || id == CSSValueNone) { 2257 } else if ((id >= CSSValueAuto && id <= CSSValueWebkitZoomOut) || id == CSSV alueCopy || id == CSSValueNone) {
2258 cursorType = consumeIdent(range); 2258 cursorType = consumeIdent(range);
2259 } 2259 }
2260 2260
2261 if (!list) 2261 if (!list)
2262 return cursorType.release(); 2262 return cursorType.release();
2263 if (cursorType) 2263 if (cursorType)
2264 list->append(cursorType.release()); 2264 list->append(cursorType.release());
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2474 case CSSPropertyStrokeDashoffset: 2474 case CSSPropertyStrokeDashoffset:
2475 case CSSPropertyCx: 2475 case CSSPropertyCx:
2476 case CSSPropertyCy: 2476 case CSSPropertyCy:
2477 case CSSPropertyX: 2477 case CSSPropertyX:
2478 case CSSPropertyY: 2478 case CSSPropertyY:
2479 case CSSPropertyR: 2479 case CSSPropertyR:
2480 case CSSPropertyRx: 2480 case CSSPropertyRx:
2481 case CSSPropertyRy: 2481 case CSSPropertyRy:
2482 return consumeLengthOrPercent(m_range, SVGAttributeMode, ValueRangeAll, UnitlessQuirk::Forbid); 2482 return consumeLengthOrPercent(m_range, SVGAttributeMode, ValueRangeAll, UnitlessQuirk::Forbid);
2483 case CSSPropertyCursor: 2483 case CSSPropertyCursor:
2484 return consumeCursor(m_range); 2484 return consumeCursor(m_range, m_context, inQuirksMode());
2485 case CSSPropertyContain: 2485 case CSSPropertyContain:
2486 return consumeContain(m_range); 2486 return consumeContain(m_range);
2487 case CSSPropertyTransformOrigin: 2487 case CSSPropertyTransformOrigin:
2488 return consumeTransformOrigin(m_range, m_context.mode(), UnitlessQuirk:: Forbid); 2488 return consumeTransformOrigin(m_range, m_context.mode(), UnitlessQuirk:: Forbid);
2489 default: 2489 default:
2490 return nullptr; 2490 return nullptr;
2491 } 2491 }
2492 } 2492 }
2493 2493
2494 static PassRefPtrWillBeRawPtr<CSSValueList> consumeFontFaceUnicodeRange(CSSParse rTokenRange& range) 2494 static PassRefPtrWillBeRawPtr<CSSValueList> consumeFontFaceUnicodeRange(CSSParse rTokenRange& range)
(...skipping 13 matching lines...) Expand all
2508 } while (consumeCommaIncludingWhitespace(range)); 2508 } while (consumeCommaIncludingWhitespace(range));
2509 2509
2510 return values.release(); 2510 return values.release();
2511 } 2511 }
2512 2512
2513 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::consumeFontFaceSrcURI() 2513 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::consumeFontFaceSrcURI()
2514 { 2514 {
2515 String url = consumeUrl(m_range); 2515 String url = consumeUrl(m_range);
2516 if (url.isNull()) 2516 if (url.isNull())
2517 return nullptr; 2517 return nullptr;
2518 RefPtrWillBeRawPtr<CSSFontFaceSrcValue> uriValue(CSSFontFaceSrcValue::create (completeURL(url), m_context.shouldCheckContentSecurityPolicy())); 2518 RefPtrWillBeRawPtr<CSSFontFaceSrcValue> uriValue(CSSFontFaceSrcValue::create (m_context.completeURL(url), m_context.shouldCheckContentSecurityPolicy()));
2519 uriValue->setReferrer(m_context.referrer()); 2519 uriValue->setReferrer(m_context.referrer());
2520 2520
2521 if (m_range.peek().functionId() != CSSValueFormat) 2521 if (m_range.peek().functionId() != CSSValueFormat)
2522 return uriValue.release(); 2522 return uriValue.release();
2523 2523
2524 // FIXME: https://drafts.csswg.org/css-fonts says that format() contains a c omma-separated list of strings, 2524 // FIXME: https://drafts.csswg.org/css-fonts says that format() contains a c omma-separated list of strings,
2525 // but CSSFontFaceSrcValue stores only one format. Allowing one format for n ow. 2525 // but CSSFontFaceSrcValue stores only one format. Allowing one format for n ow.
2526 // FIXME: IdentToken should not be supported here. 2526 // FIXME: IdentToken should not be supported here.
2527 CSSParserTokenRange args = consumeFunction(m_range); 2527 CSSParserTokenRange args = consumeFunction(m_range);
2528 const CSSParserToken& arg = args.consumeIncludingWhitespace(); 2528 const CSSParserToken& arg = args.consumeIncludingWhitespace();
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
3076 return consumeShorthandGreedily(flexFlowShorthand(), important); 3076 return consumeShorthandGreedily(flexFlowShorthand(), important);
3077 case CSSPropertyWebkitColumnRule: 3077 case CSSPropertyWebkitColumnRule:
3078 return consumeShorthandGreedily(webkitColumnRuleShorthand(), important); 3078 return consumeShorthandGreedily(webkitColumnRuleShorthand(), important);
3079 default: 3079 default:
3080 m_currentShorthand = oldShorthand; 3080 m_currentShorthand = oldShorthand;
3081 return false; 3081 return false;
3082 } 3082 }
3083 } 3083 }
3084 3084
3085 } // namespace blink 3085 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698