| OLD | NEW |
| 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 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 isolate(), transferables->offscreenCanvases, exceptionState); | 801 isolate(), transferables->offscreenCanvases, exceptionState); |
| 802 } | 802 } |
| 803 | 803 |
| 804 // static | 804 // static |
| 805 String ScriptValueSerializer::serializeWTFString(const String& data) { | 805 String ScriptValueSerializer::serializeWTFString(const String& data) { |
| 806 SerializedScriptValueWriter valueWriter; | 806 SerializedScriptValueWriter valueWriter; |
| 807 valueWriter.writeWebCoreString(data); | 807 valueWriter.writeWebCoreString(data); |
| 808 return valueWriter.takeWireString(); | 808 return valueWriter.takeWireString(); |
| 809 } | 809 } |
| 810 | 810 |
| 811 // static | |
| 812 String ScriptValueSerializer::serializeNullValue() { | |
| 813 SerializedScriptValueWriter valueWriter; | |
| 814 valueWriter.writeNull(); | |
| 815 return valueWriter.takeWireString(); | |
| 816 } | |
| 817 | |
| 818 ScriptValueSerializer::StateBase* ScriptValueSerializer::doSerialize( | 811 ScriptValueSerializer::StateBase* ScriptValueSerializer::doSerialize( |
| 819 v8::Local<v8::Value> value, | 812 v8::Local<v8::Value> value, |
| 820 StateBase* next) { | 813 StateBase* next) { |
| 821 m_writer.writeReferenceCount(m_nextObjectReference); | 814 m_writer.writeReferenceCount(m_nextObjectReference); |
| 822 | 815 |
| 823 if (value.IsEmpty()) | 816 if (value.IsEmpty()) |
| 824 return handleError(Status::InputError, | 817 return handleError(Status::InputError, |
| 825 "The empty property cannot be cloned.", next); | 818 "The empty property cannot be cloned.", next); |
| 826 | 819 |
| 827 uint32_t objectReference; | 820 uint32_t objectReference; |
| (...skipping 1808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2636 m_openCompositeReferenceStack[m_openCompositeReferenceStack.size() - 1]; | 2629 m_openCompositeReferenceStack[m_openCompositeReferenceStack.size() - 1]; |
| 2637 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - | 2630 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - |
| 2638 1); | 2631 1); |
| 2639 if (objectReference >= m_objectPool.size()) | 2632 if (objectReference >= m_objectPool.size()) |
| 2640 return false; | 2633 return false; |
| 2641 *object = m_objectPool[objectReference]; | 2634 *object = m_objectPool[objectReference]; |
| 2642 return true; | 2635 return true; |
| 2643 } | 2636 } |
| 2644 | 2637 |
| 2645 } // namespace blink | 2638 } // namespace blink |
| OLD | NEW |