@@ -44,25 +44,28 @@ const operationCountLimit = parseInt(query.operationCountLimit, 10);
44
44
const averageTracker = new AverageTracker ( { limit : operationCountLimit } ) ;
45
45
const childPidsById = new Map ( ) ;
46
46
47
+ const cleanUp = ( ) => {
48
+ managerWebContents . removeListener ( 'crashed' , destroyRenderer ) ;
49
+ managerWebContents . removeListener ( 'destroyed' , destroyRenderer ) ;
50
+ window . removeEventListener ( 'beforeunload' , cleanUp )
51
+ } ;
52
+
47
53
const destroyRenderer = ( ) => {
48
54
if ( ! managerWebContents . isDestroyed ( ) ) {
49
- managerWebContents . removeListener ( 'crashed' , destroyRenderer ) ;
50
- managerWebContents . removeListener ( 'destroyed' , destroyRenderer ) ;
55
+ cleanUp ( )
51
56
}
52
57
const win = remote . BrowserWindow . fromWebContents ( remote . getCurrentWebContents ( ) ) ;
53
58
if ( win && ! win . isDestroyed ( ) ) {
54
59
win . destroy ( ) ;
55
60
}
56
61
} ;
62
+
57
63
const managerWebContentsId = parseInt ( query . managerWebContentsId , 10 ) ;
58
64
const managerWebContents = remote . webContents . fromId ( managerWebContentsId ) ;
59
65
if ( managerWebContents && ! managerWebContents . isDestroyed ( ) ) {
60
66
managerWebContents . on ( 'crashed' , destroyRenderer ) ;
61
67
managerWebContents . on ( 'destroyed' , destroyRenderer ) ;
62
- window . onbeforeunload = ( ) => {
63
- managerWebContents . removeListener ( 'crashed' , destroyRenderer ) ;
64
- managerWebContents . removeListener ( 'destroyed' , destroyRenderer ) ;
65
- } ;
68
+ window . addEventListener ( 'beforeunload' , cleanup ) ;
66
69
}
67
70
68
71
const channelName = query . channelName ;
0 commit comments