Opera Dragonflyで使われているScope Protocolが公開された
- Opera Dragonfly - Scope Protocol release: how the fat lady sings
- Scope Interface for the Opera Browser — Scope Interface v0.7 documentation
Opera の開発ツール Dragonfly は、内部的には Scope というプロトコルを使って通信するサーバーとクライアントになっていて、普通はその両端を Opera が担当する。
このサーバー、クライアントシステムの利点は、Dragonfly を搭載してないモバイル版 Opera なんかも、Scope プロトコルにさえ対応していればデバッグできるというもの。
その他、例えば100%ブラウザがクラッシュすると分かっているコードをデバッグするときなんかも、Opera を2つ立ち上げて一方をサーバーにしてもう一つの Opera と通信するといい。
で、この Scope プロトコルは将来的には規格を公開すると言っていたのだけど、Dragonfly の発表から1年経った今日やっと公開された。
これを使って出来ることは、例えば Scope サーバーとなるデバッグアプリケーションを作って Dragonfly に頼らずに Opera や他のブラウザ (がもし対応すれば) をデバッグしたり、Opera に JavaScript を送って実行させることができる。
Opera の中では、Ruby の Watir というブラウザ自動化スクリプトで使われる API を Scope プロトコルの上に実装して、自動テストをしてるらしい。(それも公開される?)
公開された仕様がけっこう大きいのでまだ試していないが、前に Dragonfly の通信を傍受しようとした (結局失敗した) 時は、こんな感じで通信してた。
22 *enable window-manager 57 window-manager <?xml version="1.0"?><get-active-window /> 52 window-manager <?xml version="1.0"?><list-windows /> 22 *enable console-logger 27 *enable ecmascript-debugger 95 ecmascript-debugger <?xml version="1.0"?><runtimes><tag></tag><create-all-runtimes/></runtimes> 19 *enable http-logger 57 window-manager <?xml version="1.0"?><get-active-window /> 52 window-manager <?xml version="1.0"?><list-windows /> 57 window-manager <?xml version="1.0"?><get-active-window />
セキュリティはどうなの? と思うが、Opera が Scope プロトコルを使うためにポートを開けるときはちゃんとダイアログが出るので、(そこに穴が無ければ) 勝手に使われることはないだろう。
アドオンみたいなのを作るのに使えそうと思っていろいろ調べたけど、これのせいで足踏みしてたとこ。今なら Opera Unite を使ったほうが簡単に色んなアドオンが作れそう。
ところで、最近は Opera 関係の話は別のブログに書いているので、そちらもどうぞ。