Firefox アドオン。既存のアドオンを再起動なしのアドオンに移植しています。多くの UI 要素 (ほとんどがボックス/説明と画像) を含むパネルがあり、XUL オーバーレイ ファイルでパネル要素を定義するのは非常に便利です。そうしないと、大量の js コードが肥大化してしまいます。
パネル要素 (親) 自体はコードで動的に作成されます。次に を使用loadOverlay
し、「マージ」イベントを待ってから、オーバーレイされたドキュメントからパネル要素の子を追加します。また、削除時に要素がクリーンアップされるようにします。
ただし、オーバーレイを使用すると、AMO レビューに合格しない可能性が高くなります。そして、私が考える理由のいくつかは次のとおりです。
- ほとんどの場合、オーバーレイ要素は削除中に問題を引き起こします (例: ツールバーのボタンがその位置を覚えているなど)。
- オーバーレイ ファイルに js/css ファイルを添付すると問題が発生します。
- loadOverlay にバグがある ( 496320、330458 )
そして、ここに私の推論があります:
- loadOverlay() API 自体は非推奨ではありません。実際、「凍結されておらず、後で変更される可能性があります」。これは、将来的に使用できる可能性があることを意味します。
- 2 番目のオーバーレイ ロードが失敗するというバグは、オーバーレイ マージなしで初期化しないため、私の場合には当てはまりません。
- 設定ウィンドウなどに静的オーバーレイを使用することは、現時点では完全に受け入れられます。
- 私の場合、パネルは設定ウィンドウのように動作します(オンデマンドで表示され、アドオンの削除時にクリーンアップされます)
- オーバーレイに js/css がアタッチされておらず、要素のイベント リスナーもありません。オーバーレイは、ボックスと説明テキストを定義するためにのみ使用され、それ以上のものはありません。
これらを考慮して、再起動のないアドオンにオーバーレイと loadOverlay() を使用することは許容されますか? そうでない場合、代替手段はありますか?