Свяжите пользовательский агент с определенной страницей / вкладкой Google Chrome

Я разрабатываю расширение Google Chrome и хочу настроить определенный пользовательский агент на вкладку / страницу или на всплывающее окно (iframe, отображаемый как «всплывающее окно»), не затрагивая другие страницы или вкладки.

Является ли это возможным?

Ответы на вопрос(1)

Решение Вопроса

webRequest API может использоваться для изменения заголовка User Agent.
old заголовки. Я проверил, что заголовки установлены правильно, используяNetcat (nc -l 127.0.0.1 -p 6789).

В приведенном ниже примере код активируется наall Вкладки. Настроитьфильтр запроса чтобы удовлетворить ваши требования. добавлятьtabId чтобы ограничить функциональность этого фильтра с помощью tabId ваших вкладок (доступных через различные API,chrome.tabs особенно).

background.js
chrome.webRequest.onBeforeSendHeaders.addListener(
    function(info) {
        // Replace the User-Agent header
        var headers = info.requestHeaders;
        headers.forEach(function(header, i) {
            if (header.name.toLowerCase() == 'user-agent') { 
                header.value = 'Spoofed UA';
            }
        });  
        return {requestHeaders: headers};
    },
    // Request filter
    {
        // Modify the headers for these pages
        urls: [
            "http://stackoverflow.com/*",
            "http://127.0.0.1:6789/*"
        ],
        // In the main window and frames
        types: ["main_frame", "sub_frame"]
    },
    ["blocking", "requestHeaders"]
);
manifest.json
{
  "name": "WebRequest UA test",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking", "http://*/*"],
  "background": {
    "scripts": ["background.js"]
  },
  "manifest_version": 2
}
Documentation chrome.webRequest.onbeforeSendHeaders event The Request filter
 12 нояб. 2013 г., 23:08
Аааа, инструменты разработчика показываютold заголовки. Спасибо чувак.

Ваш ответ на вопрос