sessions.onChanged
Fired whenever the list of closed tabs or windows changes.
Syntax
js
browser.sessions.onChanged.addListener(listener)
browser.sessions.onChanged.removeListener(listener)
browser.sessions.onChanged.hasListener(listener)
Events have three functions:
addListener(listener)
-
Adds a listener to this event.
removeListener(listener)
-
Stop listening to this event. The
listener
argument is the listener to remove. hasListener(listener)
-
Check whether
listener
is registered for this event. Returnstrue
if it is listening,false
otherwise.
addListener syntax
Parameters
listener
-
The function called when this event occurs. It's passed no parameters.
Browser compatibility
BCD tables only load in the browser
Examples
This very annoying extension listens for onChanged
, then immediately restores the most recently closed session, thus making it impossible to close windows or tabs:
js
function restoreSession(sessionInfos) {
if (!sessionInfos.length) {
console.log("No sessions found");
return;
}
let sessionInfo = sessionInfos[0];
if (sessionInfo.tab) {
browser.sessions.restore(sessionInfo.tab.sessionId);
} else {
browser.sessions.restore(sessionInfo.window.sessionId);
}
}
function onError(error) {
console.log(error);
}
function restoreMostRecent() {
let gettingSessions = browser.sessions.getRecentlyClosed({
maxResults: 1,
});
gettingSessions.then(restoreSession, onError);
}
browser.sessions.onChanged.addListener(restoreMostRecent);
Note: This API is based on Chromium's chrome.sessions
API.