yuta-nishi/block-enter

V1.1.0対応

Closed this issue · 1 comments

作業内容

  • off時のアイコンの挙動を変更

詳細

  • chrome.action.setBadgeについて
    引数にtabIdを用いる場合と用いない場合の共存はできない。用いた場合はdisableでもアイコンに色がつく。
    browser側でtabIdを取得できない+messageを受け取ったbackgroundでもmessageを出したtabIdしか取得できない(多分)ので、backgroundでChatGPTページ全てのtabIdを取得するかtabIdを指定しないことでバッジの変更ができる。
    前者の場合はmessageがタブの数発行されるのでそれを目安に走らせるとタブ数の二乗ループが走る。

  • 新規tabを開いた場合にupdateBadgeの対象tabが重複する問題
    最終的にmessage先でmessage元のtabId(全てのChatGPTのtab)がreq.senderで取得できたので、上述の問題と合わせて解決した。
    この場合重複しなかった理由は多分messageごとに一回しか処理が走らないようになったからだと思うが、そもそもtabをupdateしたときになぜ重複、ようはlistenerが複数存在したかはわからない。

  • backgroundでdocumentが存在するエラー発生
    background/messages以下でcontentsからconfigをimportをしていたからだった。documentとは関係ないが、トランスパイルの設定でcontentsの内容が全て展開されていたので、configをlib以下に置くことで解決。

  • async/awaitによる軽微なエラー
    storage.watch内でasync/awaitを用いるとよくわからないエラーが発生した。多分、非同期と同期の処理が衝突しているから?