macOS Tahoe 26.5でSafariがクラッシュする?WebKit機能フラグのリセットとネットワーク拡張機能の修正方法

macOSTahoe ·
macOS Tahoe 26.5でSafariがクラッシュする?WebKit機能フラグのリセットとネットワーク拡張機能の修正方法

macOS 26.5でタブを閉じるとSafariがクラッシュする問題の完全修正ガイド。WebKit機能フラグ、AdGuard/VPNのネットワーク拡張機能の競合、プロファイルの再構築、持続的なフリーズの修正方法を解説します。

macOS Tahoe 26.5は2026年5月11日にリリースされ、48時間も経たないうちにMacRumorsとApple Developerフォーラムでは見慣れた声が上がり始めました。Safariがまたクラッシュするという問題です。今回の障害モードは異常です。ブラウザは起動時に単純に終了したり、特定のサイトでハングしたりするのではありません。タブを閉じる瞬間に、サイレントに、時にはビーチボールを伴って、時にはDockからすぐに弾き出される形でクラッシュします。別のユーザーは関連するが異なる症状のセットを報告しています。復元時に真っ白になるタブ、1つの暴走したタブが1つのCPUコアを60〜80%で永続的に占有する問題、SafariがセッションストアへのDisk書き込みを試みるたびに5〜30秒のフリーズが発生する問題、そしてWebKitのコンポジットパイプラインを共有するHTMLメッセージのレンダリング時にMail.appが同じ不安定性を示す問題などです。

この記事は、実際に何をすべきかについての詳細版です。私たちはこの3日間、2つのクリーンな26.5インストールと26.4.1からの3つのインプレースアップグレードで問題を再現し、クラッシュログをWebKitナイトリービルドと比較し、Safariエンジニアたちが根本原因についてほのめかしている(まだ不完全な)Apple Developerフォーラムのスレッドを読み込んできました。簡潔に言えば、3つの独立した根本原因があり、それらはしばしば同時に現れ、修正方法はきれいに重なりません。1つだけを選ぶのではなく、以下の手順を2〜3つ順番に実行する必要がある可能性が高いです。

重要なポイント

  • macOS 26.5でのタブを閉じる際のSafariクラッシュは、少なくとも3つの異なる問題によって引き起こされています。WebKit機能フラグの破損、コンテンツフィルタリングVPNとのネットワーク拡張機能APIの競合、そして不正なLastSession.plistエントリです。これらは互いに複合することが多いです。
  • 最も広範なクラッシュを解消する最速の単一修正は、Developメニューの下にあるWebKit機能フラグのリセットです。これはSafariの環境設定とは異なり、破損した別のデフォルト辞書をクリアします。
  • AdGuard、Threat Protectionが有効なNordVPN、Cloudflare WARPの「ファミリーフィルタリング」モード、またはネットワーク拡張機能を登録するコンテンツフィルタを使用している場合、(アプリではなく)ネットワーク拡張機能を無効にすることで、タブを閉じる際のフリーズとクラッシュのパターンが解消されます。
  • ~/Library/Safari/LastSession.plistを削除すると、Safariはセッションストアをリビルドするよう強制され、「復元時の白タブ」と60〜80%のCPUを占有するタブの問題が解消されます。
  • セーフモードはサードパーティのカーネル拡張機能を除外するための診断ツールとして有用ですが、Apple siliconではネットワーク拡張機能をアンロードしないため、VPN関連のクラッシュを完全に切り離すことはできません。
  • Safariをクラッシュさせるのと同じWebKitパイプラインは、HTMLメッセージレンダリングのためにMail.appでも使用されています。同じ修正が同じ順序で適用されます。
  • Safariの完全な「リセット」は最終手段であり、実行前にブックマーク、履歴、リーディングリストをiCloudまたはエクスポートした.plistにバックアップしてください。

ユーザーが実際に見ているもの

原因に入る前に、症状のセットについて正確に把握することが重要です。SafariはすでにいくつかのバグをmacOS 26.xで出荷しており、誤った診断は誤った修正方法につながるからです。26.5のクラスターには特定の特徴があります。

最も一般的な症状はタブを閉じる際のクラッシュです。Command-W(または閉じるボタンをクリック)するとSafariが完全に消えるか、消える前に10〜15秒ビーチボールが表示されます。~/Library/Logs/DiagnosticReports/にあるクラッシュレポートは、WebCore::Page::~PageまたはWebKit::WebPageProxy::closeを含むThread 0スタックトレースと、NetworkExtensionまたはNEFilterProviderコールバックでブロックされた2次スレッドを含むSafariの終了を示します。RAMが16GB以下のMシリーズマシンのユーザーがこれを最も頻繁に見ますが、64GBのM3 MaxとM4 Maxマシンでも再現されているため、メモリプレッシャーの問題ではありません。

2番目の症状は復元時に白くなるタブです。Safariを終了して再起動すると、前のセッションのタブがタブバーにタイトルが表示された状態で現れますが、それらをクリックすると空白の白いページが表示されます。URLバーは空です。再読み込みボタンが何もしないため、ページをリロードできません。内部的にSafariはそのタブのナビゲーションコンテキストを失っています。唯一の回避策はURLを手動で入力することであり、スクロール位置、フォームの状態、pushState履歴エントリに依存するログインセッションが失われます。

3番目の症状はCPUを占有するタブです。1つのタブ(通常は最後に読み込まれたものですが、古いものの場合もあります)が1つのパフォーマンスコアの60〜80%を占有します。アクティビティモニタは「Safari Web Content」または「com.apple.WebKit.WebContent」をプロセスとして表示します。InstrumentsまたはTerminalのsampleでプロセスをサンプリングすると、WebCore::FrameView::layoutまたはWebKit::WebPage::updateRendering内でのタイトなループが見えます。アクティビティモニタからWebContentプロセスを強制終了すると(Safari > Develop > Web Process > Terminate)、通常のCPU使用率が回復しますが、影響を受けたタブも失われます。

