0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

アドオンが動作しない潔癖症ユーザーが確認すべき場所の一つはCookie

Posted at

結論

アドオンをCookieのホワイトリストに追加する。

教訓

  • アドオンが動かない場合はセキュリティ設定を疑え
  • アドオンの設定値はCookieではなくStorageなど別の方法を探れ
  • Cookieの設定に失敗した場合はユーザーにそれとわかるエラー表示を行え
  • Cookieフィルターはhttps?以外にも使える

検証環境

  • Firefox 58.0.2

現象

  • アドオンアイコンをクリックしたときのポップアップが正しくない
  • アドオンの詳細画面(about:addonsからの詳細)で設定項目が表示されない
  • アドオンの設定ページを開くと真っ白

などなど、アドオンが機能しない場合に。

原因

アドオンのCookieを弾いているから

image.png

確認方法

新規タブが開くアドオンなら開発者ツールから(たぶん)。
ポップアップなど全般的にはアドオンのデバッグで確認する。

about:debugging#addons

2018-03-05_15h10_212.png

使い方は通常の開発者ツールと同じ。
ポップアップを開いたときなどにエラーがコンソール画面に吐かれるはず。
デバッグ - Mozilla | MDN

暫定解消方法

image.png

すべてのCookieを保存するようにチェックを入れる。
例外サイトのCookie フィルターの内容が、全て保存することで削除されないかが不安だった。
しかしどうやら残るようなので、チェックを外せば元の状態に戻る。

チェックをつけた・はずした状態でアドオンの動きが変わることを観測できた。

根本解決 アドオンをCookie フィルターに登録する

Cookieを受け入れると動いたが、全てを受け入れたくないのでホワイトリストのCookieフィルターを使っていたわけで。

UUIDの確認

新規のタブで開かれる設定画面を持つアドオンなら、そのURLを確認。
URLを確認できないアドオンなら、デバッグ画面の

image.png

内部UUIDを使用する。

これはアドオン固有ではなく1、インストールした環境ごとに異なる。

実際にはアドオンのIDではなく、自動生成された内部的なUUIDが使われます。 これには、いわゆるフィンガープリンティングを防ぐためという意味があります。

仮にアドオンの内部リソースに対して、moz-extension://addon-name.at.clear-code.com/main.js のようにアドオンのIDに基づいたURLが割り当てられていたとすると、Webページ上のコンテンツから容易に読み込みを試行できてしまい、訪問者の使用アドオンを特定されたり、アドオンの使用状況から個人を特定されてしまう可能性があります。

このようなフィンガープリンティングを無効化する目的で、Firefoxはアドオンがインストールされるごとに新しいUUID(ユニークな識別子となる文字列)を自動生成し、それを使ってアドオンの内部リソースを moz-extension://a93cdbe2-b549-401c-ad50-56572822cee3/main.js のようなURLで表すようになっています。 この例でホスト名に相当する部分に現れているa93cdbe2-b549-401c-ad50-56572822cee3がそのアドオンに割り当てられたUUIDで、環境ごとに異なる物が生成され、それどころか同じ環境であっても、そのアドオンをアンインストールした後で再インストールすると新たに別のUUIDが生成されます。

アドオンで保存したCookieは、この自動生成されたUUIDをホスト名代わりにして管理されています。

Cookieに設定値を保存しているWebExtensionsベースのアドオンについて、MCDで設定の初期値を指定する方法 - ククログ(2018-01-19)

Cookieフィルターへの登録

moz-extension://a93cdbe2-b549-401c-ad50-56572822cee3
といった形で登録します。

image.png

問題なのはCookieフィルターはワイルドカードやプロトコル(moz-extension://)のみの入力を受け入れず、
スキーム + ホスト名でなければならない点。
先のUUIDの自動生成と合わせて、アドオンごとに手動で一つずつ登録していく必要があります。
~~マンドクセ('A`)~~不便を承知でホワイトリスト運用しているので受け入れよう。

確認アドオン

  • はてなブックマーク(詳細画面非表示・ポップアップ不完全)
  • Foxy Gesture (設定画面白紙(Angularの読み込み失敗っぽい))

参考


Firefox 60でCookie管理に関する動きがあるので、Cookieフィルターにも今後影響がある可能性がありますね。

  1. 固定は危険なので

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?