Browse Source

chore: bump chromium to 124.0.6353.0 (main) (#41566)

* chore: bump chromium in DEPS to 124.0.6353.0

* chore: update patches

* 5365462: Add missing perfetto::Flow and TRACE_EVENT includes

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

* 5356336: Ensure destruction of mojo channel when destructing KeySystemsImpl

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

* 5332839: [Extensions] Register NativeHandlers with the RendererAPIProvider

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

* 5148827: Add permission types for keyboard lock and pointer lock [1/N]

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

* 5358818: Revert "[object] Fast path for adding props with existing transition"

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

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <[email protected]>
electron-roller[bot] 1 year ago
parent
commit
26752d3a06
37 changed files with 195 additions and 203 deletions
  1. 1 1
      DEPS
  2. 1 0
      patches/chromium/.patches
  3. 3 3
      patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch
  4. 6 6
      patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch
  5. 6 6
      patches/chromium/can_create_window.patch
  6. 7 7
      patches/chromium/chore_add_electron_deps_to_gitignores.patch
  7. 3 3
      patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch
  8. 4 4
      patches/chromium/disable_hidden.patch
  9. 4 4
      patches/chromium/expose_setuseragent_on_networkcontext.patch
  10. 3 3
      patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch
  11. 6 6
      patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch
  12. 72 0
      patches/chromium/fix_add_missing_perfetto_flow_and_trace_event_includes.patch
  13. 3 3
      patches/chromium/fix_disabling_background_throttling_in_compositor.patch
  14. 4 4
      patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch
  15. 1 1
      patches/chromium/fix_restore_original_resize_performance_on_macos.patch
  16. 1 1
      patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch
  17. 5 5
      patches/chromium/mas_avoid_private_macos_api_usage.patch.patch
  18. 6 6
      patches/chromium/network_service_allow_remote_certificate_verification_logic.patch
  19. 2 2
      patches/chromium/printing.patch
  20. 7 7
      patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch
  21. 1 1
      patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch
  22. 1 1
      patches/chromium/scroll_bounce_flag.patch
  23. 6 6
      patches/chromium/web_contents.patch
  24. 4 4
      patches/chromium/webview_fullscreen.patch
  25. 2 2
      patches/chromium/worker_context_will_destroy.patch
  26. 2 2
      patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch
  27. 2 2
      patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch
  28. 0 1
      patches/node/.patches
  29. 0 80
      patches/node/fast_path_for_adding_props_with_existing_transition.patch
  30. 2 2
      patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch
  31. 6 7
      shell/browser/web_contents_permission_helper.cc
  32. 2 4
      shell/browser/web_contents_permission_helper.h
  33. 4 4
      shell/common/gin_converters/content_converter.cc
  34. 6 5
      shell/renderer/extensions/electron_extensions_renderer_api_provider.cc
  35. 7 7
      shell/renderer/extensions/electron_extensions_renderer_api_provider.h
  36. 3 2
      shell/renderer/renderer_client_base.cc
  37. 2 1
      shell/renderer/renderer_client_base.h

+ 1 - 1
DEPS

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

+ 1 - 0
patches/chromium/.patches

@@ -129,3 +129,4 @@ build_run_reclient_cfg_generator_after_chrome.patch
 fix_suppress_clang_-wimplicit-const-int-float-conversion_in.patch
 fix_getcursorscreenpoint_wrongly_returns_0_0.patch
 fix_add_support_for_skipping_first_2_no-op_refreshes_in_thumb_cap.patch
+fix_add_missing_perfetto_flow_and_trace_event_includes.patch

+ 3 - 3
patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch

@@ -6,7 +6,7 @@ Subject: allow disabling blink scheduler throttling per RenderView
 This allows us to disable throttling for hidden windows.
 
 diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
-index c32059af794851fdea8aae15157f05acdcc60e0a..92340d0aa8d893fc781ed59cc4aa51b5543de6d9 100644
+index 32b77897ef3669727fe05a1f3603a5f8335ec3cf..f1948d352bd71da5ec17d734e343bfd656d7ed69 100644
 --- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
 +++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
 @@ -163,6 +163,12 @@ class MockPageBroadcast : public blink::mojom::PageBroadcast {
@@ -23,7 +23,7 @@ index c32059af794851fdea8aae15157f05acdcc60e0a..92340d0aa8d893fc781ed59cc4aa51b5
      return receiver_.BindNewEndpointAndPassDedicatedRemote();
    }
 diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
-index 6ca0fb5ee9e96ecf86486cbc6103b5452fdb88a0..32a797530b20640ff1540f7bee71e9a9bbe52ed7 100644
+index 57926e0d557fdb3e8f46a096e335ecb5d1d2e13f..b0438d6077a3323785175424a3701ba4ae5e523d 100644
 --- a/content/browser/renderer_host/render_view_host_impl.cc
 +++ b/content/browser/renderer_host/render_view_host_impl.cc
 @@ -714,6 +714,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
@@ -51,7 +51,7 @@ index a94977d7a76ae9952bbba0efe59a7cb5021a1c84..11c4f890eaeae1329ca5a6634a698aef
    void SendRendererPreferencesToRenderer(
        const blink::RendererPreferences& preferences);
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index 4dbb03bd4f6b7a46073c8cc1568151f23583deb6..3d80ec348dc4c2519c6bd3eed0e1c5da3b39680d 100644
+index 4c78692adb777b8e0a8fa2e2350775b7e2ef676a..fa18900586854c5d6b936d6b9e6fac1c9e571bce 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -553,8 +553,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) {

+ 6 - 6
patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch

@@ -33,10 +33,10 @@ index 4af5b8d5da1c0ae4c5603f49e3a1dbfec422f55e..d21e450d1ee387a72bbe601412856260
            "//base",
            "//build:branding_buildflags",
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
-index 66229b455316956dbb7e290b9d5353d01d360273..57fd98fbb60036ab497104e44934cae3763754ae 100644
+index 55cf82494dcdb97adda4816c349e224eb33213ed..731f56fcabacf4280bab9a7f7fae14ae96277add 100644
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -4789,7 +4789,7 @@ static_library("browser") {
+@@ -4791,7 +4791,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 66229b455316956dbb7e290b9d5353d01d360273..57fd98fbb60036ab497104e44934cae3
        sources += [ "certificate_viewer_stub.cc" ]
      }
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
-index 5476ff5083ba35d2d93d93213bde4bb3053a1766..683188a67f3aef723179007f525ac882bae7fa99 100644
+index 07795d851c5a8d55f94d17dac471c287837e0863..5bebaf9fe6a845b1df8364a332857bf5dc49ee70 100644
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -7177,9 +7177,12 @@ test("unit_tests") {
+@@ -7179,9 +7179,12 @@ test("unit_tests") {
        "//chrome/browser/safe_browsing/incident_reporting/verifier_test:verifier_test_dll_2",
      ]
  
@@ -63,7 +63,7 @@ index 5476ff5083ba35d2d93d93213bde4bb3053a1766..683188a67f3aef723179007f525ac882
        "//chrome//services/util_win:unit_tests",
        "//chrome/app:chrome_dll_resources",
        "//chrome/app:win_unit_tests",
-@@ -8155,6 +8158,10 @@ test("unit_tests") {
+@@ -8160,6 +8163,10 @@ test("unit_tests") {
        "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
      ]
  
@@ -74,7 +74,7 @@ index 5476ff5083ba35d2d93d93213bde4bb3053a1766..683188a67f3aef723179007f525ac882
      sources += [
        # The importer code is not used on Android.
        "../common/importer/firefox_importer_utils_unittest.cc",
-@@ -8224,7 +8231,6 @@ test("unit_tests") {
+@@ -8229,7 +8236,6 @@ test("unit_tests") {
      }
  
      deps += [

+ 6 - 6
patches/chromium/can_create_window.patch

@@ -21,10 +21,10 @@ index 441cf9208e50ed4fab3e6392996bdbb511b0ad76..39b46b4f5bb3adb18d903c0ca4c65f21
            &no_javascript_access);
  
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 0e11a024bdd472e9a9041a2b86ab7116238ea3ee..af90ef714bc17302ca9818a57a7d3a1decea9fe1 100644
+index 275988bd9d0dbbe3360b081078149e3304d891ae..b2866d3d050b57f5b3f6483634dbe3facaee83dd 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4558,6 +4558,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4580,6 +4580,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    auto* new_contents_impl = new_contents.get();
  
@@ -37,7 +37,7 @@ index 0e11a024bdd472e9a9041a2b86ab7116238ea3ee..af90ef714bc17302ca9818a57a7d3a1d
    // 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
-@@ -4599,12 +4605,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4621,12 +4627,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
      AddWebContentsDestructionObserver(new_contents_impl);
    }
  
@@ -122,7 +122,7 @@ index 3f445d481b7b1931eba7870f90ba8bc5e1206a8f..8930b2f6c532418a5de97813645783bc
                                                   const OpenURLParams& params) {
    return nullptr;
 diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
-index cce26ecaccbfde4259ccfcf73dc9508271b7364b..7217c90d0c65203056c622120ae161206d341a83 100644
+index 6e73009a7a4263f8d910071be1b64ce0c6e1b7cc..db2a1bc02f7a90fba1eda99b444c64576df859a8 100644
 --- a/content/public/browser/web_contents_delegate.h
 +++ b/content/public/browser/web_contents_delegate.h
 @@ -17,6 +17,7 @@
@@ -210,10 +210,10 @@ index 78956238f8d959580e928d2590866b2f4da3d218..806b3337ec8a8ad7c89681857b4e81dc
  
  }  // namespace blink
 diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
-index 475f782109990e38caca9a1760ad225727303b1a..a393d149bd0b880ba30abbe43b89c48d2c351d96 100644
+index 86d62960d31c31caff100bfefda6975b366a3197..813d4713fac7de050d16f81f187ea1e1d12cd473 100644
 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc
 +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -2213,6 +2213,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
+@@ -2231,6 +2231,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
    WebWindowFeatures window_features =
        GetWindowFeaturesFromString(features, entered_window);
  

+ 7 - 7
patches/chromium/chore_add_electron_deps_to_gitignores.patch

@@ -6,10 +6,10 @@ Subject: chore: add electron deps to gitignores
 Makes things like "git status" quicker when developing electron locally
 
 diff --git a/.gitignore b/.gitignore
-index c74da107a1a0690b458df0ef5f6a72f607611eb9..899e121dd92010db0313feb21a1b1cc282be4a6e 100644
+index a55c4c5bbbb298bce97fe7c1072e5bca4c032c73..e6ffcfcefd2aa29a0d761051e6169950072a8207 100644
 --- a/.gitignore
 +++ b/.gitignore
-@@ -209,6 +209,7 @@ vs-chromium-project.txt
+@@ -212,6 +212,7 @@ vs-chromium-project.txt
  /data
  /delegate_execute
  /device/serial/device_serial_mojo.xml
@@ -18,12 +18,12 @@ index c74da107a1a0690b458df0ef5f6a72f607611eb9..899e121dd92010db0313feb21a1b1cc2
  /googleurl
  /gpu/gles2_conform_test
 diff --git a/third_party/.gitignore b/third_party/.gitignore
-index 8498a534a07bdd7cd1c8e23a9a3bb059d7fc103d..2b1e4a5da12fe388e73486ea55f20b1d29d4d478 100644
+index 71ff59deb05168f0090e1887c954f60de337ad44..18c70eec5ecc1900a70e4b8c20c657588e0566e4 100644
 --- a/third_party/.gitignore
 +++ b/third_party/.gitignore
-@@ -50,7 +50,9 @@
- /custom_tabs_client/src
+@@ -51,7 +51,9 @@
  /cygwin
+ /devserver
  /directxsdk
 +/electron_node
  /elfutils/src
@@ -31,7 +31,7 @@ index 8498a534a07bdd7cd1c8e23a9a3bb059d7fc103d..2b1e4a5da12fe388e73486ea55f20b1d
  /espresso/lib/
  /eyesfree/src
  /fuchsia-sdk/images
-@@ -103,6 +105,7 @@
+@@ -104,6 +106,7 @@
  /mocha
  /mockito/src
  /nacl_sdk_binaries/
@@ -39,7 +39,7 @@ index 8498a534a07bdd7cd1c8e23a9a3bb059d7fc103d..2b1e4a5da12fe388e73486ea55f20b1d
  /ninja/ninja*
  /node/*.tar.gz
  /node/linux/
-@@ -147,6 +150,7 @@
+@@ -148,6 +151,7 @@
  /soda-win64
  /speex
  /sqlite4java/lib/

+ 3 - 3
patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch

@@ -218,10 +218,10 @@ index c5b0d3b23b8da318ae55fcac2515a1187f261469..16ed1f46c9afde0ff25750128b4fcff6
    void AddNewContents(content::WebContents* source,
                        std::unique_ptr<content::WebContents> new_contents,
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 466580ea98c05f3e896343a4be4dd0669b86a2b2..4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe 100644
+index 73df439b9efd501aee94fd7b19e834ad82a5b39c..11ed98cbe928b4c1efe1b34feec1a79cbe06a00a 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4464,8 +4464,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4486,8 +4486,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  
    if (delegate_ && delegate_->IsWebContentsCreationOverridden(
                         source_site_instance, params.window_container_type,
@@ -246,7 +246,7 @@ index 8930b2f6c532418a5de97813645783bc2bbad1ba..cfa7dc3805897a7e7b09bcf3fa4ebde0
  }
  
 diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
-index 7217c90d0c65203056c622120ae161206d341a83..681aa45b93e648157d018be425024dceef6a0708 100644
+index db2a1bc02f7a90fba1eda99b444c64576df859a8..8685c010eadbf4896ed19bdc61b415beea8cbd94 100644
 --- a/content/public/browser/web_contents_delegate.h
 +++ b/content/public/browser/web_contents_delegate.h
 @@ -328,8 +328,7 @@ class CONTENT_EXPORT WebContentsDelegate {

+ 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 fb8f39aa55ffd192f5d7fc9c49408dcf3c5c4cd4..16f88856c10df7af52356ea5648c5062804fd769 100644
+index 7696ac81e79206c09fd74566c416cec0f337747c..f74ee0d5239ea8d27174e334408a82c42fe78421 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
 @@ -749,6 +749,9 @@ void RenderWidgetHostImpl::WasHidden() {
@@ -20,10 +20,10 @@ index fb8f39aa55ffd192f5d7fc9c49408dcf3c5c4cd4..16f88856c10df7af52356ea5648c5062
        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 220f8998b0499128396d868d1a80e402ddcff5fc..c51e6f684a58458ce487baaa970c438222a9f299 100644
+index fb89c4500eeae064c6c8f3d4c0ad7b5b4deecb5a..52868268ba4843e0743284afc684e549011c4110 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.h
 +++ b/content/browser/renderer_host/render_widget_host_impl.h
-@@ -919,6 +919,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl
+@@ -920,6 +920,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl
    void UpdateBrowserControlsState(cc::BrowserControlsState constraints,
                                    cc::BrowserControlsState current,
                                    bool animate);
@@ -33,7 +33,7 @@ index 220f8998b0499128396d868d1a80e402ddcff5fc..c51e6f684a58458ce487baaa970c4382
    void StartDragging(blink::mojom::DragDataPtr drag_data,
                       const url::Origin& source_origin,
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index 0f4988a4480e6128eaf03090d774a036e0504d2e..4dbb03bd4f6b7a46073c8cc1568151f23583deb6 100644
+index 094686284afc96d9719ca1821092863d1e160e0c..4c78692adb777b8e0a8fa2e2350775b7e2ef676a 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
 @@ -614,7 +614,7 @@ void RenderWidgetHostViewAura::HideImpl() {

+ 4 - 4
patches/chromium/expose_setuseragent_on_networkcontext.patch

@@ -33,7 +33,7 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4
  
  }  // namespace net
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
-index a3308f1794295f9b5c3cbd97ec2c5ad3ea10f709..1c078ca5664b5679e66bd8904c3779bfd9364365 100644
+index 851280c5c26cb93a6a80977b0b3a9815ce2d5d11..df7c34715576f27f20fb1850c8adb8c74bc88ff9 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
 @@ -1614,6 +1614,13 @@ void NetworkContext::SetNetworkConditions(
@@ -51,7 +51,7 @@ index a3308f1794295f9b5c3cbd97ec2c5ad3ea10f709..1c078ca5664b5679e66bd8904c3779bf
    // 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 3656f50db07946ee2d3100e0510450f3fbe93a71..780dcbc101a6f61e067163b9d0b89fcffe93412f 100644
+index 7cb0642b4661c5415b4f8f4a934ef32f27b9eb28..382ee5ff8352fb0c4623fdb12b5673479231e8ea 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 @@ -315,6 +315,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -63,10 +63,10 @@ index 3656f50db07946ee2d3100e0510450f3fbe93a71..780dcbc101a6f61e067163b9d0b89fcf
    void SetEnableReferrers(bool enable_referrers) override;
  #if BUILDFLAG(IS_CT_SUPPORTED)
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index 4ddf7e5728ac11a65da76f9cda161a8ee01b6049..450352f61fd6240d2b647775d7e03a6b16f9c116 100644
+index 567d6f230e33b2e7d9ff8e3f768fc4c94704eaac..7a4e4b3a60a868bb8848f701b77fea5229212506 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -1249,6 +1249,9 @@ interface NetworkContext {
+@@ -1252,6 +1252,9 @@ interface NetworkContext {
    SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
                         NetworkConditions? conditions);
  

+ 3 - 3
patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch

@@ -562,10 +562,10 @@ index febb2718cb34ea4d9f411f068d8c01a89c7db888..be8bd51cb61c20ef3df8552972a0ac2f
    gpu::SyncPointManager* GetSyncPointManager() override;
  };
 diff --git a/content/browser/compositor/viz_process_transport_factory.cc b/content/browser/compositor/viz_process_transport_factory.cc
-index 3f279b7ca2d609eff672bd1b3027b0a9e4b866f1..c71453cfa050c610b233c9787e4f547783804105 100644
+index 65401cc3644945cba21c8ca2f6ac0919f1321d80..86a9f37f7d5ab6dfd8d3c8a6e079706b2fc6a3f3 100644
 --- a/content/browser/compositor/viz_process_transport_factory.cc
 +++ b/content/browser/compositor/viz_process_transport_factory.cc
-@@ -384,8 +384,14 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
+@@ -383,8 +383,14 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
    mojo::AssociatedRemote<viz::mojom::DisplayPrivate> display_private;
    root_params->display_private =
        display_private.BindNewEndpointAndPassReceiver();
@@ -618,7 +618,7 @@ index 2f462f0deb5fc8a637457243fb5d5849fc214d14..695869b83cefaa24af93a2e11b39de05
 +  Draw(gfx.mojom.Rect damage_rect) => ();
  };
 diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
-index 06a6ef9f5e7df58e29fd69f493617abb73ce8fe2..4b3ed41d771cad8f22bf74dfc8349dd4c18924fb 100644
+index 3d486e85cbb1cd10b73b981824eebcbe3299f7ac..29e8cbde697ca4815275d87e04ee1311d14f1ecb 100644
 --- a/ui/compositor/compositor.h
 +++ b/ui/compositor/compositor.h
 @@ -89,6 +89,7 @@ namespace mojom {

+ 6 - 6
patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch

@@ -112,10 +112,10 @@ index e1fb008d12ae863df30dbffb07c7ec53f29f1333..3f5074bde0de54dc3fd57da756982634
    string mime_type;
  
 diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
-index d10b1e2365ec363f71479a28b72e9b74d141e8c6..d78c1c1f323b016c73e07e5613aaa5ca5f757c5f 100644
+index 82b5b7332864bc317d867d17a6a112d24cc12ceb..7dd4325014a19b7ffe43c45d42c38530c3c6bdc1 100644
 --- a/services/network/url_loader.cc
 +++ b/services/network/url_loader.cc
-@@ -675,6 +675,7 @@ URLLoader::URLLoader(
+@@ -692,6 +692,7 @@ URLLoader::URLLoader(
      has_user_activation_ = request.trusted_params->has_user_activation;
      allow_cookies_from_browser_ =
          request.trusted_params->allow_cookies_from_browser;
@@ -123,7 +123,7 @@ index d10b1e2365ec363f71479a28b72e9b74d141e8c6..d78c1c1f323b016c73e07e5613aaa5ca
    }
  
    // Store any cookies passed from the browser process to later attach them to
-@@ -713,7 +714,7 @@ URLLoader::URLLoader(
+@@ -730,7 +731,7 @@ URLLoader::URLLoader(
          &URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this)));
    }
  
@@ -132,7 +132,7 @@ index d10b1e2365ec363f71479a28b72e9b74d141e8c6..d78c1c1f323b016c73e07e5613aaa5ca
      url_request_->SetResponseHeadersCallback(base::BindRepeating(
          &URLLoader::SetRawResponseHeaders, base::Unretained(this)));
    }
-@@ -1652,6 +1653,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
+@@ -1669,6 +1670,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
    }
  
    response_ = BuildResponseHead();
@@ -153,10 +153,10 @@ index d10b1e2365ec363f71479a28b72e9b74d141e8c6..d78c1c1f323b016c73e07e5613aaa5ca
  
    // 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 20a19cae05190262e54ecc503738553d2d8046c5..8005ba04ec609c744676ee985bf301b1e9402de7 100644
+index 054f08e0e6169512436ef0ed3735c940a90984cb..7e4eb7d9ce6537e5e4386b931a8208aa1d30590d 100644
 --- a/services/network/url_loader.h
 +++ b/services/network/url_loader.h
-@@ -647,6 +647,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
+@@ -650,6 +650,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
    std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
        resource_scheduler_request_handle_;
  

+ 72 - 0
patches/chromium/fix_add_missing_perfetto_flow_and_trace_event_includes.patch

@@ -0,0 +1,72 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Shelley Vohr <[email protected]>
+Date: Tue, 12 Mar 2024 12:18:24 +0100
+Subject: fix: add missing perfetto::Flow and TRACE_EVENT includes
+
+Refs https://chromium-review.googlesource.com/c/chromium/src/+/5022285
+
+Fixes the following build errors:
+
+../../third_party/blink/renderer/core/workers/worker_global_scope.cc:581:19: error: no member named 'Flow' in namespace 'perfetto'
+  581 |         perfetto::Flow::Global(message_event->GetTraceId()));
+      |         ~~~~~~~~~~^
+
+../../third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc:245:19: error: no member named 'Flow' in namespace 'perfetto'
+  245 |         perfetto::Flow::Global(event->GetTraceId()));
+      |         ~~~~~~~~~~^
+
+../../third_party/blink/renderer/core/workers/worker_global_scope.cc:576:5: error: use of undeclared identifier 'TRACE_EVENT'
+  576 |     TRACE_EVENT(
+      |     ^
+
+../../third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc:240:5: error: use of undeclared identifier 'TRACE_EVENT'
+  240 |     TRACE_EVENT(
+      |     ^
+
+resultant of missing includes for:
+
+- base/trace_event/typed_macros.h
+- third_party/perfetto/include/perfetto/tracing/track_event_args.h
+
+Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/5365462.
+
+diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc b/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc
+index c45d61a923ab391933bf3852add770fc18942bf5..c4af39b8b29dcf8f59214bb2054c74b9988253ff 100644
+--- a/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc
++++ b/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc
+@@ -6,6 +6,7 @@
+ 
+ #include <memory>
+ #include "base/feature_list.h"
++#include "base/trace_event/typed_macros.h"
+ #include "services/network/public/mojom/fetch_api.mojom-blink.h"
+ #include "third_party/blink/public/common/features.h"
+ #include "third_party/blink/public/common/tokens/tokens.h"
+@@ -33,6 +34,7 @@
+ #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
+ #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
+ #include "third_party/blink/renderer/platform/wtf/wtf.h"
++#include "third_party/perfetto/include/perfetto/tracing/track_event_args.h"
+ 
+ namespace blink {
+ 
+diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc
+index 996e5b563ee486f50aada96aaa9f25ac392e6424..3422670a53aeb8cd55174cc1af482aef086005e1 100644
+--- a/third_party/blink/renderer/core/workers/worker_global_scope.cc
++++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
+@@ -28,6 +28,7 @@
+ #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
+ 
+ #include "base/memory/scoped_refptr.h"
++#include "base/trace_event/typed_macros.h"
+ #include "mojo/public/cpp/bindings/pending_remote.h"
+ #include "services/metrics/public/cpp/mojo_ukm_recorder.h"
+ #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
+@@ -88,6 +89,7 @@
+ #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
+ #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
+ #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
++#include "third_party/perfetto/include/perfetto/tracing/track_event_args.h"
+ 
+ namespace blink {
+ namespace {

+ 3 - 3
patches/chromium/fix_disabling_background_throttling_in_compositor.patch

@@ -12,7 +12,7 @@ invisible state of the `viz::DisplayScheduler` owned
 by the `ui::Compositor`.
 
 diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
-index 33f68e9a42b5d4dd9a25309ea8b1d3955d2c4550..16660be85a2ac25bacbaf95d40acb896536ef852 100644
+index 3bb35f0d0686df1718cc62c6d4ab42817477dd26..43a53e4b91747b3224ee8ac8002a4c8a9ed8a092 100644
 --- a/ui/compositor/compositor.cc
 +++ b/ui/compositor/compositor.cc
 @@ -339,7 +339,8 @@ void Compositor::SetLayerTreeFrameSink(
@@ -39,7 +39,7 @@ index 33f68e9a42b5d4dd9a25309ea8b1d3955d2c4550..16660be85a2ac25bacbaf95d40acb896
  }
  
  bool Compositor::IsVisible() {
-@@ -957,4 +961,13 @@ const cc::LayerTreeSettings& Compositor::GetLayerTreeSettings() const {
+@@ -959,4 +963,13 @@ const cc::LayerTreeSettings& Compositor::GetLayerTreeSettings() const {
    return host_->GetSettings();
  }
  
@@ -54,7 +54,7 @@ index 33f68e9a42b5d4dd9a25309ea8b1d3955d2c4550..16660be85a2ac25bacbaf95d40acb896
 +
  }  // namespace ui
 diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
-index 4b3ed41d771cad8f22bf74dfc8349dd4c18924fb..b0c826ff8f0b06e26447424d9c305c2ebcee5c5c 100644
+index 29e8cbde697ca4815275d87e04ee1311d14f1ecb..ecc0de0ecb32f7bfd5624b017588f75bb88ab7f3 100644
 --- a/ui/compositor/compositor.h
 +++ b/ui/compositor/compositor.h
 @@ -508,6 +508,10 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,

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

@@ -9,10 +9,10 @@ focus node change via TextInputManager.
 chromium-bug: https://crbug.com/1369605
 
 diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
-index 3d80ec348dc4c2519c6bd3eed0e1c5da3b39680d..e37493f3309f2796b98e089571f96a54b6730b46 100644
+index fa18900586854c5d6b936d6b9e6fac1c9e571bce..6df34cc1c58d5722d6b6832abb47d2376a7818d8 100644
 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
-@@ -2915,6 +2915,12 @@ void RenderWidgetHostViewAura::OnTextSelectionChanged(
+@@ -2916,6 +2916,12 @@ void RenderWidgetHostViewAura::OnTextSelectionChanged(
    }
  }
  
@@ -87,10 +87,10 @@ index 0c7d5b2c1d3e97420913bd643bb2a524a76fc286..653793fa480f035ce11e079b370bf5ed
    // The view with active text input state, i.e., a focused <input> element.
    // It will be nullptr if no such view exists. Note that the active view
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 3c61e1583211d68e112b930ff8254e1617676efd..1e31141641d6e5eb0bd6c21581f2b3e9dfb5d158 100644
+index 459d9057d4155f83f6c184d654930f10f2a3241a..7f061765a05ca246e942e38f312e780000978ced 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -8815,7 +8815,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
+@@ -8837,7 +8837,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
                          "WebContentsImpl::OnFocusedElementChangedInFrame",
                          "render_frame_host", frame);
    RenderWidgetHostViewBase* root_view =

+ 1 - 1
patches/chromium/fix_restore_original_resize_performance_on_macos.patch

@@ -11,7 +11,7 @@ This patch should be upstreamed as a conditional revert of the logic in desktop
 vs mobile runtimes.  i.e. restore the old logic only on desktop platforms
 
 diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
-index 6b83e02c88f71d6b330a9b330d31b6595aba45a1..a36036e141ea3fa5faaefefd9651756250fcab01 100644
+index e993e7541de716377959aeb71a784a2cab53289b..b226b7ca8a5cdde4581ddbf452e691c0e699829b 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
 @@ -2140,9 +2140,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() {

+ 1 - 1
patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch

@@ -21,7 +21,7 @@ index 94012aae5f38ddf46810418717d46bdb3d9f1869..0cb6d49f2b23533c5e631fecff41e50a
        properties->supports_global_application_menus = true;
        properties->app_modal_dialogs_use_event_blocker = true;
 diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index 009c660e1f276e25b05bddbb44396752ca5981d5..33a4d097ad1470dd26fc017df3d50a8e05f4f6a1 100644
+index 35673a348d4e5d546d6db5dad0935eb6784bda4c..2becdaa0efdd8b4a0499ad7ead5620d1faadfacb 100644
 --- a/ui/ozone/public/ozone_platform.h
 +++ b/ui/ozone/public/ozone_platform.h
 @@ -122,6 +122,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {

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

@@ -35,7 +35,7 @@ system font by checking if it's kCTFontPriorityAttribute is set to
 system priority.
 
 diff --git a/base/BUILD.gn b/base/BUILD.gn
-index 53a6b1bde34b434691572b3e772520873b958375..f74ab4e0bdd12c5d280a63e589e5ed490275028f 100644
+index c9f0292cae20a3aa206092a44220d336cb511070..3330a093fb229b823c394440c40405ee628f28e9 100644
 --- a/base/BUILD.gn
 +++ b/base/BUILD.gn
 @@ -1048,6 +1048,7 @@ component("base") {
@@ -459,7 +459,7 @@ index d520acc21839a63f5e1167c5ec3f119d89d43713..8b2f3c6cfa2615452fd43b7accd26ce8
    return kAttributes;
  }
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index d27c794883426dd6a88ca158b7c24686d76ab19d..2f1b9d547a6f54746ff23031ee3586d4ea68dd0b 100644
+index 53801ccd1e8b2eadbe19d3eaf6b03186b2620a1c..c58175e595b98ed5a5e8c369e4c05f229edf5d2d 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
 @@ -54,6 +54,7 @@ source_set("browser") {
@@ -700,7 +700,7 @@ index a119b4439bfb9218c7aaf09dca8e78527da7f20d..faa813b003940280c6eeb87e70173019
  
  }  // namespace content
 diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
-index 589dca8877f981de6ece305e7eb1e7234e3b692e..20dae672a928b8f44d4d073463367f184845fe26 100644
+index ec5c896baa6c7ad16f4d43dcb86683dba465f8f4..113aa2da812903a46487092372084b89a710a5c2 100644
 --- a/content/test/BUILD.gn
 +++ b/content/test/BUILD.gn
 @@ -488,6 +488,7 @@ static_library("test_support") {
@@ -727,7 +727,7 @@ index 589dca8877f981de6ece305e7eb1e7234e3b692e..20dae672a928b8f44d4d073463367f18
  
    public_deps = [
      ":test_interfaces",
-@@ -2924,6 +2927,7 @@ test("content_unittests") {
+@@ -2928,6 +2931,7 @@ test("content_unittests") {
    }
  
    configs += [ "//build/config:precompiled_headers" ]
@@ -942,7 +942,7 @@ index 0c0243c2bb9e72c6eba6f9af554b99e2d5514a5d..f5f0e0ec951ccc8278b773c852134e4e
  }
  
 diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
-index 0c5cb82b1248997ef3b97f17bef52f880fed26fd..8adecabe9aee119c7474834c038c79b271ad888e 100644
+index ebee73a859854299c1237b1190f4882bdd1c5121..67a818beb62a76a82a68313f3a27ab4e2ad780b5 100644
 --- a/net/dns/BUILD.gn
 +++ b/net/dns/BUILD.gn
 @@ -183,6 +183,8 @@ source_set("dns") {

+ 6 - 6
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 ced5854f2f213e4be6606144823ed9089a687db8..a3308f1794295f9b5c3cbd97ec2c5ad3ea10f709 100644
+index ecefb420b45e9729fa97cb81362de36ccec4ae64..851280c5c26cb93a6a80977b0b3a9815ce2d5d11 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
 @@ -151,6 +151,11 @@
@@ -122,7 +122,7 @@ index ced5854f2f213e4be6606144823ed9089a687db8..a3308f1794295f9b5c3cbd97ec2c5ad3
  constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
  
  NetworkContext::NetworkContextHttpAuthPreferences::
-@@ -880,6 +978,13 @@ void NetworkContext::SetClient(
+@@ -878,6 +976,13 @@ void NetworkContext::SetClient(
    client_.Bind(std::move(client));
  }
  
@@ -147,7 +147,7 @@ index ced5854f2f213e4be6606144823ed9089a687db8..a3308f1794295f9b5c3cbd97ec2c5ad3
  
    builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
 diff --git a/services/network/network_context.h b/services/network/network_context.h
-index adde7c45c1efb37ca6e3848124fb0355b9a3c355..3656f50db07946ee2d3100e0510450f3fbe93a71 100644
+index bf94d00d748c6b703081f49f9b1df8c7f906930a..7cb0642b4661c5415b4f8f4a934ef32f27b9eb28 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 @@ -113,6 +113,7 @@ class URLMatcher;
@@ -167,7 +167,7 @@ index adde7c45c1efb37ca6e3848124fb0355b9a3c355..3656f50db07946ee2d3100e0510450f3
    void ResetURLLoaderFactories() override;
    void GetViaObliviousHttp(
        mojom::ObliviousHttpRequestPtr request,
-@@ -880,6 +883,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -875,6 +878,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    std::vector<base::OnceClosure> dismount_closures_;
  #endif  // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED)
  
@@ -177,7 +177,7 @@ index adde7c45c1efb37ca6e3848124fb0355b9a3c355..3656f50db07946ee2d3100e0510450f3
    std::unique_ptr<HostResolver> internal_host_resolver_;
    std::set<std::unique_ptr<HostResolver>, base::UniquePtrComparator>
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index 8495a3c67ba02f38b55324e89b50d1eca97b48ca..4ddf7e5728ac11a65da76f9cda161a8ee01b6049 100644
+index e6b9d328b94d229dcb5a6267d3e5f3f7d42d1baf..567d6f230e33b2e7d9ff8e3f768fc4c94704eaac 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
 @@ -298,6 +298,16 @@ struct SocketBrokerRemotes {
@@ -197,7 +197,7 @@ index 8495a3c67ba02f38b55324e89b50d1eca97b48ca..4ddf7e5728ac11a65da76f9cda161a8e
  
  // Parameters for constructing a network context.
  struct NetworkContextParams {
-@@ -953,6 +963,9 @@ interface NetworkContext {
+@@ -956,6 +966,9 @@ interface NetworkContext {
    // Sets a client for this network context.
    SetClient(pending_remote<NetworkContextClient> client);
  

+ 2 - 2
patches/chromium/printing.patch

@@ -830,10 +830,10 @@ index b0ac94751454bd16b4e9bfdc071e2623813133ec..271bd9949a802a370b3619340f3364df
    // Calculate number of pages in source document.
    uint32_t CalculateNumberOfPages(blink::WebLocalFrame* frame,
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
-index 2f1b9d547a6f54746ff23031ee3586d4ea68dd0b..167f21fec5b15d2ef4fa6a61f359c6c524ff654d 100644
+index c58175e595b98ed5a5e8c369e4c05f229edf5d2d..f2c0fd0aadbc34b400f91e230dc994c7eb9ab8e8 100644
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -2932,8 +2932,9 @@ source_set("browser") {
+@@ -2930,8 +2930,9 @@ source_set("browser") {
        "//ppapi/shared_impl",
      ]
  

+ 7 - 7
patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch

@@ -8,7 +8,7 @@ Chrome moved the SetCursor IPC message to mojo, which we use to tell OSR about `
 Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779
 
 diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h
-index e680c3bb24c8ec764919561fd8da833c8a1601b9..5d082eeed73ef400de31f1413fea72c8c55e72ec 100644
+index a1dcd0c0eab747f144188b8faea21fb1cf2b1558..20cc65ba206a8b3d988b51f9459de1572eb3b99f 100644
 --- a/content/browser/renderer_host/render_widget_host_delegate.h
 +++ b/content/browser/renderer_host/render_widget_host_delegate.h
 @@ -23,6 +23,7 @@
@@ -19,7 +19,7 @@ index e680c3bb24c8ec764919561fd8da833c8a1601b9..5d082eeed73ef400de31f1413fea72c8
  #include "ui/gfx/native_widget_types.h"
  
  namespace blink {
-@@ -269,6 +270,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate {
+@@ -270,6 +271,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate {
    // Returns the associated RenderViewHostDelegateView*, if possible.
    virtual RenderViewHostDelegateView* GetDelegateView();
  
@@ -30,7 +30,7 @@ index e680c3bb24c8ec764919561fd8da833c8a1601b9..5d082eeed73ef400de31f1413fea72c8
    // 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 16f88856c10df7af52356ea5648c5062804fd769..6b83e02c88f71d6b330a9b330d31b6595aba45a1 100644
+index f74ee0d5239ea8d27174e334408a82c42fe78421..e993e7541de716377959aeb71a784a2cab53289b 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
 @@ -2074,6 +2074,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
@@ -44,10 +44,10 @@ index 16f88856c10df7af52356ea5648c5062804fd769..6b83e02c88f71d6b330a9b330d31b659
  
  void RenderWidgetHostImpl::ShowContextMenuAtPoint(
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index af90ef714bc17302ca9818a57a7d3a1decea9fe1..466580ea98c05f3e896343a4be4dd0669b86a2b2 100644
+index b2866d3d050b57f5b3f6483634dbe3facaee83dd..73df439b9efd501aee94fd7b19e834ad82a5b39c 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -5224,6 +5224,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
+@@ -5246,6 +5246,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
    return text_input_manager_.get();
  }
  
@@ -60,10 +60,10 @@ index af90ef714bc17302ca9818a57a7d3a1decea9fe1..466580ea98c05f3e896343a4be4dd066
      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 e7f70d74e06ccfbec70b5d718936b8c67785e297..c3c36499004db3623246a2add141acf7161b16a8 100644
+index f581af6fa5f0a45c1a93605b56a47f0b36482677..37897c7d0475eb929e7ed826a38094b65a82120f 100644
 --- a/content/browser/web_contents/web_contents_impl.h
 +++ b/content/browser/web_contents/web_contents_impl.h
-@@ -1034,6 +1034,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+@@ -1036,6 +1036,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
    void SendScreenRects() override;
    void SendActiveState(bool active) override;
    TextInputManager* GetTextInputManager() override;

+ 1 - 1
patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch

@@ -7,7 +7,7 @@ Subject: refactor: expose HostImportModuleDynamically and
 This is so that Electron can blend Blink's and Node's implementations of these isolate handlers.
 
 diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
-index cc58fc115b4a5b0183e5e11425d2b1a3e115d63c..24555855b0ef2ef3d2430a4e64a5147e076843f9 100644
+index 58f26914fe73e24367c1054273907887a08caffe..97f262f818079c68bffaf846a6e4a2e9b6cdf5ea 100644
 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
 +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
 @@ -627,7 +627,9 @@ bool JavaScriptCompileHintsMagicEnabledCallback(

+ 1 - 1
patches/chromium/scroll_bounce_flag.patch

@@ -6,7 +6,7 @@ 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 1952b5018f8e5bed87b7dc9d8012c8f2fac00c96..ecef0e83520cbf1015ba1d639be39791ec0cfbb5 100644
+index f46edeebd1c5e3350dea2f0549ed2a24cfad7a75..77b700e48c976375129eec5f7927fe68efb0e396 100644
 --- a/content/renderer/render_thread_impl.cc
 +++ b/content/renderer/render_thread_impl.cc
 @@ -1263,7 +1263,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {

+ 6 - 6
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 4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe..311822c3d9f7b1a60e9feacf95dcd795090ec8a9 100644
+index 11ed98cbe928b4c1efe1b34feec1a79cbe06a00a..9ec976ec797838e4a4e3e30524f82948c884dc96 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3497,6 +3497,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3516,6 +3516,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 4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe..311822c3d9f7b1a60e9feacf95dcd795
    std::unique_ptr<WebContentsViewDelegate> delegate =
        GetContentClient()->browser()->GetWebContentsViewDelegate(this);
  
-@@ -3507,6 +3514,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
+@@ -3526,6 +3533,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
      view_ = CreateWebContentsView(this, std::move(delegate),
                                    &render_view_host_delegate_view_);
    }
@@ -35,10 +35,10 @@ index 4ff3ebc93cc68cc9988d6c31b349dfd24c332ebe..311822c3d9f7b1a60e9feacf95dcd795
    CHECK(view_.get());
  
 diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
-index 2c0e05853d1b9b8b28c502edaf76f15e96aea415..e7f24decd89855b1bd338f13810760d680071ddb 100644
+index 11504e08e61ecc1fe2747b60818b3e3f520655f7..30362796b3f3a9c3a955fe6f38af63bdb3a4ff80 100644
 --- a/content/public/browser/web_contents.h
 +++ b/content/public/browser/web_contents.h
-@@ -102,10 +102,13 @@ class BrowserContext;
+@@ -103,10 +103,13 @@ class BrowserContext;
  class BrowserPluginGuestDelegate;
  class RenderFrameHost;
  class RenderViewHost;
@@ -52,7 +52,7 @@ index 2c0e05853d1b9b8b28c502edaf76f15e96aea415..e7f24decd89855b1bd338f13810760d6
  class WebUI;
  struct DropData;
  struct MHTMLGenerationParams;
-@@ -252,6 +255,10 @@ class WebContents : public PageNavigator,
+@@ -253,6 +256,10 @@ class WebContents : public PageNavigator,
      network::mojom::WebSandboxFlags starting_sandbox_flags =
          network::mojom::WebSandboxFlags::kNone;
  

+ 4 - 4
patches/chromium/webview_fullscreen.patch

@@ -37,10 +37,10 @@ index 39b46b4f5bb3adb18d903c0ca4c65f212138590b..bc6a81da3832608b12f67dc241e8711c
    if (had_fullscreen_token && !GetView()->HasFocus())
      GetView()->Focus();
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index 311822c3d9f7b1a60e9feacf95dcd795090ec8a9..3c61e1583211d68e112b930ff8254e1617676efd 100644
+index 9ec976ec797838e4a4e3e30524f82948c884dc96..459d9057d4155f83f6c184d654930f10f2a3241a 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -3751,21 +3751,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
+@@ -3770,21 +3770,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
      const NativeWebKeyboardEvent& event) {
    OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
                          "WebContentsImpl::PreHandleKeyboardEvent");
@@ -78,7 +78,7 @@ index 311822c3d9f7b1a60e9feacf95dcd795090ec8a9..3c61e1583211d68e112b930ff8254e16
  }
  
  bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) {
-@@ -3901,7 +3905,7 @@ void WebContentsImpl::EnterFullscreenMode(
+@@ -3920,7 +3924,7 @@ void WebContentsImpl::EnterFullscreenMode(
    OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
    DCHECK(CanEnterFullscreenMode(requesting_frame, options));
    DCHECK(requesting_frame->IsActive());
@@ -88,7 +88,7 @@ index 311822c3d9f7b1a60e9feacf95dcd795090ec8a9..3c61e1583211d68e112b930ff8254e16
            features::kAutomaticFullscreenContentSetting)) {
      // Ensure the window is made active to take input focus. The user may have
 diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen.cc b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
-index 0135a5340b1d1b81fc47a10abe362f5efdd0f222..488d04a9c40deabab47d6235dc36537f47b5d530 100644
+index 5d781ae16277c01cbc4e4c9ccff2ffccf6bc1ac5..289385ba2d48b258db3728e34154ad4e623d624f 100644
 --- a/third_party/blink/renderer/core/fullscreen/fullscreen.cc
 +++ b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
 @@ -111,7 +111,7 @@ void FullscreenElementChanged(Document& document,

+ 2 - 2
patches/chromium/worker_context_will_destroy.patch

@@ -10,10 +10,10 @@ An attempt to upstream this was made, but rejected:
 https://chromium-review.googlesource.com/c/chromium/src/+/1954347
 
 diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
-index ff20508d76a6007674c4336eb55b6d5df5af4d0b..c1f4863fd3da8c028652742999ab72c077c362ab 100644
+index 05d469f572ba488bdbfbbfb0b4e6b0b298550ab5..c0bd110f078801a62f49a6c5e52db56daba085de 100644
 --- a/content/public/renderer/content_renderer_client.h
 +++ b/content/public/renderer/content_renderer_client.h
-@@ -382,6 +382,11 @@ class CONTENT_EXPORT ContentRendererClient {
+@@ -384,6 +384,11 @@ class CONTENT_EXPORT ContentRendererClient {
    virtual void DidInitializeWorkerContextOnWorkerThread(
        v8::Local<v8::Context> context) {}
  

+ 2 - 2
patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch

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

+ 2 - 2
patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch

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

+ 0 - 1
patches/node/.patches

@@ -47,4 +47,3 @@ build_ensure_v8_pointer_compression_sandbox_is_enabled_on_64bit.patch
 fix_revert_src_lb_reducing_c_calls_of_esm_legacy_main_resolve.patch
 src_preload_function_for_environment.patch
 deprecate_vector_v8_local_in_v8.patch
-fast_path_for_adding_props_with_existing_transition.patch

+ 0 - 80
patches/node/fast_path_for_adding_props_with_existing_transition.patch

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

+ 2 - 2
patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch

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

+ 6 - 7
shell/browser/web_contents_permission_helper.cc

@@ -247,12 +247,11 @@ void WebContentsPermissionHelper::RequestPointerLockPermission(
     bool last_unlocked_by_target,
     base::OnceCallback<void(content::WebContents*, bool, bool, bool)>
         callback) {
-  RequestPermission(
-      web_contents_->GetPrimaryMainFrame(),
-      static_cast<blink::PermissionType>(PermissionType::POINTER_LOCK),
-      base::BindOnce(std::move(callback), web_contents_, user_gesture,
-                     last_unlocked_by_target),
-      user_gesture);
+  RequestPermission(web_contents_->GetPrimaryMainFrame(),
+                    blink::PermissionType::POINTER_LOCK,
+                    base::BindOnce(std::move(callback), web_contents_,
+                                   user_gesture, last_unlocked_by_target),
+                    user_gesture);
 }
 
 void WebContentsPermissionHelper::RequestKeyboardLockPermission(
@@ -260,7 +259,7 @@ void WebContentsPermissionHelper::RequestKeyboardLockPermission(
     base::OnceCallback<void(content::WebContents*, bool, bool)> callback) {
   RequestPermission(
       web_contents_->GetPrimaryMainFrame(),
-      static_cast<blink::PermissionType>(PermissionType::KEYBOARD_LOCK),
+      blink::PermissionType::KEYBOARD_LOCK,
       base::BindOnce(std::move(callback), web_contents_, esc_key_locked));
 }
 

+ 2 - 4
shell/browser/web_contents_permission_helper.h

@@ -26,13 +26,11 @@ class WebContentsPermissionHelper
       delete;
 
   enum class PermissionType {
-    POINTER_LOCK = static_cast<int>(blink::PermissionType::NUM) + 1,
-    FULLSCREEN,
+    FULLSCREEN = static_cast<int>(blink::PermissionType::NUM) + 1,
     OPEN_EXTERNAL,
     SERIAL,
     HID,
-    USB,
-    KEYBOARD_LOCK
+    USB
   };
 
   // Asynchronous Requests

+ 4 - 4
shell/common/gin_converters/content_converter.cc

@@ -210,15 +210,15 @@ v8::Local<v8::Value> Converter<blink::PermissionType>::ToV8(
       return StringToV8(isolate, "web-printing");
     case blink::PermissionType::SPEAKER_SELECTION:
       return StringToV8(isolate, "speaker-selection");
+    case blink::PermissionType::POINTER_LOCK:
+      return StringToV8(isolate, "pointerLock");
+    case blink::PermissionType::KEYBOARD_LOCK:
+      return StringToV8(isolate, "keyboardLock");
     case blink::PermissionType::NUM:
       break;
   }
 
   switch (static_cast<PermissionType>(val)) {
-    case PermissionType::POINTER_LOCK:
-      return StringToV8(isolate, "pointerLock");
-    case PermissionType::KEYBOARD_LOCK:
-      return StringToV8(isolate, "keyboardLock");
     case PermissionType::FULLSCREEN:
       return StringToV8(isolate, "fullscreen");
     case PermissionType::OPEN_EXTERNAL:

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

@@ -20,7 +20,7 @@ namespace electron {
 void ElectronExtensionsRendererAPIProvider::RegisterNativeHandlers(
     extensions::ModuleSystem* module_system,
     extensions::NativeExtensionBindingsSystem* bindings_system,
-    extensions::ScriptContext* context) {
+    extensions::ScriptContext* context) const {
   module_system->RegisterNativeHandler(
       "lazy_background_page",
       std::make_unique<extensions::LazyBackgroundPageNativeHandler>(context));
@@ -28,7 +28,7 @@ void ElectronExtensionsRendererAPIProvider::RegisterNativeHandlers(
 
 void ElectronExtensionsRendererAPIProvider::AddBindingsSystemHooks(
     extensions::Dispatcher* dispatcher,
-    extensions::NativeExtensionBindingsSystem* bindings_system) {
+    extensions::NativeExtensionBindingsSystem* bindings_system) const {
   extensions::APIBindingsSystem* bindings = bindings_system->api_system();
   bindings->RegisterHooksDelegate(
       "extension", std::make_unique<extensions::ExtensionHooksDelegate>(
@@ -39,11 +39,12 @@ void ElectronExtensionsRendererAPIProvider::AddBindingsSystemHooks(
 }
 
 void ElectronExtensionsRendererAPIProvider::PopulateSourceMap(
-    extensions::ResourceBundleSourceMap* source_map) {}
+    extensions::ResourceBundleSourceMap* source_map) const {}
 
-void ElectronExtensionsRendererAPIProvider::EnableCustomElementAllowlist() {}
+void ElectronExtensionsRendererAPIProvider::EnableCustomElementAllowlist()
+    const {}
 
 void ElectronExtensionsRendererAPIProvider::RequireWebViewModules(
-    extensions::ScriptContext* context) {}
+    extensions::ScriptContext* context) const {}
 
 }  // namespace electron

+ 7 - 7
shell/renderer/extensions/electron_extensions_renderer_api_provider.h

@@ -25,14 +25,14 @@ class ElectronExtensionsRendererAPIProvider
   void RegisterNativeHandlers(
       extensions::ModuleSystem* module_system,
       extensions::NativeExtensionBindingsSystem* bindings_system,
-      extensions::ScriptContext* context) override;
-  void AddBindingsSystemHooks(
-      extensions::Dispatcher* dispatcher,
-      extensions::NativeExtensionBindingsSystem* bindings_system) override;
+      extensions::ScriptContext* context) const override;
+  void AddBindingsSystemHooks(extensions::Dispatcher* dispatcher,
+                              extensions::NativeExtensionBindingsSystem*
+                                  bindings_system) const override;
   void PopulateSourceMap(
-      extensions::ResourceBundleSourceMap* source_map) override;
-  void EnableCustomElementAllowlist() override;
-  void RequireWebViewModules(extensions::ScriptContext* context) override;
+      extensions::ResourceBundleSourceMap* source_map) const override;
+  void EnableCustomElementAllowlist() const override;
+  void RequireWebViewModules(extensions::ScriptContext* context) const override;
 };
 
 }  // namespace electron

+ 3 - 2
shell/renderer/renderer_client_base.cc

@@ -402,13 +402,14 @@ bool RendererClientBase::OverrideCreatePlugin(
   return true;
 }
 
-void RendererClientBase::GetSupportedKeySystems(
-    media::GetSupportedKeySystemsCB cb) {
+std::unique_ptr<media::KeySystemSupportObserver>
+RendererClientBase::GetSupportedKeySystems(media::GetSupportedKeySystemsCB cb) {
 #if BUILDFLAG(ENABLE_WIDEVINE)
   GetChromeKeySystems(std::move(cb));
 #else
   std::move(cb).Run({});
 #endif
+  return nullptr;
 }
 
 void RendererClientBase::DidSetUserAgent(const std::string& user_agent) {

+ 2 - 1
shell/renderer/renderer_client_base.h

@@ -102,7 +102,8 @@ class RendererClientBase : public content::ContentRendererClient
   bool OverrideCreatePlugin(content::RenderFrame* render_frame,
                             const blink::WebPluginParams& params,
                             blink::WebPlugin** plugin) override;
-  void GetSupportedKeySystems(media::GetSupportedKeySystemsCB cb) override;
+  std::unique_ptr<media::KeySystemSupportObserver> GetSupportedKeySystems(
+      media::GetSupportedKeySystemsCB cb) override;
   void DidSetUserAgent(const std::string& user_agent) override;
   bool IsPluginHandledExternally(content::RenderFrame* render_frame,
                                  const blink::WebElement& plugin_element,