diff --git a/mediacapture-streams/MediaStreamTrack-iframe-audio-transfer.https.html b/mediacapture-streams/MediaStreamTrack-iframe-audio-transfer.https.html index e1df23a24a135ab..963f42c4cbbb89a 100644 --- a/mediacapture-streams/MediaStreamTrack-iframe-audio-transfer.https.html +++ b/mediacapture-streams/MediaStreamTrack-iframe-audio-transfer.https.html @@ -2,9 +2,12 @@ MediaStreamTrack transfer to iframe + + + + - diff --git a/speculation-rules/prerender/restriction-screen-capture.https.html b/speculation-rules/prerender/restriction-screen-capture.https.html index e4b958d338a9a88..2cd7fb662f2c7e8 100644 --- a/speculation-rules/prerender/restriction-screen-capture.https.html +++ b/speculation-rules/prerender/restriction-screen-capture.https.html @@ -1,5 +1,5 @@ -Access to the Screen Capture API is deferred +Prerendering cannot invoke the Screen Capture API @@ -12,8 +12,7 @@ promise_test(async t => { const uid = token(); - const bc = new PrerenderChannel('test-channel', uid); - t.add_cleanup(_ => bc.close()); + const bc = new PrerenderChannel('prerender-channel', uid); const gotMessage = new Promise(resolve => { bc.addEventListener('message', e => { @@ -22,35 +21,15 @@ once: true }); }); - const url = `resources/screen-capture.https.html?uid=${uid}`; - window.open(url, '_blank', 'noopener'); + // Start prerendering a page that attempts to invoke the Screen Capture API. + // This API is activated-gated so it's expected to fail: + // https://wicg.github.io/nav-speculation/prerendering.html#implicitly-restricted + startPrerendering(`resources/screen-capture.https.html?uid=${uid}`); const result = await gotMessage; - const expected = [ - { - event: 'started waiting navigator.mediaDevices.getDisplayMedia', - prerendering: true - }, - { - event: 'prerendering change', - prerendering: false - }, - { - event: 'finished waiting navigator.mediaDevices.getDisplayMedia', - prerendering: false - }, - ]; - assert_equals(result.length, expected.length); - for (let i = 0; i < result.length; i++) { - assert_equals(result[i].event, expected[i].event, `event[${i}]`); - assert_equals(result[i].prerendering, expected[i].prerendering, - `prerendering[${i}]`); - } - - // Send a close signal to PrerenderEventCollector on the prerendered page. - new PrerenderChannel('close', uid).postMessage(''); -}, `The access to the Screen Capture API should be deferred until the - prerendered page is activated`); + assert_equals(result, 'InvalidStateError'); + bc.close(); +}, `prerendering pages should not be able to invoke the Screen Capture API`);