| Index: third_party/WebKit/Source/modules/canvas2d/CanvasStyle.cpp
|
| diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasStyle.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasStyle.cpp
|
| index d7f716a57c61e533a4dc748e27aba1a225947de6..6118e179ed6483edab7b2e6351ed4685997d02f9 100644
|
| --- a/third_party/WebKit/Source/modules/canvas2d/CanvasStyle.cpp
|
| +++ b/third_party/WebKit/Source/modules/canvas2d/CanvasStyle.cpp
|
| @@ -40,36 +40,36 @@ namespace blink {
|
|
|
| enum ColorParseResult { ParsedRGBA, ParsedCurrentColor, ParsedSystemColor, ParseFailed };
|
|
|
| -static ColorParseResult parseColor(Color& parsedColor, const String& colorString)
|
| +static ColorParseResult parseColor(Color& parsedColor, const String& colorString, CSSValuePool* localCssValuePool)
|
| {
|
| if (equalIgnoringCase(colorString, "currentcolor"))
|
| return ParsedCurrentColor;
|
| const bool useStrictParsing = true;
|
| - if (CSSParser::parseColor(parsedColor, colorString, useStrictParsing))
|
| + if (CSSParser::parseColor(parsedColor, colorString, localCssValuePool, useStrictParsing))
|
| return ParsedRGBA;
|
| if (CSSParser::parseSystemColor(parsedColor, colorString))
|
| return ParsedSystemColor;
|
| return ParseFailed;
|
| }
|
|
|
| -static Color currentColor(HTMLCanvasElement* canvas)
|
| +static Color currentColor(HTMLCanvasElement* canvas, CSSValuePool* localCssValuePool)
|
| {
|
| - if (!canvas || !canvas->inDocument() || !canvas->inlineStyle())
|
| + if (!localCssValuePool && (!canvas || !canvas->inDocument() || !canvas->inlineStyle()))
|
| return Color::black;
|
| Color color = Color::black;
|
| - CSSParser::parseColor(color, canvas->inlineStyle()->getPropertyValue(CSSPropertyColor));
|
| + CSSParser::parseColor(color, canvas->inlineStyle()->getPropertyValue(CSSPropertyColor), localCssValuePool);
|
| return color;
|
| }
|
|
|
| -bool parseColorOrCurrentColor(Color& parsedColor, const String& colorString, HTMLCanvasElement* canvas)
|
| +bool parseColorOrCurrentColor(Color& parsedColor, const String& colorString, HTMLCanvasElement* canvas, CSSValuePool* localCssValuePool)
|
| {
|
| - ColorParseResult parseResult = parseColor(parsedColor, colorString);
|
| + ColorParseResult parseResult = parseColor(parsedColor, colorString, localCssValuePool);
|
| switch (parseResult) {
|
| case ParsedRGBA:
|
| case ParsedSystemColor:
|
| return true;
|
| case ParsedCurrentColor:
|
| - parsedColor = canvas ? currentColor(canvas) : Color::black;
|
| + parsedColor = currentColor(canvas, localCssValuePool);
|
| return true;
|
| case ParseFailed:
|
| return false;
|
|
|