JS Подмена информации о состоянии батареи
Я использую puppeteer-extra-plugin-stealth для подмены отпечатков браузера. В данный момент меня волнует подмена состояния батареи navigator.getBattery
. Пробую сделать это таким образом (чтобы зафиксировать изменения было невозможно):
utils.replaceWithProxy(Object.getPrototypeOf(navigator), 'getBattery', {
apply: (target, ctx, args) => {
var promise = utils.cache.Reflect.apply(...arguments);
/*
const batteryMgr = await promise;
utils.replaceProperty(batteryMgr, 'charging', { get: () => true });
utils.replaceProperty(batteryMgr, 'chargingTime', { get: () => 0 });
utils.replaceProperty(batteryMgr, 'dischargingTime', { get: () => Infinity });
utils.replaceProperty(batteryMgr, 'level', { get: () => 1 });
*/
return promise; //Promise.resolve(batteryMgr);
}
});
Однако реализованный метод replaceWithProxy не принимает асинхронные обработчики. Как сделать правильную подмену чтобы метод остался асинхронным? Допускается изменять replaceWithProxy
.
Источник: Stack Overflow на русском