diff --git a/BUILD.gn b/BUILD.gn index 0892c195059d..a449ee53b571 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -451,7 +451,7 @@ source_set("electron_lib") { "//components/autofill/core/common:features", "//components/certificate_transparency", "//components/compose:buildflags", - "//components/embedder_support:browser_util", + "//components/embedder_support:user_agent", "//components/input:input", "//components/language/core/browser", "//components/net_log", diff --git a/DEPS b/DEPS index 6f9b5186a1a4..d080bc0edc35 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '135.0.7027.0', + '135.0.7035.0', 'node_version': 'v22.14.0', 'nan_version': diff --git a/filenames.libcxx.gni b/filenames.libcxx.gni index 3b3a06a5ecad..914055bfb682 100644 --- a/filenames.libcxx.gni +++ b/filenames.libcxx.gni @@ -257,6 +257,7 @@ libcxx_headers = [ "//third_party/libc++/src/include/__chrono/exception.h", "//third_party/libc++/src/include/__chrono/file_clock.h", "//third_party/libc++/src/include/__chrono/formatter.h", + "//third_party/libc++/src/include/__chrono/gps_clock.h", "//third_party/libc++/src/include/__chrono/hh_mm_ss.h", "//third_party/libc++/src/include/__chrono/high_resolution_clock.h", "//third_party/libc++/src/include/__chrono/leap_second.h", @@ -1533,6 +1534,7 @@ libcxx_headers = [ "//third_party/libc++/src/include/__locale_dir/support/bsd_like.h", "//third_party/libc++/src/include/__locale_dir/support/freebsd.h", "//third_party/libc++/src/include/__locale_dir/support/fuchsia.h", + "//third_party/libc++/src/include/__locale_dir/support/linux.h", "//third_party/libc++/src/include/__locale_dir/support/no_locale/characters.h", "//third_party/libc++/src/include/__locale_dir/support/no_locale/strtonum.h", "//third_party/libc++/src/include/__locale_dir/support/windows.h", 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 5de87d906d83..754f066ff69a 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,10 +33,10 @@ index bdf6d5865fb0069f4df368613167069d2fb50c86..93a126365406badf911d938dde2dcd8b "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 77e4a8ebf25c81b9aa23361935cedee805193c30..069884a988be3ba63486b7248f44cd3ddc16368b 100644 +index 95b6d2a684fd6cb2655f7bc3a985f113bd2b23b5..3afb802aa6563cf625709bd1ab0b0c7f86b08760 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4568,7 +4568,7 @@ static_library("browser") { +@@ -4563,7 +4563,7 @@ static_library("browser") { [ "//chrome/browser/ui/webui/signin:profile_impl" ] } @@ -46,10 +46,10 @@ index 77e4a8ebf25c81b9aa23361935cedee805193c30..069884a988be3ba63486b7248f44cd3d # than here in :chrome_dll. deps += [ "//chrome:packed_resources_integrity_header" ] diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 490c8fa666f85f0a4c4591059b74da1d6320c60b..e8a34358b9b01f918a475e4b7805a41a5d0c4904 100644 +index 4a1bba04faf432da83a8d563217469a861ce14a2..4ca8d943e89703e9fada09395e033b75d93d839c 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -7027,9 +7027,12 @@ test("unit_tests") { +@@ -7030,9 +7030,12 @@ test("unit_tests") { "//chrome/notification_helper", ] @@ -63,7 +63,7 @@ index 490c8fa666f85f0a4c4591059b74da1d6320c60b..e8a34358b9b01f918a475e4b7805a41a "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/app:win_unit_tests", -@@ -7986,6 +7989,10 @@ test("unit_tests") { +@@ -7992,6 +7995,10 @@ test("unit_tests") { "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", ] @@ -74,7 +74,7 @@ index 490c8fa666f85f0a4c4591059b74da1d6320c60b..e8a34358b9b01f918a475e4b7805a41a sources += [ # The importer code is not used on Android. "../common/importer/firefox_importer_utils_unittest.cc", -@@ -8041,7 +8048,6 @@ test("unit_tests") { +@@ -8047,7 +8054,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 3f6962cd2056..a42e44f8ab95 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 2221ff3eacc547fd3e7411e7107cd31fdf94ecec..e1e674944993234358fd8892dbe0074bc4b67409 100644 +index 4e3b890ac33148b21d73530878e525f156a4f1fb..9f05eec5ca501d941c9f39b830c32db2d2e4db32 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9615,6 +9615,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -9613,6 +9613,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,7 +21,7 @@ index 2221ff3eacc547fd3e7411e7107cd31fdf94ecec..e1e674944993234358fd8892dbe0074b &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index a5e33433796b6759aae64b7c7ffd086f70e1de6b..7200d6e7959c19cd461d894be3fb4c27caf0fb9c 100644 +index 42d593b47bb720fc9d142876a75a0077dde71ce8..d5011ecc23eeae14f0f901867ee6e736014c5075 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -5031,6 +5031,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index b6c9c670c021..d14a4714e167 100644 --- a/patches/chromium/chore_partial_revert_of.patch +++ b/patches/chromium/chore_partial_revert_of.patch @@ -14,7 +14,7 @@ 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 037e3a33c6238b22c6f82ca3ec17b85f3aba3cd4..b48b1e6e1c94abe5f64a7ac45194016ec27bd3b8 100644 +index 8c805aec2042d7c02ba0a28f544feb6d976a0775..d5e8086df8b15f90acbea43f93706c2b9543a8ef 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4950,7 +4950,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index 95a8bc5274e9..ade23d208353 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -80,10 +80,10 @@ index 4fd8dff1089cd6afa6a66dc185734d7671657281..0a1f4268ea771a3d5d4a2668928c6e5d content::WebContents* source, const content::OpenURLParams& params, diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index 8d56a23f148e394675d620c3283a5cbd20c682bf..dceba5e060a9a9c924145b9686507804e127cddd 100644 +index 25e6f7807ecedd9df5d1ef91733b6bf47e1ab86b..526bf242dba614faca08d6870ada49ac96d6f7f0 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc -@@ -2217,12 +2217,11 @@ bool Browser::IsWebContentsCreationOverridden( +@@ -2221,12 +2221,11 @@ bool Browser::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -99,10 +99,10 @@ index 8d56a23f148e394675d620c3283a5cbd20c682bf..dceba5e060a9a9c924145b9686507804 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index dc94ad2f75d40b378e184b861d2837d15044538c..6ad84b0d51c57588c7cce6de9198028e9fd01a78 100644 +index d203f5ae4c5bc7ea2e1cf45271df25223a4f7497..e074ffc6fb9b59b81f55817a80db5df4bc4569b8 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -979,8 +979,7 @@ class Browser : public TabStripModelObserver, +@@ -980,8 +980,7 @@ class Browser : public TabStripModelObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -218,7 +218,7 @@ 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 9715736427fda7e0054ca45ba782b2326a8d01fe..5f72ddb8d428d72ea22b0bb37dfe74b3ee056a49 100644 +index 690d589eed3515113ad3c40506872f98c2c44bde..d96da1eb8143a5390bdfbf6fbba82c3f8150b211 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4913,8 +4913,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( diff --git a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch index 6088b47409a2..4cdf5690989b 100644 --- a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch +++ b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch @@ -7,7 +7,7 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 68842f303c7ce77fedf8c7c0bc9824b52d0aac16..562b64439db7a27cb0081776e4602e43408b4060 100644 +index 054f38d683280638c7ac618d2ff8f7aef1a0def0..6e9d8d9a043cf8b67e26f70b3a904abcfc3c1a61 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc @@ -271,8 +271,13 @@ void AsanProcessInfoCB(const char*, bool*) { @@ -95,10 +95,10 @@ index 801bfd401ea4a8e72417d88efaa718cc6fb60883..663fec68d0c2855cdf83bb259b85c229 friend class ContentClientCreator; friend class ContentClientInitializer; diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index 59abc24988ab4d194461a3ca4f4b2bb68395bada..9e0b16dda73900210bfc6305a5d32e51a704513e 100644 +index 7f7ea9ea6dd9b5f3af436570661fa736f912132e..1eed83656482ec330b51899bc8fbf3d5cbcf34fa 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc -@@ -663,8 +663,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out, +@@ -664,8 +664,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out, #if defined(V8_USE_EXTERNAL_STARTUP_DATA) @@ -108,7 +108,7 @@ index 59abc24988ab4d194461a3ca4f4b2bb68395bada..9e0b16dda73900210bfc6305a5d32e51 if (g_mapped_snapshot) { // TODO(crbug.com/40558459): Confirm not loading different type of snapshot // files in a process. -@@ -673,10 +672,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) { +@@ -674,10 +673,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) { base::MemoryMappedFile::Region file_region; base::File file = diff --git a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch index 323eb2ca1ace..4edd56449876 100644 --- a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch +++ b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch @@ -64,10 +64,10 @@ index 31f5b160e4cd755cfb56a62b04261ee1bee80277..4305ba61d2489c5817785077d1ace876 #if BUILDFLAG(IS_WIN) bool EscapeVirtualization(const base::FilePath& user_data_dir); diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c6e50fb50 100644 +index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435a50990d2 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc -@@ -615,6 +615,7 @@ class ProcessSingleton::LinuxWatcher +@@ -614,6 +614,7 @@ class ProcessSingleton::LinuxWatcher // |reader| is for sending back ACK message. void HandleMessage(const std::string& current_dir, const std::vector& argv, @@ -75,7 +75,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c SocketReader* reader); // Called when the ProcessSingleton that owns this class is about to be -@@ -674,13 +675,17 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { +@@ -673,13 +674,17 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { } void ProcessSingleton::LinuxWatcher::HandleMessage( @@ -95,7 +95,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c // Send back "ACK" message to prevent the client process from starting up. reader->FinishWithACK(kACKToken, std::size(kACKToken) - 1); } else { -@@ -728,7 +733,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -727,7 +732,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: } } @@ -105,7 +105,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c const size_t kMinMessageLength = std::size(kStartToken) + 4; if (bytes_read_ < kMinMessageLength) { buf_[bytes_read_] = 0; -@@ -758,10 +764,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -757,10 +763,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: tokens.erase(tokens.begin()); tokens.erase(tokens.begin()); @@ -135,7 +135,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c fd_watch_controller_.reset(); // LinuxWatcher::HandleMessage() is in charge of destroying this SocketReader -@@ -790,8 +814,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( +@@ -789,8 +813,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( // ProcessSingleton::ProcessSingleton( const base::FilePath& user_data_dir, @@ -146,7 +146,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c current_pid_(base::GetCurrentProcId()) { socket_path_ = user_data_dir.Append(chrome::kSingletonSocketFilename); lock_path_ = user_data_dir.Append(chrome::kSingletonLockFilename); -@@ -912,7 +938,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -911,7 +937,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( sizeof(socket_timeout)); // Found another process, prepare our command line @@ -156,7 +156,7 @@ index 0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d..9b0cb6c19b2785a3950ed70a0cd13a9c std::string to_send(kStartToken); to_send.push_back(kTokenDelimiter); -@@ -922,11 +949,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -921,11 +948,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( to_send.append(current_dir.value()); const std::vector& argv = cmd_line.argv(); 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 a10658876d81..2ce4043d9ee5 100644 --- a/patches/chromium/feat_configure_launch_options_for_service_process.patch +++ b/patches/chromium/feat_configure_launch_options_for_service_process.patch @@ -164,11 +164,11 @@ index cb0e7d5c5dc0154c6e88ad08ce097afdce4041f9..09b9cff76d9585297fe60f91970c610a base::BindOnce(&ChildProcessLauncherHelper:: FinishStartSandboxedProcessOnLauncherThread, this)); -diff --git a/content/browser/service_process_host_impl.cc b/content/browser/service_process_host_impl.cc -index bdd5bec301f5fcff2d3e3d7994ecbc4eae46da36..f6082bada22c5f4e70af60ea6f555b0f363919c5 100644 ---- a/content/browser/service_process_host_impl.cc -+++ b/content/browser/service_process_host_impl.cc -@@ -205,6 +205,17 @@ void LaunchServiceProcess(mojo::GenericPendingReceiver receiver, +diff --git a/content/browser/service_host/service_process_host_impl.cc b/content/browser/service_host/service_process_host_impl.cc +index 96c9563aac5847e742de5d9c9236f78bcb6cfd9c..73c9d585579ad5bdc407687b8becd0b7f2d704af 100644 +--- a/content/browser/service_host/service_process_host_impl.cc ++++ b/content/browser/service_host/service_process_host_impl.cc +@@ -66,6 +66,17 @@ void LaunchServiceProcess(mojo::GenericPendingReceiver receiver, options.allow_gpu_client.value()) { host->SetAllowGpuClient(); } @@ -186,11 +186,11 @@ index bdd5bec301f5fcff2d3e3d7994ecbc4eae46da36..f6082bada22c5f4e70af60ea6f555b0f host->Start(); host->GetChildProcess()->BindServiceInterface(std::move(receiver)); } -diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc -index b0be2d050c84a2e824f7fe5f458dc60d4a53cc9e..59319bf14d79c27ef48a37e7463dfb868e412e23 100644 ---- a/content/browser/utility_process_host.cc -+++ b/content/browser/utility_process_host.cc -@@ -188,11 +188,13 @@ const ChildProcessData& UtilityProcessHost::GetData() { +diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc +index 26966d77a2ca88ce62afa16fd0f33cd5815b8c95..b7dfacb25a09b105e982c013119271b8f137e7b9 100644 +--- a/content/browser/service_host/utility_process_host.cc ++++ b/content/browser/service_host/utility_process_host.cc +@@ -189,11 +189,13 @@ const ChildProcessData& UtilityProcessHost::GetData() { return process_->GetData(); } @@ -206,7 +206,7 @@ index b0be2d050c84a2e824f7fe5f458dc60d4a53cc9e..59319bf14d79c27ef48a37e7463dfb86 bool UtilityProcessHost::Start() { return StartProcess(); -@@ -239,6 +241,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) { +@@ -240,6 +242,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) { } #endif // BUILDFLAG(USE_ZYGOTE) @@ -237,7 +237,7 @@ index b0be2d050c84a2e824f7fe5f458dc60d4a53cc9e..59319bf14d79c27ef48a37e7463dfb86 mojom::ChildProcess* UtilityProcessHost::GetChildProcess() { return static_cast(process_->GetHost()) ->child_process(); -@@ -449,9 +475,26 @@ bool UtilityProcessHost::StartProcess() { +@@ -454,9 +480,26 @@ bool UtilityProcessHost::StartProcess() { } #endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN) @@ -265,10 +265,10 @@ index b0be2d050c84a2e824f7fe5f458dc60d4a53cc9e..59319bf14d79c27ef48a37e7463dfb86 #if BUILDFLAG(IS_WIN) if (!preload_libraries_.empty()) { -diff --git a/content/browser/utility_process_host.h b/content/browser/utility_process_host.h -index 26de6bd23cb05ed3789727add5e246806aa56a08..66cbabae31236758eef35bab211d4874f8a5c699 100644 ---- a/content/browser/utility_process_host.h -+++ b/content/browser/utility_process_host.h +diff --git a/content/browser/service_host/utility_process_host.h b/content/browser/service_host/utility_process_host.h +index 066939fcbb7bc05e27a6bb4ed122750732629454..ab6b64737245a840a3e2b06d2ab501ef4aaed7a2 100644 +--- a/content/browser/service_host/utility_process_host.h ++++ b/content/browser/service_host/utility_process_host.h @@ -30,6 +30,10 @@ #include "content/public/common/zygote/zygote_handle.h" #endif // BUILDFLAG(USE_ZYGOTE) @@ -346,10 +346,10 @@ index 26de6bd23cb05ed3789727add5e246806aa56a08..66cbabae31236758eef35bab211d4874 // Indicates whether the process has been successfully launched yet, or if // launch failed. enum class LaunchState { -diff --git a/content/browser/utility_sandbox_delegate.cc b/content/browser/utility_sandbox_delegate.cc -index ab7c6eec5e852b9f6257db60e38c4943ddbda13b..0216c44fe97ee2409c10acb4e585eef5467945e5 100644 ---- a/content/browser/utility_sandbox_delegate.cc -+++ b/content/browser/utility_sandbox_delegate.cc +diff --git a/content/browser/service_host/utility_sandbox_delegate.cc b/content/browser/service_host/utility_sandbox_delegate.cc +index 824afc2cfd01a0321d1b01cd370243dafefa1d24..ab77c85595dd5bde9eb9fd21f4914e1f9dfd4433 100644 +--- a/content/browser/service_host/utility_sandbox_delegate.cc ++++ b/content/browser/service_host/utility_sandbox_delegate.cc @@ -38,17 +38,19 @@ UtilitySandboxedProcessLauncherDelegate:: UtilitySandboxedProcessLauncherDelegate( sandbox::mojom::Sandbox sandbox_type, @@ -405,10 +405,10 @@ index ab7c6eec5e852b9f6257db60e38c4943ddbda13b..0216c44fe97ee2409c10acb4e585eef5 #if BUILDFLAG(USE_ZYGOTE) ZygoteCommunication* UtilitySandboxedProcessLauncherDelegate::GetZygote() { -diff --git a/content/browser/utility_sandbox_delegate.h b/content/browser/utility_sandbox_delegate.h -index f3167c642c1f594c29ef7aa2a92a246f1d045344..f1f1dc8082b6039bf119ce10e7e4ca0e941d4cbd 100644 ---- a/content/browser/utility_sandbox_delegate.h -+++ b/content/browser/utility_sandbox_delegate.h +diff --git a/content/browser/service_host/utility_sandbox_delegate.h b/content/browser/service_host/utility_sandbox_delegate.h +index cc122cb093ddd340b4e42436e461b27275f80456..ba113809f986dd125c5cdec99ca745c384c2ba83 100644 +--- a/content/browser/service_host/utility_sandbox_delegate.h ++++ b/content/browser/service_host/utility_sandbox_delegate.h @@ -34,7 +34,9 @@ class CONTENT_EXPORT UtilitySandboxedProcessLauncherDelegate public: UtilitySandboxedProcessLauncherDelegate(sandbox::mojom::Sandbox sandbox_type, diff --git a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch index 3664bab8aa47..fb8d5a45e5aa 100644 --- a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch +++ b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch @@ -10,52 +10,80 @@ exit codes in some crashing scenarios. To mitigate this, we can rely on ServiceProcessHost::Observer functions, but we need to pass the exit code to the observer. -diff --git a/content/browser/service_process_host_impl.cc b/content/browser/service_process_host_impl.cc -index f6082bada22c5f4e70af60ea6f555b0f363919c5..f691676a629bf82f81117599ae0bd0a4870c9f61 100644 ---- a/content/browser/service_process_host_impl.cc -+++ b/content/browser/service_process_host_impl.cc -@@ -73,12 +73,15 @@ class ServiceProcessTracker { - processes_.erase(iter); +diff --git a/content/browser/service_host/service_process_tracker.cc b/content/browser/service_host/service_process_tracker.cc +index 594629e45acd6cac9deba2d02c682a523c80e2fb..61be7804bbf370df3d2925880804866a631d35fa 100644 +--- a/content/browser/service_host/service_process_tracker.cc ++++ b/content/browser/service_host/service_process_tracker.cc +@@ -48,12 +48,14 @@ void ServiceProcessTracker::NotifyTerminated(ServiceProcessId id) { + processes_.erase(iter); + } + +-void ServiceProcessTracker::NotifyCrashed(ServiceProcessId id) { ++void ServiceProcessTracker::NotifyCrashed(ServiceProcessId id, int exit_code) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + auto iter = processes_.find(id); + CHECK(iter != processes_.end(), base::NotFatalUntil::M130); + for (auto& observer : observers_) { +- observer.OnServiceProcessCrashed(iter->second.Duplicate()); ++ auto params = iter->second.Duplicate(); ++ params.set_exit_code(exit_code); ++ observer.OnServiceProcessCrashed(params); + } + processes_.erase(iter); + } +diff --git a/content/browser/service_host/service_process_tracker.h b/content/browser/service_host/service_process_tracker.h +index 8e2b330f59c714db9dac3363df566b6e396fa4ec..47b0b3a944dec09a229fe771813118bbe49b8e28 100644 +--- a/content/browser/service_host/service_process_tracker.h ++++ b/content/browser/service_host/service_process_tracker.h +@@ -34,7 +34,7 @@ class ServiceProcessTracker { + + void NotifyTerminated(ServiceProcessId id); + +- void NotifyCrashed(ServiceProcessId id); ++ void NotifyCrashed(ServiceProcessId id, int exit_code); + + void AddObserver(ServiceProcessHost::Observer* observer); + +diff --git a/content/browser/service_host/utility_process_client.cc b/content/browser/service_host/utility_process_client.cc +index 530d877ab671296ddd6dfd29a528018b3db1ad6f..a64c11f8838b9dc4704a57c96bd9aa8b98bce212 100644 +--- a/content/browser/service_host/utility_process_client.cc ++++ b/content/browser/service_host/utility_process_client.cc +@@ -40,7 +40,7 @@ void UtilityProcessClient::OnProcessTerminatedNormally() { + process_info_->service_process_id()); + } + +-void UtilityProcessClient::OnProcessCrashed() { ++void UtilityProcessClient::OnProcessCrashed(int exit_code) { + // TODO(crbug.com/40654042): It is unclear how we can observe + // |OnProcessCrashed()| without observing |OnProcessLaunched()| first, but + // it can happen on Android. Ignore the notification in this case. +@@ -48,6 +48,7 @@ void UtilityProcessClient::OnProcessCrashed() { + return; } -- void NotifyCrashed(ServiceProcessId id) { -+ void NotifyCrashed(ServiceProcessId id, int exit_code) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - auto iter = processes_.find(id); - CHECK(iter != processes_.end(), base::NotFatalUntil::M130); -- for (auto& observer : observers_) -- observer.OnServiceProcessCrashed(iter->second.Duplicate()); -+ for (auto& observer : observers_) { -+ auto params = iter->second.Duplicate(); -+ params.set_exit_code(exit_code); -+ observer.OnServiceProcessCrashed(params); -+ } - processes_.erase(iter); - } +- GetServiceProcessTracker().NotifyCrashed(process_info_->service_process_id()); ++ GetServiceProcessTracker().NotifyCrashed( ++ process_info_->service_process_id(), exit_code); + } + } // namespace content +diff --git a/content/browser/service_host/utility_process_client.h b/content/browser/service_host/utility_process_client.h +index 801db538979ba62facdcf3a472dade56723ca639..7abac9a5b13b393713534ae51664c2e5da3a4c29 100644 +--- a/content/browser/service_host/utility_process_client.h ++++ b/content/browser/service_host/utility_process_client.h +@@ -36,7 +36,7 @@ class UtilityProcessClient : public UtilityProcessHost::Client { -@@ -154,7 +157,7 @@ class UtilityProcessClient : public UtilityProcessHost::Client { - process_info_->service_process_id()); - } + void OnProcessTerminatedNormally() override; -- void OnProcessCrashed() override { -+ void OnProcessCrashed(int exit_code) override { - // TODO(crbug.com/40654042): It is unclear how we can observe - // |OnProcessCrashed()| without observing |OnProcessLaunched()| first, but - // it can happen on Android. Ignore the notification in this case. -@@ -162,7 +165,7 @@ class UtilityProcessClient : public UtilityProcessHost::Client { - return; - - GetServiceProcessTracker().NotifyCrashed( -- process_info_->service_process_id()); -+ process_info_->service_process_id(), exit_code); - } +- void OnProcessCrashed() override; ++ void OnProcessCrashed(int exit_code) override; private: -diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc -index 59319bf14d79c27ef48a37e7463dfb868e412e23..ff6f3ea26f0ccb741cd292bc417a47719de86487 100644 ---- a/content/browser/utility_process_host.cc -+++ b/content/browser/utility_process_host.cc -@@ -532,7 +532,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { + const std::string service_interface_name_; +diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc +index b7dfacb25a09b105e982c013119271b8f137e7b9..8c351bb09e5110a2c6692acc37e7187c43eec8ff 100644 +--- a/content/browser/service_host/utility_process_host.cc ++++ b/content/browser/service_host/utility_process_host.cc +@@ -539,7 +539,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { // Take ownership of |client_| so the destructor doesn't notify it of // termination. auto client = std::move(client_); @@ -64,10 +92,10 @@ index 59319bf14d79c27ef48a37e7463dfb868e412e23..ff6f3ea26f0ccb741cd292bc417a4771 } std::optional UtilityProcessHost::GetServiceName() { -diff --git a/content/browser/utility_process_host.h b/content/browser/utility_process_host.h -index 66cbabae31236758eef35bab211d4874f8a5c699..88515741fa08176ba9e952759c3a52e1ae2104d1 100644 ---- a/content/browser/utility_process_host.h -+++ b/content/browser/utility_process_host.h +diff --git a/content/browser/service_host/utility_process_host.h b/content/browser/service_host/utility_process_host.h +index ab6b64737245a840a3e2b06d2ab501ef4aaed7a2..9cf85b5fc97cf797965642d9bae5b3b0abf56e80 100644 +--- a/content/browser/service_host/utility_process_host.h ++++ b/content/browser/service_host/utility_process_host.h @@ -79,7 +79,7 @@ class CONTENT_EXPORT UtilityProcessHost virtual void OnProcessLaunched(const base::Process& process) {} diff --git a/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch b/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch index 1f0a076834bc..c82e141f93c5 100644 --- a/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch +++ b/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch @@ -20,7 +20,7 @@ This patch will be removed when the deprecated sync api support is removed. diff --git a/components/permissions/permission_util.cc b/components/permissions/permission_util.cc -index ce926b9da23df5dc9b36a447755c9251dac0c95b..97976ff9ce81bf4939a0f638f19be5691ceeab9d 100644 +index 20056b1464699cc7d45717bfc710366eb48d85f6..b227ed62991cdf285c3b90f19e09e3718e2800ea 100644 --- a/components/permissions/permission_util.cc +++ b/components/permissions/permission_util.cc @@ -384,6 +384,7 @@ ContentSettingsType PermissionUtil::PermissionTypeToContentSettingsTypeSafe( 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 b18383398673..0f9985e6f151 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 b98cb8525ca3a17bdabfb22bbf6fc19840cff247..9e7b805177b44a43aef1608f0e158721362dc7ad 100644 +index 8c4070309b4a1072496e3e55f6f530a52a799451..afd62da2e140da715d9be15eb5c93f0339f59145 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -11059,6 +11059,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { +@@ -11048,6 +11048,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { "blob"); } 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 092ac5e28f0a..0064b9f55d85 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 51522e60d6dc14f1113cc438558b6b393c3fe73a..153ed02f493a83ef9ca354cc18736f93 // 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 ab1dc94b4c98913c20a0862dabfa15e3f1879f60..037e3a33c6238b22c6f82ca3ec17b85f3aba3cd4 100644 +index f5013667355aea93bfb5a926375cb674198d7e2c..8c805aec2042d7c02ba0a28f544feb6d976a0775 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9729,7 +9729,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -9733,7 +9733,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( "WebContentsImpl::OnFocusedElementChangedInFrame", "render_frame_host", frame); RenderWidgetHostViewBase* root_view = diff --git a/patches/chromium/gin_enable_disable_v8_platform.patch b/patches/chromium/gin_enable_disable_v8_platform.patch index 4058c04f1865..28fd52520d64 100644 --- a/patches/chromium/gin_enable_disable_v8_platform.patch +++ b/patches/chromium/gin_enable_disable_v8_platform.patch @@ -41,10 +41,10 @@ index ff42cfbb6a228e902317c7e3ab035d8437d5dd62..e27f177ce27e177abf6cee84cd466e7a // Returns whether `Initialize` has already been invoked in the process. // Initialization is a one-way operation (i.e., this method cannot return diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index b6799720cad84282c5c4586adaf263689fd30bbb..59abc24988ab4d194461a3ca4f4b2bb68395bada 100644 +index 93b49420765273ac2d49822ee406c3495aff25d4..7f7ea9ea6dd9b5f3af436570661fa736f912132e 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc -@@ -547,7 +547,8 @@ void SetFeatureFlags() { +@@ -548,7 +548,8 @@ void SetFeatureFlags() { void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, const std::string& js_command_line_flags, bool disallow_v8_feature_flag_overrides, @@ -54,7 +54,7 @@ index b6799720cad84282c5c4586adaf263689fd30bbb..59abc24988ab4d194461a3ca4f4b2bb6 static bool v8_is_initialized = false; if (v8_is_initialized) return; -@@ -561,7 +562,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, +@@ -562,7 +563,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, } SetFlags(mode, js_command_line_flags); diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 371cfab85ac8..a675a5f2df0f 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,10 +6,10 @@ 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 b162935b2b83c06fd58ad955f0506e11ed6c73f7..dec7cb3653328bc94dafd21efda8e9098e1a2c5a 100644 +index 4d696890b52f95c29c5d0f47ce45ecf277a17e92..20d60e4ccaf97d4ef70dc7fcdaa431a16b4f0801 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1467,6 +1467,11 @@ +@@ -1472,6 +1472,11 @@ "<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": { "META": {"sizes": {"messages": [2000],}}, "messages": [10080], diff --git a/patches/chromium/load_v8_snapshot_in_browser_process.patch b/patches/chromium/load_v8_snapshot_in_browser_process.patch index 8a1b9e3dffeb..3df6a60b1c15 100644 --- a/patches/chromium/load_v8_snapshot_in_browser_process.patch +++ b/patches/chromium/load_v8_snapshot_in_browser_process.patch @@ -9,7 +9,7 @@ but due to the nature of electron, we need to load the v8 snapshot in the browser process. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index cefdfbba24ab6da7d12a94541c03b01a497e4036..68842f303c7ce77fedf8c7c0bc9824b52d0aac16 100644 +index 82e5123e35509d22493809a37e56be5e9bea4264..054f38d683280638c7ac618d2ff8f7aef1a0def0 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc @@ -292,11 +292,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { diff --git a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch index d77d8ee60fab..1e5a986e49d3 100644 --- a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch +++ b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch @@ -9,10 +9,10 @@ be created for each child process, despite logs being redirected to a file. diff --git a/content/app/content_main.cc b/content/app/content_main.cc -index 54dfbaa6df6939418acea2f539e899425f675f83..0304c4a009e53a2a5c457b432093656db5d8d946 100644 +index 7db566cf1492baabe15b8892692ace5a703a0814..82dea74c154d625978353d28577274d5198801ea 100644 --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -324,16 +324,14 @@ NO_STACK_PROTECTOR int RunContentProcess( +@@ -330,16 +330,14 @@ NO_STACK_PROTECTOR int RunContentProcess( #if BUILDFLAG(IS_WIN) base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 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 c4f76dfddfc3..c9095e6a8525 100644 --- a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch +++ b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch @@ -35,7 +35,7 @@ system font by checking if it's kCTFontPriorityAttribute is set to system priority. diff --git a/base/BUILD.gn b/base/BUILD.gn -index bd024dbc6fdbdf7116453f7d36a9f0795713ebb6..fad6b58f6c44c9bafce89a132bf0f86f8fa291a8 100644 +index f16a24f070ff6e004473a794e3189e078126584c..54d6573cd704261e65fd0e4c3673d0e60b492101 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -1031,6 +1031,7 @@ component("base") { @@ -449,7 +449,7 @@ index 2b50e3c3750c9ac6dd84a514663062a5d754b43e..49ced9aa87d3bcb00cd3d76ac32d4eec bool shouldShowWindowTitle = YES; if (_bridge) diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -index 36c522793dc37f7c72f7cccde50895927b5560cb..689351b5a6e6e6013b808c1b4924b8848dcc0fa2 100644 +index bcd3ea598687c5a85cddc862cdb16eab2d8dbd5d..2ed210685453409a2aa330bf718694f70a3d862d 100644 --- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm +++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm @@ -41,6 +41,7 @@ @@ -460,7 +460,7 @@ index 36c522793dc37f7c72f7cccde50895927b5560cb..689351b5a6e6e6013b808c1b4924b884 #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "net/cert/x509_util_apple.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" -@@ -665,10 +666,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -676,10 +677,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { // this should be treated as an error and caught early. CHECK(bridged_view_); @@ -579,7 +579,7 @@ index 08186f30eaa97caf18ac2fe47655526e7733d9df..e4cd1f436ad1734f357429cb3ad6c854 return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 6da224ff8aef4d9ede9fdfb84086fb798613aedb..634e4e79b090b3c88f4f60f7323a40c001435c32 100644 +index 9a868b490b76e06bea11c8042989ef597448ee5e..5e5f3ba7c011fdb7aa6ac0f752c52ce19fb75675 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn @@ -332,6 +332,7 @@ source_set("browser") { @@ -792,7 +792,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index b2bf9da029a9376376e2e7aecafd8b1ce7f169ed..85413670b3caf7f7aff4b6f1bc22b0149ea9b612 100644 +index 0418e7a1e0678b7a943281e7066677a6852960de..972fc355ea251de4758957c6c4b1e980591ec971 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -658,6 +658,7 @@ static_library("test_support") { @@ -1431,10 +1431,10 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228 } // namespace sandbox diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn -index 6ac98727ed852dc0a801dfbb997b5c87719cf57c..837b92ae18307772e12869a0a62bfa3067061418 100644 +index cae611cd83ef3a32a0d4f7474f407c6299d2bfa1..69ce20735646f577386f175b0223b43035b4b20a 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn -@@ -409,6 +409,7 @@ component("core") { +@@ -414,6 +414,7 @@ component("core") { "//ui/gfx/geometry", "//ui/gfx/geometry:geometry_skia", "//ui/strings", @@ -1898,10 +1898,10 @@ index fe3f85073e31de487a08e57d7f9b07aa4eccf8f3..cf5b07203c8bd559a404600cc98cc8ec // enough. return PlatformFontMac::SystemFontType::kGeneral; diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn -index c19f5affab933815b6848f4a8b17d3ae03cdb8b5..8436286778bf6f267de7c08887e4b44ff01fb434 100644 +index 0f9f25edf65eaee5191ac1f6b70bd43a25091578..e6cce5c607e437c8a9d0fe43eb472a125fdae0eb 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn -@@ -718,6 +718,8 @@ component("views") { +@@ -720,6 +720,8 @@ component("views") { "IOSurface.framework", "QuartzCore.framework", ] @@ -1910,7 +1910,7 @@ index c19f5affab933815b6848f4a8b17d3ae03cdb8b5..8436286778bf6f267de7c08887e4b44f } if (is_win) { -@@ -1140,6 +1142,8 @@ source_set("test_support") { +@@ -1142,6 +1144,8 @@ source_set("test_support") { "//ui/base/mojom:ui_base_types", ] 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 e5bdc33c9ed6..1c18d2def577 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,7 +10,7 @@ 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 e1cb61f400db73463d14e9ee65fed74ebed166a8..ed591b4ec83df0c7e0b590824370d898aacb23d8 100644 +index c89f503a3cf71efb8ed2d68a674c8fd0c6bcd8cb..be1c9ffae46048fef6bfbbac8e23ff5a19955acd 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc @@ -802,8 +802,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch( diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index faceb5241aff..c1d5347c3f5a 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 634e4e79b090b3c88f4f60f7323a40c001435c32..8b03cf5aadf255ba2d39790382ecea93d180b9f6 100644 +index 5e5f3ba7c011fdb7aa6ac0f752c52ce19fb75675..9dc336b7e6466b7f1084a1d4e9903363716a4432 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -3099,8 +3099,9 @@ source_set("browser") { +@@ -3103,8 +3103,9 @@ source_set("browser") { "//ppapi/shared_impl", ] diff --git a/patches/chromium/process_singleton.patch b/patches/chromium/process_singleton.patch index 4178809914c8..7662464816d5 100644 --- a/patches/chromium/process_singleton.patch +++ b/patches/chromium/process_singleton.patch @@ -51,7 +51,7 @@ index 23a8257aa2a0a671cf7af35aff9906891091606d..31f5b160e4cd755cfb56a62b04261ee1 base::win::MessageWindow window_; // The message-only window. bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment. diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index b7c45982e2c05874d60b21da96da6551f51155b1..0e036b178d8ea9bbe5564e8bbdb394b8a0d4cb3d 100644 +index e0cfeb40e887545830a3294d865c2df466dda8fe..08cbe32a258bf478f1da0a07064d3e9ef14c44a5 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc @@ -59,6 +59,7 @@ @@ -88,16 +88,15 @@ index b7c45982e2c05874d60b21da96da6551f51155b1..0e036b178d8ea9bbe5564e8bbdb394b8 // Ensure there is an instance of ResourceBundle that is initialized for // localized string resource accesses. ui::ScopedStartupResourceBundle ensure_startup_resource_bundle; -@@ -370,6 +374,8 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, - #endif - +@@ -370,6 +374,7 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, + #else NOTREACHED(); -+ return false; + #endif +#endif } bool IsChromeProcess(pid_t pid) { -@@ -382,6 +388,21 @@ bool IsChromeProcess(pid_t pid) { +@@ -382,6 +387,21 @@ bool IsChromeProcess(pid_t pid) { base::FilePath(chrome::kBrowserProcessExecutableName)); } @@ -119,7 +118,7 @@ index b7c45982e2c05874d60b21da96da6551f51155b1..0e036b178d8ea9bbe5564e8bbdb394b8 // A helper class to hold onto a socket. class ScopedSocket { public: -@@ -785,6 +806,10 @@ ProcessSingleton::~ProcessSingleton() { +@@ -785,6 +805,10 @@ ProcessSingleton::~ProcessSingleton() { if (watcher_) { watcher_->OnEminentProcessSingletonDestruction(); } @@ -130,7 +129,7 @@ index b7c45982e2c05874d60b21da96da6551f51155b1..0e036b178d8ea9bbe5564e8bbdb394b8 } ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { -@@ -1055,11 +1080,32 @@ bool ProcessSingleton::Create() { +@@ -1055,11 +1079,32 @@ bool ProcessSingleton::Create() { // Create the socket file somewhere in /tmp which is usually mounted as a // normal filesystem. Some network filesystems (notably AFS) are screwy and // do not support Unix domain sockets. 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 238972500eb0..1b32740e6dc0 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -44,7 +44,7 @@ index 99d7fe568cecce44b68dfb896f4d2560d75b5556..e420ccfd374e1a6be1ab1e1675258441 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 7200d6e7959c19cd461d894be3fb4c27caf0fb9c..9715736427fda7e0054ca45ba782b2326a8d01fe 100644 +index d5011ecc23eeae14f0f901867ee6e736014c5075..690d589eed3515113ad3c40506872f98c2c44bde 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -5780,6 +5780,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { @@ -60,10 +60,10 @@ index 7200d6e7959c19cd461d894be3fb4c27caf0fb9c..9715736427fda7e0054ca45ba782b232 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 1e3a3a2330a3d2f8ac318fb3ba293c49376eecf1..f855d0a22e2fb7cbe32133ae94e57e7333512575 100644 +index 6e5edbaa182a709df7ae89e4dc59c30efbb74acb..e611153fdf08cb297114b6385f3249b8c894be3a 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -1169,6 +1169,7 @@ class CONTENT_EXPORT WebContentsImpl +@@ -1170,6 +1170,7 @@ class CONTENT_EXPORT WebContentsImpl void SendScreenRects() override; void SendActiveState(bool active) override; TextInputManager* GetTextInputManager() override; diff --git a/patches/chromium/refactor_expose_file_system_access_blocklist.patch b/patches/chromium/refactor_expose_file_system_access_blocklist.patch index 51ffc4deb561..e56a6c907c91 100644 --- a/patches/chromium/refactor_expose_file_system_access_blocklist.patch +++ b/patches/chromium/refactor_expose_file_system_access_blocklist.patch @@ -8,7 +8,7 @@ it in Electron and prevent drift from Chrome's blocklist. We should look for a w to upstream this change to Chrome. diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -index 29b4d446653e95aedbefbb8f3c026a4bd84823de..8b4effa49e7aa9318e4eae122d3a48d32c93343d 100644 +index 7d5813ad07169f2f779846c4541101eac376aa4c..21e17ef542a89a9829ca4583da760fb6b1c59836 100644 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc @@ -45,7 +45,6 @@ diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index b5011c695a7c..54c707acac9e 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 b48b1e6e1c94abe5f64a7ac45194016ec27bd3b8..8dc2907a29b9fbc7c5972d44a48361b25757bf9b 100644 +index d5e8086df8b15f90acbea43f93706c2b9543a8ef..2843c16196d947072a2accbeb781f113eb9e9c1a 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9866,25 +9866,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -9870,25 +9870,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/web_contents.patch b/patches/chromium/web_contents.patch index c5208b38f2f5..b8df15a8491c 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,7 +9,7 @@ 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 5f72ddb8d428d72ea22b0bb37dfe74b3ee056a49..1f6e09dce73ca286cd95d19c3c5fab338d163e5e 100644 +index d96da1eb8143a5390bdfbf6fbba82c3f8150b211..6177749d337477a300bab93922cf958d3fee54ce 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -3852,6 +3852,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index 5430f9910963..7937bdedcd30 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 e1e674944993234358fd8892dbe0074bc4b67409..e1cb61f400db73463d14e9ee65fed74ebed166a8 100644 +index 9f05eec5ca501d941c9f39b830c32db2d2e4db32..c89f503a3cf71efb8ed2d68a674c8fd0c6bcd8cb 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -8724,6 +8724,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -8722,6 +8722,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,7 +37,7 @@ index e1e674944993234358fd8892dbe0074bc4b67409..e1cb61f400db73463d14e9ee65fed74e 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 1f6e09dce73ca286cd95d19c3c5fab338d163e5e..ab1dc94b4c98913c20a0862dabfa15e3f1879f60 100644 +index 6177749d337477a300bab93922cf958d3fee54ce..f5013667355aea93bfb5a926375cb674198d7e2c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4127,21 +4127,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( 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 1dfe05c7019a..836fd2642f2f 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,7 +10,7 @@ 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 1122bc10cd630f360debe53244647070c76d29b9..b3c704a2810eee191fbff9acacb56c6d8e39c864 100644 +index ab334c2440a468ab859952c408bdc2aa9387e705..d5627aaf1c53fb3332788b1c097ce47a89ba749d 100644 --- a/front_end/entrypoints/main/MainImpl.ts +++ b/front_end/entrypoints/main/MainImpl.ts @@ -788,6 +788,8 @@ export class MainImpl { diff --git a/patches/node/.patches b/patches/node/.patches index 161e3e08ef9c..6c598bd2a08e 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -42,3 +42,4 @@ build_remove_explicit_linker_call_to_libm_on_macos.patch build_change_crdtp_protocoltypetraits_signatures_to_avoid_conflict.patch test_make_eval_snapshot_tests_more_flexible.patch build_option_to_use_custom_inspector_protocol_path.patch +fix_adjust_wpt_and_webidl_tests_for_enabled_float16array.patch diff --git a/patches/node/fix_adjust_wpt_and_webidl_tests_for_enabled_float16array.patch b/patches/node/fix_adjust_wpt_and_webidl_tests_for_enabled_float16array.patch new file mode 100644 index 000000000000..c74ee3446605 --- /dev/null +++ b/patches/node/fix_adjust_wpt_and_webidl_tests_for_enabled_float16array.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shelley Vohr +Date: Tue, 25 Feb 2025 11:07:25 +0000 +Subject: fix: adjust WPT and WebIDL tests for enabled Float16Array + +Refs https://chromium-review.googlesource.com/c/chromium/src/+/6275531 + +This commit updates the WPT and WebIDL tests to account for the fact that +Float16Array is now enabled by default. This can be removed once +Node.js upgrades to a version of V8 that has Float16Array enabled by +default. + +diff --git a/test/common/globals.js b/test/common/globals.js +index 2c1dac019ba2aa0a23c2434997e2007dd2eacde8..152d9afa8f8ef6b76fceb0ac4481d1df719b872b 100644 +--- a/test/common/globals.js ++++ b/test/common/globals.js +@@ -35,6 +35,7 @@ const intrinsics = new Set([ + 'Int16Array', + 'Uint32Array', + 'Int32Array', ++ 'Float16Array', + 'Float32Array', + 'Float64Array', + 'Uint8ClampedArray', +diff --git a/test/wpt/status/encoding.json b/test/wpt/status/encoding.json +index f9378d7195a2a77eb89ae696ab26747fd8bf65b8..c258031e48556480d500a02925a8d9c29dfb2a18 100644 +--- a/test/wpt/status/encoding.json ++++ b/test/wpt/status/encoding.json +@@ -70,12 +70,6 @@ + "requires": ["full-icu"] + }, + "encodeInto.any.js": { +- "fail": { +- "expected": [ +- "Invalid encodeInto() destination: Float16Array, backed by: ArrayBuffer", +- "Invalid encodeInto() destination: Float16Array, backed by: SharedArrayBuffer" +- ] +- }, + "requires": ["small-icu"] + }, + "textdecoder-copy.any.js": {