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

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

Issue 2379653006: Replaced cc::SurfaceId::nonce_ with base::UnguessableToken (Closed)
Patch Set: Changed SurfaceManager::kRootSurfaceId to a private field to avoid static initialization Created 4 years, 1 month 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "bindings/core/v8/ScriptValueSerializer.h" 5 #include "bindings/core/v8/ScriptValueSerializer.h"
6 6
7 #include "bindings/core/v8/Transferables.h" 7 #include "bindings/core/v8/Transferables.h"
8 #include "bindings/core/v8/V8ArrayBuffer.h" 8 #include "bindings/core/v8/V8ArrayBuffer.h"
9 #include "bindings/core/v8/V8ArrayBufferView.h" 9 #include "bindings/core/v8/V8ArrayBufferView.h"
10 #include "bindings/core/v8/V8Blob.h" 10 #include "bindings/core/v8/V8Blob.h"
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 doWriteUint32(index); 363 doWriteUint32(index);
364 } 364 }
365 365
366 void SerializedScriptValueWriter::writeTransferredOffscreenCanvas( 366 void SerializedScriptValueWriter::writeTransferredOffscreenCanvas(
367 uint32_t width, 367 uint32_t width,
368 uint32_t height, 368 uint32_t height,
369 uint32_t canvasId, 369 uint32_t canvasId,
370 uint32_t clientId, 370 uint32_t clientId,
371 uint32_t sinkId, 371 uint32_t sinkId,
372 uint32_t localId, 372 uint32_t localId,
373 uint64_t nonce) { 373 uint64_t nonceHigh,
374 uint64_t nonceLow) {
374 append(OffscreenCanvasTransferTag); 375 append(OffscreenCanvasTransferTag);
375 doWriteUint32(width); 376 doWriteUint32(width);
376 doWriteUint32(height); 377 doWriteUint32(height);
377 doWriteUint32(canvasId); 378 doWriteUint32(canvasId);
378 doWriteUint32(clientId); 379 doWriteUint32(clientId);
379 doWriteUint32(sinkId); 380 doWriteUint32(sinkId);
380 doWriteUint32(localId); 381 doWriteUint32(localId);
381 doWriteUint64(nonce); 382 doWriteUint64(nonceHigh);
383 doWriteUint64(nonceLow);
382 } 384 }
383 385
384 void SerializedScriptValueWriter::writeTransferredSharedArrayBuffer( 386 void SerializedScriptValueWriter::writeTransferredSharedArrayBuffer(
385 uint32_t index) { 387 uint32_t index) {
386 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled()); 388 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled());
387 append(SharedArrayBufferTransferTag); 389 append(SharedArrayBufferTransferTag);
388 doWriteUint32(index); 390 doWriteUint32(index);
389 } 391 }
390 392
391 void SerializedScriptValueWriter::writeObjectReference(uint32_t reference) { 393 void SerializedScriptValueWriter::writeObjectReference(uint32_t reference) {
(...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 Status::DataCloneError, 1324 Status::DataCloneError,
1323 "An OffscreenCanvas is detached and could not be cloned.", next); 1325 "An OffscreenCanvas is detached and could not be cloned.", next);
1324 if (offscreenCanvas->renderingContext()) 1326 if (offscreenCanvas->renderingContext())
1325 return handleError(Status::DataCloneError, 1327 return handleError(Status::DataCloneError,
1326 "An OffscreenCanvas with a context could not be cloned.", 1328 "An OffscreenCanvas with a context could not be cloned.",
1327 next); 1329 next);
1328 m_writer.writeTransferredOffscreenCanvas( 1330 m_writer.writeTransferredOffscreenCanvas(
1329 offscreenCanvas->width(), offscreenCanvas->height(), 1331 offscreenCanvas->width(), offscreenCanvas->height(),
1330 offscreenCanvas->getAssociatedCanvasId(), offscreenCanvas->clientId(), 1332 offscreenCanvas->getAssociatedCanvasId(), offscreenCanvas->clientId(),
1331 offscreenCanvas->sinkId(), offscreenCanvas->localId(), 1333 offscreenCanvas->sinkId(), offscreenCanvas->localId(),
1332 offscreenCanvas->nonce()); 1334 offscreenCanvas->nonceHigh(), offscreenCanvas->nonceLow());
1333 return nullptr; 1335 return nullptr;
1334 } 1336 }
1335 1337
1336 ScriptValueSerializer::StateBase* 1338 ScriptValueSerializer::StateBase*
1337 ScriptValueSerializer::writeTransferredSharedArrayBuffer( 1339 ScriptValueSerializer::writeTransferredSharedArrayBuffer(
1338 v8::Local<v8::Value> value, 1340 v8::Local<v8::Value> value,
1339 uint32_t index, 1341 uint32_t index,
1340 StateBase* next) { 1342 StateBase* next) {
1341 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled()); 1343 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled());
1342 DOMSharedArrayBuffer* sharedArrayBuffer = 1344 DOMSharedArrayBuffer* sharedArrayBuffer =
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 if (!doReadUint32(&index)) 1705 if (!doReadUint32(&index))
1704 return false; 1706 return false;
1705 if (!deserializer.tryGetTransferredImageBitmap(index, value)) 1707 if (!deserializer.tryGetTransferredImageBitmap(index, value))
1706 return false; 1708 return false;
1707 break; 1709 break;
1708 } 1710 }
1709 case OffscreenCanvasTransferTag: { 1711 case OffscreenCanvasTransferTag: {
1710 if (!m_version) 1712 if (!m_version)
1711 return false; 1713 return false;
1712 uint32_t width, height, canvasId, clientId, sinkId, localId; 1714 uint32_t width, height, canvasId, clientId, sinkId, localId;
1713 uint64_t nonce; 1715 uint64_t nonceHigh, nonceLow;
1714 if (!doReadUint32(&width)) 1716 if (!doReadUint32(&width))
1715 return false; 1717 return false;
1716 if (!doReadUint32(&height)) 1718 if (!doReadUint32(&height))
1717 return false; 1719 return false;
1718 if (!doReadUint32(&canvasId)) 1720 if (!doReadUint32(&canvasId))
1719 return false; 1721 return false;
1720 if (!doReadUint32(&clientId)) 1722 if (!doReadUint32(&clientId))
1721 return false; 1723 return false;
1722 if (!doReadUint32(&sinkId)) 1724 if (!doReadUint32(&sinkId))
1723 return false; 1725 return false;
1724 if (!doReadUint32(&localId)) 1726 if (!doReadUint32(&localId))
1725 return false; 1727 return false;
1726 if (!doReadUint64(&nonce)) 1728 if (!doReadUint64(&nonceHigh) || !doReadUint64(&nonceLow))
1727 return false; 1729 return false;
1728 if (!deserializer.tryGetTransferredOffscreenCanvas( 1730 if (!deserializer.tryGetTransferredOffscreenCanvas(
1729 width, height, canvasId, clientId, sinkId, localId, nonce, value)) 1731 width, height, canvasId, clientId, sinkId, localId, nonceHigh,
1732 nonceLow, value))
1730 return false; 1733 return false;
1731 break; 1734 break;
1732 } 1735 }
1733 case SharedArrayBufferTransferTag: { 1736 case SharedArrayBufferTransferTag: {
1734 if (!m_version) 1737 if (!m_version)
1735 return false; 1738 return false;
1736 uint32_t index; 1739 uint32_t index;
1737 if (!doReadUint32(&index)) 1740 if (!doReadUint32(&index))
1738 return false; 1741 return false;
1739 if (!deserializer.tryGetTransferredSharedArrayBuffer(index, value)) 1742 if (!deserializer.tryGetTransferredSharedArrayBuffer(index, value))
(...skipping 846 matching lines...) Expand 10 before | Expand all | Expand 10 after
2586 return true; 2589 return true;
2587 } 2590 }
2588 2591
2589 bool ScriptValueDeserializer::tryGetTransferredOffscreenCanvas( 2592 bool ScriptValueDeserializer::tryGetTransferredOffscreenCanvas(
2590 uint32_t width, 2593 uint32_t width,
2591 uint32_t height, 2594 uint32_t height,
2592 uint32_t canvasId, 2595 uint32_t canvasId,
2593 uint32_t clientId, 2596 uint32_t clientId,
2594 uint32_t sinkId, 2597 uint32_t sinkId,
2595 uint32_t localId, 2598 uint32_t localId,
2596 uint64_t nonce, 2599 uint64_t nonceHigh,
2600 uint64_t nonceLow,
2597 v8::Local<v8::Value>* object) { 2601 v8::Local<v8::Value>* object) {
2598 OffscreenCanvas* offscreenCanvas = OffscreenCanvas::create(width, height); 2602 OffscreenCanvas* offscreenCanvas = OffscreenCanvas::create(width, height);
2599 offscreenCanvas->setAssociatedCanvasId(canvasId); 2603 offscreenCanvas->setAssociatedCanvasId(canvasId);
2600 offscreenCanvas->setSurfaceId(clientId, sinkId, localId, nonce); 2604 offscreenCanvas->setSurfaceId(clientId, sinkId, localId, nonceHigh, nonceLow);
2601 *object = toV8(offscreenCanvas, m_reader.getScriptState()); 2605 *object = toV8(offscreenCanvas, m_reader.getScriptState());
2602 if ((*object).IsEmpty()) 2606 if ((*object).IsEmpty())
2603 return false; 2607 return false;
2604 return true; 2608 return true;
2605 } 2609 }
2606 2610
2607 bool ScriptValueDeserializer::tryGetObjectFromObjectReference( 2611 bool ScriptValueDeserializer::tryGetObjectFromObjectReference(
2608 uint32_t reference, 2612 uint32_t reference,
2609 v8::Local<v8::Value>* object) { 2613 v8::Local<v8::Value>* object) {
2610 if (reference >= m_objectPool.size()) 2614 if (reference >= m_objectPool.size())
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2676 m_openCompositeReferenceStack[m_openCompositeReferenceStack.size() - 1]; 2680 m_openCompositeReferenceStack[m_openCompositeReferenceStack.size() - 1];
2677 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 2681 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() -
2678 1); 2682 1);
2679 if (objectReference >= m_objectPool.size()) 2683 if (objectReference >= m_objectPool.size())
2680 return false; 2684 return false;
2681 *object = m_objectPool[objectReference]; 2685 *object = m_objectPool[objectReference];
2682 return true; 2686 return true;
2683 } 2687 }
2684 2688
2685 } // namespace blink 2689 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698