Ручка отладчика отсоединяется в хромированном расширении

В соответствии с API отладчика DevTools событие отладки отсутствует. Могу ли я поймать событие отсоединения отладчика, когда пользователь нажимает "отменить", например?

Пример кода для прикрепления:

chrome.debugger.attach(
    {
        tabId: tabId
    },
    '1.3',
    () => {
        chrome.debugger.sendCommand(
            {
                tabId: tabId
            },
            'Debugger.enable',
            {},
            result => {
                // ...
            }
        );
    }
);

2 ответа

Решение

Если вы хотите, чтобы ваше отладочное соединение было закрыто (в отличие от события, происходящего в этом соединении), существует chrome.debugger.onDetach событие, предоставляемое API.

Я сделал обходной путь, который меня устраивает: setInterval с помощью try/catch отладочной команды.

const intervalId = setInterval(async () => {
    try {
        // await send 'Debugger.setBreakpointsActive' with active=true
    } catch (error) {
        clearInterval(intervalId);
        onDetach();
    }
}, 500);
Другие вопросы по тегам