dpablo_escobarr
@dpablo_escobarr

Можно ли предотвратить засыпание свернутой вкладки, или закрытого браузера Google Chrome?

Можно ли сделать так, чтобы по истечении некоторого времени, допустим час - два, вкладки в свернутом браузере не засыпали и не обновлялись при обращении курсора по этим вкладкам? Требуется для работы расширения в фоновом режиме
  • Вопрос задан
  • 2149 просмотров
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Да, по идее можно запретить выгрузку вкладок применив 2 приема.

Добавьте в background.js:
chrome.tabs.onCreated.addListener(function(tab) {
    chrome.tabs.update(tab.id, {
        autoDiscardable: false
    });
});

chrome.tabs.onReplaced.addListener(function(tabId) {
    chrome.tabs.update(tabId, {
        autoDiscardable: false
    });
});

chrome.runtime.onInstalled.addListener(function(details) {
    chrome.tabs.query({}, function(tabs) {
        tabs.forEach(function(tab) {
            chrome.tabs.update(tab.id, {
                autoDiscardable: false
            });
        });
    });
});

В манифесте расширения у вас должны быть соответствующие разрешения:
...
"permissions" : [ "tabs" ],
"background" : { "persistent": true, "scripts": [ "background.js" ] },
...

Кроме того, на активной вкладке необходимо разместить mp3-трек и запустить его в бесконечном цикле:
<video id="antifreeze" style="position: fixed; right: 30px; bottom: 30px; z-index: 99999; height: 55px; width: 300px;" controls loop name="media">
    <source src="https://qna.habr.com/silence.mp3" type="audio/mpeg">
</video>

Начиная с 81 версии хрома, вкладки замораживаются через 5 минут, после сворачивания. Исключением являются вкладки в которых воспроизводится какой-нибудь медиконтент (видео там или музыка).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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