Changeset 225784 in webkit


Ignore:
Timestamp:
Dec 12, 2017 8:51:54 AM (6 years ago)
Author:
romain.bellessort@crf.canon.fr
Message:

[Readable Streams API] Throw RangeError if a size is provided when creating a readable byte stream
https://bugs.webkit.org/show_bug.cgi?id=180470

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

One new test imported from WPT to check that RangeError is thrown if a size is provided.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated expectations.
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated expectations.
  • web-platform-tests/streams/readable-byte-streams/general.js: Imported one test case from WPT.
  • web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt: Updated expectations.

Source/WebCore:

Throw a RangeError if a ReadableStream is created with type 'bytes' and with a
non-undefined strategy size, as per latest spec:

One new test imported from WPT to check that RangeError is thrown.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream): Check strategy size and throw RangeError if needed.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r225781 r225784  
     12017-12-12  Romain Bellessort  <romain.bellessort@crf.canon.fr>
     2
     3        [Readable Streams API] Throw RangeError if a size is provided when creating a readable byte stream
     4        https://bugs.webkit.org/show_bug.cgi?id=180470
     5
     6        Reviewed by Youenn Fablet.
     7
     8        One new test imported from WPT to check that RangeError is thrown if a size is provided.
     9
     10        * web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated expectations.
     11        * web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated expectations.
     12        * web-platform-tests/streams/readable-byte-streams/general.js: Imported one test case from WPT.
     13        * web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt: Updated expectations.
     14
    1152017-12-12  Ms2ger  <Ms2ger@igalia.com>
    216
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt

    r218926 r225784  
    7272PASS ReadableStreamBYOBReader constructor requires an unlocked ReadableStream
    7373PASS ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes"
     74PASS ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"
    7475
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt

    r218926 r225784  
    7272PASS ReadableStreamBYOBReader constructor requires an unlocked ReadableStream
    7373PASS ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes"
     74PASS ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"
    7475
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.js

    r223327 r225784  
    19441944}, 'ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes"');
    19451945
     1946test(() => {
     1947  assert_throws(new RangeError(), () => new ReadableStream({ type: 'bytes' }, {
     1948    size() {
     1949      return 1;
     1950    }
     1951  }), 'constructor should throw for size function');
     1952
     1953  assert_throws(new RangeError(), () => new ReadableStream({ type: 'bytes' }, { size: null }),
     1954                'constructor should throw for size defined');
     1955
     1956  assert_throws(new RangeError(),
     1957                () => new ReadableStream({ type: 'bytes' }, new CountQueuingStrategy({ highWaterMark: 1 })),
     1958                'constructor should throw when strategy is CountQueuingStrategy');
     1959
     1960  assert_throws(new RangeError(),
     1961                () => new ReadableStream({ type: 'bytes' }, new ByteLengthQueuingStrategy({ highWaterMark: 512 })),
     1962                'constructor should throw when strategy is ByteLengthQueuingStrategy');
     1963
     1964  class HasSizeMethod {
     1965    size() {}
     1966 }
     1967
     1968  assert_throws(new RangeError(), () => new ReadableStream({ type: 'bytes' }, new HasSizeMethod()),
     1969                'constructor should throw when size on the prototype chain');
     1970}, 'ReadableStream constructor should not accept a strategy with a size defined if type is "bytes"');
     1971
    19461972done();
  • trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt

    r224250 r225784  
    7373FAIL ReadableStreamBYOBReader constructor requires an unlocked ReadableStream ReadableByteStreamController is not implemented
    7474FAIL ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes" ReadableByteStreamController is not implemented
     75FAIL ReadableStream constructor should not accept a strategy with a size defined if type is "bytes" assert_throws: constructor should throw for size function function "() => new ReadableStream({ type: 'bytes' }, {
     76    size() {
     77      return 1;
     78    }
     79  })" threw object "TypeError: ReadableByteStreamController is not implemented" ("TypeError") expected object "RangeError" ("RangeError")
    7580
  • trunk/Source/WebCore/ChangeLog

    r225783 r225784  
     12017-12-12  Romain Bellessort  <romain.bellessort@crf.canon.fr>
     2
     3        [Readable Streams API] Throw RangeError if a size is provided when creating a readable byte stream
     4        https://bugs.webkit.org/show_bug.cgi?id=180470
     5
     6        Reviewed by Youenn Fablet.
     7
     8        Throw a RangeError if a ReadableStream is created with type 'bytes' and with a
     9        non-undefined strategy size, as per latest spec:
     10        - https://github.com/whatwg/streams/pull/856
     11        - https://streams.spec.whatwg.org/#rs-constructor (step 4.c)
     12
     13        One new test imported from WPT to check that RangeError is thrown.
     14
     15        * Modules/streams/ReadableStream.js:
     16        (initializeReadableStream): Check strategy size and throw RangeError if needed.
     17
    1182017-12-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>
    219
  • trunk/Source/WebCore/Modules/streams/ReadableStream.js

    r221417 r225784  
    5858        if (strategy.highWaterMark === @undefined)
    5959            strategy.highWaterMark = 0;
     60        if (strategy.size !== @undefined)
     61            @throwRangeError("Strategy for a ReadableByteStreamController cannot have a size");
    6062
    6163        let readableByteStreamControllerConstructor = @ReadableByteStreamController;
Note: See TracChangeset for help on using the changeset viewer.