Chrome 54 ベータ版:Custom Elements V1、BroadcastChannel、メディア プラットフォームの強化
2016年10月4日火曜日
この記事は Marijn Kruisselbrink、ブロードキャスト海賊による Chromium Blog の記事 "Chromium Blog: Chrome 54 Beta: Custom Elements V1, BroadcastChannel, and media platform improvements" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
特に記載のない限り、下記の変更は Android、Chrome OS、Linux、Mac、Windows 向けの最新の Chrome ベータ版に適用されます。
Chrome 54 は、主要なブラウザ ベンダーが広く合意している最新の Custom Elements V1 仕様をサポートしています。十分な数のデベロッパーが V1 に移行するまで、Chrome は V0 API もサポートします。
フルスクリーン関連の機能強化に加え、Android の Chrome ではバックグラウンドの HTMLVideoElement のメディア通知を永続化できるようになっており、表示されていない動画を再生し続けることができるようになります。バックグラウンドの動画再生は、Page Visibility API で検知できます。
Chrome 54 のバックグラウンド動画再生
Posted by Eiji Kitamura - Developer Relations Team
特に記載のない限り、下記の変更は Android、Chrome OS、Linux、Mac、Windows 向けの最新の Chrome ベータ版に適用されます。
Custom Elements V1
多くの場合、複雑なユーザー インターフェースには大量の HTML が必要になります。ほとんどの言語では、この冗長さを回避するため、デベロッパーが言語プリミティブ上に独自のコンポーネントを構築できるようになっていますが、ブラウザでも Custom Elements を使うことで、デベロッパーが独自の HTML タグを作成し、JavaScript で新しい要素の API や動作を定義することができます。これにより、再利用や相互利用が可能なブラウザネイティブ コンポーネントを構築できるようになります。Chrome 54 は、主要なブラウザ ベンダーが広く合意している最新の Custom Elements V1 仕様をサポートしています。十分な数のデベロッパーが V1 に移行するまで、Chrome は V0 API もサポートします。
BroadcastChannel
デスクトップ ユーザーが複数のウィンドウやタブを開くのは珍しいことではありません。各タブでドキュメントを開くウェブエディタなど、サイトの中にはこの動作を活用しているものもあります。かねてより、タブ間の通信は難しいものでした。BroadcastChannel は、新しく導入されたウィンドウ、タブ、iframe、Web Worker、Service Worker 間で動作する 1 対多のメッセージング API です。この機能を利用すると、スクリプトで名前付きチャンネルを作成し、同じソースのブラウジング コンテキスト間でメッセージを送信することができます。Chrome for Android でのメディア プラットフォームの強化
モバイル端末でブラウジングを行う際のメディアの重要性は増し続けており、メディアには画面全体をなめらかに活用することが求められます。Element.requestFullScreen() を使うと、ユーザーの操作を検知した時だけでなく、画面の向きが変わった時にフルスクリーン モードに切り替えることができます。これによって、メディア プレイヤーで回転操作を行ってフルスクリーンに切り替えられるようになります。フルスクリーン関連の機能強化に加え、Android の Chrome ではバックグラウンドの HTMLVideoElement のメディア通知を永続化できるようになっており、表示されていない動画を再生し続けることができるようになります。バックグラウンドの動画再生は、Page Visibility API で検知できます。
今回のリリースに追加されたその他の機能
- unload ハンドラ内で開始されたナビゲーションはブロックされ、その前に行われたナビゲーションが継続されます。
- CanvasRenderingContext2D の imageSmoothingQuality 属性で拡大縮小時の解像度を調整し、パフォーマンスと画質のバランスが取れるようになります。
- サイトで Node.getRootNode(options) を使用すると、指定したノードのルートを取得できるようになります。
- サイトで PushSubscription.options を使用すると、オフラインで保存しなくても applicationServerKeys をトラッキングできるようになります。
- Resource Timing API で transfer、encoded、decoded の各サイズ属性が利用できるようになります。これによって、キャッシュ ヒット率や使用バイトを計測できるようになります。
- user-select プロパティを使って、ユーザーがどの要素をどうやって選択したかを判断できるようになります。
- Foreign Fetch と WebUSB がオリジン トライアルの試験運用版として利用できるようになります。
- text-size-adjust プロパティーを使うことで、モバイルデバイス上のフォントサイズを自動的に調整すべきかどうか制御できるようになります。
サポートの終了予定と相互運用性の改善
- 他のブラウザと動作を一致させるため、Chrome が埋め込み YouTube Flash プレイヤーを書き換えて HTML5 埋め込みスタイルを使うようになります。これによってデスクトップ版 Chrome のパフォーマンスとセキュリティが改善されます。
- CacheQueryOptions は、すべての CacheStorage のメソッドの仕様に準拠するようになります。
- initTouchEvent は new TouchEvent() コンストラクタで置き換えられ、削除されます。
- SVGZoomEvent は SVG 2.0 仕様に含まれなくなったため、削除されます。
- SVGSVGElement.currentView、SVGSVGElement.useCurrentView、SVGViewSpec インターフェース、SVGSVGElement.viewport は SVG 2.0 仕様に含まれなくなったため、削除されます。
- SVGTests.requiredFeatures 属性は SVG 2.0 仕様で有用な機能を提供しなくなったため、サポート終了となります。
- SVGElement で dataset プロパティがサポートされるようになります。
- KeyEvent.keyIdentifier フィールドは KeyboardEvent.key フィールドで置き換えられ、削除されます。
- window.external.IsSearchProviderInstalled() および AddSearchProvider() は他のほとんどのブラウザでサポートされていないため、廃止されます。
Posted by Eiji Kitamura - Developer Relations Team