Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: third_party/WebKit/Source/core/html/ImageData.h

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 15 matching lines...) Expand all
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #ifndef ImageData_h 29 #ifndef ImageData_h
30 #define ImageData_h 30 #define ImageData_h
31 31
32 #include "bindings/core/v8/ScriptWrappable.h" 32 #include "bindings/core/v8/ScriptWrappable.h"
33 #include "core/CoreExport.h" 33 #include "core/CoreExport.h"
34 #include "core/dom/DOMArrayBufferView.h" 34 #include "core/dom/DOMArrayBufferView.h"
35 #include "core/dom/DOMTypedArray.h" 35 #include "core/dom/DOMTypedArray.h"
36 #include "core/dom/MaybeShared.h"
36 #include "core/imagebitmap/ImageBitmapSource.h" 37 #include "core/imagebitmap/ImageBitmapSource.h"
37 #include "platform/geometry/IntRect.h" 38 #include "platform/geometry/IntRect.h"
38 #include "platform/geometry/IntSize.h" 39 #include "platform/geometry/IntSize.h"
39 #include "platform/heap/Handle.h" 40 #include "platform/heap/Handle.h"
40 #include "third_party/skia/include/core/SkColorSpace.h" 41 #include "third_party/skia/include/core/SkColorSpace.h"
41 #include "wtf/CheckedNumeric.h" 42 #include "wtf/CheckedNumeric.h"
42 #include "wtf/Compiler.h" 43 #include "wtf/Compiler.h"
43 #include "wtf/text/WTFString.h" 44 #include "wtf/text/WTFString.h"
44 45
45 namespace blink { 46 namespace blink {
(...skipping 24 matching lines...) Expand all
70 const char* const kSRGBImageDataColorSpaceName = "srgb"; 71 const char* const kSRGBImageDataColorSpaceName = "srgb";
71 const char* const kLegacyImageDataColorSpaceName = "legacy-srgb"; 72 const char* const kLegacyImageDataColorSpaceName = "legacy-srgb";
72 73
73 class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>, 74 class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
74 public ScriptWrappable, 75 public ScriptWrappable,
75 public ImageBitmapSource { 76 public ImageBitmapSource {
76 DEFINE_WRAPPERTYPEINFO(); 77 DEFINE_WRAPPERTYPEINFO();
77 78
78 public: 79 public:
79 static ImageData* create(const IntSize&); 80 static ImageData* create(const IntSize&);
80 static ImageData* create(const IntSize&, DOMUint8ClampedArray*);
81 static ImageData* create(const IntSize&, 81 static ImageData* create(const IntSize&,
82 DOMUint8ClampedArray*, 82 const MaybeShared<DOMUint8ClampedArray>&);
83 static ImageData* create(const IntSize&,
84 const MaybeShared<DOMUint8ClampedArray>&,
83 const String&); 85 const String&);
84 static ImageData* create(unsigned width, unsigned height, ExceptionState&); 86 static ImageData* create(unsigned width, unsigned height, ExceptionState&);
85 static ImageData* create(DOMUint8ClampedArray*, 87 static ImageData* create(const MaybeShared<DOMUint8ClampedArray>&,
86 unsigned width, 88 unsigned width,
87 ExceptionState&); 89 ExceptionState&);
88 static ImageData* create(DOMUint8ClampedArray*, 90 static ImageData* create(const MaybeShared<DOMUint8ClampedArray>&,
89 unsigned width, 91 unsigned width,
90 unsigned height, 92 unsigned height,
91 ExceptionState&); 93 ExceptionState&);
92 94
93 static ImageData* createForTest(const IntSize&); 95 static ImageData* createForTest(const IntSize&);
94 96
95 ImageData* createImageData(unsigned width, 97 ImageData* createImageData(unsigned width,
96 unsigned height, 98 unsigned height,
97 String colorSpace, 99 String colorSpace,
98 ExceptionState&); 100 ExceptionState&);
99 ImageData* createImageData(DOMUint8ClampedArray*, 101 ImageData* createImageData(const MaybeShared<DOMUint8ClampedArray>&,
100 unsigned width, 102 unsigned width,
101 String colorSpace, 103 String colorSpace,
102 ExceptionState&); 104 ExceptionState&);
103 ImageData* createImageData(DOMUint8ClampedArray*, 105 ImageData* createImageData(const MaybeShared<DOMUint8ClampedArray>&,
104 unsigned width, 106 unsigned width,
105 unsigned height, 107 unsigned height,
106 String colorSpace, 108 String colorSpace,
107 ExceptionState&); 109 ExceptionState&);
108 110
109 static ImageDataColorSpace getImageDataColorSpace(String); 111 static ImageDataColorSpace getImageDataColorSpace(String);
110 static String getImageDataColorSpaceName(ImageDataColorSpace); 112 static String getImageDataColorSpaceName(ImageDataColorSpace);
111 static sk_sp<SkColorSpace> imageDataColorSpaceToSkColorSpace( 113 static sk_sp<SkColorSpace> imageDataColorSpaceToSkColorSpace(
112 ImageDataColorSpace); 114 ImageDataColorSpace);
113 115
(...skipping 25 matching lines...) Expand all
139 static bool validateConstructorArguments( 141 static bool validateConstructorArguments(
140 const unsigned&, 142 const unsigned&,
141 const IntSize* = nullptr, 143 const IntSize* = nullptr,
142 const unsigned& = 0, 144 const unsigned& = 0,
143 const unsigned& = 0, 145 const unsigned& = 0,
144 const DOMArrayBufferView* = nullptr, 146 const DOMArrayBufferView* = nullptr,
145 const String* = nullptr, 147 const String* = nullptr,
146 ExceptionState* = nullptr, 148 ExceptionState* = nullptr,
147 ImageDataType = kUint8ClampedImageData); 149 ImageDataType = kUint8ClampedImageData);
148 150
151 template <typename T>
152 static bool validateDataArgumentIsNotShared(const MaybeShared<T>& maybeShared,
153 ExceptionState* exceptionState) {
154 if (maybeShared.isShared()) {
155 if (exceptionState) {
156 exceptionState->throwTypeError(
157 "The data is backed by a SharedArrayBuffer.");
158 }
159 return false;
160 }
161 return true;
162 }
163
149 private: 164 private:
150 ImageData(const IntSize&, 165 ImageData(const IntSize&,
151 DOMUint8ClampedArray*, 166 DOMUint8ClampedArray*,
152 String = kLegacyImageDataColorSpaceName); 167 String = kLegacyImageDataColorSpaceName);
153 168
154 IntSize m_size; 169 IntSize m_size;
155 ImageDataColorSpace m_colorSpace; 170 ImageDataColorSpace m_colorSpace;
156 Member<DOMUint8ClampedArray> m_data; 171 Member<DOMUint8ClampedArray> m_data;
157 172
158 static DOMUint8ClampedArray* allocateAndValidateUint8ClampedArray( 173 static DOMUint8ClampedArray* allocateAndValidateUint8ClampedArray(
159 const unsigned&, 174 const unsigned&,
160 ExceptionState* = nullptr); 175 ExceptionState* = nullptr);
161 }; 176 };
162 177
163 } // namespace blink 178 } // namespace blink
164 179
165 #endif // ImageData_h 180 #endif // ImageData_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698