chrome.webRequest.onBeforeRequest.addListener background Ajax-запрос? - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу изменить фиксированную страну геолокации поиска Google.Единственный способ без использования VPN, который я нашел, это добавление gl=[country_code] к URL.Я создал расширение для своего использования и добавил эту часть в URL-адреса поиска Google, и это сработало.Но недавно я обнаружил, что автозаполнение (Предложение) не меняется в зависимости от страны веб-страницы.То есть, хотя в левом нижнем углу главной страницы Google написано «Соединенные Штаты», автозаполнение по-прежнему настроено на мое географическое местоположение и дает другой список.

После некоторого тестирования я нашелчто Google вызывает https://www.google.com/complete/search... в фоновом режиме, и если я добавлю gl=[country_code] к URL, я могу изменить страну автозаполнения.Но добавление https://www.google.com/complete/search?*, как показано ниже, не сработало (modifyUrl не было вызвано).

chrome.webRequest.onBeforeRequest.addListener
(
    modifyUrl,
    {urls: [
            'https://www.google.com/search?*',
            'https://www.google.com/webhp?*',
            'https://www.google.com/complete/search?*' ],
             types: ['main_frame']},
    ['blocking']
);

Можно ли каким-либо образом изменить URL автозаполнения?Если есть лучший способ изменить страну без использования VPN, я тоже могу это использовать.

1 Ответ

0 голосов
/ 22 сентября 2019

Поиск автозаполнения на сайте google.com

Это выполняется с помощью стандартного JavaScript XHR / fetch (используйте devtools для проверки деталей запроса), поэтому вам нужно указать type как xmlhttprequest, когдарегистрация прослушивателя webRequest, а не main_frame.

Поиск автозаполнения в адресной строке

Расширения не сообщаются с Chrome 71 .

Цитируя причины этого решения из crbug.com / 884932 :

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

Например, можно легко предотвратить проверку установки расширения или загрузку синхронизированных расширений, заблокировав некоторые из этих запросов.Это может иметь и другие последствия для безопасности.

В прошлом мы внедряли индивидуальные одноразовые решения для предотвращения подобных ситуаций (например, мы не позволяем расширениям перехватывать запросы, инициированные браузером, на некоторые URL-адреса интернет-магазина, безопасные URL-адреса просмотра).одна просьба Google Bar, сделанная от имени NTP и т. д.).

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

Документация также была обновлена:

[...] некоторые запросы [...] скрыты [...]https://www.google.com/chrome, и другие конфиденциальные запросы, основанные на функциональности браузера .

Автозаполнение поиска в новой / пустой вкладке по умолчанию

Поле вводапосередине находится «fakebox», который просто фокусирует адресную строку, так что он такой же, как поиск в адресной строке, упомянутый в предыдущем разделе.Окно поиска может быть реализовано как реальный ввод (см. crbug.com / 243926 ), но оно все равно будет частью пользовательского интерфейса основного браузера, поэтому не будет подвергаться webRequest расширений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...