API のサポート終了と削除(Chrome 57)

Joe Medley
Joe Medley

ほぼすべてのバージョンの Chrome で、プロダクト、そのパフォーマンス、ウェブ プラットフォームの機能に多くの更新と改善が加えられています。この記事では、2 月上旬時点でベータ版である Chrome 57 の非推奨と削除について説明します。このリストは随時変更される可能性があります。

BluetoothDevice.uuids 属性を削除

Web Bluetooth API を現在の仕様に準拠させるため、BluetoothDevice.uuids 属性が削除されます。許可されているすべての GATT サービスを取得するには、device.getPrimaryServices() を呼び出します。

Chromium のバグ

鍵生成要素を削除

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 年半ばから WebAudioAudioContext を含む)をサポートしています。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 の以前の呼び出し元を非推奨に

インターフェースにレガシー コール元がある場合、インスタンスを関数として呼び出すことができます。現在、この機能は HTMLEmbedElementHTMLObjectElement でサポートされています。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 で実施されます。

サポート終了の予定 | Chromium のバグ

サブリソース リクエストでの埋め込み認証情報のサポートを非推奨に

認証情報をサブリソース リクエストにハードコードすることは、過去にハッカーが認証情報をブルートフォース攻撃できたため、セキュリティの観点から問題があります。これらの危険性は、内部 IP 範囲(ルータなど)に到達する認証情報付きのサブリソース リクエストで悪化します。使用頻度が低いことを踏まえ、この(小さな)セキュリティ ホールを閉じることは非常に妥当なようです。

開発者は、基本認証/ダイジェスト認証を必要としないリソースを埋め込み、代わりに Cookie などのセッション管理メカニズムに依存できます。

削除の意向 | Chromestatus トラッカー | Chromium のバグ