ほぼすべてのバージョンの Chrome で、プロダクト、そのパフォーマンス、ウェブ プラットフォームの機能に多くの更新と改善が加えられています。この記事では、2 月上旬時点でベータ版である Chrome 57 の非推奨と削除について説明します。このリストは随時変更される可能性があります。
BluetoothDevice.uuids 属性を削除
Web Bluetooth API を現在の仕様に準拠させるため、BluetoothDevice.uuids
属性が削除されます。許可されているすべての GATT サービスを取得するには、device.getPrimaryServices() を呼び出します。
鍵生成要素を削除
Chrome 49 以降、<keygen>
のデフォルト動作は、このページに権限が付与されていない限り、空の文字列を返すことになっています。IE/Edge は <keygen>
をサポートしておらず、<keygen>
をサポートする公開シグナルも示していません。Firefox ではすでに、ユーザー操作の背後で <keygen>
を制限していますが、公開情報では削除をサポートしています。Safari は <keygen>
を搭載していますが、継続的なサポートについて公表していません。Chrome 57 では、この要素は削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
接頭辞付きのリソース タイミング バッファ管理 API を削除
2 つのメソッドとイベント ハンドラ(webkitClearResourceTimings()
、webkitSetResourceTimingBufferSize()
、onwebkitresourcetimingbufferfull
)は非推奨で、ベンダー固有です。これらの API の標準バージョンは Chrome 46 以降でサポートされています。また、接頭辞付きの関数は、そのバージョンでも非推奨になりました。これらの機能はもともと WebKit に実装されていましたが、Safari では有効になっていません。Firefox、IE 10 以降、Edge には、接頭辞のないバージョンの API のみがあります。そのため、WebKit バージョンは削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
ServiceWorkerMessageEvent を削除し、代わりに MessageEvent を使用する
HTML 仕様では、MessageEvent
を拡張して、source
属性のタイプとして ServiceWorker
を許可しています。client.postMessage()
とカスタム メッセージ イベントの作成が変更され、ServiceWorkerMessageEvent
ではなく MessageEvent
が使用されるようになりました。ServiceWorkerMessageEvent
を削除しました。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
webkit 接頭辞付きの IndexedDB グローバル エイリアスを削除
IndexedDB
エントリ ポイントとグローバル コンストラクタは、Chrome 11 の頃に webkit
接頭辞で公開されました。接頭辞のないバージョンは Chrome 24 で追加され、接頭辞付きのバージョンは Chrome 38 で非推奨になりました。影響を受けるインターフェースは次のとおりです。
webkitIndexedDB
(メインのエントリ ポイント)webkitIDBKeyRange
(呼び出せないグローバル コンストラクタですが、便利な静的メソッドがあります)webkitIDBCursor
webkitIDBDatabase
webkitIDBFactory
webkitIDBIndex
webkitIDBObjectStore
webkitIDBRequest
webkitIDBTransaction
(呼び出し不可のグローバル コンストラクタ)
削除の意向 | Chromestatus トラッカー | Chromium のバグ
WebAudio: 接頭辞付きの AudioContext と OfflineAudioContext を削除
Chrome は 2011 年半ばから WebAudio
(AudioContext
を含む)をサポートしています。OfflineAudioContext
は翌年に追加されました。標準インターフェースがサポートされている期間と、接頭辞付きの機能を削除するという Google の長期的な目標を考慮して、これらのインターフェースの接頭辞付きバージョンは 2014 年後半から非推奨になり、現在削除されています。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
webkitCancelRequestAnimationFrame のサポート終了と削除
webkitCancelRequestAnimationFrame()
メソッドは、ベンダー固有の廃止 API であり、標準の cancelAnimationFrame()
は長い間 Chromium でサポートされています。そのため、WebKit バージョンは削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
usemap 属性の大文字と小文字を区別しない一致を非推奨に
usemap
属性は以前、大文字と小文字を区別しない属性として定義されていました。残念ながら、この実装は複雑すぎて、どのブラウザも正しく実装しませんでした。調査によると、このような複雑なアルゴリズムは不要であり、ASCII の大文字と小文字を区別しない照合も不要であることが示唆されています。
そのため、大文字と小文字が区別される一致が適用されるように仕様が更新されました。古い動作は Chrome 57 で非推奨になり、Chrome 58 で削除される予定です。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
Service Worker での FileReaderSync の非推奨
Service Worker の仕様には、サービス ワーカーをブロックしないように、「あらゆる種類の同期リクエストをサービス ワーカー内で開始してはならない」という(規範外の)注記が常に記載されています。サービス ワーカーをブロックすると、制御対象のページからのすべてのネットワーク リクエストがブロックされます。残念ながら、FileReaderSync
API は Service Worker で長い間使用されてきました。
現在、サービス ワーカーで FileReaderSync
を公開しているのは Firefox と Chrome のみです。仕様に関するディスカッションでは、Firefox から、この問題を修正すべきだという意見が寄せられています。削除は Chrome 59 で予定されています。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
HTMLEmbedElement と HTMLObjectElement の以前の呼び出し元を非推奨に
インターフェースにレガシー コール元がある場合、インスタンスを関数として呼び出すことができます。現在、この機能は HTMLEmbedElement
と HTMLObjectElement
でサポートされています。Chrome 57 では、この機能は非推奨になりました。削除後(Chrome 58 で予定)、呼び出しを行うと例外がスローされます。
この変更により、Chrome は最近の仕様変更に沿うようになります。従来の動作は Edge や Safari ではサポートされておらず、Firefox から削除されています。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
「negotiate」の RTCRtcpMuxPolicy を非推奨に
rtcpMuxPolicy
は、RTP/RTCP 多重化の使用に関する優先ポリシーを指定するために Chrome で使用されます。Chrome 57 では、次の理由により、デフォルトの rtcpMuxPolicy
を「require」に変更し、「negotiate」を非推奨にしました。
- 非多重化 RTCP は追加のネットワーク リソースを使用します。
- 「negotiate」を削除すると、API サーフェスが簡素化されます。これは、「RtpSender」/「RtpReceiver」に単一のトランスポートしか存在しなくなるためです。
Chrome 57 では、「negotiate」が非推奨になりました。非推奨メッセージが表示され、RTCPeerConnection
は引き続き作成できるため、この変更は致命的ではないと考えています。削除は Chrome 63 で実施されます。
サブリソース リクエストでの埋め込み認証情報のサポートを非推奨に
認証情報をサブリソース リクエストにハードコードすることは、過去にハッカーが認証情報をブルートフォース攻撃できたため、セキュリティの観点から問題があります。これらの危険性は、内部 IP 範囲(ルータなど)に到達する認証情報付きのサブリソース リクエストで悪化します。使用頻度が低いことを踏まえ、この(小さな)セキュリティ ホールを閉じることは非常に妥当なようです。
開発者は、基本認証/ダイジェスト認証を必要としないリソースを埋め込み、代わりに Cookie などのセッション管理メカニズムに依存できます。