diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/components/thumbnails/test/browser_thumbnails_privacy.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/components/thumbnails/test/browser_thumbnails_privacy.js')
-rw-r--r-- | toolkit/components/thumbnails/test/browser_thumbnails_privacy.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/toolkit/components/thumbnails/test/browser_thumbnails_privacy.js b/toolkit/components/thumbnails/test/browser_thumbnails_privacy.js new file mode 100644 index 000000000..e7dc7b4d5 --- /dev/null +++ b/toolkit/components/thumbnails/test/browser_thumbnails_privacy.js @@ -0,0 +1,74 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +const PREF_DISK_CACHE_SSL = "browser.cache.disk_cache_ssl"; +const URL = "://example.com/browser/toolkit/components/thumbnails/" + + "test/privacy_cache_control.sjs"; + +function* runTests() { + registerCleanupFunction(function () { + Services.prefs.clearUserPref(PREF_DISK_CACHE_SSL); + }); + + let positive = [ + // A normal HTTP page without any Cache-Control header. + {scheme: "http", cacheControl: null, diskCacheSSL: false}, + + // A normal HTTP page with 'Cache-Control: private'. + {scheme: "http", cacheControl: "private", diskCacheSSL: false}, + + // Capture HTTPS pages if browser.cache.disk_cache_ssl == true. + {scheme: "https", cacheControl: null, diskCacheSSL: true}, + {scheme: "https", cacheControl: "public", diskCacheSSL: true}, + {scheme: "https", cacheControl: "private", diskCacheSSL: true} + ]; + + let negative = [ + // Never capture pages with 'Cache-Control: no-store'. + {scheme: "http", cacheControl: "no-store", diskCacheSSL: false}, + {scheme: "http", cacheControl: "no-store", diskCacheSSL: true}, + {scheme: "https", cacheControl: "no-store", diskCacheSSL: false}, + {scheme: "https", cacheControl: "no-store", diskCacheSSL: true}, + + // Don't capture HTTPS pages by default. + {scheme: "https", cacheControl: null, diskCacheSSL: false}, + {scheme: "https", cacheControl: "public", diskCacheSSL: false}, + {scheme: "https", cacheControl: "private", diskCacheSSL: false} + ]; + + yield checkCombinations(positive, true); + yield checkCombinations(negative, false); +} + +function checkCombinations(aCombinations, aResult) { + let combi = aCombinations.shift(); + if (!combi) { + next(); + return; + } + + let url = combi.scheme + URL; + if (combi.cacheControl) + url += "?" + combi.cacheControl; + Services.prefs.setBoolPref(PREF_DISK_CACHE_SSL, combi.diskCacheSSL); + + // Add the test page as a top link so it has a chance to be thumbnailed + addVisitsAndRepopulateNewTabLinks(url, _ => { + testCombination(combi, url, aCombinations, aResult); + }); +} + +function testCombination(combi, url, aCombinations, aResult) { + let tab = gBrowser.selectedTab = gBrowser.addTab(url); + let browser = gBrowser.selectedBrowser; + + whenLoaded(browser, () => { + let msg = JSON.stringify(combi) + " == " + aResult; + PageThumbs.shouldStoreThumbnail(browser, (aIsSafeSite) => { + is(aIsSafeSite, aResult, msg); + gBrowser.removeTab(tab); + // Continue with the next combination. + checkCombinations(aCombinations, aResult); + }); + }); +} |