Расширение Chrome: изменение строки User-Agent - PullRequest
1 голос
/ 02 ноября 2011

В расширении Firefox мы можем сделать:

var _prefService =  Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var httpHandler = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler);
setCharPref("general.useragent.override",httpHandler.userAgent + " OurUAToken/1.0");

Добавить «OurUAToken / 1.0» в конце строки User-Agent.

Как мы можем продублировать это поведение в GoogleChrome?

Ответы [ 2 ]

3 голосов
/ 30 июля 2017

Не уверен, что кто-то еще ищет решение, но предложенный ранее API chrome.webRequest достаточно стабилен.

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders[i].value = details.requestHeaders[i].value + ' OurUAToken/1.0';
      }
      break;
    }
    return { requestHeaders: details.requestHeaders };
  },
  {urls: ['<all_urls>']},
  ['blocking', 'requestHeaders']
);

Одно из расширений chrome, Запрос уже имеет аналогичную реализацию, позволяющую переопределять строку User Agent для любого веб-сайта, открытого в браузере.


Для получения дополнительной информации, пожалуйста, посетите блог: https://medium.com/@requestly_ext/switching-user-agent-in-browser-f57fcf42a4b5

Расширение также доступно для Firefox. Посетите http://www.requestly.in для деталей.

1 голос
/ 02 ноября 2011

Вы можете использовать API WebRequest: http://code.google.com/chrome/extensions/trunk/experimental.webRequest.html

К сожалению, он все еще находится в экспериментальной стадии. Я думаю, что он будет выпущен как стабильный с версией Chrome 17

...