@aronax Обратите внимание, если значения Add noise установлено false, обязательно проверьте подставляются ли названия устройств из отпечатка или нет. Это называется как "добавить шум", что подразумевает под собой подмену результатов только вычислений, но в значении false может не подменять все данные для указанных WebAPI. Например WebGL, устанавливая noise в значение false, я предполагаю, что название видеокарты будет подменено на значение из отпечатка, но результаты вычислений на сайтах будут соответствовать видеокарте установленной в мой компьютер, но по факту, BAS не будет подменять и название моей видеокарты, в таком случае все мои профили будут с одной видеокартой. При этом если я запускаю BAS на VDS без установленной видеокарты, то для антифрод-системы будет подозрительным каждый мой профиль, в отпечатке которого указано наличие установленной дискретной видеокарты, при проверке WebGPU API, мой профиль не сможет пройти такую проверку.
Error: Unable to set correct viewport size.
-
@debster said in Error: Unable to set correct viewport size.:
Getting Error: Unable to set correct viewport size. while using puppeteer with fingerprints.
and idea on why?
This forum is dedicated to BAS, have you tried asking these questions on the library page in github?
-
Hello we found a way to fix this issue by adding error handling code
file: node_modules\browser-with-fingerprints\src\plugin\index.js
`
async #run(spawn, options = {}) {
const { proxy, fingerprint } = this.setProxyFromArguments(options.args);const { id, pid, pwd, path, bounds } = await setup(proxy, fingerprint);
await cleaner.run(path).ignore(pid, id);
mutex.create(
BASProcess${pid});const browser = await (spawn ? launcher : options.launcher ?? this.launcher).launch({
...options,
headless: false,
defaultViewport: null,
executablePath:${path}/worker.exe,
args: [--parent-process-id=${pid},--unique-process-id=${id}, ...defaultArgs(options)],
});try{
await (spawn ? configure : this.configure.bind(this))(
(target) => target === browser && cleaner.include(pid, id),
browser,
bounds,
synchronize.bind(null, id, pwd, bounds)
);
} catch (error){
await browser.close();
throw new Error(BASProcess${pid} ${error});
}return browser;
}
`
this will stop the error from leaving the browser openThank you for this wonderful project