diff --git a/DEPS b/DEPS index c33ac312e4..02b52d3105 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '157.0.8091.0', + '157.0.8100.0', 'node_version': 'v24.21.0', 'nan_version': diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 3ce1ee05cf..e24b77f771 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -136,5 +136,3 @@ gin_copy_ascii_one-byte_strings_out_directly_in.patch fix_gate_webstoreprivate_on_a_delegated_availability_check.patch build_drop_the_unused_chrome_browser_win_dep_from_color_mixers.patch fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch -linux_don_t_abort_when_the_networkmonitor_portal_s_bus_is_lost.patch -cherry-pick-8aa7b26db5b4.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index 17b522d301..57df46b81b 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index 3734444c7c00a295c55c864b983e7b146ca70047..dccd23b881c3646e061c3ce2669df96d int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index f2dc84c29b561ef63c0a1b7e6edd6915d8de54c0..7993fd14c837896d872a435a454af7609b5b8a10 100644 +index 7ae57783c940b1533b0f696cb7f36d2298a9921f..644c0cf73828ad91bd4ee069bc5d9036393e3d74 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4989,6 +4989,13 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4984,6 +4984,13 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, } } diff --git a/patches/chromium/add_electron_deps_to_license_credits_file.patch b/patches/chromium/add_electron_deps_to_license_credits_file.patch index c0c32e643c..f00de587cd 100644 --- a/patches/chromium/add_electron_deps_to_license_credits_file.patch +++ b/patches/chromium/add_electron_deps_to_license_credits_file.patch @@ -7,10 +7,10 @@ Ensure that licenses for the dependencies introduced by Electron are included in `LICENSES.chromium.html` diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py -index 07ad95387a8fe01f8a7b9a747f4de2911b506527..9c455f0bf923c884d2f64d761f71af4f30e3bd2d 100755 +index 7756e7cc514dca326b0403c399a095385f8c0f5e..83c0b96234f5edf46c471f94c6178d95fa3caf70 100755 --- a/tools/licenses/licenses.py +++ b/tools/licenses/licenses.py -@@ -374,6 +374,36 @@ SPECIAL_CASES = { +@@ -316,6 +316,36 @@ SPECIAL_CASES = { "License": "Apache 2.0", "License File": ["//third_party/sample3/the_license"], }, diff --git a/patches/chromium/allow_authenticator_responses_to_override_client_data_json.patch b/patches/chromium/allow_authenticator_responses_to_override_client_data_json.patch index 96712e894e..ab77829f9b 100644 --- a/patches/chromium/allow_authenticator_responses_to_override_client_data_json.patch +++ b/patches/chromium/allow_authenticator_responses_to_override_client_data_json.patch @@ -15,7 +15,7 @@ When present, authenticator_common_impl uses it in place of the request- level client_data_json. diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc -index 35f7ef707d807bed0a02721303609dbe8dfe0a30..dc9ca377e0cd514809889b4e0924f2584e78dcff 100644 +index 9e4649349b27d2359dc1c701adc2f45434202416..62878baf0fad52d3c325c0ab741314fda2f4f99f 100644 --- a/content/browser/webauth/authenticator_common_impl.cc +++ b/content/browser/webauth/authenticator_common_impl.cc @@ -3110,8 +3110,12 @@ AuthenticatorCommonImpl::CreateMakeCredentialResponse( diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index 964e352460..0dc9fd3a13 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -12,10 +12,10 @@ that the new window is created in its own BrowsingInstance (and process). 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 a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025cdc7dcb2 100644 +index 2124095d3f93e824828c45a85ee6ffc94d3e9cec..5b5d4094ae4ad6a33570e107d75eb249ef8df7c7 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -10672,6 +10672,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -10675,6 +10675,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -23,7 +23,7 @@ index a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025 effective_transient_activation_state, params->opener_suppressed, &no_javascript_access); -@@ -10682,6 +10683,11 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -10685,6 +10686,11 @@ void RenderFrameHostImpl::CreateNewWindow( return; } @@ -36,10 +36,10 @@ index a75313227582bf69221c5db638566dc0eec57468..0755fe453878fb011fae7c1d427ca025 // important to do this before we return from the |opener_suppressed| case // below. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2a2d854cf 100644 +index 9cc6449b7b1882f87953028049ecf84fb7ba5848..5c602a33195a1ad99d7c14efc4b7f215af6a77a5 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5827,6 +5827,10 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5830,6 +5830,10 @@ FrameTree* WebContentsImpl::CreateNewWindow( create_params.initially_hidden = renderer_started_hidden; create_params.initial_popup_url = params.target_url; @@ -50,7 +50,7 @@ index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2 // Even though all codepaths leading here are in response to a renderer // trying to open a new window, if the new window ends up in a different // browsing instance, then the RenderViewHost, RenderWidgetHost, -@@ -5881,6 +5885,13 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5884,6 +5888,13 @@ FrameTree* WebContentsImpl::CreateNewWindow( // Sets the newly created WebContents WindowOpenDisposition. new_contents_impl->original_window_open_disposition_ = params.disposition; @@ -64,7 +64,7 @@ index a277956429eab77ffcc44db71d4ce56fc60ef160..bf77ced730a07e68910f7061749b57a2 // If the new frame has a name, make sure any SiteInstances that can find // this named frame have proxies for it. Must be called after // SetSessionStorageNamespace, since this calls CreateRenderView, which uses -@@ -5922,13 +5933,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5925,13 +5936,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -94,10 +94,10 @@ index 572c5763b9995dde20a0a7a2ddaa077934939b1d..66c36cedacc93897e1bf51bee5181eee // 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 e3de4c32b202d0a7bdab984d92c9e64ab2384678..e550ec1999586e7a8e5c8f65ffc8b6674af68bf4 100644 +index c4686f46458c3075c76fd7124f166adf45a10eeb..0621f7b36e2086b2101c7fa4f31cee5cf9c8b5f3 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -827,6 +827,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -830,6 +830,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -107,7 +107,7 @@ index e3de4c32b202d0a7bdab984d92c9e64ab2384678..e550ec1999586e7a8e5c8f65ffc8b667 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 7b24dd3a343fdd2d0c7d9f62bf353ec280e40ab4..3f7dc59112e0f86bd422053f60c2ad5a6a70a0ac 100644 +index 16eb7f7cf30ea2f2d787954333a1616eaffdfde0..b03790aca7fa675c6e33e49f36ee30832b49ef8b 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -206,6 +206,7 @@ class TrustedURLLoaderHeaderClient; @@ -188,10 +188,10 @@ index 38efabfe5d486e893fbf4f4fed72570771dad817..33070d7de072e48b305067429b295418 // 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 6533c6f9a58d686a340bf0422f2cce067640b9d8..f2dc84c29b561ef63c0a1b7e6edd6915d8de54c0 100644 +index 0cbd98a13b99f678ad4ed90bc1f9e556001c0c45..7ae57783c940b1533b0f696cb7f36d2298a9921f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -7146,6 +7146,10 @@ WebView* RenderFrameImpl::CreateNewWindow( +@@ -7141,6 +7141,10 @@ WebView* RenderFrameImpl::CreateNewWindow( params->started_by_ad = GetWebFrame()->IsAdFrame() || GetWebFrame()->IsAdScriptInStack(); @@ -203,10 +203,10 @@ index 6533c6f9a58d686a340bf0422f2cce067640b9d8..f2dc84c29b561ef63c0a1b7e6edd6915 // moved on send. bool is_background_tab = diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 389b26719040ab14aae15ab95976d187c9912d62..739c23ec23e98bdec6c747d8ea1ef2caea3ec4c5 100644 +index bb4cff1440e277e955ebae4e94d0847124d30a66..64db9c427d3e5e518b32edd6ae3adc87767e004e 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -560,6 +560,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -565,6 +565,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -216,10 +216,10 @@ index 389b26719040ab14aae15ab95976d187c9912d62..739c23ec23e98bdec6c747d8ea1ef2ca bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h -index 6704627ccef1c2889189189d44268e305af2b337..d0bd8613f8ab858eb0aa36c432b077d5331293a1 100644 +index 071e87d29d1523eaf277bcc209021f55bb04098b..e3181687596e33a85163d40262b2ff7491a53547 100644 --- a/content/web_test/browser/web_test_content_browser_client.h +++ b/content/web_test/browser/web_test_content_browser_client.h -@@ -101,6 +101,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { +@@ -102,6 +102,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -242,10 +242,10 @@ index 1208199428a2de729650c82e988ab67abeb0e786..2e6643ede047a580a636dbf75e86c99f } // namespace blink diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc -index 1541d1ccf01aabb4958ccfcccd68283eb4c97166..d1d456883e7cdcb9037e23c913ad2aa98afa99ea 100644 +index 2142a9c6f417e13482c87050d9d2c8dd74f822ba..63d62da6c3b2711ad2d9034657c8a4681ecb47b9 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -2501,6 +2501,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2518,6 +2518,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, WebWindowFeatures window_features = GetWindowFeaturesFromString(features, entered_window); diff --git a/patches/chromium/cherry-pick-8aa7b26db5b4.patch b/patches/chromium/cherry-pick-8aa7b26db5b4.patch deleted file mode 100644 index d95d9a7bd9..0000000000 --- a/patches/chromium/cherry-pick-8aa7b26db5b4.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: talshalti -Date: Sat, 10 Oct 2026 21:56:55 -0700 -Subject: Test and fix for ShadowRealm last resort full gc crash - -V8 full GC metrics can be attributed to a ShadowRealm context. Blink's -metrics recorder resolves that context to ShadowRealmGlobalScope and calls -UkmRecorder(), which currently hits NOTREACHED(). - -Return no UKM recorder and an invalid source ID for ShadowRealms. The -metrics recorder already handles contexts without a UKM recorder. Add a -regression test to the existing shadow-realm-enabled virtual suite, covering -full GC in the ordinary context, a ShadowRealm, and a nested ShadowRealm. -The web test renderer already exposes GC, so no separate suite is needed. - -See also: https://github.com/electron/electron/issues/54637 - -Co-authored-by: Hidekazu Kondo -Change-Id: I35ea8b5ef8fdb58707b0bf0545d24b07e0744545 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8533026 -Commit-Queue: Deepak Ravichandran -Reviewed-by: Deepak Ravichandran -Reviewed-by: Mason Freed -Cr-Commit-Position: refs/heads/main@{#1716425} - -diff --git a/AUTHORS b/AUTHORS -index ada048e52f2a8c9aa493ca3f78ea4fbd03d753e7..d2f21f337457526c8ef58e271b4f901591f563d8 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -1671,6 +1671,7 @@ Takashi Fujita - Takashi Mima - Takeshi Kurosawa - Takuya Kurimoto -+Tal Shalti - Tanay Chowdhury - Tanvir Rizvi - Tao Wang -diff --git a/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc b/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc -index c4cc043dc9bac54dd0876198ac54a6b8133c71b6..ca89a52843b3c2b16cb7fcaafe6f8ac21de11422 100644 ---- a/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc -+++ b/third_party/blink/renderer/core/shadow_realm/shadow_realm_global_scope.cc -@@ -121,11 +121,11 @@ bool ShadowRealmGlobalScope::IsIsolatedContext() const { - } - - ukm::UkmRecorder* ShadowRealmGlobalScope::UkmRecorder() { -- NOTREACHED(); -+ return nullptr; - } - - ukm::SourceId ShadowRealmGlobalScope::UkmSourceID() const { -- NOTREACHED(); -+ return ukm::kInvalidSourceId; - } - - ExecutionContextToken ShadowRealmGlobalScope::GetExecutionContextToken() const { -diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites -index 5995a2ea6af3a4516d729858653793f2323a3719..64346afb9d7c8ebe0fcfa4073a2e97c046cb60a8 100644 ---- a/third_party/blink/web_tests/VirtualTestSuites -+++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -2956,6 +2956,7 @@ - "Win" - ], - "bases": [ -+ "http/tests/shadowrealm/full-gc-crash.html", - "http/tests/shadowrealm/webexposed/global-interface-listing-shadow-realm.html" - ], - "exclusive_tests": "ALL", -diff --git a/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html b/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html -new file mode 100644 -index 0000000000000000000000000000000000000000..c8bd07f21867f5be40d3bf08b82b201a82801b79 ---- /dev/null -+++ b/third_party/blink/web_tests/http/tests/shadowrealm/full-gc-crash.html -@@ -0,0 +1,17 @@ -+ -+ -+ -+Full garbage collection in ShadowRealms -+ -+ -+ diff --git a/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch b/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch index b07de48a90..a5f4f3250c 100644 --- a/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch +++ b/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch @@ -34,10 +34,10 @@ index dccd23b881c3646e061c3ce2669df96d5b108617..237bfb19ad9905dd39f1a9e2b7a6df69 virtual void DidClearWindowObject() {} virtual void DidChangeScrollOffset(blink::mojom::ScrollType) {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 7993fd14c837896d872a435a454af7609b5b8a10..686bfacdd99d7ae0b0e599c2178133b9480a4764 100644 +index 644c0cf73828ad91bd4ee069bc5d9036393e3d74..07d9e36e5ca5b7bf25fc74fc10e4710da5b4cb53 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4996,10 +4996,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures( +@@ -4991,10 +4991,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures( } } diff --git a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch index 052442a03c..a6c48f6016 100644 --- a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch +++ b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch @@ -10,7 +10,7 @@ Subject: chore: "grandfather in" Electron Views and Delegates 6448510: Lock further access to View::set_owned_by_client(). | https://chromium-review.googlesource.com/c/chromium/src/+/6448510 diff --git a/ui/views/view.h b/ui/views/view.h -index 242fc32c0b862217706bab93e380df5e8f0441b5..e92e452845277dcc3f58b405a5ed7a527c7796e4 100644 +index 5d9badf7a3d11201619c9be373a11198517e91b5..7fed40ee34e03bc2ea373f224cc8f01f65c7799a 100644 --- a/ui/views/view.h +++ b/ui/views/view.h @@ -77,6 +77,17 @@ namespace ash { diff --git a/patches/chromium/chore_introduce_blocking_api_for_electron.patch b/patches/chromium/chore_introduce_blocking_api_for_electron.patch index a3294063f7..74e492b886 100644 --- a/patches/chromium/chore_introduce_blocking_api_for_electron.patch +++ b/patches/chromium/chore_introduce_blocking_api_for_electron.patch @@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor of explicitly adding ScopedAllowBlocking calls as friends. diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h -index db88f6ab7629f41a1c51945c570a82c35e9ef723..dac83f37196aaee9c6be7021afa738ce3fb31444 100644 +index cc087c73765c6ba3babe48c2dde0215c03935f60..d141eae3d8c749ae71145833ad721a799d5b0763 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h @@ -133,6 +133,7 @@ class KeyStorageLinux; diff --git a/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch b/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch index 1efc6b7fbb..61af9bdc90 100644 --- a/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch +++ b/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch @@ -34,10 +34,10 @@ index cc3f9bc9383f8272a5cd95b1f2ac56529d86e493..5ca29b84cdaf42ef516ef819ae32b230 class ScrollEvent; diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index b4868e05fe4b193ddfe585bc351b5083e38dd5c6..76930906d8ee488228b0572d335b96238369675b 100644 +index 3ad82812da1a1a84aba7b42d9864505a42cf45ce..019956c806c8744c801ede6000b9d7b69043cd07 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -@@ -1561,6 +1561,10 @@ HBRUSH DesktopWindowTreeHostWin::GetBackgroundPaintBrush() { +@@ -1584,6 +1584,10 @@ HBRUSH DesktopWindowTreeHostWin::GetBackgroundPaintBrush() { return background_paint_brush_; } @@ -49,7 +49,7 @@ index b4868e05fe4b193ddfe585bc351b5083e38dd5c6..76930906d8ee488228b0572d335b9623 DesktopWindowTreeHostWin::GetSingletonDesktopNativeCursorManager() { return new DesktopNativeCursorManagerWin(); diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -index 747de87378f7b6087f9be8a271c1c086b5421b49..03e1bbb251f6464c5d4ee85b205b5ab99e695334 100644 +index ae1ac5976e3beca9465545b0b168503a55486621..f9c940c60010645ee0e1d0838efe395defea53bb 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h @@ -279,6 +279,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index ebc62d120e..decb449c7a 100644 --- a/patches/chromium/chore_partial_revert_of.patch +++ b/patches/chromium/chore_partial_revert_of.patch @@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it by changing something in Electron. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 32d39f8efaae61e6feedffb5a65ca57bec9c7402..99b25c0036562af4671dd87173a1ef80923b8f45 100644 +index 2b0686787a2845c6a30d382de704d97121910cc0..9c2a2cc5043fcfb6f5ecc234e441a47078bee18c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5802,7 +5802,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5805,7 +5805,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( : IsGuest(); // While some guest types do not have a guest SiteInstance, the ones that // don't all override WebContents creation above. diff --git a/patches/chromium/enable_reset_aspect_ratio.patch b/patches/chromium/enable_reset_aspect_ratio.patch index a7bc4486c5..7a831ec871 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -6,10 +6,10 @@ Subject: feat: enable setting aspect ratio to 0 Make SetAspectRatio accept 0 as valid input, which would reset to null. diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index 6e51652e11749eefc5f7363c6a1ca3ab2ced549b..b4868e05fe4b193ddfe585bc351b5083e38dd5c6 100644 +index 8fedc83f1f9fb5f0f5b9132bf2d882ac839ade1a..3ad82812da1a1a84aba7b42d9864505a42cf45ce 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -@@ -741,7 +741,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) { +@@ -744,7 +744,7 @@ void DesktopWindowTreeHostWin::SetOpacity(float opacity) { void DesktopWindowTreeHostWin::SetAspectRatio( const gfx::SizeF& aspect_ratio, const gfx::Size& excluded_margin) { diff --git a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch index cedbd37041..7e4a661ae8 100644 --- a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch +++ b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch @@ -104,7 +104,7 @@ index ad5ca8461144f77cd49a390dc81ce38cffb6ec24..b6b5a9872333cb74276aeff6f50abb55 using InitializeCB = base::OnceCallback; void Initialize(InitializeCB init_cb) override; diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc -index 2f19bdf0e6aefc8896c86a2cafbbabcd4135c639..b6516ec5768c9a78b4f138c587ed41b3a025384e 100644 +index 7d1d1395165c53f3f3acbd42d97334343fe67f13..8b70f9418cbe199d553ea3c01307a97b8edae977 100644 --- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc +++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc @@ -8,6 +8,7 @@ @@ -123,7 +123,7 @@ index 2f19bdf0e6aefc8896c86a2cafbbabcd4135c639..b6516ec5768c9a78b4f138c587ed41b3 #include "third_party/blink/renderer/platform/media/resource_fetch_context.h" #include "third_party/blink/renderer/platform/media/url_index.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" -@@ -335,6 +337,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse( +@@ -345,6 +347,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse( do_fail = true; } } else { diff --git a/patches/chromium/feat_carry_embedder_startup_data_in_createnewwindowreply.patch b/patches/chromium/feat_carry_embedder_startup_data_in_createnewwindowreply.patch index 4e30fd5649..10af2f8169 100644 --- a/patches/chromium/feat_carry_embedder_startup_data_in_createnewwindowreply.patch +++ b/patches/chromium/feat_carry_embedder_startup_data_in_createnewwindowreply.patch @@ -26,10 +26,10 @@ hook called before the new RenderFrame is created so it can be picked up by RenderFrameCreated() on the same call stack. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index a7352e60788645d890f5d83ec9dd8adcc8c8efa9..f3b0c47c5eb969926d3a6b2396554953e0e89432 100644 +index 333c373fed9d24630c80eaebf85fcb7c64acee36..31be8c4cbfe4c1861e5e06746c9ebd12754e8fb3 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -10868,7 +10868,12 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -10874,7 +10874,12 @@ void RenderFrameHostImpl::CreateNewWindow( new_main_rfh->GetSiteInstance()->browsing_instance_token(), delegate_->GetColorProviderColorMaps(), /*widget_screen_rect=*/std::nullopt, @@ -71,10 +71,10 @@ index 66c36cedacc93897e1bf51bee5181eeed3e310ee..02e1b5b8b417016a53ec6554d046c333 // A per-navigation interface passed along with the BeginNavigation call, used diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index e550ec1999586e7a8e5c8f65ffc8b6674af68bf4..ec3ed48006f883df3c6778dd942fe808e2e9ac7b 100644 +index 0621f7b36e2086b2101c7fa4f31cee5cf9c8b5f3..c65e4d309395da665019c86e42ee4a3ea62c6f2a 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -836,6 +836,13 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -839,6 +839,13 @@ bool ContentBrowserClient::CanCreateWindow( return true; } @@ -89,7 +89,7 @@ index e550ec1999586e7a8e5c8f65ffc8b6674af68bf4..ec3ed48006f883df3c6778dd942fe808 ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 123ad05c62e0fde8e06327f399d36ef2e0273e22..a6e6ba792eae94ca693a48a4f3156348c948aba5 100644 +index 0e05ccf908df7b69ca194338e95ff06b1fec9922..b52596f66d3376a59a0ab29edd446fd23ee27a60 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -63,6 +63,7 @@ @@ -148,10 +148,10 @@ index d36c62edaf0478df7775e132fef87bb3b3e507ca..384c4a6fa9758c292f3d4da47f79b9d5 // `outermost_origin` is only set if it is an extension scheme, otherwise // it will be null. It is null to avoid leaking unnecessary information into diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 686bfacdd99d7ae0b0e599c2178133b9480a4764..bdc5f1a7eebe2c9b07f4ab1e423680b43d07db53 100644 +index 07d9e36e5ca5b7bf25fc74fc10e4710da5b4cb53..41c321ee2f9916d76120a7d2a60fc4794eff828f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -7203,6 +7203,14 @@ WebView* RenderFrameImpl::CreateNewWindow( +@@ -7198,6 +7198,14 @@ WebView* RenderFrameImpl::CreateNewWindow( return nullptr; } diff --git a/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch b/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch index f06471e1ab..b6b5e53bed 100644 --- a/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch +++ b/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch @@ -33,7 +33,7 @@ index 78e5b2eb93c36a7ee5ea3987ccc5cb0623388719..83fcced85a6689bd06d95c6344e1c30f // per page visit for each CSS histogram being logged on the blink side and the // browser side. diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py -index 41e4f4a6492a54cb066864dcdef396bf7d6e1f0e..1074ad42a021bb393b6afd3e7b0363437eb3a7de 100755 +index 5e751bb0e254b6cd67b05c6bd2e677c074717099..c567a09c696413371ed732cc2f81d9b9d33d27b7 100755 --- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py +++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py @@ -417,7 +417,7 @@ class CSSProperties(object): @@ -133,10 +133,10 @@ index a776c8e3ebe1a769d9520decce5516a48c74b78f..31530399ca2a967a87b740c26b9423c6 } // namespace css_longhand } // namespace blink diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc -index 2761d9decfe9547812a0b1a74d306298c91abe12..ca8ae04726bbe085ad0121721a4881dabc0912f4 100644 +index 226258bb74f8333169179a756c17afe0bf4e3a04..b05de1734000cabaa2e68d8e67822e750bc64965 100644 --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc -@@ -4266,6 +4266,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback( +@@ -4267,6 +4267,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback( return PositionTryFallback(scoped_name, tactic_list); } @@ -204,10 +204,10 @@ index b721dd3809c0b6c89574a515bac32d397a1bfb09..750a3603bd18680228220b831709d327 return result; } diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn -index 9dbb5c1bca167a777d2c9713f03a40545b33854c..01df346ac8971fd2fdbff5e86bebbdfc8b65fb54 100644 +index 0adcb6894f30356c933d6f77b5a9f6e4723ea6b7..6f84fa98e1a65d127f73fd49cca1861d2a3211bc 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1756,6 +1756,8 @@ component("platform") { +@@ -1754,6 +1754,8 @@ component("platform") { "widget/widget_base.h", "widget/widget_base_client.h", "windows_keyboard_codes.h", @@ -270,7 +270,7 @@ index 17c97038dc0fdb97021ee4b1aa3c8a4ca459fb2b..71d697d738f6aee8cbbb700f1e6ad9ac // A Corner is a axis-aligned quad, with the points ordered (start, outer, diff --git a/third_party/blink/renderer/platform/geometry/path_builder.cc b/third_party/blink/renderer/platform/geometry/path_builder.cc -index c68eabb5ba5842cb07df1d97e205c3d96d405a4f..e9e1114f60b1ae02c2e511b6568cee92ecb5e619 100644 +index 9d125de843259dae40e6b08eaf65ea3650435295..428219fb35d7a967dcaee91aa1c3628e8021e106 100644 --- a/third_party/blink/renderer/platform/geometry/path_builder.cc +++ b/third_party/blink/renderer/platform/geometry/path_builder.cc @@ -10,6 +10,7 @@ @@ -315,7 +315,7 @@ index c68eabb5ba5842cb07df1d97e205c3d96d405a4f..e9e1114f60b1ae02c2e511b6568cee92 auto draw_as_single_path = [&]() { diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -index 6c9712895291309ba7bf1316aae29247a49df7f6..3e82341b3e5dd929410e90764e1522f9230a9d82 100644 +index c62bce5410ed004ccb6e99945338db9dfb30f6ff..338c49a0cb3bf720b590a76f94178e3c50a102b6 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -237,6 +237,10 @@ diff --git a/patches/chromium/feat_deliver_service_worker_preload_data_via_embeddedworkerstartparams.patch b/patches/chromium/feat_deliver_service_worker_preload_data_via_embeddedworkerstartparams.patch index 064a17d993..19a1e956b7 100644 --- a/patches/chromium/feat_deliver_service_worker_preload_data_via_embeddedworkerstartparams.patch +++ b/patches/chromium/feat_deliver_service_worker_preload_data_via_embeddedworkerstartparams.patch @@ -33,10 +33,10 @@ index f1305b444c578b9d3f67470ddac1258c8a3cd903..67efc8609de5ff6316ef4348a474f09c if (policy_container_host_) { params->policy_container = diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index ec3ed48006f883df3c6778dd942fe808e2e9ac7b..7d0c402104e2070672a38be512ceb7dda8ad40ed 100644 +index c65e4d309395da665019c86e42ee4a3ea62c6f2a..550f28359e0e33f96948ea4d26bfee92c10a5ba1 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -843,6 +843,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData( +@@ -846,6 +846,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData( return std::nullopt; } @@ -51,7 +51,7 @@ index ec3ed48006f883df3c6778dd942fe808e2e9ac7b..7d0c402104e2070672a38be512ceb7dd ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() { return nullptr; diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index a6e6ba792eae94ca693a48a4f3156348c948aba5..a14fc7dd71cb44e119c0c02f54181ca329d20588 100644 +index b52596f66d3376a59a0ab29edd446fd23ee27a60..294652edbb7b15f43beb67e41b94c46ca5e82db5 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -1309,6 +1309,17 @@ class CONTENT_EXPORT ContentBrowserClient { @@ -169,7 +169,7 @@ index a3bfdd9c15d3cfc5053c2a36767ea7964f2740fd..d9d608ea5b01cff08654b11e455fd7af WebFetchClientSettingsObject outside_fetch_client_settings_object) : wait_for_debugger_mode(kDontWaitForDebugger), diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h -index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e9649a5c7 100644 +index 334882e5f645a3df16942186836cedd7ca943a24..8ef208fc4f72de1be2c14336d941c51d10e76a5d 100644 --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h @@ -11,6 +11,7 @@ @@ -180,7 +180,7 @@ index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e #include "mojo/public/cpp/bindings/pending_remote.h" #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" -@@ -272,6 +273,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -260,6 +261,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { // Shared and service worker scripts have no ResourceTiming entry. KURL dedicated_worker_script_initiator_url; @@ -193,10 +193,10 @@ index d5a652b33a00868054695da48cbeb0cca057faa1..d971a3437d35cc9cf45c3b5eb8f3646e const net::StorageAccessApiStatus parent_storage_access_api_status; diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc -index 32c00e338a044b52af9b851025f6a97934233bca..05db920886c35b6d7f49996542f86994991f31ae 100644 +index a70870c22a963f86609261e72e397890c7c2d1f6..f3609df000fe54b400472586e37f7e58cd54456a 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc -@@ -937,6 +937,9 @@ WorkerGlobalScope::WorkerGlobalScope( +@@ -943,6 +943,9 @@ WorkerGlobalScope::WorkerGlobalScope( std::move(creation_params->top_level_frame_security_origin)) { // Workers should always maintain the default world of an isolate. CHECK(creation_params->is_default_world_of_isolate); @@ -207,7 +207,7 @@ index 32c00e338a044b52af9b851025f6a97934233bca..05db920886c35b6d7f49996542f86994 TRACE_EVENT_BEGIN( "blink.worker", "WorkerGlobalScope setup", diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h -index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796cfcfd163 100644 +index b7f3b19f12dc32908c04779e8645c6c4bd01acf6..ab04da0f4d22542f137c93f458c393f6edb4cae7 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/worker_global_scope.h @@ -32,6 +32,7 @@ @@ -218,7 +218,7 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796 #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" #include "third_party/blink/public/common/permissions_policy/document_policy.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -296,6 +297,12 @@ class CORE_EXPORT WorkerGlobalScope +@@ -295,6 +296,12 @@ class CORE_EXPORT WorkerGlobalScope return top_level_frame_security_origin_.get(); } @@ -231,7 +231,7 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796 protected: WorkerGlobalScope(std::unique_ptr, WorkerThread*, -@@ -438,6 +445,9 @@ class CORE_EXPORT WorkerGlobalScope +@@ -441,6 +448,9 @@ class CORE_EXPORT WorkerGlobalScope const ukm::SourceId ukm_source_id_; @@ -242,10 +242,10 @@ index c46068b29b4e12ed3fd0be9ccfe828d10754da56..b572e2c20ef64ff0bd7e9f86cf470796 // DevTools agents being configured while waiting for debugger) till the main // script has completed loading. This is so that VT does not run while script diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc -index e85f9c75e8ed6961ef75c1899e93ce12a9af3521..58e22915217f05c88e9f671f6092eeb2b1d7c4d0 100644 +index 630b499aec0699ee4566298db8292ba7d83d19d3..6038911ac770cfd57594bb567bf2ba1e4041924e 100644 --- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc +++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc -@@ -253,6 +253,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( +@@ -250,6 +250,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( /*origin_to_use=*/nullptr, std::move(coep_reporting_observer), std::move(dip_reporting_observer)); 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 232e18e348..a09f591fd0 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -238,10 +238,10 @@ index 67d5ff67d74c107a867b39b306c6528425b87e05..5fd12a25c9e319e8e675955926271c9d diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc new file mode 100644 -index 0000000000000000000000000000000000000000..c5f45c564f015d209aee39b4b8f0fd95ce187907 +index 0000000000000000000000000000000000000000..b0f8d47d9ba077030ab336990c5eefc808747ded --- /dev/null +++ b/components/viz/service/display_embedder/software_output_device_proxy.cc -@@ -0,0 +1,162 @@ +@@ -0,0 +1,160 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -265,8 +265,6 @@ index 0000000000000000000000000000000000000000..c5f45c564f015d209aee39b4b8f0fd95 +#include "skia/ext/skia_utils_win.h" +#include "ui/gfx/win/gdi_util.h" +#include "ui/gfx/win/hwnd_util.h" -+#else -+#include "mojo/public/cpp/base/shared_memory_utils.h" +#endif + +namespace viz { 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 3e84eab63d..1156c7e3e5 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -61,10 +61,10 @@ index 0ae84efaeaf664857afa280ababf28f271291b48..d0957ced725eac4795a1948a5f0820f8 return false; } diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h -index 2c6b978631affb4ced4189af52001f84346b2d4b..66c9cfa97030123eafcb6287ed66fdeef8d58de5 100644 +index 03653541a9216c493b7374d830b78f4e91cbcf49..76b2afad8537b5f21145e06350067eadf895701f 100644 --- a/services/network/public/cpp/url_request_mojom_traits.h +++ b/services/network/public/cpp/url_request_mojom_traits.h -@@ -108,6 +108,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) +@@ -107,6 +107,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) const network::ResourceRequest::TrustedParams& trusted_params) { return trusted_params.include_request_cookies_with_response; } @@ -90,7 +90,7 @@ index 54a18f27c5409bd5893e2dda988581519cb8ca86..5b462dca6277dd542d56344e45d9e417 // when it receives the AcceptCHFrame. EnabledClientHints? enabled_client_hints; diff --git a/services/network/public/mojom/url_response_head.mojom b/services/network/public/mojom/url_response_head.mojom -index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66ef41b5d9 100644 +index 2551c74d161edc11e3d4e95c858c144a063ae80a..a3d1eb8d487a207a5a9c8cdc01ae01dd0073e485 100644 --- a/services/network/public/mojom/url_response_head.mojom +++ b/services/network/public/mojom/url_response_head.mojom @@ -16,6 +16,7 @@ import "services/network/public/mojom/fetch_api.mojom"; @@ -101,7 +101,7 @@ index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66 import "services/network/public/mojom/ip_endpoint.mojom"; import "services/network/public/mojom/load_timing_info.mojom"; import "services/network/public/mojom/load_timing_internal_info.mojom"; -@@ -62,6 +63,9 @@ struct URLResponseHead { +@@ -61,6 +62,9 @@ struct URLResponseHead { // The response headers or NULL if the URL type does not support headers. HttpResponseHeaders? headers; @@ -112,10 +112,10 @@ index 37d07231f3bded16db0ba23448e9e8325a0708a9..9fdfe8ccfec7e497c44a0c7d40fafa66 string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf742f974a 100644 +index 898faffbb8de83dab0de68ca05002040d46bac2b..8671c41c1d6e1816b939544bf99131d0f2a75227 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -372,6 +372,9 @@ URLLoader::URLLoader( +@@ -373,6 +373,9 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, TaskRunner(request.priority)), per_factory_orb_state_(context.GetMutableOrbState()), @@ -125,7 +125,7 @@ index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf devtools_request_id_(request.devtools_request_id), options_(PopulateOptions(options, factory_params_->is_orb_enabled, -@@ -571,7 +574,7 @@ void URLLoader::SetUpUrlRequestCallbacks( +@@ -572,7 +575,7 @@ void URLLoader::SetUpUrlRequestCallbacks( &URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this))); } @@ -134,7 +134,7 @@ index 77842b54b76464e7d51fa2e1611ee4188866aeec..17c7cab592e651c365e8b6b36bd1ebaf url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1172,6 +1175,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1185,6 +1188,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); 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 397718f32f..bac508342a 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 @@ -34,7 +34,7 @@ index 867fc205aaa787cb05c56f8c1fa6d63e2b2ed92f..97567b79069538e23115fc274c10b8a4 } diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc -index 96d653a82111de11be05205117436d8b260d0af1..47e723a87b62df4aac21ebbaa5974994ed0c6b5d 100644 +index 19c07477b186ddebb8c3439bb628f410e0c29199..c623c4451b36738ab91ac42f54c17c91376708bf 100644 --- a/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc @@ -100,7 +100,8 @@ PermissionToSchedulingFeature(PermissionType permission_name) { diff --git a/patches/chromium/fix_add_reinitializegeneratedcodecachecontext_to.patch b/patches/chromium/fix_add_reinitializegeneratedcodecachecontext_to.patch index b4a28a8f37..5cc8efc716 100644 --- a/patches/chromium/fix_add_reinitializegeneratedcodecachecontext_to.patch +++ b/patches/chromium/fix_add_reinitializegeneratedcodecachecontext_to.patch @@ -14,7 +14,7 @@ This new method properly shuts down the existing context and creates a fresh one, allowing Electron session.setCodeCachePath() to work correctly. diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc -index 6b665c4f6193237792a304c9ff317cdfd28b8033..da7c0ff1e863e92efb9183a2a6dab24374043431 100644 +index 7b69ec7f354934ff19e7b95d3ea46b7111935e7b..8e1c495781696340ad9721422b3f133cdf413b35 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc @@ -1885,6 +1885,22 @@ StoragePartitionImpl::GetGeneratedCodeCacheContext() { diff --git a/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch b/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch index 38ee4ddc79..527f963070 100644 --- a/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch +++ b/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch @@ -94,7 +94,7 @@ index a41254c1f31654c1326b4bf1f29237bdf44bbe5a..8ca5673a225b69b5630383ed9673653b StateRestorationData? state_restoration_data; diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h -index 4507428d53ff8290d9a46db7f3066c3495e2fd48..b25ce04c9af04950d827941a57769a242e81d5ce 100644 +index ad6a2ca5960749d2b1a45f39f4ab419370dde406..2c850a6c5d01936052f2eb41f814a25ea109055e 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h @@ -579,6 +579,7 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost diff --git a/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch b/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch index 34967306f0..607f6bf168 100644 --- a/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch +++ b/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch @@ -8,7 +8,7 @@ Check for broken links by confirming the file exists before setting its utime. This patch should be upstreamed & removed. diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index 07e38ef838a0a97d91c49db63a82cb8dd1a124e5..3688df7093f812f8b93e05a1844d05f5e557efdd 100755 +index 200845370e77178aa53b4176a0ea37d322d29881..0a9a72faa21f253399a0ec17a61565bc372667a8 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -217,10 +217,9 @@ def DownloadAndUnpack(url, output_dir, path_prefixes=None, is_known_zip=False): diff --git a/patches/chromium/fix_constrain_allowuniversalaccessfromfileurls_to_file_origins_in.patch b/patches/chromium/fix_constrain_allowuniversalaccessfromfileurls_to_file_origins_in.patch index e851d824d0..bb28018ef2 100644 --- a/patches/chromium/fix_constrain_allowuniversalaccessfromfileurls_to_file_origins_in.patch +++ b/patches/chromium/fix_constrain_allowuniversalaccessfromfileurls_to_file_origins_in.patch @@ -101,10 +101,10 @@ index b5464975a3c365a29e342b0dd57a8a73a311924a..72ebd275330e61a8abebfe6d2c06f425 // universal access privilege. WeakMember universal_access_agent_; diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc -index f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56..ed034ab5b57aa0f91123863280f71738a36f8b00 100644 +index 71fa6521f2842fb338bd03c8dafa2a692ca56bbe..8e3eaf7379f4b4d44f023b9f47bb191d23e88661 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2706,22 +2706,16 @@ bool ShouldReuseDOMWindow(LocalDOMWindow* window, +@@ -2708,22 +2708,16 @@ bool ShouldReuseDOMWindow(LocalDOMWindow* window, return *window_coi_key == *navigation_coi_key; } @@ -131,7 +131,7 @@ index f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56..ed034ab5b57aa0f91123863280f71738 } // Inheriting cases use their agent's AgentClusterKey value, which is set -@@ -2822,7 +2816,7 @@ void DocumentLoader::InitializeWindow(Document* owner_document) { +@@ -2824,7 +2818,7 @@ void DocumentLoader::InitializeWindow(Document* owner_document) { // WindowAgentFactory::GetAgentForOrigin(), as the two conditions below hand // out universal WindowAgent objects, and thus override the AgentClusterKey // provided by the browser process. 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 3cb62264a1..58d6a7aefe 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 @@ -30,10 +30,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 c7f353ae2f75788b027d6d4326429ffe75ef690b..4cb6667c336ca75c6c093f65714c9df0f0456721 100644 +index b71678c8c556d2151e6056f3b94645e1ae1d3f85..173e5a4d002c2f9085abce05057bfc8c82aa4c6e 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -12822,6 +12822,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() { +@@ -12912,6 +12912,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() { target_rph_id); } @@ -47,10 +47,10 @@ index c7f353ae2f75788b027d6d4326429ffe75ef690b..4cb6667c336ca75c6c093f65714c9df0 // 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 60cbdb2246fa60257e7cc84bdbde083f258742e5..f6c4e4cfe08502d4d2a3d4d77d0ea946c5494b56 100644 +index feb3a3d9ab15661cf160eb02af6699645942fcd0..71fa6521f2842fb338bd03c8dafa2a692ca56bbe 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2460,6 +2460,7 @@ Frame* DocumentLoader::CalculateOwnerFrame() { +@@ -2462,6 +2462,7 @@ Frame* DocumentLoader::CalculateOwnerFrame() { scoped_refptr DocumentLoader::CalculateOrigin( Document* owner_document) { scoped_refptr origin; @@ -58,7 +58,7 @@ index 60cbdb2246fa60257e7cc84bdbde083f258742e5..f6c4e4cfe08502d4d2a3d4d77d0ea946 // 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 // true, we won't try to compare the nonce of this origin (if it's opaque) to -@@ -2496,6 +2497,9 @@ scoped_refptr DocumentLoader::CalculateOrigin( +@@ -2498,6 +2499,9 @@ scoped_refptr DocumentLoader::CalculateOrigin( // non-renderer only origin bits will be the same, which will be asserted at // the end of this function. origin = origin_to_commit_; diff --git a/patches/chromium/fix_disabling_background_throttling_in_compositor.patch b/patches/chromium/fix_disabling_background_throttling_in_compositor.patch index ac81304141..d241b29d90 100644 --- a/patches/chromium/fix_disabling_background_throttling_in_compositor.patch +++ b/patches/chromium/fix_disabling_background_throttling_in_compositor.patch @@ -12,10 +12,10 @@ invisible state of the `viz::DisplayScheduler` owned by the `ui::Compositor`. diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc -index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8d4033064 100644 +index 9849318dc25d1677d85b6a0c50e26d12707a313c..3143640cdb21ef2b2d2d2f6d5b49348f3904bf1c 100644 --- a/ui/compositor/compositor.cc +++ b/ui/compositor/compositor.cc -@@ -367,9 +367,11 @@ void Compositor::SetLayerTreeFrameSink( +@@ -359,9 +359,11 @@ void Compositor::SetLayerTreeFrameSink( // to match the Compositor's. if (display_private_) { display_private_->Resize(size()); @@ -29,7 +29,7 @@ index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8 display_private_->SetDisplayColorSpaces(display_color_spaces_); display_private_->SetDisplayColorMatrix( gfx::SkM44ToTransform(display_color_matrix_)); -@@ -609,9 +611,11 @@ void Compositor::SetVisible(bool visible) { +@@ -601,9 +603,11 @@ void Compositor::SetVisible(bool visible) { // updated then. We need to call this even if the visibility hasn't changed, // for the same reason. if (display_private_) { @@ -43,7 +43,7 @@ index 15ca298d14e55f961267ed95b154edceaf23962c..fff8cd62b8f96c45bdacee06ff3a5ae8 } if (changed) { -@@ -1080,6 +1084,17 @@ void Compositor::MaybeUpdateObserveBeginFrame() { +@@ -1072,6 +1076,17 @@ void Compositor::MaybeUpdateObserveBeginFrame() { host_begin_frame_observer_->GetBoundRemote()); } diff --git a/patches/chromium/fix_handle_embedder_windows_shown_after_webcontentsviewcocoa_attach.patch b/patches/chromium/fix_handle_embedder_windows_shown_after_webcontentsviewcocoa_attach.patch index 9f0d9ee385..4c3ac60940 100644 --- a/patches/chromium/fix_handle_embedder_windows_shown_after_webcontentsviewcocoa_attach.patch +++ b/patches/chromium/fix_handle_embedder_windows_shown_after_webcontentsviewcocoa_attach.patch @@ -29,7 +29,7 @@ before first show. This patch can be removed if the changes are upstreamed to Chromium. diff --git a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm -index 60bb2a260cc1ee152d880b8975d3c49de8d8b076..1e03606a23ef78bfb5557ad74acf9a6d419130ba 100644 +index d58fc9c26fc11de46d7fa909389af8eadec532fc..3a9430756b3d8f57fcfa747e922184fdda438655 100644 --- a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm @@ -532,7 +532,8 @@ - (void)updateWebContentsVisibility { diff --git a/patches/chromium/fix_make_macos_text_replacement_work_on_contenteditable.patch b/patches/chromium/fix_make_macos_text_replacement_work_on_contenteditable.patch index 3764b49508..55e66777d5 100644 --- a/patches/chromium/fix_make_macos_text_replacement_work_on_contenteditable.patch +++ b/patches/chromium/fix_make_macos_text_replacement_work_on_contenteditable.patch @@ -11,10 +11,10 @@ is currently bugged on these elements. This patch fixes that. 2. Space now adds a space after accepting the replacement. diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index 5290c0be45600e34d6f5fe32c60cd52019596029..b7a4b146d8650f8597ec6a1314add013eaf293fb 100644 +index 92eaacfb3256ded77bd119e6ca30640472621f79..fbc27e7840584819cdff34565338f797048ab84a 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -@@ -565,6 +565,13 @@ - (void)didAcceptReplacementString:(NSString*)acceptedString +@@ -566,6 +566,13 @@ - (void)didAcceptReplacementString:(NSString*)acceptedString if (acceptedString == nil) return; 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 71b33cf2fe..696b2fedb1 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 @@ -39,7 +39,7 @@ index 0f0580728cac1204749fb084cd4ed987f2cb9d35..e1d627fea429e40fb7f40266b87f514b // Detaches |this| from the input method object. // is_removed flag is true if this is called while the window is diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc -index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962c118c1eb 100644 +index 449766f7add9c53a4043398b682fbc2d7c00b4ba..5fcddedb3c9bc3fc6fda0443774402ab48777da9 100644 --- a/content/browser/renderer_host/text_input_manager.cc +++ b/content/browser/renderer_host/text_input_manager.cc @@ -247,6 +247,7 @@ void TextInputManager::UpdateTextInputState( @@ -50,7 +50,7 @@ index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962 // We reached here because an IPC is received to reset the TextInputState // for |view|. But |view| != |active_view_|, which suggests that at least // one other view has become active and we have received the corresponding -@@ -613,6 +614,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate( +@@ -627,6 +628,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate( observer.OnUpdateTextInputStateCalled(this, updated_view, did_update_state); } @@ -64,10 +64,10 @@ index 7dfe73ff635fda0a139c8507a9c9abd3946d9afa..05f19898d9ca600ba30ab4a739a24962 TextInputManager::ViewState::~ViewState() = default; diff --git a/content/browser/renderer_host/text_input_manager.h b/content/browser/renderer_host/text_input_manager.h -index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e65cfae8c 100644 +index 352238bd76548b0fa808e3e1aa8806fa08bef1e9..6b9c2ee8d4717ebc6791331cd76edea29dd3f3e6 100644 --- a/content/browser/renderer_host/text_input_manager.h +++ b/content/browser/renderer_host/text_input_manager.h -@@ -69,6 +69,10 @@ class CONTENT_EXPORT TextInputManager { +@@ -70,6 +70,10 @@ class CONTENT_EXPORT TextInputManager { virtual void OnTextSelectionChanged( TextInputManager* text_input_manager, RenderWidgetHostViewBase* updated_view) {} @@ -78,7 +78,7 @@ index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e }; // Text selection bounds. -@@ -334,6 +338,7 @@ class CONTENT_EXPORT TextInputManager { +@@ -335,6 +339,7 @@ class CONTENT_EXPORT TextInputManager { void NotifyObserversAboutInputStateUpdate(RenderWidgetHostViewBase* view, bool did_update_state); @@ -87,10 +87,10 @@ index b7d56b17cb00c568fd2ede65d80d20472d69f02a..163d31f860de241e93f03d09e7715c2e // 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 f6bb49b968c872b325d1bed8f0f1e97ba6373e8a..32d39f8efaae61e6feedffb5a65ca57bec9c7402 100644 +index 93d7638d9e5e4f0d3deec048116b4a14c14fa6d8..2b0686787a2845c6a30d382de704d97121910cc0 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -11299,7 +11299,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -11302,7 +11302,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( return; } RenderWidgetHostViewBase* root_view = diff --git a/patches/chromium/fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch b/patches/chromium/fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch index f96ed73ca2..f08e0bfa6a 100644 --- a/patches/chromium/fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch +++ b/patches/chromium/fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch @@ -185,10 +185,10 @@ index f3c132412ca87c3abda84cf91434a9f7d874cb35..c615390ea3d0bc57b39af463ead589a3 bool unadjusted_movement, input::InputRouterImpl::RequestMouseLockCallback response) override; diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e54fb2764 100644 +index 2cdf827b5e490c748d3534bd65f726444d77f44d..eca25b8e5266e8ebdc25522672fe452d1e24ef66 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5522,6 +5522,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext() +@@ -5525,6 +5525,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext() void WebContentsImpl::RequestToLockPointer( RenderWidgetHostImpl* render_widget_host, @@ -196,7 +196,7 @@ index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e bool user_gesture, bool last_unlocked_by_target) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RequestPointerLock", -@@ -5549,9 +5550,19 @@ void WebContentsImpl::RequestToLockPointer( +@@ -5552,9 +5553,19 @@ void WebContentsImpl::RequestToLockPointer( } } @@ -216,7 +216,7 @@ index f32df8715b2b0bd0cce7635fd1138ace9bcbb42b..b1444b41e7e07f5ae9ea23dbefd27c3e observers_.NotifyObservers(&WebContentsObserver::PointerLockRequested); delegate->RequestPointerLock(this, user_gesture, last_unlocked_by_target); } else { -@@ -10188,9 +10199,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() { +@@ -10191,9 +10202,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() { return false; } diff --git a/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch b/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch index d8bf25c0e2..bc2576a4ab 100644 --- a/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch +++ b/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch @@ -8,10 +8,10 @@ such as the background turning black when maximizing the window and dynamic background material settings not taking effect. diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -index 76930906d8ee488228b0572d335b96238369675b..2ef74fbfe2e0f21cc29608ddc23100c3134126de 100644 +index 019956c806c8744c801ede6000b9d7b69043cd07..98756840cc2ad0ef4758c0e19c1591d5306ae3a9 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc -@@ -245,6 +245,10 @@ bool DesktopWindowTreeHostWin::IsInNativeMoveResizeLoop() const { +@@ -246,6 +246,10 @@ bool DesktopWindowTreeHostWin::IsInNativeMoveResizeLoop() const { message_handler_->IsInNativeMenuLoop()); } @@ -23,7 +23,7 @@ index 76930906d8ee488228b0572d335b96238369675b..2ef74fbfe2e0f21cc29608ddc23100c3 void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) { diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h -index 03e1bbb251f6464c5d4ee85b205b5ab99e695334..d42f44a9e734265015cb8fde5d0250955b40fc24 100644 +index f9c940c60010645ee0e1d0838efe395defea53bb..bc8fb2a51498a4853f9234214bb4ac2ae6407fd4 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h @@ -96,6 +96,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin 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 e11cda3855..12b8e444f3 100644 --- a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch +++ b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch @@ -319,7 +319,7 @@ index 4ed8807eadcbdef7c77cb06fa072f90e216b9d2d..d12223bb29774d75e78380887299e831 const mojom::blink::UserActivationOption user_activation_option_; const mojom::blink::LoadEventBlockingOption blocking_option_; diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc -index 81858f85d42f8cbf6d9819b29c0986e32ddb7efa..61aee74888ca20b74dab708b2babfcc804949f51 100644 +index 10662572fd39a4c82b1d50ef7917ea056085da57..10c838bce753dc471f38262526a2c00a2510ef97 100644 --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc @@ -308,6 +308,7 @@ void ExecuteScriptsInMainWorld( diff --git a/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch b/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch index 83da0f2e36..93dd90e09b 100644 --- a/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch +++ b/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch @@ -11,7 +11,7 @@ PlatformStyle::kAutoSelectFirstMenuItemFromKeyboard covers the other views platforms. diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc -index edbc8f5f5f6bba3531f28909f02cfc57d5b7d4d4..4e39581e58b5eadb0ed710436e1f33576a0a1ef8 100644 +index 217fb8b351545a1d6f9ccf402970c4dd05edd789..6579b3991729f925d03b046a8a4926c70553cf91 100644 --- a/ui/views/controls/menu/menu_controller.cc +++ b/ui/views/controls/menu/menu_controller.cc @@ -814,6 +814,22 @@ void MenuController::Run(Widget* parent, diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 9d5cd77d31..0d3a066091 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -20,7 +20,7 @@ index 8e4d3b52676ce9f4ce319af69530232df4fdc380..f591a95e1b4ae2fe9daf0be269d80591 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 3f7dc59112e0f86bd422053f60c2ad5a6a70a0ac..123ad05c62e0fde8e06327f399d36ef2e0273e22 100644 +index b03790aca7fa675c6e33e49f36ee30832b49ef8b..0e05ccf908df7b69ca194338e95ff06b1fec9922 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -354,6 +354,11 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 10c4acdff0..77ed49074f 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,7 +6,7 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index c21e1893e678918f78a9e00af07d635e7aaaccc1..a6cca3a14a01a8a915a3807f995db2e01c8c5c00 100644 +index 9aa5e5af48821b9fce8674bf94f55f6f1d528f87..94042474094da4f833af6598d49d898c8c24da11 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec @@ -1796,6 +1796,11 @@ diff --git a/patches/chromium/linux_don_t_abort_when_the_networkmonitor_portal_s_bus_is_lost.patch b/patches/chromium/linux_don_t_abort_when_the_networkmonitor_portal_s_bus_is_lost.patch deleted file mode 100644 index 3ff2f87f05..0000000000 --- a/patches/chromium/linux_don_t_abort_when_the_networkmonitor_portal_s_bus_is_lost.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shelley Vohr -Date: Mon, 5 Oct 2026 09:32:09 +0000 -Subject: [Linux] Don't abort when the NetworkMonitor portal's bus is lost - -Since https://crrev.com/c/8261571, losing a D-Bus connection is fatal -only for a dbus::Bus without Options::disconnected_callback. -https://crrev.com/c/8448270 landed just before it and creates a private -session bus in PortalMonitorImpl without that option, which did not -exist yet. So when the session bus goes away, that bus's thread still -hits LOG(FATAL), racing the session end that the shared bus's callback -starts. - -Set the callback. Without a bus there is no portal, so report that the -way OnNameOwnerChanged() does when the portal goes away. - -Also update a comment that names a function 8261571 renamed. - -Tested by killing a private dbus-daemon under content_shell: it aborted -in Bus::OnConnectionDisconnected() on the portal bus's thread 5 of 5 -times before, and never after. - -Bug: 537480522 - -Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/8512441; -remove this patch when it rolls in. - -diff --git a/net/base/network_change_notifier_linux_portal.cc b/net/base/network_change_notifier_linux_portal.cc -index 4c7f4f8fd9f767140b1c4ba3e35a65218d8de0eb..20ea9c44d838a395233e384a180b6e9f904e8e55 100644 ---- a/net/base/network_change_notifier_linux_portal.cc -+++ b/net/base/network_change_notifier_linux_portal.cc -@@ -55,7 +55,7 @@ class PortalMonitorImpl : public NetworkChangeNotifierLinux::PortalMonitor { - // 2. In unit test suites (e.g. `net_unittests`), cross-platform tests - // call `NetworkChangeNotifier::CreateIfNeeded()` across sequential - // `TaskEnvironment`s without calling -- // `dbus_thread_linux::ShutdownOnDBusThreadAndBlock()`. Using -+ // `dbus_thread_linux::Shutdown()`. Using - // process-global D-Bus singletons retains a stale origin `TaskRunner` - // from the first test's destroyed `TaskEnvironment`. Owning a private - // bus here and shutting it down in `~PortalMonitorImpl()` ties the -@@ -70,6 +70,11 @@ class PortalMonitorImpl : public NetworkChangeNotifierLinux::PortalMonitor { - options.dbus_task_runner = base::ThreadPool::CreateSingleThreadTaskRunner( - {base::MayBlock(), base::TaskPriority::USER_VISIBLE}, - base::SingleThreadTaskRunnerThreadMode::DEDICATED); -+ // `dbus::Bus` aborts the process without this. Losing the bus means -+ // losing the portal, so handle it like the portal going away. -+ options.disconnected_callback = base::BindOnce( -+ &PortalMonitorImpl::OnNameOwnerChanged, -+ weak_ptr_factory_.GetWeakPtr(), std::string(), std::string()); - bus_ = base::MakeRefCounted(std::move(options)); - } else { - bus_->AssertOnOriginThread(); 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 614ee8978a..cbe121d32d 100644 --- a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch +++ b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch @@ -50,7 +50,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 9ab3d0abf667e8094bcdc18dab7879d1ddb96a5a..4f45a17ed648bc7391b78cb28c7fe432b951fda2 100644 +index 2587bd828b83beac1ea36b119b3674c1b5d6b4c2..8e7174ba2fe424ac4440fa81c97e976ccf71edf1 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -1154,6 +1154,7 @@ component("base") { @@ -129,10 +129,10 @@ index 416e541436d201aabca26cdbf7e8477103bd014c..8c5f92b03d67e5f0587b0e9420969061 } diff --git a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn -index 93470014129c5b20fa076c0200f2661c7a1df7dd..62236733e5ec7e3b8ffa98c3e0e244c8de9ab333 100644 +index a93b1d54a43b2cdee79bb1ff64d14e70c30a8160..5df1705ad1d2827f51fc32c61bae19e56ce7cfd1 100644 --- a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn +++ b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn -@@ -1049,6 +1049,7 @@ if (is_clang_or_gcc) { +@@ -1051,6 +1051,7 @@ if (is_clang_or_gcc) { ":allocator_base", ":allocator_core", ":buildflags", @@ -971,10 +971,10 @@ index 010c713090e5038dc90db131c8f621422d30c03b..20c35e887a0496ee609c077e3b0494bd void ForwardKeyboardEvent(const input::NativeWebKeyboardEvent& key_event, diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd52019596029 100644 +index c74a6130862162d4fdb07cf3d4a60604d0ae0482..92eaacfb3256ded77bd119e6ca30640472621f79 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -@@ -34,6 +34,7 @@ +@@ -35,6 +35,7 @@ #import "content/public/browser/render_widget_host_view_mac_delegate.h" #include "content/public/browser/scoped_accessibility_mode.h" #include "content/public/common/content_features.h" @@ -982,7 +982,7 @@ index da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd520 #include "skia/ext/skia_utils_mac.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/input/input_handler.mojom.h" -@@ -2486,15 +2487,21 @@ - (NSAccessibilityRole)accessibilityRole { +@@ -2499,15 +2500,21 @@ - (NSAccessibilityRole)accessibilityRole { // Since this implementation doesn't have to wait any IPC calls, this doesn't // make any key-typing jank. --hbono 7/23/09 // @@ -1005,10 +1005,10 @@ index da8d56053e6583457a6fde9aa8bd42f5825c86ef..5290c0be45600e34d6f5fe32c60cd520 return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 80301d40f0402c41d233a0c7aa494755743a01fa..ce2d955d5ef046b8400662b00a148547f4e4ebc2 100644 +index bee9872ba3e310dcc1d57fc399d44926c178b884..3de9bb066f0a204695b402528975703bf6d52e13 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -384,6 +384,7 @@ source_set("browser") { +@@ -385,6 +385,7 @@ source_set("browser") { "//ui/webui/resources", "//v8", "//v8:v8_version", @@ -1220,10 +1220,10 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbddd257dc36 100644 +index 02f6f34876629b41109eb5265bb8a6b13f6ead3f..90ff2ee690a3387e9d981ad69e74e4c5de22f382 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -652,6 +652,7 @@ static_library("test_support") { +@@ -653,6 +653,7 @@ static_library("test_support") { "//url", "//url/mojom:url_mojom_gurl", "//v8", @@ -1231,7 +1231,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd ] data_deps = [ -@@ -1140,6 +1141,8 @@ static_library("browsertest_support") { +@@ -1141,6 +1142,8 @@ static_library("browsertest_support") { # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] @@ -1240,7 +1240,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd } mojom("content_test_mojo_bindings") { -@@ -2045,6 +2048,7 @@ test("content_browsertests") { +@@ -2067,6 +2070,7 @@ test("content_browsertests") { "//ui/shell_dialogs", "//ui/snapshot", "//ui/webui:test_support", @@ -1248,7 +1248,7 @@ index b688001a9e3f4ac1c6ebea2717c4cb430e4c6e8c..4c03e45e8b1c688927def87205e7bbdd ] if (!(is_chromeos && target_cpu == "arm64" && current_cpu == "arm")) { -@@ -3425,6 +3429,7 @@ test("content_unittests") { +@@ -3455,6 +3459,7 @@ test("content_unittests") { "//ui/shell_dialogs", "//ui/webui:test_support", "//url", @@ -1327,10 +1327,10 @@ index 8940cda1ea6211df84da098078a1f90c66666013..335e42c54e5d6a9f591065519443e99c base::WeakPtr diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn -index bf72ef96a2789b2a125b22ad51b3fe27a0c61e4a..047352e2bec30754f66e223c210075d905ab25d7 100644 +index 86a6d2345caae8300b7494bc02e226d4bd6dbd0b..661c23091fb8e7cc554072f80d4815e9628ac1e7 100644 --- a/gpu/ipc/service/BUILD.gn +++ b/gpu/ipc/service/BUILD.gn -@@ -134,6 +134,7 @@ component("service") { +@@ -136,6 +136,7 @@ component("service") { "QuartzCore.framework", ] defines += [ "GL_SILENCE_DEPRECATION" ] @@ -1373,7 +1373,7 @@ index 8667a1ba4f71a57f61915bb2588a338e5960a952..099a65446d90b10b021ac47d1c4e26b1 if (is_ios) { diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc -index c09d7c056a8b16bd31b4f8c428d42e2c423efd18..0e2d08cd7f94b50e116085a7fcfd99087b0076ce 100644 +index d9014423b00c31677765e5eede59b79576451fdc..239fbc68ac6ada16dce7c7b1bac74df40f3a15e9 100644 --- a/media/audio/apple/audio_low_latency_input.cc +++ b/media/audio/apple/audio_low_latency_input.cc @@ -28,6 +28,7 @@ @@ -1817,7 +1817,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 0da517e172ba0ffffb551173748312c35582b084..f817df64c14c638900b15a7ab699d0215ffc0235 100644 +index e5fe811ee0c302fdc22eb7d6678d48b5dd5ccc34..d7b9372e0f071374de358e5825ed3bb46719a79e 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn @@ -446,6 +446,7 @@ component("core") { @@ -2163,7 +2163,7 @@ index 9423a2891552e8df3ea5b05c720ab11795c4b92d..610c479ef03759d3082b42d7a402cbea // Accessible object if (AXElementWrapper::IsValidElement(value)) { diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 0c60d955d51d899ceced2fe3d6483913e7160db4..6ce33e05e71c9941a76f1b9de22f2faf51550947 100644 +index dd9811827c1d7a4a0afe006ba6c0bbc17f58d3a6..3399f82675e57a1f9feb8f33ba1666dde84731cb 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn @@ -367,6 +367,13 @@ component("base") { @@ -2284,7 +2284,7 @@ index 93e90c4eba9bc9b93d68e834eb6baabeb2d0ecf0..1b90f41d05f847a94adf2f4da827b1d0 } // namespace diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn -index cf4c30f417f9a7689f02ceec3b9326e9ca9989b7..ed8059a069757b5d0ce4fd8b0925e89d69a97a07 100644 +index 6c05f8468aa42999be7a1b5d5d3f854813252e0c..16030a4b11926eb0f4c3b960d3209c8d028c5f65 100644 --- a/ui/display/BUILD.gn +++ b/ui/display/BUILD.gn @@ -142,6 +142,12 @@ component("display") { @@ -2382,7 +2382,7 @@ index 65ae8170664d15c7884261812400d0ed638a681d..86c937f1e6d03b88803a2ca80abff19c // enough. return PlatformFontMac::SystemFontType::kGeneral; diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn -index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d53297514 100644 +index cb35a2682b68f90a0e6d9916a845c8e1b4b52e23..686c60c0a57be23aa323b96fa5d423278eeeaa1a 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn @@ -791,6 +791,8 @@ component("views") { @@ -2394,7 +2394,7 @@ index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d } if (is_win) { -@@ -1210,6 +1212,8 @@ source_set("test_support") { +@@ -1212,6 +1214,8 @@ source_set("test_support") { "//ui/base/mojom:ui_base_types", ] @@ -2404,7 +2404,7 @@ index 4b93fb6b10d7f5c1059abdd60fa0e51d699c3e8f..2674e1d0a8aea68b8d3583414f12ff1d sources += [ "test/desktop_window_tree_host_win_test_api.cc", diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h -index aa953e712eb73df08602c36278b8a003ce5114bc..4507428d53ff8290d9a46db7f3066c3495e2fd48 100644 +index d2a9632c4c8097f426ccf8f62597a67d1ca5bb3b..ad6a2ca5960749d2b1a45f39f4ab419370dde406 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h @@ -20,6 +20,7 @@ @@ -2518,7 +2518,7 @@ index 352ef08958711c421ef89c48125c7505ed024afe..dcdfee94a5959f49422b4c37a0fbac9c } diff --git a/ui/views/controls/webview/BUILD.gn b/ui/views/controls/webview/BUILD.gn -index bec4d5e3e528369e2806d15731ea2adf6d26fcce..b07544396dad253758877b496b67da2e17a957a2 100644 +index f9d0756f8031155c15df2e861c11de9343d6d938..ca00e8523a1b82e86fc74421ff90b566c58687cc 100644 --- a/ui/views/controls/webview/BUILD.gn +++ b/ui/views/controls/webview/BUILD.gn @@ -51,6 +51,12 @@ component("webview") { diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index 7500a01339..b61e7ce2d9 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -133,7 +133,7 @@ index 9bf238e64af483294ae3c3f18a4e9aed49a8658d..b9b2a4c8c387b8e8b4eb1f02fc0f891c 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 417fc8b63df0c0761a909ea1d47015ccd635db21..b3d13a17d82104f21f626e38c8104d2a562dc313 100644 +index cf64747dbc2a2800d42a8993d8f0b856c7ba1822..712445d23f1375d9089d3f33366e418ca880b2c1 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -2557,7 +2557,7 @@ void RenderProcessHostImpl::CreateNotificationService( 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 667e86a4d8..4d85247810 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -44,10 +44,10 @@ index 9babca6b48195d7f44d0d4864812a4b465a8234a..ad76883e10f77ce740838738b6bc420a void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index bf77ced730a07e68910f7061749b57a2a2d854cf..7cbdb8c3633f64c61476158d8b2b887332d97f5a 100644 +index 5c602a33195a1ad99d7c14efc4b7f215af6a77a5..ec57760fbdd9c69223b0f4bdf30e7df518f5a05b 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -6761,6 +6761,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -6764,6 +6764,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } diff --git a/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch b/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch index de0fb93f83..922fcda057 100644 --- a/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch +++ b/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch @@ -30,7 +30,7 @@ index 97567b79069538e23115fc274c10b8a41ea94e61..27de5449463b341b5e9b0c14f0475fa8 return ContentSettingsType::DEFAULT; diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc -index 47e723a87b62df4aac21ebbaa5974994ed0c6b5d..699af929a6d3fe52e3cc8e9560014710bbcb6653 100644 +index c623c4451b36738ab91ac42f54c17c91376708bf..ec80237a64dc0dc25d623a0f0a0fc75175cf01f7 100644 --- a/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc @@ -100,9 +100,15 @@ PermissionToSchedulingFeature(PermissionType permission_name) { diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index d30c2b54d2..fcff8ecfbd 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 99b25c0036562af4671dd87173a1ef80923b8f45..f32df8715b2b0bd0cce7635fd1138ace9bcbb42b 100644 +index 9c2a2cc5043fcfb6f5ecc234e441a47078bee18c..2cdf827b5e490c748d3534bd65f726444d77f44d 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -11444,25 +11444,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -11447,25 +11447,13 @@ void WebContentsImpl::RendererUnresponsive( base::RepeatingClosure hang_monitor_restarter) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive", "render_widget_host", render_widget_host); diff --git a/patches/chromium/render_widget_host_view_mac.patch b/patches/chromium/render_widget_host_view_mac.patch index 24465107f4..b7bbb3496c 100644 --- a/patches/chromium/render_widget_host_view_mac.patch +++ b/patches/chromium/render_widget_host_view_mac.patch @@ -8,10 +8,10 @@ respond to the first mouse click in their window, which is desirable for some kinds of utility windows. Similarly for `disableAutoHideCursor`. diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5825c86ef 100644 +index b72b0edd65c823f5dd8933a1eaf6b1ca59a61e6b..c74a6130862162d4fdb07cf3d4a60604d0ae0482 100644 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -@@ -191,6 +191,11 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -192,6 +192,11 @@ void ExtractUnderlines(NSAttributedString* string, } // namespace @@ -23,7 +23,7 @@ index e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5 // RenderWidgetHostViewCocoa --------------------------------------------------- // Private methods: -@@ -855,6 +860,10 @@ - (AcceptMouseEvents)acceptsMouseEventsOption { +@@ -856,6 +861,10 @@ - (AcceptMouseEvents)acceptsMouseEventsOption { } - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent { @@ -31,10 +31,10 @@ index e375936a688a781fca010cd02da1ff41cbf3870b..da8d56053e6583457a6fde9aa8bd42f5 + [self.window acceptsFirstMouse]) + return YES; + - // Enable "click-through" if mouse clicks are accepted in inactive windows. - return - [self acceptsMouseEventsOption] > AcceptMouseEvents::kWhenInActiveWindow; -@@ -1514,6 +1523,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { + // A click that another process posts straight to this process does not + // activate the app, unlike one the window server routes here, so treating it + // as an activation click would only drop it. +@@ -1527,6 +1536,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { eventType == NSEventTypeKeyDown && !(modifierFlags & NSEventModifierFlagCommand); diff --git a/patches/chromium/revert_only_preload_swiftshader_in_gpu_sandbox_init_when_allowed.patch b/patches/chromium/revert_only_preload_swiftshader_in_gpu_sandbox_init_when_allowed.patch index 7946cd9b9a..2c71c0cf25 100644 --- a/patches/chromium/revert_only_preload_swiftshader_in_gpu_sandbox_init_when_allowed.patch +++ b/patches/chromium/revert_only_preload_swiftshader_in_gpu_sandbox_init_when_allowed.patch @@ -22,10 +22,10 @@ https://chromium-review.googlesource.com/c/chromium/src/+/8286976; this patch can be dropped once that or an equivalent lands. diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc -index b0057803f63f385fef39bfe4e95d74bd0767d836..a09895577c95c225dc224a47f65ad7c47f3296f0 100644 +index 742a7f02ecf0d4e220a2e380011960e32fce5d97..1c7d47525715c8a410772d5b929b6688cbb9b423 100644 --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -751,17 +751,7 @@ bool GpuInit1::InitializeAndStartSandbox( +@@ -750,17 +750,7 @@ bool GpuInitLegacy::InitializeAndStartSandbox( base::FilePath module_path; if (base::PathService::Get(base::DIR_MODULE, &module_path)) { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 01df70811b..db84114b3b 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it does touch a security-sensitive class. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index b3d13a17d82104f21f626e38c8104d2a562dc313..12bea67e93a754436742bec589085d3e827b4c53 100644 +index 712445d23f1375d9089d3f33366e418ca880b2c1..d7c1182300c69e11d7e2adc9365cd9e1be9f6514 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -2135,6 +2135,10 @@ bool RenderProcessHostImpl::Init() { diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index d095f6be84..2390946a50 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 7cbdb8c3633f64c61476158d8b2b887332d97f5a..942c11c20135f0765566a2259a4f068bd640db84 100644 +index ec57760fbdd9c69223b0f4bdf30e7df518f5a05b..bb9af98386d2565cde418c7888513e3cfba4daa4 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4545,6 +4545,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -4548,6 +4548,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, params.main_frame_name, GetOpener(), primary_main_frame_policy, base::UnguessableToken::Create()); @@ -26,7 +26,7 @@ index 7cbdb8c3633f64c61476158d8b2b887332d97f5a..942c11c20135f0765566a2259a4f068b std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -4555,6 +4562,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -4558,6 +4565,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index b7c507373d..95f57ddbf8 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 0755fe453878fb011fae7c1d427ca025cdc7dcb2..a7352e60788645d890f5d83ec9dd8adcc8c8efa9 100644 +index 5b5d4094ae4ad6a33570e107d75eb249ef8df7c7..333c373fed9d24630c80eaebf85fcb7c64acee36 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9605,6 +9605,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -9602,6 +9602,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,10 +37,10 @@ index 0755fe453878fb011fae7c1d427ca025cdc7dcb2..a7352e60788645d890f5d83ec9dd8adc 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 942c11c20135f0765566a2259a4f068bd640db84..f6bb49b968c872b325d1bed8f0f1e97ba6373e8a 100644 +index bb9af98386d2565cde418c7888513e3cfba4daa4..93d7638d9e5e4f0d3deec048116b4a14c14fa6d8 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4838,21 +4838,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( +@@ -4841,21 +4841,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( const input::NativeWebKeyboardEvent& event) { OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"), "WebContentsImpl::PreHandleKeyboardEvent"); diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index f9d72393e9..9e2102e2d2 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -26,10 +26,10 @@ index ee1ba2eeb47f936cf1b7cb7634a9f1f91f0a5246..d3816541c8b0a31d522a5a8d1eb82a5e // An empty URL is returned if the URL is not overriden. virtual GURL OverrideFlashEmbedWithHTML(const GURL& url); diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 4341f407c4fb27afd20162eee63157cb92ca6515..3fdfbdf2a3156b84a936febe4b52c49d70126f97 100644 +index 063cec06ba0dc94a28c4f6698f6f165359011c23..0985affc64c23e55045702dabcb6cb968ff5fcff 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -934,6 +934,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { +@@ -948,6 +948,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread(); } @@ -43,10 +43,10 @@ index 4341f407c4fb27afd20162eee63157cb92ca6515..3fdfbdf2a3156b84a936febe4b52c49d const v8::Local& worker) { GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 2266ee880b69ca9c41bd72029b55852b476772e5..1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0 100644 +index 0fe9e989c048a057e8c1e5becf11db35b584ec44..c559e65f47fb140074881be0a7a2cd002a293837 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -216,6 +216,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -217,6 +217,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void DidStartWorkerThread() override; void WillStopWorkerThread() override; void WorkerContextCreated(const v8::Local& worker) override; @@ -55,10 +55,10 @@ index 2266ee880b69ca9c41bd72029b55852b476772e5..1fff6d5b78fce0e10e3e87dd1b56c499 const blink::WebSecurityOrigin& origin) override; bool OriginCanAccessServiceWorkers(const GURL& url) override; diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index 9ef66ec39e8cb8ef9a8753baf7bbddc227768d77..6eef1315ebe70ce614426d847674e1be8c7d9c09 100644 +index 25844b6fbed36ecf8ab30c03f8319b4188da53f1..7d83228b422266255c80be30e5b92feff6d6029f 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -699,6 +699,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -704,6 +704,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -67,10 +67,10 @@ index 9ef66ec39e8cb8ef9a8753baf7bbddc227768d77..6eef1315ebe70ce614426d847674e1be const WebSecurityOrigin& origin) { return ProtocolHandlerSecurityLevel::kStrict; diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc -index 49c20b576c1f003c2326fbf12242099c811a1713..8917948f39604767f8f858fe48fa8624a1ae6cbb 100644 +index ecfc8a2a4deb5514c38c50f807aeb586984df39e..ba25ff68e2ceca01d02aff09a124fe5b6fbaa9d9 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -811,6 +811,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -787,6 +787,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { } pause_handle_.reset(); diff --git a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch index 58b400ec42..be31f11767 100644 --- a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch +++ b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch @@ -35,10 +35,10 @@ index d3816541c8b0a31d522a5a8d1eb82a5ea26d0601..3b8f4f78b045b813693e3ee33ce7bac2 // from the worker thread. virtual void WillDestroyWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 3fdfbdf2a3156b84a936febe4b52c49d70126f97..76defb35003dccfdb0cb5632c2e6c0e89f2a78ca 100644 +index 0985affc64c23e55045702dabcb6cb968ff5fcff..d727a494290e9abe36410505f1f30de6aabbf205 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -946,6 +946,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( +@@ -960,6 +960,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( worker); } @@ -52,10 +52,10 @@ index 3fdfbdf2a3156b84a936febe4b52c49d70126f97..76defb35003dccfdb0cb5632c2e6c0e8 RendererBlinkPlatformImpl::GetProtocolHandlerSecurityLevel( const blink::WebSecurityOrigin& origin) { diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0..1a21b977500820f1e34eb028c4aaa7addb279c65 100644 +index c559e65f47fb140074881be0a7a2cd002a293837..f894f730da37ba6480273e9f7a518c47e9528f06 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h -@@ -216,6 +216,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { +@@ -217,6 +217,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { void DidStartWorkerThread() override; void WillStopWorkerThread() override; void WorkerContextCreated(const v8::Local& worker) override; @@ -65,10 +65,10 @@ index 1fff6d5b78fce0e10e3e87dd1b56c4994b7b9ee0..1a21b977500820f1e34eb028c4aaa7ad blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel( const blink::WebSecurityOrigin& origin) override; diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index 6eef1315ebe70ce614426d847674e1be8c7d9c09..d9b25e76c3bff560e5246d1664562a98a7040a7f 100644 +index 7d83228b422266255c80be30e5b92feff6d6029f..330a64e577a57ef5014b8a5cf1214fcd8fe1fa64 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -699,6 +699,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -704,6 +704,8 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -78,10 +78,10 @@ index 6eef1315ebe70ce614426d847674e1be8c7d9c09..d9b25e76c3bff560e5246d1664562a98 virtual ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel( const WebSecurityOrigin& origin) { diff --git a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc -index e4cbe33f771c8afe5157388fffc7aaeeb2431f9e..297dd8ac99ced5d279838827e930f5fd2a8714eb 100644 +index d49942426cbbf42e48b3e87b37b986445b6785c7..b897828a3a041a448e13c86845caa21b76a2960d 100644 --- a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc +++ b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.cc -@@ -290,6 +290,7 @@ void WorkerOrWorkletScriptController::PrepareForEvaluation() { +@@ -266,6 +266,7 @@ void WorkerOrWorkletScriptController::PrepareForEvaluation() { V8PerContextData* per_context_data = script_state_->PerContextData(); std::ignore = per_context_data->ConstructorForType(global_scope_->GetWrapperTypeInfo()); diff --git a/patches/ffmpeg/link_with_loader_path.patch b/patches/ffmpeg/link_with_loader_path.patch index 6805e4bd2a..58ddf22e7c 100644 --- a/patches/ffmpeg/link_with_loader_path.patch +++ b/patches/ffmpeg/link_with_loader_path.patch @@ -15,10 +15,10 @@ include the out dir, and the linker won't be able to find ffmpeg.dylib because of so. diff --git a/BUILD.gn b/BUILD.gn -index 4e2e57ad83be5de10fb7322fbb5ec28fadcb17d8..c5f163fe5091625b061f124690b9e4a1d8465548 100644 +index a00ce51d43a5c3353fd3cebee6bc9d06a37ab0cc..81f0f1a30208b31fda80f771591a39bcaf60f75f 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -487,7 +487,7 @@ if (is_component_ffmpeg) { +@@ -479,7 +479,7 @@ if (is_component_ffmpeg) { if (!is_component_build) { if (is_mac) { diff --git a/patches/v8/.patches b/patches/v8/.patches index c622a68173..c8745e326d 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -2,4 +2,3 @@ build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch src_use_legacy_trace_macros_in_perfetto_to_support_all_phases.patch feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch -metagen_relocate_explicit_macos_sdk_paths_for_temporary_gn_queries.patch diff --git a/patches/v8/build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch b/patches/v8/build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch index b1550e6c93..93dd243e47 100644 --- a/patches/v8/build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch +++ b/patches/v8/build_warn_instead_of_abort_on_builtin_pgo_profile_mismatch.patch @@ -15,10 +15,10 @@ Rather than disabling builtins PGO entirely, warn and skip mismatched builtins so all other builtins still benefit from PGO. diff --git a/BUILD.gn b/BUILD.gn -index 4f9e9103e861783a70661263c1f82d6d982fac5b..4b7f8f537f17f0734c2315dd7cb813b396e8a5c6 100644 +index 3385349b0edb384dd43ed2f3c34ee907202ef1cd..cbab33240a3e8a9007ebacc6e7d0f954a8c22b1b 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -3185,9 +3185,11 @@ template("run_mksnapshot") { +@@ -3187,9 +3187,11 @@ template("run_mksnapshot") { "--turbo-profiling-input", rebase_path(v8_builtins_profiling_log_file, root_build_dir), diff --git a/patches/v8/feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch b/patches/v8/feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch index fe46356bd9..548e144113 100644 --- a/patches/v8/feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch +++ b/patches/v8/feat_key_code_caches_to_the_patch_set_and_the_embedded_blob.patch @@ -29,7 +29,7 @@ This adds two things: Both parts are suitable for upstreaming. diff --git a/BUILD.gn b/BUILD.gn -index 4b7f8f537f17f0734c2315dd7cb813b396e8a5c6..a3cab682aaf5e7ea862cb9fe5c589dd7f68ae528 100644 +index cbab33240a3e8a9007ebacc6e7d0f954a8c22b1b..bfe1248266f9e5c90ad0e77a99923b99af7cce4f 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -21,6 +21,7 @@ import("//third_party/icu/config.gni") @@ -40,7 +40,7 @@ index 4b7f8f537f17f0734c2315dd7cb813b396e8a5c6..a3cab682aaf5e7ea862cb9fe5c589dd7 if (is_clang) { import("//build/config/clang/clang.gni") -@@ -1325,6 +1326,14 @@ enabled_external_defines = +@@ -1330,6 +1331,14 @@ enabled_external_defines = disabled_external_defines = disabled_external_v8_defines + disabled_external_cppgc_defines @@ -128,10 +128,10 @@ index 0a0134e043722757bb85db55cf555974420e9b57..918d4bacf66e45bbd6ffc63d01de755f // Calculate the V8 version string. diff --git a/src/wasm/wasm-serialization.cc b/src/wasm/wasm-serialization.cc -index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8f6f54617 100644 +index a955b8f3a3d942d381c06b366928e8aadb9e4c9d..efb5aa20ae1f1ea87837ac029f82669440538d4f 100644 --- a/src/wasm/wasm-serialization.cc +++ b/src/wasm/wasm-serialization.cc -@@ -8,6 +8,7 @@ +@@ -9,6 +9,7 @@ #include "src/codegen/assembler-inl.h" #include "src/debug/debug.h" #include "src/runtime/runtime.h" @@ -139,7 +139,7 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8 #include "src/snapshot/snapshot-data.h" #include "src/utils/ostreams.h" #include "src/utils/version.h" -@@ -128,9 +129,20 @@ class Reader { +@@ -129,9 +130,20 @@ class Reader { const uint8_t* pos_; }; @@ -162,7 +162,7 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8 sizeof(typename CompileTimeImportFlags::StorageType) + sizeof(uint32_t) + // length of constants_module. compile_imports.constants_module().size(); -@@ -141,6 +153,7 @@ void WriteHeader(Writer* writer, WasmEnabledFeatures enabled_features, +@@ -142,6 +154,7 @@ void WriteHeader(Writer* writer, WasmEnabledFeatures enabled_features, DCHECK_EQ(0, writer->bytes_written()); writer->Write(SerializedData::kMagicNumber); writer->Write(Version::Hash()); @@ -171,10 +171,10 @@ index de8e70d82b0ff6ac6c66540d8ea4154cec56c6bd..5bc220a8327b71d1f37a9ce784afcba8 writer->Write(FlagList::Hash()); writer->Write(enabled_features.ToIntegral()); diff --git a/src/wasm/wasm-serialization.h b/src/wasm/wasm-serialization.h -index 31becd542dd6ff9d72dc9e9e89fb6ced399920f8..bf38e9ddc0d3247bd2a1f9f8b3a2f4e6b9e208b9 100644 +index 3e570ad246e065c12b12d10a8766e79599362298..0806e312e76d7eec05a7d586c3b32247ae977f34 100644 --- a/src/wasm/wasm-serialization.h +++ b/src/wasm/wasm-serialization.h -@@ -30,10 +30,11 @@ class V8_EXPORT_PRIVATE WasmSerializer { +@@ -31,10 +31,11 @@ class V8_EXPORT_PRIVATE WasmSerializer { // The data header consists of (see {WriteHeader}): // [0] magic number (uint32_t) // [1] version hash (uint32_t) diff --git a/patches/v8/fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch b/patches/v8/fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch index 6c5658bf24..8fb6c024bd 100644 --- a/patches/v8/fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch +++ b/patches/v8/fix_allow_embedder_slots_of_non-api_objects_in_snapshot.patch @@ -17,7 +17,7 @@ IterateJSObjectBodyImpl() visits. This should be upstreamed. diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc -index 1367b49400f499d6a371069c5bb105d69ebd7063..4b7e88dcb3946e3a7c8d057998da5cf42fd4eaac 100644 +index 51134f4cb582990410b491d402ef55be34d9b0c6..35e6a65112e721813ddb328264256fc3dd353262 100644 --- a/src/snapshot/serializer.cc +++ b/src/snapshot/serializer.cc @@ -19,6 +19,7 @@ @@ -28,7 +28,7 @@ index 1367b49400f499d6a371069c5bb105d69ebd7063..4b7e88dcb3946e3a7c8d057998da5cf4 #include "src/objects/map.h" #include "src/objects/objects-body-descriptors-inl.h" #include "src/objects/slots-inl.h" -@@ -1123,8 +1124,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer( +@@ -1130,8 +1131,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer( // We serialize the slot as initialized-but-unused slot. The actual API // wrapper serialization is implemented in // `ContextSerializer::SerializeApiWrapperFields()`. diff --git a/patches/v8/metagen_relocate_explicit_macos_sdk_paths_for_temporary_gn_queries.patch b/patches/v8/metagen_relocate_explicit_macos_sdk_paths_for_temporary_gn_queries.patch deleted file mode 100644 index 47712cbb33..0000000000 --- a/patches/v8/metagen_relocate_explicit_macos_sdk_paths_for_temporary_gn_queries.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: deepak1556 -Date: Thu, 8 Oct 2026 19:22:50 +0900 -Subject: [metagen] Relocate explicit macOS SDK paths for temporary GN queries - -An explicit mac_sdk_path under the active output directory remains -unchanged when args.gn is copied into the temporary GN query directory. -Chromium's sdk_inputs action then declares outputs outside that -directory, causing gn desc to fail. - -On macOS, copy the embedder SDK symlinks into the temporary directory -and rebase mac_sdk_path there. Preserve the existing restoration and -temporary query isolation. Additionally, include GN stdout in failure -diagnostics. - -This is a temporary workaround until CL 8499914 replaces the GN query -with action substitutions. - -Bug: 531344950 -Fixed: 570412918 -Change-Id: Iad20a9e8465546c11003d152ff27e69e5896e343 -Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8535626 -Auto-Submit: Deepak Mohan (Robo) -Reviewed-by: Toon Verwaest -Commit-Queue: Deepak Mohan (Robo) -Reviewed-by: Jakob Linke -Cr-Commit-Position: refs/heads/main@{#110468} - -diff --git a/tools/metagen/compile_flags.py b/tools/metagen/compile_flags.py -index d7c469d6f4982a83e7c970bebfc1fe412833e7b8..6f27783da236d77274055be64df1547f93a09eff 100644 ---- a/tools/metagen/compile_flags.py -+++ b/tools/metagen/compile_flags.py -@@ -180,6 +180,20 @@ def get_compile_args_from_gn_desc(build_dir: str, target_label: str, - with tempfile.TemporaryDirectory(dir=os.path.dirname(build_dir)) as tmp_dir: - shutil.copyfile( - os.path.join(build_dir, "args.gn"), os.path.join(tmp_dir, "args.gn")) -+ if sys.platform == "darwin": -+ sdk_links = os.path.join(build_dir, "xcode_links") -+ if os.path.isdir(sdk_links): -+ shutil.copytree( -+ sdk_links, os.path.join(tmp_dir, "xcode_links"), symlinks=True) -+ # Explicit SDK paths supplied by embedder build tools must stay below -+ # the query's output directory for Chromium's sdk_inputs action. -+ old_sdk_root = "//" + os.path.relpath(build_dir, source_root) + "/" -+ new_sdk_root = "//" + os.path.relpath(tmp_dir, source_root) + "/" -+ with open(os.path.join(tmp_dir, "args.gn"), "a") as f: -+ f.write("\nif (defined(mac_sdk_path)) {\n") -+ f.write(" mac_sdk_path = string_replace(mac_sdk_path, " -+ f"{json.dumps(old_sdk_root)}, {json.dumps(new_sdk_root)})\n") -+ f.write("}\n") - open(os.path.join(tmp_dir, "build.ninja"), "w").close() - try: - # -q ("don't print output on success") keeps stdout to the JSON alone. -@@ -201,7 +215,9 @@ def get_compile_args_from_gn_desc(build_dir: str, target_label: str, - except subprocess.CalledProcessError as e: - raise RuntimeError(f"[metagen] `gn desc {tmp_dir} {target_label}` failed " - f"(exit {e.returncode}). Is the target part of that " -- f"toolchain's build?\n{(e.stderr or '').strip()}") -+ f"toolchain's build?\n" -+ f"{(e.stdout or '').strip()}\n" -+ f"{(e.stderr or '').strip()}") - try: - desc = json.loads(proc.stdout) - except json.JSONDecodeError as e: -diff --git a/tools/metagen/test/compile_flags_test.py b/tools/metagen/test/compile_flags_test.py -index 9652550d7168727294aadf02c1ebb31fbfc42c78..e68be065a0e73391bd86a93a443052b8427efdfe 100644 ---- a/tools/metagen/test/compile_flags_test.py -+++ b/tools/metagen/test/compile_flags_test.py -@@ -62,7 +62,8 @@ class GnCompileFlagsTest(unittest.TestCase): - } - return subprocess.CompletedProcess(argv, 0, json.dumps(desc)) - -- with mock.patch.object( -+ with mock.patch.object(compile_flags.sys, 'platform', 'linux'), \ -+ mock.patch.object( - compile_flags, '_find_gn', - return_value='gn') as find_gn, mock.patch.object( - compile_flags.subprocess, 'run', side_effect=run_desc) as run: -@@ -85,6 +86,75 @@ class GnCompileFlagsTest(unittest.TestCase): - ]) - self.assertEqual(cwd, str(build_dir)) - -+ def test_macos_sdk_links_and_override_are_isolated(self): -+ with tempfile.TemporaryDirectory() as tmp: -+ source_root = Path(tmp) / 'src' -+ build_dir = source_root / 'out' / 'Release' -+ sdk = Path(tmp) / 'MacOSX.sdk' -+ sdk.mkdir() -+ sdk_links = build_dir / 'xcode_links' / 'embedder' -+ sdk_links.mkdir(parents=True) -+ try: -+ (sdk_links / sdk.name).symlink_to(sdk, target_is_directory=True) -+ except OSError as e: -+ if getattr(e, 'winerror', None) != 1314: -+ raise -+ self.skipTest('Symlink creation requires Windows privileges') -+ args = ('mac_sdk_path = ' -+ '"//out/Release/xcode_links/embedder/MacOSX.sdk"\n') -+ (build_dir / 'args.gn').write_text(args) -+ queried_dir = None -+ -+ def run_desc(argv, **kwargs): -+ nonlocal queried_dir -+ queried_dir = Path(argv[4]) -+ query_args = (queried_dir / 'args.gn').read_text() -+ self.assertTrue(query_args.startswith(args)) -+ self.assertIn('if (defined(mac_sdk_path))', query_args) -+ query_rel = os.path.relpath(queried_dir, source_root) -+ self.assertIn( -+ 'string_replace(mac_sdk_path, "//out/Release/", ' -+ f'{json.dumps("//" + query_rel + "/")})', query_args) -+ query_sdk = queried_dir / 'xcode_links' / 'embedder' / sdk.name -+ self.assertTrue(query_sdk.is_symlink()) -+ self.assertEqual(query_sdk.resolve(), sdk.resolve()) -+ # Mutating the query's links must not affect the running build. -+ query_sdk.unlink() -+ self.assertTrue((sdk_links / sdk.name).is_symlink()) -+ desc = {'//:probe': {'cflags': ['-isysroot', str(query_sdk)],}} -+ return subprocess.CompletedProcess(argv, 0, json.dumps(desc)) -+ -+ with mock.patch.object(compile_flags.sys, 'platform', 'darwin'), \ -+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \ -+ mock.patch.object(compile_flags.subprocess, 'run', -+ side_effect=run_desc): -+ flags, cwd = compile_flags.get_compile_args_from_gn_desc( -+ str(build_dir), '//:probe', str(source_root)) -+ self.assertEqual(flags, ['-isysroot', str(sdk_links / sdk.name)]) -+ self.assertEqual(cwd, str(build_dir)) -+ self.assertEqual((build_dir / 'args.gn').read_text(), args) -+ self.assertFalse(queried_dir.exists()) -+ -+ def test_gn_failure_includes_stdout_and_stderr(self): -+ with tempfile.TemporaryDirectory() as tmp: -+ build_dir = Path(tmp) / 'build' -+ build_dir.mkdir() -+ (build_dir / 'args.gn').touch() -+ error = subprocess.CalledProcessError( -+ 1, -+ 'gn', -+ output='File is not inside output directory.', -+ stderr='SDK diagnostic') -+ with mock.patch.object(compile_flags.sys, 'platform', 'linux'), \ -+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \ -+ mock.patch.object(compile_flags.subprocess, 'run', -+ side_effect=error): -+ with self.assertRaises(RuntimeError) as raised: -+ compile_flags.get_compile_args_from_gn_desc( -+ str(build_dir), '//:probe', tmp) -+ self.assertIn(error.stdout, str(raised.exception)) -+ self.assertIn(error.stderr, str(raised.exception)) -+ - def test_build_directory_on_another_drive(self): - with tempfile.TemporaryDirectory() as tmp: - source_root = Path(tmp) / 'src' -@@ -98,7 +168,8 @@ class GnCompileFlagsTest(unittest.TestCase): - desc = {'//:probe': {'include_dirs': [str(temp_dir / 'gen')],}} - return subprocess.CompletedProcess(argv, 0, json.dumps(desc)) - -- with mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \ -+ with mock.patch.object(compile_flags.sys, 'platform', 'win32'), \ -+ mock.patch.object(compile_flags, '_find_gn', return_value='gn'), \ - mock.patch.object(compile_flags.os.path, 'relpath', - side_effect=ValueError('different drive')), \ - mock.patch.object(compile_flags.subprocess, 'run', diff --git a/shell/browser/api/electron_api_browser_window.cc b/shell/browser/api/electron_api_browser_window.cc index ec21faa0d3..97f118580f 100644 --- a/shell/browser/api/electron_api_browser_window.cc +++ b/shell/browser/api/electron_api_browser_window.cc @@ -21,7 +21,6 @@ #include "shell/common/gin_helper/object_template_builder.h" #include "shell/common/node_includes.h" #include "shell/common/options_switches.h" -#include "ui/gl/gpu_switching_manager.h" #include "ui/views/focus/focus_manager.h" #include "ui/views/widget/widget.h" diff --git a/shell/browser/api/electron_api_session.cc b/shell/browser/api/electron_api_session.cc index d2bfda80ff..e28a64f4ec 100644 --- a/shell/browser/api/electron_api_session.cc +++ b/shell/browser/api/electron_api_session.cc @@ -23,7 +23,6 @@ #include "base/types/pass_key.h" #include "base/uuid.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/predictors/predictors_traffic_annotations.h" // nogncheck #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "components/download/public/common/download_danger_type.h" @@ -59,6 +58,7 @@ #include "net/http/http_auth_preferences.h" #include "net/http/http_cache.h" #include "net/http/http_util.h" +#include "net/traffic_annotation/network_traffic_annotation.h" #include "services/network/network_service.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/request_destination.h" @@ -134,6 +134,22 @@ using content::StoragePartition; namespace { +constexpr net::NetworkTrafficAnnotationTag kPreconnectTrafficAnnotation = + net::DefineNetworkTrafficAnnotation("electron_session_preconnect", R"( + semantics { + sender: "Electron Session" + description: + "Preemptively opens sockets to an origin so that later requests " + "to it can skip DNS resolution, TCP connection and TLS setup." + trigger: "Using session.preconnect" + data: "No user data is sent; only a connection is established." + destination: OTHER + } + policy { + cookies_allowed: NO + setting: "This feature cannot be disabled." + })"); + struct ClearStorageDataOptions { blink::StorageKey storage_key; uint32_t storage_types = StoragePartition::REMOVE_DATA_MASK_ALL; @@ -1436,8 +1452,8 @@ static void StartPreconnectOnUI(ElectronBrowserContext* browser_context, {url::Origin::Create(url), num_sockets_to_preconnect, net::NetworkAnonymizationKey::CreateSameSite( net::SchemefulSite(origin))}}; - browser_context->GetPreconnectManager()->Start( - url, requests, predictors::kLoadingPredictorPreconnectTrafficAnnotation); + browser_context->GetPreconnectManager()->Start(url, requests, + kPreconnectTrafficAnnotation); } void Session::Preconnect(const gin_helper::Dictionary& options, diff --git a/shell/browser/notifications/mac/cocoa_notification.h b/shell/browser/notifications/mac/cocoa_notification.h index e22e3f481d..669f7e9a24 100644 --- a/shell/browser/notifications/mac/cocoa_notification.h +++ b/shell/browser/notifications/mac/cocoa_notification.h @@ -8,8 +8,10 @@ #import #import +#include #include +#include "base/files/scoped_temp_file.h" #include "shell/browser/notifications/notification.h" namespace electron { @@ -36,7 +38,9 @@ class CocoaNotification : public Notification { private: void LogAction(const char* action); - void ScheduleNotification(UNMutableNotificationContent* content); + void ScheduleNotification( + UNMutableNotificationContent* content, + std::shared_ptr icon_file = nullptr); bool is_restored_ = false; UNNotificationRequest* __strong notification_request_; diff --git a/shell/browser/notifications/mac/cocoa_notification.mm b/shell/browser/notifications/mac/cocoa_notification.mm index 7184c676b2..e4c1c1b835 100644 --- a/shell/browser/notifications/mac/cocoa_notification.mm +++ b/shell/browser/notifications/mac/cocoa_notification.mm @@ -8,13 +8,15 @@ #include #include "base/apple/foundation_util.h" +#include "base/files/file_util.h" +#include "base/files/scoped_temp_file.h" #include "base/logging.h" #include "base/mac/mac_util.h" +#include "base/memory/ref_counted_memory.h" #include "base/strings/sys_string_conversions.h" #include "base/task/sequenced_task_runner.h" -#include "chrome/common/notifications/notification_image_retainer.h" +#include "base/task/thread_pool.h" #include "grit/electron_resources.h" -#include "shell/browser/notifications/mac/notification_presenter_mac.h" #include "shell/browser/notifications/notification_delegate.h" #include "shell/browser/notifications/notification_presenter.h" #include "skia/ext/skia_utils_mac.h" @@ -26,6 +28,22 @@ namespace electron { +namespace { + +base::ScopedTempFile WriteNotificationIconToTempFile(const gfx::Image& icon) { + scoped_refptr data = icon.As1xPNGBytes(); + if (!data || data->size() == 0) + return {}; + + base::ScopedTempFile temp_file; + if (!temp_file.Create() || !base::WriteFile(temp_file.path(), *data)) + return {}; + + return temp_file; +} + +} // namespace + CocoaNotification::CocoaNotification(NotificationDelegate* delegate, NotificationPresenter* presenter) : Notification(delegate, presenter) {} @@ -137,50 +155,51 @@ void CocoaNotification::Show(const NotificationOptions& options) { if (!options.icon.drawsNothing()) { gfx::Image icon = gfx::Image::CreateFrom1xBitmap(options.icon); - auto* mac_presenter = static_cast(presenter()); - mac_presenter->image_task_runner()->PostTaskAndReplyWithResult( - FROM_HERE, - base::BindOnce( - [](NotificationPresenterMac* mac_presenter, - gfx::Image icon) -> UNNotificationAttachment* { - base::FilePath path = - mac_presenter->image_retainer()->RegisterTemporaryImage(icon); - if (path.empty()) { - return nil; - } - NSURL* url = base::apple::FilePathToNSURL(path); - NSDictionary* attachment_options = @{ - UNNotificationAttachmentOptionsTypeHintKey : - UTTypePNG.identifier - }; - NSError* error = nil; - UNNotificationAttachment* attachment = [UNNotificationAttachment - attachmentWithIdentifier:[[NSUUID UUID] UUIDString] - URL:url - options:attachment_options - error:&error]; - if (!attachment || error) { - if (electron::debug_notifications) { - LOG(INFO) << "Notification icon attachment failed: " - << (error ? error.localizedDescription.UTF8String - : "unknown error"); - } - return nil; - } - return attachment; - }, - mac_presenter, icon), + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE}, + base::BindOnce(&WriteNotificationIconToTempFile, std::move(icon)), base::BindOnce( [](base::WeakPtr weak_self, UNMutableNotificationContent* content, - UNNotificationAttachment* attachment) { - if (auto* notification = weak_self.get()) { - // Deliver without an icon if the attachment couldn't be made. - if (attachment) - content.attachments = @[ attachment ]; - auto* self = static_cast(notification); - self->ScheduleNotification(content); + base::ScopedTempFile icon_file) { + auto* notification = weak_self.get(); + if (!notification) + return; + + std::shared_ptr retained_icon_file; + NSURL* url = nil; + if (icon_file) { + url = base::apple::FilePathToNSURL( + base::MakeAbsoluteFilePath(icon_file.path())); } + + if (url) { + NSDictionary* attachment_options = @{ + UNNotificationAttachmentOptionsTypeHintKey : + UTTypePNG.identifier + }; + NSError* error = nil; + UNNotificationAttachment* attachment = [UNNotificationAttachment + attachmentWithIdentifier:[[NSUUID UUID] UUIDString] + URL:url + options:attachment_options + error:&error]; + if (!attachment || error) { + if (electron::debug_notifications) { + LOG(INFO) << "Notification icon attachment failed: " + << (error ? error.localizedDescription.UTF8String + : "unknown error"); + } + } else { + content.attachments = @[ attachment ]; + retained_icon_file = std::make_shared( + std::move(icon_file)); + } + } + + auto* self = static_cast(notification); + self->ScheduleNotification(content, + std::move(retained_icon_file)); }, GetWeakPtr(), content)); } else { @@ -189,7 +208,8 @@ void CocoaNotification::Show(const NotificationOptions& options) { } void CocoaNotification::ScheduleNotification( - UNMutableNotificationContent* content) { + UNMutableNotificationContent* content, + std::shared_ptr icon_file) { NSString* identifier = base::SysUTF8ToNSString(notification_id()); UNNotificationRequest* request = @@ -209,6 +229,8 @@ void CocoaNotification::ScheduleNotification( [[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError* _Nullable error) { + if (icon_file) + icon_file->Reset(); if (error) { if (electron::debug_notifications) { LOG(INFO) << "Error scheduling notification (" diff --git a/shell/browser/notifications/mac/notification_presenter_mac.h b/shell/browser/notifications/mac/notification_presenter_mac.h index f619cd5c44..aab2026e65 100644 --- a/shell/browser/notifications/mac/notification_presenter_mac.h +++ b/shell/browser/notifications/mac/notification_presenter_mac.h @@ -6,7 +6,6 @@ #ifndef ELECTRON_SHELL_BROWSER_NOTIFICATIONS_MAC_NOTIFICATION_PRESENTER_MAC_H_ #define ELECTRON_SHELL_BROWSER_NOTIFICATIONS_MAC_NOTIFICATION_PRESENTER_MAC_H_ -#include "chrome/common/notifications/notification_image_retainer.h" #include "shell/browser/notifications/mac/notification_center_delegate.h" #include "shell/browser/notifications/notification_presenter.h" @@ -33,19 +32,12 @@ class NotificationPresenterMac : public NotificationPresenter { void RemoveDeliveredNotificationsByGroupId( const std::string& group_id) override; - NotificationImageRetainer* image_retainer() { return image_retainer_.get(); } - scoped_refptr image_task_runner() { - return image_task_runner_; - } - private: // NotificationPresenter Notification* CreateNotificationObject( NotificationDelegate* delegate) override; NotificationCenterDelegate* __strong notification_center_delegate_; - std::unique_ptr image_retainer_; - scoped_refptr image_task_runner_; }; } // namespace electron diff --git a/shell/browser/notifications/mac/notification_presenter_mac.mm b/shell/browser/notifications/mac/notification_presenter_mac.mm index 1f408de9f4..1ceb1f514c 100644 --- a/shell/browser/notifications/mac/notification_presenter_mac.mm +++ b/shell/browser/notifications/mac/notification_presenter_mac.mm @@ -8,10 +8,11 @@ #include #include +#include "base/functional/bind.h" +#include "base/functional/callback.h" #include "base/logging.h" #include "base/strings/sys_string_conversions.h" #include "base/task/sequenced_task_runner.h" -#include "base/task/thread_pool.h" #include "shell/browser/notifications/mac/cocoa_notification.h" #include "shell/browser/notifications/mac/notification_center_delegate.h" @@ -41,16 +42,7 @@ CocoaNotification* NotificationPresenterMac::GetNotification( NotificationPresenterMac::NotificationPresenterMac() : notification_center_delegate_( - [[NotificationCenterDelegate alloc] initWithPresenter:this]), - image_retainer_(std::make_unique()), - image_task_runner_(base::ThreadPool::CreateSequencedTaskRunner( - {base::MayBlock(), base::TaskPriority::USER_VISIBLE})) { - // Delete any remaining temp files in the image folder from the previous - // sessions. - DCHECK(image_task_runner_); - auto cleanup_task = image_retainer_->GetCleanupTask(); - image_task_runner_->PostTask(FROM_HERE, std::move(cleanup_task)); - + [[NotificationCenterDelegate alloc] initWithPresenter:this]) { UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter]; @@ -77,7 +69,6 @@ NotificationPresenterMac::NotificationPresenterMac() NotificationPresenterMac::~NotificationPresenterMac() { UNUserNotificationCenter.currentNotificationCenter.delegate = nil; - image_task_runner_->DeleteSoon(FROM_HERE, image_retainer_.release()); } Notification* NotificationPresenterMac::CreateNotificationObject( diff --git a/shell/common/application_info.cc b/shell/common/application_info.cc index 183a563291..b628e21ee2 100644 --- a/shell/common/application_info.cc +++ b/shell/common/application_info.cc @@ -49,7 +49,7 @@ std::string BuildApplicationUserAgent() { "%s/%s Chrome/%s " ELECTRON_PRODUCT_NAME "/" ELECTRON_VERSION_STRING, name, browser->GetVersion(), CHROME_VERSION_STRING); } - return embedder_support::BuildUserAgentFromProduct(user_agent); + return embedder_support::BuildUnifiedPlatformUserAgentFromProduct(user_agent); } base::Lock& UserAgentLock() { diff --git a/shell/renderer/web_worker_observer.cc b/shell/renderer/web_worker_observer.cc index 013bd80168..a17533b4b8 100644 --- a/shell/renderer/web_worker_observer.cc +++ b/shell/renderer/web_worker_observer.cc @@ -37,8 +37,7 @@ bool IsPooledWorkletContext(v8::Local context) { if (!ec) return false; return ec->IsAudioWorkletGlobalScope() || ec->IsPaintWorkletGlobalScope() || - ec->IsAnimationWorkletGlobalScope() || - ec->IsSharedStorageWorkletGlobalScope(); + ec->IsAnimationWorkletGlobalScope(); } } // namespace @@ -299,8 +298,8 @@ void WebWorkerObserver::ContextWillDestroy(v8::Local context) { // not reuse the worker thread, so tear down the observer completely. // // For pooled worklet contexts (AudioWorklet, PaintWorklet, - // AnimationWorklet, SharedStorageWorklet — see - // blink::WorkletThreadHolder) the same NodeBindings must be reused + // AnimationWorklet — see blink::WorkletThreadHolder) the same + // NodeBindings must be reused // for the next context on the thread because Node.js cannot be // re-initialized on the same thread. Keep the observer alive and let // the next WorkerScriptReadyForEvaluation call diff --git a/shell/utility/ai/utility_ai_manager.cc b/shell/utility/ai/utility_ai_manager.cc index 710504a85b..659defb55f 100644 --- a/shell/utility/ai/utility_ai_manager.cc +++ b/shell/utility/ai/utility_ai_manager.cc @@ -271,6 +271,13 @@ void UtilityAIManager::HandleLanguageModelResult( enabled_input_types.insert(expected_input->type); } } + base::flat_set enabled_output_types = + {blink::mojom::AILanguageModelPromptType::kText}; + if (options->expected_outputs.has_value()) { + for (const auto& expected_output : options->expected_outputs.value()) { + enabled_output_types.insert(expected_output->type); + } + } blink::mojom::AIManagerCreateLanguageModelClient* client = create_model_client_set_.Get(client_id); @@ -292,6 +299,8 @@ void UtilityAIManager::HandleLanguageModelResult( blink::mojom::AILanguageModelSamplingParams::New(), std::vector( enabled_input_types.begin(), enabled_input_types.end()), + std::vector( + enabled_output_types.begin(), enabled_output_types.end()), /*audio_sample_rate_hz=*/std::nullopt, /*audio_channel_count=*/std::nullopt, /*sampling_mode=*/std::nullopt));