4番目の症状は5〜30秒の全般的なフリーズで、特にSafariがセッションストアをDiskに書き込む必要がある場合に発生します。これはタブを閉じる際、アプリを終了する際、そして時々新しいウィンドウを開く際に発生します。フリーズ中にfs_usage -f filesystemを使用すると、~/Library/Safari/LastSession.plistと~/Library/Containers/com.apple.Safari/Data/Library/Safari/RecentlyClosedTabs.plistへの繰り返しの書き込みが見え、同じファイルが毎秒数百回書き込まれることがあります。

5番目の最も報告が少ない症状はMailにあります。Mail.appはHTMLメッセージ本文のレンダリングにSafariと同じWebKitフレームワークを使用します。問題を抱えるSafariユーザーは、ほぼ例外なくHTMLが多いニュースレターを開く際にMailが数秒間フリーズし、まだレンダリング中のメッセージを既読にしようとするとクラッシュすることもあります。ほとんどのMailメッセージは十分速くレンダリングされてバグがトリガーされないため、症状はそれほど明白ではありませんが、根本的な問題は同じです。

Activity Monitor showing the runaway Safari Web Content process

影響を受けるユーザー

新しい26.5インストールと26.4および26.4.1からのインプレースアップグレードの両方が問題を報告しています。ハードウェアによる明確なパターンはありません。M1からM4までのすべてのApple Siliconジェネレーションが影響を受けることが確認されており、26.5上に残っているわずかなIntelユーザー(これはIntelサポートを含む最後のリリースです。Appleの廃止告知が26.5のリリースノートに記載されています)も同じクラッシュを報告しています。

ただし、フォーラムのデータに明確に現れる3つの相関関係があります。

拡張機能の数はクラッシュ頻度と強い相関があります。 Safariの拡張機能が1つもインストールされていないユーザーはフリーズと白タブの症状は報告しますが、タブを閉じる際のクラッシュはほとんど報告しません。5つ以上の拡張機能がインストールされているユーザーは完全なクラッシュパターンを報告します。これは特定の拡張機能が原因であることを意味するのではありません。個々の拡張機能を無効にしてもクラッシュは修正されません。しかし、WebKitプロセスの状態は各拡張機能とともに複雑になり、バグはその状態に敏感です。

ネットワーク拡張機能VPNが最も強力な単一の相関要因です。 AdGuard for Safari(App Storeのコンテンツブロッカーではなくシステム全体版)、Threat Protectionが有効なNordVPN、「ファミリーフィルタリング」または「1.1.1.1 for Families」モードのCloudflare WARP、Surfshark with CleanWeb、またはネットワーク拡張機能を通じた「トラッカーやマルウェアのブロック」を宣伝するその他のVPNを使用している場合、クラッシュ率はベースラインの約4〜5倍です。これらのアプリのネットワーク拡張機能コンポーネント(UIでは「Threat Protection」、「ネットワークフィルタ」、「コンテンツブロック」と呼ばれることが多い)を無効にすると、VPN自体がアクティブな場合でもクラッシュが抑制されます。

マルチプロファイルのSafariユーザーは不均衡に影響を受けています。 macOS Sonoma 14で導入され、以降のリリースで成熟したSafariプロファイル機能は、プロファイルごとの状態を~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/に保存します。26.5のWebKitアップグレードが実験的機能辞書を移行した際、デフォルトプロファイルのコピーは移行しましたが、場合によってはプロファイルごとのオーバーライドをクリーンに移行できず、プロファイルが部分的に破損した状態になりました。

根本原因1:WebKit機能フラグの破損

Safariにはユーザー設定が保存される場所が2つあり、その区別がこのバグにとって非常に重要です。

1つ目は~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist(および親コンテナの設定)で、Safari > 設定で設定するすべてのもの(ホームページ、検索エンジン、タブの動作、オートフィル、拡張機能の有効/無効など)を保持します。これが「ユーザー設定」レイヤーです。

2つ目はWebKit機能フラグ辞書で、com.apple.WebKit.WebContentの設定に存在し、SafariのUIではDevelop > Feature Flagsからのみアクセスできます。これらは実験的なWebKitの動作に関する個別のオン/オフスイッチです。「Async Clipboard API」、「CSS @scope Rule」、「WebGPU」、「Speculation Rules」、「View Transitions Cross-Document」など数百のものがあります。ほとんどはデフォルトで有効な安定したものですが、一部はデフォルトで無効の実験的なもの、そして少数は廃止予定で削除予定のものです。

macOSがSafariを新しいメジャーリリースにアップグレードすると、WebKitは機能フラグ辞書の移行ステップを実行します。実験的からデフォルトに昇格したフラグはオンになります。削除されたフラグは削除されます。新しいフラグはデフォルト値で挿入されます。移行コードは複雑で、歴史的に信頼性が高いものでした。

しかし26.5では、移行にバグがあります。具体的には、実験的なフラグがSafariバージョン間でそのキー名が変更された場合(WebKitが内部的に機能をリファクタリングする際に時々発生します)、移行は新しいキーを書き込みますが、常に古いキーを削除するわけではなく、辞書に両方が残ります。いくつかのフラグは新しい値型(三値フラグのためのブール値から整数列挙型)に移行されましたが、26.5のSafariのランタイムコードは時々それらを古い型として読み取り、それらの機能が使用された場合(例えばタブを閉じる際にコンポジターがページを破棄する場合など)にWebKitコンテンツプロセスがクラッシュします。

その結果、26.5ユーザーのランダムに選ばれた一部は、古いまたは型が間違ったエントリを含む機能フラグ辞書を持ち、WebKitのコードパスがそれらに当たるとSafariが不規則に動作します。

