aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.12/lib/sdk/tabs/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/tabs/utils.js')
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/tabs/utils.js222
1 files changed, 0 insertions, 222 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/tabs/utils.js b/tools/addon-sdk-1.12/lib/sdk/tabs/utils.js
deleted file mode 100644
index d923e4b..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/tabs/utils.js
+++ /dev/null
@@ -1,222 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 et: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-'use strict';
-
-module.metadata = {
- 'stability': 'unstable'
-};
-
-const { defer } = require("../lang/functional");
-const { windows } = require('../window/utils');
-const { Ci } = require('chrome');
-
-function activateTab(tab, window) {
- let gBrowser = getTabBrowserForTab(tab);
-
- // normal case
- if (gBrowser) {
- gBrowser.selectedTab = tab;
- }
- // fennec ?
- else if (window && window.BrowserApp) {
- window.BrowserApp.selectTab(tab);
- }
- return null;
-}
-exports.activateTab = activateTab;
-
-function getTabBrowser(window) {
- return window.gBrowser;
-}
-exports.getTabBrowser = getTabBrowser;
-
-function getTabContainer(window) {
- return getTabBrowser(window).tabContainer;
-}
-exports.getTabContainer = getTabContainer;
-
-function getTabs(window) {
- // fennec
- if (window.BrowserApp)
- return window.BrowserApp.tabs;
-
- // firefox - default
- return Array.slice(getTabContainer(window).children);
-}
-exports.getTabs = getTabs;
-
-function getActiveTab(window) {
- return window.gBrowser.selectedTab;
-}
-exports.getActiveTab = getActiveTab;
-
-function getOwnerWindow(tab) {
- // normal case
- if (tab.ownerDocument)
- return tab.ownerDocument.defaultView;
-
- // try fennec case
- return getWindowHoldingTab(tab);
-}
-exports.getOwnerWindow = getOwnerWindow;
-
-// fennec
-function getWindowHoldingTab(rawTab) {
- for each (let window in windows()) {
- // this function may be called when not using fennec
- if (!window.BrowserApp)
- continue;
-
- for each (let tab in window.BrowserApp.tabs) {
- if (tab === rawTab)
- return window;
- }
- }
-
- return null;
-}
-
-function openTab(window, url, options) {
- options = options || {};
-
- // fennec?
- if (window.BrowserApp) {
- return window.BrowserApp.addTab(url, {
- selected: options.inBackground ? false : true,
- pinned: options.isPinned || false
- });
- }
- return window.gBrowser.addTab(url);
-};
-exports.openTab = openTab;
-
-function isTabOpen(tab) {
- // try normal case then fennec case
- return !!((tab.linkedBrowser) || getWindowHoldingTab(tab));
-}
-exports.isTabOpen = isTabOpen;
-
-function closeTab(tab) {
- let gBrowser = getTabBrowserForTab(tab);
- // normal case?
- if (gBrowser)
- return gBrowser.removeTab(tab);
-
- let window = getWindowHoldingTab(tab);
- // fennec?
- if (window && window.BrowserApp)
- return window.BrowserApp.closeTab(tab);
- return null;
-}
-exports.closeTab = closeTab;
-
-function getURI(tab) {
- if (tab.browser) // fennec
- return tab.browser.currentURI.spec;
- return tab.linkedBrowser.currentURI.spec;
-}
-exports.getURI = getURI;
-
-function getTabBrowserForTab(tab) {
- let outerWin = getOwnerWindow(tab);
- if (outerWin)
- return getOwnerWindow(tab).gBrowser;
- return null;
-}
-exports.getTabBrowserForTab = getTabBrowserForTab;
-
-function getBrowserForTab(tab) {
- if (tab.browser) // fennec
- return tab.browser;
-
- return tab.linkedBrowser;
-}
-exports.getBrowserForTab = getBrowserForTab;
-
-function getTabTitle(tab) {
- return getBrowserForTab(tab).contentDocument.title || tab.label || "";
-}
-exports.getTabTitle = getTabTitle;
-
-function setTabTitle(tab, title) {
- title = String(title);
- if (tab.browser)
- tab.browser.contentDocument.title = title;
- tab.label = String(title);
-}
-exports.setTabTitle = setTabTitle;
-
-function getTabContentWindow(tab) {
- return getBrowserForTab(tab).contentWindow;
-}
-exports.getTabContentWindow = getTabContentWindow;
-
-function getTabForContentWindow(window) {
- // Retrieve the topmost frame container. It can be either <xul:browser>,
- // <xul:iframe/> or <html:iframe/>. But in our case, it should be xul:browser.
- let browser = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShell)
- .chromeEventHandler;
- // Is null for toplevel documents
- if (!browser)
- return false;
- // Retrieve the owner window, should be browser.xul one
- let chromeWindow = browser.ownerDocument.defaultView;
-
- // Ensure that it is top-level browser window.
- // We need extra checks because of Mac hidden window that has a broken
- // `gBrowser` global attribute.
- if ('gBrowser' in chromeWindow && chromeWindow.gBrowser &&
- 'browsers' in chromeWindow.gBrowser) {
- // Looks like we are on Firefox Desktop
- // Then search for the position in tabbrowser in order to get the tab object
- let browsers = chromeWindow.gBrowser.browsers;
- let i = browsers.indexOf(browser);
- if (i !== -1)
- return chromeWindow.gBrowser.tabs[i];
- return null;
- }
- else if ('BrowserApp' in chromeWindow) {
- // Looks like we are on Firefox Mobile
- return chromeWindow.BrowserApp.getTabForWindow(window)
- }
-
- return null;
-}
-exports.getTabForContentWindow = getTabForContentWindow;
-
-function getTabURL(tab) {
- if (tab.browser) // fennec
- return String(tab.browser.currentURI.spec);
- return String(getBrowserForTab(tab).currentURI.spec);
-}
-exports.getTabURL = getTabURL;
-
-function setTabURL(tab, url) {
- url = String(url);
- if (tab.browser)
- return tab.browser.loadURI(url);
- return getBrowserForTab(tab).loadURI(url);
-}
-// "TabOpen" event is fired when it's still "about:blank" is loaded in the
-// changing `location` property of the `contentDocument` has no effect since
-// seems to be either ignored or overridden by internal listener, there for
-// location change is enqueued for the next turn of event loop.
-exports.setTabURL = defer(setTabURL);
-
-function getTabContentType(tab) {
- return getBrowserForTab(tab).contentDocument.contentType;
-}
-exports.getTabContentType = getTabContentType;
-
-function getSelectedTab(window) {
- if (window.BrowserApp) // fennec?
- return window.BrowserApp.selectedTab;
- if (window.gBrowser)
- return window.gBrowser.selectedTab;
- return null;
-}
-exports.getSelectedTab = getSelectedTab;