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

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 a24decec24925695d49b25ac27c593aa88be7005..ffd0c7bee94651884f245ef0fc2935621fe1714b 100644
--- a/Source/modules/imagebitmap/ImageBitmapFactories.cpp
+++ b/Source/modules/imagebitmap/ImageBitmapFactories.cpp
@@ -71,9 +71,10 @@ static ScriptPromise fulfillImageBitmap(ExecutionContext* context, PassRefPtr<Im
{
// Promises must be enabled.
ASSERT(RuntimeEnabledFeatures::promiseEnabled());
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(context);
- resolver->fulfill(imageBitmap);
- return resolver->promise();
+ ScriptPromise promise = ScriptPromise::createPending(context);
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, context);
+ resolver->resolve(imageBitmap);
+ return promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, HTMLImageElement* image, ExceptionState& es)
@@ -204,11 +205,12 @@ ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
es.throwUninformativeAndGenericDOMException(TypeError);
return ScriptPromise();
}
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->executionContext());
+ ScriptPromise promise = ScriptPromise::createPending(eventTarget->executionContext());
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, eventTarget->executionContext());
RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::create(from(eventTarget), resolver, IntRect());
from(eventTarget)->addLoader(loader);
loader->loadBlobAsync(eventTarget->executionContext(), blob);
- return resolver->promise();
+ return promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es)
@@ -224,11 +226,12 @@ ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
es.throwUninformativeAndGenericDOMException(IndexSizeError);
return ScriptPromise();
}
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(eventTarget->executionContext());
+ ScriptPromise promise = ScriptPromise::createPending(eventTarget->executionContext());
+ RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promise, eventTarget->executionContext());
RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::create(from(eventTarget), resolver, IntRect(sx, sy, sw, sh));
from(eventTarget)->addLoader(loader);
loader->loadBlobAsync(eventTarget->executionContext(), blob);
- return resolver->promise();
+ return promise;
}
ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget, ImageData* data, ExceptionState& es)
@@ -355,7 +358,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