| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 { | 64 { |
| 65 if (MediaPlayer* player = video->player()) | 65 if (MediaPlayer* player = video->player()) |
| 66 return player->naturalSize(); | 66 return player->naturalSize(); |
| 67 return IntSize(); | 67 return IntSize(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 static ScriptPromise fulfillImageBitmap(ExecutionContext* context, PassRefPtr<Im
ageBitmap> imageBitmap) | 70 static ScriptPromise fulfillImageBitmap(ExecutionContext* context, PassRefPtr<Im
ageBitmap> imageBitmap) |
| 71 { | 71 { |
| 72 // Promises must be enabled. | 72 // Promises must be enabled. |
| 73 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); | 73 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
| 74 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(conte
xt); | 74 ScriptPromise promise = ScriptPromise::createPending(context); |
| 75 resolver->fulfill(imageBitmap); | 75 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promi
se, context); |
| 76 return resolver->promise(); | 76 resolver->resolve(imageBitmap); |
| 77 return promise; |
| 77 } | 78 } |
| 78 | 79 |
| 79 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
HTMLImageElement* image, ExceptionState& es) | 80 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
HTMLImageElement* image, ExceptionState& es) |
| 80 { | 81 { |
| 81 LayoutSize s = sizeFor(image); | 82 LayoutSize s = sizeFor(image); |
| 82 return createImageBitmap(eventTarget, image, 0, 0, s.width(), s.height(), es
); | 83 return createImageBitmap(eventTarget, image, 0, 0, s.width(), s.height(), es
); |
| 83 } | 84 } |
| 84 | 85 |
| 85 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
HTMLImageElement* image, int sx, int sy, int sw, int sh, ExceptionState& es) | 86 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
HTMLImageElement* image, int sx, int sy, int sw, int sh, ExceptionState& es) |
| 86 { | 87 { |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 | 198 |
| 198 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
Blob* blob, ExceptionState& es) | 199 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
Blob* blob, ExceptionState& es) |
| 199 { | 200 { |
| 200 // Promises must be enabled. | 201 // Promises must be enabled. |
| 201 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); | 202 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
| 202 | 203 |
| 203 if (!blob) { | 204 if (!blob) { |
| 204 es.throwUninformativeAndGenericDOMException(TypeError); | 205 es.throwUninformativeAndGenericDOMException(TypeError); |
| 205 return ScriptPromise(); | 206 return ScriptPromise(); |
| 206 } | 207 } |
| 207 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(event
Target->executionContext()); | 208 ScriptPromise promise = ScriptPromise::createPending(eventTarget->executionC
ontext()); |
| 209 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promi
se, eventTarget->executionContext()); |
| 208 RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::
create(from(eventTarget), resolver, IntRect()); | 210 RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::
create(from(eventTarget), resolver, IntRect()); |
| 209 from(eventTarget)->addLoader(loader); | 211 from(eventTarget)->addLoader(loader); |
| 210 loader->loadBlobAsync(eventTarget->executionContext(), blob); | 212 loader->loadBlobAsync(eventTarget->executionContext(), blob); |
| 211 return resolver->promise(); | 213 return promise; |
| 212 } | 214 } |
| 213 | 215 |
| 214 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es) | 216 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
Blob* blob, int sx, int sy, int sw, int sh, ExceptionState& es) |
| 215 { | 217 { |
| 216 // Promises must be enabled. | 218 // Promises must be enabled. |
| 217 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); | 219 ASSERT(RuntimeEnabledFeatures::promiseEnabled()); |
| 218 | 220 |
| 219 if (!blob) { | 221 if (!blob) { |
| 220 es.throwUninformativeAndGenericDOMException(TypeError); | 222 es.throwUninformativeAndGenericDOMException(TypeError); |
| 221 return ScriptPromise(); | 223 return ScriptPromise(); |
| 222 } | 224 } |
| 223 if (!sw || !sh) { | 225 if (!sw || !sh) { |
| 224 es.throwUninformativeAndGenericDOMException(IndexSizeError); | 226 es.throwUninformativeAndGenericDOMException(IndexSizeError); |
| 225 return ScriptPromise(); | 227 return ScriptPromise(); |
| 226 } | 228 } |
| 227 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(event
Target->executionContext()); | 229 ScriptPromise promise = ScriptPromise::createPending(eventTarget->executionC
ontext()); |
| 230 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(promi
se, eventTarget->executionContext()); |
| 228 RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::
create(from(eventTarget), resolver, IntRect(sx, sy, sw, sh)); | 231 RefPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBitmapLoader::
create(from(eventTarget), resolver, IntRect(sx, sy, sw, sh)); |
| 229 from(eventTarget)->addLoader(loader); | 232 from(eventTarget)->addLoader(loader); |
| 230 loader->loadBlobAsync(eventTarget->executionContext(), blob); | 233 loader->loadBlobAsync(eventTarget->executionContext(), blob); |
| 231 return resolver->promise(); | 234 return promise; |
| 232 } | 235 } |
| 233 | 236 |
| 234 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
ImageData* data, ExceptionState& es) | 237 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
ImageData* data, ExceptionState& es) |
| 235 { | 238 { |
| 236 return createImageBitmap(eventTarget, data, 0, 0, data->width(), data->heigh
t(), es); | 239 return createImageBitmap(eventTarget, data, 0, 0, data->width(), data->heigh
t(), es); |
| 237 } | 240 } |
| 238 | 241 |
| 239 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
ImageData* data, int sx, int sy, int sw, int sh, ExceptionState& es) | 242 ScriptPromise ImageBitmapFactories::createImageBitmap(EventTarget* eventTarget,
ImageData* data, int sx, int sy, int sw, int sh, ExceptionState& es) |
| 240 { | 243 { |
| 241 if (!data) { | 244 if (!data) { |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 rejectPromise(); | 351 rejectPromise(); |
| 349 return; | 352 return; |
| 350 } | 353 } |
| 351 if (!m_cropRect.width() && !m_cropRect.height()) { | 354 if (!m_cropRect.width() && !m_cropRect.height()) { |
| 352 // No cropping variant was called. | 355 // No cropping variant was called. |
| 353 m_cropRect = IntRect(IntPoint(), image->size()); | 356 m_cropRect = IntRect(IntPoint(), image->size()); |
| 354 } | 357 } |
| 355 | 358 |
| 356 RefPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(), m_cropRec
t); | 359 RefPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(), m_cropRec
t); |
| 357 ScriptScope scope(m_scriptState); | 360 ScriptScope scope(m_scriptState); |
| 358 m_resolver->fulfill(imageBitmap.release()); | 361 m_resolver->resolve(imageBitmap.release()); |
| 359 m_factory->didFinishLoading(this); | 362 m_factory->didFinishLoading(this); |
| 360 } | 363 } |
| 361 | 364 |
| 362 void ImageBitmapFactories::ImageBitmapLoader::didFail(FileError::ErrorCode) | 365 void ImageBitmapFactories::ImageBitmapLoader::didFail(FileError::ErrorCode) |
| 363 { | 366 { |
| 364 rejectPromise(); | 367 rejectPromise(); |
| 365 } | 368 } |
| 366 | 369 |
| 367 } // namespace WebCore | 370 } // namespace WebCore |
| OLD | NEW |