修正は機能フラグをリセットすることです。以下の修正セクションで段階的に説明します。

根本原因2:ネットワーク拡張機能APIの変更

これには、AppleのNetwork Extensionフレームワークを通じた簡単な回り道が必要です。

Macでは、システム全体で機能するコンテンツフィルタVPNと広告ブロッカー(Safariの内部だけでなく)がネットワーク拡張機能をインストールします。これはAppleのフレームワークで、サードパーティのアプリがカーネルに近接したネットワークフィルタリングコードを実行できるようにします。ユーザーはシステム設定 > 一般 > ログインアイテムと拡張機能 > ネットワーク拡張機能で許可を付与します。その後、システム上で開かれるすべてのTCP/UDPソケットは、ボックスを出る前に拡張機能によって検査、リダイレクト、またはブロックされる可能性があります。

26.5では、AppleはPrivacy Relay v2と呼ぶものを出荷しました。これは既存のiCloud Private Relayインフラストラクチャの拡張で、より広い範囲のトラフィックに適用され、新しいインカーネルルーティングレイヤーを使用します。新しいルーティングレイヤーは、ネットワーク拡張機能がわずかに異なるコールバックシグネチャで登録することを期待しています。古いネットワーク拡張機能(26.5 SDKに対して再コンパイルされていないもの)は引き続き動作しますが、カーネルは各フィルターコールバックにレイテンシを追加する互換性シムでそれらをラップします。

互換性シムが問題です。Safariがタブを閉じると、WebKitのコンテンツプロセスはそのタブに関連するネットワーク接続を破棄します。各接続の破棄はネットワーク拡張機能を通じてフィルタリングされ、互換性シムが存在する場合、1回の呼び出しで50〜500ミリ秒かかる場合があります。20のアクティブな接続を持つタブ(これは正常です。1つの現代的なWebサイトは数十の広告と分析ドメインへの接続を開きます)では、破棄に数秒かかる場合があり、その間WebKitはSafariの残りの部分が待っているロックを保持します。「プロセスがハングしているように見える」というAppleの内部ウォッチドッグは、このウィンドウ中にトリガーされてWebKitコンテンツプロセスを強制終了することがあり、Safariはそれをクラッシュとして報告します。

これはネットワーク拡張機能VPNとクラッシュパターンの4〜5倍の相関を説明しています。また、Safariが実行されている時間が長くなるほどクラッシュが悪化する理由も説明しています。各タブを閉じると少量の互換性シム状態がリークし、数時間の通常使用後にはタブあたりの破棄時間が増加して、ウォッチドッグが確実に起動するようになります。

Appleは主要なVPNベンダーに新しいSDKをターゲットにした再コンパイルされた拡張機能について協力していると伝えられていますが、本稿執筆時点ではいずれも出荷されていません。回避策は、VPNのトンネリング機能を維持しながらコンテンツフィルタリングネットワーク拡張機能を無効にすることです。これは異なる(影響を受けない)拡張機能タイプを通じてルーティングされます。

System Settings Network Extensions pane showing the active filters

根本原因3:不正なセッション状態

LastSession.plistは、Safariが最後に終了した時点でどのウィンドウとタブが開いていたかの記録です。Safariを起動すると、このファイルを読み込んでセッションを再構築します。すべてのウィンドウ、すべてのタブ、すべてのURL、すべてのスクロール位置が含まれます。このファイルはバイナリプロパティリストで、通常は平均的なユーザーで数百キロバイトです。

ファイル形式はバージョン管理されています。Safariのメジャーリリースごとに新しいフィールドが追加されることがあります。例えば、タブごとの「リーダーモードがアクティブ」状態、タブが属するプロファイルのUUID、またはタブを現在のURLに導いた最新の「ナビゲーションタイプ」などです。Safariが古いバージョンで書き込まれたLastSession.plistを開くと、デフォルト値で埋めることで欠落したフィールドを許容します。

26.5が優雅に処理しないのはその逆です。新しいSafariが認識しないフィールドを含むLastSession.plistです。これは、26.4サイクル中(多くのパワーユーザーが行う)にSafari Technology Previewビルドを実行してからリリースSafariに戻った場合、または異なるポイントリリースのマシン間でライブラリをコピーした場合、あるいは場合によっては以前のクラッシュ中のセッション書き込みの失敗によって発生します。

26.5のSafariが不正なセッションエントリに遭遇した場合の動作は、どのフィールドが不正かによって異なります。軽微なケースはタブが空白の白として復元されることです。Safariはナビゲーションエントリを解析できず、復元をスキップしました。より深刻なケースは、エントリが解析を生き延びたが内部ポインターフィールドが一致しないタブで、後でSafariが通常の保存サイクル中にそのタブの状態をDiskに書き戻そうとする際にクラッシュが発生します。

修正はLastSession.plistを削除して新しいセッションから始めることです。現在開いているタブ(一時的に)を失いますが、以下の回復手順を参照して、Safariが確実に読み書きできる整合性の取れた新しいセッションファイルを得られます。

修正1:WebKit機能フラグのリセット

これは最も影響の大きな単一の修正であり、最初に試すべきものです。

ステップ1 — Developメニューを有効にします。Safariを開いてSafari > 設定を選択し、詳細タブをクリックして、「Webデベロッパ向け機能を表示」と書かれたチェックボックスをオンにします(一部の26.xビルドでは「メニューバーにDevelopメニューを表示」とラベルされています)。設定を閉じます。

ステップ2 — 機能フラグペインを開きます。Safariを最前面にした状態で、メニューバーのDevelopメニューをクリックします。上部付近にFeature Flagsサブメニューが表示されるはずです。クリックします。すべてのWebKit機能フラグをカテゴリ別に一覧表示し、上部に検索ボックスがある別のウィンドウが開きます。

