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 |