Browse Source

chore: bump chromium to 124.0.6351.0 (main) (#41514)

* chore: bump chromium in DEPS to 124.0.6339.0

* chore: update patches

* chore: bump chromium in DEPS to 124.0.6341.0

* chore: update patches

* chore: bump chromium in DEPS to 124.0.6343.0

* chore: bump chromium in DEPS to 124.0.6345.0

* chore: update patches

* build: temporarily patch out usage of reclient inputs cfg

* chore: implement missing OnPortConnectedStateChanged

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5039155

* fix: move NativeHandlers in extensions to new RendererAPIProvider

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5332839
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5334058

* chore: add missing websocket method

* refactor: use std::erase instead of base::Erase

Ref: https://issues.chromium.org/issues/40256229

* build: fix reclient inputs processor bug (workaround)

* fix: delay extensions::Dispatcher construction

* chore: bump chromium in DEPS to 124.0.6347.0

* chore: bump chromium in DEPS to 124.0.6349.0

* 5326217: [ViewsAX] Remove WebAXPlatformTreeManagerDelegate

https://chromium-review.googlesource.com/c/chromium/src/+/5326217

* 5347916: Get origin from parent for process-isolated srcdoc.

https://chromium-review.googlesource.com/c/chromium/src/+/5347916

* chore: patches fixup

* 4866222: [api] Deprecate vector<v8::Local>, part 1

https://chromium-review.googlesource.com/c/v8/v8/+/4866222

* 5337304: Remove DXDiag telemetry code.

https://chromium-review.googlesource.com/c/chromium/src/+/5337304

* 5328275: Implement watermark routing to the BrowserView

https://chromium-review.googlesource.com/c/chromium/src/+/5328275

* [libc++] Rename __fwd/hash.h to __fwd/functional.h and add reference_wrapper

* chore: bump chromium in DEPS to 124.0.6351.0

* chore: update patches

* 5342763: [object] Fast path for adding props with existing transition

https://chromium-review.googlesource.com/c/v8/v8/+/5342763

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <[email protected]>
Co-authored-by: Shelley Vohr <[email protected]>
electron-roller[bot] 1 year ago
parent
commit
150c2bcef9
74 changed files with 537 additions and 331 deletions
  1. 1 1
      DEPS
  2. 2 0
      filenames.gni
  3. 1 1
      filenames.libcxx.gni
  4. 13 13
      patches/chromium/add_didinstallconditionalfeatures.patch
  5. 4 4
      patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch
  6. 5 5
      patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch
  7. 4 4
      patches/chromium/blink_local_frame.patch
  8. 8 8
      patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch
  9. 1 1
      patches/chromium/build_gn.patch
  10. 2 2
      patches/chromium/build_remove_ent_content_analysis_assert.patch
  11. 14 14
      patches/chromium/can_create_window.patch
  12. 11 2
      patches/chromium/chore_add_buildflag_guard_around_new_include.patch
  13. 12 12
      patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch
  14. 1 1
      patches/chromium/custom_protocols_plzserviceworker.patch
  15. 1 1
      patches/chromium/disable_hidden.patch
  16. 3 3
      patches/chromium/disable_unload_metrics.patch
  17. 3 3
      patches/chromium/expose_setuseragent_on_networkcontext.patch
  18. 2 2
      patches/chromium/extend_apply_webpreferences.patch
  19. 3 3
      patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch
  20. 1 1
      patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch
  21. 2 2
      patches/chromium/feat_allow_code_cache_in_custom_schemes.patch
  22. 18 16
      patches/chromium/feat_configure_launch_options_for_service_process.patch
  23. 3 3
      patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch
  24. 1 1
      patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch
  25. 2 2
      patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch
  26. 8 8
      patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch
  27. 5 5
      patches/chromium/fix_crash_when_saving_edited_pdf_files.patch
  28. 2 2
      patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch
  29. 8 8
      patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch
  30. 15 15
      patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch
  31. 3 3
      patches/chromium/frame_host_manager.patch
  32. 9 11
      patches/chromium/gpu_notify_when_dxdiag_request_fails.patch
  33. 2 2
      patches/chromium/gritsettings_resource_ids.patch
  34. 1 1
      patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch
  35. 2 2
      patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch
  36. 1 1
      patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch
  37. 35 35
      patches/chromium/mas_avoid_private_macos_api_usage.patch.patch
  38. 7 7
      patches/chromium/network_service_allow_remote_certificate_verification_logic.patch
  39. 1 1
      patches/chromium/notification_provenance.patch
  40. 3 3
      patches/chromium/picture-in-picture.patch
  41. 1 1
      patches/chromium/port_autofill_colors_to_the_color_pipeline.patch
  42. 14 14
      patches/chromium/printing.patch
  43. 5 5
      patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch
  44. 3 3
      patches/chromium/resource_file_conflict.patch
  45. 2 2
      patches/chromium/scroll_bounce_flag.patch
  46. 1 1
      patches/chromium/support_mixed_sandbox_with_zygote.patch
  47. 3 3
      patches/chromium/upload_list_add_loadsync_method.patch
  48. 4 4
      patches/chromium/web_contents.patch
  49. 5 5
      patches/chromium/webview_fullscreen.patch
  50. 4 4
      patches/chromium/worker_context_will_destroy.patch
  51. 2 2
      patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch
  52. 2 2
      patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch
  53. 2 2
      patches/ffmpeg/link_with_loader_path.patch
  54. 2 0
      patches/node/.patches
  55. 25 0
      patches/node/deprecate_vector_v8_local_in_v8.patch
  56. 80 0
      patches/node/fast_path_for_adding_props_with_existing_transition.patch
  57. 1 0
      patches/reclient-configs/.patches
  58. 43 0
      patches/reclient-configs/fix_temporarily_use_toolchain_inputs_exclusively_instead_of_inputs.patch
  59. 2 2
      patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch
  60. 3 12
      shell/browser/api/gpuinfo_manager.cc
  61. 2 3
      shell/browser/hid/hid_chooser_controller.cc
  62. 1 1
      shell/browser/printing/print_view_manager_electron.cc
  63. 2 0
      shell/browser/serial/electron_serial_delegate.h
  64. 2 0
      shell/browser/serial/serial_chooser_context.h
  65. 2 0
      shell/browser/serial/serial_chooser_controller.h
  66. 1 4
      shell/browser/usb/electron_usb_delegate.cc
  67. 2 0
      shell/common/api/electron_api_url_loader.h
  68. 0 37
      shell/renderer/extensions/electron_extensions_dispatcher_delegate.cc
  69. 0 10
      shell/renderer/extensions/electron_extensions_dispatcher_delegate.h
  70. 49 0
      shell/renderer/extensions/electron_extensions_renderer_api_provider.cc
  71. 40 0
      shell/renderer/extensions/electron_extensions_renderer_api_provider.h
  72. 6 5
      shell/renderer/extensions/electron_extensions_renderer_client.cc
  73. 2 0
      shell/renderer/extensions/electron_extensions_renderer_client.h
  74. 4 0
      shell/renderer/renderer_client_base.cc

+ 1 - 1
DEPS

@@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
 
 vars = {
   'chromium_version':
-    '124.0.6331.0',
+    '124.0.6351.0',
   'node_version':
     'v20.11.1',
   'nan_version':

+ 2 - 0
filenames.gni

@@ -753,6 +753,8 @@ filenames = {
     "shell/common/gin_converters/extension_converter.h",
     "shell/renderer/extensions/electron_extensions_dispatcher_delegate.cc",
     "shell/renderer/extensions/electron_extensions_dispatcher_delegate.h",
+    "shell/renderer/extensions/electron_extensions_renderer_api_provider.cc",
+    "shell/renderer/extensions/electron_extensions_renderer_api_provider.h",
     "shell/renderer/extensions/electron_extensions_renderer_client.cc",
     "shell/renderer/extensions/electron_extensions_renderer_client.h",
   ]

+ 1 - 1
filenames.libcxx.gni

@@ -433,7 +433,7 @@ libcxx_headers = [
   "//third_party/libc++/src/include/__fwd/bit_reference.h",
   "//third_party/libc++/src/include/__fwd/complex.h",
   "//third_party/libc++/src/include/__fwd/fstream.h",
-  "//third_party/libc++/src/include/__fwd/hash.h",
+  "//third_party/libc++/src/include/__fwd/functional.h",
   "//third_party/libc++/src/include/__fwd/ios.h",
   "//third_party/libc++/src/include/__fwd/istream.h",
   "//third_party/libc++/src/include/__fwd/mdspan.h",

+ 13 - 13
patches/chromium/add_didinstallconditionalfeatures.patch

@@ -10,7 +10,7 @@ DidCreateScriptContext is called, not all JS APIs are available in the
 context, which can cause some preload scripts to trip.
 
 diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
-index 6ea5b69cb372ed8c5a7af5773c50dfb5b850af56..def18b9d2fb0dbe8cfb00a97472a4e92da64944c 100644
+index 289a8c25f14cad42b9178ce94b11f67870be7434..5b91eadb698eeb5a87c9d0b2edf7e5ccf952555c 100644
 --- a/content/public/renderer/render_frame_observer.h
 +++ b/content/public/renderer/render_frame_observer.h
 @@ -146,6 +146,8 @@ class CONTENT_EXPORT RenderFrameObserver
@@ -23,10 +23,10 @@ index 6ea5b69cb372ed8c5a7af5773c50dfb5b850af56..def18b9d2fb0dbe8cfb00a97472a4e92
                                          int32_t world_id) {}
    virtual void DidClearWindowObject() {}
 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
-index c0ca69f77833f7138d8eb3b49a7296ff671129b0..0c844827db3f869c10d376eaeb0977b040514a9a 100644
+index 9012fbd732b8e134609b187f3718652888c31af4..0ecde1e5a5e6bdd5f1fe1601901d8ee084b8a0a2 100644
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -4654,6 +4654,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
+@@ -4683,6 +4683,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
      observer.DidCreateScriptContext(context, world_id);
  }
  
@@ -40,10 +40,10 @@ index c0ca69f77833f7138d8eb3b49a7296ff671129b0..0c844827db3f869c10d376eaeb0977b0
                                                 int world_id) {
    for (auto& observer : observers_)
 diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
-index f44502d967118d2c942590c76ca33a7232e37ae9..dcbd3279f302a714c90803c419d0a4a93507d611 100644
+index 9e0c4a2d908a50723827cd86bdedb20119fb8f47..db408d515739f331dea4a33b27b0cf75437e6c30 100644
 --- a/content/renderer/render_frame_impl.h
 +++ b/content/renderer/render_frame_impl.h
-@@ -640,6 +640,8 @@ class CONTENT_EXPORT RenderFrameImpl
+@@ -639,6 +639,8 @@ class CONTENT_EXPORT RenderFrameImpl
    void DidObserveLayoutShift(double score, bool after_input_or_scroll) override;
    void DidCreateScriptContext(v8::Local<v8::Context> context,
                                int world_id) override;
@@ -53,10 +53,10 @@ index f44502d967118d2c942590c76ca33a7232e37ae9..dcbd3279f302a714c90803c419d0a4a9
                                  int world_id) override;
    void DidChangeScrollOffset() override;
 diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
-index 1e475f6281989fb65f17630dbbf6023498700fb0..5df0868e8b6862270addbdde2238d8aa5297c8f3 100644
+index 4f33fd08886890ebe8c853760f9ab506834006e1..25e7c24542505eea06afb0a85131c23ef6467375 100644
 --- a/third_party/blink/public/web/web_local_frame_client.h
 +++ b/third_party/blink/public/web/web_local_frame_client.h
-@@ -638,6 +638,9 @@ class BLINK_EXPORT WebLocalFrameClient {
+@@ -637,6 +637,9 @@ class BLINK_EXPORT WebLocalFrameClient {
    virtual void DidCreateScriptContext(v8::Local<v8::Context>,
                                        int32_t world_id) {}
  
@@ -79,10 +79,10 @@ index 2cb0a08954850d229e99bae66fecd4787f20a178..79894ca0d51ed61a178818b38da5c43b
    if (World().IsMainWorld()) {
      probe::DidCreateMainWorldContext(GetFrame());
 diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
-index 4c925fd843d4900833671537c40c7adb580b26bd..e74df2021f526eb392478763cad2505778b96132 100644
+index 7a5d4721f7bd3012351f17053e188505f26f1979..4c415c2464fee49581efa307070ffad976b69c76 100644
 --- a/third_party/blink/renderer/core/frame/local_frame_client.h
 +++ b/third_party/blink/renderer/core/frame/local_frame_client.h
-@@ -304,6 +304,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
+@@ -305,6 +305,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
  
    virtual void DidCreateScriptContext(v8::Local<v8::Context>,
                                        int32_t world_id) = 0;
@@ -92,7 +92,7 @@ index 4c925fd843d4900833671537c40c7adb580b26bd..e74df2021f526eb392478763cad25057
                                          int32_t world_id) = 0;
    virtual bool AllowScriptExtensions() = 0;
 diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
-index 17d03c926f4bfb6d7874dbd7ebd2363889dd1d35..a138ca98376b1a2ba664470ba406ba9ce26306c1 100644
+index af0dbbfa237511d91c6fd2df4d2aceec6f94fae8..b3ff4e56ba203fb381635f5cc7fe6011d2faa778 100644
 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
 @@ -291,6 +291,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
@@ -110,7 +110,7 @@ index 17d03c926f4bfb6d7874dbd7ebd2363889dd1d35..a138ca98376b1a2ba664470ba406ba9c
      v8::Local<v8::Context> context,
      int32_t world_id) {
 diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
-index 052ac9fb9154e220e2f310bc36851bce6b903a5a..ded0fc76dc55ad1dae4be92da277f1c9d093549a 100644
+index c522b37b1918902e424f0df6a3eb379b0fd05fa4..0b3054bcb55bd6e731dd42b59c2bc0c24ec29165 100644
 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
 +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
 @@ -84,6 +84,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient {
@@ -123,10 +123,10 @@ index 052ac9fb9154e220e2f310bc36851bce6b903a5a..ded0fc76dc55ad1dae4be92da277f1c9
                                  int32_t world_id) override;
  
 diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
-index 6b2880d6b1d20ffa00bbca27a250792f3d846c33..285dbe014e78691c803d770c7ab0b73c8eaf736f 100644
+index 4ea7eae36fcf1d42cbe639e895d9aca52d20082b..ce529d0edd69ad6542baa83725e18be33d3c2a4a 100644
 --- a/third_party/blink/renderer/core/loader/empty_clients.h
 +++ b/third_party/blink/renderer/core/loader/empty_clients.h
-@@ -410,6 +410,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
+@@ -411,6 +411,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
  
    void DidCreateScriptContext(v8::Local<v8::Context>,
                                int32_t world_id) override {}

+ 4 - 4
patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch

@@ -51,7 +51,7 @@ index a94977d7a76ae9952bbba0efe59a7cb5021a1c84..11c4f890eaeae1329ca5a6634a698aef
    void SendRendererPreferencesToRenderer(
        const blink::RendererPreferences& preferences);
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index 95fb2a4b401ec57ed4492413a2607dba5ece1fa6..955a74fa895303a6e2db5f59a1f6a39fbe4c84bf 100644
+index 4dbb03bd4f6b7a46073c8cc1568151f23583deb6..3d80ec348dc4c2519c6bd3eed0e1c5da3b39680d 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -553,8 +553,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) {
@@ -116,10 +116,10 @@ index c4348be90db209a757f21cbc518e1244fe0954d5..1ee953ad860291cdc1095880f6646d1d
    // Visibility -----------------------------------------------------------
  
 diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
-index e3d58bf5e51c9e0e74a76e7632e7c6260ae5f587..6eb7560fb0e9301777a9c06643b0d00889d3a04c 100644
+index 735b6ae3eefaeb9c558a1cf63371f533685cc5db..986b4c9f35431ed14989d5f69fc09d17a2c3fda9 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -2429,6 +2429,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
+@@ -2431,6 +2431,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
    TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal",
                 "old_state", old_state, "new_state", new_state);
  
@@ -130,7 +130,7 @@ index e3d58bf5e51c9e0e74a76e7632e7c6260ae5f587..6eb7560fb0e9301777a9c06643b0d008
    bool storing_in_bfcache = new_state->is_in_back_forward_cache &&
                              !old_state->is_in_back_forward_cache;
    bool restoring_from_bfcache = !new_state->is_in_back_forward_cache &&
-@@ -3920,10 +3924,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
+@@ -3932,10 +3936,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
    return GetPage()->GetPageScheduler();
  }
  

+ 5 - 5
patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch

@@ -8,7 +8,7 @@ WebPreferences of in-process child windows, rather than relying on
 process-level command line switches, as before.
 
 diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
-index 31c4d7c5d17763a38fd8a814efbc599663e6c816..c7e705030b39a961cd98610908e231cc71158002 100644
+index 0f386b68028a8398bdf6b851b16e244e5ba918bd..7a9519c2c172178ace67251151363ac0611e8503 100644
 --- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
 +++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
 @@ -149,6 +149,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
@@ -32,7 +32,7 @@ index 31c4d7c5d17763a38fd8a814efbc599663e6c816..c7e705030b39a961cd98610908e231cc
    out->accelerated_video_decode_enabled =
        data.accelerated_video_decode_enabled();
 diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h
-index 5c33a83513e528ada518751899a7c640c14dacf7..4b14c0fa75e65fca91e100969fb9707120d199ca 100644
+index 90a6a0bf5c0e2d21f23badb284292a4f0c90178f..4f1b6acaa503cd085ff607d292ad0d4ee6731a56 100644
 --- a/third_party/blink/public/common/web_preferences/web_preferences.h
 +++ b/third_party/blink/public/common/web_preferences/web_preferences.h
 @@ -10,6 +10,7 @@
@@ -43,7 +43,7 @@ index 5c33a83513e528ada518751899a7c640c14dacf7..4b14c0fa75e65fca91e100969fb97071
  #include "net/nqe/effective_connection_type.h"
  #include "third_party/blink/public/common/common_export.h"
  #include "third_party/blink/public/mojom/css/preferred_color_scheme.mojom-shared.h"
-@@ -420,6 +421,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
+@@ -425,6 +426,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
    // blocking user's access to the background web content.
    bool modal_context_menu = true;
  
@@ -65,7 +65,7 @@ index 5c33a83513e528ada518751899a7c640c14dacf7..4b14c0fa75e65fca91e100969fb97071
    // chrome, except for the cases where it would require lots of extra work for
    // the embedder to use the same default value.
 diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
-index f54089ad64fa5a3c19d084821d188be1a623d548..7129aa8c9c63d31b6eede9e57fa37e2ec3efd257 100644
+index 9960a1180a8e64d6e369936ab93aeb3417af5e8a..3f38e6e1289e1387e5fa54268c8efacda8fc3186 100644
 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
 +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
 @@ -6,6 +6,7 @@
