aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js')
-rw-r--r--tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js182
1 files changed, 0 insertions, 182 deletions
diff --git a/tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js b/tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js
deleted file mode 100644
index 70c71b5..0000000
--- a/tools/addon-sdk-1.3/packages/api-utils/lib/cuddlefish.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Jetpack.
- *
- * The Initial Developer of the Original Code is Mozilla.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Atul Varma <atul@mozilla.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-"use strict";
-
-(function(global) {
-
- const Cc = Components.classes;
- const Ci = Components.interfaces;
- const Cu = Components.utils;
- const Cr = Components.results;
-
- var exports = {};
-
- // Load the SecurableModule prerequisite.
- var securableModule;
- var myURI = Components.stack.filename.split(" -> ").slice(-1)[0];
-
- if (global.require) {
- // We're being loaded in a SecurableModule. This call also tells the
- // manifest-scanner that it ought to scan securable-module.js
- securableModule = require("api-utils/securable-module");
- } else {
- var ios = Cc['@mozilla.org/network/io-service;1']
- .getService(Ci.nsIIOService);
- var securableModuleURI = ios.newURI("securable-module.js", null,
- ios.newURI(myURI, null, null));
- if (securableModuleURI.scheme == "chrome") {
- // The securable-module module is at a chrome URI, so we can't
- // simply load it via Cu.import(). Let's assume we're in a
- // chrome-privileged document and use mozIJSSubScriptLoader.
- var loader = Cc["@mozilla.org/moz/jssubscript-loader;1"]
- .getService(Ci.mozIJSSubScriptLoader);
-
- // Import the script, don't pollute the global scope.
- securableModule = {__proto__: global};
- loader.loadSubScript(securableModuleURI.spec, securableModule);
- securableModule = securableModule.SecurableModule;
- } else {
- securableModule = {};
- try {
- Cu.import(securableModuleURI.spec, securableModule);
- } catch (e if e.result == Cr.NS_ERROR_ILLEGAL_VALUE) {
- Cu.reportError("Failed to load " + securableModuleURI.spec);
- }
- }
- }
-
- if (false) // force the manifest-scanner to copy shims.js into the XPI
- require("api-utils/shims");
- var localFS = new securableModule.LocalFileSystem(myURI);
- var shimsPath = localFS.resolveModule(null, "shims");
- var shims = exports.shims = localFS.getFile(shimsPath);
-
- shims.filename = shimsPath;
-
- function unloadLoader(reason, onError) {
- this.require("api-utils/unload").send(reason, onError);
- }
-
- function makeGetModuleExports(delegate) {
- return function getModuleExports(basePath, module) {
- switch (module) {
- case "chrome":
- var chrome = { Cc: Components.classes,
- Ci: Components.interfaces,
- Cu: Components.utils,
- Cr: Components.results,
- Cm: Components.manager,
- components: Components };
- return chrome;
- default:
- return (delegate ? delegate.call(this, basePath, module) : null);
- }
- };
- }
-
- function modifyModuleSandbox(sandbox, options) {
- sandbox.evaluate(shims);
- var filename = options.filename ? options.filename : null;
- sandbox.defineProperty("__url__", filename);
- }
-
- var Loader = exports.Loader = function Loader(options) {
- var globals = {};
-
- if (options.globals)
- for (let name in options.globals)
- globals[name] = options.globals[name];
-
- if (options.console)
- globals.console = options.console;
- if (options.memory)
- globals.memory = options.memory;
-
- if ('modules' in options)
- throw new Error('options.modules is no longer supported');
-
- var getModuleExports = makeGetModuleExports(options.getModuleExports);
-
- var manifest = {};
- if ("packaging" in options)
- manifest = options.packaging.options.manifest;
- var loaderOptions = {rootPath: options.rootPath,
- rootPaths: options.rootPaths,
- metadata: options.metadata,
- uriPrefix: options.uriPrefix,
- name: options.name,
- fs: options.fs,
- defaultPrincipal: "system",
- globals: globals,
- modifyModuleSandbox: modifyModuleSandbox,
- manifest: manifest,
- getModuleExports: getModuleExports};
-
- var loader = new securableModule.Loader(loaderOptions);
-
- if (!globals.console) {
- var console = loader.require("api-utils/plain-text-console");
- globals.console = new console.PlainTextConsole(options.print);
- }
- if (!globals.memory)
- globals.memory = loader.require("api-utils/memory");
-
- loader.console = globals.console;
- loader.memory = globals.memory;
- loader.unload = unloadLoader;
-
- return loader;
- };
-
- if (global.window) {
- // We're being loaded in a chrome window, or a web page with
- // UniversalXPConnect privileges.
- global.Cuddlefish = exports;
- } else if (global.exports) {
- // We're being loaded in a SecurableModule.
- for (let name in exports) {
- global.exports[name] = exports[name];
- }
- } else {
- // We're being loaded in a JS module.
- global.EXPORTED_SYMBOLS = [];
- for (let name in exports) {
- global.EXPORTED_SYMBOLS.push(name);
- global[name] = exports[name];
- }
- }
- })(this);