зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1455970 - Write test for cookies being synced across tabs r=Ehsan
Adds a test for code landed in bug 1450199. Opens two tabs in different processes then sets cookies in one followed by checking the value in the other. MozReview-Commit-ID: 605k68Kl7nA --HG-- extra : rebase_source : 4efc6cf95d45b13ecbf50e51ce3134d87990fcbd
This commit is contained in:
Родитель
f4ca801391
Коммит
8f345870cc
|
@ -10,3 +10,4 @@ skip-if = !crashreporter || (e10s && debug && os == "linux" && bits == 64) || de
|
||||||
[browser_nsIFormPOSTActionChannel.js]
|
[browser_nsIFormPOSTActionChannel.js]
|
||||||
skip-if = e10s # protocol handler and channel does not work in content process
|
skip-if = e10s # protocol handler and channel does not work in content process
|
||||||
[browser_resource_navigation.js]
|
[browser_resource_navigation.js]
|
||||||
|
[browser_cookie_sync_across_tabs.js]
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
add_task(async function() {
|
||||||
|
info("Make sure cookie changes in one process are visible in the other");
|
||||||
|
|
||||||
|
const kRoot = getRootDirectory(gTestPath).replace("chrome://mochitests/content/",
|
||||||
|
"https://example.com/");
|
||||||
|
const kTestPage = kRoot + "dummy.html";
|
||||||
|
|
||||||
|
Services.cookies.removeAll();
|
||||||
|
|
||||||
|
let tab1 = await BrowserTestUtils.openNewForegroundTab({ gBrowser, url: kTestPage, forceNewProcess: true });
|
||||||
|
let tab2 = await BrowserTestUtils.openNewForegroundTab({ gBrowser, url: kTestPage, forceNewProcess: true });
|
||||||
|
|
||||||
|
let browser1 = gBrowser.getBrowserForTab(tab1);
|
||||||
|
let browser2 = gBrowser.getBrowserForTab(tab2);
|
||||||
|
|
||||||
|
let pid1 = browser1.frameLoader.tabParent.osPid;
|
||||||
|
let pid2 = browser2.frameLoader.tabParent.osPid;
|
||||||
|
|
||||||
|
// Note, this might not be true once fission is implemented (Bug 1451850)
|
||||||
|
ok(pid1 != pid2, "We should have different processes here.");
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser1, null, async function() {
|
||||||
|
is(content.document.cookie, "", "Expecting no cookies");
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser2, null, async function() {
|
||||||
|
is(content.document.cookie, "", "Expecting no cookies");
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser1, null, async function() {
|
||||||
|
content.document.cookie = "a1=test";
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser2, null, async function() {
|
||||||
|
is(content.document.cookie, "a1=test", "Cookie should be set");
|
||||||
|
content.document.cookie = "a1=other_test";
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser1, null, async function() {
|
||||||
|
is(content.document.cookie, "a1=other_test", "Cookie should be set");
|
||||||
|
content.document.cookie = "a2=again";
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser2, null, async function() {
|
||||||
|
is(content.document.cookie, "a1=other_test; a2=again", "Cookie should be set");
|
||||||
|
content.document.cookie = "a1=; expires=Thu, 01-Jan-1970 00:00:01 GMT;";
|
||||||
|
content.document.cookie = "a2=; expires=Thu, 01-Jan-1970 00:00:01 GMT;";
|
||||||
|
});
|
||||||
|
|
||||||
|
await ContentTask.spawn(browser1, null, async function() {
|
||||||
|
is(content.document.cookie, "", "Cookies should be cleared");
|
||||||
|
});
|
||||||
|
|
||||||
|
BrowserTestUtils.removeTab(tab1);
|
||||||
|
BrowserTestUtils.removeTab(tab2);
|
||||||
|
|
||||||
|
ok(true, "Got to the end of the test!");
|
||||||
|
});
|
Загрузка…
Ссылка в новой задаче