summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html
diff options
context:
space:
mode:
Diffstat (limited to 'js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html')
-rw-r--r--js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html55
1 files changed, 55 insertions, 0 deletions
diff --git a/js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html b/js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html
new file mode 100644
index 000000000..1c0f05bd2
--- /dev/null
+++ b/js/xpconnect/tests/mochitest/file_crossOriginObjects_documentDomain.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script>
+ function loadFrames() {
+ window.A = document.getElementById('A').contentWindow;
+ window.B = document.getElementById('B').contentWindow;
+ window.C = document.getElementById('C').contentWindow;
+ window.D = document.getElementById('D').contentWindow;
+
+ var path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/file_crossOriginObjects.html';
+ A.location = 'file_crossOriginObjects.html';
+ B.location = frameURI = 'http://test2.mochi.test:' + location.port + path;
+ C.location = frameURI = 'http://test1.mochi.test:' + location.port + path;
+ D.location = frameURI = 'http://test1.mochi.test:' + location.port + path;
+
+ var loadCount = 0;
+ function frameLoaded() {
+ if (++loadCount == 4)
+ go();
+ }
+ Array.forEach(document.getElementsByTagName('iframe'), function(ifr) { ifr.onload = frameLoaded; });
+ }
+
+
+ var results = [];
+ function assert(cond, msg) {
+ results.push({pass: !!cond, message: msg});
+ }
+
+ function go() {
+ window.onmessage = function() {
+ assert(B.checkWindowReferences(), "B's Window references are still self-consistent after document.domain");
+ for (var i = 0; i < window.length; ++i) {
+ assert(window[i] === B.windowReferences[i],
+ "Window reference " + i + " consistent between globals after document.domain");
+ assert(window[i].location === B.locationReferences[i],
+ "Location reference " + i + " consistent between globals after document.domain");
+ }
+ opener.postMessage(results, '*');
+ };
+ A.document.domain = A.document.domain;
+ document.domain = document.domain;
+ B.postMessage('', '*');
+ }
+
+ </script>
+</head>
+<body onload="loadFrames()">
+ <iframe id="A"></iframe>
+ <iframe id="B"></iframe>
+ <iframe id="C"></iframe>
+ <iframe id="D"></iframe>
+</body>
+</html>