mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 12:15:33 +00:00
Bug 1350648 - Replace defer with new Promise in devtools/client/netmonitor directory. r=tromey
--HG-- extra : rebase_source : fe5662029211450f77354b129eab86b6c14dc67b
This commit is contained in:
parent
1a3b715cfd
commit
361086ec33
@ -42,11 +42,11 @@ function* throttleTest(actuallyThrottle) {
|
||||
let client = NetMonitorController.webConsoleClient;
|
||||
|
||||
info("sending throttle request");
|
||||
let deferred = promise.defer();
|
||||
client.setPreferences(request, response => {
|
||||
deferred.resolve(response);
|
||||
yield new Promise((resolve) => {
|
||||
client.setPreferences(request, response => {
|
||||
resolve(response);
|
||||
});
|
||||
});
|
||||
yield deferred.promise;
|
||||
|
||||
let eventPromise = monitor.panelWin.once(EVENTS.RECEIVED_EVENT_TIMINGS);
|
||||
yield NetMonitorController.triggerActivity(ACTIVITY_TYPE.RELOAD.WITH_CACHE_DISABLED);
|
||||
|
@ -95,19 +95,19 @@ registerCleanupFunction(() => {
|
||||
});
|
||||
|
||||
function waitForNavigation(target) {
|
||||
let deferred = promise.defer();
|
||||
target.once("will-navigate", () => {
|
||||
target.once("navigate", () => {
|
||||
deferred.resolve();
|
||||
return new Promise((resolve) => {
|
||||
target.once("will-navigate", () => {
|
||||
target.once("navigate", () => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function reconfigureTab(target, options) {
|
||||
let deferred = promise.defer();
|
||||
target.activeTab.reconfigure(options, deferred.resolve);
|
||||
return deferred.promise;
|
||||
return new Promise((resolve) => {
|
||||
target.activeTab.reconfigure(options, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
function toggleCache(target, disabled) {
|
||||
@ -179,82 +179,82 @@ function teardown(monitor) {
|
||||
}
|
||||
|
||||
function waitForNetworkEvents(monitor, getRequests, postRequests = 0) {
|
||||
let deferred = promise.defer();
|
||||
let panel = monitor.panelWin;
|
||||
let { windowRequire } = panel;
|
||||
let { NetMonitorController } =
|
||||
windowRequire("devtools/client/netmonitor/src/netmonitor-controller");
|
||||
let progress = {};
|
||||
let genericEvents = 0;
|
||||
let postEvents = 0;
|
||||
let awaitedEventsToListeners = [
|
||||
["UPDATING_REQUEST_HEADERS", onGenericEvent],
|
||||
["RECEIVED_REQUEST_HEADERS", onGenericEvent],
|
||||
["UPDATING_REQUEST_COOKIES", onGenericEvent],
|
||||
["RECEIVED_REQUEST_COOKIES", onGenericEvent],
|
||||
["UPDATING_REQUEST_POST_DATA", onPostEvent],
|
||||
["RECEIVED_REQUEST_POST_DATA", onPostEvent],
|
||||
["UPDATING_RESPONSE_HEADERS", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_HEADERS", onGenericEvent],
|
||||
["UPDATING_RESPONSE_COOKIES", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_COOKIES", onGenericEvent],
|
||||
["STARTED_RECEIVING_RESPONSE", onGenericEvent],
|
||||
["UPDATING_RESPONSE_CONTENT", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_CONTENT", onGenericEvent],
|
||||
["UPDATING_EVENT_TIMINGS", onGenericEvent],
|
||||
["RECEIVED_EVENT_TIMINGS", onGenericEvent]
|
||||
];
|
||||
return new Promise((resolve) => {
|
||||
let panel = monitor.panelWin;
|
||||
let { windowRequire } = panel;
|
||||
let { NetMonitorController } =
|
||||
windowRequire("devtools/client/netmonitor/src/netmonitor-controller");
|
||||
let progress = {};
|
||||
let genericEvents = 0;
|
||||
let postEvents = 0;
|
||||
let awaitedEventsToListeners = [
|
||||
["UPDATING_REQUEST_HEADERS", onGenericEvent],
|
||||
["RECEIVED_REQUEST_HEADERS", onGenericEvent],
|
||||
["UPDATING_REQUEST_COOKIES", onGenericEvent],
|
||||
["RECEIVED_REQUEST_COOKIES", onGenericEvent],
|
||||
["UPDATING_REQUEST_POST_DATA", onPostEvent],
|
||||
["RECEIVED_REQUEST_POST_DATA", onPostEvent],
|
||||
["UPDATING_RESPONSE_HEADERS", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_HEADERS", onGenericEvent],
|
||||
["UPDATING_RESPONSE_COOKIES", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_COOKIES", onGenericEvent],
|
||||
["STARTED_RECEIVING_RESPONSE", onGenericEvent],
|
||||
["UPDATING_RESPONSE_CONTENT", onGenericEvent],
|
||||
["RECEIVED_RESPONSE_CONTENT", onGenericEvent],
|
||||
["UPDATING_EVENT_TIMINGS", onGenericEvent],
|
||||
["RECEIVED_EVENT_TIMINGS", onGenericEvent]
|
||||
];
|
||||
|
||||
function initProgressForURL(url) {
|
||||
if (progress[url]) {
|
||||
return;
|
||||
function initProgressForURL(url) {
|
||||
if (progress[url]) {
|
||||
return;
|
||||
}
|
||||
progress[url] = {};
|
||||
awaitedEventsToListeners.forEach(function ([e]) {
|
||||
progress[url][e] = 0;
|
||||
});
|
||||
}
|
||||
progress[url] = {};
|
||||
awaitedEventsToListeners.forEach(function ([e]) {
|
||||
progress[url][e] = 0;
|
||||
});
|
||||
}
|
||||
|
||||
function updateProgressForURL(url, event) {
|
||||
initProgressForURL(url);
|
||||
progress[url][Object.keys(EVENTS).find(e => EVENTS[e] == event)] = 1;
|
||||
}
|
||||
|
||||
function onGenericEvent(event, actor) {
|
||||
genericEvents++;
|
||||
maybeResolve(event, actor);
|
||||
}
|
||||
|
||||
function onPostEvent(event, actor) {
|
||||
postEvents++;
|
||||
maybeResolve(event, actor);
|
||||
}
|
||||
|
||||
function maybeResolve(event, actor) {
|
||||
info("> Network events progress: " +
|
||||
genericEvents + "/" + ((getRequests + postRequests) * 13) + ", " +
|
||||
postEvents + "/" + (postRequests * 2) + ", " +
|
||||
"got " + event + " for " + actor);
|
||||
|
||||
let networkInfo = NetMonitorController.webConsoleClient.getNetworkRequest(actor);
|
||||
let url = networkInfo.request.url;
|
||||
updateProgressForURL(url, event);
|
||||
|
||||
// Uncomment this to get a detailed progress logging (when debugging a test)
|
||||
// info("> Current state: " + JSON.stringify(progress, null, 2));
|
||||
|
||||
// There are 15 updates which need to be fired for a request to be
|
||||
// considered finished. The "requestPostData" packet isn't fired for
|
||||
// non-POST requests.
|
||||
if (genericEvents >= (getRequests + postRequests) * 13 &&
|
||||
postEvents >= postRequests * 2) {
|
||||
awaitedEventsToListeners.forEach(([e, l]) => panel.off(EVENTS[e], l));
|
||||
executeSoon(deferred.resolve);
|
||||
function updateProgressForURL(url, event) {
|
||||
initProgressForURL(url);
|
||||
progress[url][Object.keys(EVENTS).find(e => EVENTS[e] == event)] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
awaitedEventsToListeners.forEach(([e, l]) => panel.on(EVENTS[e], l));
|
||||
return deferred.promise;
|
||||
function onGenericEvent(event, actor) {
|
||||
genericEvents++;
|
||||
maybeResolve(event, actor);
|
||||
}
|
||||
|
||||
function onPostEvent(event, actor) {
|
||||
postEvents++;
|
||||
maybeResolve(event, actor);
|
||||
}
|
||||
|
||||
function maybeResolve(event, actor) {
|
||||
info("> Network events progress: " +
|
||||
genericEvents + "/" + ((getRequests + postRequests) * 13) + ", " +
|
||||
postEvents + "/" + (postRequests * 2) + ", " +
|
||||
"got " + event + " for " + actor);
|
||||
|
||||
let networkInfo = NetMonitorController.webConsoleClient.getNetworkRequest(actor);
|
||||
let url = networkInfo.request.url;
|
||||
updateProgressForURL(url, event);
|
||||
|
||||
// Uncomment this to get a detailed progress logging (when debugging a test)
|
||||
// info("> Current state: " + JSON.stringify(progress, null, 2));
|
||||
|
||||
// There are 15 updates which need to be fired for a request to be
|
||||
// considered finished. The "requestPostData" packet isn't fired for
|
||||
// non-POST requests.
|
||||
if (genericEvents >= (getRequests + postRequests) * 13 &&
|
||||
postEvents >= postRequests * 2) {
|
||||
awaitedEventsToListeners.forEach(([e, l]) => panel.off(EVENTS[e], l));
|
||||
executeSoon(resolve);
|
||||
}
|
||||
}
|
||||
|
||||
awaitedEventsToListeners.forEach(([e, l]) => panel.on(EVENTS[e], l));
|
||||
});
|
||||
}
|
||||
|
||||
function verifyRequestItemTarget(document, requestList, requestItem, method,
|
||||
@ -385,9 +385,9 @@ function verifyRequestItemTarget(document, requestList, requestItem, method,
|
||||
* Returns a promise that resolves upon firing of the event.
|
||||
*/
|
||||
function waitFor(subject, eventName) {
|
||||
let deferred = promise.defer();
|
||||
subject.once(eventName, deferred.resolve);
|
||||
return deferred.promise;
|
||||
return new Promise((resolve) => {
|
||||
subject.once(eventName, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -500,10 +500,10 @@ function executeInContent(name, data = {}, objects = {}, expectResponse = true)
|
||||
function waitForContentMessage(name) {
|
||||
let mm = gBrowser.selectedBrowser.messageManager;
|
||||
|
||||
let def = promise.defer();
|
||||
mm.addMessageListener(name, function onMessage(msg) {
|
||||
mm.removeMessageListener(name, onMessage);
|
||||
def.resolve(msg);
|
||||
return new Promise((resolve) => {
|
||||
mm.addMessageListener(name, function onMessage(msg) {
|
||||
mm.removeMessageListener(name, onMessage);
|
||||
resolve(msg);
|
||||
});
|
||||
});
|
||||
return def.promise;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user