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

ジョー・メドレー
Joe Medley

Chrome のほぼすべてのバージョンで、プロダクト、パフォーマンス、ウェブ プラットフォームの機能に関して、多数の更新と改善が行われています。この記事では、3 月 16 日時点でベータ版の Chrome 58 でのサポート終了と削除について説明します。このリストは随時変更される可能性があります。

Android のマウスが TouchEvents の呼び出しを停止する

Chrome 57 までは、Chrome における Android の低レベルのマウスイベントは、主にタップ操作用に設計されたイベントパスに従っていました。たとえば、マウスボタンが押されている間にマウスドラッグ モーションが発生すると、View.onTouchEvent を通じて配信される MotionEvents が生成されます。

ただし、タッチイベントはホバーに対応していないため、ホバーのマウス移動は別のパスをたどります。この設計には、TouchEvents を起動するマウス操作、すべてのマウスボタンが左のマウスボタンとして表示される、TouchEvents によって MouseEvents が抑制されるなど、多くの副作用がありました。

Chrome 58 以降、Android M 以降のマウスは以下のようになります。

  • TouchEvents は配信されなくなりました。
  • 適切なボタンやその他のプロパティを使用して、一貫した MouseEvents シーケンスを呼び出します。

削除の目的 | Chromestatus Tracker | Chromium のバグ

usemap 属性の大文字と小文字を区別しない一致を削除

usemap 属性は、以前は(大文字と小文字を区別しない)と定義されていました。残念ながら、これを実装する方法は複雑であるため、どのブラウザでも正しく実装することができませんでした。調査によると、このような複雑なアルゴリズムは不要で、ASCII の大文字と小文字を区別しない一致も不要です。

そのため、大文字と小文字を区別する一致が適用されるように仕様が更新されました。Chrome 57 で以前の動作が非推奨になり、削除されました。

削除の目的 | Chromestatus Tracker | Chromium のバグ

コンテンツから開始されたデータ URL へのトップフレーム ナビゲーションを削除する

技術的な知識のないブラウザ ユーザーにはなじみが薄いため、なりすましやフィッシング攻撃で data: スキームが使用されるようになっています。これを防ぐため、ウェブページが先頭のフレームで data: URL を読み込まないようにブロックしています。これは、<a> タグ、window.openwindow.location などのメカニズムに適用されます。data: スキームは、ページによって下に読み込まれたリソースに対しては引き続き機能します。

この機能は Chrome 60 で廃止される予定です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

モーションパス プロパティの非推奨の名前を削除

モーションパスの CSS プロパティを使用すると、作成者が指定したパスに沿ってグラフィカル オブジェクトをアニメーション化できます。仕様に従って、いくつかのプロパティが Chrome 45 で実装されました。これらのプロパティの名前は、2016 年半ばに仕様で変更されました。Chrome 55 と Chrome 56 では新しい名称が実装されました。コンソールのサポート終了の警告も実装されました。

Chrome 58 では、古いプロパティ名は削除されます。影響を受けるプロパティと新しい名前は以下のとおりです。

削除されたプロパティ 現在の名前
モーションパス オフセットパス
モーション オフセット オフセット距離
モーション回転 オフセット回転
モーション offset

削除の目的

安全でないコンテキストから EME を削除する

Encrypted Media Extensions(EME)の使用目的によっては、オープンソースではないデジタル著作権管理の実装、永続的な一意の識別子へのアクセス、サンドボックス化されていない、または特権アクセスで実行されるデジタル著作権管理の実装が公開されています。セキュアでない HTTP で公開されるサイトでは、チャネル上の誰でも攻撃される可能性があるため、セキュリティ上のリスクが高くなります。さらに、ユーザーの同意が必要な場合は、セキュアでない HTTP サイトで永続化された承認が、このような攻撃者に悪用される可能性があります。

セキュアでないコンテキストのサポートは、EME バージョン 1 仕様から削除されたため、推奨事項の提案ではサポートされず、後続の最終推奨事項でもサポートされません。今後提案される推奨事項と後続の最終的な推奨事項には含まれません。Chrome 44(2015 年 5 月)以降、保護されていないオリジンに対して、この API のサポート終了メッセージが表示されます。Chrome 58 では削除されました。この変更は、安全でないオリジンから強力な機能を削除するための Google の幅広い取り組みの一環です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

HTMLEmbedElement と HTMLObjectElement の従来の呼び出し元を削除する

以前の呼び出し元があるインターフェースは、インスタンスを関数として呼び出すことができます。現在、この機能は HTMLEmbedElementHTMLObjectElement がサポートしています。Chrome 57 では、この機能は非推奨になりました。Chrome 58 以降では、呼び出すと例外がスローされます。

この変更により、Chrome は最近の仕様変更に合わせることができます。従来の動作は Edge と Safari ではサポートされていないため、Firefox では削除される予定です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

事前標準の ChaCha20-Poly1305 暗号を削除

2013 年、Chrome 31 では Dan Bernstein 教授の ChaCha20 および Poly1305 アルゴリズムに基づく新しい TLS 暗号スイートがデプロイされました。これらは後に、IETF で RFC 7539RFC 7905 として、少し調整を加えて標準化されました。標準化されたバリアントは、2016 年の初めに Chrome 49 でリリースされました。現在、標準より前のバリエーションは削除されます。

