File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed
Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -259,6 +259,13 @@ export async function ensureChromeExtensionRelayServer(opts: {
259259 rejectInit = reject ;
260260 } ) ;
261261 relayInitByPort . set ( info . port , initPromise ) ;
262+ const settleInit = async ( ) : Promise < ChromeExtensionRelayServer > => {
263+ try {
264+ return await initPromise ;
265+ } finally {
266+ relayInitByPort . delete ( info . port ) ;
267+ }
268+ } ;
262269
263270 let extensionWs : WebSocket | null = null ;
264271 const cdpClients = new Set < WebSocket > ( ) ;
@@ -797,13 +804,11 @@ export async function ensureChromeExtensionRelayServer(opts: {
797804 } ,
798805 } ;
799806 serversByPort . set ( info . port , existingRelay ) ;
800- relayInitByPort . delete ( info . port ) ;
801807 resolveInit ( existingRelay ) ;
802- return existingRelay ;
808+ return await settleInit ( ) ;
803809 }
804- relayInitByPort . delete ( info . port ) ;
805810 rejectInit ( err ) ;
806- throw err ;
811+ return await settleInit ( ) ;
807812 }
808813
809814 const addr = server . address ( ) as AddressInfo | null ;
@@ -840,9 +845,8 @@ export async function ensureChromeExtensionRelayServer(opts: {
840845 } ;
841846
842847 serversByPort . set ( port , relay ) ;
843- relayInitByPort . delete ( info . port ) ;
844848 resolveInit ( relay ) ;
845- return relay ;
849+ return await settleInit ( ) ;
846850}
847851
848852export async function stopChromeExtensionRelayServer ( opts : { cdpUrl : string } ) : Promise < boolean > {
You can’t perform that action at this time.
0 commit comments