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:
Martijn Wargers 2013-09-16 17:15:22 +02:00
parent 72d1dd97a0
commit f8642bfb00
19 changed files with 392 additions and 438 deletions

View File

@ -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>

View File

@ -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)

View File

@ -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]

View File

@ -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>

View File

@ -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>

View File

@ -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>

View 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>

View File

@ -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();
}

View File

@ -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>

View File

@ -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();

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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",

View File

@ -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();
}

View File

@ -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);