major update
This commit is contained in:
214
privacy.js
Normal file
214
privacy.js
Normal file
@ -0,0 +1,214 @@
|
||||
|
||||
function onSet(result) {
|
||||
if (result) {
|
||||
console.log("->: Value was updated");
|
||||
} else {
|
||||
console.log("-X: Value was not updated");
|
||||
}
|
||||
}
|
||||
|
||||
// This disables queries to centralized databases of bad URLs to screen for
|
||||
// risky sites in your browser
|
||||
function disableHyperlinkAuditing() {
|
||||
var setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling hyperlink auditing/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
|
||||
// This enables first-party isolation
|
||||
function enableFirstPartyIsolation() {
|
||||
var setting = browser.privacy.websites.firstPartyIsolate.set({
|
||||
value: true
|
||||
});
|
||||
console.log("Enabling first party isolation/val=", {
|
||||
value: true
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
|
||||
// This rejects tracking cookies and third-party cookies but it
|
||||
// LEAVES "Persistent" Cookies unmodified in favor of an option in the content
|
||||
// interface for now
|
||||
function disableEvilCookies() {
|
||||
var getting = browser.privacy.websites.cookieConfig.get({});
|
||||
getting.then((got) => {
|
||||
var setting = browser.privacy.websites.cookieConfig.set(
|
||||
{value: {behavior: "reject_third_party",
|
||||
nonPersistentCookies: got.value.nonPersistentCookies}}
|
||||
);
|
||||
console.log("Setting cookie behavior/val=", {value: {behavior: "reject_third_party",
|
||||
nonPersistentCookies: got.value.nonPersistentCookies}})
|
||||
setting.then(onSet);
|
||||
});
|
||||
}
|
||||
|
||||
// Make sure that they're gone
|
||||
/*function disableBadCookies(){
|
||||
var setting = browser.privacy.websites.thirdPartyCookiesAllowed.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling third party cookies/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}*/
|
||||
|
||||
// this disables the use of referrer headers
|
||||
function disableReferrers() {
|
||||
var setting = browser.privacy.websites.referrersEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling referrer headers/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
|
||||
// enable fingerprinting resistent features(letterboxing and stuff)
|
||||
function enableResistFingerprinting() {
|
||||
var setting = browser.privacy.websites.referrersEnabled.set({
|
||||
value: true
|
||||
});
|
||||
console.log("Enabling resist fingerprinting/val=", {
|
||||
value: true
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
|
||||
// This is essentially a blocklist of clearnet web-sites known to do bad tracking
|
||||
function enableTrackingProtection() {
|
||||
var setting = browser.privacy.websites.trackingProtectionMode.set({
|
||||
value: "always"
|
||||
});
|
||||
console.log("Enabling tracking protection/val=", {
|
||||
value: "always"
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
|
||||
// This disables protected content, which is a form of digital restrictions
|
||||
// management dependent on identifying information
|
||||
function disableDigitalRestrictionsManagement() {
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os == "win") {
|
||||
var setting = browser.privacy.websites.protectedContentEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Setting Protected Content(Digital Restrictions Management) false/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function setAllPrivacy() {
|
||||
disableHyperlinkAuditing()
|
||||
enableFirstPartyIsolation()
|
||||
disableEvilCookies()
|
||||
disableReferrers()
|
||||
enableTrackingProtection()
|
||||
enableResistFingerprinting()
|
||||
disableDigitalRestrictionsManagement()
|
||||
}
|
||||
|
||||
setAllPrivacy()
|
||||
|
||||
function ResetPeerConnection(){
|
||||
browser.privacy.network.peerConnectionEnabled.set({value: false});
|
||||
browser.privacy.network.networkPredictionEnabled.set({value: false});
|
||||
browser.privacy.network.webRTCIPHandlingPolicy.set({value: "disable_non_proxied_udp"});
|
||||
console.log("Re-disabled WebRTC")
|
||||
}
|
||||
|
||||
function EnablePeerConnection(){
|
||||
browser.privacy.network.peerConnectionEnabled.set({value: true});
|
||||
browser.privacy.network.networkPredictionEnabled.set({value: false});
|
||||
browser.privacy.network.webRTCIPHandlingPolicy.set({value: "disable_non_proxied_udp"});
|
||||
console.log("Enabled WebRTC")
|
||||
}
|
||||
|
||||
ResetPeerConnection()
|
||||
|
||||
function ResetDisableSavePasswords(){
|
||||
browser.privacy.services.passwordSavingEnabled.set({value: false});
|
||||
console.log("Re-disabled saved passwords")
|
||||
}
|
||||
|
||||
function EnableSavePasswords(){
|
||||
browser.privacy.services.passwordSavingEnabled.set({value: true});
|
||||
console.log("Enabled saved passwords")
|
||||
}
|
||||
|
||||
//ResetDisableSavePasswords()
|
||||
|
||||
|
||||
var defaultSettings = {
|
||||
since: "forever",
|
||||
dataTypes: ["history", "downloads", "cache", "cookies", "passwords", "pluginData", "formData", "serviceWorkers"]
|
||||
};
|
||||
|
||||
var appSettings = {
|
||||
since: "forever",
|
||||
dataTypes: [""]
|
||||
};
|
||||
|
||||
function onError(e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
function checkStoredSettings(storedSettings) {
|
||||
browser.storage.local.set(appSettings);
|
||||
}
|
||||
|
||||
const gettingStoredSettings = browser.storage.local.get();
|
||||
gettingStoredSettings.then(checkStoredSettings, onError);
|
||||
|
||||
function forgetBrowsingData(storedSettings) {
|
||||
|
||||
function getSince(selectedSince) {
|
||||
if (selectedSince === "forever") {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const times = {
|
||||
hour: () => { return 1000 * 60 * 60 },
|
||||
day: () => { return 1000 * 60 * 60 * 24 },
|
||||
week: () => { return 1000 * 60 * 60 * 24 * 7}
|
||||
}
|
||||
|
||||
const sinceMilliseconds = times[selectedSince].call();
|
||||
return Date.now() - sinceMilliseconds;
|
||||
}
|
||||
|
||||
function getTypes(selectedTypes) {
|
||||
let dataTypes = {};
|
||||
for (let item of selectedTypes) {
|
||||
dataTypes[item] = true;
|
||||
}
|
||||
return dataTypes;
|
||||
}
|
||||
|
||||
const since = getSince(defaultSettings.since);
|
||||
const dataTypes = getTypes(defaultSettings.dataTypes);
|
||||
|
||||
function notify() {
|
||||
let dataTypesString = Object.keys(dataTypes).join(", ");
|
||||
let sinceString = new Date(since).toLocaleString();
|
||||
browser.notifications.create({
|
||||
"type": "basic",
|
||||
"title": "Removed browsing data",
|
||||
"message": `Removed ${dataTypesString}\nsince ${sinceString}`
|
||||
});
|
||||
}
|
||||
|
||||
browser.browsingData.remove({since}, dataTypes).then(notify);
|
||||
|
||||
setAllPrivacy()
|
||||
ResetPeerConnection()
|
||||
}
|
Reference in New Issue
Block a user