aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.12/lib/sdk/system
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/system')
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/environment.js58
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/events.js113
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/globals.js54
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/runtime.js19
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/unload.js82
-rw-r--r--tools/addon-sdk-1.12/lib/sdk/system/xul-app.js67
6 files changed, 0 insertions, 393 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/environment.js b/tools/addon-sdk-1.12/lib/sdk/system/environment.js
deleted file mode 100644
index 045bab1..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/environment.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 expandtab */
-/* 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": "stable"
-};
-
-const { Cc, Ci } = require('chrome');
-const { get, set, exists } = Cc['@mozilla.org/process/environment;1'].
- getService(Ci.nsIEnvironment);
-
-exports.env = Proxy.create({
- // XPCOM does not provides a way to enumerate environment variables, so we
- // just don't support enumeration.
- getPropertyNames: function() [],
- getOwnPropertyNames: function() [],
- enumerate: function() [],
- keys: function() [],
- // We do not support freezing, cause it would make it impossible to set new
- // environment variables.
- fix: function() undefined,
- // We present all environment variables as own properties of this object,
- // so we just delegate this call to `getOwnPropertyDescriptor`.
- getPropertyDescriptor: function(name) this.getOwnPropertyDescriptor(name),
- // If environment variable with this name is defined, we generate proprety
- // descriptor for it, otherwise fall back to `undefined` so that for consumer
- // this property does not exists.
- getOwnPropertyDescriptor: function(name) {
- return !exists(name) ? undefined : {
- value: get(name),
- enumerable: false, // Non-enumerable as we don't support enumeration.
- configurable: true, // Configurable as it may be deleted.
- writable: true // Writable as we do support set.
- }
- },
-
- // New environment variables can be defined just by defining properties
- // on this object.
- defineProperty: function(name, { value }) set(name, value),
- delete: function(name) set(name, null),
-
- // We present all properties as own, there for we just delegate to `hasOwn`.
- has: function(name) this.hasOwn(name),
- // We do support checks for existence of an environment variable, via `in`
- // operator on this object.
- hasOwn: function(name) exists(name),
-
- // On property get / set we do read / write appropriate environment variables,
- // please note though, that variables with names of standard object properties
- // intentionally (so that this behaves as normal object) can not be
- // read / set.
- get: function(proxy, name) Object.prototype[name] || get(name) || undefined,
- set: function(proxy, name, value) Object.prototype[name] || set(name, value)
-});
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/events.js b/tools/addon-sdk-1.12/lib/sdk/system/events.js
deleted file mode 100644
index a75dddc..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/events.js
+++ /dev/null
@@ -1,113 +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 { Unknown } = require('../platform/xpcom');
-const { Class } = require('../core/heritage');
-const { ns } = require('../core/namespace');
-const { addObserver, removeObserver, notifyObservers } =
- Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
-
-const Subject = Class({
- extends: Unknown,
- initialize: function initialize(object) {
- // Double-wrap the object and set a property identifying the
- // wrappedJSObject as one of our wrappers to distinguish between
- // subjects that are one of our wrappers (which we should unwrap
- // when notifying our observers) and those that are real JS XPCOM
- // components (which we should pass through unaltered).
- this.wrappedJSObject = {
- observersModuleSubjectWrapper: true,
- object: object
- };
- },
- getHelperForLanguage: function() {},
- getInterfaces: function() {}
-});
-
-function emit(type, event) {
- let subject = 'subject' in event ? Subject(event.subject) : null;
- let data = 'data' in event ? event.data : null;
- notifyObservers(subject, type, data);
-}
-exports.emit = emit;
-
-const Observer = Class({
- extends: Unknown,
- initialize: function initialize(listener) {
- this.listener = listener;
- },
- interfaces: [ 'nsIObserver', 'nsISupportsWeakReference' ],
- observe: function(subject, topic, data) {
- // Extract the wrapped object for subjects that are one of our
- // wrappers around a JS object. This way we support both wrapped
- // subjects created using this module and those that are real
- // XPCOM components.
- if (subject && typeof(subject) == 'object' &&
- ('wrappedJSObject' in subject) &&
- ('observersModuleSubjectWrapper' in subject.wrappedJSObject))
- subject = subject.wrappedJSObject.object;
-
- try {
- this.listener({
- type: topic,
- subject: subject,
- data: data
- });
- }
- catch (error) {
- console.exception(error);
- }
- }
-});
-
-const subscribers = ns();
-
-function on(type, listener, strong) {
- // Unless last optional argument is `true` we use a weak reference to a
- // listener.
- let weak = !strong;
- // Take list of observers associated with given `listener` function.
- let observers = subscribers(listener);
- // If `observer` for the given `type` is not registered yet, then
- // associate an `observer` and register it.
- if (!(type in observers)) {
- let observer = Observer(listener);
- observers[type] = observer;
- addObserver(observer, type, weak);
- }
-}
-exports.on = on;
-
-function once(type, listener) {
- // Note: this code assumes order in which listeners are called, which is fine
- // as long as dispatch happens in same order as listener registration which
- // is the case now. That being said we should be aware that this may break
- // in a future if order will change.
- on(type, listener);
- on(type, function cleanup() {
- off(type, listener);
- off(type, cleanup);
- }, true);
-}
-exports.once = once;
-
-function off(type, listener) {
- // Take list of observers as with the given `listener`.
- let observers = subscribers(listener);
- // If `observer` for the given `type` is registered, then
- // remove it & unregister.
- if (type in observers) {
- let observer = observers[type];
- delete observers[type];
- removeObserver(observer, type);
- }
-}
-exports.off = off;
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/globals.js b/tools/addon-sdk-1.12/lib/sdk/system/globals.js
deleted file mode 100644
index df77295..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/globals.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 expandtab */
-/* 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"
-};
-
-let { Cc, Ci, CC } = require('chrome');
-let { PlainTextConsole } = require('../console/plain-text');
-let { stdout } = require('../system');
-let ScriptError = CC('@mozilla.org/scripterror;1', 'nsIScriptError');
-let consoleService = Cc['@mozilla.org/consoleservice;1'].getService().
- QueryInterface(Ci.nsIConsoleService);
-
-// On windows dump does not writes into stdout so cfx can't read thous dumps.
-// To workaround this issue we write to a special file from which cfx will
-// read and print to the console.
-// For more details see: bug-673383
-exports.dump = stdout.write;
-
-// Bug 718230: We need to send console messages to stdout and JS Console
-function forsakenConsoleDump(msg, level) {
- stdout.write(msg);
-
- if (level === 'error') {
- let error = ScriptError();
- msg = msg.replace(/^error: /, '');
- error.init(msg, null, null, 0, 0, 0, 'Add-on SDK');
- consoleService.logMessage(error);
- }
- else
- consoleService.logStringMessage(msg);
-};
-exports.console = new PlainTextConsole(forsakenConsoleDump);
-
-// Provide CommonJS `define` to allow authoring modules in a format that can be
-// loaded both into jetpack and into browser via AMD loaders.
-Object.defineProperty(exports, 'define', {
- // `define` is provided as a lazy getter that binds below defined `define`
- // function to the module scope, so that require, exports and module
- // variables remain accessible.
- configurable: true,
- get: function() {
- let sandbox = this;
- return function define(factory) {
- factory = Array.slice(arguments).pop();
- factory.call(sandbox, sandbox.require, sandbox.exports, sandbox.module);
- }
- }
-});
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/runtime.js b/tools/addon-sdk-1.12/lib/sdk/system/runtime.js
deleted file mode 100644
index e64b663..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/runtime.js
+++ /dev/null
@@ -1,19 +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 { Cc, Ci } = require("chrome");
-const runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
-
-exports.inSafeMode = runtime.inSafeMode;
-exports.OS = runtime.OS;
-exports.processType = runtime.processType;
-exports.widgetToolkit = runtime.widgetToolkit;
-exports.XPCOMABI = runtime.XPCOMABI;
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/unload.js b/tools/addon-sdk-1.12/lib/sdk/system/unload.js
deleted file mode 100644
index 4d2575b..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/unload.js
+++ /dev/null
@@ -1,82 +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/. */
-
-// Parts of this module were taken from narwhal:
-//
-// http://narwhaljs.org
-
-module.metadata = {
- "stability": "experimental"
-};
-
-const { on, off } = require('./events');
-const unloadSubject = require('@loader/unload');
-
-const observers = [];
-const unloaders = [];
-
-var when = exports.when = function when(observer) {
- if (observers.indexOf(observer) != -1)
- return;
- observers.unshift(observer);
-};
-
-var ensure = exports.ensure = function ensure(obj, destructorName) {
- if (!destructorName)
- destructorName = "unload";
- if (!(destructorName in obj))
- throw new Error("object has no '" + destructorName + "' property");
-
- let called = false;
- let originalDestructor = obj[destructorName];
-
- function unloadWrapper(reason) {
- if (!called) {
- called = true;
- let index = unloaders.indexOf(unloadWrapper);
- if (index == -1)
- throw new Error("internal error: unloader not found");
- unloaders.splice(index, 1);
- originalDestructor.call(obj, reason);
- originalDestructor = null;
- destructorName = null;
- obj = null;
- }
- };
-
- // TODO: Find out why the order is inverted here. It seems that
- // it may be causing issues!
- unloaders.push(unloadWrapper);
-
- obj[destructorName] = unloadWrapper;
-};
-
-function unload(reason) {
- observers.forEach(function(observer) {
- try {
- observer(reason);
- }
- catch (error) {
- console.exception(error);
- }
- });
-}
-
-when(function(reason) {
- unloaders.slice().forEach(function(unloadWrapper) {
- unloadWrapper(reason);
- });
-});
-
-on('sdk:loader:destroy', function onunload({ subject, data: reason }) {
- // If this loader is unload then `subject.wrappedJSObject` will be
- // `destructor`.
- if (subject.wrappedJSObject === unloadSubject) {
- off('sdk:loader:destroy', onunload);
- unload(reason);
- }
-// Note that we use strong reference to listener here to make sure it's not
-// GC-ed, which may happen otherwise since nothing keeps reference to `onunolad`
-// function.
-}, true);
diff --git a/tools/addon-sdk-1.12/lib/sdk/system/xul-app.js b/tools/addon-sdk-1.12/lib/sdk/system/xul-app.js
deleted file mode 100644
index 6e8b4e8..0000000
--- a/tools/addon-sdk-1.12/lib/sdk/system/xul-app.js
+++ /dev/null
@@ -1,67 +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 {Cc, Ci} = require("chrome");
-
-var appInfo = Cc["@mozilla.org/xre/app-info;1"]
- .getService(Ci.nsIXULAppInfo);
-
-var ID = exports.ID = appInfo.ID;
-var name = exports.name = appInfo.name;
-var version = exports.version = appInfo.version;
-var platformVersion = exports.platformVersion = appInfo.platformVersion;
-
-// The following mapping of application names to GUIDs was taken from:
-//
-// https://addons.mozilla.org/en-US/firefox/pages/appversions
-//
-// Using the GUID instead of the app's name is preferable because sometimes
-// re-branded versions of a product have different names: for instance,
-// Firefox, Minefield, Iceweasel, and Shiretoko all have the same
-// GUID.
-// This mapping is duplicated in `app-extensions/bootstrap.js`. They should keep
-// in sync, so if you change one, change the other too!
-
-var ids = exports.ids = {
- Firefox: "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}",
- Mozilla: "{86c18b42-e466-45a9-ae7a-9b95ba6f5640}",
- Sunbird: "{718e30fb-e89b-41dd-9da7-e25a45638b28}",
- SeaMonkey: "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}",
- Fennec: "{aa3c5121-dab2-40e2-81ca-7ea25febc110}",
- Thunderbird: "{3550f703-e582-4d05-9a08-453d09bdfdc6}"
-};
-
-var is = exports.is = function is(name) {
- if (!(name in ids))
- throw new Error("Unkown Mozilla Application: " + name);
- return ID == ids[name];
-};
-
-var isOneOf = exports.isOneOf = function isOneOf(names) {
- for (var i = 0; i < names.length; i++)
- if (is(names[i]))
- return true;
- return false;
-};
-
-/**
- * Use this to check whether the given version (e.g. xulApp.platformVersion)
- * is in the given range. Versions must be in version comparator-compatible
- * format. See MDC for details:
- * https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIVersionComparator
- */
-var versionInRange = exports.versionInRange =
-function versionInRange(version, lowInclusive, highExclusive) {
- var vc = Cc["@mozilla.org/xpcom/version-comparator;1"]
- .getService(Ci.nsIVersionComparator);
- return (vc.compare(version, lowInclusive) >= 0) &&
- (vc.compare(version, highExclusive) < 0);
-}
-