Skip to content

Commit 9f5f4d8

Browse files
natechapinchromium-wpt-export-bot
authored andcommitted
Use typed promises/resolvers for ReadableStream and related classes, attempt #3
This converts IDL-exposed promises in ReadableStream, ReadableStreamBYOBReader, ReadableStreamDefaultReader, and ReadableStreamGenericReader to use typed ScriptPromiseResolver instead of StreamPromiseResolver and to return typed ScriptPromises. Bug: 329702363 Change-Id: I8ad1af1a7c9c909d711881ce7621c6c9fac58931
1 parent 4053ce9 commit 9f5f4d8

File tree

4 files changed

+37
-2
lines changed

4 files changed

+37
-2
lines changed

long-animation-frame/tentative/loaf-stream-source-location.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ <h1>Long Animation Frame: source location extraction for streams</h1>
1717
const scriptElement = document.createElement("script");
1818
scriptElement.src = scriptLocation;
1919
document.body.appendChild(scriptElement);
20-
}, script => script.invoker === "StreamPromise.resolve.then", t);
20+
}, script => {
21+
return script.invoker === "Promise.resolve" }, t);
2122

2223
assert_true(script.sourceURL.includes("stream-promise-generates-loaf.js"));
2324
}, "Source location should be extracted for stream promises");

long-animation-frame/tentative/loaf-stream.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ <h1>Long Animation Frame: stream promise resolvers</h1>
3434
});
3535
response.body.pipeTo(writable);
3636
await readable.getReader().read();
37-
}, "resolve", "StreamPromise.resolve");
37+
}, "resolve", "Promise.resolve");
3838
</script>
3939
</body>
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<body>
3+
<script>
4+
window.onload = () => {
5+
const i = document.createElement("iframe");
6+
i.src = "about:blank";
7+
document.body.appendChild(i);
8+
9+
const rs = new i.contentWindow.ReadableStream({
10+
start(controller) { controller.error(); }
11+
});
12+
const ws = new i.contentWindow.WritableStream();
13+
14+
i.remove();
15+
16+
// pipeTo() should not crash with a ReadableStream or WritableStream from
17+
// a detached iframe.
18+
rs.pipeTo(ws);
19+
};
20+
</script>
21+
</body>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<body>
3+
<script>
4+
const i = document.createElement("iframe");
5+
document.body.appendChild(i);
6+
7+
const rs = new i.contentWindow.ReadableStream();
8+
i.remove();
9+
10+
// tee() on a ReadableStream from a detached iframe should not crash.
11+
rs.tee();
12+
</script>
13+
</body>

0 commit comments

Comments
 (0)