mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-26 12:20:56 +00:00
Bug 1315233: Add test for postMessage from system principal to window with non-default originAttributes. r=baku
MozReview-Commit-ID: 2rIiSghlvEA --HG-- extra : rebase_source : dc0ce2e698f79d7a723b7e55ca88a6d8ae5971fb
This commit is contained in:
parent
9806cee2f8
commit
d31b2a7bb6
13
dom/base/test/file_receiveMessage.html
Normal file
13
dom/base/test/file_receiveMessage.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script>
|
||||
window.onmessage = event => {
|
||||
document.body.textContent = `${event.origin}|${event.data}`;
|
||||
};
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body></body>
|
||||
</html>
|
||||
|
@ -741,6 +741,8 @@ skip-if = toolkit == 'android' # Plugins don't work on Android
|
||||
[test_postMessage_solidus.html]
|
||||
[test_postMessages.html]
|
||||
support-files = worker_postMessages.js
|
||||
[test_postMessage_originAttributes.html]
|
||||
support-files = file_receiveMessage.html
|
||||
[test_processing_instruction_update_stylesheet.xhtml]
|
||||
[test_progress_events_for_gzip_data.html]
|
||||
[test_range_bounds.html]
|
||||
|
54
dom/base/test/test_postMessage_originAttributes.html
Normal file
54
dom/base/test/test_postMessage_originAttributes.html
Normal file
@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test window.postMessages from system principal to window with non-default originAttributes</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="target-iframe"></iframe>
|
||||
<script type="application/javascript">
|
||||
add_task(function*() {
|
||||
let iframe = document.querySelector("#target-iframe");
|
||||
|
||||
let win = SpecialPowers.wrap(iframe).contentWindow;
|
||||
let docShell = win.QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor)
|
||||
.getInterface(SpecialPowers.Ci.nsIDocShell);
|
||||
|
||||
// Add private browsing ID to docShell origin and load document.
|
||||
docShell.setOriginAttributes({privateBrowsingId: 1});
|
||||
|
||||
yield new Promise(resolve => {
|
||||
iframe.addEventListener("load", resolve, true);
|
||||
|
||||
iframe.src = SimpleTest.getTestFileURL("file_receiveMessage.html");
|
||||
});
|
||||
|
||||
// Set up console monitor to wait for warning.
|
||||
const expectedMessage = (
|
||||
'Attempting to post a message to window with url ' +
|
||||
'"http://mochi.test:8888/tests/dom/base/test/file_receiveMessage.html" ' +
|
||||
'and origin "http://mochi.test:8888^privateBrowsingId=1" from a system ' +
|
||||
'principal scope with mismatched origin "[System Principal]".');
|
||||
|
||||
let consolePromise = new Promise(resolve => {
|
||||
SimpleTest.monitorConsole(resolve, [e => e.message == expectedMessage]);
|
||||
});
|
||||
|
||||
// Post to the content window via SpecialPowers' system principal scope.
|
||||
win.postMessage("Hello. o/", "http://mochi.test:8888");
|
||||
yield new Promise(resolve => setTimeout(resolve, 0));
|
||||
|
||||
SimpleTest.endMonitorConsole();
|
||||
yield consolePromise;
|
||||
|
||||
// Check that the window received and handled the message.
|
||||
is(win.document.body.textContent, "|Hello. o/",
|
||||
"Content window received the expected message");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
x
Reference in New Issue
Block a user