abrahamjuliot / ublock-origin-abf

Abort Browser Fingerprinting Scripts via uBlock Origin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

improve prototype tampering

abrahamjuliot opened this issue · comments

function redefine (win) {
  Object.defineProperty(win.HTMLCanvasElement.prototype, "toDataURL", {
    get: function toDataURL() {
      return '2njsd8df'
    }
  })
  Object.defineProperty(Object.getPrototypeOf(win.navigator), "deviceMemory", {
    get: function deviceMemory() {
      return 4
    }
  })
  return
}

redefine(window)

const domLoaded = (fn) => document.readyState != 'loading' ?
		fn() : document.addEventListener('DOMContentLoaded', fn)
domLoaded(() => {
	;[...document.getElementsByTagName('iframe')].forEach(frame => redefine(frame.contentWindow))
})