ほぼすべてのバージョンの Chrome で、プロダクト、そのパフォーマンス、ウェブ プラットフォームの機能に多くの更新と改善が加えられています。この記事では、3 月 16 日時点でベータ版である Chrome 58 の非推奨と削除について説明します。このリストは随時変更される可能性があります。
Android のマウスで TouchEvent の発生が停止する
Chrome 57 までは、Chrome の Android 低レベルマウスイベントは主に、タッチ操作用に設計されたイベントパスに沿って処理されていました。たとえば、マウスボタンが押されている間にマウスのドラッグ操作が行われると、MotionEvents
が生成され、View.onTouchEvent
を介して配信されます。
ただし、タッチイベントはホバーをサポートできないため、ホバー中の mousemove は別のパスをたどっていました。この設計には、マウス操作で TouchEvents
がトリガーされる、すべてのマウスボタンが左マウスボタンとして表示される、MouseEvents
が TouchEvents
によって抑制されるなど、多くの副作用がありました。
Chrome 58 以降、Android M 以降のモバイル マウスでは、次のことが可能になります。
TouchEvents
を呼び出さなくなりました。- 適切なボタンやその他のプロパティを使用して、一貫した
MouseEvents
シーケンスを発行します。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
usemap 属性の大文字と小文字を区別しない一致を削除
usemap
属性は以前、大文字と小文字を区別しない属性として定義されていました。残念ながら、この実装は複雑すぎて、どのブラウザも正しく実装しませんでした。調査の結果、このような複雑なアルゴリズムは不要であり、ASCII の大文字と小文字を区別しない照合も不要であることが示唆されました。
そのため、大文字と小文字が区別される一致が適用されるように仕様が更新されました。古い動作は Chrome 57 で非推奨になり、削除されました。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
コンテンツによって開始されたデータ URL へのトップフレーム ナビゲーションを削除
技術に精通していないブラウザ ユーザーには馴染みがないため、なりすましやフィッシング攻撃で data:
スキームが使用されるケースが増えています。これを防ぐため、ウェブページがトップフレームで data:
URL を読み込まないようにブロックしています。これは、<a>
タグ、window.open
、window.location
、および同様のメカニズムに適用されます。data:
スキームは、ページの下で読み込まれるリソースでも引き続き機能します。
この機能は Chrome 60 で削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
モーションパス プロパティの非推奨の名前を削除
モーション パスの CSS プロパティを使用すると、作成者が指定したパスに沿って任意のグラフィック オブジェクトをアニメーション化できます。仕様に準拠して、いくつかのプロパティが Chrome 45 に実装されました。これらのプロパティの名前は、2016 年半ばに仕様で変更されました。Chrome では、Chrome 55 と Chrome 56 で新しい名前を実装しました。コンソールの非推奨に関する警告も実装されました。
Chrome 58 では、古いプロパティ名が削除されます。影響を受けるプロパティとその新しい名前は次のとおりです。
削除されたプロパティ | 現在の名前 |
---|---|
motion-path | offset-path |
motion-offset | offset-distance |
motion-rotation | offset-rotate |
モーション | offset |
安全でないコンテキストから EME を削除
Encrypted Media Extensions(EME)の使用方法によっては、オープンソースではないデジタル著作権管理の実装が公開されたり、永続的な一意の識別子へのアクセスが含まれたり、サンドボックス外で実行されたり、特権アクセスで実行されたりすることがあります。非セキュアな HTTP 経由で公開されるサイトは、チャンネル上の誰からも攻撃される可能性があるため、セキュリティ リスクが高くなります。また、ユーザーの同意が必要な場合、保護されていない HTTP サイトに対して同意が保持されていると、そのような攻撃者に悪用される可能性があります。
セキュアでないコンテキストのサポートは EME バージョン 1 仕様から削除され、提案された推奨事項でもサポートされていません。また、今後の最終的な推奨事項でもサポートされる予定はありません。この API は、Chrome 44(2015 年 5 月)以降、安全でないオリジンで非推奨メッセージが表示されています。Chrome 58 では削除されました。この変更は、安全でないオリジンから強力な機能を削除する幅広い取り組みの一環です。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
HTMLEmbedElement と HTMLObjectElement の従来の呼び出し元を削除
インターフェースにレガシー コール元がある場合、インスタンスを関数として呼び出すことができます。現在、この機能は HTMLEmbedElement
と HTMLObjectElement
でサポートされています。この機能は Chrome 57 で非推奨になりました。Chrome 58 以降では、呼び出しが例外をスローします。
この変更により、Chrome は最近の仕様変更に沿うようになります。従来の動作は Edge や Safari ではサポートされておらず、Firefox から削除されています。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
標準前 ChaCha20-Poly1305 暗号を削除
2013 年に Chrome 31 で、Dan Bernstein 教授の ChaCha20 と Poly1305 アルゴリズムに基づく新しい TLS 暗号スイートが導入されました。これらは、後に IETF で RFC 7539 および RFC 7905 として、若干の調整を加えて標準化されました。標準化されたバリアントは、2016 年初頭の Chrome 49 でリリースされました。標準化前のバリエーションは削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
証明書での commonName の一致のサポートを削除
RFC 2818 では、ドメイン名と証明書を照合する 2 つの方法が説明されています。subjectAlternativeName
拡張機能内で使用可能な名前を使用する方法と、SAN 拡張機能がない場合は commonName
にフォールバックする方法です。commonName
へのフォールバックは RFC 2818(2000 年公開)で非推奨になりましたが、多くの TLS クライアントでサポートが残っています(多くの場合、誤ってサポートされています)。
subjectAlternativeName
フィールドを使用すると、証明書が IP アドレスまたはドメイン名へのバインディングを表しているかどうかが明確になり、名前の制約との相互作用に関して完全に定義されます。ただし、commonName
は曖昧であり、このため、Chrome、Chrome で使用するライブラリ、TLS エコシステム全体でセキュリティ バグの原因となっていました。
commonName
を削除した場合の互換性リスクは低い。RFC 2818 では、この方法は 20 年近く前に非推奨になっています。また、ベースライン要件(すべての公的に信頼できる認証局が遵守する必要がある要件)では、2012 年以降、subjectAltName
の存在が義務付けられています。Firefox では、Firefox 48 以降、新たに発行される公的に信頼されている証明書に subjectAltName
がすでに必要になっています。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
TextTrack の VTTRegion 関連ビット
インターフェース要素 regions
、addRegion()
、removeRegion()
は WebVTT 仕様から削除され、最新の仕様に準拠するため Chrome 58 で削除されます。この機能はデフォルトで有効にされることはないため(つまりフラグの背後にありました)、この削除による影響はほとんどないと予想されます。代替手段が必要な場合は、Chrome 58 で追加される VTTCue.region
プロパティを使用できます。
Chromestatus トラッカー | Chromium のバグ
WebAudio: AudioSourceNode インターフェースを削除
AudioSourceNode
インターフェースは Web Audio 仕様の一部ではなく、コンストラクタがなく、属性もないため、基本的にデベロッパーがアクセスできる機能はありません。そのため、削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
webkitdropzone グローバル属性を削除
dropzone
グローバル属性は、HTML5 ドラッグ&ドロップ仕様で導入された宣言型の方法で、HTML 要素がドラッグ&ドロップ オペレーションのターゲットになるかどうか、要素にドロップできるコンテンツ タイプ、ドラッグ&ドロップ オペレーション(コピー/移動/リンク)を指定します。
この属性はブラウザ ベンダーの間で普及しませんでした。Blink と WebKit は、接頭辞付きの属性 webkitdropzone
のみを実装します。dropzone
属性は 2017 年 3 月上旬に仕様から削除されたため、接頭辞付きのバージョンは Chrome から削除されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
安全でない通知の使用を非推奨にする
通知は強力な機能です。ウェブサイトがシステム UI を呼び出して、個人情報自体または個人情報が変更されたというシグナルを送信できるためです。攻撃者は、安全でない接続を介して通知で送信された情報をスニッフまたは盗む可能性があります。ウェブプッシュには安全なオリジンが必要であるため、この変更により、プッシュ以外の通知がプッシュ通知と同等になります。この変更は、安全でないオリジンから強力な機能を削除する幅広い取り組みの一環です。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
安全でない iframe からの通知の使用を非推奨にする
iframe からの権限リクエストは、包含ページのオリジンとリクエストを行っている iframe のオリジンを区別するのが難しいため、ユーザーを混乱させる可能性があります。リクエストのスコープの明確性が欠けていると、ユーザーは権限を付与または拒否するかどうかを判断することが難しくなります。
iframe での通知を禁止することで、通知権限の要件がプッシュ通知の要件と一致し、デベロッパーの負担が軽減されます。
この機能を必要とするデベロッパーは、新しいウィンドウを開いて通知の権限をリクエストできます。
削除は Chrome 62 で実施されます。
削除の意向 | Chromestatus トラッカー | Chromium のバグ
indexedDB.webkitGetDatabaseNames() を削除
この機能は、Indexed DB が Chrome で比較的新しい機能で、接頭辞が流行していたときに追加されました。API は、オリジン内の既存のデータベース名のリストを非同期で返します。これは十分に理にかなっています。
残念ながら、この設計には欠陥があります。結果は返された直後に無効になる可能性があるため、真剣なアプリケーション ロジックではなく、ロギングにのみ使用できます。GitHub の問題には、別のアプローチが必要な代替案に関する以前のディスカッションへのリンクが記載されています。デベロッパーの関心は断続的にありますが、クロスブラウザの進展がないため、ライブラリ作成者によって問題は回避されています。
この機能を必要とするデベロッパーは、独自のソリューションを開発する必要があります。たとえば、Dexie.js などのライブラリは、データベースの名前を追跡する別のデータベースであるグローバル テーブルを使用します。
この機能は Chrome 60 で削除されました。