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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h

Issue 2768113002: WIP: Create a LongStringCollection that transfers long strings with fewer copies.
Patch Set: Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
index 2317349b8a006cfadb5d890e5af3578bdc8ee599..fa9ba734e4ba5c06c482901c1143a2ced243788a 100644
--- a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
+++ b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.h
@@ -36,6 +36,7 @@
#include "bindings/core/v8/NativeValueTraits.h"
#include "bindings/core/v8/ScriptValue.h"
#include "bindings/core/v8/Transferables.h"
+#include "bindings/core/v8/serialization/LongStringCollection.h"
#include "core/CoreExport.h"
#include "v8/include/v8.h"
#include "wtf/Allocator.h"
@@ -81,6 +82,7 @@ class CORE_EXPORT SerializedScriptValue
STACK_ALLOCATED();
Transferables* transferables = nullptr;
WebBlobInfoArray* blobInfo = nullptr;
+ LongStringPolicy longStringPolicy;
};
static PassRefPtr<SerializedScriptValue> serialize(v8::Isolate*,
v8::Local<v8::Value>,
@@ -91,6 +93,7 @@ class CORE_EXPORT SerializedScriptValue
v8::Local<v8::Value>);
static PassRefPtr<SerializedScriptValue> create();
+ static PassRefPtr<SerializedScriptValue> create(LongStringPolicy);
static PassRefPtr<SerializedScriptValue> create(const String&);
static PassRefPtr<SerializedScriptValue> create(const char* data,
size_t length);
@@ -164,6 +167,7 @@ class CORE_EXPORT SerializedScriptValue
ImageBitmapContentsArray* getImageBitmapContentsArray() {
return m_imageBitmapContentsArray.get();
}
+ const LongStringCollection& longStrings() { return m_longStrings; }
private:
friend class ScriptValueSerializer;
@@ -175,6 +179,7 @@ class CORE_EXPORT SerializedScriptValue
using DataBufferPtr = std::unique_ptr<uint8_t[], BufferDeleter>;
SerializedScriptValue();
+ explicit SerializedScriptValue(LongStringPolicy);
explicit SerializedScriptValue(const String& wireData);
void setData(DataBufferPtr data, size_t size) {
@@ -198,6 +203,7 @@ class CORE_EXPORT SerializedScriptValue
std::unique_ptr<ArrayBufferContentsArray> m_arrayBufferContentsArray;
std::unique_ptr<ImageBitmapContentsArray> m_imageBitmapContentsArray;
BlobDataHandleMap m_blobDataHandles;
+ LongStringCollection m_longStrings;
bool m_hasRegisteredExternalAllocation;
bool m_transferablesNeedExternalAllocationRegistration;
« no previous file with comments | « third_party/WebKit/Source/bindings/bindings.gni ('k') | third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698