mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
66
devtools/client/webconsole/net/data-provider.js
Normal file
66
devtools/client/webconsole/net/data-provider.js
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/* 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 promise = require("promise");
|
||||
|
||||
/**
|
||||
* Map of pending requests. Used mainly by tests to wait
|
||||
* till things are ready.
|
||||
*/
|
||||
var promises = new Map();
|
||||
|
||||
/**
|
||||
* This object is used to fetch network data from the backend.
|
||||
* Communication with the chrome scope is based on message
|
||||
* exchange.
|
||||
*/
|
||||
var DataProvider = {
|
||||
hasPendingRequests: function () {
|
||||
return promises.size > 0;
|
||||
},
|
||||
|
||||
requestData: function (client, actor, method) {
|
||||
let key = actor + ":" + method;
|
||||
let p = promises.get(key);
|
||||
if (p) {
|
||||
return p;
|
||||
}
|
||||
|
||||
let deferred = promise.defer();
|
||||
let realMethodName = "get" + method.charAt(0).toUpperCase() +
|
||||
method.slice(1);
|
||||
|
||||
if (!client[realMethodName]) {
|
||||
return null;
|
||||
}
|
||||
|
||||
client[realMethodName](actor, response => {
|
||||
promises.delete(key);
|
||||
deferred.resolve(response);
|
||||
});
|
||||
|
||||
promises.set(key, deferred.promise);
|
||||
return deferred.promise;
|
||||
},
|
||||
|
||||
resolveString: function (client, stringGrip) {
|
||||
let key = stringGrip.actor + ":getString";
|
||||
let p = promises.get(key);
|
||||
if (p) {
|
||||
return p;
|
||||
}
|
||||
|
||||
p = client.getString(stringGrip).then(result => {
|
||||
promises.delete(key);
|
||||
return result;
|
||||
});
|
||||
|
||||
promises.set(key, p);
|
||||
return p;
|
||||
},
|
||||
};
|
||||
|
||||
// Exports from this module
|
||||
module.exports = DataProvider;
|
||||
Loading…
Add table
Add a link
Reference in a new issue