У меня есть расширение Chrome, которое отслеживает дополнительный параметр запроса в URL на определенных сайтах. Я добавляю функциональность на новый сайт, и проблема, с которой я сталкиваюсь, заключается в том, что сайт перенаправляет на другой URL-адрес и удаляет мой пользовательский запрос, прежде чем мой контент-скрипт сможет загрузиться.
Похоже, что я могу обойти это, используя webNavigation API в фоновом скрипте и добавив прослушиватель для chrome.webNavigation.onCommitted. Проблема заключается в том, что, добавив разрешения webNavigation в мой манифест, я теперь запрашиваю разрешение «Читать историю просмотров». Я потратил много времени, пытаясь ограничить объем моих разрешений на расширение для определенных сайтов, и я действительно не хочу просить пользователя о разрешении карт-бланш, как это.
Я нашел в SO две другие темы об этой проблеме, но в одной пользователь нашел обходной путь, который, я не думаю, сработает в моем случае (хотя, если у кого-то есть предложенный обходной путь У меня все уши), а другой предлагает , что, добавив фильтр к объявлению слушателя, он ограничит запрос разрешений. Этот ответ не был принят как правильный, и, действительно, я не вижу никакой разницы в разрешениях, независимо от того, есть ли у меня фильтр.
Разве просто невозможно добиться того, что я хотел бы сделать, а также ограничить сферу предупреждения о разрешениях? Или я что-то упустил? Спасибо.
Моя декларация слушателя webNavigation:
chrome.webNavigation.onCommitted.addListener(function(e) {
//Can dig out my query parameter from e
console.log(e);
},{
url: [{hostContains: "[NAME OF HOST]"}]
});