зеркало из https://github.com/mozilla/gecko-dev.git
88 строки
2.5 KiB
JavaScript
88 строки
2.5 KiB
JavaScript
add_task(async function() {
|
|
var privWin = OpenBrowserWindow({ private: true });
|
|
await new privWin.Promise(resolve => {
|
|
privWin.addEventListener(
|
|
"load",
|
|
function() {
|
|
resolve();
|
|
},
|
|
{ once: true }
|
|
);
|
|
});
|
|
|
|
var pubWin = OpenBrowserWindow({ private: false });
|
|
await new pubWin.Promise(resolve => {
|
|
pubWin.addEventListener(
|
|
"load",
|
|
function() {
|
|
resolve();
|
|
},
|
|
{ once: true }
|
|
);
|
|
});
|
|
|
|
var URL =
|
|
"http://mochi.test:8888/browser/dom/tests/browser/page_privatestorageevent.html";
|
|
|
|
var privTab = BrowserTestUtils.addTab(privWin.gBrowser, URL);
|
|
await BrowserTestUtils.browserLoaded(
|
|
privWin.gBrowser.getBrowserForTab(privTab)
|
|
);
|
|
var privBrowser = gBrowser.getBrowserForTab(privTab);
|
|
|
|
var pubTab = BrowserTestUtils.addTab(pubWin.gBrowser, URL);
|
|
await BrowserTestUtils.browserLoaded(
|
|
pubWin.gBrowser.getBrowserForTab(pubTab)
|
|
);
|
|
var pubBrowser = gBrowser.getBrowserForTab(pubTab);
|
|
|
|
// Check if pubWin can see privWin's storage events
|
|
await SpecialPowers.spawn(pubBrowser, [], function(opts) {
|
|
content.window.gotStorageEvent = false;
|
|
content.window.addEventListener("storage", ev => {
|
|
content.window.gotStorageEvent = true;
|
|
});
|
|
});
|
|
|
|
await SpecialPowers.spawn(privBrowser, [], function(opts) {
|
|
content.window.localStorage.key = "ablooabloo";
|
|
});
|
|
|
|
let pubSaw = await SpecialPowers.spawn(pubBrowser, [], function(opts) {
|
|
return content.window.gotStorageEvent;
|
|
});
|
|
|
|
ok(!pubSaw, "pubWin shouldn't be able to see privWin's storage events");
|
|
|
|
await SpecialPowers.spawn(privBrowser, [], function(opts) {
|
|
content.window.gotStorageEvent = false;
|
|
content.window.addEventListener("storage", ev => {
|
|
content.window.gotStorageEvent = true;
|
|
});
|
|
});
|
|
|
|
// Check if privWin can see pubWin's storage events
|
|
await SpecialPowers.spawn(privBrowser, [], function(opts) {
|
|
content.window.gotStorageEvent = false;
|
|
content.window.addEventListener("storage", ev => {
|
|
content.window.gotStorageEvent = true;
|
|
});
|
|
});
|
|
|
|
await SpecialPowers.spawn(pubBrowser, [], function(opts) {
|
|
content.window.localStorage.key = "ablooabloo";
|
|
});
|
|
|
|
let privSaw = await SpecialPowers.spawn(privBrowser, [], function(opts) {
|
|
return content.window.gotStorageEvent;
|
|
});
|
|
|
|
ok(!privSaw, "privWin shouldn't be able to see pubWin's storage events");
|
|
|
|
BrowserTestUtils.removeTab(privTab);
|
|
await BrowserTestUtils.closeWindow(privWin);
|
|
|
|
BrowserTestUtils.removeTab(pubTab);
|
|
await BrowserTestUtils.closeWindow(pubWin);
|
|
});
|