Я пишу 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();
}
}
})
});
}