forked from mirrors/gecko-dev
MozReview-Commit-ID: JqUm77vFod2 --HG-- extra : rebase_source : a2de57a7c5d635c142752720fa04caa85288643f
39 lines
1.5 KiB
JavaScript
39 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
|
|
"resource://gre/modules/Preferences.jsm");
|
|
XPCOMUtils.defineLazyModuleGetter(this, "Sanitizer",
|
|
"resource:///modules/Sanitizer.jsm");
|
|
|
|
extensions.registerSchemaAPI("browsingData", "addon_parent", context => {
|
|
return {
|
|
browsingData: {
|
|
settings() {
|
|
const PREF_DOMAIN = "privacy.cpd.";
|
|
// The following prefs are the only ones in Firefox that match corresponding
|
|
// values used by Chrome when rerturning settings.
|
|
const PREF_LIST = ["cache", "cookies", "history", "formdata", "downloads"];
|
|
|
|
// since will be the start of what is returned by Sanitizer.getClearRange
|
|
// divided by 1000 to convert to ms.
|
|
let since = Sanitizer.getClearRange()[0] / 1000;
|
|
let options = {since};
|
|
|
|
let dataToRemove = {};
|
|
let dataRemovalPermitted = {};
|
|
|
|
for (let item of PREF_LIST) {
|
|
dataToRemove[item] = Preferences.get(`${PREF_DOMAIN}${item}`);
|
|
// Firefox doesn't have the same concept of dataRemovalPermitted
|
|
// as Chrome, so it will always be true.
|
|
dataRemovalPermitted[item] = true;
|
|
}
|
|
// formData has a different case than the pref formdata.
|
|
dataToRemove.formData = Preferences.get(`${PREF_DOMAIN}formdata`);
|
|
dataRemovalPermitted.formData = true;
|
|
|
|
return Promise.resolve({options, dataToRemove, dataRemovalPermitted});
|
|
},
|
|
},
|
|
};
|
|
});
|