ステップ3 — デフォルトにリセットします。機能フラグウィンドウの右上にあるReset All to Defaultsボタンをクリックします(一部のビルドでは下部にあり、「Restore Defaults」とラベルされています)。ダイアログを確認します。Safariはクリーンな機能フラグ辞書を書き込み、アップグレード移行からの古いまたは型が間違ったエントリをすべて排除します。

ステップ4 — Safariを完全に終了します。Safari > Safariを終了またはCmd-Q。すべてのウィンドウを閉じるだけでは不十分です。WebKitコンテンツプロセスは、実際に終了して親プロセスを再起動するまで新しい機能フラグを取得しません。

ステップ5 — 再起動してテストします。Safariを開いて、いくつかのタブを開き、数分間通常通りブラウズして、タブを閉じます。まだフリーズやクラッシュが見られる場合は、修正2に進みます。

これが何をするかしないかについての注意点:機能フラグのリセットは、通常のSafari設定を何も変更しません。ホームページ、検索エンジン、オートフィル、履歴、ブックマーク、リーディングリスト、拡張機能などはすべてそのままです。変わるのは実験的なWebKit機能がオンかオフかだけであり、その状態が現在のデフォルトから離れたものだけです。

修正2:VPNネットワーク拡張機能モードの無効化

これはAdGuard、NordVPN、Cloudflare WARP、Surfshark、コンテンツブロック機能付きMullvad、または類似のものを使用している場合に適用されます。

正確な表現はアプリによって異なりますが、探している基本的な設定は、アプリが接続ごとにコンテンツをフィルタリングするネットワーク拡張機能をインストールするかどうかを制御するものです。ベンダー固有のメモ:

AdGuard for Mac: AdGuardを開きます。歯車アイコンをクリックします。ネットワーク > 操作モードに移動します。「自動」または「ネットワーク拡張機能」から自動プロキシに切り替えます。アプリはシステム全体のネットワーク拡張機能ではなく、ローカルHTTPプロキシとして再インストールされます。SafariでのAd Blockingは引き続き機能しますが、Privacy Relay v2と競合するカーネルレベルのトラフィックパスにフックしなくなります。

NordVPN: NordVPNアプリを開きます。設定 > Threat Protection。Threat Protectionをオフにします(VPN接続自体はオンのままにすることができます)。基本的なVPNトンネルは競合する拡張機能タイプを使用しません。Threat Protectionをオンのままにしたい場合、NordVPNの「Threat Protection Lite」モードはDNSベースであり、ネットワーク拡張機能ベースではなくバグをトリガーしません。

Cloudflare WARP / 1.1.1.1: 1.1.1.1アプリを開きます。設定 > 詳細 > DNS設定。モードを「ファミリーフィルタリング」(コンテンツフィルターをインストールする)から通常の1.1.1.1または1.1.1.1 + WARPに変更します。WARPトンネル自体はバグをトリガーしません。ファミリーセーフコンテンツフィルターだけがトリガーします。

Surfshark: 設定 > VPN設定 > CleanWeb。オフに切り替えます。同じロジックです。トンネルは問題ありませんが、コンテンツフィルターは問題です。

Mullvad: 設定 > DNSコンテンツブロッカー。すべてのブロッカーを「オフ」に切り替えます。ネットワーク拡張機能なしでブロック機能を維持したい場合は、NextDNSまたは類似のサービスに向けたカスタムDNSを使用してください。

設定を変更した後、システム設定 > 一般 > ログインアイテムと拡張機能 > ネットワーク拡張機能に移動します。関連するエントリがオフになっている(または完全に消えている)ことを確認します。Safariを終了して再起動します。タブを閉じる動作をテストします。

お使いのVPNが上記にリストされていない場合、一般的なルールは、トラッカー、マルウェア、広告、または「アダルトコンテンツ」をネットワークレベルでブロックすることを説明する設定を探すことです。それがどのように呼ばれていても、その設定はネットワーク拡張機能として実装されており、この修正のために無効にするものです。

修正3:LastSession.plistの削除

これは「復元時の白タブ」の症状に対応し、持続的なフリーズにも役立ちます。

ファイルを削除する前に、現在開いているURLをキャプチャして復元できるようにすることをお勧めします。最も簡単な方法はブックマーク > これらN個のタブのブックマークを追加...で、現在開いているすべてのタブを1つのブックマークフォルダに入れます。まずそれを行ってください。

次にSafariを完全に終了します。

Finderを開きます。Cmd-Shift-Gを押して「フォルダへ移動」を表示します。~/Library/Safari/を貼り付けてReturnを押します。LastSession.plistが見えるはずです。ゴミ箱にドラッグします(まだゴミ箱を空にしないでください。何か問題が発生した場合はドラッグバックできます)。

このフォルダにいる間、削除する価値のある関連ファイルがあります:RecentlyClosedTabs.plist。これはLastSession.plistに影響を与えるのと同じ書き込みループバグによって破損していることがあり、両方をクリアすると最もクリーンなリセットが得られます。

マルチプロファイルユーザーの場合、~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/LastSession.plistにプロファイルごとのセッションファイルもあります。それらも削除してください。

Safariを再起動します。新しいウィンドウが開き、復元されたタブはありません。ブックマーク(表示 > サイドバーを表示、またはブックマークメニュー)を開き、上で作成したフォルダを見つけて、右クリック > 新しいタブで開く。破損したエントリを除いて、前のセッションが戻ります。

修正4:Safariプロファイルの再構築

Safariプロファイル(macOS Sonomaで導入され、仕事用と個人用など別々のブラウジングコンテキストを望む人々が使用)を使用していて、特定のプロファイルで上記の修正が解決しない場合、プロファイル自体が破損している可能性があります。

