| Index: sky/engine/core/html/canvas/CanvasRenderingContext2D.cpp
|
| diff --git a/sky/engine/core/html/canvas/CanvasRenderingContext2D.cpp b/sky/engine/core/html/canvas/CanvasRenderingContext2D.cpp
|
| index 278b53257f37a5660ee7e308c5c049ef11f4b174..b444e4801811477e1d1ebf4965f46878536fb796 100644
|
| --- a/sky/engine/core/html/canvas/CanvasRenderingContext2D.cpp
|
| +++ b/sky/engine/core/html/canvas/CanvasRenderingContext2D.cpp
|
| @@ -34,9 +34,9 @@
|
| #include "sky/engine/core/html/canvas/CanvasRenderingContext2D.h"
|
|
|
| #include "gen/sky/core/CSSPropertyNames.h"
|
| -#include "sky/engine/bindings/core/v8/ExceptionMessages.h"
|
| -#include "sky/engine/bindings/core/v8/ExceptionState.h"
|
| -#include "sky/engine/bindings/core/v8/ExceptionStatePlaceholder.h"
|
| +#include "sky/engine/bindings2/exception_messages.h"
|
| +#include "sky/engine/bindings2/exception_state.h"
|
| +#include "sky/engine/bindings2/exception_state_placeholder.h"
|
| #include "sky/engine/core/css/CSSFontSelector.h"
|
| #include "sky/engine/core/css/StylePropertySet.h"
|
| #include "sky/engine/core/css/parser/BisonCSSParser.h"
|
| @@ -786,6 +786,11 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
|
| transform(m11, m12, m21, m22, dx, dy);
|
| }
|
|
|
| +String CanvasRenderingContext2D::strokeColor()
|
| +{
|
| + return strokeStyle()->color();
|
| +}
|
| +
|
| void CanvasRenderingContext2D::setStrokeColor(const String& color)
|
| {
|
| if (color == state().m_unparsedStrokeColor)
|
| @@ -828,6 +833,11 @@ void CanvasRenderingContext2D::setStrokeColor(float c, float m, float y, float k
|
| setStrokeStyle(CanvasStyle::createFromCMYKAChannels(c, m, y, k, a));
|
| }
|
|
|
| +String CanvasRenderingContext2D::fillColor()
|
| +{
|
| + return fillStyle()->color();
|
| +}
|
| +
|
| void CanvasRenderingContext2D::setFillColor(const String& color)
|
| {
|
| if (color == state().m_unparsedFillColor)
|
| @@ -1316,7 +1326,7 @@ void CanvasRenderingContext2D::drawImageInternal(CanvasImageSource* imageSource,
|
| SourceImageMode mode = canvas() == imageSource ? CopySourceImageIfVolatile : DontCopySourceImage; // Thunking for ==
|
| image = imageSource->getSourceImageForCanvas(mode, &sourceImageStatus);
|
| if (sourceImageStatus == UndecodableSourceImageStatus)
|
| - exceptionState.throwDOMException(InvalidStateError, "The HTMLImageElement provided is in the 'broken' state.");
|
| + exceptionState.ThrowDOMException(InvalidStateError, "The HTMLImageElement provided is in the 'broken' state.");
|
| if (!image || !image->width() || !image->height())
|
| return;
|
| }
|
| @@ -1407,7 +1417,7 @@ PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createLinearGradient(float
|
| PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState& exceptionState)
|
| {
|
| if (r0 < 0 || r1 < 0) {
|
| - exceptionState.throwDOMException(IndexSizeError, String::format("The %s provided is less than 0.", r0 < 0 ? "r0" : "r1"));
|
| + exceptionState.ThrowDOMException(IndexSizeError, String::format("The %s provided is less than 0.", r0 < 0 ? "r0" : "r1"));
|
| return nullptr;
|
| }
|
|
|
| @@ -1419,7 +1429,7 @@ PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(CanvasImageSou
|
| const String& repetitionType, ExceptionState& exceptionState)
|
| {
|
| Pattern::RepeatMode repeatMode = CanvasPattern::parseRepetitionType(repetitionType, exceptionState);
|
| - if (exceptionState.hadException())
|
| + if (exceptionState.had_exception())
|
| return nullptr;
|
|
|
| SourceImageStatus status;
|
| @@ -1429,10 +1439,10 @@ PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(CanvasImageSou
|
| case NormalSourceImageStatus:
|
| break;
|
| case ZeroSizeCanvasSourceImageStatus:
|
| - exceptionState.throwDOMException(InvalidStateError, String::format("The canvas %s is 0.", imageSource->sourceSize().width() ? "height" : "width"));
|
| + exceptionState.ThrowDOMException(InvalidStateError, String::format("The canvas %s is 0.", imageSource->sourceSize().width() ? "height" : "width"));
|
| return nullptr;
|
| case UndecodableSourceImageStatus:
|
| - exceptionState.throwDOMException(InvalidStateError, "Source image is in the 'broken' state.");
|
| + exceptionState.ThrowDOMException(InvalidStateError, "Source image is in the 'broken' state.");
|
| return nullptr;
|
| case InvalidSourceImageStatus:
|
| imageForRendering = Image::nullImage();
|
| @@ -1511,7 +1521,7 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<Image
|
| PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionState& exceptionState) const
|
| {
|
| if (!sw || !sh) {
|
| - exceptionState.throwDOMException(IndexSizeError, String::format("The source %s is 0.", sw ? "height" : "width"));
|
| + exceptionState.ThrowDOMException(IndexSizeError, String::format("The source %s is 0.", sw ? "height" : "width"));
|
| return nullptr;
|
| }
|
|
|
| @@ -1531,9 +1541,9 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float
|
| PassRefPtr<ImageData> CanvasRenderingContext2D::getImageData(float sx, float sy, float sw, float sh, ExceptionState& exceptionState) const
|
| {
|
| if (!sw || !sh)
|
| - exceptionState.throwDOMException(IndexSizeError, String::format("The source %s is 0.", sw ? "height" : "width"));
|
| + exceptionState.ThrowDOMException(IndexSizeError, String::format("The source %s is 0.", sw ? "height" : "width"));
|
|
|
| - if (exceptionState.hadException())
|
| + if (exceptionState.had_exception())
|
| return nullptr;
|
|
|
| if (sw < 0) {
|
| @@ -2123,22 +2133,9 @@ void CanvasRenderingContext2D::drawFocusRing(const Path& path)
|
|
|
| void CanvasRenderingContext2D::addHitRegion(ExceptionState& exceptionState)
|
| {
|
| - addHitRegion(Dictionary(), exceptionState);
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::addHitRegion(const Dictionary& options, ExceptionState& exceptionState)
|
| -{
|
| HitRegionOptions passOptions;
|
|
|
| - options.getWithUndefinedOrNullCheck("id", passOptions.id);
|
| - options.getWithUndefinedOrNullCheck("control", passOptions.control);
|
| - if (passOptions.id.isEmpty() && !passOptions.control) {
|
| - exceptionState.throwDOMException(NotSupportedError, "Both id and control are null.");
|
| - return;
|
| - }
|
| -
|
| RefPtr<Path2D> path2d;
|
| - options.getWithUndefinedOrNullCheck("path", path2d);
|
| Path hitRegionPath = path2d ? path2d->path() : m_path;
|
|
|
| FloatRect clipBounds;
|
| @@ -2146,7 +2143,7 @@ void CanvasRenderingContext2D::addHitRegion(const Dictionary& options, Exception
|
|
|
| if (hitRegionPath.isEmpty() || !context || !state().m_invertibleCTM
|
| || !context->getTransformedClipBounds(&clipBounds)) {
|
| - exceptionState.throwDOMException(NotSupportedError, "The specified path has no pixels.");
|
| + exceptionState.ThrowDOMException(NotSupportedError, "The specified path has no pixels.");
|
| return;
|
| }
|
|
|
| @@ -2156,18 +2153,14 @@ void CanvasRenderingContext2D::addHitRegion(const Dictionary& options, Exception
|
| // FIXME: The hit regions should take clipping region into account.
|
| // However, we have no way to get the region from canvas state stack by now.
|
| // See http://crbug.com/387057
|
| - exceptionState.throwDOMException(NotSupportedError, "The specified path has no pixels.");
|
| + exceptionState.ThrowDOMException(NotSupportedError, "The specified path has no pixels.");
|
| return;
|
| }
|
|
|
| passOptions.path = hitRegionPath;
|
|
|
| - String fillRuleString;
|
| - options.getWithUndefinedOrNullCheck("fillRule", fillRuleString);
|
| - if (fillRuleString.isEmpty() || fillRuleString != "evenodd")
|
| - passOptions.fillRule = RULE_NONZERO;
|
| - else
|
| - passOptions.fillRule = RULE_EVENODD;
|
| + // FIXME(Dictionary): Way to specify fillRule
|
| + passOptions.fillRule = RULE_NONZERO;
|
|
|
| addHitRegionInternal(passOptions, exceptionState);
|
| }
|
|
|