Google Chrome 5の新機能とChrome 6の計画

この記事を読むのに必要な時間:およそ 4.5 分

Google Chrome 5のリリースが刻一刻と迫ってきました。その注目の新機能と開発者向けの変更点に加え,Chrome 6を見据えた今後のスケジュールなどを詳細にお届けしたいと思います。

まず,Chrome 5の最大ニュースはなんといってもMac版,Linux版がそれぞれ正式にリリースされる予定という点です。これまで,Mac版とLinux版はベータ版と開発版が提供されていましたが,ついに安定版がリリースされる予定です。特にMac版はMac OS Xに馴染むようにかなりの改良が加えられているので,注目のリリースとなりそうです。

さて,これまでのリリースを簡単に振り返ってみます。シンプルで高速なブラウザとしてChromeがリリースされてから,Chrome 2では基本機能の充実と高速化,Chrome 3ではテーマのサポート,Chrome 4では拡張機能のサポートとブックマーク同期,Chrome 4.1は翻訳機能にCookieやJavaScriptなどの制御するプライバシー機能の充実などが目玉となってきました。

そして,今回のChrome 5では,HTML5とその関連APIのサポートの充実が図られています。ほかにも,CSS3やECMA-262 5th edition(通称ECMAScript 5)のサポートなど,主にウェブアプリケーションのための機能追加がメインとなっています。Chrome 5は開発者にとって注目のリリースです。

Chrome 5とHTML5

  • Geolocation APIのサポート

    これまでGoogle Gearsの機能として提供されていた位置情報を取得するAPIを,Chrome 5ではネイティブにサポートするようになりました。

    Geolocation API

    navigator.geolocation.getCurrentPosition(function(geo){
        console.log(geo);
        console.log(geo.coords.latitude);  // 緯度
        console.log(geo.coords.longitude); // 経度
    });

    Geolocation APIのサンプル

  • Application Cacheのサポート

    こちらもやはりGearsの機能としてオフラインAPIが提供されていましたが,Chrome 5からHTML5の仕様に準拠したAPIが実装されました。なお,同じくGearsの機能であるDatabaseとWorkerもChrome 4で対応済みなので,Gearsが提供するAPIは基本的にChrome自体が持つようになりました(そういった事情をもって,Google Gearsは開発を終了しています)。

  • Web Workers内でWebSocketが可能に

    Web Workers(JavaScriptをマルチスレッドで実行するAPI)からWebSocketを行うことが可能になりました。Web Workers,WebSocketどちらも最新仕様への対応やWebInspectorでのデバッグ対応など改良が引き続き進行中です。

  • ドラッグ&ドロップのサポート

    ブラウザの外からファイルをドロップして受け渡すAPIが実装されました。

    Gmailではメールにファイルを添付する際にローカルからブラウザにファイルをドラッグ&ドロップで添付することができるようになっています。

  • sessionStorageのサポート

    Chrome 4ではlocalStorageのみをサポートしていましたが,Chrome 5でsessionStorageもサポートするようになりました。

  • Magic IFRAMEのサポート

    フレーム(Window)間で内部のフレーム(Window)をリロードを発生させずに受け渡しできる機能です。

    サンプルのように,インラインフレーム間で地図を表示したままフレームを移動できます。Gmailのような読み込みに時間がかかるアプリケーションをChrome拡張から利用するケースでの利用が想定されています。

  • history.pushState/history.replaceStateのサポート

    JavaScriptからブラウザの履歴を追加,置き換えできるAPIです。(Gmailのような)ページ遷移を伴わないウェブアプリケーションにおいて,戻る・進むで操作のやり直しをする機能などを実装することができます。

  • Desktop notificationsの改良とサポート

    ブラウザの外(デスクトップ)に通知用の小窓を表示するAPIです。Chrome 4でもサポートはしていましたが,インターフェースなどが改良されました。また拡張からはmanifest.jsonのpermissionsにnotificationsを指定することが可能になりました。

    Notificationsのサンプル

  • HTML Formsのサポート(一部)

    フォーム要素について,新しいtypeやバリデーション機能などが追加されました。インターフェースを伴うものはChrome 6で実装される予定です。詳細はThe Chromium Projects の HTML5 Forms Statusで確認できます。

  • Sectioning要素のサポート

    HTML5で新たに追加されたsectionやheader,footer,navなどの要素を正しく解釈できるようになりました。

このほか,HTML5やCSS3のサポート状況はWeb Designers' HTML5 & CSS3 Checklistや,The Chromium Projectsn の Web Platform Statusなどにまとまっています(WorkersからのDatabaseへのアクセスや,File API,XMLHttpRequestのFormData送信サポートなどはChrome 5での対応からChrome 6への対応に先送りされています)。

Chrome5がサポートする拡張API

History API

まず,大きな変更としてHistory APIが追加されましたhttp://code.google.com/chrome/extensions/beta/history.html)。履歴の検索などが可能なAPIが追加され,同時に chrome://history/ で表示されるページを拡張で置き換えることも可能になっています。

History APIを使った拡張として,History2などがあります。

ファビコンの取得

manifest.jsonのpermissionsに "chrome://favicon/" と加えることで拡張からChromeが内部に持っているファビコンを扱うことができるようになりました。

データベース容量の拡大

manifest.jsonのpermissionsに "unlimited_storage" と加えることで拡張から扱えるデータベース容量が無制限になります。この指定がない場合や通常のウェブページからでは1つのドメインあたり5MBに制限されています。

Popupのデバッグ

BrowserAction,PageActionのアイコンから表示されるポップアップをWebInspectorでデバッグできるようになりました。アイコンを右クリックして,メニュー一番下の「ポップアップを検証」でデバッグできます。拡張開発者には嬉しい機能です。

シークレットモードでの拡張

Chrome 4ではシークレットモードの際はすべての拡張が無効でしたが,Chrome 5では任意の拡張をシークレットモードでも有効にすることが可能になりました。

未パッケージ拡張の読み込み

パッケージされていない拡張の読み込みが再起動後も維持されるようになりました。こちらも開発者には嬉しい機能です。

その他

そのほか,細かい変更として,拡張の一覧ページのデザインの変更や,インストール時に表示される注意書きがわかりやすくなりました(パーミッションに複数のサイトを指定すると「いくつかのサイト」とまとめていたのが,個別のドメインを表示するようになったなど)。

著者プロフィール

太田昌吾(おおたしょうご,ハンドルネーム:os0x)

1983年生まれ。JavaScriptをメインに,HTML/CSSにFlashなどのクライアントサイドを得意とするウェブエンジニア。2009年12月より、Google Chrome ExtensionsのAPI Expertとして活動を開始。

URLhttp://d.hatena.ne.jp/os0x/

バックナンバー

01

  • Google Chrome 5の新機能とChrome 6の計画

コメント

コメントの記入