12015-06-18 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr>
2
3 [Streams API] Implement ReadableStream cancel (abstract part)
4 https://bugs.webkit.org/show_bug.cgi?id=146111
5
6 Reviewed by NOBODY (OOPS!).
7
8 This patch implements ReadableStream and ReadableStreamReader cancel.
9 The reader delegates cancellation to its stream.
10
11 This patch also ensures that controller.close() will not throw in case cancellation is on-going.
12
13 A follow-up patch will implement the calling of 'cancel' JS callback for JS sources.
14
15 Covered by rebased tests.
16
17 * Modules/streams/ReadableStream.cpp:
18 (WebCore::ReadableStream::cancel): Checks whether locked or not before cancelling.
19 (WebCore::ReadableStream::cancelNoCheck): Cancel without lock check.
20 (WebCore::ReadableStream::notifyCancelSucceeded): Async cancel callback.
21 (WebCore::ReadableStream::notifyCancelFailed): Ditto.
22 * Modules/streams/ReadableStream.h:
23 * Modules/streams/ReadableStream.idl: Cleaned up IDL.
24 * Modules/streams/ReadableStreamReader.cpp:
25 (WebCore::ReadableStreamReader::cancel):
26 * Modules/streams/ReadableStreamReader.h:
27 * Modules/streams/ReadableStreamReader.idl: Cleaned up IDL
28 * bindings/js/JSReadableStreamControllerCustom.cpp:
29 (WebCore::JSReadableStreamController::close):
30 * bindings/js/JSReadableStreamCustom.cpp:
31 (WebCore::JSReadableStream::cancel):
32 * bindings/js/JSReadableStreamReaderCustom.cpp:
33 (WebCore::JSReadableStreamReader::cancel):
34 * bindings/js/ReadableJSStream.cpp:
35 (WebCore::ReadableJSStream::doCancel):
36 * bindings/js/ReadableJSStream.h:
37