@@ -130,7 +130,7 @@ index f54089ad64fa5a3c19d084821d188be1a623d548..7129aa8c9c63d31b6eede9e57fa37e2e
      return r.cookie_enabled;
    }
 diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
-index 54f3a206c8ab571563a5ac70ea32edbe844d2057..8376c8f8d5f56adea2ffce3d8d66a6dbc16a6ee6 100644
+index c3ff064deb240a16f2d9adcb233426fbc4795324..7fd096a61e3dd33de09a25ce2926b010486b2dc2 100644
 --- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
 +++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
 @@ -9,6 +9,7 @@ import "third_party/blink/public/mojom/css/preferred_contrast.mojom";

+ 4 - 4
patches/chromium/blink_local_frame.patch

@@ -15,7 +15,7 @@ Refs changes in:
 This patch reverts the changes to fix associated crashes in Electron.
 
 diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc
-index 2432d2dba67540f8cdd8e5466a813693ff2d6683..ed9863e6a9870f45b2f688b1a9228c176d498307 100644
+index 0a742bbbd5e8e1eb3610cc32f785f779e8907e75..26967019244d409dadf4533405d4d5d27c75b73c 100644
 --- a/third_party/blink/renderer/core/frame/frame.cc
 +++ b/third_party/blink/renderer/core/frame/frame.cc
 @@ -125,14 +125,6 @@ bool Frame::Detach(FrameDetachType type) {
@@ -49,10 +49,10 @@ index 2432d2dba67540f8cdd8e5466a813693ff2d6683..ed9863e6a9870f45b2f688b1a9228c17
    // its owning reference back to our owning LocalFrame.
    client_->Detached(type);
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
-index d7fc8c4b7edea486e1aff43287bb5ae6be168868..bf57ea36b37c5cb9441b2b62ae3ac020c297b495 100644
+index cd0dec9dca7ec98e97ef90c43378460c843956d4..e84ae764c9d47bfb78d01aa20695e03b07787136 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -683,10 +683,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -682,10 +682,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
    }
    DCHECK(!view_ || !view_->IsAttached());
  
@@ -63,7 +63,7 @@ index d7fc8c4b7edea486e1aff43287bb5ae6be168868..bf57ea36b37c5cb9441b2b62ae3ac020
    if (!Client())
      return false;
  
-@@ -734,6 +730,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -733,6 +729,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
    DCHECK(!view_->IsAttached());
    Client()->WillBeDetached();
  

+ 8 - 8
patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch

@@ -11,10 +11,10 @@ if we ever align our .pak file generation with Chrome we can remove this
 patch.
 
 diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
