mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-29 10:48:39 +09:00
67 lines
1.8 KiB
HTML
67 lines
1.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Test for SpecialPowers.loadChromeScript</title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
|
|
var script = SpecialPowers.loadChromeScript(function loadChromeScriptTest() {
|
|
// Copied from SpecialPowersLoadChromeScript.js
|
|
|
|
// Just receive 'foo' message and forward it back
|
|
// as 'bar' message
|
|
addMessageListener("foo", function (message) {
|
|
sendAsyncMessage("bar", message);
|
|
});
|
|
|
|
addMessageListener("valid-assert", function (message) {
|
|
assert.ok(true, "valid assertion");
|
|
assert.equal(1, 1, "another valid assertion");
|
|
sendAsyncMessage("valid-assert-done");
|
|
});
|
|
|
|
addMessageListener("sync-message", () => {
|
|
return "Received a synchronous message.";
|
|
});
|
|
});
|
|
|
|
var MESSAGE = { bar: true };
|
|
script.addMessageListener("bar", function (message) {
|
|
is(JSON.stringify(message), JSON.stringify(MESSAGE),
|
|
"received back message from the chrome script");
|
|
|
|
checkAssert();
|
|
});
|
|
|
|
function checkAssert() {
|
|
script.sendAsyncMessage("valid-assert");
|
|
script.addMessageListener("valid-assert-done", endOfTest);
|
|
}
|
|
|
|
function endOfTest() {
|
|
script.destroy();
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
script.sendAsyncMessage("foo", MESSAGE);
|
|
|
|
/*
|
|
* [0][0] is because we're using one real message listener in SpecialPowersObserverAPI.js
|
|
* and dispatching that to multiple _chromeScriptListeners. The outer array comes
|
|
* from the message manager since there can be multiple real listeners. The inner
|
|
* array is for the return values of _chromeScriptListeners.
|
|
*/
|
|
is(script.sendSyncMessage("sync-message")[0][0], "Received a synchronous message.",
|
|
"Check sync return value");
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|