diff --git a/DEPS b/DEPS index 017819f94afc0..390dd87ef2d4e 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '133.0.6878.0', + '133.0.6887.0', 'node_version': 'v22.9.0', 'nan_version': diff --git a/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch b/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch index 0dc89b13c349f..d1d5c19a423b9 100644 --- a/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch +++ b/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch @@ -20,10 +20,10 @@ index 7de8923518dbfb69fef62d7781f906b30cf62155..7a4310d6d8e85f07f0ae6c97726d909c case ssl_open_record_error: diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc -index 82870cda0593bdfa7434154bb7dfd5e1b00f6c4f..d3ad8a596b832af328d5e6bfeb5f36590574cc94 100644 +index d601695f51322f3ccecfd31b623eabf8440fceaa..0eb0e88c495d6934345e067298305041ee3d9a8b 100644 --- a/ssl/ssl_lib.cc +++ b/ssl/ssl_lib.cc -@@ -1319,7 +1319,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) { +@@ -1323,7 +1323,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) { } if (ret_code == 0) { @@ -32,7 +32,7 @@ index 82870cda0593bdfa7434154bb7dfd5e1b00f6c4f..d3ad8a596b832af328d5e6bfeb5f3659 return SSL_ERROR_ZERO_RETURN; } // An EOF was observed which violates the protocol, and the underlying -@@ -2686,13 +2686,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) { +@@ -2690,13 +2690,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) { return CRYPTO_get_ex_data(&ctx->ex_data, idx); } diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 581d2d518cd62..a30e9a021ca6f 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -136,3 +136,4 @@ fix_software_compositing_infinite_loop.patch refactor_unfilter_unresponsive_events.patch build_disable_thin_lto_mac.patch build_add_public_config_simdutf_config.patch +reland_set_app_container_acls_reliably_on_out_directory.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index e85a98a9b06b3..798eaa3a90236 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,7 +23,7 @@ index ad0092ef2e13853e4bb8b923481559a043b00ab7..1c2dfd23f18733e21312992877ae1499 int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 1412679cc093a678f19c2f60a633d9650efc27bb..c5ea7eefbbd1a68a613971208d961940af77a3a0 100644 +index 4bf834dc836e4238a98c5f9db216b0054ed7add1..fd2505d9e0608b1c2258e6596b1817835c37b36e 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -4793,6 +4793,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, diff --git a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch index 1cd79d2fff51f..a9296ef1b32e0 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -116,7 +116,7 @@ index 083af135d890c2837e72c314e170e81931bd2a20..5245ea88441ef84c15b8052a9011ce70 // Visibility ----------------------------------------------------------- diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 27fd589b2ea53ba9c65ca87c9ca0eb4362d0c735..ff69256c5ac5323ce1b94533af4dec785bca78bd 100644 +index c1aebbc3db3e22e7e9391cb0eb2654a28a2052f4..77f2b8a03f92062fc9c07b04adb22d421127b73a 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -2468,6 +2468,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( @@ -155,7 +155,7 @@ index 27fd589b2ea53ba9c65ca87c9ca0eb4362d0c735..ff69256c5ac5323ce1b94533af4dec78 // Do not throttle if the page should be painting. bool is_visible = diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h -index c6059d2d02e295e8b4547a6fdaccf9381c7a77c2..738d51aa13e3a2cf2656a1bc613eda75c7ff1fca 100644 +index 4f77ef1379390973fa912640a33a5033dc8db68f..12d4932d82df824e459a8a90b6f24222172618df 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h @@ -448,6 +448,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index 80f3304acc9b5..f79790a7e2320 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,7 +49,7 @@ index 7e564e9970ef5abf51a212130a8cfb3ec590c5ff..af48a64ae405ffe7d89c8bc074f614ef // its owning reference back to our owning LocalFrame. client_->Detached(type); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index 7050a0229f064b3ec116ddd9d801655b025ab911..18bd846599b09ce040de377b6ff5e80b249928e8 100644 +index 0b2043673b01c7b47d85895e6133d1b73d941cad..91d67a69cddcb7ae4425b893f625e40975e665cc 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -746,10 +746,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { 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 33a85abaaa219..9292535a6b27e 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 3ea31014540b5679880a00e1a3ae8674b8858348..d8b18d03446b6aecad22ab778f6b512c "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index b25189748cf13c05bfcffd1063a651de5334bf88..557ff484615283fb6a9e76e495501e58671a9cf5 100644 +index 0e22dc99e59133363b5d56dc6fba9f603a6d9c67..59162df964cf90225010591a722ed8bd0e8269c6 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4512,7 +4512,7 @@ static_library("browser") { +@@ -4516,7 +4516,7 @@ static_library("browser") { ] } @@ -46,10 +46,10 @@ index b25189748cf13c05bfcffd1063a651de5334bf88..557ff484615283fb6a9e76e495501e58 # than here in :chrome_dll. deps += [ "//chrome:packed_resources_integrity_header" ] diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 664601c3d14489d7b26090bba3c80d0b82e0372e..9299397d15a0af9c57a48d7dcf730d6b5851e8e0 100644 +index 50bbabb107314333070aabaf78ca79e5f8fa801f..4e2255f209d6523359cb626f361742e70285b2ae 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6888,9 +6888,12 @@ test("unit_tests") { +@@ -6887,9 +6887,12 @@ test("unit_tests") { "//chrome/notification_helper", ] @@ -63,7 +63,7 @@ index 664601c3d14489d7b26090bba3c80d0b82e0372e..9299397d15a0af9c57a48d7dcf730d6b "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/app:win_unit_tests", -@@ -7828,6 +7831,10 @@ test("unit_tests") { +@@ -7823,6 +7826,10 @@ test("unit_tests") { "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", ] @@ -74,7 +74,7 @@ index 664601c3d14489d7b26090bba3c80d0b82e0372e..9299397d15a0af9c57a48d7dcf730d6b sources += [ # The importer code is not used on Android. "../common/importer/firefox_importer_utils_unittest.cc", -@@ -7880,7 +7887,6 @@ test("unit_tests") { +@@ -7875,7 +7882,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 6409f79e159de..098c7303dfb25 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 2bbcfef90f53cc92e248eee2e3fa1cd9f479b5ee..cef9a8b5029ca357b9447f764864c6b77af538f0 100644 +index 62105d810472187a8ddb71e57873d5084e7921a7..7b91ba71aadbf44ba76dd38ea2ca69ef16e48dc8 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9157,6 +9157,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -9137,6 +9137,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 2bbcfef90f53cc92e248eee2e3fa1cd9f479b5ee..cef9a8b5029ca357b9447f764864c6b7 &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 4fe69ec3fa5507285dfd91619d65ca712383f4d2..e5e9771863573c0826111a724a1c38566ed3655e 100644 +index c87953ecbdbc1226134ae51bcb8acf3e627b6ca9..b056a3dad69316b919c058458ee9de3ad4a88147 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4923,6 +4923,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -66,10 +66,10 @@ index 8e571dc1371cf2aa7c8354f0b4e492e0d030b485..c878169e7838849cbc23df2ed94ca65d // 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 a2ceb54e4f39c1a28890f2b3593fe47608623910..b3d70e0201caa266a8e692d501e3977e39e2fb16 100644 +index ff59226e8f953cd7cc5e9c95250187836d64764b..5338c3a292ff3c34ab33a64341b17d0c9948f7e7 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -789,6 +789,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -794,6 +794,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -79,10 +79,10 @@ index a2ceb54e4f39c1a28890f2b3593fe47608623910..b3d70e0201caa266a8e692d501e3977e 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 715e05418b01cbed51248cec77901b885ab3df7d..9b0f873353c957842f42284250a21a635b11f3cc 100644 +index 800f3314ecbdb8fe9d5ef8320ef952a3bcdf05d1..f2f7571b76542bd4c0d44750639e36b191cd5bd7 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -200,6 +200,7 @@ class NetworkService; +@@ -202,6 +202,7 @@ class NetworkService; class TrustedURLLoaderHeaderClient; } // namespace mojom struct ResourceRequest; @@ -90,7 +90,7 @@ index 715e05418b01cbed51248cec77901b885ab3df7d..9b0f873353c957842f42284250a21a63 } // namespace network namespace sandbox { -@@ -1354,6 +1355,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1356,6 +1357,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -148,10 +148,10 @@ index c0be779a4c1d89426c30261aff72ea55be900087..7413c1bef86f5e4633db7220c5de4de7 // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index c9d6e7acd432682381a1131e05a3758589967f69..1412679cc093a678f19c2f60a633d9650efc27bb 100644 +index 5c4be625e42065c99e327ee6b60ee241eff75ac0..4bf834dc836e4238a98c5f9db216b0054ed7add1 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -6846,6 +6846,10 @@ WebView* RenderFrameImpl::CreateNewWindow( +@@ -6862,6 +6862,10 @@ WebView* RenderFrameImpl::CreateNewWindow( request.HasUserGesture(), GetWebFrame()->IsAdFrame(), GetWebFrame()->IsAdScriptInStack()); diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index 10a778f93fcae..c6acf3d7eecf2 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 242054584563ad8d6a6117556998dc8b43cac1dd..7f42a4609ce1d1da017591f4f10eb1685e7ea67b 100644 +index e878d103eb79cbb67878e7c6da369d355b45ac40..e49fd4b3278b4a25af30ecc522794847440d4c50 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4849,9 +4849,6 @@ 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 2790777825231..230f7492d5df6 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -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 70cb6b43f214c7f5210e99edc930428520f02b7c..9b9edea9eb076f29dd8349ee784e9b2c1ab5a71c 100644 +index 0b70b695a4d3990842f9c5909ef485b540d9be58..f0d92a18c0cdefd437086695e122c81ca9293ce5 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4818,8 +4818,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 4a22fa951a544..a65b4ec99ddc3 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 b1493e3a01b821fa4b9d803b24678728855df559..3191fc7cf201b59abfcf87cd796752423f9a3c00 100644 +index 74f2e51c7fa802e7afb30f4de8489efd7f081709..9af5efcacb38453d3f92a3c2d9a42ad8817ef6d5 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -789,6 +789,10 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -793,6 +793,10 @@ void RenderWidgetHostImpl::WasHidden() { return; } @@ -21,10 +21,10 @@ index b1493e3a01b821fa4b9d803b24678728855df559..3191fc7cf201b59abfcf87cd79675242 // Prompts should remain open and functional across tab switches. if (!delegate_->IsWaitingForPointerLockPrompt(this)) { diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index 882f245e04a3a45aaff54eac149eded07a892500..9388eb5a06b72cbd77f28c4212cbaf3c0e017e1f 100644 +index ddfae2b85cb8823eeba88050d5378bfbbe133ab3..fa0a2cfe2cfeceab692bfe9d94d80192115dd8f8 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h -@@ -1023,6 +1023,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl +@@ -1024,6 +1024,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl // Requests a commit and forced redraw in the renderer compositor. void ForceRedrawForTesting(); diff --git a/patches/chromium/disable_unload_metrics.patch b/patches/chromium/disable_unload_metrics.patch index a87a360d8de7d..149483c9c6a6b 100644 --- a/patches/chromium/disable_unload_metrics.patch +++ b/patches/chromium/disable_unload_metrics.patch @@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we should continue seeking for a real fix. diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc -index a0b2b43187e02321632a36fe9b388d903789603f..22962fe80da0550b2458289df3ad3eedb28e5709 100644 +index 1dc14ea5d899cc17756911820ede80a4fa22df1d..f6160979def6f553e0e601e14830c498f05e52b1 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc -@@ -1433,6 +1433,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1448,6 +1448,7 @@ void Navigator::RecordNavigationMetrics( .InMilliseconds()); } @@ -35,7 +35,7 @@ index a0b2b43187e02321632a36fe9b388d903789603f..22962fe80da0550b2458289df3ad3eed // If this is a same-process navigation and we have timestamps for unload // durations, fill those metrics out as well. if (params.unload_start && params.unload_end && -@@ -1482,6 +1483,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1497,6 +1498,7 @@ void Navigator::RecordNavigationMetrics( first_before_unload_start_time) .InMilliseconds()); } diff --git a/patches/chromium/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index 36ecbdb4ea2f0..ff7efed4b3103 100644 --- a/patches/chromium/extend_apply_webpreferences.patch +++ b/patches/chromium/extend_apply_webpreferences.patch @@ -12,7 +12,7 @@ Ideally we could add an embedder observer pattern here but that can be done in future work. diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index ff69256c5ac5323ce1b94533af4dec785bca78bd..3b2e9a5946d7c4407d453ee8012291885592f6e9 100644 +index 77f2b8a03f92062fc9c07b04adb22d421127b73a..ed07b4cee033ced8eee6aca4472cd1e2599e1956 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -169,6 +169,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 a5980f35fd4a4..4cf627860c58d 100644 --- a/patches/chromium/feat_configure_launch_options_for_service_process.patch +++ b/patches/chromium/feat_configure_launch_options_for_service_process.patch @@ -706,10 +706,10 @@ index b67f4f87d588386409a90cd49e8338272c6e0d51..c34a80ec8db1b868a7f387ea4a11d71d #if BUILDFLAG(IS_MAC) // Whether or not to disclaim TCC responsibility for the process, defaults to diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc -index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290c6ab34a1 100644 +index 617103850407d1affa2649a79f92aa26213f5496..8a029328e972262045f4069fb2edb67e20867d71 100644 --- a/sandbox/policy/win/sandbox_win.cc +++ b/sandbox/policy/win/sandbox_win.cc -@@ -608,11 +608,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() { +@@ -594,11 +594,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() { // command line flag. ResultCode LaunchWithoutSandbox( const base::CommandLine& cmd_line, @@ -722,7 +722,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 // Network process runs in a job even when unsandboxed. This is to ensure it // does not outlive the browser, which could happen if there is a lot of I/O // on process shutdown, in which case TerminateProcess can fail. See -@@ -907,7 +905,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) { +@@ -890,7 +888,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) { // static ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( const base::CommandLine& cmd_line, @@ -731,7 +731,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 SandboxDelegate* delegate, TargetPolicy* policy) { const base::CommandLine& launcher_process_command_line = -@@ -921,7 +919,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -904,7 +902,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( } // Add any handles to be inherited to the policy. @@ -740,7 +740,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 policy->AddHandleToShare(handle); if (!policy->GetConfig()->IsConfigured()) { -@@ -936,6 +934,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -919,6 +917,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( // have no effect. These calls can fail with SBOX_ERROR_BAD_PARAMS. policy->SetStdoutHandle(GetStdHandle(STD_OUTPUT_HANDLE)); policy->SetStderrHandle(GetStdHandle(STD_ERROR_HANDLE)); @@ -754,7 +754,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 #endif if (!delegate->PreSpawnTarget(policy)) -@@ -947,7 +952,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -930,7 +935,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( // static ResultCode SandboxWin::StartSandboxedProcess( const base::CommandLine& cmd_line, @@ -763,7 +763,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 SandboxDelegate* delegate, StartSandboxedProcessCallback result_callback) { SandboxLaunchTimer timer; -@@ -957,7 +962,7 @@ ResultCode SandboxWin::StartSandboxedProcess( +@@ -940,7 +945,7 @@ ResultCode SandboxWin::StartSandboxedProcess( *base::CommandLine::ForCurrentProcess())) { base::Process process; ResultCode result = @@ -772,7 +772,7 @@ index 875cade81e6c0c33af043cea6ad0b93fd0e90cdb..20081605a724b52e89a03858b6b6e290 DWORD last_error = GetLastError(); std::move(result_callback).Run(std::move(process), last_error, result); return SBOX_ALL_OK; -@@ -967,7 +972,7 @@ ResultCode SandboxWin::StartSandboxedProcess( +@@ -950,7 +955,7 @@ ResultCode SandboxWin::StartSandboxedProcess( timer.OnPolicyCreated(); ResultCode result = GeneratePolicyForSandboxedProcess( diff --git a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch index 893bbdf8f22a1..5c46ef1f5c3c0 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -521,10 +521,10 @@ index 796ae2688436eb07f19909641d1620dd02f10cdb..c9e0eee0b329caf46669b419b1cd10cf waiting_on_draw_ack_ = true; diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc -index 5e127e0652230081b60205691117c71ab56440d5..0b0449e21987e3d90b15b232eb1d26b45c4debfa 100644 +index 977161762c67e126e182c24c5e8e7a3e7523dacb..1773488b3b5fce5e1c99f484988620edd8da9034 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc -@@ -101,7 +101,8 @@ RootCompositorFrameSinkImpl::Create( +@@ -111,7 +111,8 @@ RootCompositorFrameSinkImpl::Create( params->gpu_compositing, params->widget); auto output_surface = output_surface_provider->CreateOutputSurface( params->widget, params->gpu_compositing, display_client.get(), diff --git a/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch b/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch index 13ece77e60441..81ea6150f5371 100644 --- a/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch +++ b/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch @@ -28,10 +28,10 @@ index 23b29fe25bc463ff1d36aa502a27c4222595e7c5..c1ac6172c4cee72f64f42ca64d2db9c0 // Returns the http referrer of original request which initited this load. diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h -index abe9239b5863c0cac7623d121580de1f61e83232..3cd9fe38ca4017064d2e17a7d083a8bebbfab34c 100644 +index 92ab7845b6e3f060de76fa023ec472c056e69d4b..aafd123ccd8faf630dffa304ec7825088155a15b 100644 --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h -@@ -325,7 +325,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -326,7 +326,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, std::optional soft_navigation_heuristics_task_id); diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch index 76eaec3da9e30..324eb8648baa2 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -112,10 +112,10 @@ index 5c4b8a05034f8defacbc13671fe9bc92f76ade5a..e7390e01f113755613f42d592b36108b string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index c0be8ab2e57fbaf87e2761a290ec4179606d4aa9..e8ac75b21deb02c9b96aec8dda77d715394fcca8 100644 +index e73516e9f8716d2865ae6606a26fdd47f2aba00d..c6fa2051124fd3d11ab04fe5f2c35033fcf09f56 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -613,6 +613,9 @@ URLLoader::URLLoader( +@@ -634,6 +634,9 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, base::SequencedTaskRunner::GetCurrentDefault()), per_factory_orb_state_(context.GetMutableOrbState()), @@ -125,7 +125,7 @@ index c0be8ab2e57fbaf87e2761a290ec4179606d4aa9..e8ac75b21deb02c9b96aec8dda77d715 devtools_request_id_(request.devtools_request_id), request_mode_(request.mode), request_credentials_mode_(request.credentials_mode), -@@ -892,7 +895,7 @@ void URLLoader::ConfigureRequest( +@@ -913,7 +916,7 @@ void URLLoader::ConfigureRequest( &URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this))); } @@ -134,7 +134,7 @@ index c0be8ab2e57fbaf87e2761a290ec4179606d4aa9..e8ac75b21deb02c9b96aec8dda77d715 url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1887,6 +1890,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1923,6 +1926,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); diff --git a/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch b/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch index 5a118eee7a684..9294c2abc2c19 100644 --- a/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch +++ b/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch @@ -16,7 +16,7 @@ Linux or Windows to un-fullscreen in some circumstances without this change. diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc -index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f599694295928f03f 100644 +index 9e6611a53f8430f86ba4e6439e9a21446ce3332e..7d85ea70870c5064f6c0a6abd3ef091a0da75dd0 100644 --- a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc +++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc @@ -20,12 +20,16 @@ @@ -77,7 +77,7 @@ index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f59969429 } void FullscreenController::RunOrDeferUntilTransitionIsComplete( -@@ -585,18 +595,17 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -590,18 +600,17 @@ void FullscreenController::EnterFullscreenModeInternal( // Do not enter fullscreen mode if disallowed by pref. This prevents the user // from manually entering fullscreen mode and also disables kiosk mode on // desktop platforms. @@ -101,7 +101,7 @@ index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f59969429 if (option == TAB) { url = GetRequestingOrigin(); tab_fullscreen_ = true; -@@ -629,6 +638,7 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -634,6 +643,7 @@ void FullscreenController::EnterFullscreenModeInternal( if (!extension_caused_fullscreen_.is_empty()) url = extension_caused_fullscreen_; } @@ -109,7 +109,7 @@ index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f59969429 fullscreen_start_time_ = base::TimeTicks::Now(); if (option == BROWSER) -@@ -649,6 +659,7 @@ void FullscreenController::ExitFullscreenModeInternal() { +@@ -654,6 +664,7 @@ void FullscreenController::ExitFullscreenModeInternal() { return; } @@ -117,7 +117,7 @@ index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f59969429 // `fullscreen_start_time_` is null if a fullscreen tab moves to a new window. if (fullscreen_start_time_ && exclusive_access_tab()) { ukm::SourceId source_id = -@@ -660,15 +671,16 @@ void FullscreenController::ExitFullscreenModeInternal() { +@@ -665,15 +676,16 @@ void FullscreenController::ExitFullscreenModeInternal() { .Record(ukm::UkmRecorder::Get()); fullscreen_start_time_.reset(); } @@ -137,7 +137,7 @@ index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f59969429 exclusive_access_manager()->context()->ExitFullscreen(); extension_caused_fullscreen_ = GURL(); exclusive_access_manager()->UpdateBubble(base::NullCallback()); -@@ -730,8 +742,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const { +@@ -735,8 +747,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const { void FullscreenController::RecordMetricsOnFullscreenApiRequested( content::RenderFrameHost* requesting_frame) { history::HistoryService* service = 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 7ce4333c5d2b7..dc9e1dd09fd6b 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 @@ -9,7 +9,7 @@ ChildProcessSecurityPolicyImpl::CanAccessDataForOrigin contains explicit exceptions to allow built-in non-standard schemes, but does not check for non-standard schemes registered by the embedder. -This patch adjusts the origin calculation for non-standard schemes in +This patch adjusts the origin calculation for subframe non-standard schemes in - browser process at `NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo` - render process at `DocumentLoader::CalculateOrigin` @@ -18,19 +18,24 @@ as `null` without any derivation. It is only in cases where there is a `initiato then the origin is derived from it, which is usually the case for renderer initiated navigations and iframes are no exceptions from this rule. -Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397. +The patch should be removed in favor of either: + - Remove support for non-standard custom schemes + - Register non-standard custom schemes as websafe schemes and update + CPSPI::CanAccessDataForOrigin to allow them for any navigation. + - Update the callsite to use RFHI::CanCommitOriginAndUrl in upstream, previous + effort to do this can be found at https://chromium-review.googlesource.com/c/chromium/src/+/3856266. -Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/3856266. +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 8153ca434b396423ee36af27e8600be43e095c0f..8c1c72d7f3d4abef48bd0d3e632f427dec3ed88d 100644 +index e919dcd7acf870e39709d7ac5afd356a8a2b94fa..ceed8afc60dd3d38ca722b79b93c6b1c1ee7fb76 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -10830,6 +10830,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { +@@ -10867,6 +10867,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { "blob"); } -+ if (!common_params().url.IsStandard()) { ++ if (!IsInMainFrame() && !common_params().url.IsStandard()) { + return std::make_pair(url::Origin::Resolve(common_params().url, + url::Origin()), + "url_non_standard"); @@ -40,10 +45,10 @@ index 8153ca434b396423ee36af27e8600be43e095c0f..8c1c72d7f3d4abef48bd0d3e632f427d // origin of |common_params.url| and/or |common_params.initiator_origin|. url::Origin resolved_origin = url::Origin::Resolve( diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc -index fb11dcea26684440b7b08fe5ca4da619ac4ccb5c..bd3591e3d6f1ee66c31897cdfd1994510a8ebe52 100644 +index ccc8243d90000c8da65486a00c4800ede3de66fe..8355f72ec1e2d3a50c21761e764ad6c0233a3b81 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2308,6 +2308,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() { +@@ -2309,6 +2309,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() { scoped_refptr DocumentLoader::CalculateOrigin( Document* owner_document) { scoped_refptr origin; @@ -54,7 +59,7 @@ index fb11dcea26684440b7b08fe5ca4da619ac4ccb5c..bd3591e3d6f1ee66c31897cdfd199451 StringBuilder debug_info_builder; // Whether the origin is newly created within this call, instead of copied // from an existing document's origin or from `origin_to_commit_`. If this is -@@ -2361,6 +2365,10 @@ scoped_refptr DocumentLoader::CalculateOrigin( +@@ -2362,6 +2366,10 @@ scoped_refptr DocumentLoader::CalculateOrigin( // the end of this function. origin = origin_to_commit_; debug_info_builder.Append("use_origin_to_commit"); 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 4b8518573852a..51e112db3cb7f 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 3b2cb5075d3596b0fd71e898aeeac3b9ef3d1e65..242054584563ad8d6a6117556998dc8b43cac1dd 100644 +index 750a5c74404d7d96e65fce1d91d1e38d8621c1f2..e878d103eb79cbb67878e7c6da369d355b45ac40 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9508,7 +9508,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -9501,7 +9501,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 2b17280ce540e..aa01b90766bfa 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 4d89c3bf11f453f72489bb9b2531b51493792dce..6a1b01713fc94f47695e9e1a2874ced08bdfef0b 100644 +index c877e1aff3216aaf881e35e704745be442c5ca69..9ac652e9b232fe2b2122da5db113bf67274c959b 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2048,9 +2048,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { +@@ -2052,9 +2052,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/fix_return_v8_value_from_localframe_requestexecutescript.patch b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch index 5cf9b1935bb56..420ac78a51785 100644 --- a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch +++ b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch @@ -64,10 +64,10 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..7a985067b1371604644d48159f2f5aa7 #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index 18bd846599b09ce040de377b6ff5e80b249928e8..db003ba0be169e9db06e89c5166724343770305f 100644 +index 91d67a69cddcb7ae4425b893f625e40975e665cc..712f72bddbd7bae782b468659bc7e2b022f04281 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3133,6 +3133,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3134,6 +3134,7 @@ void LocalFrame::RequestExecuteScript( mojom::blink::EvaluationTiming evaluation_timing, mojom::blink::LoadEventBlockingOption blocking_option, WebScriptExecutionCallback callback, @@ -75,7 +75,7 @@ index 18bd846599b09ce040de377b6ff5e80b249928e8..db003ba0be169e9db06e89c516672434 BackForwardCacheAware back_forward_cache_aware, mojom::blink::WantResultOption want_result_option, mojom::blink::PromiseResultOption promise_behavior) { -@@ -3165,7 +3166,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3166,7 +3167,7 @@ void LocalFrame::RequestExecuteScript( PausableScriptExecutor::CreateAndRun( script_state, std::move(script_sources), execute_script_policy, user_gesture, evaluation_timing, blocking_option, want_result_option, diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index d9e67fe7383bf..5e6a29b266263 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -20,10 +20,10 @@ index a0da3098c6391a9b07f40275cb09fb351fde9f7f..d5846a800b9a9097a6fa7cd097646ef3 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 9b0f873353c957842f42284250a21a635b11f3cc..2f469dc53342d2ad7ec57fd33b4c70854c820c73 100644 +index f2f7571b76542bd4c0d44750639e36b191cd5bd7..44309e7bad6a23a3ceb28e3acf974edcf1b1a51d 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -341,6 +341,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -343,6 +343,11 @@ class CONTENT_EXPORT ContentBrowserClient { virtual ~ContentBrowserClient() = default; diff --git a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch index 72adce744046b..1ac53633bbc33 100644 --- a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch +++ b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch @@ -9,10 +9,10 @@ at rutime. It would be best if eventually all usages of this property were replaced with clean ozone native implementations. diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc -index bc8ac7431f25d1fd6f026f8049d589cba01fa6fd..1bb0c95acf2df61975b1cc6423eb8514bb3488e4 100644 +index ec79b3c8e3e434987f2f08d95c8567982a0c4368..d5e5f81b8c6ccae1822e8192b107eeff2d3a6dd9 100644 --- a/ui/ozone/platform/x11/ozone_platform_x11.cc +++ b/ui/ozone/platform/x11/ozone_platform_x11.cc -@@ -192,6 +192,7 @@ class OzonePlatformX11 : public OzonePlatform, +@@ -193,6 +193,7 @@ class OzonePlatformX11 : public OzonePlatform, base::MessagePumpType::UI; properties->supports_vulkan_swap_chain = true; properties->skia_can_fall_back_to_x11 = true; 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 6a577a17ea583..1bc00f19c83c5 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 4d2d2e88d37e95a2b8ac0c1e0d7d1b0c1e8ad417..58a4b86746a345eeeca66969aec39791fb2d1a8c 100644 +index 123b5d982c3bca4ebd22b5e0e17b9d903969d7e1..0cacd08e17f8ab8c0e4951bcc4645cd7a3d2fea8 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -1027,6 +1027,7 @@ component("base") { @@ -560,10 +560,10 @@ index faddee802d6538c092ba96914184663ee57751c8..49238975848d58cd30727ec818bbac52 return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 00ac46d858b7f83e53b1817028baba13719f04fe..31c9a53d5c7f09a7326ef57753b4a49f0239a7f8 100644 +index f22893989f09e40a8eb6a3df1d48d5438426c727..1212cd37acff7847ec4a7d3fb841426d5a77576d 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -327,6 +327,7 @@ source_set("browser") { +@@ -328,6 +328,7 @@ source_set("browser") { "//ui/strings:ax_strings", "//ui/touch_selection", "//v8:v8_version", @@ -773,7 +773,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index 4f0153bf27764fce04a56d2bce8f8e7a012d78f5..17955a2806d741905bc9507ea6d39fd012162d12 100644 +index 817e8ecdc6b15177d4cfa5cf44ad5fb1a5346393..106977501728d3216ec6f0a47005bc86c156f605 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -643,6 +643,7 @@ static_library("test_support") { @@ -800,7 +800,7 @@ index 4f0153bf27764fce04a56d2bce8f8e7a012d78f5..17955a2806d741905bc9507ea6d39fd0 ] if (!(is_chromeos_ash && target_cpu == "arm64" && current_cpu == "arm")) { -@@ -3244,6 +3247,7 @@ test("content_unittests") { +@@ -3245,6 +3248,7 @@ test("content_unittests") { "//ui/latency:test_support", "//ui/shell_dialogs:shell_dialogs", "//ui/webui:test_support", @@ -1373,7 +1373,7 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228 } // namespace sandbox diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn -index 679005c0d241207646a7aabad5ce896bc5c56558..39547524d6e77954c949d4ac05bec1f9596162fd 100644 +index 407169fd5aab525cb249890d49a23ac301ab61d8..19ca594bf376344bcf27a17dab276271379a30e5 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn @@ -409,6 +409,7 @@ component("core") { diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index ef8e7f60fb35b..b356b77035e85 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -133,10 +133,10 @@ index 05d3a12dd84c7005d46cc73b312f97ef418d96f5..4765de982802541b3efc7211d106acc7 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 93fb45230ddedddf68bb879ab8dbddce2740ed22..302c4cbed8b158257b7dfde14f591ad6bc971641 100644 +index fa95a56e761c7c0a1bf400392579e1c3f01d48d1..167462f298cafe0400d8326881c61e95ad1769d5 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2113,7 +2113,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2116,7 +2116,7 @@ void RenderProcessHostImpl::CreateNotificationService( case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker: case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: { storage_partition_impl_->GetPlatformNotificationContext()->CreateService( @@ -145,7 +145,7 @@ index 93fb45230ddedddf68bb879ab8dbddce2740ed22..302c4cbed8b158257b7dfde14f591ad6 creator_type, std::move(receiver)); break; } -@@ -2121,7 +2121,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2124,7 +2124,7 @@ void RenderProcessHostImpl::CreateNotificationService( CHECK(rfh); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch b/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch index 645f7839b04cd..5203b449f9ceb 100644 --- a/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch +++ b/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch @@ -36,7 +36,7 @@ index a7742298af440bf9f6bcfceb7a07a90f19ae8283..9d59397f2bed400e5131691778965ec1 Microsoft::WRL::ComPtr d3d11_texture; diff --git a/media/video/renderable_gpu_memory_buffer_video_frame_pool.cc b/media/video/renderable_gpu_memory_buffer_video_frame_pool.cc -index b27bcf13d3a5f7c8e85a677766718f4362467022..df1b2d697f7cce028d0d6d86190b3218b8f662a5 100644 +index 55756afa319d890d0776de40c0c747cccfcecf83..6291e6fad5dbcfebca4263147bed0cc85274d52f 100644 --- a/media/video/renderable_gpu_memory_buffer_video_frame_pool.cc +++ b/media/video/renderable_gpu_memory_buffer_video_frame_pool.cc @@ -193,7 +193,7 @@ gfx::Size GetBufferSizeInPixelsForVideoPixelFormat( @@ -75,9 +75,9 @@ index b27bcf13d3a5f7c8e85a677766718f4362467022..df1b2d697f7cce028d0d6d86190b3218 @@ -231,7 +248,7 @@ bool FrameResources::Initialize() { viz::GetSharedImageFormat(buffer_format); - shared_image_ = context->CreateSharedImage( -- buffer_size_in_pixels, kBufferUsage, si_format, color_space_, -+ buffer_size_in_pixels, buffer_usage, si_format, color_space_, - kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, kSharedImageUsage, - sync_token_); + shared_image_ = +- context->CreateSharedImage(buffer_size_in_pixels, kBufferUsage, si_format, ++ context->CreateSharedImage(buffer_size_in_pixels, buffer_usage, si_format, + color_space_, kSharedImageUsage, sync_token_); if (!shared_image_) { + DLOG(ERROR) << "Failed to allocate shared image for frame: coded_size=" 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 2a3f2fa61b92b..600a31cfe7a4e 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 5394c89af750a7de2ec9b7762abbc43f6483d737..ffc85d4198cfb2427aaa699a9551fe29a335bb77 100644 +index 90ed344e4714ea2f98feab48824e8273ea51d048..e9d0fb7ee9a2dc0241926e6d82bae8d6c11fc4d3 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc @@ -785,8 +785,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch( diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index 17598f831881d..ce8bf4c0ce7f4 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -860,10 +860,10 @@ index b8c803184f267d87696c4e72c3d993ff3b69d95b..7278dfae56305cc8669fc2240563450f ScriptingThrottler scripting_throttler_; diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 31c9a53d5c7f09a7326ef57753b4a49f0239a7f8..7e913765d72087d57165efe59bca70584f43c836 100644 +index 1212cd37acff7847ec4a7d3fb841426d5a77576d..a6fbe92d06d373ff9794035de88553b36f837e30 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -3041,8 +3041,9 @@ source_set("browser") { +@@ -3044,8 +3044,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 d0f151fdf5f78..9b6d933f4792b 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 dea7ba2237cea261fe0b526753e1a9c4e355e484..9e3bf5eca5e9ad99112069a28b7fb8c1 // 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 3191fc7cf201b59abfcf87cd796752423f9a3c00..4d89c3bf11f453f72489bb9b2531b51493792dce 100644 +index 9af5efcacb38453d3f92a3c2d9a42ad8817ef6d5..c877e1aff3216aaf881e35e704745be442c5ca69 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1982,6 +1982,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { +@@ -1986,6 +1986,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { if (view_) { view_->UpdateCursor(cursor); } @@ -44,7 +44,7 @@ index 3191fc7cf201b59abfcf87cd796752423f9a3c00..4d89c3bf11f453f72489bb9b2531b514 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index e5e9771863573c0826111a724a1c38566ed3655e..70cb6b43f214c7f5210e99edc930428520f02b7c 100644 +index b056a3dad69316b919c058458ee9de3ad4a88147..0b70b695a4d3990842f9c5909ef485b540d9be58 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -5647,6 +5647,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { diff --git a/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch b/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch index dda5d6e6dada7..8f1e9061f6d98 100644 --- a/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch +++ b/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch @@ -7,10 +7,10 @@ Subject: refactor: expose HostImportModuleDynamically and This is so that Electron can blend Blink's and Node's implementations of these isolate handlers. diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -index 9b75260d27621f7174f8c47b108c175551319141..e4d63c2700d3079347279938e93eba4ba311a166 100644 +index 98da84ea08da05a486651d188c3eb8d14a2002cf..4ce1c044cf70525bd9ab4fee5a94e55017313910 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -@@ -641,7 +641,9 @@ bool WasmJSPromiseIntegrationEnabledCallback(v8::Local context) { +@@ -637,7 +637,9 @@ bool WasmJSPromiseIntegrationEnabledCallback(v8::Local context) { execution_context); } @@ -21,7 +21,7 @@ index 9b75260d27621f7174f8c47b108c175551319141..e4d63c2700d3079347279938e93eba4b v8::Local context, v8::Local v8_host_defined_options, v8::Local v8_referrer_resource_url, -@@ -719,7 +721,7 @@ v8::MaybeLocal HostImportModuleDynamically( +@@ -715,7 +717,7 @@ v8::MaybeLocal HostImportModuleDynamically( } // https://html.spec.whatwg.org/C/#hostgetimportmetaproperties @@ -30,7 +30,7 @@ index 9b75260d27621f7174f8c47b108c175551319141..e4d63c2700d3079347279938e93eba4b v8::Local module, v8::Local meta) { v8::Isolate* isolate = context->GetIsolate(); -@@ -762,9 +764,6 @@ std::ostream& operator<<(std::ostream& os, const PrintV8OOM& oom_details) { +@@ -758,9 +760,6 @@ std::ostream& operator<<(std::ostream& os, const PrintV8OOM& oom_details) { return os; } @@ -40,7 +40,7 @@ index 9b75260d27621f7174f8c47b108c175551319141..e4d63c2700d3079347279938e93eba4b void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { // Set up garbage collection before setting up anything else as V8 may trigger // GCs during Blink setup. -@@ -784,9 +783,9 @@ void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { +@@ -780,9 +779,9 @@ void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { isolate->SetWasmJSPIEnabledCallback(WasmJSPromiseIntegrationEnabledCallback); isolate->SetSharedArrayBufferConstructorEnabledCallback( SharedArrayBufferConstructorEnabledCallback); diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index 3d206df52a761..7d2ad52db74df 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 7f42a4609ce1d1da017591f4f10eb1685e7ea67b..38d2200912410cbca6847387d637df505c2876aa 100644 +index e49fd4b3278b4a25af30ecc522794847440d4c50..6e38f593dfc53387e1bf12606314e0cd31918962 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9642,25 +9642,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -9635,25 +9635,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/reland_set_app_container_acls_reliably_on_out_directory.patch b/patches/chromium/reland_set_app_container_acls_reliably_on_out_directory.patch new file mode 100644 index 0000000000000..34430a75ff1e4 --- /dev/null +++ b/patches/chromium/reland_set_app_container_acls_reliably_on_out_directory.patch @@ -0,0 +1,80 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Stefan Smolen +Date: Tue, 10 Dec 2024 19:38:18 +0000 +Subject: [reland] Set app container ACLs reliably on out directory + +This is a reland of: +https://chromium-review.googlesource.com/c/chromium/src/+/6068009 + +Reverted due to cross-compile failures. This cl adds host_os checks. + +Original description: +> Sandbox on Windows relies on AppContainer sandbox for certain sandboxes. +> The AppContainer sandbox requires that files loaded in those processes +> have the right security attributes (ACLs), or they will not be allowed +> to load. We can set the security attributes for a local build using the +> icacls tool, which currently runs when //sandbox/win:sandbox target is +> built, ensuring it happens as part of building chrome.dll. +> +> The APIs used for ACL-ing by icacls are subject to race conditions when +> files are generated in the folder while it's running, as is the case +> with a chromium build for binaries such as component build dlls and +> chrome_elf.dll. +> +> This change resolves the race condition by ensuring the ACL-ing step +> will happen via a DEPS of each executable target by default, which +> should guarantee that icacls finishes running before we link any +> binaries which require it. + +Bug: 379656387 +Change-Id: I45ee0d42934ab5cac4a24498f1f4ca9d0b3fb551 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6081378 +Reviewed-by: Dirk Pranke +Commit-Queue: Stefan Smolen +Reviewed-by: Will Harris +Cr-Commit-Position: refs/heads/main@{#1394456} + +diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn +index 6f8cb29dbb18a144f572f4fb32633d7bec080eb7..d32152894f3483fe8e7cecc74e9b302f5649da2b 100644 +--- a/build/config/BUILD.gn ++++ b/build/config/BUILD.gn +@@ -272,12 +272,14 @@ group("common_deps_without_libcxx") { + # debugging DLLs in all builds. + data_deps = [ "//build/win:runtime_libs" ] + +- # In order to ensure the ACLing is applied to every binary loaded in an +- # app container sandbox, run the ACL step before any binary is built. We +- # do this because the tool is subject to race conditions if a binary is +- # placed in the out folder while it is running. +- public_deps += +- [ "//build/config/win:maybe_set_appcontainer_acls($host_toolchain)" ] ++ if (host_os == "win") { ++ # In order to ensure the ACLing is applied to every binary loaded in an ++ # app container sandbox, run the ACL step before any binary is built. We ++ # do this because the tool is subject to race conditions if a binary is ++ # placed in the out folder while it is running. ++ public_deps += ++ [ "//build/config/win:maybe_set_appcontainer_acls($host_toolchain)" ] ++ } + } + } + +diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn +index a75b2b09cf708ffb3d60a07cd31f78bc80075913..9928e76832cce20cead2531293d872b8af520336 100644 +--- a/build/config/win/BUILD.gn ++++ b/build/config/win/BUILD.gn +@@ -483,12 +483,12 @@ config("delayloads_not_for_child_dll") { + # sandboxed processes in an app container when run from the out directory. + group("maybe_set_appcontainer_acls") { + # Exclude setting ACLs when build is not happening on chromium, or with a different toolchain. +- if (build_with_chromium && current_cpu == target_cpu) { ++ if (build_with_chromium && current_cpu == target_cpu && host_os == "win") { + deps = [ ":set_appcontainer_acls" ] + } + } + +-if (build_with_chromium && current_cpu == target_cpu) { ++if (build_with_chromium && current_cpu == target_cpu && host_os == "win") { + action("set_appcontainer_acls") { + script = "//build/win/set_appcontainer_acls.py" + stamp_file = "$target_out_dir/acls.stamp" diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index ea2c4b49bd2ba..528ec74c012f6 100644 --- a/patches/chromium/render_widget_host_view_base.patch +++ b/patches/chromium/render_widget_host_view_base.patch @@ -6,7 +6,7 @@ Subject: render_widget_host_view_base.patch ... something to do with OSR? and maybe as well? terrifying. diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc -index 7684afb6afe8efb19cec45ee37a134fedeaa2ea1..7a7ac5c40da4c3e2d426fa517903e9a976146897 100644 +index 2fb637bba3e00058f3433ae2f6da799d59a75543..9365d9ebfd47e3054fa4ff9679c0ee06cfac3855 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc @@ -634,6 +634,13 @@ void RenderWidgetHostViewBase::OnFrameTokenChangedForView( @@ -24,7 +24,7 @@ index 7684afb6afe8efb19cec45ee37a134fedeaa2ea1..7a7ac5c40da4c3e2d426fa517903e9a9 const blink::WebMouseEvent& event, const ui::LatencyInfo& latency) { diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h -index bdd8712db25a50607999893fe78cd195023704cb..b9c57ea019cbf04c77116f12b9ae1e3abcb474d0 100644 +index 8377a897ff00c69e5b11e4775720d25465e6ec81..0b27be5b7d5824dbc5bbbfde813da263c453f20a 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h @@ -29,8 +29,11 @@ @@ -39,7 +39,7 @@ index bdd8712db25a50607999893fe78cd195023704cb..b9c57ea019cbf04c77116f12b9ae1e3a #include "content/public/browser/render_widget_host_view.h" #include "content/public/common/page_visibility_state.h" #include "content/public/common/widget_type.h" -@@ -70,9 +73,11 @@ namespace content { +@@ -70,11 +73,13 @@ namespace content { class DevicePosturePlatformProvider; class MouseWheelPhaseHandler; class RenderWidgetHostImpl; @@ -47,11 +47,13 @@ index bdd8712db25a50607999893fe78cd195023704cb..b9c57ea019cbf04c77116f12b9ae1e3a class ScopedViewTransitionResources; class TextInputManager; class TouchSelectionControllerClientManager; -+class WebContentsView; + class TouchSelectionControllerInputObserver; class WebContentsAccessibility; ++class WebContentsView; class DelegatedFrameHost; class SyntheticGestureTarget; -@@ -144,6 +149,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase + +@@ -145,6 +150,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase void ProcessGestureEvent(const blink::WebGestureEvent& event, const ui::LatencyInfo& latency) override; RenderWidgetHostViewBase* GetRootView() override; @@ -62,7 +64,7 @@ index bdd8712db25a50607999893fe78cd195023704cb..b9c57ea019cbf04c77116f12b9ae1e3a void OnAutoscrollStart() override; const viz::DisplayHitTestQueryMap& GetDisplayHitTestQuery() const override; -@@ -181,6 +190,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -182,6 +191,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase const gfx::Rect& keyboard_rect) override {} bool IsHTMLFormPopup() const override; diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index 73c84f8463ed7..3272fb219cbda 100644 --- a/patches/chromium/scroll_bounce_flag.patch +++ b/patches/chromium/scroll_bounce_flag.patch @@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch Patch to make scrollBounce option work. diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index c848b7f8f765002d9839c327540d1da6abde9a70..5920255ae35e6e3d9c76b23fe4442d14bb0365d4 100644 +index db991c27ab5d86058ba0d768f0523866231f3f4d..812286d8f020d5952eddd7c6c30de7bd39d8114b 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1306,7 +1306,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1309,7 +1309,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { } bool RenderThreadImpl::IsElasticOverscrollEnabled() { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 220c7b1f3dbc1..8aca475685207 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,10 +22,10 @@ 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 302c4cbed8b158257b7dfde14f591ad6bc971641..f4300e11c7dabb06fdd502cc96a83466e00d499f 100644 +index 167462f298cafe0400d8326881c61e95ad1769d5..473e4b9ec54cfe6f9c644e7a1edccd54f19b801e 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -1761,6 +1761,10 @@ bool RenderProcessHostImpl::Init() { +@@ -1764,6 +1764,10 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( *cmd_line, IsPdf(), IsJitDisabled()); diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 7a77dcfb52dd8..c954703b8c2b2 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 9b9edea9eb076f29dd8349ee784e9b2c1ab5a71c..fadf531ed83a57f3aabea90945876448763afc8e 100644 +index f0d92a18c0cdefd437086695e122c81ca9293ce5..7c348b55b7316b8452dfb9fc43846544af9f04ed 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -3789,6 +3789,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index 0e9252fc08345..fcf2e0ad8af06 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 cef9a8b5029ca357b9447f764864c6b77af538f0..5394c89af750a7de2ec9b7762abbc43f6483d737 100644 +index 7b91ba71aadbf44ba76dd38ea2ca69ef16e48dc8..90ed344e4714ea2f98feab48824e8273ea51d048 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -8264,6 +8264,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -8244,6 +8244,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,7 +37,7 @@ index cef9a8b5029ca357b9447f764864c6b77af538f0..5394c89af750a7de2ec9b7762abbc43f 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 fadf531ed83a57f3aabea90945876448763afc8e..3b2cb5075d3596b0fd71e898aeeac3b9ef3d1e65 100644 +index 7c348b55b7316b8452dfb9fc43846544af9f04ed..750a5c74404d7d96e65fce1d91d1e38d8621c1f2 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -4047,21 +4047,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 3ad25b02f4596..960e4c16137d9 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 77047833a0e1c0d43c7cccea5d8b6e4de1ad7d91..7a827dc1e4933bc26242af9efe233d9c41f95dab 100644 +index 002e42a9af04652fe711369001be0b83f01456ea..9598017c637afe337c0a2e761297a83f058689e2 100644 --- a/front_end/entrypoints/main/MainImpl.ts +++ b/front_end/entrypoints/main/MainImpl.ts -@@ -763,6 +763,8 @@ export class MainImpl { +@@ -757,6 +757,8 @@ export class MainImpl { globalThis.Main = globalThis.Main || {}; // @ts-ignore Exported for Tests.js globalThis.Main.Main = MainImpl; diff --git a/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch b/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch index 82876b5175860..e96cca9e05121 100644 --- a/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch +++ b/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch @@ -46,10 +46,10 @@ index 3e57ae8efe33f326ef0e5d609c311d4be5b8afd6..dc521d39c2280dfc3217e97c1e413b2b V8_INLINE static void* GetAlignedPointerFromInternalField( const BasicTracedReference& object, int index) { diff --git a/src/api/api.cc b/src/api/api.cc -index 676c43e300648a24542bd49df118325227d507d9..d76e52da63748acfb37b31179b3428de77362413 100644 +index 311cd9f1c289c2c5aea234fab64ee200dd0c2a8d..af1f0f3ad6ad0f2f0e7cb0123f9cd1ad0d1c80cb 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -6465,14 +6465,33 @@ Local v8::Object::SlowGetInternalField(int index) { +@@ -6471,14 +6471,33 @@ Local v8::Object::SlowGetInternalField(int index) { i::Cast(*obj)->GetEmbedderField(index), isolate)); } diff --git a/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch b/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch index c662d4c8012f4..3c000aef513a4 100644 --- a/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch +++ b/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch @@ -250,10 +250,10 @@ index dc27e91ad0da93a5b68053f132f219f95f641ca1..38ba1110da3f77df4681ccb0ebcee78d switch (c_signature->ReturnInfo().GetType()) { case CTypeInfo::Type::kVoid: diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc -index 2b8639616427b557b9c00f328b069eb1dc6909c1..07661d03e99bb26dcd0be793932ba15319b7bec0 100644 +index 3898b51a1eab680c34102fea473f111cf8024b8b..0d6a0ef6516e25b2bb65b262b4d6495a268cd4d8 100644 --- a/test/cctest/test-api.cc +++ b/test/cctest/test-api.cc -@@ -29773,6 +29773,16 @@ static Trivial* UnwrapTrivialObject(Local object) { +@@ -29772,6 +29772,16 @@ static Trivial* UnwrapTrivialObject(Local object) { return wrapped; } @@ -270,7 +270,7 @@ index 2b8639616427b557b9c00f328b069eb1dc6909c1..07661d03e99bb26dcd0be793932ba153 void FastCallback2JSArray(v8::Local receiver, int arg0, v8::Local arg1) { Trivial* self = UnwrapTrivialObject(receiver); -@@ -29790,10 +29800,103 @@ void FastCallback4Scalar(v8::Local receiver, int arg0, float arg1) { +@@ -29789,10 +29799,103 @@ void FastCallback4Scalar(v8::Local receiver, int arg0, float arg1) { void FastCallback5DifferentArity(v8::Local receiver, int arg0, v8::Local arg1, float arg2) {} @@ -374,7 +374,7 @@ index 2b8639616427b557b9c00f328b069eb1dc6909c1..07661d03e99bb26dcd0be793932ba153 TEST(FastApiOverloadResolution) { #if !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) if (i::v8_flags.jitless) return; -@@ -29807,15 +29910,22 @@ TEST(FastApiOverloadResolution) { +@@ -29806,15 +29909,22 @@ TEST(FastApiOverloadResolution) { i::v8_flags.always_turbofan = false; i::FlagList::EnforceFlagImplications(); @@ -399,7 +399,7 @@ index 2b8639616427b557b9c00f328b069eb1dc6909c1..07661d03e99bb26dcd0be793932ba153 v8::CFunction scalar_callback = v8::CFunctionBuilder().Fn(FastCallback4Scalar).Build(); -@@ -29823,7 +29933,7 @@ TEST(FastApiOverloadResolution) { +@@ -29822,7 +29932,7 @@ TEST(FastApiOverloadResolution) { // Check that resolving when there is a scalar at the difference position // is not possible. CHECK_EQ(v8::CFunction::OverloadResolution::kImpossible, @@ -408,7 +408,7 @@ index 2b8639616427b557b9c00f328b069eb1dc6909c1..07661d03e99bb26dcd0be793932ba153 v8::CFunction diff_arity_callback = v8::CFunctionBuilder().Fn(FastCallback5DifferentArity).Build(); -@@ -29831,7 +29941,7 @@ TEST(FastApiOverloadResolution) { +@@ -29830,7 +29940,7 @@ TEST(FastApiOverloadResolution) { // Check that overload resolution between different number of arguments // is possible. CHECK_EQ(v8::CFunction::OverloadResolution::kAtCompileTime, diff --git a/patches/v8/revert_fastapi_add_support_for_attribute_setters.patch b/patches/v8/revert_fastapi_add_support_for_attribute_setters.patch index 9966c85f49662..7c44f5480e6ab 100644 --- a/patches/v8/revert_fastapi_add_support_for_attribute_setters.patch +++ b/patches/v8/revert_fastapi_add_support_for_attribute_setters.patch @@ -504,7 +504,7 @@ index 137e5c917cf7a56c89e70ed49d07e3134d1c8eac..00000000000000000000000000000000 -assertEquals(1, fast_c_api.fast_call_count()); -assertEquals(0, fast_c_api.slow_call_count()); diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status -index 207322443192073f516787cbaf81e69c87d34a3c..2256e42324bdc91a4c92bfcfe9909c71f8e8533b 100644 +index 93fe36a988be33f1eab1e814c8f0ad62bfbcbb53..632a8f4f0475076f82f66c73a29d92d3e9fc8c50 100644 --- a/test/mjsunit/mjsunit.status +++ b/test/mjsunit/mjsunit.status @@ -757,7 +757,6 @@ @@ -515,7 +515,7 @@ index 207322443192073f516787cbaf81e69c87d34a3c..2256e42324bdc91a4c92bfcfe9909c71 'compiler/fast-api-interface-types': [SKIP], 'compiler/regress-crbug-1201011': [SKIP], 'compiler/regress-crbug-1201057': [SKIP], -@@ -2359,7 +2358,6 @@ +@@ -2358,7 +2357,6 @@ 'regress/regress-1049982-2': [FAIL], # Maglev doesn't support fast API calls. 'compiler/fast-api-annotations': [FAIL], diff --git a/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch b/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch index 64a992ca3c5c3..ff2a9033ea041 100644 --- a/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch +++ b/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch @@ -13,7 +13,7 @@ Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5979766 This reverts commit c41f7a0ef99bd1c9752ee79923f634145ebc4153. diff --git a/src/api/api.cc b/src/api/api.cc -index d76e52da63748acfb37b31179b3428de77362413..0b30c6568d1a38237f3629fb88a5c9cbf1650f98 100644 +index af1f0f3ad6ad0f2f0e7cb0123f9cd1ad0d1c80cb..b6a8bd3dfe53494502f13dbbfdfad1d79f621d40 100644 --- a/src/api/api.cc +++ b/src/api/api.cc @@ -1349,16 +1349,6 @@ Local FunctionTemplate::NewWithCFunctionOverloads( @@ -669,10 +669,10 @@ index f24cd884bf7810aaed5e58b2044c2770653266f1..d79f6c801d2562a3cd65597d79050791 // There is one return in addition to the return value of the C function, // which indicates if a fast API call actually happened. diff --git a/src/compiler/turboshaft/operations.h b/src/compiler/turboshaft/operations.h -index a26611708f2dd162e127d7a7c9af9135892d0b40..b04639190b239af92a2845886e5852080e6e454a 100644 +index 1977d4d57a34781ae925d4f0ad0d09192b937dbe..d258f4b10f09b79c4aaf54ebff5e55cf8227aecc 100644 --- a/src/compiler/turboshaft/operations.h +++ b/src/compiler/turboshaft/operations.h -@@ -6386,16 +6386,24 @@ struct Float64SameValueOp : FixedArityOperationT<2, Float64SameValueOp> { +@@ -6403,16 +6403,24 @@ struct Float64SameValueOp : FixedArityOperationT<2, Float64SameValueOp> { }; struct FastApiCallParameters : public NON_EXPORTED_BASE(ZoneObject) { @@ -705,7 +705,7 @@ index a26611708f2dd162e127d7a7c9af9135892d0b40..b04639190b239af92a2845886e585208 }; diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc -index 5ad805a11f7de73f06518ee3cf878ca492c0c652..2571f2800450cb8582198dc7cb7ef58311c52dae 100644 +index 2a1edc79d000801b21e89304eefc27d6ea6f4675..79b2e0b010609acbf0e0b8ac6835364a6448ff03 100644 --- a/src/compiler/wasm-compiler.cc +++ b/src/compiler/wasm-compiler.cc @@ -8356,13 +8356,19 @@ class WasmWrapperGraphBuilder : public WasmGraphBuilder { diff --git a/shell/common/api/electron_api_clipboard.cc b/shell/common/api/electron_api_clipboard.cc index e8681fb59cae4..5f1e19775cdea 100644 --- a/shell/common/api/electron_api_clipboard.cc +++ b/shell/common/api/electron_api_clipboard.cc @@ -44,8 +44,8 @@ std::vector Clipboard::AvailableFormats( bool Clipboard::Has(const std::string& format_string, gin_helper::Arguments* args) { ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - ui::ClipboardFormatType format( - ui::ClipboardFormatType::GetType(format_string)); + ui::ClipboardFormatType format = + ui::ClipboardFormatType::CustomPlatformType(format_string); if (format.GetName().empty()) format = ui::ClipboardFormatType::CustomPlatformType(format_string); return clipboard->IsFormatAvailable(format, GetClipboardBuffer(args), diff --git a/shell/common/gin_converters/net_converter.cc b/shell/common/gin_converters/net_converter.cc index 65ea542e7bd92..bf67315c5b09c 100644 --- a/shell/common/gin_converters/net_converter.cc +++ b/shell/common/gin_converters/net_converter.cc @@ -595,9 +595,7 @@ bool Converter>::FromV8( if (!type) return false; if (*type == "rawData") { - const base::Value::BlobStorage* bytes = dict.FindBlob("bytes"); - (*out)->AppendBytes(reinterpret_cast(bytes->data()), - base::checked_cast(bytes->size())); + (*out)->AppendBytes(std::move(*dict.Find("bytes")).TakeBlob()); } else if (*type == "file") { const std::string* file = dict.FindString("filePath"); if (!file)