Задать вопрос
zkrvndm
@zkrvndm
Архитектор решений

Как прописать запрет замораживать вкладки в расширении для Google Chrome?

Занимаюсь разработкой парсеров и браузерных ботов на JavaScript. Свои продукты, как правило, оформляю в виде расширения для браузера Google Chrome. В связи с чем у меня назрел важный для меня вопрос.

Нельзя ли как-нибудь прописать в расширении запрет замораживать вкладки (сайты) на которых был загружен контент-скрипт? Не предоставляет ли случайно API расширений подобный функционал? Может быть в манифесте можно такой запрет прописать? Или может мне открывать сайты внутри фоновой страницы, а затем там выполнять необходимые действия? Слышал, что фоновая страница обычно активна всегда, не знаю так ли.

Любые ваши советы, идеи или предположения. Конечная цель у меня это иметь возможность свернуть окно с ботом и быть уверенным в том, что Chrome не заморозит процессы в этом окне, тем самым прибив бота.
  • Вопрос задан
  • 1235 просмотров
Подписаться 4 Сложный Комментировать
Решения вопроса 1
DevMan
@DevMan
имхо, проще запускать отдельный хром для бота, и запретить ему фризить табы вообще.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@rPman
Так как у вас боты, выбросьте готовые тяжелые браузеры и напишите свой на базе вебкит, это 10-15 строчек плюс пара на запуск вашего бота. В своем приложении вы можете создавать сколько угодно одновременно работающих фреймов, мультитредово, любых размеров и т.п.

Недостаток - чистый вебкит и хромиум (с поддержкой гугла, точно помню они принципиально отказывались комитить gpu код ускорения проигрывания видео в него) - тормоза с проигрыванием видео (потому что декодирование на чистом cpu), но не думаю что боты у вас смотрят его из браузера.

p.s. в .net от майкрософта компонента WebBrowser работает на базе Internet Explorer, тоже без проблем, на mono оно работает на базе mozilla firefox
Ответ написан
joeberetta
@joeberetta
Читай: https://epdf.pub/google-for-dummies.html
Не гарантирую, но вроде был флаг у хрома: automatic-tab-discarding
Перейдите в chrome://flags и найдите вышеуказанный флаг. Его и надо выключить
Ответ написан
@Soul1Eat
А в чём проблема использовать nightmare или Puppeteer?
Доки у них хорошие, да и API не сложное, можно спокойно как и использовать их функционал, так и по просту запускать с инжектами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы