Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
Аватара пользователя
leo
Сообщения: 62
Зарегистрирован: 11 мар 2018, 21:19

Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Сообщение leo » 30 авг 2019, 14:50

Вызываю точно как в документации
$browser->set_plugins_info("[{ name:'Shockwave Flash', description : 'Shockwave Flash 24.0 r0', filename : 'Flash.ocx', version : '24.0.0.194' }, { name:'name2', description : 'desc2', filename : 'filename2', version : '1.0.0.0' } ]");


И скрипт
document.write(navigator.plugins);
В реальном Chrome выдает так:
[object PluginArray]

В версии 7.0.37 выдает
[object Object],[object Object]
Если в версии 7.0.37 не вызывать фунцию set_plugins_info, а вместо неё указать галочу "Enable Plugins", то выдаёт всё красиво как в реальном Chrome:
[object PluginArray]
Изображение

Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?
/т.е. вместо того, чтобы массива объектов показывало один объект класса PluginArray/

Спасибо!

Аватара пользователя
leo
Сообщения: 62
Зарегистрирован: 11 мар 2018, 21:19

Re: Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Сообщение leo » 31 окт 2019, 15:29

В текущей версии (7.0.41) проблемка осталась, скрипт
document.write(navigator.plugins);
Выдает
[object Object],[object Object]
Но реальный Chrome выдает так:
[object PluginArray]

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Сообщение bigfozzy » 31 окт 2019, 19:57

Исправлено, обновлено + добавлена возможность подмены MIME типов, вот пример:
<?php $xhe_host = "127.0.0.1:7011";

// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/xweb_human_emulator.php";
require($path);

// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";

// 1 
echo "1. Зададим navigaror.plugins : ";
$plugins="[{ name: 'Chrome PDF Plugin1111', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },    { name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },    { name: 'Native Client', filename: 'internal-nacl-plugin', description: '' }]";
$mimes_types="[{type: 'application/pdf',suffixes: 'pdf',description: '',__pluginName: 'Chrome PDF Viewer11111' },{type: 'application/x-google-chrome-pdf',suffixes: 'pdf',description: 'Portable Document Format',__pluginName: 'Chrome PDF Plugin'},{type: 'application/x-nacl',suffixes: '',description: 'Native Client Executable',enabledPlugin: Plugin,__pluginName: 'Native Client'},{type: 'application/x-pnacl',suffixes: '',description: 'Portable Native Client Executable',__pluginName: 'Native Client'}]";
echo $browser->set_plugins_info($plugins,$mimes_types)."<br>";

// 2 
echo "2. Перейдем на страницу для детектирвоания браузера : ";
echo $browser->navigate("https://browserleaks.com/javascript")."<br>";
sleep(15);

// 3
echo "3. Зададим navigaror.plugins : ";
echo $browser->set_plugins_info()."<br>";

// 4 
echo "4. Перейдем на страницу для детектирвоания браузера : ";
echo $browser->navigate("https://browserleaks.com/javascript")."<br>";

// конец
echo "<hr><br>";

// Quit
$app->quit();
?>

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Сообщение bigfozzy » 01 ноя 2019, 17:53

обновили версию - исправили чтобы фейковые плагины задавались также в подфреймах

Аватара пользователя
leo
Сообщения: 62
Зарегистрирован: 11 мар 2018, 21:19

Re: Как использовать set_plugins_info, чтобы было похоже на реальный Chrome?

Сообщение leo » 01 ноя 2019, 20:57

Работает, большое спасибо!

Ответить