<!-- Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ --> <html> <head> <title>Indexed Database Test</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> <script type="text/javascript;version=1.7"> const BEHAVIOR_ACCEPT = 0; const BEHAVIOR_REJECTFOREIGN = 1; const BEHAVIOR_REJECT = 2; const BEHAVIOR_LIMITFOREIGN = 3; const testData = [ { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_ACCEPT, expectedResult: true }, { host: "http://example.com", cookieBehavior: BEHAVIOR_ACCEPT, expectedResult: true }, { host: "http://sub1.test2.example.org:8000", cookieBehavior: BEHAVIOR_ACCEPT, expectedResult: true }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_ACCEPT, expectedResult: true }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_REJECT, expectedResult: false }, { host: "http://example.com", cookieBehavior: BEHAVIOR_REJECT, expectedResult: false }, { host: "http://sub1.test2.example.org:8000", cookieBehavior: BEHAVIOR_REJECT, expectedResult: false }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_REJECT, expectedResult: false }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_REJECTFOREIGN, expectedResult: true }, { host: "http://example.com", cookieBehavior: BEHAVIOR_REJECTFOREIGN, expectedResult: false }, { host: "http://sub1.test2.example.org:8000", cookieBehavior: BEHAVIOR_REJECTFOREIGN, expectedResult: false }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_REJECTFOREIGN, expectedResult: true }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_LIMITFOREIGN, expectedResult: true }, { host: "http://example.com", cookieBehavior: BEHAVIOR_LIMITFOREIGN, expectedResult: false }, { host: "http://sub1.test2.example.org:8000", cookieBehavior: BEHAVIOR_LIMITFOREIGN, expectedResult: false }, { host: "http://" + window.location.host, cookieBehavior: BEHAVIOR_LIMITFOREIGN, expectedResult: true } ]; const iframe1Path = window.location.pathname.replace("test_third_party.html", "third_party_iframe1.html"); const iframe2URL = "http://" + window.location.host + window.location.pathname.replace("test_third_party.html", "third_party_iframe2.html"); let testIndex = 0; let testRunning = false; function iframeLoaded() { let message = { source: "parent", href: iframe2URL }; let iframe = document.getElementById("iframe1"); iframe.contentWindow.postMessage(message.toSource(), "*"); } function setiframe() { let iframe = document.getElementById("iframe1"); if (!testRunning) { testRunning = true; iframe.addEventListener("load", iframeLoaded, false); } SpecialPowers.pushPrefEnv({ 'set': [["network.cookie.cookieBehavior", testData[testIndex].cookieBehavior]] }, () => { iframe.src = testData[testIndex].host + iframe1Path; }); // SpecialPowers.setIntPref("network.cookie.cookieBehavior", testData[testIndex].cookieBehavior); } function messageListener(event) { let message = eval(event.data); is(message.source, "iframe", "Good source"); is(message.result, testData[testIndex].expectedResult, "Good result"); if (testIndex < testData.length - 1) { testIndex++; setiframe(); return; } SimpleTest.finish(); } function runTest() { SimpleTest.waitForExplicitFinish(); SpecialPowers.addPermission("indexedDB", true, document); window.addEventListener("message", messageListener, false); setiframe(); } </script> </head> <body onload="runTest();"> <iframe id="iframe1"></iframe> </body> </html>