chrome.* API を使用すると、ブラウザがウェブページとアプリに提供するすべての API を拡張機能で使用できます。使用する API をブラウザがサポートしていない場合は、追加の API ライブラリを拡張機能にバンドルできます。
拡張機能で使用できる API の例を次に示します。
- 標準の JavaScript API
- これらの API は、通常のウェブアプリで使用できる JavaScript およびドキュメント オブジェクト モデル(DOM)のコア API と同じです。
- XMLHttpRequest
- XMLHttpRequest を使用して、1 つ以上のサーバーにデータをリクエストします。マニフェストの permissions フィールドには、拡張機能がリクエストを送信できるホストを指定します。
- HTML とその他の新しい API
Google Chrome は、最新の HTML 機能とその他の新しい API をサポートしています。使用できる API は次のとおりです。
- 音声(チュートリアル)
- アプリケーション キャッシュ(チュートリアル)
- canvas(記事)
- 全画面表示(記事)
- Chrome アプリでは、ユーザーに確認メッセージを表示したり終了手順を提供したりすることなく、全画面表示に切り替えられます。
HTML5 全画面を使用するには、マニフェストで
app.window.fullscreen
権限が必要です。通常のウェブページでは、ブラウザは Esc キーをインターセプトしてポインタのロックを終了し、ユーザーに一貫したエスケープ方法を提供できるようにします。これは Chrome アプリの場合も同様です。ただし、app.window.fullscreen.overrideEsc
権限を使用してキーダウン イベントやキーアップ イベントでpreventDefault
を呼び出せるようにします。 - 位置情報(チュートリアル)
- ローカル ストレージ(チュートリアル)
- 通知(チュートリアル)
- ポインタのロック(チュートリアル)
- Chrome アプリでは、ユーザー操作や、終了手順の表示を必要とせずに、ポインタロックが適用されます。ポインタのロックには、マニフェストで
pointerlock
権限が必要です。 また、デフォルトの exit 動作もありません。通常のウェブページでは、ブラウザが Esc キーをインターセプトしてポインタのロックを終了します。この動作は Chrome アプリには存在しません。 - 動画(チュートリアル)
- ウェブ データベース(チュートリアル)
HTML5 に関する情報、チュートリアル、インタラクティブなプレイグラウンド、その他のリソースへのリンクについては、html5rocks.com をご覧ください。
- ウェブ API
拡張機能でウェブ API を使用できます。フィルタ、アニメーション、変換などの CSS 機能は、特に便利です。WebKit スタイルを使用して UI を回転させる例を以下に示します。
<style> div:hover { transform: rotate(360deg); transition: all 1s ease-out; } </style>
- JSON などの V8 API
JSON は V8 であるため、JSON 関数を使用するために JSON ライブラリを含める必要はありません。
- バンドル ライブラリ内の API
ブラウザで提供されていないライブラリ(jQuery など)を使用する場合は、そのライブラリの JavaScript ファイルを拡張機能にバンドルできます。バンドルされたライブラリは、他のウェブページと同様に拡張機能でも機能します。