Как я могу получать события для встроенного iframe, используя Chrome Devtools Protocol? - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь использовать Chrome Devtools Protocol для отображения сети и регистрации событий для вкладки. Я успешно справляюсь с этим для фрейма верхнего уровня, но борюсь с дочерними фреймами.

Когда у меня есть фрейм, который находится в том же домене, что и родительский, он правильно захватывает сеть и регистрирует события. Когда у меня есть iframe, который находится в другом домене, он вообще не генерирует никаких событий.

Я пытался установить автоматическое вложение через

chrome.debugger.sendCommand({ tabId: tabId }, "Target.setAutoAttach", { autoAttach: true, waitForDebuggerOnStart: false, flatten: true })

, но это не так Кажется, я ничего не делаю. Как правильно проверить сеть и записать события iframe под активно отлаженной вкладкой?

Вот мой текущий поток с setAutoAttach:

  1. Загружена вкладка
  2. Вставьте chrome отладчик во вкладку
  3. Вызовите Network.enable, чтобы убедиться, что любые сетевые сообщения будут получены (так как нет обратной регистрации)
  4. Перезагрузите вкладку через расширение API
  5. onDOMContentLoaded -> включить все API через протокол (Log, Performance, Runtime) и установить Target.setAutoAttach
  6. Обрабатывать сообщения

Если я выполняю этот поток, я не получаю прикрепленных событий , Если я установлюAutoAttach в точке 2 - до перезагрузки - тогда я получу iframe ПРЕДЫДУЩЕГО экземпляра. Я могу получить iframes текущей вкладки только после полного отсоединения отладчика, повторного подключения, а затем вызова setAutoAttach. Вызов setAutoAttach в течение 1 секунды также приводит к тому, что я получаю вложенные вкладки, но тогда уже слишком поздно для захвата сетевого трафика c.

...