Chrome запрос вкладок, возвращающий пустой массив вкладок - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь портировать веб-расширение, с которым я работал в Firefox, на chrome, и у меня возникли некоторые проблемы. Мне нужно отправить сообщение из фонового скрипта в скрипт контента. Я использовал порт при первой сборке из Firefox, но переключил его на использование chrome.tabs.query(), потому что chrome продолжал обнаруживать ошибку. Но теперь с query() он все еще работает нормально в Firefox, но теперь chrome говорит, что не может найти текущую вкладку:

Error handling response: TypeError: Cannot read property 'id' of undefined
    at chrome-extension://hhfioopideeaaehgbpehkmjjhghmaaha/DubedAniDL_background.js:169:11

Возвращает, что передача аргумента табуляции длина == 0. console.log(tabs):

[]

Это функция, на которую жалуется Chrome.


var browser = chrome; // I set this only for compatibility with chrome; not set in Firefox.

function sendToTab(thing) {
    browser.tabs.query(
    {active: true, currentWindow: true},
    function(tabs) {
        console.log(tabs);
        browser.tabs.sendMessage(
            tabs[0].id, // The inspector identifies an error on this line
            thing
        );
    }
    );
}

Эта же функция отлично работает в Firefox и имеет нет проблем с получением доступа к вкладке. Но это не работает в Chrome.

Обновление 2020-01-30

@ wOxxOm:

Показать код, который вызывает sendToTab

Здесь sendToTab называется:

function logURL(requestDetails) {
    var l = requestDetails.url;
    if (l.includes(test_url)) {
        if (logOn) { console.log(l); }
        sendToTab({dl_url: l});
    }
}


browser.webRequest.onBeforeRequest.addListener(
    logURL,
    {urls: ["<all_urls>"]}
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...