diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-06-28 15:01:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-28 15:01:10 +0200 |
commit | c49f527e9d759505e52744c1ae7c1ddfe19fdf74 (patch) | |
tree | 2ecb9d0fba5d6c27b50087e5e36644ae466672ab /application | |
parent | da4fa3b52fea6258f56ed73d9132fcf04ce81fba (diff) | |
parent | f4205ffd8dd2ce754075d56e32c9ed5e28364ab2 (diff) | |
download | UXP-c49f527e9d759505e52744c1ae7c1ddfe19fdf74.tar UXP-c49f527e9d759505e52744c1ae7c1ddfe19fdf74.tar.gz UXP-c49f527e9d759505e52744c1ae7c1ddfe19fdf74.tar.lz UXP-c49f527e9d759505e52744c1ae7c1ddfe19fdf74.tar.xz UXP-c49f527e9d759505e52744c1ae7c1ddfe19fdf74.zip |
Merge pull request #556 from JustOff/PR_sanitize_promises
[PALEMOON] Use Promises.jsm instead of promise.js from jetpack in sanitize.js
Diffstat (limited to 'application')
-rw-r--r-- | application/palemoon/base/content/sanitize.js | 2 | ||||
-rw-r--r-- | application/palemoon/modules/moz.build | 3 | ||||
-rw-r--r-- | application/palemoon/modules/promise.js | 118 |
3 files changed, 1 insertions, 122 deletions
diff --git a/application/palemoon/base/content/sanitize.js b/application/palemoon/base/content/sanitize.js index 74372a4af..0c85fa215 100644 --- a/application/palemoon/base/content/sanitize.js +++ b/application/palemoon/base/content/sanitize.js @@ -11,7 +11,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "FormHistory", XPCOMUtils.defineLazyModuleGetter(this, "Downloads", "resource://gre/modules/Downloads.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Promise", - "resource:///modules/promise.js"); + "resource://gre/modules/Promise.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "console", diff --git a/application/palemoon/modules/moz.build b/application/palemoon/modules/moz.build index 67fd22338..8032930b2 100644 --- a/application/palemoon/modules/moz.build +++ b/application/palemoon/modules/moz.build @@ -5,9 +5,6 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. -# XXX: Include this until we convert browser/ to use toolkit promises directly -EXTRA_JS_MODULES += [ 'promise.js' ] - EXTRA_JS_MODULES += [ 'AutoCompletePopup.jsm', 'BrowserNewTabPreloader.jsm', diff --git a/application/palemoon/modules/promise.js b/application/palemoon/modules/promise.js deleted file mode 100644 index 74065c8db..000000000 --- a/application/palemoon/modules/promise.js +++ /dev/null @@ -1,118 +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'; - -/* - * Uses `Promise.jsm` as a core implementation, with additional sugar - * from previous implementation, with inspiration from `Q` and `when` - * - * https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm - * https://github.com/cujojs/when - * https://github.com/kriskowal/q - */ -const PROMISE_URI = 'resource://gre/modules/Promise.jsm'; - -getEnvironment.call(this, function ({ require, exports, module, Cu }) { - -const Promise = Cu.import(PROMISE_URI, {}).Promise; -const { Debugging, defer, resolve, all, reject, race } = Promise; - -module.metadata = { - 'stability': 'unstable' -}; - -var promised = (function() { - // Note: Define shortcuts and utility functions here in order to avoid - // slower property accesses and unnecessary closure creations on each - // call of this popular function. - - var call = Function.call; - var concat = Array.prototype.concat; - - // Utility function that does following: - // execute([ f, self, args...]) => f.apply(self, args) - function execute (args) call.apply(call, args) - - // Utility function that takes promise of `a` array and maybe promise `b` - // as arguments and returns promise for `a.concat(b)`. - function promisedConcat(promises, unknown) { - return promises.then(function (values) { - return resolve(unknown) - .then(function (value) values.concat([value])); - }); - } - - return function promised(f, prototype) { - /** - Returns a wrapped `f`, which when called returns a promise that resolves to - `f(...)` passing all the given arguments to it, which by the way may be - promises. Optionally second `prototype` argument may be provided to be used - a prototype for a returned promise. - - ## Example - - var promise = promised(Array)(1, promise(2), promise(3)) - promise.then(console.log) // => [ 1, 2, 3 ] - **/ - - return function promised(...args) { - // create array of [ f, this, args... ] - return [f, this, ...args]. - // reduce it via `promisedConcat` to get promised array of fulfillments - reduce(promisedConcat, resolve([], prototype)). - // finally map that to promise of `f.apply(this, args...)` - then(execute); - }; - }; -})(); - -exports.promised = promised; -exports.all = all; -exports.defer = defer; -exports.resolve = resolve; -exports.reject = reject; -exports.race = race; -exports.Promise = Promise; -exports.Debugging = Debugging; -}); - -function getEnvironment (callback) { - let Cu, _exports, _module, _require; - - // CommonJS / SDK - if (typeof(require) === 'function') { - Cu = require('chrome').Cu; - _exports = exports; - _module = module; - _require = require; - } - // JSM - else if (String(this).indexOf('BackstagePass') >= 0) { - Cu = this['Components'].utils; - _exports = this.Promise = {}; - _module = { uri: __URI__, id: 'promise/core' }; - _require = uri => { - let imports = {}; - Cu.import(uri, imports); - return imports; - }; - this.EXPORTED_SYMBOLS = ['Promise']; - // mozIJSSubScriptLoader.loadSubscript - } else if (~String(this).indexOf('Sandbox')) { - Cu = this['Components'].utils; - _exports = this; - _module = { id: 'promise/core' }; - _require = uri => {}; - } - - callback({ - Cu: Cu, - exports: _exports, - module: _module, - require: _require - }); -} - |