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

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

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: remove unused checks Created 3 years, 8 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 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 198
199 DOMUint8ClampedArray* byteArray = 199 DOMUint8ClampedArray* byteArray =
200 DOMUint8ClampedArray::createOrNull(dataSize.ValueOrDie()); 200 DOMUint8ClampedArray::createOrNull(dataSize.ValueOrDie());
201 if (!byteArray) 201 if (!byteArray)
202 return nullptr; 202 return nullptr;
203 203
204 return new ImageData(size, byteArray); 204 return new ImageData(size, byteArray);
205 } 205 }
206 206
207 ImageData* ImageData::create(const IntSize& size, 207 ImageData* ImageData::create(const IntSize& size,
208 DOMUint8ClampedArray* byteArray) { 208 const NotShared<DOMUint8ClampedArray>& byteArray) {
209 if (!ImageData::validateConstructorArguments(kParamSize | kParamData, &size, 209 if (!ImageData::validateConstructorArguments(kParamSize | kParamData, &size,
210 0, 0, byteArray)) 210 0, 0, byteArray.view()))
211 return nullptr; 211 return nullptr;
212 212
213 return new ImageData(size, byteArray); 213 return new ImageData(size, byteArray.view());
214 } 214 }
215 215
216 ImageData* ImageData::create(unsigned width, 216 ImageData* ImageData::create(unsigned width,
217 unsigned height, 217 unsigned height,
218 ExceptionState& exceptionState) { 218 ExceptionState& exceptionState) {
219 if (!ImageData::validateConstructorArguments(kParamWidth | kParamHeight, 219 if (!ImageData::validateConstructorArguments(kParamWidth | kParamHeight,
220 nullptr, width, height, nullptr, 220 nullptr, width, height, nullptr,
221 &exceptionState)) 221 &exceptionState))
222 return nullptr; 222 return nullptr;
223 223
224 DOMArrayBufferView* byteArray = allocateAndValidateDataArray( 224 DOMArrayBufferView* byteArray = allocateAndValidateDataArray(
225 4 * width * height, kUint8ClampedArrayStorageFormat, &exceptionState); 225 4 * width * height, kUint8ClampedArrayStorageFormat, &exceptionState);
226 return byteArray ? new ImageData(IntSize(width, height), byteArray) : nullptr; 226 return byteArray ? new ImageData(IntSize(width, height), byteArray) : nullptr;
227 } 227 }
228 228
229 ImageData* ImageData::create(DOMUint8ClampedArray* data, 229 ImageData* ImageData::create(const NotShared<DOMUint8ClampedArray>& data,
230 unsigned width, 230 unsigned width,
231 ExceptionState& exceptionState) { 231 ExceptionState& exceptionState) {
232 if (!ImageData::validateConstructorArguments( 232 if (!ImageData::validateConstructorArguments(kParamData | kParamWidth,
233 kParamData | kParamWidth, nullptr, width, 0, data, &exceptionState)) 233 nullptr, width, 0, data.view(),
234 &exceptionState))
234 return nullptr; 235 return nullptr;
235 236
236 unsigned height = data->length() / (width * 4); 237 unsigned height = data.view()->length() / (width * 4);
237 return new ImageData(IntSize(width, height), data); 238 return new ImageData(IntSize(width, height), data.view());
238 } 239 }
239 240
240 ImageData* ImageData::create(DOMUint8ClampedArray* data, 241 ImageData* ImageData::create(const NotShared<DOMUint8ClampedArray>& data,
241 unsigned width, 242 unsigned width,
242 unsigned height, 243 unsigned height,
243 ExceptionState& exceptionState) { 244 ExceptionState& exceptionState) {
244 if (!ImageData::validateConstructorArguments( 245 if (!ImageData::validateConstructorArguments(
245 kParamData | kParamWidth | kParamHeight, nullptr, width, height, data, 246 kParamData | kParamWidth | kParamHeight, nullptr, width, height,
246 &exceptionState)) 247 data.view(), &exceptionState))
247 return nullptr; 248 return nullptr;
248 249
249 return new ImageData(IntSize(width, height), data); 250 return new ImageData(IntSize(width, height), data.view());
250 } 251 }
251 252
252 ImageData* ImageData::createImageData( 253 ImageData* ImageData::createImageData(
253 unsigned width, 254 unsigned width,
254 unsigned height, 255 unsigned height,
255 const ImageDataColorSettings& colorSettings, 256 const ImageDataColorSettings& colorSettings,
256 ExceptionState& exceptionState) { 257 ExceptionState& exceptionState) {
257 if (!ImageData::validateConstructorArguments(kParamWidth | kParamHeight, 258 if (!ImageData::validateConstructorArguments(kParamWidth | kParamHeight,
258 nullptr, width, height, nullptr, 259 nullptr, width, height, nullptr,
259 &exceptionState)) 260 &exceptionState))
(...skipping 11 matching lines...) Expand all
271 } 272 }
272 273
273 ImageData* ImageData::createImageData( 274 ImageData* ImageData::createImageData(
274 ImageDataArray& data, 275 ImageDataArray& data,
275 unsigned width, 276 unsigned width,
276 unsigned height, 277 unsigned height,
277 const ImageDataColorSettings& colorSettings, 278 const ImageDataColorSettings& colorSettings,
278 ExceptionState& exceptionState) { 279 ExceptionState& exceptionState) {
279 DOMArrayBufferView* bufferView = nullptr; 280 DOMArrayBufferView* bufferView = nullptr;
280 if (data.isUint8ClampedArray()) 281 if (data.isUint8ClampedArray())
281 bufferView = data.getAsUint8ClampedArray(); 282 bufferView = data.getAsUint8ClampedArray().view();
282 else if (data.isUint16Array()) 283 else if (data.isUint16Array())
283 bufferView = data.getAsUint16Array(); 284 bufferView = data.getAsUint16Array().view();
284 else if (data.isFloat32Array()) 285 else if (data.isFloat32Array())
285 bufferView = data.getAsFloat32Array(); 286 bufferView = data.getAsFloat32Array().view();
286 else 287 else
287 NOTREACHED(); 288 NOTREACHED();
288 289
289 if (!ImageData::validateConstructorArguments( 290 if (!ImageData::validateConstructorArguments(
290 kParamData | kParamWidth | kParamHeight, nullptr, width, height, 291 kParamData | kParamWidth | kParamHeight, nullptr, width, height,
291 bufferView, &exceptionState)) 292 bufferView, &exceptionState))
292 return nullptr; 293 return nullptr;
293 294
294 return new ImageData(IntSize(width, height), bufferView, &colorSettings, 295 return new ImageData(IntSize(width, height), bufferView, &colorSettings,
295 kStorageFormatFromBufferType); 296 kStorageFormatFromBufferType);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 SECURITY_CHECK(static_cast<unsigned>(size.width() * size.height() * 4) <= 449 SECURITY_CHECK(static_cast<unsigned>(size.width() * size.height() * 4) <=
449 m_dataF32->length()); 450 m_dataF32->length());
450 break; 451 break;
451 452
452 default: 453 default:
453 NOTREACHED(); 454 NOTREACHED();
454 } 455 }
455 } 456 }
456 457
457 } // namespace blink 458 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698