Browse Source

chore: bump chromium to 110.0.5478.5 (23-x-y) (#36574)

* chore: bump chromium in DEPS to 110.0.5461.0

* chore: bump chromium in DEPS to 110.0.5463.0

* chore: bump chromium in DEPS to 110.0.5465.0

* chore: bump chromium in DEPS to 110.0.5467.0

* chore: bump chromium in DEPS to 110.0.5469.0

* chore: bump chromium in DEPS to 110.0.5471.0

* chore: bump chromium in DEPS to 110.0.5473.0

* chore: bump chromium in DEPS to 110.0.5475.0

* chore: bump chromium in DEPS to 110.0.5477.0

* chore: bump chromium in DEPS to 110.0.5479.0

* chore: bump chromium in DEPS to 110.0.5481.0

* chore: bump chromium in DEPS to 110.0.5481.4

* chore: bump chromium in DEPS to 110.0.5478.5

* chore: update patches

* 4074449: Add gl::FrameData to software path

https://chromium-review.googlesource.com/c/chromium/src/+/4074449
(cherry picked from commit 1f61be81384b3e22b8af8f9221a7e5ef9a4d95cb)

* fixup! 4074449: Add gl::FrameData to software path

(cherry picked from commit 2316ec931ec9cb1d4ade43df2f3663ef155c5a61)

* 4074449: Add gl::FrameData to software path

This commit also reformatted the two files in this patch. The only
change here is the addition of the |data| arg to |OnSwapBuffers|.

https://chromium-review.googlesource.com/c/chromium/src/+/4074449
(cherry picked from commit aa2504ee6b4e3a2eaf3348eb535ef8121dd6cc3b)

* 4081108: task posting v3: remove task_runner_util{.h,_unittest.cc}

https://chromium-review.googlesource.com/c/chromium/src/+/4081108
(cherry picked from commit fce317513ee15138351f8b1bdf062250d97f57b9)

* 4081108: task posting v3: remove task_runner_util{.h,_unittest.cc}

https://chromium-review.googlesource.com/c/chromium/src/+/4081108
(cherry picked from commit cb14d9f5df300020a3b8d11078656763b428789e)

* chore: add missing RefCountedMemory include

(cherry picked from commit 893a1da1ed5a461e0e46abecab2a2de545ab543b)

* 4025927: [Code Health] Migrate e/c/manifest.cc to base::Value::Dict interface

https://chromium-review.googlesource.com/c/chromium/src/+/4025927
(cherry picked from commit f9e1ce44bdbe1c199881daef2799164737e2d39d)

* 4072471: Rename Mixed Download Blocking to Insecure Download Blocking

https://chromium-review.googlesource.com/c/chromium/src/+/4072471
(cherry picked from commit e191d7526d3821ace54717ce7c8a5e95df542135)

* 4060548: Remove base::Value::GetListDeprecated().

https://chromium-review.googlesource.com/c/chromium/src/+/4060548
(cherry picked from commit f76cb2bcb4d1772c596c7e8dc5be27024e2b9cfe)

* 4032656: hid: Abstract HidSystemTrayIcon class for profiles' HID connections

https://chromium-review.googlesource.com/c/chromium/src/+/4032656
(cherry picked from commit 9737692d016d726f277c7a6ac6ec919b18820cba)

* 3903024: hid: Add connection count tracking methods for HidDelegate

https://chromium-review.googlesource.com/c/chromium/src/+/3903024
(cherry picked from commit a0299046cd3cedb1c84b4ecf867089fce9304861)

* 4076211: Turn FrameTreeNode::frame_tree into raw_ref.

https://chromium-review.googlesource.com/c/chromium/src/+/4076211
(cherry picked from commit 6cca422b421013ce166779cc9687d50301ac3280)

* 4112537: Remove DictionaryPrefUpdate.
https://chromium-review.googlesource.com/c/chromium/src/+/4112537

(cherry picked from commit ec8e8f75deed5da760c75267c5575509923ae7e4)

* 3835037: Add new slides media session actions to Picture-in-Picture window

https://chromium-review.googlesource.com/c/chromium/src/+/3835037
(cherry picked from commit 7dc35729bce450b365b8d211536a275e8e3f0a08)

* 4065264: [Extensions] Add a new side panel view type

https://chromium-review.googlesource.com/c/chromium/src/+/4065264
(cherry picked from commit c6c3c3ff8289c87a6ca831ff23100b3dde74eddf)

* 4085814: [Test Automation] Move NativeWindowTracker to ui/views

https://chromium-review.googlesource.com/c/chromium/src/+/4085814
(cherry picked from commit ffbe5437139752f507bef4c66cc958e6dcef3bce)

* chore: disable Microtask queues per WindowAgent.

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

(cherry picked from commit 0ffa9df410a27236ed73b07d5b36c84783b0f9d1)

* fixup: disable Microtask queues per WindowAgent.

(cherry picked from commit 438be771dd8fe4b38a67dd747bb015140674b9eb)

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <[email protected]>
Co-authored-by: Shelley Vohr <[email protected]>
Co-authored-by: Calvin Watford <[email protected]>
Co-authored-by: clavin <[email protected]>
Co-authored-by: Jeremy Rose <[email protected]>
electron-roller[bot] 2 years ago
parent
commit
5a5ea4845e
89 changed files with 456 additions and 439 deletions
  1. 1 1
      DEPS
  2. 5 5
      chromium_src/BUILD.gn
  3. 2 2
      patches/boringssl/expose_aes-cfb.patch
  4. 3 3
      patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch
  5. 13 13
      patches/chromium/add_didinstallconditionalfeatures.patch
  6. 1 1
      patches/chromium/add_electron_deps_to_license_credits_file.patch
  7. 8 8
      patches/chromium/add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
  8. 8 8
      patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch
  9. 1 1
      patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch
  10. 1 1
      patches/chromium/blink_local_frame.patch
  11. 2 2
      patches/chromium/build_disable_partition_alloc_on_mac.patch
  12. 10 10
      patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch
  13. 1 1
      patches/chromium/build_gn.patch
  14. 25 25
      patches/chromium/build_only_use_the_mas_build_config_in_the_required_components.patch
  15. 24 24
      patches/chromium/can_create_window.patch
  16. 7 7
      patches/chromium/chore_add_electron_deps_to_gitignores.patch
  17. 2 2
      patches/chromium/chore_allow_chromium_to_handle_synthetic_mouse_events_for_touch.patch
  18. 3 3
      patches/chromium/chore_introduce_blocking_api_for_electron.patch
  19. 11 11
      patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch
  20. 5 5
      patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch
  21. 4 4
      patches/chromium/custom_protocols_plzserviceworker.patch
  22. 9 9
      patches/chromium/disable_color_correct_rendering.patch
  23. 4 4
      patches/chromium/disable_hidden.patch
  24. 3 3
      patches/chromium/disable_unload_metrics.patch
  25. 2 2
      patches/chromium/enable_reset_aspect_ratio.patch
  26. 2 2
      patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch
  27. 7 7
      patches/chromium/expose_setuseragent_on_networkcontext.patch
  28. 1 1
      patches/chromium/extend_apply_webpreferences.patch
  29. 5 5
      patches/chromium/feat_configure_launch_options_for_service_process.patch
  30. 25 20
      patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch
  31. 15 15
      patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch
  32. 2 2
      patches/chromium/feat_filter_out_non-shareable_windows_in_the_current_application_in.patch
  33. 1 1
      patches/chromium/fix_add_check_for_sandbox_then_result.patch
  34. 2 2
      patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch
  35. 2 2
      patches/chromium/fix_aspect_ratio_with_max_size.patch
  36. 5 5
      patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch
  37. 1 1
      patches/chromium/fix_crash_when_saving_edited_pdf_files.patch
  38. 4 4
      patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch
  39. 2 2
      patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch
  40. 2 2
      patches/chromium/fix_remove_caption-removing_style_call.patch
  41. 3 3
      patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch
  42. 4 4
      patches/chromium/frame_host_manager.patch
  43. 2 2
      patches/chromium/gritsettings_resource_ids.patch
  44. 1 1
      patches/chromium/gtk_visibility.patch
  45. 1 1
      patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch
  46. 1 1
      patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch
  47. 2 2
      patches/chromium/load_v8_snapshot_in_browser_process.patch
  48. 5 5
      patches/chromium/mas_disable_remote_accessibility.patch
  49. 15 13
      patches/chromium/mas_no_private_api.patch
  50. 11 11
      patches/chromium/network_service_allow_remote_certificate_verification_logic.patch
  51. 26 26
      patches/chromium/notification_provenance.patch
  52. 1 1
      patches/chromium/picture-in-picture.patch
  53. 6 6
      patches/chromium/port_autofill_colors_to_the_color_pipeline.patch
  54. 4 3
      patches/chromium/preconnect_manager.patch
  55. 34 33
      patches/chromium/printing.patch
  56. 7 7
      patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch
  57. 1 1
      patches/chromium/render_widget_host_view_base.patch
  58. 4 4
      patches/chromium/render_widget_host_view_mac.patch
  59. 3 3
      patches/chromium/resource_file_conflict.patch
  60. 1 1
      patches/chromium/revert_spellcheck_fully_launch_spell_check_delayed_initialization.patch
  61. 2 2
      patches/chromium/scroll_bounce_flag.patch
  62. 1 1
      patches/chromium/support_mixed_sandbox_with_zygote.patch
  63. 5 5
      patches/chromium/web_contents.patch
  64. 4 4
      patches/chromium/webview_cross_drag.patch
  65. 2 2
      patches/chromium/webview_fullscreen.patch
  66. 6 6
      patches/chromium/worker_context_will_destroy.patch
  67. 6 6
      patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch
  68. 2 2
      patches/v8/build_gn.patch
  69. 2 2
      patches/v8/dcheck.patch
  70. 1 1
      patches/v8/do_not_export_private_v8_symbols_on_windows.patch
  71. 2 2
      patches/v8/export_symbols_needed_for_windows_build.patch
  72. 2 2
      patches/v8/expose_mksnapshot.patch
  73. 4 4
      patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch
  74. 4 4
      patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch
  75. 2 4
      shell/browser/api/electron_api_net_log.cc
  76. 6 6
      shell/browser/api/electron_api_web_contents.cc
  77. 1 1
      shell/browser/api/electron_api_web_contents_impl.cc
  78. 1 1
      shell/browser/browser_linux.cc
  79. 5 0
      shell/browser/browser_process_impl.cc
  80. 1 0
      shell/browser/browser_process_impl.h
  81. 4 4
      shell/browser/electron_download_manager_delegate.cc
  82. 4 7
      shell/browser/extensions/electron_extension_loader.cc
  83. 7 0
      shell/browser/feature_list.cc
  84. 4 0
      shell/browser/hid/electron_hid_delegate.h
  85. 1 1
      shell/browser/net/electron_url_loader_factory.cc
  86. 6 6
      shell/browser/ui/inspectable_web_contents.cc
  87. 6 10
      shell/browser/zoom_level_delegate.cc
  88. 1 0
      shell/common/api/electron_api_native_image.cc
  89. 1 2
      shell/common/gin_converters/extension_converter.cc

+ 1 - 1
DEPS

@@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
 
 vars = {
   'chromium_version':
-    '110.0.5451.0',
+    '110.0.5478.5',
   'node_version':
     'v18.12.1',
   'nan_version':

+ 5 - 5
chromium_src/BUILD.gn

@@ -80,7 +80,6 @@ static_library("chrome") {
     "//chrome/browser/ui/exclusive_access/mouse_lock_controller.h",
     "//chrome/browser/ui/frame/window_frame_util.cc",
     "//chrome/browser/ui/frame/window_frame_util.h",
-    "//chrome/browser/ui/native_window_tracker.h",
     "//chrome/browser/ui/ui_features.cc",
     "//chrome/browser/ui/ui_features.h",
     "//chrome/browser/ui/views/eye_dropper/eye_dropper.cc",
@@ -89,6 +88,7 @@ static_library("chrome") {
     "//chrome/browser/ui/views/eye_dropper/eye_dropper_view.h",
     "//extensions/browser/app_window/size_constraints.cc",
     "//extensions/browser/app_window/size_constraints.h",
+    "//ui/views/native_window_tracker.h",
   ]
 
   if (is_posix) {
@@ -138,9 +138,9 @@ static_library("chrome") {
   if (use_aura) {
     sources += [
       "//chrome/browser/platform_util_aura.cc",
-      "//chrome/browser/ui/aura/native_window_tracker_aura.cc",
-      "//chrome/browser/ui/aura/native_window_tracker_aura.h",
       "//chrome/browser/ui/views/eye_dropper/eye_dropper_view_aura.cc",
+      "//ui/views/native_window_tracker_aura.cc",
+      "//ui/views/native_window_tracker_aura.h",
     ]
   }
 
@@ -287,14 +287,14 @@ static_library("chrome") {
       "//chrome/browser/ui/views/overlay/playback_image_button.h",
       "//chrome/browser/ui/views/overlay/resize_handle_button.cc",
       "//chrome/browser/ui/views/overlay/resize_handle_button.h",
+      "//chrome/browser/ui/views/overlay/simple_overlay_window_image_button.cc",
+      "//chrome/browser/ui/views/overlay/simple_overlay_window_image_button.h",
       "//chrome/browser/ui/views/overlay/skip_ad_label_button.cc",
       "//chrome/browser/ui/views/overlay/skip_ad_label_button.h",
       "//chrome/browser/ui/views/overlay/toggle_camera_button.cc",
       "//chrome/browser/ui/views/overlay/toggle_camera_button.h",
       "//chrome/browser/ui/views/overlay/toggle_microphone_button.cc",
       "//chrome/browser/ui/views/overlay/toggle_microphone_button.h",
-      "//chrome/browser/ui/views/overlay/track_image_button.cc",
-      "//chrome/browser/ui/views/overlay/track_image_button.h",
       "//chrome/browser/ui/views/overlay/video_overlay_window_views.cc",
       "//chrome/browser/ui/views/overlay/video_overlay_window_views.h",
     ]

+ 2 - 2
patches/boringssl/expose_aes-cfb.patch

@@ -58,10 +58,10 @@ index 852b76bea69988e0b3ac76a17b603128f239dde0..d443f4dc2daea0b7aa86ae75d31d995f
    callback(EVP_aes_192_ctr(), "aes-192-ctr", NULL, arg);
    callback(EVP_aes_256_ctr(), "aes-256-ctr", NULL, arg);
 diff --git a/include/openssl/cipher.h b/include/openssl/cipher.h
-index ba4b6983f5e898b5300ee7a5d683e0cba94682e8..1117a007da931e005b41e9d97672bdfd4eb61449 100644
+index b1876e0dcdab3bc69107093919e0c20fb92fc670..dffb4bcb519a3e8c2d0e2fc63603964a03cc1f4e 100644
 --- a/include/openssl/cipher.h
 +++ b/include/openssl/cipher.h
-@@ -460,6 +460,7 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);
+@@ -464,6 +464,7 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);
  
  // EVP_aes_128_cfb128 is only available in decrepit.
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);

+ 3 - 3
patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch

@@ -48,10 +48,10 @@ index cfd1862d4bd031dffb4e7d0cfd0aadcb61200c47..d14c8cd02171daf26ed9460b890b8247
  void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,
                                    RSA *(*cb)(SSL *ssl, int is_export,
 diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc
-index 51366a4fdf73041abd69184fef6bbc99ee5554db..c61bc3c979f9339014d63419034b0897e4f1c3ba 100644
+index 89273853c368ebd2c3c0098cc2a23af0490b7b87..5003607d4aded4ed885b6e362d224497932f1626 100644
 --- a/ssl/ssl_test.cc
 +++ b/ssl/ssl_test.cc
-@@ -8433,11 +8433,6 @@ TEST(SSLTest, ErrorSyscallAfterCloseNotify) {
+@@ -8435,11 +8435,6 @@ TEST(SSLTest, ErrorSyscallAfterCloseNotify) {
    EXPECT_EQ(ret, 0);
    EXPECT_EQ(SSL_get_error(client.get(), ret), SSL_ERROR_ZERO_RETURN);
  
@@ -63,7 +63,7 @@ index 51366a4fdf73041abd69184fef6bbc99ee5554db..c61bc3c979f9339014d63419034b0897
    // Although the client has seen close_notify, it should continue to report
    // |SSL_ERROR_SYSCALL| when its writes fail.
    ret = SSL_write(client.get(), data, sizeof(data));
-@@ -8445,22 +8440,6 @@ TEST(SSLTest, ErrorSyscallAfterCloseNotify) {
+@@ -8447,22 +8442,6 @@ TEST(SSLTest, ErrorSyscallAfterCloseNotify) {
    EXPECT_EQ(SSL_get_error(client.get(), ret), SSL_ERROR_SYSCALL);
    EXPECT_TRUE(write_failed);
    write_failed = false;

+ 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 7308301ceac36e7bc39cb82181e21f010caa7584..72c9d7960aaf7d98352ef41630fc2398a7d73cc4 100644
+index b132d6499796deed8e55834d97f2d4c916dafea1..e8e3654152fdbfa2ba8713a4f12a24520a3b7afc 100644
 --- a/content/public/renderer/render_frame_observer.h
 +++ b/content/public/renderer/render_frame_observer.h
 @@ -136,6 +136,8 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
@@ -23,10 +23,10 @@ index 7308301ceac36e7bc39cb82181e21f010caa7584..72c9d7960aaf7d98352ef41630fc2398
                                          int32_t world_id) {}
    virtual void DidClearWindowObject() {}
 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
-index 08bd2ab693d381ae422fe57757cff59875be019d..87abf860121fda9473be1c97b75c766bd1f30a30 100644
+index 914a5e98dbd2e18ace2bc274accd2c8c1adf1884..51999be9323d043485b9e88f5cbe1cafe79f23a1 100644
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -4392,6 +4392,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
+@@ -4380,6 +4380,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
      observer.DidCreateScriptContext(context, world_id);
  }
  
@@ -40,11 +40,11 @@ index 08bd2ab693d381ae422fe57757cff59875be019d..87abf860121fda9473be1c97b75c766b
                                                 int world_id) {
    for (auto& observer : observers_)
 diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
-index f5bddeb5119cc8771a34c49a31db79862ca86b2f..a4cf7d0d45457ba973cad1a0111da3d268d9af6f 100644
+index 54353eacda560c9298e12cd0fcc2a6b6cc28bdda..5a4bd4358a002d98636282c331da8276b5e43ca0 100644
 --- a/content/renderer/render_frame_impl.h
 +++ b/content/renderer/render_frame_impl.h
-@@ -605,6 +605,8 @@ class CONTENT_EXPORT RenderFrameImpl
-                           uint32_t ng_call_count) override;
+@@ -599,6 +599,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;
 +  void DidInstallConditionalFeatures(v8::Local<v8::Context> context,
@@ -53,10 +53,10 @@ index f5bddeb5119cc8771a34c49a31db79862ca86b2f..a4cf7d0d45457ba973cad1a0111da3d2
                                  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 dc4f1e9a0805abb37c980910991b58c1fe0ea4f6..687d8e33151d6b1192a4c391c4509fcfcaa3d5bb 100644
+index f6be297634018266f1208593531608f633338ed4..8d95924fab1d8670e4642119d075c53d6f0ebcd7 100644
 --- a/third_party/blink/public/web/web_local_frame_client.h
 +++ b/third_party/blink/public/web/web_local_frame_client.h
-@@ -593,6 +593,9 @@ class BLINK_EXPORT WebLocalFrameClient {
+@@ -586,6 +586,9 @@ class BLINK_EXPORT WebLocalFrameClient {
    virtual void DidCreateScriptContext(v8::Local<v8::Context>,
                                        int32_t world_id) {}
  
@@ -79,10 +79,10 @@ index 9736b31c03a32635fb8fde581321cc10ec11b11a..c9fd2170a25a7970648b8210ebe94e22
    if (World().IsMainWorld()) {
      GetFrame()->Loader().DispatchDidClearWindowObjectInMainWorld();
 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 68ddcc6249fb85983069ce37bca2a3e71dcb7d44..110a7772999563563bdd5e52e2de027e46097bc9 100644
+index 091e9a49676e2b780aa30abebc9fea09b79704c9..28b13deb80b27f57ad34de18c8d169e65d84bb28 100644
 --- a/third_party/blink/renderer/core/frame/local_frame_client.h
 +++ b/third_party/blink/renderer/core/frame/local_frame_client.h
-@@ -315,6 +315,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
+@@ -308,6 +308,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
  
    virtual void DidCreateScriptContext(v8::Local<v8::Context>,
                                        int32_t world_id) = 0;
@@ -92,10 +92,10 @@ index 68ddcc6249fb85983069ce37bca2a3e71dcb7d44..110a7772999563563bdd5e52e2de027e
                                          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 b2f8a26a4f9be27dd3b8d317efc8739ca08a2ca0..5ae8971055bc3b2ee6644fb869d9d6772ba01053 100644
+index 1b19205bf98436274e85dfb6ff1f39d9f299cfde..fdf31e7aebfc3c12944e0854c1335d342e8e6d96 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
-@@ -282,6 +282,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
+@@ -283,6 +283,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
      web_frame_->Client()->DidCreateScriptContext(context, world_id);
  }
  
@@ -110,7 +110,7 @@ index b2f8a26a4f9be27dd3b8d317efc8739ca08a2ca0..5ae8971055bc3b2ee6644fb869d9d677
      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 c1d35e9ec55a543f5b9287a5af5e6260f42e9c2d..2271a4ca5190eff0aa89fa3969048d19470405e5 100644
+index 76177add9e6473c27688c568ce2ef88227f8039f..01facbf63f73e77d13a23c6e961ea9b16d89b504 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
 @@ -82,6 +82,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient {

+ 1 - 1
patches/chromium/add_electron_deps_to_license_credits_file.patch

@@ -7,7 +7,7 @@ Ensure that licenses for the dependencies introduced by Electron
 are included in `LICENSES.chromium.html`
 
 diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
-index a33adb4901c76895f1dba6cb06ab4f866480a397..e2702d4c6920f0c635a8543533c8d5261454abbf 100755
+index 6f2e1a707767462e7b0e6909149cc16e6b22e62c..20a41de1b22a7403d3d1ddfcbd3454c690d2a50c 100755
 --- a/tools/licenses/licenses.py
 +++ b/tools/licenses/licenses.py
 @@ -384,6 +384,31 @@ SPECIAL_CASES = {

+ 8 - 8
patches/chromium/add_maximized_parameter_to_linuxui_getwindowframeprovider.patch

@@ -58,10 +58,10 @@ index ebc31db3dad9ba7904fbd345c6a1ba31ed6fd813..1d2ffc82bb67ed80f508631c8c7d045b
  
  }  // namespace gtk
 diff --git a/ui/gtk/window_frame_provider_gtk.cc b/ui/gtk/window_frame_provider_gtk.cc
-index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c763420c23ec2 100644
+index 9180d27328c5170171ea45d9ad83b34493aae2b9..f38bac04961fb200031f719183a229b943e22754 100644
 --- a/ui/gtk/window_frame_provider_gtk.cc
 +++ b/ui/gtk/window_frame_provider_gtk.cc
-@@ -38,16 +38,18 @@ std::string GetThemeName() {
+@@ -39,16 +39,18 @@ std::string GetThemeName() {
    return theme_string;
  }
  
@@ -83,7 +83,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
    // GTK4 renders the decoration directly on the window.
    if (!GtkCheckVersion(4))
      context = AppendCssNodeToStyleContext(context, "#decoration");
-@@ -64,8 +66,8 @@ GtkCssContext DecorationContext(bool solid_frame, bool focused) {
+@@ -65,8 +67,8 @@ GtkCssContext DecorationContext(bool solid_frame, bool focused) {
    return context;
  }
  
@@ -94,7 +94,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
    context =
        AppendCssNodeToStyleContext(context, "#headerbar.header-bar.titlebar");
    if (!focused)
-@@ -110,8 +112,8 @@ int ComputeTopCornerRadius() {
+@@ -111,8 +113,8 @@ int ComputeTopCornerRadius() {
    // need to experimentally determine the corner radius by rendering a sample.
    // Additionally, in GTK4, the headerbar corners get clipped by the window
    // rather than the headerbar having its own rounded corners.
@@ -105,7 +105,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
    ApplyCssToContext(context, R"(window, headerbar {
      background-image: none;
      background-color: black;
-@@ -169,8 +171,8 @@ void WindowFrameProviderGtk::Asset::CloneFrom(
+@@ -170,8 +172,8 @@ void WindowFrameProviderGtk::Asset::CloneFrom(
    unfocused_bitmap = src.unfocused_bitmap;
  }
  
@@ -116,7 +116,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
  
  WindowFrameProviderGtk::~WindowFrameProviderGtk() = default;
  
-@@ -272,7 +274,7 @@ void WindowFrameProviderGtk::PaintWindowFrame(
+@@ -273,7 +275,7 @@ void WindowFrameProviderGtk::PaintWindowFrame(
        top_area_height_dip * scale - effective_frame_thickness_px.top();
  
    auto header = PaintHeaderbar({client_bounds_px.width(), top_area_height_px},
@@ -125,7 +125,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
    image = gfx::ImageSkia::CreateFrom1xBitmap(header);
    // In GTK4, the headerbar gets clipped by the window.
    if (GtkCheckVersion(4)) {
-@@ -304,7 +306,7 @@ void WindowFrameProviderGtk::MaybeUpdateBitmaps(float scale) {
+@@ -305,7 +307,7 @@ void WindowFrameProviderGtk::MaybeUpdateBitmaps(float scale) {
  
    gfx::Rect frame_bounds_dip(kMaxFrameSizeDip, kMaxFrameSizeDip,
                               2 * kMaxFrameSizeDip, 2 * kMaxFrameSizeDip);
@@ -134,7 +134,7 @@ index c7857a3e316554e6b5f46c023a1a8084a3263074..5ad7d4ffa7e9c12ec4640a845a4c7634
    frame_bounds_dip.Inset(-GtkStyleContextGetPadding(focused_context));
    frame_bounds_dip.Inset(-GtkStyleContextGetBorder(focused_context));
    gfx::Size bitmap_size(BitmapSizePx(asset), BitmapSizePx(asset));
-@@ -312,7 +314,7 @@ void WindowFrameProviderGtk::MaybeUpdateBitmaps(float scale) {
+@@ -313,7 +315,7 @@ void WindowFrameProviderGtk::MaybeUpdateBitmaps(float scale) {
        PaintBitmap(bitmap_size, frame_bounds_dip, focused_context, scale);
    asset.unfocused_bitmap =
        PaintBitmap(bitmap_size, frame_bounds_dip,

+ 8 - 8
patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch

@@ -6,10 +6,10 @@ Subject: allow disabling blink scheduler throttling per RenderView
 This allows us to disable throttling for hidden windows.
 
 diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
-index 989e7686f61acc18244801b0f8e52e779c8ac856..60182bd144295be0a7f4f05525246dd203d81ad4 100644
+index 6b36af5ca7c104e070287c5a7bf26ee71444ce51..6643eb7ea989de249bfe9bea4179392bc94d7943 100644
 --- a/content/browser/renderer_host/render_view_host_impl.cc
 +++ b/content/browser/renderer_host/render_view_host_impl.cc
-@@ -690,6 +690,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
+@@ -691,6 +691,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
    GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque);
  }
  
@@ -48,10 +48,10 @@ index 9979c25ecd57e68331b628a518368635db5c2027..32733bf951af3eff7da5fd5758bbcbaa
    // This interface should only be implemented inside content.
    friend class RenderViewHostImpl;
 diff --git a/third_party/blink/public/mojom/page/page.mojom b/third_party/blink/public/mojom/page/page.mojom
-index 0cfe109e1ee4ac59dc8ddc68dff3ab929fcf480b..398be46c71fb9ea42ea655b204aaff31501d48c9 100644
+index 5f6a6f538fb8e21279d99b3dbe74a583f1592967..18837dceef7a197d0984b5363595ee1131553c5f 100644
 --- a/third_party/blink/public/mojom/page/page.mojom
 +++ b/third_party/blink/public/mojom/page/page.mojom
-@@ -131,4 +131,7 @@ interface PageBroadcast {
+@@ -133,4 +133,7 @@ interface PageBroadcast {
      mojo_base.mojom.UnguessableToken devtools_frame_token,
      RemoteFrameInterfacesFromBrowser remote_frame_interfaces,
      RemoteMainFrameInterfaces remote_main_frame_interfaces);
@@ -72,7 +72,7 @@ index c8655d9270b812df04f27025ff29a2fb6d2a4066..2f83e5ce40f8217ff5d53f7205299ad7
    // 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 5953f73697187280dacc4a77aec646a670983f5d..db53f78f371f5d7e76ce0844d7b3cb3c912af4e8 100644
+index 2e8500ac411bec392ec85c798b8379140917792b..490a381e1afd0a175cd1ca12926a21278c051712 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
 @@ -3827,13 +3827,21 @@ PageScheduler* WebViewImpl::Scheduler() const {
@@ -99,10 +99,10 @@ index 5953f73697187280dacc4a77aec646a670983f5d..db53f78f371f5d7e76ce0844d7b3cb3c
    if (!is_initial_state) {
      for (auto& observer : observers_)
 diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
-index f283bfde9e43dd38a8cf769d8ac7cec643fe5222..fef7875a7eb323c37730bb80227c40c31edae44e 100644
+index ac623b8bd6c06a2a1def5d9761f8d0d3f845fc95..c420285f1fafff4af090a9dbe38debddaea57dfd 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.h
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.h
-@@ -439,6 +439,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -440,6 +440,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
    LocalDOMWindow* PagePopupWindow() const;
  
    PageScheduler* Scheduler() const override;
@@ -110,7 +110,7 @@ index f283bfde9e43dd38a8cf769d8ac7cec643fe5222..fef7875a7eb323c37730bb80227c40c3
    void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state,
                            bool is_initial_state) override;
    mojom::blink::PageVisibilityState GetVisibilityState() override;
-@@ -895,6 +896,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -896,6 +897,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
    // If true, we send IPC messages when |preferred_size_| changes.
    bool send_preferred_size_changes_ = false;
  

+ 1 - 1
patches/chromium/allow_new_privileges_in_unsandboxed_child_processes.patch

@@ -6,7 +6,7 @@ Subject: allow new privileges in unsandboxed child processes
 This allows unsandboxed child process to launch setuid processes on Linux.
 
 diff --git a/content/browser/child_process_launcher_helper_linux.cc b/content/browser/child_process_launcher_helper_linux.cc
-index dd5ccfc0bdc2e071999d1bf864dc065dd1311407..cfadd28fca9f80bf57578db78d5472c4f75414e1 100644
+index 8c5cc2b157f6e2894216a003256a9ef3b6dbf5f7..008ba5bef67adbd166919ca4708452faa4bb85b5 100644
 --- a/content/browser/child_process_launcher_helper_linux.cc
 +++ b/content/browser/child_process_launcher_helper_linux.cc
 @@ -56,6 +56,18 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(

+ 1 - 1
patches/chromium/blink_local_frame.patch

@@ -49,7 +49,7 @@ index d6d1494f91ff6287eaf168700a7f9db246da43b3..7d1bc01d77f9e08d04030ef218639ed8
    // 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 299ff3e0c4ccc2ecc55ac6096c8c8ebba5d449db..7dab874043eeef7c352c48d576f124d8a5269da9 100644
+index c1001047264b58f34652897b8d5bb2527cabed88..91e3217ef24086d349c089379ef3b7f6f7d2f279 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
 @@ -552,10 +552,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {

+ 2 - 2
patches/chromium/build_disable_partition_alloc_on_mac.patch

@@ -9,10 +9,10 @@ and can be removed when the crash in fork is resolved.
 Related issue: https://github.com/electron/electron/issues/32718
 
 diff --git a/build_overrides/partition_alloc.gni b/build_overrides/partition_alloc.gni
-index f621d80f9ce1909519a4a158b779117f3906383e..d190ac74157e69dd8bc9851a9b1ede9fe59c575e 100644
+index e1fa5fe9f6da68451d364fadbc021239a8c3e19a..4850698ef66776333fad27812a5414a9aa55fe08 100644
 --- a/build_overrides/partition_alloc.gni
 +++ b/build_overrides/partition_alloc.gni
-@@ -41,7 +41,7 @@ _disable_partition_alloc_everywhere = is_component_build || (is_win && is_debug)
+@@ -42,7 +42,7 @@ _disable_partition_alloc_everywhere = is_component_build || (is_win && is_debug)
  
  # - NaCl: No plans to support it.
  # - iOS: not done yet.

+ 10 - 10
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 58be09545e68ebdea72cccf5d3de8006af6b9375..1cbd939074eed59fa7227eeced4b8f396de7d3bc 100644
+index d78fad5f8e4549c605c9d2e5b5265fba987d6794..1239a4d5eb849455e0fe739fb32a1d78b48ca8d3 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -180,11 +180,16 @@ if (!is_android && !is_mac) {
+@@ -183,11 +183,16 @@ if (!is_android && !is_mac) {
          "common/crash_keys.h",
        ]
  
@@ -33,10 +33,10 @@ index 58be09545e68ebdea72cccf5d3de8006af6b9375..1cbd939074eed59fa7227eeced4b8f39
          "//base",
          "//build:branding_buildflags",
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
-index a90a57bbcd39e14dbd9ac485a7df92ee1d74fd7c..c4d024176f1f17f39d8c3a36b06b3299831c982c 100644
+index 7dbf7acaaaafae75c5e521330289ab71104fb841..af20cc2bb421bb3c5b149634796b9f5d5357a00a 100644
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -4611,7 +4611,7 @@ static_library("browser") {
+@@ -4597,7 +4597,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 a90a57bbcd39e14dbd9ac485a7df92ee1d74fd7c..c4d024176f1f17f39d8c3a36b06b3299
        sources += [ "certificate_viewer_stub.cc" ]
      }
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
-index 698a62277215423b51a946d3a25523f844dce3ac..8174066a5bf7a470c11d6ac3f804363e3f28b8e4 100644
+index a33fbad430ead20024adac6e4c6f4ab6a39b8018..93339d63954d5dd807296b4b15b76abfee212ccf 100644
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -6222,7 +6222,6 @@ test("unit_tests") {
+@@ -6245,7 +6245,6 @@ test("unit_tests") {
  
      deps += [
        "//chrome:other_version",
@@ -57,7 +57,7 @@ index 698a62277215423b51a946d3a25523f844dce3ac..8174066a5bf7a470c11d6ac3f804363e
        "//chrome//services/util_win:unit_tests",
        "//chrome/app:chrome_dll_resources",
        "//chrome/app:crash_reporter_client_win_unit_tests",
-@@ -6247,6 +6246,10 @@ test("unit_tests") {
+@@ -6271,6 +6270,10 @@ test("unit_tests") {
        "//ui/resources",
      ]
  
@@ -68,16 +68,16 @@ index 698a62277215423b51a946d3a25523f844dce3ac..8174066a5bf7a470c11d6ac3f804363e
      ldflags = [
        "/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
        "/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
-@@ -7175,7 +7178,7 @@ test("unit_tests") {
+@@ -7193,7 +7196,7 @@ test("unit_tests") {
      }
  
      deps += [
 -      "//chrome:packed_resources_integrity_hash",
 +    # "//chrome:packed_resources_integrity_hash",
        "//chrome/browser/apps/app_service:test_support",
-       "//chrome/browser/autofill_assistant/password_change/vector_icons:vector_icons",
        "//chrome/browser/enterprise/connectors/analysis:features",
-@@ -7302,6 +7305,10 @@ test("unit_tests") {
+       "//chrome/browser/image_editor:image_editor_component_util",
+@@ -7321,6 +7324,10 @@ test("unit_tests") {
      }
    }
  

+ 1 - 1
patches/chromium/build_gn.patch

@@ -14,7 +14,7 @@ tradeoff is that switching from MAS_BUILD to !MAS_BUILD or vice-versa will
 rebuild the entire tree.
 
 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index efba84719e620954fd093dcac4ce2c60b6b97def..54ef20a4a8983eb176428d4074882582166a41f6 100644
+index cc7e92ddb67cd0da1acd38bfaf1479cb08b2ca65..6cd73d404b27058ba45e1c32a29ddd707d1b0adb 100644
 --- a/build/config/BUILDCONFIG.gn
 +++ b/build/config/BUILDCONFIG.gn
 @@ -123,6 +123,9 @@ if (current_os == "") {

+ 25 - 25
patches/chromium/build_only_use_the_mas_build_config_in_the_required_components.patch

@@ -6,10 +6,10 @@ Subject: build: only use the mas build config in the required components
 Before landing this patch should be split into the relevant MAS patches, or at least the patch this one partially reverts
 
 diff --git a/base/BUILD.gn b/base/BUILD.gn
-index c16491d621308b916780999af993a6752aca6ed9..241e84fd717eccc740f018c59ddd16c922a6c369 100644
+index 904eaff4687de97a637f310498837b3be2e74ffa..2360645cd6b33854043d32cb03346b4cdf221e7b 100644
 --- a/base/BUILD.gn
 +++ b/base/BUILD.gn
-@@ -1484,6 +1484,7 @@ component("base") {
+@@ -1492,6 +1492,7 @@ component("base") {
      "//build/config/compiler:prevent_unsafe_narrowing",
      "//build/config/compiler:wexit_time_destructors",
      "//build/config/compiler:wglobal_constructors",
@@ -18,7 +18,7 @@ index c16491d621308b916780999af993a6752aca6ed9..241e84fd717eccc740f018c59ddd16c9
  
    deps = [
 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index 54ef20a4a8983eb176428d4074882582166a41f6..b511b46d4c263e216d1a4d0ed158785511e867ec 100644
+index 6cd73d404b27058ba45e1c32a29ddd707d1b0adb..50cb31fcac0b960b98693b6f63d5580780d24c43 100644
 --- a/build/config/BUILDCONFIG.gn
 +++ b/build/config/BUILDCONFIG.gn
 @@ -355,7 +355,6 @@ default_compiler_configs = [
@@ -68,7 +68,7 @@ index 97a4fa63593ca119501dcf76468052b33041cf27..be10275cdcd7bacae4ab24608ad840c5
  
    if (is_android || use_ozone) {
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index ec8da4b89278e4f53ae302fb6ae860383966a2bc..75ee79708723f165d91fbc06a877fd047d2542bb 100644
+index 915ecd8d726cec265848502622dd13d4dff099b7..554dc59e40c6da9d272bd7e61657762978645149 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
 @@ -53,6 +53,7 @@ source_set("browser") {
@@ -92,10 +92,10 @@ index ff6b2e9248d7a03923ac57e44e31b5fb8320e456..33396b3fa3258b97d5baef4ef064887f
    public_deps = [
      ":mojo_bindings",
 diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
-index 4dca38c0284b5e4689a53c0dbf44ada35a3a89ca..7f1d207f6bc8ec5ca578bf4f3a298d8b8bbaf862 100644
+index e58c94c84f9f337137e7bfef9059115a65866163..5180fbe4a579cff4e30676812137337629be677d 100644
 --- a/content/renderer/BUILD.gn
 +++ b/content/renderer/BUILD.gn
-@@ -214,6 +214,7 @@ target(link_target_type, "renderer") {
+@@ -218,6 +218,7 @@ target(link_target_type, "renderer") {
    }
  
    configs += [ "//content:content_implementation" ]
@@ -116,22 +116,22 @@ index 0b526044dcc7cbc21cc25cfdd7be8e4cdd8f06eb..c5c61601a684ea08e2279b4fc6b77d81
  
    if (is_win) {
 diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn
-index c342a9c95b1787c49b88ba62457c6f27151cbb87..6181018d4940569e1feb323587fcbc96bd597ae9 100644
+index e5bc3c86e07873f5ad5a54fba950e3105049ab2b..6774273357a7b6a465a9918f81b4cee90c0859a4 100644
 --- a/gpu/ipc/service/BUILD.gn
 +++ b/gpu/ipc/service/BUILD.gn
-@@ -118,6 +118,7 @@ component("service") {
-       "OpenGL.framework",
+@@ -119,6 +119,7 @@ component("service") {
        "QuartzCore.framework",
      ]
+     defines += [ "GL_SILENCE_DEPRECATION" ]
 +    configs += ["//electron/build/config:mas_build"]
    }
    if (is_android) {
      sources += [
 diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
-index 8ed81a36306f6dfae965ee90781e5bb79067fa92..33205cecb58d05ef8d7628b170a09137a463dcf8 100644
+index 3cc3a2de26e0988ab23245f4b6019b80585a50c3..cc6df0a804ce9e35dd71014519ef00db59236199 100644
 --- a/media/audio/BUILD.gn
 +++ b/media/audio/BUILD.gn
-@@ -190,6 +190,7 @@ source_set("audio") {
+@@ -188,6 +188,7 @@ source_set("audio") {
        "CoreAudio.framework",
        "CoreFoundation.framework",
      ]
@@ -140,10 +140,10 @@ index 8ed81a36306f6dfae965ee90781e5bb79067fa92..33205cecb58d05ef8d7628b170a09137
  
    if (is_win) {
 diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
-index 3ed16c02a2053a8ce81a98a7e14dea16f2d6c31b..5b903ddf11ebe0886a101c75bc1c084d4c6fc506 100644
+index 1467334057a0f2ae4f2d2bb1bae9ec0b1ca1d77b..c358a3d9e16865eb8247b67c4369e3aaeea1a49a 100644
 --- a/net/dns/BUILD.gn
 +++ b/net/dns/BUILD.gn
-@@ -171,6 +171,8 @@ source_set("dns") {
+@@ -173,6 +173,8 @@ source_set("dns") {
      ":host_resolver_manager",
      ":mdns_client",
    ]
@@ -153,10 +153,10 @@ index 3ed16c02a2053a8ce81a98a7e14dea16f2d6c31b..5b903ddf11ebe0886a101c75bc1c084d
  
  # The standard API of net/dns.
 diff --git a/sandbox/mac/BUILD.gn b/sandbox/mac/BUILD.gn
-index 06b7f0310f1bca118cc2c89a9c21d3ebd661ec1e..b5b7432e1d998db003dd33622c750e817c79d7bc 100644
+index b078486d595ec38e5db1462486ab31a2951430e0..5cafd91460d5f98a20caa884834cc3edb116d9b2 100644
 --- a/sandbox/mac/BUILD.gn
 +++ b/sandbox/mac/BUILD.gn
-@@ -33,6 +33,7 @@ component("seatbelt") {
+@@ -37,6 +37,7 @@ component("seatbelt") {
    ]
    public_deps = [ "//third_party/protobuf:protobuf_lite" ]
    defines = [ "SEATBELT_IMPLEMENTATION" ]
@@ -164,7 +164,7 @@ index 06b7f0310f1bca118cc2c89a9c21d3ebd661ec1e..b5b7432e1d998db003dd33622c750e81
  }
  
  component("seatbelt_extension") {
-@@ -46,6 +47,7 @@ component("seatbelt_extension") {
+@@ -50,6 +51,7 @@ component("seatbelt_extension") {
    libs = [ "sandbox" ]
    public_deps = [ "//base" ]
    defines = [ "SEATBELT_IMPLEMENTATION" ]
@@ -172,7 +172,7 @@ index 06b7f0310f1bca118cc2c89a9c21d3ebd661ec1e..b5b7432e1d998db003dd33622c750e81
  }
  
  component("system_services") {
-@@ -60,6 +62,7 @@ component("system_services") {
+@@ -64,6 +66,7 @@ component("system_services") {
    deps = [ ":seatbelt_export" ]
    public_deps = [ "//base" ]
    defines = [ "SEATBELT_IMPLEMENTATION" ]
@@ -181,7 +181,7 @@ index 06b7f0310f1bca118cc2c89a9c21d3ebd661ec1e..b5b7432e1d998db003dd33622c750e81
  
  source_set("sandbox_unittests") {
 diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
-index 5de6278bb601be48690f4832c9d8379e74be13d5..2142d584e2910c0294c8d42e277e9e7931f00760 100644
+index e6cfaa6d322f9766ade654bf82484d9e8aa18ae4..c5e2c8736aa9f8f42495155d438702dea3770111 100644
 --- a/third_party/blink/renderer/core/BUILD.gn
 +++ b/third_party/blink/renderer/core/BUILD.gn
 @@ -280,6 +280,7 @@ component("core") {
@@ -193,10 +193,10 @@ index 5de6278bb601be48690f4832c9d8379e74be13d5..2142d584e2910c0294c8d42e277e9e79
    public_deps = [
      ":core_generated",
 diff --git a/ui/accelerated_widget_mac/BUILD.gn b/ui/accelerated_widget_mac/BUILD.gn
-index 79b5a50e197897ab36253761fddffda25e5e98a4..0bcb5d1ff7b0e97922406a6f758421d9c4b24c75 100644
+index 1ca2843130e81f9ea6be7a71b6b2a8d68bd413ae..712e4428bc9417f114a695a5980c488801007b77 100644
 --- a/ui/accelerated_widget_mac/BUILD.gn
 +++ b/ui/accelerated_widget_mac/BUILD.gn
-@@ -50,6 +50,8 @@ component("accelerated_widget_mac") {
+@@ -53,6 +53,8 @@ component("accelerated_widget_mac") {
      "OpenGL.framework",
      "QuartzCore.framework",
    ]
@@ -206,10 +206,10 @@ index 79b5a50e197897ab36253761fddffda25e5e98a4..0bcb5d1ff7b0e97922406a6f758421d9
  
  test("accelerated_widget_mac_unittests") {
 diff --git a/ui/accessibility/platform/BUILD.gn b/ui/accessibility/platform/BUILD.gn
-index 4db17696494ad967f40ea1644d2acaca906e7f6b..1114db3e483767624d34f8897ea84747bec15480 100644
+index 9f1549e173f4133f24d299ce6aa52e8ccb8008eb..e904a22e916f45d1dacde0f566e31f3c4b4a252b 100644
 --- a/ui/accessibility/platform/BUILD.gn
 +++ b/ui/accessibility/platform/BUILD.gn
-@@ -239,6 +239,7 @@ source_set("platform") {
+@@ -245,6 +245,7 @@ component("platform") {
          "AppKit.framework",
          "Foundation.framework",
        ]
@@ -218,7 +218,7 @@ index 4db17696494ad967f40ea1644d2acaca906e7f6b..1114db3e483767624d34f8897ea84747
  
      if (use_atk) {
 diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
-index e8b06c7fa14405902abc84dc738efdbb327a3677..4e2160b8377b348b6cf654ff01307a524be2e1ac 100644
+index 37f25793bac3c6b025c0f7e6a3e16593f53f3b0b..3d60e80929236e6c4c3e233e699fa2a395fb614b 100644
 --- a/ui/base/BUILD.gn
 +++ b/ui/base/BUILD.gn
 @@ -347,6 +347,7 @@ component("base") {
@@ -257,10 +257,10 @@ index 0f1747b8b5f562c22fad4d4a8bef20cf823f8bac..731af13b2e4a35d728372b9937aceba0
    if (is_win) {
      sources += [
 diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
-index 99aefe2bad07504abcfb069b2be87d7c3ad512b7..f23b2efff2b710558ae22ad0d4c95cdbd0a5b2a2 100644
+index c92b020319faf3f9b1b7dc754cf2016e182d5078..48ff8660048dc741b5f62941649269a6bb7b489d 100644
 --- a/ui/views/BUILD.gn
 +++ b/ui/views/BUILD.gn
-@@ -659,6 +659,7 @@ component("views") {
+@@ -661,6 +661,7 @@ component("views") {
        "IOSurface.framework",
        "QuartzCore.framework",
      ]

+ 24 - 24
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 51a472c855bbcc55c7ac9e71152db10db5a338ed..68436bab8c7bcd15a151b3d3e8856d2dfcb0b82c 100644
+index 6453489bc8bfb092467cc067e99ee2a4ea238ed1..df6bd5e1b23e66e3202737bacd8f14fc9c16b367 100644
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -7288,6 +7288,7 @@ void RenderFrameHostImpl::CreateNewWindow(
+@@ -7282,6 +7282,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 51a472c855bbcc55c7ac9e71152db10db5a338ed..68436bab8c7bcd15a151b3d3e8856d2d
            &no_javascript_access);
  
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 92a6ef2bae58718d51e7e9cfeeef24313762d6ab..5d33c006e858757ffd1d6754e90cec96ac6dcad1 100644
+index 44f90bc01a9be6d35fb4e2686bbcf548b4ce2574..e0073a21276079edb92d0b62ffb08206da4e179b 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4057,6 +4057,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4133,6 +4133,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    auto* new_contents_impl = new_contents.get();
  
@@ -37,7 +37,7 @@ index 92a6ef2bae58718d51e7e9cfeeef24313762d6ab..5d33c006e858757ffd1d6754e90cec96
    // 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
-@@ -4098,12 +4104,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4174,12 +4180,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
      AddWebContentsDestructionObserver(new_contents_impl);
    }
  
@@ -51,13 +51,13 @@ index 92a6ef2bae58718d51e7e9cfeeef24313762d6ab..5d33c006e858757ffd1d6754e90cec96
                               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 8d9b71b8dd507f835a07ef56e86489ed7cfe4255..73266701ec802a4aed782658e60665f9e3e81263 100644
+index 768c56e5284241991df7428214ea5322d4ae7c5b..2a82c17cc8c3ff4485429c18825c1c5e3584332f 100644
 --- a/content/common/frame.mojom
 +++ b/content/common/frame.mojom
-@@ -591,6 +591,10 @@ struct CreateNewWindowParams {
- 
-   // Additional parameters for creating picture-in-picture windows.
-   blink.mojom.PictureInPictureWindowOptions? pip_options;
+@@ -596,6 +596,10 @@ struct CreateNewWindowParams {
+   // The navigation initiator's user activation and ad status.
+   blink.mojom.NavigationInitiatorActivationAndAdStatus
+       initiator_activation_and_ad_status;
 +
 +  // Extra fields added by Electron.
 +  string raw_features;
@@ -66,10 +66,10 @@ index 8d9b71b8dd507f835a07ef56e86489ed7cfe4255..73266701ec802a4aed782658e60665f9
  
  // 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 2a4a2183db5c6b2f981f757c248cabb7e9e007f8..33755467c637974f3c0a16eb2a8fe5c6b83b14b5 100644
+index 110e353d1768bc2001e5942905a593a96febd713..4d5a5d019943fd34dd8f55fa924723a62732caf6 100644
 --- a/content/public/browser/content_browser_client.cc
 +++ b/content/public/browser/content_browser_client.cc
-@@ -620,6 +620,8 @@ bool ContentBrowserClient::CanCreateWindow(
+@@ -624,6 +624,8 @@ bool ContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -79,7 +79,7 @@ index 2a4a2183db5c6b2f981f757c248cabb7e9e007f8..33755467c637974f3c0a16eb2a8fe5c6
      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 39eadbcc3fe914c154f5b655a09675427a24d0ed..c8a5bdeb03e085f607cfdc79f14879c8c1379257 100644
+index 99f1c9203e9763f7869fb92553edb77ddec3483b..4f79af8c15958b7df700ba0c51d79ed1c981712a 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
 @@ -164,6 +164,7 @@ class NetworkService;
@@ -90,7 +90,7 @@ index 39eadbcc3fe914c154f5b655a09675427a24d0ed..c8a5bdeb03e085f607cfdc79f14879c8
  }  // namespace network
  
  namespace sandbox {
-@@ -1013,6 +1014,8 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -1017,6 +1018,8 @@ class CONTENT_EXPORT ContentBrowserClient {
        const std::string& frame_name,
        WindowOpenDisposition disposition,
        const blink::mojom::WindowFeatures& features,
@@ -148,12 +148,12 @@ index e2ce097fb78d853bb7098b1ce7dacfadd6d188d9..a082d41de24f963fe170108e80601946
    // 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 a274c4ba456b0fe7fce935866768aaa336347581..08bd2ab693d381ae422fe57757cff59875be019d 100644
+index 3d43d9488891f0bd27b7caaf53d8236402059bef..914a5e98dbd2e18ace2bc274accd2c8c1adf1884 100644
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -6253,6 +6253,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
-       /*openee_can_access_opener_origin=*/true,
-       !GetWebFrame()->IsAllowedToDownload(), GetWebFrame()->IsAdFrame());
+@@ -6259,6 +6259,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
+       blink::GetNavigationInitiatorActivationAndAdStatus(
+           request.HasUserGesture(), GetWebFrame()->IsAdScriptInStack());
  
 +  params->raw_features = features.raw_features.Utf8(
 +      WTF::UTF8ConversionMode::kStrictUTF8ConversionReplacingUnpairedSurrogatesWithFFFD);
@@ -163,10 +163,10 @@ index a274c4ba456b0fe7fce935866768aaa336347581..08bd2ab693d381ae422fe57757cff598
    // moved on send.
    bool is_background_tab =
 diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc
-index 52896a36295d53088cf95b16c4f2af9f85d54b49..527db3d4afb90c58e0a473ecf14e3678d8b466fa 100644
+index aca7d52eb07f7682c304490e2bab0285dea3b8ac..b6b2559b133012170cdf63f447665d0bda6605d2 100644
 --- a/content/web_test/browser/web_test_content_browser_client.cc
 +++ b/content/web_test/browser/web_test_content_browser_client.cc
-@@ -499,6 +499,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
+@@ -501,6 +501,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -189,7 +189,7 @@ index 55f3b2ce596f18fdffde7f23f01da98778816395..07496fded98e6ac926b219f56f769e2a
                         bool opener_suppressed,
                         bool* no_javascript_access) override;
 diff --git a/third_party/blink/public/web/web_window_features.h b/third_party/blink/public/web/web_window_features.h
-index 34570168ccb123f5102dcf8fa6bbf98e7c373ec6..192701e56d258da41b3724292853885e4daf3420 100644
+index a50a83d36f9172add44867ee0b0f1c89779b387e..c4ac7d4c885e764cfcfc3f2cd25e31b4b1a64a55 100644
 --- a/third_party/blink/public/web/web_window_features.h
 +++ b/third_party/blink/public/web/web_window_features.h
 @@ -34,6 +34,7 @@
@@ -200,7 +200,7 @@ index 34570168ccb123f5102dcf8fa6bbf98e7c373ec6..192701e56d258da41b3724292853885e
  
  namespace blink {
  
-@@ -68,6 +69,8 @@ struct WebWindowFeatures {
+@@ -63,6 +64,8 @@ struct WebWindowFeatures {
    // Represents the attribution source declared by Attribution Reporting related
    // window features, if any.
    absl::optional<Impression> impression;
@@ -210,10 +210,10 @@ index 34570168ccb123f5102dcf8fa6bbf98e7c373ec6..192701e56d258da41b3724292853885e
  
  }  // 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 c7a66bc0e034b77baf476374de66986cd47983e8..4e6f466a64565580aa81f6242f517470a9f85b38 100644
+index 6f6b091a3c0e1b0bc65a72bbb4adb65439bd58c1..89651dea92b168c30a1212938b689d4b47953be1 100644
 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc
 +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -2204,6 +2204,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
+@@ -2207,6 +2207,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
    WebWindowFeatures window_features =
        GetWindowFeaturesFromString(features, entered_window, completed_url);
  

+ 7 - 7
patches/chromium/chore_add_electron_deps_to_gitignores.patch

@@ -18,30 +18,30 @@ index 3424f7d348a38abacff0bad5db8f744c042f5ca1..880e1483a3412c0737725ff5b76766c4
  /google_apis/internal
  /googleurl
 diff --git a/third_party/.gitignore b/third_party/.gitignore
-index bb50e8dd9c06049dbebc9952d5f49c7dea57b8f7..f11bec886fe4cc25cded88efd7d5ffef27fb82c8 100644
+index 45661ed8f4f21cf767482648af49ff9ef1514921..2bee8c6fcbf239ad8c3ae87396a350569e6b2aab 100644
 --- a/third_party/.gitignore
 +++ b/third_party/.gitignore
-@@ -85,6 +85,7 @@
+@@ -86,6 +86,7 @@
  /directxsdk
  /dom_distiller_js/dist
  /eigen3/src
 +/electron_node
  /elfutils/src
- /emoji-segmenter/src
  /emoji-metadata/src
-@@ -183,6 +184,7 @@
- /js_code_coverage/node_modules
+ /emoji-segmenter/src
+@@ -184,6 +185,7 @@
+ /mocha
  /mockito/src
  /nacl_sdk_binaries/
 +/nan
  /nasm
  /nearby/src
  /neon_2_sse/src
-@@ -246,6 +248,7 @@
+@@ -247,6 +249,7 @@
  /speex
  /sqlite/src
  /sqlite4java/lib/
 +/squirrel.mac
  /subresource-filter-ruleset/data/UnindexedRules
  /swift-format
- /swiftshader/
+ /swift-toolchain

+ 2 - 2
patches/chromium/chore_allow_chromium_to_handle_synthetic_mouse_events_for_touch.patch

@@ -34,10 +34,10 @@ index 58c13ba42464553427584a98492fe11a4228e3ff..034134fea43ae7c88232e3969e2efcf8
    Widget* GetWidget();
    const Widget* GetWidget() const;
 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
-index 84a21d19b60c0d159f09a945a6ce3c06ba6ef07c..a682ee8e5c44d6b37957c92b72cd959b959f6745 100644
+index 454c821a545dbb1d3eed32ec9317819b22bba007..5273f108cce98464a649108e31d84490a087c2b3 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -3136,15 +3136,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
+@@ -3156,15 +3156,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
        SetMsgHandled(FALSE);
      // We must let Windows handle the caption buttons if it's drawing them, or
      // they won't work.

+ 3 - 3
patches/chromium/chore_introduce_blocking_api_for_electron.patch

@@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
 of explicitly adding ScopedAllowBlocking calls as friends.
 
 diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
-index f3295a465997b04e2345b31ea1bad42f66ab7400..9d77fa98b4247092c1c1df920f6a6285c22d2708 100644
+index e251578d1ec49dbc9f8855b405767e6df7117454..b73cccdee96d751392ea6d7ee22d55d0b956ac24 100644
 --- a/base/threading/thread_restrictions.h
 +++ b/base/threading/thread_restrictions.h
 @@ -129,6 +129,7 @@ class FirefoxProfileLock;
@@ -28,7 +28,7 @@ index f3295a465997b04e2345b31ea1bad42f66ab7400..9d77fa98b4247092c1c1df920f6a6285
  namespace enterprise_connectors {
  class LinuxKeyRotationCommand;
  }  // namespace enterprise_connectors
-@@ -543,6 +547,7 @@ class BASE_EXPORT ScopedAllowBlocking {
+@@ -546,6 +550,7 @@ class BASE_EXPORT ScopedAllowBlocking {
    friend class ::DesktopNotificationBalloon;
    friend class ::FirefoxProfileLock;
    friend class ::GaiaConfig;
@@ -36,7 +36,7 @@ index f3295a465997b04e2345b31ea1bad42f66ab7400..9d77fa98b4247092c1c1df920f6a6285
    friend class ::ProfileImpl;
    friend class ::ScopedAllowBlockingForProfile;
    friend class ::StartupTabProviderImpl;
-@@ -583,6 +588,7 @@ class BASE_EXPORT ScopedAllowBlocking {
+@@ -586,6 +591,7 @@ class BASE_EXPORT ScopedAllowBlocking {
    friend class crosapi::LacrosThreadTypeDelegate;
    friend class crypto::ScopedAllowBlockingForNSS;  // http://crbug.com/59847
    friend class drive::FakeDriveService;

+ 11 - 11
patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch

@@ -80,10 +80,10 @@ index 0e9e41382300d6bb5fc6fa47cd5ed2ed4181ce46..e65a9bb5b9909e16f5a7dd2e73defa85
    }
  
 diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
-index 924ab1bc6dd5fd26e18e7b713d69a100c1693fed..17241f757380285f14869f56afa512e5a250e5bd 100644
+index 8f9c1932cef561c9e6461dcf940e69560fc4acc6..ea69b7beda5dbcd1ff998666db22f1d81569aac6 100644
 --- a/chrome/browser/ui/browser.cc
 +++ b/chrome/browser/ui/browser.cc
-@@ -1809,12 +1809,11 @@ bool Browser::IsWebContentsCreationOverridden(
+@@ -1811,12 +1811,11 @@ bool Browser::IsWebContentsCreationOverridden(
      content::SiteInstance* source_site_instance,
      content::mojom::WindowContainerType window_container_type,
      const GURL& opener_url,
@@ -218,10 +218,10 @@ index 4e32d708ecf4afd3913d86ec1602ef2dc9a60998..1dd2f50fba1387b5eeb554dd540957d7
    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 01fc65db762e2ee2e8bac8ab03f6bfa32068cfd7..9d742125434674f832daf7abd0c19fadcf8fcf24 100644
+index cf17df50c56acbfdc25c205eb6e11e8fd74192c0..bb5bab64b06dac5ba78893da2484bf040fa3f4ce 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3957,8 +3957,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4033,8 +4033,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    if (delegate_ && delegate_->IsWebContentsCreationOverridden(
                         source_site_instance, params.window_container_type,
@@ -288,7 +288,7 @@ index e7ca270c9e95c539c5379e09302ae43256e193d2..9c2de6f9992e4630fa8b4359607973d5
        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 98bc3a82d40f840044a58bcc4b047cf58ea40b09..e11a0a0b8b113c694f9d3fcc284205305d6ba20e 100644
+index 50a583c2bc96aaf04b9dd76c40fb56a3b7be792b..3e8331cb95254076a47f1ec0a259c747e2fa302d 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
 @@ -390,8 +390,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
@@ -316,10 +316,10 @@ index 06d3ed32b65708d91b220cdd4991fd377d84217c..bc942580c1bfb16bc5a8e9168f55626d
        content::RenderFrameHost* opener,
        content::SiteInstance* source_site_instance,
 diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc
-index 4e0a30932581feebd8877eca025961704fa10267..299a64bd0f7a493d1698c71641bf94197d016269 100644
+index 0cb90a5d6891197054ae1311ee6cfea4b3256212..02f37ad519c6c415a5e6b3542707a4d19d5ad4fd 100644
 --- a/fuchsia_web/webengine/browser/frame_impl.cc
 +++ b/fuchsia_web/webengine/browser/frame_impl.cc
-@@ -527,8 +527,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
+@@ -554,8 +554,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
      content::SiteInstance* source_site_instance,
      content::mojom::WindowContainerType window_container_type,
      const GURL& opener_url,
@@ -330,10 +330,10 @@ index 4e0a30932581feebd8877eca025961704fa10267..299a64bd0f7a493d1698c71641bf9419
    // can catch bad client behavior while not interfering with normal operation.
    constexpr size_t kMaxPendingWebContentsCount = 10;
 diff --git a/fuchsia_web/webengine/browser/frame_impl.h b/fuchsia_web/webengine/browser/frame_impl.h
-index 957eef3cbc48c820680b929423bf70a1001c9dc6..6891a43dd610e8f719b5efa2200dafb3d1ffffa7 100644
+index 8bd7e95a4076a3cf3661b3d195075862d8be6a1b..bd0bb18e79b493222ed77816e11565650fbbbbc6 100644
 --- a/fuchsia_web/webengine/browser/frame_impl.h
 +++ b/fuchsia_web/webengine/browser/frame_impl.h
-@@ -302,8 +302,7 @@ class WEB_ENGINE_EXPORT FrameImpl : public fuchsia::web::Frame,
+@@ -295,8 +295,7 @@ class WEB_ENGINE_EXPORT FrameImpl : public fuchsia::web::Frame,
        content::SiteInstance* source_site_instance,
        content::mojom::WindowContainerType window_container_type,
        const GURL& opener_url,
@@ -344,10 +344,10 @@ index 957eef3cbc48c820680b929423bf70a1001c9dc6..6891a43dd610e8f719b5efa2200dafb3
                            int opener_render_process_id,
                            int opener_render_frame_id,
 diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
-index b97e92ed1eedca8a4d76f39e2e948508dc94a17e..106b6d744468c0f28dcc6ba987a93e22835729bd 100644
+index ae34e22643aacc171c40705a7c25ee41dd0ab2a4..e1d22de103ea95b0849588e1ff7a8b3b6b108037 100644
 --- a/headless/lib/browser/headless_web_contents_impl.cc
 +++ b/headless/lib/browser/headless_web_contents_impl.cc
-@@ -182,8 +182,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
+@@ -183,8 +183,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
        content::SiteInstance* source_site_instance,
        content::mojom::WindowContainerType window_container_type,
        const GURL& opener_url,

+ 5 - 5
patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch

@@ -7,7 +7,7 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This
 to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`.
 
 diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
-index 1ad4ef06d2b4bd14f87faa7c1837c3af8bc343f8..b907a05096e7620bd354a7f11406c6fa097c7956 100644
+index ceda3bfeb5897eadd072bf1f06898210329ff5cf..0045b62c2b189308845c470763da7996fd3550e3 100644
 --- a/content/app/content_main_runner_impl.cc
 +++ b/content/app/content_main_runner_impl.cc
 @@ -38,6 +38,7 @@
@@ -17,8 +17,8 @@ index 1ad4ef06d2b4bd14f87faa7c1837c3af8bc343f8..b907a05096e7620bd354a7f11406c6fa
 +#include "base/strings/string_piece.h"
  #include "base/strings/string_number_conversions.h"
  #include "base/strings/string_util.h"
- #include "base/task/thread_pool/thread_pool_instance.h"
-@@ -243,8 +244,13 @@ std::string GetSnapshotDataDescriptor(const base::CommandLine& command_line) {
+ #include "base/task/thread_pool/environment_config.h"
+@@ -245,8 +246,13 @@ std::string GetSnapshotDataDescriptor(const base::CommandLine& command_line) {
  
  #endif
  
@@ -33,7 +33,7 @@ index 1ad4ef06d2b4bd14f87faa7c1837c3af8bc343f8..b907a05096e7620bd354a7f11406c6fa
  #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
    base::FileDescriptorStore& file_descriptor_store =
        base::FileDescriptorStore::GetInstance();
-@@ -273,11 +279,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
+@@ -275,11 +281,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
  
  #endif  // V8_USE_EXTERNAL_STARTUP_DATA
  
@@ -48,7 +48,7 @@ index 1ad4ef06d2b4bd14f87faa7c1837c3af8bc343f8..b907a05096e7620bd354a7f11406c6fa
  #endif  // V8_USE_EXTERNAL_STARTUP_DATA
  }
  
-@@ -939,7 +946,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
+@@ -950,7 +957,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
      return TerminateForFatalInitializationError();
  #endif  // BUILDFLAG(IS_ANDROID) && (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE)
  

+ 4 - 4
patches/chromium/custom_protocols_plzserviceworker.patch

@@ -8,10 +8,10 @@ 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 7822d61c2c8249d5ddfca93abcecf7499b30d3be..fafec85a7825d2f851605af9d3aa278d5f68c790 100644
+index bd15ed3dffe9ad3b8f5fe7478d7f9b5864f2da08..83015cb512c418087c24ce021f00be15276f9711 100644
 --- a/content/browser/service_worker/service_worker_context_wrapper.cc
 +++ b/content/browser/service_worker/service_worker_context_wrapper.cc
-@@ -1711,6 +1711,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
+@@ -1726,6 +1726,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
        loader_factory_bundle_info =
            context()->loader_factory_bundle_for_update_check()->Clone();
  
@@ -38,7 +38,7 @@ index 7822d61c2c8249d5ddfca93abcecf7499b30d3be..fafec85a7825d2f851605af9d3aa278d
    if (auto* config = content::WebUIConfigMap::GetInstance().GetConfig(
            browser_context(), scope_origin)) {
      // If this is a Service Worker for a WebUI, the WebUI's URLDataSource
-@@ -1730,9 +1750,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
+@@ -1745,9 +1765,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
              features::kEnableServiceWorkersForChromeScheme) &&
          scope.scheme_piece() == kChromeUIScheme) {
        config->RegisterURLDataSource(browser_context());
@@ -49,7 +49,7 @@ index 7822d61c2c8249d5ddfca93abcecf7499b30d3be..fafec85a7825d2f851605af9d3aa278d
            .emplace(kChromeUIScheme, CreateWebUIServiceWorkerLoaderFactory(
                                          browser_context(), kChromeUIScheme,
                                          base::flat_set<std::string>()));
-@@ -1740,9 +1758,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
+@@ -1755,9 +1773,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
                     features::kEnableServiceWorkersForChromeUntrusted) &&
                 scope.scheme_piece() == kChromeUIUntrustedScheme) {
        config->RegisterURLDataSource(browser_context());

+ 9 - 9
patches/chromium/disable_color_correct_rendering.patch

@@ -20,10 +20,10 @@ to deal with color spaces. That is being tracked at
 https://crbug.com/634542 and https://crbug.com/711107.
 
 diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
-index a236d3c2bbd60778a443e461c6f9bbf813871404..720d34764c0f38a85c1c8e6ad72625abe3b3ed7f 100644
+index d30995ca9be05437053cf1ffd512f8f234b2a0a5..b43e4528efd7d9b8fca9f76038ebe3aeeb730d35 100644
 --- a/cc/trees/layer_tree_host_impl.cc
 +++ b/cc/trees/layer_tree_host_impl.cc
-@@ -1929,6 +1929,10 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw(
+@@ -1898,6 +1898,10 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw(
  TargetColorParams LayerTreeHostImpl::GetTargetColorParams(
      gfx::ContentColorUsage content_color_usage) const {
    TargetColorParams params;
@@ -35,7 +35,7 @@ index a236d3c2bbd60778a443e461c6f9bbf813871404..720d34764c0f38a85c1c8e6ad72625ab
    // If we are likely to software composite the resource, we use sRGB because
    // software compositing is unable to perform color conversion.
 diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
-index 0df77c20339a87dd881e89eda88d16adca9f5067..2242d58ac828affc1361b9a5745b4695e2643140 100644
+index 012e0f781d21b96890b88e0bc2cb2d46cb1e3829..e74783c3f8003d87fbb343087a83da3cb2b06ab3 100644
 --- a/cc/trees/layer_tree_settings.h
 +++ b/cc/trees/layer_tree_settings.h
 @@ -96,6 +96,8 @@ class CC_EXPORT LayerTreeSettings {
@@ -81,7 +81,7 @@ index c7ca2458708dd9577afdaef7fbcafaaa68046904..c4a1f1368ef053830c86cf86c3bec7ce
        !command_line->HasSwitch(switches::kUIDisablePartialSwap);
  
 diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
-index 3ce52a7866c1ce6fe92fa8a9e080f5d49ac5bd9c..dc1ab6a8f6f2bf181c2f3ba4610354543171a57b 100644
+index 63f23b35b40b2249dd9a37f51aedc9079ce8651e..65126f81ea743cb3a4a4d9648e970b89dec0e83c 100644
 --- a/content/browser/gpu/gpu_process_host.cc
 +++ b/content/browser/gpu/gpu_process_host.cc
 @@ -228,6 +228,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
@@ -93,7 +93,7 @@ index 3ce52a7866c1ce6fe92fa8a9e080f5d49ac5bd9c..dc1ab6a8f6f2bf181c2f3ba461035454
      sandbox::policy::switches::kGpuSandboxAllowSysVShm,
      sandbox::policy::switches::kGpuSandboxFailuresFatal,
 diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
-index 3a01f5af5f1a821f9c62a3a57adbc24a1f1b9946..9ed728f88f66e9e453afde7af1c157e580d2b829 100644
+index 0180545ab00c5c979e4208c8823d51d6fc601713..51f49c38a94d51a6806cdafc2436a77985709d75 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -201,6 +201,7 @@
@@ -104,7 +104,7 @@ index 3a01f5af5f1a821f9c62a3a57adbc24a1f1b9946..9ed728f88f66e9e453afde7af1c157e5
  #include "ui/gl/gl_switches.h"
  #include "url/gurl.h"
  #include "url/origin.h"
-@@ -3292,6 +3293,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3291,6 +3292,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
    // Propagate the following switches to the renderer command line (along
    // with any associated values) if present in the browser command line.
    static const char* const kSwitchNames[] = {
@@ -156,10 +156,10 @@ index 318005b66e04ed03ce6d44931d9360c0e009cb94..0d622fddb95720141ccf8a285ace4714
  }
  
 diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
-index 047a135027e0df7949285ed9b9b44a41321cdb8c..8a43082138acc82f97c293a195fae3a770e4063a 100644
+index 284cc1a6369e8fecce41f94643b77be7abbf25b0..d331a4bbe7fec9a870e84b7ed96048e2d0ab6b90 100644
 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
 +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc
-@@ -26,6 +26,7 @@
+@@ -25,6 +25,7 @@
  #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
  #include "ui/base/ui_base_features.h"
  #include "ui/base/ui_base_switches.h"
@@ -167,7 +167,7 @@ index 047a135027e0df7949285ed9b9b44a41321cdb8c..8a43082138acc82f97c293a195fae3a7
  #include "ui/native_theme/native_theme_features.h"
  #include "ui/native_theme/overlay_scrollbar_constants_aura.h"
  
-@@ -218,6 +219,9 @@ cc::LayerTreeSettings GenerateLayerTreeSettings(
+@@ -217,6 +218,9 @@ cc::LayerTreeSettings GenerateLayerTreeSettings(
    settings.main_frame_before_activation_enabled =
        cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation);
  

+ 4 - 4
patches/chromium/disable_hidden.patch

@@ -6,7 +6,7 @@ Subject: disable_hidden.patch
 Electron uses this to disable background throttling for hidden windows.
 
 diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
-index 0e38398b3e3edda46d4300881ca4e14065b4afe7..6ae9753ee4fb1422cf9ba1866b40bcd5e6a7daad 100644
+index 3a78d977e8a50a15ca56bed73820d243fdc71485..46dd74c7d310c779a3ff10a0bae3368b92f5d90a 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
 @@ -822,6 +822,9 @@ void RenderWidgetHostImpl::WasHidden() {
@@ -20,10 +20,10 @@ index 0e38398b3e3edda46d4300881ca4e14065b4afe7..6ae9753ee4fb1422cf9ba1866b40bcd5
        blink::mojom::PointerLockResult::kWrongDocument);
  
 diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
-index e89b0941d0bf137a84c568799f9bdc6f28bb5e83..3ef64d8db071ea55db79af8c3d1c8b3c011e1a66 100644
+index fdf7f8ff369bb78f6c79b33f7be12ef4e9b996ca..540386179daaab7d1e6f3b61e7b22579893adce7 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.h
 +++ b/content/browser/renderer_host/render_widget_host_impl.h
-@@ -895,6 +895,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl
+@@ -896,6 +896,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl
    void UpdateBrowserControlsState(cc::BrowserControlsState constraints,
                                    cc::BrowserControlsState current,
                                    bool animate);
@@ -33,7 +33,7 @@ index e89b0941d0bf137a84c568799f9bdc6f28bb5e83..3ef64d8db071ea55db79af8c3d1c8b3c
   protected:
    // |routing_id| must not be MSG_ROUTING_NONE.
 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 e4b6563f2bcdf3c42c6ec8d21b9e261082f7de8e..709c22e15dba95ff07907d86fa7439179e5134eb 100644
+index eda6f1877aaf8b947b4ace8a0a41d26fc28c027b..3b5725d75fa45848e4d4f258b7e83dfb9401a6f4 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -604,7 +604,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 327cec20d1930ce3a5b02bcac01bb8c406c3c5ba..70ea281002426c5436b76c867f2295d97f3d5cdd 100644
+index 27ecc1fd252b2e983859355843af90080a220ac6..182aabcfe045d35e9068b956b3665464e2eaf1ff 100644
 --- a/content/browser/renderer_host/navigator.cc
 +++ b/content/browser/renderer_host/navigator.cc
-@@ -1255,6 +1255,7 @@ void Navigator::RecordNavigationMetrics(
+@@ -1253,6 +1253,7 @@ void Navigator::RecordNavigationMetrics(
              .InMilliseconds());
    }
  
@@ -35,7 +35,7 @@ index 327cec20d1930ce3a5b02bcac01bb8c406c3c5ba..70ea281002426c5436b76c867f2295d9
    // 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 &&
-@@ -1305,6 +1306,7 @@ void Navigator::RecordNavigationMetrics(
+@@ -1303,6 +1304,7 @@ void Navigator::RecordNavigationMetrics(
           first_before_unload_start_time)
              .InMilliseconds());
    }

+ 2 - 2
patches/chromium/enable_reset_aspect_ratio.patch

@@ -19,10 +19,10 @@ index ceee9102cf0213163eff1528d846d87eace30f20..061c7ea5dbf60c3303b214ac3781bbef
                                     aspect_ratio.height());
  }
 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
-index 8fd2d52e93d4c106f768da03bc1cb482768786d2..2a60a66682224b5eee4f4c9f57d6a27ca11ed59d 100644
+index f8a5b92ae541acedcf8e1670957cca05f4f4e128..17524b8978f41f015cfb6fe352c01d1caf78b458 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -1001,8 +1001,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen,
+@@ -1021,8 +1021,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen,
  }
  
  void HWNDMessageHandler::SetAspectRatio(float aspect_ratio) {

+ 2 - 2
patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch

@@ -21,10 +21,10 @@ index c4f2df96133012faebec25ac3a738c34cd6b4cf8..1b0333b2efe05a659e161f28ce6c01e5
    v8::ZoneBackingAllocator* GetZoneBackingAllocator() override;
  #endif
 diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc
-index 37970ebe4d94443aff2953dd2d0ec9e6b2fa8a9d..ff5c93d902335d554a0e4c4fad1e39d84965a3b5 100644
+index d045398533be9cd95027acc34732294e06d1420b..76073b9d22d2db3fd8170da223ec913275ce0030 100644
 --- a/gin/v8_platform.cc
 +++ b/gin/v8_platform.cc
-@@ -368,6 +368,10 @@ PageAllocator* V8Platform::GetPageAllocator() {
+@@ -370,6 +370,10 @@ PageAllocator* V8Platform::GetPageAllocator() {
    return g_page_allocator.Pointer();
  }
  

+ 7 - 7
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 4a30886a5825798326d3a8a8b62aa0027a2bebd0..a9b76847c7222c7c57a6512773bdf7dad075faa8 100644
+index f5e867b3386d8e779a72912e6377f890db125a98..153267357663d71eca6b0217efe77ff4b4a6cbcd 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -1423,6 +1423,13 @@ void NetworkContext::SetNetworkConditions(
+@@ -1389,6 +1389,13 @@ void NetworkContext::SetNetworkConditions(
                                        std::move(network_conditions));
  }
  
@@ -51,10 +51,10 @@ index 4a30886a5825798326d3a8a8b62aa0027a2bebd0..a9b76847c7222c7c57a6512773bdf7da
    // 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 7facbaf42e2538f8f7a78a2f7e87c3ac27fed61c..dcb5439f8d88372789b452c92798aaf67f7706a8 100644
+index a4761de728313be1f91ff748f572c42f08b35b72..783866c93bc76a286420f2e4cc5331c92fea0621 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
-@@ -303,6 +303,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -301,6 +301,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    void CloseIdleConnections(CloseIdleConnectionsCallback callback) override;
    void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id,
                              mojom::NetworkConditionsPtr conditions) override;
@@ -63,10 +63,10 @@ index 7facbaf42e2538f8f7a78a2f7e87c3ac27fed61c..dcb5439f8d88372789b452c92798aaf6
    void SetEnableReferrers(bool enable_referrers) override;
    void SetEnablePreconnect(bool enable_preconnect) override;
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index 719778de586761f13b3d31a3ef5e963ae21e8dcd..74ccadf2ce72a76e89a56e4e815961be32aefd2e 100644
+index 28745d0a28062fba30f31342c430524aab6a2a4a..bd15f0c63b7c435910ca10e72d5311a5ae3f923c 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -1122,6 +1122,9 @@ interface NetworkContext {
+@@ -1108,6 +1108,9 @@ interface NetworkContext {
    SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
                         NetworkConditions? conditions);
  
@@ -77,7 +77,7 @@ index 719778de586761f13b3d31a3ef5e963ae21e8dcd..74ccadf2ce72a76e89a56e4e815961be
    SetAcceptLanguage(string new_accept_language);
  
 diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
-index fb185c14365680e9b34b40739ffa969f806178ac..2a8e6b85ca16653c180064597c2c0932334bc946 100644
+index 9e757600c4a9e4cac9bfafc7393b20188efc2a5a..dafff85abaa9776de271822ff13da2bdbdce7a0d 100644
 --- a/services/network/test/test_network_context.h
 +++ b/services/network/test/test_network_context.h
 @@ -136,6 +136,7 @@ class TestNetworkContext : public mojom::NetworkContext {

+ 1 - 1
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 db53f78f371f5d7e76ce0844d7b3cb3c912af4e8..41d0da28ce21f25d685dd57cc36c7a2efeff61e2 100644
+index 490a381e1afd0a175cd1ca12926a21278c051712..66dabaf4f57ede27416b7f14fa30e652a056fefc 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
 @@ -164,6 +164,7 @@

+ 5 - 5
patches/chromium/feat_configure_launch_options_for_service_process.patch

@@ -18,7 +18,7 @@ to STDOUT_FILENO/STD_OUTPUT_HANDLE and STDERR_FILENO/STD_ERROR_HANDLE allowing t
 parent process to read from the pipe.
 
 diff --git a/content/browser/child_process_launcher.h b/content/browser/child_process_launcher.h
-index ba1f0d6e958cdb534b8af7717a0d6d8f2ee296bf..626f771ffbd88f1cf2e9475b745456f98575cda1 100644
+index 626108008f8358ac6006b9161c544199d15dcec7..0b379093357ddd9261f4c33fa6bdba322d06a32f 100644
 --- a/content/browser/child_process_launcher.h
 +++ b/content/browser/child_process_launcher.h
 @@ -31,6 +31,7 @@
@@ -42,7 +42,7 @@ index ba1f0d6e958cdb534b8af7717a0d6d8f2ee296bf..626f771ffbd88f1cf2e9475b745456f9
    // in the child process.
    // Currently only supported on Linux, ChromeOS and Android platforms.
 diff --git a/content/browser/child_process_launcher_helper_linux.cc b/content/browser/child_process_launcher_helper_linux.cc
-index cfadd28fca9f80bf57578db78d5472c4f75414e1..4925dc5cafbf312c3c9640d5873d62193e87f636 100644
+index 008ba5bef67adbd166919ca4708452faa4bb85b5..c1de4bba95c862cc38589efd503c0392f7c9e8d2 100644
 --- a/content/browser/child_process_launcher_helper_linux.cc
 +++ b/content/browser/child_process_launcher_helper_linux.cc
 @@ -73,7 +73,9 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
@@ -56,10 +56,10 @@ index cfadd28fca9f80bf57578db78d5472c4f75414e1..4925dc5cafbf312c3c9640d5873d6219
    return true;
  }
 diff --git a/content/browser/child_process_launcher_helper_mac.cc b/content/browser/child_process_launcher_helper_mac.cc
-index d74a40c0e5731281b132cc1c3dc2416f9dc2b083..dd8a9d35af617441c6643ed643b459a35b612969 100644
+index faddc7a513b0c36fb1ef1b109e412f1e02e5e9e4..7a58d41af76196ba8249bb4d2cd09f22cc86f643 100644
 --- a/content/browser/child_process_launcher_helper_mac.cc
 +++ b/content/browser/child_process_launcher_helper_mac.cc
-@@ -73,7 +73,8 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
+@@ -117,7 +117,8 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
        'mojo', base::MachRendezvousPort(endpoint.TakeMachReceiveRight())));
  
    options->environment = delegate_->GetEnvironment();
@@ -70,7 +70,7 @@ index d74a40c0e5731281b132cc1c3dc2416f9dc2b083..dd8a9d35af617441c6643ed643b459a3
    options->enable_cpu_security_mitigations =
        delegate_->EnableCpuSecurityMitigations();
 diff --git a/content/browser/child_process_launcher_helper_win.cc b/content/browser/child_process_launcher_helper_win.cc
-index 799ad0a6e0b5c629d10f481d10dd4d6959d40b42..13c610ae1bb24fb6d274a082562dcd103df50513 100644
+index a3e04a976baf80cfa36ad14ddec29ccae543e398..a5f2f5ca05edd9d39c8bb5d6a29b54ff53a9640d 100644
 --- a/content/browser/child_process_launcher_helper_win.cc
 +++ b/content/browser/child_process_launcher_helper_win.cc
 @@ -19,6 +19,8 @@

+ 25 - 20
patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch

@@ -231,10 +231,10 @@ index b09785bfc8143c355e75d473a9a25b2e355c97a0..a6cd4e2399b1b17bad00c9e6f6520819
  
 diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc
 new file mode 100644
-index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a5295ac79bf
+index 0000000000000000000000000000000000000000..4857347fd0654a46be42fbda45036760eb51177d
 --- /dev/null
 +++ b/components/viz/service/display_embedder/software_output_device_proxy.cc
-@@ -0,0 +1,158 @@
+@@ -0,0 +1,160 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
@@ -269,7 +269,7 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +}
 +
 +void SoftwareOutputDeviceBase::Resize(const gfx::Size& viewport_pixel_size,
-+                                         float scale_factor) {
++                                      float scale_factor) {
 +  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 +  DCHECK(!in_paint_);
 +
@@ -280,8 +280,7 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +  ResizeDelegated();
 +}
 +
-+SkCanvas* SoftwareOutputDeviceBase::BeginPaint(
-+    const gfx::Rect& damage_rect) {
++SkCanvas* SoftwareOutputDeviceBase::BeginPaint(const gfx::Rect& damage_rect) {
 +  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 +  DCHECK(!in_paint_);
 +
@@ -313,12 +312,14 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +}
 +
 +void SoftwareOutputDeviceProxy::OnSwapBuffers(
-+    SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback) {
++    SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback,
++    gl::FrameData data) {
 +  DCHECK(swap_ack_callback_.is_null());
 +
 +  // We aren't waiting on DrawAck() and can immediately run the callback.
 +  if (!waiting_on_draw_ack_) {
-+    task_runner_->PostTask(FROM_HERE,
++    task_runner_->PostTask(
++        FROM_HERE,
 +        base::BindOnce(std::move(swap_ack_callback), viewport_pixel_size_));
 +    return;
 +  }
@@ -343,11 +344,11 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +    return;
 +  }
 +
-+  #if defined(WIN32)
++#if defined(WIN32)
 +  canvas_ = skia::CreatePlatformCanvasWithSharedSection(
 +      viewport_pixel_size_.width(), viewport_pixel_size_.height(), false,
 +      region.GetPlatformHandle(), skia::CRASH_ON_FAILURE);
-+  #else
++#else
 +  shm_mapping_ = region.Map();
 +  if (!shm_mapping_.IsValid()) {
 +    DLOG(ERROR) << "Failed to map " << required_bytes << " bytes";
@@ -357,7 +358,7 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +  canvas_ = skia::CreatePlatformCanvasWithPixels(
 +      viewport_pixel_size_.width(), viewport_pixel_size_.height(), false,
 +      static_cast<uint8_t*>(shm_mapping_.memory()), skia::CRASH_ON_FAILURE);
-+  #endif
++#endif
 +
 +  // Transfer region ownership to the browser process.
 +  layered_window_updater_->OnAllocatedSharedMemory(viewport_pixel_size_,
@@ -375,8 +376,9 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +  if (!canvas_)
 +    return;
 +
-+  layered_window_updater_->Draw(damage_rect, base::BindOnce(
-+      &SoftwareOutputDeviceProxy::DrawAck, base::Unretained(this)));
++  layered_window_updater_->Draw(
++      damage_rect, base::BindOnce(&SoftwareOutputDeviceProxy::DrawAck,
++                                  base::Unretained(this)));
 +  waiting_on_draw_ack_ = true;
 +
 +  TRACE_EVENT_ASYNC_BEGIN0("viz", "SoftwareOutputDeviceProxy::Draw", this);
@@ -395,10 +397,10 @@ index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a52
 +}  // namespace viz
 diff --git a/components/viz/service/display_embedder/software_output_device_proxy.h b/components/viz/service/display_embedder/software_output_device_proxy.h
 new file mode 100644
-index 0000000000000000000000000000000000000000..daeabe1906b177adfe56b8057a72afb33269f976
+index 0000000000000000000000000000000000000000..3a60871d510b5c6272da191b6885596ac0e25f96
 --- /dev/null
 +++ b/components/viz/service/display_embedder/software_output_device_proxy.h
-@@ -0,0 +1,95 @@
+@@ -0,0 +1,98 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
@@ -466,10 +468,13 @@ index 0000000000000000000000000000000000000000..daeabe1906b177adfe56b8057a72afb3
 +  ~SoftwareOutputDeviceProxy() override;
 +
 +  SoftwareOutputDeviceProxy(const SoftwareOutputDeviceProxy&) = delete;
-+  SoftwareOutputDeviceProxy& operator=(const SoftwareOutputDeviceProxy&) = delete;
++  SoftwareOutputDeviceProxy& operator=(const SoftwareOutputDeviceProxy&) =
++      delete;
 +
 +  // SoftwareOutputDevice implementation.
-+  void OnSwapBuffers(SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback) override;
++  void OnSwapBuffers(
++      SoftwareOutputDevice::SwapBuffersCallback swap_ack_callback,
++      gl::FrameData data) override;
 +
 +  // SoftwareOutputDeviceBase implementation.
 +  void ResizeDelegated() override;
@@ -495,10 +500,10 @@ index 0000000000000000000000000000000000000000..daeabe1906b177adfe56b8057a72afb3
 +
 +#endif  // COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SOFTWARE_OUTPUT_DEVICE_PROXY_H_
 diff --git a/components/viz/service/display_embedder/software_output_device_win.cc b/components/viz/service/display_embedder/software_output_device_win.cc
-index aedc4d24d3fb3624b27eadb9b234b77291bb47b5..c5108b0d6bce4e268979f5541929c687712a9669 100644
+index de5825e251f3bda0142aca0f88d08d4d93714a56..841c8af08410b2909392745afe24d38573e6627b 100644
 --- a/components/viz/service/display_embedder/software_output_device_win.cc
 +++ b/components/viz/service/display_embedder/software_output_device_win.cc
-@@ -191,7 +191,7 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
+@@ -192,7 +192,7 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
    if (!canvas_)
      return;
  
@@ -578,7 +583,7 @@ index 2f462f0deb5fc8a637457243fb5d5849fc214d14..695869b83cefaa24af93a2e11b39de05
 +  Draw(gfx.mojom.Rect damage_rect) => ();
  };
 diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
-index eb6bcc2e265a91acaace530b04fc2f820e80baa6..99099716bcfaffc85b6dfed028709950ba061a96 100644
+index 5a9fd7f1bcae34d29065e63ac5b8ca11a805d6f4..d82ef7bd3908273d46380fb3b536fe87b8d640eb 100644
 --- a/ui/compositor/compositor.h
 +++ b/ui/compositor/compositor.h
 @@ -87,6 +87,7 @@ class DisplayPrivate;
@@ -616,7 +621,7 @@ index eb6bcc2e265a91acaace530b04fc2f820e80baa6..99099716bcfaffc85b6dfed028709950
    // Sets the root of the layer tree drawn by this Compositor. The root layer
    // must have no parent. The compositor's root layer is reset if the root layer
    // is destroyed. NULL can be passed to reset the root layer, in which case the
-@@ -496,6 +510,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
+@@ -497,6 +511,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
  
    std::unique_ptr<PendingBeginFrameArgs> pending_begin_frame_args_;
  

+ 15 - 15
patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch

@@ -17,10 +17,10 @@ headers, moving forward we should find a way in upstream to provide
 access to these headers for loader clients created on the browser process.
 
 diff --git a/services/network/public/cpp/resource_request.cc b/services/network/public/cpp/resource_request.cc
-index 65921550e62dbcd79f77192951b95991c3e904a1..c45a2a8c5adf3df78b4e4c4c0d4d945ade2a6826 100644
+index d2dd33303bfbfe4bfa9c65d8275d6be2f10614a2..49f5958ed8e83a599300b929bebfd96af08f0508 100644
 --- a/services/network/public/cpp/resource_request.cc
 +++ b/services/network/public/cpp/resource_request.cc
-@@ -234,6 +234,7 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
+@@ -236,6 +236,7 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
           do_not_prompt_for_login == request.do_not_prompt_for_login &&
           is_outermost_main_frame == request.is_outermost_main_frame &&
           transition_type == request.transition_type &&
@@ -29,10 +29,10 @@ index 65921550e62dbcd79f77192951b95991c3e904a1..c45a2a8c5adf3df78b4e4c4c0d4d945a
           upgrade_if_insecure == request.upgrade_if_insecure &&
           is_revalidating == request.is_revalidating &&
 diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h
-index b3ff3cc494d5d63ed0af9745131cfd52da12cd43..9bd521e08540102e992423cb0a6eacbfc514f03b 100644
+index a97f7c4b7cdd39c42344d3f1d85104dac1ea113f..1274d659800656cd94cb55fa5877460eb896d73f 100644
 --- a/services/network/public/cpp/resource_request.h
 +++ b/services/network/public/cpp/resource_request.h
-@@ -160,6 +160,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest {
+@@ -161,6 +161,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest {
    bool do_not_prompt_for_login = false;
    bool is_outermost_main_frame = false;
    int transition_type = 0;
@@ -41,10 +41,10 @@ index b3ff3cc494d5d63ed0af9745131cfd52da12cd43..9bd521e08540102e992423cb0a6eacbf
    bool upgrade_if_insecure = false;
    bool is_revalidating = false;
 diff --git a/services/network/public/cpp/url_request_mojom_traits.cc b/services/network/public/cpp/url_request_mojom_traits.cc
-index 1702f66d2ec0871f15e475ae3901b48637140d59..9b4370d6c0e08662fac1892217e28f142c983576 100644
+index 157837198d38f9fe0212582ed0db352daf06cd4f..610b7875dedc10c724dcc87c3a557ba551a6fb2e 100644
 --- a/services/network/public/cpp/url_request_mojom_traits.cc
 +++ b/services/network/public/cpp/url_request_mojom_traits.cc
-@@ -210,6 +210,7 @@ bool StructTraits<
+@@ -211,6 +211,7 @@ bool StructTraits<
    out->do_not_prompt_for_login = data.do_not_prompt_for_login();
    out->is_outermost_main_frame = data.is_outermost_main_frame();
    out->transition_type = data.transition_type();
@@ -53,10 +53,10 @@ index 1702f66d2ec0871f15e475ae3901b48637140d59..9b4370d6c0e08662fac1892217e28f14
    out->upgrade_if_insecure = data.upgrade_if_insecure();
    out->is_revalidating = data.is_revalidating();
 diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h
-index af527034303f0660934d50a441fa178ddaeca475..65e0719fef13fbf730d74f9982d1b54d741a60fd 100644
+index f90223417ecfd8e6c63255bfd75f2223f4623e28..23d1bc8783189115fbcc66d05b7907c77383bae4 100644
 --- a/services/network/public/cpp/url_request_mojom_traits.h
 +++ b/services/network/public/cpp/url_request_mojom_traits.h
-@@ -272,6 +272,9 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
+@@ -276,6 +276,9 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
    static int32_t transition_type(const network::ResourceRequest& request) {
      return request.transition_type;
    }
@@ -67,10 +67,10 @@ index af527034303f0660934d50a441fa178ddaeca475..65e0719fef13fbf730d74f9982d1b54d
      return request.previews_state;
    }
 diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom
-index bf3c8e3dc4d15d33118144f801b661fed667a5ba..733bb2b2b20094520c3e944288dfa01dad01ebc5 100644
+index 0363f3db4f5d81edb96cc6a4e0b61a4a70d37802..6be59cfc0288f017e39024acd530efb9a0b88075 100644
 --- a/services/network/public/mojom/url_request.mojom
 +++ b/services/network/public/mojom/url_request.mojom
-@@ -317,6 +317,9 @@ struct URLRequest {
+@@ -332,6 +332,9 @@ struct URLRequest {
    // about this.
    int32 transition_type;
  
@@ -103,10 +103,10 @@ index f4cbafde0cfa92e3e93f5480242025b3d5c822c4..73a7a02a224a4737c4f7a97a98a73e7f
    string mime_type;
  
 diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
-index 023729747d16816a6ba38159ace5ab1ec7bb2db5..93b14019539c3527cd7f119093bb16e47186f060 100644
+index 0e035229187f521a27ad48c5cb6ec25222978381..02d1abbba15ffd3b206ce2ba3c248840a7da5f9c 100644
 --- a/services/network/url_loader.cc
 +++ b/services/network/url_loader.cc
-@@ -463,6 +463,7 @@ URLLoader::URLLoader(
+@@ -514,6 +514,7 @@ URLLoader::URLLoader(
            mojo::SimpleWatcher::ArmingPolicy::MANUAL,
            base::SequencedTaskRunner::GetCurrentDefault()),
        per_factory_corb_state_(context.GetMutableCorbState()),
@@ -114,7 +114,7 @@ index 023729747d16816a6ba38159ace5ab1ec7bb2db5..93b14019539c3527cd7f119093bb16e4
        devtools_request_id_(request.devtools_request_id),
        request_mode_(request.mode),
        request_credentials_mode_(request.credentials_mode),
-@@ -645,7 +646,7 @@ URLLoader::URLLoader(
+@@ -701,7 +702,7 @@ URLLoader::URLLoader(
    url_request_->SetRequestHeadersCallback(base::BindRepeating(
        &URLLoader::SetRawRequestHeadersAndNotify, base::Unretained(this)));
  
@@ -123,7 +123,7 @@ index 023729747d16816a6ba38159ace5ab1ec7bb2db5..93b14019539c3527cd7f119093bb16e4
      url_request_->SetResponseHeadersCallback(base::BindRepeating(
          &URLLoader::SetRawResponseHeaders, base::Unretained(this)));
    }
-@@ -1430,6 +1431,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
+@@ -1506,6 +1507,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
    }
  
    response_ = BuildResponseHead();
@@ -144,7 +144,7 @@ index 023729747d16816a6ba38159ace5ab1ec7bb2db5..93b14019539c3527cd7f119093bb16e4
  
    // 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 766c64384d49e04c7d09e79d01c803b39cadfbf7..151443796c915319c9fb09c1c4fd18181b9c9bad 100644
+index f3debcea0c6fa85ba5f24824edb198d99082d51a..a7fd51f9d5e111060889fe631b4fcc65937623de 100644
 --- a/services/network/url_loader.h
 +++ b/services/network/url_loader.h
 @@ -505,6 +505,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader

+ 2 - 2
patches/chromium/feat_filter_out_non-shareable_windows_in_the_current_application_in.patch

@@ -7,10 +7,10 @@ Subject: feat: filter out non-shareable windows in the current application in
 This patch ensures that windows protected via win.setContentProtection(true) do not appear in full display captures via desktopCapturer.  This patch could be upstreamed but as the check is limited to in-process windows it doesn't make a lot of sense for Chromium itself.  This patch currently has a limitation that it only function for windows created / protected BEFORE the stream is started.  There is theoretical future work we can do via polling / observers to automatically update the SCContentFilter when new windows are made but for now this will solve 99+% of the problem and folks can re-order their logic a bit to get it working for their use cases.
 
 diff --git a/content/browser/media/capture/screen_capture_kit_device_mac.mm b/content/browser/media/capture/screen_capture_kit_device_mac.mm
-index 6627c8624ba30db01fc3dbcfbc13b4e2ad81e7f4..4476841eed6a4748949fa0a6659a7627da53a136 100644
+index 476a8e61258d3786eaea6f00a3a9dee37ee575ba..ddf17127c4273f440400bd2b04cfce00d94551cb 100644
 --- a/content/browser/media/capture/screen_capture_kit_device_mac.mm
 +++ b/content/browser/media/capture/screen_capture_kit_device_mac.mm
-@@ -149,7 +149,15 @@ void OnShareableContentCreated(
+@@ -156,7 +156,15 @@ void OnShareableContentCreated(
        case DesktopMediaID::TYPE_SCREEN:
          for (SCDisplay* display : [content displays]) {
            if (source_.id == [display displayID]) {

+ 1 - 1
patches/chromium/fix_add_check_for_sandbox_then_result.patch

@@ -8,7 +8,7 @@ patch and doing further investigation in the future.  This patch cannot
 be upstreamed.
 
 diff --git a/sandbox/linux/bpf_dsl/bpf_dsl.cc b/sandbox/linux/bpf_dsl/bpf_dsl.cc
-index 6bb9ba9623e042c25fa74e64e0fa1bc32f8f5331..b7dced446865236490c8a0b3646f8e0026b95b71 100644
+index 2173963d78928b56b864c451e1c091805fbee673..9c4d0c1a1712a07842112952d9a3a6a84aebd36a 100644
 --- a/sandbox/linux/bpf_dsl/bpf_dsl.cc
 +++ b/sandbox/linux/bpf_dsl/bpf_dsl.cc
 @@ -321,6 +321,7 @@ Elser::~Elser() {

+ 2 - 2
patches/chromium/fix_allow_guest_webcontents_to_enter_fullscreen.patch

@@ -6,10 +6,10 @@ Subject: fix: allow guest webcontents to enter fullscreen
 This can be upstreamed, a guest webcontents can't technically become the focused webContents. This DCHECK should allow all guest webContents to request fullscreen entrance.
 
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 365ced6607b030c59d468e391b91a890560b8b03..18b791d840040c475851af80f876d538aa4261d2 100644
+index 183f423ae81c5aa8859bd118970d1b591dcffcc2..38eabadbda94b61a7fdf52cdfefaaccda3550aa9 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3475,7 +3475,7 @@ void WebContentsImpl::EnterFullscreenMode(
+@@ -3551,7 +3551,7 @@ void WebContentsImpl::EnterFullscreenMode(
    OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
    DCHECK(CanEnterFullscreenMode(requesting_frame, options));
    DCHECK(requesting_frame->IsActive());

+ 2 - 2
patches/chromium/fix_aspect_ratio_with_max_size.patch

@@ -11,10 +11,10 @@ enlarge window above dimensions set during creation of the
 BrowserWindow.
 
 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
-index 2a60a66682224b5eee4f4c9f57d6a27ca11ed59d..84a21d19b60c0d159f09a945a6ce3c06ba6ef07c 100644
+index 17524b8978f41f015cfb6fe352c01d1caf78b458..454c821a545dbb1d3eed32ec9317819b22bba007 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -3703,6 +3703,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param,
+@@ -3723,6 +3723,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param,
    delegate_->GetMinMaxSize(&min_window_size, &max_window_size);
    min_window_size = delegate_->DIPToScreenSize(min_window_size);
    max_window_size = delegate_->DIPToScreenSize(max_window_size);

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

@@ -17,10 +17,10 @@ policy->CanCommitOriginAndUrl.
 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 6a4ec58bb50bae8fd65057c1fccd3c45647ec15e..21e922ad0092988b170070a1324fe6a18f574723 100644
+index 757b9988ce106a3831d0c5265d720693ddc45837..8a2fe17e0a6a938071585acb57933efa05b0e535 100644
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -6731,10 +6731,11 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
+@@ -6830,10 +6830,11 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
    if (IsForMhtmlSubframe())
      return origin_with_debug_info;
  
@@ -37,10 +37,10 @@ index 6a4ec58bb50bae8fd65057c1fccd3c45647ec15e..21e922ad0092988b170070a1324fe6a1
  }
  
 diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h
-index 2ba5f3353251ead1d5db21b2ff8c276b489ae2dd..edc8e9f407879f5fc462faa7329b5cb2b719ecfc 100644
+index 7161dedfe944dd2d9d7bed7f1430eb4ef5eee59a..66c3940fdef76ea65d7ae6c48376295436ae8690 100644
 --- a/content/browser/renderer_host/render_frame_host_impl.h
 +++ b/content/browser/renderer_host/render_frame_host_impl.h
-@@ -2767,6 +2767,17 @@ class CONTENT_EXPORT RenderFrameHostImpl
+@@ -2759,6 +2759,17 @@ class CONTENT_EXPORT RenderFrameHostImpl
      user_activation_state_.Activate(notification_type);
    }
  
@@ -58,7 +58,7 @@ index 2ba5f3353251ead1d5db21b2ff8c276b489ae2dd..edc8e9f407879f5fc462faa7329b5cb2
   protected:
    friend class RenderFrameHostFactory;
  
-@@ -3081,17 +3092,6 @@ class CONTENT_EXPORT RenderFrameHostImpl
+@@ -3073,17 +3084,6 @@ class CONTENT_EXPORT RenderFrameHostImpl
    // relevant.
    void ResetWaitingState();
  

+ 1 - 1
patches/chromium/fix_crash_when_saving_edited_pdf_files.patch

@@ -13,7 +13,7 @@ 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 cedb526bf10aa6ad93baa79be0f49cde2b0fdae4..d22e9014af110d927489c93140f21f07bf03c6c1 100644
+index 6d2e7f812c5ac05153fdaa3634470c7e2e22cc82..8d7fe24747984e1ac2a2b74c180f18df1427535f 100644
 --- a/chrome/browser/resources/pdf/pdf_viewer.ts
 +++ b/chrome/browser/resources/pdf/pdf_viewer.ts
 @@ -879,26 +879,12 @@ export class PdfViewerElement extends PdfViewerBaseElement {

+ 4 - 4
patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch

@@ -8,10 +8,10 @@ we invoke it in order to expose contents.decrementCapturerCount([stayHidden, sta
 to users. We should try to upstream this.
 
 diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
-index 821fc2b85a243bff7e55addd06003df0b8cdaf5a..55a81ecf3339a460a6a5407b41d99060a80e7e2b 100644
+index c169e05bb9ec141d158b074e149a4167377a4963..d0be4584d914957046bccb5e2dac586c2232e303 100644
 --- a/content/browser/web_contents/web_contents_impl.h
 +++ b/content/browser/web_contents/web_contents_impl.h
-@@ -1865,7 +1865,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+@@ -1863,7 +1863,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
    // IncrementCapturerCount() is destructed.
    void DecrementCapturerCount(bool stay_hidden,
                                bool stay_awake,
@@ -21,10 +21,10 @@ index 821fc2b85a243bff7e55addd06003df0b8cdaf5a..55a81ecf3339a460a6a5407b41d99060
    // Calculates the PageVisibilityState for |visibility|, taking the capturing
    // state into account.
 diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
-index b7321dfc118bc70a6ebf25078477ab8c0c2ed6be..b5b61174bbf86a38ff787150503f5482cfc9f7f6 100644
+index 2efe41a98c97afa196408e0a06e9149d1991fb13..987fc20382fb0e1333291193ba34479b35581ea8 100644
 --- a/content/public/browser/web_contents.h
 +++ b/content/public/browser/web_contents.h
-@@ -673,6 +673,10 @@ class WebContents : public PageNavigator,
+@@ -689,6 +689,10 @@ class WebContents : public PageNavigator,
        bool stay_awake,
        bool is_activity = true) = 0;
  

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

@@ -45,10 +45,10 @@ index f7f9a981003ba1e3fefc9fc0f2b2bcf921c0a4d5..cd69daf186a6ec22fb70a2a36568e544
    // RenderFrameMetadataProvider::Observer implementation.
    void OnRenderFrameMetadataChangedBeforeActivation(
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 18b791d840040c475851af80f876d538aa4261d2..2bd9ec5b1f4cd487632a11cc71cd1566c63b036e 100644
+index 38eabadbda94b61a7fdf52cdfefaaccda3550aa9..5898646c6207f312e29205a60de8e287c2cf223f 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -7969,7 +7969,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
+@@ -8053,7 +8053,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
                          "WebContentsImpl::OnFocusedElementChangedInFrame",
                          "render_frame_host", frame);
    RenderWidgetHostViewBase* root_view =

+ 2 - 2
patches/chromium/fix_remove_caption-removing_style_call.patch

@@ -18,10 +18,10 @@ or resizing, but Electron does not seem to run into that issue
 for opaque frameless windows even with that block commented out.
 
 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
-index a682ee8e5c44d6b37957c92b72cd959b959f6745..89cd94d98a068a6ea9fc97a2b9214fc70a212a89 100644
+index 5273f108cce98464a649108e31d84490a087c2b3..cff508006b325e2fc16a4e0c047f1d313202409a 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -1721,7 +1721,23 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) {
+@@ -1741,7 +1741,23 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) {
    SendMessage(hwnd(), WM_CHANGEUISTATE, MAKELPARAM(UIS_CLEAR, UISF_HIDEFOCUS),
                0);
  

+ 3 - 3
patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch

@@ -64,7 +64,7 @@ index acc31345b556a4daf8a189cf7a9f302926e7cfdb..1f57875bb31f0e92829a0380e6f0f357
  
  #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 7dab874043eeef7c352c48d576f124d8a5269da9..97981d6f3a6a495f8d400e94fb57d83d3781ce08 100644
+index 91e3217ef24086d349c089379ef3b7f6f7d2f279..c4bf05319e1bca6490a043b4084ac8dde2950485 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
 @@ -2582,6 +2582,7 @@ void LocalFrame::RequestExecuteScript(
@@ -98,10 +98,10 @@ index f62e0cbf131cef047754db0023cccdf3ce3fe57b..5986d67c72bed37d5ba1be8571149d52
                              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 bb5ac738df234237a18fe40e8a42d67e55196fb4..b1643c460edc0188d16ce403e7344a0547325b53 100644
+index 84d506b956931465cdffc2d5526847a61f6b87f7..bc5fba399c701f2498829153ee617bf601414d69 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
-@@ -1040,6 +1040,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld(
+@@ -1039,6 +1039,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld(
              std::move(callback).Run(value ? std::move(*value) : base::Value());
            },
            std::move(callback)),

+ 4 - 4
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 eef01e29d8bb09e0c591a3c7e56916eb3e10792d..e79293d88f7ac25821c2fd8572ad76d707d3bc43 100644
+index 698fd6ffdcd1b55d944a1e1b0a4cec76ccd87115..0b3af34dd9607538799c0c507f5d7169e69310d2 100644
 --- a/content/browser/renderer_host/render_frame_host_manager.cc
 +++ b/content/browser/renderer_host/render_frame_host_manager.cc
-@@ -3430,6 +3430,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -3439,6 +3439,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
      request->ResetStateForSiteInstanceChange();
    }
  
@@ -20,10 +20,10 @@ index eef01e29d8bb09e0c591a3c7e56916eb3e10792d..e79293d88f7ac25821c2fd8572ad76d7
  }
  
 diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
-index c8a5bdeb03e085f607cfdc79f14879c8c1379257..718cee8e6b8a971728f5247b4cc0d577c6019ff2 100644
+index 4f79af8c15958b7df700ba0c51d79ed1c981712a..cc88b60f32012e860e09326a957a1ba20d0a375d 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
-@@ -271,6 +271,11 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -275,6 +275,11 @@ class CONTENT_EXPORT ContentBrowserClient {
  
    virtual ~ContentBrowserClient() = default;
  

+ 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 0c7a6f2d071d52c692f9c82d32ba1a3399508760..0820c8d913a93da7e5708e43b6b3991f3a0c7c80 100644
+index cc28e95c153fd33a3f5844f5d2cc198acc7dbf49..dbfb96ad9a9431a0cbfe0ab7cedebc698531a800 100644
 --- a/tools/gritsettings/resource_ids.spec
 +++ b/tools/gritsettings/resource_ids.spec
-@@ -1059,6 +1059,11 @@
+@@ -1063,6 +1063,11 @@
      "includes": [4960],
    },
  

+ 1 - 1
patches/chromium/gtk_visibility.patch

@@ -18,7 +18,7 @@ index 355067ea178bee1466f9df5a3ed146e9f09f0768..1b385d12692deece9e10722fc70215e8
      # on GTK.
      "//examples:peerconnection_client",
 diff --git a/ui/ozone/platform/x11/BUILD.gn b/ui/ozone/platform/x11/BUILD.gn
-index bd3c0c8fac7038af2de4bb4a4fa0db8e872745e9..e359e2606759a4796190f6ab1ce038a2f87d16de 100644
+index 7689ed291431cee284bd56292d4306fe34919ae6..c60506e7b9cc6c8961449b3bb49c5f36ba86b7f2 100644
 --- a/ui/ozone/platform/x11/BUILD.gn
 +++ b/ui/ozone/platform/x11/BUILD.gn
 @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni")

+ 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 a991d4b3933368a3d08f5adec38dceeebebb0135..caa90fcc8d6191be655e2914de4ad207c7842d2a 100755
+index 75019bd7bd8f74b3deaa65a8c7cde54568b77592..21e5cb50efe82180facbdf7aa7f9e1f3a28ad594 100755
 --- a/tools/clang/scripts/update.py
 +++ b/tools/clang/scripts/update.py
 @@ -302,6 +302,8 @@ def GetDefaultHostOs():

+ 1 - 1
patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch

@@ -21,7 +21,7 @@ index 7e93d25f653a3291e3f8635231e847c334207918..bd2a4fc62aa80a5dfbcb0e4167082869
        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 8850a11c1d0a04825ca75a8bd1ddf4819821fe76..939fdc14611b7a6af2daad838b9180f2bc3411a6 100644
+index 111259c8dcfc8d62ea8c35be738ff8c25f66e5c6..e0be1690bbff7c06e02fa1404f6e048a05a7584c 100644
 --- a/ui/ozone/public/ozone_platform.h
 +++ b/ui/ozone/public/ozone_platform.h
 @@ -125,6 +125,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {

+ 2 - 2
patches/chromium/load_v8_snapshot_in_browser_process.patch

@@ -9,10 +9,10 @@ but due to the nature of electron, we need to load the v8 snapshot
 in the browser process.
 
 diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
-index 5b28c687d1522d9f1504e421324a8b96eb899a17..1ad4ef06d2b4bd14f87faa7c1837c3af8bc343f8 100644
+index 6b51120e7d88978e98a76ce21c45f35740390c64..ceda3bfeb5897eadd072bf1f06898210329ff5cf 100644
 --- a/content/app/content_main_runner_impl.cc
 +++ b/content/app/content_main_runner_impl.cc
-@@ -264,11 +264,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) {
+@@ -266,11 +266,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) {
  
  bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
                            const std::string& process_type) {

+ 5 - 5
patches/chromium/mas_disable_remote_accessibility.patch

@@ -44,7 +44,7 @@ index 89b9323c08cfed0d3ea3a0ec1beaa0bdfabe343e..69ae95eb8537bab751d27749d6cf392a
  
  }  // namespace
 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 7fcbaf1f8165197847326025f1c01f07dad52ea4..92162dc6c7b9ebfd65be9c5d6ee2a9e0b0b93db3 100644
+index 41e73ceaa9f71e38c579ca2506372cb2d2b5300e..8fa32a5f280225742182bd21b5d94422c719c27a 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
 @@ -566,10 +566,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
@@ -105,7 +105,7 @@ index abd19b8613e52a6f4c9404f509ab7ed5a61046a6..8c69b989882084946bb821e1d64d7565
  }
  
 diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
-index 67473b500bc8305bc21ec0324001ea5a64612aee..859e45bd6f4f130947e0718e32fea4abe8fe3a8c 100644
+index af40af18152d184b9235e412ab053a9674a1b498..54de20661940542fb6565aefa6117966b5968ca0 100644
 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
 +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
 @@ -22,7 +22,9 @@
@@ -118,7 +118,7 @@ index 67473b500bc8305bc21ec0324001ea5a64612aee..859e45bd6f4f130947e0718e32fea4ab
  
  namespace {
  
-@@ -621,6 +623,7 @@ void PostAnnouncementNotification(NSString* announcement) {
+@@ -616,6 +618,7 @@ void PostAnnouncementNotification(NSString* announcement) {
    if ([NSApp isActive])
      return window == [NSApp accessibilityFocusedWindow];
  
@@ -126,7 +126,7 @@ index 67473b500bc8305bc21ec0324001ea5a64612aee..859e45bd6f4f130947e0718e32fea4ab
    // 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
-@@ -648,6 +651,7 @@ void PostAnnouncementNotification(NSString* announcement) {
+@@ -643,6 +646,7 @@ void PostAnnouncementNotification(NSString* announcement) {
    // from within the app shim content.
    if ([window isKindOfClass:[NSAccessibilityRemoteUIElement class]])
      return true;
@@ -227,7 +227,7 @@ index e27191c89a3be5fd21be4403a5e183e5dd12d383..07dcac920740a029dfc69c123506bafd
  
  ///////////////////////////////////////////////////////////////////////////////
 diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
-index 5aaee8318049cf35afaaa45fe189baf8a2418c49..e8b06c7fa14405902abc84dc738efdbb327a3677 100644
+index 208aaa6aa8bef5751532015cb0c4a2ac002592f3..37f25793bac3c6b025c0f7e6a3e16593f53f3b0b 100644
 --- a/ui/base/BUILD.gn
 +++ b/ui/base/BUILD.gn
 @@ -353,6 +353,13 @@ component("base") {

+ 15 - 13
patches/chromium/mas_no_private_api.patch

@@ -166,10 +166,10 @@ index dced377388d22f825ce228dd615056ba0548986d..00724d8e6e597441d93c8a2c9b2f9415
  
  void BluetoothAdapterMac::RemovePairingDelegateInternal(
 diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
-index 83540722ab1b7b0cb6b74456f2dfc9fc680747cb..8ed81a36306f6dfae965ee90781e5bb79067fa92 100644
+index 855b1e004a82d21a79d7278d957c391e87def2be..3cc3a2de26e0988ab23245f4b6019b80585a50c3 100644
 --- a/media/audio/BUILD.gn
 +++ b/media/audio/BUILD.gn
-@@ -178,6 +178,12 @@ source_set("audio") {
+@@ -176,6 +176,12 @@ source_set("audio") {
        "mac/scoped_audio_unit.cc",
        "mac/scoped_audio_unit.h",
      ]
@@ -218,30 +218,32 @@ index a8a223d1d9ea6de51a27f148c008ee8be38af29a..328200858bd7aa4077bf6824bfc1367b
    }
  
 diff --git a/sandbox/mac/sandbox_compiler.cc b/sandbox/mac/sandbox_compiler.cc
-index 5db411212b62b583ae26e9ecd0a87ad5fc5504e8..2778852a1573ca5d573018171caeadf1e89f3b9e 100644
+index f35d9ef2a2df3db8ecbf1d7b909c7b1cf33f3cd9..a710b8b4f851666fd65bb37f69ec2fa70259697b 100644
 --- a/sandbox/mac/sandbox_compiler.cc
 +++ b/sandbox/mac/sandbox_compiler.cc
-@@ -28,6 +28,7 @@ bool SandboxCompiler::InsertStringParam(const std::string& key,
+@@ -47,6 +47,7 @@ bool SandboxCompiler::SetParameter(const std::string& key,
  }
  
- bool SandboxCompiler::CompileAndApplyProfile(std::string* error) {
+ bool SandboxCompiler::CompileAndApplyProfile(std::string& error) {
 +#if !IS_MAS_BUILD()
-   char* error_internal = nullptr;
-   std::vector<const char*> params;
+   if (mode_ == Target::kSource) {
+     std::vector<const char*> params;
  
-@@ -44,6 +45,7 @@ bool SandboxCompiler::CompileAndApplyProfile(std::string* error) {
-     sandbox::Seatbelt::FreeError(error_internal);
-     return false;
+@@ -67,6 +68,9 @@ bool SandboxCompiler::CompileAndApplyProfile(std::string& error) {
+     }
    }
+   return false;
++#else
++  return true;
 +#endif
-   return true;
  }
  
+ bool SandboxCompiler::CompilePolicyToProto(mac::SandboxPolicy& policy,
 diff --git a/sandbox/mac/seatbelt.cc b/sandbox/mac/seatbelt.cc
-index 1e75790d60789746073828cc22d3863b35ab6f95..08fa6b16d09e2ceb73094639fa81570202123178 100644
+index 15c835e118456394c0a00ac98c11241c14ca75bd..49332a94219fc3e64ab05baa04681325edddfeb0 100644
 --- a/sandbox/mac/seatbelt.cc
 +++ b/sandbox/mac/seatbelt.cc
-@@ -64,7 +64,11 @@ void Seatbelt::FreeError(char* errorbuf) {
+@@ -175,7 +175,11 @@ void Seatbelt::FreeError(char* errorbuf) {
  
  // static
  bool Seatbelt::IsSandboxed() {

+ 11 - 11
patches/chromium/network_service_allow_remote_certificate_verification_logic.patch

@@ -7,7 +7,7 @@ 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 cdb55788ba62add1dd5525e52e4968b69fb73f5b..4a30886a5825798326d3a8a8b62aa0027a2bebd0 100644
+index 8ad7cb314d8c02e352e6bcd5e5477920b95d5e10..f5e867b3386d8e779a72912e6377f890db125a98 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
 @@ -134,6 +134,11 @@
@@ -22,7 +22,7 @@ index cdb55788ba62add1dd5525e52e4968b69fb73f5b..4a30886a5825798326d3a8a8b62aa002
  #if BUILDFLAG(IS_CT_SUPPORTED)
  #include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
  #include "components/certificate_transparency/chrome_require_ct_delegate.h"
-@@ -442,6 +447,91 @@ bool GetFullDataFilePath(
+@@ -414,6 +419,91 @@ bool GetFullDataFilePath(
  
  }  // namespace
  
@@ -114,7 +114,7 @@ index cdb55788ba62add1dd5525e52e4968b69fb73f5b..4a30886a5825798326d3a8a8b62aa002
  constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
  
  NetworkContext::PendingCertVerify::PendingCertVerify() = default;
-@@ -750,6 +840,13 @@ void NetworkContext::SetClient(
+@@ -716,6 +806,13 @@ void NetworkContext::SetClient(
    client_.Bind(std::move(client));
  }
  
@@ -128,7 +128,7 @@ index cdb55788ba62add1dd5525e52e4968b69fb73f5b..4a30886a5825798326d3a8a8b62aa002
  void NetworkContext::CreateURLLoaderFactory(
      mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
      mojom::URLLoaderFactoryParamsPtr params) {
-@@ -2333,6 +2430,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -2183,6 +2280,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
          std::move(cert_verifier));
      cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_.get());
  #endif  // BUILDFLAG(IS_CHROMEOS)
@@ -139,18 +139,18 @@ index cdb55788ba62add1dd5525e52e4968b69fb73f5b..4a30886a5825798326d3a8a8b62aa002
  
    builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
 diff --git a/services/network/network_context.h b/services/network/network_context.h
-index 5aa32ad99718c7c3259801a429e1a484a97849ad..7facbaf42e2538f8f7a78a2f7e87c3ac27fed61c 100644
+index 5853a39531060b28ced3b6f263b5fc56c5d03df6..a4761de728313be1f91ff748f572c42f08b35b72 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
-@@ -104,6 +104,7 @@ class URLMatcher;
+@@ -103,6 +103,7 @@ class URLMatcher;
  
  namespace network {
  class CertVerifierWithTrustAnchors;
 +class RemoteCertVerifier;
  class CookieManager;
- class ExpectCTReporter;
  class HostResolver;
-@@ -240,6 +241,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+ class MdnsResponderManager;
+@@ -238,6 +239,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    void CreateURLLoaderFactory(
        mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
        mojom::URLLoaderFactoryParamsPtr params) override;
@@ -159,7 +159,7 @@ index 5aa32ad99718c7c3259801a429e1a484a97849ad..7facbaf42e2538f8f7a78a2f7e87c3ac
    void ResetURLLoaderFactories() override;
    void GetViaObliviousHttp(
        mojom::ObliviousHttpRequestPtr request,
-@@ -846,6 +849,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -820,6 +823,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    std::vector<base::OnceClosure> dismount_closures_;
  #endif  // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED)
  
@@ -169,7 +169,7 @@ index 5aa32ad99718c7c3259801a429e1a484a97849ad..7facbaf42e2538f8f7a78a2f7e87c3ac
    std::unique_ptr<HostResolver> internal_host_resolver_;
    // Map values set to non-null only if that HostResolver has its own private
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index 884e626c60994a9e7ebf5dfc5bd70666c532ef49..719778de586761f13b3d31a3ef5e963ae21e8dcd 100644
+index 1e7e922c738ce0960f0658cec817d57db341f9a6..28745d0a28062fba30f31342c430524aab6a2a4a 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
 @@ -289,6 +289,17 @@ struct NetworkContextFilePaths {
@@ -190,7 +190,7 @@ index 884e626c60994a9e7ebf5dfc5bd70666c532ef49..719778de586761f13b3d31a3ef5e963a
  // Parameters for constructing a network context.
  struct NetworkContextParams {
    // The user agent string.
-@@ -861,6 +872,9 @@ interface NetworkContext {
+@@ -847,6 +858,9 @@ interface NetworkContext {
    // Sets a client for this network context.
    SetClient(pending_remote<NetworkContextClient> client);
  

+ 26 - 26
patches/chromium/notification_provenance.patch

@@ -7,7 +7,7 @@ Pass RenderFrameHost through to PlatformNotificationService
 so Electron can identify which renderer a notification came from.
 
 diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc
-index cd973955e8b424858532b383ee5af368db3333ed..d1c7084983da7060cce5596b623b6cf727794de9 100644
+index a3bc7c2ff135fe6fe228bd60886f08a7c94b7ebb..9fb3a65e68cd7d3a3d60b479b4497482100835b6 100644
 --- a/chrome/browser/notifications/platform_notification_service_impl.cc
 +++ b/chrome/browser/notifications/platform_notification_service_impl.cc
 @@ -197,6 +197,7 @@ bool PlatformNotificationServiceImpl::WasClosedProgrammatically(
@@ -31,15 +31,15 @@ index dfbfbf4e5d92eb8c7c2ba38f31264ac41713a485..78cc81931321656c308e5611e30e0813
        const GURL& origin,
        const GURL& document_url,
 diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc
-index 08ef5617dca29a5c685a2a726af9bae972866c5c..8c0a353d93ab9b909577aa1f9a2232b8d59b00ea 100644
+index d4540308246d1166aee7319229390b9b8afce219..a0e67d2bdb8680229bfba072173acfcc3162b96c 100644
 --- a/content/browser/notifications/blink_notification_service_impl.cc
 +++ b/content/browser/notifications/blink_notification_service_impl.cc
-@@ -86,12 +86,14 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
+@@ -87,12 +87,14 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
      BrowserContext* browser_context,
      scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
      RenderProcessHost* render_process_host,
 +    RenderFrameHost* render_frame_host,
-     const url::Origin& origin,
+     const blink::StorageKey& storage_key,
      const GURL& document_url,
      const WeakDocumentPtr& weak_document_ptr,
      RenderProcessHost::NotificationServiceCreatorType creator_type,
@@ -49,17 +49,17 @@ index 08ef5617dca29a5c685a2a726af9bae972866c5c..8c0a353d93ab9b909577aa1f9a2232b8
        browser_context_(browser_context),
        service_worker_context_(std::move(service_worker_context)),
        render_process_host_id_(render_process_host->GetID()),
-@@ -177,7 +179,7 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification(
+@@ -184,7 +186,7 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification(
        creator_type_);
  
    browser_context_->GetPlatformNotificationService()->DisplayNotification(
--      notification_id, origin_.GetURL(), document_url_,
-+      render_frame_host_, notification_id, origin_.GetURL(), document_url_,
+-      notification_id, storage_key_.origin().GetURL(), document_url_,
++      render_frame_host_, notification_id, storage_key_.origin().GetURL(), document_url_,
        platform_notification_data, notification_resources);
  }
  
 diff --git a/content/browser/notifications/blink_notification_service_impl.h b/content/browser/notifications/blink_notification_service_impl.h
-index baf1efdfd79ace5d892d4039c4c3191e2ece3a09..8a65badebbdc427274a04920ff4058634926c2f4 100644
+index 1c1a95953c6c216b378c2ab0bfbef6eeb19cc184..2f0ce853dbb28163aa30914b5bc31be7066d60a2 100644
 --- a/content/browser/notifications/blink_notification_service_impl.h
 +++ b/content/browser/notifications/blink_notification_service_impl.h
 @@ -44,6 +44,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
@@ -67,7 +67,7 @@ index baf1efdfd79ace5d892d4039c4c3191e2ece3a09..8a65badebbdc427274a04920ff405863
        scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
        RenderProcessHost* render_process_host,
 +      RenderFrameHost* render_frame_host,
-       const url::Origin& origin,
+       const blink::StorageKey& storage_key,
        const GURL& document_url,
        const WeakDocumentPtr& weak_document_ptr,
 @@ -112,6 +113,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
@@ -79,20 +79,20 @@ index baf1efdfd79ace5d892d4039c4c3191e2ece3a09..8a65badebbdc427274a04920ff405863
  
    scoped_refptr<ServiceWorkerContextWrapper> service_worker_context_;
 diff --git a/content/browser/notifications/blink_notification_service_impl_unittest.cc b/content/browser/notifications/blink_notification_service_impl_unittest.cc
-index b0eff7e0703444f7409007987899dee1449c5905..9541e010a5f00cd10707c6b90c759ab5a106c1c8 100644
+index b07eaabb5f2914b160edbfd38091c1b9b24e9564..aba444e8e8f4973056ebe5a88ed1b7939d2d7def 100644
 --- a/content/browser/notifications/blink_notification_service_impl_unittest.cc
 +++ b/content/browser/notifications/blink_notification_service_impl_unittest.cc
-@@ -134,7 +134,7 @@ class BlinkNotificationServiceImplTest : public ::testing::Test {
+@@ -136,7 +136,7 @@ class BlinkNotificationServiceImplTest : public ::testing::Test {
      notification_service_ = std::make_unique<BlinkNotificationServiceImpl>(
          notification_context_.get(), &browser_context_,
          embedded_worker_helper_->context_wrapper(), &render_process_host_,
--        url::Origin::Create(GURL(kTestOrigin)),
-+        nullptr, url::Origin::Create(GURL(kTestOrigin)),
+-        storage_key_,
++        nullptr, storage_key_,
          /*document_url=*/GURL(),
          contents_.get()->GetPrimaryMainFrame()->GetWeakDocumentPtr(),
          RenderProcessHost::NotificationServiceCreatorType::kDocument,
 diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
-index f26e1ae71eb55d864cbe2323cc708aae78a26699..79dc979377752cafffdbc0a71dd0e9b9e6c49eb5 100644
+index 76e711cf9e1aee95ca7d10d268e02b41447ed986..5e46ea38736ec5ba820485212abd6c99bec0ef40 100644
 --- a/content/browser/notifications/platform_notification_context_impl.cc
 +++ b/content/browser/notifications/platform_notification_context_impl.cc
 @@ -282,6 +282,7 @@ void PlatformNotificationContextImpl::Shutdown() {
@@ -100,23 +100,23 @@ index f26e1ae71eb55d864cbe2323cc708aae78a26699..79dc979377752cafffdbc0a71dd0e9b9
  void PlatformNotificationContextImpl::CreateService(
      RenderProcessHost* render_process_host,
 +    RenderFrameHost* render_frame_host,
-     const url::Origin& origin,
+     const blink::StorageKey& storage_key,
      const GURL& document_url,
      const WeakDocumentPtr& weak_document_ptr,
 @@ -290,7 +291,7 @@ void PlatformNotificationContextImpl::CreateService(
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    services_.push_back(std::make_unique<BlinkNotificationServiceImpl>(
        this, browser_context_, service_worker_context_, render_process_host,
--      origin, document_url, weak_document_ptr, creator_type,
-+      render_frame_host, origin, document_url, weak_document_ptr, creator_type,
+-      storage_key, document_url, weak_document_ptr, creator_type,
++      render_frame_host, storage_key, document_url, weak_document_ptr, creator_type,
        std::move(receiver)));
  }
  
 diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h
-index 0e082ea7f109654fffc7f5b35dff14d1775fe064..dd72887ecaa211e894bebe7759ccb5b320663898 100644
+index 600d248a3060f754c676b9b96007329d2db7253e..5e075572ef71397a8bbdb54e8ed8131892476aab 100644
 --- a/content/browser/notifications/platform_notification_context_impl.h
 +++ b/content/browser/notifications/platform_notification_context_impl.h
-@@ -49,6 +49,7 @@ struct NotificationDatabaseData;
+@@ -45,6 +45,7 @@ struct NotificationDatabaseData;
  class PlatformNotificationServiceProxy;
  class RenderProcessHost;
  class ServiceWorkerContextWrapper;
@@ -124,24 +124,24 @@ index 0e082ea7f109654fffc7f5b35dff14d1775fe064..dd72887ecaa211e894bebe7759ccb5b3
  
  // Implementation of the Web Notification storage context. The public methods
  // defined in this interface must only be called on the UI thread.
-@@ -82,6 +83,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl
+@@ -78,6 +79,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl
    // service is created by a dedicated worker, or is `nullptr` otherwise.
    void CreateService(
        RenderProcessHost* render_process_host,
 +      RenderFrameHost* render_frame_host,
-       const url::Origin& origin,
+       const blink::StorageKey& storage_key,
        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 72d890f698a042e15433609783965e41cadf329a..5ac598a0d2fca5eed5f0c5b135dfcaeccb0ab7b6 100644
+index 962c03c4945a10671983caa8d6380434262e4741..730ed8a7bae4c6ea8577ba5d1fa326f9e77dd51f 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -2115,7 +2115,7 @@ void RenderProcessHostImpl::CreateNotificationService(
      case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker:
      case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: {
        storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
--          this, origin, /*document_url=*/GURL(), weak_document_ptr,
-+          this, rfh, origin, /*document_url=*/GURL(), weak_document_ptr,
+-          this, storage_key, /*document_url=*/GURL(), weak_document_ptr,
++          this, rfh, storage_key, /*document_url=*/GURL(), weak_document_ptr,
            creator_type, std::move(receiver));
        break;
      }
@@ -149,8 +149,8 @@ index 72d890f698a042e15433609783965e41cadf329a..5ac598a0d2fca5eed5f0c5b135dfcaec
        CHECK(rfh);
  
        storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
--          this, origin, rfh->GetLastCommittedURL(), weak_document_ptr,
-+          this, rfh, origin, rfh->GetLastCommittedURL(), weak_document_ptr,
+-          this, storage_key, rfh->GetLastCommittedURL(), weak_document_ptr,
++          this, rfh, storage_key, rfh->GetLastCommittedURL(), weak_document_ptr,
            creator_type, std::move(receiver));
        break;
      }

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

@@ -9,7 +9,7 @@ don't get errors for Chrome's generated resources, which are non-existent
 because we don't generate them in our build.
 
 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 eb3b554f37cdaa1b8ef532cecc210f093554704d..d761e4b193e3eb44bf0e46deb67fc26f6fe9d85b 100644
+index 4c83c6a6685490ce1899b119742fa25b6b9a50cd..23d7bf23e13af2c0bb10a9b58bf20f1f763d547c 100644
 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
 +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
 @@ -14,9 +14,11 @@

+ 6 - 6
patches/chromium/port_autofill_colors_to_the_color_pipeline.patch

@@ -8,10 +8,10 @@ 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 524f1459f8958d635bfea2610dea0a091d66399f..0b6a1390ea1079d78b899f53e530f621331290bf 100644
+index cabd236eaa3f24b8564d471587543eb5be9ec6bf..53812c4fd4103f60896b5c9b1c9ae811dba75fe2 100644
 --- a/ui/color/color_id.h
 +++ b/ui/color/color_id.h
-@@ -258,6 +258,10 @@
+@@ -260,6 +260,10 @@
    E_CPONLY(kColorScrollbarThumbInactive) \
    E_CPONLY(kColorScrollbarThumbPressed) \
    E_CPONLY(kColorScrollbarTrack) \
@@ -22,7 +22,7 @@ index 524f1459f8958d635bfea2610dea0a091d66399f..0b6a1390ea1079d78b899f53e530f621
    E_CPONLY(kColorSeparator) \
    E_CPONLY(kColorShadowBase) \
    E_CPONLY(kColorShadowValueAmbientShadowElevationSixteen) \
-@@ -312,6 +316,7 @@
+@@ -314,6 +318,7 @@
    E_CPONLY(kColorTreeNodeForeground) \
    E_CPONLY(kColorTreeNodeForegroundSelectedFocused) \
    E_CPONLY(kColorTreeNodeForegroundSelectedUnfocused) \
@@ -31,10 +31,10 @@ index 524f1459f8958d635bfea2610dea0a091d66399f..0b6a1390ea1079d78b899f53e530f621
  
  #if BUILDFLAG(IS_CHROMEOS)
 diff --git a/ui/color/ui_color_mixer.cc b/ui/color/ui_color_mixer.cc
-index c2bf7afbac4ff54b2ba8d1cea4ae1531aa333bbc..55b489a2925b53ac8b773a5496e2523595b91bf9 100644
+index 80394f269c91cb1064f9f960e3ecca41704c8e03..0885bf11672d47544d067deb74dbe786aa227127 100644
 --- a/ui/color/ui_color_mixer.cc
 +++ b/ui/color/ui_color_mixer.cc
-@@ -190,6 +190,17 @@ void AddUiColorMixer(ColorProvider* provider,
+@@ -192,6 +192,17 @@ void AddUiColorMixer(ColorProvider* provider,
                                              : SkColorSetA(SK_ColorBLACK, 0x80)};
    mixer[kColorScrollbarTrack] = {dark_mode ? SkColorSetRGB(0x42, 0x42, 0x42)
                                             : SkColorSetRGB(0xF1, 0xF1, 0xF1)};
@@ -52,7 +52,7 @@ index c2bf7afbac4ff54b2ba8d1cea4ae1531aa333bbc..55b489a2925b53ac8b773a5496e25235
    mixer[kColorSeparator] = {kColorMidground};
    mixer[kColorShadowBase] = {dark_mode ? SK_ColorBLACK : gfx::kGoogleGrey800};
    mixer[kColorShadowValueAmbientShadowElevationThree] =
-@@ -271,6 +282,7 @@ void AddUiColorMixer(ColorProvider* provider,
+@@ -273,6 +284,7 @@ void AddUiColorMixer(ColorProvider* provider,
    mixer[kColorTreeNodeForegroundSelectedFocused] = {kColorTreeNodeForeground};
    mixer[kColorTreeNodeForegroundSelectedUnfocused] = {
        kColorTreeNodeForegroundSelectedFocused};

+ 4 - 3
patches/chromium/preconnect_manager.patch

@@ -10,7 +10,7 @@ in favor of defining PreconnectRequest in this file since we don't build
 the header.
 
 diff --git a/chrome/browser/predictors/preconnect_manager.cc b/chrome/browser/predictors/preconnect_manager.cc
-index 48b500a8ead699ef9d30d3219f41a913711bc4a0..f3e9c87c5ce29a4e9dc8204413f47a761408a373 100644
+index de39505b1e515559182b6b3f25ffbe96f0b8262b..a040d30dd35f3f6c4dda58fb9d2e3e537ecbb9f7 100644
 --- a/chrome/browser/predictors/preconnect_manager.cc
 +++ b/chrome/browser/predictors/preconnect_manager.cc
 @@ -10,9 +10,11 @@
@@ -46,7 +46,7 @@ index 48b500a8ead699ef9d30d3219f41a913711bc4a0..f3e9c87c5ce29a4e9dc8204413f47a76
  PreconnectedRequestStats::PreconnectedRequestStats(const url::Origin& origin,
                                                     bool was_preconnected)
      : origin(origin), was_preconnected(was_preconnected) {}
-@@ -83,11 +99,14 @@ PreconnectManager::PreconnectManager(base::WeakPtr<Delegate> delegate,
+@@ -83,12 +99,15 @@ PreconnectManager::PreconnectManager(base::WeakPtr<Delegate> delegate,
  PreconnectManager::~PreconnectManager() = default;
  
  bool PreconnectManager::IsEnabled() {
@@ -55,7 +55,8 @@ index 48b500a8ead699ef9d30d3219f41a913711bc4a0..f3e9c87c5ce29a4e9dc8204413f47a76
    if (!profile) {
      return false;
    }
-   return prefetch::IsSomePreloadingEnabled(*profile->GetPrefs());
+   return prefetch::IsSomePreloadingEnabled(*profile->GetPrefs()) ==
+          content::PreloadingEligibility::kEligible;
 +#endif
 +  return true;
  }

+ 34 - 33
patches/chromium/printing.patch

@@ -11,10 +11,10 @@ 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 9149a891ee2b116fd07dcbadfb64156c5a6cd469..7d0742834c77cfe26e747c8043c5d92d1390833a 100644
+index cf98951ce66478e0ceaf12c60daded5af599014f..1450cf3adc59d4ef7c3cce7d46ea4b16ef5e4bf7 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -971,7 +971,6 @@ if (is_win) {
+@@ -965,7 +965,6 @@ if (is_win) {
        "//media:media_unittests",
        "//media/midi:midi_unittests",
        "//net:net_unittests",
@@ -22,7 +22,7 @@ index 9149a891ee2b116fd07dcbadfb64156c5a6cd469..7d0742834c77cfe26e747c8043c5d92d
        "//sql:sql_unittests",
        "//third_party/breakpad:symupload($host_toolchain)",
        "//ui/base:ui_base_unittests",
-@@ -980,6 +979,10 @@ if (is_win) {
+@@ -974,6 +973,10 @@ if (is_win) {
        "//ui/views:views_unittests",
        "//url:url_unittests",
      ]
@@ -121,7 +121,7 @@ index d17376917f4d8f5740b265a00e748929cbade643..f8c89a491c9b27e03d19327761c21bd1
  
  #if BUILDFLAG(IS_CHROMEOS)
 diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
-index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6ad43ee56 100644
+index 0cd52f9e25177831d02911b60ce267e07f8ee79e..2317ef7f3884c34ac7f2bd815a5b16196294e553 100644
 --- a/chrome/browser/printing/print_view_manager_base.cc
 +++ b/chrome/browser/printing/print_view_manager_base.cc
 @@ -29,8 +29,6 @@
@@ -253,7 +253,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
  }
  
  void PrintViewManagerBase::NavigationStopped() {
-@@ -533,11 +561,14 @@ void PrintViewManagerBase::DidPrintDocument(
+@@ -542,11 +570,14 @@ void PrintViewManagerBase::DidPrintDocument(
  void PrintViewManagerBase::GetDefaultPrintSettings(
      GetDefaultPrintSettingsCallback callback) {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -267,8 +267,8 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
 +#endif
  #if BUILDFLAG(ENABLE_OOP_PRINTING)
    if (printing::features::kEnableOopPrintDriversJobPrint.Get() &&
-       !service_manager_client_id_.has_value()) {
-@@ -583,18 +614,20 @@ void PrintViewManagerBase::UpdatePrintSettings(
+ #if BUILDFLAG(ENABLE_PRINT_CONTENT_ANALYSIS)
+@@ -595,18 +626,20 @@ void PrintViewManagerBase::UpdatePrintSettings(
      base::Value::Dict job_settings,
      UpdatePrintSettingsCallback callback) {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -290,7 +290,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    content::BrowserContext* context =
        web_contents() ? web_contents()->GetBrowserContext() : nullptr;
    PrefService* prefs =
-@@ -604,6 +637,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
+@@ -616,6 +649,7 @@ void PrintViewManagerBase::UpdatePrintSettings(
      if (value > 0)
        job_settings.Set(kSettingRasterizePdfDpi, value);
    }
@@ -298,7 +298,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
  
    auto callback_wrapper =
        base::BindOnce(&PrintViewManagerBase::UpdatePrintSettingsReply,
-@@ -641,14 +675,14 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
+@@ -653,14 +687,14 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
      // didn't happen for some reason.
      bad_message::ReceivedBadMessage(
          render_process_host, bad_message::PVMB_SCRIPTED_PRINT_FENCED_FRAME);
@@ -315,15 +315,16 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
      return;
    }
  #endif
-@@ -687,7 +721,6 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
-   PrintManager::PrintingFailed(cookie, reason);
+@@ -698,7 +732,7 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
  
- #if !BUILDFLAG(IS_ANDROID)  // Android does not implement this function.
--  ShowPrintErrorDialog();
- #endif
+   PrintManager::PrintingFailed(cookie, reason);
  
-   ReleasePrinterQuery();
-@@ -702,6 +735,11 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) {
+-#if !BUILDFLAG(IS_ANDROID)  // Android does not implement this function.
++#if 0  // Electron does not implement this function.
+   // `PrintingFailed()` can occur because asynchronous compositing results
+   // don't complete until after a print job has already failed and been
+   // destroyed.  In such cases the error notification to the user will
+@@ -722,6 +756,11 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) {
  }
  
  void PrintViewManagerBase::ShowInvalidPrinterSettingsError() {
@@ -335,7 +336,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
        FROM_HERE, base::BindOnce(&ShowWarningMessageBox,
                                  l10n_util::GetStringUTF16(
-@@ -712,11 +750,13 @@ void PrintViewManagerBase::RenderFrameHostStateChanged(
+@@ -732,11 +771,13 @@ void PrintViewManagerBase::RenderFrameHostStateChanged(
      content::RenderFrameHost* render_frame_host,
      content::RenderFrameHost::LifecycleState /*old_state*/,
      content::RenderFrameHost::LifecycleState new_state) {
@@ -349,7 +350,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
  }
  
  void PrintViewManagerBase::RenderFrameDeleted(
-@@ -768,14 +808,20 @@ void PrintViewManagerBase::OnJobDone() {
+@@ -788,14 +829,20 @@ void PrintViewManagerBase::OnJobDone() {
    // Printing is done, we don't need it anymore.
    // print_job_->is_job_pending() may still be true, depending on the order
    // of object registration.
@@ -373,7 +374,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
  #endif
  
    TerminatePrintJob(true);
-@@ -787,7 +833,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
+@@ -807,7 +854,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
  
    // Is the document already complete?
    if (print_job_->document() && print_job_->document()->IsComplete()) {
@@ -382,7 +383,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
      return true;
    }
  
-@@ -835,7 +881,10 @@ bool PrintViewManagerBase::CreateNewPrintJob(
+@@ -855,7 +902,10 @@ bool PrintViewManagerBase::CreateNewPrintJob(
  
    // Disconnect the current `print_job_`.
    auto weak_this = weak_ptr_factory_.GetWeakPtr();
@@ -394,7 +395,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    if (!weak_this)
      return false;
  
-@@ -856,7 +905,7 @@ bool PrintViewManagerBase::CreateNewPrintJob(
+@@ -876,7 +926,7 @@ bool PrintViewManagerBase::CreateNewPrintJob(
  #endif
    print_job_->AddObserver(*this);
  
@@ -403,7 +404,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    return true;
  }
  
-@@ -918,6 +967,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
+@@ -938,6 +988,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
    }
  #endif
  
@@ -415,7 +416,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    if (!print_job_)
      return;
  
-@@ -925,7 +979,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
+@@ -945,7 +1000,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
      // printing_rfh_ should only ever point to a RenderFrameHost with a live
      // RenderFrame.
      DCHECK(rfh->IsRenderFrameLive());
@@ -424,7 +425,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    }
  
    print_job_->RemoveObserver(*this);
-@@ -967,7 +1021,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
+@@ -987,7 +1042,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
  }
  
  bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) {
@@ -433,7 +434,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
      return true;
  
    if (!cookie) {
-@@ -1073,7 +1127,7 @@ void PrintViewManagerBase::ReleasePrinterQuery() {
+@@ -1094,7 +1149,7 @@ void PrintViewManagerBase::ReleasePrinterQuery() {
  }
  
  void PrintViewManagerBase::CompletePrintNow(content::RenderFrameHost* rfh) {
@@ -443,7 +444,7 @@ index 331eb8e86b3b9f0a92a002f231e4c918c10a0107..843feb1915ae461593b06393cdd4d8b6
    for (auto& observer : GetObservers())
      observer.OnPrintNow(rfh);
 diff --git a/chrome/browser/printing/print_view_manager_base.h b/chrome/browser/printing/print_view_manager_base.h
-index 0b32f0c20c2bc895f1281fa6559b308252d034df..808da5c94a0dba22f86f505d2c9644c9dea61024 100644
+index 25d415022a331721ac356a55e1d23da00e494162..dad283702062c210e2306854bc346c6ab0fe6a22 100644
 --- a/chrome/browser/printing/print_view_manager_base.h
 +++ b/chrome/browser/printing/print_view_manager_base.h
 @@ -42,6 +42,8 @@ namespace printing {
@@ -490,7 +491,7 @@ index 0b32f0c20c2bc895f1281fa6559b308252d034df..808da5c94a0dba22f86f505d2c9644c9
   protected:
    explicit PrintViewManagerBase(content::WebContents* web_contents);
  
-@@ -260,7 +274,8 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
+@@ -266,7 +280,8 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
    // Runs `callback` with `params` to reply to ScriptedPrint().
    void ScriptedPrintReply(ScriptedPrintCallback callback,
                            int process_id,
@@ -500,7 +501,7 @@ index 0b32f0c20c2bc895f1281fa6559b308252d034df..808da5c94a0dba22f86f505d2c9644c9
  
    // Requests the RenderView to render all the missing pages for the print job.
    // No-op if no print job is pending. Returns true if at least one page has
-@@ -330,8 +345,11 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
+@@ -336,8 +351,11 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
    // The current RFH that is printing with a system printing dialog.
    raw_ptr<content::RenderFrameHost> printing_rfh_ = nullptr;
  
@@ -783,10 +784,10 @@ index 97151dfd451fc847472fa82d418ab1f5abd8d853..e8e963aca6c1ab0360c55da0ad0845b9
  #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
    // Set options for print preset from source PDF document.
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index c0c0821983a253bf26cc5bd4704074f79709e9c1..ec8da4b89278e4f53ae302fb6ae860383966a2bc 100644
+index 302c7a8e2b15dbfa04601651adc8f73e388d0b37..915ecd8d726cec265848502622dd13d4dff099b7 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -2792,8 +2792,9 @@ source_set("browser") {
+@@ -2806,8 +2806,9 @@ source_set("browser") {
        "//ppapi/shared_impl",
      ]
  
@@ -835,10 +836,10 @@ index 42095172d1406860249601537648fe22790ba744..361c20ef66d5c7acd34528711c52714d
    bool skip_system_calls() const {
  #if BUILDFLAG(ENABLE_OOP_PRINTING)
 diff --git a/sandbox/policy/mac/sandbox_mac.mm b/sandbox/policy/mac/sandbox_mac.mm
-index 228f84aea28ad1a0778d42aa6c96f6fad6d8a708..8b62528faa1a27a5f2f09f90bd23267e22f5d044 100644
+index d709edc697f1390a3eb086c4be16a8185bf6e66c..e6f4cdf018bb9a1cdf140a3b80eaca9accd289d8 100644
 --- a/sandbox/policy/mac/sandbox_mac.mm
 +++ b/sandbox/policy/mac/sandbox_mac.mm
-@@ -23,7 +23,6 @@
+@@ -25,7 +25,6 @@
  #include "sandbox/policy/mac/nacl_loader.sb.h"
  #include "sandbox/policy/mac/network.sb.h"
  #include "sandbox/policy/mac/ppapi.sb.h"
@@ -846,7 +847,7 @@ index 228f84aea28ad1a0778d42aa6c96f6fad6d8a708..8b62528faa1a27a5f2f09f90bd23267e
  #include "sandbox/policy/mac/print_compositor.sb.h"
  #include "sandbox/policy/mac/renderer.sb.h"
  #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-@@ -33,6 +32,10 @@
+@@ -35,6 +34,10 @@
  #include "sandbox/policy/mac/utility.sb.h"
  #include "sandbox/policy/mojom/sandbox.mojom.h"
  

+ 7 - 7
patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch

@@ -30,10 +30,10 @@ index 780b2014b5561ec7638bd56f738dfbd9a0d552d7..ad6da5fd10c44c78bc5776897360d27a
    // RenderWidgetHost on the primary main frame, and false otherwise.
    virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*);
 diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
-index 6ae9753ee4fb1422cf9ba1866b40bcd5e6a7daad..5c5ea9ca6ecb429cde7279159d147988d7aff1a6 100644
+index 46dd74c7d310c779a3ff10a0bae3368b92f5d90a..90a1ffcabca237f5a7b37a217b01a59f0e927b5d 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
-@@ -2097,6 +2097,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) {
+@@ -2099,6 +2099,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) {
  void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
    if (view_)
      view_->UpdateCursor(WebCursor(cursor));
@@ -43,10 +43,10 @@ index 6ae9753ee4fb1422cf9ba1866b40bcd5e6a7daad..5c5ea9ca6ecb429cde7279159d147988
  
  void RenderWidgetHostImpl::ShowContextMenuAtPoint(
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 5d33c006e858757ffd1d6754e90cec96ac6dcad1..01fc65db762e2ee2e8bac8ab03f6bfa32068cfd7 100644
+index e0073a21276079edb92d0b62ffb08206da4e179b..cf17df50c56acbfdc25c205eb6e11e8fd74192c0 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4639,6 +4639,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
+@@ -4717,6 +4717,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
    return text_input_manager_.get();
  }
  
@@ -59,10 +59,10 @@ index 5d33c006e858757ffd1d6754e90cec96ac6dcad1..01fc65db762e2ee2e8bac8ab03f6bfa3
      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 97b257fe0d29f0efd61966254f357aca87304366..821fc2b85a243bff7e55addd06003df0b8cdaf5a 100644
+index 36e5784b92cfd4bed6b5e638c93122e3cfbc6985..c169e05bb9ec141d158b074e149a4167377a4963 100644
 --- a/content/browser/web_contents/web_contents_impl.h
 +++ b/content/browser/web_contents/web_contents_impl.h
-@@ -970,6 +970,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+@@ -968,6 +968,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
    void SendScreenRects() override;
    void SendActiveState(bool active) override;
    TextInputManager* GetTextInputManager() override;
@@ -71,7 +71,7 @@ index 97b257fe0d29f0efd61966254f357aca87304366..821fc2b85a243bff7e55addd06003df0
        RenderWidgetHostImpl* render_widget_host) override;
    bool IsShowingContextMenuOnPage() const override;
 diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
-index 27ddea8168064c81eb59faebf6e1b516b621b358..1ff82e2783e608d3860282b9d5be816891c43ae1 100644
+index d89d18e8d2509629c0d43c199c9a4ae3a302c062..283a8f88eb46fa75dc4e5ddd396b79cb3d936259 100644
 --- a/content/public/browser/web_contents_observer.h
 +++ b/content/public/browser/web_contents_observer.h
 @@ -13,6 +13,7 @@

+ 1 - 1
patches/chromium/render_widget_host_view_base.patch

@@ -24,7 +24,7 @@ index e5d57b61367227762c1e4cab6a3d7c7ffc4c74a5..b1217d282b8c70a3afb2c5af130aed9c
      const blink::WebMouseEvent& event,
      const ui::LatencyInfo& latency) {
 diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
-index 616aafcb98225776cb6caeea2d5f03dd6fcc9a9f..e79de9fa5b303de0b0c4b6f0535e7e59c691cd37 100644
+index dba8778b5b238a5d6a608089b2eb545bff122dde..3e75eb31ceef7e9d4b94b994ba45feab4c732392 100644
 --- a/content/browser/renderer_host/render_widget_host_view_base.h
 +++ b/content/browser/renderer_host/render_widget_host_view_base.h
 @@ -26,8 +26,10 @@

+ 4 - 4
patches/chromium/render_widget_host_view_mac.patch

@@ -10,7 +10,7 @@ kinds of utility windows. Similarly for `disableAutoHideCursor`.
 Additionally, disables usage of some private APIs in MAS builds.
 
 diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
-index 031641cc5388ac4074f2f2eef8962667904dd056..74fd61af5685f2223b07975776cf8e245bf84a14 100644
+index d89c11d6727b019e9c339e1bd9e943e5451a8501..6fc595a674d7d8f0bb630ea7471ad9c09a5f9ac9 100644
 --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
 +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
 @@ -161,6 +161,15 @@ void ExtractUnderlines(NSAttributedString* string,
@@ -50,7 +50,7 @@ index 031641cc5388ac4074f2f2eef8962667904dd056..74fd61af5685f2223b07975776cf8e24
      if (view == self)
        hitSelf = YES;
      if ([view isKindOfClass:[self class]] && ![view isEqual:self] &&
-@@ -986,6 +1002,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
+@@ -995,6 +1011,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
                                eventType == NSEventTypeKeyDown &&
                                !(modifierFlags & NSEventModifierFlagCommand);
  
@@ -61,7 +61,7 @@ index 031641cc5388ac4074f2f2eef8962667904dd056..74fd61af5685f2223b07975776cf8e24
    // We only handle key down events and just simply forward other events.
    if (eventType != NSEventTypeKeyDown) {
      _hostHelper->ForwardKeyboardEvent(event, latency_info);
-@@ -1810,9 +1830,11 @@ - (NSAccessibilityRole)accessibilityRole {
+@@ -1819,9 +1839,11 @@ - (NSAccessibilityRole)accessibilityRole {
  // Since this implementation doesn't have to wait any IPC calls, this doesn't
  // make any key-typing jank. --hbono 7/23/09
  //
@@ -73,7 +73,7 @@ index 031641cc5388ac4074f2f2eef8962667904dd056..74fd61af5685f2223b07975776cf8e24
  
  - (NSArray*)validAttributesForMarkedText {
    // This code is just copied from WebKit except renaming variables.
-@@ -1821,7 +1843,10 @@ - (NSArray*)validAttributesForMarkedText {
+@@ -1830,7 +1852,10 @@ - (NSArray*)validAttributesForMarkedText {
          initWithObjects:NSUnderlineStyleAttributeName,
                          NSUnderlineColorAttributeName,
                          NSMarkedClauseSegmentAttributeName,

+ 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 352c255cf67127a90b63ef654c3f033afb30de02..58be09545e68ebdea72cccf5d3de8006af6b9375 100644
+index 2ef38efd9617c09dcdb68d972ce10ce9c70dfc14..d78fad5f8e4549c605c9d2e5b5265fba987d6794 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -1541,7 +1541,7 @@ if (is_chrome_branded && !is_android) {
+@@ -1545,7 +1545,7 @@ if (is_chrome_branded && !is_android) {
    }
  }
  
@@ -64,7 +64,7 @@ index 352c255cf67127a90b63ef654c3f033afb30de02..58be09545e68ebdea72cccf5d3de8006
    chrome_paks("packed_resources") {
      if (is_mac) {
        output_dir = "$root_gen_dir/repack"
-@@ -1570,6 +1570,12 @@ if (!is_android) {
+@@ -1574,6 +1574,12 @@ if (!is_android) {
    }
  }
  

+ 1 - 1
patches/chromium/revert_spellcheck_fully_launch_spell_check_delayed_initialization.patch

@@ -42,7 +42,7 @@ index 29d2c92f103958c419294119e35c87be18f8118e..27fa9161a2d23f5b60de42ab1cf5faa4
    RunGetLanguageListTest();
  }
 diff --git a/chrome/browser/spellchecker/spellcheck_service_unittest.cc b/chrome/browser/spellchecker/spellcheck_service_unittest.cc
-index f528150f455103828c463c28b302f671f100d533..18566653b1cdca9a4db1657f3e4b811ff720c41b 100644
+index bb93f0b890d5657702178367c97a88b5db34aeea..7eca18f1904d2b707bd1ce959eca9526dbe41b47 100644
 --- a/chrome/browser/spellchecker/spellcheck_service_unittest.cc
 +++ b/chrome/browser/spellchecker/spellcheck_service_unittest.cc
 @@ -341,18 +341,9 @@ const std::vector<std::string> SpellcheckServiceHybridUnitTestBase::

+ 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 411d6304f557a3af83ac8f43e8f92d0c9cea0aca..b299ac949e08345d24d047c8ecfb4c65004adf64 100644
+index fbab90b71cefa2b300303d256ba9b1c8f997086d..6f3af98214b991ac8a184e7ee819f2d206358982 100644
 --- a/content/renderer/render_thread_impl.cc
 +++ b/content/renderer/render_thread_impl.cc
-@@ -1344,7 +1344,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
+@@ -1336,7 +1336,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 5ac598a0d2fca5eed5f0c5b135dfcaeccb0ab7b6..3a01f5af5f1a821f9c62a3a57adbc24a1f1b9946 100644
+index 730ed8a7bae4c6ea8577ba5d1fa326f9e77dd51f..0180545ab00c5c979e4208c8823d51d6fc601713 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -1791,9 +1791,15 @@ bool RenderProcessHostImpl::Init() {

+ 5 - 5
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 9d742125434674f832daf7abd0c19fadcf8fcf24..365ced6607b030c59d468e391b91a890560b8b03 100644
+index bb5bab64b06dac5ba78893da2484bf040fa3f4ce..183f423ae81c5aa8859bd118970d1b591dcffcc2 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3092,6 +3092,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3168,6 +3168,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 9d742125434674f832daf7abd0c19fadcf8fcf24..365ced6607b030c59d468e391b91a890
    std::unique_ptr<WebContentsViewDelegate> delegate =
        GetContentClient()->browser()->GetWebContentsViewDelegate(this);
  
-@@ -3102,6 +3109,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3178,6 +3185,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
      view_ = CreateWebContentsView(this, std::move(delegate),
                                    &render_view_host_delegate_view_);
    }
@@ -35,7 +35,7 @@ index 9d742125434674f832daf7abd0c19fadcf8fcf24..365ced6607b030c59d468e391b91a890
    CHECK(view_.get());
  
 diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
-index 03fe62f14291bc027b32bce7fb716d6850a1a841..b7321dfc118bc70a6ebf25078477ab8c0c2ed6be 100644
+index eec67dd7a103ea235848a425cbe7a25f3e5aca1a..2efe41a98c97afa196408e0a06e9149d1991fb13 100644
 --- a/content/public/browser/web_contents.h
 +++ b/content/public/browser/web_contents.h
 @@ -95,10 +95,13 @@ class BrowserContext;
@@ -52,7 +52,7 @@ index 03fe62f14291bc027b32bce7fb716d6850a1a841..b7321dfc118bc70a6ebf25078477ab8c
  class WebUI;
  struct DropData;
  struct MHTMLGenerationParams;
-@@ -237,6 +240,10 @@ class WebContents : public PageNavigator,
+@@ -241,6 +244,10 @@ class WebContents : public PageNavigator,
      network::mojom::WebSandboxFlags starting_sandbox_flags =
          network::mojom::WebSandboxFlags::kNone;
  

+ 4 - 4
patches/chromium/webview_cross_drag.patch

@@ -8,10 +8,10 @@ This allows dragging and dropping between <webview>s.
 Originally landed in https://github.com/electron/libchromiumcontent/pull/267
 
 diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
-index cfe0a9f92e4ef3c58dfa7f235b2f5046d3e21ee9..454667b98a8e80a374a7e1a169c5b02b0078a818 100644
+index 67dcac149803694ef13ab471ce9b84eb7e9c07ec..35ca1d706a4e29e8533e0c962f4459e1076d9964 100644
 --- a/content/browser/web_contents/web_contents_view_aura.cc
 +++ b/content/browser/web_contents/web_contents_view_aura.cc
-@@ -918,10 +918,7 @@ bool WebContentsViewAura::IsValidDragTarget(
+@@ -919,10 +919,7 @@ bool WebContentsViewAura::IsValidDragTarget(
    // for the outermost view. Inner `WebContents` will have a
    // `WebContentsViewChildFrame` so when dragging between an inner
    // `WebContents` and its embedder the view IDs will be the same.
@@ -24,10 +24,10 @@ index cfe0a9f92e4ef3c58dfa7f235b2f5046d3e21ee9..454667b98a8e80a374a7e1a169c5b02b
  
  ////////////////////////////////////////////////////////////////////////////////
 diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser/web_contents/web_drag_dest_mac.mm
-index 9df2343f21b38288ac174c72557832a8ef6830f1..06562778aa062251eae64aa4ce5ae6d19e159b1f 100644
+index 6179af43f4cd4a34de3075841c1f5018ba7c979c..07c6fcee586bae2a4f58ccebbdad838f6b811bbd 100644
 --- a/content/browser/web_contents/web_drag_dest_mac.mm
 +++ b/content/browser/web_contents/web_drag_dest_mac.mm
-@@ -386,9 +386,7 @@ - (void)setDragStartTrackersForProcess:(int)processID {
+@@ -389,9 +389,7 @@ - (void)resetDragStartTrackers {
  }
  
  - (bool)isValidDragTarget:(content::RenderWidgetHostImpl*)targetRWH {

+ 2 - 2
patches/chromium/webview_fullscreen.patch

@@ -14,10 +14,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 68436bab8c7bcd15a151b3d3e8856d2dfcb0b82c..af4b058f46e7fc098bd59a1d8c347cd9aebe5985 100644
+index df6bd5e1b23e66e3202737bacd8f14fc9c16b367..e57b9ad7f5510326e37f364cceb0e02c8f776df8 100644
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -6554,6 +6554,17 @@ void RenderFrameHostImpl::EnterFullscreen(
+@@ -6538,6 +6538,17 @@ void RenderFrameHostImpl::EnterFullscreen(
      }
    }
  

+ 6 - 6
patches/chromium/worker_context_will_destroy.patch

@@ -26,10 +26,10 @@ index 09846e00f1a75b54ddfe9434521add4ce3b20e97..25b01a54932108c5a888607e19d76f23
    // An empty URL is returned if the URL is not overriden.
    virtual GURL OverrideFlashEmbedWithHTML(const GURL& url);
 diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
-index ab6a83247fb18c74acb41c173eacf1a694bfed0d..4a1bdc7bd359b2ebf650a181d11f7fa5bba28347 100644
+index fa981097b870ee30aa2bc5cf5da75145856efea2..23c896443007e06509d232b1553f3bbe7e2d8c1a 100644
 --- a/content/renderer/renderer_blink_platform_impl.cc
 +++ b/content/renderer/renderer_blink_platform_impl.cc
-@@ -878,6 +878,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
+@@ -879,6 +879,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
    WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
  }
  
@@ -43,10 +43,10 @@ index ab6a83247fb18c74acb41c173eacf1a694bfed0d..4a1bdc7bd359b2ebf650a181d11f7fa5
      const v8::Local<v8::Context>& worker) {
    GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread(
 diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
-index 76ca0135501ae0ee2376753a2652b8bc0a2c5495..9968c2f41c84a768603f66326c75e522af992338 100644
+index 18b602165f303a9350cb78d98535212d82b0d59e..ad182780dedc1ad0906bd4e25250388536705ca1 100644
 --- a/content/renderer/renderer_blink_platform_impl.h
 +++ b/content/renderer/renderer_blink_platform_impl.h
-@@ -183,6 +183,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
+@@ -184,6 +184,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
    void DidStartWorkerThread() override;
    void WillStopWorkerThread() override;
    void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -55,10 +55,10 @@ index 76ca0135501ae0ee2376753a2652b8bc0a2c5495..9968c2f41c84a768603f66326c75e522
        const blink::WebSecurityOrigin& script_origin) override;
    blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel()
 diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
-index c1ddfa1e45740681a5e7359ce616691b6275098b..65c86f82956488bce29e3b1a8e04a6254fb31501 100644
+index eb0652f1c2b8d1f0ebf48948c5cafe4af91cc0ff..71a3904584f90bfd24570f11f1c23fe0ee5e734e 100644
 --- a/third_party/blink/public/platform/platform.h
 +++ b/third_party/blink/public/platform/platform.h
-@@ -644,6 +644,7 @@ class BLINK_PLATFORM_EXPORT Platform {
+@@ -651,6 +651,7 @@ class BLINK_PLATFORM_EXPORT Platform {
    virtual void DidStartWorkerThread() {}
    virtual void WillStopWorkerThread() {}
    virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}

+ 6 - 6
patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch

@@ -35,10 +35,10 @@ index 25b01a54932108c5a888607e19d76f2301e05b76..209b0a947d16118f1922be7063c0862e
    // from the worker thread.
    virtual void WillDestroyWorkerContextOnWorkerThread(
 diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
-index 4a1bdc7bd359b2ebf650a181d11f7fa5bba28347..1c02d470cc409d6f857221adf655fe7ab8057c48 100644
+index 23c896443007e06509d232b1553f3bbe7e2d8c1a..e15e71b7ad7cb83ce408b2e8b4aaa65e4383b291 100644
 --- a/content/renderer/renderer_blink_platform_impl.cc
 +++ b/content/renderer/renderer_blink_platform_impl.cc
-@@ -890,6 +890,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
+@@ -891,6 +891,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
        worker);
  }
  
@@ -52,10 +52,10 @@ index 4a1bdc7bd359b2ebf650a181d11f7fa5bba28347..1c02d470cc409d6f857221adf655fe7a
      const blink::WebSecurityOrigin& script_origin) {
    return GetContentClient()->renderer()->AllowScriptExtensionForServiceWorker(
 diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
-index 9968c2f41c84a768603f66326c75e522af992338..18dfb48815853d605bd68382b0fd76958b8e7930 100644
+index ad182780dedc1ad0906bd4e25250388536705ca1..9b8f848ae4e9476020b65d31112e005667403ed6 100644
 --- a/content/renderer/renderer_blink_platform_impl.h
 +++ b/content/renderer/renderer_blink_platform_impl.h
-@@ -183,6 +183,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
+@@ -184,6 +184,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
    void DidStartWorkerThread() override;
    void WillStopWorkerThread() override;
    void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -65,10 +65,10 @@ index 9968c2f41c84a768603f66326c75e522af992338..18dfb48815853d605bd68382b0fd7695
    bool AllowScriptExtensionForServiceWorker(
        const blink::WebSecurityOrigin& script_origin) override;
 diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
-index 65c86f82956488bce29e3b1a8e04a6254fb31501..b02848865d5a8ab81bbfaeb4c45c59fa4d12c753 100644
+index 71a3904584f90bfd24570f11f1c23fe0ee5e734e..919cbdb2eab03c6ece19503c74beb0106fa2f74a 100644
 --- a/third_party/blink/public/platform/platform.h
 +++ b/third_party/blink/public/platform/platform.h
-@@ -644,6 +644,8 @@ class BLINK_PLATFORM_EXPORT Platform {
+@@ -651,6 +651,8 @@ class BLINK_PLATFORM_EXPORT Platform {
    virtual void DidStartWorkerThread() {}
    virtual void WillStopWorkerThread() {}
    virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}

+ 2 - 2
patches/v8/build_gn.patch

@@ -9,7 +9,7 @@ necessary for native modules to load.
 Also, some fixes relating to mksnapshot on ARM.
 
 diff --git a/BUILD.gn b/BUILD.gn
-index e77de6b3fdca9b860cdf14ee1d853c8224420258..c36b6c59639dd96a921e43c1935650fc0ce179d5 100644
+index e09bf653231b5a30867187742e832d44373103ac..ce8d29bace4f2c909966288eabfeda980235fa62 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
 @@ -644,7 +644,7 @@ config("internal_config") {
@@ -21,7 +21,7 @@ index e77de6b3fdca9b860cdf14ee1d853c8224420258..c36b6c59639dd96a921e43c1935650fc
      defines += [ "BUILDING_V8_SHARED" ]
    }
  
-@@ -6156,7 +6156,7 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -6198,7 +6198,7 @@ if (current_toolchain == v8_generator_toolchain) {
        "src/interpreter/bytecodes.h",
      ]
  

+ 2 - 2
patches/v8/dcheck.patch

@@ -6,10 +6,10 @@ Subject: dcheck.patch
 https://github.com/auchenberg/volkswagen
 
 diff --git a/src/api/api.cc b/src/api/api.cc
-index 3be35a12516f6c485504ba351d767bd75d7184d2..a2493111b8d9a013042adbf7c31c66e0cc58facd 100644
+index e51bd24479d60800a11970e7db1bfeb07902bc34..8543edd43ec69256dd8dd1cdb17a5f4983489618 100644
 --- a/src/api/api.cc
 +++ b/src/api/api.cc
-@@ -9449,7 +9449,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
+@@ -9476,7 +9476,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
  }
  
  void Isolate::PerformMicrotaskCheckpoint() {

+ 1 - 1
patches/v8/do_not_export_private_v8_symbols_on_windows.patch

@@ -12,7 +12,7 @@ This patch can be safely removed if, when it is removed, `node.lib` does not
 contain any standard C++ library exports (e.g. `std::ostringstream`).
 
 diff --git a/BUILD.gn b/BUILD.gn
-index 128c2f43a52a26a6382ee21126ad13f1bf98421f..71d5872512267eb3dbe7b7517d3118001dea55b5 100644
+index 9dd35b8665664fd984386593a0e8f7917ec57cb4..d25d8b52ad8effa6679166180b197e200f485eeb 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
 @@ -644,6 +644,10 @@ config("internal_config") {

+ 2 - 2
patches/v8/export_symbols_needed_for_windows_build.patch

@@ -6,10 +6,10 @@ Subject: Export symbols needed for Windows build
 These symbols are required to build v8 with BUILD_V8_SHARED on Windows.
 
 diff --git a/src/objects/objects.h b/src/objects/objects.h
-index 1910d947bea5ba8bd28c53b3bc6d875b365f21c9..a40a169ce5d2b14e4b973cc1c5e6b4d986cbb314 100644
+index b50909b79bf32337938646dd4531afcb865dc4c5..2fa31a912c75a832cc0e051dfd54f4cd1ac50a79 100644
 --- a/src/objects/objects.h
 +++ b/src/objects/objects.h
-@@ -958,7 +958,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER };
+@@ -968,7 +968,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER };
  // Utility superclass for stack-allocated objects that must be updated
  // on gc.  It provides two ways for the gc to update instances, either
  // iterating or updating after gc.

+ 2 - 2
patches/v8/expose_mksnapshot.patch

@@ -6,10 +6,10 @@ Subject: expose_mksnapshot.patch
 Needed in order to target mksnapshot for mksnapshot zip.
 
 diff --git a/BUILD.gn b/BUILD.gn
-index c36b6c59639dd96a921e43c1935650fc0ce179d5..128c2f43a52a26a6382ee21126ad13f1bf98421f 100644
+index ce8d29bace4f2c909966288eabfeda980235fa62..9dd35b8665664fd984386593a0e8f7917ec57cb4 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -6168,7 +6168,6 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -6210,7 +6210,6 @@ if (current_toolchain == v8_generator_toolchain) {
  
  if (current_toolchain == v8_snapshot_toolchain) {
    v8_executable("mksnapshot") {

+ 4 - 4
patches/v8/fix_build_deprecated_attribute_for_older_msvc_versions.patch

@@ -6,10 +6,10 @@ Subject: fix: usage of c++ [[deprecated]] attribute for older msvc versions
 This attribute can only be used in all contexts in Visual Studio 2019
 
 diff --git a/include/v8config.h b/include/v8config.h
-index e743323860a4314d74ad2c5f86560afb72870c5c..42482fc214fb21ab686b41171dc0f741f256b748 100644
+index c79cd04e0f16bcc2bb6e351f54d4d21139645ce8..900bf18ecec88d6482b0291019bdc01f6934a000 100644
 --- a/include/v8config.h
 +++ b/include/v8config.h
-@@ -492,10 +492,13 @@ path. Add it with -I<path> to the command line
+@@ -503,10 +503,13 @@ path. Add it with -I<path> to the command line
  # define V8_NOINLINE /* NOT SUPPORTED */
  #endif
  
@@ -25,7 +25,7 @@ index e743323860a4314d74ad2c5f86560afb72870c5c..42482fc214fb21ab686b41171dc0f741
  #else
  # define V8_DEPRECATED(message)
  #endif
-@@ -503,7 +506,11 @@ path. Add it with -I<path> to the command line
+@@ -514,7 +517,11 @@ path. Add it with -I<path> to the command line
  
  // A macro (V8_DEPRECATE_SOON) to make it easier to see what will be deprecated.
  #if defined(V8_IMMINENT_DEPRECATION_WARNINGS)
@@ -38,7 +38,7 @@ index e743323860a4314d74ad2c5f86560afb72870c5c..42482fc214fb21ab686b41171dc0f741
  #else
  # define V8_DEPRECATE_SOON(message)
  #endif
-@@ -537,7 +544,7 @@ path. Add it with -I<path> to the command line
+@@ -548,7 +555,7 @@ path. Add it with -I<path> to the command line
    END_ALLOW_USE_DEPRECATED()
  
  

+ 4 - 4
patches/v8/revert_runtime_dhceck_terminating_exception_in_microtasks.patch

@@ -18,10 +18,10 @@ index f58636fee555d782e18b7521c0c4f28ed60b3a52..6b0c63b34ff09f70cb9a4fe419f3b9bb
    StoreRoot(RootIndex::kCurrentMicrotask, microtask);
    TNode<IntPtrT> saved_entered_context_count = GetEnteredContextCount();
 diff --git a/src/codegen/code-stub-assembler.cc b/src/codegen/code-stub-assembler.cc
-index b2db5272e363f95d19e19a85183051045fe9170b..4e4a5fd3a9a1ddd929c4aa6a7635146a3b8e84c4 100644
+index 55a18b57fbe50d4dcc8faa5c5e5806817191f3ca..4065831f93cb65b52387868c3cd1675577c07025 100644
 --- a/src/codegen/code-stub-assembler.cc
 +++ b/src/codegen/code-stub-assembler.cc
-@@ -6397,12 +6397,6 @@ void CodeStubAssembler::SetPendingMessage(TNode<HeapObject> message) {
+@@ -6390,12 +6390,6 @@ void CodeStubAssembler::SetPendingMessage(TNode<HeapObject> message) {
    StoreFullTaggedNoWriteBarrier(pending_message, message);
  }
  
@@ -35,10 +35,10 @@ index b2db5272e363f95d19e19a85183051045fe9170b..4e4a5fd3a9a1ddd929c4aa6a7635146a
                                                    int type) {
    return Word32Equal(instance_type, Int32Constant(type));
 diff --git a/src/codegen/code-stub-assembler.h b/src/codegen/code-stub-assembler.h
-index 6f56911321de5fabe3ebd3c07dabacf0f9ed389a..c8aa1b3142966633db3d763159dbb877a9389829 100644
+index f7cdced051d23a755158bb73c91057bb1d801830..183bae89819584d48fc61e06cf9cf9792b02a61a 100644
 --- a/src/codegen/code-stub-assembler.h
 +++ b/src/codegen/code-stub-assembler.h
-@@ -2589,7 +2589,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
+@@ -2583,7 +2583,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
  
    TNode<HeapObject> GetPendingMessage();
    void SetPendingMessage(TNode<HeapObject> message);

+ 2 - 4
shell/browser/api/electron_api_net_log.cc

@@ -10,7 +10,6 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/files/file_path.h"
-#include "base/task/task_runner_util.h"
 #include "base/task/thread_pool.h"
 #include "chrome/browser/browser_process.h"
 #include "components/net_log/chrome_net_log.h"
@@ -143,9 +142,8 @@ v8::Local<v8::Promise> NetLog::StartLogging(base::FilePath log_path,
   net_log_exporter_.set_disconnect_handler(
       base::BindOnce(&NetLog::OnConnectionError, base::Unretained(this)));
 
-  base::PostTaskAndReplyWithResult(
-      file_task_runner_.get(), FROM_HERE,
-      base::BindOnce(OpenFileForWriting, log_path),
+  file_task_runner_->PostTaskAndReplyWithResult(
+      FROM_HERE, base::BindOnce(OpenFileForWriting, log_path),
       base::BindOnce(&NetLog::StartNetLogAfterCreateFile,
                      weak_ptr_factory_.GetWeakPtr(), capture_mode,
                      max_file_size, std::move(custom_constants)));

+ 6 - 6
shell/browser/api/electron_api_web_contents.cc

@@ -641,6 +641,7 @@ WebContents::Type GetTypeFromViewType(extensions::mojom::ViewType view_type) {
     case extensions::mojom::ViewType::kExtensionGuest:
     case extensions::mojom::ViewType::kTabContents:
     case extensions::mojom::ViewType::kOffscreenDocument:
+    case extensions::mojom::ViewType::kExtensionSidePanel:
     case extensions::mojom::ViewType::kInvalid:
       return WebContents::Type::kRemote;
   }
@@ -3755,8 +3756,8 @@ void WebContents::DevToolsAddFileSystem(
   base::Value::Dict file_system_value = CreateFileSystemValue(file_system);
 
   auto* pref_service = GetPrefService(GetDevToolsWebContents());
-  DictionaryPrefUpdate update(pref_service, prefs::kDevToolsFileSystemPaths);
-  update.Get()->SetKey(path.AsUTF8Unsafe(), base::Value(type));
+  ScopedDictPrefUpdate update(pref_service, prefs::kDevToolsFileSystemPaths);
+  update->Set(path.AsUTF8Unsafe(), type);
   std::string error = "";  // No error
   inspectable_web_contents_->CallClientFunction(
       "DevToolsAPI", "fileSystemAdded", base::Value(error),
@@ -3773,8 +3774,8 @@ void WebContents::DevToolsRemoveFileSystem(
       file_system_path);
 
   auto* pref_service = GetPrefService(GetDevToolsWebContents());
-  DictionaryPrefUpdate update(pref_service, prefs::kDevToolsFileSystemPaths);
-  update.Get()->RemoveKey(path);
+  ScopedDictPrefUpdate update(pref_service, prefs::kDevToolsFileSystemPaths);
+  update->Remove(path);
 
   inspectable_web_contents_->CallClientFunction(
       "DevToolsAPI", "fileSystemRemoved", base::Value(path));
@@ -3794,8 +3795,7 @@ void WebContents::DevToolsIndexPath(
   std::unique_ptr<base::Value> parsed_excluded_folders =
       base::JSONReader::ReadDeprecated(excluded_folders_message);
   if (parsed_excluded_folders && parsed_excluded_folders->is_list()) {
-    for (const base::Value& folder_path :
-         parsed_excluded_folders->GetListDeprecated()) {
+    for (const base::Value& folder_path : parsed_excluded_folders->GetList()) {
       if (folder_path.is_string())
         excluded_folders.push_back(folder_path.GetString());
     }

+ 1 - 1
shell/browser/api/electron_api_web_contents_impl.cc

@@ -27,7 +27,7 @@ void WebContents::DetachFromOuterFrame() {
   if (frame_tree_node_id != content::FrameTreeNode::kFrameTreeNodeInvalidId) {
     auto* node = content::FrameTreeNode::GloballyFindByID(frame_tree_node_id);
     DCHECK(node->parent());
-    node->frame_tree()->RemoveFrame(node);
+    node->frame_tree().RemoveFrame(node);
   }
 }
 

+ 1 - 1
shell/browser/browser_linux.cc

@@ -205,7 +205,7 @@ void Browser::ShowAboutPanel() {
 
   if ((val = opts.FindListKey("authors"))) {
     std::vector<const char*> cstrs;
-    for (const auto& authorVal : val->GetListDeprecated()) {
+    for (const auto& authorVal : val->GetList()) {
       if (authorVal.is_string()) {
         cstrs.push_back(authorVal.GetString().c_str());
       }

+ 5 - 0
shell/browser/browser_process_impl.cc

@@ -11,6 +11,7 @@
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/path_service.h"
+#include "chrome/browser/browser_process.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "components/os_crypt/os_crypt.h"
@@ -290,6 +291,10 @@ HidPolicyAllowedDevices* BrowserProcessImpl::hid_policy_allowed_devices() {
   return nullptr;
 }
 
+HidSystemTrayIcon* BrowserProcessImpl::hid_system_tray_icon() {
+  return nullptr;
+}
+
 void BrowserProcessImpl::SetSystemLocale(const std::string& locale) {
   system_locale_ = locale;
 }

+ 1 - 0
shell/browser/browser_process_impl.h

@@ -95,6 +95,7 @@ class BrowserProcessImpl : public BrowserProcess {
   resource_coordinator::TabManager* GetTabManager() override;
   SerialPolicyAllowedPorts* serial_policy_allowed_ports() override;
   HidPolicyAllowedDevices* hid_policy_allowed_devices() override;
+  HidSystemTrayIcon* hid_system_tray_icon() override;
   void CreateDevToolsProtocolHandler() override {}
   void CreateDevToolsAutoOpener() override {}
   void set_background_mode_manager_for_test(

+ 4 - 4
shell/browser/electron_download_manager_delegate.cc

@@ -274,7 +274,7 @@ void ElectronDownloadManagerDelegate::OnDownloadPathGenerated(
     std::move(callback).Run(
         path, download::DownloadItem::TARGET_DISPOSITION_PROMPT,
         download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-        item->GetMixedContentStatus(), path, base::FilePath(),
+        item->GetInsecureDownloadStatus(), path, base::FilePath(),
         std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE);
   }
 }
@@ -314,7 +314,7 @@ void ElectronDownloadManagerDelegate::OnDownloadSaveDialogDone(
   std::move(download_callback)
       .Run(path, download::DownloadItem::TARGET_DISPOSITION_PROMPT,
            download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-           item->GetMixedContentStatus(), path, base::FilePath(),
+           item->GetInsecureDownloadStatus(), path, base::FilePath(),
            std::string() /*mime_type*/, interrupt_reason);
 }
 
@@ -333,7 +333,7 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget(
         download->GetForcedFilePath(),
         download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
         download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-        download::DownloadItem::MixedContentStatus::UNKNOWN,
+        download::DownloadItem::InsecureDownloadStatus::UNKNOWN,
         download->GetForcedFilePath(), base::FilePath(),
         std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE);
     return true;
@@ -346,7 +346,7 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget(
     std::move(*callback).Run(
         save_path, download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
         download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
-        download::DownloadItem::MixedContentStatus::UNKNOWN, save_path,
+        download::DownloadItem::InsecureDownloadStatus::UNKNOWN, save_path,
         base::FilePath(), std::string() /*mime_type*/,
         download::DOWNLOAD_INTERRUPT_REASON_NONE);
     return true;

+ 4 - 7
shell/browser/extensions/electron_extension_loader.cc

@@ -14,7 +14,6 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/sequenced_task_runner.h"
-#include "base/task/task_runner_util.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
 #include "extensions/browser/extension_file_task_runner.h"
@@ -104,9 +103,8 @@ void ElectronExtensionLoader::LoadExtension(
     const base::FilePath& extension_dir,
     int load_flags,
     base::OnceCallback<void(const Extension*, const std::string&)> cb) {
-  base::PostTaskAndReplyWithResult(
-      GetExtensionFileTaskRunner().get(), FROM_HERE,
-      base::BindOnce(&LoadUnpacked, extension_dir, load_flags),
+  GetExtensionFileTaskRunner()->PostTaskAndReplyWithResult(
+      FROM_HERE, base::BindOnce(&LoadUnpacked, extension_dir, load_flags),
       base::BindOnce(&ElectronExtensionLoader::FinishExtensionLoad,
                      weak_factory_.GetWeakPtr(), std::move(cb)));
 }
@@ -206,9 +204,8 @@ void ElectronExtensionLoader::LoadExtensionForReload(
   // when loading this extension and retain it here. As is, reloading an
   // extension will cause the file access permission to be dropped.
   int load_flags = Extension::FOLLOW_SYMLINKS_ANYWHERE;
-  base::PostTaskAndReplyWithResult(
-      GetExtensionFileTaskRunner().get(), FROM_HERE,
-      base::BindOnce(&LoadUnpacked, path, load_flags),
+  GetExtensionFileTaskRunner()->PostTaskAndReplyWithResult(
+      FROM_HERE, base::BindOnce(&LoadUnpacked, path, load_flags),
       base::BindOnce(&ElectronExtensionLoader::FinishExtensionReload,
                      weak_factory_.GetWeakPtr(), extension_id));
   did_schedule_reload_ = true;

+ 7 - 0
shell/browser/feature_list.cc

@@ -16,6 +16,7 @@
 #include "media/base/media_switches.h"
 #include "net/base/features.h"
 #include "services/network/public/cpp/features.h"
+#include "third_party/blink/renderer/platform/scheduler/common/features.h"  // nogncheck
 
 #if BUILDFLAG(IS_MAC)
 #include "device/base/features.h"  // nogncheck
@@ -36,6 +37,12 @@ void InitializeFeatureList() {
   disable_features +=
       std::string(",") + features::kSpareRendererForSitePerProcess.name;
 
+  // Microtask queues per WindowAgent causes issues with Node, so disable
+  // this feature for now.  See
+  // https://chromium-review.googlesource.com/c/chromium/src/+/4003663
+  disable_features +=
+      std::string(",") + blink::scheduler::kMicrotaskQueuePerWindowAgent.name;
+
 #if BUILDFLAG(IS_MAC)
   // Needed for WebUSB implementation
   enable_features += std::string(",") + device::kNewUsbBackend.name;

+ 4 - 0
shell/browser/hid/electron_hid_delegate.h

@@ -61,6 +61,10 @@ class ElectronHidDelegate : public content::HidDelegate,
   void OnDeviceChanged(const device::mojom::HidDeviceInfo&) override;
   void OnHidManagerConnectionError() override;
   void OnHidChooserContextShutdown() override;
+  void IncrementConnectionCount(content::BrowserContext* browser_context,
+                                const url::Origin& origin) override {}
+  void DecrementConnectionCount(content::BrowserContext* browser_context,
+                                const url::Origin& origin) override {}
 
   void DeleteControllerForFrame(content::RenderFrameHost* render_frame_host);
 

+ 1 - 1
shell/browser/net/electron_url_loader_factory.cc

@@ -122,7 +122,7 @@ network::mojom::URLResponseHeadPtr ToResponseHead(
         head->headers->AddHeader(iter.first, iter.second.GetString());
       } else if (iter.second.is_list()) {
         // key: [values...]
-        for (const auto& item : iter.second.GetListDeprecated()) {
+        for (const auto& item : iter.second.GetList()) {
           if (item.is_string())
             head->headers->AddHeader(iter.first, item.GetString());
         }

+ 6 - 6
shell/browser/ui/inspectable_web_contents.cc

@@ -875,18 +875,18 @@ void InspectableWebContents::GetPreference(DispatchCallback callback,
 
 void InspectableWebContents::SetPreference(const std::string& name,
                                            const std::string& value) {
-  DictionaryPrefUpdate update(pref_service_, kDevToolsPreferences);
-  update.Get()->SetKey(name, base::Value(value));
+  ScopedDictPrefUpdate update(pref_service_, kDevToolsPreferences);
+  update->Set(name, base::Value(value));
 }
 
 void InspectableWebContents::RemovePreference(const std::string& name) {
-  DictionaryPrefUpdate update(pref_service_, kDevToolsPreferences);
-  update.Get()->RemoveKey(name);
+  ScopedDictPrefUpdate update(pref_service_, kDevToolsPreferences);
+  update->Remove(name);
 }
 
 void InspectableWebContents::ClearPreferences() {
-  DictionaryPrefUpdate unsynced_update(pref_service_, kDevToolsPreferences);
-  unsynced_update->GetDict().clear();
+  ScopedDictPrefUpdate unsynced_update(pref_service_, kDevToolsPreferences);
+  unsynced_update->clear();
 }
 
 void InspectableWebContents::GetSyncInformation(DispatchCallback callback) {

+ 6 - 10
shell/browser/zoom_level_delegate.cc

@@ -57,8 +57,8 @@ void ZoomLevelDelegate::SetDefaultZoomLevelPref(double level) {
   if (blink::PageZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel()))
     return;
 
-  DictionaryPrefUpdate update(pref_service_, kPartitionDefaultZoomLevel);
-  update->SetDoubleKey(partition_key_, level);
+  ScopedDictPrefUpdate update(pref_service_, kPartitionDefaultZoomLevel);
+  update->Set(partition_key_, level);
   host_zoom_map_->SetDefaultZoomLevel(level);
 }
 
@@ -76,10 +76,8 @@ void ZoomLevelDelegate::OnZoomLevelChanged(
     return;
 
   double level = change.zoom_level;
-  DictionaryPrefUpdate update(pref_service_, kPartitionPerHostZoomLevels);
-  base::Value* host_zoom_update = update.Get();
-  DCHECK(host_zoom_update);
-  base::Value::Dict& host_zoom_dictionaries = host_zoom_update->GetDict();
+  ScopedDictPrefUpdate update(pref_service_, kPartitionPerHostZoomLevels);
+  base::Value::Dict& host_zoom_dictionaries = update.Get();
 
   bool modification_is_removal =
       blink::PageZoomValuesEqual(level, host_zoom_map_->GetDefaultZoomLevel());
@@ -124,10 +122,8 @@ void ZoomLevelDelegate::ExtractPerHostZoomLevels(
   // Sanitize prefs to remove entries that match the default zoom level and/or
   // have an empty host.
   {
-    DictionaryPrefUpdate update(pref_service_, kPartitionPerHostZoomLevels);
-    base::Value* host_zoom_dictionaries = update.Get();
-    base::Value* sanitized_host_zoom_dictionary =
-        host_zoom_dictionaries->FindDictKey(partition_key_);
+    ScopedDictPrefUpdate update(pref_service_, kPartitionPerHostZoomLevels);
+    base::Value* sanitized_host_zoom_dictionary = update->Find(partition_key_);
     if (sanitized_host_zoom_dictionary) {
       for (const std::string& s : keys_to_remove)
         sanitized_host_zoom_dictionary->RemoveKey(s);

+ 1 - 0
shell/common/api/electron_api_native_image.cc

@@ -11,6 +11,7 @@
 
 #include "base/files/file_util.h"
 #include "base/logging.h"
+#include "base/memory/ref_counted_memory.h"
 #include "base/strings/pattern.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"

+ 1 - 2
shell/common/gin_converters/extension_converter.cc

@@ -22,8 +22,7 @@ v8::Local<v8::Value> Converter<const extensions::Extension*>::ToV8(
   dict.Set("path", extension->path());
   dict.Set("url", extension->url());
   dict.Set("version", extension->VersionString());
-  dict.Set("manifest",
-           *static_cast<const base::Value*>(extension->manifest()->value()));
+  dict.Set("manifest", extension->manifest()->value()->Clone());
 
   return gin::ConvertToV8(isolate, dict);
 }