Skip to content

Commit 8379fa2

Browse files
author
Ian Wehrman
committed
Modify connectToURL so that the promise it returns is not resolved until the socket it creates is completely open.
1 parent e9fd9e0 commit 8379fa2

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

src/LiveDevelopment/Inspector/Inspector.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,19 @@ define(function Inspector(require, exports, module) {
151151

152152
/** WebSocket reported an error */
153153
function _onError(error) {
154+
if (_connectDeferred) {
155+
_connectDeferred.reject();
156+
_connectDeferred = null;
157+
}
154158
$exports.triggerHandler("error", [error]);
155159
}
156160

157161
/** WebSocket did open */
158162
function _onConnect() {
163+
if (_connectDeferred) {
164+
_connectDeferred.resolve();
165+
_connectDeferred = null;
166+
}
159167
$exports.triggerHandler("connect");
160168
}
161169

@@ -266,15 +274,12 @@ define(function Inspector(require, exports, module) {
266274
_connectDeferred = deferred;
267275
var promise = getDebuggableWindows();
268276
promise.done(function onGetAvailableSockets(response) {
269-
if (deferred.isRejected()) {
270-
return;
271-
}
272277
var i, page;
273278
for (i in response) {
274279
page = response[i];
275280
if (page.webSocketDebuggerUrl && page.url.indexOf(url) === 0) {
276281
connect(page.webSocketDebuggerUrl);
277-
deferred.resolve();
282+
// _connectDeferred may be resolved by onConnect or rejected by onError
278283
return;
279284
}
280285
}

0 commit comments

Comments
 (0)