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); }