@@ -17,6 +17,15 @@ function createWindow() {
1717 minWidth : 500 ,
1818 } )
1919
20+
21+ electron . protocol . registerFileProtocol ( 'filestub' , ( request , callback ) => {
22+ const url = request . url . substr ( 10 )
23+ const file = { path : path . normalize ( `${ path . join ( __dirname , '..' ) } /${ url } ` ) }
24+
25+ callback ( file )
26+ } )
27+
28+
2029 const devtoolBackend = DevtoolBackend . create ( {
2130 onRelaunch ( ) {
2231 app . relaunch ( )
@@ -86,6 +95,7 @@ function createWindow() {
8695 . connect ( port )
8796 . then ( ( ) => resolve ( port ) )
8897 . catch ( ( ) => {
98+
8999 mainWindow . loadURL (
90100 'data:text/html;charset=UTF-8,' +
91101 encodeURIComponent (
@@ -94,7 +104,10 @@ function createWindow() {
94104 onPortSubmit ,
95105 onRestart
96106 )
97- )
107+ ) ,
108+ {
109+ baseURLForDataURL : `file://${ path . resolve ( ) } /devtoolsDist/` ,
110+ }
98111 )
99112 } )
100113 } )
@@ -159,6 +172,24 @@ function createWindow() {
159172 )
160173
161174 startDevtoolBackend ( ) . then ( openDevtools )
175+
176+ /*
177+ BUG FIX: https://github.com/electron/electron/issues/13008#issuecomment-575909942
178+ */
179+
180+ let redirectURL = 'data:application/x-javascript;base64,UHJvZHVjdFJlZ2lzdHJ5SW1wbC5SZWdpc3RyeT1jbGFzc3tjb25zdHJ1Y3Rvcigpe31uYW1lRm9yVXJsKHIpe3JldHVybiBudWxsfWVudHJ5Rm9yVXJsKHIpe3JldHVybiBudWxsfXR5cGVGb3JVcmwocil7cmV0dXJuIG51bGx9fSxQcm9kdWN0UmVnaXN0cnlJbXBsLl9oYXNoRm9yRG9tYWluPWZ1bmN0aW9uKHIpe3JldHVybiIifSxQcm9kdWN0UmVnaXN0cnlJbXBsLnJlZ2lzdGVyPWZ1bmN0aW9uKHIsdCl7UHJvZHVjdFJlZ2lzdHJ5SW1wbC5fcHJvZHVjdHNCeURvbWFpbkhhc2g9bmV3IE1hcH0sUHJvZHVjdFJlZ2lzdHJ5SW1wbC5fcHJvZHVjdHNCeURvbWFpbkhhc2g9bmV3IE1hcCxQcm9kdWN0UmVnaXN0cnlJbXBsLnJlZ2lzdGVyKFtdLFtdKSxQcm9kdWN0UmVnaXN0cnlJbXBsLnNoYTE9ZnVuY3Rpb24ocil7cmV0dXJuIiJ9Ow==' ;
181+ electron . session . defaultSession . webRequest . onBeforeRequest ( ( details , callback ) => {
182+ if ( ( / ^ d e v t o o l s : \/ \/ d e v t o o l s \/ r e m o t e \/ s e r v e _ f i l e \/ @ [ 0 - 9 a - f ] { 40 } \/ p r o d u c t _ r e g i s t r y _ i m p l \/ p r o d u c t _ r e g i s t r y _ i m p l _ m o d u l e .j s $ / ui) . test ( details . url ) ) {
183+ // eslint-disable-next-line
184+ callback ( {
185+ redirectURL
186+ } ) ;
187+ return ;
188+ }
189+ // eslint-disable-next-line
190+ callback ( { } ) ;
191+ } ) ;
192+
162193}
163194
164195// This method will be called when Electron has finished
0 commit comments