2014-10-11 01:28:04 +04:00
|
|
|
/* Any copyright is dedicated to the public domain.
|
|
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
|
|
|
|
// Test that the mozprivatebrowsing attribute works.
|
|
|
|
"use strict";
|
|
|
|
|
2019-03-19 23:56:24 +03:00
|
|
|
/* global browserElementTestHelpers */
|
|
|
|
|
2014-10-11 01:28:04 +04:00
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
browserElementTestHelpers.setEnabledPref(true);
|
|
|
|
browserElementTestHelpers.addPermission();
|
|
|
|
|
|
|
|
function createFrame(aIsPrivate) {
|
|
|
|
var iframe = document.createElement("iframe");
|
2019-03-19 23:56:10 +03:00
|
|
|
iframe.setAttribute("mozbrowser", "true");
|
2014-10-11 01:28:04 +04:00
|
|
|
if (aIsPrivate) {
|
|
|
|
iframe.setAttribute("mozprivatebrowsing", "true");
|
|
|
|
}
|
|
|
|
return iframe;
|
|
|
|
}
|
|
|
|
|
|
|
|
function createTest(aIsPrivate, aExpected, aClearStorage) {
|
|
|
|
info("createTest " + aIsPrivate + " " + aExpected);
|
2014-10-31 05:39:14 +03:00
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
var iframe = createFrame(aIsPrivate);
|
|
|
|
document.body.appendChild(iframe);
|
2014-10-11 01:28:04 +04:00
|
|
|
|
2014-10-31 05:39:14 +03:00
|
|
|
iframe.addEventListener("mozbrowsershowmodalprompt", function(e) {
|
|
|
|
is(e.detail.message, aExpected, "Checking localstorage");
|
|
|
|
resolve();
|
|
|
|
});
|
2014-10-11 01:28:04 +04:00
|
|
|
|
2014-10-31 05:39:14 +03:00
|
|
|
var src = "file_browserElement_PrivateBrowsing.html";
|
|
|
|
iframe.src = aClearStorage ? src + "?clear=true" : src;
|
|
|
|
});
|
2014-10-11 01:28:04 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function runTest() {
|
|
|
|
// We first create a iframe in non private browsing mode, set up some
|
|
|
|
// localstorage, reopen it to check that we get the previously set value.
|
|
|
|
// Finally, open it in private browsing mode and check that localstorage
|
|
|
|
// is clear.
|
|
|
|
createTest(false, "CLEAR", true)
|
|
|
|
.then(() => {
|
|
|
|
return createTest(false, "EMPTY", false);
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
return createTest(false, "bar", false);
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
return createTest(true, "EMPTY", false);
|
2019-07-05 11:44:55 +03:00
|
|
|
})
|
2014-10-11 01:28:04 +04:00
|
|
|
.then(SimpleTest.finish);
|
|
|
|
}
|
|
|
|
|
|
|
|
addEventListener("testready", runTest);
|