summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab/lib/addon-tab.js153
1 files changed, 0 insertions, 153 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab/lib/addon-tab.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab/lib/addon-tab.js
deleted file mode 100644
index 0236161..0000000
--- a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/addon-tab/lib/addon-tab.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/* 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': 'experimental'
-};
-
-const { WindowTracker } = require('sdk/deprecated/window-utils');
-const { isXULBrowser } = require('sdk/window/utils');
-const { add, remove } = require('sdk/util/array');
-const { getTabs, closeTab, getURI, getTabURL, getBrowserForTab } = require('sdk/tabs/utils');
-const { data } = require('sdk/self');
-const { ns } = require("sdk/core/namespace");
-
-const tabs = require("sdk/tabs");
-
-const { defer } = require("sdk/lang/functional");
-
-// store list of addon URLs to hide the navigation bar from
-// and to add proper style.
-// the url is used as the key for lookup efficiency.
-// Objects contained are: {[url]: { [styles] }}
-let addonTabs = {};
-
-const windows = ns();
-
-/* Add tab to a list of URL/styles. Can be called
- * from other scripts */
-let addTabToList = function (options) {
-
- options = options || {};
- let url;
-
- if (options.url) {
- addonTabs[options.url] = {};
- }
- else {
- throw new Error("No url provided for the AddonTab page");
- }
-
- if (options.tabStyle)
- addonTabs[options.url] = options.tabStyle;
- else
- addonTabs[options.tabStyle] = null;
-
-};
-
-exports.removeAddonTab = function (url) {
- if (url && url in addonTabs)
- delete addonTabs[url];
-};
-
-let applyStyle = function (tab, property, value) {
- tab.style.setProperty(property,
- value,
- 'important');
-};
-
-let applyStyles = function (tab, url) {
- if (!url) {
- url = getURI(tab);
- }
-
- if (url in addonTabs && addonTabs[url] != null) {
- for (let item in addonTabs[url]) {
- applyStyle(tab, item, addonTabs[url][item]);
- }
- }
-};
-
-/* Simply adds the URL/style to the list,
- * and then just open a tab using the high-level
- * tab module.
- */
-exports.open = function (options) {
- addTabToList(options);
- let tab = tabs.open(options);
- return tab;
-};
-
-/*
- * Track tabs opened and closed.
- * Once you have a tab open, get the browser for it
- * and figure out the location (which turns out to be the right one, not about:blank)
- */
-tabs.on('open', function onOpen(tab) {
- let browser = getBrowserForTab(tab);
-
- tab.on('load', function onTabLoad(e) {
- if (typeof browser == 'undefined') {
- return;
- }
- // let's get the location of the document.
- applyStyles(tab, browser.contentDocument.location);
- }, true);
-});
-
-
-WindowTracker({
- onTrack: function onTrack(window) {
- if (!isXULBrowser(window) || windows(window).hideChromeForLocation)
- return;
-
- let { XULBrowserWindow } = window;
- let { hideChromeForLocation } = XULBrowserWindow;
-
- windows(window).hideChromeForLocation = hideChromeForLocation;
-
- // Augmenting the behavior of `hideChromeForLocation` method, as
- // suggested by https://developer.mozilla.org/en-US/docs/Hiding_browser_chrome
- XULBrowserWindow.hideChromeForLocation = function(url) {
-
- if (url in addonTabs)
- return true;
-
- return hideChromeForLocation.call(this, url);
- };
- },
-
- onUntrack: function onUntrack(window) {
- if (isXULBrowser(window))
- getTabs(window).filter(tabFilter).forEach(untrackTab.bind(null, window));
-
- }
-});
-
-
-function tabFilter(tab) {
- if (getURI(tab) in addonTabs) {
- return true;
- }
-
- return false;
-}
-
-function untrackTab(window, tab) {
- // Note: `onUntrack` will be called for all windows on add-on unloads,
- // so we want to clean them up from these URLs.
- let { hideChromeForLocation } = windows(window);
-
- if (hideChromeForLocation) {
- window.XULBrowserWindow.hideChromeForLocation = hideChromeForLocation;
- windows(window).hideChromeForLocation = null;
- }
- // had to remove closeTab call to prevent a TypeError: element is
- // undefined.
- //closeTab(tab);
-}
-
-
-