Files
tubestation/widget/tests/test_bug565392.html
Greg Stoll b2839267e7 Bug 1871135 - Add content analysis support to clipboard operations r=edgar,nika,masayuki,devtools-reviewers
When content analysis is on, pastes will be checked by the CA
agent while tab input is blocked. The synchronous nsIClipboard.getData()
method must block until the analysis result is received, so this
requires doing a SpinEventLoopUntil.

Differential Revision: https://phabricator.services.mozilla.com/D196997
2024-02-13 11:26:48 +00:00

63 lines
1.9 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=565392
-->
<head>
<title>Test for Bug 565392</title>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=565392">Mozilla Bug 565392</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 565392 */
var dir1 = Services.dirsvc.get("ProfD", Ci.nsIFile);
var clipboard = Services.clipboard;
function getLoadContext() {
return window.docShell.QueryInterface(Ci.nsILoadContext);
}
function getTransferableFile(file) {
var transferable = Cc["@mozilla.org/widget/transferable;1"]
.createInstance(Ci.nsITransferable);
transferable.init(getLoadContext());
transferable.setTransferData("application/x-moz-file", file);
return transferable;
}
function setClipboardData(transferable) {
clipboard.setData(transferable, null, 1);
}
function getClipboardData(mime) {
var transferable = Cc["@mozilla.org/widget/transferable;1"]
.createInstance(Ci.nsITransferable);
transferable.init(getLoadContext());
transferable.addDataFlavor(mime);
clipboard.getData(transferable, 1, SpecialPowers.wrap(window).browsingContext.currentWindowContext);
var data = {};
transferable.getTransferData(mime, data);
return data;
}
setClipboardData(getTransferableFile(dir1));
is(clipboard.hasDataMatchingFlavors(["application/x-moz-file"], 1), true);
var data = getClipboardData("application/x-moz-file");
var file = data.value.QueryInterface(Ci.nsIFile);
ok(file.isDirectory(), true);
is(file.target, dir1.target, true);
</script>
</pre>
</body>
</html>