Chrome 136 リリース
Chrome 136 がリリース。RegExp.escape静的メソッドのベースライン入りや:visitedリンク履歴のパーティショニングなど。
RegExp.escape がベースライン入り
RegExp.escape静的メソッドが全ブラウザで利用可能に。正規表現用のエスケープ処理が簡単にできる。渡された文字列を正規表現で利用するようなケースでは、そのまま RegExp などに渡すと危険なため対処が必要だったが、これによりモダンな環境では Web 標準の API のみで対処が可能になった。
js
const unsafe = "a+b*c?";
const safe = RegExp.escape(unsafe);
const regex = new RegExp(safe); // /a\+b\*c\?/ リンク履歴のパーティショニング
:visited疑似クラスの履歴がサイト・フレーム単位で分離され、サイドチャネル攻撃による履歴漏洩が防止される。Chrome 136 以降、:visited履歴はグローバルなリストではなく、リンク URL・トップレベルサイト・フレームオリジンごとに分割管理される。これにより、他サイトやサードパーティ iframe からの履歴推測が不可能になった。
同一サイト内のサブページへのリンク(セルフリンク)は:visitedとして表示されるため、通常のナビゲーション体験は維持される。
css
a:visited {
color: purple;
}パスワード認証情報のパスキーアップグレード
WebAuthn の条件付き作成リクエストで、既存のパスワード認証情報をパスキーにアップグレード可能。ユーザーの同意があればモーダルなしで自動作成できる。
js
const registration = await navigator.credentials.create({
mediation: 'conditional',
publicKey: {
challenge: /*...*/,
user: /*...*/,
rp: /*...*/,
}
});HDR 最大輝度の制限
dynamic-range-limit プロパティで HDR コンテンツの最大輝度を制限可能。
css
/* HDR最大輝度の制限 */
body {
dynamic-range-limit: 1000;
}