Я пытаюсь использовать Chrome Devtools Protocol для отображения сети и регистрации событий для вкладки. Я успешно справляюсь с этим для фрейма верхнего уровня, но борюсь с дочерними фреймами.
Когда у меня есть фрейм, который находится в том же домене, что и родительский, он правильно захватывает сеть и регистрирует события. Когда у меня есть iframe, который находится в другом домене, он вообще не генерирует никаких событий.
Я пытался установить автоматическое вложение через
chrome.debugger.sendCommand({ tabId: tabId }, "Target.setAutoAttach", { autoAttach: true, waitForDebuggerOnStart: false, flatten: true })
, но это не так Кажется, я ничего не делаю. Как правильно проверить сеть и записать события iframe под активно отлаженной вкладкой?
Вот мой текущий поток с setAutoAttach:
- Загружена вкладка
- Вставьте chrome отладчик во вкладку
- Вызовите Network.enable, чтобы убедиться, что любые сетевые сообщения будут получены (так как нет обратной регистрации)
- Перезагрузите вкладку через расширение API
- onDOMContentLoaded -> включить все API через протокол (Log, Performance, Runtime) и установить Target.setAutoAttach
- Обрабатывать сообщения
Если я выполняю этот поток, я не получаю прикрепленных событий , Если я установлюAutoAttach в точке 2 - до перезагрузки - тогда я получу iframe ПРЕДЫДУЩЕГО экземпляра. Я могу получить iframes текущей вкладки только после полного отсоединения отладчика, повторного подключения, а затем вызова setAutoAttach. Вызов setAutoAttach
в течение 1 секунды также приводит к тому, что я получаю вложенные вкладки, но тогда уже слишком поздно для захвата сетевого трафика c.