1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <!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>
|