Index: Source/modules/imagebitmap/ImageBitmapFactories.cpp |
diff --git a/Source/modules/imagebitmap/ImageBitmapFactories.cpp b/Source/modules/imagebitmap/ImageBitmapFactories.cpp |
index d7d94bfe1f49202cb0cfdaa568f222293f1c4c5a..b84d5d8d702069f2abc5c2787bfdf8257e2a3c8c 100644 |
--- a/Source/modules/imagebitmap/ImageBitmapFactories.cpp |
+++ b/Source/modules/imagebitmap/ImageBitmapFactories.cpp |
@@ -64,203 +64,203 @@ static IntSize sizeFor(HTMLVideoElement* video) |
return IntSize(); |
} |
-static ScriptObject fulfillImageBitmap(ScriptExecutionContext* context, PassRefPtr<ImageBitmap> imageBitmap) |
+static ScriptPromise fulfillImageBitmap(ScriptExecutionContext* context, PassRefPtr<ImageBitmap> imageBitmap) |
{ |
// Promises must be enabled. |
ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(context); |
- resolver->fulfill(imageBitmap); |
- return resolver->promise(); |
+ ScriptPromiseResolver resolver = ScriptPromiseResolver::create(context); |
+ resolver.fulfill(imageBitmap); |
+ return resolver.promise(); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, ExceptionState& es) |
{ |
LayoutSize s = sizeFor(image); |
return createImageBitmap(eventTarget, image, 0, 0, s.width(), s.height(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
// This variant does not work in worker threads. |
ASSERT(eventTarget->toDOMWindow()); |
if (!image) { |
es.throwTypeError(); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!image->cachedImage()) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (image->cachedImage()->image()->isSVGImage()) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!image->cachedImage()->image()->hasSingleSecurityOrigin()) { |
es.throwDOMException(SecurityError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!image->cachedImage()->passesAccessControlCheck(eventTarget->toDOMWindow()->document()->securityOrigin()) |
&& eventTarget->toDOMWindow()->document()->securityOrigin()->taintsCanvas(image->src())) { |
es.throwDOMException(SecurityError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
// FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
return fulfillImageBitmap(eventTarget->scriptExecutionContext(), ImageBitmap::create(image, IntRect(sx, sy, sw, sh))); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLVideoElement* video, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLVideoElement* video, ExceptionState& es) |
{ |
IntSize s = sizeFor(video); |
return createImageBitmap(eventTarget, video, 0, 0, s.width(), s.height(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLVideoElement* video, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLVideoElement* video, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
// This variant does not work in worker threads. |
ASSERT(eventTarget->toDOMWindow()); |
if (!video) { |
es.throwTypeError(); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!video->player()) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (video->networkState() == HTMLMediaElement::NETWORK_EMPTY) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (video->player()->readyState() <= MediaPlayer::HaveMetadata) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!video->hasSingleSecurityOrigin()) { |
es.throwDOMException(SecurityError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!video->player()->didPassCORSAccessCheck() && eventTarget->toDOMWindow()->document()->securityOrigin()->taintsCanvas(video->currentSrc())) { |
es.throwDOMException(SecurityError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
// FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
return fulfillImageBitmap(eventTarget->scriptExecutionContext(), ImageBitmap::create(video, IntRect(sx, sy, sw, sh))); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, CanvasRenderingContext2D* context, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, CanvasRenderingContext2D* context, ExceptionState& es) |
{ |
return createImageBitmap(eventTarget, context->canvas(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, CanvasRenderingContext2D* context, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, CanvasRenderingContext2D* context, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
return createImageBitmap(eventTarget, context->canvas(), sx, sy, sw, sh, es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLCanvasElement* canvas, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLCanvasElement* canvas, ExceptionState& es) |
{ |
return createImageBitmap(eventTarget, canvas, 0, 0, canvas->width(), canvas->height(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLCanvasElement* canvas, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLCanvasElement* canvas, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
// This variant does not work in worker threads. |
ASSERT(eventTarget->toDOMWindow()); |
if (!canvas) { |
es.throwTypeError(); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!canvas->originClean()) { |
es.throwDOMException(InvalidStateError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
// FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
return fulfillImageBitmap(eventTarget->scriptExecutionContext(), ImageBitmap::create(canvas, IntRect(sx, sy, sw, sh))); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, ExceptionState& es) |
{ |
// Promises must be enabled. |
ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
if (!blob) { |
es.throwDOMException(TypeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext()); |
+ ScriptPromiseResolver resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext()); |
RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::create(from(eventTarget), resolver, IntRect()); |
from(eventTarget)->addLoader(loader); |
loader->loadBlobAsync(eventTarget->scriptExecutionContext(), blob); |
- return resolver->promise(); |
+ return resolver.promise(); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
// Promises must be enabled. |
ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
if (!blob) { |
es.throwDOMException(TypeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext()); |
+ ScriptPromiseResolver resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext()); |
RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::create(from(eventTarget), resolver, IntRect(sx, sy, sw, sh)); |
from(eventTarget)->addLoader(loader); |
loader->loadBlobAsync(eventTarget->scriptExecutionContext(), blob); |
- return resolver->promise(); |
+ return resolver.promise(); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, ExceptionState& es) |
{ |
return createImageBitmap(eventTarget, data, 0, 0, data->width(), data->height(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
if (!data) { |
es.throwTypeError(); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
// FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
return fulfillImageBitmap(eventTarget->scriptExecutionContext(), ImageBitmap::create(data, IntRect(sx, sy, sw, sh))); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageBitmap* bitmap, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageBitmap* bitmap, ExceptionState& es) |
{ |
return createImageBitmap(eventTarget, bitmap, 0, 0, bitmap->width(), bitmap->height(), es); |
} |
-ScriptObject ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageBitmap* bitmap, int sx, int sy, int sw, int sh, ExceptionState& es) |
+ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageBitmap* bitmap, int sx, int sy, int sw, int sh, ExceptionState& es) |
{ |
if (!bitmap) { |
es.throwTypeError(); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
if (!sw || !sh) { |
es.throwDOMException(IndexSizeError); |
- return ScriptObject(); |
+ return ScriptPromise(); |
} |
// FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
return fulfillImageBitmap(eventTarget->scriptExecutionContext(), ImageBitmap::create(bitmap, IntRect(sx, sy, sw, sh))); |
@@ -302,7 +302,7 @@ void ImageBitmapFactories::didFinishLoading(ImageBitmapLoader* loader) |
m_pendingLoaders.remove(loader); |
} |
-ImageBitmapFactories::ImageBitmapLoader::ImageBitmapLoader(ImageBitmapFactories* factory, PassRefPtr<ScriptPromiseResolver> resolver, const IntRect& cropRect) |
+ImageBitmapFactories::ImageBitmapLoader::ImageBitmapLoader(ImageBitmapFactories* factory, ScriptPromiseResolver resolver, const IntRect& cropRect) |
: m_loader(FileReaderLoader::ReadAsArrayBuffer, this) |
, m_scriptState(ScriptState::current()) |
, m_factory(factory) |
@@ -319,7 +319,7 @@ void ImageBitmapFactories::ImageBitmapLoader::loadBlobAsync(ScriptExecutionConte |
void ImageBitmapFactories::ImageBitmapLoader::rejectPromise() |
{ |
ScriptScope scope(m_scriptState); |
- m_resolver->reject(ScriptValue::createNull()); |
+ m_resolver.reject(ScriptValue::createNull()); |
m_factory->didFinishLoading(this); |
} |
@@ -351,7 +351,7 @@ void ImageBitmapFactories::ImageBitmapLoader::didFinishLoading() |
RefPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(), m_cropRect); |
ScriptScope scope(m_scriptState); |
- m_resolver->fulfill(imageBitmap.release()); |
+ m_resolver.fulfill(imageBitmap.release()); |
m_factory->didFinishLoading(this); |
} |