削除の目的 | Chromestatus Tracker | Chromium のバグ

証明書の commonName マッチングのサポートを削除

RFC 2818 には、ドメイン名と証明書を照合する方法が 2 つ記載されています。1 つは subjectAlternativeName 拡張機能内で使用可能な名前を使用する方法です。もう 1 つは、SAN 拡張機能がない場合は commonName にフォールバックするものです。commonName のフォールバックは RFC 2818(2000 年に公開された)で非推奨になりましたが、多くの TLS クライアントでサポートが残っています(多くの場合は誤り)。

subjectAlternativeName フィールドを使用すると、証明書が IP アドレスとドメイン名のどちらのバインディングを表しているかが明確になり、名前制約との相互作用に関して完全に定義されます。ただし、commonName は不明確です。そのため、Chrome、使用するライブラリ、さらには TLS エコシステム内で、サポートがセキュリティ上のバグの原因となっていました。

commonName を削除する際の互換性のリスクは低いです。この機能は、RFC 2818 で約 20 年にわたり非推奨となっており、2012 年以降、ベースライン要件(公的に信頼されているすべての認証局が遵守しなければならないもの)では subjectAltName の存在が必須になっています。Firefox 48 以降、Firefox では新しく公的に信頼されている証明書に subjectAltName が必要です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

インターフェース要素 regionsaddRegion()removeRegion() は、WebVTT 仕様から削除され、最新の仕様に準拠するために Chrome 58 で削除されています。この機能はデフォルトでは有効にならない(つまり、フラグの背後に存在していた)ため、今回の変更による影響はほとんどありません。代替が必要な場合は、Chrome 58 で追加される VTTCue.region プロパティを使用できます。

Chromestatus トラッカー | Chromium のバグ

WebAudio: AudioSourceNode インターフェースを削除

AudioSourceNode インターフェースは、ウェブオーディオ仕様の一部ではなく、構築可能ではなく、属性を持たないため、基本的にデベロッパーが利用できる機能はありません。そのため、この URL は削除されます。

削除の目的 | Chromestatus Tracker | Chromium のバグ

webkitdropzone グローバル属性を削除

dropzone グローバル属性は、HTML 要素がドラッグ&ドロップ操作の対象になるかどうか、要素にドロップできるコンテンツ タイプ、ドラッグ&ドロップ操作(コピー、移動、リンク)を指定する宣言型の方法として、HTML5 のドラッグ&ドロップ仕様で導入されました。

この属性は、ブラウザ ベンダーの間で人気を集めることができませんでした。Blink と WebKit は、接頭辞付き属性 webkitdropzone のみを実装します。dropzone 属性は 2017 年 3 月上旬に仕様から削除されたため、プレフィックス付きのバージョンは Chrome から削除されます。

削除の目的 | Chromestatus Tracker | Chromium のバグ

通知の安全でない使用のサポート終了

通知は、ウェブサイトがシステム UI を呼び出して個人情報自体または個人情報が変更されたことを示すシグナルを送信できる、強力な機能です。攻撃者は、安全でない接続で通知を通じて送信された情報を盗み取ったり、盗んだりする可能性があります。ウェブプッシュには安全な送信元が必要であるため、この変更により、プッシュ通知以外の通知とプッシュ通知が調整されます。この変更は、安全でないオリジンから強力な機能を削除するための Google の幅広い取り組みの一環です。

削除の目的 | Chromestatus Tracker | Chromium のバグ

安全でない iframe からの通知の使用のサポート終了

iframe からの権限リクエストは、ユーザーを混乱させる可能性があります。コンテンツが含まれているページのオリジンと、リクエストを行っている iframe の生成元を区別することが難しいためです。リクエストの範囲が不明確な場合、ユーザーが権限を付与するか拒否するかを判断するのは困難です。

また、iframe で通知を禁止することで、通知権限の要件がプッシュ通知の要件と整合するため、デベロッパーの負担が軽減されます。

この機能を必要とするデベロッパーは、新しいウィンドウを開いて通知権限をリクエストできます。

削除は Chrome 62 で行われます。

削除の目的 | Chromestatus Tracker | Chromium のバグ

indexDB.webkitGetDatabaseNames() を削除する

この機能は、Indexed DB が Chrome で比較的新しく、プレフィックスを追加することが流行っていたときに追加されました。API は、オリジンの既存のデータベース名のリストを非同期で返します。これは十分に意味があるように思えます。

残念ながら、返された結果がすぐに古くなる可能性があるという設計上の欠陥があります。そのため、ロギングにしか使用できず、深刻なアプリケーション ロジックは使用できません。GitHub の問題には、別のアプローチが必要になる以前の説明へのリンクが含まれています。デベロッパーの間では関心が集まっていますが、ブラウザ間での進歩がないため、ライブラリの作成者によって問題が解決されています。

この機能を必要とするデベロッパーは、独自のソリューションを開発する必要があります。たとえば、Dexie.js のようなライブラリでは、グローバル テーブルを使用していますが、このテーブル自体も、データベース名をトラッキングするためのデータベースです。

この機能は Chrome 60 で削除されます。

サポート終了の予告 | Chromestatus Tracker | Chromium のバグ