diff options
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/window')
-rw-r--r-- | tools/addon-sdk-1.12/lib/sdk/window/browser.js | 41 | ||||
-rw-r--r-- | tools/addon-sdk-1.12/lib/sdk/window/namespace.js | 6 | ||||
-rw-r--r-- | tools/addon-sdk-1.12/lib/sdk/window/utils.js | 205 |
3 files changed, 0 insertions, 252 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/window/browser.js b/tools/addon-sdk-1.12/lib/sdk/window/browser.js deleted file mode 100644 index 2b63a83..0000000 --- a/tools/addon-sdk-1.12/lib/sdk/window/browser.js +++ /dev/null @@ -1,41 +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'; - -const { Class } = require('../core/heritage'); -const { windowNS } = require('./namespace'); -const { on, off, once } = require('../event/core'); -const { method } = require('../lang/functional'); -const { getWindowTitle } = require('./utils'); -const unload = require('../system/unload'); -const { getMode } = require('../private-browsing/utils'); -const { EventTarget } = require('../event/target'); - -const ERR_FENNEC_MSG = 'This method is not yet supported by Fennec, consider using require("tabs") instead'; - -const BrowserWindow = Class({ - initialize: function initialize(options) { - EventTarget.prototype.initialize.call(this, options); - windowNS(this).window = options.window; - }, - activate: function activate() { - // TODO - return null; - }, - close: function() { - throw new Error(ERR_FENNEC_MSG); - return null; - }, - get title() getWindowTitle(windowNS(this).window), - // NOTE: Fennec only has one window, which is assumed below - // TODO: remove assumption below - // NOTE: tabs requires windows - get tabs() require('../tabs'), - get activeTab() require('../tabs').activeTab, - on: method(on), - removeListener: method(off), - once: method(once), - get isPrivateBrowsing() getMode(windowNS(this).window), -}); -exports.BrowserWindow = BrowserWindow; diff --git a/tools/addon-sdk-1.12/lib/sdk/window/namespace.js b/tools/addon-sdk-1.12/lib/sdk/window/namespace.js deleted file mode 100644 index b486f88..0000000 --- a/tools/addon-sdk-1.12/lib/sdk/window/namespace.js +++ /dev/null @@ -1,6 +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"; - -exports.windowNS = require('../core/namespace').ns(); diff --git a/tools/addon-sdk-1.12/lib/sdk/window/utils.js b/tools/addon-sdk-1.12/lib/sdk/window/utils.js deleted file mode 100644 index 0bca8b1..0000000 --- a/tools/addon-sdk-1.12/lib/sdk/window/utils.js +++ /dev/null @@ -1,205 +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': 'unstable' -}; - -const { Cc, Ci } = require('chrome'); -const array = require('../util/array'); - -const windowWatcher = Cc['@mozilla.org/embedcomp/window-watcher;1']. - getService(Ci.nsIWindowWatcher); -const appShellService = Cc['@mozilla.org/appshell/appShellService;1']. - getService(Ci.nsIAppShellService); -const observers = require('../deprecated/observer-service'); -const WM = Cc['@mozilla.org/appshell/window-mediator;1']. - getService(Ci.nsIWindowMediator); - -const BROWSER = 'navigator:browser', - URI_BROWSER = 'chrome://browser/content/browser.xul', - NAME = '_blank', - FEATURES = 'chrome,all,dialog=no'; - -function getMostRecentBrowserWindow() { - return WM.getMostRecentWindow(BROWSER); -} -exports.getMostRecentBrowserWindow = getMostRecentBrowserWindow; - -/** - * Returns the ID of the window's current inner window. - */ -function getInnerId(window) { - return window.QueryInterface(Ci.nsIInterfaceRequestor). - getInterface(Ci.nsIDOMWindowUtils).currentInnerWindowID; -}; -exports.getInnerId = getInnerId; - -/** - * Returns the ID of the window's outer window. - */ -function getOuterId(window) { - return window.QueryInterface(Ci.nsIInterfaceRequestor). - getInterface(Ci.nsIDOMWindowUtils).outerWindowID; -}; -exports.getOuterId = getOuterId; - -/** - * Returns `nsIXULWindow` for the given `nsIDOMWindow`. - */ -function getXULWindow(window) { - return window.QueryInterface(Ci.nsIInterfaceRequestor). - getInterface(Ci.nsIWebNavigation). - QueryInterface(Ci.nsIDocShellTreeItem). - treeOwner.QueryInterface(Ci.nsIInterfaceRequestor). - getInterface(Ci.nsIXULWindow); -}; -exports.getXULWindow = getXULWindow; - -/** - * Returns `nsIBaseWindow` for the given `nsIDOMWindow`. - */ -function getBaseWindow(window) { - return window.QueryInterface(Ci.nsIInterfaceRequestor). - getInterface(Ci.nsIWebNavigation). - QueryInterface(Ci.nsIDocShell). - QueryInterface(Ci.nsIDocShellTreeItem). - treeOwner. - QueryInterface(Ci.nsIBaseWindow); -} -exports.getBaseWindow = getBaseWindow; - -function getWindowDocShell(window) window.gBrowser.docShell; -exports.getWindowDocShell = getWindowDocShell; - -function getWindowLoadingContext(window) { - return getWindowDocShell(window). - QueryInterface(Ci.nsILoadContext); -} -exports.getWindowLoadingContext = getWindowLoadingContext; - -/** - * Removes given window from the application's window registry. Unless - * `options.close` is `false` window is automatically closed on application - * quit. - * @params {nsIDOMWindow} window - * @params {Boolean} options.close - */ -function backgroundify(window, options) { - let base = getBaseWindow(window); - base.visibility = false; - base.enabled = false; - appShellService.unregisterTopLevelWindow(getXULWindow(window)); - if (!options || options.close !== false) - observers.add('quit-application-granted', window.close.bind(window)); - - return window; -} -exports.backgroundify = backgroundify; - -/** - * Takes hash of options and serializes it to a features string that - * can be used passed to `window.open`. For more details on features string see: - * https://developer.mozilla.org/en/DOM/window.open#Position_and_size_features - */ -function serializeFeatures(options) { - return Object.keys(options).reduce(function(result, name) { - let value = options[name]; - return result + ',' + name + '=' + - (value === true ? 'yes' : value === false ? 'no' : value); - }, '').substr(1); -} - -/** - * Opens a top level window and returns it's `nsIDOMWindow` representation. - * @params {String} uri - * URI of the document to be loaded into window. - * @params {nsIDOMWindow} options.parent - * Used as parent for the created window. - * @params {String} options.name - * Optional name that is assigned to the window. - * @params {Object} options.features - * Map of key, values like: `{ width: 10, height: 15, chrome: true }`. - */ -function open(uri, options) { - options = options || {}; - return windowWatcher. - openWindow(options.parent || null, - uri, - options.name || null, - serializeFeatures(options.features || {}), - options.args || null); -} -exports.open = open; - -/** - * Opens a top level window and returns it's `nsIDOMWindow` representation. - * Same as `open` but with more features - * @param {Object} options - * - */ -function openDialog(options) { - options = options || {}; - - let browser = WM.getMostRecentWindow(BROWSER); - return browser.openDialog.apply( - browser, - array.flatten([ - options.url || URI_BROWSER, - options.name || '_blank', - options.features || 'chrome,all,dialog=no', - options.args || null - ]) - ); -} -exports.openDialog = openDialog; - -/** - * Returns an array of all currently opened windows. - * Note that these windows may still be loading. - */ -function windows() { - let list = []; - let winEnum = windowWatcher.getWindowEnumerator(); - while (winEnum.hasMoreElements()) { - let window = winEnum.getNext().QueryInterface(Ci.nsIDOMWindow); - list.push(window); - } - return list; -} -exports.windows = windows; - -/** - * Check if the given window is completely loaded. - * i.e. if its "load" event has already been fired and all possible DOM content - * is done loading (the whole DOM document, images content, ...) - * @params {nsIDOMWindow} window - */ -function isDocumentLoaded(window) { - return window.document.readyState == "complete"; -} -exports.isDocumentLoaded = isDocumentLoaded; - -function isBrowser(window) { - return window.document.documentElement.getAttribute("windowtype") === BROWSER; -}; -exports.isBrowser = isBrowser; - -function getWindowTitle(window) { - return window && window.document ? window.document.title : null; -} -exports.getWindowTitle = getWindowTitle; - -function isXULBrowser(window) { - return !!(isBrowser(window) && window.XULBrowserWindow); -} -exports.isXULBrowser = isXULBrowser; - -function getFrames(window) { - return Array.slice(window.frames).reduce(function(frames, frame) { - return frames.concat(frame, getFrames(frame)) - }, []) -} -exports.getFrames = getFrames; |