mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 913706 - Fix the tests for B2G mochitest that use nsICookiePermission.setAccess. r=honzab.moz
--HG-- extra : rebase_source : 54036e1638d9de46d7ee0116d40e527046d0b26d
This commit is contained in:
parent
a76e044e4b
commit
33bb7b2d4d
@ -6,7 +6,6 @@
|
||||
<script type="text/javascript">
|
||||
|
||||
const DOM_QUOTA_REACHED = 2152924150;
|
||||
const Cc = SpecialPowers.Cc;
|
||||
|
||||
function checkException(func, exc)
|
||||
{
|
||||
@ -23,14 +22,6 @@ function checkException(func, exc)
|
||||
|
||||
function doStep()
|
||||
{
|
||||
var io = Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
var query = location.search.substring(1);
|
||||
var queries = query.split("&");
|
||||
|
||||
@ -95,8 +86,6 @@ function doStep()
|
||||
{
|
||||
case "clear":
|
||||
localStorage.clear();
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -108,10 +97,15 @@ function doStep()
|
||||
return false;
|
||||
}
|
||||
|
||||
function startTest() {
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, 'context': document}], function() {
|
||||
postMsg('frame loaded');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="postMsg('frame loaded');">
|
||||
<body onload="startTest();">
|
||||
</body>
|
||||
</html>
|
||||
|
@ -36,8 +36,7 @@ function localStorageClearDomain(domain)
|
||||
|
||||
function os()
|
||||
{
|
||||
return SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
||||
return SpecialPowers.Services.obs;
|
||||
}
|
||||
|
||||
function notify(top)
|
||||
|
@ -22,8 +22,7 @@ support-files =
|
||||
[test_bug746272-1.html]
|
||||
[test_bug746272-2.html]
|
||||
[test_cookieBlock.html]
|
||||
[test_cookieSession-phase1.html]
|
||||
[test_cookieSession-phase2.html]
|
||||
[test_cookieSession.html]
|
||||
[test_embededNulls.html]
|
||||
[test_keySync.html]
|
||||
[test_localStorageBase.html]
|
||||
|
@ -9,14 +9,6 @@
|
||||
|
||||
function startTest()
|
||||
{
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DENY);
|
||||
|
||||
try {
|
||||
localStorage.setItem("blocked", "blockedvalue");
|
||||
ok(false, "Exception for localStorage.setItem, ACCESS_DENY");
|
||||
@ -33,18 +25,18 @@ function startTest()
|
||||
ok(true, "Exception for localStorage.getItem, ACCESS_DENY");
|
||||
}
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': false, 'context': document}], startTest);
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="startTest();">
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,46 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>cookie per-session only 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">
|
||||
|
||||
/*
|
||||
Set cookie access to be just per session and store to the localStorage.
|
||||
Content stored must prevail only for session of the browser, so it must
|
||||
be accessible in another window we try to access that key in the same
|
||||
storage.
|
||||
*/
|
||||
|
||||
function startTest()
|
||||
{
|
||||
localStorage.setItem("persistent1", "persistent value 1");
|
||||
localStorage.setItem("persistent2", "persistent value 2");
|
||||
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
localStorage.setItem("session only", "session value");
|
||||
is(localStorage.getItem("session only"), "session value");
|
||||
is(localStorage.getItem("persistent1"), "persistent value 1");
|
||||
is(localStorage.getItem("persistent2"), "persistent value 2");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="startTest();">
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,81 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>cookie per-session only 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">
|
||||
|
||||
function startTest()
|
||||
{
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
is(localStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
localStorage.setItem("persistent1", "changed persistent value 1");
|
||||
localStorage.removeItem("persistent2");
|
||||
|
||||
is(localStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(localStorage.getItem("persistent1"), "changed persistent value 1", "Persistent value present");
|
||||
is(localStorage.getItem("persistent2"), null, "Persistent value removed");
|
||||
|
||||
// This clear has to delete only changes made in session only mode
|
||||
localStorage.clear();
|
||||
|
||||
is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(localStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(localStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
localStorage.setItem("session only 2", "must be deleted on drop of session-only cookies permissions");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
is(localStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(localStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(localStorage.getItem("session only 2"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present again");
|
||||
is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present again");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
localStorage.clear();
|
||||
|
||||
is(localStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(localStorage.getItem("persistent1"), null, "Persistent value not present after delete");
|
||||
is(localStorage.getItem("persistent2"), null, "Persistent value not present after delete");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(localStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(localStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(localStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="startTest();">
|
||||
|
||||
</body>
|
||||
</html>
|
132
dom/tests/mochitest/localstorage/test_cookieSession.html
Normal file
132
dom/tests/mochitest/localstorage/test_cookieSession.html
Normal file
@ -0,0 +1,132 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>cookie per-session only 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">
|
||||
|
||||
/*
|
||||
Set cookie access to be just per session and store to the localStorage.
|
||||
Content stored must prevail only for session of the browser, so it must
|
||||
be accessible in another window we try to access that key in the same
|
||||
storage.
|
||||
*/
|
||||
|
||||
function pushCookie(aPermission, aNext) {
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': aPermission, 'context': document}], aNext);
|
||||
}
|
||||
|
||||
function test1() {
|
||||
localStorage.setItem("persistent1", "persistent value 1");
|
||||
localStorage.setItem("persistent2", "persistent value 2");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, test1_b);
|
||||
}
|
||||
|
||||
function test1_b() {
|
||||
localStorage.setItem("session only", "session value");
|
||||
parent.is(localStorage.getItem("session only"), "session value");
|
||||
parent.is(localStorage.getItem("persistent1"), "persistent value 1");
|
||||
parent.is(localStorage.getItem("persistent2"), "persistent value 2");
|
||||
|
||||
window.location.search = '?2';
|
||||
}
|
||||
|
||||
function test2()
|
||||
{
|
||||
parent.is(localStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
parent.is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
parent.is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
localStorage.setItem("persistent1", "changed persistent value 1");
|
||||
localStorage.removeItem("persistent2");
|
||||
|
||||
parent.is(localStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
parent.is(localStorage.getItem("persistent1"), "changed persistent value 1", "Persistent value present");
|
||||
parent.is(localStorage.getItem("persistent2"), null, "Persistent value removed");
|
||||
|
||||
// This clear has to delete only changes made in session only mode
|
||||
localStorage.clear();
|
||||
|
||||
parent.is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
parent.is(localStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
parent.is(localStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
localStorage.setItem("session only 2", "must be deleted on drop of session-only cookies permissions");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT, function() { window.location.search = '?3'; });
|
||||
}
|
||||
|
||||
function test3() {
|
||||
parent.is(localStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
parent.is(localStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
parent.is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
parent.is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, function() { window.location.search = '?4'; });
|
||||
}
|
||||
|
||||
function test4() {
|
||||
parent.is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
parent.is(localStorage.getItem("session only 2"), null, "Value not present when cookies in session-only mode after delete");
|
||||
parent.is(localStorage.getItem("persistent1"), "persistent value 1", "Persistent value present again");
|
||||
parent.is(localStorage.getItem("persistent2"), "persistent value 2", "Persistent value present again");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT, function() { window.location.search = '?5'; });
|
||||
}
|
||||
|
||||
function test5() {
|
||||
localStorage.clear();
|
||||
|
||||
parent.is(localStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
parent.is(localStorage.getItem("persistent1"), null, "Persistent value not present after delete");
|
||||
parent.is(localStorage.getItem("persistent2"), null, "Persistent value not present after delete");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, function() { window.location.search = '?6'; });
|
||||
}
|
||||
|
||||
function test6() {
|
||||
parent.is(localStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
parent.is(localStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
parent.is(localStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
parent.is(localStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
parent.SimpleTest.finish();
|
||||
}
|
||||
|
||||
function startTest() {
|
||||
switch (location.search) {
|
||||
case '?1':
|
||||
test1();
|
||||
break;
|
||||
case '?2':
|
||||
test2();
|
||||
break;
|
||||
case '?3':
|
||||
test3();
|
||||
break;
|
||||
case '?4':
|
||||
test4();
|
||||
break;
|
||||
case '?5':
|
||||
test5();
|
||||
break;
|
||||
case '?6':
|
||||
test6();
|
||||
break;
|
||||
default:
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
var iframe = document.createElement('iframe');
|
||||
iframe.src = 'test_cookieSession.html?1';
|
||||
document.body.appendChild(iframe);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="startTest()">
|
||||
</body>
|
||||
</html>
|
@ -9,14 +9,10 @@
|
||||
|
||||
function startTest()
|
||||
{
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, 'context': document}], test1);
|
||||
}
|
||||
|
||||
function test1() {
|
||||
// Initially check the localStorage is empty
|
||||
is(localStorage.length, 0, "The storage is empty [1]");
|
||||
is(localStorage.key(0), null, "key() should return null for out-of-bounds access");
|
||||
@ -195,9 +191,6 @@ function startTest()
|
||||
localStorage.removeItem("key1"); // Just check there is no exception
|
||||
localStorage.removeItem("key2"); // Just check there is no exception
|
||||
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
localStorage.clear();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
@ -7,38 +7,38 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
window.Services = SpecialPowers.Services;
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
// Set cookies behavior to "always reject".
|
||||
Services.prefs.setIntPref("network.cookie.cookieBehavior", 2);
|
||||
try {
|
||||
localStorage.setItem("contentkey", "test-value");
|
||||
ok(false, "Setting localStorageItem should throw a security exception");
|
||||
}
|
||||
catch(ex) {
|
||||
is(ex.name, "SecurityError");
|
||||
SpecialPowers.pushPrefEnv({"set": [["network.cookie.cookieBehavior", 2]]},
|
||||
test1);
|
||||
|
||||
function test1() {
|
||||
try {
|
||||
localStorage.setItem("contentkey", "test-value");
|
||||
ok(false, "Setting localStorageItem should throw a security exception");
|
||||
}
|
||||
catch(ex) {
|
||||
is(ex.name, "SecurityError");
|
||||
}
|
||||
|
||||
// Set cookies behavior to "ask every time".
|
||||
SpecialPowers.pushPrefEnv({"set": [["network.cookie.lifetimePolicy", 1]],
|
||||
"clear": [["network.cookie.cookieBehavior"]]},
|
||||
test2);
|
||||
}
|
||||
|
||||
try {
|
||||
Services.prefs.clearUserPref("network.cookie.cookieBehavior");
|
||||
}
|
||||
catch (ex) {}
|
||||
function test2() {
|
||||
try {
|
||||
localStorage.setItem("contentkey", "test-value");
|
||||
ok(false, "Setting localStorageItem should throw a security exception");
|
||||
}
|
||||
catch(ex) {
|
||||
is(ex.name, "SecurityError");
|
||||
}
|
||||
|
||||
|
||||
// Set cookies behavior to "ask every time".
|
||||
Services.prefs.setIntPref("network.cookie.lifetimePolicy", 1);
|
||||
try {
|
||||
localStorage.setItem("contentkey", "test-value");
|
||||
ok(false, "Setting localStorageItem should throw a security exception");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
catch(ex) {
|
||||
is(ex.name, "SecurityError");
|
||||
}
|
||||
|
||||
try {
|
||||
Services.prefs.clearUserPref("network.cookie.lifetimePolicy");
|
||||
}
|
||||
catch (ex) {}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
@ -7,13 +7,6 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function setDOMStorageEnabled(enabled)
|
||||
{
|
||||
var prefs = SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPrefBranch);
|
||||
prefs.setBoolPref("dom.storage.enabled", enabled);
|
||||
}
|
||||
|
||||
function checkException(func, exc)
|
||||
{
|
||||
var exceptionThrew = false;
|
||||
@ -27,47 +20,32 @@ function checkException(func, exc)
|
||||
ok(exceptionThrew, "Exception "+exc+" threw");
|
||||
}
|
||||
|
||||
function startTest()
|
||||
{
|
||||
setDOMStorageEnabled(true);
|
||||
|
||||
var storage;
|
||||
function test1() {
|
||||
is(typeof(window.localStorage), "object", "Storage is present");
|
||||
var storage = window.localStorage;
|
||||
storage = window.localStorage;
|
||||
|
||||
setDOMStorageEnabled(false);
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.enabled", false]]}, test2);
|
||||
}
|
||||
|
||||
function test2() {
|
||||
is(window.localStorage, null, "Storage is null");
|
||||
|
||||
checkException(function() {storage.setItem("test", "value");}, "SecurityError");
|
||||
|
||||
setDOMStorageEnabled(true);
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.enabled", true]]}, test3);
|
||||
}
|
||||
|
||||
function test3() {
|
||||
is(typeof(window.localStorage), "object", "Storage is present again");
|
||||
storage.setItem("test", "value");
|
||||
ok(storage.getItem("test"), "value", "value can be set");
|
||||
}
|
||||
|
||||
function cleanup()
|
||||
{
|
||||
setDOMStorageEnabled(true);
|
||||
window.localStorage.clear();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
function doTest()
|
||||
{
|
||||
try
|
||||
{
|
||||
startTest();
|
||||
}
|
||||
catch(exc)
|
||||
{
|
||||
ok(false, exc+" was threw during the test")
|
||||
}
|
||||
finally
|
||||
{
|
||||
cleanup();
|
||||
}
|
||||
function doTest() {
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.enabled", true]]}, test1);
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
@ -7,13 +7,9 @@
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
//Note: this test is currently giving failures when running standalone, see bug 914865
|
||||
|
||||
var currentTest = 1;
|
||||
var prefs = SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPrefBranch);
|
||||
var quota;
|
||||
var origBlockDisplay;
|
||||
var origBlockActive;
|
||||
|
||||
function doNextTest()
|
||||
{
|
||||
@ -21,22 +17,7 @@ function doNextTest()
|
||||
|
||||
switch (currentTest)
|
||||
{
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
case 1:
|
||||
try {
|
||||
quota = prefs.getIntPref("dom.storage.default_quota");
|
||||
} catch (ex) {
|
||||
quota = 5*1024;
|
||||
}
|
||||
prefs.setIntPref("dom.storage.default_quota", 1);
|
||||
|
||||
origBlockDisplay = prefs.getBoolPref("security.mixed_content.block_display_content");
|
||||
origBlockActive = prefs.getBoolPref("security.mixed_content.block_active_content");
|
||||
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", false);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", false);
|
||||
|
||||
slaveOrigin = "http://example.com";
|
||||
slave.location = slaveOrigin + slavePath + "frameQuota.html?add&A&success";
|
||||
break;
|
||||
@ -103,9 +84,6 @@ function doNextTest()
|
||||
break;
|
||||
|
||||
default: // end
|
||||
prefs.setIntPref("dom.storage.default_quota", quota);
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", origBlockDisplay);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", origBlockActive);
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
@ -118,11 +96,16 @@ function doStep()
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function startTest() {
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.default_quota", 1], ["security.mixed_content.block_display_content", false], ["security.mixed_content.block_active_content", false]]}, doNextTest);
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="doNextTest();">
|
||||
<body onload="startTest();">
|
||||
<iframe src="" name="frame"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -9,19 +9,6 @@
|
||||
<script type="text/javascript">
|
||||
|
||||
var currentTest = 1;
|
||||
var prefs = SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPrefBranch);
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
var quota;
|
||||
var origBlockDisplay;
|
||||
var origBlockActive;
|
||||
|
||||
function doNextTest()
|
||||
{
|
||||
@ -29,22 +16,7 @@ function doNextTest()
|
||||
|
||||
switch (currentTest)
|
||||
{
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
case 1:
|
||||
try {
|
||||
quota = prefs.getIntPref("dom.storage.default_quota");
|
||||
} catch (ex) {
|
||||
quota = 5*1024;
|
||||
}
|
||||
prefs.setIntPref("dom.storage.default_quota", 1);
|
||||
|
||||
origBlockDisplay = prefs.getBoolPref("security.mixed_content.block_display_content");
|
||||
origBlockActive = prefs.getBoolPref("security.mixed_content.block_active_content");
|
||||
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", false);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", false);
|
||||
|
||||
slaveOrigin = "http://example.com";
|
||||
slave.location = slaveOrigin + slavePath + "frameQuotaSessionOnly.html?add&A&success";
|
||||
break;
|
||||
@ -111,10 +83,6 @@ function doNextTest()
|
||||
break;
|
||||
|
||||
default:
|
||||
prefs.setIntPref("dom.storage.default_quota", quota);
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", origBlockDisplay);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", origBlockActive);
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
@ -127,11 +95,18 @@ function doStep()
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function startTest() {
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, 'context': document}], function() {
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.default_quota", 1], ["security.mixed_content.block_display_content", false], ["security.mixed_content.block_active_content", false]]}, doNextTest);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="doNextTest();">
|
||||
<body onload="startTest();">
|
||||
<iframe src="" name="frame"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -8,20 +8,7 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
const Cc = SpecialPowers.Cc;
|
||||
|
||||
var currentTest = 1;
|
||||
var prefs = Cc["@mozilla.org/preferences-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPrefBranch);
|
||||
var io = Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
var quota;
|
||||
var origBlockDisplay;
|
||||
var origBlockActive;
|
||||
|
||||
function doNextTest()
|
||||
{
|
||||
@ -29,22 +16,7 @@ function doNextTest()
|
||||
|
||||
switch (currentTest)
|
||||
{
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
case 1:
|
||||
try {
|
||||
quota = prefs.getIntPref("dom.storage.default_quota");
|
||||
} catch (ex) {
|
||||
quota = 5*1024;
|
||||
}
|
||||
prefs.setIntPref("dom.storage.default_quota", 1);
|
||||
|
||||
origBlockDisplay = prefs.getBoolPref("security.mixed_content.block_display_content");
|
||||
origBlockActive = prefs.getBoolPref("security.mixed_content.block_active_content");
|
||||
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", false);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", false)
|
||||
|
||||
slaveOrigin = "http://example.com";
|
||||
slave.location = slaveOrigin + slavePath + "frameQuotaSessionOnly.html?add&A&success";
|
||||
break;
|
||||
@ -52,7 +24,6 @@ function doNextTest()
|
||||
// In subdomain now set another key with length 500 bytes, i.e.
|
||||
// allocate 501 bytes
|
||||
case 2:
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
slaveOrigin = "http://example.com";
|
||||
slave.location = slaveOrigin + slavePath + "frameQuotaSessionOnly.html?add&B&success";
|
||||
break;
|
||||
@ -95,14 +66,9 @@ function doNextTest()
|
||||
// Do a clean up...
|
||||
slaveOrigin = "http://example.com";
|
||||
slave.location = slaveOrigin + slavePath + "frameQuotaSessionOnly.html?clear";
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
break;
|
||||
|
||||
default:
|
||||
prefs.setIntPref("dom.storage.default_quota", quota);
|
||||
prefs.setBoolPref("security.mixed_content.block_display_content", origBlockDisplay);
|
||||
prefs.setBoolPref("security.mixed_content.block_active_content", origBlockActive);
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
@ -115,11 +81,18 @@ function doStep()
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function startTest() {
|
||||
// Initialy setup the quota to testing value of 1024B and
|
||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.storage.default_quota", 1], ["security.mixed_content.block_display_content", false], ["security.mixed_content.block_active_content", false]]}, function() {
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, 'context': document}], doNextTest);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="doNextTest();">
|
||||
<body onload="startTest();">
|
||||
<iframe src="" name="frame"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -17,9 +17,6 @@
|
||||
var shell;
|
||||
var shellType;
|
||||
var failureRegExp = new RegExp("^FAILURE");
|
||||
var origBlockDisplay;
|
||||
var origBlockActive;
|
||||
|
||||
|
||||
window.addEventListener("message", onMessageReceived, false);
|
||||
|
||||
@ -50,7 +47,7 @@ function onMessageReceived(event)
|
||||
|
||||
case "window":
|
||||
shell.close();
|
||||
window.setTimeout(function() {endTest();}, 0);
|
||||
window.setTimeout(function() {SimpleTest.finish();}, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -61,25 +58,16 @@ function onMessageReceived(event)
|
||||
}
|
||||
}
|
||||
|
||||
function startTest()
|
||||
{
|
||||
origBlockDisplay = SpecialPowers.getBoolPref("security.mixed_content.block_display_content");
|
||||
origBlockActive = SpecialPowers.getBoolPref("security.mixed_content.block_active_content");
|
||||
SpecialPowers.setBoolPref("security.mixed_content.block_display_content", false);
|
||||
SpecialPowers.setBoolPref("security.mixed_content.block_active_content", false);
|
||||
function startTest() {
|
||||
SpecialPowers.pushPrefEnv({"set": [["security.mixed_content.block_display_content", false], ["security.mixed_content.block_active_content", false]]}, test1);
|
||||
}
|
||||
|
||||
function test1() {
|
||||
shellType = "frame";
|
||||
shell = frame;
|
||||
shell.location = "http://example.org:80/tests/dom/tests/mochitest/localstorage/frameReplace.html?init&" + shellType;
|
||||
}
|
||||
|
||||
function endTest()
|
||||
{
|
||||
SpecialPowers.setBoolPref("security.mixed_content.block_display_content", origBlockDisplay);
|
||||
SpecialPowers.setBoolPref("security.mixed_content.block_active_content", origBlockActive);
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
|
@ -14,78 +14,104 @@
|
||||
storage.
|
||||
*/
|
||||
|
||||
function startTest()
|
||||
{
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
|
||||
// ==================== start of the test ============================
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
sessionStorage.setItem("persistent1", "persistent value 1");
|
||||
sessionStorage.setItem("persistent2", "persistent value 2");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
sessionStorage.setItem("session only", "session value");
|
||||
is(sessionStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
sessionStorage.setItem("persistent1", "changed persistent value 1");
|
||||
sessionStorage.removeItem("persistent2");
|
||||
|
||||
is(sessionStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(sessionStorage.getItem("persistent1"), "changed persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value removed");
|
||||
|
||||
// This clear has to delete only changes made in session only mode
|
||||
sessionStorage.clear();
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
sessionStorage.setItem("session only 2", "must be deleted on drop of session-only cookies permissions");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("session only 2"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present again");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present again");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
sessionStorage.clear();
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present after delete");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
SimpleTest.finish();
|
||||
function pushCookie(aValue, aNext) {
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': aValue, 'context': document}], pushPermissionAndTest);
|
||||
}
|
||||
|
||||
function pushPermissionAndTest() {
|
||||
var test = tests.shift();
|
||||
if (test) {
|
||||
document.getElementById('testframe').onload = test;
|
||||
/* After every permission change, an iframe has to be reloaded,
|
||||
otherwise this test causes failures in b2g (oop) mochitest, because
|
||||
the permission changes don't seem to be always picked up
|
||||
by the code that excercises it */
|
||||
document.getElementById('testframe').contentWindow.location.reload();
|
||||
} else {
|
||||
ok(false, 'should not be reached');
|
||||
SimpleTest.finish();
|
||||
}
|
||||
}
|
||||
|
||||
function startTest() {
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
}
|
||||
|
||||
var tests = [
|
||||
function test1() {
|
||||
sessionStorage.setItem("persistent1", "persistent value 1");
|
||||
sessionStorage.setItem("persistent2", "persistent value 2");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
},
|
||||
|
||||
function test2() {
|
||||
sessionStorage.setItem("session only", "session value");
|
||||
is(sessionStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
sessionStorage.setItem("persistent1", "changed persistent value 1");
|
||||
sessionStorage.removeItem("persistent2");
|
||||
|
||||
is(sessionStorage.getItem("session only"), "session value", "Value present when cookies in session-only mode");
|
||||
is(sessionStorage.getItem("persistent1"), "changed persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value removed");
|
||||
|
||||
// This clear has to delete only changes made in session only mode
|
||||
sessionStorage.clear();
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
sessionStorage.setItem("session only 2", "must be deleted on drop of session-only cookies permissions");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
},
|
||||
|
||||
function test3() {
|
||||
is(sessionStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
},
|
||||
|
||||
function test4() {
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("session only 2"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("persistent1"), "persistent value 1", "Persistent value present again");
|
||||
is(sessionStorage.getItem("persistent2"), "persistent value 2", "Persistent value present again");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
},
|
||||
|
||||
function test5() {
|
||||
sessionStorage.clear();
|
||||
|
||||
is(sessionStorage.getItem("session only"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present after delete");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
},
|
||||
|
||||
function test6() {
|
||||
is(sessionStorage.getItem("session only"), null, "Value not present when cookies in session-only mode after delete");
|
||||
is(sessionStorage.getItem("session only 2"), null, "No value when cookies are in default mode");
|
||||
is(sessionStorage.getItem("persistent1"), null, "Persistent value not present in session only after delete");
|
||||
is(sessionStorage.getItem("persistent2"), null, "Persistent value not present in session only after delete");
|
||||
|
||||
pushCookie(SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
},
|
||||
|
||||
function test7() {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
];
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
@ -93,6 +119,6 @@ SimpleTest.waitForExplicitFinish();
|
||||
</head>
|
||||
|
||||
<body onload="startTest();">
|
||||
|
||||
<iframe id="testframe" src="data:text/html;charset=utf-8,"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -7,15 +7,33 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function startTest()
|
||||
{
|
||||
var io = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(SpecialPowers.Ci.nsIIOService);
|
||||
var uri = io.newURI(window.location, "", null);
|
||||
var cp = SpecialPowers.Cc["@mozilla.org/cookie/permission;1"]
|
||||
.getService(SpecialPowers.Ci.nsICookiePermission);
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION);
|
||||
var testframe;
|
||||
function iframeOnload(aValue) {
|
||||
switch (aValue) {
|
||||
case 1:
|
||||
testframe.onload = test1;
|
||||
break;
|
||||
case 2:
|
||||
testframe.onload = test2;
|
||||
break;
|
||||
default:
|
||||
of(false, 'should not be reached');
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
}
|
||||
/* After every permission change, an iframe has to be reloaded,
|
||||
otherwise this test causes failures in b2g (oop) mochitest, because
|
||||
the permission changes don't seem to be always picked up
|
||||
by the code that excercises it */
|
||||
testframe.contentWindow.location.reload();
|
||||
}
|
||||
|
||||
function startTest() {
|
||||
testframe = document.getElementById('testframe');
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION, 'context': document}], function() { iframeOnload(1); });
|
||||
}
|
||||
|
||||
function test1() {
|
||||
|
||||
// Initially check the sessionStorage is empty
|
||||
is(sessionStorage.length, 0, "The storage is empty [1]");
|
||||
@ -195,9 +213,10 @@ function startTest()
|
||||
sessionStorage.removeItem("key1"); // Just check there is no exception
|
||||
sessionStorage.removeItem("key2"); // Just check there is no exception
|
||||
|
||||
SpecialPowers.pushPermissions([{'type': 'cookie', 'allow': SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT, 'context': document}], function() { iframeOnload(2); });
|
||||
}
|
||||
|
||||
cp.setAccess(uri, SpecialPowers.Ci.nsICookiePermission.ACCESS_DEFAULT);
|
||||
|
||||
function test2() {
|
||||
sessionStorage.clear();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
@ -209,6 +228,6 @@ SimpleTest.waitForExplicitFinish();
|
||||
</head>
|
||||
|
||||
<body onload="startTest();">
|
||||
|
||||
<iframe id="testframe" src="data:text/html;charset=utf-8,"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -374,27 +374,19 @@
|
||||
"dom/tests/mochitest/geolocation/test_windowClose.html":"",
|
||||
"dom/tests/mochitest/geolocation/test_worseAccuracyDoesNotBlockCallback.html":"",
|
||||
|
||||
|
||||
"dom/tests/mochitest/localstorage/test_appIsolation.html":"needs https to work",
|
||||
|
||||
"dom/tests/mochitest/localstorage/test_cookieBlock.html":"bug 913706",
|
||||
"dom/tests/mochitest/localstorage/test_cookieSession-phase1.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_cookieSession-phase2.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageBase.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageBaseSessionOnly.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageCookieSettings.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageEnablePref.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageOriginsSchemaDiffs.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuota.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuotaSessionOnly.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuotaSessionOnly2.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageReplace.html":"",
|
||||
"dom/tests/mochitest/sessionstorage/test_cookieSession.html":"",
|
||||
"dom/tests/mochitest/sessionstorage/test_sessionStorageBaseSessionOnly.html":"",
|
||||
"dom/tests/mochitest/localstorage/test_cookieSession.html":"4 failures",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageBase.html":"no storage chrome event received",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageOriginsSchemaDiffs.html":"needs https support",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuota.html":"needs https support",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuotaSessionOnly.html":"needs https support",
|
||||
"dom/tests/mochitest/localstorage/test_localStorageQuotaSessionOnly2.html":"needs https support",
|
||||
"dom/tests/mochitest/sessionstorage/test_cookieSession.html":"4 failures",
|
||||
"dom/tests/mochitest/sessionstorage/test_sessionStorageBase.html":"no storage chrome event received",
|
||||
"dom/tests/mochitest/sessionstorage/test_sessionStorageHttpHttps.html":"needs https to work",
|
||||
|
||||
"dom/tests/mochitest/pointerlock/test_pointerlock-api.html":"window.open focus issues (using fullscreen)",
|
||||
"dom/tests/mochitest/sessionstorage/test_sessionStorageBase.html":"",
|
||||
"dom/tests/mochitest/sessionstorage/test_sessionStorageHttpHttps.html":"needs https to work",
|
||||
"dom/tests/mochitest/webapps/test_bug_779982.html":"",
|
||||
"dom/tests/mochitest/whatwg/test_postMessage_closed.html":"bug 894914 - wrong data - got FAIL, expected message",
|
||||
|
||||
|
@ -9,18 +9,22 @@
|
||||
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
var pm = SpecialPowers.Cc["@mozilla.org/permissionmanager;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPermissionManager);
|
||||
const ALLOW_ACTION = pm.ALLOW_ACTION;
|
||||
const DENY_ACTION = pm.DENY_ACTION;
|
||||
const UNKNOWN_ACTION = pm.UNKNOWN_ACTION;
|
||||
const PROMPT_ACTION = pm.PROMPT_ACTION;
|
||||
const ALLOW_ACTION = SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION;
|
||||
const DENY_ACTION = SpecialPowers.Ci.nsIPermissionManager.DENY_ACTION;
|
||||
const UNKNOWN_ACTION = SpecialPowers.Ci.nsIPermissionManager.UNKNOWN_ACTION;
|
||||
const PROMPT_ACTION = SpecialPowers.Ci.nsIPermissionManager.PROMPT_ACTION;
|
||||
const ACCESS_SESSION = SpecialPowers.Ci.nsICookiePermission.ACCESS_SESSION;
|
||||
const ACCESS_ALLOW_FIRST_PARTY_ONLY = SpecialPowers.Ci.nsICookiePermission.ACCESS_ALLOW_FIRST_PARTY_ONLY;
|
||||
const ACCESS_LIMIT_THIRD_PARTY = SpecialPowers.Ci.nsICookiePermission.ACCESS_LIMIT_THIRD_PARTY;
|
||||
|
||||
function starttest(){
|
||||
SpecialPowers.addPermission("pPROMPT", PROMPT_ACTION, document);
|
||||
SpecialPowers.addPermission("pALLOW", ALLOW_ACTION, document);
|
||||
SpecialPowers.addPermission("pDENY", DENY_ACTION, document);
|
||||
SpecialPowers.addPermission("pREMOVE", ALLOW_ACTION, document);
|
||||
SpecialPowers.addPermission("pSESSION", ACCESS_SESSION, document);
|
||||
SpecialPowers.addPermission("pFIRSTPARTY", ACCESS_ALLOW_FIRST_PARTY_ONLY, document);
|
||||
SpecialPowers.addPermission("pTHIRDPARTY", ACCESS_LIMIT_THIRD_PARTY, document);
|
||||
|
||||
setTimeout(test1, 0);
|
||||
}
|
||||
@ -40,6 +44,15 @@ function test1() {
|
||||
} else if (!SpecialPowers.testPermission('pREMOVE', ALLOW_ACTION, document)) {
|
||||
dump('/**** remove not set ****/\n');
|
||||
setTimeout(test1, 0);
|
||||
} else if (!SpecialPowers.testPermission('pSESSION', ACCESS_SESSION, document)) {
|
||||
dump('/**** ACCESS_SESSION not set ****/\n');
|
||||
setTimeout(test1, 0);
|
||||
} else if (!SpecialPowers.testPermission('pFIRSTPARTY', ACCESS_ALLOW_FIRST_PARTY_ONLY, document)) {
|
||||
dump('/**** ACCESS_ALLOW_FIRST_PARTY_ONLY not set ****/\n');
|
||||
setTimeout(test1, 0);
|
||||
} else if (!SpecialPowers.testPermission('pTHIRDPARTY', ACCESS_LIMIT_THIRD_PARTY, document)) {
|
||||
dump('/**** ACCESS_LIMIT_THIRD_PARTY not set ****/\n');
|
||||
setTimeout(test1, 0);
|
||||
} else {
|
||||
test2();
|
||||
}
|
||||
@ -47,7 +60,7 @@ function test1() {
|
||||
|
||||
function test2() {
|
||||
ok(SpecialPowers.testPermission('pUNKNOWN', UNKNOWN_ACTION, document), 'pUNKNOWN value should have UNKOWN permission');
|
||||
SpecialPowers.pushPermissions([{'type': 'pUNKNOWN', 'allow': true, 'context': document}, {'type': 'pALLOW', 'allow': false, 'context': document}, {'type': 'pDENY', 'allow': true, 'context': document}, {'type': 'pPROMPT', 'allow': true, 'context': document}, {'type': 'pREMOVE', 'remove': true, 'context': document}], test3);
|
||||
SpecialPowers.pushPermissions([{'type': 'pUNKNOWN', 'allow': true, 'context': document}, {'type': 'pALLOW', 'allow': false, 'context': document}, {'type': 'pDENY', 'allow': true, 'context': document}, {'type': 'pPROMPT', 'allow': true, 'context': document}, {'type': 'pSESSION', 'allow': true, 'context': document}, {'type': 'pFIRSTPARTY', 'allow': true, 'context': document}, {'type': 'pTHIRDPARTY', 'allow': true, 'context': document}, {'type': 'pREMOVE', 'remove': true, 'context': document}], test3);
|
||||
}
|
||||
|
||||
function test3() {
|
||||
@ -56,6 +69,10 @@ function test3() {
|
||||
ok(SpecialPowers.testPermission('pALLOW', DENY_ACTION, document), 'pALLOW should have DENY permission');
|
||||
ok(SpecialPowers.testPermission('pDENY', ALLOW_ACTION, document), 'pDENY should have ALLOW permission');
|
||||
ok(SpecialPowers.testPermission('pREMOVE', UNKNOWN_ACTION, document), 'pREMOVE should have REMOVE permission');
|
||||
ok(SpecialPowers.testPermission('pSESSION', ALLOW_ACTION, document), 'pSESSION should have ALLOW permission');
|
||||
ok(SpecialPowers.testPermission('pFIRSTPARTY', ALLOW_ACTION, document), 'pFIRSTPARTY should have ALLOW permission');
|
||||
ok(SpecialPowers.testPermission('pTHIRDPARTY', ALLOW_ACTION, document), 'pTHIRDPARTY should have ALLOW permission');
|
||||
|
||||
// only pPROMPT (last one) is different, the other stuff is just to see if it doesn't cause test failures
|
||||
SpecialPowers.pushPermissions([{'type': 'pUNKNOWN', 'allow': true, 'context': document}, {'type': 'pALLOW', 'allow': false, 'context': document}, {'type': 'pDENY', 'allow': true, 'context': document}, {'type': 'pPROMPT', 'allow': false, 'context': document}, {'type': 'pREMOVE', 'remove': true, 'context': document}], test3b);
|
||||
}
|
||||
@ -81,11 +98,17 @@ function test5() {
|
||||
ok(SpecialPowers.testPermission('pDENY', DENY_ACTION, document), 'pDENY should have DENY permission');
|
||||
ok(SpecialPowers.testPermission('pPROMPT', PROMPT_ACTION, document), 'pPROMPT should have PROMPT permission');
|
||||
ok(SpecialPowers.testPermission('pREMOVE', ALLOW_ACTION, document), 'pREMOVE should have ALLOW permission');
|
||||
ok(SpecialPowers.testPermission('pSESSION', ACCESS_SESSION, document), 'pSESSION should have ACCESS_SESSION permission');
|
||||
ok(SpecialPowers.testPermission('pFIRSTPARTY', ACCESS_ALLOW_FIRST_PARTY_ONLY, document), 'pFIRSTPARTY should have ACCESS_ALLOW_FIRST_PARTY_ONLY permission');
|
||||
ok(SpecialPowers.testPermission('pTHIRDPARTY', ACCESS_LIMIT_THIRD_PARTY, document), 'pTHIRDPARTY should have ACCESS_LIMIT_THIRD_PARTY permission');
|
||||
|
||||
SpecialPowers.removePermission("pPROMPT", document);
|
||||
SpecialPowers.removePermission("pALLOW", document);
|
||||
SpecialPowers.removePermission("pDENY", document);
|
||||
SpecialPowers.removePermission("pREMOVE", document);
|
||||
SpecialPowers.removePermission("pSESSION", document);
|
||||
SpecialPowers.removePermission("pFIRSTPARTY", document);
|
||||
SpecialPowers.removePermission("pTHIRDPARTY", document);
|
||||
|
||||
setTimeout(test6, 0);
|
||||
}
|
||||
@ -103,6 +126,15 @@ function test6() {
|
||||
} else if (!SpecialPowers.testPermission('pREMOVE', UNKNOWN_ACTION, document)) {
|
||||
dump('/**** remove still set ****/\n');
|
||||
setTimeout(test6, 0);
|
||||
} else if (!SpecialPowers.testPermission('pSESSION', UNKNOWN_ACTION, document)) {
|
||||
dump('/**** pSESSION still set ****/\n');
|
||||
setTimeout(test6, 0);
|
||||
} else if (!SpecialPowers.testPermission('pFIRSTPARTY', UNKNOWN_ACTION, document)) {
|
||||
dump('/**** pFIRSTPARTY still set ****/\n');
|
||||
setTimeout(test6, 0);
|
||||
} else if (!SpecialPowers.testPermission('pTHIRDPARTY', UNKNOWN_ACTION, document)) {
|
||||
dump('/**** pTHIRDPARTY still set ****/\n');
|
||||
setTimeout(test6, 0);
|
||||
} else {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
@ -626,6 +626,12 @@ SpecialPowersAPI.prototype = {
|
||||
originalValue = Ci.nsIPermissionManager.DENY_ACTION;
|
||||
} else if (this.testPermission(permission.type, Ci.nsIPermissionManager.PROMPT_ACTION, permission.context)) {
|
||||
originalValue = Ci.nsIPermissionManager.PROMPT_ACTION;
|
||||
} else if (this.testPermission(permission.type, Ci.nsICookiePermission.ACCESS_SESSION, permission.context)) {
|
||||
originalValue = Ci.nsICookiePermission.ACCESS_SESSION;
|
||||
} else if (this.testPermission(permission.type, Ci.nsICookiePermission.ACCESS_ALLOW_FIRST_PARTY_ONLY, permission.context)) {
|
||||
originalValue = Ci.nsICookiePermission.ACCESS_ALLOW_FIRST_PARTY_ONLY;
|
||||
} else if (this.testPermission(permission.type, Ci.nsICookiePermission.ACCESS_LIMIT_THIRD_PARTY, permission.context)) {
|
||||
originalValue = Ci.nsICookiePermission.ACCESS_LIMIT_THIRD_PARTY;
|
||||
}
|
||||
|
||||
let [url, appId, isInBrowserElement] = this._getInfoFromPermissionArg(permission.context);
|
||||
|
Loading…
Reference in New Issue
Block a user