mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 06:08:24 +02:00
Previous to bug 1453751 favicons were loaded from the network by a <xul:image> tag with validate="never". This caused us to always use any cached version if possible. Bug 1453751 used a normal load type causing us to revalidate with the server for each request. This switches the loader to using the cache if possible. Differential Revision: https://phabricator.services.mozilla.com/D11402 --HG-- extra : moz-landing-system : lando
40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
add_task(async () => {
|
|
const testPath = "http://example.com/browser/browser/base/content/test/favicons/cookie_favicon.html";
|
|
const resetPath = "http://example.com/browser/browser/base/content/test/favicons/cookie_favicon.sjs?reset";
|
|
|
|
let tab = BrowserTestUtils.addTab(gBrowser, testPath);
|
|
gBrowser.selectedTab = tab;
|
|
let browser = tab.linkedBrowser;
|
|
|
|
let faviconPromise = waitForLinkAvailable(browser);
|
|
await BrowserTestUtils.browserLoaded(browser);
|
|
await faviconPromise;
|
|
let cookies = Services.cookies.getCookiesFromHost("example.com", browser.contentPrincipal.originAttributes);
|
|
let seenCookie = false;
|
|
for (let cookie of cookies) {
|
|
if (cookie.name == "faviconCookie") {
|
|
seenCookie = true;
|
|
is(cookie.value, 1, "Should have seen the right initial cookie.");
|
|
}
|
|
}
|
|
ok(seenCookie, "Should have seen the cookie.");
|
|
|
|
faviconPromise = waitForLinkAvailable(browser);
|
|
BrowserTestUtils.loadURI(browser, testPath);
|
|
await BrowserTestUtils.browserLoaded(browser);
|
|
await faviconPromise;
|
|
cookies = Services.cookies.getCookiesFromHost("example.com", browser.contentPrincipal.originAttributes);
|
|
seenCookie = false;
|
|
for (let cookie of cookies) {
|
|
if (cookie.name == "faviconCookie") {
|
|
seenCookie = true;
|
|
is(cookie.value, 1, "Should have seen the cached cookie.");
|
|
}
|
|
}
|
|
ok(seenCookie, "Should have seen the cookie.");
|
|
|
|
// Reset the cookie so if this test is run again it will still pass.
|
|
await fetch(resetPath);
|
|
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|