Skip to content

ToDo: followsups / extras / ideas #3 #169

@Thorin-Oakenpants

Description

@Thorin-Oakenpants

🔹 Pages I use to keep tabs on a few things


🟥 ToDo

🟩 perf

  • ongoing: reduce fonts in list(s) - see #34

🟩 isVars

  • harden isFF with items from isEngine, and thus isEngine for gecko/goanna
  • replace isEngine math (for non-gecko/goanna)
  • harden isOS
  • harden navKeys with knownGood, knownPoison from isEngine

🟩 general: fingerprints, sections, lies

  • general: add overlay popup to show results for each section and overall
  • general: add a user-initiated i.e [click here]'s global FP
    • reset each gRun
    • update or add each metric when a metric is run
  • handle passing objects as well as arrays
  • don't use .join()
    • don't use .join() on arrays for all sDetail data (where we can now use objects or arrays)
    • don't use .join() anywhere else unless we have to (or it is safe)
  • preserve typeof where possible
    * e.g. screen metric width/height is a joined string but we already test for NaN
  • general: ongoing
    • knownLies (from mathematical proofs etc)
    • apply prototypeLies to metrics
    • logic -> check knownLies -> if no lies then check prototypeLie -> into the section hash data -> into overall hash data
  • general: ongoing
    • robust error handling, detection of script blockage: e.g. screen.js needs work

🟦 screen

🟦 ua

  • WorkerNavigator
  • ua: refactor
    • always return 11 results
    • relax oscpu for specific linux distro strings
    • harden oscpu: win7 vs win8/10 via tiny font check
    • harden userAgent from the other parts: i.e userAgent is constructed using a set method
    • bypass more parts of the userAgent than just version where possible
    • only bypass the six "hardcoded" parts - we always detect without proxyLies
    • don't try to bypass the variable FF strings because that may indeed be the string, e.g forks, special user builds, useragent-override pref(s) ... only detect untrustworthy via proxyLies

🟦 feature detection

  • feature detection: new math test for android if isVer is FF68+
    • moved to misc, split into RFP vs other, extended tests to cover android entropy

🟦 language

🟦 storage

  • storage: auto-output estimate as it doesn't need permission
  • storage: finish the tests

🟦 devices

🟦 svg

  • svg: such as
    • ExtentOfChar
    • SVGTextContentElement.prototype.getComputedTextLength
    • SVGPathElement.prototype.getTotalLength
    • SVGGeometryElement.getPointAtLength()

🟦 canvas

🟦 webgl

  • webgl: add properties/parameters: split into 1, 2, experimental groups and subgroups e.g. affected by RFP/prefs
  • webgl: add image tests
    • make sure to expand/test on error entropy for readPixels
    • e.g. in VM's which usually block the graphics driver and the error messages can differ
    • make sure error entropy is handled for TB slider and VMs

🟦 audio

🟦 fonts

  • fonts: add domrect methods (bounding, bounding range, client, client range)
    • and use this (if trustworthy) for sizes (more precision)
  • fonts: graphite: use base64
  • fonts: transform - on domrect
  • fonts: fontFace: enumerate some weighted fonts, check RFP/TB leaks
  • fonts: max sizes
  • fonts: add system-ui to tests 1226042
  • fonts: update lists
    • windows up to 11
    • mac up to macOS 15
      • now 10.15 is the minimum in ESR128+ we can also clean out some old crap
    • android updated with moz telemetry data
    • linux: load some VMs and pick the eyes out
  • fonts: add more enumeration methods (maybe via [click here])
    • font face (we already have a smaller test for weighted fonts + leaks)
    • offscreenCanvas (we already a smaller test for leaks)
    • svg
  • text-autosize aka font inflation / font boosting (acessibility)
  • unicode support + FP based on code points assigned per script/version
  • emoji support + FP
  • textMetrics: offscreenCanvas
  • textMetrics: randomness

🟦 media

🟦 css

  • css: prefers-contrast notation - tests, article
  • css: detect changes to expected values (e.g. dark readers)
    • e.g. window.getComputedStyle(document.getElementsByTagName("body")[0]).backgroundColor

🟦 elements

🟦 timing

  • timing: yay!

🟦 misc


🟫 BACKBURNER

  • fonts: can we do anything with zalgo
  • general: make worker fingerprint global
    • waste of time until we start adding lots of worker tests
    • currently there is only the ua and language sections, results are not used anywhere
    • instead all worker data should be a separate global FP which we use after the fact to report lies
      • i.e we still output a sub-section worker hash (and diffs to doc), but report lies/mismatches in global
  • general: make iframes fingerprint global (same deal as workers above)
  • language: injecting resource:// css files for app lang leaks
  • other: WebRTC
  • other: isAdBlocking [also: hash of results]
  • other: sanitizing / zombie storage - prototype
  • screen: mod border-snapping subPixel devicePixelRatio PoC to use clientrect for more precision

...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions