Changeset 59613 in webkit
- Timestamp:
- May 17, 2010 10:32:46 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r59602 r59613 1 2010-05-17 Andreas Kling <andreas.kling@nokia.com> 2 3 Reviewed by Kenneth Rohde Christiansen. 4 5 Add a test to verify proper behavior of createImageData(ImageData) 6 and createImageData(width, height) with negative arguments. 7 https://bugs.webkit.org/show_bug.cgi?id=39189 8 9 Spec link: 10 http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-createimagedata 11 12 * fast/canvas/canvas-createImageData-expected.txt: Added. 13 * fast/canvas/canvas-createImageData.html: Added. 14 * fast/canvas/script-tests/canvas-createImageData.js: Added. 15 1 16 2010-05-14 Jeremy Orlow <jorlow@chromium.org> 2 17 -
trunk/WebCore/ChangeLog
r59612 r59613 1 2010-05-17 Andreas Kling <andreas.kling@nokia.com> 2 3 Reviewed by Kenneth Rohde Christiansen. 4 5 Bring CanvasRenderingContext2D's createImageData() in line with HTML5 spec 6 Added createImageData(ImageData) which returns a new ImageData with the same size as the one passed. 7 Changed createImageData(width, height) to use the absolute values of width and height. 8 9 https://bugs.webkit.org/show_bug.cgi?id=39189 10 11 Spec link: 12 http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-createimagedata 13 14 Test: fast/canvas/canvas-createImageData.html 15 16 * bindings/js/JSCanvasRenderingContext2DCustom.cpp: 17 (WebCore::JSCanvasRenderingContext2D::createImageData): 18 * html/canvas/CanvasRenderingContext2D.cpp: 19 (WebCore::CanvasRenderingContext2D::createImageData): 20 * html/canvas/CanvasRenderingContext2D.h: 21 * html/canvas/CanvasRenderingContext2D.idl: 22 1 23 2010-05-17 Antti Koivisto <koivisto@iki.fi> 2 24 -
trunk/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
r57889 r59613 362 362 } 363 363 364 JSValue JSCanvasRenderingContext2D::createImageData(ExecState* exec, const ArgList& args) 365 { 366 // createImageData has two variants 367 // createImageData(ImageData) 368 // createImageData(width, height) 369 CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(impl()); 370 RefPtr<ImageData> imageData = 0; 371 372 ExceptionCode ec = 0; 373 if (args.size() == 1) 374 imageData = context->createImageData(toImageData(args.at(0)), ec); 375 else if (args.size() == 2) 376 imageData = context->createImageData(args.at(0).toFloat(exec), args.at(1).toFloat(exec), ec); 377 378 setDOMException(exec, ec); 379 return toJS(exec, globalObject(), WTF::getPtr(imageData)); 380 } 381 364 382 JSValue JSCanvasRenderingContext2D::putImageData(ExecState* exec, const ArgList& args) 365 383 { -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.cpp
r59582 r59613 1343 1343 } 1344 1344 1345 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<ImageData> imageData, ExceptionCode& ec) const 1346 { 1347 if (!imageData) { 1348 ec = NOT_SUPPORTED_ERR; 1349 return 0; 1350 } 1351 1352 IntSize size(imageData->width(), imageData->height()); 1353 return createEmptyImageData(size); 1354 } 1355 1345 1356 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionCode& ec) const 1346 1357 { … … 1355 1366 } 1356 1367 1357 FloatSize unscaledSize( sw, sh);1368 FloatSize unscaledSize(fabs(sw), fabs(sh)); 1358 1369 IntSize scaledSize = canvas()->convertLogicalToDevice(unscaledSize); 1359 1370 if (scaledSize.width() < 1) -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.h
r57889 r59613 182 182 PassRefPtr<CanvasPattern> createPattern(HTMLCanvasElement*, const String& repetitionType, ExceptionCode&); 183 183 184 PassRefPtr<ImageData> createImageData(PassRefPtr<ImageData> imageData, ExceptionCode&) const; 184 185 PassRefPtr<ImageData> createImageData(float width, float height, ExceptionCode&) const; 185 186 PassRefPtr<ImageData> getImageData(float sx, float sy, float sw, float sh, ExceptionCode&) const; -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.idl
r57889 r59613 149 149 void putImageData(in ImageData imagedata, in float dx, in float dy, in [Optional] float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight) 150 150 raises(DOMException); 151 ImageData createImageData(in ImageData imagedata) 152 raises (DOMException); 153 ImageData createImageData(in float sw, in float sh) 154 raises (DOMException); 151 155 #else 152 156 // FIXME: Remove 'else' once JSC supports overloads too. … … 161 165 [Custom] void createPattern(/* 2 */); 162 166 [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */); 167 [Custom] ImageData createImageData(/* 3 */); 163 168 #endif // defined(V8_BINDING) 164 169 … … 167 172 168 173 // pixel manipulation 169 ImageData createImageData(in float sw, in float sh)170 raises (DOMException);171 174 ImageData getImageData(in float sx, in float sy, in float sw, in float sh) 172 175 raises(DOMException);
Note: See TracChangeset
for help on using the changeset viewer.