0

ページワーカーを作成する 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.htmlWindows エントリが表示されます。これは、それらが破棄されていないことを示していると思われます。

これが 1.14 のバグかどうかは誰にもわかりませんか? または私はここで何か間違っていますか?その他のオプション?アドオンと通信できるサンドボックス化されたページが必要ですが、現時点では pageworker が唯一の選択肢のようです。

このhttps://github.com/mozilla/addon-sdk/commit/55aeedc69984a2c0df78ddb17cee35a960b1135bに関連する可能性のある SDK リポジトリで 2013-09-26 にコミットされたバグ修正があったようです

この t についてご協力いただきありがとうございます。

4

1 に答える 1