diff --git a/packages/fingerprint-injector/src/fingerprint-injector.ts b/packages/fingerprint-injector/src/fingerprint-injector.ts index 71ff881d..b879a853 100644 --- a/packages/fingerprint-injector/src/fingerprint-injector.ts +++ b/packages/fingerprint-injector/src/fingerprint-injector.ts @@ -30,6 +30,9 @@ declare function overrideDocumentDimensionsProps( declare function overrideWindowDimensionsProps( props: Record, ): void; +declare function overrideWindowScreen( + props: Record, +): void; declare function overrideBattery( batteryInfo?: Record, ): void; @@ -263,7 +266,7 @@ export class FingerprintInjector { } overrideInstancePrototype(window.navigator, navigatorProps); - overrideInstancePrototype(window.screen, newScreen); + overrideWindowScreen(newScreen); overrideWindowDimensionsProps(windowScreenProps); overrideDocumentDimensionsProps(documentScreenProps); diff --git a/packages/fingerprint-injector/src/utils.js b/packages/fingerprint-injector/src/utils.js index 669e4ee7..db826f7e 100644 --- a/packages/fingerprint-injector/src/utils.js +++ b/packages/fingerprint-injector/src/utils.js @@ -498,6 +498,16 @@ function overrideScreenByReassigning(target, newProperties) { } } +function overrideWindowScreen(props) { + for (const [prop, value] of Object.entries(props)) { + redefineProperty(window.screen, prop, { + get() { + return value; + }, + }); + } +} + function overrideWindowDimensionsProps(props) { try { overrideScreenByReassigning(window, props);