From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Perry Date: Wed, 24 Sep 2025 09:56:23 -0700 Subject: Disable NSAutoFillHeuristicController on macOS 26 The reason for this issue is that NSAutoFillHeuristicController is enabled by default on macOS 26. In pages with tags, browser process sends synchronized IPC messages to renderer process. At this point, if the renderer process also sends synchronized IPC messages to the browser process, it will cause a deadlock. This bug can be reproduced on many websites. From the perspective of user experience, we should first disable this feature on macOS 26. Bug: 446070423, 446481994 Change-Id: I2d3855648980a22678548e373756fc156e28ecd7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6965487 Reviewed-by: Mark Mentovai Commit-Queue: Mark Mentovai Cr-Commit-Position: refs/heads/main@{#1520058} diff --git a/content/app/mac_init.mm b/content/app/mac_init.mm index 603c25a1bd4a11b9dbe57ac6add81647302e63be..963f45a8936850b59013390faf7890bc4215f2d9 100644 --- a/content/app/mac_init.mm +++ b/content/app/mac_init.mm @@ -6,6 +6,7 @@ #import +#include "base/mac/mac_util.h" #include "content/common/mac/system_policy.h" namespace content { @@ -29,6 +30,19 @@ void InitializeMac() { @"NSAppSleepDisabled" : @YES, }]; + if (base::mac::MacOSVersion() >= 26'00'00) { + [NSUserDefaults.standardUserDefaults registerDefaults:@{ + // Disable NSAutoFillHeuristicController on macOS 26. On macOS 26, the + // browser process sends synchronized IPC messages to the renderer process + // on pages with tags. At this point, if the renderer process + // sends a synchronized IPC message to the browser process, it will cause + // a deadlock. + // https://crbug.com/446070423 + // https://crbug.com/446481994 + @"NSAutoFillHeuristicControllerEnabled" : @NO, + }]; + } + SetSystemPolicyCrashKeys(); }