forked from mirrors/gecko-dev
MozReview-Commit-ID: tdNee2EPdV --HG-- extra : rebase_source : 436ef616173f22b6d8386b8e7b3f482f1acabca4
64 lines
2 KiB
JavaScript
64 lines
2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Verifies that hidden, pre-loaded newtabs don't allow background captures, and
|
|
* when unhidden, do allow background captures.
|
|
*/
|
|
|
|
const CAPTURE_PREF = "browser.pagethumbnails.capturing_disabled";
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(this, "PageThumbsStorageService",
|
|
"@mozilla.org/thumbnails/pagethumbs-service;1",
|
|
"nsIPageThumbsStorageService");
|
|
|
|
add_task(async function() {
|
|
// Disable captures.
|
|
await pushPrefs([CAPTURE_PREF, false]);
|
|
|
|
// Make sure the thumbnail doesn't exist yet.
|
|
let url = "http://example.com/";
|
|
let path = PageThumbsStorageService.getFilePathForURL(url);
|
|
let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
|
|
file.initWithPath(path);
|
|
try {
|
|
file.remove(false);
|
|
} catch (err) {}
|
|
|
|
// Add a top site.
|
|
await setLinks("-1");
|
|
|
|
// We need a handle to a hidden, pre-loaded newtab so we can verify that it
|
|
// doesn't allow background captures. Ensure we have a preloaded browser.
|
|
gBrowser._createPreloadBrowser();
|
|
|
|
// Wait for the preloaded browser to load.
|
|
if (gBrowser._preloadedBrowser.contentDocument.readyState != "complete") {
|
|
await BrowserTestUtils.waitForEvent(gBrowser._preloadedBrowser, "load", true);
|
|
}
|
|
|
|
// We're now ready to use the preloaded browser.
|
|
BrowserOpenTab();
|
|
let tab = gBrowser.selectedTab;
|
|
|
|
let thumbnailCreatedPromise = new Promise(resolve => {
|
|
// Showing the preloaded tab should trigger thumbnail capture.
|
|
Services.obs.addObserver(function onCreate(subj, topic, data) {
|
|
if (data != url)
|
|
return;
|
|
Services.obs.removeObserver(onCreate, "page-thumbnail:create");
|
|
ok(true, "thumbnail created after preloaded tab was shown");
|
|
|
|
resolve();
|
|
}, "page-thumbnail:create");
|
|
});
|
|
|
|
// Enable captures.
|
|
await pushPrefs([CAPTURE_PREF, false]);
|
|
|
|
await thumbnailCreatedPromise;
|
|
|
|
// Test finished!
|
|
gBrowser.removeTab(tab);
|
|
file.remove(false);
|
|
});
|