The My Opera forums have been replaced with forums.opera.com. Please head over there to discuss Opera's products and features
See the new ForumsYou need to be logged in to post in the forums. If you do not have an account, please sign up first.
Extensions のプライベートタブでの widget.preferences の扱いについて
現在、 Opera Extension では Injected Script から、widget.preferences オブジェクトにアクセスでき、
opera.extension.postMessage 等を駆使しなくても設定情報を直接取得できるようになっていますが、
プライベートタブでは、同じエクステンションでも
widget.preferences を使うと、エラーには成らないものの、
実際に設定情報を取得したり、保存したりする事が出来ません。
これはプライベートタブであるための制限でしょうか。それともバグでしょうか。
制限であるとすれば、プライベートタブでも動作する事を想定した場合は、
Injected Script では widget.preferences を使用しない方が良いと言う事でしょうか。
そもそも Injected Script から widget.preferences が動く事が仕様外って事はないですよね?
どうやら、プライベートタブからアクセスできる
widget.preferences のデータは、プライベート空間のデータとなって、
本来のエクステンションのバックグラウンドプロセスで生成される widget.preferences とは別のデータとなるようです。
このデータは、ブラウザ起動中のプライベートタブ内の Injected Script からは共有されるようです。
プライベートタブなので、データが保持されないという他のストレージと同様の処置かも知れませんが、 widget.preferences は、タブ側のストレージではなく、エクステンション側のストレージなので、この処置が正しいものかどうか疑問があります。
widget.preferences のデータは、プライベート空間のデータとなって、
本来のエクステンションのバックグラウンドプロセスで生成される widget.preferences とは別のデータとなるようです。
このデータは、ブラウザ起動中のプライベートタブ内の Injected Script からは共有されるようです。
プライベートタブなので、データが保持されないという他のストレージと同様の処置かも知れませんが、 widget.preferences は、タブ側のストレージではなく、エクステンション側のストレージなので、この処置が正しいものかどうか疑問があります。
あぁ、なるほど。
エクステンションをプライベートタブで有効にしても widget.preferences が動かないということですね。
確かに、今 LinkRedirector を使ってみれば確認できました。
私にもバグに見え、報告しました。
お知らせ、ありがとうございます。
エクステンションをプライベートタブで有効にしても widget.preferences が動かないということですね。
確かに、今 LinkRedirector を使ってみれば確認できました。
私にもバグに見え、報告しました。
お知らせ、ありがとうございます。
ありがとうございます。
ただ、現在の挙動は、データ取得時は postMessage 等行い、
保存は widget.preferenses.setItem で行うという様な作り方をすると、
プライベートタブの痕跡をエクステンション側に残さないという事が出来るので利点もあります。
もし、これがバグと認定されて修正されるなら、現在のタブがプライベートかどうかを知る手段が有ると良いかも知れませんね。
ほかにも、プライベートタブはフォーカスされていても
opera.extensions.tabs.getFouced()
で取得できないと言った制限があるようなので、
プライベートタブでエクステンションを動かす時はこういった制限を考慮して作らないと行けないですね。
ただ、現在の挙動は、データ取得時は postMessage 等行い、
保存は widget.preferenses.setItem で行うという様な作り方をすると、
プライベートタブの痕跡をエクステンション側に残さないという事が出来るので利点もあります。
もし、これがバグと認定されて修正されるなら、現在のタブがプライベートかどうかを知る手段が有ると良いかも知れませんね。
ほかにも、プライベートタブはフォーカスされていても
opera.extensions.tabs.getFouced()
で取得できないと言った制限があるようなので、
プライベートタブでエクステンションを動かす時はこういった制限を考慮して作らないと行けないですね。