@@ -208,7 +208,7 @@ ngApp
208208 autoResumeInspectBrk ( socket ) {
209209 let parsedData = { } ;
210210
211- socket . ws . onmessage = event => {
211+ socket . ws . addEventListener ( 'message' , event => {
212212 let parsed = JSON . parse ( event . data ) ;
213213 switch ( parsed . method ) {
214214 case 'Debugger.paused' :
@@ -225,7 +225,7 @@ ngApp
225225 break ;
226226 }
227227 if ( $scope . settings . debugVerbosity >= 1 ) console . log ( event ) ;
228- }
228+ } ) ;
229229 return new Promise ( resolve => {
230230 socket . ws . onopen = event => {
231231 if ( $scope . settings . debugVerbosity >= 1 ) console . log ( event ) ;
@@ -237,23 +237,22 @@ ngApp
237237 } ) ;
238238 }
239239 focusOnBreakpoint ( socket ) {
240- socket . ws . onmessage = event => {
241- let parsed = JSON . parse ( event . data ) ,
242- ws ,
243- id ;
240+ socket . ws . addEventListener ( 'message' , event => {
241+ let parsed = JSON . parse ( event . data ) ;
244242 switch ( parsed . method ) {
245243 case 'Debugger.paused' :
246- ws = event . currentTarget . url . split ( 'ws://' ) [ 1 ] ;
247- id = $scope . devToolsSessions . find ( session => session . url . includes ( ws ) ) . id ;
248- chrome . tabs . update ( id , { active : true } , tab => {
244+ var ws = event . currentTarget . url . split ( 'ws://' ) [ 1 ] ;
245+ var session = $scope . devToolsSessions . find ( session => session . url . includes ( ws ) ) ;
246+ if ( session === undefined ) return ;
247+ chrome . tabs . update ( session . id , { active : true } , tab => {
249248 chrome . windows . update ( tab . windowId , { focused : true } , window => {
250249 if ( $scope . settings . debugVerbosity >= 4 ) console . log ( `focusOnBreakpoint(): window: ${ window . id } tab: ${ tab . id } ` ) ;
251250 } ) ;
252251 } ) ;
253252 break ;
254253 }
255254 if ( $scope . settings . debugVerbosity >= 1 ) console . log ( event ) ;
256- }
255+ } ) ;
257256 }
258257 }
259258 class PubSub {
@@ -1632,13 +1631,13 @@ ngApp
16321631 }
16331632 function resolveTabPromise ( tab ) {
16341633 var tabsPromise = promisesToUpdateTabsOrWindows . find ( function ( tabPromise ) {
1635- if ( tab . id === tabPromise . tab . id ) return true ;
1634+ if ( tab && tabPromise . tab && tab . id === tabPromise . tab . id ) return true ;
16361635 } ) ;
16371636 if ( tabsPromise !== undefined ) tabsPromise . promise . resolve ( ) ;
16381637 }
16391638 function addPromiseToUpdateTabOrWindow ( tab , promise ) {
16401639 var found = promisesToUpdateTabsOrWindows . find ( function ( tabToUpdate , index , array ) {
1641- if ( tabToUpdate . tab . id === tab . id ) {
1640+ if ( tabToUpdate . tab && tab && tabToUpdate . tab . id === tab . id ) {
16421641 array [ index ] = { tab : tab , promise : promise } ;
16431642 return true ;
16441643 }
@@ -2075,7 +2074,8 @@ ngApp
20752074 // Why am I not calling deleteSession() here?
20762075 $scope . devToolsSessions . splice ( $scope . devToolsSessions . findIndex ( function ( devToolsSession ) {
20772076 if ( devToolsSession . id === tabId ) {
2078- $scope . devToolsProtocolClient . closeSocket ( devToolsSession . dtpSocket ) ;
2077+ // Tab removal doesn't mean that the debugging session is dead. So the socket should not be closed.
2078+ //$scope.devToolsProtocolClient.closeSocket(devToolsSession.dtpSocket);
20792079 unlock ( hostPortHashmap ( tabId ) ) ;
20802080 return true ;
20812081 }
0 commit comments