New issue
Advanced search Search tips

Issue 780689 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: 2
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Implement TransformStream

Project Member Reported by ricea@chromium.org, Nov 2 2017

Issue description

Project Member

Comment 1 by bugdroid1@chromium.org, Nov 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01

commit 9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01
Author: Adam Rice <ricea@chromium.org>
Date: Fri Nov 10 10:18:59 2017

Implement TransformStream behind a flag

Add an implementation of TransformStream using v8 extras. It will be
enabled when --enable-experimental-web-platform-features is enabled.

Implementation is conformant to the standard:
https://streams.spec.whatwg.org/#ts

Tests are not included in this CL, as they are due to move from the
whatwg/streams repository to the w3c/web-platform-tests repository very
soon. All transform stream tests pass.

Some changes have been made to the existing ReadableStream and
WritableStream extensions to enable the implementation.

ReadableStream:
- ReadableStreamDefaultControllerHasBackpressure and
  ReadableStreamDefaultControllerCanCloseOrEnqueue abstract operations
  have been implemented. These were already in the standard.
- getReadableStreamEnqueueError has been factored out so that enqueue()
  for ReadableStreamDefaultController and
  TransformStreamDefaultController can share common error messages.
- Internal accessors getReadableStreamController and
  getReadableStreamStoredError have been added for TransformStream to
  use.

WritableStream:
- New accessors isWritableStreamWritable, isWritableStreamErroring and
  getWritableStreamController have been added.
- WritableStreamDefaultControllerErrorIfNeeded is newly exported on the
  binding object.

Bug:  780689 

TBR=brettw@chromium.org
R=domenic@chromium.org

Change-Id: I3d0d5442f2ccad8350ab52caad2961374446656d
Reviewed-on: https://chromium-review.googlesource.com/750502
Commit-Queue: Adam Rice <ricea@chromium.org>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Reviewed-by: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515521}
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/.gn
[delete] https://crrev.com/11bc1f22a806c84671939139d6ab108618cdda24/third_party/WebKit/LayoutTests/external/wpt/streams/piping/transform-streams-expected.txt
[delete] https://crrev.com/11bc1f22a806c84671939139d6ab108618cdda24/third_party/WebKit/LayoutTests/external/wpt/streams/piping/transform-streams.dedicatedworker-expected.txt
[delete] https://crrev.com/11bc1f22a806c84671939139d6ab108618cdda24/third_party/WebKit/LayoutTests/external/wpt/streams/piping/transform-streams.serviceworker.https-expected.txt
[delete] https://crrev.com/11bc1f22a806c84671939139d6ab108618cdda24/third_party/WebKit/LayoutTests/external/wpt/streams/piping/transform-streams.sharedworker-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/Source/core/streams/CommonOperations.js
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/Source/core/streams/ReadableStream.js
[add] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/Source/core/streams/TransformStream.js
[modify] https://crrev.com/9dc1afc153c4b2d10cd03fb555fccf4bba2b8c01/third_party/WebKit/Source/core/streams/WritableStream.js

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e33ce4dfdbe1aec5d6eb85ac553c0e3f45d205e7

commit e33ce4dfdbe1aec5d6eb85ac553c0e3f45d205e7
Author: Adam Rice <ricea@chromium.org>
Date: Thu Mar 22 11:21:04 2018

Update TransformStream to latest standard version

Update TransformStream to match the standard version
https://github.com/whatwg/streams/commit/7b8dffe8ec270bb918340e011349e2c1b5521a15.

Significant changes:

Method lookups are now cached at construction time. Changing
underlyingSink.write after construction will no longer do anything. This
is https://github.com/whatwg/streams/pull/860.

When the readable side is cancelled, the stored error on the writable side will
be set to the |reason| that was passed to cancel(), rather than a TypeError.
This is https://github.com/whatwg/streams/pull/903.

Bug:  780689 ,  820387 

Change-Id: I33c59541eea1bfc5f96722bce750ba4fa7ff96ee
Reviewed-on: https://chromium-review.googlesource.com/964112
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545038}
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/errors-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/errors.dedicatedworker-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/errors.serviceworker.https-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/errors.sharedworker-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/properties-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/properties.dedicatedworker-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/properties.serviceworker.https-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/properties.sharedworker-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/reentrant-strategies-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/reentrant-strategies.dedicatedworker-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/reentrant-strategies.serviceworker.https-expected.txt
[delete] https://crrev.com/9e767b2f1828ea3093d0e62d3d15ecf5f9dcfd63/third_party/WebKit/LayoutTests/external/wpt/streams/transform-streams/reentrant-strategies.sharedworker-expected.txt
[modify] https://crrev.com/e33ce4dfdbe1aec5d6eb85ac553c0e3f45d205e7/third_party/WebKit/Source/core/streams/CommonOperations.js
[modify] https://crrev.com/e33ce4dfdbe1aec5d6eb85ac553c0e3f45d205e7/third_party/WebKit/Source/core/streams/TransformStream.js

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf8191d041cfbfc59285c584f42241dc9c43da32

commit bf8191d041cfbfc59285c584f42241dc9c43da32
Author: Adam Rice <ricea@chromium.org>
Date: Mon Apr 02 11:34:28 2018

Ship TransformStream

Intent to Ship thread:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/YEHinDOBaBw

Move TransformStream.js from v8_experimental_extra_library_files to
v8_extra_library_files in //.gn.

Also update the stable webexposed interface expectations.

Bug:  780689 
Change-Id: Ia16a9c2d7a45a00a0cdf72b1e53f72d60dd07e71
Reviewed-on: https://chromium-review.googlesource.com/985933
Commit-Queue: Adam Rice <ricea@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547427}
[modify] https://crrev.com/bf8191d041cfbfc59285c584f42241dc9c43da32/.gn
[modify] https://crrev.com/bf8191d041cfbfc59285c584f42241dc9c43da32/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
[modify] https://crrev.com/bf8191d041cfbfc59285c584f42241dc9c43da32/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt
[modify] https://crrev.com/bf8191d041cfbfc59285c584f42241dc9c43da32/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/bf8191d041cfbfc59285c584f42241dc9c43da32/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt

Comment 4 by ricea@chromium.org, Apr 2 2018

Labels: M-67
Status: Fixed (was: Started)

Sign in to add a comment