Это зависит от ваших требований. Если ваше расширение включает DevTools, и поэтому оно открыто, вы можете использовать метод chrome.devtools.network.getHAR()
для получения сетевого трафика. Вам не нужно переходить на вкладку «Сеть».
Однако, если вы хотите получить доступ к сетевым данным без открытия DevTools, этот API не будет работать, поскольку он доступен только для экземпляра DevTools. Есть несколько возможных вариантов.
Вариант 1
Вы можете использовать chrome.webRequest
API для перехвата каждый запрос/ответ и добавить любые данные, которые вы хотите/можете к объекту. Затем вы можете использовать API chrome.downloads для загрузки данных. В вашем случае вы можете использовать URI данных.
var url = 'data:application/json;base64,' + btoa(data);
chrome.downloads.download({url: url, filename: 'notQuiteAHAR'json'});
Я не проверял это на практике, и я не слишком уверен, что если вы можете определить, когда все запросы выполняются перед вызовом загрузки.
Вариант 2
Используйте более низкий уровень chrome.debugger
API, как на замечание @wOxxOm. Протокол отладки позволяет только один экземпляр отладчика одновременно, так что это будет работать только тогда, когда у вас нет DevTools. API предоставляет намного больше, чем API chrome.webRequest
, но требует немного работы для получения всех необходимых данных.
Существует репозиторий под названием chrome-har-capturer
, в котором используется протокол отладки. Особый интерес представляет har.js
, который использует события, найденные в API отладчика, для ручной сборки HAR. Цель библиотеки - удаленная отладка, но я считаю, что вы можете использовать API-интерфейс отладчика в расширении, и поэтому вы, вероятно, можете использовать аспекты этого репозитория.
См. API-интерфейс chrome.debugger. Ваше расширение может подключаться к вкладке, а затем использовать команды протокола [Сеть] (https://chromedevtools.github.io/debugger-protocol-viewer/tot/Network/). Я не читал всю документацию протокола, поэтому я не вижу способа сохранить HAR, и, возможно, вам придется делать это вручную. – wOxxOm
См. Также [сценарии удаленной отладки узла.js] (https://developer.chrome.com/devtools/docs/debugging-clients#nodejs). – wOxxOm