続・先取り! Google Chrome Extensions
第3回 Extensionの新仕様とPageAction
こんにちは,株式会社ALBERTの太田です。今回はPageActionの新バージョンやTabs APIの新仕様などについて解説します。
Chromeの最新動向
と,その前にいくつかニュース的な情報がありますので,まずはそちらを紹介します。
Chrome 4系列のbeta版がリリース
2009年11月3日にChrome 4系列のbeta版がリリースされました。4系列ということでExtensionsが使えるかと思いきや,Chrome 3の時と同様にExtensionsは強制的に無効になっており,有効にすることはできません。
目玉機能はブックマークの同期機能(Googleブックマークではなく,Google Docsを使って同期されます)です。そのほかでは,stable版のChrome 4に搭載される予定の(HTML5関連の)WebDatabases,WebStorage,WebSockets,Remote fontなどはデフォルトではOFFになっています。今回のbeta版のリリースはブックマーク同期と安定性の向上がメインとなっています。来月のbeta版の更新ではExtensionsが有効になると期待していますが,まだどうなるかはわかりません。
試験的なGreasemonkey対応
2009年11月7日のdev版の更新で,FirefoxのGreasemonkey用に公開されているuser.jsファイルをExtensionとしてインストールする機能が使用できるようになりました。userscripts.orgなど,ウェブ上で公開されている.user.jsファイルをクリックするとExtensionとしてインストールするかどうか選択するダイアログが出てきますので,インストールを選べばそのスクリプトがExtensionとしてインストールされます。
内部的には.user.jsファイルをContent Scriptsとして実行するように,manifest.jsonの自動生成などを行っています。しかしながら,(2009年11月6日の時点では)前回の記事でも紹介しました通り,GM関数などの対応は十分ではありません。インストールはできても動かない(内部ではエラーになっている)こともありますので注意が必要です。
ExtensionのAPI仕様が修正
第1回でお伝えした通り,Toolstripsの削除が決定したほかにも,いくつかの仕様変更がありました。中でもPageActionはBrowserActionに合わせる形で大きな変更がありましたので,詳細は後ほど解説します。ほかにも,下記のような変更がありました。
- Extensionsの設定を行えるOptions Pageの追加
- NewTabページをカスタマイズできるAPI(New Tab Pages)の追加
- Content Scriptsの実行タイミングにdocument_idle(DOMContentLoadedより後で,onloadの前後)が追加されて,且つdocument_idleがデフォルトになりました
- Installed Extensions(chrome://extensions/)ページのデザイン改良が行われました(図1)
- chrome.tabs.sendRequestとchrome.extension.onRequestというconnectionを使わないメッセージ送信APIが追加されました
- chrome.extension.getTabContentsesというAPIがchrome.extension.getExtensionTabsに改名されました
Installed Extensionsページは,manifest.jsonで設定したIconが表示されるようになり,見栄えがするようになりました。右上のDeveloper modeをクリックすると「Load Extension…」「Pack Extension…」「Update Extensions now」などの開発者用メニューが表示されます。また,DisabledになっているExtensionsがグレーアウトされるようになり,識別し易くなりました。


