kkapsner / CanvasBlocker

A Firefox extension to protect from being fingerprinted.
https://canvasblocker.kkapsner.de
Mozilla Public License 2.0
1.16k stars 87 forks source link

Commit 54c625c introduced regression #715

Open alemonmk opened 4 months ago

alemonmk commented 4 months ago

Description

Reflect.setPrototypeOf takes null for argument prototype. However, the altered setPrototypeOf() called getPrototypeOf() which throws on null without a null check. Which caused an Uncaught TypeError in near-membrane-shared and could be stopping Grafana's (affected my 11.0, wikipedia's 9.5 is fine) web UI from loading. Disabling the plugin will let Grafana load properly.

Expected Behaviour

Grafana UI should load properly.

Current Behaviour

Grafana stopped loading and showing error message: "Grafana has failed to load its application files"

Steps to Reproduce (for bugs)

  1. Install CanvasBlocker
  2. Visit a Grafana v11 installation

Your Environment

Your Settings

{
    "logLevel": 1,
    "urlSettings": [
        {
            "url": "challenges.cloudflare.com",
            "protectedCanvasPart": "nothing"
        }
    ],
    "hiddenSettings": {
        "enableStackList": false,
        "protectedCanvasPart": false,
        "protectedAPIFeatures": false
    },
    "expandStatus": {
        "section_lists": true,
        "protectNavigator": true,
        "useAudioCache": false,
        "protectedCanvasPart": true,
        "protectAudio": false,
        "protectScreen": false
    },
    "displayHiddenSettings": true,
    "whiteList": "\n",
    "sessionWhiteList": "",
    "blackList": "",
    "blockMode": "fake",
    "protectedCanvasPart": "readout",
    "minFakeSize": 1,
    "maxFakeSize": 0,
    "rng": "nonPersistent",
    "protectedAPIFeatures": {},
    "useCanvasCache": true,
    "ignoreFrequentColors": 0,
    "minColors": 0,
    "fakeAlphaChannel": true,
    "webGLVendor": "",
    "webGLRenderer": "",
    "webGLUnmaskedVendor": "",
    "webGLUnmaskedRenderer": "",
    "persistentRndStorage": "",
    "persistentIncognitoRndStorage": "",
    "storePersistentRnd": false,
    "persistentRndClearIntervalValue": 0,
    "persistentRndClearIntervalUnit": "days",
    "lastPersistentRndClearing": 1719591123928,
    "sharePersistentRndBetweenDomains": false,
    "askOnlyOnce": "individual",
    "askDenyMode": "block",
    "showCanvasWhileAsking": true,
    "showNotifications": true,
    "highlightPageAction": "none",
    "highlightBrowserAction": "color",
    "displayBadge": false,
    "storeNotificationData": false,
    "storeImageForInspection": false,
    "ignoreList": "",
    "ignoredAPIs": {},
    "showCallingFile": false,
    "showCompleteCallingStack": false,
    "enableStackList": false,
    "stackList": "",
    "protectAudio": true,
    "audioFakeRate": "100",
    "audioNoiseLevel": "low",
    "useAudioCache": true,
    "audioUseFixedIndices": true,
    "audioFixedIndices": "6",
    "historyLengthThreshold": 2,
    "protectWindow": false,
    "allowWindowNameInFrames": false,
    "protectDOMRect": true,
    "domRectIntegerFactor": 4,
    "protectSVG": true,
    "protectTextMetrics": true,
    "blockDataURLs": true,
    "protectNavigator": false,
    "navigatorDetails": {},
    "protectScreen": true,
    "screenSize": "",
    "fakeMinimalScreenSize": true,
    "displayAdvancedSettings": true,
    "displayDescriptions": false,
    "theme": "auto",
    "showPresetsOnInstallation": true,
    "dontShowOptionsOnUpdate": false,
    "disruptSessionOnUpdate": false,
    "updatePending": false,
    "isStillDefault": false,
    "storageVersion": 1
}
kkapsner commented 4 months ago

3eedc7b7dc99f23c0db525b069a5cd5faaf5a75b should solve this problem. Please check with the latest alpha: https://canvasblocker.kkapsner.de/versions/?C=M;O=D

alemonmk commented 4 months ago

Hi @kkapsner, the fix works, thank you for the prompt response.

KiARC commented 3 months ago

Any timeframe of when this will make it to stable? Whitelisting the site in question (also a Grafana instance for me) doesn't fix it, so I'd love to know when this will be released.