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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 exceptionState.throwDOMException(IndexSizeError, String::format("The sou
rce %s provided is 0.", sw ? "height" : "width")); | 177 exceptionState.throwDOMException(IndexSizeError, String::format("The sou
rce %s provided is 0.", sw ? "height" : "width")); |
178 return ScriptPromise(); | 178 return ScriptPromise(); |
179 } | 179 } |
180 | 180 |
181 // FIXME: make ImageBitmap creation asynchronous crbug.com/258082 | 181 // FIXME: make ImageBitmap creation asynchronous crbug.com/258082 |
182 return fulfillImageBitmap(scriptState, canvas->buffer() ? ImageBitmap::creat
e(canvas, IntRect(sx, sy, sw, sh)) : nullptr); | 182 return fulfillImageBitmap(scriptState, canvas->buffer() ? ImageBitmap::creat
e(canvas, IntRect(sx, sy, sw, sh)) : nullptr); |
183 } | 183 } |
184 | 184 |
185 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, Blob* blob, ExceptionState& exceptionState) | 185 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, Blob* blob, ExceptionState& exceptionState) |
186 { | 186 { |
187 RefPtrWillBeRawPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBi
tmapLoader::create(from(eventTarget), IntRect(), scriptState); | 187 ImageBitmapLoader* loader = ImageBitmapFactories::ImageBitmapLoader::create(
from(eventTarget), IntRect(), scriptState); |
188 ScriptPromise promise = loader->promise(); | 188 ScriptPromise promise = loader->promise(); |
189 from(eventTarget).addLoader(loader); | 189 from(eventTarget).addLoader(loader); |
190 loader->loadBlobAsync(eventTarget.executionContext(), blob); | 190 loader->loadBlobAsync(eventTarget.executionContext(), blob); |
191 return promise; | 191 return promise; |
192 } | 192 } |
193 | 193 |
194 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionS
tate& exceptionState) | 194 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, Blob* blob, int sx, int sy, int sw, int sh, ExceptionS
tate& exceptionState) |
195 { | 195 { |
196 if (!sw || !sh) { | 196 if (!sw || !sh) { |
197 exceptionState.throwDOMException(IndexSizeError, String::format("The sou
rce %s provided is 0.", sw ? "height" : "width")); | 197 exceptionState.throwDOMException(IndexSizeError, String::format("The sou
rce %s provided is 0.", sw ? "height" : "width")); |
198 return ScriptPromise(); | 198 return ScriptPromise(); |
199 } | 199 } |
200 RefPtrWillBeRawPtr<ImageBitmapLoader> loader = ImageBitmapFactories::ImageBi
tmapLoader::create(from(eventTarget), IntRect(sx, sy, sw, sh), scriptState); | 200 ImageBitmapLoader* loader = ImageBitmapFactories::ImageBitmapLoader::create(
from(eventTarget), IntRect(sx, sy, sw, sh), scriptState); |
201 ScriptPromise promise = loader->promise(); | 201 ScriptPromise promise = loader->promise(); |
202 from(eventTarget).addLoader(loader); | 202 from(eventTarget).addLoader(loader); |
203 loader->loadBlobAsync(eventTarget.executionContext(), blob); | 203 loader->loadBlobAsync(eventTarget.executionContext(), blob); |
204 return promise; | 204 return promise; |
205 } | 205 } |
206 | 206 |
207 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, ImageData* data, ExceptionState& exceptionState) | 207 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState,
EventTarget& eventTarget, ImageData* data, ExceptionState& exceptionState) |
208 { | 208 { |
209 return createImageBitmap(scriptState, eventTarget, data, 0, 0, data->width()
, data->height(), exceptionState); | 209 return createImageBitmap(scriptState, eventTarget, data, 0, 0, data->width()
, data->height(), exceptionState); |
210 } | 210 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 ImageBitmapFactories& ImageBitmapFactories::fromInternal(GlobalObject& object) | 252 ImageBitmapFactories& ImageBitmapFactories::fromInternal(GlobalObject& object) |
253 { | 253 { |
254 ImageBitmapFactories* supplement = static_cast<ImageBitmapFactories*>(WillBe
HeapSupplement<GlobalObject>::from(object, supplementName())); | 254 ImageBitmapFactories* supplement = static_cast<ImageBitmapFactories*>(WillBe
HeapSupplement<GlobalObject>::from(object, supplementName())); |
255 if (!supplement) { | 255 if (!supplement) { |
256 supplement = new ImageBitmapFactories(); | 256 supplement = new ImageBitmapFactories(); |
257 WillBeHeapSupplement<GlobalObject>::provideTo(object, supplementName(),
adoptPtrWillBeNoop(supplement)); | 257 WillBeHeapSupplement<GlobalObject>::provideTo(object, supplementName(),
adoptPtrWillBeNoop(supplement)); |
258 } | 258 } |
259 return *supplement; | 259 return *supplement; |
260 } | 260 } |
261 | 261 |
262 void ImageBitmapFactories::addLoader(PassRefPtrWillBeRawPtr<ImageBitmapLoader> l
oader) | 262 void ImageBitmapFactories::addLoader(ImageBitmapLoader* loader) |
263 { | 263 { |
264 m_pendingLoaders.add(loader); | 264 m_pendingLoaders.add(loader); |
265 } | 265 } |
266 | 266 |
267 void ImageBitmapFactories::didFinishLoading(ImageBitmapLoader* loader) | 267 void ImageBitmapFactories::didFinishLoading(ImageBitmapLoader* loader) |
268 { | 268 { |
269 ASSERT(m_pendingLoaders.contains(loader)); | 269 ASSERT(m_pendingLoaders.contains(loader)); |
270 m_pendingLoaders.remove(loader); | 270 m_pendingLoaders.remove(loader); |
271 } | 271 } |
272 | 272 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 { | 331 { |
332 rejectPromise(); | 332 rejectPromise(); |
333 } | 333 } |
334 | 334 |
335 void ImageBitmapFactories::ImageBitmapLoader::trace(Visitor* visitor) | 335 void ImageBitmapFactories::ImageBitmapLoader::trace(Visitor* visitor) |
336 { | 336 { |
337 visitor->trace(m_factory); | 337 visitor->trace(m_factory); |
338 } | 338 } |
339 | 339 |
340 } // namespace WebCore | 340 } // namespace WebCore |
OLD | NEW |