diff --git a/DEPS b/DEPS index 37a714c950de..8ea86b245852 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '138.0.7156.0', + '138.0.7160.0', 'node_version': 'v22.15.0', 'nan_version': diff --git a/patches/chromium/build_add_electron_tracing_category.patch b/patches/chromium/build_add_electron_tracing_category.patch index b2495de6a898..3799123b2b0a 100644 --- a/patches/chromium/build_add_electron_tracing_category.patch +++ b/patches/chromium/build_add_electron_tracing_category.patch @@ -8,10 +8,10 @@ categories in use are known / declared. This patch is required for us to introduce a new Electron category for Electron-specific tracing. diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h -index 5e0f05804e8142c735fa2f5afb27485caae895f9..48ac9a600b6a007e2e974b657c3d8048be97b3ce 100644 +index e9f891a025771899ffc888ea0095200342e48558..39d6f580c0cb5a0de41f32e9d7e103e05cefd0f0 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -91,6 +91,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( +@@ -102,6 +102,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( perfetto::Category("drm"), perfetto::Category("drmcursor"), perfetto::Category("dwrite"), diff --git a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch index a2f8cde7b70e..72c3e0e47ec6 100644 --- a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch +++ b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch @@ -33,7 +33,7 @@ index 4b3f01018a9dea91b46b5917e099f272582991b2..8250f2e447ff19829cfae3f00b3df70b "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 5c26efefaa030e5f5b7ba6089e989303795d771c..5df9bd353fe212491e473027a7080854cc5ea738 100644 +index ae32014a8a25f3b1de7f6087551a87400e1463b5..be77c4e02cc495194ed6b248e56bcb75abe4efce 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn @@ -4627,7 +4627,7 @@ static_library("browser") { @@ -46,10 +46,10 @@ index 5c26efefaa030e5f5b7ba6089e989303795d771c..5df9bd353fe212491e473027a7080854 # than here in :chrome_dll. deps += [ "//chrome:packed_resources_integrity_header" ] diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 897f91ed0f1fcd386f980fe2073c07915cfc6458..43c6c436a391362173cc3ae562d6cd0fb5191d1b 100644 +index e08035df314884fab39562cd9ee4960ec5af3cb5..28f0f4d671e16ffff770b43fa5a2e366491d4b30 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -7181,9 +7181,12 @@ test("unit_tests") { +@@ -7185,9 +7185,12 @@ test("unit_tests") { "//chrome/notification_helper", ] @@ -63,7 +63,7 @@ index 897f91ed0f1fcd386f980fe2073c07915cfc6458..43c6c436a391362173cc3ae562d6cd0f "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/app:win_unit_tests", -@@ -8149,6 +8152,10 @@ test("unit_tests") { +@@ -8153,6 +8156,10 @@ test("unit_tests") { "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", ] @@ -74,7 +74,7 @@ index 897f91ed0f1fcd386f980fe2073c07915cfc6458..43c6c436a391362173cc3ae562d6cd0f sources += [ # The importer code is not used on Android. "../common/importer/firefox_importer_utils_unittest.cc", -@@ -8204,7 +8211,6 @@ test("unit_tests") { +@@ -8208,7 +8215,6 @@ test("unit_tests") { # Non-android deps for "unit_tests" target. deps += [ "../browser/screen_ai:screen_ai_install_state", diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index 07f617cab8e5..1d60f2508309 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,10 +9,10 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 66c25476de83a9aabad58a042addc825e27ffd0c..7578b4f9056b9be79645fa0eed9476ab9b80c509 100644 +index 9d5452597f64906ac1d3223ca5290776df8809c5..46ddad111b2feb5cc1064a1eeb424800d2cba6c1 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9775,6 +9775,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -9777,6 +9777,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -21,10 +21,10 @@ index 66c25476de83a9aabad58a042addc825e27ffd0c..7578b4f9056b9be79645fa0eed9476ab &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index d2715008c411519ed6c2491bf093a92e81d8d874..a99621ef317ec59f1368e5c7959f73de8ed32c54 100644 +index 77954ceccdfb1e94598d5d7ad747721ab84aa1d7..aec96f969800e2a4d09e644df770d367e48b1b63 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5131,6 +5131,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5132,6 +5132,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params, opener); @@ -37,7 +37,7 @@ index d2715008c411519ed6c2491bf093a92e81d8d874..a99621ef317ec59f1368e5c7959f73de // If the new frame has a name, make sure any SiteInstances that can find // this named frame have proxies for it. Must be called after // SetSessionStorageNamespace, since this calls CreateRenderView, which uses -@@ -5172,12 +5178,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5173,12 +5179,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -66,7 +66,7 @@ index 55bb4ae3bab4cdf20b3e1dde9450a5c0e4e62b37..fe444c7fa140166a1b65c7a8a2676e2d // Operation result when the renderer asks the browser to create a new window. diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index b3975f65bfbcff7bc9eb0815a0ac5e97d1ff3548..2b219ccfdbef82f9e4075243da48c4b1e53158c2 100644 +index 210e5ffc0da31cc0d214e8a3e65f7d8b045fd33e..237b279eeefe5b18402a7dea8d1c00072655ed22 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -823,6 +823,8 @@ bool ContentBrowserClient::CanCreateWindow( @@ -79,7 +79,7 @@ index b3975f65bfbcff7bc9eb0815a0ac5e97d1ff3548..2b219ccfdbef82f9e4075243da48c4b1 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 77b3e5c0fe47e5ed0139d3e54394f7d96fc69d21..cabdb73fa092683cdd2dad38f7b62b6bac974d0d 100644 +index be551d7a09330edf4a204b181acb382c2c3d13f4..5ed4df05dd22cbf901ecbbcc9d892de806c93890 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -199,6 +199,7 @@ class NetworkService; @@ -90,7 +90,7 @@ index 77b3e5c0fe47e5ed0139d3e54394f7d96fc69d21..cabdb73fa092683cdd2dad38f7b62b6b } // namespace network namespace sandbox { -@@ -1378,6 +1379,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1379,6 +1380,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -163,10 +163,10 @@ index 7f33a5452de32f5f4f8a43d0314917f24308d77c..b0aa018f2f4e6865915516ab6b65fac2 // moved on send. bool is_background_tab = diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 9af07ab542531bd3354cf28135f36044e88c0dfb..5d763af59aec30cdfb763b8bd5fa1383c4cb5568 100644 +index e5f7596c1b3e525e1d64efbd6b7e0703b980dac9..0b4523200651c1edfd7678b177a24b7e64de6ddf 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -535,6 +535,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -538,6 +538,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -176,10 +176,10 @@ index 9af07ab542531bd3354cf28135f36044e88c0dfb..5d763af59aec30cdfb763b8bd5fa1383 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h -index a7f5f09f9f5147b565f5934c6b467c4a4c04b626..2d44bafc6a7c81f7189934c61d88a5bb3e921266 100644 +index e4eaba65b25262ce5ed27d78da13a260ec57f6db..ddd3be9aa7aac43140a1e664eefce7ac195ba119 100644 --- a/content/web_test/browser/web_test_content_browser_client.h +++ b/content/web_test/browser/web_test_content_browser_client.h -@@ -94,6 +94,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { +@@ -95,6 +95,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, diff --git a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch index ee30ed47b66a..393e2d4ba08b 100644 --- a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch +++ b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch @@ -49,11 +49,11 @@ index ae7eab37f12ba80ec423d229cf048021e9ba6765..507a75dc7947295db221b01356fa57ba // These existing cases are "grandfathered in", but there shouldn't be more. // See comments atop class. diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h -index 7c2463cb91d00de2b0fa4f10221ea960be860d9a..e79beefddbd815e1ba7d9be86256e49d3ee7c619 100644 +index 89de188e6a0139a236a824b189f1048613d6f457..c438376c34cac4ec7ac7a03d852685c18b10068e 100644 --- a/ui/views/widget/widget_delegate.h +++ b/ui/views/widget/widget_delegate.h -@@ -169,6 +169,12 @@ namespace data_controls { - class DesktopDataControlsDialog; +@@ -165,6 +165,12 @@ namespace crostini { + class AppRestartDialog; } +namespace electron { @@ -65,7 +65,7 @@ index 7c2463cb91d00de2b0fa4f10221ea960be860d9a..e79beefddbd815e1ba7d9be86256e49d namespace enterprise_connectors { class ContentAnalysisDialog; class ContentAnalysisDialogBehaviorBrowserTest; -@@ -371,6 +377,7 @@ class VIEWS_EXPORT WidgetDelegate { +@@ -367,6 +373,7 @@ class VIEWS_EXPORT WidgetDelegate { class OwnedByWidgetPassKey { private: @@ -73,7 +73,7 @@ index 7c2463cb91d00de2b0fa4f10221ea960be860d9a..e79beefddbd815e1ba7d9be86256e49d // DO NOT ADD TO THIS LIST! // These existing cases are "grandfathered in", but there shouldn't be more. // See comments atop `SetOwnedByWidget()`. -@@ -468,6 +475,7 @@ class VIEWS_EXPORT WidgetDelegate { +@@ -463,6 +470,7 @@ class VIEWS_EXPORT WidgetDelegate { }; class RegisterDeleteCallbackPassKey { private: @@ -81,7 +81,7 @@ index 7c2463cb91d00de2b0fa4f10221ea960be860d9a..e79beefddbd815e1ba7d9be86256e49d // DO NOT ADD TO THIS LIST! // These existing cases are "grandfathered in", but there shouldn't be more. // See comments atop `RegisterDeleteDelegateCallback()`. -@@ -918,6 +926,7 @@ class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View { +@@ -913,6 +921,7 @@ class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View { View* GetContentsView() override; private: diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index 3ca00573ac9c..23a9de3f7ce4 100644 --- a/patches/chromium/chore_partial_revert_of.patch +++ b/patches/chromium/chore_partial_revert_of.patch @@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it by changing something in Electron. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index da05a4f28cc03bc555a99bd4e10097cd175b479c..dd94f88d353eb9291e2a64f0281e3fc1d53b68da 100644 +index 459fc0eff0bfe2ec005d6f34cf7e91c2d601fd06..35de681eac3f65ce3e0435bd984159154ece2b7f 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5050,7 +5050,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5051,7 +5051,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( : IsGuest(); // While some guest types do not have a guest SiteInstance, the ones that // don't all override WebContents creation above. diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index f3d22875f651..fe4b7c424291 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -218,10 +218,10 @@ index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17 content::WebContents* AddNewContents( content::WebContents* source, diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 5df2433b30213ba5683a864dcf42a07a5deb56e7..7500958c41904c61705d49f75b7a152005ce4890 100644 +index c1c3db2992038cad0c01ce65c57676f8fe281830..2ad1479de622d956c701d8dc4adb75d0114f65b1 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5013,8 +5013,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5014,8 +5014,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( // TODO(crbug.com/40202416): Support a way for MPArch guests to support this. if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 73058d53f01c..5216b4a2ede5 100644 --- a/patches/chromium/disable_hidden.patch +++ b/patches/chromium/disable_hidden.patch @@ -6,10 +6,10 @@ Subject: disable_hidden.patch Electron uses this to disable background throttling for hidden windows. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 7b11077760d2a79312bd1871582733a7b0af71a0..8637d83c1d3a912bbc48effcc095b426640351ad 100644 +index b722e19e8c660d13750ea7bf505e28a9c1d9d59f..bac913e30ce140d9b370186781cccf5817885076 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -830,6 +830,10 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -831,6 +831,10 @@ void RenderWidgetHostImpl::WasHidden() { return; } diff --git a/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch b/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch index 0506b9f8512f..a7845a1f9938 100644 --- a/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch +++ b/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch @@ -9,7 +9,7 @@ embedders to make custom schemes allow V8 code cache. Chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/5019665 diff --git a/content/browser/code_cache/generated_code_cache.cc b/content/browser/code_cache/generated_code_cache.cc -index cad3cf44df0c65067d18490ee7694fd0f82153af..0f9b64a81e0c4114bd885b24ff65c458810ceb99 100644 +index d6ddb79521290790aeb8fbd997117cf3c6157c75..52a9536f4187418327f980fd3dd68211d8103374 100644 --- a/content/browser/code_cache/generated_code_cache.cc +++ b/content/browser/code_cache/generated_code_cache.cc @@ -8,6 +8,7 @@ diff --git a/patches/chromium/feat_configure_launch_options_for_service_process.patch b/patches/chromium/feat_configure_launch_options_for_service_process.patch index 41b88cc8254f..68b50ef8a802 100644 --- a/patches/chromium/feat_configure_launch_options_for_service_process.patch +++ b/patches/chromium/feat_configure_launch_options_for_service_process.patch @@ -347,10 +347,10 @@ index d13e6db4857242480591bff040709532d16f513d..1164da12ee71a8575c17bf1b84a505e8 // launch failed. enum class LaunchState { diff --git a/content/browser/service_host/utility_sandbox_delegate.cc b/content/browser/service_host/utility_sandbox_delegate.cc -index 824afc2cfd01a0321d1b01cd370243dafefa1d24..ab77c85595dd5bde9eb9fd21f4914e1f9dfd4433 100644 +index 5ff3c5dcb972eb635107557ea7c26eb1f3331d22..5b1939226dcb84a61b09eefe69ab24a5ad595e1b 100644 --- a/content/browser/service_host/utility_sandbox_delegate.cc +++ b/content/browser/service_host/utility_sandbox_delegate.cc -@@ -38,17 +38,19 @@ UtilitySandboxedProcessLauncherDelegate:: +@@ -39,17 +39,19 @@ UtilitySandboxedProcessLauncherDelegate:: UtilitySandboxedProcessLauncherDelegate( sandbox::mojom::Sandbox sandbox_type, const base::EnvironmentMap& env, @@ -374,7 +374,7 @@ index 824afc2cfd01a0321d1b01cd370243dafefa1d24..ab77c85595dd5bde9eb9fd21f4914e1f #if DCHECK_IS_ON() bool supported_sandbox_type = sandbox_type_ == sandbox::mojom::Sandbox::kNoSandbox || -@@ -114,11 +116,28 @@ UtilitySandboxedProcessLauncherDelegate::GetSandboxType() { +@@ -115,11 +117,28 @@ UtilitySandboxedProcessLauncherDelegate::GetSandboxType() { return sandbox_type_; } diff --git a/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch b/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch index e177a7bf83e1..9a8fc1805978 100644 --- a/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch +++ b/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch @@ -78,7 +78,7 @@ index 3d388a85aaf52acdcc2b7aaea56f5a24b2435bff..7a0d28cbf1651e76a4356f1193b502d2 } diff --git a/crypto/apple_keychain.h b/crypto/apple_keychain.h -index bcff49c4bcee4a67b97172c3abc12dedda1eedda..43e0b9f8b421a1c0dc62cc2d66b6fdd0eae496ce 100644 +index 605a6db7fd8de4e9863d1b98c78bb628e9600987..dccc5f565733875b1c9e54cbff7383eafd5370e4 100644 --- a/crypto/apple_keychain.h +++ b/crypto/apple_keychain.h @@ -18,6 +18,12 @@ @@ -143,10 +143,10 @@ index 12b400a1f2d6c11bc4ac67d0a2c98984d0be24e0..1abb4623bfabacbca34068113fac2030 MakeGenericPasswordQuery(service_name, account_name); diff --git a/crypto/apple_keychain_seckeychain.cc b/crypto/apple_keychain_seckeychain.cc -index 3fa4feac6de46a65bcb306329d0fc923525330ed..61a90e531c7cf8060425bf1cde571818d2da7979 100644 +index c7f015a4108f93ef121c7bb56c3d67634a723146..6d905154de42cbc151b5dfd77af277e5a5b021a0 100644 --- a/crypto/apple_keychain_seckeychain.cc +++ b/crypto/apple_keychain_seckeychain.cc -@@ -59,14 +59,15 @@ AppleKeychainSecKeychain::~AppleKeychainSecKeychain() = default; +@@ -26,14 +26,15 @@ AppleKeychainSecKeychain::~AppleKeychainSecKeychain() = default; base::expected, OSStatus> AppleKeychainSecKeychain::FindGenericPassword( std::string_view service_name, @@ -164,7 +164,7 @@ index 3fa4feac6de46a65bcb306329d0fc923525330ed..61a90e531c7cf8060425bf1cde571818 if (status != noErr) { return base::unexpected(status); } -@@ -92,6 +93,11 @@ OSStatus AppleKeychainSecKeychain::AddGenericPassword( +@@ -59,6 +60,11 @@ OSStatus AppleKeychainSecKeychain::AddGenericPassword( password.data(), nullptr); } @@ -173,9 +173,9 @@ index 3fa4feac6de46a65bcb306329d0fc923525330ed..61a90e531c7cf8060425bf1cde571818 + return SecKeychainItemDelete(item); +} + - ScopedKeychainUserInteractionAllowed::ScopedKeychainUserInteractionAllowed( - Boolean allowed, - OSStatus* status) { + #pragma clang diagnostic pop + + } // namespace crypto diff --git a/crypto/apple_keychain_seckeychain.h b/crypto/apple_keychain_seckeychain.h index ecf5e229c8f05a27574b635abc9c781d175c1773..6afb09c59011035337a287783bbef0c6b7d29d9a 100644 --- a/crypto/apple_keychain_seckeychain.h diff --git a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch index 22c7bf7fa71b..b54a7fbf346c 100644 --- a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch +++ b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch @@ -28,10 +28,10 @@ The patch should be removed in favor of either: Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc -index dccc2e00d6bc52d25d35dbee95898a03960da28f..c3baeec8bbec12e4cb4d85413b77830d344b622c 100644 +index 0dbbaddc1bef8b5a1b253297f47c33601dc6fe67..0c84f727b29c742ba4c2edd38dfa16d1f48df76f 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -11107,6 +11107,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { +@@ -11110,6 +11110,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { "blob"); } diff --git a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch index eaabe6b5754f..4abaf3657452 100644 --- a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch +++ b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch @@ -75,10 +75,10 @@ index 659e8d79766a78d261e58adab08f9abccda8390b..bc4dc2e3a93877d2e20890560f61d3f2 PictureInPictureOcclusionTracker* diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index dde04e0070cfd0a294d88fad3c32eadacf4030e8..de6816ba24a300b936c5ddbc1b5f1dd0f4865a9c 100644 +index 106f2c27297ab437839b3e320a5e5c657947b1c3..f2d4bb25647e9075df68ace24ed910d62a90c89e 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -@@ -431,11 +431,13 @@ std::unique_ptr VideoOverlayWindowViews::Create( +@@ -432,11 +432,13 @@ std::unique_ptr VideoOverlayWindowViews::Create( #endif // BUILDFLAG(IS_WIN) diff --git a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch index 2c5bb43acc5b..6c073e3ef8b1 100644 --- a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch +++ b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch @@ -87,10 +87,10 @@ index 75df43e3cd2721a92c90c18154d53d5c203e2465..ce42c75c8face36d21f53f44c0201ac4 // The view with active text input state, i.e., a focused element. // It will be nullptr if no such view exists. Note that the active view diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index c34bcb4f4a6ac03b4e3a6c87c3ac29e4450ffa71..da05a4f28cc03bc555a99bd4e10097cd175b479c 100644 +index 05a102a33f4c05fe6d34fa721d37fcae05a3a577..459fc0eff0bfe2ec005d6f34cf7e91c2d601fd06 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9972,7 +9972,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -9970,7 +9970,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( "WebContentsImpl::OnFocusedElementChangedInFrame", "render_frame_host", frame); RenderWidgetHostViewBase* root_view = diff --git a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch index eb41286a9cb7..c8da4b6dacf5 100644 --- a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch +++ b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch @@ -11,10 +11,10 @@ This patch should be upstreamed as a conditional revert of the logic in desktop vs mobile runtimes. i.e. restore the old logic only on desktop platforms diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 3419628c08b62a16c62778cc124c365aa19adec2..b1143074421e4ac37f1dc7041104bea3de1eaa4b 100644 +index 8c3ac60d029a76b004111cffd56e9b859594dd65..d398cb9f429f8304eeb6ed00c79e609a3b83bd3f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2120,9 +2120,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { +@@ -2121,9 +2121,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { void RenderWidgetHostImpl::NotifyScreenInfoChanged() { // The resize message (which may not happen immediately) will carry with it // the screen info as well as the new size (if the screen has changed scale diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 089eb8077c21..ec428f880a1f 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -20,10 +20,10 @@ index b61dfcc8e3306a2c3eb8808c204254af4ad8c248..cec49ddafd46b0296cc548a17efd6752 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index cabdb73fa092683cdd2dad38f7b62b6bac974d0d..6bd13985764981ccbc547faccdec78bce18600a0 100644 +index 5ed4df05dd22cbf901ecbbcc9d892de806c93890..d0623992ce30b29b088a1b92e503f9e29087f193 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -340,6 +340,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -341,6 +341,11 @@ class CONTENT_EXPORT ContentBrowserClient { virtual ~ContentBrowserClient() = default; diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 867f2aa4fdef..0c71a0a66773 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,7 +6,7 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index 342b54311138a3d156bc19e8428e79d6a1477b80..9bd726519ef854f577d5a84eaca489b021e9dba8 100644 +index e9d1729c376bc36ac2c5b0a2c03ae03eb7e3dbff..18f1797d64573ee676e7f3337256d3199f91f29f 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec @@ -1508,6 +1508,11 @@ diff --git a/patches/chromium/gtk_visibility.patch b/patches/chromium/gtk_visibility.patch index 060a840d896a..d638360f2044 100644 --- a/patches/chromium/gtk_visibility.patch +++ b/patches/chromium/gtk_visibility.patch @@ -6,7 +6,7 @@ Subject: gtk_visibility.patch Allow electron to depend on GTK in the GN build. diff --git a/build/config/linux/gtk/BUILD.gn b/build/config/linux/gtk/BUILD.gn -index 4498487579ba5f4c7d8292f65c1afed16e41bb03..4ea4f38a91f02700373cb97e39125dcb0469b70b 100644 +index fdc3442590bddda969681d49c451d32f086bd5d1..b6fd63c0c845e5d7648e8693f1639b1f0f39a779 100644 --- a/build/config/linux/gtk/BUILD.gn +++ b/build/config/linux/gtk/BUILD.gn @@ -27,6 +27,7 @@ pkg_config("gtk_internal_config") { diff --git a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch index f52c337c296b..4523a105b4f9 100644 --- a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch +++ b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch @@ -11,7 +11,7 @@ If removing this patch causes no sync failures, it's safe to delete :+1: Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903 diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index 420c106a5f6fbbcfc77f2409e6272689ec71cf87..dad329cec5786323a981e150129c97357122c617 100755 +index f274064efd55d7c4691e207c7274f2cee677f4d8..a69cc4107d94268190a0f19a6e53dae231e227ef 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -307,6 +307,8 @@ def GetDefaultHostOs(): diff --git a/patches/chromium/make_gtk_getlibgtk_public.patch b/patches/chromium/make_gtk_getlibgtk_public.patch index 9a0c214c6a36..061d60815ece 100644 --- a/patches/chromium/make_gtk_getlibgtk_public.patch +++ b/patches/chromium/make_gtk_getlibgtk_public.patch @@ -7,10 +7,10 @@ Allows embedders to get a handle to the gdk_pixbuf library already loaded in the process. diff --git a/ui/gtk/gtk_compat.cc b/ui/gtk/gtk_compat.cc -index f28cf275db0205186fe6143b7e1550b6c30a4435..346992e202c507eeac454d657507e1bd336175fc 100644 +index 946eb3eef6b0c546ace65de0c7f14b4642208090..9c9a35d439602ea3612ed648931990ec224c8799 100644 --- a/ui/gtk/gtk_compat.cc +++ b/ui/gtk/gtk_compat.cc -@@ -69,11 +69,6 @@ void* GetLibGio() { +@@ -70,11 +70,6 @@ void* GetLibGio() { return libgio; } @@ -22,7 +22,7 @@ index f28cf275db0205186fe6143b7e1550b6c30a4435..346992e202c507eeac454d657507e1bd void* GetLibGdk3() { static void* libgdk3 = DlOpen("libgdk-3.so.0"); return libgdk3; -@@ -150,6 +145,11 @@ gfx::Insets InsetsFromGtkBorder(const GtkBorder& border) { +@@ -170,6 +165,11 @@ gfx::Insets InsetsFromGtkBorder(const GtkBorder& border) { } // namespace diff --git a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch index ca7b65cf5437..877fbfa40302 100644 --- a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch +++ b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch @@ -35,10 +35,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to system priority. diff --git a/base/BUILD.gn b/base/BUILD.gn -index 82219748cc05ee4781731da17879f50dc1cea05f..25f5e50259e093d814271e53236d3be0647cb12b 100644 +index 5267ae3844f58d17e795c17184c85592157fda6f..21cab5e75e92570260df2e5fe4d2e404d2cb020a 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1045,6 +1045,7 @@ component("base") { +@@ -1046,6 +1046,7 @@ component("base") { "//build:ios_buildflags", "//build/config/compiler:compiler_buildflags", "//third_party/modp_b64", @@ -548,7 +548,7 @@ index dbf334caa3a6d10017b69ad76802e389a011436b..da828823e8195cc9e497866363c9af93 void ForwardKeyboardEvent(const input::NativeWebKeyboardEvent& key_event, diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index 371b7b3ba73ee7b88027fcc31cb0a346cae40eea..c4b0654a56f4f2b4ab57ef05a119e38862b5fd2d 100644 +index f97ab6bdafbc35216b1935cf979443d071dd889f..e72d2347099c6549b5f9f318f99a1140839939e7 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm @@ -36,6 +36,7 @@ @@ -559,7 +559,7 @@ index 371b7b3ba73ee7b88027fcc31cb0a346cae40eea..c4b0654a56f4f2b4ab57ef05a119e388 #include "skia/ext/skia_utils_mac.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/input/input_handler.mojom.h" -@@ -2138,15 +2139,21 @@ - (NSAccessibilityRole)accessibilityRole { +@@ -2144,15 +2145,21 @@ - (NSAccessibilityRole)accessibilityRole { // Since this implementation doesn't have to wait any IPC calls, this doesn't // make any key-typing jank. --hbono 7/23/09 // @@ -582,10 +582,10 @@ index 371b7b3ba73ee7b88027fcc31cb0a346cae40eea..c4b0654a56f4f2b4ab57ef05a119e388 return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index cf87c4749846d98e56f130ac10c9004029f56464..27327923cfdd0c05ad0368b5f4678ff8ecf835fc 100644 +index 86e30304014f4811578595013a20a76790b1e84d..7964ac6af0fc3821b8208e34be766a712ccd2026 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -342,6 +342,7 @@ source_set("browser") { +@@ -343,6 +343,7 @@ source_set("browser") { "//ui/webui/resources", "//v8", "//v8:v8_version", @@ -797,10 +797,10 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index 4c59b6c62ad3fed9717b0330c7b46b8dc83a51a1..1c88c8f449387258259bcd65c13709d70f03117b 100644 +index d72fc747932acd8cca621cd4bbfd3cb244c17da9..58687ab05e82b6d6314c979c88d77323dd7047e4 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -662,6 +662,7 @@ static_library("test_support") { +@@ -664,6 +664,7 @@ static_library("test_support") { "//url", "//url/mojom:url_mojom_gurl", "//v8", @@ -808,7 +808,7 @@ index 4c59b6c62ad3fed9717b0330c7b46b8dc83a51a1..1c88c8f449387258259bcd65c13709d7 ] data_deps = [ -@@ -1117,6 +1118,7 @@ static_library("browsertest_support") { +@@ -1120,6 +1121,7 @@ static_library("browsertest_support") { } configs += [ "//v8:external_startup_data" ] @@ -816,7 +816,7 @@ index 4c59b6c62ad3fed9717b0330c7b46b8dc83a51a1..1c88c8f449387258259bcd65c13709d7 } mojom("content_test_mojo_bindings") { -@@ -1959,6 +1961,7 @@ test("content_browsertests") { +@@ -1962,6 +1964,7 @@ test("content_browsertests") { "//ui/shell_dialogs", "//ui/snapshot", "//ui/webui:test_support", @@ -824,7 +824,7 @@ index 4c59b6c62ad3fed9717b0330c7b46b8dc83a51a1..1c88c8f449387258259bcd65c13709d7 ] if (!(is_chromeos && target_cpu == "arm64" && current_cpu == "arm")) { -@@ -3284,6 +3287,7 @@ test("content_unittests") { +@@ -3292,6 +3295,7 @@ test("content_unittests") { "//ui/shell_dialogs:shell_dialogs", "//ui/webui:test_support", "//url", diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index c660a1744294..293237d00ddd 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -133,7 +133,7 @@ index 5be62a3fb27e37f3c1db6b811172f6dfebe18f61..34349f9832fe4b9a3d48db613a789afb const GURL& document_url, const WeakDocumentPtr& weak_document_ptr, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 6606217ec587846d995c4312f9a6ecd0a82b9ba1..63c4c7d56dd8677f37c2eed64166647c17b26d1c 100644 +index 3b2c512edec286bcc283a1cff14d96d469d8b4db..6e435b12521d663086be770bb89106368b06d159 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -2217,7 +2217,7 @@ void RenderProcessHostImpl::CreateNotificationService( diff --git a/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch b/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch index 2a90b7ecb9aa..5c89c799112c 100644 --- a/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch +++ b/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch @@ -10,10 +10,10 @@ an about:blank check to this area. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5403876 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index eaf36446678a3d079149377a6954c04f01573c8d..b060a69fef72b11d3bc932064d29e39ce827fb32 100644 +index fea0bbb8a9604ffbc4d8c5f061baff81c4824cde..a9f6d2233ce9953d1e1d96aea3a2ee717adbdc3b 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -807,8 +807,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch( +@@ -809,8 +809,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch( // TODO(crbug.com/40092527): Consider adding a separate boolean that // tracks this instead of piggybacking `origin_calculation_debug_info`. if (renderer_side_origin.opaque() && diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index ca5e66fc1679..5fd000554592 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -38,7 +38,7 @@ index 8168b4cfbafd42fa93a5aa9a3691c2552fabfb86..ba49212bd76d209f99c1cee649fc1466 ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground, kCloseButtonIconSize)); diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index 2878aa40f60e977ecd2f7eedd37d1ce199472cf4..dde04e0070cfd0a294d88fad3c32eadacf4030e8 100644 +index c80abff87a34a8dfb94eec4c856438b458ad7936..106f2c27297ab437839b3e320a5e5c657947b1c3 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc @@ -19,9 +19,11 @@ @@ -53,7 +53,7 @@ index 2878aa40f60e977ecd2f7eedd37d1ce199472cf4..dde04e0070cfd0a294d88fad3c32eada #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/views/overlay/back_to_tab_button.h" #include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h" -@@ -72,7 +74,7 @@ +@@ -73,7 +75,7 @@ #include "ui/aura/window.h" #endif @@ -62,7 +62,7 @@ index 2878aa40f60e977ecd2f7eedd37d1ce199472cf4..dde04e0070cfd0a294d88fad3c32eada #include "chrome/browser/shell_integration_win.h" #include "content/public/browser/render_widget_host_view.h" #include "ui/aura/window.h" -@@ -396,7 +398,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( +@@ -397,7 +399,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( overlay_window->Init(std::move(params)); overlay_window->OnRootViewReady(); @@ -71,3 +71,16 @@ index 2878aa40f60e977ecd2f7eedd37d1ce199472cf4..dde04e0070cfd0a294d88fad3c32eada std::wstring app_user_model_id; Browser* browser = chrome::FindBrowserWithTab(controller->GetWebContents()); if (browser) { +@@ -1099,10 +1101,12 @@ void VideoOverlayWindowViews::SetUpViews() { + l10n_util::GetStringUTF16( + IDS_PICTURE_IN_PICTURE_LIVE_CAPTION_CONTROL_TEXT)); + live_caption_button->SetSize(kActionButtonSize); ++#if 0 + live_caption_dialog = std::make_unique( + Profile::FromBrowserContext( + controller_->GetWebContents()->GetBrowserContext())); + live_caption_dialog->SetVisible(false); ++#endif + toggle_microphone_button = + std::make_unique(base::BindRepeating( + [](VideoOverlayWindowViews* overlay) { diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index e59344c85936..63903f039b82 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -881,10 +881,10 @@ index 97cb6458bc9eec767db89b56abfc5f4b4136ff7b..d9a0b343158b8464b5c9aa8e0e655c0b ScriptingThrottler scripting_throttler_; diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 27327923cfdd0c05ad0368b5f4678ff8ecf835fc..0bff462eff763b5f5b1ecca6ca723c2c52199350 100644 +index 7964ac6af0fc3821b8208e34be766a712ccd2026..5bb585cb7f0ec4e15038bba89179817d43256719 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -3154,8 +3154,9 @@ source_set("browser") { +@@ -3158,8 +3158,9 @@ source_set("browser") { "//ppapi/shared_impl", ] diff --git a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch index 8de7f1a32426..54d5ffd829a7 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -30,10 +30,10 @@ index a54a0dedf8ef1cfffa4e80a4707debed0e83d277..e66e71fdbabb40a5307b12cd8965e773 // RenderWidgetHost on the primary main frame, and false otherwise. virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 8637d83c1d3a912bbc48effcc095b426640351ad..3419628c08b62a16c62778cc124c365aa19adec2 100644 +index bac913e30ce140d9b370186781cccf5817885076..8c3ac60d029a76b004111cffd56e9b859594dd65 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2054,6 +2054,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { +@@ -2055,6 +2055,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { if (view_) { view_->UpdateCursor(cursor); } @@ -44,10 +44,10 @@ index 8637d83c1d3a912bbc48effcc095b426640351ad..3419628c08b62a16c62778cc124c365a void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index a99621ef317ec59f1368e5c7959f73de8ed32c54..5df2433b30213ba5683a864dcf42a07a5deb56e7 100644 +index aec96f969800e2a4d09e644df770d367e48b1b63..c1c3db2992038cad0c01ce65c57676f8fe281830 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5883,6 +5883,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -5884,6 +5884,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -60,7 +60,7 @@ index a99621ef317ec59f1368e5c7959f73de8ed32c54..5df2433b30213ba5683a864dcf42a07a RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index ebbefa02e163c9f38fc7057a592684f869c880e2..6d66b554acd09a32684ef6343db795134d9d5c15 100644 +index 91f52c79054c184142d15cfad6b24330a365c167..51cc85f9c998cc9234700ec47065d69eaac8d474 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -1183,6 +1183,7 @@ class CONTENT_EXPORT WebContentsImpl diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index fc4713889a17..ff700d4a1c03 100644 --- a/patches/chromium/refactor_unfilter_unresponsive_events.patch +++ b/patches/chromium/refactor_unfilter_unresponsive_events.patch @@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be accessed from our JS event. The filtering is moved into Electron's code. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index dd94f88d353eb9291e2a64f0281e3fc1d53b68da..60a21da52a9a0f301e3b5e320fe69e766951db4d 100644 +index 35de681eac3f65ce3e0435bd984159154ece2b7f..f2d5a85376109b6127ca4a7b3c26dbbb61990e20 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -10109,25 +10109,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -10107,25 +10107,13 @@ void WebContentsImpl::RendererUnresponsive( base::RepeatingClosure hang_monitor_restarter) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive", "render_widget_host", render_widget_host); diff --git a/patches/chromium/render_widget_host_view_mac.patch b/patches/chromium/render_widget_host_view_mac.patch index f79f8356bd8a..e370a1a90b8a 100644 --- a/patches/chromium/render_widget_host_view_mac.patch +++ b/patches/chromium/render_widget_host_view_mac.patch @@ -8,7 +8,7 @@ respond to the first mouse click in their window, which is desirable for some kinds of utility windows. Similarly for `disableAutoHideCursor`. diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index 91e5beaa68fc0b8231fce4bf195efa924744a532..371b7b3ba73ee7b88027fcc31cb0a346cae40eea 100644 +index a606a4870bd3f504c4bd6316aa3ab833621ab205..f97ab6bdafbc35216b1935cf979443d071dd889f 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm @@ -171,6 +171,15 @@ void ExtractUnderlines(NSAttributedString* string, @@ -27,7 +27,7 @@ index 91e5beaa68fc0b8231fce4bf195efa924744a532..371b7b3ba73ee7b88027fcc31cb0a346 // RenderWidgetHostViewCocoa --------------------------------------------------- // Private methods: -@@ -776,6 +785,9 @@ - (AcceptMouseEventsOption)acceptsMouseEventsOption { +@@ -782,6 +791,9 @@ - (AcceptMouseEventsOption)acceptsMouseEventsOption { } - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent { @@ -37,7 +37,7 @@ index 91e5beaa68fc0b8231fce4bf195efa924744a532..371b7b3ba73ee7b88027fcc31cb0a346 // Enable "click-through" if mouse clicks are accepted in inactive windows return [self acceptsMouseEventsOption] > kAcceptMouseEventsInActiveWindow; } -@@ -921,6 +933,10 @@ - (BOOL)shouldIgnoreMouseEvent:(NSEvent*)theEvent { +@@ -927,6 +939,10 @@ - (BOOL)shouldIgnoreMouseEvent:(NSEvent*)theEvent { // its parent view. BOOL hitSelf = NO; while (view) { @@ -48,7 +48,7 @@ index 91e5beaa68fc0b8231fce4bf195efa924744a532..371b7b3ba73ee7b88027fcc31cb0a346 if (view == self) hitSelf = YES; if ([view isKindOfClass:[self class]] && ![view isEqual:self] && -@@ -1255,6 +1271,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { +@@ -1261,6 +1277,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { eventType == NSEventTypeKeyDown && !(modifierFlags & NSEventModifierFlagCommand); diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 3072d7397b56..04f040a0ab5c 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it does touch a security-sensitive class. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 63c4c7d56dd8677f37c2eed64166647c17b26d1c..9df359cf6f5b71259d1df6d7e0fd8044bfa1ff73 100644 +index 6e435b12521d663086be770bb89106368b06d159..2c53f5575bdc96ba53bacf8a40e752e7a41576d9 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -1825,6 +1825,10 @@ bool RenderProcessHostImpl::Init() { diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index df6f0eda0198..9c4faf566d65 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 7500958c41904c61705d49f75b7a152005ce4890..95bffa1a93ce1b103c129503414f7832d87fd493 100644 +index 2ad1479de622d956c701d8dc4adb75d0114f65b1..3d4510df709ed60a1da7163d3226541ed8ff201c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3952,6 +3952,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3953,6 +3953,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, params.main_frame_name, GetOpener(), primary_main_frame_policy, base::UnguessableToken::Create()); @@ -26,7 +26,7 @@ index 7500958c41904c61705d49f75b7a152005ce4890..95bffa1a93ce1b103c129503414f7832 std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -3962,6 +3969,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3963,6 +3970,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index 063f52d7498e..aa03f837cd0a 100644 --- a/patches/chromium/webview_fullscreen.patch +++ b/patches/chromium/webview_fullscreen.patch @@ -15,10 +15,10 @@ Note that we also need to manually update embedder's `api::WebContents::IsFullscreenForTabOrPending` value. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 7578b4f9056b9be79645fa0eed9476ab9b80c509..eaf36446678a3d079149377a6954c04f01573c8d 100644 +index 46ddad111b2feb5cc1064a1eeb424800d2cba6c1..fea0bbb8a9604ffbc4d8c5f061baff81c4824cde 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -8881,6 +8881,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -8883,6 +8883,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,10 +37,10 @@ index 7578b4f9056b9be79645fa0eed9476ab9b80c509..eaf36446678a3d079149377a6954c04f if (had_fullscreen_token && !GetView()->HasFocus()) GetView()->Focus(); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 95bffa1a93ce1b103c129503414f7832d87fd493..c34bcb4f4a6ac03b4e3a6c87c3ac29e4450ffa71 100644 +index 3d4510df709ed60a1da7163d3226541ed8ff201c..05a102a33f4c05fe6d34fa721d37fcae05a3a577 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4227,21 +4227,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( +@@ -4228,21 +4228,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( const input::NativeWebKeyboardEvent& event) { OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"), "WebContentsImpl::PreHandleKeyboardEvent"); @@ -78,7 +78,7 @@ index 95bffa1a93ce1b103c129503414f7832d87fd493..c34bcb4f4a6ac03b4e3a6c87c3ac29e4 } bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { -@@ -4400,7 +4404,7 @@ void WebContentsImpl::EnterFullscreenMode( +@@ -4401,7 +4405,7 @@ void WebContentsImpl::EnterFullscreenMode( OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); DCHECK(CanEnterFullscreenMode(requesting_frame)); DCHECK(requesting_frame->IsActive()); diff --git a/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch b/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch index 68185410f669..c4d93ad46854 100644 --- a/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch +++ b/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch @@ -10,10 +10,10 @@ to handle this without patching, but this is fairly clean for now and no longer patching legacy devtools code. diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts -index 20ffe01d89e65b3eb6dc97b75761166ae3c9acb9..0444f2d81e53a01a81861c158713336a8062434f 100644 +index 69673b4aa636c2b55065aa11ce65dbc4a45c39b8..bdf133c0cdd524a72d3ad78fa97102b44c336f51 100644 --- a/front_end/entrypoints/main/MainImpl.ts +++ b/front_end/entrypoints/main/MainImpl.ts -@@ -736,6 +736,8 @@ export class MainImpl { +@@ -730,6 +730,8 @@ export class MainImpl { globalThis.Main = globalThis.Main || {}; // @ts-expect-error Exported for Tests.js globalThis.Main.Main = MainImpl; diff --git a/patches/node/.patches b/patches/node/.patches index 7b326ff7bbbd..b9f8f3b2719a 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -49,3 +49,4 @@ fix_cppgc_initializing_twice.patch fix_task_starvation_in_inspector_context_test.patch zlib_fix_pointer_alignment.patch fix_expose_readfilesync_override_for_modules.patch +test_force_slow_json_stringify_path_for_overflow.patch diff --git a/patches/node/test_force_slow_json_stringify_path_for_overflow.patch b/patches/node/test_force_slow_json_stringify_path_for_overflow.patch new file mode 100644 index 000000000000..7d57385f74f1 --- /dev/null +++ b/patches/node/test_force_slow_json_stringify_path_for_overflow.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shelley Vohr +Date: Mon, 5 May 2025 13:04:14 +0000 +Subject: test: force slow JSON.stringify path for overflow + +Refs https://chromium-review.googlesource.com/c/v8/v8/+/6011806 + +The V8 team just enabled the JSON.stringify fast path by default, +which is iterative and won't throw. Pre-emptively preserve test +functionality by forcing the slow path. See above linked PR for +approach this is borrowed from. + +Upstreamed in https://github.com/nodejs/node/pull/58181. + +diff --git a/test/fixtures/console/stack_overflow.js b/test/fixtures/console/stack_overflow.js +index 565692b6d6e4ba4c439a38250407004c5aa21df9..14bceef878b5cf27609b29c8cc7852cab4dd63ff 100644 +--- a/test/fixtures/console/stack_overflow.js ++++ b/test/fixtures/console/stack_overflow.js +@@ -26,11 +26,15 @@ Error.stackTraceLimit = 0; + + console.error('before'); + ++// Invalidate elements protector to force slow-path. ++// The fast-path of JSON.stringify is iterative and won't throw. ++Array.prototype[2] = 'foo'; ++ + // Trigger stack overflow by stringifying a deeply nested array. +-let array = []; +-for (let i = 0; i < 100000; i++) { +- array = [ array ]; +-} ++// eslint-disable-next-line no-sparse-arrays ++let array = [,]; ++for (let i = 0; i < 10000; i++) ++ array = [array]; + + JSON.stringify(array); + diff --git a/shell/browser/electron_browser_client.cc b/shell/browser/electron_browser_client.cc index b63e5f41e5d6..0895213cb9c9 100644 --- a/shell/browser/electron_browser_client.cc +++ b/shell/browser/electron_browser_client.cc @@ -36,6 +36,7 @@ #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/client_certificate_delegate.h" #include "content/public/browser/login_delegate.h" +#include "content/public/browser/navigation_throttle_registry.h" #include "content/public/browser/overlay_window.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" @@ -954,8 +955,10 @@ bool ElectronBrowserClient::HandleExternalProtocol( std::vector> ElectronBrowserClient::CreateThrottlesForNavigation( - content::NavigationHandle* handle) { + content::NavigationThrottleRegistry& registry) { std::vector> throttles; + + content::NavigationHandle* handle = ®istry.GetNavigationHandle(); throttles.push_back(std::make_unique(handle)); #if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS) diff --git a/shell/browser/electron_browser_client.h b/shell/browser/electron_browser_client.h index fa1792268a6e..219a137d7722 100644 --- a/shell/browser/electron_browser_client.h +++ b/shell/browser/electron_browser_client.h @@ -31,6 +31,7 @@ class FilePath; namespace content { class ClientCertificateDelegate; class PlatformNotificationService; +class NavigationThrottleRegistry; class QuotaPermissionContext; } // namespace content @@ -76,7 +77,8 @@ class ElectronBrowserClient : public content::ContentBrowserClient, // content::NavigatorDelegate std::vector> - CreateThrottlesForNavigation(content::NavigationHandle* handle) override; + CreateThrottlesForNavigation( + content::NavigationThrottleRegistry& registry) override; // content::ContentBrowserClient: std::string GetApplicationLocale() override; diff --git a/shell/browser/feature_list.cc b/shell/browser/feature_list.cc index 44fef97b0132..17ccdbaa9164 100644 --- a/shell/browser/feature_list.cc +++ b/shell/browser/feature_list.cc @@ -19,6 +19,7 @@ #include "printing/buildflags/buildflags.h" #include "services/network/public/cpp/features.h" #include "third_party/blink/public/common/features.h" +#include "ui/accessibility/ax_features.mojom-features.h" #if BUILDFLAG(IS_MAC) #include "device/base/features.h" // nogncheck @@ -49,7 +50,10 @@ void InitializeFeatureList() { // Can be reenabled when our site instance policy is aligned with chromium // when node integration is enabled. disable_features += - std::string(",") + features::kSpareRendererForSitePerProcess.name; + std::string(",") + features::kSpareRendererForSitePerProcess.name + + // See https://chromium-review.googlesource.com/c/chromium/src/+/6487926 + // this breaks PDFs locally as we don't have GLIC infra enabled. + std::string(",") + ax::mojom::features::kScreenAIOCREnabled.name; #if BUILDFLAG(IS_WIN) disable_features +=