Chrome расширение devtools - событие закрытия devtools - PullRequest
1 голос
/ 10 февраля 2020

Я пишу Chrome Плагин Devtools.

devtools. js

chrome.devtools.panels.create("Override Debug",
  null,
  "panel.html",
  (panel) => {
    panel.onShown.addListener(addDebugger);
    panel.onHidden.addListener(destroyDebugger);
  }
);

Поэтому, когда пользователь переходит на вкладку Override Debug в devtools, я инициализирую отладчик. Когда пользователь уходит от моего devtool, я отказываюсь от отладчика - , который отлично работает

Теперь возникает проблема, когда пользователь переходит на Override Debug и закрывает devtools полностью, отладчик все еще жив сделать страницу не отзывчивой.

Я пытался видеть события в panel объекте chrome.devtools объекты также пробовали весь github, чтобы увидеть, есть ли у нас такое событие. Не повезло.

Есть ли какое-либо событие, которое отслеживает событие закрытия devtools, чтобы отменить присоединенный отладчик?

Обновление 1

Попытка присоединить команду Inspector.enable как следует, но не повезло. Он никогда не получил Inspector.detached сообщение

function addDebugger() {
  chrome.tabs.getSelected(null, function(target) {
    debuggee = { tabId: target.id };

    chrome.debugger.attach(debuggee, "1.2", () => {
      chrome.debugger.sendCommand(debuggee, "Network.setRequestInterception", { patterns: [{ urlPattern: '*' }] });
      chrome.debugger.sendCommand(debuggee, "Inspector.enable");
    });



    chrome.debugger.onEvent.addListener((source, method, params) => {
      if (source.tabId === target.id) {
        if (method === "Network.requestIntercepted") {
          // Do many things
        } else if (method === "Inspector.detached") {
          destroyDebugger();
        }
      }
    })
  });
}

...