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

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

Issue 2017543002: [Binding] [Refactoring] Make SerializedScriptValueWriter protected (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: writeNull() Created 4 years, 6 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 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 ScriptValueSerializer::Status ScriptValueSerializer::serialize(v8::Local<v8::Val ue> value) 755 ScriptValueSerializer::Status ScriptValueSerializer::serialize(v8::Local<v8::Val ue> value)
756 { 756 {
757 v8::HandleScope scope(isolate()); 757 v8::HandleScope scope(isolate());
758 m_writer.writeVersion(); 758 m_writer.writeVersion();
759 StateBase* state = doSerialize(value, 0); 759 StateBase* state = doSerialize(value, 0);
760 while (state) 760 while (state)
761 state = state->advance(*this); 761 state = state->advance(*this);
762 return m_status; 762 return m_status;
763 } 763 }
764 764
765 // static
766 String ScriptValueSerializer::serializeWTFString(const String& data)
767 {
768 SerializedScriptValueWriter valueWriter;
769 valueWriter.writeWebCoreString(data);
770 return valueWriter.takeWireString();
771 }
772
773 // static
774 String ScriptValueSerializer::serializeNullValue()
775 {
776 SerializedScriptValueWriter valueWriter;
777 valueWriter.writeNull();
778 return valueWriter.takeWireString();
779 }
780
765 ScriptValueSerializer::StateBase* ScriptValueSerializer::doSerialize(v8::Local<v 8::Value> value, ScriptValueSerializer::StateBase* next) 781 ScriptValueSerializer::StateBase* ScriptValueSerializer::doSerialize(v8::Local<v 8::Value> value, ScriptValueSerializer::StateBase* next)
766 { 782 {
767 m_writer.writeReferenceCount(m_nextObjectReference); 783 m_writer.writeReferenceCount(m_nextObjectReference);
768 784
769 if (value.IsEmpty()) 785 if (value.IsEmpty())
770 return handleError(InputError, "The empty property cannot be cloned.", n ext); 786 return handleError(InputError, "The empty property cannot be cloned.", n ext);
771 787
772 uint32_t objectReference; 788 uint32_t objectReference;
773 if ((value->IsObject() || value->IsDate() || value->IsRegExp()) 789 if ((value->IsObject() || value->IsDate() || value->IsRegExp())
774 && m_objectPool.tryGet(value.As<v8::Object>(), &objectReference)) { 790 && m_objectPool.tryGet(value.As<v8::Object>(), &objectReference)) {
(...skipping 1605 matching lines...) Expand 10 before | Expand all | Expand 10 after
2380 return false; 2396 return false;
2381 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1]; 2397 uint32_t objectReference = m_openCompositeReferenceStack[m_openCompositeRefe renceStack.size() - 1];
2382 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1); 2398 m_openCompositeReferenceStack.shrink(m_openCompositeReferenceStack.size() - 1);
2383 if (objectReference >= m_objectPool.size()) 2399 if (objectReference >= m_objectPool.size())
2384 return false; 2400 return false;
2385 *object = m_objectPool[objectReference]; 2401 *object = m_objectPool[objectReference];
2386 return true; 2402 return true;
2387 } 2403 }
2388 2404
2389 } // namespace blink 2405 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698