
2026/09/05 7:47
レディバードの今月 - 2026年8月
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Ladybird ウェブブラウザは、安定性とパフォーマンスにおいて著しい進歩を遂げ、主要競合他社との対等性を高めるための重要な機能を導入しました。主な技術的進展としては、ブレークポイントとステップ機能付きのフル JavaScript デバッグ対応(DevTools での実装) (#11128)、断片化された MP4 や AV1 などの最新動画形式をサポートすることで Twitch や YouTube などで発生していたクラッシュを修正した点、CSS スクロール・スナップの実装があります。パフォーマンスも大幅に向上しており、Speedometer 2 のスコアが約 47 から約 64 に上昇し、新しいスタイルエンジンによるレイアウト結果の効率的なキャッシュ化により、StyleBench スコアが業界リーダーと同等の水準に達しました。
安定性の強化によりクラッシュやフェイクエラーページを防ぎ、適切なクラッシュ回復を実現 (#11402)。ブラウザはセッション復元を完全にサポートし、再起動時にもタブ履歴やナビゲーション状態を保持でき、ダウンロードも再開・再停止が可能な対応を提供します。UI の使いやすさについては、アラートや図の表示のためにページ内オーバーレイを導入することでロックによる不便を防ぎ、HTTP を使用した localhost ナビゲーションに対する堅牢な処理を実装しました。今後の開発では、並列ダウンロード接続の強化と、専用コンポジターを活用してメインスレッドから外れた CSS アニメーションの実行といった最適化に焦点が当てられています。これらのアップデートは、重要なパイプラインでの Rust オナシパシップ(所有権)を拡張することにより裏付けられおり、Ladybird を滑らかな閲覧体験と強力なデベロッパーツールを提供する実用的な代替案へと位置付けています。
本文
Ladybird ブラウザ:8 ヶ月の画期的アップデートと技術革新
2025 年 8 月は、Ladybird ブラウザにとって多数の機能追加と技術的飛躍があった重要な月です。Twitch 動画再生や YouTube フォーマット対応などユーザー向け機能に加え、エンジンコアのパフォーマンス向上や Rust への移行など、裏側での基盤強化も進みました。
🔥 主な新機能とアップデート
📺 動画再生機能の大幅拡充
- Twitch 再生対応:Media Source Extensions の実装により、フラグメンテッド MP4 と AVC/H.264、HEVC/H.265、AV1、AAC コーデックへの完全対応を達成。これにより Twitch や Plex での適応型ビットレート動画再生が可能に。
- YouTube フォーマット補完:従来の WebM 以外に、一部の旧形式や高画質(8K)用の AV1 など、より多くのフォーマットで動作するようになりました。
- 再生安定性の向上:
- YouTube 動画カードプレビューでのクラッシュ解消 (#10992)。
を使用したプレイヤーの停止現象解消 (#11454)。preload="none"- HLS.js ベースのプレイヤーも再生開始が可能に (#11480)。
📜 CSS 機能の実装
- スクロール・スナップ:
、scroll-snap-type
、scroll-align
のサポート。ホイール操作、キーボード、タッチパッド投げ動作などで発動し、カルーセルや全画面スクローラなどの構築が可能に (#10944)。scroll-snap-stop- ※
にはまだスナップ機能は含まれません。scrollIntoView()
- ※
🛠️ DevTools とデバッグ機能
- JavaScript デバッグ:ブレークポイントの設定、ステップ実行、ウォッチ式評価の実装完了 (#11128)。\
- ※ Wasm デバッグや DOM 変異によるブレークポイントは今後の課題です。
- Firefox DevTools フロントエンドを暫定フロントエンドとして利用中。
💾 ダウンロードとセッション管理
- 中断して再開可能なダウンロード:サーバー対応時、一時停止/再開機能を実装。再起動しても設定が維持されます (#10932)。並列接続(最大 4 箇所)もサポート。
- セッション履歴の完全復元:
でタブを開くと、URL だけでなく「バック/フォワード」を含む全セッション履歴が復元され、再起動でも維持されます (#11178)。Ctrl+Shift+T- ※「タブを複製」機能も同様にセッション履歴を複製します (#11286)。
🖥️ ブラウザ UI の改善
- セキュリティ強化:
リンクは外部 URL と同様の確認ダイアログを表示。危険なスキームや再帰的起動からの保護強化 (#10846)。mailto: - JavaScript ダイアログの変更:
、alert()
、confirm()
はシステムモーダルではなく Qt UI 内のインページオーバーレイとして表示。\prompt()
などの無限ループでもブラウザ全体のロックを回避。タブ切り替えや閉鎖が可能に (#11264)。while(true) alert("lol")
- クラッシュからの回復:偽の履歴注入問題を解消。クラッシュ画面が表示されつつも実際のエントリが保持され、リロードから再開可能 (#11402)。
- localhost への対応:
やlocalhost:8000
への入力時に http プロトコルで正常に動作 (#11007)。127.0.0.1 - Wayland 向け修正:オムニボックスの保持、タブサイクルフォーカス制御、マウスリリアスバグなど多角的な不具合解消 (#10862, #11149, #10868, #11343)。
🌐 サイト互換性ルール
- 宣言的な対応策:各サイトごとに User-Agent を検知して壊れたコンテンツを返す代わりに、JSON 形式のルールファイルを読み込む方式へ移行 (#11327)。
- 初適用対象:
とnytimes.com
。User-Agent に "Ladybird" を含めることで正常にレンダリング (#11333)。cnn.com
- 初適用対象:
🎨 CSS 改善の詳細
- 3D 変換:境界での平坦化 (
)、背面非表示 (transform-style: flat
)、正確な深さソート(BSP ツリー使用)などの欠落解消。backface-visibility
リンダラーのテストで壁の描画順序が正しく (#11466)。cssDOOM - overflow-wrap:折り返せない単語がコンテナから溢れ出る問題解消。Google 翻訳での表示顕著改善 (#11416)。
- ※ RTL テキストへの緊急折り返しは未対応。
- 右から左へスクロール:RTL コンテンツでも正しい方向へスクロール可能 (#1023)。
- テキスト装飾:装飾ボックス自体のプロパティを使用し、BBC Weather のアンダーライン問題解消 (#10744)。
🚀 エンジンパフォーマンスと基盤強化
パフォーマンス向上実績 (Speedometer 基準)
8 ヶ月間の改善率は以下の通りです(※成熟済みエンジンとの比較は modest な数字ですが、実在の改善)。
- Speedometer 2:約 47 → 約 64
- Speedometer 3:約 2.5 → 約 3.9
- StyleBench:約 3.5 → 約 83
🔧 具体的な高速化と修正
- DOM オペレーション:Chromium と比較して大幅な改善。
パースング:90 倍遅かったのが 約 2 倍に (#11300)。fillStyle
:13 倍遅かったのが 4 倍未満へ (#11306)。replaceChildren()- リストの挿入・削除:120 倍以上遅かったのが 20 倍未満へ (#11389)。
- JavaScript 高速パス追加:
- プロパティアクセス、スプレッド演算子、Promise コンビネーター、JSON.stringify (V8 の 15% 以内) をサポート (#11175, #11383, #11374, #11329)。
- 配列最適化:一時に疎になる配列がハッシュテーブルに残る問題を解消。Minecraft4k で FPS 10.2 → 14.5 に (#11423)。
🦀 Rust への移行と新アーキテクチャ
技術基盤の強化として、Rust の採用を加速させています。
- 新しいスタイルエンジン (#11088):
- セレクターマッチングや計算済みスタイルの処理を一新。「変更された要素のみ」にリソースを集中する仕組みへ。
- DOM 変異などを「typed deltas」として扱い、依存関係がない場合は処理を停止させる増分更新方式を採用。
- StyleBench で主要エンジンと同等レベルに到達。
- レイアウト結果のキャッシュ化 (#11113):
- 入力制約に基づいてレイアウト結果をキャッシュ・再利用可能に。
- フラグメントオフセットに対応し、ネストされたフレックス配置などでも正しく計算されるように (#11346)。
- CSS アニメーションのオフロード化 (#11470):
- 以前はメインスレッドが負荷が高かったが、コンポジター(合成器)へ渡すことで独立した vsync で実行。
- メインスレッドでの競合を解消し、電力消費削減と滑らかな動作を実現。
- LibWeb の Rust 化:
- CSS パース:Rust パーサーへの完全移行(A/B モード併走を経て) (#11318)。
- 計算済みスタイルのストレージ・計算:Rust 所有へ (#11155)。
- 描画パイプライン:移植完了、古い C++ オブジェクト削除 (#11222, #11273)。
- 専用 Wasm コンパイルサービス:
- ページプロセスがコンパイラをフォークするのを廃止。ブラウザプロセス统一管理でサンドボックス強化とパフォーマンス向上。Strava マップの読み込み時間が半分になる要因の一つ (#11333)。
🔒 安全性と信頼性(ケージ機能)
- JS 値のケージ化 (Caging):
- NaN ボックスされた JS 値に格納されるセルポインタに対して「ケージ」機能を追加。
- GC ヒープブロックは単一の予約済み領域内に収まり、破損した値が任意のメモリを指し示すのを防止 (#11086, #11316)。
📊 Web プラットフォームテスト (WPT) と他分野
WPT スコア向上
- 総合スコア:2,079,020 → 2,088,677(+9,657 点)。
- 最大の改善は「リファラポリシー」関連の約 2,500 サブテスト(ナビゲーションや iframe 間での伝播など)。現在はスイートの 99% を通過。
ネットワーキング
- 証明書チェーン:Linux 上でも不完全な中間証明書の取得でサイトが動かなくなるのを防止 (#10661)。
- 永続的なリダイレクトキャッシュ化:301 リダイレクトのラウンドトリップ削減 (#11460)。
- リロード再検証:キャッシュ済みページでもサーバーへの接触を行い、HTML 仕様のバグも発見 (#1004)。
その他顕著な変更
- WebGL 動作:ANGLE の Direct3D 11 を通じて Windows で動作可能に。
- JPEG XL デコード:Rust コード(jxl-rs)へ切り替え、Chrome/Firefox と同等の基盤採用 (#11386)。
- 非表示ウィンドウの停止:レンダリングやフレーム描画を抑制し、バッテリー寿命向上。
- セッション履歴・ナビゲーションのプロセス移行(サイトアイソレーションへの足がかり) (#11116)。
- DOM と JS ラッパーの分離:メモリ削減と拡張機能スクリプトのアイソレーション実現 (#9973)。
💰 スポンサーシップについて
Ladybird は企業や個人からの支援により完全にお金(開発資金)を投入して開発されています。
8 ヶ月の新しいスポンサー
- Arnav Guleria:$5,000 のご支援ありがとうございます!
より多くの皆様にご後援いただけるよう、スポンサーページ で現状を確認いただけます。ご興味のある方は是非お問い合わせください。
🐣 アルファ版への道筋
我々は2026 年の初めに最初のアルファ版をリリースする計画を発表しました。その時点ではエンジン自体は完成していますが、以下の機能を追加します:
- ターミナル起動不要のクラッシュレポートリング
- macOS と Linux 用の署名済みインストールビルド
- 自動更新機構(アドブロックフィルタリストの自動更新含む)
- ダウンロード場所の設定機能
これがアルファ版の目的です!今月のアップデートはそのための堅固な土台作りでした。