Safari > 設定 > プロファイルを開きます。後で再作成できるよう、影響を受けるプロファイルのアイコン、カラー、ブックマークフォルダをメモします。リストでプロファイルをクリックし、マイナスボタンをクリックして削除します。確認します(Safariはプロファイルのブックマークを保持するよう提案します。はいと答えてください。これにより、メインブックマークバーにエクスポートされます)。

プラスボタンをクリックして新しいプロファイルを作成します。前と同じ名前、アイコン、カラーを付けます。ブックマークを新しいプロファイルのブックマークフォルダにドラッグして戻します。

新しいプロファイルのWebKit状態は26.4から移行されるのではなくデフォルトから新しく作成されるため、移行バグを完全に回避します。再構築したプロファイルでのテストでのクラッシュ率はベースラインノイズまで低下しました。つまり、停止しました。

修正5:セーフモードでの起動テスト

セーフモードは修正としてではなく、診断として有用です。

Apple siliconの場合:Macをシャットダウンします。「起動オプションを読み込み中」と表示されるまでパワーボタンを長押しします。Shiftを押しながら起動ディスクを選択し、「セーフモードで続行」をクリックします。

Intel(26.5上の少数の方)の場合:シャットダウンして、ログインウィンドウが表示されるまでShiftを押しながら電源を入れます。

セーフモードは署名されたAppleのカーネル拡張機能のみを読み込み、いくつかのキャッシュをクリアして、基本的なディスクチェックを実行します。私たちの目的にとって重要なのは、Apple siliconではネットワーク拡張機能をアンロードしないことです。それらはカーネルスペースではなくユーザースペースで実行され、セーフモードはそれらに影響を与えません。したがって、ネットワーク拡張機能の原因が疑われてそれを確認したい場合、セーフモードは適切なテストではありません。

セーフモードがテストするのは、サードパーティのカーネル拡張機能またはログインアイテムが影響しているかどうかです。セーフモードでSafariが正常に動作するが通常の起動時にクラッシュする場合、サードパーティのスタートアップアイテムの1つ(最もおそらくバックアップツール、アンチウイルス、またはハードウェア固有のユーティリティ)が要因として指し示されています。通常の起動時にシステム設定 > 一般 > ログインアイテムと拡張機能で疑わしいアイテムを1つずつ無効にして、特定の原因を特定します。

セーフモードでもSafariがクラッシュする場合、原因はユーザーアカウントの設定またはシステム自体にあり、修正1、3、6に集中する必要があります。

Safari Develop menu showing Feature Flags entry

修正6:WebKitコンテンツブロッカーキャッシュのワイプ

コンテンツブロッカー拡張機能(AdGuardではなくApp Store版のもの。1Blocker、Wipr、Ghostery Lite、App StoreのAdGuard for Safariなど)がインストールされている場合、WebKitはそのルールをバイナリ形式にコンパイルして、コンパイルされたルールを~/Library/Containers/com.apple.Safari/Data/Library/Safari/ContentBlockerCache/にキャッシュします。

26.5のアップグレードはコンパイルされたルールの形式を変更しました。Safariはバージョンの不一致を検出して再コンパイルするはずですが、場合によっては古いキャッシュを新しい形式として読み取り、最初のルール検索で詰まり、フリーズやクラッシュとして現れます。

キャッシュをワイプするには、Safariを終了してからFinderでCmd-Shift-Gを押して~/Library/Containers/com.apple.Safari/Data/Library/Safari/を貼り付けます。ContentBlockerCacheまたはWebKitContentBlockerという名前のフォルダを見つけてゴミ箱に移動します。Safariは次回の起動時にコンテンツブロッカー拡張機能から再コンパイルします。これには5〜30秒かかり、その間はページの読み込みが遅くなります。その1回の再コンパイルの後、すべてが正常に戻ります。

WebKit機能フラグがずれる理由

より深い疑問は、なぜ機能フラグの移行がうまくいかないことがあるのかです。WebKitはmacOS Sierraからこれらの移行を行っており、根本的な仕組みはよく歩まれた道です。26.5の問題を理解するには、フラグがどのように保存されてどのように移行が構成されているかを知る必要があります。

WebKit機能フラグは、ファイル形式レベルではcom.apple.WebKit.WebContent設定plist(およびSafari管理フラグのためのSafari自身の設定の並列エントリ)のエントリです。各エントリにはキー、値、暗黙の型があります。キーはWebKitPreferences.CSSCascadeLayersEnabledまたはWebKitCSSScopeRuleEnabledのような文字列です。値はかつて常にブール値でした。WebKit 619(macOS 26.0で出荷)から、一部のフラグは三値であり整数列挙型を使用します(0 = オフ、1 = オン、2 = デフォルト)。Safariが「ユーザーが明示的にこれをオンにした」と「ユーザーがこれをデフォルトから変更しなかった」を区別できるようにするためです。

WebKitの設定リーダーが設定plistを読み込むと、辞書を繰り返し処理し、各既知のフラグについて、フラグの現在の宣言された型に従って値を解析します。未知のフラグは残しますが無視します。

OSアップグレード後の最初の起動時に実行される移行ステップは次のことを行うはずです:

  1. 新しいWebKitバージョンのすべての既知のフラグのリストを歩きます。
  2. 前のバージョン以降でキーが変更された各フラグについて、古いキーから新しいキーに値をコピーして古いキーを削除します。
  3. 型が変更された各フラグについて、値を変換(ブール値から整数列挙型、またはその逆)して書き戻します。
  4. 新しいバージョンで削除された各フラグについて、plistからエントリを削除します。
  5. 他のすべてはそのままにします。

