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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp

Issue 2701993002: DO NOT COMMIT: Results of running new (proposed) clang-format on Blink (Closed)
Patch Set: Created 3 years, 10 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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 std::unique_ptr<SerializedScriptValue::ImageBitmapContentsArray> 207 std::unique_ptr<SerializedScriptValue::ImageBitmapContentsArray>
208 SerializedScriptValue::transferImageBitmapContents( 208 SerializedScriptValue::transferImageBitmapContents(
209 v8::Isolate* isolate, 209 v8::Isolate* isolate,
210 const ImageBitmapArray& imageBitmaps, 210 const ImageBitmapArray& imageBitmaps,
211 ExceptionState& exceptionState) { 211 ExceptionState& exceptionState) {
212 if (!imageBitmaps.size()) 212 if (!imageBitmaps.size())
213 return nullptr; 213 return nullptr;
214 214
215 for (size_t i = 0; i < imageBitmaps.size(); ++i) { 215 for (size_t i = 0; i < imageBitmaps.size(); ++i) {
216 if (imageBitmaps[i]->isNeutered()) { 216 if (imageBitmaps[i]->isNeutered()) {
217 exceptionState.throwDOMException( 217 exceptionState.throwDOMException(DataCloneError,
218 DataCloneError, "ImageBitmap at index " + String::number(i) + 218 "ImageBitmap at index " +
219 " is already detached."); 219 String::number(i) +
220 " is already detached.");
220 return nullptr; 221 return nullptr;
221 } 222 }
222 } 223 }
223 224
224 std::unique_ptr<ImageBitmapContentsArray> contents = 225 std::unique_ptr<ImageBitmapContentsArray> contents =
225 WTF::wrapUnique(new ImageBitmapContentsArray); 226 WTF::wrapUnique(new ImageBitmapContentsArray);
226 HeapHashSet<Member<ImageBitmap>> visited; 227 HeapHashSet<Member<ImageBitmap>> visited;
227 for (size_t i = 0; i < imageBitmaps.size(); ++i) { 228 for (size_t i = 0; i < imageBitmaps.size(); ++i) {
228 if (visited.contains(imageBitmaps[i])) 229 if (visited.contains(imageBitmaps[i]))
229 continue; 230 continue;
(...skipping 17 matching lines...) Expand all
247 const OffscreenCanvasArray& offscreenCanvases, 248 const OffscreenCanvasArray& offscreenCanvases,
248 ExceptionState& exceptionState) { 249 ExceptionState& exceptionState) {
249 if (!offscreenCanvases.size()) 250 if (!offscreenCanvases.size())
250 return; 251 return;
251 252
252 HeapHashSet<Member<OffscreenCanvas>> visited; 253 HeapHashSet<Member<OffscreenCanvas>> visited;
253 for (size_t i = 0; i < offscreenCanvases.size(); i++) { 254 for (size_t i = 0; i < offscreenCanvases.size(); i++) {
254 if (visited.contains(offscreenCanvases[i].get())) 255 if (visited.contains(offscreenCanvases[i].get()))
255 continue; 256 continue;
256 if (offscreenCanvases[i]->isNeutered()) { 257 if (offscreenCanvases[i]->isNeutered()) {
257 exceptionState.throwDOMException( 258 exceptionState.throwDOMException(DataCloneError,
258 DataCloneError, "OffscreenCanvas at index " + String::number(i) + 259 "OffscreenCanvas at index " +
259 " is already detached."); 260 String::number(i) +
261 " is already detached.");
260 return; 262 return;
261 } 263 }
262 if (offscreenCanvases[i]->renderingContext()) { 264 if (offscreenCanvases[i]->renderingContext()) {
263 exceptionState.throwDOMException( 265 exceptionState.throwDOMException(DataCloneError,
264 DataCloneError, "OffscreenCanvas at index " + String::number(i) + 266 "OffscreenCanvas at index " +
265 " has an associated context."); 267 String::number(i) +
268 " has an associated context.");
266 return; 269 return;
267 } 270 }
268 visited.insert(offscreenCanvases[i].get()); 271 visited.insert(offscreenCanvases[i].get());
269 offscreenCanvases[i].get()->setNeutered(); 272 offscreenCanvases[i].get()->setNeutered();
270 } 273 }
271 } 274 }
272 275
273 void SerializedScriptValue::transferArrayBuffers( 276 void SerializedScriptValue::transferArrayBuffers(
274 v8::Isolate* isolate, 277 v8::Isolate* isolate,
275 const ArrayBufferArray& arrayBuffers, 278 const ArrayBufferArray& arrayBuffers,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 " value."); 330 " value.");
328 return false; 331 return false;
329 } 332 }
330 // Validation of Objects implementing an interface, per WebIDL spec 4.1.15. 333 // Validation of Objects implementing an interface, per WebIDL spec 4.1.15.
331 if (V8MessagePort::hasInstance(transferableObject, isolate)) { 334 if (V8MessagePort::hasInstance(transferableObject, isolate)) {
332 MessagePort* port = V8MessagePort::toImpl( 335 MessagePort* port = V8MessagePort::toImpl(
333 v8::Local<v8::Object>::Cast(transferableObject)); 336 v8::Local<v8::Object>::Cast(transferableObject));
334 // Check for duplicate MessagePorts. 337 // Check for duplicate MessagePorts.
335 if (transferables.messagePorts.contains(port)) { 338 if (transferables.messagePorts.contains(port)) {
336 exceptionState.throwDOMException( 339 exceptionState.throwDOMException(
337 DataCloneError, "Message port at index " + String::number(i) + 340 DataCloneError,
338 " is a duplicate of an earlier port."); 341 "Message port at index " + String::number(i) +
342 " is a duplicate of an earlier port.");
339 return false; 343 return false;
340 } 344 }
341 transferables.messagePorts.push_back(port); 345 transferables.messagePorts.push_back(port);
342 } else if (transferableObject->IsArrayBuffer()) { 346 } else if (transferableObject->IsArrayBuffer()) {
343 DOMArrayBuffer* arrayBuffer = V8ArrayBuffer::toImpl( 347 DOMArrayBuffer* arrayBuffer = V8ArrayBuffer::toImpl(
344 v8::Local<v8::Object>::Cast(transferableObject)); 348 v8::Local<v8::Object>::Cast(transferableObject));
345 if (transferables.arrayBuffers.contains(arrayBuffer)) { 349 if (transferables.arrayBuffers.contains(arrayBuffer)) {
346 exceptionState.throwDOMException( 350 exceptionState.throwDOMException(
347 DataCloneError, "ArrayBuffer at index " + String::number(i) + 351 DataCloneError,
348 " is a duplicate of an earlier ArrayBuffer."); 352 "ArrayBuffer at index " + String::number(i) +
353 " is a duplicate of an earlier ArrayBuffer.");
349 return false; 354 return false;
350 } 355 }
351 transferables.arrayBuffers.push_back(arrayBuffer); 356 transferables.arrayBuffers.push_back(arrayBuffer);
352 } else if (transferableObject->IsSharedArrayBuffer()) { 357 } else if (transferableObject->IsSharedArrayBuffer()) {
353 DOMSharedArrayBuffer* sharedArrayBuffer = V8SharedArrayBuffer::toImpl( 358 DOMSharedArrayBuffer* sharedArrayBuffer = V8SharedArrayBuffer::toImpl(
354 v8::Local<v8::Object>::Cast(transferableObject)); 359 v8::Local<v8::Object>::Cast(transferableObject));
355 if (transferables.arrayBuffers.contains(sharedArrayBuffer)) { 360 if (transferables.arrayBuffers.contains(sharedArrayBuffer)) {
356 exceptionState.throwDOMException( 361 exceptionState.throwDOMException(
357 DataCloneError, 362 DataCloneError,
358 "SharedArrayBuffer at index " + String::number(i) + 363 "SharedArrayBuffer at index " + String::number(i) +
359 " is a duplicate of an earlier SharedArrayBuffer."); 364 " is a duplicate of an earlier SharedArrayBuffer.");
360 return false; 365 return false;
361 } 366 }
362 transferables.arrayBuffers.push_back(sharedArrayBuffer); 367 transferables.arrayBuffers.push_back(sharedArrayBuffer);
363 } else if (V8ImageBitmap::hasInstance(transferableObject, isolate)) { 368 } else if (V8ImageBitmap::hasInstance(transferableObject, isolate)) {
364 ImageBitmap* imageBitmap = V8ImageBitmap::toImpl( 369 ImageBitmap* imageBitmap = V8ImageBitmap::toImpl(
365 v8::Local<v8::Object>::Cast(transferableObject)); 370 v8::Local<v8::Object>::Cast(transferableObject));
366 if (transferables.imageBitmaps.contains(imageBitmap)) { 371 if (transferables.imageBitmaps.contains(imageBitmap)) {
367 exceptionState.throwDOMException( 372 exceptionState.throwDOMException(
368 DataCloneError, "ImageBitmap at index " + String::number(i) + 373 DataCloneError,
369 " is a duplicate of an earlier ImageBitmap."); 374 "ImageBitmap at index " + String::number(i) +
375 " is a duplicate of an earlier ImageBitmap.");
370 return false; 376 return false;
371 } 377 }
372 transferables.imageBitmaps.push_back(imageBitmap); 378 transferables.imageBitmaps.push_back(imageBitmap);
373 } else if (V8OffscreenCanvas::hasInstance(transferableObject, isolate)) { 379 } else if (V8OffscreenCanvas::hasInstance(transferableObject, isolate)) {
374 OffscreenCanvas* offscreenCanvas = V8OffscreenCanvas::toImpl( 380 OffscreenCanvas* offscreenCanvas = V8OffscreenCanvas::toImpl(
375 v8::Local<v8::Object>::Cast(transferableObject)); 381 v8::Local<v8::Object>::Cast(transferableObject));
376 if (transferables.offscreenCanvases.contains(offscreenCanvas)) { 382 if (transferables.offscreenCanvases.contains(offscreenCanvas)) {
377 exceptionState.throwDOMException( 383 exceptionState.throwDOMException(
378 DataCloneError, 384 DataCloneError,
379 "OffscreenCanvas at index " + String::number(i) + 385 "OffscreenCanvas at index " + String::number(i) +
(...skipping 15 matching lines...) Expand all
395 v8::Isolate* isolate, 401 v8::Isolate* isolate,
396 const ArrayBufferArray& arrayBuffers, 402 const ArrayBufferArray& arrayBuffers,
397 ExceptionState& exceptionState) { 403 ExceptionState& exceptionState) {
398 if (!arrayBuffers.size()) 404 if (!arrayBuffers.size())
399 return nullptr; 405 return nullptr;
400 406
401 for (auto it = arrayBuffers.begin(); it != arrayBuffers.end(); ++it) { 407 for (auto it = arrayBuffers.begin(); it != arrayBuffers.end(); ++it) {
402 DOMArrayBufferBase* arrayBuffer = *it; 408 DOMArrayBufferBase* arrayBuffer = *it;
403 if (arrayBuffer->isNeutered()) { 409 if (arrayBuffer->isNeutered()) {
404 size_t index = std::distance(arrayBuffers.begin(), it); 410 size_t index = std::distance(arrayBuffers.begin(), it);
405 exceptionState.throwDOMException( 411 exceptionState.throwDOMException(DataCloneError,
406 DataCloneError, "ArrayBuffer at index " + String::number(index) + 412 "ArrayBuffer at index " +
407 " is already neutered."); 413 String::number(index) +
414 " is already neutered.");
408 return nullptr; 415 return nullptr;
409 } 416 }
410 } 417 }
411 418
412 std::unique_ptr<ArrayBufferContentsArray> contents = 419 std::unique_ptr<ArrayBufferContentsArray> contents =
413 WTF::wrapUnique(new ArrayBufferContentsArray(arrayBuffers.size())); 420 WTF::wrapUnique(new ArrayBufferContentsArray(arrayBuffers.size()));
414 421
415 HeapHashSet<Member<DOMArrayBufferBase>> visited; 422 HeapHashSet<Member<DOMArrayBufferBase>> visited;
416 for (auto it = arrayBuffers.begin(); it != arrayBuffers.end(); ++it) { 423 for (auto it = arrayBuffers.begin(); it != arrayBuffers.end(); ++it) {
417 DOMArrayBufferBase* arrayBuffer = *it; 424 DOMArrayBufferBase* arrayBuffer = *it;
(...skipping 18 matching lines...) Expand all
436 bool isNeuterable = true; 443 bool isNeuterable = true;
437 for (const auto& bufferHandle : bufferHandles) 444 for (const auto& bufferHandle : bufferHandles)
438 isNeuterable &= bufferHandle->IsNeuterable(); 445 isNeuterable &= bufferHandle->IsNeuterable();
439 446
440 DOMArrayBufferBase* toTransfer = arrayBuffer; 447 DOMArrayBufferBase* toTransfer = arrayBuffer;
441 if (!isNeuterable) { 448 if (!isNeuterable) {
442 toTransfer = DOMArrayBuffer::create( 449 toTransfer = DOMArrayBuffer::create(
443 arrayBuffer->buffer()->data(), arrayBuffer->buffer()->byteLength()); 450 arrayBuffer->buffer()->data(), arrayBuffer->buffer()->byteLength());
444 } 451 }
445 if (!toTransfer->transfer(contents->at(index))) { 452 if (!toTransfer->transfer(contents->at(index))) {
446 exceptionState.throwDOMException( 453 exceptionState.throwDOMException(DataCloneError,
447 DataCloneError, "ArrayBuffer at index " + String::number(index) + 454 "ArrayBuffer at index " +
448 " could not be transferred."); 455 String::number(index) +
456 " could not be transferred.");
449 return nullptr; 457 return nullptr;
450 } 458 }
451 459
452 if (isNeuterable) { 460 if (isNeuterable) {
453 for (const auto& bufferHandle : bufferHandles) 461 for (const auto& bufferHandle : bufferHandles)
454 bufferHandle->Neuter(); 462 bufferHandle->Neuter();
455 } 463 }
456 } 464 }
457 } 465 }
458 return contents; 466 return contents;
459 } 467 }
460 468
461 void SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext() { 469 void SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext() {
462 if (m_externallyAllocatedMemory) 470 if (m_externallyAllocatedMemory)
463 return; 471 return;
464 472
465 m_externallyAllocatedMemory = static_cast<intptr_t>(dataLengthInBytes()); 473 m_externallyAllocatedMemory = static_cast<intptr_t>(dataLengthInBytes());
466 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory( 474 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
467 m_externallyAllocatedMemory); 475 m_externallyAllocatedMemory);
468 } 476 }
469 477
470 } // namespace blink 478 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/SerializationTag.h ('k') | third_party/WebKit/Source/bindings/core/v8/V8Binding.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698