mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2024-12-22 21:00:23 +01:00
f73a4ee619
Fixes #251
321 lines
6.0 KiB
JavaScript
321 lines
6.0 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
(function(){
|
|
"use strict";
|
|
|
|
var settingDefinitions = [
|
|
{
|
|
name: "logLevel",
|
|
defaultValue: 1,
|
|
options: [0, 1, 25, 50, 75, 100]
|
|
},
|
|
{
|
|
name: "urlSettings",
|
|
defaultValue: [],
|
|
urlContainer: true,
|
|
entries: [
|
|
{name: "url", defaultValue: ""}
|
|
]
|
|
},
|
|
{
|
|
name: "hiddenSettings",
|
|
hideContainer: true,
|
|
defaultValue: {}
|
|
},
|
|
{
|
|
name: "expandStatus",
|
|
expandContainer: true,
|
|
defaultValue: {}
|
|
},
|
|
{
|
|
name: "displayHiddenSettings",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "urls",
|
|
defaultValue: [],
|
|
dynamic: true,
|
|
dependencies: ["urlSettings"],
|
|
getter: function(settings){
|
|
return settings.urlSettings.map(function(urlSetting){
|
|
return urlSetting.url;
|
|
});
|
|
}
|
|
},
|
|
{
|
|
name: "whiteList",
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "sessionWhiteList",
|
|
resetOnStartup: true,
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "blackList",
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "blockMode",
|
|
defaultValue: "fakeReadout",
|
|
urlSpecific: true,
|
|
options: [
|
|
"blockReadout", "fakeReadout", "fakeInput", "askReadout", null,
|
|
"blockEverything", "block", "ask", "allow", "allowEverything"
|
|
]
|
|
},
|
|
{
|
|
name: "minFakeSize",
|
|
defaultValue: 1
|
|
},
|
|
{
|
|
name: "maxFakeSize",
|
|
defaultValue: 0
|
|
},
|
|
{
|
|
name: "rng",
|
|
defaultValue: "nonPersistent",
|
|
options: ["white", "nonPersistent", "constant", "persistent"]
|
|
},
|
|
{
|
|
name: "protectedAPIFeatures",
|
|
defaultValue: {},
|
|
keys: [
|
|
{name: "Canvas-API", level: 1},
|
|
"getContext",
|
|
{message: "readout", level: 2},
|
|
"toDataURL", "toBlob", "mozGetAsFile", "getImageData",
|
|
"isPointInPath", "isPointInStroke",
|
|
{message: "input", level: 2},
|
|
"fillText", "strokeText",
|
|
{name: "webGL", level: 2},
|
|
"readPixels",
|
|
{name: "Audio-API", level: 1},
|
|
"getFloatFrequencyData", "getByteFrequencyData", "getFloatTimeDomainData", "getByteTimeDomainData",
|
|
"getChannelData", "copyFromChannel",
|
|
"getFrequencyResponse",
|
|
{name: "History-API", level: 1},
|
|
"length",
|
|
{name: "Window-API", level: 1},
|
|
"opener",
|
|
"name",
|
|
{name: "DOMRect-API", level: 1},
|
|
"getClientRects",
|
|
"getBoundingClientRect",
|
|
"getBounds",
|
|
"getBBox",
|
|
"getExtentOfChar",
|
|
"intersectionRect",
|
|
"boundingClientRect",
|
|
"rootBounds",
|
|
],
|
|
defaultKeyValue: true
|
|
},
|
|
{
|
|
name: "useCanvasCache",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "ignoreFrequentColors",
|
|
defaultValue: 0
|
|
},
|
|
{
|
|
name: "minColors",
|
|
defaultValue: 0
|
|
},
|
|
{
|
|
name: "fakeAlphaChannel",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "persistentRndStorage",
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "persistentIncognitoRndStorage",
|
|
resetOnStartup: true,
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "storePersistentRnd",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "persistentRndClearIntervalValue",
|
|
defaultValue: 0
|
|
},
|
|
{
|
|
name: "persistentRndClearIntervalUnit",
|
|
defaultValue: "days",
|
|
options: ["seconds", "minutes", "hours", "days", "weeks", "months", "years"]
|
|
},
|
|
{
|
|
name: "lastPersistentRndClearing",
|
|
defaultValue: 0
|
|
},
|
|
{
|
|
name: "askOnlyOnce",
|
|
defaultValue: "individual",
|
|
options: ["no", "individual", "combined"]
|
|
},
|
|
{
|
|
name: "askDenyMode",
|
|
defaultValue: "block",
|
|
options: ["block", "fake"]
|
|
},
|
|
{
|
|
name: "showCanvasWhileAsking",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "showNotifications",
|
|
defaultValue: true,
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "highlightPageAction",
|
|
defaultValue: "none",
|
|
options: ["none", "color", "blink"],
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "highlightBrowserAction",
|
|
defaultValue: "color",
|
|
options: ["none", "color", "blink"],
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "displayBadge",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "storeNotificationData",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "storeImageForInspection",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "notificationDisplayTime",
|
|
defaultValue: 30
|
|
},
|
|
{
|
|
name: "ignoreList",
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "ignoredAPIs",
|
|
defaultValue: {},
|
|
keys: [
|
|
"canvas",
|
|
"audio",
|
|
"history",
|
|
"window",
|
|
"domRect",
|
|
],
|
|
defaultKeyValue: false
|
|
},
|
|
{
|
|
name: "showCallingFile",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "showCompleteCallingStack",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "enableStackList",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "stackList",
|
|
defaultValue: ""
|
|
},
|
|
{
|
|
name: "protectAudio",
|
|
defaultValue: true,
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "audioFakeRate",
|
|
defaultValue: "100",
|
|
options: ["1", "10", "100", "1000", "0.1%", "1%", "10%", "100%"]
|
|
},
|
|
{
|
|
name: "audioNoiseLevel",
|
|
defaultValue: "minimal",
|
|
options: ["minimal", "low", "medium", "high", "maximal"]
|
|
},
|
|
{
|
|
name: "useAudioCache",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "audioUseFixedIndices",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "audioFixedIndices",
|
|
defaultValue: function(){
|
|
return Math.floor(Math.random() * 30).toString(10);
|
|
}
|
|
},
|
|
{
|
|
name: "historyLengthThreshold",
|
|
defaultValue: 2
|
|
},
|
|
{
|
|
name: "protectWindow",
|
|
defaultValue: false,
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "protectDOMRect",
|
|
defaultValue: true,
|
|
urlSpecific: true
|
|
},
|
|
{
|
|
name: "domRectIntegerFactor",
|
|
defaultValue: 4
|
|
},
|
|
{
|
|
name: "blockDataURLs",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "displayAdvancedSettings",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "displayDescriptions",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "theme",
|
|
defaultValue: "default",
|
|
options: ["default", "light", "dark"]
|
|
},
|
|
{
|
|
name: "dontShowOptionsOnUpdate",
|
|
defaultValue: false
|
|
},
|
|
{
|
|
name: "isStillDefault",
|
|
defaultValue: true
|
|
},
|
|
{
|
|
name: "storageVersion",
|
|
defaultValue: 0.4,
|
|
fixed: true
|
|
}
|
|
];
|
|
|
|
if ((typeof module) !== "undefined"){
|
|
module.exports = settingDefinitions;
|
|
}
|
|
else {
|
|
window.scope.settingDefinitions = settingDefinitions;
|
|
}
|
|
}()); |