mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Bug 917583 - part 2: request definitionSite before adding listeners to the view; r=vporof
This commit is contained in:
parent
9379e40d2e
commit
b02656d66f
@ -1398,12 +1398,36 @@ EventListeners.prototype = {
|
|||||||
*/
|
*/
|
||||||
scheduleEventListenersFetch: function() {
|
scheduleEventListenersFetch: function() {
|
||||||
let getListeners = aCallback => gThreadClient.eventListeners(aResponse => {
|
let getListeners = aCallback => gThreadClient.eventListeners(aResponse => {
|
||||||
this._onEventListeners(aResponse);
|
if (aResponse.error) {
|
||||||
|
let msg = "Error getting event listeners: " + aResponse.message;
|
||||||
|
DevToolsUtils.reportException("scheduleEventListenersFetch", msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Notify that event listeners were fetched and shown in the view,
|
promise.all(aResponse.listeners.map(listener => {
|
||||||
// and callback to resume the active thread if necessary.
|
const deferred = promise.defer();
|
||||||
window.emit(EVENTS.EVENT_LISTENERS_FETCHED);
|
|
||||||
aCallback && aCallback();
|
gThreadClient.pauseGrip(listener.function).getDefinitionSite(aResponse => {
|
||||||
|
if (aResponse.error) {
|
||||||
|
const msg = "Error getting function definition site: " + aResponse.message;
|
||||||
|
DevToolsUtils.reportException("scheduleEventListenersFetch", msg);
|
||||||
|
deferred.reject(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
listener.function.url = aResponse.url;
|
||||||
|
deferred.resolve(listener);
|
||||||
|
});
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
|
})).then(listeners => {
|
||||||
|
this._onEventListeners(listeners);
|
||||||
|
|
||||||
|
// Notify that event listeners were fetched and shown in the view,
|
||||||
|
// and callback to resume the active thread if necessary.
|
||||||
|
window.emit(EVENTS.EVENT_LISTENERS_FETCHED);
|
||||||
|
aCallback && aCallback();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Make sure we're not sending a batch of closely repeated requests.
|
// Make sure we're not sending a batch of closely repeated requests.
|
||||||
@ -1418,18 +1442,11 @@ EventListeners.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback for the debugger's active thread eventListeners() method.
|
* Callback for a debugger's successful active thread eventListeners() call.
|
||||||
*/
|
*/
|
||||||
_onEventListeners: function(aResponse) {
|
_onEventListeners: function(aListeners) {
|
||||||
if (aResponse.error) {
|
|
||||||
let msg = "Error getting event listeners: " + aResponse.message;
|
|
||||||
Cu.reportError(msg);
|
|
||||||
dumpn(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add all the listeners in the debugger view event linsteners container.
|
// Add all the listeners in the debugger view event linsteners container.
|
||||||
for (let listener of aResponse.listeners) {
|
for (let listener of aListeners) {
|
||||||
DebuggerView.EventListeners.addListener(listener, { staged: true });
|
DebuggerView.EventListeners.addListener(listener, { staged: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user