| Index: third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h b/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h
|
| index 7da9c69b2435c4f220bcdb36ff0a668fa39957d6..f4f5b3d7bd2dcff5e046662e506be92ce741ffc8 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValue.h
|
| @@ -91,14 +91,29 @@ class CORE_EXPORT SerializedScriptValue
|
| // has been the cause of at least one bug in the past.
|
| static constexpr uint32_t kWireFormatVersion = 17;
|
|
|
| + // This enumeration specifies whether we're serializing a value for storage;
|
| + // e.g. when writing to IndexedDB. This corresponds to the forStorage flag of
|
| + // the HTML spec:
|
| + // https://html.spec.whatwg.org/multipage/infrastructure.html#safe-passing-of-structured-data
|
| + enum StoragePolicy {
|
| + // Not persisted; used only during the execution of the browser.
|
| + kNotForStorage,
|
| + // May be written to disk and read during a subsequent execution of the
|
| + // browser.
|
| + kForStorage,
|
| + };
|
| +
|
| struct SerializeOptions {
|
| STACK_ALLOCATED();
|
| +
|
| + SerializeOptions() {}
|
| + explicit SerializeOptions(StoragePolicy for_storage)
|
| + : for_storage(for_storage) {}
|
| +
|
| Transferables* transferables = nullptr;
|
| WebBlobInfoArray* blob_info = nullptr;
|
| bool write_wasm_to_stream = false;
|
| - // Set when serializing a value for storage; e.g. when writing to
|
| - // IndexedDB.
|
| - bool for_storage = false;
|
| + StoragePolicy for_storage = kNotForStorage;
|
| };
|
| static PassRefPtr<SerializedScriptValue> Serialize(v8::Isolate*,
|
| v8::Local<v8::Value>,
|
| @@ -238,10 +253,10 @@ struct NativeValueTraits<SerializedScriptValue>
|
| CORE_EXPORT static inline PassRefPtr<SerializedScriptValue> NativeValue(
|
| v8::Isolate* isolate,
|
| v8::Local<v8::Value> value,
|
| + const SerializedScriptValue::SerializeOptions& options,
|
| ExceptionState& exception_state) {
|
| - return SerializedScriptValue::Serialize(
|
| - isolate, value, SerializedScriptValue::SerializeOptions(),
|
| - exception_state);
|
| + return SerializedScriptValue::Serialize(isolate, value, options,
|
| + exception_state);
|
| }
|
| };
|
|
|
|
|