Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

deck

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.

Summary

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 = event.target;  
  gWindow.console.log("Log_tabs: Closing: " + browser.currentURI.spec);
}

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

function loadIntoWindow(window) {
  if (!window)
    return;
  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)
    return;
  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,