-index 78c84e4ccefb90715d68de15d32d5245027ebb4d..99c80a0d2c23533f2858f61aca11d3b704e0735a 100644
+index 4af5b8d5da1c0ae4c5603f49e3a1dbfec422f55e..d21e450d1ee387a72bbe60141285626042a27a35 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -188,11 +188,16 @@ if (!is_android && !is_mac) {
+@@ -189,11 +189,16 @@ if (!is_android && !is_mac) {
            "common/crash_keys.h",
          ]
  
@@ -33,10 +33,10 @@ index 78c84e4ccefb90715d68de15d32d5245027ebb4d..99c80a0d2c23533f2858f61aca11d3b7
            "//base",
            "//build:branding_buildflags",
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
-index 9b8a614ec6805014d93b3090b47443734dfa9a10..85a348e20fb331323d25207f5773e34c5bb67d56 100644
+index 66229b455316956dbb7e290b9d5353d01d360273..57fd98fbb60036ab497104e44934cae3763754ae 100644
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -4791,7 +4791,7 @@ static_library("browser") {
+@@ -4789,7 +4789,7 @@ static_library("browser") {
  
      # On Windows, the hashes are embedded in //chrome:chrome_initial rather
      # than here in :chrome_dll.
@@ -46,10 +46,10 @@ index 9b8a614ec6805014d93b3090b47443734dfa9a10..85a348e20fb331323d25207f5773e34c
        sources += [ "certificate_viewer_stub.cc" ]
      }
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
-index 0e038a6064ecea2fd100c760966de6e0fd3c0d72..4b856057cde5a2e91777260f28dfb68d1b462607 100644
+index 5476ff5083ba35d2d93d93213bde4bb3053a1766..683188a67f3aef723179007f525ac882bae7fa99 100644
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -7164,9 +7164,12 @@ test("unit_tests") {
+@@ -7177,9 +7177,12 @@ test("unit_tests") {
        "//chrome/browser/safe_browsing/incident_reporting/verifier_test:verifier_test_dll_2",
      ]
  
@@ -63,7 +63,7 @@ index 0e038a6064ecea2fd100c760966de6e0fd3c0d72..4b856057cde5a2e91777260f28dfb68d
        "//chrome//services/util_win:unit_tests",
        "//chrome/app:chrome_dll_resources",
        "//chrome/app:win_unit_tests",
-@@ -8131,6 +8134,10 @@ test("unit_tests") {
+@@ -8155,6 +8158,10 @@ test("unit_tests") {
        "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
      ]
  
@@ -74,7 +74,7 @@ index 0e038a6064ecea2fd100c760966de6e0fd3c0d72..4b856057cde5a2e91777260f28dfb68d
      sources += [
        # The importer code is not used on Android.
        "../common/importer/firefox_importer_utils_unittest.cc",
-@@ -8200,7 +8207,6 @@ test("unit_tests") {
+@@ -8224,7 +8231,6 @@ test("unit_tests") {
      }
  
      deps += [

+ 1 - 1
patches/chromium/build_gn.patch

@@ -7,7 +7,7 @@ These are variables we add to the root BUILDCONFIG so that they're available
 everywhere, without having to import("//electron/.../flags.gni").
 
 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index 2694fe998328eeccc86587cc332187062f334065..562161797d365222ba2cc8e119521a2abaea98ae 100644
+index 1ed842b7790ff1415157c75a9debaac4a8b2f73c..d5ddc210503f091b3563ce738b70f2fa0ac88c95 100644
 --- a/build/config/BUILDCONFIG.gn
 +++ b/build/config/BUILDCONFIG.gn
 @@ -123,6 +123,9 @@ if (current_os == "") {

+ 2 - 2
patches/chromium/build_remove_ent_content_analysis_assert.patch

@@ -9,10 +9,10 @@ This patch can be removed when we decide how we want to handle
 enterprise content analysis.
 
 diff --git a/components/enterprise/buildflags/buildflags.gni b/components/enterprise/buildflags/buildflags.gni
-index 4d60f9c070ed3c577e24edf0c6581a99012e17d9..a1bcc636598efc5e15accffdbb77c371185930b9 100644
+index fa27ba6cfe55fb2ec53b594e297abfd87831c8fa..1735969ab7b12fb6fffce0b51fd7164522dda755 100644
 --- a/components/enterprise/buildflags/buildflags.gni
 +++ b/components/enterprise/buildflags/buildflags.gni
-@@ -42,4 +42,4 @@ declare_args() {
+@@ -41,4 +41,4 @@ declare_args() {
  # These two flags are equivalent, but `enable_print_content_analysis` still
  # needs to exist separately as it lives under //printing which cannot depend
  # on //components.

+ 14 - 14
patches/chromium/can_create_window.patch

@@ -9,10 +9,10 @@ potentially prevent a window from being created.
 TODO(loc): this patch is currently broken.
 
 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
-index 7904069f5a7f28bedb18f7afe187305512fc97f7..ac9e3da59e6fbde78185c4a6924af1e3cf61369b 100644
+index 441cf9208e50ed4fab3e6392996bdbb511b0ad76..39b46b4f5bb3adb18d903c0ca4c65f212138590b 100644
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -8347,6 +8347,7 @@ void RenderFrameHostImpl::CreateNewWindow(
+@@ -8383,6 +8383,7 @@ void RenderFrameHostImpl::CreateNewWindow(
            last_committed_origin_, params->window_container_type,
            params->target_url, params->referrer.To<Referrer>(),
            params->frame_name, params->disposition, *params->features,
@@ -21,10 +21,10 @@ index 7904069f5a7f28bedb18f7afe187305512fc97f7..ac9e3da59e6fbde78185c4a6924af1e3
            &no_javascript_access);
  
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 51089c5192b5f66ac7c407252d5f3f2b74fad7b3..09d791fbd4466c605dcb946b63b3dd3e7eba9fb0 100644
+index 0e11a024bdd472e9a9041a2b86ab7116238ea3ee..af90ef714bc17302ca9818a57a7d3a1decea9fe1 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4532,6 +4532,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4558,6 +4558,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    auto* new_contents_impl = new_contents.get();
  
@@ -37,7 +37,7 @@ index 51089c5192b5f66ac7c407252d5f3f2b74fad7b3..09d791fbd4466c605dcb946b63b3dd3e
    // 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
-@@ -4573,12 +4579,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4599,12 +4605,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
      AddWebContentsDestructionObserver(new_contents_impl);
    }
  
@@ -51,7 +51,7 @@ index 51089c5192b5f66ac7c407252d5f3f2b74fad7b3..09d791fbd4466c605dcb946b63b3dd3e
                               new_contents_impl, opener, params.target_url,
                               params.referrer.To<Referrer>(), params.disposition,
 diff --git a/content/common/frame.mojom b/content/common/frame.mojom
-index 9381a209cbe182c8bdde694fae763f96c28e96ef..d5268ea720b1c35e17f63cb39d31c6c1931ddaf6 100644
+index 268f150c1cc987ea020192a86ab886ed206a0064..05856b853112072a18ec16589f2b442f2b1330b2 100644
 --- a/content/common/frame.mojom
 +++ b/content/common/frame.mojom
 @@ -603,6 +603,10 @@ struct CreateNewWindowParams {
@@ -66,10 +66,10 @@ index 9381a209cbe182c8bdde694fae763f96c28e96ef..d5268ea720b1c35e17f63cb39d31c6c1
  
  // 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 f7fe84d62f1d08758dc37bc8500bb69cdfc95d85..919f5669ddf1c1be282097f267010d063ac95846 100644
+index 97be51019b36fef0b95b4812f682ff41544cbfe3..f013173e680898584561734942364755d3676363 100644
 --- a/content/public/browser/content_browser_client.cc
 +++ b/content/public/browser/content_browser_client.cc
-@@ -717,6 +717,8 @@ bool ContentBrowserClient::CanCreateWindow(
+@@ -725,6 +725,8 @@ bool ContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -79,7 +79,7 @@ index f7fe84d62f1d08758dc37bc8500bb69cdfc95d85..919f5669ddf1c1be282097f267010d06
      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 d80e4ed168aaf75b4a57506f58a360524891ab01..da88d205c15eae320a4580c11c30d4dc24d8dc1e 100644
+index ac3754651b1569a07b666d8a101a08386393137c..25641beab08c2f575494f23850b1e22f1958569b 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
 @@ -183,6 +183,7 @@ class NetworkService;
@@ -90,7 +90,7 @@ index d80e4ed168aaf75b4a57506f58a360524891ab01..da88d205c15eae320a4580c11c30d4dc
  }  // namespace network
  
  namespace sandbox {
-@@ -1191,6 +1192,8 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -1219,6 +1220,8 @@ class CONTENT_EXPORT ContentBrowserClient {
        const std::string& frame_name,
        WindowOpenDisposition disposition,
        const blink::mojom::WindowFeatures& features,
@@ -148,10 +148,10 @@ index cce26ecaccbfde4259ccfcf73dc9508271b7364b..7217c90d0c65203056c622120ae16120
    // 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 67034e12e5ca65f3e09c1461bbf0a2422b454ebb..c0ca69f77833f7138d8eb3b49a7296ff671129b0 100644
+index 115a9e0e74969e224acb15f4b37d0d280b129f32..9012fbd732b8e134609b187f3718652888c31af4 100644
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -6652,6 +6652,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
+@@ -6685,6 +6685,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
            request.HasUserGesture(), GetWebFrame()->IsAdFrame(),
            GetWebFrame()->IsAdScriptInStack());
  
@@ -210,10 +210,10 @@ index 78956238f8d959580e928d2590866b2f4da3d218..806b3337ec8a8ad7c89681857b4e81dc
  
  }  // 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 b4a959a7d99449a083166dc7de4250133badf862..27be63c5e60abcfbff68293891bfa95f9e44d575 100644
+index 475f782109990e38caca9a1760ad225727303b1a..a393d149bd0b880ba30abbe43b89c48d2c351d96 100644
 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc
 +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -2214,6 +2214,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
+@@ -2213,6 +2213,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
    WebWindowFeatures window_features =
        GetWindowFeaturesFromString(features, entered_window);
  

+ 11 - 2
patches/chromium/chore_add_buildflag_guard_around_new_include.patch

@@ -9,7 +9,7 @@ This is an experimental commit; but if it's successful,
 This patch should be upstreamed and then removed from electron's code.
 
 diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h
-index 2a1498da8c9ce693403800d4c4b52fac6a7430e1..95c1b5df170b368d58e57e22561da9ba7e83e1d8 100644
+index 836b5aa54918386346fb7c13b9aadecd254d9013..97f4c56e5fcbdbbcae90b47ec5e42a020f178d94 100644
 --- a/chrome/browser/ui/views/frame/browser_view.h
 +++ b/chrome/browser/ui/views/frame/browser_view.h
 @@ -41,9 +41,7 @@
@@ -48,7 +48,16 @@ index 2a1498da8c9ce693403800d4c4b52fac6a7430e1..95c1b5df170b368d58e57e22561da9ba
    // Sets the watermark string to the value specified in text if the view is
    // not null.
    void SetWatermarkString(const std::string& text);
-@@ -1182,8 +1185,10 @@ class BrowserView : public BrowserWindow,
+@@ -726,7 +729,7 @@ class BrowserView : public BrowserWindow,
+ 
+   // content::WebContentsObserver:
+   void DidFirstVisuallyNonEmptyPaint() override;
+-#if BUILDFLAG(ENTERPRISE_WATERMARK)
++#if 0
+   void DidStartNavigation(
+       content::NavigationHandle* navigation_handle) override;
+ #endif
+@@ -1191,8 +1194,10 @@ class BrowserView : public BrowserWindow,
    raw_ptr<views::WebView, AcrossTasksDanglingUntriaged> devtools_web_view_ =
        nullptr;
  

+ 12 - 12
patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch

@@ -80,10 +80,10 @@ index aaaa61d5c3a1d5ade2fd355e38a3985ef5cc4e7d..b45746ba0f38a381a2ee5ca17f3a1685
    }
  
 diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
-index 0791cc8f55a922c6c9e0bd6b69d863ed0e0b8dd0..7a423f19ffdb6819c7ca8973fe08221bc27b5ee4 100644
+index a3855799f5e896861726b599dcd48c8fa13a5e09..30750a8b03300e84dccc38c2e48dcde618016962 100644
 --- a/chrome/browser/ui/browser.cc
 +++ b/chrome/browser/ui/browser.cc
-@@ -1935,12 +1935,11 @@ bool Browser::IsWebContentsCreationOverridden(
+@@ -1937,12 +1937,11 @@ bool Browser::IsWebContentsCreationOverridden(
      content::SiteInstance* source_site_instance,
      content::mojom::WindowContainerType window_container_type,
      const GURL& opener_url,
@@ -218,10 +218,10 @@ index c5b0d3b23b8da318ae55fcac2515a1187f261469..16ed1f46c9afde0ff25750128b4fcff6
    void AddNewContents(content::WebContents* source,
                        std::unique_ptr<content::WebContents> new_contents,
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index df08d8a1b2232dcd9b926466f062b17b34dad446..6addf2f57f08a9c1a6702b777d965c1d99ce59a1 100644
+index 466580ea98c05f3e896343a4be4dd0669b86a2b2..4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4438,8 +4438,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4464,8 +4464,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    if (delegate_ && delegate_->IsWebContentsCreationOverridden(
                         source_site_instance, params.window_container_type,
@@ -260,10 +260,10 @@ index 7217c90d0c65203056c622120ae161206d341a83..681aa45b93e648157d018be425024dce
    // Allow delegate to creates a custom WebContents when
    // WebContents::CreateNewWindow() is called. This function is only called
 diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
-index 871d4bf48e3267cb518ebf2d4b2aaebdf9f4b0dc..d1f434fd9e23a172928aed23ca194b0b7bc2d884 100644
+index cd9920e21bddc26fe051c4b5638424e03534f849..9dacac9df4bdc06f7d73f37e852d6cf13f68413b 100644
 --- a/extensions/browser/guest_view/extension_options/extension_options_guest.cc
 +++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
-@@ -213,8 +213,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
+@@ -216,8 +216,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
      content::SiteInstance* source_site_instance,
      content::mojom::WindowContainerType window_container_type,
      const GURL& opener_url,
@@ -274,10 +274,10 @@ index 871d4bf48e3267cb518ebf2d4b2aaebdf9f4b0dc..d1f434fd9e23a172928aed23ca194b0b
    // view is used for displaying embedded extension options, we want any
    // external links to be opened in a new tab, not in a new guest view so we
 diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.h b/extensions/browser/guest_view/extension_options/extension_options_guest.h
-index 2578fa3fe9709cccd116290b4646c4426c41f8c8..32e7f992af1830e619b80f454051044ad80a77c2 100644
+index 792f0cfa8475360ab58434d6b7bca1d36f674234..21665eb04d85fded5a9fb3a3c3069e4edfd1a73c 100644
 --- a/extensions/browser/guest_view/extension_options/extension_options_guest.h
 +++ b/extensions/browser/guest_view/extension_options/extension_options_guest.h
-@@ -62,8 +62,7 @@ class ExtensionOptionsGuest
+@@ -63,8 +63,7 @@ class ExtensionOptionsGuest
        content::SiteInstance* source_site_instance,
        content::mojom::WindowContainerType window_container_type,
        const GURL& opener_url,
@@ -288,10 +288,10 @@ index 2578fa3fe9709cccd116290b4646c4426c41f8c8..32e7f992af1830e619b80f454051044a
        content::RenderFrameHost* opener,
        content::SiteInstance* source_site_instance,
 diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
-index 39def4c0d8ad58b51a6a71f5ad46b308bf7ff3a5..2357963cc6f83eb5536c01e1a25a7d12d8efce06 100644
+index cb8f896ebe8a229245d4b69bf9d0a7e9b598b0d2..a76610cc2de970f4d9eee1695e613ec1f1752f25 100644
 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
 +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
-@@ -386,8 +386,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
+@@ -388,8 +388,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
      content::SiteInstance* source_site_instance,
      content::mojom::WindowContainerType window_container_type,
      const GURL& opener_url,
@@ -302,10 +302,10 @@ index 39def4c0d8ad58b51a6a71f5ad46b308bf7ff3a5..2357963cc6f83eb5536c01e1a25a7d12
  }
  
 diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
-index 5709e978f2d8e6e287beb0b152595b937ebaeaf9..bf4e162439e6143470b24335ffb87381a79aae98 100644
+index 1cf22ee486d411fd35cfc8040f3e9e51eb3b087f..040e3d37eca88e84fe41a217472a0c9e4ba7d593 100644
 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
 +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
-@@ -174,8 +174,7 @@ class MimeHandlerViewGuest
+@@ -175,8 +175,7 @@ class MimeHandlerViewGuest
        content::SiteInstance* source_site_instance,
        content::mojom::WindowContainerType window_container_type,
        const GURL& opener_url,

+ 1 - 1
patches/chromium/custom_protocols_plzserviceworker.patch

@@ -8,7 +8,7 @@ Allow registering custom protocols to handle service worker main script fetching
 Refs https://bugs.chromium.org/p/chromium/issues/detail?id=996511
 
 diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
-index f58f8f807f4a9644971fb91e0fa8092acfc6e50c..c915b9906e9414c29d396011a2d56846fd7b6d4c 100644
+index 0019c6a54eb8c509597cad4b6727a23dec2926ed..b37cb96cb5d6a55671942cc4315100f81e23d7ba 100644
 --- a/content/browser/service_worker/service_worker_context_wrapper.cc
 +++ b/content/browser/service_worker/service_worker_context_wrapper.cc
 @@ -1947,6 +1947,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(

+ 1 - 1
patches/chromium/disable_hidden.patch

@@ -33,7 +33,7 @@ index 220f8998b0499128396d868d1a80e402ddcff5fc..c51e6f684a58458ce487baaa970c4382
    void StartDragging(blink::mojom::DragDataPtr drag_data,
                       const url::Origin& source_origin,
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index bb65375eb77e0bc56ef6a6d0cb537ce59b14f9f2..95fb2a4b401ec57ed4492413a2607dba5ece1fa6 100644
+index 0f4988a4480e6128eaf03090d774a036e0504d2e..4dbb03bd4f6b7a46073c8cc1568151f23583deb6 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -614,7 +614,7 @@ void RenderWidgetHostViewAura::HideImpl() {

+ 3 - 3
patches/chromium/disable_unload_metrics.patch

@@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we
 should continue seeking for a real fix.
 
 diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc
-index 1afb29c1a18e8729cb1fd95f976ee6dae5340035..597d20dd33c6bff54cefc909e3cb20d4e89cb744 100644
+index 60b1e21acfcfdf8e7941bf476d4f10bbe254e47c..72dba8334b1a2ebee809a3b995f23378150f7017 100644
 --- a/content/browser/renderer_host/navigator.cc
 +++ b/content/browser/renderer_host/navigator.cc
-@@ -1301,6 +1301,7 @@ void Navigator::RecordNavigationMetrics(
+@@ -1322,6 +1322,7 @@ void Navigator::RecordNavigationMetrics(
              .InMilliseconds());
    }
  
@@ -35,7 +35,7 @@ index 1afb29c1a18e8729cb1fd95f976ee6dae5340035..597d20dd33c6bff54cefc909e3cb20d4
    // If this is a same-process navigation and we have timestamps for unload
    // durations, fill those metrics out as well.
    if (params.unload_start && params.unload_end &&
-@@ -1350,6 +1351,7 @@ void Navigator::RecordNavigationMetrics(
+@@ -1371,6 +1372,7 @@ void Navigator::RecordNavigationMetrics(
           first_before_unload_start_time)
              .InMilliseconds());
    }

+ 3 - 3
patches/chromium/expose_setuseragent_on_networkcontext.patch

@@ -33,10 +33,10 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4
  
  }  // namespace net
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
-index f417639adad080aa59d3f64a3061f5298518f47d..b9bccfcfa1f24f01b354657a9e00802921dc44f9 100644
+index a3308f1794295f9b5c3cbd97ec2c5ad3ea10f709..1c078ca5664b5679e66bd8904c3779bfd9364365 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -1612,6 +1612,13 @@ void NetworkContext::SetNetworkConditions(
+@@ -1614,6 +1614,13 @@ void NetworkContext::SetNetworkConditions(
                                        std::move(network_conditions));
  }
  
@@ -51,7 +51,7 @@ index f417639adad080aa59d3f64a3061f5298518f47d..b9bccfcfa1f24f01b354657a9e008029
    // This may only be called on NetworkContexts created with the constructor
    // that calls MakeURLRequestContext().
 diff --git a/services/network/network_context.h b/services/network/network_context.h
-index fdc0899c6ccf8ff23dfad6de24ce0afa2efa4695..f5135b6ba8665483a8b97bda7dcc82b6f647a958 100644
+index 3656f50db07946ee2d3100e0510450f3fbe93a71..780dcbc101a6f61e067163b9d0b89fcffe93412f 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 @@ -315,6 +315,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext

+ 2 - 2
patches/chromium/extend_apply_webpreferences.patch

@@ -12,7 +12,7 @@ Ideally we could add an embedder observer pattern here but that can be
 done in future work.
 
 diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
-index 6eb7560fb0e9301777a9c06643b0d00889d3a04c..14fdb34e5ea64df116cf8001d6c682b27fbb60e7 100644
+index 986b4c9f35431ed14989d5f69fc09d17a2c3fda9..b88f27942cbefb1c3ae819a3fc4135d8a3a819fa 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
 @@ -167,6 +167,7 @@
@@ -23,7 +23,7 @@ index 6eb7560fb0e9301777a9c06643b0d00889d3a04c..14fdb34e5ea64df116cf8001d6c682b2
  #include "third_party/blink/renderer/platform/graphics/image.h"
  #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
  #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
-@@ -1804,6 +1805,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
+@@ -1805,6 +1806,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
  #if BUILDFLAG(IS_MAC)
    web_view_impl->SetMaximumLegibleScale(
        prefs.default_maximum_page_scale_factor);

+ 3 - 3
patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch

@@ -26,10 +26,10 @@ index c5bcbe62463a418cf78c4813678d7a1e39c4dd9d..f51e2e70bb249f5113ee592f121e53d6
  }
  
 diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
-index bc00e5ca9e993df8dc633f41d2f53cdc30e8877e..e6cb1bdee4e2d186916a4bbd3ccb69b31b48494d 100644
+index e1c2037c320efc78bc9df701960af57aa0ef180c..3a74da489cfbe6457aa9a206364a977bb3052d80 100644
 --- a/ui/native_theme/native_theme.h
 +++ b/ui/native_theme/native_theme.h
-@@ -442,6 +442,23 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -443,6 +443,23 @@ class NATIVE_THEME_EXPORT NativeTheme {
        scoped_refptr<ColorProviderKey::ThemeInitializerSupplier> custom_theme,
        bool use_custom_frame = true) const;
  
@@ -53,7 +53,7 @@ index bc00e5ca9e993df8dc633f41d2f53cdc30e8877e..e6cb1bdee4e2d186916a4bbd3ccb69b3
    // Returns a shared instance of the native theme that should be used for web
    // rendering. Do not use it in a normal application context (i.e. browser).
    // The returned object should not be deleted by the caller. This function is
-@@ -656,6 +673,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -658,6 +675,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
    bool inverted_colors_ = false;
    PreferredColorScheme preferred_color_scheme_ = PreferredColorScheme::kLight;
    PreferredContrast preferred_contrast_ = PreferredContrast::kNoPreference;

+ 1 - 1
patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch

@@ -13,7 +13,7 @@ other protocols to register their streaming behavior. MultibufferDataSource::Ass
 then refers to the list so that it can correctly determine the data source's settings.
 
 diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
-index cb1c97ee249d1dd3f231e445a74a6bea6c84970b..353e784f46a234b48c715c9242b8b07501a7696e 100644
+index d7e736b32c66c2e6a3acb6755ce620fcfc041e44..589072f4c7551a4290c554a38603dc54b06183f7 100644
 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
 +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
 @@ -12,8 +12,10 @@

+ 2 - 2
patches/chromium/feat_allow_code_cache_in_custom_schemes.patch

@@ -140,7 +140,7 @@ index f5c5ff2c89489257003dfe3284ee9de9f517c99b..fdd2e2483171c4d43963590200817dac
  
      // JavaScript from chrome and chrome-untrusted pages. The resource URLs are
 diff --git a/content/browser/code_cache/generated_code_cache_browsertest.cc b/content/browser/code_cache/generated_code_cache_browsertest.cc
-index 2578387d2e47a6b1e849097ed331c9b53289826c..c1cb9e260b68d7259f661a389da3a8b2ae1f83c0 100644
+index 50e0966199b18f88f85443016f57e8e217d7cf9c..fca44ad6a96981349a52dc2eeff4626e4dcb8bcd 100644
 --- a/content/browser/code_cache/generated_code_cache_browsertest.cc
 +++ b/content/browser/code_cache/generated_code_cache_browsertest.cc
 @@ -8,13 +8,18 @@
@@ -171,7 +171,7 @@ index 2578387d2e47a6b1e849097ed331c9b53289826c..c1cb9e260b68d7259f661a389da3a8b2
  bool SupportsSharedWorker() {
  #if BUILDFLAG(IS_ANDROID)
    // SharedWorkers are not enabled on Android. https://crbug.com/154571
-@@ -628,4 +635,82 @@ IN_PROC_BROWSER_TEST_F(LocalCompileHintsBrowserTest, LocalCompileHints) {
+@@ -710,4 +717,82 @@ IN_PROC_BROWSER_TEST_F(LocalCompileHintsBrowserTest, LocalCompileHints) {
    }
  }
  

+ 18 - 16
patches/chromium/feat_configure_launch_options_for_service_process.patch

@@ -163,13 +163,14 @@ index 1d6bc6590720cda38983203455cc20638710148f..8f965150db13d3f4fe1757a021b9a2f6
  }
  
 diff --git a/content/browser/service_process_host_impl.cc b/content/browser/service_process_host_impl.cc
-index 7c9548bc25fa3a886806e1611791f2a74aa94d1a..d61ce98e754c2546987bf2cbe0ed6bf9332cf46a 100644
+index 1987b9539e6d393334e0a9b1e4145fa816e14559..73d8c2fcbed9db89161ad3fabd5cbfb6b3761a4d 100644
 --- a/content/browser/service_process_host_impl.cc
 +++ b/content/browser/service_process_host_impl.cc
-@@ -203,6 +203,15 @@ void LaunchServiceProcess(mojo::GenericPendingReceiver receiver,
-     host->SetPinUser32();
+@@ -207,6 +207,16 @@ void LaunchServiceProcess(mojo::GenericPendingReceiver receiver,
+       options.allow_gpu_client.value()) {
+     host->SetAllowGpuClient();
    }
- #endif  // BUILDFLAG(IS_WIN)
++
 +#if BUILDFLAG(IS_WIN)
 +  host->SetStdioHandles(std::move(options.stdout_handle), std::move(options.stderr_handle));
 +#elif BUILDFLAG(IS_POSIX)
@@ -183,10 +184,10 @@ index 7c9548bc25fa3a886806e1611791f2a74aa94d1a..d61ce98e754c2546987bf2cbe0ed6bf9
    host->GetChildProcess()->BindServiceInterface(std::move(receiver));
  }
 diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
-index 009e97487209e3ebe811d061d5e8a44df7eb9eb3..3ae41211ea66161a5117262907d9fc70f33e4c8a 100644
+index 3cca937cc1af689df506bce8f31baee7968e7798..9b99a3caf366368917c39ae5c12a11f5294c3948 100644
 --- a/content/browser/utility_process_host.cc
 +++ b/content/browser/utility_process_host.cc
-@@ -177,11 +177,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
+@@ -178,11 +178,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
    return process_->GetData();
  }
  
@@ -202,7 +203,7 @@ index 009e97487209e3ebe811d061d5e8a44df7eb9eb3..3ae41211ea66161a5117262907d9fc70
  
  bool UtilityProcessHost::Start() {
    return StartProcess();
-@@ -247,6 +249,24 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
+@@ -254,6 +256,24 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
  }
  #endif  // BUILDFLAG(USE_ZYGOTE)
  
@@ -227,7 +228,7 @@ index 009e97487209e3ebe811d061d5e8a44df7eb9eb3..3ae41211ea66161a5117262907d9fc70
  mojom::ChildProcess* UtilityProcessHost::GetChildProcess() {
    return static_cast<ChildProcessHostImpl*>(process_->GetHost())
        ->child_process();
-@@ -460,9 +480,22 @@ bool UtilityProcessHost::StartProcess() {
+@@ -463,9 +483,22 @@ bool UtilityProcessHost::StartProcess() {
      }
  #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
  
@@ -252,7 +253,7 @@ index 009e97487209e3ebe811d061d5e8a44df7eb9eb3..3ae41211ea66161a5117262907d9fc70
  #if BUILDFLAG(IS_WIN)
      if (!preload_libraries_.empty()) {
 diff --git a/content/browser/utility_process_host.h b/content/browser/utility_process_host.h
-index 01a921c772f769c64ac97bfc5e74862a801e3e61..9bfc30138a01520d59760a49d15dd4819feb0556 100644
+index cba1933af784da5e3afd12b7695a734158a5db1b..ecb0b0e02870386f3ad4365461325ba0627ba1ce 100644
 --- a/content/browser/utility_process_host.h
 +++ b/content/browser/utility_process_host.h
 @@ -35,6 +35,10 @@
@@ -282,7 +283,7 @@ index 01a921c772f769c64ac97bfc5e74862a801e3e61..9bfc30138a01520d59760a49d15dd481
  
    // Starts the utility process.
    bool Start();
-@@ -154,6 +162,16 @@ class CONTENT_EXPORT UtilityProcessHost
+@@ -157,6 +165,16 @@ class CONTENT_EXPORT UtilityProcessHost
    void SetZygoteForTesting(ZygoteCommunication* handle);
  #endif  // BUILDFLAG(USE_ZYGOTE)
  
@@ -299,7 +300,7 @@ index 01a921c772f769c64ac97bfc5e74862a801e3e61..9bfc30138a01520d59760a49d15dd481
    // Returns a control interface for the running child process.
    mojom::ChildProcess* GetChildProcess();
  
-@@ -209,6 +227,22 @@ class CONTENT_EXPORT UtilityProcessHost
+@@ -212,6 +230,22 @@ class CONTENT_EXPORT UtilityProcessHost
    std::optional<raw_ptr<ZygoteCommunication>> zygote_for_testing_;
  #endif  // BUILDFLAG(USE_ZYGOTE)
  
@@ -436,7 +437,7 @@ index 498f60227d13eb2e476413f88eaa58cc0babf461..619639ad5d22a1121b0e0d5f2c9e3c10
  
  }  // namespace content
 diff --git a/content/public/browser/service_process_host.cc b/content/public/browser/service_process_host.cc
-index e6bd27288a8d29dcf263a0677d2629d0aa7cf7c4..24d5acf41ea3fb825d813a040644aef1c9d6d4ee 100644
+index 556d27b78e6b2bf96c9951cee6bda323ecca675e..7ba6b859e8c27da7f267e988efaac1d54f8b57b8 100644
 --- a/content/public/browser/service_process_host.cc
 +++ b/content/public/browser/service_process_host.cc
 @@ -52,12 +52,45 @@ ServiceProcessHost::Options::WithExtraCommandLineSwitches(
@@ -486,7 +487,7 @@ index e6bd27288a8d29dcf263a0677d2629d0aa7cf7c4..24d5acf41ea3fb825d813a040644aef1
  ServiceProcessHost::Options&
  ServiceProcessHost::Options::WithPreloadedLibraries(
 diff --git a/content/public/browser/service_process_host.h b/content/public/browser/service_process_host.h
-index b737083c3a3a80ae408c69d4831fb7a0304d93ff..425845c33523135988c646bd75465b9a33d658ba 100644
+index acac8d4bf5e256e5c05e8c7c9592f9857d5a493d..4895ba5c305c898bb21472a2408ecd62afb46fd6 100644
 --- a/content/public/browser/service_process_host.h
 +++ b/content/public/browser/service_process_host.h
 @@ -14,6 +14,7 @@
@@ -508,7 +509,7 @@ index b737083c3a3a80ae408c69d4831fb7a0304d93ff..425845c33523135988c646bd75465b9a
  namespace base {
  class Process;
  }  // namespace base
-@@ -94,11 +99,30 @@ class CONTENT_EXPORT ServiceProcessHost {
+@@ -96,11 +101,30 @@ class CONTENT_EXPORT ServiceProcessHost {
      // Specifies extra command line switches to append before launch.
      Options& WithExtraCommandLineSwitches(std::vector<std::string> switches);
  
@@ -539,7 +540,7 @@ index b737083c3a3a80ae408c69d4831fb7a0304d93ff..425845c33523135988c646bd75465b9a
  #if BUILDFLAG(IS_WIN)
      // Specifies libraries to preload before the sandbox is locked down. Paths
      // should be absolute paths. Libraries will be preloaded before sandbox
-@@ -125,11 +149,20 @@ class CONTENT_EXPORT ServiceProcessHost {
+@@ -133,12 +157,21 @@ class CONTENT_EXPORT ServiceProcessHost {
      std::optional<GURL> site;
      std::optional<int> child_flags;
      std::vector<std::string> extra_switches;
@@ -552,8 +553,9 @@ index b737083c3a3a80ae408c69d4831fb7a0304d93ff..425845c33523135988c646bd75465b9a
      base::OnceCallback<void(const base::Process&)> process_callback;
  #if BUILDFLAG(IS_WIN)
      std::vector<base::FilePath> preload_libraries;
-     bool pin_user32;
+     std::optional<bool> pin_user32;
  #endif  // BUILDFLAG(IS_WIN)
+     std::optional<bool> allow_gpu_client;
 +    base::FilePath current_directory;
 +    base::EnvironmentMap environment;
 +    bool clear_environment = false;

+ 3 - 3
patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch

@@ -90,7 +90,7 @@ index 8af69cac78b7488d28f1f05ccb174793fe5148cd..9f74e511c263d147b5fbe81fe100d217
   private:
    const HWND hwnd_;
 diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
-index fc67ca507ecbf39fabba4142e8a3ac618f3eeaf9..815687ef4956eec5d45dd5d884a1edd30c87037f 100644
+index 17d4b2f0490894058f1896b694a558d387f25993..caf00099657226b1f89eeb243897c7770cc20920 100644
 --- a/components/viz/service/BUILD.gn
 +++ b/components/viz/service/BUILD.gn
 @@ -165,6 +165,8 @@ viz_component("service") {
@@ -520,10 +520,10 @@ index 796ae2688436eb07f19909641d1620dd02f10cdb..c9e0eee0b329caf46669b419b1cd10cf
    waiting_on_draw_ack_ = true;
  
 diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-index fc8cd6e32ce8652a3e59593404a182e82e169875..6a0cbd8d3a70ab870a1ecb757c5fff296882aaf2 100644
+index c11057917af819fc1e4f343ba28d01db464d00eb..425394c38ddd8aa01e64d4f77c704370d1f6299a 100644
 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
 +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-@@ -101,7 +101,8 @@ RootCompositorFrameSinkImpl::Create(
+@@ -100,7 +100,8 @@ RootCompositorFrameSinkImpl::Create(
        params->gpu_compositing, params->widget);
    auto output_surface = output_surface_provider->CreateOutputSurface(
        params->widget, params->gpu_compositing, display_client.get(),

+ 1 - 1
patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch

@@ -28,7 +28,7 @@ index f9d3219990dcf4f4a829567d567072df59a70ada..ca8281faaff601bf591cf5a2b185e4ba
  
    // Returns the http referrer of original request which initited this load.
 diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
-index 2782e47791ef0af261ea42a842bd9fbf83f97a79..8cdccf347671c2d42ce6f970a1b0045717463553 100644
+index ca693ac2874e4eec530bd511d2e3bb26f4ed6100..c2ca513b5062cf48b232c8129e6eda216c9d9a63 100644
 --- a/third_party/blink/renderer/core/loader/document_loader.h
 +++ b/third_party/blink/renderer/core/loader/document_loader.h
 @@ -311,7 +311,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,

+ 2 - 2
patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch

@@ -112,7 +112,7 @@ index e1fb008d12ae863df30dbffb07c7ec53f29f1333..3f5074bde0de54dc3fd57da756982634
    string mime_type;
  
 diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
-index 184c5e1354b52c82578ed7d92984e48d32c32d96..b969a1febabcde08aea7a0f78c449d0da8042637 100644
+index d10b1e2365ec363f71479a28b72e9b74d141e8c6..d78c1c1f323b016c73e07e5613aaa5ca5f757c5f 100644
 --- a/services/network/url_loader.cc
 +++ b/services/network/url_loader.cc
 @@ -675,6 +675,7 @@ URLLoader::URLLoader(
@@ -153,7 +153,7 @@ index 184c5e1354b52c82578ed7d92984e48d32c32d96..b969a1febabcde08aea7a0f78c449d0d
  
    // Parse and remove the Trust Tokens response headers, if any are expected,
 diff --git a/services/network/url_loader.h b/services/network/url_loader.h
-index 5529f9c5ffa79eab973b1bf5a896187a6aef349a..632308c2445a7425f79226819efc4b3707fe8112 100644
+index 20a19cae05190262e54ecc503738553d2d8046c5..8005ba04ec609c744676ee985bf301b1e9402de7 100644
 --- a/services/network/url_loader.h
 +++ b/services/network/url_loader.h
 @@ -647,6 +647,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader

+ 8 - 8
patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch

@@ -23,10 +23,10 @@ Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397.
 Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/3856266.
 
 diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
-index fd4f8af05a78316870d64b54f2cd2a7917f5c78a..c3af34a6b831f16e6e1de2b328c9b0ae8d8d6b50 100644
+index 43f45a17a2d2556a12941fb431708ea9e0ce3ada..b5b143415450f02660901cf48c7ea2968ed67206 100644
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -10293,6 +10293,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
+@@ -10374,6 +10374,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
      return std::make_pair(parent->GetLastCommittedOrigin(), "about_srcdoc");
    }
  
@@ -40,10 +40,10 @@ index fd4f8af05a78316870d64b54f2cd2a7917f5c78a..c3af34a6b831f16e6e1de2b328c9b0ae
    // 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 01a4f9c0bc86903243b548a49df11d2111877a16..9086c0ef56b7bc1c3b1ebe5885905eaca1235b77 100644
+index 1e94b973f4486e11ae05528b4a97c9fae74fe7f2..43ffe048aea73bd2fae57fb87ad1346296189d64 100644
 --- a/third_party/blink/renderer/core/loader/document_loader.cc
 +++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -2139,6 +2139,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() {
+@@ -2165,6 +2165,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() {
  scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
      Document* owner_document) {
    scoped_refptr<SecurityOrigin> origin;
@@ -54,7 +54,7 @@ index 01a4f9c0bc86903243b548a49df11d2111877a16..9086c0ef56b7bc1c3b1ebe5885905eac
    StringBuilder debug_info_builder;
    if (origin_to_commit_) {
      // Origin to commit is specified by the browser process, it must be taken
-@@ -2186,6 +2190,10 @@ scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
+@@ -2212,6 +2216,10 @@ scoped_refptr<SecurityOrigin> DocumentLoader::CalculateOrigin(
      debug_info_builder.Append(", url=");
      debug_info_builder.Append(owner_document->Url().BaseAsString());
      debug_info_builder.Append(")");
@@ -62,6 +62,6 @@ index 01a4f9c0bc86903243b548a49df11d2111877a16..9086c0ef56b7bc1c3b1ebe5885905eac
 +             !is_standard) {
 +    debug_info_builder.Append("use_url_with_non_standard_scheme");
 +    origin = SecurityOrigin::Create(url_);
-   } else {
-     debug_info_builder.Append("use_url_with_precursor");
-     // Otherwise, create an origin that propagates precursor information
+   } else if (url_.IsAboutSrcdocURL()) {
+     // If there's no owner_document and this is a srcdoc load, then get the
+     // origin from the remote parent. A srcdoc navigation with no owner_document

+ 5 - 5
patches/chromium/fix_crash_when_saving_edited_pdf_files.patch

@@ -13,10 +13,10 @@ This patch can be removed should we choose to support chrome.fileSystem
 or support it enough to fix the crash.
 
 diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts
-index 903be625db73bb5712f1f79970baef74304f428e..8fed791ed03063f43c3cb29c6942fb04556a5f32 100644
+index 79ef6101a4a1a82f31e038557524b60bf92ffe8d..80d35ed15d353bb5bc0899f8511516b551628cc1 100644
 --- a/chrome/browser/resources/pdf/pdf_viewer.ts
 +++ b/chrome/browser/resources/pdf/pdf_viewer.ts
-@@ -937,7 +937,15 @@ export class PdfViewerElement extends PdfViewerBaseElement {
+@@ -955,7 +955,15 @@ export class PdfViewerElement extends PdfViewerBaseElement {
        dataArray = [result.dataToSave];
      }
  
@@ -32,7 +32,7 @@ index 903be625db73bb5712f1f79970baef74304f428e..8fed791ed03063f43c3cb29c6942fb04
      const fileName = this.attachments_[index].name;
      chrome.fileSystem.chooseEntry(
          {type: 'saveFile', suggestedName: fileName},
-@@ -961,6 +969,7 @@ export class PdfViewerElement extends PdfViewerBaseElement {
+@@ -979,6 +987,7 @@ export class PdfViewerElement extends PdfViewerBaseElement {
              }
            });
          });
@@ -40,7 +40,7 @@ index 903be625db73bb5712f1f79970baef74304f428e..8fed791ed03063f43c3cb29c6942fb04
    }
  
    /**
-@@ -1068,8 +1077,15 @@ export class PdfViewerElement extends PdfViewerBaseElement {
+@@ -1086,8 +1095,15 @@ export class PdfViewerElement extends PdfViewerBaseElement {
        fileName = fileName + '.pdf';
      }
  
@@ -57,7 +57,7 @@ index 903be625db73bb5712f1f79970baef74304f428e..8fed791ed03063f43c3cb29c6942fb04
      chrome.fileSystem.chooseEntry(
          {
            type: 'saveFile',
-@@ -1096,6 +1112,7 @@ export class PdfViewerElement extends PdfViewerBaseElement {
+@@ -1114,6 +1130,7 @@ export class PdfViewerElement extends PdfViewerBaseElement {
              }
            });
          });

+ 2 - 2
patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch

@@ -75,10 +75,10 @@ index 5b0342be7e9732cdceb53b951c34dceb30e12da1..2f01a432540f603955b7809faeca5130
  
  PictureInPictureOcclusionTracker*
 diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
-index b3419d2bb60ab0488fc0413843c33b5a926fee09..059754d92621ada9100e739ee6b5db01ae9ea75f 100644
+index 569e99b4790b88326029d3681adb4958777f3499..53710288d90ae02977091b67aab153283e767739 100644
 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
 +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
-@@ -314,11 +314,13 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
+@@ -342,11 +342,13 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
    }
  #endif  // BUILDFLAG(IS_WIN)
  

+ 8 - 8
patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch

@@ -9,7 +9,7 @@ focus node change via TextInputManager.
 chromium-bug: https://crbug.com/1369605
 
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index 955a74fa895303a6e2db5f59a1f6a39fbe4c84bf..d2488feb9aaa3ab4ee319653ec818efdb18d7578 100644
+index 3d80ec348dc4c2519c6bd3eed0e1c5da3b39680d..e37493f3309f2796b98e089571f96a54b6730b46 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -2915,6 +2915,12 @@ void RenderWidgetHostViewAura::OnTextSelectionChanged(
@@ -39,10 +39,10 @@ index e44b23e055f985fea140a41a87f10a5423f7c77d..d1e09b159746ad13de9f3fea6b189bb9
    // 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 a73f08700e77443b1229ee35f99356be57d376f5..d37da7f122cdd326499d9e89fc83bef89d726014 100644
+index 1fd6203a11e5fef9a680e935b44226795932eea2..a3de9dc52df2f8bd2427db235a4ba4a41040ff3b 100644
 --- a/content/browser/renderer_host/text_input_manager.cc
 +++ b/content/browser/renderer_host/text_input_manager.cc
-@@ -167,6 +167,7 @@ void TextInputManager::UpdateTextInputState(
+@@ -166,6 +166,7 @@ void TextInputManager::UpdateTextInputState(
  
    if (text_input_state.type == ui::TEXT_INPUT_TYPE_NONE &&
        active_view_ != view) {
@@ -50,7 +50,7 @@ index a73f08700e77443b1229ee35f99356be57d376f5..d37da7f122cdd326499d9e89fc83bef8
      // 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
-@@ -453,6 +454,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
+@@ -452,6 +453,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
      observer.OnUpdateTextInputStateCalled(this, updated_view, did_update_state);
  }
  
@@ -64,7 +64,7 @@ index a73f08700e77443b1229ee35f99356be57d376f5..d37da7f122cdd326499d9e89fc83bef8
  
  TextInputManager::SelectionRegion::SelectionRegion(
 diff --git a/content/browser/renderer_host/text_input_manager.h b/content/browser/renderer_host/text_input_manager.h
-index 01993347572548e46d8583c0bb568be4f12c7207..c679db5de0e2b60867b8f4b30c9b72b63420d694 100644
+index 0c7d5b2c1d3e97420913bd643bb2a524a76fc286..653793fa480f035ce11e079b370bf5ed5cacfa65 100644
 --- a/content/browser/renderer_host/text_input_manager.h
 +++ b/content/browser/renderer_host/text_input_manager.h
 @@ -71,6 +71,10 @@ class CONTENT_EXPORT TextInputManager {
@@ -78,7 +78,7 @@ index 01993347572548e46d8583c0bb568be4f12c7207..c679db5de0e2b60867b8f4b30c9b72b6
    };
  
    // Text selection bounds.
-@@ -277,6 +281,7 @@ class CONTENT_EXPORT TextInputManager {
+@@ -275,6 +279,7 @@ class CONTENT_EXPORT TextInputManager {
  
    void NotifyObserversAboutInputStateUpdate(RenderWidgetHostViewBase* view,
                                              bool did_update_state);
@@ -87,10 +87,10 @@ index 01993347572548e46d8583c0bb568be4f12c7207..c679db5de0e2b60867b8f4b30c9b72b6
    // The view with active text input state, i.e., a focused <input> 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 ee75d9a235342062d67874099f81b5c184233998..49af8f6795231341fd1d3818ae386014bb666be0 100644
+index 3c61e1583211d68e112b930ff8254e1617676efd..1e31141641d6e5eb0bd6c21581f2b3e9dfb5d158 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -8785,7 +8785,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
+@@ -8815,7 +8815,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
                          "WebContentsImpl::OnFocusedElementChangedInFrame",
                          "render_frame_host", frame);
    RenderWidgetHostViewBase* root_view =

+ 15 - 15
patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch

@@ -64,10 +64,10 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..7a985067b1371604644d48159f2f5aa7
  
  #endif  // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
-index bf57ea36b37c5cb9441b2b62ae3ac020c297b495..ea86514b3a6701c069bf716ebadedb50346bf1a8 100644
+index e84ae764c9d47bfb78d01aa20695e03b07787136..6edb6bd6d8de5fdbd12473673262e05b218cd805 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -2971,6 +2971,7 @@ void LocalFrame::RequestExecuteScript(
+@@ -2966,6 +2966,7 @@ void LocalFrame::RequestExecuteScript(
      mojom::blink::EvaluationTiming evaluation_timing,
      mojom::blink::LoadEventBlockingOption blocking_option,
      WebScriptExecutionCallback callback,
@@ -75,7 +75,7 @@ index bf57ea36b37c5cb9441b2b62ae3ac020c297b495..ea86514b3a6701c069bf716ebadedb50
      BackForwardCacheAware back_forward_cache_aware,
      mojom::blink::WantResultOption want_result_option,
      mojom::blink::PromiseResultOption promise_behavior) {
-@@ -3004,7 +3005,7 @@ void LocalFrame::RequestExecuteScript(
+@@ -2999,7 +3000,7 @@ void LocalFrame::RequestExecuteScript(
    PausableScriptExecutor::CreateAndRun(
        script_state, std::move(script_sources), execute_script_policy,
        user_gesture, evaluation_timing, blocking_option, want_result_option,
@@ -85,10 +85,10 @@ index bf57ea36b37c5cb9441b2b62ae3ac020c297b495..ea86514b3a6701c069bf716ebadedb50
  
  void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() {
 diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
-index 1f659eb65fed28578dad3c58f90e90f96268a5f2..118346a19b127729eec1f422cb8c2f4baba1f95c 100644
+index 366f0d69c113b966686572f85c8a482e5b522f5b..e223af5aebd2f62947f5392ca7a622ec4e469417 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.h
 +++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -823,6 +823,7 @@ class CORE_EXPORT LocalFrame final
+@@ -821,6 +821,7 @@ class CORE_EXPORT LocalFrame final
                              mojom::blink::EvaluationTiming,
                              mojom::blink::LoadEventBlockingOption,
                              WebScriptExecutionCallback,
@@ -97,10 +97,10 @@ index 1f659eb65fed28578dad3c58f90e90f96268a5f2..118346a19b127729eec1f422cb8c2f4b
                              mojom::blink::WantResultOption,
                              mojom::blink::PromiseResultOption);
 diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
-index 44fb3b36cc76827219d8879867cc314399c1bef8..d7d650641a42b48f71036ba32fa93fe3532618d9 100644
+index 999f3f7ecbb9e4ffda99b7cd930bf324eaf1851f..0c74f1071781cffb34103368380268865a633f45 100644
 --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
-@@ -968,6 +968,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld(
+@@ -969,6 +969,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld(
              std::move(callback).Run(value ? std::move(*value) : base::Value());
            },
            std::move(callback)),
@@ -109,10 +109,10 @@ index 44fb3b36cc76827219d8879867cc314399c1bef8..d7d650641a42b48f71036ba32fa93fe3
        wants_result
            ? mojom::blink::WantResultOption::kWantResultDateAndRegExpAllowed
 diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.cc b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
-index a319d1280aa1a5f768d2bdae2efe324857701b73..6f715664e5e58f8c8637589ace72b26ed0df253c 100644
+index 3b31917c7225b5ad6b4e8c2c04e50354cb79c6d9..db6536dad37ddae6552c8d5b195d95e308065498 100644
 --- a/third_party/blink/renderer/core/frame/pausable_script_executor.cc
 +++ b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
-@@ -249,7 +249,7 @@ void PausableScriptExecutor::CreateAndRun(
+@@ -250,7 +250,7 @@ void PausableScriptExecutor::CreateAndRun(
            script_state, mojom::blink::UserActivationOption::kDoNotActivate,
            mojom::blink::LoadEventBlockingOption::kDoNotBlock,
            want_result_option, mojom::blink::PromiseResultOption::kDoNotWait,
@@ -121,7 +121,7 @@ index a319d1280aa1a5f768d2bdae2efe324857701b73..6f715664e5e58f8c8637589ace72b26e
            MakeGarbageCollected<V8FunctionExecutor>(
                script_state->GetIsolate(), function, receiver, argc, argv));
    executor->Run();
-@@ -264,10 +264,11 @@ void PausableScriptExecutor::CreateAndRun(
+@@ -265,10 +265,11 @@ void PausableScriptExecutor::CreateAndRun(
      mojom::blink::LoadEventBlockingOption blocking_option,
      mojom::blink::WantResultOption want_result_option,
      mojom::blink::PromiseResultOption promise_result_option,
@@ -135,7 +135,7 @@ index a319d1280aa1a5f768d2bdae2efe324857701b73..6f715664e5e58f8c8637589ace72b26e
        MakeGarbageCollected<WebScriptExecutor>(std::move(sources),
                                                execute_script_policy));
    switch (evaluation_timing) {
-@@ -289,6 +290,14 @@ void PausableScriptExecutor::ContextDestroyed() {
+@@ -290,6 +291,14 @@ void PausableScriptExecutor::ContextDestroyed() {
      ScriptState::Scope script_scope(script_state_);
      std::move(callback_).Run({}, {});
    }
@@ -150,7 +150,7 @@ index a319d1280aa1a5f768d2bdae2efe324857701b73..6f715664e5e58f8c8637589ace72b26e
    Dispose();
  }
  
-@@ -299,10 +308,12 @@ PausableScriptExecutor::PausableScriptExecutor(
+@@ -300,10 +309,12 @@ PausableScriptExecutor::PausableScriptExecutor(
      mojom::blink::WantResultOption want_result_option,
      mojom::blink::PromiseResultOption promise_result_option,
      WebScriptExecutionCallback callback,
@@ -163,7 +163,7 @@ index a319d1280aa1a5f768d2bdae2efe324857701b73..6f715664e5e58f8c8637589ace72b26e
        user_activation_option_(user_activation_option),
        blocking_option_(blocking_option),
        want_result_option_(want_result_option),
-@@ -426,6 +437,9 @@ void PausableScriptExecutor::HandleResults(
+@@ -427,6 +438,9 @@ void PausableScriptExecutor::HandleResults(
      std::move(callback_).Run(std::move(value), start_time_);
    }
  
@@ -216,10 +216,10 @@ index 7b3adb5b23720dd597698c7ea7672d63a926eb6c..e34095fcd5c025d3d27421b07cd41e2c
        mojom::blink::WantResultOption::kWantResult, wait_for_promise);
  }
 diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
-index ac5f277872d8f44fbcceb12fe8f58c5ea428e79b..400fad983c0644c3a534ab91c6e8da6927bba12b 100644
+index da1a3ea87b51810f340b0673c10b29ab1f7d9328..20aa0ea69f6689c648604c2822bc6a798d5b5230 100644
 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
 +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
-@@ -1134,14 +1134,15 @@ void WebLocalFrameImpl::RequestExecuteScript(
+@@ -1120,14 +1120,15 @@ void WebLocalFrameImpl::RequestExecuteScript(
      mojom::blink::EvaluationTiming evaluation_timing,
      mojom::blink::LoadEventBlockingOption blocking_option,
      WebScriptExecutionCallback callback,

+ 3 - 3
patches/chromium/frame_host_manager.patch

@@ -6,10 +6,10 @@ Subject: frame_host_manager.patch
 Allows embedder to intercept site instances created by chromium.
 
 diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
-index c823c64a306d6c7b91c1b98c1849e7ae13fbf5f5..70fb709510fc1b21466315260fef720399cc36b5 100644
+index 7ab2528ebaae494ee276929b11b8782b36999189..9a9f49aac1250ad3095311e1528ba77b8d4f3d4c 100644
 --- a/content/browser/renderer_host/render_frame_host_manager.cc
 +++ b/content/browser/renderer_host/render_frame_host_manager.cc
-@@ -4262,6 +4262,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -4272,6 +4272,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
      request->ResetStateForSiteInstanceChange();
    }
  
@@ -20,7 +20,7 @@ index c823c64a306d6c7b91c1b98c1849e7ae13fbf5f5..70fb709510fc1b21466315260fef7203
  }
  
 diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
-index da88d205c15eae320a4580c11c30d4dc24d8dc1e..588dfb09b3b0366b0a39e9c4fb27edd49930f903 100644
+index 25641beab08c2f575494f23850b1e22f1958569b..6d6ffe35bb63ecb673d46297780b134ecb1da42b 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
 @@ -308,6 +308,11 @@ class CONTENT_EXPORT ContentBrowserClient {

+ 9 - 11
patches/chromium/gpu_notify_when_dxdiag_request_fails.patch

@@ -12,10 +12,10 @@ rendering and there is no signal from browser process on this event
 to identify it.
 
 diff --git a/content/browser/gpu/gpu_data_manager_impl.cc b/content/browser/gpu/gpu_data_manager_impl.cc
-index 0582075df870162a97b463f6b3035a30bcfe36ae..d94c18d16f5ad80f14120c249e83e795c50c5106 100644
+index 7a29221744211227cc1153aad6fee797f5f71134..2a414e5b29791f9fac230555f44129eb1a632719 100644
 --- a/content/browser/gpu/gpu_data_manager_impl.cc
 +++ b/content/browser/gpu/gpu_data_manager_impl.cc
-@@ -225,6 +225,11 @@ void GpuDataManagerImpl::TerminateInfoCollectionGpuProcess() {
+@@ -214,6 +214,11 @@ void GpuDataManagerImpl::TerminateInfoCollectionGpuProcess() {
    base::AutoLock auto_lock(lock_);
    private_->TerminateInfoCollectionGpuProcess();
  }
@@ -28,10 +28,10 @@ index 0582075df870162a97b463f6b3035a30bcfe36ae..d94c18d16f5ad80f14120c249e83e795
  
  void GpuDataManagerImpl::PostCreateThreads() {
 diff --git a/content/browser/gpu/gpu_data_manager_impl.h b/content/browser/gpu/gpu_data_manager_impl.h
-index 25896ab0f3ca233ae17bf509f2a6ae5a6cc3c54b..5a8e6d184e276833034c604be8c48e01122207e2 100644
+index 08c9940799c935898e02dca5c95b39edbe3fbb32..ced6f932b5bb03d27780d80d158a2eacf206e498 100644
 --- a/content/browser/gpu/gpu_data_manager_impl.h
 +++ b/content/browser/gpu/gpu_data_manager_impl.h
-@@ -121,6 +121,7 @@ class CONTENT_EXPORT GpuDataManagerImpl : public GpuDataManager,
+@@ -117,6 +117,7 @@ class CONTENT_EXPORT GpuDataManagerImpl : public GpuDataManager,
    bool Dx12Requested() const;
    bool VulkanRequested() const;
    void TerminateInfoCollectionGpuProcess();
@@ -40,27 +40,25 @@ index 25896ab0f3ca233ae17bf509f2a6ae5a6cc3c54b..5a8e6d184e276833034c604be8c48e01
    // Called from BrowserMainLoop::PostCreateThreads().
    // TODO(content/browser/gpu/OWNERS): This should probably use a
 diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
-index b9829c8f89a5daf8122ebab3f9c863a5900ac69a..f91e6c4cabf33884498d23a0e0d5e9cde60f2be2 100644
+index ce9a571cf8ca44ced937071047bb5daf2732de2b..8bc154b098c72d5a43af7a638cafb32807cb7468 100644
 --- a/content/browser/gpu/gpu_data_manager_impl_private.cc
 +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
-@@ -1232,6 +1232,12 @@ void GpuDataManagerImplPrivate::TerminateInfoCollectionGpuProcess() {
+@@ -1140,6 +1140,10 @@ void GpuDataManagerImplPrivate::TerminateInfoCollectionGpuProcess() {
    if (host)
      host->ForceShutdown();
  }
 +
 +bool GpuDataManagerImplPrivate::DxdiagDx12VulkanRequested() const {
-+  return !(gpu_info_vulkan_request_failed_ ||
-+           gpu_info_dx12_request_failed_ ||
-+           gpu_info_dx_diag_request_failed_);
++  return !(gpu_info_vulkan_request_failed_ || gpu_info_dx12_request_failed_);
 +}
  #endif
  
  void GpuDataManagerImplPrivate::PostCreateThreads() {
 diff --git a/content/browser/gpu/gpu_data_manager_impl_private.h b/content/browser/gpu/gpu_data_manager_impl_private.h
-index 20e883daaa07133f977c5fe0c822f324d2642793..28306624ec6f7f9a7848e65787d4dc5aa738a76c 100644
+index f907360160caee6510bb209d71ffa61f0de1e5b9..af68fc04861caf7b050f8afd65bbda0cc8685e45 100644
 --- a/content/browser/gpu/gpu_data_manager_impl_private.h
 +++ b/content/browser/gpu/gpu_data_manager_impl_private.h
-@@ -86,6 +86,7 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate {
+@@ -84,6 +84,7 @@ class CONTENT_EXPORT GpuDataManagerImplPrivate {
    bool Dx12Requested() const;
    bool VulkanRequested() const;
    void TerminateInfoCollectionGpuProcess();

+ 2 - 2
patches/chromium/gritsettings_resource_ids.patch

@@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch
 Add electron resources file to the list of resource ids generation.
 
 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
-index bbae0289afb0ee8348e01144e8c3817aa847efd9..3624ca5c60b099e8d7437fac90ebf045a52920d2 100644
+index fb51337be0c37b18e20dbdbc01f5382a02266e1b..0b88ffda8399ec6a6fbdc4e8db97c427362bd746 100644
 --- a/tools/gritsettings/resource_ids.spec
 +++ b/tools/gritsettings/resource_ids.spec
-@@ -1276,6 +1276,11 @@
+@@ -1279,6 +1279,11 @@
      "includes": [8440],
    },
  

+ 1 - 1
patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch

@@ -11,7 +11,7 @@ If removing this patch causes no sync failures, it's safe to delete :+1:
 Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903
 
 diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
-index 557e1cb308e64ded68deb926baedeb02a41b9dad..956f4f3e0ee470ff628f92ee20b9f0b05c48dd50 100755
+index 677ce05277c770d901829b6b6bc5242a448ed0c9..b8fc1ec916848f8fc301e043e7e28c4303209087 100755
 --- a/tools/clang/scripts/update.py
 +++ b/tools/clang/scripts/update.py
 @@ -306,6 +306,8 @@ def GetDefaultHostOs():

+ 2 - 2
patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch

@@ -21,10 +21,10 @@ index 94012aae5f38ddf46810418717d46bdb3d9f1869..0cb6d49f2b23533c5e631fecff41e50a
        properties->supports_global_application_menus = true;
        properties->app_modal_dialogs_use_event_blocker = true;
 diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index 548d56d6f66ae80f3509fb3c3975c51b02c2cdf2..4010f451d7f6b5daa3ba083b197446f81a2a63ba 100644
+index 009c660e1f276e25b05bddbb44396752ca5981d5..33a4d097ad1470dd26fc017df3d50a8e05f4f6a1 100644
 --- a/ui/ozone/public/ozone_platform.h
 +++ b/ui/ozone/public/ozone_platform.h
-@@ -121,6 +121,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
+@@ -122,6 +122,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
      // Linux only: determines if Skia can fall back to the X11 output device.
      bool skia_can_fall_back_to_x11 = false;
  

+ 1 - 1
patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch

@@ -9,7 +9,7 @@ be created for each child process, despite logs being redirected to a
 file.
 
 diff --git a/content/app/content_main.cc b/content/app/content_main.cc
-index 773c69ca0b880d5fbc30bc8635d41c25fa096ebc..2791389b080032ca53e54b76a24715ba763e051d 100644
+index ffbb5986ca997135bd44b5a4aa02066cfce5f394..520825bc2d7d7006544e9d88a8c196f03903ff60 100644
 --- a/content/app/content_main.cc
 +++ b/content/app/content_main.cc
 @@ -308,14 +308,13 @@ RunContentProcess(ContentMainParams params,

+ 35 - 35
patches/chromium/mas_avoid_private_macos_api_usage.patch.patch

@@ -35,10 +35,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to
 system priority.
 
 diff --git a/base/BUILD.gn b/base/BUILD.gn
-index 8ffd60e5db7918318384ad18173d2e3dddb9b229..c915c6f00999d54c47d1b5a59a6e8361c0002ea4 100644
+index 53a6b1bde34b434691572b3e772520873b958375..f74ab4e0bdd12c5d280a63e589e5ed490275028f 100644
 --- a/base/BUILD.gn
 +++ b/base/BUILD.gn
-@@ -1052,6 +1052,7 @@ component("base") {
+@@ -1048,6 +1048,7 @@ component("base") {
      "//build/config/compiler:prevent_unsafe_narrowing",
      "//build/config/compiler:wexit_time_destructors",
      "//build/config/compiler:wglobal_constructors",
@@ -283,7 +283,7 @@ index 3a815ebf505bd95fa7f6b61ba433d98fbfe20225..dbbebbdc1735bc14224dfcde0b7fe3a6
 +
  @end
 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
-index 25672be4a7dac9a8cd53498184f537292e14d5c2..ef0844ae2845990832fc9777eade94550fb8ffaa 100644
+index 945b01f2132547fa0f6a97ee4895994c500d1410..c01b2fdecf9b54fa01e5be9f45eaa234fc42d06b 100644
 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
 +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
 @@ -17,6 +17,7 @@ class NativeWidgetNSWindowBridge;
@@ -303,7 +303,7 @@ index 25672be4a7dac9a8cd53498184f537292e14d5c2..ef0844ae2845990832fc9777eade9455
  // The NSWindow used by BridgedNativeWidget. Provides hooks into AppKit that
  // can only be accomplished by overriding methods.
 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
-index 568f0c23f1b276f36f1871f23e4a1c8ed7366e6c..e0a8d474cafb654b2bb420ee914ef4f596de2d6d 100644
+index eca5cea5131601638c20a4d9a885461df54095da..5032994a576bd85a2aaa7723bbfec4d5f94f6812 100644
 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
 +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
 @@ -104,7 +104,9 @@ void OrderChildWindow(NSWindow* child_window,
@@ -353,7 +353,7 @@ index 568f0c23f1b276f36f1871f23e4a1c8ed7366e6c..e0a8d474cafb654b2bb420ee914ef4f5
    bool shouldShowWindowTitle = YES;
    if (_bridge)
 diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
-index 3f4ac8e2455a2acf948777801deb0af5035251fa..9d218f927d99e32fcdd76f21d727b5c03856fb2f 100644
+index 5535f9c56113f1f46a925d6cc16049a841d0b609..2845da60cf229e6899bc200218eda2e0961f9f21 100644
 --- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
 +++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
 @@ -620,10 +620,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
@@ -370,10 +370,10 @@ index 3f4ac8e2455a2acf948777801deb0af5035251fa..9d218f927d99e32fcdd76f21d727b5c0
    // Beware: This view was briefly removed (in favor of a bare CALayer) in
    // https://crrev.com/c/1236675. The ordering of unassociated layers relative
 diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
-index 2cb7309131a42d8b374f2000cdd232ce48d561b8..fc67ca507ecbf39fabba4142e8a3ac618f3eeaf9 100644
+index 578b712f9547432f71704bfc71051e15c9bb3ca2..17d4b2f0490894058f1896b694a558d387f25993 100644
 --- a/components/viz/service/BUILD.gn
 +++ b/components/viz/service/BUILD.gn
-@@ -356,6 +356,7 @@ viz_component("service") {
+@@ -358,6 +358,7 @@ viz_component("service") {
          "frame_sinks/external_begin_frame_source_mac.h",
        ]
      }
@@ -381,7 +381,7 @@ index 2cb7309131a42d8b374f2000cdd232ce48d561b8..fc67ca507ecbf39fabba4142e8a3ac61
    }
  
    if (is_android || use_ozone) {
-@@ -623,6 +624,7 @@ viz_source_set("unit_tests") {
+@@ -625,6 +626,7 @@ viz_source_set("unit_tests") {
        "display_embedder/software_output_device_mac_unittest.mm",
      ]
      frameworks = [ "IOSurface.framework" ]
@@ -459,7 +459,7 @@ index d520acc21839a63f5e1167c5ec3f119d89d43713..8b2f3c6cfa2615452fd43b7accd26ce8
    return kAttributes;
  }
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index 9480a2453fc79a78143e10970cc7e479afcb818a..58acdffd6bf4c93d69b9e6f0565e567c377705a7 100644
+index d27c794883426dd6a88ca158b7c24686d76ab19d..2f1b9d547a6f54746ff23031ee3586d4ea68dd0b 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
 @@ -54,6 +54,7 @@ source_set("browser") {
@@ -471,12 +471,12 @@ index 9480a2453fc79a78143e10970cc7e479afcb818a..58acdffd6bf4c93d69b9e6f0565e567c
    libs = []
    frameworks = []
 diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
-index 96979b61bb52b6b87ee31906bac3aef025cda8c7..786c0fb321055c23fa05fe9168654a3002e1be62 100644
+index 4655ac4756f8655a5a21ef21a1a7286b2c5f0e46..ec631b1f0925928546e855faa5e968f5aec2b225 100644
 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
 +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
 @@ -21,7 +21,9 @@
- #include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
  #include "ui/accessibility/ax_role_properties.h"
+ #include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
  #include "ui/accessibility/platform/ax_private_webkit_constants_mac.h"
 +#if !IS_MAS_BUILD()
  #include "ui/base/cocoa/remote_accessibility_api.h"
@@ -500,7 +500,7 @@ index 96979b61bb52b6b87ee31906bac3aef025cda8c7..786c0fb321055c23fa05fe9168654a30
  
        // Use native VoiceOver support for live regions.
        BrowserAccessibilityCocoa* retained_node = native_node;
-@@ -633,6 +637,7 @@ void PostAnnouncementNotification(NSString* announcement,
+@@ -620,6 +624,7 @@ void PostAnnouncementNotification(NSString* announcement,
      return window == [NSApp accessibilityFocusedWindow];
    }
  
@@ -508,7 +508,7 @@ index 96979b61bb52b6b87ee31906bac3aef025cda8c7..786c0fb321055c23fa05fe9168654a30
    // TODO(accessibility): We need a solution to the problem described below.
    // If the window is NSAccessibilityRemoteUIElement, there are some challenges:
    // 1. NSApp is the browser which spawned the PWA, and what it considers the
-@@ -661,6 +666,7 @@ void PostAnnouncementNotification(NSString* announcement,
+@@ -648,6 +653,7 @@ void PostAnnouncementNotification(NSString* announcement,
    if ([window isKindOfClass:[NSAccessibilityRemoteUIElement class]]) {
      return true;
    }
@@ -608,10 +608,10 @@ index 72b957cd89704085ad44d040e0826148d56881fb..39e03b029c4ebf03020f6cc8b67922f7
  
  ///////////////////////////////////////////////////////////////////////////////
 diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
-index 55765cb73b3e4c41ed785a9da8906741e62f4a21..f3e3cee3eb27b5c995404db9cbdbf6351546e7af 100644
+index 7e67fb0c10bf7e3b99e94a4e026a1fb83ba0d133..cb9ece52b497ae1d22ac03f170b2696fe3a5f129 100644
 --- a/content/common/BUILD.gn
 +++ b/content/common/BUILD.gn
-@@ -244,6 +244,7 @@ source_set("common") {
+@@ -242,6 +242,7 @@ source_set("common") {
      "//content:content_implementation",
      "//build/config:precompiled_headers",
    ]
@@ -620,10 +620,10 @@ index 55765cb73b3e4c41ed785a9da8906741e62f4a21..f3e3cee3eb27b5c995404db9cbdbf635
    public_deps = [
      ":mojo_bindings",
 diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
-index 6fae0b5280d5e5220f4e8695cb898a44de9dd22e..5dc89a6b06799e05051af025985964be4e2c9260 100644
+index d80cdfcc88d89155825c085558772617cf33ad7e..c48d2fa394ab2c39d15ff70ebbf5d3cd5046d804 100644
 --- a/content/renderer/BUILD.gn
 +++ b/content/renderer/BUILD.gn
-@@ -227,6 +227,7 @@ target(link_target_type, "renderer") {
+@@ -228,6 +228,7 @@ target(link_target_type, "renderer") {
    }
  
    configs += [ "//content:content_implementation" ]
@@ -700,10 +700,10 @@ index a119b4439bfb9218c7aaf09dca8e78527da7f20d..faa813b003940280c6eeb87e70173019
  
  }  // namespace content
 diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
-index 2815030a81e1e3ffa5dd7399e7f4553b11d1af6a..ce8614a12cc421920876883d65b9b51e136394e4 100644
+index 589dca8877f981de6ece305e7eb1e7234e3b692e..20dae672a928b8f44d4d073463367f184845fe26 100644
 --- a/content/test/BUILD.gn
 +++ b/content/test/BUILD.gn
-@@ -487,6 +487,7 @@ static_library("test_support") {
+@@ -488,6 +488,7 @@ static_library("test_support") {
    configs += [
      "//build/config:precompiled_headers",
      "//v8:external_startup_data",
@@ -711,7 +711,7 @@ index 2815030a81e1e3ffa5dd7399e7f4553b11d1af6a..ce8614a12cc421920876883d65b9b51e
    ]
  
    public_deps = [
-@@ -1084,6 +1085,7 @@ static_library("browsertest_support") {
+@@ -1086,6 +1087,7 @@ static_library("browsertest_support") {
    }
  
    configs += [ "//v8:external_startup_data" ]
@@ -719,7 +719,7 @@ index 2815030a81e1e3ffa5dd7399e7f4553b11d1af6a..ce8614a12cc421920876883d65b9b51e
  }
  
  mojom("content_test_mojo_bindings") {
-@@ -1700,6 +1702,7 @@ test("content_browsertests") {
+@@ -1702,6 +1704,7 @@ test("content_browsertests") {
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  
    configs += [ "//build/config:precompiled_headers" ]
@@ -727,7 +727,7 @@ index 2815030a81e1e3ffa5dd7399e7f4553b11d1af6a..ce8614a12cc421920876883d65b9b51e
  
    public_deps = [
      ":test_interfaces",
-@@ -2922,6 +2925,7 @@ test("content_unittests") {
+@@ -2924,6 +2927,7 @@ test("content_unittests") {
    }
  
    configs += [ "//build/config:precompiled_headers" ]
@@ -749,10 +749,10 @@ index 24facc48c2b6b30db3a7cb36e4222019b471e84b..d1d3e72407682b01e6c2173cd34445db
      sources += [ "browser/web_test_shell_platform_delegate_mac.mm" ]
    } else if (toolkit_views && !is_castos) {
 diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn
-index ff6d030a46995536a7382ae67a0b7b783370ef7f..3aad6d951f9c51b5edb866238fa1c8e6ff4431ab 100644
+index 05cce11f233e04e22bf9166ee107661900686bea..70268a1ff7c59a03903072fafe8b62acc3454287 100644
 --- a/device/bluetooth/BUILD.gn
 +++ b/device/bluetooth/BUILD.gn
-@@ -243,6 +243,7 @@ component("bluetooth") {
+@@ -248,6 +248,7 @@ component("bluetooth") {
        "IOKit.framework",
        "Foundation.framework",
      ]
@@ -805,10 +805,10 @@ index 3033b23a07041d375d5733bad1901f9a61bdf3b6..9dd6cb1aa49d03c167d1a92100d4ba5f
  
  base::WeakPtr<BluetoothLowEnergyAdapterApple>
 diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn
-index e321b406a8375986b41d64342919bb0e8c5e58eb..8081d53adab80a6fccfdb4cd6f608c3bf7112c47 100644
+index ea3578a727bdccfff74a4112529af9ac052165f2..a0f8573a4401922e4bc9de9b0faf11951efef741 100644
 --- a/gpu/ipc/service/BUILD.gn
 +++ b/gpu/ipc/service/BUILD.gn
-@@ -133,6 +133,7 @@ component("service") {
+@@ -135,6 +135,7 @@ component("service") {
        "QuartzCore.framework",
      ]
      defines += [ "GL_SILENCE_DEPRECATION" ]
@@ -842,7 +842,7 @@ index b994079339dc0aebd86dac807645f81c2974fb96..b05e35c8eabccfd3147030d03453d78e
  
    gfx::Size pixel_size_;
 diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.mm b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
-index 3af7bb0fddf848f3c76d14c24730c6aba07fd83e..b23f152143d4958b7492cae47b8a3b01992e235f 100644
+index 59413520a9e2d601a80c90072089bed228460730..2ad023d3f9a2eb557a8f65c1727bf032a1aadbfd 100644
 --- a/gpu/ipc/service/image_transport_surface_overlay_mac.mm
 +++ b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
 @@ -75,12 +75,16 @@
@@ -901,10 +901,10 @@ index 90e093cd2d499ba0f37f3246bab288c758b51e19..6027134a4de53e6fe39fdbfdb67885e0
  
    if (is_ios) {
 diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc
-index 8cd474c33e514fd0aa90daf68a56ed7fc902d713..9fff9cc7b00b257c3bebb02c75a3c2e809ffdf0a 100644
+index 25dfcca1ba390548599a4a3667a2ed6943834392..23a0960c13448aa6c9f413f00c833753d51aab80 100644
 --- a/media/audio/apple/audio_low_latency_input.cc
 +++ b/media/audio/apple/audio_low_latency_input.cc
-@@ -33,19 +33,23 @@
+@@ -34,19 +34,23 @@
  
  namespace {
  extern "C" {
@@ -1318,10 +1318,10 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..dc30306f2c5d20503399fc3a8860773a
  
  }  // namespace sandbox
 diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
-index c6ab1b11b29d574234aae9f30401b1ff8a9023ce..ff94cb56f884811f6eaf3f9b15c534e3284c773b 100644
+index c6a38a54eee355342fad2918cb5f7992415df2ce..bdebe67853c8509357889fd4ab977c553307ff89 100644
 --- a/third_party/blink/renderer/core/BUILD.gn
 +++ b/third_party/blink/renderer/core/BUILD.gn
-@@ -312,6 +312,7 @@ component("core") {
+@@ -311,6 +311,7 @@ component("core") {
    configs -= core_config_remove
    configs += core_config_add
    configs += [ "//v8:external_startup_data" ]
@@ -1517,7 +1517,7 @@ index fc25ba79d2b0e1acdb7ba54b89e7d6e16f94771b..962df2d65d61ec0836cf465d847eb666
  
  }  // namespace
 diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn
-index 2dbfeb138a82d32859bb77018036bb0a2af45782..b02bf4b3480be9ce5a518610b652dff6ea1b025b 100644
+index 8fcf80911db2a84ed9f1f8e81ad0e3398719bba2..007d54e898d11b96356ef81cdf734304e98233fb 100644
 --- a/ui/display/BUILD.gn
 +++ b/ui/display/BUILD.gn
 @@ -69,6 +69,10 @@ component("display") {
@@ -1596,10 +1596,10 @@ index 0ab5fbd2a81d8860c73f29c08896f6755b5ca5fa..9400c6c7698258ff2834c550fb8901b4
      // enough.
      return PlatformFontMac::SystemFontType::kGeneral;
 diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
-index 7c81ce5c3835b578369338a5020cfa51520d431d..4290eccab77ce8225f30585f7d1a0d1c064e2365 100644
+index d2a918d304afa5e540ab07a5d80887fe9ea6b60e..0fa6cc4314e7d2f16289b7bd7ab38d45cf5bed42 100644
 --- a/ui/views/BUILD.gn
 +++ b/ui/views/BUILD.gn
-@@ -710,6 +710,7 @@ component("views") {
+@@ -712,6 +712,7 @@ component("views") {
        "IOSurface.framework",
        "QuartzCore.framework",
      ]
@@ -1607,7 +1607,7 @@ index 7c81ce5c3835b578369338a5020cfa51520d431d..4290eccab77ce8225f30585f7d1a0d1c
    }
  
    if (is_win) {
-@@ -1141,6 +1142,8 @@ source_set("test_support") {
+@@ -1143,6 +1144,8 @@ source_set("test_support") {
      "//testing/gtest",
    ]
  

+ 7 - 7
patches/chromium/network_service_allow_remote_certificate_verification_logic.patch

@@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement
 session.setCertificateVerifyCallback.
 
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
-index df900e46ab1e0b8deb2a0f80e3b45b36b8402654..f417639adad080aa59d3f64a3061f5298518f47d 100644
+index ced5854f2f213e4be6606144823ed9089a687db8..a3308f1794295f9b5c3cbd97ec2c5ad3ea10f709 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -150,6 +150,11 @@
+@@ -151,6 +151,11 @@
  #include "services/network/web_transport.h"
  #include "url/gurl.h"
  
@@ -22,7 +22,7 @@ index df900e46ab1e0b8deb2a0f80e3b45b36b8402654..f417639adad080aa59d3f64a3061f529
  #if BUILDFLAG(IS_CT_SUPPORTED)
  // gn check does not account for BUILDFLAG(). So, for iOS builds, it will
  // complain about a missing dependency on the target exposing this header. Add a
-@@ -513,6 +518,99 @@ bool GetFullDataFilePath(
+@@ -514,6 +519,99 @@ bool GetFullDataFilePath(
  
  }  // namespace
  
@@ -122,7 +122,7 @@ index df900e46ab1e0b8deb2a0f80e3b45b36b8402654..f417639adad080aa59d3f64a3061f529
  constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
  
  NetworkContext::NetworkContextHttpAuthPreferences::
-@@ -878,6 +976,13 @@ void NetworkContext::SetClient(
+@@ -880,6 +978,13 @@ void NetworkContext::SetClient(
    client_.Bind(std::move(client));
  }
  
@@ -136,7 +136,7 @@ index df900e46ab1e0b8deb2a0f80e3b45b36b8402654..f417639adad080aa59d3f64a3061f529
  void NetworkContext::CreateURLLoaderFactory(
      mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
      mojom::URLLoaderFactoryParamsPtr params) {
-@@ -2343,6 +2448,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -2344,6 +2449,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
          std::move(cert_verifier));
      cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_.get());
  #endif  // BUILDFLAG(IS_CHROMEOS)
@@ -147,7 +147,7 @@ index df900e46ab1e0b8deb2a0f80e3b45b36b8402654..f417639adad080aa59d3f64a3061f529
  
    builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
 diff --git a/services/network/network_context.h b/services/network/network_context.h
-index 401fa9c5931479dc2c60f3b3d7c58a4899ae06d2..fdc0899c6ccf8ff23dfad6de24ce0afa2efa4695 100644
+index adde7c45c1efb37ca6e3848124fb0355b9a3c355..3656f50db07946ee2d3100e0510450f3fbe93a71 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 @@ -113,6 +113,7 @@ class URLMatcher;
@@ -175,7 +175,7 @@ index 401fa9c5931479dc2c60f3b3d7c58a4899ae06d2..fdc0899c6ccf8ff23dfad6de24ce0afa
 +
    // Created on-demand. Null if unused.
    std::unique_ptr<HostResolver> internal_host_resolver_;
-   // Map values set to non-null only if that HostResolver has its own private
+   std::set<std::unique_ptr<HostResolver>, base::UniquePtrComparator>
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
 index 8495a3c67ba02f38b55324e89b50d1eca97b48ca..4ddf7e5728ac11a65da76f9cda161a8ee01b6049 100644
 --- a/services/network/public/mojom/network_context.mojom

+ 1 - 1
patches/chromium/notification_provenance.patch

@@ -133,7 +133,7 @@ index 38c8cf36fdf9366121c7ada96c167a4c9664952e..03b37fb62655a355e104870a088e4222
        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 4ba125eae7b529420049f81fdd8ea891448b29a1..5f92d4ba208938de7c939b079cd3a328058a5d8c 100644
+index 823b7e020bc931b64418c0a874539454e491d843..c299ed667915660edb4bdd70eda947f7420e8734 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -2044,7 +2044,7 @@ void RenderProcessHostImpl::CreateNotificationService(

+ 3 - 3
patches/chromium/picture-in-picture.patch

@@ -40,7 +40,7 @@ index 1a0c7f5f204f00b52747ebb7800b39a3479f1178..52a1b350c8b5a13b4c0636b43f4773b7
                  ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground,
                                                 kCloseButtonIconSize));
 diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
-index 8f486ad5ce3862038dc749148044876fbc7e9da2..b3419d2bb60ab0488fc0413843c33b5a926fee09 100644
+index 5e7c2cc28e00a84b330558dca3a520c08687e274..569e99b4790b88326029d3681adb4958777f3499 100644
 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
 +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
 @@ -17,9 +17,11 @@
@@ -62,9 +62,9 @@ index 8f486ad5ce3862038dc749148044876fbc7e9da2..b3419d2bb60ab0488fc0413843c33b5a
 -#if BUILDFLAG(IS_WIN)
 +#if 0
  #include "chrome/browser/shell_integration_win.h"
+ #include "content/public/browser/render_widget_host_view.h"
  #include "ui/aura/window.h"
- #include "ui/aura/window_tree_host.h"
-@@ -292,7 +294,7 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
+@@ -310,7 +312,7 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
    overlay_window->Init(std::move(params));
    overlay_window->OnRootViewReady();
  

+ 1 - 1
patches/chromium/port_autofill_colors_to_the_color_pipeline.patch

@@ -8,7 +8,7 @@ needed in chromium but our autofill implementation uses them.  This patch can be
 our autofill implementation to work like Chromium's.
 
 diff --git a/ui/color/color_id.h b/ui/color/color_id.h
-index b6915564a74e5c2c2a6ee3f3b1042a7a47fc540a..9dd2cccc8c863b7f13faf051cba5b54850529809 100644
+index 73a6856caee5c354ae09ba470dc3e5a208d03131..c6edf8f97ac1b11bfc6d796302db3211ba7504b2 100644
 --- a/ui/color/color_id.h
 +++ b/ui/color/color_id.h
 @@ -409,6 +409,10 @@

+ 14 - 14
patches/chromium/printing.patch

@@ -11,7 +11,7 @@ majority of changes originally come from these PRs:
 This patch also fixes callback for manual user cancellation and success.
 
 diff --git a/BUILD.gn b/BUILD.gn
-index 28ba2fe1481518bb42eb79db4ab157fb6020b434..e8a2ed2b04007ba5f1135f49a156b5a6b37ae3ab 100644
+index 69e759c3b34692beac06ceeddf4b3f1637fb7788..42d0da7f936626aa8bb90057723deeaafce8744d 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
 @@ -973,7 +973,6 @@ if (is_win) {
@@ -34,7 +34,7 @@ index 28ba2fe1481518bb42eb79db4ab157fb6020b434..e8a2ed2b04007ba5f1135f49a156b5a6
  }
  
 diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
-index 874b9efcf9e70650728885519009360ee770a79f..6c4d24d44e69d796bc6bfec5f7092f5b3ae28703 100644
+index 0d8a53178e8d509a573ffdaadf2c4cec670522ac..8e7f9b92beb317888a5a3acb3bc2fa29f283ff03 100644
 --- a/chrome/browser/printing/print_job.cc
 +++ b/chrome/browser/printing/print_job.cc
 @@ -96,6 +96,7 @@ bool PrintWithReducedRasterization(PrefService* prefs) {
@@ -640,7 +640,7 @@ index 4ecdb28904fac480cf102fffdff24ae008ac88cf..e8150c95fafd83d7e2fe1f472a35acec
    PrintingFailed(int32 cookie, PrintFailureReason reason);
  
 diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
-index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0ae8d5460 100644
+index 6ba4d1584f12bb3b064e1cfe17ceaacfde8b4c16..cf263d8e7d3ce07fa57d4259f8d33b36e93d1f9b 100644
 --- a/components/printing/renderer/print_render_frame_helper.cc
 +++ b/components/printing/renderer/print_render_frame_helper.cc
 @@ -47,6 +47,7 @@
@@ -651,7 +651,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
  #include "printing/units.h"
  #include "services/metrics/public/cpp/ukm_source_id.h"
  #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
-@@ -1230,14 +1231,14 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
+@@ -1229,14 +1230,14 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
    }
  
    print_in_progress_ = true;
@@ -668,7 +668,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
    if (!weak_this) {
      return;
    }
-@@ -1268,7 +1269,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver(
+@@ -1267,7 +1268,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver(
    receivers_.Add(this, std::move(receiver));
  }
  
@@ -677,7 +677,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
    ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr());
    if (ipc_nesting_level_ > kAllowedIpcDepthForPrint)
      return;
-@@ -1283,7 +1284,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() {
+@@ -1282,7 +1283,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() {
    // plugin node and print that instead.
    auto plugin = delegate_->GetPdfElement(frame);
  
@@ -686,7 +686,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
  
    if (render_frame_gone_) {
      return;
-@@ -1372,7 +1373,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() {
+@@ -1371,7 +1372,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() {
    }
  
    Print(frame, print_preview_context_.source_node(),
@@ -696,7 +696,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
    if (render_frame_gone_) {
      return;
    }
-@@ -1435,6 +1437,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) {
+@@ -1434,6 +1436,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) {
    if (ipc_nesting_level_ > kAllowedIpcDepthForPrint)
      return;
  
@@ -705,7 +705,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
    print_preview_context_.OnPrintPreview();
  
  #if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -2012,7 +2016,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
+@@ -2011,7 +2015,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
    }
  
    Print(duplicate_node.GetDocument().GetFrame(), duplicate_node,
@@ -715,7 +715,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
    // Check if `this` is still valid.
    if (!weak_this) {
      return;
-@@ -2028,17 +2033,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
+@@ -2027,17 +2032,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
  
  void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
                                     const blink::WebNode& node,
@@ -738,7 +738,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
      DidFinishPrinting(PrintingResult::kFailPrintInit);
      return;
    }
-@@ -2059,8 +2066,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
+@@ -2058,8 +2065,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
          print_pages_params_->params->print_scaling_option;
  
      auto self = weak_ptr_factory_.GetWeakPtr();
@@ -755,7 +755,7 @@ index 1fafad1543a007873aca7157798fe7ca8a1afea6..d69134f785b9fb39130959f0a38e0ab0
      // Check if `this` is still valid.
      if (!self)
        return;
-@@ -2318,25 +2332,33 @@ void PrintRenderFrameHelper::IPCProcessed() {
+@@ -2317,25 +2331,33 @@ void PrintRenderFrameHelper::IPCProcessed() {
  }
  
  bool PrintRenderFrameHelper::InitPrintSettings(blink::WebLocalFrame* frame,
@@ -830,10 +830,10 @@ index b0ac94751454bd16b4e9bfdc071e2623813133ec..271bd9949a802a370b3619340f3364df
    // Calculate number of pages in source document.
    uint32_t CalculateNumberOfPages(blink::WebLocalFrame* frame,
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index 58acdffd6bf4c93d69b9e6f0565e567c377705a7..66ce92c8b5034e90467c5f1b035d2115636e52aa 100644
+index 2f1b9d547a6f54746ff23031ee3586d4ea68dd0b..167f21fec5b15d2ef4fa6a61f359c6c524ff654d 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -2926,8 +2926,9 @@ source_set("browser") {
+@@ -2932,8 +2932,9 @@ source_set("browser") {
        "//ppapi/shared_impl",
      ]
  

+ 5 - 5
patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch

@@ -8,7 +8,7 @@ Chrome moved the SetCursor IPC message to mojo, which we use to tell OSR about `
 Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779
 
 diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h
-index a525dee9a568010d274ff9c6213b136cc81b2d88..f168d982452eb0e234ab63493edca6f468822708 100644
+index e680c3bb24c8ec764919561fd8da833c8a1601b9..5d082eeed73ef400de31f1413fea72c8c55e72ec 100644
 --- a/content/browser/renderer_host/render_widget_host_delegate.h
 +++ b/content/browser/renderer_host/render_widget_host_delegate.h
 @@ -23,6 +23,7 @@
@@ -44,10 +44,10 @@ index 16f88856c10df7af52356ea5648c5062804fd769..6b83e02c88f71d6b330a9b330d31b659
  
  void RenderWidgetHostImpl::ShowContextMenuAtPoint(
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 09d791fbd4466c605dcb946b63b3dd3e7eba9fb0..df08d8a1b2232dcd9b926466f062b17b34dad446 100644
+index af90ef714bc17302ca9818a57a7d3a1decea9fe1..466580ea98c05f3e896343a4be4dd0669b86a2b2 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -5194,6 +5194,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
+@@ -5224,6 +5224,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
    return text_input_manager_.get();
  }
  
@@ -60,10 +60,10 @@ index 09d791fbd4466c605dcb946b63b3dd3e7eba9fb0..df08d8a1b2232dcd9b926466f062b17b
      RenderWidgetHostImpl* render_widget_host) {
    return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost();
 diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
-index adf38641aa6e12f76b4b1f7fbc15198da6caacd1..5eaeacd405d07e03467554e9b05a137d33c81758 100644
+index e7f70d74e06ccfbec70b5d718936b8c67785e297..c3c36499004db3623246a2add141acf7161b16a8 100644
 --- a/content/browser/web_contents/web_contents_impl.h
 +++ b/content/browser/web_contents/web_contents_impl.h
-@@ -1035,6 +1035,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+@@ -1034,6 +1034,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
    void SendScreenRects() override;
    void SendActiveState(bool active) override;
    TextInputManager* GetTextInputManager() override;

+ 3 - 3
patches/chromium/resource_file_conflict.patch

@@ -52,10 +52,10 @@ Some alternatives to this patch:
 None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
 
 diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
-index 650ae8ca482ab1438cf670718bf369038b852f2d..78c84e4ccefb90715d68de15d32d5245027ebb4d 100644
+index a107e48cbe9d50d2794df3ebadc785e146324f62..4af5b8d5da1c0ae4c5603f49e3a1dbfec422f55e 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -1562,7 +1562,7 @@ if (is_chrome_branded && !is_android) {
+@@ -1567,7 +1567,7 @@ if (is_chrome_branded && !is_android) {
    }
  }
  
@@ -64,7 +64,7 @@ index 650ae8ca482ab1438cf670718bf369038b852f2d..78c84e4ccefb90715d68de15d32d5245
    chrome_paks("packed_resources") {
      if (is_mac) {
        output_dir = "$root_gen_dir/repack"
-@@ -1601,6 +1601,12 @@ if (!is_android) {
+@@ -1606,6 +1606,12 @@ if (!is_android) {
    }
  }
  

+ 2 - 2
patches/chromium/scroll_bounce_flag.patch

@@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch
 Patch to make scrollBounce option work.
 
 diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
-index 0465aaa8fc6949fd8c6fef30391b197661381756..8176fbd17bb0a13f7099b8e7c56a0f48d70eb5fd 100644
+index 1952b5018f8e5bed87b7dc9d8012c8f2fac00c96..ecef0e83520cbf1015ba1d639be39791ec0cfbb5 100644
 --- a/content/renderer/render_thread_impl.cc
 +++ b/content/renderer/render_thread_impl.cc
-@@ -1240,7 +1240,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
+@@ -1263,7 +1263,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
  }
  
  bool RenderThreadImpl::IsElasticOverscrollEnabled() {

+ 1 - 1
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 5f92d4ba208938de7c939b079cd3a328058a5d8c..068553e5fa06af4989c8e84d470366914e5661ce 100644
+index c299ed667915660edb4bdd70eda947f7420e8734..d2dd405a2ee5be716588834a1c5d07118070b7e0 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -1725,9 +1725,15 @@ bool RenderProcessHostImpl::Init() {

+ 3 - 3
patches/chromium/upload_list_add_loadsync_method.patch

@@ -9,7 +9,7 @@ deprecated, and this API should be removed once the deprecated behavior
 is no longer supported.
 
 diff --git a/components/upload_list/upload_list.cc b/components/upload_list/upload_list.cc
-index b19139c33758758970fd38aa87aaeb351e409edd..73498817f53236091f7be2c20d957c24c15b948e 100644
+index 176f0b70225eab7d692886c241983c43d2e93b86..02e39bf0a6ba63c0a6226ba20e08a94b3df74611 100644
 --- a/components/upload_list/upload_list.cc
 +++ b/components/upload_list/upload_list.cc
 @@ -65,6 +65,10 @@ void UploadList::Load(base::OnceClosure callback) {
@@ -24,10 +24,10 @@ index b19139c33758758970fd38aa87aaeb351e409edd..73498817f53236091f7be2c20d957c24
                         const base::Time& end,
                         base::OnceClosure callback) {
 diff --git a/components/upload_list/upload_list.h b/components/upload_list/upload_list.h
-index 3b84761fdd397ec41cd7ed2b675467c95e6d0faf..43b78dfbb0bc0c8897d96c20727cb5502f1f2a12 100644
+index c45b3d46f505f516b84b8d1728a23a280dbdba2c..2c8c2c1b7ce6885329b3097ffb964c8cf549002b 100644
 --- a/components/upload_list/upload_list.h
 +++ b/components/upload_list/upload_list.h
-@@ -81,6 +81,8 @@ class UploadList : public base::RefCountedThreadSafe<UploadList> {
+@@ -82,6 +82,8 @@ class UploadList : public base::RefCountedThreadSafe<UploadList> {
    // overwrite the previously supplied one, and the first will not be called.
    void Load(base::OnceClosure callback);
  

+ 4 - 4
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 6addf2f57f08a9c1a6702b777d965c1d99ce59a1..803ff4de251ff0b3a79f5fd14409c8499c754660 100644
+index 4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe..311822c3d9f7b1a60e9feacf95dcd795090ec8a9 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3471,6 +3471,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3497,6 +3497,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 6addf2f57f08a9c1a6702b777d965c1d99ce59a1..803ff4de251ff0b3a79f5fd14409c849
    std::unique_ptr<WebContentsViewDelegate> delegate =
        GetContentClient()->browser()->GetWebContentsViewDelegate(this);
  
-@@ -3481,6 +3488,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3507,6 +3514,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
      view_ = CreateWebContentsView(this, std::move(delegate),
                                    &render_view_host_delegate_view_);
    }
@@ -35,7 +35,7 @@ index 6addf2f57f08a9c1a6702b777d965c1d99ce59a1..803ff4de251ff0b3a79f5fd14409c849
    CHECK(view_.get());
  
 diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
-index b22972c9fbe902413aea4a8078e81eeed0038200..3be2cc0f75544a5958f0d7bf70174c22ac40277d 100644
+index 2c0e05853d1b9b8b28c502edaf76f15e96aea415..e7f24decd89855b1bd338f13810760d680071ddb 100644
 --- a/content/public/browser/web_contents.h
 +++ b/content/public/browser/web_contents.h
 @@ -102,10 +102,13 @@ class BrowserContext;

+ 5 - 5
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 ac9e3da59e6fbde78185c4a6924af1e3cf61369b..109f492f8dd29dd5191faf2f81041bd8d3292b72 100644
+index 39b46b4f5bb3adb18d903c0ca4c65f212138590b..bc6a81da3832608b12f67dc241e8711ca09e9215 100644
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -7521,6 +7521,17 @@ void RenderFrameHostImpl::EnterFullscreen(
+@@ -7542,6 +7542,17 @@ void RenderFrameHostImpl::EnterFullscreen(
      }
    }
  
@@ -37,10 +37,10 @@ index ac9e3da59e6fbde78185c4a6924af1e3cf61369b..109f492f8dd29dd5191faf2f81041bd8
    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 803ff4de251ff0b3a79f5fd14409c8499c754660..ee75d9a235342062d67874099f81b5c184233998 100644
+index 311822c3d9f7b1a60e9feacf95dcd795090ec8a9..3c61e1583211d68e112b930ff8254e1617676efd 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3725,21 +3725,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
+@@ -3751,21 +3751,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
      const NativeWebKeyboardEvent& event) {
    OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
                          "WebContentsImpl::PreHandleKeyboardEvent");
@@ -78,7 +78,7 @@ index 803ff4de251ff0b3a79f5fd14409c8499c754660..ee75d9a235342062d67874099f81b5c1
  }
  
  bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) {
-@@ -3875,7 +3879,7 @@ void WebContentsImpl::EnterFullscreenMode(
+@@ -3901,7 +3905,7 @@ void WebContentsImpl::EnterFullscreenMode(
    OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
    DCHECK(CanEnterFullscreenMode(requesting_frame, options));
    DCHECK(requesting_frame->IsActive());

+ 4 - 4
patches/chromium/worker_context_will_destroy.patch

@@ -10,10 +10,10 @@ An attempt to upstream this was made, but rejected:
 https://chromium-review.googlesource.com/c/chromium/src/+/1954347
 
 diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
-index 0b708ece83688b785b34b48e853edadb8f309c5d..a51be3fea0d270d6540ad381072c4dcac4b5dd82 100644
+index ff20508d76a6007674c4336eb55b6d5df5af4d0b..c1f4863fd3da8c028652742999ab72c077c362ab 100644
 --- a/content/public/renderer/content_renderer_client.h
 +++ b/content/public/renderer/content_renderer_client.h
-@@ -383,6 +383,11 @@ class CONTENT_EXPORT ContentRendererClient {
+@@ -382,6 +382,11 @@ class CONTENT_EXPORT ContentRendererClient {
    virtual void DidInitializeWorkerContextOnWorkerThread(
        v8::Local<v8::Context> context) {}
  
@@ -67,10 +67,10 @@ index 165bd4eae9e1b3509379af1697991469d53c76ae..c953d63fe7252a570347b79ae436bcca
        const WebSecurityOrigin& script_origin) {
      return false;
 diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc
-index 670b6b7d02a4bd40300c6ade3447db2ea4f90710..6ba4524c3b4d42060110f222c1a69d3b15b55f10 100644
+index fc4eee1c0b3b2906ddc004d6069ff62ee5ee4a3a..587c47b92935fa740390eacdb0f73be6da5027c8 100644
 --- a/third_party/blink/renderer/core/workers/worker_thread.cc
 +++ b/third_party/blink/renderer/core/workers/worker_thread.cc
-@@ -754,6 +754,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
+@@ -756,6 +756,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {
    }
    pause_handle_.reset();
  

+ 2 - 2
patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch

@@ -19,10 +19,10 @@ that clearly establishes the worker script is ready for evaluation with the scop
 initialized.
 
 diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
-index a51be3fea0d270d6540ad381072c4dcac4b5dd82..f226b5e988d0537c62dc062fa1d9d387613592ff 100644
+index c1f4863fd3da8c028652742999ab72c077c362ab..c57ea8da0bbab375b23f996880f10a670a52a5f5 100644
 --- a/content/public/renderer/content_renderer_client.h
 +++ b/content/public/renderer/content_renderer_client.h
-@@ -383,6 +383,11 @@ class CONTENT_EXPORT ContentRendererClient {
+@@ -382,6 +382,11 @@ class CONTENT_EXPORT ContentRendererClient {
    virtual void DidInitializeWorkerContextOnWorkerThread(
        v8::Local<v8::Context> context) {}
  

+ 2 - 2
patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch

@@ -10,10 +10,10 @@ to handle this without patching, but this is fairly clean for now and no longer
 patching legacy devtools code.
 
 diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts
-index 4e1d0973e1fc8607cd777dd9b135d9125b11aa84..386e224a7fb78cc111fc259512b24dafbc264dd2 100644
+index cb422ec6993c6fa23ed4181fad886121b06bde1c..3b9a36e3424aae72fd05dd05a91591b34b48629c 100644
 --- a/front_end/entrypoints/main/MainImpl.ts
 +++ b/front_end/entrypoints/main/MainImpl.ts
-@@ -726,6 +726,8 @@ export class MainImpl {
+@@ -723,6 +723,8 @@ export class MainImpl {
  globalThis.Main = globalThis.Main || {};
  // @ts-ignore Exported for Tests.js
  globalThis.Main.Main = MainImpl;

+ 2 - 2
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 43d435b488cc878611cb7b90feea44735af2fe70..2cc11264fd349bd838a4a9587008621343824550 100644
+index 3cce79931d8416196acd165cde7003806ed5a529..557df069027eaddcc7baa9ebc8f1b1b9dcc50f3e 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -443,7 +443,7 @@ if (is_component_ffmpeg) {
+@@ -441,7 +441,7 @@ if (is_component_ffmpeg) {
  
      if (!is_component_build) {
        if (is_mac) {

+ 2 - 0
patches/node/.patches

@@ -46,3 +46,5 @@ test_match_wpt_streams_transferable_transform-stream-members_any_js.patch
 build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch
 fix_revert_src_lb_reducing_c_calls_of_esm_legacy_main_resolve.patch
 src_preload_function_for_environment.patch
+deprecate_vector_v8_local_in_v8.patch
+fast_path_for_adding_props_with_existing_transition.patch

+ 25 - 0
patches/node/deprecate_vector_v8_local_in_v8.patch

@@ -0,0 +1,25 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Shelley Vohr <[email protected]>
+Date: Sun, 10 Mar 2024 16:59:30 +0100
+Subject: Deprecate vector<v8::Local> in v8
+
+Adapts for changes in https://chromium-review.googlesource.com/c/v8/v8/+/4866222.
+
+This patch can be removed when Electron upgrades to a version of Node.js that
+contains the above CL.
+
+diff --git a/src/module_wrap.cc b/src/module_wrap.cc
+index 3182a5e4aad2ba0be2b6769edb696b815ce39a61..e73f129d5f9ca3ea872fd5934d9d31a952a4a3fe 100644
+--- a/src/module_wrap.cc
++++ b/src/module_wrap.cc
+@@ -169,7 +169,9 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
+         export_names[i] = export_name_val.As<String>();
+       }
+ 
+-      module = Module::CreateSyntheticModule(isolate, url, export_names,
++
++      module = Module::CreateSyntheticModule(isolate, url,
++        v8::MemorySpan<const Local<String>>(export_names.begin(), export_names.end()),
+         SyntheticModuleEvaluationStepsCallback);
+     } else {
+       ScriptCompiler::CachedData* cached_data = nullptr;

+ 80 - 0
patches/node/fast_path_for_adding_props_with_existing_transition.patch

@@ -0,0 +1,80 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Shelley Vohr <[email protected]>
+Date: Mon, 11 Mar 2024 16:11:02 +0100
+Subject: Fast path for adding props with existing transition
+
+Adapt Node.js tests for https://chromium-review.googlesource.com/c/v8/v8/+/5342763.
+
+This patch can be removed when Node.js handles these changes.
+
+diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js
+index 12e7833bb24457e1b25f4df12b40d82ccfb80941..b57b07f016de6cf7c891936613b3a190495fce81 100644
+--- a/test/parallel/test-util-format.js
++++ b/test/parallel/test-util-format.js
+@@ -305,7 +305,7 @@ assert.strictEqual(
+   '  func: <ref *1> [Function: func] {\n' +
+   '    [length]: 0,\n' +
+   '    [name]: \'func\',\n' +
+-  '    [prototype]: { [constructor]: [Circular *1] }\n' +
++  '    [prototype]: { constructor: [Circular *1] }\n' +
+   '  }\n' +
+   '}');
+ assert.strictEqual(
+@@ -318,7 +318,7 @@ assert.strictEqual(
+   '      a: <ref *1> [Function: a] {\n' +
+   '        [length]: 0,\n' +
+   '        [name]: \'a\',\n' +
+-  '        [prototype]: { [constructor]: [Circular *1] }\n' +
++  '        [prototype]: { constructor: [Circular *1] }\n' +
+   '      }\n' +
+   '    },\n' +
+   '    [length]: 1\n' +
+@@ -333,7 +333,7 @@ assert.strictEqual(
+   '    func: <ref *1> [Function: func] {\n' +
+   '      [length]: 0,\n' +
+   '      [name]: \'func\',\n' +
+-  '      [prototype]: { [constructor]: [Circular *1] }\n' +
++  '      [prototype]: { constructor: [Circular *1] }\n' +
+   '    }\n' +
+   '  }\n' +
+   '}');
+@@ -345,7 +345,7 @@ assert.strictEqual(
+   '  func: <ref *1> [Function: func] {\n' +
+   '    [length]: 0,\n' +
+   '    [name]: \'func\',\n' +
+-  '    [prototype]: { [constructor]: [Circular *1] }\n' +
++  '    [prototype]: { constructor: [Circular *1] }\n' +
+   '  }\n' +
+   '} {\n' +
+   '  foo: \'bar\',\n' +
+@@ -353,7 +353,7 @@ assert.strictEqual(
+   '  func: <ref *1> [Function: func] {\n' +
+   '    [length]: 0,\n' +
+   '    [name]: \'func\',\n' +
+-  '    [prototype]: { [constructor]: [Circular *1] }\n' +
++  '    [prototype]: { constructor: [Circular *1] }\n' +
+   '  }\n' +
+   '}');
+ assert.strictEqual(
+@@ -364,7 +364,7 @@ assert.strictEqual(
+   '  func: <ref *1> [Function: func] {\n' +
+   '    [length]: 0,\n' +
+   '    [name]: \'func\',\n' +
+-  '    [prototype]: { [constructor]: [Circular *1] }\n' +
++  '    [prototype]: { constructor: [Circular *1] }\n' +
+   '  }\n' +
+   '} %o');
+ 
+diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js
+index 4c9e0d683fe7d0c79d133079b1575ebaf1a974c7..7c576e2a5ff9b136662ca35ba5639a390ec5b036 100644
+--- a/test/parallel/test-util-inspect.js
++++ b/test/parallel/test-util-inspect.js
+@@ -3187,7 +3187,7 @@ assert.strictEqual(
+       '  constructor: <ref *1> [Function: Fhqwhgads] {\n' +
+       '    [length]: 0,\n' +
+       "    [name]: 'Fhqwhgads',\n" +
+-      '    [prototype]: { [constructor]: [Circular *1] }\n' +
++      '    [prototype]: { constructor: [Circular *1] }\n' +
+       '  }\n' +
+       '}'
+   );

+ 1 - 0
patches/reclient-configs/.patches

@@ -1,3 +1,4 @@
 fix_disable_compression_threshold.patch
 fix_add_python_remote_wrapper.patch
 build_on_windows_provide_clang_wrapper_as_toolchain_input.patch
+fix_temporarily_use_toolchain_inputs_exclusively_instead_of_inputs.patch

+ 43 - 0
patches/reclient-configs/fix_temporarily_use_toolchain_inputs_exclusively_instead_of_inputs.patch

@@ -0,0 +1,43 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Samuel Attard <[email protected]>
+Date: Fri, 8 Mar 2024 10:17:09 -0800
+Subject: fix: temporarily use toolchain_inputs exclusively instead of inputs
+
+Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5340729
+
+diff --git a/chromium-browser-clang/rewrapper_mac.cfg b/chromium-browser-clang/rewrapper_mac.cfg
+index b7aae599574b1217eee48fb182d5fe899225ad98..1d4743d63f52c828022ebcb6a39a3bedcbd5ef1b 100644
+--- a/chromium-browser-clang/rewrapper_mac.cfg
++++ b/chromium-browser-clang/rewrapper_mac.cfg
+@@ -14,6 +14,5 @@
+ 
+ # This config is merged with Chromium config. See README.md.
+ 
+-inputs={src_dir}/buildtools/reclient_cfgs/chromium-browser-clang/clang_remote_wrapper
+-toolchain_inputs={linux_clang_base_path}/bin/clang
++toolchain_inputs={linux_clang_base_path}/bin/clang,{src_dir}/buildtools/reclient_cfgs/chromium-browser-clang/clang_remote_wrapper
+ remote_wrapper={src_dir}/buildtools/reclient_cfgs/chromium-browser-clang/clang_remote_wrapper
+diff --git a/python/rewrapper_linux.cfg b/python/rewrapper_linux.cfg
+index 2cdeb39313a83a94cdf321025ef969af7db83fd7..e0c74dad6a6ba9a002a9c1a1b34a31740b6428e0 100644
+--- a/python/rewrapper_linux.cfg
++++ b/python/rewrapper_linux.cfg
+@@ -14,5 +14,5 @@
+ 
+ # This config is merged with Chromium config. See README.md.
+ 
+-inputs=buildtools/reclient_cfgs/python/python_remote_wrapper
++toolchain_inputs=buildtools/reclient_cfgs/python/python_remote_wrapper
+ remote_wrapper={src_dir}/buildtools/reclient_cfgs/python/python_remote_wrapper
+\ No newline at end of file
+diff --git a/python/rewrapper_mac.cfg b/python/rewrapper_mac.cfg
+index 2cdeb39313a83a94cdf321025ef969af7db83fd7..e0c74dad6a6ba9a002a9c1a1b34a31740b6428e0 100644
+--- a/python/rewrapper_mac.cfg
++++ b/python/rewrapper_mac.cfg
+@@ -14,5 +14,5 @@
+ 
+ # This config is merged with Chromium config. See README.md.
+ 
+-inputs=buildtools/reclient_cfgs/python/python_remote_wrapper
++toolchain_inputs=buildtools/reclient_cfgs/python/python_remote_wrapper
+ remote_wrapper={src_dir}/buildtools/reclient_cfgs/python/python_remote_wrapper
+\ No newline at end of file

+ 2 - 2
patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch

@@ -46,10 +46,10 @@ index 6cdf53b19c7d058bb66b9fcbe745874cc48daa99..8d112008c2667db97ed5b5af3f87c40d
    V8_INLINE static void* GetAlignedPointerFromInternalField(
        const BasicTracedReference<Object>& object, int index) {
 diff --git a/src/api/api.cc b/src/api/api.cc
-index ef56b0be90e75583ba6c06099f2b55356a122e0b..616af01bbf2c8b40416e70a97626963a5ec66bd1 100644
+index 4857e77448fd306d67865a5e850dcf108df39f9f..a87c4ad7f38951e05daa7174e4494a91a66884ef 100644
 --- a/src/api/api.cc
 +++ b/src/api/api.cc
-@@ -6299,14 +6299,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
+@@ -6287,14 +6287,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
        isolate);
  }
  

+ 3 - 12
shell/browser/api/gpuinfo_manager.cc

@@ -32,8 +32,7 @@ GPUInfoManager::~GPUInfoManager() {
 // https://chromium.googlesource.com/chromium/src.git/+/69.0.3497.106/content/browser/gpu/gpu_data_manager_impl_private.cc#838
 bool GPUInfoManager::NeedsCompleteGpuInfoCollection() const {
 #if BUILDFLAG(IS_WIN)
-  return gpu_data_manager_->DxdiagDx12VulkanRequested() &&
-         gpu_data_manager_->GetGPUInfo().dx_diagnostics.IsEmpty();
+  return gpu_data_manager_->DxdiagDx12VulkanRequested();
 #else
   return false;
 #endif
@@ -51,9 +50,6 @@ void GPUInfoManager::ProcessCompleteInfo() {
 }
 
 void GPUInfoManager::OnGpuInfoUpdate() {
-  // Ignore if called when not asked for complete GPUInfo
-  if (NeedsCompleteGpuInfoCollection())
-    return;
   base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
       FROM_HERE, base::BindOnce(&GPUInfoManager::ProcessCompleteInfo,
                                 base::Unretained(this)));
@@ -63,13 +59,8 @@ void GPUInfoManager::OnGpuInfoUpdate() {
 void GPUInfoManager::CompleteInfoFetcher(
     gin_helper::Promise<base::Value> promise) {
   complete_info_promise_set_.emplace_back(std::move(promise));
-
-  if (NeedsCompleteGpuInfoCollection()) {
-    gpu_data_manager_->RequestDxdiagDx12VulkanVideoGpuInfoIfNeeded(
-        content::GpuDataManagerImpl::kGpuInfoRequestAll, /* delayed */ false);
-  } else {
-    GPUInfoManager::OnGpuInfoUpdate();
-  }
+  gpu_data_manager_->RequestDx12VulkanVideoGpuInfoIfNeeded(
+      content::GpuDataManagerImpl::kGpuInfoRequestAll, /* delayed */ false);
 }
 
 void GPUInfoManager::FetchCompleteInfo(

+ 2 - 3
shell/browser/hid/hid_chooser_controller.cc

@@ -10,7 +10,6 @@
 #include "base/containers/contains.h"
 #include "base/functional/bind.h"
 #include "base/ranges/algorithm.h"
-#include "base/stl_util.h"
 #include "gin/data_object_builder.h"
 #include "services/device/public/cpp/hid/hid_blocklist.h"
 #include "services/device/public/cpp/hid/hid_switches.h"
@@ -350,7 +349,7 @@ bool HidChooserController::RemoveDeviceInfo(
   auto find_it = device_map_.find(id);
   DCHECK(find_it != device_map_.end());
   auto& device_infos = find_it->second;
-  base::EraseIf(device_infos,
+  std::erase_if(device_infos,
                 [&device](const device::mojom::HidDeviceInfoPtr& d) {
                   return d->guid == device.guid;
                 });
@@ -358,7 +357,7 @@ bool HidChooserController::RemoveDeviceInfo(
     return false;
   // A device was disconnected. Remove it from the chooser list.
   device_map_.erase(find_it);
-  base::Erase(items_, id);
+  std::erase(items_, id);
   return true;
 }
 

+ 1 - 1
shell/browser/printing/print_view_manager_electron.cc

@@ -64,7 +64,7 @@ void PrintViewManagerElectron::DidPrintToPdf(
     PrintToPdfCallback callback,
     print_to_pdf::PdfPrintResult result,
     scoped_refptr<base::RefCountedMemory> memory) {
-  base::Erase(pdf_jobs_, cookie);
+  std::erase(pdf_jobs_, cookie);
   std::move(callback).Run(result, memory);
 }
 

+ 2 - 0
shell/browser/serial/electron_serial_delegate.h

@@ -55,6 +55,8 @@ class ElectronSerialDelegate : public content::SerialDelegate,
   // SerialChooserContext::PortObserver:
   void OnPortAdded(const device::mojom::SerialPortInfo& port) override;
   void OnPortRemoved(const device::mojom::SerialPortInfo& port) override;
+  void OnPortConnectedStateChanged(
+      const device::mojom::SerialPortInfo& port) override {}
   void OnPortManagerConnectionError() override;
   void OnPermissionRevoked(const url::Origin& origin) override {}
   void OnSerialChooserContextShutdown() override;

+ 2 - 0
shell/browser/serial/serial_chooser_context.h

@@ -87,6 +87,8 @@ class SerialChooserContext : public KeyedService,
   // SerialPortManagerClient implementation.
   void OnPortAdded(device::mojom::SerialPortInfoPtr port) override;
   void OnPortRemoved(device::mojom::SerialPortInfoPtr port) override;
+  void OnPortConnectedStateChanged(
+      device::mojom::SerialPortInfoPtr port) override {}
 
  private:
   void EnsurePortManagerConnection();

+ 2 - 0
shell/browser/serial/serial_chooser_controller.h

@@ -46,6 +46,8 @@ class SerialChooserController final : public SerialChooserContext::PortObserver,
   // SerialChooserContext::PortObserver:
   void OnPortAdded(const device::mojom::SerialPortInfo& port) override;
   void OnPortRemoved(const device::mojom::SerialPortInfo& port) override;
+  void OnPortConnectedStateChanged(
+      const device::mojom::SerialPortInfo& port) override {}
   void OnPortManagerConnectionError() override;
   void OnPermissionRevoked(const url::Origin& origin) override {}
   void OnSerialChooserContextShutdown() override;

+ 1 - 4
shell/browser/usb/electron_usb_delegate.cc

@@ -8,7 +8,6 @@
 #include <utility>
 
 #include "base/containers/contains.h"
-#include "base/containers/cxx20_erase.h"
 #include "base/observer_list.h"
 #include "base/observer_list_types.h"
 #include "base/scoped_observation.h"
@@ -34,8 +33,6 @@
 
 namespace {
 
-using ::content::UsbChooser;
-
 electron::UsbChooserContext* GetChooserContext(
     content::BrowserContext* browser_context) {
   return electron::UsbChooserContextFactory::GetForBrowserContext(
@@ -159,7 +156,7 @@ void ElectronUsbDelegate::AdjustProtectedInterfaceClasses(
   classes = permission_manager->CheckProtectedUSBClasses(classes);
 }
 
-std::unique_ptr<UsbChooser> ElectronUsbDelegate::RunChooser(
+std::unique_ptr<content::UsbChooser> ElectronUsbDelegate::RunChooser(
     content::RenderFrameHost& frame,
     blink::mojom::WebUsbRequestDeviceOptionsPtr options,
     blink::mojom::WebUsbService::GetPermissionCallback callback) {

+ 2 - 0
shell/common/api/electron_api_url_loader.h

@@ -113,6 +113,8 @@ class SimpleURLLoaderWrapper
   void OnDataUseUpdate(int32_t network_traffic_annotation_id_hash,
                        int64_t recv_bytes,
                        int64_t sent_bytes) override {}
+  void OnWebSocketConnectedToPrivateNetwork(
+      network::mojom::IPAddressSpace ip_address_space) override {}
   void Clone(
       mojo::PendingReceiver<network::mojom::URLLoaderNetworkServiceObserver>
           observer) override;

+ 0 - 37
shell/renderer/extensions/electron_extensions_dispatcher_delegate.cc

@@ -4,51 +4,14 @@
 
 #include "shell/renderer/extensions/electron_extensions_dispatcher_delegate.h"
 
-#include <memory>
-#include <set>
-#include <string>
-
-#include "chrome/renderer/extensions/api/extension_hooks_delegate.h"
-#include "chrome/renderer/extensions/api/tabs_hooks_delegate.h"
-#include "extensions/renderer/bindings/api_bindings_system.h"
-#include "extensions/renderer/lazy_background_page_native_handler.h"
-#include "extensions/renderer/module_system.h"
-#include "extensions/renderer/native_extension_bindings_system.h"
-#include "extensions/renderer/native_handler.h"
-
 ElectronExtensionsDispatcherDelegate::ElectronExtensionsDispatcherDelegate() =
     default;
 
 ElectronExtensionsDispatcherDelegate::~ElectronExtensionsDispatcherDelegate() =
     default;
 
-void ElectronExtensionsDispatcherDelegate::RegisterNativeHandlers(
-    extensions::Dispatcher* dispatcher,
-    extensions::ModuleSystem* module_system,
-    extensions::NativeExtensionBindingsSystem* bindings_system,
-    extensions::ScriptContext* context) {
-  module_system->RegisterNativeHandler(
-      "lazy_background_page",
-      std::make_unique<extensions::LazyBackgroundPageNativeHandler>(context));
-}
-
-void ElectronExtensionsDispatcherDelegate::PopulateSourceMap(
-    extensions::ResourceBundleSourceMap* source_map) {}
-
 void ElectronExtensionsDispatcherDelegate::RequireWebViewModules(
     extensions::ScriptContext* context) {}
 
 void ElectronExtensionsDispatcherDelegate::OnActiveExtensionsUpdated(
     const std::set<std::string>& extension_ids) {}
-
-void ElectronExtensionsDispatcherDelegate::InitializeBindingsSystem(
-    extensions::Dispatcher* dispatcher,
-    extensions::NativeExtensionBindingsSystem* bindings_system) {
-  extensions::APIBindingsSystem* bindings = bindings_system->api_system();
-  bindings->RegisterHooksDelegate(
-      "extension", std::make_unique<extensions::ExtensionHooksDelegate>(
-                       bindings_system->messaging_service()));
-  bindings->RegisterHooksDelegate(
-      "tabs", std::make_unique<extensions::TabsHooksDelegate>(
-                  bindings_system->messaging_service()));
-}

+ 0 - 10
shell/renderer/extensions/electron_extensions_dispatcher_delegate.h

@@ -24,19 +24,9 @@ class ElectronExtensionsDispatcherDelegate
 
  private:
   // extensions::DispatcherDelegate implementation.
-  void RegisterNativeHandlers(
-      extensions::Dispatcher* dispatcher,
-      extensions::ModuleSystem* module_system,
-      extensions::NativeExtensionBindingsSystem* bindings_system,
-      extensions::ScriptContext* context) override;
-  void PopulateSourceMap(
-      extensions::ResourceBundleSourceMap* source_map) override;
   void RequireWebViewModules(extensions::ScriptContext* context) override;
   void OnActiveExtensionsUpdated(
       const std::set<std::string>& extension_ids) override;
-  void InitializeBindingsSystem(
-      extensions::Dispatcher* dispatcher,
-      extensions::NativeExtensionBindingsSystem* bindings_system) override;
 };
 
 #endif  // ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_DISPATCHER_DELEGATE_H_

+ 49 - 0
shell/renderer/extensions/electron_extensions_renderer_api_provider.cc

@@ -0,0 +1,49 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "shell/renderer/extensions/electron_extensions_renderer_api_provider.h"
+
+#include "chrome/renderer/extensions/api/extension_hooks_delegate.h"
+#include "chrome/renderer/extensions/api/tabs_hooks_delegate.h"
+#include "extensions/renderer/bindings/api_bindings_system.h"
+#include "extensions/renderer/dispatcher.h"
+#include "extensions/renderer/lazy_background_page_native_handler.h"
+#include "extensions/renderer/module_system.h"
+#include "extensions/renderer/native_extension_bindings_system.h"
+#include "extensions/renderer/native_handler.h"
+#include "extensions/renderer/resource_bundle_source_map.h"
+#include "extensions/renderer/script_context.h"
+
+namespace electron {
+
+void ElectronExtensionsRendererAPIProvider::RegisterNativeHandlers(
+    extensions::ModuleSystem* module_system,
+    extensions::NativeExtensionBindingsSystem* bindings_system,
+    extensions::ScriptContext* context) {
+  module_system->RegisterNativeHandler(
+      "lazy_background_page",
+      std::make_unique<extensions::LazyBackgroundPageNativeHandler>(context));
+}
+
+void ElectronExtensionsRendererAPIProvider::AddBindingsSystemHooks(
+    extensions::Dispatcher* dispatcher,
+    extensions::NativeExtensionBindingsSystem* bindings_system) {
+  extensions::APIBindingsSystem* bindings = bindings_system->api_system();
+  bindings->RegisterHooksDelegate(
+      "extension", std::make_unique<extensions::ExtensionHooksDelegate>(
+                       bindings_system->messaging_service()));
+  bindings->RegisterHooksDelegate(
+      "tabs", std::make_unique<extensions::TabsHooksDelegate>(
+                  bindings_system->messaging_service()));
+}
+
+void ElectronExtensionsRendererAPIProvider::PopulateSourceMap(
+    extensions::ResourceBundleSourceMap* source_map) {}
+
+void ElectronExtensionsRendererAPIProvider::EnableCustomElementAllowlist() {}
+
+void ElectronExtensionsRendererAPIProvider::RequireWebViewModules(
+    extensions::ScriptContext* context) {}
+
+}  // namespace electron

+ 40 - 0
shell/renderer/extensions/electron_extensions_renderer_api_provider.h

@@ -0,0 +1,40 @@
+// Copyright (c) 2017 GitHub, Inc.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#ifndef ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_
+#define ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_
+
+#include <memory>
+
+#include "extensions/renderer/extensions_renderer_api_provider.h"
+
+namespace electron {
+
+class ElectronExtensionsRendererAPIProvider
+    : public extensions::ExtensionsRendererAPIProvider {
+ public:
+  ElectronExtensionsRendererAPIProvider() = default;
+  ElectronExtensionsRendererAPIProvider(
+      const ElectronExtensionsRendererAPIProvider&) = delete;
+  ElectronExtensionsRendererAPIProvider& operator=(
+      const ElectronExtensionsRendererAPIProvider&) = delete;
+  ~ElectronExtensionsRendererAPIProvider() override = default;
+
+  // ExtensionsRendererAPIProvider:
+  void RegisterNativeHandlers(
+      extensions::ModuleSystem* module_system,
+      extensions::NativeExtensionBindingsSystem* bindings_system,
+      extensions::ScriptContext* context) override;
+  void AddBindingsSystemHooks(
+      extensions::Dispatcher* dispatcher,
+      extensions::NativeExtensionBindingsSystem* bindings_system) override;
+  void PopulateSourceMap(
+      extensions::ResourceBundleSourceMap* source_map) override;
+  void EnableCustomElementAllowlist() override;
+  void RequireWebViewModules(extensions::ScriptContext* context) override;
+};
+
+}  // namespace electron
+
+#endif  // ELECTRON_SHELL_RENDERER_EXTENSIONS_ELECTRON_EXTENSIONS_RENDERER_API_PROVIDER_H_

+ 6 - 5
shell/renderer/extensions/electron_extensions_renderer_client.cc

@@ -15,11 +15,12 @@
 
 namespace electron {
 
-ElectronExtensionsRendererClient::ElectronExtensionsRendererClient()
-    : dispatcher_{std::make_unique<extensions::Dispatcher>(
-          std::make_unique<ElectronExtensionsDispatcherDelegate>(),
-          std::vector<
-              std::unique_ptr<extensions::ExtensionsRendererAPIProvider>>{})} {
+ElectronExtensionsRendererClient::ElectronExtensionsRendererClient() {}
+
+void ElectronExtensionsRendererClient::RenderThreadStarted() {
+  dispatcher_ = std::make_unique<extensions::Dispatcher>(
+      std::make_unique<ElectronExtensionsDispatcherDelegate>(),
+      std::move(api_providers_));
   dispatcher_->OnRenderThreadStarted(content::RenderThread::Get());
 }
 

+ 2 - 0
shell/renderer/extensions/electron_extensions_renderer_client.h

@@ -31,6 +31,8 @@ class ElectronExtensionsRendererClient
   ElectronExtensionsRendererClient& operator=(
       const ElectronExtensionsRendererClient&) = delete;
 
+  void RenderThreadStarted();
+
   // ExtensionsRendererClient implementation.
   bool IsIncognitoProcess() const override;
   int GetLowestIsolatedWorldId() const override;

+ 4 - 0
shell/renderer/renderer_client_base.cc

@@ -95,6 +95,7 @@
 #include "extensions/renderer/extension_web_view_helper.h"
 #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h"
 #include "shell/common/extensions/electron_extensions_client.h"
+#include "shell/renderer/extensions/electron_extensions_renderer_api_provider.h"
 #include "shell/renderer/extensions/electron_extensions_renderer_client.h"
 #endif  // BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
 
@@ -242,6 +243,9 @@ void RendererClientBase::RenderThreadStarted() {
 
   extensions_renderer_client_ =
       std::make_unique<ElectronExtensionsRendererClient>();
+  extensions_renderer_client_->AddAPIProvider(
+      std::make_unique<ElectronExtensionsRendererAPIProvider>());
+  extensions_renderer_client_->RenderThreadStarted();
   extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get());
 
   thread->AddObserver(extensions_renderer_client_->GetDispatcher());