Повторная загрузка Chrome Extension ведет себя иначе после упаковки - PullRequest
0 голосов
/ 04 мая 2018

У меня есть расширение поворота вкладки. Просто переключается на следующую вкладку каждые несколько секунд (настраивается, называется interval / newInterval). Когда я загружаю распакованное расширение, все работает нормально, но когда я тестирую расширение упаковки, функция перезагрузки не срабатывает. Я очищаю интервал и перезагружаю расширение. onInstalled.addListener срабатывает с распакованным расширением, когда я звоню runtime.reload(), но не с упакованной версией. Есть идеи?

// revolutionOptions.js (скрипт параметров расширения)

intervalSaveButton.onclick = function() {
    clearInterval();
    const newInterval = intervalInput.value;
    chrome.storage.sync.set({'rotationInterval': newInterval}, function() {
        chrome.runtime.reload();
    });
};

// rotateTabs.js (фоновый скрипт)

chrome.runtime.onInstalled.addListener(function() {
    chrome.storage.sync.set({'rotation': true});
    chrome.storage.sync.get('rotationInterval', function(data) {
        if (!data || data.rotationInterval === null || data.rotationInterval === undefined) {
            chrome.storage.sync.set({'rotationInterval': 5000});
            setInterval(cycleNextTab, 5000);
        } else {
            setInterval(cycleNextTab, data.rotationInterval);
        }
    });
});

function cycleNextTab () {
    chrome.storage.sync.get('rotation', function (data) {
        if (data.rotation) {
            chrome.tabs.query({active: true, currentWindow: true}, function(tab) {
                const currentTabIndex = tab[0].index;
                chrome.tabs.query({}, function(tabs) {
                    const nextIndex = (currentTabIndex + 1) === tabs.length ? 0 : currentTabIndex + 1;
                    const nextTabId = tabs[nextIndex].id;
                    chrome.tabs.update(nextTabId, { active: true });
                    chrome.tabs.update(nextTabId, {url: tabs[nextIndex].url});
                });
            });
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...