| 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 1797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1808 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | | 1808 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | |
| 1809 // ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | tex
t | wait | help | | 1809 // ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | tex
t | wait | help | |
| 1810 // vertical-text | cell | context-menu | alias | copy | no-drop | not-al
lowed | -webkit-zoom-in | 1810 // vertical-text | cell | context-menu | alias | copy | no-drop | not-al
lowed | -webkit-zoom-in |
| 1811 // -webkit-zoom-out | all-scroll | -webkit-grab | -webkit-grabbing ] ] |
inherit | 1811 // -webkit-zoom-out | all-scroll | -webkit-grab | -webkit-grabbing ] ] |
inherit |
| 1812 RefPtrWillBeRawPtr<CSSValueList> list; | 1812 RefPtrWillBeRawPtr<CSSValueList> list; |
| 1813 while (value) { | 1813 while (value) { |
| 1814 RefPtrWillBeRawPtr<CSSValue> image = nullptr; | 1814 RefPtrWillBeRawPtr<CSSValue> image = nullptr; |
| 1815 if (value->unit == CSSPrimitiveValue::CSS_URI) { | 1815 if (value->unit == CSSPrimitiveValue::CSS_URI) { |
| 1816 String uri = value->string; | 1816 String uri = value->string; |
| 1817 if (!uri.isNull()) | 1817 if (!uri.isNull()) |
| 1818 image = CSSImageValue::create(completeURL(uri)); | 1818 image = CSSImageValue::create(uri, completeURL(uri)); |
| 1819 } else if (value->unit == CSSParserValue::Function && equalIgnoringC
ase(value->function->name, "-webkit-image-set(")) { | 1819 } else if (value->unit == CSSParserValue::Function && equalIgnoringC
ase(value->function->name, "-webkit-image-set(")) { |
| 1820 image = parseImageSet(m_valueList.get()); | 1820 image = parseImageSet(m_valueList.get()); |
| 1821 if (!image) | 1821 if (!image) |
| 1822 break; | 1822 break; |
| 1823 } else | 1823 } else |
| 1824 break; | 1824 break; |
| 1825 | 1825 |
| 1826 Vector<int> coords; | 1826 Vector<int> coords; |
| 1827 value = m_valueList->next(); | 1827 value = m_valueList->next(); |
| 1828 while (value && value->unit == CSSPrimitiveValue::CSS_NUMBER) { | 1828 while (value && value->unit == CSSPrimitiveValue::CSS_NUMBER) { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1924 } | 1924 } |
| 1925 case CSSPropertyObjectPosition: | 1925 case CSSPropertyObjectPosition: |
| 1926 return RuntimeEnabledFeatures::objectFitPositionEnabled() && parseObject
Position(important); | 1926 return RuntimeEnabledFeatures::objectFitPositionEnabled() && parseObject
Position(important); |
| 1927 case CSSPropertyListStyleImage: // <uri> | none | inherit | 1927 case CSSPropertyListStyleImage: // <uri> | none | inherit |
| 1928 case CSSPropertyBorderImageSource: | 1928 case CSSPropertyBorderImageSource: |
| 1929 case CSSPropertyWebkitMaskBoxImageSource: | 1929 case CSSPropertyWebkitMaskBoxImageSource: |
| 1930 if (id == CSSValueNone) { | 1930 if (id == CSSValueNone) { |
| 1931 parsedValue = cssValuePool().createIdentifierValue(CSSValueNone); | 1931 parsedValue = cssValuePool().createIdentifierValue(CSSValueNone); |
| 1932 m_valueList->next(); | 1932 m_valueList->next(); |
| 1933 } else if (value->unit == CSSPrimitiveValue::CSS_URI) { | 1933 } else if (value->unit == CSSPrimitiveValue::CSS_URI) { |
| 1934 parsedValue = CSSImageValue::create(completeURL(value->string)); | 1934 parsedValue = CSSImageValue::create(value->string, completeURL(value
->string)); |
| 1935 m_valueList->next(); | 1935 m_valueList->next(); |
| 1936 } else if (isGeneratedImageValue(value)) { | 1936 } else if (isGeneratedImageValue(value)) { |
| 1937 if (parseGeneratedImage(m_valueList.get(), parsedValue)) | 1937 if (parseGeneratedImage(m_valueList.get(), parsedValue)) |
| 1938 m_valueList->next(); | 1938 m_valueList->next(); |
| 1939 else | 1939 else |
| 1940 return false; | 1940 return false; |
| 1941 } | 1941 } |
| 1942 else if (value->unit == CSSParserValue::Function && equalIgnoringCase(va
lue->function->name, "-webkit-image-set(")) { | 1942 else if (value->unit == CSSParserValue::Function && equalIgnoringCase(va
lue->function->name, "-webkit-image-set(")) { |
| 1943 parsedValue = parseImageSet(m_valueList.get()); | 1943 parsedValue = parseImageSet(m_valueList.get()); |
| 1944 if (!parsedValue) | 1944 if (!parsedValue) |
| (...skipping 1491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3436 // in CSS 2.1 this got somewhat reduced: | 3436 // in CSS 2.1 this got somewhat reduced: |
| 3437 // [ <string> | attr(X) | open-quote | close-quote | no-open-quote | no-close-qu
ote ]+ | inherit | 3437 // [ <string> | attr(X) | open-quote | close-quote | no-open-quote | no-close-qu
ote ]+ | inherit |
| 3438 bool CSSPropertyParser::parseContent(CSSPropertyID propId, bool important) | 3438 bool CSSPropertyParser::parseContent(CSSPropertyID propId, bool important) |
| 3439 { | 3439 { |
| 3440 RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createCommaSeparated
(); | 3440 RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createCommaSeparated
(); |
| 3441 | 3441 |
| 3442 while (CSSParserValue* val = m_valueList->current()) { | 3442 while (CSSParserValue* val = m_valueList->current()) { |
| 3443 RefPtrWillBeRawPtr<CSSValue> parsedValue; | 3443 RefPtrWillBeRawPtr<CSSValue> parsedValue; |
| 3444 if (val->unit == CSSPrimitiveValue::CSS_URI) { | 3444 if (val->unit == CSSPrimitiveValue::CSS_URI) { |
| 3445 // url | 3445 // url |
| 3446 parsedValue = CSSImageValue::create(completeURL(val->string)); | 3446 parsedValue = CSSImageValue::create(val->string, completeURL(val->st
ring)); |
| 3447 } else if (val->unit == CSSParserValue::Function) { | 3447 } else if (val->unit == CSSParserValue::Function) { |
| 3448 // attr(X) | counter(X [,Y]) | counters(X, Y, [,Z]) | -webkit-gradie
nt(...) | 3448 // attr(X) | counter(X [,Y]) | counters(X, Y, [,Z]) | -webkit-gradie
nt(...) |
| 3449 CSSParserValueList* args = val->function->args.get(); | 3449 CSSParserValueList* args = val->function->args.get(); |
| 3450 if (!args) | 3450 if (!args) |
| 3451 return false; | 3451 return false; |
| 3452 if (equalIgnoringCase(val->function->name, "attr(")) { | 3452 if (equalIgnoringCase(val->function->name, "attr(")) { |
| 3453 parsedValue = parseAttr(args); | 3453 parsedValue = parseAttr(args); |
| 3454 if (!parsedValue) | 3454 if (!parsedValue) |
| 3455 return false; | 3455 return false; |
| 3456 } else if (equalIgnoringCase(val->function->name, "counter(")) { | 3456 } else if (equalIgnoringCase(val->function->name, "counter(")) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3540 return parseColor(); | 3540 return parseColor(); |
| 3541 } | 3541 } |
| 3542 | 3542 |
| 3543 bool CSSPropertyParser::parseFillImage(CSSParserValueList* valueList, RefPtrWill
BeRawPtr<CSSValue>& value) | 3543 bool CSSPropertyParser::parseFillImage(CSSParserValueList* valueList, RefPtrWill
BeRawPtr<CSSValue>& value) |
| 3544 { | 3544 { |
| 3545 if (valueList->current()->id == CSSValueNone) { | 3545 if (valueList->current()->id == CSSValueNone) { |
| 3546 value = cssValuePool().createIdentifierValue(CSSValueNone); | 3546 value = cssValuePool().createIdentifierValue(CSSValueNone); |
| 3547 return true; | 3547 return true; |
| 3548 } | 3548 } |
| 3549 if (valueList->current()->unit == CSSPrimitiveValue::CSS_URI) { | 3549 if (valueList->current()->unit == CSSPrimitiveValue::CSS_URI) { |
| 3550 value = CSSImageValue::create(completeURL(valueList->current()->string))
; | 3550 value = CSSImageValue::create(valueList->current()->string, completeURL(
valueList->current()->string)); |
| 3551 return true; | 3551 return true; |
| 3552 } | 3552 } |
| 3553 | 3553 |
| 3554 if (isGeneratedImageValue(valueList->current())) | 3554 if (isGeneratedImageValue(valueList->current())) |
| 3555 return parseGeneratedImage(valueList, value); | 3555 return parseGeneratedImage(valueList, value); |
| 3556 | 3556 |
| 3557 if (valueList->current()->unit == CSSParserValue::Function && equalIgnoringC
ase(valueList->current()->function->name, "-webkit-image-set(")) { | 3557 if (valueList->current()->unit == CSSParserValue::Function && equalIgnoringC
ase(valueList->current()->function->name, "-webkit-image-set(")) { |
| 3558 value = parseImageSet(m_valueList.get()); | 3558 value = parseImageSet(m_valueList.get()); |
| 3559 if (value) | 3559 if (value) |
| 3560 return true; | 3560 return true; |
| (...skipping 3490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7051 { | 7051 { |
| 7052 CSSPropertyParser::ShorthandScope scope(&parser, propId); | 7052 CSSPropertyParser::ShorthandScope scope(&parser, propId); |
| 7053 while (CSSParserValue* val = parser.m_valueList->current()) { | 7053 while (CSSParserValue* val = parser.m_valueList->current()) { |
| 7054 context.setCanAdvance(false); | 7054 context.setCanAdvance(false); |
| 7055 | 7055 |
| 7056 if (!context.canAdvance() && context.allowForwardSlashOperator() && isFo
rwardSlashOperator(val)) | 7056 if (!context.canAdvance() && context.allowForwardSlashOperator() && isFo
rwardSlashOperator(val)) |
| 7057 context.commitForwardSlashOperator(); | 7057 context.commitForwardSlashOperator(); |
| 7058 | 7058 |
| 7059 if (!context.canAdvance() && context.allowImage()) { | 7059 if (!context.canAdvance() && context.allowImage()) { |
| 7060 if (val->unit == CSSPrimitiveValue::CSS_URI) { | 7060 if (val->unit == CSSPrimitiveValue::CSS_URI) { |
| 7061 context.commitImage(CSSImageValue::create(parser.m_context.compl
eteURL(val->string))); | 7061 context.commitImage(CSSImageValue::create(val->string, parser.m_
context.completeURL(val->string))); |
| 7062 } else if (isGeneratedImageValue(val)) { | 7062 } else if (isGeneratedImageValue(val)) { |
| 7063 RefPtrWillBeRawPtr<CSSValue> value; | 7063 RefPtrWillBeRawPtr<CSSValue> value; |
| 7064 if (parser.parseGeneratedImage(parser.m_valueList.get(), value)) | 7064 if (parser.parseGeneratedImage(parser.m_valueList.get(), value)) |
| 7065 context.commitImage(value.release()); | 7065 context.commitImage(value.release()); |
| 7066 else | 7066 else |
| 7067 return false; | 7067 return false; |
| 7068 } else if (val->unit == CSSParserValue::Function && equalIgnoringCas
e(val->function->name, "-webkit-image-set(")) { | 7068 } else if (val->unit == CSSParserValue::Function && equalIgnoringCas
e(val->function->name, "-webkit-image-set(")) { |
| 7069 RefPtrWillBeRawPtr<CSSValue> value = parser.parseImageSet(parser
.m_valueList.get()); | 7069 RefPtrWillBeRawPtr<CSSValue> value = parser.parseImageSet(parser
.m_valueList.get()); |
| 7070 if (value) | 7070 if (value) |
| 7071 context.commitImage(value.release()); | 7071 context.commitImage(value.release()); |
| (...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8333 if (!functionArgs || !functionArgs->size() || !functionArgs->current()) | 8333 if (!functionArgs || !functionArgs->size() || !functionArgs->current()) |
| 8334 return nullptr; | 8334 return nullptr; |
| 8335 | 8335 |
| 8336 RefPtrWillBeRawPtr<CSSImageSetValue> imageSet = CSSImageSetValue::create(); | 8336 RefPtrWillBeRawPtr<CSSImageSetValue> imageSet = CSSImageSetValue::create(); |
| 8337 | 8337 |
| 8338 CSSParserValue* arg = functionArgs->current(); | 8338 CSSParserValue* arg = functionArgs->current(); |
| 8339 while (arg) { | 8339 while (arg) { |
| 8340 if (arg->unit != CSSPrimitiveValue::CSS_URI) | 8340 if (arg->unit != CSSPrimitiveValue::CSS_URI) |
| 8341 return nullptr; | 8341 return nullptr; |
| 8342 | 8342 |
| 8343 RefPtrWillBeRawPtr<CSSImageValue> image = CSSImageValue::create(complete
URL(arg->string)); | 8343 RefPtrWillBeRawPtr<CSSImageValue> image = CSSImageValue::create(arg->str
ing, completeURL(arg->string)); |
| 8344 imageSet->append(image); | 8344 imageSet->append(image); |
| 8345 | 8345 |
| 8346 arg = functionArgs->next(); | 8346 arg = functionArgs->next(); |
| 8347 if (!arg || arg->unit != CSSPrimitiveValue::CSS_DIMENSION) | 8347 if (!arg || arg->unit != CSSPrimitiveValue::CSS_DIMENSION) |
| 8348 return nullptr; | 8348 return nullptr; |
| 8349 | 8349 |
| 8350 double imageScaleFactor = 0; | 8350 double imageScaleFactor = 0; |
| 8351 const String& string = arg->string; | 8351 const String& string = arg->string; |
| 8352 unsigned length = string.length(); | 8352 unsigned length = string.length(); |
| 8353 if (!length) | 8353 if (!length) |
| (...skipping 1811 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10165 { | 10165 { |
| 10166 // The tokenizer checks for the construct of an+b. | 10166 // The tokenizer checks for the construct of an+b. |
| 10167 // However, since the {ident} rule precedes the {nth} rule, some of those | 10167 // However, since the {ident} rule precedes the {nth} rule, some of those |
| 10168 // tokens are identified as string literal. Furthermore we need to accept | 10168 // tokens are identified as string literal. Furthermore we need to accept |
| 10169 // "odd" and "even" which does not match to an+b. | 10169 // "odd" and "even" which does not match to an+b. |
| 10170 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 10170 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
| 10171 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 10171 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
| 10172 } | 10172 } |
| 10173 | 10173 |
| 10174 } | 10174 } |
| OLD | NEW |