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