1241 文字
6 分

Frontend Weekly 2025-05-02

Chrome 136 リリース#

日付:2025 年 4 月 29 日

Chrome 136 がリリース。RegExp.escape静的メソッドのベースライン入りや:visitedリンク履歴のパーティショニングなど。

出展:Chrome 136 の新機能

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;
}

参考:Chrome の のプライバシー保護を強化

パスワード認証情報のパスキーアップグレード#

WebAuthn の条件付き作成リクエストで、既存のパスワード認証情報をパスキーにアップグレード可能。ユーザーの同意があればモーダルなしで自動作成できる。

const registration = await navigator.credentials.create({
mediation: 'conditional',
publicKey: {
challenge: /*...*/,
user: /*...*/,
rp: /*...*/,
}
});

出展:Explainer Conditional Create - w3c/webauthn

HDR 最大輝度の制限#

dynamic-range-limit プロパティで HDR コンテンツの最大輝度を制限可能。

/* HDR最大輝度の制限 */
body {
dynamic-range-limit: 1000;
}

GSAP が完全無料化、Webflow による買収#

日付:2025 年 4 月 30 日

WebflowGSAPを買収し、全機能・全プラグインを完全無料化。これまで有料だった Club GreenSock のプラグインも商用利用含め無償提供される。

GSAP(GreenSock Animation Platform)は Web アニメーション向けのライブラリであり、Webflow は Web サイトを構築するノーコードツール。Webflow に GSAP が統合され、現在はプラグインの有効化やアニメーションのプレビューが可能。

出展:Webflow makes GSAP 100% free — plus more exciting updates

GitHub Credential Revocation API が一般公開#

日付:2025 年 4 月 29 日

GitHub の Personal Access Token(PAT)が外部で漏洩した場合、所有者以外でも REST API 経由で即時無効化できる Credential Revocation API が一般公開。認証不要で利用でき、1 時間あたり 60 リクエスト・1 リクエスト最大 1000 トークンまで。失効は監査ログに記録され、所有者にはメール通知される。組織アクセス権も即時剥奪。

出展:Credential revocation API to revoke exposed PATs is now generally available

Baseline 2025 年 4 月アップデート#

日付:2025 年 5 月 1 日

Baseline で次の機能が利用可能に。

また Baseline のエコシステムへの展開も進められている。

出展:Baseline monthly digest April 2025 | web.dev

VSCode の Baseline 表示#

VSCode Insiders が Baseline CSS/HTML 機能のツールチップ表示に対応。CSS や HTML の構文にホバーすると Baseline 対応状況が即座に分かる。

Baseline に基づいた Stylelint によるチェック#

ESLint の use-baseline ルールと同等ルールを追加するstylelint-plugin-use-baselineが公開。Baseline ステータスに基づいて CSS 機能の使用状況をチェック可能。

ESLint use-baseline ルールの年指定などのサポート#

ESLint use-baseline ルールが更新。

  • 「newly」と「widely」だけでなく年指定が可能に
  • リント対象としてセレクタをサポート
  • color-mix や conic-gradient など多くの CSS 関数もサポート
  • ESLint の recommended config で warn に設定

Browserslist クエリを発行できる browserslist-config-baseline#

Baseline ターゲット(Widely/Newly/年指定)を Browserslist クエリに変換できる browserslist-config-baseline がリリース。PostCSS や Babel などのツールチェーンで Baseline 基準のターゲット指定が可能になる。

Deno 2.3 リリース#

日付:2025 年 5 月 1 日

Deno 2.3 がリリース。deno compileの強化やローカル npm パッケージ対応など、多数の改善。

出展:Deno 2.3: Improved deno compile, local npm packages, and more

deno compile の強化#

FFI(Foreign Function Interface)や Node ネイティブアドオンに対応。これにより、ネイティブライブラリや Node プラグインを含むバイナリの生成が可能になった。不要なファイルを除外してバイナリサイズを削減できるオプションも追加。

Terminal window
deno compile --allow-ffi --allow-env main.ts
# 不要ファイルを除外
# deno compile --include folder --exclude folder/sub_folder main.ts

ローカル npm パッケージ対応#

deno.jsonpatchフィールドでローカルの npm パッケージを指定可能。npm レジストリに存在するパッケージ名であれば、ローカルのnode_modulesを参照して開発・テストができる。

deno.json
{
"patch": ["../path/to/local_npm_package"]
}

deno fmt の新機能#

埋め込み CSS、HTML、SQL のタグ付きテンプレートリテラルも整形対象に。14 個の新しいフォーマットオプションが追加され、deno.jsonで細かく整形ルールを指定できる。

deno.json
{
"fmt": {
"quoteProps": "asNeeded",
"useBraces": "always",
"trailingCommas": "always"
}
}

deno add のレジストリ指定#

deno addコマンドで--npm--jsrフラグを使い、npm や JSR レジストリからパッケージを明示的に追加できるようになった。複数レジストリの同時指定も可能。

Terminal window
deno add --npm chalk react
# JSRパッケージの追加
deno add --jsr @std/fs
# 複数レジストリを同時指定
deno add --npm chalk react jsr:@std/fs
Frontend Weekly 2025-05-02
https://blog.ohirunewani.com/series/frontend-weekly/2025-05-02/
作者
hrdtbs
公開日
2025-05-02
ライセンス
CC BY-NC-SA 4.0