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

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

Issue 2267403006: Remove redundant IsEmpty checks after calling toV8() Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: temp Created 4 years, 3 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 // 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 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 1148
1149 ScriptValueSerializer::StateBase* ScriptValueSerializer::writeAndGreyArrayBuffer View(v8::Local<v8::Object> object, StateBase* next) 1149 ScriptValueSerializer::StateBase* ScriptValueSerializer::writeAndGreyArrayBuffer View(v8::Local<v8::Object> object, StateBase* next)
1150 { 1150 {
1151 ASSERT(!object.IsEmpty()); 1151 ASSERT(!object.IsEmpty());
1152 DOMArrayBufferView* arrayBufferView = V8ArrayBufferView::toImpl(object); 1152 DOMArrayBufferView* arrayBufferView = V8ArrayBufferView::toImpl(object);
1153 if (!arrayBufferView) 1153 if (!arrayBufferView)
1154 return nullptr; 1154 return nullptr;
1155 if (!arrayBufferView->bufferBase()) 1155 if (!arrayBufferView->bufferBase())
1156 return handleError(Status::DataCloneError, "An ArrayBuffer could not be cloned.", next); 1156 return handleError(Status::DataCloneError, "An ArrayBuffer could not be cloned.", next);
1157 v8::Local<v8::Value> underlyingBuffer = toV8(arrayBufferView->bufferBase(), m_scriptState->context()->Global(), isolate()); 1157 v8::Local<v8::Value> underlyingBuffer = toV8(arrayBufferView->bufferBase(), m_scriptState->context()->Global(), isolate());
1158 if (underlyingBuffer.IsEmpty())
1159 return handleError(Status::DataCloneError, "An ArrayBuffer could not be cloned.", next);
1160 StateBase* stateOut = doSerializeArrayBuffer(underlyingBuffer, next); 1158 StateBase* stateOut = doSerializeArrayBuffer(underlyingBuffer, next);
1161 if (stateOut) 1159 if (stateOut)
1162 return stateOut; 1160 return stateOut;
1163 m_writer.writeArrayBufferView(*arrayBufferView); 1161 m_writer.writeArrayBufferView(*arrayBufferView);
1164 // This should be safe: we serialize something that we know to be a wrapper (see 1162 // This should be safe: we serialize something that we know to be a wrapper (see
1165 // the toV8 call above), so the call to doSerializeArrayBuffer should neithe r 1163 // the toV8 call above), so the call to doSerializeArrayBuffer should neithe r
1166 // cause the system stack to overflow nor should it have potential to reach 1164 // cause the system stack to overflow nor should it have potential to reach
1167 // this ArrayBufferView again. 1165 // this ArrayBufferView again.
1168 // 1166 //
1169 // We do need to grey the underlying buffer before we grey its view, however ; 1167 // We do need to grey the underlying buffer before we grey its view, however ;
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
1768 return false; 1766 return false;
1769 ImageData* imageData = ImageData::create(IntSize(width, height)); 1767 ImageData* imageData = ImageData::create(IntSize(width, height));
1770 DOMUint8ClampedArray* pixelArray = imageData->data(); 1768 DOMUint8ClampedArray* pixelArray = imageData->data();
1771 ASSERT(pixelArray); 1769 ASSERT(pixelArray);
1772 ASSERT(pixelArray->length() >= pixelDataLength); 1770 ASSERT(pixelArray->length() >= pixelDataLength);
1773 memcpy(pixelArray->data(), m_buffer + m_position, pixelDataLength); 1771 memcpy(pixelArray->data(), m_buffer + m_position, pixelDataLength);
1774 m_position += pixelDataLength; 1772 m_position += pixelDataLength;
1775 if (!imageData) 1773 if (!imageData)
1776 return false; 1774 return false;
1777 *value = toV8(imageData, m_scriptState->context()->Global(), isolate()); 1775 *value = toV8(imageData, m_scriptState->context()->Global(), isolate());
1778 return !value->IsEmpty(); 1776 return true;
1779 } 1777 }
1780 1778
1781 bool SerializedScriptValueReader::readImageBitmap(v8::Local<v8::Value>* value) 1779 bool SerializedScriptValueReader::readImageBitmap(v8::Local<v8::Value>* value)
1782 { 1780 {
1783 uint32_t isOriginClean; 1781 uint32_t isOriginClean;
1784 if (!doReadUint32(&isOriginClean)) 1782 if (!doReadUint32(&isOriginClean))
1785 return false; 1783 return false;
1786 uint32_t isPremultiplied; 1784 uint32_t isPremultiplied;
1787 if (!doReadUint32(&isPremultiplied)) 1785 if (!doReadUint32(&isPremultiplied))
1788 return false; 1786 return false;
1789 uint32_t width; 1787 uint32_t width;
1790 uint32_t height; 1788 uint32_t height;
1791 uint32_t pixelDataLength; 1789 uint32_t pixelDataLength;
1792 if (!doReadImageDataProperties(&width, &height, &pixelDataLength)) 1790 if (!doReadImageDataProperties(&width, &height, &pixelDataLength))
1793 return false; 1791 return false;
1794 std::unique_ptr<uint8_t[]> pixelData = wrapArrayUnique(new uint8_t[pixelData Length]); 1792 std::unique_ptr<uint8_t[]> pixelData = wrapArrayUnique(new uint8_t[pixelData Length]);
1795 memcpy(pixelData.get(), m_buffer + m_position, pixelDataLength); 1793 memcpy(pixelData.get(), m_buffer + m_position, pixelDataLength);
1796 m_position += pixelDataLength; 1794 m_position += pixelDataLength;
1797 ImageBitmap* imageBitmap = ImageBitmap::create(std::move(pixelData), width, height, isPremultiplied, isOriginClean); 1795 ImageBitmap* imageBitmap = ImageBitmap::create(std::move(pixelData), width, height, isPremultiplied, isOriginClean);
1798 if (!imageBitmap) 1796 if (!imageBitmap)
1799 return false; 1797 return false;
1800 *value = toV8(imageBitmap, m_scriptState->context()->Global(), isolate()); 1798 *value = toV8(imageBitmap, m_scriptState->context()->Global(), isolate());
1801 return !value->IsEmpty(); 1799 return true;
1802 } 1800 }
1803 1801
1804 bool SerializedScriptValueReader::readCompositorProxy(v8::Local<v8::Value>* valu e) 1802 bool SerializedScriptValueReader::readCompositorProxy(v8::Local<v8::Value>* valu e)
1805 { 1803 {
1806 uint32_t attributes; 1804 uint32_t attributes;
1807 uint64_t element; 1805 uint64_t element;
1808 if (!doReadUint64(&element)) 1806 if (!doReadUint64(&element))
1809 return false; 1807 return false;
1810 if (!doReadUint32(&attributes)) 1808 if (!doReadUint32(&attributes))
1811 return false; 1809 return false;
1812 1810
1813 CompositorProxy* compositorProxy = CompositorProxy::create(m_scriptState->ge tExecutionContext(), element, attributes); 1811 CompositorProxy* compositorProxy = CompositorProxy::create(m_scriptState->ge tExecutionContext(), element, attributes);
1814 *value = toV8(compositorProxy, m_scriptState->context()->Global(), isolate() ); 1812 *value = toV8(compositorProxy, m_scriptState->context()->Global(), isolate() );
1815 return !value->IsEmpty(); 1813 return true;
1816 } 1814 }
1817 1815
1818 DOMArrayBuffer* SerializedScriptValueReader::doReadArrayBuffer() 1816 DOMArrayBuffer* SerializedScriptValueReader::doReadArrayBuffer()
1819 { 1817 {
1820 uint32_t byteLength; 1818 uint32_t byteLength;
1821 if (!doReadUint32(&byteLength)) 1819 if (!doReadUint32(&byteLength))
1822 return nullptr; 1820 return nullptr;
1823 if (m_position + byteLength > m_length) 1821 if (m_position + byteLength > m_length)
1824 return nullptr; 1822 return nullptr;
1825 const void* bufferStart = m_buffer + m_position; 1823 const void* bufferStart = m_buffer + m_position;
1826 m_position += byteLength; 1824 m_position += byteLength;
1827 return DOMArrayBuffer::create(bufferStart, byteLength); 1825 return DOMArrayBuffer::create(bufferStart, byteLength);
1828 } 1826 }
1829 1827
1830 bool SerializedScriptValueReader::readArrayBuffer(v8::Local<v8::Value>* value) 1828 bool SerializedScriptValueReader::readArrayBuffer(v8::Local<v8::Value>* value)
1831 { 1829 {
1832 DOMArrayBuffer* arrayBuffer = doReadArrayBuffer(); 1830 DOMArrayBuffer* arrayBuffer = doReadArrayBuffer();
1833 if (!arrayBuffer) 1831 if (!arrayBuffer)
1834 return false; 1832 return false;
1835 *value = toV8(arrayBuffer, m_scriptState->context()->Global(), isolate()); 1833 *value = toV8(arrayBuffer, m_scriptState->context()->Global(), isolate());
1836 return !value->IsEmpty(); 1834 return true;
1837 } 1835 }
1838 1836
1839 bool SerializedScriptValueReader::readArrayBufferView(v8::Local<v8::Value>* valu e, ScriptValueDeserializer& deserializer) 1837 bool SerializedScriptValueReader::readArrayBufferView(v8::Local<v8::Value>* valu e, ScriptValueDeserializer& deserializer)
1840 { 1838 {
1841 ArrayBufferViewSubTag subTag; 1839 ArrayBufferViewSubTag subTag;
1842 uint32_t byteOffset; 1840 uint32_t byteOffset;
1843 uint32_t byteLength; 1841 uint32_t byteLength;
1844 DOMArrayBufferBase* arrayBuffer = nullptr; 1842 DOMArrayBufferBase* arrayBuffer = nullptr;
1845 v8::Local<v8::Value> arrayBufferV8Value; 1843 v8::Local<v8::Value> arrayBufferV8Value;
1846 if (!readArrayBufferViewSubTag(&subTag)) 1844 if (!readArrayBufferViewSubTag(&subTag))
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1934 case FloatArrayTag: 1932 case FloatArrayTag:
1935 *value = toV8(DOMFloat32Array::create(arrayBuffer, byteOffset, numElemen ts), creationContext, isolate()); 1933 *value = toV8(DOMFloat32Array::create(arrayBuffer, byteOffset, numElemen ts), creationContext, isolate());
1936 break; 1934 break;
1937 case DoubleArrayTag: 1935 case DoubleArrayTag:
1938 *value = toV8(DOMFloat64Array::create(arrayBuffer, byteOffset, numElemen ts), creationContext, isolate()); 1936 *value = toV8(DOMFloat64Array::create(arrayBuffer, byteOffset, numElemen ts), creationContext, isolate());
1939 break; 1937 break;
1940 case DataViewTag: 1938 case DataViewTag:
1941 *value = toV8(DOMDataView::create(arrayBuffer, byteOffset, byteLength), creationContext, isolate()); 1939 *value = toV8(DOMDataView::create(arrayBuffer, byteOffset, byteLength), creationContext, isolate());
1942 break; 1940 break;
1943 } 1941 }
1944 return !value->IsEmpty(); 1942 return true;
1945 } 1943 }
1946 1944
1947 bool SerializedScriptValueReader::readRegExp(v8::Local<v8::Value>* value) 1945 bool SerializedScriptValueReader::readRegExp(v8::Local<v8::Value>* value)
1948 { 1946 {
1949 v8::Local<v8::Value> pattern; 1947 v8::Local<v8::Value> pattern;
1950 if (!readString(&pattern)) 1948 if (!readString(&pattern))
1951 return false; 1949 return false;
1952 uint32_t flags; 1950 uint32_t flags;
1953 if (!doReadUint32(&flags)) 1951 if (!doReadUint32(&flags))
1954 return false; 1952 return false;
(...skipping 24 matching lines...) Expand all
1979 ASSERT(!m_blobInfo); 1977 ASSERT(!m_blobInfo);
1980 if (!readWebCoreString(&uuid)) 1978 if (!readWebCoreString(&uuid))
1981 return false; 1979 return false;
1982 if (!readWebCoreString(&type)) 1980 if (!readWebCoreString(&type))
1983 return false; 1981 return false;
1984 if (!doReadUint64(&size)) 1982 if (!doReadUint64(&size))
1985 return false; 1983 return false;
1986 blob = Blob::create(getOrCreateBlobDataHandle(uuid, type, size)); 1984 blob = Blob::create(getOrCreateBlobDataHandle(uuid, type, size));
1987 } 1985 }
1988 *value = toV8(blob, m_scriptState->context()->Global(), isolate()); 1986 *value = toV8(blob, m_scriptState->context()->Global(), isolate());
1989 return !value->IsEmpty(); 1987 return true;
1990 } 1988 }
1991 1989
1992 bool SerializedScriptValueReader::readFile(v8::Local<v8::Value>* value, bool isI ndexed) 1990 bool SerializedScriptValueReader::readFile(v8::Local<v8::Value>* value, bool isI ndexed)
1993 { 1991 {
1994 File* file = nullptr; 1992 File* file = nullptr;
1995 if (isIndexed) { 1993 if (isIndexed) {
1996 if (m_version < 6) 1994 if (m_version < 6)
1997 return false; 1995 return false;
1998 file = readFileIndexHelper(); 1996 file = readFileIndexHelper();
1999 } else { 1997 } else {
2000 file = readFileHelper(); 1998 file = readFileHelper();
2001 } 1999 }
2002 if (!file) 2000 if (!file)
2003 return false; 2001 return false;
2004 *value = toV8(file, m_scriptState->context()->Global(), isolate()); 2002 *value = toV8(file, m_scriptState->context()->Global(), isolate());
2005 return !value->IsEmpty(); 2003 return true;
2006 } 2004 }
2007 2005
2008 bool SerializedScriptValueReader::readFileList(v8::Local<v8::Value>* value, bool isIndexed) 2006 bool SerializedScriptValueReader::readFileList(v8::Local<v8::Value>* value, bool isIndexed)
2009 { 2007 {
2010 if (m_version < 3) 2008 if (m_version < 3)
2011 return false; 2009 return false;
2012 uint32_t length; 2010 uint32_t length;
2013 if (!doReadUint32(&length)) 2011 if (!doReadUint32(&length))
2014 return false; 2012 return false;
2015 FileList* fileList = FileList::create(); 2013 FileList* fileList = FileList::create();
2016 for (unsigned i = 0; i < length; ++i) { 2014 for (unsigned i = 0; i < length; ++i) {
2017 File* file = nullptr; 2015 File* file = nullptr;
2018 if (isIndexed) { 2016 if (isIndexed) {
2019 if (m_version < 6) 2017 if (m_version < 6)
2020 return false; 2018 return false;
2021 file = readFileIndexHelper(); 2019 file = readFileIndexHelper();
2022 } else { 2020 } else {
2023 file = readFileHelper(); 2021 file = readFileHelper();
2024 } 2022 }
2025 if (!file) 2023 if (!file)
2026 return false; 2024 return false;
2027 fileList->append(file); 2025 fileList->append(file);
2028 } 2026 }
2029 *value = toV8(fileList, m_scriptState->context()->Global(), isolate()); 2027 *value = toV8(fileList, m_scriptState->context()->Global(), isolate());
2030 return !value->IsEmpty(); 2028 return true;
2031 } 2029 }
2032 2030
2033 File* SerializedScriptValueReader::readFileHelper() 2031 File* SerializedScriptValueReader::readFileHelper()
2034 { 2032 {
2035 if (m_version < 3) 2033 if (m_version < 3)
2036 return nullptr; 2034 return nullptr;
2037 ASSERT(!m_blobInfo); 2035 ASSERT(!m_blobInfo);
2038 String path; 2036 String path;
2039 String name; 2037 String name;
2040 String relativePath; 2038 String relativePath;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
2294 } 2292 }
2295 2293
2296 bool ScriptValueDeserializer::tryGetTransferredMessagePort(uint32_t index, v8::L ocal<v8::Value>* object) 2294 bool ScriptValueDeserializer::tryGetTransferredMessagePort(uint32_t index, v8::L ocal<v8::Value>* object)
2297 { 2295 {
2298 if (!m_transferredMessagePorts) 2296 if (!m_transferredMessagePorts)
2299 return false; 2297 return false;
2300 if (index >= m_transferredMessagePorts->size()) 2298 if (index >= m_transferredMessagePorts->size())
2301 return false; 2299 return false;
2302 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->context() ->Global(); 2300 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->context() ->Global();
2303 *object = toV8(m_transferredMessagePorts->at(index).get(), creationContext, m_reader.getScriptState()->isolate()); 2301 *object = toV8(m_transferredMessagePorts->at(index).get(), creationContext, m_reader.getScriptState()->isolate());
2304 return !object->IsEmpty(); 2302 return true;
2305 } 2303 }
2306 2304
2307 bool ScriptValueDeserializer::tryGetTransferredArrayBuffer(uint32_t index, v8::L ocal<v8::Value>* object) 2305 bool ScriptValueDeserializer::tryGetTransferredArrayBuffer(uint32_t index, v8::L ocal<v8::Value>* object)
2308 { 2306 {
2309 if (!m_arrayBufferContents) 2307 if (!m_arrayBufferContents)
2310 return false; 2308 return false;
2311 if (index >= m_arrayBuffers.size()) 2309 if (index >= m_arrayBuffers.size())
2312 return false; 2310 return false;
2313 v8::Local<v8::Value> result = m_arrayBuffers.at(index); 2311 v8::Local<v8::Value> result = m_arrayBuffers.at(index);
2314 if (result.IsEmpty()) { 2312 if (result.IsEmpty()) {
2315 DOMArrayBuffer* buffer = DOMArrayBuffer::create(m_arrayBufferContents->a t(index)); 2313 DOMArrayBuffer* buffer = DOMArrayBuffer::create(m_arrayBufferContents->a t(index));
2316 v8::Isolate* isolate = m_reader.getScriptState()->isolate(); 2314 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2317 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global(); 2315 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2318 result = toV8(buffer, creationContext, isolate); 2316 result = toV8(buffer, creationContext, isolate);
2319 if (result.IsEmpty())
2320 return false;
2321 m_arrayBuffers[index] = result; 2317 m_arrayBuffers[index] = result;
2322 } 2318 }
2323 *object = result; 2319 *object = result;
2324 return true; 2320 return true;
2325 } 2321 }
2326 2322
2327 bool ScriptValueDeserializer::tryGetTransferredImageBitmap(uint32_t index, v8::L ocal<v8::Value>* object) 2323 bool ScriptValueDeserializer::tryGetTransferredImageBitmap(uint32_t index, v8::L ocal<v8::Value>* object)
2328 { 2324 {
2329 if (!m_imageBitmapContents) 2325 if (!m_imageBitmapContents)
2330 return false; 2326 return false;
2331 if (index >= m_imageBitmaps.size()) 2327 if (index >= m_imageBitmaps.size())
2332 return false; 2328 return false;
2333 v8::Local<v8::Value> result = m_imageBitmaps.at(index); 2329 v8::Local<v8::Value> result = m_imageBitmaps.at(index);
2334 if (result.IsEmpty()) { 2330 if (result.IsEmpty()) {
2335 ImageBitmap* bitmap = ImageBitmap::create(m_imageBitmapContents->at(inde x)); 2331 ImageBitmap* bitmap = ImageBitmap::create(m_imageBitmapContents->at(inde x));
2336 v8::Isolate* isolate = m_reader.getScriptState()->isolate(); 2332 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2337 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global(); 2333 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2338 result = toV8(bitmap, creationContext, isolate); 2334 result = toV8(bitmap, creationContext, isolate);
2339 if (result.IsEmpty())
2340 return false;
2341 m_imageBitmaps[index] = result; 2335 m_imageBitmaps[index] = result;
2342 } 2336 }
2343 *object = result; 2337 *object = result;
2344 return true; 2338 return true;
2345 } 2339 }
2346 2340
2347 bool ScriptValueDeserializer::tryGetTransferredSharedArrayBuffer(uint32_t index, v8::Local<v8::Value>* object) 2341 bool ScriptValueDeserializer::tryGetTransferredSharedArrayBuffer(uint32_t index, v8::Local<v8::Value>* object)
2348 { 2342 {
2349 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled()); 2343 ASSERT(RuntimeEnabledFeatures::sharedArrayBufferEnabled());
2350 if (!m_arrayBufferContents) 2344 if (!m_arrayBufferContents)
2351 return false; 2345 return false;
2352 if (index >= m_arrayBuffers.size()) 2346 if (index >= m_arrayBuffers.size())
2353 return false; 2347 return false;
2354 v8::Local<v8::Value> result = m_arrayBuffers.at(index); 2348 v8::Local<v8::Value> result = m_arrayBuffers.at(index);
2355 if (result.IsEmpty()) { 2349 if (result.IsEmpty()) {
2356 DOMSharedArrayBuffer* buffer = DOMSharedArrayBuffer::create(m_arrayBuffe rContents->at(index)); 2350 DOMSharedArrayBuffer* buffer = DOMSharedArrayBuffer::create(m_arrayBuffe rContents->at(index));
2357 v8::Isolate* isolate = m_reader.getScriptState()->isolate(); 2351 v8::Isolate* isolate = m_reader.getScriptState()->isolate();
2358 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global(); 2352 v8::Local<v8::Object> creationContext = m_reader.getScriptState()->conte xt()->Global();
2359 result = toV8(buffer, creationContext, isolate); 2353 result = toV8(buffer, creationContext, isolate);
2360 if (result.IsEmpty())
2361 return false;
2362 m_arrayBuffers[index] = result; 2354 m_arrayBuffers[index] = result;
2363 } 2355 }
2364 *object = result; 2356 *object = result;
2365 return true; 2357 return true;
2366 } 2358 }
2367 2359
2368 bool ScriptValueDeserializer::tryGetTransferredOffscreenCanvas(uint32_t index, u int32_t width, uint32_t height, uint32_t canvasId, uint32_t clientId, uint32_t l ocalId, uint64_t nonce, v8::Local<v8::Value>* object) 2360 bool ScriptValueDeserializer::tryGetTransferredOffscreenCanvas(uint32_t index, u int32_t width, uint32_t height, uint32_t canvasId, uint32_t clientId, uint32_t l ocalId, uint64_t nonce, v8::Local<v8::Value>* object)
2369 { 2361 {
2370 OffscreenCanvas* offscreenCanvas = OffscreenCanvas::create(width, height); 2362 OffscreenCanvas* offscreenCanvas = OffscreenCanvas::create(width, height);
2371 offscreenCanvas->setAssociatedCanvasId(canvasId); 2363 offscreenCanvas->setAssociatedCanvasId(canvasId);
2372 offscreenCanvas->setSurfaceId(clientId, localId, nonce); 2364 offscreenCanvas->setSurfaceId(clientId, localId, nonce);
2373 *object = toV8(offscreenCanvas, m_reader.getScriptState()); 2365 *object = toV8(offscreenCanvas, m_reader.getScriptState());
2374 if ((*object).IsEmpty())
2375 return false;
2376 return true; 2366 return true;
2377 } 2367 }
2378 2368
2379 bool ScriptValueDeserializer::tryGetObjectFromObjectReference(uint32_t reference , v8::Local<v8::Value>* object) 2369 bool ScriptValueDeserializer::tryGetObjectFromObjectReference(uint32_t reference , v8::Local<v8::Value>* object)
2380 { 2370 {
2381 if (reference >= m_objectPool.size()) 2371 if (reference >= m_objectPool.size())
2382 return false; 2372 return false;
2383 *object = m_objectPool[reference]; 2373 *object = m_objectPool[reference];
2384 return object; 2374 return object;
2385 } 2375 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2447 return false; 2437 return false;
2448 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1]; 2438 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1];
2449 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1); 2439 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1);
2450 if (objectReference >= m_objectPool.size()) 2440 if (objectReference >= m_objectPool.size())
2451 return false; 2441 return false;
2452 *object = m_objectPool[objectReference]; 2442 *object = m_objectPool[objectReference];
2453 return true; 2443 return true;
2454 } 2444 }
2455 2445
2456 } // namespace blink 2446 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/ScriptPromiseProperty.h ('k') | third_party/WebKit/Source/bindings/core/v8/ToV8.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698