Implement QueuingStrategies in C++ #17804
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implement CountQueuingStrategy and ByteLengthQueuingStrategy in C++.
Implementing in WebIDL leads to some changes in semantics:
highWaterMark is now a getter on the prototype rather than an
property on each object. This is because adding properties directly on
objects is not usual practice in WebIDL, and is problematic to implement
in Blink.
size() is now a function returned by a getter. This is because a
methods in WebIDL must be called with |this| set to a valid object of
the appropriate type, but size() is called with |this| set to undefined.
See Specifying QueuingStrategies in WebIDL whatwg/streams#1005 for more discussion.
These aren't expected to change behaviour of code in the wild, but the
count-queuing-strategy.any.js and byte-length-queuing-strategy.js
tests detect it.
Also add tests that subclassing of CountQueuingStrategy and
ByteLengthQueuingStrategyworks works properly. A previous iteration
of this change broke it.
Bug: 981333
Change-Id: Ifc18a469a58f73d54563ca549a1c8db0e001303b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1692108
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#679897}