sessions.getRecentlyClosed()

Returns an array of Session objects, representing windows and tabs that were closed in the current browsing session (that is: the time since the browser was started).

This is an asynchronous function that returns a Promise.

Syntax

js
let gettingSessions = browser.sessions.getRecentlyClosed(
  filter             // optional object
)

Parameters

filter Optional

object. A sessions.Filter object that limits the set of sessions returned.

Return value

A Promise. This will be fulfilled with an array of Session objects, one for each of the most recently closed tabs or windows in the current browsing session, up to sessions.MAX_SESSION_RESULTS or the number included in the filter argument, whichever is smaller. The array is given in the reverse of the order in which tabs or windows were closed, so the most recently closed will be at index 0.

If an error occurs, the promise will be rejected with an error message.

Examples

This code restores the single most recently-closed session, whether it's a tab or a window:

js
function restoreMostRecent(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);
}

browser.browserAction.onClicked.addListener(() => {
  let gettingSessions = browser.sessions.getRecentlyClosed({
    maxResults: 1,
  });
  gettingSessions.then(restoreMostRecent, onError);
});

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
getRecentlyClosed
Chrome – Full support
Chrome 37 (Release date: 2014-08-26)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – Full support
Firefox 52 (Release date: 2017-03-07)
footnote Full support
Opera – Full support
Opera 24 (Release date: 2014-09-02)
footnote Full support
Safari – No support
Safari
footnote No support
Firefox for Android – No support
Firefox for Android
footnote No support
Safari on iOS – No support
Safari on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Note: This API is based on Chromium's chrome.sessions API.