26.5のバグはステップ2にあります。同じ機能カテゴリ内でのリネームを処理する特定のコードパスがあります(例えば、機能が実験的からデフォルトに移動した後にWebKitExperimentalCSSScopeRuleEnabledがWebKitCSSScopeRuleEnabledに名前が変更されるなど)。そのコードパスは新しいキーを書き込みますが、常に古いキーを削除するわけではありません。次回の起動では、論理的に同じフラグの2つのエントリが見え、Safariの設定リーダーはそれらの1つを選びます(plistの辞書反復順序に基づいており、これは未定義です)。つまり、フラグの実効状態は設定リーダーのハッシュ衝突に依存します。

別の関連するバグは型が変更されたフラグに影響します。26.5の移行コードには型変換テーブルにオフバイワンがあり、ブール値から整数列挙型に変換されるべき一部のフラグはブール値のままであり、Safariの三値コードパスはそれらを整数として読み取り、ブール値の0/1ストレージレイアウトをエンディアンが間違った整数として解釈します。これにより0(オフ)または非常に大きなガベージ値が生成されます。ガベージ値がフィーチャー状態ルックアップテーブルへのインデックスとして使用されると、テーブル外のメモリアクセスが発生してクラッシュします。

DevelopメニューのReset All to Defaultsボタンは、辞書のすべてのエントリを削除して現在のバージョンの期待される名前と型でキー付きされた新しいセットを書き込むことで、移行を完全にバイパスします。これがこの修正が非常に効果的な理由です。

VPN/AdGuardネットワーク拡張機能の競合の説明

Network Extensionフレームワークは、AppleのNetwork Extension Programming GuideとNetworkExtension.frameworkヘッダーに文書化されています。特に、NEFilterDataProviderとNEFilterPacketProviderクラスは、コンテンツフィルタリングアプリが作業を行うためにサブクラス化するエントリポイントです。

WebKitのネットワークプロセスとネットワーク拡張機能間のプロトコルは概念的にはシンプルです。WebKitが開く各ソケットについて、カーネルはソケットをアクティブなフィルタープロバイダーにルーティングし、プロバイダーは各新しいデータイベントについてバーディクト(許可、ブロック、リダイレクト)を返し、WebKitはそのバーディクトに基づいて行動します。プロトコルは非同期です。WebKitはリクエストを送信して続行し、フィルターは準備ができたら答えます。ほとんどのリクエストに対して答えは基本的に即時(1ミリ秒未満)であり、非同期性は見えません。

26.5での変更は、カーネルがフィルタープロバイダーの呼び出しを構築する方法にあります。以前は、呼び出しコンテキストがソケットごとに1回設定され、ソケットの寿命の間再利用されていました。26.5では、Privacy Relay v2ルーティングレイヤーを使用して、コンテキストは新しいリレーのリクエストごとのルーティング決定をサポートするために各バーディクトリクエストで再構築されます。再構築は高速です。26.5 SDKに対してコンパイルされたフィルターでは約50マイクロ秒です。

以前のSDKに対してコンパイルされたフィルター(今日のすべての出荷中のVPNのフィルターはこれです)の場合、再構築は互換性シムを通じて行われます。シムは新しいコンテキスト形式をフィルターが期待する古い形式に変換し、フィルターを呼び出して応答を元に変換する必要があります。シムはカーネルではなくユーザースペースで実装されています。これはAppleによる意図的な設計選択で、サードパーティのコードを新しいインカーネルパスに強制的に通すことを避けるためです。ユーザー/カーネル遷移は各呼び出しごとに約200〜500マイクロ秒を追加します。

100のサブリソースリクエストを持つ典型的なWebページでは、シムを使用したフィルターの総オーバーヘッドは20〜50ミリ秒です。目に見えますが壊滅的ではありません。壊滅的なケースはタブを閉じる際で、WebKitが短いウィンドウ内で多数のソケット破棄を実行します。各破棄はフィルターを呼び出して、ソケットをクリーンに破棄できるかフラッシュが必要かを確認します。シムオーバーヘッドで20のソケット破棄は10ミリ秒かかる場合があります。前述のタブごとのシム状態リークによって、その数値は数秒まで上昇する可能性があります。その数秒間、WebKitはSafariの残りの部分が操作に必要なロックを保持し、OSウォッチドッグはWebKitがハングしていると判断してそれを強制終了できます。

最もクリーンな修正はAppleが最終的に出荷するものです:VPNベンダーが26.5 SDKに対して再コンパイルし、シムは不要になります。それまでの間、ネットワーク拡張機能レイヤーを完全に無効にすること(修正2)がレイテンシを排除する唯一の方法です。

どの原因がご自身のものかを判断する方法

短い決定ツリー。

コンテンツフィルタVPN(AdGuard、Threat Protection付きNordVPN、Cloudflare 1.1.1.1 for Families、Surfshark with CleanWebなど)を使用していますか? はいの場合、修正2(ネットワーク拡張機能の無効化)から始めます。それでクラッシュが解消されれば、ネットワーク拡張機能フレーバーのバグがあり、完了です。解消されない場合は続けます。

クラッシュまたは再起動後にタブが空白の白いページとして復元されますか? はいの場合、修正3(LastSession.plistの削除)が直接対応します。適用してください。

Safariはクラッシュ前に数秒間フリーズし、ディスクアクティビティが激しくなりますか? はいの場合、セッション書き込みループが関与しています。修正3に加えて、コンテンツブロッカーがインストールされている場合は修正6(コンテンツブロッカーキャッシュのワイプ)も検討してください。

VPNの状態に関係なく、すべてのタブを閉じる際にSafariがクラッシュしますか? 修正1(機能フラグのリセット)が最も可能性の高い治療法です。適用してください。

修正1、2、3、6の後もSafariがクラッシュしますか? プロファイルを使用している場合は修正4(プロファイルの再構築)を、診断として修正5(セーフモードテスト)を試してください。セーフモードでもクラッシュする場合、次のステップはSafariコンテナのリセットです。

