blob: e7a60489b81862752c5f35e6ddd820750a71043a [file] [edit]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SerializedScriptValueForModulesFactory_h
#define SerializedScriptValueForModulesFactory_h
#include "bindings/core/v8/SerializedScriptValueFactory.h"
#include "wtf/Noncopyable.h"
namespace blink {
class SerializedScriptValueForModulesFactory final : public SerializedScriptValueFactory {
WTF_MAKE_FAST_ALLOCATED(SerializedScriptValueForModulesFactory);
WTF_MAKE_NONCOPYABLE(SerializedScriptValueForModulesFactory);
public:
SerializedScriptValueForModulesFactory() : SerializedScriptValueFactory() { }
PassRefPtr<SerializedScriptValue> create(v8::Isolate*, v8::Local<v8::Value>, MessagePortArray*, ArrayBufferArray*, WebBlobInfoArray*, ExceptionState&) override;
PassRefPtr<SerializedScriptValue> create(v8::Isolate*, const String&) override;
protected:
ScriptValueSerializer::Status doSerialize(v8::Local<v8::Value>, SerializedScriptValueWriter&, MessagePortArray*, ArrayBufferArray*, WebBlobInfoArray*, BlobDataHandleMap&, v8::TryCatch&, String& errorMessage, v8::Isolate*) override;
v8::Local<v8::Value> deserialize(String& data, BlobDataHandleMap& blobDataHandles, ArrayBufferContentsArray*, v8::Isolate*, MessagePortArray* messagePorts, const WebBlobInfoArray*) override;
};
} // namespace blink
#endif // SerializedScriptValueForModulesFactory_h