forked from mirrors/gecko-dev
73 lines
2 KiB
JavaScript
73 lines
2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const NOW = Date.now() * 1000;
|
|
const URL = "http://fake-site.com/";
|
|
|
|
var tmp = {};
|
|
Cc["@mozilla.org/moz/jssubscript-loader;1"]
|
|
.getService(Ci.mozIJSSubScriptLoader)
|
|
.loadSubScript("chrome://browser/content/sanitize.js", tmp);
|
|
|
|
var {Sanitizer} = tmp;
|
|
|
|
add_task(function* () {
|
|
yield promiseSanitizeHistory();
|
|
yield promiseAddFakeVisits();
|
|
yield* addNewTabPageTab();
|
|
|
|
let cellUrl = yield performOnCell(0, cell => { return cell.site.url; });
|
|
is(cellUrl, URL, "first site is our fake site");
|
|
|
|
let updatedPromise = whenPagesUpdated();
|
|
yield promiseSanitizeHistory();
|
|
yield updatedPromise;
|
|
|
|
let isGone = yield performOnCell(0, cell => { return cell.site == null; });
|
|
ok(isGone, "fake site is gone");
|
|
});
|
|
|
|
function promiseAddFakeVisits() {
|
|
let visits = [];
|
|
for (let i = 59; i > 0; i--) {
|
|
visits.push({
|
|
visitDate: NOW - i * 60 * 1000000,
|
|
transitionType: Ci.nsINavHistoryService.TRANSITION_LINK
|
|
});
|
|
}
|
|
let place = {
|
|
uri: makeURI(URL),
|
|
title: "fake site",
|
|
visits: visits
|
|
};
|
|
return new Promise((resolve, reject) => {
|
|
PlacesUtils.asyncHistory.updatePlaces(place, {
|
|
handleError: () => reject(new Error("Couldn't add visit")),
|
|
handleResult: function () {},
|
|
handleCompletion: function () {
|
|
NewTabUtils.links.populateCache(function () {
|
|
NewTabUtils.allPages.update();
|
|
resolve();
|
|
}, true);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function promiseSanitizeHistory() {
|
|
let s = new Sanitizer();
|
|
s.prefDomain = "privacy.cpd.";
|
|
|
|
let prefs = gPrefService.getBranch(s.prefDomain);
|
|
prefs.setBoolPref("history", true);
|
|
prefs.setBoolPref("downloads", false);
|
|
prefs.setBoolPref("cache", false);
|
|
prefs.setBoolPref("cookies", false);
|
|
prefs.setBoolPref("formdata", false);
|
|
prefs.setBoolPref("offlineApps", false);
|
|
prefs.setBoolPref("passwords", false);
|
|
prefs.setBoolPref("sessions", false);
|
|
prefs.setBoolPref("siteSettings", false);
|
|
|
|
return s.sanitize();
|
|
}
|