aboutsummaryrefslogtreecommitdiffstats
path: root/packages/vold-utils/lib
diff options
context:
space:
mode:
authorNik Nyby <nnyby@columbia.edu>2015-10-24 11:50:56 -0400
committerNik Nyby <nnyby@columbia.edu>2015-10-24 11:50:56 -0400
commitaf0fdf2afd5b42a041d97f33170d17d6f18253af (patch)
treeb31f8c59c4ed9d05fa5eaa2f95a204a1f46787f6 /packages/vold-utils/lib
parentda101e8eb9da3808b3bd75d571e40d5c2f139d9d (diff)
parent59597067c21e52ae94340801d4bf6e3a9825c7a3 (diff)
downloadlibrejsxul-af0fdf2afd5b42a041d97f33170d17d6f18253af.tar.lz
librejsxul-af0fdf2afd5b42a041d97f33170d17d6f18253af.tar.xz
librejsxul-af0fdf2afd5b42a041d97f33170d17d6f18253af.zip
Merge pull request #5 from nikolas/jpm
jpm
Diffstat (limited to 'packages/vold-utils/lib')
-rw-r--r--packages/vold-utils/lib/array.js6
-rw-r--r--packages/vold-utils/lib/instances.js57
-rw-r--r--packages/vold-utils/lib/listen.js29
-rw-r--r--packages/vold-utils/lib/memoize.js131
-rw-r--r--packages/vold-utils/lib/net-utils.js3
-rw-r--r--packages/vold-utils/lib/services.js84
-rw-r--r--packages/vold-utils/lib/unload+.js80
-rw-r--r--packages/vold-utils/lib/window-watcher.js91
-rw-r--r--packages/vold-utils/lib/xpcom-utils.js3
9 files changed, 0 insertions, 484 deletions
diff --git a/packages/vold-utils/lib/array.js b/packages/vold-utils/lib/array.js
deleted file mode 100644
index 5ac0577..0000000
--- a/packages/vold-utils/lib/array.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-function run(array) array.forEach(function(f) f());
-exports.run = run;
-
-
diff --git a/packages/vold-utils/lib/instances.js b/packages/vold-utils/lib/instances.js
deleted file mode 100644
index a33ca40..0000000
--- a/packages/vold-utils/lib/instances.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MIT/X11 License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Contributor(s):
- * Erik Vold <erikvvold@gmail.com> (Original Author)
- *
- * ***** END LICENSE BLOCK ***** */
-
-const {Cc, Ci, Cu} = require("chrome");
-
-var Instances = exports.Instances = {
- get bis() Cc["@mozilla.org/binaryinputstream;1"]
- .createInstance(Ci.nsIBinaryInputStream),
- get ch() Cc["@mozilla.org/security/hash;1"]
- .createInstance(Ci.nsICryptoHash),
- get dp() Cc["@mozilla.org/xmlextras/domparser;1"]
- .createInstance(Ci.nsIDOMParser),
- get ds() Cc["@mozilla.org/xmlextras/xmlserializer;1"]
- .createInstance(Ci.nsIDOMSerializer),
- get fos() Cc["@mozilla.org/network/file-output-stream;1"]
- .createInstance(Ci.nsIFileOutputStream),
- get sfos() Cc["@mozilla.org/network/safe-file-output-stream;1"]
- .createInstance(Ci.nsIFileOutputStream)
- .QueryInterface(Ci.nsISafeOutputStream),
- get fp() Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker),
- get lf() Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile),
- get process() Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess),
- get se() Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError)
- .QueryInterface(Ci.nsIScriptError2),
- get ss() Cc["@mozilla.org/supports-string;1"]
- .createInstance(Ci.nsISupportsString),
- get suc() Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(Ci.nsIScriptableUnicodeConverter),
- get timer() Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer),
- get wbp() Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
- .createInstance(Ci.nsIWebBrowserPersist),
- get xhr() Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
- .createInstance(Ci.nsIXMLHttpRequest)
-};
diff --git a/packages/vold-utils/lib/listen.js b/packages/vold-utils/lib/listen.js
deleted file mode 100644
index 0b947d1..0000000
--- a/packages/vold-utils/lib/listen.js
+++ /dev/null
@@ -1,29 +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 { unload, Unload } = require("unload+");
-
-/**
- * Helper that adds event listeners and remembers to remove on unload
- */
-function listen(window, node, event, func, capture) {
- // Default to use capture
- if (capture == null)
- capture = true;
-
- node.addEventListener(event, func, capture);
- function undoListen() {
- node.removeEventListener(event, func, capture);
- }
-
- // Undo the listener on unload and provide a way to undo everything
- let undoUnload = unload(undoListen, window);
- return function() {
- undoListen();
- undoUnload();
- };
-}
-exports.listen = listen;
-
diff --git a/packages/vold-utils/lib/memoize.js b/packages/vold-utils/lib/memoize.js
deleted file mode 100644
index 73bb4fc..0000000
--- a/packages/vold-utils/lib/memoize.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MIT/X11 License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Contributor(s):
- * Nils Maier <MaierMan@web.de>
- * Erik Vold <erikvvold@gmail.com>
- *
- * ***** END LICENSE BLOCK ***** */
-
-"use strict";
-
-/**
- * Decorate a function with a memoization wrapper, with a limited-size cache
- * to reduce peak memory utilization.
- *
- * The memoized function may have any number of arguments, but they must be
- * be serializable. It's safest to use this only on functions that accept
- * primitives.
- *
- * A memoized function is not thread-safe, but so is JS, nor re-entrant-safe!
- *
- * @usage var foo = Scriptish_memoize(function foo(arg1, arg2) { ... complex operation ... });
- * @param {Function} func The function to be memoized
- * @param {Number} limit Optional. Cache size (default: 100)
- * @param {Number} num_args Options. Number of arguments the function expects (default: func.length)
- * @return {Function} Memoized function
- */
-exports.memoize = function memoize(func, limit, num_args) {
- limit = limit || 100;
- num_args = num_args || func.length;
-
- var cache = Object.create(null);
- var keylist = [];
- var args = [];
- var key, result;
-
- switch (num_args) {
- case 0:
- throw new Error("memoize does not support functions without arguments");
- case 1:
- return function memoize_one_arg(a) {
- key = a.toString();
-
- if (key in cache)
- return cache[key];
-
- result = func.call(null, a);
- cache[key] = result;
- if (keylist.push(key) > limit)
- delete cache[keylist.shift()];
- return result;
- };
- case 2:
- return function memoize_two_args(a, b) {
- args[0] = a; args[1] = b;
- key = JSON.stringify(args);
- args.length = 0;
-
- if (key in cache)
- return cache[key];
-
- var result = func.call(null, a, b);
- cache[key] = result;
- if (keylist.push(key) > limit)
- delete cache[keylist.shift()];
- return result;
- };
- case 3:
- return function memoize_three_args(a, b, c) {
- args[0] = a; args[1] = b; args[2] = c;
- key = JSON.stringify(args);
- args.length = 0;
-
- if (key in cache)
- return cache[key];
-
- var result = func.call(null, a, b, c);
- cache[key] = result;
- if (keylist.push(key) > limit)
- delete cache[keylist.shift()];
- return result;
- };
-
- case 4:
- return function memoize_four_args(a, b, c, d) {
- args[0] = a; args[1] = b; args[2] = c; args[3] = d;
- key = JSON.stringify(args);
- args.length = 0;
-
- if (key in cache)
- return cache[key];
-
- var result = func.call(null, a, b, c, d);
- cache[key] = result;
- if (keylist.push(key) > limit)
- delete cache[keylist.shift()];
- return result;
- };
-
- default:
- return function() {
- var key = JSON.stringify(arguments);
- if (key in cache)
- return cache[key];
-
- var result = func.apply(null, arguments);
- cache[key] = result;
- if (keylist.push(key) > limit)
- delete cache[keylist.shift()];
- return result;
- };
- }
-}
diff --git a/packages/vold-utils/lib/net-utils.js b/packages/vold-utils/lib/net-utils.js
deleted file mode 100644
index df7f300..0000000
--- a/packages/vold-utils/lib/net-utils.js
+++ /dev/null
@@ -1,3 +0,0 @@
-
-require("chrome").Cu.import("resource://gre/modules/NetUtil.jsm", this);
-exports.NetUtil = NetUtil;
diff --git a/packages/vold-utils/lib/services.js b/packages/vold-utils/lib/services.js
deleted file mode 100644
index 4854dfa..0000000
--- a/packages/vold-utils/lib/services.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MIT/X11 License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Contributor(s):
- * Erik Vold <erikvvold@gmail.com> (Original Author)
- *
- * ***** END LICENSE BLOCK ***** */
-
-const {Cc, Ci, Cu} = require("chrome");
-Cu.import("resource://gre/modules/Services.jsm", this);
-
-const global = this;
-var Services = exports.Services = {};
-(function(inc, tools){
- inc("resource://gre/modules/XPCOMUtils.jsm", global);
- inc("resource://gre/modules/Services.jsm", tools);
- Services.__proto__ = tools.Services;
-})(Cu.import, {});
-
-/*
-XPCOMUtils.defineLazyGetter(Services, "scriptish", function() (
- Cc["@scriptish.erikvold.com/scriptish-service;1"]
- .getService().wrappedJSObject));
-*/
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "as", "@mozilla.org/alerts-service;1", "nsIAlertsService");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "ass", "@mozilla.org/appshell/appShellService;1",
- "nsIAppShellService");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "cb", "@mozilla.org/widget/clipboardhelper;1",
- "nsIClipboardHelper");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "cs", "@mozilla.org/consoleservice;1", "nsIConsoleService");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "eps", "@mozilla.org/uriloader/external-protocol-service;1",
- "nsIExternalProtocolService");
-
-if (Cc["@mozilla.org/privatebrowsing;1"]) {
- XPCOMUtils.defineLazyServiceGetter(
- Services, "pbs", "@mozilla.org/privatebrowsing;1",
- "nsIPrivateBrowsingService");
-} else {
- Services.pbs = {privateBrowsingEnabled: false};
-}
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "sis", "@mozilla.org/scriptableinputstream;1",
- "nsIScriptableInputStream");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "suhtml", "@mozilla.org/feed-unescapehtml;1",
- "nsIScriptableUnescapeHTML");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "tld", "@mozilla.org/network/effective-tld-service;1",
- "nsIEffectiveTLDService");
-
-XPCOMUtils.defineLazyServiceGetter(
- Services, "uuid", "@mozilla.org/uuid-generator;1",
- "nsIUUIDGenerator");
diff --git a/packages/vold-utils/lib/unload+.js b/packages/vold-utils/lib/unload+.js
deleted file mode 100644
index 285fd46..0000000
--- a/packages/vold-utils/lib/unload+.js
+++ /dev/null
@@ -1,80 +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("sdk/core/heritage");
-const unloadNS = require("sdk/core/namespace").ns();
-
-var Unloader = exports.Unloader = Class({
- initialize: function Unloader() {
- let unloaders = unloadNS(this).unloaders = [];
-
- let unloadersUnlaod = unloadNS(this).unloadersUnlaod = function() {
- unloaders.slice().forEach(function(u) u());
- unloaders.length = 0;
- }
-
- require("sdk/system/unload").when(unloadersUnlaod);
- },
- unload: function unload(callback, container) {
- // Calling with no arguments runs all the unloader callbacks
- if (callback == null) {
- unloadNS(this).unloadersUnlaod();
- return null;
- }
-
- var remover = removeUnloader.bind(null, unloader, unloadNS(this).unloaders);
-
- // The callback is bound to the lifetime of the container if we have one
- if (container != null) {
- // Remove the unloader when the container unloads
- container.addEventListener("unload", remover, false);
-
- // Wrap the callback to additionally remove the unload listener
- let origCallback = callback;
- callback = function() {
- container.removeEventListener("unload", remover, false);
- origCallback();
- }
- }
-
- // Wrap the callback in a function that ignores failures
- function unloader() {
- try {
- callback();
- }
- catch(e) {
- console.error(e);
- }
- }
- unloadNS(this).unloaders.push(unloader);
-
- // Provide a way to remove the unloader
- return remover;
- }
-});
-
-function removeUnloader(unloader, unloaders) {
- let index = unloaders.indexOf(unloader);
- if (index != -1)
- unloaders.splice(index, 1);
-}
-
-/**
- * Save callbacks to run when unloading. Optionally scope the callback to a
- * container, e.g., window. Provide a way to run all the callbacks.
- *
- * @usage unload(): Run all callbacks and release them.
- *
- * @usage unload(callback): Add a callback to run on unload.
- * @param [function] callback: 0-parameter function to call on unload.
- * @return [function]: A 0-parameter function that undoes adding the callback.
- *
- * @usage unload(callback, container) Add a scoped callback to run on unload.
- * @param [function] callback: 0-parameter function to call on unload.
- * @param [node] container: Remove the callback when this container unloads.
- * @return [function]: A 0-parameter function that undoes adding the callback.
- */
-const gUnload = Unloader();
-exports.unload = gUnload.unload.bind(gUnload);
diff --git a/packages/vold-utils/lib/window-watcher.js b/packages/vold-utils/lib/window-watcher.js
deleted file mode 100644
index ab4f449..0000000
--- a/packages/vold-utils/lib/window-watcher.js
+++ /dev/null
@@ -1,91 +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 Twitter Address Bar Search.
- *
- * The Initial Developer of the Original Code is The Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2011
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Edward Lee <edilee@mozilla.com>
- * Erik Vold <erikvvold@gmail.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 ***** */
-
-const {Cu} = require("chrome");
-Cu.import("resource://gre/modules/Services.jsm", this);
-
-var {unload} = require("unload+");
-
-/**
- * Apply a callback to each open and new browser windows.
- *
- * @usage watchWindows(callback): Apply a callback to each browser window.
- * @param [function] callback: 1-parameter function that gets a browser window.
- */
-exports.watchWindows = function watchWindows(callback) {
- // Wrap the callback in a function that ignores failures
- function watcher(window) {
- try {
- // Now that the window has loaded, only handle browser windows
- let {documentElement} = window.document;
- if (documentElement.getAttribute("windowtype") == "navigator:browser")
- callback(window);
- }
- catch(ex) {}
- }
-
- // Wait for the window to finish loading before running the callback
- function runOnLoad(window) {
- // Listen for one load event before checking the window type
- window.addEventListener("load", function runOnce() {
- window.removeEventListener("load", runOnce, false);
- watcher(window);
- }, false);
- }
-
- // Add functionality to existing windows
- let windows = Services.wm.getEnumerator(null);
- while (windows.hasMoreElements()) {
- // Only run the watcher immediately if the window is completely loaded
- let window = windows.getNext();
- if (window.document.readyState == "complete")
- watcher(window);
- // Wait for the window to load before continuing
- else
- runOnLoad(window);
- }
-
- // Watch for new browser windows opening then wait for it to load
- function windowWatcher(subject, topic) {
- if (topic == "domwindowopened")
- runOnLoad(subject);
- }
- Services.ww.registerNotification(windowWatcher);
-
- // Make sure to stop watching for windows if we're unloading
- unload(function() Services.ww.unregisterNotification(windowWatcher));
-};
diff --git a/packages/vold-utils/lib/xpcom-utils.js b/packages/vold-utils/lib/xpcom-utils.js
deleted file mode 100644
index f453b34..0000000
--- a/packages/vold-utils/lib/xpcom-utils.js
+++ /dev/null
@@ -1,3 +0,0 @@
-
-require("chrome").Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
-exports.XPCOMUtils = XPCOMUtils;