import Ġextension Types . Inject Details Ċ import Ġorg . w 3 c . dom . Audio Ċ import Ġorg . w 3 c . dom . Audio Track Ċ import Ġweb extensions . browser Ċ import Ġkotlin . browser . document Ċ import Ġkotlin . js . Promise Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ("> > Ġpopup Ġ 6 Ġmain ") ĊĊĠĠĠ ĠPromise . all ( array Of ( ĊĠĠĠĠĠĠĠ Ġbrowser . tabs . execute Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Ġ= ĠInject Details ( file Ġ= Ġ" kotlin . js ") ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbrowser . tabs . execute Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Ġ= ĠInject Details ( file Ġ= Ġ" declarations . js ") ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbrowser . tabs . execute Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Ġ= ĠInject Details ( file Ġ= Ġ" browser - polyfill . min . js ") ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġbrowser . tabs . execute Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Ġ= ĠInject Details ( file Ġ= Ġ" content . js ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ. catch (:: report Execute Script Error ) ĊĊĠĠĠ Ġprintln (" << Ġpopup Ġ 6 Ġmain ") ĊĊĠĠĠ Ġbrowser . runtime . on Message . addListener Ġ{ Ġmessage , _, _ Ġ-> ĊĊĠĠĠĠĠĠĠ Ġprintln (" on Message "); ĊĠĠĠĠĠĠĠ Ġif Ġ( message . command Ġ=== Ġ" be ast ify ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Be ast ( message . be ast URL Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" received Ġmessage Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( message . command Ġ=== Ġ" reset ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġremove Existing Be ast s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtest Ġ= ĠAudio (" https :// sounds . table top audio . com / 1 9 4 _ T arr as que _ Interior . mp 3 ") ĊĊĠĠĠ Ġtest . play () Ċ } ĊĊ Ċ fun Ġreport Execute Script Error ( error : ĠThrowable ) Ġ{ ĊĠĠĠ Ġdocument . querySelector ("# popup - content ") ?. classList ?. add (" hidden ") ĊĠĠĠ Ġdocument . querySelector ("# error - content ") ?. classList ?. remove (" hidden ") ĊĠĠĠ Ġconsole . error (" Failed Ġto Ġexecute Ġbe ast ify Ġcontent Ġscript : Ġ${ error . message }") Ċ }