Changeset 166246 in webkit
- Timestamp:
- Mar 25, 2014 1:24:14 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 2 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r166245 r166246 1 2014-03-25 Dirk Schulze <krit@webkit.org> 2 3 Implement ImageData constructors and WebWorkers exposure 4 https://bugs.webkit.org/show_bug.cgi?id=130668 5 6 Reviewed by Dean Jackson. 7 8 Tests for ImageData constructors. Remove a false tests for constructors 9 from Philip's test suite. 10 11 * fast/canvas/canvas-imageData-expected.txt: Added. 12 * fast/canvas/canvas-imageData.html: Added. 13 * fast/canvas/script-tests/canvas-imageData.js: Added. 14 (testTransparentBlack): 15 * LayoutTests/canvas/philip/tests/2d.imageData.object.ctor.html: Removed. 16 * LayoutTests/canvas/philip/tests/2d.imageData.object.ctor-expected.txt: Removed. 17 * LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt 18 * LayoutTests/js/dom/global-constructors-attributes-shared-worker-expected.txt 19 1 20 2014-03-25 Myles C. Maxfield <mmaxfield@apple.com> 2 21 -
trunk/LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt
r156467 r166246 85 85 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'IDBVersionChangeEvent').enumerable is false 86 86 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'IDBVersionChangeEvent').configurable is true 87 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').value is ImageData 88 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').hasOwnProperty('get') is false 89 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').hasOwnProperty('set') is false 90 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').enumerable is false 91 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').configurable is true 87 92 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageChannel').value is MessageChannel 88 93 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageChannel').hasOwnProperty('get') is false -
trunk/LayoutTests/js/dom/global-constructors-attributes-shared-worker-expected.txt
r156467 r166246 80 80 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'IDBVersionChangeEvent').enumerable is false 81 81 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'IDBVersionChangeEvent').configurable is true 82 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').value is ImageData 83 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').hasOwnProperty('get') is false 84 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').hasOwnProperty('set') is false 85 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').enumerable is false 86 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ImageData').configurable is true 82 87 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageChannel').value is MessageChannel 83 88 PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageChannel').hasOwnProperty('get') is false -
trunk/Source/WebCore/ChangeLog
r166245 r166246 1 2014-03-25 Dirk Schulze <krit@webkit.org> 2 3 Implement ImageData constructors and WebWorkers exposure 4 https://bugs.webkit.org/show_bug.cgi?id=130668 5 6 Reviewed by Dean Jackson. 7 8 Add new constructors for ImageData. 9 10 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#pixel-manipulation 11 12 Test: fast/canvas/canvas-imageData.html 13 14 * html/ImageData.cpp: 15 (WebCore::ImageData::create): 16 * html/ImageData.h: 17 * html/ImageData.idl: 18 1 19 2014-03-25 Myles C. Maxfield <mmaxfield@apple.com> 2 20 -
trunk/Source/WebCore/html/ImageData.cpp
r165676 r166246 1 1 /* 2 2 * Copyright (C) 2008 Apple Inc. All rights reserved. 3 * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 30 31 #include "ImageData.h" 31 32 33 #include "ExceptionCode.h" 34 32 35 namespace WebCore { 36 37 PassRefPtr<ImageData> ImageData::create(unsigned sw, unsigned sh, ExceptionCode& ec) 38 { 39 if (!sw || !sh) { 40 ec = INDEX_SIZE_ERR; 41 return nullptr; 42 } 43 44 Checked<int, RecordOverflow> dataSize = 4; 45 dataSize *= sw; 46 dataSize *= sh; 47 if (dataSize.hasOverflowed()) { 48 ec = TypeError; 49 return nullptr; 50 } 51 52 IntSize size(sw, sh); 53 RefPtr<ImageData> data = adoptRef(new ImageData(size)); 54 data->data()->zeroFill(); 55 return data.release(); 56 } 33 57 34 58 PassRefPtr<ImageData> ImageData::create(const IntSize& size) … … 58 82 } 59 83 84 PassRefPtr<ImageData> ImageData::create(PassRefPtr<Uint8ClampedArray> byteArray, unsigned sw, unsigned sh, ExceptionCode& ec) 85 { 86 unsigned length = byteArray->length(); 87 if (!length || length % 4 != 0) { 88 ec = INVALID_STATE_ERR; 89 return nullptr; 90 } 91 92 if (!sw) { 93 ec = INDEX_SIZE_ERR; 94 return nullptr; 95 } 96 97 length /= 4; 98 if (length % sw != 0) { 99 ec = INVALID_STATE_ERR; 100 return nullptr; 101 } 102 103 unsigned height = length / sw; 104 if (sh && sh != height) { 105 ec = INDEX_SIZE_ERR; 106 return nullptr; 107 } 108 109 return create(IntSize(sw, height), byteArray); 110 } 111 60 112 ImageData::ImageData(const IntSize& size) 61 113 : m_size(size) -
trunk/Source/WebCore/html/ImageData.h
r165676 r166246 37 37 namespace WebCore { 38 38 39 typedef int ExceptionCode; 40 39 41 class ImageData : public RefCounted<ImageData> { 40 42 public: 43 static PassRefPtr<ImageData> create(unsigned sw, unsigned sh, ExceptionCode&); 41 44 static PassRefPtr<ImageData> create(const IntSize&); 42 45 static PassRefPtr<ImageData> create(const IntSize&, PassRefPtr<Uint8ClampedArray>); 46 static PassRefPtr<ImageData> create(PassRefPtr<Uint8ClampedArray>, unsigned sw, unsigned sh, ExceptionCode&); 43 47 44 48 IntSize size() const { return m_size; } -
trunk/Source/WebCore/html/ImageData.idl
r165676 r166246 28 28 29 29 [ 30 GlobalContext=DOMWindow&WorkerGlobalScope, 30 31 CustomToJSObject, 32 // FIXME: Without [Default=Undefined] CodeGeneratorJS can't generate JSImageData. But with 33 // the extended attribute we accept a value of 0 for sh and don't throw. 34 // https://bugs.webkit.org/show_bug.cgi?id=130667 35 Constructor(Uint8ClampedArray data, unsigned long sw, [Default=Undefined] optional unsigned long sh), 36 Constructor(unsigned long sw, unsigned long sh), 37 ConstructorRaisesException, 31 38 ImplementationLacksVTable 32 39 ] interface ImageData {
Note: See TracChangeset
for help on using the changeset viewer.