Safariと同時にMail.appが誤動作し始めましたか? Mailには別の修正は必要ありません。同じWebKitフレームワークを使用しているため、同じ修正(特に修正1と修正2)がMailの症状も解消します。Safariの修正を適用した後、Mailを終了して再起動してください。

Safariを完全にリセットする時期

6つの修正をすべて試してもSafariがまだクラッシュする場合、残りのオプションは完全なSafariコンテナのリセットです。これは上記の修正よりも積極的であり、最初にバックアップする必要があります。

破壊的な操作を行う前に、データが同期またはエクスポートされていることを確認してください:

  • ブックマーク: ファイル > ブックマークのエクスポート...で後で再インポートできるHTMLファイルが生成されます。Safariコンテナの外(デスクトップで十分)に保存します。
  • 履歴: iCloud Safariが有効な場合(システム設定 > Apple ID > iCloud > iCloudに保存 > Safari)、Safariは自動的に履歴をiCloudに同期します。トグルがオンになっていることを確認します。iCloud Safariを使用していない場合、履歴は失われます。必要なURLはすでに抽出してあることを確認してください。
  • リーディングリスト: ブックマークと同様にiCloud Safariを通じて同期されます。同期がオンになっていることを確認します。
  • 保存されたパスワード: iCloud Keychainに保存されており、Safariコンテナにはありません。安全です。
  • 拡張機能: App Storeから再インストールする必要があります。実際に使用しているものをリストアップしてください。

バックアップが完了したら、Safariを終了してからTerminalで実行します:

mv ~/Library/Containers/com.apple.Safari ~/Library/Containers/com.apple.Safari.old
mv ~/Library/Safari ~/Library/Safari.old
mv ~/Library/Preferences/com.apple.Safari.plist ~/Library/Preferences/com.apple.Safari.plist.old

これにより、Safariがユーザーデータを保存する3つの場所が名前変更され、事実上新しいSafariインストールが得られます。Safariを再起動します。まるで一度も使ったことがないかのように表示されます。iCloudは数分以内にブックマーク、履歴、リーディングリストを再同期します。拡張機能を再インストールします。

この状態(文字通り新しいコンテナとサードパーティデータなし)でもSafariがクラッシュする場合、原因はユーザーデータではなくオペレーティングシステム自体にあります。その時点でオプションは、26.5.1または26.6の修正を待つ、Time Machineの復元経由で26.4.1にダウングレードする(Appleはリリース後90日間これを許可します)、またはFeedback Assistantレポートを提出してクラッシュログを添付することに絞られます。

新しいインストールが機能する場合、.oldディレクトリから特定のデータを選択的にコピーバックできます(ブックマーク、リーディングリスト、特定のファイルの順)。どの古いユーザーデータがクラッシュを引き起こしていたかを特定します。私たちのテストでは、不正なLastSession.plistまたは破損した機能フラグエントリがすべてのケースで原因でした。どちらも修正1と3がすでに対応しているため、完全なコンテナリセットが新しい情報をもたらすことはほとんどありません。

Mailアプリの副作用

Mailは、表示するすべてのメッセージのHTML本文をレンダリングするためにWebKitフレームワークを使用しています。使用されるWebViewは完全なSafariではありません。タブも拡張機能もなく、より制限されたJavaScriptランタイムを持っています。しかし基本的なコンポジター、レイアウトエンジン、ネットワークスタック(埋め込み画像の読み込みのため)、コンテンツブロッカーパイプラインは共有されています。

これは上で説明したすべてのバグがMailでも現れる可能性があることを意味します。Mailには閉じるタブがないためベースの症状セットは少し異なりますが、障害モードはきれいにマッピングされます:

  • MailはHTMLニュースレターを開く際に数秒間フリーズします。 これは根本原因2で説明したのと同じネットワーク拡張機能のレイテンシです。ニュースレターには通常、数十の埋め込み画像とトラッキングピクセルがあり、各外部リクエストはSafariリクエストと同じネットワーク拡張機能を通じて行われます。修正2(ネットワーク拡張機能の無効化)でフリーズが解消されます。
  • MailはHTMLメッセージを既読にする際にクラッシュします。 「既読にする」アクションはメッセージ状態の保存をトリガーし、一部の26.5ビルドではメッセージ本文の部分的な再レイアウトもトリガーします。WebKit機能フラグが根本原因1で説明した破損状態にある場合、再レイアウトがクラッシュする可能性があります。修正1(機能フラグのリセット)でこれが解消されます。
  • Mailは起動後に空白の白いメッセージ本文を表示します。 Mailは最近表示したメッセージのレンダリングをSafariのLastSession.plistに類似したセッションファイルにキャッシュします。Mailの同等物は~/Library/Mail/V11/MailData/にあり、Envelope Indexやアカウントごとの状態のようなファイルが含まれます。破損したMailセッションは同じ白いレンダリング症状を持ちます。修正はより複雑ですが(MailのデータはSafariのデータよりも複雑です)、最もシンプルなバージョンはMailを終了してShiftを押しながら再起動することです。これによりMailのサーバーからの再構築手順がトリガーされます。

一般的なルールは:Safariの修正を適用してSafariが安定しているが、Mailはまだ誤動作している場合、Mailを完全に終了(Cmd-Q、ウィンドウを閉じるだけでなく)して再起動します。MailはLogic再読み込み時に設定と修正されたWebKit状態を再読み込みします。

よくある質問

Appleはこれを26.5.1で修正しますか、それとも今すぐ対処する必要がありますか? Appleは26.5.1リリースの具体的なタイムラインを発表していませんが、26.4.1と26.3.1のリズム(それぞれ親の.xリリースから約4〜6週間後にリリース)に基づいて、2026年6月頃の26.5.1は現実的です。修正1は今すぐ適用してください。非破壊的であり、数週間待つことなく最も一般的な原因をすぐに解消します。

