Chrome 157は、Google Chromeの新しい版です。Web開発者が使える新機能と、仕様の変更が並んでいます。Chrome Platform Status(Google公式)のリリースノートによると、特に目立つのは次の3点です。
- Android版Chromeに、端末内で言語を判定するAPIが入る
- Background FetchにCORSが適用される
- CSSに、角の形を一括で指定する書き方が入る
CSS(Webページの見た目を決める言語)とAPI(アプリから呼び出す仕組み)の変更が中心です。ふつうの利用者が操作を変える場面は多くありません。
Android版に言語判定API、通信はクラウドに出さない
Language Detector APIは、文章がどの言語で書かれているかを判定する機能です。今回、Chrome for Android(Clank)で使えるようになります。
リリースノートによると、判定は端末内の機械学習モデルで動きます。速く、プライバシーに配慮でき、オフラインでも動く点が特徴です。Webアプリはクラウドの判定サービスに頼らずに済みます。
Background FetchにCORSが適用される
セキュリティ面では、Chrome 157からBackground Fetch APIにCORS(別のサイトへの通信を制限する仕組み)が適用されます。
Googleの説明では、これは仕様の意図にChromiumの実装を合わせる変更です。通常のFetchと同じ安全ルールが、Background Fetchにも当てはまります。Local Network Access(ローカルネットワークへのアクセス確認)も対象です。
ねらいは、通常のFetchではなくBackground Fetchを使うことで、CORSなどの確認を回避する手口を防ぐことです。すでにBackground Fetchを使っているサイトは、通信先がCORSを許可しているか確かめる必要があります。
CSSの角指定と文字装飾
CSSでは、角まわりの指定をまとめて書ける「corner」系の一括指定が入ります。
- corner-top-left、corner-top-right、corner-bottom-left、corner-bottom-rightの各角用
- corner-top、corner-bottomの物理方向用
- corner-block-start、corner-block-endなどの論理方向用
border-radius(角の丸み)とcorner-shape(角の形)を、1つの宣言で個別の角に設定できます。cornersは互換用の別名として残ります。
text-decoration-insetは、下線・上線・打ち消し線を、文字の端から内側へ縮めるか外側へ伸ばすかを決めます。auto、長さ、パーセントの値を使えます。背景のグラデーションや追加の要素を使わずに、ネイティブの文字装飾で表現を作れます。
text-overflowには文字列の値が加わります。はみ出した文章の末尾に「(more)」のような任意の文字列を表示できます。
position-visibilityでは、anchor-validとanchor-visibleを出荷します。CSSWGが名前を単数形にそろえることを決め、anchors-validとanchors-visibleは別名として残ります。複数形は非推奨ですが、今回は削除されません。
Sanitizer、Service Worker、Web Bluetooth
Sanitizer API(HTMLを安全な形に整える仕組み)には、javascriptURLsオプションが加わります。javascript:で始まるURLは、ページ移動に使われるときに無害化されます。従来は「安全」な方式の副作用として行われ、「危険」な方式では省かれていました。HTML標準がこれを整理し、開発者が選べるオプションにしました。オプションを使わない場合の動作は変わりません。
Service Workerでは、ProgressEventが使えるようになります。lengthComputable、loaded、totalの各属性を持つ進捗イベントを作れます。他のワーカーやXMLHttpRequestの標準とそろいます。
Web Bluetoothでは、BluetoothRemoteGATTServerがEventTargetを継承します。addEventListener()などが使え、接続レベルのイベントをGATTサーバーで直接扱えます。
描画・性能・実験機能
WebGPUのatomic-vec2u-min-maxでは、64ビット整数の完全対応がなくても、一部のアルゴリズムを実装できます。HTML-in-canvasも項目に入っています。
性能面では、Long Animation Frame APIにstyleDurationとforcedStyleDurationが加わります。スタイル計算とレイアウトの時間を区別して測れます。
DOMでは、HTMLの挿入とストリーミングの新しい方式が示されました。before、after、append、prepend、replaceWithがHTMLを受け取る方式のほか、WritableStreamを返すstream系の方式もあります。
カメラ・マイク・位置情報の部品のアイコン専用表示や、Overscroll Areasも審査待ちです。Connection Allowlistsの埋め込み適用は、新しいオリジントライアル(試験提供)として示されています。
編集部の見方として、今回の中心はBackground FetchへのCORS適用です。安全確認の抜け道が1つ閉じるため、使っているサイトは動作確認が要ります。