ページワーカーを作成する SDK アドオンがあります
events.on(eventTarget, "sandbox", (details, content) => {
var pageWorker = worker.Page({
contentScriptFile: data.url("sandbox.js"),
contentURL: data.url("sandbox.html"),
contentScriptWhen: "end"
});
pageWorker.port.emit("detect-version", content, funcs);
pageWorker.port.on("version-detected", (result) => {
if (result.version) {
events.emit(eventTarget, "result-ready", details, results);
}
});
pageWorker.port.on("done", () => {
pageWorker.destroy();
});
});
サンドボックス イベントでわかるように、アドオンとページ ワーカーの間でメッセージがやり取りされます。
- ページワーカーが作成されます
- メッセージを送信します: バージョン検出
- 検出されたバージョンをリッスンします
- done イベントをリッスンし、ページ ワーカーで destroy() を呼び出します
オブジェクトや背景ページなどを削除することを期待してworker.destroy()
います。これは起こらないようです。about:memory
ブラウザ セッションを 1 時間実行すると、ブラウザのメモリ使用量が非常に高くなり、Firefox をチェックインすると、多くのsandbox.html
Windows エントリが表示されます。これは、それらが破棄されていないことを示していると思われます。
これが 1.14 のバグかどうかは誰にもわかりませんか? または私はここで何か間違っていますか?その他のオプション?アドオンと通信できるサンドボックス化されたページが必要ですが、現時点では pageworker が唯一の選択肢のようです。
このhttps://github.com/mozilla/addon-sdk/commit/55aeedc69984a2c0df78ddb17cee35a960b1135bに関連する可能性のある SDK リポジトリで 2013-09-26 にコミットされたバグ修正があったようです
この t についてご協力いただきありがとうございます。