Firefox の Chrome Code から任意のドメインに対してクッキーを許可する

概要

about:permissions や Page Info dialog では任意のドメインに対してパーミッションを操作できないので, 任意のドメインに対してパーミッションの設定をしたい. これだけのためにアドオンを入れたくないので自作する.

やり方

let uri = makeURI('http://example.com/');
SitePermissions.set(uri, 'cookie', 1);

などとやる. uri

let uri = window.content.document.documentURIObject.clone();
uri.host = 'hoge';

としてもよい. document.documentURIObject はリードオンリーである. uri に対して設定変更できるかどうかは SitePermissions.isSupportedURI(uri) でチェックする. 例えば about:about では false になる. SitePermissions.set() の第二引数は SitePermissions.listPermissions() で得られる. 'plugins'permissions.js にハードコードされている. 第三引数の選択肢は SitePermissions.getAvailableStates('partid') で取得する. 選択肢のタイトルは SitePermissions.getStateLabel('partid', state) する.

参考文献

  • browser/base/content/pageinfo/pageInfo.js
  • browser/base/content/pageinfo/permissions.js