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

Unified Diff: Source/modules/imagebitmap/ImageBitmapFactories.cpp

Issue 26004002: Decouple ScriptPromise creation from ScriptPromiseResolver. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 7 years, 2 months 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/imagebitmap/ImageBitmapFactories.cpp
diff --git a/Source/modules/imagebitmap/ImageBitmapFactories.cpp b/Source/modules/imagebitmap/ImageBitmapFactories.cpp
index 4b00ef8923146393ef42afc1fb809a91052161c7..776d686ba627ec794fcd7c6ab1e2b2ca26ed7b9b 100644
--- a/Source/modules/imagebitmap/ImageBitmapFactories.cpp
+++ b/Source/modules/imagebitmap/ImageBitmapFactories.cpp
@@ -44,10 +44,10 @@
#include "core/html/canvas/CanvasRenderingContext2D.h"
#include "core/page/DOMWindow.h"
#include "core/page/ImageBitmap.h"
-#include "platform/SharedBuffer.h"
#include "core/platform/graphics/BitmapImage.h"
#include "core/platform/graphics/ImageSource.h"
#include "core/platform/graphics/skia/NativeImageSkia.h"
+#include "platform/SharedBuffer.h"
namespace WebCore {
@@ -69,9 +69,10 @@ static ScriptPromise fulfillImageBitmap(ScriptExecutionContext* context, PassRef
{
// Promises must be enabled.
ASSERT(RuntimeEnabledFeatures::promiseEnabled());
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(context);
- resolver->fulfill(imageBitmap);
- return resolver->promise();
+ ScriptPromise promise = ScriptPromise::create(context);
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, context);
+ resolver->resolve(imageBitmap);
+ return promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, ExceptionState& es)
@@ -202,11 +203,12 @@ ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
es.throwUninformativeAndGenericDOMException(TypeError);
return ScriptPromise();
}
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext());
+ ScriptPromise promise = ScriptPromise::create(eventTarget->scriptExecutionContext());
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, 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 promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es)
@@ -222,11 +224,12 @@ ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
es.throwUninformativeAndGenericDOMException(IndexSizeError);
return ScriptPromise();
}
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->scriptExecutionContext());
+ ScriptPromise promise = ScriptPromise::create(eventTarget->scriptExecutionContext());
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, 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 promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, ExceptionState& es)
@@ -353,7 +356,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->resolve(imageBitmap.release());
m_factory->didFinishLoading(this);
}

Powered by Google App Engine
This is Rietveld 408576698