forked from mirrors/gecko-dev
Blink is the only engine supporting it, and thus it should not be the WPT requirement. Some tests still need the testing pref, and for now this patch gives the pref for such failing tests without modifying them, for simplicity sake. Modification can happen separately. Differential Revision: https://phabricator.services.mozilla.com/D201999
40 lines
1.7 KiB
HTML
40 lines
1.7 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>navigator.clipboard readText and writeText on detached iframe</title>
|
|
<link rel='help' href='https://w3c.github.io/clipboard-apis/#async-clipboard-api'>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src="../resources/user-activation.js"></script>
|
|
<iframe id="iframe"></iframe>
|
|
<script>
|
|
'use strict';
|
|
|
|
promise_test(async t => {
|
|
await tryGrantReadPermission();
|
|
await tryGrantWritePermission();
|
|
|
|
const iframe = document.getElementById('iframe');
|
|
await waitForUserActivation();
|
|
// Clipboard API must only be available in focused documents.
|
|
// reference: https://www.w3.org/TR/clipboard-apis/#privacy-async
|
|
iframe.focus();
|
|
const iframeClipboard = iframe.contentWindow.navigator.clipboard;
|
|
|
|
// Writing and reading should succeed on same-origin iframes.
|
|
const attachedWriteText = 'attached write text'
|
|
await iframeClipboard.writeText(attachedWriteText);
|
|
const attachedWriteResult = await iframeClipboard.readText();
|
|
assert_equals(attachedWriteResult, attachedWriteText,
|
|
'attached iframes should be able to readText and writeText normally');
|
|
|
|
iframe.parentNode.removeChild(iframe);
|
|
// Writing onto a detached iframe's clipboard should fail, but not crash.
|
|
const detachedWriteText = 'detached write text';
|
|
await iframeClipboard.writeText(detachedWriteText);
|
|
const readResultDetached = await iframeClipboard.readText();
|
|
assert_equals(readResultDetached, undefined,
|
|
'reading from detached iframes should output undefined');
|
|
}, 'Verify readText and writeText fails on detached iframe');
|
|
</script>
|