Окно аутентификации Firefox останавливает фоновый скрипт расширения - PullRequest
0 голосов
/ 29 января 2019

У меня запущено частное расширение, которое слушает веб-запросы и выполняет действия по определенному (несуществующему) URL:

browser.webRequest.onAuthRequired.addListener(
    doSomething, 
    {urls: ["*://*.xx-xxxxx.net/xxx/connect?*"]}, 
    ["blocking"]
);

Извлекает параметры запроса, удаляет новую вкладку и подключается к службе,Легко и хорошо работает, когда Firefox открыт и запущен.

Нажав на URL с закрытым Firefox, он работает только тогда, когда нет окна аутентификации (например, прокси).Если отображается окно аутентификации, весь фоновый скрипт останавливается и не будет работать, пока не будет закрыт.URL действителен только в течение короткого времени, так что замораживание удерживает его слишком долго, и URL становится недействительным.

Есть ли возможность запустить фоновый скрипт независимо от того, отображается ли окно аутентификацииили нет.

1 Ответ

0 голосов
/ 01 февраля 2019

Нажав на URL с закрытым Firefox

Вы имеете в виду щелчок по URL-адресу в другом приложении, которое вызывает запуск Firefox и открытие ссылки?

Во времяПри запуске Firefox сначала загружает постоянных слушателей.Это означает, что browser.webRequest.onAuthRequired.addListener() должен быть на верхнем уровне вашего фонового скрипта.Это тот случай?
В противном случае, он загружает его позже, и к тому времени, когда он загружается, Firefox уже предпринял несколько попыток подключения, и, если они требуют аутентификации, появляется модальное всплывающее окно аутентификации.

Есть ли возможность запустить фоновый скрипт независимо от того, показывается ли окно аутентификации или нет.

browser.webRequest.onAuthRequired.addListener() запускается перед всплывающим окном Auth.Между тем, ["блокировка"] будет препятствовать дальнейшим действиям по этому запросу, пока запрос не будет решен.doSomething должно быть обещанием, чтобы предотвратить запуск всплывающего окна, например, отправка запроса обратно в браузер для обработки.

Затем doSomething должен обрабатывать аутентификацию, разрешая, блокируя или перенаправляя и т. Д.

Фоновый скрипт может запускаться независимо от аутентификации, но это зависит от того, как написан код,Всплывающее окно аутентификации не останавливает выполнение фонового скрипта.

...