summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/streams/underlying_source_base.idl
blob: 8e61f0aac310418a0ae89a2086cf7cf1ff0c49b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Copyright 2016 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.

// This is not a spec interface. Instead, it is used to generate bindings
// so that Blink code which wishes to create a stream can derive from
// UnderlyingSourceBase, and a JavaScript object can then be generated
// automatically for use in initializing a ReadableStream.

[
    ActiveScriptWrappable,
    NoInterfaceObject
]
interface UnderlyingSourceBase {
    [CallWith=ScriptState, ImplementedAs=startWrapper] Promise<void> start(any stream);
    [CallWith=ScriptState] Promise<void> pull();
    [CallWith=ScriptState, ImplementedAs=cancelWrapper] Promise<void> cancel([Default=Undefined] optional any reason);

    // This only exists to prevent Object.prototype.type being accessed.
    [CallWith=ScriptState] readonly attribute any type;

    void notifyLockAcquired();
    void notifyLockReleased();
};