@@ -60,10 +60,14 @@ const runtimeSendMessage = (typeof browser !== 'undefined' ?
6060 browser . runtime . sendMessage :
6161 ( msg ) => new Promise ( suc => chrome . runtime . sendMessage ( msg , suc ) ) ) ;
6262
63- function state_or_masterkey_get ( use_pass_store ) {
64- return runtimeSendMessage ( { action : 'masterkey_get' ,
65- use_pass_store} )
66- . catch ( err => { console . log ( "BUG!" , err ) ; } ) ;
63+ async function state_or_masterkey_get ( use_pass_store ) {
64+ let res = await runtimeSendMessage ( { action : 'masterkey_get' , use_pass_store} ) ;
65+ if ( res === undefined || chrome . runtime . lastError ) {
66+ console . error ( "runtimeSendMessage failed" , chrome . runtime . lastError . message ) ;
67+ ui . user_warn ( "BUG! Failed backend communication" ) ;
68+ return { } ;
69+ }
70+ return res ;
6771}
6872
6973function masterkey_set ( masterkey , nosave ) {
@@ -370,6 +374,7 @@ async function windowOnLoad() {
370374 sitestore = new SiteStore ( config . use_sync ? chrome . storage . sync : chrome . storage . local ) ;
371375 await psl . waitTableReady ( ) ;
372376
377+ ui . clear_warning ( ) ;
373378 let data = { } ;
374379 if ( v . passwdtimeout != 0 || v . pass_store ) {
375380 data = await state_or_masterkey_get ( v . pass_store ) ;
@@ -381,12 +386,11 @@ async function windowOnLoad() {
381386 e . target = "_blank" ;
382387 e . textContent = "Help?" ;
383388 data . masterkey = undefined ;
384- } else {
385- ui . clear_warning ( ) ;
386389 }
387390
388391 if ( ! data . mpwstate && ! ( data . masterkey && config . username ) )
389392 data = await getUserNameAndPassFromUser ( ) ;
393+ ui . clear_warning ( ) ;
390394
391395 setTimeout ( ( ) => { resolve_mpw ( data ) ; } , 1 ) ; // do later so page paints as fast as possible
392396
0 commit comments