summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/streams/transferable_streams.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/streams/transferable_streams.h')
-rw-r--r--chromium/third_party/blink/renderer/core/streams/transferable_streams.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/chromium/third_party/blink/renderer/core/streams/transferable_streams.h b/chromium/third_party/blink/renderer/core/streams/transferable_streams.h
index 3c75195255e..dbace5ce634 100644
--- a/chromium/third_party/blink/renderer/core/streams/transferable_streams.h
+++ b/chromium/third_party/blink/renderer/core/streams/transferable_streams.h
@@ -7,6 +7,8 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_TRANSFERABLE_STREAMS_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_TRANSFERABLE_STREAMS_H_
+#include <memory>
+
#include "third_party/blink/renderer/core/core_export.h"
namespace blink {
@@ -14,25 +16,42 @@ namespace blink {
class ExceptionState;
class MessagePort;
class ReadableStream;
+class ReadableStreamTransferringOptimizer;
class ScriptState;
+class UnderlyingSourceBase;
class WritableStream;
+class WritableStreamTransferringOptimizer;
// Creates the writable side of a cross-realm identity transform stream, using
// |port| for communication. |port| must be entangled with another MessagePort
// which is passed to CreateCrossRealmTransformReadable().
// Equivalent to SetUpCrossRealmTransformWritable in the standard:
// https://streams.spec.whatwg.org/#abstract-opdef-setupcrossrealmtransformwritable
-CORE_EXPORT WritableStream* CreateCrossRealmTransformWritable(ScriptState*,
- MessagePort* port,
- ExceptionState&);
+CORE_EXPORT WritableStream* CreateCrossRealmTransformWritable(
+ ScriptState*,
+ MessagePort* port,
+ std::unique_ptr<WritableStreamTransferringOptimizer> optimizer,
+ ExceptionState&);
// Creates the readable side of a cross-realm identity transform stream. |port|
// is used symmetrically with CreateCrossRealmTransformWritable().
// Equivalent to SetUpCrossRealmTransformReadable in the standard:
// https://streams.spec.whatwg.org/#abstract-opdef-setupcrossrealmtransformreadable
-CORE_EXPORT ReadableStream* CreateCrossRealmTransformReadable(ScriptState*,
- MessagePort* port,
- ExceptionState&);
+CORE_EXPORT ReadableStream* CreateCrossRealmTransformReadable(
+ ScriptState*,
+ MessagePort* port,
+ std::unique_ptr<ReadableStreamTransferringOptimizer> optimizer,
+ ExceptionState&);
+
+// Creates a ReadableStream that is identical to the concatenation of
+// a ReadableStream created with `source1` and a ReadableStream created with
+// `source2`.
+// The implementation is optimized with an assumption that `source2` is (much)
+// longer than `source1`.
+CORE_EXPORT ReadableStream* CreateConcatenatedReadableStream(
+ ScriptState*,
+ UnderlyingSourceBase* source1,
+ UnderlyingSourceBase* source2);
} // namespace blink