@@ -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
@@ -186,11 +194,11 @@ define(function Inspector(require, exports, module) {
186194
187195 /** Public Functions *****************************************************/
188196
189- /** Get the available debugger sockets from the remote debugger
197+ /** Get a list of the available windows/tabs/extensions that are remote-debuggable
190198 * @param {string } host IP or name
191199 * @param {integer } debugger port
192200 */
193- function getAvailableSockets ( host , port ) {
201+ function getDebuggableWindows ( host , port ) {
194202 if ( ! host ) {
195203 host = "127.0.0.1" ;
196204 }
@@ -264,17 +272,14 @@ define(function Inspector(require, exports, module) {
264272 }
265273 var deferred = new $ . Deferred ( ) ;
266274 _connectDeferred = deferred ;
267- var promise = getAvailableSockets ( ) ;
275+ 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 }
@@ -288,7 +293,7 @@ define(function Inspector(require, exports, module) {
288293
289294 /** Check if the inspector is connected */
290295 function connected ( ) {
291- return _socket !== undefined ;
296+ return _socket !== undefined && _socket . readyState === WebSocket . OPEN ;
292297 }
293298
294299 /** Initialize the Inspector
@@ -297,25 +302,23 @@ define(function Inspector(require, exports, module) {
297302 */
298303 function init ( theConfig ) {
299304 exports . config = theConfig ;
300- var request = new XMLHttpRequest ( ) ;
301- request . open ( "GET" , "LiveDevelopment/Inspector/Inspector.json" ) ;
302- request . onload = function onLoad ( ) {
303- var InspectorJSON = JSON . parse ( request . response ) ;
304- var i , j , domain , domainDef , command ;
305- for ( i in InspectorJSON . domains ) {
306- domain = InspectorJSON . domains [ i ] ;
307- exports [ domain . domain ] = { } ;
308- for ( j in domain . commands ) {
309- command = domain . commands [ j ] ;
310- exports [ domain . domain ] [ command . name ] = _send . bind ( undefined , domain . domain + "." + command . name , command . parameters ) ;
311- }
305+
306+ var InspectorText = require ( "text!LiveDevelopment/Inspector/Inspector.json" ) ,
307+ InspectorJSON = JSON . parse ( InspectorText ) ;
308+
309+ var i , j , domain , domainDef , command ;
310+ for ( i in InspectorJSON . domains ) {
311+ domain = InspectorJSON . domains [ i ] ;
312+ exports [ domain . domain ] = { } ;
313+ for ( j in domain . commands ) {
314+ command = domain . commands [ j ] ;
315+ exports [ domain . domain ] [ command . name ] = _send . bind ( undefined , domain . domain + "." + command . name , command . parameters ) ;
312316 }
313- } ;
314- request . send ( null ) ;
317+ }
315318 }
316319
317320 // Export public functions
318- exports . getAvailableSockets = getAvailableSockets ;
321+ exports . getDebuggableWindows = getDebuggableWindows ;
319322 exports . on = on ;
320323 exports . off = off ;
321324 exports . disconnect = disconnect ;
0 commit comments