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

    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 минут, после сворачивания. Исключением являются вкладки в которых воспроизводится какой-нибудь медиконтент (видео там или музыка).
    Ответ написан
    7 комментариев