Chrome Sidepanel: Close-Event simulieren

Das neue Sidepanel in Chrome stellt kein Close-Event zur Verfügung, dass man z.B. ganz gut gebrauchen könnte, um nach dem Schließen des Panels Daten aufzuräumen.

Man kann das Event aber simulieren, indem man eine permanente Verbindung zwischen dem Sidepanel und dem Background-Skript herstellt. Diese Verbindung feuert ein OnDisconnect-Event. wenn das Sidepanel geschlossen wird.
sidepanel.js:

chrome.runtime.connect({ name: 'mySidepanel' });

Im Background-Skript kann ein Listener das Event ab und dementsprechend reagieren.
background.js:

chrome.runtime.onConnect.addListener(function (port) {
if (port.name === 'mySidepanel') {
port.onDisconnect.addListener(async () => {
console.log('Sidepanel closed.');
});
}
});

Es ist zu beachten, dass das Event nicht gefeuert wird, wenn man zwischen Panels hin- und herschaltet, sondern nur beim vollständigen Schließen des Panels.

(Foto von iMattSmart auf Unsplash)