Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
PropertyModifier.spoofProperty(Navigator.prototype, 'platform', "{{NAVIGATOR_PLATFORM}}");
PropertyModifier.spoofProperty(Navigator.prototype, 'hardwareConcurrency', {{HARDWARE_CONCURRENCY}});
PropertyModifier.spoofProperty(Navigator.prototype, 'deviceMemory', {{MEMORY}});
PropertyModifier.spoofProperty(Navigator.prototype, 'languages', {{LANGUAGES_JSON}});
PropertyModifier.spoofProperty(Navigator.prototype, 'language', "{{LANGUAGE_0}}");
PropertyModifier.spoofProperty(Navigator.prototype, 'maxTouchPoints', {{MAX_TOUCH_POINTS}});
Object.defineProperty(screen, 'availWidth', { get: () => {{LOGICAL_WIDTH}} });
Object.defineProperty(screen, 'availHeight', { get: () => {{AVAIL_HEIGHT}} });
(function() {
var webglParam37445 = "{{WEBGL_VENDOR}}";
var webglParam37446 = "{{WEBGL_RENDERER}}";
var webglParameterSpoof = function(target) {
var proto = target.prototype;
var getParameter = proto.getParameter;
Object.defineProperty(proto, 'getParameter', {
value: function() {
switch (arguments[0]) {
case 37445: return webglParam37445;
case 37446: return webglParam37446;
default: return getParameter.apply(this, arguments);
}
}
});
};
webglParameterSpoof(WebGLRenderingContext);
if (typeof WebGL2RenderingContext !== 'undefined') {
webglParameterSpoof(WebGL2RenderingContext);
}
})();
{{HISTORY_BLOCK}}
navigator.getBattery = () => Promise.resolve({
charging: {{CHARGING}},
chargingTime: {{CHARGING_TIME}},
dischargingTime: {{DISCHARGING_TIME}},
level: {{BATTERY_PERCENTAGE}} / 100,
addEventListener: () => {},
removeEventListener: () => {},
dispatchEvent: () => true,
});
// Browser-specific overrides
{{BROWSER_BLOCK}}