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.open
、window.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 の従来の呼び出し元を削除する
以前の呼び出し元があるインターフェースは、インスタンスを関数として呼び出すことができます。現在、この機能は HTMLEmbedElement
と HTMLObjectElement
がサポートしています。Chrome 57 では、この機能は非推奨になりました。Chrome 58 以降では、呼び出すと例外がスローされます。
この変更により、Chrome は最近の仕様変更に合わせることができます。従来の動作は Edge と Safari ではサポートされていないため、Firefox では削除される予定です。
削除の目的 | Chromestatus Tracker | Chromium のバグ
事前標準の ChaCha20-Poly1305 暗号を削除
2013 年、Chrome 31 では Dan Bernstein 教授の ChaCha20 および Poly1305 アルゴリズムに基づく新しい TLS 暗号スイートがデプロイされました。これらは後に、IETF で RFC 7539 と RFC 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 のバグ
TextTrack の VTTRegion 関連ビット
インターフェース要素 regions
、addRegion()
、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 で削除されます。