The BrowserApp object is only available to privileged code running on Firefox for Android, and is intended for use by Firefox for Android add-ons.


deck is a property of the BrowserApp object. It is a deck of all currently open browsers, represented as browser objects.

Tab events

Using the deck property, you can listen to three tab events: TabOpen, TabClose, and TabSelect. For all three events, the event's target is the browser hosted by that tab.

Here's an add-on that uses the template "bootstrap.js" introduced in the Initialization and Cleanup guide and implements loadIntoWindow()to listen to all three of those tab events. Note that it also implements unloadFromWindow() to remove the listeners.

var gWindow;

function logTabOpen(event) {
  gWindow.console.log("Log_tabs: Opening new tab");

function logTabClose(event) {
  let browser =;  
  gWindow.console.log("Log_tabs: Closing: " + browser.currentURI.spec);

function logTabSelect(event) {
  let browser =;  
  gWindow.console.log("Log_tabs: Selecting: " + browser.currentURI.spec);

function loadIntoWindow(window) {
  if (!window)
  gWindow = window;
  gWindow.console.log("Log_tabs: starting");
  window.BrowserApp.deck.addEventListener("TabOpen", logTabOpen, false);
  window.BrowserApp.deck.addEventListener("TabClose", logTabClose, false);
  window.BrowserApp.deck.addEventListener("TabSelect", logTabSelect, false);

function unloadFromWindow(window) {
  if (!window)
  window.BrowserApp.deck.removeEventListener("TabOpen", logTabOpen, false);
  window.BrowserApp.deck.removeEventListener("TabClose", logTabClose, false);
  window.BrowserApp.deck.removeEventListener("TabSelect", logTabSelect, false);

Document Tags and Contributors

 Contributors to this page: wbamberg
 Last updated by: wbamberg,