スクリプトはローカルに置かれない
触りだした当初、スクリプト制作の参考にコードが読みたいと思い
ubiquityのフォルダの中から、標準装備してあるスクリプトのコードを探していました。
無事発見できたのですが、(uibiquity@labs.mozilla.com\standard-feeds\)
コードを開き、ためしにコードを変えて挙動を確認しようとしたところ、動作に変化がありません。
あれこれ理由を調べた結果、次のようなことがわかりました。
By the way, the reason we call it "subscribing" to a command, rather than "installing" a command, is that if the javascript file changes -- if the site owner adds new commands, removes old commands, or updates existing commands -- all users subscribed to that URL will automatically get the updates.
Labs/Ubiquity/Ubiquity 0.1 Author Tutorial - MozillaWiki
これは、UbiquityのAuthorTutorialに書かれているもので、
Ubiquityは「スクリプトを使うたびに、URLからコードを参照する(購読する)方式をとることで
常に最新のコードを得られるようにする」方針のようです。
ためしに、先ほどのスクリプトが置かれていたフォルダをゴミ箱に入れても、挙動は変化しません。
(ローカルに置いてある理由は、開発者が参考にするためですかね。まぎらわしいやん!)
しかし一方で、セキュリティ上の問題として「購読途中に、スクリプトを危険なものにすり替えられる」危険性が伴います。
Ubiquityスクリプトには(GreaseMonkeyスクリプトと同様で)Chrome権限が与えられますので、これには注意が必要です。
「購読しているURLをどこで保持しているか」
これに関しても調べました。
コードを漁った結果、「AnotationService」というFirefoxの機能を利用して、URL情報を保持しているようです。
これは、拡張機能の動作を支援するため必要な情報を保持する機能で、Firefoxが保持するcookieのようなイメージの機能です。
(https://developer.mozilla.org/ja/Using_the_Places_annotation_service
)
ちなみに、AnnotationServiceを利用していることは、次のようにして確認することが出来ます。
- 続けて、同様に”LinkRelCodeSource”(linkrel_codesource.jsが定義する関数の名称)を検索して、confirm-add-command.js内のonSubmit関数でヒットが得られる。
- さらに、”onSubmit”で検索して、confirm-add-command.html内のヒットが得られる
(これは購読の許可を求めるhtmlページで、Web上でUbiquityスクリプトを購読する際に、手続きとして必ず表示されるものです。)
補足として
将来的には、Ubiquity用サイトが立ち上げられる予定のようです。
In the future, we'll be creating something called a "trust network" that Ubiquity users can use to share knowledge about which commands are trustworthy.
Labs/Ubiquity/Ubiquity 0.1 Author Tutorial - MozillaWiki
セキュリティを考慮する意向を示しています。
また、現在の状況でスクリプトを探すには、検索サイトに頼るしか御座いませんが、
近い将来このサイトに世界中からスクリプトが集まり、簡単に豊富なコマンドをUbiquityに追加出来るようになるでしょう。