All Posts
News bits
Chrome 136 リリース
Chrome 136 リリース
Chrome 136 がリリース。RegExp.escape静的メソッドのベースライン入りや:visitedリンク履歴のパーティショニングなど。
RegExp.escape がベースライン入り
RegExp.escape静的メソッドが全ブラウザで利用可能に。正規表現用のエスケープ処理が簡単にできる。渡された文字列を正規表現で利用するようなケースでは、そのまま RegExp などに渡すと危険なため対処が必要だったが、これによりモダンな環境では Web 標準の API のみで対処が可能になった。
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として表示されるため、通常のナビゲーション体験は維持される。
a:visited {
color: purple;
}パスワード認証情報のパスキーアップグレード
WebAuthn の条件付き作成リクエストで、既存のパスワード認証情報をパスキーにアップグレード可能。ユーザーの同意があればモーダルなしで自動作成できる。
const registration = await navigator.credentials.create({
mediation: 'conditional',
publicKey: {
challenge: /*...*/,
user: /*...*/,
rp: /*...*/,
}
});HDR 最大輝度の制限
dynamic-range-limit プロパティで HDR コンテンツの最大輝度を制限可能。
/* HDR最大輝度の制限 */
body {
dynamic-range-limit: 1000;
}著者について
Hi there. I'm hrdtbs, a frontend expert and technical consultant. I started my career in the creative industry over 13 years ago, learning on the job as a 3DCG modeler and game engineer in the indie scene.
In 2015 I began working as a freelance web designer and engineer. I handled everything from design and development to operation and advertising, delivering comprehensive solutions for various clients.
In 2016 I joined Wemotion as CTO, where I built the engineering team from the ground up and led the development of core web and mobile applications for three years.
In 2019 I joined matsuri technologies as a Frontend Expert, and in 2020 I also began serving as a technical manager supporting streamers and content creators.
I'm so grateful to be working in this field, doing something that brings me so much joy. Thanks for stopping by.