@@ -29,14 +29,14 @@ const getDicPath = () => {
2929
3030 return isFireFox
3131 ? "https://cdn.jsdelivr.net/npm/kuromoji@0.1.2/dict"
32- : chrome . extension . getURL ( "kuromoji/dict/" ) ;
32+ : chrome . runtime . getURL ( "kuromoji/dict/" ) ;
3333} ;
3434
3535/*
3636 * set param managed in content_script
3737 */
38- const initParam = ( ) => {
39- sendRequest ( {
38+ const initParam = async ( ) => {
39+ await sendRequest ( {
4040 type : "GET_PARAM" ,
4141 from : "CONTENT_SCRIPT" ,
4242 to : "BACKGROUND" ,
@@ -46,41 +46,47 @@ const initParam = () => {
4646 } ) ;
4747} ;
4848
49- chrome . runtime . onMessage . addListener ( ( req : Message , sender , sendResponse ) => {
50- if ( req . from === "CONTENT_SCRIPT" || req . to !== "CONTENT_SCRIPT" ) return ;
51- if ( req . type === "UPDATE_PARAM" && req . from === "BACKGROUND" ) {
52- if ( ! req . data || ! req . data . param ) throw new Error ( "no param" ) ;
53- param = req . data . param ;
54- sendRequest ( {
55- type : "UPDATE_PARAM" ,
56- from : "CONTENT_SCRIPT" ,
57- to : "POPUP" ,
58- data : {
59- param,
60- } ,
61- } ) ;
62- } else if ( req . type === "UPDATE_PARAM" && req . from === "POPUP" ) {
63- if ( ! req . data || ! req . data . param ) throw new Error ( "no param" ) ;
64- param = req . data . param ;
65- sendRequest ( {
66- type : "UPDATE_PARAM" ,
67- from : "CONTENT_SCRIPT" ,
68- to : "BACKGROUND" ,
69- data : {
70- key : paramKey ,
71- param,
72- } ,
73- } ) ;
74- } else if ( req . type === "GET_PARAM" && req . from === "POPUP" ) {
75- if ( isReady ) initParam ( ) ;
49+ chrome . runtime . onMessage . addListener (
50+ async ( req : Message , sender , sendResponse ) => {
51+ if ( req . from === "CONTENT_SCRIPT" || req . to !== "CONTENT_SCRIPT" ) {
52+ sendResponse ( ) ;
53+ return ;
54+ }
55+ if ( req . type === "UPDATE_PARAM" && req . from === "BACKGROUND" ) {
56+ if ( ! req . data || ! req . data . param ) throw new Error ( "no param" ) ;
57+ param = req . data . param ;
58+ await sendRequest ( {
59+ type : "UPDATE_PARAM" ,
60+ from : "CONTENT_SCRIPT" ,
61+ to : "POPUP" ,
62+ data : {
63+ param,
64+ } ,
65+ } ) ;
66+ } else if ( req . type === "UPDATE_PARAM" && req . from === "POPUP" ) {
67+ if ( ! req . data || ! req . data . param ) throw new Error ( "no param" ) ;
68+ param = req . data . param ;
69+ await sendRequest ( {
70+ type : "UPDATE_PARAM" ,
71+ from : "CONTENT_SCRIPT" ,
72+ to : "BACKGROUND" ,
73+ data : {
74+ key : paramKey ,
75+ param,
76+ } ,
77+ } ) ;
78+ } else if ( req . type === "GET_PARAM" && req . from === "POPUP" ) {
79+ if ( isReady ) await initParam ( ) ;
80+ }
81+ sendResponse ( ) ;
7682 }
77- } ) ;
83+ ) ;
7884
7985window . addEventListener ( "load" , async ( ) => {
8086 try {
8187 const source = selectSource ( window . location . href ) ;
8288 paramKey = keyStreamer ( source . name , source . extractStreamer ( ) ) ;
83- initParam ( ) ;
89+ await initParam ( ) ;
8490
8591 worker = await createKuromojiWorker ( ) ;
8692 api = await createKuromojiWorkerApi ( worker , getDicPath ( ) ) ;
@@ -130,7 +136,7 @@ const observeLocation = async () => {
130136
131137 const source = selectSource ( currentLocation ) ;
132138 paramKey = keyStreamer ( source . name , source . extractStreamer ( ) ) ;
133- initParam ( ) ;
139+ await initParam ( ) ;
134140
135141 worker && terminateWorker ( worker ) ;
136142 // avoid memory leak, worker allocates a lot of memory
0 commit comments