Browse Source

chore: bump chromium to 279aeeec3c9fe2237bc31f776f269 (master) (#21521)

* chore: bump chromium in DEPS to 46d2d82e84d73806da623c5333dae4dd218172df

* chore: bump chromium in DEPS to cbafe74731a5d1e59844ca59e0fc28f4a5f80a33

* chore: bump chromium in DEPS to d5dcd6b5cc76f4e1732083d775cdd7b533f0abe9

* Update patches

* update for lint

* Fix compilation errors

* chore: bump chromium in DEPS to 1c19360fdaaf65d4ed006736c7f9804104095990

* Replace removed constant

* chore: bump chromium in DEPS to 3b6639f5da26c1772c5d4f3ba634aca65df75fec

* chore: bump chromium in DEPS to cc6b1b930d4b5eca06701820dac54fa0f41e8999

* chore: bump chromium in DEPS to 7d1445641ad1032c67f731ba6ff7798f29349ade

* chore: bump chromium in DEPS to 6f7e5e79cefe982ad84a88927565a88db2e592be

* chore: bump chromium in DEPS to bfb25dafff19cb41bf9781331d19ef0be819d1e4

* chore: bump chromium in DEPS to 1a8196b39f0e0cdc4935fd122fff5625d5fab06e

* chore: bump chromium in DEPS to 9a03d8d2bb38ad8c0cbb9550ca81b2f94ff60c15

* chore: bump chromium in DEPS to 4c67f3505dab2d5457adb418cd3270a4f3236fd0

* chore: bump chromium in DEPS to 652394e7626fc1ae895a53fb34c64070494e648e

* chore: bump chromium in DEPS to 07653652c58cc019af7f833bd63eb0c2eceaab5e

* chore: bump chromium in DEPS to 451a1c5fec1fb073a5bae12a033bb342c72c905f

* chore: bump chromium in DEPS to 86cdba00e233899a232868b412b333d08db63478

* chore: bump chromium in DEPS to 7c322faad1aee8abef2330d74aabf09ecf8c11af

* Update patches

* chore: bump chromium in DEPS to d0044fae7efc29eb201cfdd5fdbed77d48aba212

* Replace IsProcessingUserGesture with HasTransientUserActivation

https://chromium.googlesource.com/chromium/src/+/4baa9a6e85e6c1784fd20d196c1c3c85fdb40101

* Fix 10.15 sdk build

https://chromium.googlesource.com/chromium/src/+/0eaa6db358ca97b1cd358934068ade9a249c83db

* Remove CancelPrerender

https://chromium.googlesource.com/chromium/src/+/5eb33297194c3d3d6a7f2d744b3811033463194e

* Remove no longer used WebFloatPoint

https://chromium.googlesource.com/chromium/src/+/43ab96ce6bfc78440e5b1617a9974386a54c750c

* Use base::span<const uint8_t> for devtools messages in content/public

https://chromium.googlesource.com/chromium/src/+/21e19401af0b12d13ddc14d4a167f1b02ec65a6b

* Update renamed header files

* TODO: update with upstream changes

This code needs to be updated to handle the changes made in:
https://chromium.googlesource.com/chromium/src/+/19be6547a9a898104cd172de77184e243643ee19

* chore: bump chromium in DEPS to 82e5a2c6bd33c2e53634a09fbcbc9fcac1e7ff93

* chore: bump chromium in DEPS to 91f877cadd2995201c276e952b3bf2c60b226c64

* chore: bump chromium in DEPS to 43fcd2ab2677a06d38246b42761dc5b40cf87177

* chore: bump chromium in DEPS to e30957dcb710c0977a7ff95b8d3cf65843df12ca

* chore: bump chromium in DEPS to 6a8335a56db12aae2fd06296f82579d804d92217

* chore: bump chromium in DEPS to a4a436cbc28ace88d71752f8f479e59559e54e46

* chore: bump chromium in DEPS to 982bbd0e4b2e1d57d515f384f6483ffc0d7073ad

* chore: bump chromium in DEPS to 92bb7a99f84ffcdf41d4edca57e90b1f0c7c6c8b

* update patches

* add checkout_google_benchmark gclient var

* FIXME: workaround grit bug

* chore: bump chromium in DEPS to d3623fc53615739e6b59340a5d349e4b397cb7c5

* update patches

* Remove color arg from DidChangeThemeColor().

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

* update CreateFileURLLoader with new suffix

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

* add node patch for removal of task API in v8

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

* add disable_secure_dns param for WillCreateURLLoaderFactory

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

* switch to mojo-ified PrintMsg_PrintPreview

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

* chore: bump chromium in DEPS to e7a6d173632660b6aeb9806e9132c34a315331c2

* update missing chrome/browser/ssl:proto dependency after chrome removal

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

* chore: add libvulkan.so to the linux manifest

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

* revert DidChangeThemeColor ternary change due to templates

* match Chrome's mojo-ified implementation in geolocation_permission_context.cc

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

* add vulkan-1.dll to zips

https://github.com/KhronosGroup/Vulkan-Loader/commit/2d6f74c6d4319e94cf1fa33954c619ab4428f2b8

* add bug link to fixme_grit_conflicts.patch

* Introduce device.mojom.DeviceService

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

* PDF Compositor rename to Print Compositor

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

* chore: bump chromium_version 00362ea584735b4acf4c5a0e1912d7987f8645ab

* chore: update patches

* Use a virtual base class to provide GetWidget().

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

* [base] Remove usage of base::CurrentThread

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

* chore: gn format

* Revert "ci: Use Visual Studio Build Tools instead of VS Studio (#21771)"

This reverts commit 9c1310dadc09f88daf8866b38af9ebb385a2e9d3.

* fix: trigger resize when iframe requests fullscreen

* fix: Locking scheme registry is not necessary

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

* chore: bump chromium f707f1d6d428f84cf14b64bc2ca74372e25c6ce7

* chore: update patches

* ui/base/clipboard: Remove redundant ANSI format functions

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

* [base] Prepare //chrome for Value::GetList() switch

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

Co-authored-by: John Kleinschmidt <[email protected]>
Co-authored-by: loc <[email protected]>
Co-authored-by: Jeremy Apthorp <[email protected]>
Co-authored-by: Robo <[email protected]>
Electron Bot 5 years ago
parent
commit
bf6e4b1247
100 changed files with 594 additions and 656 deletions
  1. 76 206
      BUILD.gn
  2. 5 2
      DEPS
  3. 1 1
      appveyor.yml
  4. 1 3
      build/extract_symbols.gni
  5. 1 3
      build/npm.gni
  6. 2 6
      build/rules.gni
  7. 2 6
      build/templated_file.gni
  8. 1 3
      build/webpack/webpack.gni
  9. 4 3
      chromium_src/BUILD.gn
  10. 29 29
      filenames.gni
  11. 5 5
      filenames.hunspell.gni
  12. 1 0
      patches/chromium/.patches
  13. 2 2
      patches/chromium/accelerator.patch
  14. 3 3
      patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch
  15. 2 2
      patches/chromium/add_realloc.patch
  16. 10 10
      patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch
  17. 2 2
      patches/chromium/blink-worker-enable-csp-in-file-scheme.patch
  18. 4 4
      patches/chromium/blink_file_path.patch
  19. 2 2
      patches/chromium/blink_initialization_order.patch
  20. 3 3
      patches/chromium/blink_local_frame.patch
  21. 6 6
      patches/chromium/blink_world_context.patch
  22. 1 1
      patches/chromium/boringssl_build_gn.patch
  23. 1 1
      patches/chromium/build_add_electron_tracing_category.patch
  24. 15 15
      patches/chromium/can_create_window.patch
  25. 1 1
      patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch
  26. 2 2
      patches/chromium/content_browser_main_loop.patch
  27. 9 7
      patches/chromium/dcheck.patch
  28. 6 6
      patches/chromium/disable-redraw-lock.patch
  29. 20 20
      patches/chromium/disable_color_correct_rendering.patch
  30. 2 2
      patches/chromium/disable_compositor_recycling.patch
  31. 4 4
      patches/chromium/disable_hidden.patch
  32. 2 2
      patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch
  33. 7 7
      patches/chromium/expose_setuseragent_on_networkcontext.patch
  34. 5 5
      patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch
  35. 18 18
      patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch
  36. 38 0
      patches/chromium/fixme_grit_conflicts.patch
  37. 18 18
      patches/chromium/frame_host_manager.patch
  38. 6 6
      patches/chromium/gritsettings_resource_ids.patch
  39. 1 1
      patches/chromium/ignore_rc_check.patch
  40. 4 4
      patches/chromium/mas_disable_custom_window_frame.patch
  41. 20 20
      patches/chromium/mas_disable_remote_accessibility.patch
  42. 13 13
      patches/chromium/mas_no_private_api.patch
  43. 13 13
      patches/chromium/network_service_allow_remote_certificate_verification_logic.patch
  44. 2 2
      patches/chromium/notification_provenance.patch
  45. 12 12
      patches/chromium/pepper_plugin_support.patch
  46. 1 1
      patches/chromium/picture-in-picture.patch
  47. 37 36
      patches/chromium/printing.patch
  48. 6 6
      patches/chromium/put_back_deleted_colors_for_autofill.patch
  49. 7 7
      patches/chromium/render_widget_host_view_base.patch
  50. 6 6
      patches/chromium/render_widget_host_view_mac.patch
  51. 5 5
      patches/chromium/resource_file_conflict.patch
  52. 4 4
      patches/chromium/revert_remove_contentrendererclient_shouldfork.patch
  53. 2 2
      patches/chromium/scroll_bounce_flag.patch
  54. 7 7
      patches/chromium/ssl_security_state_tab_helper.patch
  55. 2 2
      patches/chromium/support_mixed_sandbox_with_zygote.patch
  56. 2 2
      patches/chromium/v8_context_snapshot_generator.patch
  57. 5 5
      patches/chromium/web_contents.patch
  58. 3 3
      patches/chromium/webview_cross_drag.patch
  59. 6 6
      patches/chromium/worker_context_will_destroy.patch
  60. 1 0
      patches/node/.patches
  61. 28 0
      patches/node/remove_deprecated_task_api_override_removed_in_latest_v8.patch
  62. 4 4
      patches/v8/add_realloc.patch
  63. 4 4
      patches/v8/build_gn.patch
  64. 4 4
      patches/v8/dcheck.patch
  65. 2 2
      patches/v8/do_not_export_private_v8_symbols_on_windows.patch
  66. 2 2
      patches/v8/export_symbols_needed_for_windows_build.patch
  67. 2 2
      patches/v8/expose_mksnapshot.patch
  68. 1 1
      patches/v8/workaround_an_undefined_symbol_error.patch
  69. 1 0
      script/zip_manifests/dist_zip.linux.arm.manifest
  70. 1 0
      script/zip_manifests/dist_zip.linux.arm64.manifest
  71. 1 0
      script/zip_manifests/dist_zip.linux.x64.manifest
  72. 1 0
      script/zip_manifests/dist_zip.linux.x86.manifest
  73. 1 0
      script/zip_manifests/dist_zip.win.arm64.manifest
  74. 1 0
      script/zip_manifests/dist_zip.win.ia32.manifest
  75. 1 0
      script/zip_manifests/dist_zip.win.x64.manifest
  76. 0 4
      shell/app/atom_main_delegate.cc
  77. 0 1
      shell/app/atom_main_delegate.h
  78. 7 3
      shell/browser/api/atom_api_debugger.cc
  79. 1 1
      shell/browser/api/atom_api_debugger.h
  80. 2 5
      shell/browser/api/atom_api_power_save_blocker.cc
  81. 3 2
      shell/browser/api/atom_api_web_contents.cc
  82. 1 1
      shell/browser/api/atom_api_web_contents.h
  83. 0 2
      shell/browser/api/atom_api_web_contents_impl.cc
  84. 1 1
      shell/browser/api/atom_api_web_request.cc
  85. 1 0
      shell/browser/atom_browser_client.cc
  86. 1 0
      shell/browser/atom_browser_client.h
  87. 1 1
      shell/browser/atom_browser_context.cc
  88. 5 13
      shell/browser/atom_browser_main_parts.cc
  89. 7 3
      shell/browser/common_web_contents_delegate.cc
  90. 3 2
      shell/browser/login_handler.cc
  91. 3 2
      shell/browser/mac/atom_application_delegate.mm
  92. 1 5
      shell/browser/native_window.cc
  93. 1 2
      shell/browser/native_window.h
  94. 3 3
      shell/browser/net/asar/asar_url_loader.cc
  95. 3 2
      shell/browser/net/proxying_url_loader_factory.cc
  96. 1 1
      shell/browser/osr/osr_render_widget_host_view.cc
  97. 8 4
      shell/browser/printing/print_preview_message_handler.cc
  98. 9 4
      shell/browser/printing/print_preview_message_handler.h
  99. 1 1
      shell/browser/ui/devtools_manager_delegate.cc
  100. 1 1
      shell/browser/ui/devtools_manager_delegate.h

+ 76 - 206
BUILD.gn

@@ -79,15 +79,11 @@ npm_action("build_electron_definitions") {
   args = [ rebase_path("$target_gen_dir/tsc/typings/electron.d.ts") ]
   inputs = auto_filenames.api_docs + [ "yarn.lock" ]
 
-  outputs = [
-    "$target_gen_dir/tsc/typings/electron.d.ts",
-  ]
+  outputs = [ "$target_gen_dir/tsc/typings/electron.d.ts" ]
 }
 
 webpack_build("electron_browser_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.browser_bundle_deps
 
@@ -96,9 +92,7 @@ webpack_build("electron_browser_bundle") {
 }
 
 webpack_build("electron_renderer_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.renderer_bundle_deps
 
@@ -107,9 +101,7 @@ webpack_build("electron_renderer_bundle") {
 }
 
 webpack_build("electron_worker_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.worker_bundle_deps
 
@@ -118,9 +110,7 @@ webpack_build("electron_worker_bundle") {
 }
 
 webpack_build("electron_sandboxed_renderer_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.sandbox_bundle_deps
 
@@ -129,9 +119,7 @@ webpack_build("electron_sandboxed_renderer_bundle") {
 }
 
 webpack_build("electron_isolated_renderer_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.isolated_bundle_deps
 
@@ -140,9 +128,7 @@ webpack_build("electron_isolated_renderer_bundle") {
 }
 
 webpack_build("electron_content_script_bundle") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
 
   inputs = auto_filenames.content_script_bundle_deps
 
@@ -155,9 +141,7 @@ copy("atom_js2c_copy") {
     "lib/common/asar.js",
     "lib/common/asar_init.js",
   ]
-  outputs = [
-    "$target_gen_dir/js2c/{{source_file_part}}",
-  ]
+  outputs = [ "$target_gen_dir/js2c/{{source_file_part}}" ]
 }
 
 action("atom_js2c") {
@@ -173,11 +157,11 @@ action("atom_js2c") {
 
   webpack_sources = [
     "$target_gen_dir/js2c/browser_init.js",
-    "$target_gen_dir/js2c/renderer_init.js",
-    "$target_gen_dir/js2c/worker_init.js",
     "$target_gen_dir/js2c/content_script_bundle.js",
     "$target_gen_dir/js2c/isolated_bundle.js",
+    "$target_gen_dir/js2c/renderer_init.js",
     "$target_gen_dir/js2c/sandbox_bundle.js",
+    "$target_gen_dir/js2c/worker_init.js",
   ]
 
   sources = webpack_sources + [
@@ -186,9 +170,7 @@ action("atom_js2c") {
             ]
 
   inputs = sources + [ "//third_party/electron_node/tools/js2c.py" ]
-  outputs = [
-    "$root_gen_dir/atom_natives.cc",
-  ]
+  outputs = [ "$root_gen_dir/atom_natives.cc" ]
 
   script = "tools/js2c.py"
   args = [ rebase_path("//third_party/electron_node") ] +
@@ -199,9 +181,7 @@ action("atom_js2c") {
 target_gen_default_app_js = "$target_gen_dir/js/default_app"
 
 typescript_build("default_app_js") {
-  deps = [
-    ":build_electron_definitions",
-  ]
+  deps = [ ":build_electron_definitions" ]
   type_root = rebase_path("$target_gen_dir/tsc/electron/typings")
 
   sources = filenames.default_app_ts_sources
@@ -213,16 +193,12 @@ typescript_build("default_app_js") {
 
 copy("default_app_static") {
   sources = filenames.default_app_static_sources
-  outputs = [
-    "$target_gen_default_app_js/{{source}}",
-  ]
+  outputs = [ "$target_gen_default_app_js/{{source}}" ]
 }
 
 copy("default_app_octicon_deps") {
   sources = filenames.default_app_octicon_sources
-  outputs = [
-    "$target_gen_default_app_js/electron/default_app/octicon/{{source_file_part}}",
-  ]
+  outputs = [ "$target_gen_default_app_js/electron/default_app/octicon/{{source_file_part}}" ]
 }
 
 asar("default_app_asar") {
@@ -236,9 +212,7 @@ asar("default_app_asar") {
   sources = get_target_outputs(":default_app_js") +
             get_target_outputs(":default_app_static") +
             get_target_outputs(":default_app_octicon_deps")
-  outputs = [
-    "$root_out_dir/resources/default_app.asar",
-  ]
+  outputs = [ "$root_out_dir/resources/default_app.asar" ]
 }
 
 grit("resources") {
@@ -256,20 +230,14 @@ grit("resources") {
     "target_gen_dir=" + rebase_path(target_gen_dir, root_build_dir),
   ]
 
-  deps = [
-    ":copy_shell_devtools_discovery_page",
-  ]
+  deps = [ ":copy_shell_devtools_discovery_page" ]
 
   output_dir = "$target_gen_dir"
 }
 
 copy("copy_shell_devtools_discovery_page") {
-  sources = [
-    "//content/shell/resources/shell_devtools_discovery_page.html",
-  ]
-  outputs = [
-    "$target_gen_dir/shell_devtools_discovery_page.html",
-  ]
+  sources = [ "//content/shell/resources/shell_devtools_discovery_page.html" ]
+  outputs = [ "$target_gen_dir/shell_devtools_discovery_page.html" ]
 }
 
 if (is_linux) {
@@ -315,9 +283,7 @@ source_set("manifests") {
 npm_action("electron_version_args") {
   script = "generate-version-json"
 
-  outputs = [
-    "$target_gen_dir/electron_version.args",
-  ]
+  outputs = [ "$target_gen_dir/electron_version.args" ]
 
   args = rebase_path(outputs)
 
@@ -328,9 +294,7 @@ npm_action("electron_version_args") {
 }
 
 templated_file("electron_version_header") {
-  deps = [
-    ":electron_version_args",
-  ]
+  deps = [ ":electron_version_args" ]
 
   template = "build/templates/electron_version.tmpl"
   output = "$target_gen_dir/electron_version.h"
@@ -662,6 +626,7 @@ source_set("electron_lib") {
       "shell/renderer/printing/print_render_frame_helper_delegate.cc",
       "shell/renderer/printing/print_render_frame_helper_delegate.h",
     ]
+    deps += [ "//components/printing/common:mojo_interfaces" ]
   }
 
   deps += [ "shell/common/extensions/api:extensions_features" ]
@@ -713,15 +678,11 @@ if (is_mac) {
   electron_version = read_file("ELECTRON_VERSION", "trim string")
 
   mac_xib_bundle_data("electron_xibs") {
-    sources = [
-      "shell/common/resources/mac/MainMenu.xib",
-    ]
+    sources = [ "shell/common/resources/mac/MainMenu.xib" ]
   }
 
   bundle_data("electron_framework_resources") {
-    public_deps = [
-      ":packed_resources",
-    ]
+    public_deps = [ ":packed_resources" ]
     sources = []
     if (icu_use_data_file) {
       sources += [ "$root_out_dir/icudtl.dat" ]
@@ -736,9 +697,7 @@ if (is_mac) {
         sources += [ "$root_out_dir/snapshot_blob.bin" ]
       }
     }
-    outputs = [
-      "{{bundle_resources_dir}}/{{source_file_part}}",
-    ]
+    outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
   }
 
   if (!is_component_build) {
@@ -749,9 +708,7 @@ if (is_mac) {
         sources += [ "$root_out_dir/libffmpeg.dylib" ]
         public_deps += [ "//third_party/ffmpeg:ffmpeg" ]
       }
-      outputs = [
-        "{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
-      ]
+      outputs = [ "{{bundle_contents_dir}}/Libraries/{{source_file_part}}" ]
     }
   } else {
     group("electron_framework_libraries") {
@@ -764,12 +721,8 @@ if (is_mac) {
         "$root_out_dir/egl_intermediates/libEGL.dylib",
         "$root_out_dir/egl_intermediates/libGLESv2.dylib",
       ]
-      outputs = [
-        "{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
-      ]
-      public_deps = [
-        "//ui/gl:angle_library_copy",
-      ]
+      outputs = [ "{{bundle_contents_dir}}/Libraries/{{source_file_part}}" ]
+      public_deps = [ "//ui/gl:angle_library_copy" ]
     }
 
     # Add the SwiftShader .dylibs in the Libraries directory of the Framework.
@@ -778,42 +731,28 @@ if (is_mac) {
         "$root_out_dir/egl_intermediates/libswiftshader_libEGL.dylib",
         "$root_out_dir/egl_intermediates/libswiftshader_libGLESv2.dylib",
       ]
-      outputs = [
-        "{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
-      ]
-      public_deps = [
-        "//ui/gl:swiftshader_library_copy",
-      ]
+      outputs = [ "{{bundle_contents_dir}}/Libraries/{{source_file_part}}" ]
+      public_deps = [ "//ui/gl:swiftshader_library_copy" ]
     }
   }
   group("electron_angle_library") {
     if (use_egl) {
-      deps = [
-        ":electron_angle_binaries",
-      ]
+      deps = [ ":electron_angle_binaries" ]
     }
   }
 
   group("electron_swiftshader_library") {
     if (use_egl) {
-      deps = [
-        ":electron_swiftshader_binaries",
-      ]
+      deps = [ ":electron_swiftshader_binaries" ]
     }
   }
 
   bundle_data("electron_crashpad_helper") {
-    sources = [
-      "$root_out_dir/crashpad_handler",
-    ]
+    sources = [ "$root_out_dir/crashpad_handler" ]
 
-    outputs = [
-      "{{bundle_resources_dir}}/{{source_file_part}}",
-    ]
+    outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
 
-    public_deps = [
-      "//third_party/crashpad/crashpad/handler:crashpad_handler",
-    ]
+    public_deps = [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
   }
 
   mac_framework_bundle("electron_framework") {
@@ -871,9 +810,7 @@ if (is_mac) {
       assert(defined(invoker.helper_name_suffix))
 
       output_name = electron_helper_name + invoker.helper_name_suffix
-      deps = [
-        ":electron_framework+link",
-      ]
+      deps = [ ":electron_framework+link" ]
       if (!is_mas_build) {
         deps += [ "//sandbox/mac:seatbelt" ]
       }
@@ -907,9 +844,7 @@ if (is_mac) {
   }
 
   bundle_data("electron_app_framework_bundle_data") {
-    sources = [
-      "$root_out_dir/$electron_framework_name.framework",
-    ]
+    sources = [ "$root_out_dir/$electron_framework_name.framework" ]
     if (!is_mas_build) {
       sources += [
         "external_binaries/Mantle.framework",
@@ -917,12 +852,8 @@ if (is_mac) {
         "external_binaries/Squirrel.framework",
       ]
     }
-    outputs = [
-      "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}",
-    ]
-    public_deps = [
-      ":electron_framework+link",
-    ]
+    outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
+    public_deps = [ ":electron_framework+link" ]
 
     foreach(helper_params, content_mac_helpers) {
       sources +=
@@ -942,15 +873,10 @@ if (is_mac) {
   }
 
   bundle_data("electron_login_helper_app") {
-    public_deps = [
-      ":electron_login_helper",
-    ]
-    sources = [
-      "$root_out_dir/$electron_login_helper_name.app",
-    ]
-    outputs = [
-      "{{bundle_contents_dir}}/Library/LoginItems/{{source_file_part}}",
-    ]
+    public_deps = [ ":electron_login_helper" ]
+    sources = [ "$root_out_dir/$electron_login_helper_name.app" ]
+    outputs =
+        [ "{{bundle_contents_dir}}/Library/LoginItems/{{source_file_part}}" ]
   }
 
   action("electron_app_lproj_dirs") {
@@ -965,15 +891,9 @@ if (is_mac) {
 
   foreach(locale, locales_as_mac_outputs) {
     bundle_data("electron_app_strings_${locale}_bundle_data") {
-      sources = [
-        "$target_gen_dir/app_infoplist_strings/$locale.lproj",
-      ]
-      outputs = [
-        "{{bundle_resources_dir}}/$locale.lproj",
-      ]
-      public_deps = [
-        ":electron_app_lproj_dirs",
-      ]
+      sources = [ "$target_gen_dir/app_infoplist_strings/$locale.lproj" ]
+      outputs = [ "{{bundle_resources_dir}}/$locale.lproj" ]
+      public_deps = [ ":electron_app_lproj_dirs" ]
     }
   }
   group("electron_app_strings_bundle_data") {
@@ -992,9 +912,7 @@ if (is_mac) {
       "$root_out_dir/resources/default_app.asar",
       "shell/browser/resources/mac/electron.icns",
     ]
-    outputs = [
-      "{{bundle_resources_dir}}/{{source_file_part}}",
-    ]
+    outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
   }
 
   mac_app_bundle("electron_app") {
@@ -1025,9 +943,7 @@ if (is_mac) {
       binary = "$root_out_dir/$electron_framework_name.framework/Versions/$electron_framework_version/$electron_framework_name"
       symbol_dir = "$root_out_dir/breakpad_symbols"
       dsym_file = "$root_out_dir/$electron_framework_name.dSYM/Contents/Resources/DWARF/$electron_framework_name"
-      deps = [
-        ":electron_framework",
-      ]
+      deps = [ ":electron_framework" ]
     }
 
     foreach(helper_params, content_mac_helpers) {
@@ -1038,9 +954,7 @@ if (is_mac) {
         binary = "$root_out_dir/$electron_helper_name${_helper_suffix}.app/Contents/MacOS/$electron_helper_name${_helper_suffix}"
         symbol_dir = "$root_out_dir/breakpad_symbols"
         dsym_file = "$root_out_dir/$electron_helper_name${_helper_suffix}.dSYM/Contents/Resources/DWARF/$electron_helper_name${_helper_suffix}"
-        deps = [
-          ":electron_helper_app_${_helper_target}",
-        ]
+        deps = [ ":electron_helper_app_${_helper_target}" ]
       }
     }
 
@@ -1048,18 +962,15 @@ if (is_mac) {
       binary = "$root_out_dir/$electron_product_name.app/Contents/MacOS/$electron_product_name"
       symbol_dir = "$root_out_dir/breakpad_symbols"
       dsym_file = "$root_out_dir/$electron_product_name.dSYM/Contents/Resources/DWARF/$electron_product_name"
-      deps = [
-        ":electron_app",
-      ]
+      deps = [ ":electron_app" ]
     }
 
     extract_symbols("swiftshader_egl_syms") {
       binary = "$root_out_dir/libswiftshader_libEGL.dylib"
       symbol_dir = "$root_out_dir/breakpad_symbols"
       dsym_file = "$root_out_dir/libswiftshader_libEGL.dylib.dSYM/Contents/Resources/DWARF/libswiftshader_libEGL.dylib"
-      deps = [
-        "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL",
-      ]
+      deps =
+          [ "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL" ]
     }
 
     extract_symbols("swiftshader_gles_syms") {
@@ -1075,9 +986,7 @@ if (is_mac) {
       binary = "$root_out_dir/crashpad_handler"
       symbol_dir = "$root_out_dir/breakpad_symbols"
       dsym_file = "$root_out_dir/crashpad_handler.dSYM/Contents/Resources/DWARF/crashpad_handler"
-      deps = [
-        "//third_party/crashpad/crashpad/handler:crashpad_handler",
-      ]
+      deps = [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
     }
 
     group("electron_symbols") {
@@ -1138,9 +1047,7 @@ if (is_mac) {
       data += [ "$root_out_dir/resources/default_app.asar" ]
     }
 
-    public_deps = [
-      "//tools/v8_context_snapshot:v8_context_snapshot",
-    ]
+    public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
 
     if (is_win) {
       sources += [
@@ -1197,17 +1104,14 @@ if (is_mac) {
     extract_symbols("electron_app_symbols") {
       binary = "$root_out_dir/$electron_project_name$_target_executable_suffix"
       symbol_dir = "$root_out_dir/breakpad_symbols"
-      deps = [
-        ":electron_app",
-      ]
+      deps = [ ":electron_app" ]
     }
 
     extract_symbols("swiftshader_egl_symbols") {
       binary = "$root_out_dir/swiftshader/libEGL$_target_shared_library_suffix"
       symbol_dir = "$root_out_dir/breakpad_symbols"
-      deps = [
-        "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL",
-      ]
+      deps =
+          [ "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL" ]
     }
 
     extract_symbols("swiftshader_gles_symbols") {
@@ -1279,9 +1183,7 @@ template("dist_zip") {
 
   action(target_name) {
     script = "//electron/build/zip.py"
-    deps = [
-      ":$_runtime_deps_target",
-    ]
+    deps = [ ":$_runtime_deps_target" ]
     forward_variables_from(invoker,
                            [
                              "outputs",
@@ -1300,73 +1202,51 @@ template("dist_zip") {
 }
 
 copy("electron_license") {
-  sources = [
-    "LICENSE",
-  ]
-  outputs = [
-    "$root_build_dir/{{source_file_part}}",
-  ]
+  sources = [ "LICENSE" ]
+  outputs = [ "$root_build_dir/{{source_file_part}}" ]
 }
 copy("chromium_licenses") {
-  deps = [
-    "//components/resources:about_credits",
-  ]
-  sources = [
-    "$root_gen_dir/components/resources/about_credits.html",
-  ]
-  outputs = [
-    "$root_build_dir/LICENSES.chromium.html",
-  ]
+  deps = [ "//components/resources:about_credits" ]
+  sources = [ "$root_gen_dir/components/resources/about_credits.html" ]
+  outputs = [ "$root_build_dir/LICENSES.chromium.html" ]
 }
 
 group("licenses") {
   data_deps = [
-    ":electron_license",
     ":chromium_licenses",
+    ":electron_license",
   ]
 }
 
 copy("electron_version") {
-  sources = [
-    "ELECTRON_VERSION",
-  ]
-  outputs = [
-    "$root_build_dir/version",
-  ]
+  sources = [ "ELECTRON_VERSION" ]
+  outputs = [ "$root_build_dir/version" ]
 }
 
 dist_zip("electron_dist_zip") {
   data_deps = [
     ":electron_app",
-    ":licenses",
     ":electron_version",
+    ":licenses",
   ]
   if (is_linux) {
     data_deps += [ "//sandbox/linux:chrome_sandbox" ]
   }
-  outputs = [
-    "$root_build_dir/dist.zip",
-  ]
+  outputs = [ "$root_build_dir/dist.zip" ]
 }
 
 dist_zip("electron_ffmpeg_zip") {
-  data_deps = [
-    "//third_party/ffmpeg",
-  ]
-  outputs = [
-    "$root_build_dir/ffmpeg.zip",
-  ]
+  data_deps = [ "//third_party/ffmpeg" ]
+  outputs = [ "$root_build_dir/ffmpeg.zip" ]
 }
 
 dist_zip("electron_chromedriver_zip") {
   testonly = true
   data_deps = [
-    "//chrome/test/chromedriver",
     ":licenses",
+    "//chrome/test/chromedriver",
   ]
-  outputs = [
-    "$root_build_dir/chromedriver.zip",
-  ]
+  outputs = [ "$root_build_dir/chromedriver.zip" ]
 }
 
 mksnapshot_deps = [
@@ -1381,31 +1261,21 @@ group("electron_mksnapshot") {
 
 dist_zip("electron_mksnapshot_zip") {
   data_deps = mksnapshot_deps
-  outputs = [
-    "$root_build_dir/mksnapshot.zip",
-  ]
+  outputs = [ "$root_build_dir/mksnapshot.zip" ]
 }
 
 copy("hunspell_dictionaries") {
   sources = hunspell_dictionaries + hunspell_licenses
-  outputs = [
-    "$target_gen_dir/electron_hunspell/{{source_file_part}}",
-  ]
+  outputs = [ "$target_gen_dir/electron_hunspell/{{source_file_part}}" ]
 }
 
 dist_zip("hunspell_dictionaries_zip") {
-  data_deps = [
-    ":hunspell_dictionaries",
-  ]
+  data_deps = [ ":hunspell_dictionaries" ]
   flatten = true
 
-  outputs = [
-    "$root_build_dir/hunspell_dictionaries.zip",
-  ]
+  outputs = [ "$root_build_dir/hunspell_dictionaries.zip" ]
 }
 
 group("electron") {
-  public_deps = [
-    ":electron_app",
-  ]
+  public_deps = [ ":electron_app" ]
 }

+ 5 - 2
DEPS

@@ -6,12 +6,13 @@ gclient_gn_args = [
   'checkout_libaom',
   'checkout_nacl',
   'checkout_oculus_sdk',
-  'checkout_openxr'
+  'checkout_openxr',
+  'checkout_google_benchmark'
 ]
 
 vars = {
   'chromium_version':
-    'd0c764fc71894cc24d3bb17a7406ba6c6cc6dc29',
+    'f707f1d6d428f84cf14b64bc2ca74372e25c6ce7',
   'node_version':
     'v12.14.1',
   'nan_version':
@@ -69,6 +70,8 @@ vars = {
     False,
   'checkout_android_native_support':
     False,
+  'checkout_google_benchmark':
+    False,
 }
 
 deps = {

+ 1 - 1
appveyor.yml

@@ -29,7 +29,7 @@
 
 version: 1.0.{build}
 build_cloud: libcc-20
-image: vs2019bt-16.4.0
+image: vs2019-16.3-10.0.18362
 environment:
   GIT_CACHE_PATH: C:\Users\electron\libcc_cache
   ELECTRON_OUT_DIR: Default

+ 1 - 3
build/extract_symbols.gni

@@ -34,9 +34,7 @@ template("extract_symbols") {
       dump_syms_binary,
     ]
     stamp_file = "${target_gen_dir}/${target_name}.stamp"
-    outputs = [
-      stamp_file,
-    ]
+    outputs = [ stamp_file ]
     args = [
       "./" + rebase_path(dump_syms_binary, root_build_dir),
       rebase_path(invoker.binary, root_build_dir),

+ 1 - 3
build/npm.gni

@@ -10,9 +10,7 @@ template("npm_action") {
     ]
     script = "//electron/build/npm-run.py"
 
-    outputs = [
-      "$target_gen_dir/npm_pre_stamps/" + target_name + ".stamp",
-    ]
+    outputs = [ "$target_gen_dir/npm_pre_stamps/" + target_name + ".stamp" ]
 
     args = [
       "--silent",

+ 2 - 6
build/rules.gni

@@ -81,9 +81,7 @@ template("mac_xib_bundle_data") {
                              "visibility",
                            ])
 
-    public_deps = [
-      ":$_compile_target_name",
-    ]
+    public_deps = [ ":$_compile_target_name" ]
     sources = get_target_outputs(":$_compile_target_name")
 
     _output_path = "{{bundle_resources_dir}}"
@@ -91,8 +89,6 @@ template("mac_xib_bundle_data") {
       _output_path = invoker.output_path
     }
 
-    outputs = [
-      "$_output_path/{{source_file_part}}",
-    ]
+    outputs = [ "$_output_path/{{source_file_part}}" ]
   }
 }

+ 2 - 6
build/templated_file.gni

@@ -15,12 +15,8 @@ template("templated_file") {
                              "inputs",
                              "outputs",
                            ])
-    inputs = [
-      invoker.template,
-    ]
-    outputs = [
-      invoker.output,
-    ]
+    inputs = [ invoker.template ]
+    outputs = [ invoker.output ]
     script = "//electron/build/generate-template.py"
     args = [
       rebase_path(invoker.template),

+ 1 - 3
build/webpack/webpack.gni

@@ -27,8 +27,6 @@ template("webpack_build") {
       rebase_path(invoker.out_file),
     ]
 
-    outputs = [
-      invoker.out_file,
-    ]
+    outputs = [ invoker.out_file ]
   }
 }

+ 4 - 3
chromium_src/BUILD.gn

@@ -68,6 +68,7 @@ static_library("chrome") {
   ]
   deps = [
     "//chrome/browser:resource_prefetch_predictor_proto",
+    "//chrome/browser/ssl:proto",
     "//components/feature_engagement:buildflags",
   ]
 
@@ -184,9 +185,9 @@ static_library("chrome") {
       "//chrome/services/printing:lib",
       "//components/printing/browser",
       "//components/printing/renderer",
-      "//components/services/pdf_compositor",
-      "//components/services/pdf_compositor/public/cpp",
-      "//components/services/pdf_compositor/public/mojom",
+      "//components/services/print_compositor",
+      "//components/services/print_compositor/public/cpp",
+      "//components/services/print_compositor/public/mojom",
     ]
 
     deps += [

+ 29 - 29
filenames.gni

@@ -14,11 +14,11 @@ filenames = {
 
   default_app_octicon_sources = [
     "node_modules/@primer/octicons/build/build.css",
+    "node_modules/@primer/octicons/build/svg/gear.svg",
+    "node_modules/@primer/octicons/build/svg/gift.svg",
     "node_modules/@primer/octicons/build/svg/gist.svg",
     "node_modules/@primer/octicons/build/svg/mark-github.svg",
-    "node_modules/@primer/octicons/build/svg/gear.svg",
     "node_modules/@primer/octicons/build/svg/star.svg",
-    "node_modules/@primer/octicons/build/svg/gift.svg",
   ]
 
   lib_sources = [
@@ -124,9 +124,9 @@ filenames = {
     "shell/browser/api/save_page_handler.cc",
     "shell/browser/api/save_page_handler.h",
     "shell/browser/atom_autofill_driver.cc",
+    "shell/browser/atom_autofill_driver.h",
     "shell/browser/atom_autofill_driver_factory.cc",
     "shell/browser/atom_autofill_driver_factory.h",
-    "shell/browser/atom_autofill_driver.h",
     "shell/browser/atom_browser_client.cc",
     "shell/browser/atom_browser_client.h",
     "shell/browser/atom_browser_context.cc",
@@ -186,10 +186,10 @@ filenames = {
     "shell/browser/linux/unity_service.h",
     "shell/browser/login_handler.cc",
     "shell/browser/login_handler.h",
-    "shell/browser/mac/atom_application_delegate.h",
-    "shell/browser/mac/atom_application_delegate.mm",
     "shell/browser/mac/atom_application.h",
     "shell/browser/mac/atom_application.mm",
+    "shell/browser/mac/atom_application_delegate.h",
+    "shell/browser/mac/atom_application_delegate.mm",
     "shell/browser/mac/dict_util.h",
     "shell/browser/mac/dict_util.mm",
     "shell/browser/mac/in_app_purchase.h",
@@ -227,9 +227,9 @@ filenames = {
     "shell/browser/net/cert_verifier_client.cc",
     "shell/browser/net/cert_verifier_client.h",
     "shell/browser/net/network_context_service.cc",
+    "shell/browser/net/network_context_service.h",
     "shell/browser/net/network_context_service_factory.cc",
     "shell/browser/net/network_context_service_factory.h",
-    "shell/browser/net/network_context_service.h",
     "shell/browser/net/node_stream_loader.cc",
     "shell/browser/net/node_stream_loader.h",
     "shell/browser/net/proxying_url_loader_factory.cc",
@@ -255,16 +255,16 @@ filenames = {
     "shell/browser/notifications/mac/notification_presenter_mac.h",
     "shell/browser/notifications/mac/notification_presenter_mac.mm",
     "shell/browser/notifications/notification.cc",
-    "shell/browser/notifications/notification_delegate.h",
     "shell/browser/notifications/notification.h",
+    "shell/browser/notifications/notification_delegate.h",
     "shell/browser/notifications/notification_presenter.cc",
     "shell/browser/notifications/notification_presenter.h",
     "shell/browser/notifications/platform_notification_service.cc",
     "shell/browser/notifications/platform_notification_service.h",
-    "shell/browser/notifications/win/notification_presenter_win7.cc",
-    "shell/browser/notifications/win/notification_presenter_win7.h",
     "shell/browser/notifications/win/notification_presenter_win.cc",
     "shell/browser/notifications/win/notification_presenter_win.h",
+    "shell/browser/notifications/win/notification_presenter_win7.cc",
+    "shell/browser/notifications/win/notification_presenter_win7.h",
     "shell/browser/notifications/win/win32_desktop_notifications/common.h",
     "shell/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.cc",
     "shell/browser/notifications/win/win32_desktop_notifications/desktop_notification_controller.h",
@@ -296,6 +296,10 @@ filenames = {
     "shell/browser/ui/certificate_trust.h",
     "shell/browser/ui/certificate_trust_mac.mm",
     "shell/browser/ui/certificate_trust_win.cc",
+    "shell/browser/ui/cocoa/NSColor+Hex.h",
+    "shell/browser/ui/cocoa/NSColor+Hex.mm",
+    "shell/browser/ui/cocoa/NSString+ANSI.h",
+    "shell/browser/ui/cocoa/NSString+ANSI.mm",
     "shell/browser/ui/cocoa/atom_bundle_mover.h",
     "shell/browser/ui/cocoa/atom_bundle_mover.mm",
     "shell/browser/ui/cocoa/atom_inspectable_web_contents_view.h",
@@ -304,10 +308,10 @@ filenames = {
     "shell/browser/ui/cocoa/atom_menu_controller.mm",
     "shell/browser/ui/cocoa/atom_native_widget_mac.h",
     "shell/browser/ui/cocoa/atom_native_widget_mac.mm",
-    "shell/browser/ui/cocoa/atom_ns_window_delegate.h",
-    "shell/browser/ui/cocoa/atom_ns_window_delegate.mm",
     "shell/browser/ui/cocoa/atom_ns_window.h",
     "shell/browser/ui/cocoa/atom_ns_window.mm",
+    "shell/browser/ui/cocoa/atom_ns_window_delegate.h",
+    "shell/browser/ui/cocoa/atom_ns_window_delegate.mm",
     "shell/browser/ui/cocoa/atom_preview_item.h",
     "shell/browser/ui/cocoa/atom_preview_item.mm",
     "shell/browser/ui/cocoa/atom_touch_bar.h",
@@ -316,10 +320,6 @@ filenames = {
     "shell/browser/ui/cocoa/delayed_native_view_host.h",
     "shell/browser/ui/cocoa/event_dispatching_window.h",
     "shell/browser/ui/cocoa/event_dispatching_window.mm",
-    "shell/browser/ui/cocoa/NSColor+Hex.h",
-    "shell/browser/ui/cocoa/NSColor+Hex.mm",
-    "shell/browser/ui/cocoa/NSString+ANSI.h",
-    "shell/browser/ui/cocoa/NSString+ANSI.mm",
     "shell/browser/ui/cocoa/root_view_mac.h",
     "shell/browser/ui/cocoa/root_view_mac.mm",
     "shell/browser/ui/cocoa/views_delegate_mac.h",
@@ -331,35 +331,35 @@ filenames = {
     "shell/browser/ui/drag_util.h",
     "shell/browser/ui/drag_util_mac.mm",
     "shell/browser/ui/drag_util_views.cc",
-    "shell/browser/ui/file_dialog_gtk.cc",
     "shell/browser/ui/file_dialog.h",
+    "shell/browser/ui/file_dialog_gtk.cc",
     "shell/browser/ui/file_dialog_mac.mm",
     "shell/browser/ui/file_dialog_win.cc",
     "shell/browser/ui/inspectable_web_contents.cc",
-    "shell/browser/ui/inspectable_web_contents_delegate.h",
     "shell/browser/ui/inspectable_web_contents.h",
+    "shell/browser/ui/inspectable_web_contents_delegate.h",
     "shell/browser/ui/inspectable_web_contents_impl.cc",
     "shell/browser/ui/inspectable_web_contents_impl.h",
+    "shell/browser/ui/inspectable_web_contents_view.h",
     "shell/browser/ui/inspectable_web_contents_view_delegate.cc",
     "shell/browser/ui/inspectable_web_contents_view_delegate.h",
-    "shell/browser/ui/inspectable_web_contents_view.h",
     "shell/browser/ui/inspectable_web_contents_view_mac.h",
     "shell/browser/ui/inspectable_web_contents_view_mac.mm",
-    "shell/browser/ui/message_box_gtk.cc",
     "shell/browser/ui/message_box.h",
+    "shell/browser/ui/message_box_gtk.cc",
     "shell/browser/ui/message_box_mac.mm",
     "shell/browser/ui/message_box_win.cc",
     "shell/browser/ui/tray_icon.cc",
+    "shell/browser/ui/tray_icon.h",
     "shell/browser/ui/tray_icon_cocoa.h",
     "shell/browser/ui/tray_icon_cocoa.mm",
     "shell/browser/ui/tray_icon_gtk.cc",
     "shell/browser/ui/tray_icon_gtk.h",
-    "shell/browser/ui/tray_icon.h",
     "shell/browser/ui/tray_icon_observer.h",
     "shell/browser/ui/tray_icon_win.cc",
     "shell/browser/ui/views/atom_views_delegate.cc",
-    "shell/browser/ui/views/atom_views_delegate_win.cc",
     "shell/browser/ui/views/atom_views_delegate.h",
+    "shell/browser/ui/views/atom_views_delegate_win.cc",
     "shell/browser/ui/views/autofill_popup_view.cc",
     "shell/browser/ui/views/autofill_popup_view.h",
     "shell/browser/ui/views/frameless_view.cc",
@@ -414,11 +414,11 @@ filenames = {
     "shell/browser/web_view_guest_delegate.h",
     "shell/browser/web_view_manager.cc",
     "shell/browser/web_view_manager.h",
+    "shell/browser/win/scoped_hstring.cc",
+    "shell/browser/win/scoped_hstring.h",
     "shell/browser/window_list.cc",
     "shell/browser/window_list.h",
     "shell/browser/window_list_observer.h",
-    "shell/browser/win/scoped_hstring.cc",
-    "shell/browser/win/scoped_hstring.h",
     "shell/browser/zoom_level_delegate.cc",
     "shell/browser/zoom_level_delegate.h",
     "shell/common/api/atom_api_asar.cc",
@@ -502,10 +502,10 @@ filenames = {
     "shell/common/gin_helper/dictionary.h",
     "shell/common/gin_helper/error_thrower.cc",
     "shell/common/gin_helper/error_thrower.h",
-    "shell/common/gin_helper/event_emitter_caller.cc",
-    "shell/common/gin_helper/event_emitter_caller.h",
     "shell/common/gin_helper/event_emitter.cc",
     "shell/common/gin_helper/event_emitter.h",
+    "shell/common/gin_helper/event_emitter_caller.cc",
+    "shell/common/gin_helper/event_emitter_caller.h",
     "shell/common/gin_helper/function_template.cc",
     "shell/common/gin_helper/function_template.h",
     "shell/common/gin_helper/locker.cc",
@@ -514,8 +514,8 @@ filenames = {
     "shell/common/gin_helper/object_template_builder.h",
     "shell/common/gin_helper/persistent_dictionary.cc",
     "shell/common/gin_helper/persistent_dictionary.h",
-    "shell/common/gin_helper/promise.h",
     "shell/common/gin_helper/promise.cc",
+    "shell/common/gin_helper/promise.h",
     "shell/common/gin_helper/trackable_object.cc",
     "shell/common/gin_helper/trackable_object.h",
     "shell/common/gin_helper/wrappable.cc",
@@ -523,9 +523,9 @@ filenames = {
     "shell/common/gin_helper/wrappable_base.h",
     "shell/common/heap_snapshot.cc",
     "shell/common/heap_snapshot.h",
+    "shell/common/key_weak_map.h",
     "shell/common/keyboard_util.cc",
     "shell/common/keyboard_util.h",
-    "shell/common/key_weak_map.h",
     "shell/common/mac/main_application_bundle.h",
     "shell/common/mac/main_application_bundle.mm",
     "shell/common/mouse_util.cc",
@@ -561,10 +561,10 @@ filenames = {
     "shell/renderer/api/context_bridge/render_frame_context_bridge_store.h",
     "shell/renderer/atom_autofill_agent.cc",
     "shell/renderer/atom_autofill_agent.h",
-    "shell/renderer/atom_renderer_client.cc",
-    "shell/renderer/atom_renderer_client.h",
     "shell/renderer/atom_render_frame_observer.cc",
     "shell/renderer/atom_render_frame_observer.h",
+    "shell/renderer/atom_renderer_client.cc",
+    "shell/renderer/atom_renderer_client.h",
     "shell/renderer/atom_sandboxed_renderer_client.cc",
     "shell/renderer/atom_sandboxed_renderer_client.h",
     "shell/renderer/content_settings_observer.cc",

+ 5 - 5
filenames.hunspell.gni

@@ -7,13 +7,13 @@ hunspell_dictionaries = [
   "//third_party/hunspell_dictionaries/da-DK-3-0.bdic",
   "//third_party/hunspell_dictionaries/de-DE-3-0.bdic",
   "//third_party/hunspell_dictionaries/el-GR-3-0.bdic",
-  "//third_party/hunspell_dictionaries/en-AU-8-0.bdic",
-  "//third_party/hunspell_dictionaries/en-CA-8-0.bdic",
-  "//third_party/hunspell_dictionaries/en-GB-8-0.bdic",
-  "//third_party/hunspell_dictionaries/en-US-8-0.bdic",
+  "//third_party/hunspell_dictionaries/en-AU-9-0.bdic",
+  "//third_party/hunspell_dictionaries/en-CA-9-0.bdic",
+  "//third_party/hunspell_dictionaries/en-GB-9-0.bdic",
+  "//third_party/hunspell_dictionaries/en-US-9-0.bdic",
   "//third_party/hunspell_dictionaries/es-ES-3-0.bdic",
   "//third_party/hunspell_dictionaries/et-EE-3-0.bdic",
-  "//third_party/hunspell_dictionaries/fa-IR-8-0.bdic",
+  "//third_party/hunspell_dictionaries/fa-IR-9-0.bdic",
   "//third_party/hunspell_dictionaries/fo-FO-3-0.bdic",
   "//third_party/hunspell_dictionaries/fr-FR-3-0.bdic",
   "//third_party/hunspell_dictionaries/he-IL-3-0.bdic",

+ 1 - 0
patches/chromium/.patches

@@ -80,3 +80,4 @@ chore_use_electron_resources_not_chrome_for_spellchecker.patch
 add_trustedauthclient_to_urlloaderfactory.patch
 feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch
 accessible_pane_view.patch
+fixme_grit_conflicts.patch

+ 2 - 2
patches/chromium/accelerator.patch

@@ -10,7 +10,7 @@ This patch makes three changes to Accelerator::GetShortcutText to improve shortc
 3. Ctrl-Shift-= should show as Ctrl-+
 
 diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc
-index a3e869a74c33b161215ab4eb6f6adc6a71c9fff5..83315ce63e7d39d3e47a8bb61ade728e20ac11c8 100644
+index 025a82c14dd379f82e6c8242727346bd21e768f3..8b8b0e77c355acd1ef22fb51b89f65f90bfe5cc6 100644
 --- a/ui/base/accelerators/accelerator.cc
 +++ b/ui/base/accelerators/accelerator.cc
 @@ -11,6 +11,7 @@
@@ -74,7 +74,7 @@ index a3e869a74c33b161215ab4eb6f6adc6a71c9fff5..83315ce63e7d39d3e47a8bb61ade728e
 +          base::StringPrintf("F%d", key_code_ - VKEY_F1 + 1));
    }
  
-   // Checking whether the character used for the accelerator is alphanumeric.
+ #if defined(OS_MACOSX)
 @@ -356,7 +356,7 @@ base::string16 Accelerator::ApplyLongFormModifiers(
    // more information.
    if (IsCtrlDown())

+ 3 - 3
patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch

@@ -10,10 +10,10 @@ Allows Electron to restore WER when ELECTRON_DEFAULT_ERROR_MODE is set.
 This should be upstreamed.
 
 diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
-index 384f81bff1ae2551b180175a3ec88baf88677d12..166d2ef3e0d14a84ecbe3c5d0d0bd1c8329b3c9e 100644
+index 0a56e27b49e101f4ac3bd1a0d386c3977666bb6d..d0ccfac9c90d1427778222badb6246aaa1f7b8a4 100644
 --- a/content/gpu/gpu_main.cc
 +++ b/content/gpu/gpu_main.cc
-@@ -258,6 +258,10 @@ int GpuMain(const MainFunctionParams& parameters) {
+@@ -259,6 +259,10 @@ int GpuMain(const MainFunctionParams& parameters) {
  
    logging::SetLogMessageHandler(GpuProcessLogMessageHandler);
  
@@ -24,7 +24,7 @@ index 384f81bff1ae2551b180175a3ec88baf88677d12..166d2ef3e0d14a84ecbe3c5d0d0bd1c8
    // We are experiencing what appear to be memory-stomp issues in the GPU
    // process. These issues seem to be impacting the task executor and listeners
    // registered to it. Create the task executor on the heap to guard against
-@@ -366,7 +370,6 @@ int GpuMain(const MainFunctionParams& parameters) {
+@@ -371,7 +375,6 @@ int GpuMain(const MainFunctionParams& parameters) {
    GpuProcess gpu_process(io_thread_priority);
  #endif
  

+ 2 - 2
patches/chromium/add_realloc.patch

@@ -39,10 +39,10 @@ index 2aef366ac8194aa261cbca6abc051f7da8a988d3..3c7d66c81032636abcca4f1538ce9b7f
  
    GIN_EXPORT static ArrayBufferAllocator* SharedInstance();
 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 c69cfebccd7d7bff35d2292e61bf6008f0ca7940..2cb5f5d3f89f2af13221e66b2277a28532d53deb 100644
+index 6dc5d6d39c4fa28fc4c303ff704267ad60b050f2..9fd95c25db36b8e5e02cd971ae30608fba027346 100644
 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
 +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
-@@ -654,6 +654,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
+@@ -657,6 +657,10 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
          size, ArrayBufferContents::kDontInitialize);
    }
  

+ 10 - 10
patches/chromium/add_trustedauthclient_to_urlloaderfactory.patch

@@ -10,10 +10,10 @@ WebContents, and cancels the authentication if there's no WebContents
 available, which there isn't in the case of the 'net' module.
 
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index def2cb5e252389879c6287d44d29e704703841cb..98d64785240bde3e182268e453dced41b432df9a 100644
+index 541d8017d38cbede3199e0028f3b1b260bd61b34..ec2e6d52d247fbcc9f07c54518f860d1a30822f4 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -190,6 +190,25 @@ struct HttpAuthStaticNetworkContextParams {
+@@ -191,6 +191,25 @@ struct HttpAuthStaticNetworkContextParams {
       = DefaultCredentials.ALLOW_DEFAULT_CREDENTIALS;
  };
  
@@ -39,7 +39,7 @@ index def2cb5e252389879c6287d44d29e704703841cb..98d64785240bde3e182268e453dced41
  interface CertVerifierClient {
    Verify(
      int32 default_error,
-@@ -596,6 +615,8 @@ struct URLLoaderFactoryParams {
+@@ -603,6 +622,8 @@ struct URLLoaderFactoryParams {
    // interface. This still respects the per-context block lists.
    CorsOriginAccessPatterns? factory_bound_access_patterns;
  
@@ -49,10 +49,10 @@ index def2cb5e252389879c6287d44d29e704703841cb..98d64785240bde3e182268e453dced41
    NetworkIsolationKey? network_isolation_key;
  
 diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
-index 96ea5f62e5796810f87abfb2a3c400ffcc024ff0..d50831adb6ba65ece49b62ec4a8cd1a92fdb0d28 100644
+index 6f69ca035500a7af795ccd93b689bcc3b376576e..bf112361de669c22532d269b5871c9b23ca7b694 100644
 --- a/services/network/url_loader.cc
 +++ b/services/network/url_loader.cc
-@@ -334,6 +334,7 @@ URLLoader::URLLoader(
+@@ -338,6 +338,7 @@ URLLoader::URLLoader(
      base::WeakPtr<KeepaliveStatisticsRecorder> keepalive_statistics_recorder,
      base::WeakPtr<NetworkUsageAccumulator> network_usage_accumulator,
      mojom::TrustedURLLoaderHeaderClient* url_loader_header_client,
@@ -60,7 +60,7 @@ index 96ea5f62e5796810f87abfb2a3c400ffcc024ff0..d50831adb6ba65ece49b62ec4a8cd1a9
      mojom::OriginPolicyManager* origin_policy_manager)
      : url_request_context_(url_request_context),
        network_service_client_(network_service_client),
-@@ -391,6 +392,11 @@ URLLoader::URLLoader(
+@@ -396,6 +397,11 @@ URLLoader::URLLoader(
      header_client_.set_disconnect_handler(
          base::BindOnce(&URLLoader::OnMojoDisconnect, base::Unretained(this)));
    }
@@ -72,7 +72,7 @@ index 96ea5f62e5796810f87abfb2a3c400ffcc024ff0..d50831adb6ba65ece49b62ec4a8cd1a9
    if (want_raw_headers_) {
      options_ |= mojom::kURLLoadOptionSendSSLInfoWithResponse |
                  mojom::kURLLoadOptionSendSSLInfoForCertificateError;
-@@ -826,7 +832,7 @@ void URLLoader::OnReceivedRedirect(net::URLRequest* url_request,
+@@ -830,7 +836,7 @@ void URLLoader::OnReceivedRedirect(net::URLRequest* url_request,
  
  void URLLoader::OnAuthRequired(net::URLRequest* url_request,
                                 const net::AuthChallengeInfo& auth_info) {
@@ -81,7 +81,7 @@ index 96ea5f62e5796810f87abfb2a3c400ffcc024ff0..d50831adb6ba65ece49b62ec4a8cd1a9
      OnAuthCredentials(base::nullopt);
      return;
    }
-@@ -842,11 +848,20 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request,
+@@ -846,11 +852,20 @@ void URLLoader::OnAuthRequired(net::URLRequest* url_request,
    if (url_request->response_headers())
      head->headers = url_request->response_headers();
    head->auth_challenge_info = auth_info;
@@ -108,7 +108,7 @@ index 96ea5f62e5796810f87abfb2a3c400ffcc024ff0..d50831adb6ba65ece49b62ec4a8cd1a9
    auth_challenge_responder_receiver_.set_disconnect_handler(
        base::BindOnce(&URLLoader::DeleteSelf, base::Unretained(this)));
 diff --git a/services/network/url_loader.h b/services/network/url_loader.h
-index 564851586d2ad5fe0ae6acd4457257ce8ed665b3..3291fe28deb20b9630589e8ea11ea1366583081c 100644
+index 532ecdc0a9b386eb9ea04a480b18aeb1ac32a059..b3ad0f42ab9c2f513d8c4a06683d1af6f0219a56 100644
 --- a/services/network/url_loader.h
 +++ b/services/network/url_loader.h
 @@ -85,6 +85,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
@@ -119,7 +119,7 @@ index 564851586d2ad5fe0ae6acd4457257ce8ed665b3..3291fe28deb20b9630589e8ea11ea136
        mojom::OriginPolicyManager* origin_policy_manager);
    ~URLLoader() override;
  
-@@ -378,6 +379,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
+@@ -384,6 +385,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
    base::Optional<base::UnguessableToken> fetch_window_id_;
  
    mojo::Remote<mojom::TrustedHeaderClient> header_client_;

+ 2 - 2
patches/chromium/blink-worker-enable-csp-in-file-scheme.patch

@@ -6,10 +6,10 @@ Subject: blink-worker-enable-csp-in-file-scheme.patch
 This allows file:// URLs in workers to have a CSP.
 
 diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
-index 1f8273a782a5d3580e139d724ce8a791a100dcfb..90ad0d663003c0bded47183b61bff71a0c01a196 100644
+index d490f57f7ad056a278bc50786e285d6757de6433..6bd0614c388dc581b50c6b01e9c6dabad5419b19 100644
 --- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
 +++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
-@@ -308,7 +308,6 @@ void WorkerClassicScriptLoader::ProcessContentSecurityPolicy(
+@@ -312,7 +312,6 @@ void WorkerClassicScriptLoader::ProcessContentSecurityPolicy(
    // document (which is implemented in WorkerMessagingProxy, and
    // m_contentSecurityPolicy should be left as nullptr to inherit the policy).
    if (!response.CurrentRequestUrl().ProtocolIs("blob") &&

+ 4 - 4
patches/chromium/blink_file_path.patch

@@ -7,7 +7,7 @@ This is used by editors to obtain the filesystem path from a dragged file. See
 documentation at https://electronjs.org/docs/api/file-object
 
 diff --git a/third_party/blink/renderer/core/fileapi/file.h b/third_party/blink/renderer/core/fileapi/file.h
-index 7ea8ad8fd162fd6a97052188a8e8868dab1c1fe9..a64966e2db0e2e7b0390a322525522e05ddbb022 100644
+index 888fb19b976194c173286f92b26c4bc9362bcf9c..9d243bc70089685f018b14eba0025cfd11bb82f6 100644
 --- a/third_party/blink/renderer/core/fileapi/file.h
 +++ b/third_party/blink/renderer/core/fileapi/file.h
 @@ -193,6 +193,9 @@ class CORE_EXPORT File final : public Blob {
@@ -21,12 +21,12 @@ index 7ea8ad8fd162fd6a97052188a8e8868dab1c1fe9..a64966e2db0e2e7b0390a322525522e0
    // http://dev.w3.org/2006/webapi/FileAPI/#file-attrs
    int64_t lastModified() const;
 diff --git a/third_party/blink/renderer/core/fileapi/file.idl b/third_party/blink/renderer/core/fileapi/file.idl
-index e5cf6cc926ff2670f713018dd750e79c53ee76eb..60eca3cf100b31c3d2c0c68271d98c60321e69a7 100644
+index 8113ac9050c25a675eb20c90fdb4d037e171a5b6..9ca2d532dc4694d7a68ebd6b7988907132dae0e9 100644
 --- a/third_party/blink/renderer/core/fileapi/file.idl
 +++ b/third_party/blink/renderer/core/fileapi/file.idl
-@@ -32,6 +32,7 @@
-     Serializable
+@@ -31,6 +31,7 @@
  ] interface File : Blob {
+     [CallWith=ExecutionContext] constructor(sequence<BlobPart> fileBits, USVString fileName, optional FilePropertyBag options);
      readonly attribute DOMString name;
 +    readonly attribute DOMString path;
      readonly attribute long long lastModified;

+ 2 - 2
patches/chromium/blink_initialization_order.patch

@@ -10,10 +10,10 @@ to fix electron/electron#13787.  The backport landed in Chromium 67 but the
 DidCreateScriptContext re-ordering needs to be upstreamed or kept indefinitely
 
 diff --git a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
-index 8095edd988c171a8ad7382d1c2f9fa63ee9e5ffc..802316843c6c270efb871a5d697c4e0d182605d0 100644
+index c845acb8321e94c916798826a168e06df34ffff4..941ca9d3905c0c2f36606655bf60e9e9bd1f9196 100644
 --- a/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
 +++ b/third_party/blink/renderer/bindings/core/v8/local_window_proxy.cc
-@@ -227,11 +227,10 @@ void LocalWindowProxy::Initialize() {
+@@ -211,11 +211,10 @@ void LocalWindowProxy::Initialize() {
                   GetFrame()->IsMainFrame());
      MainThreadDebugger::Instance()->ContextCreated(script_state_, GetFrame(),
                                                     origin);

+ 3 - 3
patches/chromium/blink_local_frame.patch

@@ -14,10 +14,10 @@ when there is code doing that.
 This patch reverts the change to fix the crash in Electron.
 
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
-index 94019ebf806be6b0a9424b43579d46bf6a0e3de4..fa827b5846fc93c59f98795da51bab0f3b33de5e 100644
+index f7536b085bc5c0fd4853ac905bf7b7c0160d60b7..36303725d92c76581ea91d06674408aa41bbf549 100644
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -344,10 +344,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -347,10 +347,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
    }
    CHECK(!view_ || !view_->IsAttached());
  
@@ -28,7 +28,7 @@ index 94019ebf806be6b0a9424b43579d46bf6a0e3de4..fa827b5846fc93c59f98795da51bab0f
    if (!Client())
      return;
  
-@@ -365,6 +361,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
+@@ -368,6 +364,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
    // Notify ScriptController that the frame is closing, since its cleanup ends
    // up calling back to LocalFrameClient via WindowProxy.
    GetScriptController().ClearForClose();

+ 6 - 6
patches/chromium/blink_world_context.patch

@@ -7,10 +7,10 @@ This exposes a method for obtaining a reference to an isolated world, which is
 otherwise not available in the Blink API.
 
 diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
-index 05a33b9a2cbed57e4e037428397b59f30f83ce66..0cd308b38a158a016b099beed6a31fa1c5a487ad 100644
+index 461e1574cd55860ea62a2c7f509a2fdb4134c898..0f45096b984f64fb0c094cd0996a2afbb64ddfb6 100644
 --- a/third_party/blink/public/web/web_local_frame.h
 +++ b/third_party/blink/public/web/web_local_frame.h
-@@ -341,6 +341,9 @@ class WebLocalFrame : public WebFrame {
+@@ -347,6 +347,9 @@ class WebLocalFrame : public WebFrame {
    // be calling this API.
    virtual v8::Local<v8::Context> MainWorldScriptContext() const = 0;
  
@@ -21,10 +21,10 @@ index 05a33b9a2cbed57e4e037428397b59f30f83ce66..0cd308b38a158a016b099beed6a31fa1
    // that the script evaluated to with callback. Script execution can be
    // suspend.
 diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
-index 8c984ae92de2a53e59782bea94a143ee7fde2248..105e1e92002adde207db5c770197547ab6b55f97 100644
+index 3de275c61ba6d1aa612de9036253906e4eb5638a..3912a5797fad331ab8b754abe9474b63f1a468df 100644
 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
 +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
-@@ -935,6 +935,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
+@@ -956,6 +956,13 @@ v8::Local<v8::Object> WebLocalFrameImpl::GlobalProxy() const {
    return MainWorldScriptContext()->Global();
  }
  
@@ -39,10 +39,10 @@ index 8c984ae92de2a53e59782bea94a143ee7fde2248..105e1e92002adde207db5c770197547a
    return BindingSecurity::ShouldAllowAccessToFrame(
        CurrentDOMWindow(V8PerIsolateData::MainThreadIsolate()),
 diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
-index e3d4a369e6708827497b7ef8ce38817bde8c8010..ad7fd6c34f10d10257ef5c6e5b4b916dc924f20c 100644
+index 8e28c1d87211567636b9e291c3969bd00c78ff38..585dd302815e51e33e03e3c5db2d3ea1621d0b4b 100644
 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
 +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
-@@ -171,6 +171,8 @@ class CORE_EXPORT WebLocalFrameImpl final
+@@ -172,6 +172,8 @@ class CORE_EXPORT WebLocalFrameImpl final
        int argc,
        v8::Local<v8::Value> argv[]) override;
    v8::Local<v8::Context> MainWorldScriptContext() const override;

+ 1 - 1
patches/chromium/boringssl_build_gn.patch

@@ -6,7 +6,7 @@ Subject: boringssl BUILD.gn
 Build BoringSSL with some extra functions that nodejs needs.
 
 diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
-index a8aa9c9ece41fe6e55c19aa301ec8d3314ea3644..9de25650618847b6f4fc022f47a85c295b1323a7 100644
+index e2b2a8eae3b051d9babc7af1b9f2ac5053bb7dc7..f6df2752367d4b81a03ab7d585c29452e79f6f6c 100644
 --- a/third_party/boringssl/BUILD.gn
 +++ b/third_party/boringssl/BUILD.gn
 @@ -45,6 +45,19 @@ config("no_asm_config") {

+ 1 - 1
patches/chromium/build_add_electron_tracing_category.patch

@@ -8,7 +8,7 @@ categories in use are known / declared.  This patch is required for us
 to introduce a new Electron category for Electron-specific tracing.
 
 diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
-index 095c6255cfe830049137e42ecc4668d1bf877f33..87abc44f392e47a7655c127edf27f4d5ff419bb0 100644
+index 5c8844f699506362c21e7eb4b3ca5e869684c5bb..0884cd263f5f5e793932800bdbb50d6e33955ed0 100644
 --- a/base/trace_event/builtin_categories.h
 +++ b/base/trace_event/builtin_categories.h
 @@ -66,6 +66,7 @@

+ 15 - 15
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/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
-index b7ed7e9f59b7cde06aa468e1fec708c791327a57..14b3d4603b8143ea2660c0fad5ab8e8547f2854a 100644
+index 563e07a5ac2d9c44c4484d59e3fc025c70b961ea..60e36fab0e6999688b88665d9ad3181a26525a38 100644
 --- a/content/browser/frame_host/render_frame_host_impl.cc
 +++ b/content/browser/frame_host/render_frame_host_impl.cc
-@@ -4397,6 +4397,7 @@ void RenderFrameHostImpl::CreateNewWindow(
+@@ -4369,6 +4369,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,7 +21,7 @@ index b7ed7e9f59b7cde06aa468e1fec708c791327a57..14b3d4603b8143ea2660c0fad5ab8e85
            &no_javascript_access);
  
 diff --git a/content/common/frame.mojom b/content/common/frame.mojom
-index 46d534b72813c8fb6dfa2ad42f2d81b983cfdf90..9c492e3c2ebd4f6e89ee883d08522145594a8e01 100644
+index fb4cdca43e59c2dd8156cbe12bec391b128a6dd9..5c3645bebf2009def133fcd845f50e7745a243ca 100644
 --- a/content/common/frame.mojom
 +++ b/content/common/frame.mojom
 @@ -302,6 +302,10 @@ struct CreateNewWindowParams {
@@ -36,10 +36,10 @@ index 46d534b72813c8fb6dfa2ad42f2d81b983cfdf90..9c492e3c2ebd4f6e89ee883d08522145
  
  // 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 602008278edca8b34ba02e5c5d236ab9342b3cc0..76261e6b09094527327e068e183d3d3b2665467b 100644
+index 0788e0f5e4311d8978768cb0d4d09736c19d2d25..0baf2ab441d48ee32a3ccf40fbc73c2c5cbcea2a 100644
 --- a/content/public/browser/content_browser_client.cc
 +++ b/content/public/browser/content_browser_client.cc
-@@ -510,6 +510,8 @@ bool ContentBrowserClient::CanCreateWindow(
+@@ -501,6 +501,8 @@ bool ContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -49,10 +49,10 @@ index 602008278edca8b34ba02e5c5d236ab9342b3cc0..76261e6b09094527327e068e183d3d3b
      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 c2af7b3b2b38997b083bc860e4abca63a53d73e4..2196584c127c8a3f80bfe55aaff3187372c19b1e 100644
+index 16c89377db5909ace2d12281a5ad4db49076e805..3a32228e8c131468c535f3586b1c54b307062c42 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
-@@ -135,6 +135,7 @@ class NetworkService;
+@@ -139,6 +139,7 @@ class NetworkService;
  class TrustedURLLoaderHeaderClient;
  }  // namespace mojom
  struct ResourceRequest;
@@ -60,7 +60,7 @@ index c2af7b3b2b38997b083bc860e4abca63a53d73e4..2196584c127c8a3f80bfe55aaff31873
  }  // namespace network
  
  namespace rappor {
-@@ -823,6 +824,8 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -824,6 +825,8 @@ class CONTENT_EXPORT ContentBrowserClient {
        const std::string& frame_name,
        WindowOpenDisposition disposition,
        const blink::mojom::WindowFeatures& features,
@@ -70,10 +70,10 @@ index c2af7b3b2b38997b083bc860e4abca63a53d73e4..2196584c127c8a3f80bfe55aaff31873
        bool opener_suppressed,
        bool* no_javascript_access);
 diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
-index 2c43fe2096f9c76b6ca757dcd2d53eb596bca2c1..f815739a06a60e050003d2819ddab82be2abf3a6 100644
+index 23ea7af344a1eaca2d0301cee9fe4bedde57b93a..37ac96bb7d42fe4caeb31861875219079d986982 100644
 --- a/content/renderer/render_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
-@@ -70,6 +70,7 @@
+@@ -69,6 +69,7 @@
  #include "content/renderer/ime_event_guard.h"
  #include "content/renderer/internal_document_state_data.h"
  #include "content/renderer/loader/request_extra_data.h"
@@ -81,7 +81,7 @@ index 2c43fe2096f9c76b6ca757dcd2d53eb596bca2c1..f815739a06a60e050003d2819ddab82b
  #include "content/renderer/media/audio/audio_device_factory.h"
  #include "content/renderer/render_frame_impl.h"
  #include "content/renderer/render_frame_proxy.h"
-@@ -1333,6 +1334,8 @@ WebView* RenderViewImpl::CreateView(
+@@ -1294,6 +1295,8 @@ WebView* RenderViewImpl::CreateView(
    }
    params->features = ConvertWebWindowFeaturesToMojoWindowFeatures(features);
  
@@ -91,10 +91,10 @@ index 2c43fe2096f9c76b6ca757dcd2d53eb596bca2c1..f815739a06a60e050003d2819ddab82b
    // moved on send.
    bool is_background_tab =
 diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc
-index 5908c91e81f94575ec772fa86833fe1effe07c99..ac05f23929d1223646d6bc1956a581c48ee1f844 100644
+index 4497b2d0c264f3e8ebc05230bdc117b6abccc23b..2eaa105035208d92cdcfe0e4de2a62ebbce1414b 100644
 --- a/content/shell/browser/web_test/web_test_content_browser_client.cc
 +++ b/content/shell/browser/web_test/web_test_content_browser_client.cc
-@@ -331,6 +331,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
+@@ -326,6 +326,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
      const std::string& frame_name,
      WindowOpenDisposition disposition,
      const blink::mojom::WindowFeatures& features,
@@ -104,10 +104,10 @@ index 5908c91e81f94575ec772fa86833fe1effe07c99..ac05f23929d1223646d6bc1956a581c4
      bool opener_suppressed,
      bool* no_javascript_access) {
 diff --git a/content/shell/browser/web_test/web_test_content_browser_client.h b/content/shell/browser/web_test/web_test_content_browser_client.h
-index 63252a3503176be335510c0bbeaed2a39929930d..45fab07bdc9d11df755cb172f7314e6f131f31df 100644
+index 5f985e2f11ebef42ed676260297e5e699096ba4a..2f3e68199f50b0e85dbb0d5cb95388279a194028 100644
 --- a/content/shell/browser/web_test/web_test_content_browser_client.h
 +++ b/content/shell/browser/web_test/web_test_content_browser_client.h
-@@ -69,6 +69,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
+@@ -66,6 +66,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
                         const std::string& frame_name,
                         WindowOpenDisposition disposition,
                         const blink::mojom::WindowFeatures& features,

+ 1 - 1
patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch

@@ -20,7 +20,7 @@ index 48ac0a24efde0cb7d3ba71c8b8bdf5178f606e80..e2beefc276098fdc8f1cdab2e0edb8fa
  #include "components/pref_registry/pref_registry_syncable.h"
  #include "components/prefs/pref_service.h"
 diff --git a/components/language/core/browser/language_prefs.cc b/components/language/core/browser/language_prefs.cc
-index 4fd35c8d5bba01c25c906b19bb251222ba3d25b4..4770f0d6a8d145e5d16931d5caf4f1f85abead20 100644
+index 7e06f689632ae67e3e17d7985c6e7b6ea0057f3c..0b4676f4c40b4a0eda927a51016ec91ec230291d 100644
 --- a/components/language/core/browser/language_prefs.cc
 +++ b/components/language/core/browser/language_prefs.cc
 @@ -21,7 +21,7 @@

+ 2 - 2
patches/chromium/content_browser_main_loop.patch

@@ -8,10 +8,10 @@ run before shutdown. This is required to cleanup WebContents asynchronously
 in atom::CommonWebContentsDelegate::ResetManageWebContents.
 
 diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
-index c7011af100a71b1ea90bc5d059bf1cc65f43f556..84e5ed786ac73497102ce82870e71ab085c626b4 100644
+index 89a157897b578fe454ad795da06a935786618937..79fe191082e23f5a870cc46641dec702870665ac 100644
 --- a/content/browser/browser_main_loop.cc
 +++ b/content/browser/browser_main_loop.cc
-@@ -1483,7 +1483,7 @@ void BrowserMainLoop::MainMessageLoopRun() {
+@@ -1499,7 +1499,7 @@ void BrowserMainLoop::MainMessageLoopRun() {
    NOTREACHED();
  #else
    base::RunLoop run_loop;

+ 9 - 7
patches/chromium/dcheck.patch

@@ -17,7 +17,7 @@ only one or two specific checks fail. Then it's better to simply comment out the
 failing checks and allow the rest of the target to have them enabled.
 
 diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
-index aacac1dc1e6c70e63dce08e81327db9fbabb5148..49ac1945ccb523dff61caf5b88a2bbc906b6fd09 100644
+index 0a1227d51c2413ec8467932cea294b988899778a..3ac22203ce7e435f0a31fe60e2605cb7ed074a86 100644
 --- a/content/browser/frame_host/navigation_controller_impl.cc
 +++ b/content/browser/frame_host/navigation_controller_impl.cc
 @@ -1250,8 +1250,10 @@ NavigationType NavigationControllerImpl::ClassifyNavigation(
@@ -46,18 +46,20 @@ index aacac1dc1e6c70e63dce08e81327db9fbabb5148..49ac1945ccb523dff61caf5b88a2bbc9
    // navigation. Now we know that the renderer has updated its state accordingly
    // and it is safe to also clear the browser side history.
 diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
-index 00a096c43f13d8addcf202545ac2aef97ef9c556..0145c63c41ba67b260b5df273d04e5b87c22af23 100644
+index ac1e34f5ee216360a8899ec9c8c047eaa06470ac..5581b2fc813fcb48798f19fa67e14e4b71235f75 100644
 --- a/ui/base/clipboard/clipboard_win.cc
 +++ b/ui/base/clipboard/clipboard_win.cc
-@@ -744,9 +744,9 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap,
+@@ -743,10 +743,10 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap,
  }
  
  void ClipboardWin::WriteToClipboard(unsigned int format, HANDLE handle) {
--  DCHECK(clipboard_owner_->hwnd() != nullptr);
-+  // DCHECK(clipboard_owner_->hwnd() != nullptr);
+-  DCHECK_NE(clipboard_owner_->hwnd(), nullptr);
++  //DCHECK_NE(clipboard_owner_->hwnd(), nullptr);
    if (handle && !::SetClipboardData(format, handle)) {
--    DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
-+    // DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
+-    DCHECK_NE(GetLastError(),
+-              static_cast<unsigned long>(ERROR_CLIPBOARD_NOT_OPEN));
++    //DCHECK_NE(GetLastError(),
++    //          static_cast<unsigned long>(ERROR_CLIPBOARD_NOT_OPEN));
      FreeData(format, handle);
    }
  }

+ 6 - 6
patches/chromium/disable-redraw-lock.patch

@@ -15,10 +15,10 @@ the redraw locking mechanism, which fixes these issues. The electron issue
 can be found at https://github.com/electron/electron/issues/1821
 
 diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
-index 08807dc1a6cabea84277de128a92bc8de2bbee63..1fd8da727592fec91056021ea9616996a8f54b92 100644
+index c985bf35795211266e95364447e5462b63a4e657..1afa1b4bdb04b0c0a41b9198310b03fb77cb72bf 100644
 --- a/ui/views/win/hwnd_message_handler.cc
 +++ b/ui/views/win/hwnd_message_handler.cc
-@@ -305,6 +305,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
+@@ -304,6 +304,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
  
  }  // namespace
  
@@ -29,7 +29,7 @@ index 08807dc1a6cabea84277de128a92bc8de2bbee63..1fd8da727592fec91056021ea9616996
  // A scoping class that prevents a window from being able to redraw in response
  // to invalidations that may occur within it for the lifetime of the object.
  //
-@@ -356,6 +360,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
+@@ -355,6 +359,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
          cancel_unlock_(false),
          should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() &&
                       ::IsWindow(hwnd_) &&
@@ -37,7 +37,7 @@ index 08807dc1a6cabea84277de128a92bc8de2bbee63..1fd8da727592fec91056021ea9616996
                       (!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) ||
                        !ui::win::IsAeroGlassEnabled())) {
      if (should_lock_)
-@@ -975,6 +980,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() {
+@@ -971,6 +976,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() {
    return scoped_enable;
  }
  
@@ -49,10 +49,10 @@ index 08807dc1a6cabea84277de128a92bc8de2bbee63..1fd8da727592fec91056021ea9616996
  // HWNDMessageHandler, gfx::WindowImpl overrides:
  
 diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
-index 84dae56aad5bed31caf4e885cc919473f73decd2..4d094132f2c7f7f32328b27406cde8215dc56829 100644
+index 276fc61b1ae98021a53d4cc2c23b708bdb6633f7..c717121d220ce993d9a984af6124375f0398ba2f 100644
 --- a/ui/views/win/hwnd_message_handler.h
 +++ b/ui/views/win/hwnd_message_handler.h
-@@ -202,6 +202,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
+@@ -203,6 +203,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
    using TouchIDs = std::set<DWORD>;
    enum class DwmFrameState { kOff, kOn };
  

+ 20 - 20
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 eec90ffd526a1fce7dc05bcd47764ae2f9a34796..559503c10d4887209dfd31535c714f176bd5bf45 100644
+index 9fc38f2d65ad283d9ca4c8360c0e471048e4abd3..97d93b6b2500f9489cf6e9bf4c995cd154083352 100644
 --- a/cc/trees/layer_tree_host_impl.cc
 +++ b/cc/trees/layer_tree_host_impl.cc
-@@ -1816,6 +1816,12 @@ const gfx::ColorSpace& LayerTreeHostImpl::GetRasterColorSpace() const {
+@@ -1804,6 +1804,12 @@ const gfx::ColorSpace& LayerTreeHostImpl::GetRasterColorSpace() const {
  
  const gfx::ColorSpace& LayerTreeHostImpl::GetRasterColorSpaceAndId(
      int* id) const {
@@ -37,7 +37,7 @@ index eec90ffd526a1fce7dc05bcd47764ae2f9a34796..559503c10d4887209dfd31535c714f17
    // The pending tree will have the most recently updated color space, so
    // prefer that.
 diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
-index 0743417d59c41ce2b4ba89f89f7f03db3849fc74..65f3ab8f48477908ed605f9c73d9d21f1a3709c3 100644
+index 161ce54e75c0047797e9d0db27aafc3d0bfe7140..61838deb281cc11db50d195cf960970ee9cdac89 100644
 --- a/cc/trees/layer_tree_settings.h
 +++ b/cc/trees/layer_tree_settings.h
 @@ -100,6 +100,8 @@ class CC_EXPORT LayerTreeSettings {
@@ -83,7 +83,7 @@ index cb69e08c0185f55497089505ed5b226e57140321..362f28accc248248f3bcb54955c23528
        !command_line->HasSwitch(switches::kUIDisablePartialSwap);
  #if defined(OS_MACOSX)
 diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc
-index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319bc1a6ff15 100644
+index faea02e2fecf6bf8f0ad055a864cf9a00e60efa6..36f365e50c84e10082774ff2930d6d651567221a 100644
 --- a/components/viz/service/display/gl_renderer.cc
 +++ b/components/viz/service/display/gl_renderer.cc
 @@ -83,6 +83,9 @@
@@ -160,7 +160,7 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
  
  #if defined(OS_WIN)
    // Force sRGB output on Windows for overlay candidate video quads to match
-@@ -2463,8 +2468,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
+@@ -2467,8 +2472,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad,
  
    SetUseProgram(ProgramKey::VideoStream(tex_coord_precision,
                                          ShouldApplyRoundedCorner(quad)),
@@ -171,7 +171,7 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
  
    DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
    gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id());
-@@ -2526,8 +2531,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
+@@ -2530,8 +2535,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) {
        draw_cache_.nearest_neighbor ? GL_NEAREST : GL_LINEAR);
  
    // Bind the program to the GL state.
@@ -182,7 +182,7 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
  
    if (current_program_->rounded_corner_rect_location() != -1) {
      SetShaderRoundedCorner(
-@@ -3239,7 +3244,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
+@@ -3242,7 +3247,9 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
  void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color,
                                 const gfx::ColorSpace& src_color_space,
                                 const gfx::ColorSpace& dst_color_space) {
@@ -193,7 +193,7 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
  
    gfx::ColorSpace adjusted_color_space = src_color_space;
    float sdr_white_level = current_frame()->sdr_white_level;
-@@ -3634,7 +3641,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
+@@ -3628,7 +3635,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource(
  
    *overlay_texture = FindOrCreateOverlayTexture(
        params.quad->render_pass_id, iosurface_width, iosurface_height,
@@ -202,7 +202,7 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
    *new_bounds = gfx::RectF(updated_dst_rect.origin(),
                             gfx::SizeF((*overlay_texture)->texture.size()));
  
-@@ -3853,8 +3860,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
+@@ -3847,8 +3854,8 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) {
  
    PrepareGeometry(SHARED_BINDING);
  
@@ -213,17 +213,17 @@ index 30533e787515416723ec41095119871a02fa7805..2682fb11f2c0049c3f3be9a34a2b319b
  
    gfx::Transform render_matrix;
    render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(),
-@@ -4014,3 +4021,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
+@@ -4008,3 +4015,5 @@ gfx::Size GLRenderer::GetRenderPassBackingPixelSize(
  }
  
  }  // namespace viz
 +
 +#undef PATCH_CS
 diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
-index afda4382cde0e00a8ed19983b498c57bdf3a1cfe..347165e1806425c6bd6fe9573834fa7fb42ccafa 100644
+index 20a2cae2de196aede4314e0a94638fdc5be04b75..160092c7e996d0f0232eda91e7a62bb7127c3080 100644
 --- a/content/browser/gpu/gpu_process_host.cc
 +++ b/content/browser/gpu/gpu_process_host.cc
-@@ -193,6 +193,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
+@@ -213,6 +213,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus(
  
  // Command-line switches to propagate to the GPU process.
  static const char* const kSwitchNames[] = {
@@ -232,7 +232,7 @@ index afda4382cde0e00a8ed19983b498c57bdf3a1cfe..347165e1806425c6bd6fe9573834fa7f
      service_manager::switches::kGpuSandboxAllowSysVShm,
      service_manager::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 89a77a7c263eccbf4d6dd29bbfd7924647bd5f2e..db1201218322a3bb3955aeea6f1f2e74abc9b898 100644
+index cd0bc10cda20c0f874d9c315ee16860255287631..0b0529f7000ced635df3442409056f79086b0c53 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -228,6 +228,7 @@
@@ -243,7 +243,7 @@ index 89a77a7c263eccbf4d6dd29bbfd7924647bd5f2e..db1201218322a3bb3955aeea6f1f2e74
  #include "ui/gl/gl_switches.h"
  #include "ui/native_theme/native_theme_features.h"
  #include "url/origin.h"
-@@ -2988,6 +2989,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3059,6 +3060,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[] = {
@@ -252,10 +252,10 @@ index 89a77a7c263eccbf4d6dd29bbfd7924647bd5f2e..db1201218322a3bb3955aeea6f1f2e74
      service_manager::switches::kDisableInProcessStackTraces,
      service_manager::switches::kDisableSeccompFilterSandbox,
 diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
-index 60fc1899350549866b1084175f8f7f31ee56e38b..120236bc3b0eadd1c5cfd51517309a4c603eb1c5 100644
+index 12a3fd16b7da6b15a863c37e86fcb4f9dac08b84..c1d71f98f04ec7b3df0ea466bcbc2faaa13b20bd 100644
 --- a/content/renderer/render_widget.cc
 +++ b/content/renderer/render_widget.cc
-@@ -2938,6 +2938,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
+@@ -2855,6 +2855,9 @@ cc::LayerTreeSettings RenderWidget::GenerateLayerTreeSettings(
    settings.main_frame_before_activation_enabled =
        cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation);
  
@@ -266,7 +266,7 @@ index 60fc1899350549866b1084175f8f7f31ee56e38b..120236bc3b0eadd1c5cfd51517309a4c
    // is what the renderer uses if its not threaded.
    settings.enable_checker_imaging =
 diff --git a/third_party/blink/renderer/platform/graphics/canvas_color_params.cc b/third_party/blink/renderer/platform/graphics/canvas_color_params.cc
-index a947db5fb562fb4ccbfb94df88f460f1da9451f4..77c816b2c5e98a4546c74d9358dfcf3f205f1781 100644
+index d88680239152858689121d134559765fb8fae1b7..073ed8a8f84ebf994a2b9d9fa7e78f75f1177cb9 100644
 --- a/third_party/blink/renderer/platform/graphics/canvas_color_params.cc
 +++ b/third_party/blink/renderer/platform/graphics/canvas_color_params.cc
 @@ -4,6 +4,7 @@
@@ -285,7 +285,7 @@ index a947db5fb562fb4ccbfb94df88f460f1da9451f4..77c816b2c5e98a4546c74d9358dfcf3f
  
  namespace blink {
  
-@@ -85,6 +87,11 @@ uint8_t CanvasColorParams::BytesPerPixel() const {
+@@ -89,6 +91,11 @@ uint8_t CanvasColorParams::BytesPerPixel() const {
  }
  
  gfx::ColorSpace CanvasColorParams::GetSamplerGfxColorSpace() const {
@@ -297,7 +297,7 @@ index a947db5fb562fb4ccbfb94df88f460f1da9451f4..77c816b2c5e98a4546c74d9358dfcf3f
    gfx::ColorSpace::PrimaryID primary_id = GetPrimaryID(color_space_);
  
    // TODO(ccameron): This needs to take into account whether or not this texture
-@@ -98,6 +105,11 @@ gfx::ColorSpace CanvasColorParams::GetSamplerGfxColorSpace() const {
+@@ -102,6 +109,11 @@ gfx::ColorSpace CanvasColorParams::GetSamplerGfxColorSpace() const {
  }
  
  gfx::ColorSpace CanvasColorParams::GetStorageGfxColorSpace() const {
@@ -310,7 +310,7 @@ index a947db5fb562fb4ccbfb94df88f460f1da9451f4..77c816b2c5e98a4546c74d9358dfcf3f
  
    gfx::ColorSpace::TransferID transfer_id =
 diff --git a/ui/gfx/mac/io_surface.cc b/ui/gfx/mac/io_surface.cc
-index c383d42c986aa29fcdfc2009901ed452ef480b55..1b8d0818155a407eb42c3f785e9609fe7bfa3dc7 100644
+index 2b1691687293c069dad9d84b6d2a34a8bd9adde7..90b879ad3f1a7b265b825209185b52492d79c7d5 100644
 --- a/ui/gfx/mac/io_surface.cc
 +++ b/ui/gfx/mac/io_surface.cc
 @@ -16,6 +16,7 @@

+ 2 - 2
patches/chromium/disable_compositor_recycling.patch

@@ -6,10 +6,10 @@ Subject: fix: disabling compositor recycling
 Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron.
 
 diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
-index b6897c88c2c433e73f092f2ccebf29f097db35b0..478a753393d37bf5dce09cfb415b51f3cd97c017 100644
+index 064c44b2d056a3428428fd415b2a78c621cc09c2..ff183a91e42597835878c2be189229c28cb9792b 100644
 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
 +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
-@@ -475,7 +475,11 @@
+@@ -469,7 +469,11 @@
      return;
  
    host()->WasHidden();

+ 4 - 4
patches/chromium/disable_hidden.patch

@@ -6,10 +6,10 @@ Subject: disable_hidden.patch
 Electron uses this to disable background throttling for hidden windows.
 
 diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
-index fd91861198a0cd1724a8702ba436e63644d2360e..5d591ea96af1f26664fc39baf8fdc18938e7cf7a 100644
+index cb19c7f0fb1fbda6e0b84062e4754622123e05e8..dc7169488b75972a22ed82eef564f8290be4ba36 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.cc
 +++ b/content/browser/renderer_host/render_widget_host_impl.cc
-@@ -636,6 +636,9 @@ void RenderWidgetHostImpl::WasHidden() {
+@@ -614,6 +614,9 @@ void RenderWidgetHostImpl::WasHidden() {
    if (is_hidden_)
      return;
  
@@ -20,10 +20,10 @@ index fd91861198a0cd1724a8702ba436e63644d2360e..5d591ea96af1f26664fc39baf8fdc189
  
    TRACE_EVENT0("renderer_host", "RenderWidgetHostImpl::WasHidden");
 diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
-index 15a23f9540896fcb76796da1de8552e319d82f32..59a675ae58b5a46e63e187184b4359a62b6368e2 100644
+index ff2505c99eff7a72528582753a1a161cd26264cc..0ae5bb7f78c3a29cbc146c69c7e7760092875f3e 100644
 --- a/content/browser/renderer_host/render_widget_host_impl.h
 +++ b/content/browser/renderer_host/render_widget_host_impl.h
-@@ -187,6 +187,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
+@@ -176,6 +176,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
    // RenderWidgetHostImpl.
    static RenderWidgetHostImpl* From(RenderWidgetHost* rwh);
  

+ 2 - 2
patches/chromium/disable_user_gesture_requirement_for_beforeunload_dialogs.patch

@@ -6,10 +6,10 @@ Subject: disable_user_gesture_requirement_for_beforeunload_dialogs.patch
 See https://github.com/electron/electron/issues/10754
 
 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
-index fe9922d72462cd72ef9abb1d82f7033b47e7d3c7..58f3f7c6a3c60c73184597495a9f36c8b3659c68 100644
+index 9a3490d84c0bc695f06a4e7950b1c212ec855443..a2efb0da7da4048d282bd4ab595b565b31dc1a06 100644
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -4238,7 +4238,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client,
+@@ -3862,7 +3862,9 @@ bool Document::DispatchBeforeUnloadEvent(ChromeClient* chrome_client,
          "frame that never had a user gesture since its load. "
          "https://www.chromestatus.com/feature/5082396709879808";
      Intervention::GenerateReport(frame_, "BeforeUnloadNoGesture", message);

+ 7 - 7
patches/chromium/expose_setuseragent_on_networkcontext.patch

@@ -33,10 +33,10 @@ index 0ccfe130f00ec3b6c75cd8ee04d5a2777e1fd00c..653829457d58bf92057cc36aa8a28970
    DISALLOW_COPY_AND_ASSIGN(StaticHttpUserAgentSettings);
  };
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
-index 8b51dbe8f2859de3be2e6dc918f4eb535a8a5622..f7e687aaeb4c0df5a73a0d94bdd2d75d1f367786 100644
+index 7e7e50880804583acf75206d3f5f1c6f4c3b158d..3e69113249366e4bb6e62a9fe7085f608dd59755 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -981,6 +981,13 @@ void NetworkContext::SetNetworkConditions(
+@@ -991,6 +991,13 @@ void NetworkContext::SetNetworkConditions(
                                        std::move(network_conditions));
  }
  
@@ -51,10 +51,10 @@ index 8b51dbe8f2859de3be2e6dc918f4eb535a8a5622..f7e687aaeb4c0df5a73a0d94bdd2d75d
    // 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 829a26f486e1e7c7a24f1d273e9af48df5fbd9b1..e9f22a8f1bf8d2299e275c985b4cbb93d35607a2 100644
+index 67f0e98426345beac34bfd41be384210be5911e4..b6fcd9920fcc047d58501dccc492bb0a118e654f 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
-@@ -233,6 +233,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -234,6 +234,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 829a26f486e1e7c7a24f1d273e9af48df5fbd9b1..e9f22a8f1bf8d2299e275c985b4cbb93
    void SetEnableReferrers(bool enable_referrers) override;
  #if defined(OS_CHROMEOS)
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index f45ea3ba79d68d6d58aedba54c5bc9d7fc4935e9..def2cb5e252389879c6287d44d29e704703841cb 100644
+index b3a2dd03807bc8deb867c5168af5251a818389a2..541d8017d38cbede3199e0028f3b1b260bd61b34 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -970,6 +970,9 @@ interface NetworkContext {
+@@ -979,6 +979,9 @@ interface NetworkContext {
    SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
                         NetworkConditions? conditions);
  
@@ -77,7 +77,7 @@ index f45ea3ba79d68d6d58aedba54c5bc9d7fc4935e9..def2cb5e252389879c6287d44d29e704
    SetAcceptLanguage(string new_accept_language);
  
 diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
-index b1d38691d37d0319f746d0db21d21ba7bec83097..40996126da04fea86452949e11b4595badbf7fdb 100644
+index cf8fe291c5d42ddc3fcaa4e062fcf8891a0af085..caf691e79d71982d65e10e6d398939e30f642f06 100644
 --- a/services/network/test/test_network_context.h
 +++ b/services/network/test/test_network_context.h
 @@ -99,6 +99,7 @@ class TestNetworkContext : public mojom::NetworkContext {

+ 5 - 5
patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch

@@ -13,10 +13,10 @@ uses internally for things like menus and devtools.
 We can remove this patch once it has in some shape been upstreamed.
 
 diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc
-index d9175ae9661218b58e9b587ad3a9dbd540bfd384..ed178ea7b3d7f8039f47402bc08cae20e74aa789 100644
+index c20f1455d9d81e6780deecdebfb1f1b4e125db66..8a933b20b4d5ca8c2c55c881e95695d8416a0163 100644
 --- a/ui/native_theme/native_theme.cc
 +++ b/ui/native_theme/native_theme.cc
-@@ -40,6 +40,8 @@ NativeTheme::NativeTheme()
+@@ -47,6 +47,8 @@ NativeTheme::NativeTheme()
  NativeTheme::~NativeTheme() = default;
  
  bool NativeTheme::ShouldUseDarkColors() const {
@@ -26,10 +26,10 @@ index d9175ae9661218b58e9b587ad3a9dbd540bfd384..ed178ea7b3d7f8039f47402bc08cae20
  }
  
 diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
-index 183fe5b316697e9478751bab4766238ec8e29bd2..b3855befd3586af8a36917f5a3a61b2a220842a5 100644
+index 782dd1d122bfab4990c924a7fb0e7276fb51b18b..8ff66638296fefd66443ea83436258b07235aded 100644
 --- a/ui/native_theme/native_theme.h
 +++ b/ui/native_theme/native_theme.h
-@@ -437,6 +437,22 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -449,6 +449,22 @@ class NATIVE_THEME_EXPORT NativeTheme {
        ColorId color_id,
        ColorScheme color_scheme = ColorScheme::kDefault) const = 0;
  
@@ -52,7 +52,7 @@ index 183fe5b316697e9478751bab4766238ec8e29bd2..b3855befd3586af8a36917f5a3a61b2a
    // Returns a shared instance of the native theme that should be used for web
    // rendering. Do not use it in a normal application context (i.e. browser).
    // The returned object should not be deleted by the caller. This function is
-@@ -561,6 +577,8 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -573,6 +589,8 @@ class NATIVE_THEME_EXPORT NativeTheme {
    PreferredColorScheme preferred_color_scheme_ =
        PreferredColorScheme::kNoPreference;
  

+ 18 - 18
patches/chromium/feat_allow_disabling_blink_scheduler_throttling_per_renderview.patch

@@ -6,10 +6,10 @@ Subject: feat: 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 eba0e7ff3344f571ca827f06615f0a4201ada435..f31f39afcdeb65aa4033045ac49cc7e3625a3ac8 100644
+index 195b0f2da8a08f59566bb6306ccbec94b684d613..8d04d13574374a2cf2b09c2dd30b6b9f07b4ac84 100644
 --- a/content/browser/renderer_host/render_view_host_impl.cc
 +++ b/content/browser/renderer_host/render_view_host_impl.cc
-@@ -434,6 +434,10 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
+@@ -433,6 +433,10 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
    Send(new ViewMsg_SetBackgroundOpaque(GetRoutingID(), opaque));
  }
  
@@ -21,10 +21,10 @@ index eba0e7ff3344f571ca827f06615f0a4201ada435..f31f39afcdeb65aa4033045ac49cc7e3
    return is_active();
  }
 diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h
-index 64a3ad79707ccffa18eedef01e669167e87f6044..f7d0a59ad20c8e06d4af1f93ca6d4a98dfd759d2 100644
+index 4311c3406cc8a3e2af505df182c890e4de6e5ea3..15daed8fd4071926c9fa7bf3aa00789b0dae0928 100644
 --- a/content/browser/renderer_host/render_view_host_impl.h
 +++ b/content/browser/renderer_host/render_view_host_impl.h
-@@ -103,6 +103,7 @@ class CONTENT_EXPORT RenderViewHostImpl
+@@ -108,6 +108,7 @@ class CONTENT_EXPORT RenderViewHostImpl
    SiteInstanceImpl* GetSiteInstance() override;
    bool IsRenderViewLive() override;
    void NotifyMoveOrResizeStarted() override;
@@ -33,10 +33,10 @@ index 64a3ad79707ccffa18eedef01e669167e87f6044..f7d0a59ad20c8e06d4af1f93ca6d4a98
    void UpdateWebkitPreferences(const WebPreferences& prefs) override;
    void OnWebkitPreferencesChanged() override;
 diff --git a/content/common/view_messages.h b/content/common/view_messages.h
-index a609cc1fa1558987b634dcbc41120ddc93a711a0..3b3058398e97d2f21458ee427aeeee19c78ff649 100644
+index accb317ce091177766a8c49054b3e274b57871d8..8e0c40cbb98e02849c4c9dffc714eb48fbb40d57 100644
 --- a/content/common/view_messages.h
 +++ b/content/common/view_messages.h
-@@ -114,6 +114,9 @@ IPC_STRUCT_TRAITS_END()
+@@ -109,6 +109,9 @@ IPC_STRUCT_TRAITS_END()
  // Make the RenderWidget background transparent or opaque.
  IPC_MESSAGE_ROUTED1(ViewMsg_SetBackgroundOpaque, bool /* opaque */)
  
@@ -61,10 +61,10 @@ index 95679ab2915ad496ca0018aa13874b84eb11d7fd..c278e0fc072409677beafc7f252ebcf6
    //
    // Returns the current WebKit preferences. Note: WebPreferences is cached, so
 diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
-index f815739a06a60e050003d2819ddab82be2abf3a6..0263848e99769af49641b2fad0575f714e797e5d 100644
+index 37ac96bb7d42fe4caeb31861875219079d986982..d4b3d0f71ea6bc6aa9b927f32ee09eb9732c46c7 100644
 --- a/content/renderer/render_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
-@@ -1251,6 +1251,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
+@@ -1210,6 +1210,8 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
    IPC_BEGIN_MESSAGE_MAP(RenderViewImpl, message)
      IPC_MESSAGE_HANDLER(ViewMsg_SetPageScale, OnSetPageScale)
      IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus)
@@ -73,7 +73,7 @@ index f815739a06a60e050003d2819ddab82be2abf3a6..0263848e99769af49641b2fad0575f71
      IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck)
      IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences)
      IPC_MESSAGE_HANDLER(ViewMsg_ClosePage, OnClosePage)
-@@ -1843,6 +1845,12 @@ void RenderViewImpl::OnSetPageScale(float page_scale_factor) {
+@@ -1800,6 +1802,12 @@ void RenderViewImpl::OnSetPageScale(float page_scale_factor) {
    webview()->SetPageScaleFactor(page_scale_factor);
  }
  
@@ -87,10 +87,10 @@ index f815739a06a60e050003d2819ddab82be2abf3a6..0263848e99769af49641b2fad0575f71
      PageVisibilityState visibility_state,
      bool initial_setting) {
 diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
-index 87994092a9b0e7ea0d33675c502408a5a47eac87..5d08253ed69e9a180251ad9693335c4ad43adba6 100644
+index a6768059fb7e91115f4659f236f096d264977408..a5954b581e06f78d364f4525f1550f7f13c836ec 100644
 --- a/content/renderer/render_view_impl.h
 +++ b/content/renderer/render_view_impl.h
-@@ -450,6 +450,7 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient,
+@@ -452,6 +452,7 @@ class CONTENT_EXPORT RenderViewImpl : public blink::WebViewClient,
    void OnSetInitialFocus(bool reverse);
    void OnSetRendererPrefs(
        const blink::mojom::RendererPreferences& renderer_prefs);
@@ -99,10 +99,10 @@ index 87994092a9b0e7ea0d33675c502408a5a47eac87..5d08253ed69e9a180251ad9693335c4a
    void OnUpdateTargetURLAck();
    void OnUpdateWebPreferences(const WebPreferences& prefs);
 diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h
-index 53d6d4ebd22ad8f3dd9badba7601dcc27a002a2a..7abf1c05c8e821de8df26938e4f098a58a06655b 100644
+index dc04ef3eb3a1a56d932a22ffce7b71bb60786f7a..3e7d605d7a0f884299e441d954877c03436aa618 100644
 --- a/third_party/blink/public/web/web_view.h
 +++ b/third_party/blink/public/web/web_view.h
-@@ -404,6 +404,7 @@ class WebView {
+@@ -399,6 +399,7 @@ class WebView {
    // Scheduling -----------------------------------------------------------
  
    virtual PageScheduler* Scheduler() const = 0;
@@ -111,10 +111,10 @@ index 53d6d4ebd22ad8f3dd9badba7601dcc27a002a2a..7abf1c05c8e821de8df26938e4f098a5
    // 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 2e2b95750635fa5aedc17eabcd84fa97ed0c951a..7649f65d5f05c4609c495ddf4d47f640a010d7e4 100644
+index 34ff617acbd75b2d431aef194cceff651aadc24f..b681d16f2bf1aa9151d455f1a6d9ebb55adeae7b 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -3364,12 +3364,20 @@ PageScheduler* WebViewImpl::Scheduler() const {
+@@ -3326,12 +3326,20 @@ PageScheduler* WebViewImpl::Scheduler() const {
    return GetPage()->GetPageScheduler();
  }
  
@@ -138,10 +138,10 @@ index 2e2b95750635fa5aedc17eabcd84fa97ed0c951a..7649f65d5f05c4609c495ddf4d47f640
  
  PageVisibilityState WebViewImpl::GetVisibilityState() {
 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 7161adf93687544024d7cc9d23fe423bb4e9eca3..d55296a159e9453add9a8a63058b5a5647cf5b3e 100644
+index 3154dbd08dc8aa0386c6259afdec084570822a9e..b9f6ed110e4527a9a05074c31cc89982edaae4f2 100644
 --- a/third_party/blink/renderer/core/exported/web_view_impl.h
 +++ b/third_party/blink/renderer/core/exported/web_view_impl.h
-@@ -310,6 +310,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -306,6 +306,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
    LocalDOMWindow* PagePopupWindow() const;
  
    PageScheduler* Scheduler() const override;
@@ -149,7 +149,7 @@ index 7161adf93687544024d7cc9d23fe423bb4e9eca3..d55296a159e9453add9a8a63058b5a56
    void SetVisibilityState(PageVisibilityState visibility_state,
                            bool is_initial_state) override;
    PageVisibilityState GetVisibilityState() override;
-@@ -682,6 +683,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -680,6 +681,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
    // WebViewImpl::Close while handling an input event.
    bool debug_inside_input_handling_ = false;
  

+ 38 - 0
patches/chromium/fixme_grit_conflicts.patch

@@ -0,0 +1,38 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jeremy Apthorp <[email protected]>
+Date: Wed, 8 Jan 2020 16:06:14 -0800
+Subject: FIXME: grit conflicts
+
+This works around a bug in grit's handling of generated .grd files.
+
+Should be removed once grit is fixed.
+
+Tracking bug: https://crbug.com/1040605
+
+diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
+index 9f66e1221eda1fbb6e86a4d7541e07d222512171..f47f8edb54984f7497e7c69e2565abc83f58dc8b 100644
+--- a/tools/gritsettings/resource_ids.spec
++++ b/tools/gritsettings/resource_ids.spec
+@@ -569,15 +569,16 @@
+     "includes": [3840],
+   },
+ 
++  # FIXME: put this back after devtools_resources once grit is fixed to respect META properly
++  "electron/electron_resources.grd": {
++    "messages": [3860],
++    "includes": [4100],
++  },
++
+   # This file is generated during the build.
+   "<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd": {
+     "META": {"sizes": {"includes": [500],}},
+-    "includes": [3860],
+-  },
+-
+-  "electron/electron_resources.grd": {
+-    "messages": [31750],
+-    "includes": [31950],
++    "includes": [4860],
+   },
+ 
+   # END "everything else" section.

+ 18 - 18
patches/chromium/frame_host_manager.patch

@@ -42,10 +42,10 @@ index 906a1ee4ac58b0744a32153bbaafeac4322a60e4..c90f4aead36cbf3767dc5094728963c2
    // another SiteInstance for the same site.
    void RegisterSiteInstance(SiteInstanceImpl* site_instance);
 diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
-index 413050e4779fc471da1d2219a55f0dc8378174b4..93aeacdab1e365d7dce4c6eb1c3da5916a0d05aa 100644
+index a9502e1bb1be5e67bbec201405dd0995770444cb..654dfa5b3a1572dd741390a0ad1612b50e4552cd 100644
 --- a/content/browser/frame_host/navigation_request.cc
 +++ b/content/browser/frame_host/navigation_request.cc
-@@ -1214,6 +1214,24 @@ void NavigationRequest::BeginNavigation() {
+@@ -1186,6 +1186,24 @@ void NavigationRequest::BeginNavigation() {
      TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
                                   "ResponseStarted");
  
@@ -71,10 +71,10 @@ index 413050e4779fc471da1d2219a55f0dc8378174b4..93aeacdab1e365d7dce4c6eb1c3da591
      render_frame_host_ =
          frame_tree_node_->render_manager()->GetFrameHostForNavigation(this);
 diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
-index 240850ff8ae0a73c85e840e0753c7c07135aae7a..528a02609f02c1e4912f0a10d76d74b27e201b6f 100644
+index 5042925bf761245b3ab42e83b009190b390e33ab..913245edf9d64bb6bdbee5e96493ad5b8e5cde0a 100644
 --- a/content/browser/frame_host/render_frame_host_manager.cc
 +++ b/content/browser/frame_host/render_frame_host_manager.cc
-@@ -2137,6 +2137,16 @@ bool RenderFrameHostManager::InitRenderView(
+@@ -2129,6 +2129,16 @@ bool RenderFrameHostManager::InitRenderView(
  scoped_refptr<SiteInstance>
  RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
      NavigationRequest* request) {
@@ -91,7 +91,7 @@ index 240850ff8ae0a73c85e840e0753c7c07135aae7a..528a02609f02c1e4912f0a10d76d74b2
    SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance();
  
    // All children of MHTML documents must be MHTML documents. They all live in
-@@ -2156,10 +2166,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -2148,10 +2158,60 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
    //
    // TODO(clamy): We should also consider as a candidate SiteInstance the
    // speculative SiteInstance that was computed on redirects.
@@ -156,7 +156,7 @@ index 240850ff8ae0a73c85e840e0753c7c07135aae7a..528a02609f02c1e4912f0a10d76d74b2
  
    scoped_refptr<SiteInstance> dest_site_instance = GetSiteInstanceForNavigation(
        request->common_params().url, request->GetSourceSiteInstance(),
-@@ -2169,6 +2229,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
+@@ -2161,6 +2221,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
        request->GetRestoreType() != RestoreType::NONE, request->is_view_source(),
        request->WasServerRedirect());
  
@@ -167,10 +167,10 @@ index 240850ff8ae0a73c85e840e0753c7c07135aae7a..528a02609f02c1e4912f0a10d76d74b2
  }
  
 diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
-index 6a0c85cad42da9e048fbbc7108f55368c81071c5..34b751d095fcc1e137bcb4ff44a059a3dd11b4a8 100644
+index f16abf44e24c7173d721352c53241228fe72a3e4..3d33d492b8cf4d79b4c81dac53d30e03c7dddea3 100644
 --- a/content/browser/site_instance_impl.cc
 +++ b/content/browser/site_instance_impl.cc
-@@ -369,6 +369,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const GURL& url) {
+@@ -413,6 +413,10 @@ bool SiteInstanceImpl::HasRelatedSiteInstance(const GURL& url) {
    return browsing_instance_->HasSiteInstance(url);
  }
  
@@ -182,10 +182,10 @@ index 6a0c85cad42da9e048fbbc7108f55368c81071c5..34b751d095fcc1e137bcb4ff44a059a3
      const GURL& url) {
    return browsing_instance_->GetSiteInstanceForURL(
 diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h
-index 59edc1fe0c22e82225bd2a3d8059f386d97db127..6bc92bbb5604111ecdc6b78be025bb7e7ee5ecb5 100644
+index caa100b3889e17a9afdc8127e0e13bb6b86e8042..f08d3a2eb28f0f6fff89b5759eff5369b7111821 100644
 --- a/content/browser/site_instance_impl.h
 +++ b/content/browser/site_instance_impl.h
-@@ -84,6 +84,7 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance,
+@@ -98,6 +98,7 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance,
    BrowserContext* GetBrowserContext() override;
    const GURL& GetSiteURL() override;
    scoped_refptr<SiteInstance> GetRelatedSiteInstance(const GURL& url) override;
@@ -194,10 +194,10 @@ index 59edc1fe0c22e82225bd2a3d8059f386d97db127..6bc92bbb5604111ecdc6b78be025bb7e
    size_t GetRelatedActiveContentsCount() override;
    bool RequiresDedicatedProcess() override;
 diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
-index 76261e6b09094527327e068e183d3d3b2665467b..fbd1be0f69aabdda47315e54518c0567b6aec3b8 100644
+index 0baf2ab441d48ee32a3ccf40fbc73c2c5cbcea2a..b1646da3383f1799ff47900a00da333d1bdabff3 100644
 --- a/content/public/browser/content_browser_client.cc
 +++ b/content/public/browser/content_browser_client.cc
-@@ -49,6 +49,21 @@
+@@ -50,6 +50,21 @@
  
  namespace content {
  
@@ -220,13 +220,13 @@ index 76261e6b09094527327e068e183d3d3b2665467b..fbd1be0f69aabdda47315e54518c0567
      const MainFunctionParams& parameters) {
    return nullptr;
 diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
-index 2196584c127c8a3f80bfe55aaff3187372c19b1e..b391bacc010ad973ae38e70cd56f33949ee0bd20 100644
+index 3a32228e8c131468c535f3586b1c54b307062c42..835cdff288ddf57674d5cc44ea2aaacf6facd03d 100644
 --- a/content/public/browser/content_browser_client.h
 +++ b/content/public/browser/content_browser_client.h
-@@ -216,8 +216,45 @@ struct WebPreferences;
- // the observer interfaces.)
- class CONTENT_EXPORT ContentBrowserClient {
-  public:
+@@ -226,8 +226,45 @@ class CONTENT_EXPORT ContentBrowserClient {
+   using IsClipboardPasteAllowedCallback =
+       base::OnceCallback<void(ClipboardPasteAllowed)>;
+ 
 +  // Identifies the type of site instance to use for a navigation.
 +  enum SiteInstanceForNavigationType {
 +    // Use either the candidate site instance or, if it doesn't exist
@@ -270,7 +270,7 @@ index 2196584c127c8a3f80bfe55aaff3187372c19b1e..b391bacc010ad973ae38e70cd56f3394
    // implementations for the browser startup code. See comments in
    // browser_main_parts.h.
 diff --git a/content/public/browser/site_instance.h b/content/public/browser/site_instance.h
-index a718f53111bbaa0c248930a577f25b34e2d15494..5fafbed85e5549f0039da6414a40a653bbb72853 100644
+index e3095f34c057ccf25b46beb809fbb88a440cc230..9d4472415d87455468cff86217e7489d39383e4e 100644
 --- a/content/public/browser/site_instance.h
 +++ b/content/public/browser/site_instance.h
 @@ -121,6 +121,11 @@ class CONTENT_EXPORT SiteInstance : public base::RefCounted<SiteInstance> {

+ 6 - 6
patches/chromium/gritsettings_resource_ids.patch

@@ -5,12 +5,12 @@ Subject: gritsettings_resource_ids.patch
 
 Add electron resources file to the list of resource ids generation.
 
-diff --git a/tools/gritsettings/resource_ids b/tools/gritsettings/resource_ids
-index 1699b6194dd75ffa84beb841c1dd1d7bcc25b216..45a511239f6a057f471e71d4f5aec1baf8cfc5df 100644
---- a/tools/gritsettings/resource_ids
-+++ b/tools/gritsettings/resource_ids
-@@ -573,6 +573,11 @@
-     "includes": [20080],
+diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
+index df4c6325986bee4642672ecd8a964a69fcee7681..9f66e1221eda1fbb6e86a4d7541e07d222512171 100644
+--- a/tools/gritsettings/resource_ids.spec
++++ b/tools/gritsettings/resource_ids.spec
+@@ -575,6 +575,11 @@
+     "includes": [3860],
    },
  
 +  "electron/electron_resources.grd": {

+ 1 - 1
patches/chromium/ignore_rc_check.patch

@@ -7,7 +7,7 @@ Dont compare RC.exe and RC.py output.
 FIXME: It has to be reverted once the script is fixed.
 
 diff --git a/build/toolchain/win/rc/rc.py b/build/toolchain/win/rc/rc.py
-index 5c0442bef19334004647bf6e5dcbabcf399f2ec6..05fb71a1a18d35d361cac8eddece95b665f74ed8 100755
+index 74761866eecfe4e742af974aab71ec05817c3a6a..91ad9ac4c7d59be0cc95341d61e0e30a23869601 100755
 --- a/build/toolchain/win/rc/rc.py
 +++ b/build/toolchain/win/rc/rc.py
 @@ -234,7 +234,10 @@ def CompareToMsRcOutput(preprocessed_output, is_utf8, flags):

+ 4 - 4
patches/chromium/mas_disable_custom_window_frame.patch

@@ -7,7 +7,7 @@ Disable private window frame APIs (NSNextStepFrame and NSThemeFrame) for MAS
 build.
 
 diff --git a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
-index 1ffb647e85e0..439cc6df5e0c 100644
+index 1ffb647e85e00ff60d84234e47f5d7d385f65245..439cc6df5e0cc1ec3732d6f2a2e00d543c73e837 100644
 --- a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
 +++ b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
 @@ -9,6 +9,7 @@
@@ -42,7 +42,7 @@ index 1ffb647e85e0..439cc6df5e0c 100644
  // Keyboard -> Shortcuts -> Keyboard. Usually Ctrl+F5. The argument (|unknown|)
  // tends to just be nil.
 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
-index 8416c7c6e052..cd356beda023 100644
+index 8416c7c6e052dafb2aad61c0bd3224c36e945d23..cd356beda023ab2409b16d58ca38c70ba3674913 100644
 --- a/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
 +++ b/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
 @@ -4,6 +4,8 @@
@@ -75,7 +75,7 @@ index 8416c7c6e052..cd356beda023 100644
 +
  @end
 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
-index e03bbc724cfd..783745b11365 100644
+index e03bbc724cfd01967e71998394361556df1c4915..783745b11365c04c1e1052197d20d494bc901d45 100644
 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
 +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
 @@ -17,6 +17,7 @@ class NativeWidgetNSWindowBridge;
@@ -95,7 +95,7 @@ index e03bbc724cfd..783745b11365 100644
  // The NSWindow used by BridgedNativeWidget. Provides hooks into AppKit that
  // can only be accomplished by overriding methods.
 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
-index 3786db1f2fa8..64e84b91236b 100644
+index 3786db1f2fa8f617eb9cd59c85b84b7d020e4ff3..64e84b91236b382d4bdfb5ab2e26006952c869a0 100644
 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
 +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
 @@ -15,7 +15,9 @@

+ 20 - 20
patches/chromium/mas_disable_remote_accessibility.patch

@@ -14,7 +14,7 @@ needs to think it's coming from the PWA process). I think it can just be chopped
 out -- if there are any side-effects, we should be able to work around them.
 
 diff --git a/components/remote_cocoa/app_shim/application_bridge.mm b/components/remote_cocoa/app_shim/application_bridge.mm
-index 9ddda9116e72..e846091ad99b 100644
+index 9ddda9116e7284cbccde8a51e23ad7560dd06367..e846091ad99b0154636489e53491209ff3cbfaaa 100644
 --- a/components/remote_cocoa/app_shim/application_bridge.mm
 +++ b/components/remote_cocoa/app_shim/application_bridge.mm
 @@ -49,6 +49,7 @@
@@ -47,10 +47,10 @@ index 9ddda9116e72..e846091ad99b 100644
  
  }  // 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 53659a048396..1fbdc2980386 100644
+index 42167add601c67666bc9100d94f924fc0ed14fb1..3633605e353323cca805a951062be0e259c61ee7 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
-@@ -556,10 +556,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
+@@ -554,10 +554,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
    // this should be treated as an error and caught early.
    CHECK(bridged_view_);
  
@@ -64,7 +64,7 @@ index 53659a048396..1fbdc2980386 100644
    // Beware: This view was briefly removed (in favor of a bare CALayer) in
    // crrev/c/1236675. The ordering of unassociated layers relative to NSView
 diff --git a/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm b/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
-index a8e5c8888cb7..d01468fe7770 100644
+index a8e5c8888cb7ea8a85de7c8e8c613cc2b3c5be15..d01468fe77703b2812865b0198b84b0b645283c4 100644
 --- a/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
 +++ b/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
 @@ -66,8 +66,10 @@ id GetFocusedBrowserAccessibilityElement() override {
@@ -90,7 +90,7 @@ index a8e5c8888cb7..d01468fe7770 100644
    DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostNSViewBridgeOwner);
  };
 diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
-index fb8589fe372d..d12dabad6211 100644
+index 1b1847cfd0dd0498da645e34cd5ab1b2bc87fc0c..da98761f0d8d4844f54f4558746649ecd4237065 100644
 --- a/content/browser/renderer_host/render_widget_host_view_mac.h
 +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
 @@ -46,7 +46,9 @@ class ScopedPasswordInputEnabler;
@@ -103,7 +103,7 @@ index fb8589fe372d..d12dabad6211 100644
  @class RenderWidgetHostViewCocoa;
  
  namespace content {
-@@ -628,10 +630,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
+@@ -617,10 +619,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
    // EnsureSurfaceSynchronizedForWebTest().
    uint32_t latest_capture_sequence_number_ = 0u;
  
@@ -117,10 +117,10 @@ index fb8589fe372d..d12dabad6211 100644
    // Used to force the NSApplication's focused accessibility element to be the
    // content::BrowserAccessibilityCocoa accessibility tree when the NSView for
 diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
-index 275caf58aa73..df9c85c458d2 100644
+index e6e26f703be064924dbb7e36555c60ba91b0123f..064c44b2d056a3428428fd415b2a78c621cc09c2 100644
 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
 +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
-@@ -238,8 +238,10 @@
+@@ -231,8 +231,10 @@
  void RenderWidgetHostViewMac::MigrateNSViewBridge(
      remote_cocoa::mojom::Application* remote_cocoa_application,
      uint64_t parent_ns_view_id) {
@@ -131,7 +131,7 @@ index 275caf58aa73..df9c85c458d2 100644
  
    // Disconnect from the previous bridge (this will have the effect of
    // destroying the associated bridge), and close the receiver (to allow it
-@@ -1372,8 +1374,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
+@@ -1334,8 +1336,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
  
  gfx::NativeViewAccessible
  RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() {
@@ -142,7 +142,7 @@ index 275caf58aa73..df9c85c458d2 100644
    return [GetInProcessNSView() window];
  }
  
-@@ -1405,9 +1409,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
+@@ -1367,9 +1371,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
  }
  
  void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) {
@@ -154,7 +154,7 @@ index 275caf58aa73..df9c85c458d2 100644
  }
  
  bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame(
-@@ -1888,12 +1894,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
+@@ -1852,12 +1858,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
  
  void RenderWidgetHostViewMac::SetRemoteAccessibilityWindowToken(
      const std::vector<uint8_t>& window_token) {
@@ -170,7 +170,7 @@ index 275caf58aa73..df9c85c458d2 100644
  
  ///////////////////////////////////////////////////////////////////////////////
 diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
-index 224ced89a428..83ef52259530 100644
+index db6083732090b8ccee029aa6a7cc11f0d17ab218..3d34fc3a442f46abf4cad222b9d5e05db6762278 100644
 --- a/ui/base/BUILD.gn
 +++ b/ui/base/BUILD.gn
 @@ -306,6 +306,13 @@ jumbo_component("base") {
@@ -188,7 +188,7 @@ index 224ced89a428..83ef52259530 100644
      sources += [ "l10n/l10n_util_posix.cc" ]
    }
 diff --git a/ui/base/cocoa/remote_accessibility_api.h b/ui/base/cocoa/remote_accessibility_api.h
-index 2a58aebabb23..3424b6011e80 100644
+index 2a58aebabb23443a2c11364af4988c573f3909ba..3424b6011e80e9c995519b6a8d652abd843d926b 100644
 --- a/ui/base/cocoa/remote_accessibility_api.h
 +++ b/ui/base/cocoa/remote_accessibility_api.h
 @@ -11,6 +11,8 @@
@@ -208,10 +208,10 @@ index 2a58aebabb23..3424b6011e80 100644
 +
  #endif  // UI_BASE_COCOA_REMOTE_ACCESSIBILITY_API_H_
 diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h
-index 7697f06aa481..cf7ee1014a9e 100644
+index 1c68117a8987463e810d0d1da5e7e598ce8fc3e1..ad29e87c00db0d34ee3a7d95469fb3fbb1aa76c2 100644
 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h
 +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h
-@@ -29,7 +29,9 @@
+@@ -27,7 +27,9 @@
  #include "ui/views/window/dialog_observer.h"
  
  @class NativeWidgetMacNSWindow;
@@ -221,7 +221,7 @@ index 7697f06aa481..cf7ee1014a9e 100644
  @class NSView;
  
  namespace remote_cocoa {
-@@ -425,11 +427,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost
+@@ -406,11 +408,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost
    mojo::AssociatedRemote<remote_cocoa::mojom::NativeWidgetNSWindow>
        remote_ns_window_remote_;
  
@@ -236,10 +236,10 @@ index 7697f06aa481..cf7ee1014a9e 100644
    // Used to force the NSApplication's focused accessibility element to be the
    // views::Views accessibility tree when the NSView for this is focused.
 diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
-index dd9e195a4fd0..205910ac9a3f 100644
+index d4209f169d3e468339371e661db6ae84ed20bbe3..7223e9c769904a0aa2ba082d99d597c775e66970 100644
 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm
 +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
-@@ -296,14 +296,22 @@ bool PositionWindowInScreenCoordinates(Widget* widget,
+@@ -282,14 +282,22 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
  NativeWidgetMacNSWindowHost::GetNativeViewAccessibleForNSView() const {
    if (in_process_ns_window_bridge_)
      return in_process_ns_window_bridge_->ns_view();
@@ -262,7 +262,7 @@ index dd9e195a4fd0..205910ac9a3f 100644
  }
  
  remote_cocoa::mojom::NativeWidgetNSWindow*
-@@ -1177,6 +1185,7 @@ bool PositionWindowInScreenCoordinates(Widget* widget,
+@@ -1133,6 +1141,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
  void NativeWidgetMacNSWindowHost::SetRemoteAccessibilityTokens(
      const std::vector<uint8_t>& window_token,
      const std::vector<uint8_t>& view_token) {
@@ -270,7 +270,7 @@ index dd9e195a4fd0..205910ac9a3f 100644
    remote_window_accessible_ =
        ui::RemoteAccessibility::GetRemoteElementFromToken(window_token);
    remote_view_accessible_ =
-@@ -1184,14 +1193,17 @@ bool PositionWindowInScreenCoordinates(Widget* widget,
+@@ -1140,14 +1149,17 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
    [remote_view_accessible_ setWindowUIElement:remote_window_accessible_.get()];
    [remote_view_accessible_
        setTopLevelUIElement:remote_window_accessible_.get()];

+ 13 - 13
patches/chromium/mas_no_private_api.patch

@@ -50,7 +50,7 @@ index 9cc52238971a095421c3cde01a5df24a2f6f92cd..0216501dda1dc8b8fb4307785a0dab86
  // is concerned.
  @property(nonatomic, readonly) NSString* subrole;
 diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
-index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c3182048109de2 100644
+index 7d47a60cca13a4f0c26edaefc430125a01c1cb02..3191f842a929fb15640d701efdadc983c2fa35fc 100644
 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm
 +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
 @@ -207,6 +207,7 @@
@@ -157,7 +157,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  
  // Returns whether or not this node should be ignored in the
  // accessibility tree.
-@@ -2169,6 +2186,7 @@ - (NSArray*)selectedChildren {
+@@ -2164,6 +2181,7 @@ - (NSArray*)selectedChildren {
    return ret;
  }
  
@@ -165,7 +165,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  - (NSString*)selectedText {
    if (![self instanceActive])
      return nil;
-@@ -2180,11 +2198,13 @@ - (NSString*)selectedText {
+@@ -2175,11 +2193,13 @@ - (NSString*)selectedText {
      return nil;
    return base::SysUTF16ToNSString(range.GetText());
  }
@@ -179,7 +179,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  - (NSValue*)selectedTextRange {
    if (![self instanceActive])
      return nil;
-@@ -2205,12 +2225,15 @@ - (NSValue*)selectedTextRange {
+@@ -2200,12 +2220,15 @@ - (NSValue*)selectedTextRange {
    int selLength = range.GetText().length();
    return [NSValue valueWithRange:NSMakeRange(selStart, selLength)];
  }
@@ -195,7 +195,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  
  - (NSValue*)size {
    if (![self instanceActive])
-@@ -2243,6 +2266,7 @@ - (NSString*)sortDirection {
+@@ -2238,6 +2261,7 @@ - (NSString*)sortDirection {
    return nil;
  }
  
@@ -203,7 +203,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  // Returns a text marker that points to the first character in the document that
  // can be selected with VoiceOver.
  - (id)startTextMarker {
-@@ -2253,6 +2277,7 @@ - (id)startTextMarker {
+@@ -2248,6 +2272,7 @@ - (id)startTextMarker {
    BrowserAccessibilityPositionInstance position = root->CreatePositionAt(0);
    return CreateTextMarker(position->CreatePositionAtStartOfAnchor());
  }
@@ -211,7 +211,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  
  // Returns a subrole based upon the role.
  - (NSString*)subrole {
-@@ -2560,11 +2585,13 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
+@@ -2555,11 +2580,13 @@ - (NSAttributedString*)attributedValueForRange:(NSRange)range {
    NSMutableAttributedString* attributedValue =
        [[[NSMutableAttributedString alloc] initWithString:value] autorelease];
  
@@ -225,7 +225,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  
    return [attributedValue attributedSubstringFromRange:range];
  }
-@@ -2667,9 +2694,8 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
+@@ -2662,9 +2689,8 @@ - (id)accessibilityAttributeValue:(NSString*)attribute
        return ToBrowserAccessibilityCocoa(cell);
    }
  
@@ -237,7 +237,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
      BrowserAccessibilityPositionInstance position =
          CreatePositionFromTextMarker(parameter);
      if (!position->IsNullPosition())
-@@ -2980,6 +3006,7 @@ AXPlatformRange range(std::move(lineStartPosition),
+@@ -2975,6 +3001,7 @@ AXPlatformRange range(std::move(lineStartPosition),
  
      return CreateTextMarker(root->CreatePositionAt(index));
    }
@@ -245,7 +245,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
  
    if ([attribute isEqualToString:
                       NSAccessibilityBoundsForRangeParameterizedAttribute]) {
-@@ -3013,6 +3040,7 @@ AXPlatformRange range(std::move(lineStartPosition),
+@@ -3008,6 +3035,7 @@ AXPlatformRange range(std::move(lineStartPosition),
      return nil;
    }
  
@@ -253,7 +253,7 @@ index 9ed2e56e9ebad1f084074c37484f7f68c8f98460..91ec30df10337f96151e4b2ee1c31820
    if ([attribute
            isEqualToString:
                NSAccessibilityLineTextMarkerRangeForTextMarkerParameterizedAttribute]) {
-@@ -3119,6 +3147,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
+@@ -3114,6 +3142,7 @@ AXPlatformRange range(position->CreatePreviousLineStartPosition(
  
      return @(child->GetIndexInParent());
    }
@@ -358,10 +358,10 @@ index b2425416b1993f037530619df0458d43d008bd03..39b096120b57c3192519a607d96c8a3d
  
  void BluetoothAdapterMac::RemovePairingDelegateInternal(
 diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
-index 3947aa5016f9a061d98cdb838c413b204dbcbd19..36ccf8cc6e0e91e0f754d22ac69e702007af6391 100644
+index 32c78e9f533782e1cfca44217a8a831959bba5e6..655bcfb43e49440ce341b11013d0620b8c2354ce 100644
 --- a/media/audio/BUILD.gn
 +++ b/media/audio/BUILD.gn
-@@ -175,6 +175,12 @@ source_set("audio") {
+@@ -171,6 +171,12 @@ source_set("audio") {
        "mac/scoped_audio_unit.cc",
        "mac/scoped_audio_unit.h",
      ]

+ 13 - 13
patches/chromium/network_service_allow_remote_certificate_verification_logic.patch

@@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement
 session.setCertificateVerifyCallback.
 
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
-index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb535a8a5622 100644
+index e5dfb9c6fd2032608ac32cd997fb027fd9b324e5..7e7e50880804583acf75206d3f5f1c6f4c3b158d 100644
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -93,6 +93,11 @@
+@@ -95,6 +95,11 @@
  #include "services/network/url_loader.h"
  #include "services/network/url_request_context_builder_mojo.h"
  
@@ -22,7 +22,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
  #if BUILDFLAG(IS_CT_SUPPORTED)
  #include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
  #include "components/certificate_transparency/chrome_require_ct_delegate.h"
-@@ -327,6 +332,79 @@ std::string HashesToBase64String(const net::HashValueVector& hashes) {
+@@ -330,6 +335,79 @@ std::string HashesToBase64String(const net::HashValueVector& hashes) {
  
  }  // namespace
  
@@ -102,7 +102,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
  constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
  
  NetworkContext::PendingCertVerify::PendingCertVerify() = default;
-@@ -513,6 +591,13 @@ void NetworkContext::SetClient(
+@@ -516,6 +594,13 @@ void NetworkContext::SetClient(
    client_.Bind(std::move(client));
  }
  
@@ -116,7 +116,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
  void NetworkContext::CreateURLLoaderFactory(
      mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
      mojom::URLLoaderFactoryParamsPtr params) {
-@@ -1643,6 +1728,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -1661,6 +1746,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
        base::CommandLine::ForCurrentProcess();
  
    std::unique_ptr<net::CertVerifier> cert_verifier;
@@ -124,7 +124,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
    if (g_cert_verifier_for_testing) {
      cert_verifier = std::make_unique<WrappedTestingCertVerifier>();
    } else {
-@@ -1695,8 +1781,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -1714,8 +1800,8 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
      }
  #endif
  #if BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED)
@@ -135,7 +135,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
            std::make_unique<net::CoalescingCertVerifier>(
                std::make_unique<net::MultiThreadedCertVerifier>(
                    params_->use_builtin_cert_verifier
-@@ -1706,12 +1792,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -1725,12 +1811,19 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
                              cert_net_fetcher_))));
      }
  #endif
@@ -160,7 +160,7 @@ index e12f76b1ca50efee574a7bbf852d2f6923d528cd..8b51dbe8f2859de3be2e6dc918f4eb53
    std::unique_ptr<NetworkServiceNetworkDelegate> network_delegate =
        std::make_unique<NetworkServiceNetworkDelegate>(
 diff --git a/services/network/network_context.h b/services/network/network_context.h
-index 55d2de8f1e5d538f3168808c0b3c2a19520cf824..829a26f486e1e7c7a24f1d273e9af48df5fbd9b1 100644
+index 23a5fe596b2607fa2b95f601cb621e4e11f81d50..67f0e98426345beac34bfd41be384210be5911e4 100644
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 @@ -87,6 +87,7 @@ class DomainReliabilityMonitor;
@@ -171,7 +171,7 @@ index 55d2de8f1e5d538f3168808c0b3c2a19520cf824..829a26f486e1e7c7a24f1d273e9af48d
  class CookieManager;
  class ExpectCTReporter;
  class HostResolver;
-@@ -183,6 +184,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -184,6 +185,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    void CreateURLLoaderFactory(
        mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
        mojom::URLLoaderFactoryParamsPtr params) override;
@@ -180,7 +180,7 @@ index 55d2de8f1e5d538f3168808c0b3c2a19520cf824..829a26f486e1e7c7a24f1d273e9af48d
    void ResetURLLoaderFactories() override;
    void GetCookieManager(
        mojo::PendingReceiver<mojom::CookieManager> receiver) override;
-@@ -612,6 +615,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -621,6 +624,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
    std::unique_ptr<network::NSSTempCertsCacheChromeOS> nss_temp_certs_cache_;
  #endif
  
@@ -190,10 +190,10 @@ index 55d2de8f1e5d538f3168808c0b3c2a19520cf824..829a26f486e1e7c7a24f1d273e9af48d
    // CertNetFetcher is not used by the current platform.
    scoped_refptr<cert_verifier::CertNetFetcherURLLoader> cert_net_fetcher_;
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
-index ee5d5864eaf9fcb4bf5f13fc5e3a6ae70a6d7a86..f45ea3ba79d68d6d58aedba54c5bc9d7fc4935e9 100644
+index 32a60d94e488b12acb27700416da90cd578bbd57..b3a2dd03807bc8deb867c5168af5251a818389a2 100644
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -190,6 +190,17 @@ struct HttpAuthStaticNetworkContextParams {
+@@ -191,6 +191,17 @@ struct HttpAuthStaticNetworkContextParams {
       = DefaultCredentials.ALLOW_DEFAULT_CREDENTIALS;
  };
  
@@ -211,7 +211,7 @@ index ee5d5864eaf9fcb4bf5f13fc5e3a6ae70a6d7a86..f45ea3ba79d68d6d58aedba54c5bc9d7
  // Parameters for constructing a network context.
  struct NetworkContextParams {
    // Name used by memory tools to identify the context.
-@@ -798,6 +809,9 @@ interface NetworkContext {
+@@ -808,6 +819,9 @@ interface NetworkContext {
    // Sets a client for this network context.
    SetClient(pending_remote<NetworkContextClient> client);
  

+ 2 - 2
patches/chromium/notification_provenance.patch

@@ -108,10 +108,10 @@ index 4bf25bf1fa69f7d3869369172d375e2e489e62a1..f80ef2cecc8b111dc54e109646573a59
        mojo::PendingReceiver<blink::mojom::NotificationService> receiver);
  
 diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
-index d04fe57ac79c28307e119d068e3fcc16cc1560ae..3ff0d4050a9f6b960df5e02554217abbd350d817 100644
+index 9fb44d0458606955e0d28ba9ef37f3a1eb7e58ab..a9edced0ef239cbb729e7b064f755536d92f57bc 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -2006,7 +2006,7 @@ void RenderProcessHostImpl::CreateNotificationService(
+@@ -2028,7 +2028,7 @@ void RenderProcessHostImpl::CreateNotificationService(
      mojo::PendingReceiver<blink::mojom::NotificationService> receiver) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    storage_partition_impl_->GetPlatformNotificationContext()->CreateService(

+ 12 - 12
patches/chromium/pepper_plugin_support.patch

@@ -7,7 +7,7 @@ This tweaks Chrome's pepper flash and PDF plugin support to make it
 usable from Electron.
 
 diff --git a/chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc
-index 4bb88c55a82a83cef8330ec8157b49d5adb097ce..48f4e385a57eb0e00c90488fbf052900b6884775 100644
+index d72a867594acee97d50c5f905fc1a4df9aa9352e..8a4cc159cb490ebadbb1b54aa88223c0cbf8ffdb 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc
 +++ b/chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc
 @@ -7,10 +7,12 @@
@@ -40,7 +40,7 @@ index 4bb88c55a82a83cef8330ec8157b49d5adb097ce..48f4e385a57eb0e00c90488fbf052900
 +  return PP_OK;
  }
 diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
-index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b2231061eee 100644
+index 6d40a6b79d027df09412db2f5e3d573bc176cb31..03eb786787cdd349b33c2512ea32ceaceede9291 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
 +++ b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
 @@ -8,9 +8,11 @@
@@ -55,7 +55,7 @@ index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b22
  #include "content/public/browser/browser_context.h"
  #include "content/public/browser/browser_ppapi_host.h"
  #include "content/public/browser/browser_task_traits.h"
-@@ -43,6 +45,7 @@ using content::RenderProcessHost;
+@@ -41,6 +43,7 @@ using content::RenderProcessHost;
  
  namespace {
  
@@ -63,15 +63,15 @@ index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b22
  // Get the CookieSettings on the UI thread for the given render process ID.
  scoped_refptr<content_settings::CookieSettings> GetCookieSettings(
      int render_process_id) {
-@@ -56,6 +59,7 @@ scoped_refptr<content_settings::CookieSettings> GetCookieSettings(
+@@ -54,6 +57,7 @@ scoped_refptr<content_settings::CookieSettings> GetCookieSettings(
    }
    return nullptr;
  }
 +#endif
  
- void PepperBindConnectorReceiver(
-     mojo::PendingReceiver<service_manager::mojom::Connector>
-@@ -72,7 +76,9 @@ PepperFlashBrowserHost::PepperFlashBrowserHost(BrowserPpapiHost* host,
+ void BindWakeLockProviderOnUIThread(
+     mojo::PendingReceiver<device::mojom::WakeLockProvider> receiver) {
+@@ -67,7 +71,9 @@ PepperFlashBrowserHost::PepperFlashBrowserHost(BrowserPpapiHost* host,
                                                 PP_Instance instance,
                                                 PP_Resource resource)
      : ResourceHost(host->GetPpapiHost(), instance, resource),
@@ -81,7 +81,7 @@ index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b22
        delay_timer_(FROM_HERE,
                     base::TimeDelta::FromSeconds(45),
                     this,
-@@ -125,6 +131,7 @@ int32_t PepperFlashBrowserHost::OnGetLocalTimeZoneOffset(
+@@ -120,6 +126,7 @@ int32_t PepperFlashBrowserHost::OnGetLocalTimeZoneOffset(
  
  int32_t PepperFlashBrowserHost::OnGetLocalDataRestrictions(
      ppapi::host::HostMessageContext* context) {
@@ -89,7 +89,7 @@ index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b22
    // Getting the Flash LSO settings requires using the CookieSettings which
    // belong to the profile which lives on the UI thread. We lazily initialize
    // |cookie_settings_| by grabbing the reference from the UI thread and then
-@@ -145,9 +152,11 @@ int32_t PepperFlashBrowserHost::OnGetLocalDataRestrictions(
+@@ -140,9 +147,11 @@ int32_t PepperFlashBrowserHost::OnGetLocalDataRestrictions(
                     context->MakeReplyMessageContext(), document_url,
                     plugin_url));
    }
@@ -102,7 +102,7 @@ index 860c5738d5731c901aeb9074074f3337d7fc4053..27435c3c91440e8c83e209097aae2b22
  void PepperFlashBrowserHost::GetLocalDataRestrictions(
      ppapi::host::ReplyMessageContext reply_context,
      const GURL& document_url,
-@@ -176,6 +185,7 @@ void PepperFlashBrowserHost::GetLocalDataRestrictions(
+@@ -171,6 +180,7 @@ void PepperFlashBrowserHost::GetLocalDataRestrictions(
              PpapiPluginMsg_Flash_GetLocalDataRestrictionsReply(
                  static_cast<int32_t>(restrictions)));
  }
@@ -237,7 +237,7 @@ index b9d2ce7f7f6837ee7b304daac82d21a3147c6faf..4d4b023d62d12b4d119acbfdee64f415
  
    base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_{this};
 diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
-index 0fa0fa341e93bd089ef2a22f74450af55db69f5b..9a6d8e5740d6ccede998efd3a96496acd9efabfb 100644
+index c94e1947dc1b1ea83b27107c36e87c3dad5a61b1..b38862b776713958c54c3523b61a36f99fd42e9e 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
 +++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc
 @@ -8,17 +8,21 @@
@@ -337,7 +337,7 @@ index 0fa0fa341e93bd089ef2a22f74450af55db69f5b..9a6d8e5740d6ccede998efd3a96496ac
  int32_t PepperIsolatedFileSystemMessageFilter::OpenPluginPrivateFileSystem(
      ppapi::host::HostMessageContext* context) {
 diff --git a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
-index b36248debee4f5e0503e7611f7d1c47d59650f5b..7af31ee0d2cbb4c8fc7cd41c356305d6476815c5 100644
+index 56a23e8f41bb418d414f11af5797b30571d4cc2b..6f9f577f16de80dd2ab194b557bbd9ec89599280 100644
 --- a/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
 +++ b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h
 @@ -20,7 +20,9 @@

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

@@ -35,7 +35,7 @@ index e9b64a823ae7e25361f37190d247af0fa6a6f68a..43fdb0ad50d2b11a1bc28aa0f358c6dd
  #include "ui/base/l10n/l10n_util.h"
  #include "ui/gfx/color_palette.h"
 diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
-index 027fb9dddff339e67600b83c79c209656d210a90..e9dfd515aadfb4442da7a7b574a3891fe2a8d8bb 100644
+index 02c05417bf3a2b6ca1bfc839d76262b97e9b2d69..3ac71544700f517b4c7397fa7a838ca8d778d2b1 100644
 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
 +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
 @@ -19,7 +19,7 @@

+ 37 - 36
patches/chromium/printing.patch

@@ -11,7 +11,7 @@ majority of changes originally come from these PRs:
 This patch also fixes callback for manual user cancellation and success.
 
 diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
-index 55469c2b13d43e788a85315cc14a9c6eabe8ad9b..453d6cbcad219d1ae3da285ec005b6a559452ead 100644
+index ebffdb08d080eceb0ea9e96ee3ca7db627cfaf5e..bc00a7a00626cee17e5f5ea976f8248f71e06505 100644
 --- a/chrome/browser/printing/print_job_worker.cc
 +++ b/chrome/browser/printing/print_job_worker.cc
 @@ -21,7 +21,6 @@
@@ -30,7 +30,7 @@ index 55469c2b13d43e788a85315cc14a9c6eabe8ad9b..453d6cbcad219d1ae3da285ec005b6a5
  #include "printing/print_job_constants.h"
  #include "printing/printed_document.h"
  #include "printing/printing_utils.h"
-@@ -222,9 +222,14 @@ void PrintJobWorker::UpdatePrintSettings(base::Value new_settings,
+@@ -221,9 +221,14 @@ void PrintJobWorker::UpdatePrintSettings(base::Value new_settings,
          print_backend->GetPrinterDriverInfo(printer_name));
    }
  
@@ -48,7 +48,7 @@ index 55469c2b13d43e788a85315cc14a9c6eabe8ad9b..453d6cbcad219d1ae3da285ec005b6a5
  }
  
  #if defined(OS_CHROMEOS)
-@@ -240,6 +245,13 @@ void PrintJobWorker::UpdatePrintSettingsFromPOD(
+@@ -239,6 +244,13 @@ void PrintJobWorker::UpdatePrintSettingsFromPOD(
  
  void PrintJobWorker::GetSettingsDone(SettingsCallback callback,
                                       PrintingContext::Result result) {
@@ -63,7 +63,7 @@ index 55469c2b13d43e788a85315cc14a9c6eabe8ad9b..453d6cbcad219d1ae3da285ec005b6a5
  }
  
 diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
-index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed1ad8dbbf 100644
+index 155d86fe79b99989c3f604aeaab13782f8e6631c..b60263e722b2604ed35a1ed10469ac91e22aaa33 100644
 --- a/chrome/browser/printing/print_view_manager_base.cc
 +++ b/chrome/browser/printing/print_view_manager_base.cc
 @@ -27,10 +27,7 @@
@@ -145,7 +145,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
    return true;
  }
  
-@@ -246,9 +259,9 @@ void PrintViewManagerBase::StartLocalPrintJob(
+@@ -250,9 +263,9 @@ void PrintViewManagerBase::StartLocalPrintJob(
  void PrintViewManagerBase::UpdatePrintingEnabled() {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
    // The Unretained() is safe because ForEachFrame() is synchronous.
@@ -158,7 +158,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
  }
  
  void PrintViewManagerBase::NavigationStopped() {
-@@ -351,7 +364,7 @@ void PrintViewManagerBase::OnPrintingFailed(int cookie) {
+@@ -355,7 +368,7 @@ void PrintViewManagerBase::OnPrintingFailed(int cookie) {
    PrintManager::OnPrintingFailed(cookie);
  
  #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
@@ -167,7 +167,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
  #endif
  
    ReleasePrinterQuery();
-@@ -451,9 +464,13 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent(
+@@ -455,9 +468,13 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent(
            content::NotificationService::NoDetails());
        break;
      }
@@ -183,7 +183,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
        NOTREACHED();
        break;
      }
-@@ -548,8 +565,6 @@ bool PrintViewManagerBase::CreateNewPrintJob(
+@@ -552,8 +569,6 @@ bool PrintViewManagerBase::CreateNewPrintJob(
    DCHECK(!quit_inner_loop_);
    DCHECK(query);
  
@@ -192,7 +192,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
  
    // We can't print if there is no renderer.
    if (!web_contents()->GetRenderViewHost() ||
-@@ -564,8 +579,6 @@ bool PrintViewManagerBase::CreateNewPrintJob(
+@@ -568,8 +583,6 @@ bool PrintViewManagerBase::CreateNewPrintJob(
    print_job_->SetSource(PrintJob::Source::PRINT_PREVIEW, /*source_id=*/"");
  #endif  // defined(OS_CHROMEOS)
  
@@ -201,7 +201,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
    printing_succeeded_ = false;
    return true;
  }
-@@ -614,14 +627,24 @@ void PrintViewManagerBase::ReleasePrintJob() {
+@@ -618,14 +631,24 @@ void PrintViewManagerBase::ReleasePrintJob() {
    content::RenderFrameHost* rfh = printing_rfh_;
    printing_rfh_ = nullptr;
  
@@ -229,7 +229,7 @@ index 3d026cd11aa2c0b009812317995cd4e02161251e..2778bfd64270a2e93153f39e849316ed
    print_job_ = nullptr;
  }
 diff --git a/chrome/browser/printing/print_view_manager_base.h b/chrome/browser/printing/print_view_manager_base.h
-index af49d3e2f8abaf7dc4d82dc3f9beccdf4fbd9f18..c5ef1a4c1577c509e5fbe0fcf06e6dfdba30c92c 100644
+index 3d434244927aca5e5dbec8d7c1cd212c5c260c71..9d62c903bf08fa8cfa8c425d430c5e995a04f7fc 100644
 --- a/chrome/browser/printing/print_view_manager_base.h
 +++ b/chrome/browser/printing/print_view_manager_base.h
 @@ -33,6 +33,8 @@ class PrintJob;
@@ -382,10 +382,10 @@ index 9fbea6d0a2dbe55b1d600fbc217dee5aa8ae8cd5..de9bd267e408c02fd4da7d903523c0e6
    // content::BrowserMessageFilter:
    bool OnMessageReceived(const IPC::Message& message) override;
 diff --git a/components/printing/common/print.mojom b/components/printing/common/print.mojom
-index 34e1cda035c042c8c4c55acd7716cf9473856fcf..199267d873f2343cdf401bb9a335dd753e0d4dfd 100644
+index c4707f4680f1522689c77d3e8bbc57cb62787381..2909205539b2fcfc86e610cfdff0ca418b73d934 100644
 --- a/components/printing/common/print.mojom
 +++ b/components/printing/common/print.mojom
-@@ -24,7 +24,7 @@ interface PrintRenderer {
+@@ -35,7 +35,7 @@ interface PrintRenderer {
  interface PrintRenderFrame {
    // Tells the RenderFrame to switch the CSS to print media type, render every
    // requested page, and then switch back the CSS to display media type.
@@ -395,18 +395,18 @@ index 34e1cda035c042c8c4c55acd7716cf9473856fcf..199267d873f2343cdf401bb9a335dd75
    // Tells the RenderFrame to switch the CSS to print media type, render every
    // requested page using the print preview document's frame/node, and then
 diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
-index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb12154a6f238 100644
+index 1af8977aaa94dc9cb8b6587bff84884d5f0cd20f..819c9416a30aac7f10fd788c477a0c8e9f7e7cca 100644
 --- a/components/printing/renderer/print_render_frame_helper.cc
 +++ b/components/printing/renderer/print_render_frame_helper.cc
-@@ -39,6 +39,7 @@
- #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+@@ -38,6 +38,7 @@
+ #include "net/base/escape.h"
  #include "printing/buildflags/buildflags.h"
  #include "printing/metafile_skia.h"
 +#include "printing/print_settings.h"
  #include "printing/units.h"
  #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
  #include "third_party/blink/public/common/frame/frame_owner_element_type.h"
-@@ -1166,7 +1167,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
+@@ -1120,7 +1121,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
      web_frame->DispatchBeforePrintEvent();
      if (!weak_this)
        return;
@@ -416,7 +416,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
      if (weak_this)
        web_frame->DispatchAfterPrintEvent();
    }
-@@ -1202,7 +1204,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver(
+@@ -1141,7 +1143,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver(
    receivers_.Add(this, std::move(receiver));
  }
  
@@ -425,7 +425,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr());
    if (ipc_nesting_level_ > 1)
      return;
-@@ -1216,7 +1218,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() {
+@@ -1155,7 +1157,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() {
    // If we are printing a PDF extension frame, find the plugin node and print
    // that instead.
    auto plugin = delegate_->GetPdfElement(frame);
@@ -434,7 +434,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    if (!render_frame_gone_)
      frame->DispatchAfterPrintEvent();
    // WARNING: |this| may be gone at this point. Do not do any more work here and
-@@ -1233,7 +1235,7 @@ void PrintRenderFrameHelper::PrintForSystemDialog() {
+@@ -1172,7 +1174,7 @@ void PrintRenderFrameHelper::PrintForSystemDialog() {
      return;
    }
    Print(frame, print_preview_context_.source_node(),
@@ -443,7 +443,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    if (!render_frame_gone_)
      frame->DispatchAfterPrintEvent();
    // WARNING: |this| may be gone at this point. Do not do any more work here and
-@@ -1315,6 +1317,8 @@ void PrintRenderFrameHelper::OnPrintPreview(
+@@ -1212,6 +1214,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) {
    if (ipc_nesting_level_ > 1)
      return;
  
@@ -452,27 +452,28 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    print_preview_context_.OnPrintPreview();
  
    base::UmaHistogramEnumeration(print_preview_context_.IsForArc()
-@@ -1557,13 +1561,13 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() {
+@@ -1564,13 +1568,13 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() {
        print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_CAPTURE_FAILED);
        return false;
      }
 -  } else {
 -    if (!CopyMetafileDataToReadOnlySharedMem(*metafile,
-+  }
-+
-+  if (!CopyMetafileDataToReadOnlySharedMem(*metafile,
-                                              &preview_params.content)) {
+-                                             &preview_params.content)) {
 -      LOG(ERROR) << "CopyMetafileDataToReadOnlySharedMem failed";
 -      print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_COPY_FAILED);
 -      return false;
 -    }
++  }
++
++  if (!CopyMetafileDataToReadOnlySharedMem(*metafile,
++                                           &preview_params.content)) {
 +    LOG(ERROR) << "CopyMetafileDataToReadOnlySharedMem failed";
 +    print_preview_context_.set_error(PREVIEW_ERROR_METAFILE_COPY_FAILED);
 +    return false;
    }
  
    preview_params.document_cookie = print_pages_params_->params.document_cookie;
-@@ -1760,7 +1764,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
+@@ -1705,7 +1709,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
  
      auto self = weak_ptr_factory_.GetWeakPtr();
      Print(duplicate_node.GetDocument().GetFrame(), duplicate_node,
@@ -483,7 +484,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
      // Check if |this| is still valid.
      if (!self)
        return;
-@@ -1771,7 +1777,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
+@@ -1716,7 +1722,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
  
  void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
                                     const blink::WebNode& node,
@@ -494,7 +495,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    // If still not finished with earlier print request simply ignore.
    if (prep_frame_view_)
      return;
-@@ -1779,7 +1787,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
+@@ -1724,7 +1732,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
    FrameReference frame_ref(frame);
  
    int expected_page_count = 0;
@@ -503,7 +504,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
      DidFinishPrinting(FAIL_PRINT_INIT);
      return;  // Failed to init print page settings.
    }
-@@ -1799,8 +1807,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
+@@ -1744,8 +1752,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
  
      PrintMsg_PrintPages_Params print_settings;
      auto self = weak_ptr_factory_.GetWeakPtr();
@@ -517,7 +518,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
      // Check if |this| is still valid.
      if (!self)
        return;
-@@ -2024,10 +2035,23 @@ void PrintRenderFrameHelper::IPCProcessed() {
+@@ -1979,10 +1990,23 @@ void PrintRenderFrameHelper::IPCProcessed() {
      base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
  }
  
@@ -544,7 +545,7 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
    // Check if the printer returned any settings, if the settings is empty, we
    // can safely assume there are no printer drivers configured. So we safely
    // terminate.
-@@ -2047,12 +2071,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
+@@ -2002,12 +2026,14 @@ bool PrintRenderFrameHelper::InitPrintSettings(bool fit_to_paper_size) {
    return result;
  }
  
@@ -564,10 +565,10 @@ index 41f6c6ba9920c7fe2a0cf91458162afb70762c16..5c23f9fba61c791365d9c69910ebb121
      Send(new PrintHostMsg_ShowInvalidPrinterSettingsError(routing_id()));
      return false;
 diff --git a/components/printing/renderer/print_render_frame_helper.h b/components/printing/renderer/print_render_frame_helper.h
-index a432a1e007111d6c13c76255aa445d05b869e46c..3f66fd39345998fd11d0fd383b4262cca838abf8 100644
+index 0778deefa7af69bb747719ab1c05c6de6c201be5..9d1872d79b4bf88a2d8db8b24eebfdc63c2ad2a8 100644
 --- a/components/printing/renderer/print_render_frame_helper.h
 +++ b/components/printing/renderer/print_render_frame_helper.h
-@@ -224,7 +224,7 @@ class PrintRenderFrameHelper
+@@ -222,7 +222,7 @@ class PrintRenderFrameHelper
        mojo::PendingAssociatedReceiver<mojom::PrintRenderFrame> receiver);
  
    // printing::mojom::PrintRenderFrame:
@@ -576,7 +577,7 @@ index a432a1e007111d6c13c76255aa445d05b869e46c..3f66fd39345998fd11d0fd383b4262cc
    void PrintForSystemDialog() override;
  #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
    void InitiatePrintPreview(
-@@ -291,7 +291,9 @@ class PrintRenderFrameHelper
+@@ -285,7 +285,9 @@ class PrintRenderFrameHelper
    // WARNING: |this| may be gone after this method returns.
    void Print(blink::WebLocalFrame* frame,
               const blink::WebNode& node,
@@ -587,7 +588,7 @@ index a432a1e007111d6c13c76255aa445d05b869e46c..3f66fd39345998fd11d0fd383b4262cc
  
    // Notification when printing is done - signal tear-down/free resources.
    void DidFinishPrinting(PrintingResult result);
-@@ -300,12 +302,14 @@ class PrintRenderFrameHelper
+@@ -294,12 +296,14 @@ class PrintRenderFrameHelper
  
    // Initialize print page settings with default settings.
    // Used only for native printing workflow.

+ 6 - 6
patches/chromium/put_back_deleted_colors_for_autofill.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/chrome/browser/ui/libgtkui/native_theme_gtk.cc b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
-index 9871a29db66aefdd2d9333645d9a445a5511bb7d..d7bd218fcea1428957265ba79e16df1c00037127 100644
+index c34e3618c5124e3b10c25d434420cf85679e9c73..1cacab5eb9dc7dd754eb9f7a29d11319d633cdc8 100644
 --- a/chrome/browser/ui/libgtkui/native_theme_gtk.cc
 +++ b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
-@@ -292,6 +292,27 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
+@@ -301,6 +301,27 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
      case ui::NativeTheme::kColorId_TableHeaderSeparator:
        return GetBorderColor("GtkTreeView#treeview.view GtkButton#button");
  
@@ -40,7 +40,7 @@ index 9871a29db66aefdd2d9333645d9a445a5511bb7d..d7bd218fcea1428957265ba79e16df1c
      // TODO(thomasanderson): Render GtkSpinner directly.
      case ui::NativeTheme::kColorId_ThrobberSpinningColor:
 diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc
-index 381f75f76757666adc5cbaf8274b0e9fed55c261..8a8ebeeeaa7942003ee7fc7898e79e12818f0c10 100644
+index 90b86727d8ab48d25dcede1f18fd3107eba83e1b..4a4bf7f0f809d5a69f48eb47d631072c1c86ee3a 100644
 --- a/ui/native_theme/common_theme.cc
 +++ b/ui/native_theme/common_theme.cc
 @@ -59,6 +59,14 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id,
@@ -58,7 +58,7 @@ index 381f75f76757666adc5cbaf8274b0e9fed55c261..8a8ebeeeaa7942003ee7fc7898e79e12
        // FocusableBorder
        case NativeTheme::kColorId_FocusedBorderColor:
          return SkColorSetA(gfx::kGoogleBlue300, 0x4D);
-@@ -391,6 +399,18 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id,
+@@ -401,6 +409,18 @@ SkColor GetAuraColor(NativeTheme::ColorId color_id,
      case NativeTheme::kColorId_UnfocusedBorderColor:
        return gfx::kGoogleGrey300;
  
@@ -78,10 +78,10 @@ index 381f75f76757666adc5cbaf8274b0e9fed55c261..8a8ebeeeaa7942003ee7fc7898e79e12
      case NativeTheme::kColorId_ThrobberSpinningColor:
        return gfx::kGoogleBlue600;
 diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h
-index d266d92f9ceec23d38430ada176b753b34005749..183fe5b316697e9478751bab4766238ec8e29bd2 100644
+index 0c26cce0cb14bd9e87c3a095116501bf0c1803e4..782dd1d122bfab4990c924a7fb0e7276fb51b18b 100644
 --- a/ui/native_theme/native_theme.h
 +++ b/ui/native_theme/native_theme.h
-@@ -397,6 +397,11 @@ class NATIVE_THEME_EXPORT NativeTheme {
+@@ -409,6 +409,11 @@ class NATIVE_THEME_EXPORT NativeTheme {
      kColorId_TableHeaderText,
      kColorId_TableHeaderBackground,
      kColorId_TableHeaderSeparator,

+ 7 - 7
patches/chromium/render_widget_host_view_base.patch

@@ -6,10 +6,10 @@ Subject: render_widget_host_view_base.patch
 ... something to do with OSR? and maybe <webview> as well? terrifying.
 
 diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
-index 394b9ec0b7409465b0f9700a2d4a1eb1cf538e1f..a34dcdd124746b04d116e207b10395fc02649ec1 100644
+index d82aff3ef7f2606cc996501bfbd5222a354c8639..56ab9fca845a0c84579b4a874c8007edebbb12fb 100644
 --- a/content/browser/renderer_host/render_widget_host_view_base.cc
 +++ b/content/browser/renderer_host/render_widget_host_view_base.cc
-@@ -619,6 +619,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor(
+@@ -618,6 +618,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor(
    return false;
  }
  
@@ -24,10 +24,10 @@ index 394b9ec0b7409465b0f9700a2d4a1eb1cf538e1f..a34dcdd124746b04d116e207b10395fc
      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 9763b72a68992fc97cf1d1ec10d55c1198ec1771..1ece7c0cdfa2ab519d5ea0ef31465cda305830fd 100644
+index a662f8bac41b01a9d8e56b8aa1b9f5336bfe265c..04c7913dc8c7b987bef4208fa417f8f79fe33977 100644
 --- a/content/browser/renderer_host/render_widget_host_view_base.h
 +++ b/content/browser/renderer_host/render_widget_host_view_base.h
-@@ -24,9 +24,11 @@
+@@ -23,9 +23,11 @@
  #include "components/viz/common/surfaces/surface_id.h"
  #include "components/viz/host/hit_test/hit_test_query.h"
  #include "content/browser/renderer_host/event_with_latency_info.h"
@@ -39,7 +39,7 @@ index 9763b72a68992fc97cf1d1ec10d55c1198ec1771..1ece7c0cdfa2ab519d5ea0ef31465cda
  #include "content/public/browser/render_widget_host_view.h"
  #include "content/public/common/input_event_ack_state.h"
  #include "content/public/common/screen_info.h"
-@@ -72,9 +74,11 @@ class CursorManager;
+@@ -66,9 +68,11 @@ class CursorManager;
  class MouseWheelPhaseHandler;
  class RenderWidgetHostImpl;
  class RenderWidgetHostViewBaseObserver;
@@ -51,7 +51,7 @@ index 9763b72a68992fc97cf1d1ec10d55c1198ec1771..1ece7c0cdfa2ab519d5ea0ef31465cda
  class WebCursor;
  class DelegatedFrameHost;
  struct TextInputState;
-@@ -132,6 +136,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
+@@ -123,6 +127,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
                                       bool destination_is_loaded,
                                       bool destination_is_frozen) final;
  
@@ -61,7 +61,7 @@ index 9763b72a68992fc97cf1d1ec10d55c1198ec1771..1ece7c0cdfa2ab519d5ea0ef31465cda
    // This only needs to be overridden by RenderWidgetHostViewBase subclasses
    // that handle content embedded within other RenderWidgetHostViews.
    gfx::PointF TransformPointToRootCoordSpaceF(
-@@ -342,6 +349,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
+@@ -312,6 +319,11 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
    virtual void ProcessGestureEvent(const blink::WebGestureEvent& event,
                                     const ui::LatencyInfo& latency);
  

+ 6 - 6
patches/chromium/render_widget_host_view_mac.patch

@@ -10,10 +10,10 @@ 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 01159a8b5b28858e899808cc57862e54dd998b48..ff122c32e18fc16efd7c376d38499c1d69fab635 100644
+index 4df726e8331572fe96551fdde60b4174aff30588..66b1e2b52c9da2d485fd9f076e1628861a74cb69 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
-@@ -153,6 +153,11 @@ void ExtractUnderlines(NSAttributedString* string,
+@@ -154,6 +154,11 @@ void ExtractUnderlines(NSAttributedString* string,
  
  }  // namespace
  
@@ -25,7 +25,7 @@ index 01159a8b5b28858e899808cc57862e54dd998b48..ff122c32e18fc16efd7c376d38499c1d
  // These are not documented, so use only after checking -respondsToSelector:.
  @interface NSApplication (UndocumentedSpeechMethods)
  - (void)speakString:(NSString*)string;
-@@ -572,6 +577,9 @@ - (BOOL)acceptsMouseEventsWhenInactive {
+@@ -573,6 +578,9 @@ - (BOOL)acceptsMouseEventsWhenInactive {
  }
  
  - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {
@@ -35,7 +35,7 @@ index 01159a8b5b28858e899808cc57862e54dd998b48..ff122c32e18fc16efd7c376d38499c1d
    return [self acceptsMouseEventsWhenInactive];
  }
  
-@@ -990,6 +998,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
+@@ -983,6 +991,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
                                eventType == NSKeyDown &&
                                !(modifierFlags & NSCommandKeyMask);
  
@@ -46,7 +46,7 @@ index 01159a8b5b28858e899808cc57862e54dd998b48..ff122c32e18fc16efd7c376d38499c1d
    // We only handle key down events and just simply forward other events.
    if (eventType != NSKeyDown) {
      _hostHelper->ForwardKeyboardEvent(event, latency_info);
-@@ -1769,9 +1781,11 @@ - (NSAccessibilityRole)accessibilityRole {
+@@ -1762,9 +1774,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
  //
@@ -58,7 +58,7 @@ index 01159a8b5b28858e899808cc57862e54dd998b48..ff122c32e18fc16efd7c376d38499c1d
  
  - (NSArray*)validAttributesForMarkedText {
    // This code is just copied from WebKit except renaming variables.
-@@ -1780,7 +1794,10 @@ - (NSArray*)validAttributesForMarkedText {
+@@ -1773,7 +1787,10 @@ - (NSArray*)validAttributesForMarkedText {
          initWithObjects:NSUnderlineStyleAttributeName,
                          NSUnderlineColorAttributeName,
                          NSMarkedClauseSegmentAttributeName,

+ 5 - 5
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 6725c10609e153a7ea6fe4f1133c52dbbac9726c..7bfa4e30130d56294360fd371a93c9e272330e08 100644
+index 8035baf46830c5f96a96f44783746dfa80158ff9..b2ec798a614e53431ade09ce16fc831a6f8636e5 100644
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -1620,7 +1620,7 @@ if (is_chrome_branded && !is_android) {
+@@ -1488,7 +1488,7 @@ if (is_chrome_branded && !is_android) {
    }
  }
  
@@ -64,7 +64,7 @@ index 6725c10609e153a7ea6fe4f1133c52dbbac9726c..7bfa4e30130d56294360fd371a93c9e2
    chrome_paks("packed_resources") {
      if (is_mac) {
        output_dir = "$root_gen_dir/repack"
-@@ -1644,6 +1644,12 @@ if (!is_android) {
+@@ -1508,6 +1508,12 @@ if (!is_android) {
    }
  }
  
@@ -75,5 +75,5 @@ index 6725c10609e153a7ea6fe4f1133c52dbbac9726c..7bfa4e30130d56294360fd371a93c9e2
 +}
 +
  repack("browser_tests_pak") {
-   sources = [
-     "$root_gen_dir/chrome/webui_test_resources.pak",
+   sources = [ "$root_gen_dir/chrome/webui_test_resources.pak" ]
+   output = "$root_out_dir/browser_tests.pak"

+ 4 - 4
patches/chromium/revert_remove_contentrendererclient_shouldfork.patch

@@ -6,10 +6,10 @@ Subject: Revert "Remove ContentRendererClient::ShouldFork."
 This reverts commit 6b068eb8ca4a3c7350bdafa22fc0cf0636ef8b74.
 
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
-index 1950be19dff0f559354bd57b3c5281b65e6c1c5e..00ff8aa9338f221b0cca3dcb807af7a3b176c4f7 100644
+index d37bd7451b4a73fc7b00e5cc1dfcb823c7a142fb..0e2800f3e5b0ee1b8e88921cbf3f18258ca51e7b 100644
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -1310,6 +1310,17 @@ bool ChromeContentRendererClient::ShouldFork(WebLocalFrame* frame,
+@@ -1302,6 +1302,17 @@ bool ChromeContentRendererClient::ShouldFork(WebLocalFrame* frame,
      return true;
  #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
  
@@ -28,10 +28,10 @@ index 1950be19dff0f559354bd57b3c5281b65e6c1c5e..00ff8aa9338f221b0cca3dcb807af7a3
  }
  
 diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
-index 0843c01c32df484b55317f0b9332a209227d2a30..654659900e5db2a63dbc1ce961ff7ffba6ee5a6e 100644
+index 1659f93d83357337cb6e2cab668811cba3f14508..ef2aafde43347a6af188cada40c106dba8a19d31 100644
 --- a/content/renderer/render_view_browsertest.cc
 +++ b/content/renderer/render_view_browsertest.cc
-@@ -989,6 +989,73 @@ TEST_F(RenderViewImplTest, BeginNavigationForWebUI) {
+@@ -990,6 +990,73 @@ TEST_F(RenderViewImplTest, BeginNavigationForWebUI) {
        FrameHostMsg_OpenURL::ID));
  }
  

+ 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 faaa4cc2b07bf53e78a8401bf4ca10e7bdf4d340..9b6c0beeb1c0d109949a44a5117e1c3ce9513a02 100644
+index ce5afdf625ee1c5360e5c94563cc011ef05e11b7..9f8b20872158acc5034013bda235a3c14524da95 100644
 --- a/content/renderer/render_thread_impl.cc
 +++ b/content/renderer/render_thread_impl.cc
-@@ -1330,7 +1330,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
+@@ -1338,7 +1338,7 @@ bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
  }
  
  bool RenderThreadImpl::IsElasticOverscrollEnabled() {

+ 7 - 7
patches/chromium/ssl_security_state_tab_helper.patch

@@ -6,7 +6,7 @@ Subject: ssl_security_state_tab_helper.patch
 Allows populating security tab info for devtools in Electron.
 
 diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
-index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f455542551d60eac 100644
+index 02cfe5551f579c83b5e0d015566681704ce31e3f..779f33c17972f892e1086d1e65fb8071d7acb15f 100644
 --- a/chrome/browser/ssl/security_state_tab_helper.cc
 +++ b/chrome/browser/ssl/security_state_tab_helper.cc
 @@ -13,22 +13,26 @@
@@ -62,7 +62,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
    }
  
    // Convert the pref string to an SSLVersion, if it is valid. Otherwise use the
-@@ -115,8 +122,9 @@ bool IsLegacyTLS(GURL url, int connection_status) {
+@@ -118,8 +125,9 @@ bool IsLegacyTLS(GURL url, int connection_status) {
  
  }  // namespace
  
@@ -73,7 +73,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
  
  SecurityStateTabHelper::SecurityStateTabHelper(
      content::WebContents* web_contents)
-@@ -160,6 +168,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
+@@ -162,6 +170,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
    // information is still being initialized, thus no need to check for that.
    state->malicious_content_status = GetMaliciousContentStatus();
  
@@ -81,7 +81,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
    ReputationWebContentsObserver* reputation_web_contents_observer =
        ReputationWebContentsObserver::FromWebContents(web_contents());
    state->safety_tip_info =
-@@ -177,6 +186,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
+@@ -179,6 +188,7 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
            security_state::prefs::kStricterMixedContentTreatmentEnabled)) {
      state->should_suppress_mixed_content_warning = true;
    }
@@ -89,7 +89,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
  
    return state;
  }
-@@ -227,8 +237,10 @@ void SecurityStateTabHelper::DidFinishNavigation(
+@@ -229,8 +239,10 @@ void SecurityStateTabHelper::DidFinishNavigation(
      UMA_HISTOGRAM_BOOLEAN("interstitial.ssl.visited_site_after_warning", true);
    }
  
@@ -100,7 +100,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
  }
  
  void SecurityStateTabHelper::DidChangeVisibleSecurityState() {
-@@ -252,6 +264,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
+@@ -254,6 +266,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
        web_contents()->GetController().GetVisibleEntry();
    if (!entry)
      return security_state::MALICIOUS_CONTENT_STATUS_NONE;
@@ -108,7 +108,7 @@ index b9baf3cc836e04f3898b4f03b3bbf339e79ee3fc..9a7414a7323daa82b28b2894f4555425
    safe_browsing::SafeBrowsingService* sb_service =
        g_browser_process->safe_browsing_service();
    if (!sb_service)
-@@ -334,6 +347,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
+@@ -336,6 +349,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
          break;
      }
    }

+ 2 - 2
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 3ff0d4050a9f6b960df5e02554217abbd350d817..89a77a7c263eccbf4d6dd29bbfd7924647bd5f2e 100644
+index a9edced0ef239cbb729e7b064f755536d92f57bc..cd0bc10cda20c0f874d9c315ee16860255287631 100644
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 @@ -413,6 +413,11 @@ class RendererSandboxedProcessLauncherDelegate
@@ -62,7 +62,7 @@ index 3ff0d4050a9f6b960df5e02554217abbd350d817..89a77a7c263eccbf4d6dd29bbfd79246
  };
  
  const char kSessionStorageHolderKey[] = "kSessionStorageHolderKey";
-@@ -1727,11 +1738,18 @@ bool RenderProcessHostImpl::Init() {
+@@ -1747,11 +1758,18 @@ bool RenderProcessHostImpl::Init() {
        cmd_line->PrependWrapper(renderer_prefix);
      AppendRendererCommandLine(cmd_line.get());
  

+ 2 - 2
patches/chromium/v8_context_snapshot_generator.patch

@@ -7,10 +7,10 @@ v8_context_snapshot_generator is a build time executable.
 The patch adds the config.
 
 diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
-index 7cd1597a83dc2546ba960b09f7e1f2f7181a683e..fd0f83fc7ee30a7f7d939369a97ac66aad2883ab 100644
+index 400a2de58c79d88abd3c62a61b96e28eb5fd5bfd..faf88518b8ed57b06cb4a092744150073eb270da 100644
 --- a/tools/v8_context_snapshot/BUILD.gn
 +++ b/tools/v8_context_snapshot/BUILD.gn
-@@ -117,6 +117,7 @@ if (use_v8_context_snapshot) {
+@@ -103,6 +103,7 @@ if (use_v8_context_snapshot) {
      configs += [
        "//v8:external_startup_data",
        ":disable_icf",

+ 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 565b430d05c7188edf08df6bb334d9f865f11e65..14827b17504ead746ce2f9fce82f2e9530a824e4 100644
+index 0e16aab4db951a3d0013ef8e1297f385de732488..db30825068d18592fed3b7e4fb920cbd03f561db 100644
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -2030,6 +2030,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
+@@ -2051,6 +2051,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
    std::string unique_name;
    frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name);
  
@@ -25,7 +25,7 @@ index 565b430d05c7188edf08df6bb334d9f865f11e65..14827b17504ead746ce2f9fce82f2e95
    WebContentsViewDelegate* delegate =
        GetContentClient()->browser()->GetWebContentsViewDelegate(this);
  
-@@ -2040,6 +2046,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
+@@ -2061,6 +2067,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
      view_.reset(CreateWebContentsView(this, delegate,
                                        &render_view_host_delegate_view_));
    }
@@ -34,7 +34,7 @@ index 565b430d05c7188edf08df6bb334d9f865f11e65..14827b17504ead746ce2f9fce82f2e95
    CHECK(view_.get());
  
 diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
-index ecee31b744ed0871a9f1052d5419075582a90baa..0ce547c74610e13f7f723da997fb0a9799c96efb 100644
+index 40e1e940f87bdf375bd966086893cd829cb7c7bd..eb3523996af34cf8b7b48ae8aa6ad96f83568892 100644
 --- a/content/public/browser/web_contents.h
 +++ b/content/public/browser/web_contents.h
 @@ -79,9 +79,12 @@ class BrowserPluginGuestDelegate;
@@ -49,7 +49,7 @@ index ecee31b744ed0871a9f1052d5419075582a90baa..0ce547c74610e13f7f723da997fb0a97
 +class WebContentsView;
  struct CustomContextMenuContext;
  struct DropData;
- struct MHTMLGenerationParams;
+ struct FaviconURL;
 @@ -214,6 +217,10 @@ class WebContents : public PageNavigator,
        kInitializeAndWarmupRendererProcess,
      } desired_renderer_state;

+ 3 - 3
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 75972bb7f6ccfe5cf7d1bd78e154f7835312fda1..5368aafddd91cc75075700c8f93e3d7ea8f6435b 100644
+index c87d192133c39b29259bc50d3c30d88bc28d2978..354cc294165c5fe248388fb5522efb42da91e4ca 100644
 --- a/content/browser/web_contents/web_contents_view_aura.cc
 +++ b/content/browser/web_contents/web_contents_view_aura.cc
-@@ -796,6 +796,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
+@@ -795,6 +795,7 @@ gfx::NativeView WebContentsViewAura::GetRenderWidgetHostViewParent() const {
  
  bool WebContentsViewAura::IsValidDragTarget(
      RenderWidgetHostImpl* target_rwh) const {
@@ -20,7 +20,7 @@ index 75972bb7f6ccfe5cf7d1bd78e154f7835312fda1..5368aafddd91cc75075700c8f93e3d7e
        GetRenderViewHostID(web_contents_->GetRenderViewHost()) !=
        drag_start_view_id_;
 diff --git a/content/browser/web_contents/web_drag_dest_mac.mm b/content/browser/web_contents/web_drag_dest_mac.mm
-index c09646513c3958e037385b98c6568e29986f9831..96d6d7633a487a5c62ab17735c016b7289b2e594 100644
+index 59456ed3693426952e8c574d4982a00e6f01e9b3..196fb4a6ee9d178e0e6657bc013d4393ca8a9427 100644
 --- a/content/browser/web_contents/web_drag_dest_mac.mm
 +++ b/content/browser/web_contents/web_drag_dest_mac.mm
 @@ -336,6 +336,7 @@ - (void)setDragStartTrackersForProcess:(int)processID {

+ 6 - 6
patches/chromium/worker_context_will_destroy.patch

@@ -10,7 +10,7 @@ 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 6002ce70bb173f441f269ea2dc6e61716c424196..2c372d68dace9c546eae3bdbd4994ec261a6fa22 100644
+index d76e2c9e2667d630c60c7636f77800e40877e820..aea021b9f915c1a7e6cd394255a77d1b286d8168 100644
 --- a/content/public/renderer/content_renderer_client.h
 +++ b/content/public/renderer/content_renderer_client.h
 @@ -396,6 +396,11 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -26,10 +26,10 @@ index 6002ce70bb173f441f269ea2dc6e61716c424196..2c372d68dace9c546eae3bdbd4994ec2
    // 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 17e84479f922cc0eca4ace413a1aea5fb87cb41c..a1fd4ca3d56476246c1a560bfbb7299f1134abf3 100644
+index b3a891b9f9c8dbda8295d0e12b8745b1ec110b3e..fcaf16e8305e0da501d44577df7258f58f363ca9 100644
 --- a/content/renderer/renderer_blink_platform_impl.cc
 +++ b/content/renderer/renderer_blink_platform_impl.cc
-@@ -883,6 +883,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
+@@ -880,6 +880,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
    WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
  }
  
@@ -43,7 +43,7 @@ index 17e84479f922cc0eca4ace413a1aea5fb87cb41c..a1fd4ca3d56476246c1a560bfbb7299f
      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 edbf232175e4555d4f810b6ef03c74f793e32bdf..1995663c3ee97c51a81de076c9a7fe05ba0e73fc 100644
+index 096cd162c7d5228fea0c56ad007b9939e6f27809..1c332800cb133f93d21ee628b3b85e89ab6d7da7 100644
 --- a/content/renderer/renderer_blink_platform_impl.h
 +++ b/content/renderer/renderer_blink_platform_impl.h
 @@ -181,6 +181,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -55,7 +55,7 @@ index edbf232175e4555d4f810b6ef03c74f793e32bdf..1995663c3ee97c51a81de076c9a7fe05
        const blink::WebString& header_name) override;
  
 diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
-index 915af795cbf3a1001e6deb572cf93913775237fe..e9f082fbe34022b165aeca1a37fc0f0fe5e6024a 100644
+index 8690ec1fdd213a4898ebce1c8dce38079972f7df..b06e541ec3cbb6cac7b58222a4718b4560a49ff0 100644
 --- a/third_party/blink/public/platform/platform.h
 +++ b/third_party/blink/public/platform/platform.h
 @@ -623,6 +623,7 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -67,7 +67,7 @@ index 915af795cbf3a1001e6deb572cf93913775237fe..e9f082fbe34022b165aeca1a37fc0f0f
        const WebSecurityOrigin& script_origin) {
      return false;
 diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc
-index e579547da621956c0dcee3c838318a8a9098ae9c..c1702a4d4e1649ffff611e840a217b81474d6e9c 100644
+index e00f788541d7c0f96d2c00c4840da1598c3f7a81..0c3d589ba1ca0727d46feda8ae48c5d0049c304e 100644
 --- a/third_party/blink/renderer/core/workers/worker_thread.cc
 +++ b/third_party/blink/renderer/core/workers/worker_thread.cc
 @@ -681,6 +681,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() {

+ 1 - 0
patches/node/.patches

@@ -31,3 +31,4 @@ refactor_transferrablemodule_is_deprecated_use_compiledwasmmodule.patch
 enable_31_bit_smis_on_64bit_arch_and_ptr_compression.patch
 fix_remove_unused_llhttp_variables.patch
 fix_include_libuv_header_in_node_binding.patch
+remove_deprecated_task_api_override_removed_in_latest_v8.patch

+ 28 - 0
patches/node/remove_deprecated_task_api_override_removed_in_latest_v8.patch

@@ -0,0 +1,28 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Andy Locascio <[email protected]>
+Date: Thu, 9 Jan 2020 15:48:36 -0800
+Subject: remove deprecated task API override removed in latest v8
+
+Node.js will pick this up when they roll next.
+
+CL: https://chromium-review.googlesource.com/c/v8/v8/+/1868620
+
+diff --git a/src/node_platform.h b/src/node_platform.h
+index d2eb325c12113e3066596cae4b0b0e9dce16c1b6..9a7395f6c93d7a90e41ad6f4263e6bdefdcc0824 100644
+--- a/src/node_platform.h
++++ b/src/node_platform.h
+@@ -145,14 +145,6 @@ class NodePlatform : public MultiIsolatePlatform {
+   void CallOnWorkerThread(std::unique_ptr<v8::Task> task) override;
+   void CallDelayedOnWorkerThread(std::unique_ptr<v8::Task> task,
+                                  double delay_in_seconds) override;
+-  void CallOnForegroundThread(v8::Isolate* isolate, v8::Task* task) override {
+-    UNREACHABLE();
+-  }
+-  void CallDelayedOnForegroundThread(v8::Isolate* isolate,
+-                                     v8::Task* task,
+-                                     double delay_in_seconds) override {
+-    UNREACHABLE();
+-  }
+   bool IdleTasksEnabled(v8::Isolate* isolate) override;
+   double MonotonicallyIncreasingTime() override;
+   double CurrentClockTimeMillis() override;

+ 4 - 4
patches/v8/add_realloc.patch

@@ -12,10 +12,10 @@ when we override ReallocateBufferMemory, so we therefore need to implement
 Realloc on the v8 side.
 
 diff --git a/include/v8.h b/include/v8.h
-index 5b9fcd4a0cd97e7d05e852fe3fa9b132ff6fcd06..43d4ea272b50b443654f9fa029bac672ef1046df 100644
+index 748adc77aaaf26298adce580961bfabb11afa360..0add559b3bdaabb73d6365b780d06aedfd89c879 100644
 --- a/include/v8.h
 +++ b/include/v8.h
-@@ -4920,6 +4920,13 @@ class V8_EXPORT ArrayBuffer : public Object {
+@@ -5017,6 +5017,13 @@ class V8_EXPORT ArrayBuffer : public Object {
       */
      virtual void* AllocateUninitialized(size_t length) = 0;
  
@@ -30,10 +30,10 @@ index 5b9fcd4a0cd97e7d05e852fe3fa9b132ff6fcd06..43d4ea272b50b443654f9fa029bac672
       * Free the memory block of size |length|, pointed to by |data|.
       * That memory is guaranteed to be previously allocated by |Allocate|.
 diff --git a/src/api/api.cc b/src/api/api.cc
-index f64538ec1c47f62caf1ff6383b6b3812bb827c67..d21545a7f1a5ca5f593809d7a6475da20651c116 100644
+index 27f67b486df10f73ca62ebd55ae579fc227a1834..e46e98b9a17f2be8d0dc3ebc8e429ad76baeb569 100644
 --- a/src/api/api.cc
 +++ b/src/api/api.cc
-@@ -516,6 +516,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
+@@ -515,6 +515,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
    i::V8::SetSnapshotBlob(snapshot_blob);
  }
  

+ 4 - 4
patches/v8/build_gn.patch

@@ -9,10 +9,10 @@ necessary for native modules to load.
 Also, some fixes relating to mksnapshot on ARM.
 
 diff --git a/BUILD.gn b/BUILD.gn
-index 3a7a9736f8859abc0204f02edca040fda7e22e9d..0264637ec51c26aa924e6809e313678e9b4ac8ea 100644
+index 417a4f655ded5073b1070ce456c6cb71ccc26070..0912f5bbb762e791ed82bbc0a7688583e6f0c1b8 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -290,7 +290,7 @@ config("internal_config") {
+@@ -296,7 +296,7 @@ config("internal_config") {
      ":v8_header_features",
    ]
  
@@ -21,7 +21,7 @@ index 3a7a9736f8859abc0204f02edca040fda7e22e9d..0264637ec51c26aa924e6809e313678e
      defines += [ "BUILDING_V8_SHARED" ]
    }
  }
-@@ -3810,7 +3810,7 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -3797,7 +3797,7 @@ if (current_toolchain == v8_generator_toolchain) {
        "src/interpreter/bytecodes.h",
      ]
  
@@ -30,7 +30,7 @@ index 3a7a9736f8859abc0204f02edca040fda7e22e9d..0264637ec51c26aa924e6809e313678e
  
      deps = [
        ":v8_libbase",
-@@ -3843,6 +3843,8 @@ if (current_toolchain == v8_snapshot_toolchain) {
+@@ -3830,6 +3830,8 @@ if (current_toolchain == v8_snapshot_toolchain) {
  
      configs = [ ":internal_config" ]
  

+ 4 - 4
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 d21545a7f1a5ca5f593809d7a6475da20651c116..4d5bcbc1da528ed33f73a88d912ff7d9ea023577 100644
+index e46e98b9a17f2be8d0dc3ebc8e429ad76baeb569..280ce6c084e082e5a83bf0a698dbf3f1293ef53a 100644
 --- a/src/api/api.cc
 +++ b/src/api/api.cc
-@@ -8680,7 +8680,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
+@@ -8642,7 +8642,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) {
  }
  
  void Isolate::RunMicrotasks() {
@@ -19,10 +19,10 @@ index d21545a7f1a5ca5f593809d7a6475da20651c116..4d5bcbc1da528ed33f73a88d912ff7d9
    isolate->default_microtask_queue()->RunMicrotasks(isolate);
  }
 diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index a2caef22192103d016a61e962d6c1c7c0f84b7e9..527332aac957f2c3c3bc26849b676f6cac4a202a 100644
+index 0d2eac06f41607c3a388bea47ab86e03c3ada502..b567fc96a9a5988ebdbdea15c89b88d9cc059cef 100644
 --- a/src/heap/heap.cc
 +++ b/src/heap/heap.cc
-@@ -5340,9 +5340,9 @@ void Heap::TearDown() {
+@@ -5386,9 +5386,9 @@ void Heap::TearDown() {
  void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback,
                                   GCType gc_type, void* data) {
    DCHECK_NOT_NULL(callback);

+ 2 - 2
patches/v8/do_not_export_private_v8_symbols_on_windows.patch

@@ -12,10 +12,10 @@ 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 172f88265e57b209f5c2431fc8a77c4453f6be80..6c194cb29560d629999ec6254fc22b0a92b0a4c0 100644
+index 3e8b6bbf685f596b46db48c9bc8a4417cd041263..a3a4bfc32f22f13890e696b064b06bcda6f6494c 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -290,6 +290,10 @@ config("internal_config") {
+@@ -296,6 +296,10 @@ config("internal_config") {
      ":v8_header_features",
    ]
  

+ 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 4f06c40e11a0fc85adafcddb38e21594ba479910..6b3f5188605b247b1405a62bd9f4e5e410ab3c2b 100644
+index 1fa1dde37a86301958c86d3793344f4c370c5338..7ddf113569fc9b659c489455ca1c87f5c37ae1ef 100644
 --- a/src/objects/objects.h
 +++ b/src/objects/objects.h
-@@ -803,7 +803,7 @@ enum class KeyCollectionMode {
+@@ -804,7 +804,7 @@ enum class KeyCollectionMode {
  // 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 0264637ec51c26aa924e6809e313678e9b4ac8ea..172f88265e57b209f5c2431fc8a77c4453f6be80 100644
+index 0912f5bbb762e791ed82bbc0a7688583e6f0c1b8..3e8b6bbf685f596b46db48c9bc8a4417cd041263 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -3821,7 +3821,6 @@ if (current_toolchain == v8_generator_toolchain) {
+@@ -3808,7 +3808,6 @@ if (current_toolchain == v8_generator_toolchain) {
  
  if (current_toolchain == v8_snapshot_toolchain) {
    v8_executable("mksnapshot") {

+ 1 - 1
patches/v8/workaround_an_undefined_symbol_error.patch

@@ -12,7 +12,7 @@ By moving some functions out of the the arm64-assembler header file,
 this error no longer seems to happen.
 
 diff --git a/src/codegen/arm64/assembler-arm64.cc b/src/codegen/arm64/assembler-arm64.cc
-index dc2efddc2379354e45c0d5a1afab1e379f8ea80b..294b7802dedacf16c10b6216ea7943824313ce60 100644
+index c3bae988f6999a44308b89b75422e2d8da61892b..eecf2352663b05a7bdefc6dc8a4aca665c703d63 100644
 --- a/src/codegen/arm64/assembler-arm64.cc
 +++ b/src/codegen/arm64/assembler-arm64.cc
 @@ -3588,6 +3588,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift,

+ 1 - 0
script/zip_manifests/dist_zip.linux.arm.manifest

@@ -9,6 +9,7 @@ libEGL.so
 libGLESv2.so
 libffmpeg.so
 libvk_swiftshader.so
+libvulkan.so
 locales/am.pak
 locales/ar.pak
 locales/bg.pak

+ 1 - 0
script/zip_manifests/dist_zip.linux.arm64.manifest

@@ -9,6 +9,7 @@ libEGL.so
 libGLESv2.so
 libffmpeg.so
 libvk_swiftshader.so
+libvulkan.so
 locales/am.pak
 locales/ar.pak
 locales/bg.pak

+ 1 - 0
script/zip_manifests/dist_zip.linux.x64.manifest

@@ -9,6 +9,7 @@ libEGL.so
 libGLESv2.so
 libffmpeg.so
 libvk_swiftshader.so
+libvulkan.so
 locales/am.pak
 locales/ar.pak
 locales/bg.pak

+ 1 - 0
script/zip_manifests/dist_zip.linux.x86.manifest

@@ -9,6 +9,7 @@ libEGL.so
 libGLESv2.so
 libffmpeg.so
 libvk_swiftshader.so
+libvulkan.so
 locales/am.pak
 locales/ar.pak
 locales/bg.pak

+ 1 - 0
script/zip_manifests/dist_zip.win.arm64.manifest

@@ -67,5 +67,6 @@ swiftshader/libEGL.dll
 swiftshader/libGLESv2.dll
 vk_swiftshader_icd.json
 vk_swiftshader.dll
+vulkan-1.dll
 v8_context_snapshot.bin
 version

+ 1 - 0
script/zip_manifests/dist_zip.win.ia32.manifest

@@ -68,5 +68,6 @@ swiftshader/libEGL.dll
 swiftshader/libGLESv2.dll
 vk_swiftshader_icd.json
 vk_swiftshader.dll
+vulkan-1.dll
 v8_context_snapshot.bin
 version

+ 1 - 0
script/zip_manifests/dist_zip.win.x64.manifest

@@ -68,5 +68,6 @@ swiftshader/libEGL.dll
 swiftshader/libGLESv2.dll
 vk_swiftshader_icd.json
 vk_swiftshader.dll
+vulkan-1.dll
 v8_context_snapshot.bin
 version

+ 0 - 4
shell/app/atom_main_delegate.cc

@@ -341,10 +341,6 @@ bool AtomMainDelegate::DelaySandboxInitialization(
 }
 #endif
 
-bool AtomMainDelegate::ShouldLockSchemeRegistry() {
-  return false;
-}
-
 bool AtomMainDelegate::ShouldCreateFeatureList() {
   return false;
 }

+ 0 - 1
shell/app/atom_main_delegate.h

@@ -42,7 +42,6 @@ class AtomMainDelegate : public content::ContentMainDelegate {
 #if defined(OS_MACOSX)
   bool DelaySandboxInitialization(const std::string& process_type) override;
 #endif
-  bool ShouldLockSchemeRegistry() override;
   bool ShouldCreateFeatureList() override;
 
  private:

+ 7 - 3
shell/browser/api/atom_api_debugger.cc

@@ -38,14 +38,17 @@ void Debugger::AgentHostClosed(DevToolsAgentHost* agent_host) {
 }
 
 void Debugger::DispatchProtocolMessage(DevToolsAgentHost* agent_host,
-                                       const std::string& message) {
+                                       base::span<const uint8_t> message) {
   DCHECK(agent_host == agent_host_);
 
   v8::Locker locker(isolate());
   v8::HandleScope handle_scope(isolate());
 
+  base::StringPiece message_str(reinterpret_cast<const char*>(message.data()),
+                                message.size());
   std::unique_ptr<base::Value> parsed_message =
-      base::JSONReader::ReadDeprecated(message);
+      base::JSONReader::ReadDeprecated(message_str,
+                                       base::JSON_REPLACE_INVALID_CHARACTERS);
   if (!parsed_message || !parsed_message->is_dict())
     return;
   base::DictionaryValue* dict =
@@ -157,7 +160,8 @@ v8::Local<v8::Promise> Debugger::SendCommand(gin_helper::Arguments* args) {
 
   std::string json_args;
   base::JSONWriter::Write(request, &json_args);
-  agent_host_->DispatchProtocolMessage(this, json_args);
+  agent_host_->DispatchProtocolMessage(
+      this, base::as_bytes(base::make_span(json_args)));
 
   return handle;
 }

+ 1 - 1
shell/browser/api/atom_api_debugger.h

@@ -43,7 +43,7 @@ class Debugger : public gin_helper::TrackableObject<Debugger>,
   // content::DevToolsAgentHostClient:
   void AgentHostClosed(content::DevToolsAgentHost* agent_host) override;
   void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host,
-                               const std::string& message) override;
+                               base::span<const uint8_t> message) override;
 
   // content::WebContentsObserver:
   void RenderFrameHostChanged(content::RenderFrameHost* old_rfh,

+ 2 - 5
shell/browser/api/atom_api_power_save_blocker.cc

@@ -9,10 +9,9 @@
 #include "base/bind_helpers.h"
 #include "base/task/post_task.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "content/public/browser/system_connector.h"
+#include "content/public/browser/device_service.h"
 #include "gin/dictionary.h"
 #include "gin/function_template.h"
-#include "services/device/public/mojom/constants.mojom.h"
 #include "services/device/public/mojom/wake_lock_provider.mojom.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "shell/common/node_includes.h"
@@ -88,9 +87,7 @@ void PowerSaveBlocker::UpdatePowerSaveBlocker() {
 device::mojom::WakeLock* PowerSaveBlocker::GetWakeLock() {
   if (!wake_lock_) {
     mojo::Remote<device::mojom::WakeLockProvider> wake_lock_provider;
-    DCHECK(content::GetSystemConnector());
-    content::GetSystemConnector()->Connect(
-        device::mojom::kServiceName,
+    content::GetDeviceService().BindWakeLockProvider(
         wake_lock_provider.BindNewPipeAndPassReceiver());
 
     wake_lock_provider->GetWakeLockWithoutContext(

+ 3 - 2
shell/browser/api/atom_api_web_contents.cc

@@ -85,11 +85,11 @@
 #include "shell/common/node_includes.h"
 #include "shell/common/options_switches.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+#include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/blink/public/common/page/page_zoom.h"
 #include "third_party/blink/public/mojom/frame/find_in_page.mojom.h"
 #include "third_party/blink/public/mojom/frame/fullscreen.mojom.h"
 #include "third_party/blink/public/platform/web_cursor_info.h"
-#include "third_party/blink/public/platform/web_input_event.h"
 #include "ui/display/screen.h"
 #include "ui/events/base_event_utils.h"
 
@@ -939,7 +939,8 @@ void WebContents::MediaStoppedPlaying(
   Emit("media-paused");
 }
 
-void WebContents::DidChangeThemeColor(base::Optional<SkColor> theme_color) {
+void WebContents::DidChangeThemeColor() {
+  auto theme_color = web_contents()->GetThemeColor();
   if (theme_color) {
     Emit("did-change-theme-color", electron::ToRGBHex(theme_color.value()));
   } else {

+ 1 - 1
shell/browser/api/atom_api_web_contents.h

@@ -468,7 +468,7 @@ class WebContents : public gin_helper::TrackableObject<WebContents>,
       const MediaPlayerInfo& video_type,
       const content::MediaPlayerId& id,
       content::WebContentsObserver::MediaStoppedReason reason) override;
-  void DidChangeThemeColor(base::Optional<SkColor> theme_color) override;
+  void DidChangeThemeColor() override;
   void OnInterfaceRequestFromFrame(
       content::RenderFrameHost* render_frame_host,
       const std::string& interface_name,

+ 0 - 2
shell/browser/api/atom_api_web_contents_impl.cc

@@ -7,7 +7,6 @@
 #include "content/browser/frame_host/frame_tree.h"           // nogncheck
 #include "content/browser/frame_host/frame_tree_node.h"      // nogncheck
 #include "content/browser/web_contents/web_contents_impl.h"  // nogncheck
-#include "content/public/browser/guest_mode.h"
 
 #if BUILDFLAG(ENABLE_OSR)
 #include "shell/browser/osr/osr_render_widget_host_view.h"
@@ -24,7 +23,6 @@ namespace api {
 
 void WebContents::DetachFromOuterFrame() {
   // See detach_webview_frame.patch on how to detach.
-  DCHECK(content::GuestMode::IsCrossProcessFrameGuest(web_contents()));
   int frame_tree_node_id =
       static_cast<content::WebContentsImpl*>(web_contents())
           ->GetOuterDelegateFrameTreeNodeId();

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

@@ -116,7 +116,7 @@ v8::Local<v8::Value> HttpResponseHeadersToV8(
       base::Value* values = response_headers.FindListKey(key);
       if (!values)
         values = response_headers.SetKey(key, base::ListValue());
-      values->GetList().emplace_back(value);
+      values->Append(value);
     }
   }
   return gin::ConvertToV8(v8::Isolate::GetCurrent(), response_headers);

+ 1 - 0
shell/browser/atom_browser_client.cc

@@ -1080,6 +1080,7 @@ bool AtomBrowserClient::WillCreateURLLoaderFactory(
     mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
         header_client,
     bool* bypass_redirect_checks,
+    bool* disable_secure_dns,
     network::mojom::URLLoaderFactoryOverridePtr* factory_override) {
   v8::Isolate* isolate = v8::Isolate::GetCurrent();
   api::Protocol* protocol =

+ 1 - 0
shell/browser/atom_browser_client.h

@@ -184,6 +184,7 @@ class AtomBrowserClient : public content::ContentBrowserClient,
       mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
           header_client,
       bool* bypass_redirect_checks,
+      bool* disable_secure_dns,
       network::mojom::URLLoaderFactoryOverridePtr* factory_override) override;
   void OverrideURLLoaderFactoryParams(
       content::BrowserContext* browser_context,

+ 1 - 1
shell/browser/atom_browser_context.cc

@@ -322,7 +322,7 @@ AtomBrowserContext::GetURLLoaderFactory() {
           this, nullptr, -1,
           content::ContentBrowserClient::URLLoaderFactoryType::kNavigation,
           url::Origin(), base::nullopt, &factory_receiver, &header_client,
-          nullptr, nullptr);
+          nullptr, nullptr, nullptr);
 
   network::mojom::URLLoaderFactoryParamsPtr params =
       network::mojom::URLLoaderFactoryParams::New();

+ 5 - 13
shell/browser/atom_browser_main_parts.cc

@@ -22,16 +22,14 @@
 #include "chrome/browser/icon_manager.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/child_process_security_policy.h"
-#include "content/public/browser/system_connector.h"
+#include "content/public/browser/device_service.h"
 #include "content/public/browser/web_ui_controller_factory.h"
 #include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/common/result_codes.h"
 #include "electron/buildflags/buildflags.h"
 #include "media/base/localized_strings.h"
-#include "services/device/public/mojom/constants.mojom.h"
 #include "services/network/public/cpp/features.h"
-#include "services/service_manager/public/cpp/connector.h"
 #include "services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h"
 #include "shell/app/atom_main_delegate.h"
 #include "shell/browser/api/atom_api_app.h"
@@ -454,9 +452,6 @@ void AtomBrowserMainParts::PreMainMessageLoopRun() {
   SpellcheckServiceFactory::GetInstance();
 #endif
 
-  // url::Add*Scheme are not threadsafe, this helps prevent data races.
-  url::LockSchemeRegistries();
-
 #if defined(USE_X11)
   ui::TouchFactory::SetTouchDeviceListFromCommandLine();
 #endif
@@ -556,13 +551,10 @@ void AtomBrowserMainParts::PreMainMessageLoopStartCommon() {
 
 device::mojom::GeolocationControl*
 AtomBrowserMainParts::GetGeolocationControl() {
-  if (geolocation_control_)
-    return geolocation_control_.get();
-
-  auto receiver = geolocation_control_.BindNewPipeAndPassReceiver();
-  service_manager::Connector* connector = content::GetSystemConnector();
-  if (connector)
-    connector->Connect(device::mojom::kServiceName, std::move(receiver));
+  if (!geolocation_control_) {
+    content::GetDeviceService().BindGeolocationControl(
+        geolocation_control_.BindNewPipeAndPassReceiver());
+  }
   return geolocation_control_.get();
 }
 

+ 7 - 3
shell/browser/common_web_contents_delegate.cc

@@ -347,6 +347,12 @@ void CommonWebContentsDelegate::EnterFullscreenModeForTab(
   }
   SetHtmlApiFullscreen(true);
   owner_window_->NotifyWindowEnterHtmlFullScreen();
+
+  if (native_fullscreen_) {
+    // Explicitly trigger a view resize, as the size is not actually changing if
+    // the browser is fullscreened, too.
+    source->GetRenderViewHost()->GetWidget()->SynchronizeVisualProperties();
+  }
 }
 
 void CommonWebContentsDelegate::ExitFullscreenModeForTab(
@@ -534,9 +540,7 @@ void CommonWebContentsDelegate::DevToolsIndexPath(
   std::unique_ptr<base::Value> parsed_excluded_folders =
       base::JSONReader::ReadDeprecated(excluded_folders_message);
   if (parsed_excluded_folders && parsed_excluded_folders->is_list()) {
-    const std::vector<base::Value>& folder_paths =
-        parsed_excluded_folders->GetList();
-    for (const base::Value& folder_path : folder_paths) {
+    for (const base::Value& folder_path : parsed_excluded_folders->GetList()) {
       if (folder_path.is_string())
         excluded_folders.push_back(folder_path.GetString());
     }

+ 3 - 2
shell/browser/login_handler.cc

@@ -11,6 +11,7 @@
 
 #include "base/callback.h"
 #include "base/strings/string16.h"
+#include "base/threading/sequenced_task_runner_handle.h"
 #include "gin/arguments.h"
 #include "gin/dictionary.h"
 #include "shell/browser/api/atom_api_web_contents.h"
@@ -36,8 +37,8 @@ LoginHandler::LoginHandler(
       auth_required_callback_(std::move(auth_required_callback)) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  base::PostTask(
-      FROM_HERE, {base::CurrentThread()},
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
       base::BindOnce(&LoginHandler::EmitEvent, weak_factory_.GetWeakPtr(),
                      auth_info, is_main_frame, url, response_headers,
                      first_auth_attempt));

+ 3 - 2
shell/browser/mac/atom_application_delegate.mm

@@ -33,8 +33,9 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
   // not have fatal OOM occur while this method executes, but it is better
   // than crashing when using IME.
   base::allocator::SetCallNewHandlerOnMallocFailure(false);
-  g_swizzle_imk_input_session->GetOriginalImplementation()(self, _cmd, range,
-                                                           attributes, block);
+  g_swizzle_imk_input_session
+      ->InvokeOriginal<void, NSRange, long long, void (^)(void)>(
+          self, _cmd, range, attributes, block);
   base::allocator::SetCallNewHandlerOnMallocFailure(true);
 }
 @end

+ 1 - 5
shell/browser/native_window.cc

@@ -577,11 +577,7 @@ void NativeWindow::NotifyWindowMessage(UINT message,
 }
 #endif
 
-views::Widget* NativeWindow::GetWidget() {
-  return widget();
-}
-
-const views::Widget* NativeWindow::GetWidget() const {
+const views::Widget* NativeWindow::GetWidgetImpl() const {
   return widget();
 }
 

+ 1 - 2
shell/browser/native_window.h

@@ -306,8 +306,7 @@ class NativeWindow : public base::SupportsUserData,
   NativeWindow(const gin_helper::Dictionary& options, NativeWindow* parent);
 
   // views::WidgetDelegate:
-  views::Widget* GetWidget() override;
-  const views::Widget* GetWidget() const override;
+  const views::Widget* GetWidgetImpl() const override;
   base::string16 GetAccessibleWindowTitle() const override;
 
   void set_content_view(views::View* view) { content_view_ = view; }

+ 3 - 3
shell/browser/net/asar/asar_url_loader.cc

@@ -105,9 +105,9 @@ class AsarURLLoader : public network::mojom::URLLoader {
     // Determine whether it is an asar file.
     base::FilePath asar_path, relative_path;
     if (!GetAsarArchivePath(path, &asar_path, &relative_path)) {
-      content::CreateFileURLLoader(request, std::move(loader),
-                                   std::move(client), nullptr, false,
-                                   extra_response_headers);
+      content::CreateFileURLLoaderBypassingSecurityChecks(
+          request, std::move(loader), std::move(client), nullptr, false,
+          extra_response_headers);
       MaybeDeleteSelf();
       return;
     }

+ 3 - 2
shell/browser/net/proxying_url_loader_factory.cc

@@ -503,7 +503,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToResponseStarted(
     redirect_info.status_code = override_headers_->response_code();
     redirect_info.new_method = request_.method;
     redirect_info.new_url = new_url;
-    redirect_info.new_site_for_cookies = new_url;
+    redirect_info.new_site_for_cookies = net::SiteForCookies::FromUrl(new_url);
 
     // These will get re-bound if a new request is initiated by
     // |FollowRedirect()|.
@@ -575,7 +575,8 @@ void ProxyingURLLoaderFactory::InProgressRequest::
   redirect_info.status_code = kInternalRedirectStatusCode;
   redirect_info.new_method = request_.method;
   redirect_info.new_url = redirect_url_;
-  redirect_info.new_site_for_cookies = redirect_url_;
+  redirect_info.new_site_for_cookies =
+      net::SiteForCookies::FromUrl(redirect_url_);
 
   auto head = network::mojom::URLResponseHead::New();
   std::string headers = base::StringPrintf(

+ 1 - 1
shell/browser/osr/osr_render_widget_host_view.cc

@@ -32,7 +32,7 @@
 #include "content/public/browser/gpu_data_manager.h"
 #include "content/public/browser/render_process_host.h"
 #include "media/base/video_frame.h"
-#include "third_party/blink/public/platform/web_input_event.h"
+#include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/layer.h"

+ 8 - 4
shell/browser/printing/print_preview_message_handler.cc

@@ -18,12 +18,13 @@
 #include "components/printing/browser/print_composite_client.h"
 #include "components/printing/browser/print_manager_utils.h"
 #include "components/printing/common/print_messages.h"
-#include "components/services/pdf_compositor/public/cpp/pdf_service_mojo_types.h"
+#include "components/services/print_compositor/public/cpp/print_service_mojo_types.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "shell/common/gin_helper/locker.h"
+#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 
 #include "shell/common/node_includes.h"
 
@@ -111,11 +112,11 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
 
 void PrintPreviewMessageHandler::OnCompositePdfDocumentDone(
     const PrintHostMsg_PreviewIds& ids,
-    printing::mojom::PdfCompositor::Status status,
+    printing::mojom::PrintCompositor::Status status,
     base::ReadOnlySharedMemoryRegion region) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  if (status != printing::mojom::PdfCompositor::Status::kSuccess) {
+  if (status != printing::mojom::PrintCompositor::Status::kSuccess) {
     DLOG(ERROR) << "Compositing pdf failed with error " << status;
     RejectPromise(ids.request_id);
     return;
@@ -153,7 +154,10 @@ void PrintPreviewMessageHandler::PrintToPDF(
   auto* rfh = focused_frame && focused_frame->HasSelection()
                   ? focused_frame
                   : web_contents()->GetMainFrame();
-  rfh->Send(new PrintMsg_PrintPreview(rfh->GetRoutingID(), options));
+
+  if (!print_render_frame_.is_bound())
+    rfh->GetRemoteAssociatedInterfaces()->GetInterface(&print_render_frame_);
+  print_render_frame_->PrintPreview(options.Clone());
 }
 
 gin_helper::Promise<v8::Local<v8::Value>>

+ 9 - 4
shell/browser/printing/print_preview_message_handler.h

@@ -9,9 +9,11 @@
 
 #include "base/memory/ref_counted_memory.h"
 #include "base/memory/weak_ptr.h"
-#include "components/services/pdf_compositor/public/mojom/pdf_compositor.mojom.h"
+#include "components/printing/common/print.mojom.h"
+#include "components/services/print_compositor/public/mojom/print_compositor.mojom.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
+#include "mojo/public/cpp/bindings/associated_remote.h"
 #include "shell/common/gin_helper/promise.h"
 #include "v8/include/v8.h"
 
@@ -48,9 +50,10 @@ class PrintPreviewMessageHandler
       content::RenderFrameHost* render_frame_host,
       const PrintHostMsg_DidPreviewDocument_Params& params,
       const PrintHostMsg_PreviewIds& ids);
-  void OnCompositePdfDocumentDone(const PrintHostMsg_PreviewIds& ids,
-                                  printing::mojom::PdfCompositor::Status status,
-                                  base::ReadOnlySharedMemoryRegion region);
+  void OnCompositePdfDocumentDone(
+      const PrintHostMsg_PreviewIds& ids,
+      printing::mojom::PrintCompositor::Status status,
+      base::ReadOnlySharedMemoryRegion region);
   void OnPrintPreviewFailed(int document_cookie,
                             const PrintHostMsg_PreviewIds& ids);
   void OnPrintPreviewCancelled(int document_cookie,
@@ -65,6 +68,8 @@ class PrintPreviewMessageHandler
   using PromiseMap = std::map<int, gin_helper::Promise<v8::Local<v8::Value>>>;
   PromiseMap promise_map_;
 
+  mojo::AssociatedRemote<printing::mojom::PrintRenderFrame> print_render_frame_;
+
   base::WeakPtrFactory<PrintPreviewMessageHandler> weak_ptr_factory_;
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();

+ 1 - 1
shell/browser/ui/devtools_manager_delegate.cc

@@ -102,7 +102,7 @@ void DevToolsManagerDelegate::HandleCommand(
     content::DevToolsAgentHost* agent_host,
     content::DevToolsAgentHostClient* client,
     const std::string& method,
-    const std::string& message,
+    base::span<const uint8_t> message,
     NotHandledCallback callback) {
   std::move(callback).Run(message);
 }

+ 1 - 1
shell/browser/ui/devtools_manager_delegate.h

@@ -26,7 +26,7 @@ class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
   void HandleCommand(content::DevToolsAgentHost* agent_host,
                      content::DevToolsAgentHostClient* client,
                      const std::string& method,
-                     const std::string& message,
+                     base::span<const uint8_t> message,
                      NotHandledCallback callback) override;
   scoped_refptr<content::DevToolsAgentHost> CreateNewTarget(
       const GURL& url) override;

Some files were not shown because too many files changed in this diff