English / 日本語
uc / userChromeJS+サブスクリプトローダ 風に、ローカルに立てたWebDAVサーバーを介し、WebExtension APIを叩くユーザースクリプトを読み込むFirefoxアドオンです。
※XPCOM APIにアクセスできるようにするアドオンではないため、userChromeJS用のユーザースクリプトとはまったく互換性がありません。
WebExtensionではローカルのファイルを直接読み込めない (Fiefox 57以降) ため、WebDAVサーバー経由で読み込む手段を取っており、あらかじめローカルにWebDAVサーバーを立てる必要があります。
アドオンの設定で指定したWebDAVディレクトリのURLから、拡張子が *.uc.js
、または *.uc.es
となっているファイルを、アドオン起動時に読み込みます。サブディレクトリからは読み込みません。
Releasesページの「Downloads」で、「user-chrome-es-○○○.xpi」となっているリンクをクリックします。
なお、ローカルにあるスクリプトファイルの読み込みについて、リモートコードの実行であると判断されたため、当アドオンはAddons.mozilla.org (AMO)から削除されています。
各ユーザースクリプトにはGreasemonkey風のメタデータブロックが必要です。当アドオンでは以下のキーを解釈します。
メタキー名 | 値の意味 | |
---|---|---|
@name |
スクリプト名。 | |
@description |
スクリプトの概要。 | |
@include |
スクリプトを追加する場所。次のいずれかを指定:
|
必須 |
ページごと置き換えるのでなければ、それぞれ以下のようなマークアップ (body要素直下) を想定しています。
- ul
- li
- :only-child な要素 (a要素やbutton要素)
- img
- テキストや要素
- :only-child な要素 (a要素やbutton要素)
- ……
- li
- article
- h1
- 要素
- ……
- ……
- menu
- li
- details
- summary
- menu
- li
- ……
- details
- li
- :only-child な要素 (a要素やbutton要素)
- img
- テキストや要素
- :only-child な要素 (a要素やbutton要素)
- ……
- li
ユーザースクリプトはすべてのWebExtension APIを利用できますが、以下の権限は optional_permissions
manifest.json キーに含まれています。
そのため、/options/options.xhtml
をタブとして開くなどした上で、permissions APIを利用して権限を要求する必要があります。
http://localhost/*
以外のURLに対する host パーミッションbookmarks
browserSettings
clipboardRead
clipboardWrite
cookies
downloads
downloads.open
find
geolocation
history
idle
tabs
topSites
webNavigation
webRequest
webRequestBlocking
activeTab
パーミッションも要求可能です。
Pull Request、または Issue よりお願いいたします。
当アドオンのライセンスは Mozilla Public License Version 2.0 (MPL-2.0) です。
当ディレクトリに含まれるファイルは、FirefoxアドオンGreasemonkeyの一部であり、MIT Licenseで公開されているスクリプトコードです。