Panorama:TabGroupsAPI
Jump to navigation
Jump to search
The purpose of this TabGroups API is to provide a simple storage for Panorama and its tab groups. Other add-ons which would like to access tab groups' data can use this API to do that.
Schema
Compatibility
Example
An example of tab group' data stored in session storage for Panorama:
{windows: [{
tabs: [
{entries: [{url: "about:mozilla"}]},
{entries: [{url: "http://example.com/#1"}],
extData: {"tabgroups": "{\"group\": \"group1-id\", \"title\": \"first tab title\",
\"url\": \"first tab url"}"}},
{entries: [{url: "http://example.com/#2"}],
extData: {"tabgroups": "{\"group\": \"group2-id\", \"title\": \"second tab title\",
\"url\": \"second tab url"}, \"active\":\"last active tab in group it belongs\"}"}
],
extData: {
"tabgroups": "{\"group1-id\": {\"id\": \"group1-id\", \"title\": \"first title\",
\"bounds\": {\"left\": 35, \"top\": 45, \"width\": 330, \"height\": 310},
\"userSize\": {\"x\": 330, \"y\": 310}},
\"group2-id\": {\"id\": \"group2-id\", \"title\": \"second title\",
\"bounds": {\"left\": 450, \"top\": 45, \"width\": 330, \"height\": 310},
\"userSize\": {\"x\": 330, \"y\": 310}},
\"additions\": {\"activeGroup\":\"group2-id\", \"showOnStartup\":true,
\"pageBounds\" :{\"left\":0, \"top\": 0, \"width\": 1000, \"height\": 750}}}"
}
}]}
Applications
Panorama
Panorama uses this TabGroups API to access the session storage for storing and retrieving tab groups' data.
Vertical Tabs
Tree Style Tabs
API Description
To use the TabGroups API, you first need to import the code module into your JavaScript scope:
Components.utils.import("resource:///modules/TabGroups.jsm");
Then you can obtain reference to it by simply accessing them from the TabGroups object exported by the code module. For example:
let allGroups = TabGroups.getGroups();
Provided objects, methods and events
TabGroups
[Methods]
TabGroup createGroup(DOMWindow aWindow)
TabGroup[] getGroups()
TabGroup[] getGroupsByWindow(DOMWindow aWindow)
object getWindowStorage(DOMWindow aWindow)
[Events]
tabgroup-added
tabgroup-removed
window-closing
TabGroup
[Properties]
id: string
title: string
tabs: xulTab[]
storage: object
[Methods]
void addTab(xulTab aTab)
void removeTab(xulTab aTab)
void close()
object getTabStorage(xulTab aTab)
[Events]
rename
tab-added
tab-removed
close