summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/tests/mochitest/test_bug396851.html
diff options
context:
space:
mode:
Diffstat (limited to 'js/xpconnect/tests/mochitest/test_bug396851.html')
-rw-r--r--js/xpconnect/tests/mochitest/test_bug396851.html53
1 files changed, 53 insertions, 0 deletions
diff --git a/js/xpconnect/tests/mochitest/test_bug396851.html b/js/xpconnect/tests/mochitest/test_bug396851.html
new file mode 100644
index 0000000000..dc6bd25d52
--- /dev/null
+++ b/js/xpconnect/tests/mochitest/test_bug396851.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=396851
+-->
+<head>
+ <title>Test for Bug 396851</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+
+ <script type="text/javascript">
+ function throws(func, pattern, msg) {
+ try {
+ func();
+ ok(false, msg);
+ } catch (e) {
+ ok(pattern.test(e), `${msg}: Expect exception mathing ${pattern}`);
+ }
+ }
+
+ function go() {
+ var iframe = $("ifr");
+ var win = iframe.contentWindow;
+ throws(() => win.document,
+ /Permission denied/,
+ "Unprivileged code should not be able to access cross-origin document");
+
+ if (SpecialPowers.useRemoteSubframes) {
+ throws(() => win.document,
+ /Permission denied/,
+ "Privileged code should not be able to access cross-process document");
+ } else {
+ ok(SpecialPowers.wrap(win).document != null,
+ "Able to access the cross-origin document");
+ }
+ SimpleTest.finish();
+ }
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=396851">Mozilla Bug 396851</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+</div>
+<script type="text/javascript">
+ SimpleTest.waitForExplicitFinish();
+</script>
+<iframe id="ifr"
+ src="http://example.org/tests/js/xpconnect/tests/mochitest/inner.html"
+ onload="go()">
+</iframe>
+</body>
+</html>