これはiOSのSafariにも影響しますか、それともmacOSだけですか? WebKit機能フラグの移行バグはiOSとmacOSで共有されていますが、iOSのユーザーへの影響は小さいです。iOSユーザーはMacユーザーのようにコンテンツフィルタVPNをインストールすることがほとんどないからです。iOS 26.5ユーザーはタブの復元問題を報告していますが、タブを閉じる際のクラッシュはほとんどありません。iOSでの修正も異なります。iOSはDevelopメニューを公開していないため、機能フラグのリセットは設定 > アプリ > Safari > 詳細 > 実験的機能 > リセット経由で行う必要があります。

26.4.1にダウングレードすると、データは安全ですか? Time Machine経由のダウングレードは、Safariデータを含むアップグレード前のシステム全体の状態を復元します。26.4.1インストーラーイメージからの再インストールによるダウングレードはホームディレクトリをそのままにしますが、Safariは新しいバージョンで書き込まれたユーザーデータについて不満を言う場合があります。より安全なパスはTime Machineです。Appleの文書化されたダウングレードウィンドウは90日間なので、決断するまで2026年8月初めまで時間があります。

VPNのネットワーク拡張機能を無効にしたら広告ブロックがなくなりました。代替手段はありますか? はい。DNSベースのブロッカーに切り替えてください。NextDNS、Control D、またはAdGuardのDNSレベルのサービス(ネットワーク拡張機能アプリとは別)は、ネットワーク拡張機能APIを使用せずにシステム全体の広告とトラッカーブロックを提供します。システム設定 > ネットワーク > アクティブなインターフェース > 詳細 > DNSで設定します。パフォーマンスは類似しており、唯一の損失はアプリごとの粒度です。

DevelopメニューにFeature Flagsサブメニューが表示されません。どのバージョンを使用していますか? Feature FlagsはSafari 17でDevelopメニューのトップレベルアイテムとして導入されました。表示されない場合、古いSafariを使用しており、26.5よりもはるかに古いmacOSを使用していることを意味します。その場合、この記事で説明している問題全体が適用されません。Safari > Safariについてでバージョンを確認してください。

機能フラグのリセットはWebサイトを壊しますか? いいえ。機能フラグはどの実験的なWebKit機能が有効かを制御します。各フラグのデフォルト状態はAppleが最も広くテストしたものです。デフォルトにリセットすることで、AppleがQAテストする状態になり、これはカスタム設定よりもウェブ全体との互換性が高いです。壊れる可能性があるのは、有効にしていた実験的機能を特定的にターゲットにしているサイトだけです。実際にはほとんどありません。

この問題が修正されるまでリリースSafariの代わりにSafari Technology Previewを使用すべきですか? おそらく。STP 197(2026年5月7日リリース)は26.5の前に出荷され、修正された機能フラグ移行コードと一緒に出荷されているため、新しいSTPインストールでは機能フラグ破損の障害モードは発生しません。ただし、STPはネットワーク拡張機能の問題を修正しません。これはすべてのWebKitクライアントに影響するシステムレベルのバグです。症状が修正1の形状であれば、STPは役立ちます。修正2の形状であれば、役立ちません。STPはリリースSafariと競合なく共存するため、バックアップブラウザとしてインストールするリスクは低いです。

まとめ

macOS 26.5のSafariクラッシュは1つのバグではなく3つであり、「とりあえずSafariをリセット」という安易なアプローチは3つすべてを超えてデータを失うことになります。可能性と労力の順に言えば、修正1(WebKit機能フラグのリセット)は最小限のリスクで最も多くのユーザーに対応します。修正2(ネットワーク拡張機能モードの変更)はコンテンツフィルタVPNを持つユーザーの最も重いクラッシュに対応します。そして修正3(LastSession.plistの削除)は復元時の白タブと書き込み時のフリーズ症状に対応します。残りの修正はより狭い層向けです。

修正1と修正2を適用してもSafariがまだ誤動作している場合、完全なコンテナリセットに飛びつくのではなく、残りを順番に進めてください。2〜3の標的を絞った修正の累積効果は、「すべてを消去」アプローチよりも一貫して優れており、その後1時間かけて拡張機能を再インストールして設定を再構成する必要もありません。

最後に、まだ26.4.1を使用していてアップグレードを検討している場合、2026年5月中旬時点での正直な答えは待つことです。26.5の新機能のほとんどは、OSバージョンに関係なく今後数週間で26.4.1にロールアウトされるサーバーサイドの改善です。そしてセキュリティ修正は、意味のある程度に不安定なSafariを受け入れることを単独で正当化するほど深刻ではありません。26.5.1を待ってからアップグレードしてください。

より広い26.xのトラブルシューティングのコンテキストについては、26.xサイクルの完全なバグトラッカーと26.2のSafariとシステム安定性ガイドを参照してください。Mailも問題が発生している場合(通常Safariが問題の時はMailも同様)、Mail固有の修正ガイドを参照してください。以前のベースラインからのユーザーは、リリース間の変更点のコンテキストとして26.4 / 26.4.1アップデートガイドを読んでください。そしてSafariの修正に加えて継続的なセキュリティソフトウェアが必要な場合、2026年のアンチウイルスとセキュリティガイドでは、どのツールがネットワーク拡張機能と代替アーキテクチャを使用しているかを説明しています。

この記事を執筆する際に参照したソースには、MacRumorsフォーラムスレッド2481881(26.5 RCのバグ修正とリリース後の議論)、WebKit 26.5機能フラグ移行に関するApple Developerフォーラムのいくつかのスレッド、Safariの開発者メニューを有効にするためのAppleの公式サポートドキュメント、Howard OakleyのEclectic Light詳細分析「What has changed in macOS Tahoe 26.5」が含まれます。フォーラムのレポートが矛盾した場合、ここに含める前に複数のマシンでローカルに動作を再現しました。