{"code":"var Component=(()=>{var p=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var g=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),q=(i,e)=>{for(var s in e)r(i,s,{get:e[s],enumerable:!0})},l=(i,e,s,a)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let t of f(e))!v.call(i,t)&&t!==s&&r(i,t,{get:()=>e[t],enumerable:!(a=m(e,t))||a.enumerable});return i};var b=(i,e,s)=>(s=i!=null?p(h(i)):{},l(e||!i||!i.__esModule?r(s,\"default\",{value:i,enumerable:!0}):s,i)),S=i=>l(r({},\"__esModule\",{value:!0}),i);var u=g((C,o)=>{o.exports=_jsx_runtime});var x={};q(x,{default:()=>d});var n=b(u());function c(i){let e={a:\"a\",code:\"code\",h2:\"h2\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",ul:\"ul\",...i.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Safari crashes on macOS 26.5 hero\",src:\"/images/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026/hero.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,n.jsx)(e.p,{children:\"macOS Tahoe 26.5 a \\xE9t\\xE9 publi\\xE9 le 11 mai 2026, et en moins de quarante-huit heures, les forums MacRumors et Apple Developer ont vu affluer un refrain familier : Safari plante de nouveau. Cette fois, le mode de d\\xE9faillance est inhabituel. Le navigateur ne se ferme pas simplement au lancement ni ne se bloque sur un seul site. Il plante \\u2014 silencieusement, parfois avec un beachball, parfois en rebondissant imm\\xE9diatement hors du Dock \\u2014 au moment pr\\xE9cis o\\xF9 vous fermez un onglet. D'autres utilisateurs signalent un ensemble de sympt\\xF4mes diff\\xE9rents mais connexes : des onglets qui deviennent blancs lors de la restauration, un onglet fant\\xF4me monopolisant 60 \\xE0 80 % d'un c\\u0153ur CPU, des blocages de cinq \\xE0 trente secondes chaque fois que Safari tente d'\\xE9crire dans son magasin de sessions, et Mail.app pr\\xE9sentant la m\\xEAme instabilit\\xE9 lors du rendu de messages HTML qui partagent le pipeline de composition de WebKit.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cet article est la version d\\xE9taill\\xE9e de ce qu'il faut vraiment faire. Nous avons pass\\xE9 ces trois derniers jours \\xE0 reproduire le probl\\xE8me sur deux installations propres de 26.5 et trois mises \\xE0 niveau en place depuis 26.4.1, en comparant les journaux de plantage aux versions nightly de WebKit, et en lisant les fils (encore incomplets) des forums Apple Developer o\\xF9 des ing\\xE9nieurs Safari ont \\xE9voqu\\xE9 les causes sous-jacentes. En r\\xE9sum\\xE9, il existe trois causes profondes ind\\xE9pendantes, elles apparaissent souvent ensemble, et les corrections ne se recoupent pas proprement. Vous devrez probablement effectuer deux ou trois des proc\\xE9dures ci-dessous dans l'ordre plut\\xF4t qu'en choisir une seule.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"points-essentiels\",children:\"Points essentiels\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[\"Les plantages de Safari \\xE0 la fermeture d'un onglet sous macOS 26.5 sont caus\\xE9s par au moins trois probl\\xE8mes distincts \\u2014 corruption des indicateurs de fonctionnalit\\xE9s WebKit, conflits de l'API Network Extension avec les VPN filtrant le contenu, et entr\\xE9es malform\\xE9es dans \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" \\u2014 et ils se combinent souvent.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[\"La correction unique la plus rapide qui r\\xE9sout la plus large population de plantages est la r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s WebKit via le menu Develop, ce qui n'est \",(0,n.jsx)(e.strong,{children:\"pas\"}),\" la m\\xEAme chose que les Pr\\xE9f\\xE9rences Safari et efface un dictionnaire de valeurs par d\\xE9faut corrompu s\\xE9par\\xE9.\"]}),`\n`,(0,n.jsx)(e.li,{children:\"Si vous utilisez AdGuard, NordVPN avec la Protection contre les menaces, Cloudflare WARP en mode \\xAB 1.1.1.1 avec filtrage familial \\xBB, ou tout filtre de contenu qui enregistre une extension r\\xE9seau, d\\xE9sactiver l'extension r\\xE9seau (pas l'application) \\xE9limine le sch\\xE9ma de blocage puis plantage lors de la fermeture d'onglet.\"}),`\n`,(0,n.jsxs)(e.li,{children:[\"Supprimer \",(0,n.jsx)(e.code,{children:\"~/Library/Safari/LastSession.plist\"}),\" force Safari \\xE0 reconstruire son magasin de sessions et r\\xE9sout l'\\xAB onglet blanc \\xE0 la restauration \\xBB ainsi que l'onglet avec CPU \\xE0 60-80 %.\"]}),`\n`,(0,n.jsx)(e.li,{children:\"Le Mode sans \\xE9chec est utile comme diagnostic pour exclure des extensions noyau tierces, mais sur Apple Silicon il ne d\\xE9charge pas les extensions r\\xE9seau, donc il ne peut pas compl\\xE8tement isoler les plantages li\\xE9s aux VPN.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Le m\\xEAme pipeline WebKit qui fait planter Safari est utilis\\xE9 par Mail.app pour le rendu des messages HTML ; les m\\xEAmes corrections s'appliquent, dans le m\\xEAme ordre.\"}),`\n`,(0,n.jsxs)(e.li,{children:[\"Une \\xAB r\\xE9initialisation \\xBB compl\\xE8te de Safari doit \\xEAtre un dernier recours et vous devez sauvegarder vos signets, l'historique et la liste de lecture dans iCloud ou un \",(0,n.jsx)(e.code,{children:\".plist\"}),\" export\\xE9 avant de tenter.\"]}),`\n`]}),`\n`,(0,n.jsx)(e.h2,{id:\"ce-que-les-utilisateurs-voient-r\\xE9ellement\",children:\"Ce que les utilisateurs voient r\\xE9ellement\"}),`\n`,(0,n.jsx)(e.p,{children:\"Avant d'aborder les causes, il convient d'\\xEAtre pr\\xE9cis sur l'ensemble des sympt\\xF4mes, car Safari a livr\\xE9 plusieurs bugs diff\\xE9rents dans 26.x et un mauvais diagnostic vous envoie sur une mauvaise piste. Le groupe 26.5 a une empreinte sp\\xE9cifique.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le sympt\\xF4me le plus courant est un plantage \\xE0 la fermeture d'un onglet. Vous faites Commande-W (ou cliquez sur le bouton de fermeture) et Safari dispara\\xEEt enti\\xE8rement ou tourne en beachball pendant dix \\xE0 quinze secondes avant de dispara\\xEEtre. Le rapport de plantage dans \",(0,n.jsx)(e.code,{children:\"~/Library/Logs/DiagnosticReports/\"}),\" montrera une fermeture de Safari avec une trace de pile \",(0,n.jsx)(e.code,{children:\"Thread 0\"}),\" impliquant \",(0,n.jsx)(e.code,{children:\"WebCore::Page::~Page\"}),\" ou \",(0,n.jsx)(e.code,{children:\"WebKit::WebPageProxy::close\"}),\" et fr\\xE9quemment un fil secondaire bloqu\\xE9 dans les rappels \",(0,n.jsx)(e.code,{children:\"NetworkExtension\"}),\" ou \",(0,n.jsx)(e.code,{children:\"NEFilterProvider\"}),\". Les utilisateurs de machines de la s\\xE9rie M avec 16 Go de RAM ou moins le voient le plus souvent, mais cela a \\xE9t\\xE9 reproduit sur des machines M3 Max et M4 Max avec 64 Go \\xE9galement, ce n'est donc pas un probl\\xE8me de pression m\\xE9moire.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le deuxi\\xE8me sympt\\xF4me est des onglets qui deviennent blancs lors de la restauration. Vous quittez Safari, le relancez, et les onglets de votre session pr\\xE9c\\xE9dente apparaissent dans la barre d'onglets avec leurs titres intacts, mais cliquer sur l'un d'eux affiche une page blanche. La barre d'URL est vide. Vous ne pouvez pas recharger la page car le bouton actualiser ne fait rien \\u2014 en interne, Safari a perdu le contexte de navigation de cet onglet. Le seul contournement est de saisir l'URL manuellement, ce qui signifie que vous avez perdu votre position de d\\xE9filement, l'\\xE9tat du formulaire et toute session connect\\xE9e qui d\\xE9pendait d'un historique \",(0,n.jsx)(e.code,{children:\"pushState\"}),\".\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le troisi\\xE8me sympt\\xF4me est l'onglet monopolisant le CPU. Un onglet \\u2014 g\\xE9n\\xE9ralement le dernier charg\\xE9, mais parfois un plus ancien \\u2014 occupe 60 \\xE0 80 % d'un seul c\\u0153ur de performance. Le Moniteur d'activit\\xE9 affichera \\xAB Safari Web Content \\xBB ou \\xAB com.apple.WebKit.WebContent \\xBB comme processus. En \\xE9chantillonnant le processus dans Instruments ou avec \",(0,n.jsx)(e.code,{children:\"sample\"}),\" depuis le Terminal, on voit des boucles serr\\xE9es dans \",(0,n.jsx)(e.code,{children:\"WebCore::FrameView::layout\"}),\" ou \",(0,n.jsx)(e.code,{children:\"WebKit::WebPage::updateRendering\"}),\". Tuer le processus Web Content sp\\xE9cifique depuis le Moniteur d'activit\\xE9 (Safari > Develop > Web Process > Terminate) restaure l'utilisation normale du CPU mais emporte l'onglet affect\\xE9 avec lui.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le quatri\\xE8me sympt\\xF4me est un blocage g\\xE9n\\xE9ralis\\xE9 de cinq \\xE0 trente secondes, particuli\\xE8rement lorsque Safari doit \\xE9crire dans son magasin de sessions sur le disque. Cela se produit lors de la fermeture d'onglet, de la sortie de l'application, et parfois lors de l'ouverture d'une nouvelle fen\\xEAtre. Pendant le blocage, \",(0,n.jsx)(e.code,{children:\"fs_usage -f filesystem\"}),\" montrera des \\xE9critures r\\xE9p\\xE9t\\xE9es sur \",(0,n.jsx)(e.code,{children:\"~/Library/Safari/LastSession.plist\"}),\" et \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Safari/RecentlyClosedTabs.plist\"}),\", souvent avec le m\\xEAme fichier \\xE9crit des centaines de fois par seconde.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Le cinqui\\xE8me sympt\\xF4me, le moins signal\\xE9, concerne Mail. Mail.app utilise le m\\xEAme framework WebKit que Safari pour le rendu des corps de messages HTML. Les utilisateurs avec le probl\\xE8me Safari voient presque universellement aussi Mail se bloquer pendant plusieurs secondes lors de l'ouverture d'une newsletter HTML, et parfois planter lorsqu'on marque un tel message comme lu alors qu'il est encore en cours de rendu. Le sympt\\xF4me est moins \\xE9vident car la plupart des messages Mail se rendent assez rapidement pour que le bug ne se d\\xE9clenche pas, mais c'est le m\\xEAme probl\\xE8me sous-jacent.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Activity Monitor showing the runaway Safari Web Content process\",src:\"/images/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026/content-1.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,n.jsx)(e.h2,{id:\"qui-est-affect\\xE9\",children:\"Qui est affect\\xE9\"}),`\n`,(0,n.jsx)(e.p,{children:\"Les nouvelles installations 26.5 et les mises \\xE0 niveau en place depuis 26.4 et 26.4.1 signalent le probl\\xE8me. Il n'y a pas de mod\\xE8le clair par mat\\xE9riel \\u2014 chaque g\\xE9n\\xE9ration Apple Silicon de M1 \\xE0 M4 a \\xE9t\\xE9 confirm\\xE9e comme affect\\xE9e, et les rares utilisateurs Intel restants sur 26.5 (c'est la derni\\xE8re version incluant le support Intel, selon l'avis de d\\xE9pr\\xE9ciation d'Apple dans les notes de version 26.5) signalent les m\\xEAmes plantages.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Il existe cependant trois corr\\xE9lations qui ressortent clairement dans les donn\\xE9es des forums :\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Le nombre d'extensions est fortement corr\\xE9l\\xE9 \\xE0 la fr\\xE9quence des plantages.\"}),\" Les utilisateurs sans aucune extension Safari install\\xE9e signalent les sympt\\xF4mes de blocage et d'onglet blanc mais rarement le plantage \\xE0 la fermeture. Les utilisateurs avec cinq extensions ou plus install\\xE9es signalent le sch\\xE9ma de plantage complet. Cela ne signifie pas qu'une extension sp\\xE9cifique est la cause \\u2014 d\\xE9sactiver des extensions individuelles ne corrige pas le plantage \\u2014 mais l'\\xE9tat du processus WebKit devient plus complexe avec chaque extension et le bug est sensible \\xE0 cet \\xE9tat.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Les VPN \\xE0 extension r\\xE9seau sont le facteur de corr\\xE9lation simple le plus fort.\"}),\" Si vous utilisez AdGuard for Safari (le syst\\xE8me global, pas le bloqueur de contenu de l'App Store), NordVPN avec la Protection contre les menaces activ\\xE9e, Cloudflare WARP avec le mode \\xAB 1.1.1.1 for Families \\xBB, Surfshark avec CleanWeb, ou tout autre VPN dont les fonctionnalit\\xE9s annonc\\xE9es incluent le \\xAB blocage des traceurs et des malwares \\xBB via une extension r\\xE9seau, votre taux de plantage est environ quatre \\xE0 cinq fois plus \\xE9lev\\xE9 que la r\\xE9f\\xE9rence. D\\xE9sactiver le composant extension r\\xE9seau de ces applications (souvent appel\\xE9 \\xAB Protection contre les menaces \\xBB, \\xAB Filtre r\\xE9seau \\xBB ou \\xAB Blocage de contenu \\xBB dans leurs interfaces) supprime le plantage m\\xEAme lorsque le VPN lui-m\\xEAme reste actif.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Les utilisateurs de Safari avec plusieurs profils sont touch\\xE9s de mani\\xE8re disproportionn\\xE9e.\"}),\" La fonctionnalit\\xE9 de profils Safari, introduite dans Sonoma 14 et m\\xFBrie dans les versions suivantes, stocke l'\\xE9tat par profil dans \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/\"}),\". Lors de la migration du dictionnaire des fonctionnalit\\xE9s exp\\xE9rimentales dans 26.5, WebKit a migr\\xE9 la copie du profil par d\\xE9faut mais dans certains cas n'a pas r\\xE9ussi \\xE0 migrer proprement les remplacements par profil, laissant le profil dans un \\xE9tat partiellement corrompu.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"cause-profonde-1--corruption-des-indicateurs-de-fonctionnalit\\xE9s-webkit\",children:\"Cause profonde 1 : Corruption des indicateurs de fonctionnalit\\xE9s WebKit\"}),`\n`,(0,n.jsx)(e.p,{children:\"Safari poss\\xE8de deux endroits compl\\xE8tement distincts o\\xF9 les pr\\xE9f\\xE9rences utilisateur r\\xE9sident, et la distinction importe \\xE9norm\\xE9ment pour ce bug.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le premier est \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist\"}),\" (et les pr\\xE9f\\xE9rences du conteneur parent), qui contient tout ce que vous d\\xE9finissez via \",(0,n.jsx)(e.code,{children:\"Safari > Pr\\xE9f\\xE9rences\"}),\" : page d'accueil, moteur de recherche, comportement des onglets, remplissage automatique, activation/d\\xE9sactivation des extensions, etc. C'est la couche \\xAB pr\\xE9f\\xE9rences utilisateur \\xBB.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le second est le dictionnaire des indicateurs de fonctionnalit\\xE9s WebKit, qui r\\xE9side dans les pr\\xE9f\\xE9rences de \",(0,n.jsx)(e.code,{children:\"com.apple.WebKit.WebContent\"}),\" et n'est expos\\xE9 dans l'interface Safari que via \",(0,n.jsx)(e.code,{children:\"Develop > Feature Flags\"}),\". Ce sont des interrupteurs individuels marche/arr\\xEAt pour les comportements WebKit exp\\xE9rimentaux \\u2014 des choses comme \\xAB Async Clipboard API \\xBB, \\xAB CSS @scope Rule \\xBB, \\xAB WebGPU \\xBB, \\xAB Speculation Rules \\xBB, \\xAB View Transitions Cross-Document \\xBB, et plusieurs centaines d'autres. La plupart sont stables et activ\\xE9s par d\\xE9faut ; certains sont exp\\xE9rimentaux et d\\xE9sactiv\\xE9s par d\\xE9faut ; quelques-uns sont d\\xE9pr\\xE9ci\\xE9s et destin\\xE9s \\xE0 \\xEAtre supprim\\xE9s.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Lorsque macOS met \\xE0 niveau Safari vers une nouvelle version majeure, WebKit ex\\xE9cute une \\xE9tape de migration sur le dictionnaire des indicateurs de fonctionnalit\\xE9s. Les indicateurs promus de exp\\xE9rimental \\xE0 par d\\xE9faut sont activ\\xE9s. Les indicateurs supprim\\xE9s sont effac\\xE9s. De nouveaux indicateurs sont ins\\xE9r\\xE9s avec leurs valeurs par d\\xE9faut. Le code de migration est complexe et historiquement fiable.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Dans 26.5, cependant, la migration contient un bug. Plus pr\\xE9cis\\xE9ment, lorsqu'un indicateur exp\\xE9rimental change son \",(0,n.jsx)(e.code,{children:\"nom de cl\\xE9\"}),\" entre les versions de Safari (ce qui se produit occasionnellement lorsque WebKit refactorise une fonctionnalit\\xE9 en interne), la migration \\xE9crit la nouvelle cl\\xE9 mais ne supprime pas toujours l'ancienne, laissant les deux dans le dictionnaire. Quelques indicateurs ont \\xE9galement \\xE9t\\xE9 migr\\xE9s vers un nouveau type de valeur (bool\\xE9en vers \\xE9num\\xE9ration enti\\xE8re, pour les indicateurs \\xE0 trois \\xE9tats), et le code d'ex\\xE9cution de Safari dans 26.5 les lit parfois selon l'ancien type, provoquant le plantage du processus de contenu WebKit lorsque ces fonctionnalit\\xE9s sont utilis\\xE9es \\u2014 par exemple, lorsque le compositeur d\\xE9monte une page lors de la fermeture d'un onglet.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Le r\\xE9sultat est qu'une fraction al\\xE9atoirement s\\xE9lectionn\\xE9e des utilisateurs de 26.5 poss\\xE8de des dictionnaires d'indicateurs de fonctionnalit\\xE9s contenant des entr\\xE9es p\\xE9rim\\xE9es ou mal typ\\xE9es, et Safari se comporte de mani\\xE8re erratique lorsque les chemins de code WebKit les rencontrent.\"}),`\n`,(0,n.jsx)(e.p,{children:\"La correction consiste \\xE0 r\\xE9initialiser les indicateurs de fonctionnalit\\xE9s. Nous allons d\\xE9crire cette op\\xE9ration \\xE9tape par \\xE9tape dans la section Corrections ci-dessous.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"cause-profonde-2--modification-de-lapi-network-extension\",children:\"Cause profonde 2 : Modification de l'API Network Extension\"}),`\n`,(0,n.jsx)(e.p,{children:\"Celle-ci n\\xE9cessite un bref d\\xE9tour par le framework Network Extension d'Apple.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Sur Mac, les VPN \\xE0 filtrage de contenu et les bloqueurs de publicit\\xE9s fonctionnant \\xE0 l'\\xE9chelle du syst\\xE8me (pas uniquement dans Safari) installent une extension r\\xE9seau. Il s'agit d'un framework Apple qui permet \\xE0 une application tierce d'ex\\xE9cuter du code de filtrage r\\xE9seau adjacent au noyau. L'utilisateur accorde l'autorisation dans R\\xE9glages Syst\\xE8me > G\\xE9n\\xE9ral > \\xC9l\\xE9ments de connexion et extensions > Extensions r\\xE9seau. \\xC0 partir de l\\xE0, chaque socket TCP/UDP ouvert sur le syst\\xE8me peut \\xEAtre inspect\\xE9, redirig\\xE9 ou bloqu\\xE9 par l'extension avant de quitter la machine.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Dans 26.5, Apple a livr\\xE9 ce qu'il appelle Privacy Relay v2 \\u2014 une extension de l'infrastructure iCloud Private Relay existante qui s'applique d\\xE9sormais \\xE0 un ensemble de trafic plus large et utilise une nouvelle couche de routage dans le noyau. Cette nouvelle couche de routage attend que les extensions r\\xE9seau s'enregistrent avec une signature de rappel l\\xE9g\\xE8rement diff\\xE9rente. Les extensions r\\xE9seau plus anciennes (tout ce qui n'est pas recompil\\xE9 avec le SDK 26.5) fonctionnent toujours, mais le noyau les encapsule maintenant dans une couche de compatibilit\\xE9 qui ajoute de la latence \\xE0 chaque rappel de filtre.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cette couche de compatibilit\\xE9 est le probl\\xE8me. Lorsque Safari ferme un onglet, le processus de contenu de WebKit d\\xE9monte les connexions r\\xE9seau associ\\xE9es \\xE0 cet onglet. Chaque d\\xE9montage de connexion est filtr\\xE9 via l'extension r\\xE9seau, qui, avec la couche de compatibilit\\xE9 en place, peut prendre 50 \\xE0 500 millisecondes par appel. Sur un onglet avec vingt connexions actives (ce qui est normal \\u2014 un seul site web moderne ouvre des connexions vers une douzaine de domaines publicitaires et analytiques), le d\\xE9montage peut prendre plusieurs secondes, et pendant ce temps WebKit maintient des verrous que le reste de Safari attend. Le chien de garde interne d'Apple pour \\xAB processus semblant bloqu\\xE9 \\xBB se d\\xE9clenche parfois pendant cette fen\\xEAtre et tue le processus de contenu WebKit, que Safari signale ensuite comme un plantage.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cela explique la corr\\xE9lation de quatre \\xE0 cinq fois entre les VPN \\xE0 extension r\\xE9seau et le sch\\xE9ma de plantage. Cela explique \\xE9galement pourquoi le plantage s'aggrave \\xE0 mesure que Safari fonctionne plus longtemps : chaque fermeture d'onglet fait fuiter une petite quantit\\xE9 d'\\xE9tat de la couche de compatibilit\\xE9, et apr\\xE8s plusieurs heures d'utilisation normale, le temps de d\\xE9montage par onglet a augment\\xE9 au point o\\xF9 le chien de garde se d\\xE9clenche de mani\\xE8re fiable.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Apple travaille apparemment avec les principaux fournisseurs VPN sur des extensions recompil\\xE9es ciblant le nouveau SDK, mais \\xE0 l'heure o\\xF9 nous \\xE9crivons, aucun n'a encore \\xE9t\\xE9 publi\\xE9. La solution de contournement est de d\\xE9sactiver l'extension r\\xE9seau de filtrage de contenu tout en conservant la fonctionnalit\\xE9 de tunneling du VPN, qui passe par un type d'extension diff\\xE9rent (non affect\\xE9).\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"System Settings Network Extensions pane showing the active filters\",src:\"/images/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026/content-2.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,n.jsx)(e.h2,{id:\"cause-profonde-3--\\xE9tat-de-session-malform\\xE9\",children:\"Cause profonde 3 : \\xC9tat de session malform\\xE9\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" est l'enregistrement par Safari des fen\\xEAtres et onglets ouverts lors de sa derni\\xE8re fermeture. Lorsque vous lancez Safari, il lit ce fichier et reconstruit votre session \\u2014 chaque fen\\xEAtre, chaque onglet, chaque URL, chaque position de d\\xE9filement. Le fichier est une liste de propri\\xE9t\\xE9s binaire et repr\\xE9sente g\\xE9n\\xE9ralement quelques centaines de kilo-octets pour un utilisateur moyen.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le format de fichier est versionn\\xE9. Chaque version majeure de Safari ajoute parfois de nouveaux champs \\u2014 par exemple, l'\\xE9tat \\xAB Mode Lecture actif \\xBB par onglet, l'UUID du profil auquel appartient un onglet, ou le dernier \\xAB type de navigation \\xBB qui a amen\\xE9 l'onglet \\xE0 son URL actuelle. Lorsque Safari ouvre un \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" \\xE9crit par une version plus ancienne, il tol\\xE8re les champs manquants en les remplissant par des valeurs par d\\xE9faut.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Ce que 26.5 ne g\\xE8re pas bien, c'est l'inverse : un \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" contenant des champs que le nouveau Safari ne reconna\\xEEt pas. Cela peut se produire si vous avez ex\\xE9cut\\xE9 une version Safari Technology Preview \\xE0 un moment quelconque du cycle 26.4 (comme beaucoup d'utilisateurs avanc\\xE9s le font) puis \\xEAtes revenu \\xE0 Safari en version stable, ou si vous avez copi\\xE9 votre Biblioth\\xE8que entre des machines utilisant des versions mineures diff\\xE9rentes, ou dans certains cas simplement \\xE0 cause d'une \\xE9criture de session rat\\xE9e lors d'un plantage pr\\xE9c\\xE9dent.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Lorsque Safari 26.5 rencontre une entr\\xE9e de session malform\\xE9e, le comportement d\\xE9pend du champ malform\\xE9. Le cas b\\xE9nin est un onglet qui se restaure comme blanc \\u2014 Safari n'a pas pu analyser l'entr\\xE9e de navigation et a saut\\xE9 la restauration. Le cas plus agressif est un onglet dont l'entr\\xE9e survive \\xE0 l'analyse mais dont les champs de pointeur internes sont incoh\\xE9rents, conduisant \\xE0 un plantage plus tard lorsque Safari tente d'\\xE9crire l'\\xE9tat de l'onglet sur le disque lors d'un cycle de sauvegarde normal.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"La correction consiste \\xE0 supprimer \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" et \\xE0 commencer avec une session propre. Vous perdez vos onglets actuellement ouverts (bri\\xE8vement \\u2014 voir la proc\\xE9dure de r\\xE9cup\\xE9ration ci-dessous), mais vous obtenez un fichier de session propre et coh\\xE9rent que Safari peut lire et \\xE9crire de mani\\xE8re fiable.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-1--r\\xE9initialiser-les-indicateurs-de-fonctionnalit\\xE9s-webkit\",children:\"Correction 1 : R\\xE9initialiser les indicateurs de fonctionnalit\\xE9s WebKit\"}),`\n`,(0,n.jsx)(e.p,{children:\"C'est la correction unique \\xE0 l'impact le plus \\xE9lev\\xE9 et celle \\xE0 essayer en premier.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"\\xC9tape 1 \\u2014 Activer le menu Develop. Ouvrez Safari, choisissez \",(0,n.jsx)(e.code,{children:\"Safari > Pr\\xE9f\\xE9rences\"}),\", cliquez sur l'onglet \",(0,n.jsx)(e.code,{children:\"Avanc\\xE9\"}),\" et cochez la case en bas indiquant \\xAB Afficher les fonctionnalit\\xE9s pour les d\\xE9veloppeurs web \\xBB (dans certaines versions 26.x, c'est encore intitul\\xE9 \\xAB Afficher le menu Develop dans la barre des menus \\xBB). Fermez les Pr\\xE9f\\xE9rences.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"\\xC9tape 2 \\u2014 Ouvrir le panneau des indicateurs de fonctionnalit\\xE9s. Safari \\xE9tant au premier plan, cliquez sur le menu \",(0,n.jsx)(e.code,{children:\"Develop\"}),\" dans la barre des menus. Vous devriez voir un sous-menu \",(0,n.jsx)(e.code,{children:\"Feature Flags\"}),\" pr\\xE8s du haut. Cliquez dessus. Une fen\\xEAtre s\\xE9par\\xE9e s'ouvre, listant chaque indicateur de fonctionnalit\\xE9 WebKit organis\\xE9 par cat\\xE9gorie, avec une zone de recherche en haut.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"\\xC9tape 3 \\u2014 R\\xE9initialiser aux valeurs par d\\xE9faut. En haut \\xE0 droite de la fen\\xEAtre Feature Flags, cliquez sur le bouton \",(0,n.jsx)(e.code,{children:\"Reset All to Defaults\"}),\" (dans certaines versions, il se trouve en bas et est intitul\\xE9 \\xAB Restore Defaults \\xBB). Confirmez la bo\\xEEte de dialogue. Safari \\xE9crira un dictionnaire d'indicateurs de fonctionnalit\\xE9s propre, \\xE9liminant toutes les entr\\xE9es p\\xE9rim\\xE9es ou mal typ\\xE9es provenant de la migration de mise \\xE0 niveau.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"\\xC9tape 4 \\u2014 Quitter compl\\xE8tement Safari. \",(0,n.jsx)(e.code,{children:\"Safari > Quitter Safari\"}),\" ou \",(0,n.jsx)(e.code,{children:\"Cmd-Q\"}),\". Ne vous contentez pas de fermer toutes les fen\\xEAtres ; les processus de contenu WebKit ne r\\xE9cup\\xE9reront pas les nouveaux indicateurs de fonctionnalit\\xE9s tant que vous n'aurez pas r\\xE9ellement quitt\\xE9 et relanc\\xE9 le processus parent.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"\\xC9tape 5 \\u2014 Relancer et tester. Ouvrez Safari, ouvrez quelques onglets, naviguez normalement pendant quelques minutes, et fermez un onglet. Si vous voyez encore des blocages ou des plantages, passez \\xE0 la Correction 2.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Une note sur ce que cela fait et ne fait pas : r\\xE9initialiser les indicateurs de fonctionnalit\\xE9s ne modifie aucun de vos param\\xE8tres Safari normaux. Votre page d'accueil, votre moteur de recherche, le remplissage automatique, l'historique, les signets, la liste de lecture, les extensions, etc. sont intacts. La seule chose qui change est l'activation ou la d\\xE9sactivation des fonctionnalit\\xE9s WebKit exp\\xE9rimentales, et m\\xEAme l\\xE0, uniquement celles dont l'\\xE9tat s'est \\xE9cart\\xE9 du d\\xE9faut actuel.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-2--d\\xE9sactiver-le-mode-extension-r\\xE9seau-vpn\",children:\"Correction 2 : D\\xE9sactiver le mode extension r\\xE9seau VPN\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cela s'applique si vous utilisez AdGuard, NordVPN, Cloudflare WARP, Surfshark, Mullvad avec le blocage de contenu, ou similaire.\"}),`\n`,(0,n.jsx)(e.p,{children:\"La formulation exacte varie selon l'application, mais le param\\xE8tre sous-jacent que vous souhaitez trouver est celui qui contr\\xF4le si l'application installe une extension r\\xE9seau qui filtre le contenu par connexion. Quelques notes sp\\xE9cifiques aux fournisseurs :\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"AdGuard for Mac :\"}),\" Ouvrez AdGuard. Cliquez sur l'ic\\xF4ne d'engrenage. Allez dans \",(0,n.jsx)(e.code,{children:\"R\\xE9seau\"}),\" > \",(0,n.jsx)(e.code,{children:\"Mode de fonctionnement\"}),\". Basculez de \\xAB Automatique \\xBB ou \\xAB Extension r\\xE9seau \\xBB vers \",(0,n.jsx)(e.code,{children:\"Proxy automatique\"}),\". L'application se r\\xE9installera comme un proxy HTTP local plut\\xF4t que comme une extension r\\xE9seau \\xE0 l'\\xE9chelle du syst\\xE8me. Votre blocage des publicit\\xE9s continue de fonctionner dans Safari mais ne se connecte plus au chemin de trafic au niveau du noyau qui entre en conflit avec Privacy Relay v2.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"NordVPN :\"}),\" Ouvrez l'application NordVPN. R\\xE9glages > Protection contre les menaces. D\\xE9sactivez \",(0,n.jsx)(e.code,{children:\"Protection contre les menaces\"}),\" (vous pouvez laisser la connexion VPN elle-m\\xEAme active). Le tunnel VPN de base n'utilise pas le type d'extension conflictuel. Si vous souhaitez sp\\xE9cifiquement garder la Protection contre les menaces active, le mode \\xAB Threat Protection Lite \\xBB de NordVPN est bas\\xE9 sur DNS plut\\xF4t que sur une extension r\\xE9seau et ne d\\xE9clenche pas le bug.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Cloudflare WARP / 1.1.1.1 :\"}),\" Ouvrez l'application 1.1.1.1. R\\xE9glages > Avanc\\xE9 > R\\xE9glages DNS. Changez le mode de \\xAB 1.1.1.1 for Families \\xBB (qui installe un filtre de contenu) vers \",(0,n.jsx)(e.code,{children:\"1.1.1.1\"}),\" simple ou \",(0,n.jsx)(e.code,{children:\"1.1.1.1 + WARP\"}),\". Le tunnel WARP lui-m\\xEAme ne d\\xE9clenche pas le bug ; seul le filtre de contenu familial le fait.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Surfshark :\"}),\" Pr\\xE9f\\xE9rences > R\\xE9glages VPN > CleanWeb. D\\xE9sactivez. M\\xEAme logique \\u2014 le tunnel est correct, le filtre de contenu ne l'est pas.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Mullvad :\"}),\" Pr\\xE9f\\xE9rences > Bloqueurs de contenu DNS. Basculez tous les bloqueurs sur \\xAB D\\xE9sactiv\\xE9 \\xBB. Utilisez un DNS personnalis\\xE9 pointant vers NextDNS ou un service similaire si vous voulez r\\xE9cup\\xE9rer le blocage sans l'extension r\\xE9seau.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Apr\\xE8s avoir modifi\\xE9 le param\\xE8tre, allez dans \",(0,n.jsx)(e.code,{children:\"R\\xE9glages Syst\\xE8me > G\\xE9n\\xE9ral > \\xC9l\\xE9ments de connexion et extensions > Extensions r\\xE9seau\"}),\". Confirmez que l'entr\\xE9e concern\\xE9e est maintenant d\\xE9sactiv\\xE9e (ou a compl\\xE8tement disparu). Quittez et relancez Safari. Testez le comportement \\xE0 la fermeture d'onglet.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Si votre VPN n'est pas list\\xE9 ci-dessus, la r\\xE8gle g\\xE9n\\xE9rale est : cherchez tout param\\xE8tre dont la description mentionne le blocage des traceurs, des malwares, des publicit\\xE9s ou du \\xAB contenu pour adultes \\xBB au niveau r\\xE9seau. Ce param\\xE8tre, quel que soit son nom, est impl\\xE9ment\\xE9 comme une extension r\\xE9seau et c'est celui \\xE0 d\\xE9sactiver pour cette correction.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-3--supprimer-lastsessionplist\",children:\"Correction 3 : Supprimer LastSession.plist\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cela traite le sympt\\xF4me de l'onglet blanc \\xE0 la restauration et aide avec les blocages persistants.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Avant de supprimer le fichier, vous pouvez vouloir capturer les URL que vous avez ouvertes afin de pouvoir les restaurer. La fa\\xE7on la plus simple est \",(0,n.jsx)(e.code,{children:\"Signets > Ajouter des signets pour ces N onglets...\"}),\", ce qui place tous les onglets actuellement ouverts dans un seul dossier de signets. Faites cela en premier.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Ensuite, quittez compl\\xE8tement Safari.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Ouvrez le Finder. Appuyez sur \",(0,n.jsx)(e.code,{children:\"Cmd-Maj-G\"}),\" pour faire appara\\xEEtre \\xAB Aller au dossier \\xBB. Collez \",(0,n.jsx)(e.code,{children:\"~/Library/Safari/\"}),\" et appuyez sur Retour. Vous devriez voir \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\". Faites-le glisser vers la Corbeille. (Ne videz pas la Corbeille pour l'instant \\u2014 si quelque chose se passe mal, vous pouvez le r\\xE9cup\\xE9rer.)\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Pendant que vous \\xEAtes dans ce dossier, il y a un fichier connexe qui m\\xE9rite d'\\xEAtre supprim\\xE9 : \",(0,n.jsx)(e.code,{children:\"RecentlyClosedTabs.plist\"}),\". Il est parfois corrompu par le m\\xEAme bug de boucle d'\\xE9criture qui affecte \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" et effacer les deux donne la r\\xE9initialisation la plus propre.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Si vous utilisez plusieurs profils, vous avez \\xE9galement un fichier de session par profil sous \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Safari/Profiles/<UUID>/LastSession.plist\"}),\". Supprimez-les \\xE9galement.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Relancez Safari. Il s'ouvrira avec une nouvelle fen\\xEAtre et sans onglets restaur\\xE9s. Ouvrez vos signets (Vue > Afficher la barre lat\\xE9rale, ou le menu Signets), trouvez le dossier que vous avez cr\\xE9\\xE9 ci-dessus, et faites un clic droit > Ouvrir dans de nouveaux onglets. Votre session pr\\xE9c\\xE9dente est de retour, sans les entr\\xE9es corrompues.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-4--reconstruire-un-profil-safari\",children:\"Correction 4 : Reconstruire un profil Safari\"}),`\n`,(0,n.jsx)(e.p,{children:\"Si vous utilisez des profils Safari (introduits dans macOS Sonoma et utilis\\xE9s par des personnes souhaitant des contextes de navigation s\\xE9par\\xE9s pour le travail et les loisirs, par exemple), et que les corrections ci-dessus ne r\\xE9solvent pas le probl\\xE8me pour un profil sp\\xE9cifique, le profil lui-m\\xEAme est peut-\\xEAtre corrompu.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Ouvrez Safari > Pr\\xE9f\\xE9rences > Profils. Notez l'ic\\xF4ne, la couleur et le dossier de signets du profil affect\\xE9 afin de pouvoir le recr\\xE9er. Cliquez sur le profil dans la liste, puis cliquez sur le bouton moins pour le supprimer. Confirmez. (Safari proposera de conserver les signets du profil ; dites oui \\u2014 cela les exporte vers votre barre de signets principale afin de ne pas les perdre.)\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cliquez sur le bouton plus pour cr\\xE9er un nouveau profil. Donnez-lui le m\\xEAme nom, la m\\xEAme ic\\xF4ne et la m\\xEAme couleur qu'avant. Faites glisser les signets dans le dossier de signets du nouveau profil si vous le souhaitez.\"}),`\n`,(0,n.jsx)(e.p,{children:\"L'\\xE9tat WebKit du nouveau profil est cr\\xE9\\xE9 \\xE0 partir des valeurs par d\\xE9faut plut\\xF4t que migr\\xE9 depuis 26.4, ce qui contourne enti\\xE8rement le bug de migration. Les taux de plantage dans nos tests sur les profils reconstruits ont chut\\xE9 au bruit de r\\xE9f\\xE9rence \\u2014 c'est-\\xE0-dire qu'ils se sont arr\\xEAt\\xE9s.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-5--test-de-d\\xE9marrage-en-mode-sans-\\xE9chec\",children:\"Correction 5 : Test de d\\xE9marrage en Mode sans \\xE9chec\"}),`\n`,(0,n.jsx)(e.p,{children:\"Le Mode sans \\xE9chec est utile ici comme diagnostic, pas n\\xE9cessairement comme correction.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Sur Apple Silicon : \\xE9teignez le Mac. Appuyez et maintenez le bouton d'alimentation jusqu'\\xE0 voir \\xAB Chargement des options de d\\xE9marrage \\xBB. S\\xE9lectionnez votre disque de d\\xE9marrage en maintenant \",(0,n.jsx)(e.code,{children:\"Maj\"}),\" enfonc\\xE9, puis cliquez sur \\xAB Continuer en Mode sans \\xE9chec \\xBB.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Sur Intel (les rares d'entre vous encore sur 26.5) : \\xE9teignez, puis d\\xE9marrez en maintenant \",(0,n.jsx)(e.code,{children:\"Maj\"}),\" jusqu'\\xE0 l'apparition de la fen\\xEAtre de connexion.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le Mode sans \\xE9chec ne charge que les extensions noyau Apple sign\\xE9es, efface plusieurs caches et effectue une v\\xE9rification de base du disque. Ce qui est important pour nos besoins, il ne \",(0,n.jsx)(e.strong,{children:\"d\\xE9charge pas\"}),\" les extensions r\\xE9seau sur Apple Silicon \\u2014 celles-ci s'ex\\xE9cutent dans l'espace utilisateur, pas dans l'espace noyau, et le Mode sans \\xE9chec ne les affecte pas. Donc si vous soup\\xE7onnez une cause li\\xE9e \\xE0 l'extension r\\xE9seau et souhaitez le confirmer, le Mode sans \\xE9chec n'est pas le bon test.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Ce que le Mode sans \\xE9chec teste, c'est si une extension noyau tierce ou un \\xE9l\\xE9ment de connexion contribue. Si Safari fonctionne normalement en Mode sans \\xE9chec mais plante lors d'un d\\xE9marrage normal, cela pointe vers l'un de vos \\xE9l\\xE9ments de d\\xE9marrage tiers \\u2014 probablement un outil de sauvegarde, un antivirus ou un utilitaire sp\\xE9cifique au mat\\xE9riel \\u2014 comme facteur contribuant. D\\xE9sactivez les \\xE9l\\xE9ments suspects dans R\\xE9glages Syst\\xE8me > G\\xE9n\\xE9ral > \\xC9l\\xE9ments de connexion et extensions un \\xE0 la fois lors d'un d\\xE9marrage normal pour identifier le coupable sp\\xE9cifique.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Si Safari plante encore en Mode sans \\xE9chec, la cause est dans les pr\\xE9f\\xE9rences de votre compte utilisateur ou dans le syst\\xE8me lui-m\\xEAme, et vous devriez vous concentrer sur les Corrections 1, 3 et 6.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Safari Develop menu showing Feature Flags entry\",src:\"/images/blog/safari-tab-crashes-macos-tahoe-26-5-webkit-feature-flag-fix-2026/content-3.webp\",width:\"2848\",height:\"1504\"})}),`\n`,(0,n.jsx)(e.h2,{id:\"correction-6--effacer-le-cache-des-bloqueurs-de-contenu-webkit\",children:\"Correction 6 : Effacer le cache des bloqueurs de contenu WebKit\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Si vous avez des extensions de blocage de contenu install\\xE9es (du type App Store, pas AdGuard \\u2014 des choses comme 1Blocker, Wipr, Ghostery Lite, AdGuard for Safari de l'App Store), WebKit compile leurs r\\xE8gles dans un format binaire et met en cache les r\\xE8gles compil\\xE9es dans \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Safari/ContentBlockerCache/\"}),\".\"]}),`\n`,(0,n.jsx)(e.p,{children:\"La mise \\xE0 niveau 26.5 a modifi\\xE9 le format des r\\xE8gles compil\\xE9es. Safari est cens\\xE9 d\\xE9tecter la discordance de version et recompiler, mais dans certains cas il lit plut\\xF4t l'ancien cache comme le nouveau format et \\xE9choue sur la premi\\xE8re recherche de r\\xE8gle, se manifestant comme un blocage ou un plantage.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Pour effacer le cache, quittez Safari, puis dans le Finder appuyez sur \",(0,n.jsx)(e.code,{children:\"Cmd-Maj-G\"}),\" et collez \",(0,n.jsx)(e.code,{children:\"~/Library/Containers/com.apple.Safari/Data/Library/Safari/\"}),\". Trouvez tout dossier nomm\\xE9 \",(0,n.jsx)(e.code,{children:\"ContentBlockerCache\"}),\" ou \",(0,n.jsx)(e.code,{children:\"WebKitContentBlocker\"}),\" et d\\xE9placez-les dans la Corbeille. Safari recompilera \\xE0 partir de vos extensions de bloqueur de contenu au prochain lancement, ce qui peut prendre cinq \\xE0 trente secondes pendant lesquelles les chargements de page seront lents. Apr\\xE8s cette unique recompilation, tout revient \\xE0 la normale.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"pourquoi-les-indicateurs-de-fonctionnalit\\xE9s-webkit-d\\xE9rivent\",children:\"Pourquoi les indicateurs de fonctionnalit\\xE9s WebKit d\\xE9rivent\"}),`\n`,(0,n.jsx)(e.p,{children:\"La question plus profonde est pourquoi une migration d'indicateurs de fonctionnalit\\xE9s devrait jamais mal se passer. WebKit effectue ces migrations depuis macOS Sierra et la machinerie sous-jacente est bien rod\\xE9e. Pour comprendre le probl\\xE8me 26.5, vous devez savoir comment les indicateurs sont stock\\xE9s et comment la migration est structur\\xE9e.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Un indicateur de fonctionnalit\\xE9 WebKit est, au niveau du format de fichier, une entr\\xE9e dans la liste de propri\\xE9t\\xE9s des pr\\xE9f\\xE9rences de \",(0,n.jsx)(e.code,{children:\"com.apple.WebKit.WebContent\"}),\" (et une entr\\xE9e parall\\xE8le dans les propres pr\\xE9f\\xE9rences de Safari pour les indicateurs g\\xE9r\\xE9s par Safari). Chaque entr\\xE9e a une cl\\xE9, une valeur et un type implicite. La cl\\xE9 est une cha\\xEEne comme \",(0,n.jsx)(e.code,{children:\"WebKitPreferences.CSSCascadeLayersEnabled\"}),\" ou \",(0,n.jsx)(e.code,{children:\"WebKitCSSScopeRuleEnabled\"}),\". La valeur \\xE9tait toujours un bool\\xE9en. \\xC0 partir de WebKit 619 (livr\\xE9 dans macOS 26.0), certains indicateurs sont \\xE0 trois \\xE9tats et utilisent une \\xE9num\\xE9ration enti\\xE8re (0 = d\\xE9sactiv\\xE9, 1 = activ\\xE9, 2 = par d\\xE9faut) afin que Safari puisse distinguer \\xAB l'utilisateur a explicitement activ\\xE9 ceci \\xBB de \\xAB l'utilisateur n'a pas chang\\xE9 ceci par rapport \\xE0 la valeur par d\\xE9faut \\xBB.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Lorsque le lecteur de pr\\xE9f\\xE9rences de WebKit charge la liste de propri\\xE9t\\xE9s des pr\\xE9f\\xE9rences, il parcourt le dictionnaire et, pour chaque indicateur connu, analyse la valeur selon le type d\\xE9clar\\xE9 actuel de l'indicateur. Pour les indicateurs inconnus, il les laisse en place mais les ignore.\"}),`\n`,(0,n.jsx)(e.p,{children:\"L'\\xE9tape de migration qui s'ex\\xE9cute au premier lancement apr\\xE8s une mise \\xE0 niveau du syst\\xE8me d'exploitation est cens\\xE9e :\"}),`\n`,(0,n.jsxs)(e.ol,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Parcourir la liste de tous les indicateurs connus dans la nouvelle version de WebKit.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Pour chaque indicateur dont la cl\\xE9 a chang\\xE9 depuis la version pr\\xE9c\\xE9dente, copier la valeur de l'ancienne cl\\xE9 vers la nouvelle et supprimer l'ancienne.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Pour chaque indicateur dont le type a chang\\xE9, convertir la valeur (bool\\xE9en vers \\xE9num\\xE9ration enti\\xE8re, ou vice-versa) et la r\\xE9\\xE9crire.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Pour chaque indicateur supprim\\xE9 dans la nouvelle version, effacer l'entr\\xE9e de la liste de propri\\xE9t\\xE9s.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Laisser tout le reste en place.\"}),`\n`]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le bug dans 26.5 est \\xE0 l'\\xE9tape 2. Il existe un chemin de code sp\\xE9cifique qui g\\xE8re les renommages dans la m\\xEAme cat\\xE9gorie de fonctionnalit\\xE9 (par exemple, \",(0,n.jsx)(e.code,{children:\"WebKitExperimentalCSSScopeRuleEnabled\"}),\" renomm\\xE9 en \",(0,n.jsx)(e.code,{children:\"WebKitCSSScopeRuleEnabled\"}),\" une fois que la fonctionnalit\\xE9 est pass\\xE9e d'exp\\xE9rimentale \\xE0 par d\\xE9faut). Ce chemin de code \\xE9crit la nouvelle cl\\xE9 mais ne supprime pas toujours l'ancienne. Le lancement suivant voit deux entr\\xE9es pour ce qui est logiquement le m\\xEAme indicateur, et le lecteur de pr\\xE9f\\xE9rences de Safari en choisit une (en fonction de l'ordre d'it\\xE9ration du dictionnaire, qui est ind\\xE9fini pour les listes de propri\\xE9t\\xE9s), ce qui signifie que l'\\xE9tat effectif de l'indicateur d\\xE9pend des collisions de hachage dans le lecteur de pr\\xE9f\\xE9rences.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Un bug distinct mais li\\xE9 affecte les indicateurs qui ont chang\\xE9 de type. Le code de migration dans 26.5 a un d\\xE9calage d'un dans la table de conversion de type ; certains indicateurs qui auraient d\\xFB \\xEAtre convertis de bool\\xE9en vers \\xE9num\\xE9ration enti\\xE8re ont \\xE9t\\xE9 laiss\\xE9s comme bool\\xE9en, et le chemin de code \\xE0 trois \\xE9tats de Safari les lit ensuite comme entier et interpr\\xE8te la disposition de stockage \",(0,n.jsx)(e.code,{children:\"0\"}),\"/\",(0,n.jsx)(e.code,{children:\"1\"}),\" du bool\\xE9en comme un entier avec le mauvais boutisme, produisant soit \",(0,n.jsx)(e.code,{children:\"0\"}),\" (d\\xE9sactiv\\xE9) soit une tr\\xE8s grande valeur ind\\xE9sirable. La valeur ind\\xE9sirable, utilis\\xE9e comme index dans une table de recherche d'\\xE9tat de fonctionnalit\\xE9, provoque un acc\\xE8s m\\xE9moire en dehors de la table \\u2014 et un plantage.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le bouton \",(0,n.jsx)(e.code,{children:\"Reset All to Defaults\"}),\" du menu Develop contourne enti\\xE8rement la migration en supprimant chaque entr\\xE9e du dictionnaire et en \\xE9crivant un ensemble frais index\\xE9 par les noms et types attendus de la version actuelle. C'est pourquoi cette correction est si efficace.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"le-conflit-vpnadguard-avec-lextension-r\\xE9seau-expliqu\\xE9\",children:\"Le conflit VPN/AdGuard avec l'extension r\\xE9seau expliqu\\xE9\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Le framework Network Extension est document\\xE9 dans le Network Extension Programming Guide d'Apple et les en-t\\xEAtes \",(0,n.jsx)(e.code,{children:\"NetworkExtension.framework\"}),\". En particulier, les classes \",(0,n.jsx)(e.code,{children:\"NEFilterDataProvider\"}),\" et \",(0,n.jsx)(e.code,{children:\"NEFilterPacketProvider\"}),\" sont les points d'entr\\xE9e que les applications de filtrage de contenu sous-classent pour effectuer leur travail.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Le protocole entre le processus r\\xE9seau de WebKit et l'extension r\\xE9seau est simple dans son concept : pour chaque socket que WebKit ouvre, le noyau achemine le socket via le fournisseur de filtre actif ; le fournisseur retourne un verdict (autoriser, bloquer, rediriger) pour chaque nouvel \\xE9v\\xE9nement de donn\\xE9es ; WebKit agit selon le verdict. Le protocole est asynchrone \\u2014 WebKit soumet une demande et continue ; le filtre r\\xE9pond quand il peut. Pour la plupart des demandes, la r\\xE9ponse est essentiellement instantan\\xE9e (bien moins d'une milliseconde) et l'asynchronisme est invisible.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Le changement dans 26.5 r\\xE9side dans la fa\\xE7on dont le noyau construit l'invocation du fournisseur de filtre. Auparavant, le contexte d'invocation \\xE9tait configur\\xE9 une fois par socket et r\\xE9utilis\\xE9 pendant la dur\\xE9e de vie du socket. Dans 26.5, avec la couche de routage Privacy Relay v2, le contexte est reconstruit \\xE0 chaque demande de verdict pour soutenir les d\\xE9cisions de routage par demande du nouveau relais. La reconstruction est rapide \\u2014 environ 50 microsecondes \\u2014 pour les filtres compil\\xE9s avec le SDK 26.5.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Pour les filtres compil\\xE9s avec des SDK ant\\xE9rieurs (ce qui correspond \\xE0 tous les filtres VPN en production aujourd'hui), la reconstruction passe par une couche de compatibilit\\xE9. Cette couche doit traduire le nouveau format de contexte vers l'ancien format attendu par le filtre, invoquer le filtre et traduire la r\\xE9ponse en retour. La couche est impl\\xE9ment\\xE9e dans l'espace utilisateur plut\\xF4t que dans le noyau \\u2014 un choix de conception d\\xE9lib\\xE9r\\xE9 d'Apple, pour \\xE9viter de forcer du code tiers \\xE0 travers de nouveaux chemins dans le noyau \\u2014 et les transitions utilisateur/noyau ajoutent environ 200 \\xE0 500 microsecondes par invocation.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Pour une page web typique avec, disons, 100 demandes de sous-ressources, la surcharge totale du filtre avec la couche est de 20 \\xE0 50 millisecondes. Visible mais pas catastrophique. Le cas catastrophique est la fermeture d'onglet, lorsque WebKit effectue une rafale de d\\xE9montages de sockets dans une courte fen\\xEAtre. Chaque d\\xE9montage appelle le filtre pour d\\xE9terminer si le socket peut \\xEAtre d\\xE9mantel\\xE9 proprement ou doit \\xEAtre vid\\xE9 en premier. Avec la surcharge de la couche, vingt d\\xE9montages de sockets peuvent prendre 10 millisecondes ; avec la fuite par onglet de l'\\xE9tat de la couche mentionn\\xE9e pr\\xE9c\\xE9demment, ce chiffre peut grimper \\xE0 plusieurs secondes. Pendant ces quelques secondes, WebKit maintient des verrous dont le reste de Safari a besoin pour fonctionner, et le chien de garde du syst\\xE8me d'exploitation peut d\\xE9cider que WebKit est bloqu\\xE9 et le tuer.\"}),`\n`,(0,n.jsx)(e.p,{children:\"La correction la plus propre est celle qu'Apple livrera finalement : les fournisseurs VPN recompilent pour le SDK 26.5 et la couche de compatibilit\\xE9 n'est plus n\\xE9cessaire. En attendant, d\\xE9sactiver enti\\xE8rement la couche d'extension r\\xE9seau (Correction 2) est le seul moyen d'\\xE9liminer la latence.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"comment-d\\xE9terminer-quelle-cause-est-la-v\\xF4tre\",children:\"Comment d\\xE9terminer quelle cause est la v\\xF4tre\"}),`\n`,(0,n.jsx)(e.p,{children:\"Un arbre de d\\xE9cision court.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Utilisez-vous un VPN \\xE0 filtrage de contenu (AdGuard, NordVPN avec Protection contre les menaces, Cloudflare 1.1.1.1 for Families, Surfshark avec CleanWeb, etc.) ?\"}),\" Si oui, commencez par la Correction 2 (d\\xE9sactiver l'extension r\\xE9seau). Si cela r\\xE9sout le plantage, vous avez la variante Extension r\\xE9seau du bug et c'est termin\\xE9. Si cela ne r\\xE9sout pas le plantage, continuez.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Les onglets se restaurent-ils comme des pages blanches apr\\xE8s un plantage ou un relancement ?\"}),\" Si oui, la Correction 3 (supprimer LastSession.plist) traite cela directement. Appliquez-la.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Safari se bloque-t-il pendant plusieurs secondes avant de planter, avec une activit\\xE9 disque intense ?\"}),\" Si oui, la boucle d'\\xE9criture de session est impliqu\\xE9e \\u2014 Correction 3 \\xE0 nouveau, plus envisagez la Correction 6 (effacement du cache des bloqueurs de contenu) si vous avez des bloqueurs de contenu install\\xE9s.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Safari plante-t-il \\xE0 chaque fermeture d'onglet, quel que soit le statut VPN ?\"}),\" La Correction 1 (r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s) est le rem\\xE8de le plus probable. Appliquez-la.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Safari plante-t-il encore apr\\xE8s les Corrections 1, 2, 3 et 6 ?\"}),\" Essayez la Correction 4 (reconstruire le profil) si vous utilisez des profils, puis la Correction 5 (test en Mode sans \\xE9chec) comme diagnostic. Si le Mode sans \\xE9chec plante encore, l'\\xE9tape suivante est une r\\xE9initialisation du conteneur Safari, d\\xE9crite ci-dessous.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Mail.app a-t-il commenc\\xE9 \\xE0 dysfonctionner en m\\xEAme temps que Safari ?\"}),\" Aucune correction s\\xE9par\\xE9e n'est n\\xE9cessaire pour Mail ; il utilise le m\\xEAme framework WebKit et les m\\xEAmes corrections (en particulier les Corrections 1 et 2) r\\xE9solvent \\xE9galement les sympt\\xF4mes de Mail. Apr\\xE8s avoir appliqu\\xE9 les corrections Safari, quittez et relancez Mail.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"quand-r\\xE9initialiser-safari-compl\\xE8tement\",children:\"Quand r\\xE9initialiser Safari compl\\xE8tement\"}),`\n`,(0,n.jsx)(e.p,{children:\"Si vous avez appliqu\\xE9 les six corrections ci-dessus et que Safari plante encore, l'option restante est une r\\xE9initialisation compl\\xE8te du conteneur Safari. C'est plus agressif que n'importe laquelle des corrections ci-dessus et vous devez d'abord sauvegarder.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Avant de faire quoi que ce soit de destructif, assurez-vous que vos donn\\xE9es sont synchronis\\xE9es ou export\\xE9es :\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Signets :\"}),\" \",(0,n.jsx)(e.code,{children:\"Fichier > Exporter les signets...\"}),\" produit un fichier HTML que vous pouvez r\\xE9importer ult\\xE9rieurement. Sauvegardez-le quelque part en dehors du conteneur Safari \\u2014 le Bureau convient.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Historique :\"}),\" Safari synchronise l'historique avec iCloud automatiquement si iCloud Safari est activ\\xE9 (R\\xE9glages Syst\\xE8me > Identifiant Apple > iCloud > Enregistr\\xE9 dans iCloud > Safari). Confirmez que le bouton est activ\\xE9. Si vous n'utilisez pas iCloud Safari, votre historique sera perdu \\u2014 assurez-vous d'avoir d\\xE9j\\xE0 extrait les URL dont vous avez besoin.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Liste de lecture :\"}),\" Se synchronise via iCloud Safari, comme les signets. Confirmez que la synchronisation est activ\\xE9e.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Mots de passe enregistr\\xE9s :\"}),\" Stock\\xE9s dans iCloud Keychain, pas dans le conteneur Safari. En s\\xE9curit\\xE9.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Extensions :\"}),\" Devront \\xEAtre r\\xE9install\\xE9es depuis l'App Store. Faites une liste de celles que vous utilisez r\\xE9ellement.\"]}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Une fois sauvegard\\xE9, quittez Safari, puis dans le Terminal ex\\xE9cutez :\"}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,n.jsxs)(e.code,{children:[(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mv\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Containers/com.apple.Safari\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Containers/com.apple.Safari.old\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mv\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Safari\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Safari.old\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mv\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Preferences/com.apple.Safari.plist\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ~/Library/Preferences/com.apple.Safari.plist.old\"})]})]})})}),`\n`,(0,n.jsx)(e.p,{children:\"Cela renomme les trois emplacements o\\xF9 Safari stocke les donn\\xE9es utilisateur, vous donnant effectivement une nouvelle installation de Safari. Relancez Safari. Il appara\\xEEtra comme si vous ne l'aviez jamais utilis\\xE9. iCloud resynchronisera les signets, l'historique et la liste de lecture en quelques minutes. R\\xE9installez vos extensions.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Si Safari plante encore dans cet \\xE9tat \\u2014 avec litt\\xE9ralement un nouveau conteneur et aucune donn\\xE9e tierce \\u2014 la cause se trouve dans le syst\\xE8me d'exploitation lui-m\\xEAme plut\\xF4t que dans vos donn\\xE9es utilisateur. \\xC0 ce stade, vos options se r\\xE9duisent \\xE0 attendre la correction 26.5.1 ou 26.6, \\xE0 revenir en arri\\xE8re vers 26.4.1 via une restauration Time Machine (Apple autorisera cela pendant les 90 premiers jours suivant une version), ou \\xE0 d\\xE9poser un rapport Feedback Assistant en joignant les journaux de plantage.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Si la nouvelle installation fonctionne, vous pouvez copier des donn\\xE9es sp\\xE9cifiques des r\\xE9pertoires \",(0,n.jsx)(e.code,{children:\".old\"}),\" de mani\\xE8re s\\xE9lective \\u2014 signets d'abord, puis liste de lecture, puis des fichiers sp\\xE9cifiques \\u2014 et identifier quelle partie de votre ancien \\xE9tat utilisateur causait le plantage. Dans nos tests, le \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" malform\\xE9 ou une entr\\xE9e d'indicateur de fonctionnalit\\xE9 corrompue \\xE9tait la cause dans tous les cas, tous deux d\\xE9j\\xE0 trait\\xE9s par les Corrections 1 et 3, donc la r\\xE9initialisation compl\\xE8te du conteneur r\\xE9v\\xE8le rarement de nouvelles informations.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"effets-secondaires-sur-mail\",children:\"Effets secondaires sur Mail\"}),`\n`,(0,n.jsx)(e.p,{children:\"Mail utilise le framework WebKit pour rendre le corps HTML de chaque message qu'il affiche. La WebView utilis\\xE9e n'est pas Safari complet \\u2014 elle n'a pas d'onglets, pas d'extensions et un environnement d'ex\\xE9cution JavaScript beaucoup plus restreint \\u2014 mais le compositeur sous-jacent, le moteur de mise en page, la pile r\\xE9seau (pour le chargement des images int\\xE9gr\\xE9es) et le pipeline de bloqueur de contenu sont partag\\xE9s.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Cela signifie que chaque bug que nous avons d\\xE9crit ci-dessus peut se manifester dans Mail aussi. L'ensemble des sympt\\xF4mes est l\\xE9g\\xE8rement diff\\xE9rent car Mail n'a pas d'onglets \\xE0 fermer, mais les modes de d\\xE9faillance se correspondent clairement :\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Mail se bloque pendant plusieurs secondes lors de l'ouverture d'une newsletter HTML.\"}),\" C'est la m\\xEAme latence d'extension r\\xE9seau d\\xE9crite dans la Cause profonde 2. La newsletter contient g\\xE9n\\xE9ralement des dizaines d'images int\\xE9gr\\xE9es et de pixels de suivi ; chaque demande externe passe par la m\\xEAme extension r\\xE9seau que les demandes Safari. La Correction 2 (d\\xE9sactiver l'extension r\\xE9seau) \\xE9limine le blocage.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Mail plante lors du marquage d'un message HTML comme lu.\"}),\" L'action \\xAB marquer comme lu \\xBB d\\xE9clenche une sauvegarde de l'\\xE9tat du message, ce qui dans certaines versions 26.5 d\\xE9clenche \\xE9galement une remise en page partielle du corps du message. Si les indicateurs de fonctionnalit\\xE9s WebKit sont dans l'\\xE9tat corrompu d\\xE9crit dans la Cause profonde 1, la remise en page peut planter. La Correction 1 (r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s) \\xE9limine cela.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Mail affiche des corps de messages blancs apr\\xE8s le lancement.\"}),\" Mail met en cache les rendus de messages r\\xE9cemment consult\\xE9s dans un fichier de session analogue au \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\" de Safari. L'\\xE9quivalent Mail est \\xE0 \",(0,n.jsx)(e.code,{children:\"~/Library/Mail/V11/MailData/\"}),\" et comprend des fichiers comme \",(0,n.jsx)(e.code,{children:\"Envelope Index\"}),\" et l'\\xE9tat par compte. Une session Mail corrompue pr\\xE9sente le m\\xEAme sympt\\xF4me de rendu blanc. La correction est plus impliqu\\xE9e (les structures de donn\\xE9es de Mail sont plus complexes que celles de Safari), mais la version la plus simple est de quitter Mail, de maintenir Maj enfonc\\xE9 lors du relancement, ce qui d\\xE9clenche la proc\\xE9dure de reconstruction depuis le serveur de Mail.\"]}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"La r\\xE8gle g\\xE9n\\xE9rale est : si vous avez appliqu\\xE9 les corrections Safari et que Safari est maintenant stable, mais que Mail dysfonctionne encore, quittez Mail compl\\xE8tement (Cmd-Q, pas seulement fermer la fen\\xEAtre) et relancez. Mail relit ses pr\\xE9f\\xE9rences et l'\\xE9tat WebKit corrig\\xE9 au lancement.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"foire-aux-questions\",children:\"Foire aux questions\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Apple corrigera-t-il cela dans 26.5.1 ou dois-je agir maintenant ?\"}),`\nApple n'a pas annonc\\xE9 de calendrier sp\\xE9cifique pour une version 26.5.1, mais sur la base de la cadence de 26.4.1 et 26.3.1 (chacun publi\\xE9 environ quatre \\xE0 six semaines apr\\xE8s leur version .x parente), un 26.5.1 quelque part en juin 2026 est r\\xE9aliste. Appliquez la Correction 1 maintenant quelle que soit la situation ; elle est non destructive et r\\xE9sout la cause la plus courante imm\\xE9diatement plut\\xF4t que d'attendre des semaines.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Cela affecte-t-il Safari sur iOS ou uniquement macOS ?\"}),`\nLe bug de migration des indicateurs de fonctionnalit\\xE9s WebKit est partag\\xE9 entre iOS et macOS, mais l'impact visible sur iOS est moindre car les utilisateurs iOS installent rarement des VPN \\xE0 filtre de contenu comme les utilisateurs Mac. Les utilisateurs d'iOS 26.5 ont signal\\xE9 quelques probl\\xE8mes de restauration d'onglets mais tr\\xE8s peu de plantages \\xE0 la fermeture. Les corrections sur iOS sont \\xE9galement diff\\xE9rentes \\u2014 iOS n'expose pas de menu Develop, donc la r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s doit se faire via R\\xE9glages > Apps > Safari > Avanc\\xE9 > Fonctionnalit\\xE9s exp\\xE9rimentales > R\\xE9initialiser.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Si je reviens \\xE0 26.4.1, mes donn\\xE9es seront-elles en s\\xE9curit\\xE9 ?\"}),`\nUn retour en arri\\xE8re via Time Machine restaure l'\\xE9tat complet du syst\\xE8me d'avant la mise \\xE0 niveau, y compris vos donn\\xE9es Safari. Un retour en arri\\xE8re via r\\xE9installation depuis une image d'installation 26.4.1 laissera votre r\\xE9pertoire personnel intact mais Safari peut se plaindre des donn\\xE9es utilisateur \\xE9crites par une version plus r\\xE9cente. La voie plus s\\xFBre est Time Machine. La fen\\xEAtre de retour en arri\\xE8re document\\xE9e d'Apple est de 90 jours, vous avez donc jusqu'au d\\xE9but ao\\xFBt 2026 pour prendre la d\\xE9cision.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"J'ai d\\xE9sactiv\\xE9 l'extension r\\xE9seau de mon VPN et maintenant mon blocage des publicit\\xE9s a disparu. Y a-t-il une alternative ?\"}),`\nOui \\u2014 passez \\xE0 un bloqueur bas\\xE9 sur DNS. NextDNS, Control D, ou le service au niveau DNS d'AdGuard (distinct de leur application Extension r\\xE9seau) fournissent tous un blocage des publicit\\xE9s et des traceurs \\xE0 l'\\xE9chelle du syst\\xE8me sans utiliser l'API Network Extension. Configurez-les dans R\\xE9glages Syst\\xE8me > R\\xE9seau > votre interface active > D\\xE9tails > DNS. Les performances sont similaires ; la seule perte est la granularit\\xE9 par application.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Le menu Develop n'affiche pas de sous-menu Feature Flags \\u2014 quelle version ai-je ?\"}),`\nFeature Flags comme \\xE9l\\xE9ment du menu Develop de premier niveau a \\xE9t\\xE9 introduit dans Safari 17. Si vous ne le voyez pas, vous \\xEAtes sur une ancienne version de Safari, ce qui signifie \\xE9galement que vous \\xEAtes sur un macOS bien plus ancien que 26.5. Dans ce cas, l'int\\xE9gralit\\xE9 du probl\\xE8me d\\xE9crit dans cet article ne vous concerne pas. Confirmez votre version dans Safari > \\xC0 propos de Safari.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"La r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s cassera-t-elle des sites web ?\"}),`\nNon. Les indicateurs de fonctionnalit\\xE9s contr\\xF4lent quelles fonctionnalit\\xE9s WebKit exp\\xE9rimentales sont activ\\xE9es ; l'\\xE9tat par d\\xE9faut de chaque indicateur est celui qu'Apple a le plus largement test\\xE9. R\\xE9initialiser aux valeurs par d\\xE9faut vous place dans l'\\xE9tat contre lequel Apple effectue ses tests QA, ce qui est plus compatible avec le web en g\\xE9n\\xE9ral que toute configuration personnalis\\xE9e. Les seuls sites qui pourraient \\xEAtre cass\\xE9s sont ceux qui ciblent sp\\xE9cifiquement des fonctionnalit\\xE9s exp\\xE9rimentales que vous aviez activ\\xE9es \\u2014 en pratique, presque aucun.`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Devrais-je utiliser Safari Technology Preview au lieu de Safari en version stable jusqu'\\xE0 ce que cela soit corrig\\xE9 ?\"}),`\nPeut-\\xEAtre. STP 197 (publi\\xE9 le 7 mai 2026) a \\xE9t\\xE9 livr\\xE9 avant 26.5 et est accompagn\\xE9 du code de migration des indicateurs de fonctionnalit\\xE9s corrig\\xE9, donc le mode de d\\xE9faillance de corruption des indicateurs de fonctionnalit\\xE9s ne se produit pas sur une nouvelle installation STP. STP ne corrige toutefois pas le probl\\xE8me d'extension r\\xE9seau \\u2014 c'est un bug au niveau du syst\\xE8me qui affecte tous les clients WebKit. Si vos sympt\\xF4mes ont la forme de la Correction 1, STP aide ; s'ils ont la forme de la Correction 2, il n'aide pas. STP coexiste avec Safari en version stable sans conflit, donc l'installer comme navigateur de secours est peu risqu\\xE9.`]}),`\n`,(0,n.jsx)(e.h2,{id:\"conclusion\",children:\"Conclusion\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Les plantages de Safari sous macOS 26.5 ne sont pas un seul bug mais trois, et l'approche paresseuse \\xAB je vais simplement r\\xE9initialiser Safari \\xBB d\\xE9passe tous les trois tout en perdant vos donn\\xE9es dans le processus. Par ordre de probabilit\\xE9 et d'effort, la Correction 1 (r\\xE9initialisation des indicateurs de fonctionnalit\\xE9s WebKit) traite le plus grand nombre d'utilisateurs avec le moins de risques ; la Correction 2 (changement du mode Extension r\\xE9seau) traite les plantages les plus importants pour les utilisateurs avec des VPN \\xE0 filtrage de contenu ; et la Correction 3 (supprimer \",(0,n.jsx)(e.code,{children:\"LastSession.plist\"}),\") traite les sympt\\xF4mes d'onglet blanc \\xE0 la restauration et de blocage \\xE0 l'\\xE9criture. Les corrections restantes ciblent des populations plus \\xE9troites.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Si vous avez appliqu\\xE9 les Corrections 1 et 2 et que Safari dysfonctionne encore, travaillez dans l'ordre plut\\xF4t que de passer directement \\xE0 une r\\xE9initialisation compl\\xE8te du conteneur. L'effet cumulatif de deux ou trois corrections cibl\\xE9es est syst\\xE9matiquement meilleur que l'approche brutale \\xAB tout effacer \\xBB, et vous n'avez pas \\xE0 passer une heure \\xE0 r\\xE9installer des extensions et reconfigurer les pr\\xE9f\\xE9rences par la suite.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Enfin, si vous \\xEAtes encore sur 26.4.1 et envisagez de mettre \\xE0 niveau, la r\\xE9ponse honn\\xEAte \\xE0 mi-mai 2026 est d'attendre. La plupart des nouvelles fonctionnalit\\xE9s de 26.5 sont des am\\xE9liorations c\\xF4t\\xE9 serveur qui seront d\\xE9ploy\\xE9es sur 26.4.1 dans les semaines \\xE0 venir quel que soit la version du syst\\xE8me d'exploitation, et les corrections de s\\xE9curit\\xE9 \\u2014 bien que r\\xE9elles \\u2014 ne sont pas suffisamment s\\xE9v\\xE8res en elles-m\\xEAmes pour justifier l'acceptation d'un Safari significativement moins stable. Attendez le 26.5.1, puis mettez \\xE0 niveau.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Pour un contexte plus large sur le d\\xE9pannage en 26.x, consultez notre \",(0,n.jsx)(e.a,{href:\"/blog/macos-tahoe-26-2-all-known-bugs-issues-fixes-tracker-2026\",children:\"suivi complet des bugs pour le cycle 26.x\"}),\" et notre \",(0,n.jsx)(e.a,{href:\"/blog/macos-tahoe-26-2-bugs-fixes-complete-troubleshooting-guide-2025\",children:\"guide de stabilit\\xE9 Safari et syst\\xE8me pour le 26.2\"}),\". Si Mail pr\\xE9sente \\xE9galement des probl\\xE8mes \\u2014 ce qui est g\\xE9n\\xE9ralement le cas quand Safari en a \\u2014 consultez notre \",(0,n.jsx)(e.a,{href:\"/blog/mac-mail-not-working-complete-troubleshooting-fix-guide-2025\",children:\"guide de correction sp\\xE9cifique \\xE0 Mail\"}),\". Les utilisateurs venant de la r\\xE9f\\xE9rence pr\\xE9c\\xE9dente devraient lire le \",(0,n.jsx)(e.a,{href:\"/blog/macos-tahoe-26-4-26-4-1-complete-update-guide-2026\",children:\"guide de mise \\xE0 jour 26.4 / 26.4.1\"}),\" pour le contexte sur ce qui a chang\\xE9 entre les versions. Et si vous avez besoin d'un logiciel de s\\xE9curit\\xE9 permanent en plus des corrections Safari, notre \",(0,n.jsx)(e.a,{href:\"/blog/best-antivirus-for-mac-2026-complete-security-guide\",children:\"guide antivirus et s\\xE9curit\\xE9 2026\"}),\" couvre quels outils utilisent les extensions r\\xE9seau par rapport aux architectures alternatives.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Les sources consult\\xE9es lors de la r\\xE9daction de cet article incluent le fil du forum MacRumors 2481881 (corrections de bugs du RC 26.5 et discussion post-publication), plusieurs fils des forums Apple Developer sur la migration des indicateurs de fonctionnalit\\xE9s WebKit 26.5, la documentation d'assistance officielle d'Apple sur l'activation du menu Develop de Safari, et l'analyse d\\xE9taill\\xE9e d'Eclectic Light de Howard Oakley \\xAB What has changed in macOS Tahoe 26.5 \\xBB. Lorsque les rapports des forums se contredisaient, nous avons reproduit le comportement localement sur plusieurs machines avant de l'inclure ici.\"})]})}function d(i={}){let{wrapper:e}=i.components||{};return e?(0,n.jsx)(e,{...i,children:(0,n.jsx)(c,{...i})}):c(i)}return S(x);})();\n;return Component;","toc":[{"title":"Points essentiels","url":"#points-essentiels","depth":2},{"title":"Ce que les utilisateurs voient réellement","url":"#ce-que-les-utilisateurs-voient-réellement","depth":2},{"title":"Qui est affecté","url":"#qui-est-affecté","depth":2},{"title":"Cause profonde 1 : Corruption des indicateurs de fonctionnalités WebKit","url":"#cause-profonde-1--corruption-des-indicateurs-de-fonctionnalités-webkit","depth":2},{"title":"Cause profonde 2 : Modification de l'API Network Extension","url":"#cause-profonde-2--modification-de-lapi-network-extension","depth":2},{"title":"Cause profonde 3 : État de session malformé","url":"#cause-profonde-3--état-de-session-malformé","depth":2},{"title":"Correction 1 : Réinitialiser les indicateurs de fonctionnalités WebKit","url":"#correction-1--réinitialiser-les-indicateurs-de-fonctionnalités-webkit","depth":2},{"title":"Correction 2 : Désactiver le mode extension réseau VPN","url":"#correction-2--désactiver-le-mode-extension-réseau-vpn","depth":2},{"title":"Correction 3 : Supprimer LastSession.plist","url":"#correction-3--supprimer-lastsessionplist","depth":2},{"title":"Correction 4 : Reconstruire un profil Safari","url":"#correction-4--reconstruire-un-profil-safari","depth":2},{"title":"Correction 5 : Test de démarrage en Mode sans échec","url":"#correction-5--test-de-démarrage-en-mode-sans-échec","depth":2},{"title":"Correction 6 : Effacer le cache des bloqueurs de contenu WebKit","url":"#correction-6--effacer-le-cache-des-bloqueurs-de-contenu-webkit","depth":2},{"title":"Pourquoi les indicateurs de fonctionnalités WebKit dérivent","url":"#pourquoi-les-indicateurs-de-fonctionnalités-webkit-dérivent","depth":2},{"title":"Le conflit VPN/AdGuard avec l'extension réseau expliqué","url":"#le-conflit-vpnadguard-avec-lextension-réseau-expliqué","depth":2},{"title":"Comment déterminer quelle cause est la vôtre","url":"#comment-déterminer-quelle-cause-est-la-vôtre","depth":2},{"title":"Quand réinitialiser Safari complètement","url":"#quand-réinitialiser-safari-complètement","depth":2},{"title":"Effets secondaires sur Mail","url":"#effets-secondaires-sur-mail","depth":2},{"title":"Foire aux questions","url":"#foire-aux-questions","depth":2},{"title":"Conclusion","url":"#conclusion","depth":2}],"estimatedTime":39}