diff options
Diffstat (limited to 'dom/tests/mochitest/general/test_storagePermissionsLimitForeign.html')
-rw-r--r-- | dom/tests/mochitest/general/test_storagePermissionsLimitForeign.html | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dom/tests/mochitest/general/test_storagePermissionsLimitForeign.html b/dom/tests/mochitest/general/test_storagePermissionsLimitForeign.html new file mode 100644 index 0000000000..e2b4b93798 --- /dev/null +++ b/dom/tests/mochitest/general/test_storagePermissionsLimitForeign.html @@ -0,0 +1,46 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Storage Permission Restrictions</title> + + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="storagePermissionsUtils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> + </head> + <body> + <iframe></iframe> + + <script type="text/javascript"> + +task(async function() { + await setCookieBehavior(BEHAVIOR_LIMIT_FOREIGN); + + await runTestInWindow(async function() { + // We should be able to access storage + await storageAllowed(); + + // Same origin iframes should be allowed. + await runIFrame("frameStorageAllowed.html"); + await runIFrame("frameStorageChrome.html?allowed=yes"); + + // Null principal iframes should not. + await runIFrame("frameStorageNullprincipal.sjs"); + + // Sandboxed iframes should have the null principal, and thus can't access storage + document.querySelector('iframe').setAttribute('sandbox', 'allow-scripts'); + await runIFrame("frameStoragePrevented.html#nullprincipal"); + await runIFrame("frameStorageNullprincipal.sjs"); + document.querySelector('iframe').removeAttribute('sandbox'); + + // Thirdparty iframes should be blocked, even when accessed from chrome over Xrays. + await runIFrame(thirdparty + "frameStoragePrevented.html#thirdparty"); + await runIFrame(thirdparty + "frameStorageNullprincipal.sjs"); + await runIFrame(thirdparty + "frameStorageChrome.html?allowed=no"); + + // Workers should be unable to access storage + await runWorker("workerStorageAllowed.js"); + }); +}); + + </script> + </body> +</html> |