From 7e59d784a0b5c922564cbc8c55f95f0e7daf6997 Mon Sep 17 00:00:00 2001 From: "electron-roller[bot]" <84116207+electron-roller[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 21:39:03 -0400 Subject: [PATCH] chore: bump chromium to 102.0.4961.0 (main) (#33091) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: bump chromium in DEPS to 101.0.4911.0 * chore: bump chromium in DEPS to 101.0.4913.0 * chore: bump chromium in DEPS to 101.0.4915.0 * chore: bump chromium in DEPS to 101.0.4917.0 * chore: bump chromium in DEPS to 101.0.4919.0 * chore: bump chromium in DEPS to 101.0.4921.0 * chore: bump chromium in DEPS to 101.0.4923.0 * chore: bump chromium in DEPS to 101.0.4925.0 * chore: bump chromium in DEPS to 101.0.4927.0 * chore: bump chromium in DEPS to 101.0.4929.0 * chore: update patches * chore: bump chromium in DEPS to 101.0.4931.0 * chore: update patches * 3475388: Remove mojo::InterfacePtr and mojo::InterfacePtrInfo Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3475388 Actual fixes in 1824792: Migrate DisplayClient to the new Mojo types | https://chromium-review.googlesource.com/c/chromium/src/+/1824792 * 3503874: Remove base::size(), base::empty(), and base::data(). Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3503874 * chore: reconcile patches with main rebase * chore: bump chromium in DEPS to 101.0.4933.0 * chore: update patches * 3329593: [Fenced Frame] Ensure to support external protocols in a fenced frame Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3329593 * 3503874: Remove base::size(), base::empty(), and base::data(). Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3503874 * 3446451: Use forward decl of ImageSkiaRep in //ui/gfx/image/image_skia.h Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3446451 * 3499818: partition_alloc: Rename AllocFlags to AllocWithFlags Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3499818 * chore: bump chromium in DEPS to 101.0.4935.0 * chore: update patches * 3463286: partition_alloc: Move PartitionAlloc into the own namespaces (15 of N) Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3463286 * 3506590: Reland "Support ChromeOS external protocol dialog for Fenced Frame navigations" Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3506590 * 3475388: Remove mojo::InterfacePtr and mojo::InterfacePtrInfo Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3475388 Actual fixes in 1880987: Convert URLLoaderReqeust from //content to new Mojo types | https://chromium-review.googlesource.com/c/chromium/src/+/1880987 The change in the roll started causing the legacy types to fail * chore: missing SkRegion include * 3499600: Introduce blink::WebCssOrigin Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3499600 * fixup!: 3503874: Remove base::size(), base::empty(), and base::data(). Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3503874 * chore: bump chromium in DEPS to 101.0.4937.0 * chore: update patches * 3500826: [locales] Refactor locales for ios Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3500826 * 3509531: Make some public Blink media files private Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3509531 * 3497377: bluetooth: Add BluetoothDevice.forget() Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3497377 * chore: bump chromium in DEPS to 101.0.4939.0 * chore: bump chromium in DEPS to 101.0.4941.0 * 3514804: Deprecate all existing uses of mojo_base.mojom.{Dictionary,List}Value. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3514804 * 3502592: Delete PPAPI init/shutdown code in //pdf. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3502592 * chore: update patches * fixup! 3502592: Delete PPAPI init/shutdown code in //pdf. * chore: bump chromium in DEPS to 101.0.4943.0 * chore: fix lint, remove unneeded headers * fixup! 3475388: Remove mojo::InterfacePtr and mojo::InterfacePtrInfo * update mojo calls in offscreen patch * update hunspell filenames * chore: bump chromium in DEPS to 101.0.4945.0 * chore: update patches * fix offscreen patch again * chore: bump chromium in DEPS to 101.0.4947.0 * chore: update patches * chore: bump chromium in DEPS to 101.0.4949.0 * support unseasoned pdf * update patches * chore: update patches * chore: [IWYU] include missing skia headers * chore: bump chromium in DEPS to 101.0.4951.0 * chore: update patches * 3457645: media: Remove IsKeySystemsUpdateNeeded() https://chromium-review.googlesource.com/c/chromium/src/+/3457645 * chore: bump chromium in DEPS to 102.0.4952.2 * chore: update patches * 3488672: Add documentId as a parameter in tabs.connect() and tabs.sendMessage(). Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3488672 * 3508375: Fix an issue dangerous dialog is not shown for some apk download Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3508375 * chore: bump chromium in DEPS to 102.0.4953.0 * chore: update patches * 3510189: Harden up drag and drop support across same-process boundaries. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3510189 * 3526815: Remove hardcoded colors from chrome/browser/ui/views/overlay/. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3526815 * chore: bump chromium in DEPS to 102.0.4955.0 * build: add af and ur locale to manifests 3498914 [locales] Add af and ur to desktop Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3498914 * fixup! build: add af and ur locale to manifests * chore: bump chromium in DEPS to 102.0.4957.0 * 3529090: gin: set JS flags before v8 initialization Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3529090 chore: fix code shear in chromium/gin_enable_disable_v8_platform.patch * chore: update patches * 3536433: [network] Rename data_path and http_cache_path from _path to _directory. Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3536433 * 3111565: Relocated Page.printToPDF implementation to //components Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3111565 refactor: inject E args to PrintRequestedPages() and ScriptedPrintCallback TODO: currently passes a placeholder for job_settings. We have other code paths that inject settings from electron_api_web_contents.cc. Should those be injected here as well? (CC @codebytere) * fixup! 3111565: Relocated Page.printToPDF implementation to //components * fixup! 3111565: Relocated Page.printToPDF implementation to //components * 3520025: Make "libcxx_abi_unstable" not a gn arg Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3520025 build: since it is no longer a gn arg, patch it in * chore: change usages of std::vector with const elements (#33373) * chore: bump chromium in DEPS to 102.0.4959.0 * chore: update patches * build: iwyu base/threading/platform_thread.h * 3525774: Add GPSForCurrentDocument() into PermissionControllerDelegate. Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3525774 refactor: copy upstream impl of GetPermissionStatusForCurrentDocument into +ElectronPermissionManager * use gclient_gn_args_from instead of hand-copying * checkout mac on mac * chore: update patches * Revert "checkout mac on mac" This reverts commit fe9ccf49ec6139868ccf2272c2016cefa3f32769. * fixup! 3525774: Add GPSForCurrentDocument() into PermissionControllerDelegate. * fixup! 3457645: media: Remove IsKeySystemsUpdateNeeded() add nogncheck * fix: set .eslintrc.json to root to avoid cascade to chromium eslintrc * Xref: https://github.com/llvm/llvm-project/commit/6dfdf79b8c482c892a76406799d285baf5d71198 Xref: https://reviews.llvm.org/D101458 Upstream added a CMakeLists.txt in an include dir ¯\_(ツ)_/¯ and so it must be enumerated in filenames.libcxxabi.gni * 3511268: Remove unused headers from cxx17_backports.h https://chromium-review.googlesource.com/c/chromium/src/+/3511268 use std::size instead of base::size * iwyu: SkPaint 3488428: [includes] Fix transitive includes of SkImageEncoder * chore: [IWYU] include missing skia headers * fixup! 3511268: Remove unused headers from cxx17_backports.h * chore: bump chromium in DEPS to 102.0.4961.0 * chore: update patches * fixup! 3475388: Remove mojo::InterfacePtr and mojo::InterfacePtrInfo chore: remove unused #include * fixup! 3510189: Harden up drag and drop support across same-process boundaries. | https://chromium-review.googlesource.com/c/chromium/src/+/3510189 Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond Co-authored-by: VerteDinde Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: Jeremy Rose Co-authored-by: VerteDinde Co-authored-by: Charles Kerr Co-authored-by: David Sanders Co-authored-by: Jeremy Rose --- .eslintrc.json | 1 + BUILD.gn | 12 +- DEPS | 17 +- build/args/all.gn | 3 - chromium_src/BUILD.gn | 8 +- electron_paks.gni | 2 +- filenames.hunspell.gni | 16 +- filenames.libcxxabi.gni | 1 + patches/chromium/.patches | 2 +- .../add_didinstallconditionalfeatures.patch | 32 ++-- ..._scheduler_throttling_per_renderview.patch | 30 +-- ..._windows_to_have_different_web_prefs.patch | 20 +- patches/chromium/blink_local_frame.patch | 8 +- .../build_add_electron_tracing_category.patch | 4 +- ...build_disable_partition_alloc_on_mac.patch | 2 +- ..._depend_on_packed_resource_integrity.patch | 16 +- patches/chromium/build_gn.patch | 4 +- .../build_libc_as_static_library.patch | 4 +- ...bcxx_abi_unstable_false_for_electron.patch | 23 +++ patches/chromium/can_create_window.patch | 34 ++-- ...dows_in_cryptotoken_webrequestsender.patch | 6 +- ..._v8_initialization_isolate_callbacks.patch | 2 +- ...screationoverridden_with_full_params.patch | 34 ++-- ...esources_not_chrome_for_spellchecker.patch | 4 +- patches/chromium/chrome_key_systems.patch | 4 +- patches/chromium/command-ismediakey.patch | 18 +- .../crash_allow_setting_more_options.patch | 12 +- patches/chromium/crashpad_pid_check.patch | 2 +- patches/chromium/dcheck.patch | 4 +- patches/chromium/desktop_media_list.patch | 16 +- patches/chromium/disable-redraw-lock.patch | 2 +- .../disable_color_correct_rendering.patch | 62 +++--- .../disable_compositor_recycling.patch | 4 +- patches/chromium/disable_hidden.patch | 16 +- patches/chromium/disable_unload_metrics.patch | 6 +- ...ythreadcreated_if_pcscan_is_disabled.patch | 8 +- ...ll_getwebframe_-_view_when_get_blink.patch | 4 +- .../chromium/enable_reset_aspect_ratio.patch | 2 +- ...locator_for_usage_outside_of_the_gin.patch | 4 +- ...xpose_setuseragent_on_networkcontext.patch | 12 +- .../extend_apply_webpreferences.patch | 6 +- ...ransfer_to_requestsingleinstancelock.patch | 48 ++--- .../feat_add_onclose_to_messageport.patch | 4 +- ...dd_set_theme_source_to_allow_apps_to.patch | 14 +- ..._registry_to_multibuffer_data_source.patch | 30 +-- ...g_the_base_spellchecker_download_url.patch | 8 +- ...screen_rendering_with_viz_compositor.patch | 34 ++-- ..._raw_response_headers_from_urlloader.patch | 12 +- .../fix_aspect_ratio_with_max_size.patch | 4 +- ...x_crash_when_saving_edited_pdf_files.patch | 24 +-- ...ntcapturercount_in_web_contents_impl.patch | 6 +- ...media_key_usage_with_globalshortcuts.patch | 6 +- ...king_and_message_bubbling_on_windows.patch | 4 +- ...rmissions_checks_in_exclusive_access.patch | 8 +- ...out_profile_refs_in_accessibility_ui.patch | 17 +- ..._properly_honor_printing_page_ranges.patch | 8 +- ...fix_use_electron_generated_resources.patch | 4 +- patches/chromium/frame_host_manager.patch | 8 +- .../gin_enable_disable_v8_platform.patch | 7 +- .../chromium/gritsettings_resource_ids.patch | 4 +- patches/chromium/gtk_visibility.patch | 2 +- ...sync_with_host_os_mac_on_linux_in_ci.patch | 2 +- .../load_v8_snapshot_in_browser_process.patch | 4 +- ...reate_a_console_if_logging_to_stderr.patch | 4 +- patches/chromium/mas-cfisobjc.patch | 8 +- .../mas-cgdisplayusesforcetogray.patch | 4 +- .../mas_disable_remote_accessibility.patch | 36 ++-- patches/chromium/mas_no_private_api.patch | 6 +- ...emote_certificate_verification_logic.patch | 22 +-- .../chromium/notification_provenance.patch | 10 +- patches/chromium/pepper_plugin_support.patch | 53 ++---- patches/chromium/picture-in-picture.patch | 83 +++++---- ...utofill_colors_to_the_color_pipeline.patch | 40 ++-- patches/chromium/printing.patch | 176 +++++++++++++----- patches/chromium/process_singleton.patch | 34 ++-- ...r_changes_to_the_webcontentsobserver.patch | 12 +- ...e_incorrect_width_height_adjustments.patch | 39 ---- .../render_widget_host_view_base.patch | 4 +- .../render_widget_host_view_mac.patch | 8 +- patches/chromium/resource_file_conflict.patch | 6 +- patches/chromium/scroll_bounce_flag.patch | 4 +- .../support_mixed_sandbox_with_zygote.patch | 4 +- patches/chromium/web_contents.patch | 8 +- patches/chromium/webview_cross_drag.patch | 18 +- patches/chromium/webview_fullscreen.patch | 4 +- .../worker_context_will_destroy.patch | 18 +- ...feat_add_hook_to_notify_script_ready.patch | 14 +- ...bals_to_allow_patching_devtools_dock.patch | 2 +- patches/v8/build_gn.patch | 8 +- patches/v8/dcheck.patch | 8 +- ...export_private_v8_symbols_on_windows.patch | 6 +- ...ort_symbols_needed_for_windows_build.patch | 4 +- patches/v8/expose_mksnapshot.patch | 4 +- ...ed_attirbute_for_older_msvc_versions.patch | 6 +- ...workaround_an_undefined_symbol_error.patch | 2 +- .../zip_manifests/dist_zip.linux.arm.manifest | 2 + .../dist_zip.linux.arm64.manifest | 2 + .../zip_manifests/dist_zip.linux.x64.manifest | 2 + .../zip_manifests/dist_zip.linux.x86.manifest | 2 + .../zip_manifests/dist_zip.mac.arm64.manifest | 6 + .../zip_manifests/dist_zip.mac.x64.manifest | 6 + .../dist_zip.mac_mas.arm64.manifest | 6 + .../dist_zip.mac_mas.x64.manifest | 6 + .../zip_manifests/dist_zip.win.arm64.manifest | 2 + .../zip_manifests/dist_zip.win.ia32.manifest | 2 + .../zip_manifests/dist_zip.win.x64.manifest | 2 + shell/app/electron_content_client.cc | 16 +- shell/app/electron_main_delegate.cc | 2 +- .../bluetooth/electron_bluetooth_delegate.cc | 6 + .../bluetooth/electron_bluetooth_delegate.h | 3 + shell/browser/browser_win.cc | 4 +- shell/browser/electron_browser_client.cc | 46 ++++- shell/browser/electron_browser_client.h | 10 +- .../electron_browser_main_parts_posix.cc | 1 + .../electron_download_manager_delegate.cc | 17 +- shell/browser/electron_permission_manager.cc | 10 + shell/browser/electron_permission_manager.h | 3 + .../electron_extension_message_filter.cc | 2 +- .../extensions/electron_messaging_delegate.cc | 39 +++- .../extensions/electron_messaging_delegate.h | 3 +- shell/browser/font_defaults.cc | 2 +- shell/browser/javascript_environment.cc | 6 +- shell/browser/native_window_views.h | 1 + shell/browser/net/asar/asar_url_loader.cc | 4 +- shell/browser/net/asar/asar_url_loader.h | 2 +- shell/browser/net/network_context_service.cc | 4 +- .../net/proxying_url_loader_factory.cc | 7 +- .../browser/net/proxying_url_loader_factory.h | 5 +- .../electron_desktop_window_tree_host_linux.h | 1 + shell/browser/ui/file_dialog_win.cc | 2 +- shell/browser/ui/gtk/app_indicator_icon.h | 1 + shell/browser/ui/inspectable_web_contents.cc | 2 +- shell/browser/ui/win/jump_list.cc | 8 +- shell/common/api/electron_api_native_image.h | 1 + .../api/electron_api_native_image_mac.mm | 2 +- shell/common/gin_helper/callback.cc | 2 +- shell/common/platform_util_win.cc | 2 +- shell/common/skia_util.cc | 1 + shell/common/v8_value_serializer.h | 1 + shell/renderer/api/electron_api_web_frame.cc | 11 +- shell/renderer/renderer_client_base.cc | 90 ++++++--- shell/renderer/renderer_client_base.h | 17 +- 142 files changed, 998 insertions(+), 754 deletions(-) create mode 100644 patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch delete mode 100644 patches/chromium/remove_incorrect_width_height_adjustments.patch diff --git a/.eslintrc.json b/.eslintrc.json index 55d0f1712134..7669da186367 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,4 +1,5 @@ { + "root": true, "extends": "standard", "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], diff --git a/BUILD.gn b/BUILD.gn index 60af73d56c7b..013b61c740ea 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -363,6 +363,10 @@ source_set("electron_lib") { "//components/network_session_configurator/common", "//components/omnibox/browser:buildflags", "//components/os_crypt", + "//components/pdf/browser", + "//components/pdf/browser:interceptors", + "//components/pdf/common", + "//components/pdf/renderer", "//components/pref_registry", "//components/prefs", "//components/security_state/content", @@ -698,7 +702,7 @@ source_set("electron_lib") { "//chrome/browser/resources/pdf:resources", "//components/pdf/browser", "//components/pdf/renderer", - "//pdf:pdf_ppapi", + "//pdf", ] sources += [ "shell/browser/electron_pdf_web_contents_helper_client.cc", @@ -1006,14 +1010,14 @@ if (is_mac) { action("electron_app_lproj_dirs") { outputs = [] - foreach(locale, locales_as_mac_outputs) { + foreach(locale, locales_as_apple_outputs) { outputs += [ "$target_gen_dir/app_infoplist_strings/$locale.lproj" ] } script = "build/mac/make_locale_dirs.py" args = rebase_path(outputs) } - foreach(locale, locales_as_mac_outputs) { + foreach(locale, locales_as_apple_outputs) { bundle_data("electron_app_strings_${locale}_bundle_data") { sources = [ "$target_gen_dir/app_infoplist_strings/$locale.lproj" ] outputs = [ "{{bundle_resources_dir}}/$locale.lproj" ] @@ -1022,7 +1026,7 @@ if (is_mac) { } group("electron_app_strings_bundle_data") { public_deps = [] - foreach(locale, locales_as_mac_outputs) { + foreach(locale, locales_as_apple_outputs) { public_deps += [ ":electron_app_strings_${locale}_bundle_data" ] } } diff --git a/DEPS b/DEPS index c8b39d0e1ec0..4aa74e7395ad 100644 --- a/DEPS +++ b/DEPS @@ -1,21 +1,8 @@ -gclient_gn_args_file = 'src/build/config/gclient_args.gni' -gclient_gn_args = [ - 'build_with_chromium', - 'checkout_android', - 'checkout_android_native_support', - 'checkout_libaom', - 'checkout_nacl', - 'checkout_pgo_profiles', - 'checkout_oculus_sdk', - 'checkout_openxr', - 'checkout_google_benchmark', - 'mac_xcode_version', - 'generate_location_tags', -] +gclient_gn_args_from = 'src' vars = { 'chromium_version': - '100.0.4894.0', + '102.0.4961.0', 'node_version': 'v16.14.2', 'nan_version': diff --git a/build/args/all.gn b/build/args/all.gn index a346a9b3d493..91c53266a80d 100644 --- a/build/args/all.gn +++ b/build/args/all.gn @@ -25,9 +25,6 @@ enable_basic_printing = true angle_enable_vulkan_validation_layers = false dawn_enable_vulkan_validation_layers = false -# This breaks native node modules -libcxx_abi_unstable = false - # These are disabled because they cause the zip manifest to differ between # testing and release builds. # See https://chromium-review.googlesource.com/c/chromium/src/+/2774898. diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 4c048a63aef2..7db91d633a5d 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -298,12 +298,14 @@ static_library("chrome") { if (enable_pdf_viewer) { sources += [ + "//chrome/browser/pdf/chrome_pdf_stream_delegate.cc", + "//chrome/browser/pdf/chrome_pdf_stream_delegate.h", "//chrome/browser/pdf/pdf_extension_util.cc", "//chrome/browser/pdf/pdf_extension_util.h", "//chrome/browser/pdf/pdf_frame_util.cc", "//chrome/browser/pdf/pdf_frame_util.h", - "//chrome/renderer/pepper/chrome_pdf_print_client.cc", - "//chrome/renderer/pepper/chrome_pdf_print_client.h", + "//chrome/browser/plugins/pdf_iframe_navigation_throttle.cc", + "//chrome/browser/plugins/pdf_iframe_navigation_throttle.h", ] } } @@ -346,8 +348,6 @@ source_set("plugins") { sources += [ "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc", "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h", - "//chrome/renderer/pepper/pepper_flash_font_file_host.cc", - "//chrome/renderer/pepper/pepper_flash_font_file_host.h", "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc", "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h", ] diff --git a/electron_paks.gni b/electron_paks.gni index 84cec359e201..0140e358710f 100644 --- a/electron_paks.gni +++ b/electron_paks.gni @@ -197,7 +197,7 @@ template("electron_paks") { output_dir = "${invoker.output_dir}/locales" if (is_mac) { - output_locales = locales_as_mac_outputs + output_locales = locales_as_apple_outputs } else { output_locales = platform_pak_locales } diff --git a/filenames.hunspell.gni b/filenames.hunspell.gni index 0c91ae1db77c..64574354e424 100644 --- a/filenames.hunspell.gni +++ b/filenames.hunspell.gni @@ -7,11 +7,16 @@ 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-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-GB-oxendict-9-0.bdic", - "//third_party/hunspell_dictionaries/en-US-9-0.bdic", + "//third_party/hunspell_dictionaries/en-AU-10-0.bdic", + "//third_party/hunspell_dictionaries/en-AU-10-1.bdic", + "//third_party/hunspell_dictionaries/en-CA-10-0.bdic", + "//third_party/hunspell_dictionaries/en-CA-10-1.bdic", + "//third_party/hunspell_dictionaries/en-GB-10-0.bdic", + "//third_party/hunspell_dictionaries/en-GB-10-1.bdic", + "//third_party/hunspell_dictionaries/en-GB-oxendict-10-0.bdic", + "//third_party/hunspell_dictionaries/en-GB-oxendict-10-1.bdic", + "//third_party/hunspell_dictionaries/en-US-10-0.bdic", + "//third_party/hunspell_dictionaries/en-US-10-1.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-9-0.bdic", @@ -46,6 +51,7 @@ hunspell_dictionaries = [ "//third_party/hunspell_dictionaries/tg-TG-5-0.bdic", "//third_party/hunspell_dictionaries/tr-TR-4-0.bdic", "//third_party/hunspell_dictionaries/uk-UA-4-0.bdic", + "//third_party/hunspell_dictionaries/uk-UA-5-0.bdic", "//third_party/hunspell_dictionaries/vi-VN-3-0.bdic", "//third_party/hunspell_dictionaries/xx-XX-3-0.bdic", ] diff --git a/filenames.libcxxabi.gni b/filenames.libcxxabi.gni index 813f95070a2f..69bb490ccd89 100644 --- a/filenames.libcxxabi.gni +++ b/filenames.libcxxabi.gni @@ -1,4 +1,5 @@ libcxxabi_headers = [ + "//buildtools/third_party/libc++abi/trunk/include/CMakeLists.txt", "//buildtools/third_party/libc++abi/trunk/include/__cxxabi_config.h", "//buildtools/third_party/libc++abi/trunk/include/cxxabi.h", ] diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 7dcf136c3492..2b208694ba35 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -113,4 +113,4 @@ fix_crash_when_saving_edited_pdf_files.patch port_autofill_colors_to_the_color_pipeline.patch build_disable_partition_alloc_on_mac.patch fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch -remove_incorrect_width_height_adjustments.patch +build_make_libcxx_abi_unstable_false_for_electron.patch diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index b76baf2e4e6b..18a816de672d 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -10,10 +10,10 @@ DidCreateScriptContext is called, not all JS APIs are available in the context, which can cause some preload scripts to trip. diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h -index a92e09dc651a5f1a9bbae2572fad32233afcd46c..f99b652dda817b62615d2b3f00b4ae4b438ec44d 100644 +index 19c936be477f944d62e85cec81359a71bbcfa45d..b02bb1cd67488f996b6142058c52c34dfe523fff 100644 --- a/content/public/renderer/render_frame_observer.h +++ b/content/public/renderer/render_frame_observer.h -@@ -129,6 +129,8 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener, +@@ -132,6 +132,8 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener, virtual void DidHandleOnloadEvents() {} virtual void DidCreateScriptContext(v8::Local context, int32_t world_id) {} @@ -23,10 +23,10 @@ index a92e09dc651a5f1a9bbae2572fad32233afcd46c..f99b652dda817b62615d2b3f00b4ae4b int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 4473c5e812a4a598f3e2f2bb06f78def5791af24..44c0ec9815aafd61182fd18a9d125e185d7196bc 100644 +index c9296960c76e34646bf7cb3195b80c0cbc483b58..bc8bdba3facba81c572d43b85881ec02ad7d2f00 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4455,6 +4455,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4423,6 +4423,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,11 +40,11 @@ index 4473c5e812a4a598f3e2f2bb06f78def5791af24..44c0ec9815aafd61182fd18a9d125e18 int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index 21b90bbb8fe8ddc03eb20538be423a5396d18eb3..f9c735038f733d990783dd66ffe8c74f824c78f2 100644 +index 7be2fd1e02917537805a271f16f5f248f1c4fc45..ce0fc928448b597fb6401b77730700407ce406da 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -597,6 +597,8 @@ class CONTENT_EXPORT RenderFrameImpl - blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override; +@@ -595,6 +595,8 @@ class CONTENT_EXPORT RenderFrameImpl + uint32_t ng_call_count) override; void DidCreateScriptContext(v8::Local context, int world_id) override; + void DidInstallConditionalFeatures(v8::Local context, @@ -53,10 +53,10 @@ index 21b90bbb8fe8ddc03eb20538be423a5396d18eb3..f9c735038f733d990783dd66ffe8c74f int world_id) override; void DidChangeScrollOffset() override; diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h -index 3d6e0c0395ff7c92d8908c5151b467beec3a7516..2fadd6d9b2e3747eacea08973d8d3c7aa9c15f26 100644 +index 5adee94f81c0e98db976ac1c6c55fb5eab8c2e65..9d3e43f4394ad9a4377b47a001c4baf4027cbe7c 100644 --- a/third_party/blink/public/web/web_local_frame_client.h +++ b/third_party/blink/public/web/web_local_frame_client.h -@@ -599,6 +599,9 @@ class BLINK_EXPORT WebLocalFrameClient { +@@ -584,6 +584,9 @@ class BLINK_EXPORT WebLocalFrameClient { virtual void DidCreateScriptContext(v8::Local, int32_t world_id) {} @@ -79,10 +79,10 @@ index aa4b510137d60e6fb924f4f1a6554fe06c19ad75..816b6260020a6cbb6880b0eed197743c if (World().IsMainWorld()) { GetFrame()->Loader().DispatchDidClearWindowObjectInMainWorld(); diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h -index 0dda1f7cd77c47f7e61ba48dd20429c13679b543..2f73aacda1bafe07775213e232eda56c4b33325b 100644 +index bca4cbb2b2ba84fe58b5cfeaf190add5803e27c9..b6c9dd3a2a1c9b6667c563d5da86ccb4871ae81f 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client.h +++ b/third_party/blink/renderer/core/frame/local_frame_client.h -@@ -308,6 +308,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient { +@@ -301,6 +301,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient { virtual void DidCreateScriptContext(v8::Local, int32_t world_id) = 0; @@ -92,10 +92,10 @@ index 0dda1f7cd77c47f7e61ba48dd20429c13679b543..2f73aacda1bafe07775213e232eda56c int32_t world_id) = 0; virtual bool AllowScriptExtensions() = 0; diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc -index 5297ad63f1c76240d57a64cc5ea64cbf8c7e1b95..006da6072db12da1632f9d45ecb5710136573641 100644 +index e06c96c068139e829af7bd99ebb111507b2bddb0..a98bc22fc5c96ad1fd2071ea1c9e1aab2fb4d5ff 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc -@@ -274,6 +274,13 @@ void LocalFrameClientImpl::DidCreateScriptContext( +@@ -275,6 +275,13 @@ void LocalFrameClientImpl::DidCreateScriptContext( web_frame_->Client()->DidCreateScriptContext(context, world_id); } @@ -110,10 +110,10 @@ index 5297ad63f1c76240d57a64cc5ea64cbf8c7e1b95..006da6072db12da1632f9d45ecb57101 v8::Local context, int32_t world_id) { diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h -index 708414fca139eb8328e425d909a48ca97038e442..48b2a0e129ec166ebd4c9bbd32330b0cc43dbeb2 100644 +index 6658e44e65f8236927f283e3f65f007ae97ac81f..f384dcc4efd6c56c3e3e212c7e597f13bc9dae57 100644 --- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h +++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h -@@ -78,6 +78,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient { +@@ -79,6 +79,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient { void DidCreateScriptContext(v8::Local, int32_t world_id) override; @@ -123,7 +123,7 @@ index 708414fca139eb8328e425d909a48ca97038e442..48b2a0e129ec166ebd4c9bbd32330b0c int32_t world_id) override; diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h -index 4b639069d5d9173f0c35fe7656356031ba424a61..3da6699b40bf4f91e6d76a37e5fa8f680f7a7850 100644 +index 8087d1f62e9b1a8ac33a9e92c10a7cb8b8363e08..845c3329674d99dd385316dbfd1287fa3566a60e 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h @@ -357,6 +357,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { diff --git a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch index 9a54c4fbe998..04504a209f10 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -6,10 +6,10 @@ Subject: allow disabling blink scheduler throttling per RenderView This allows us to disable throttling for hidden windows. diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc -index 56c08919ab626a8a7b3bcb892ee94cdee2a106fc..b85bdf4ed574a149a6502e8d21e54f2ee80777a5 100644 +index 84044606fb0644b2b6053c72a9750bae3729f666..995c5dfc49a392669f73d85a92fbdb54cf0e11ca 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc -@@ -647,6 +647,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { +@@ -649,6 +649,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) { GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque); } @@ -22,24 +22,24 @@ index 56c08919ab626a8a7b3bcb892ee94cdee2a106fc..b85bdf4ed574a149a6502e8d21e54f2e 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 9e32df9f5fd765895c8470c3922a62f754e7d409..9bac2321d65d9e54ce88fffafd72a74803ed2c87 100644 +index a099eed10dd061994bff696519099c3ef7437a46..a1f1e9b55272e70b4acd5d1f1515fba7d91538fa 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h -@@ -135,6 +135,7 @@ class CONTENT_EXPORT RenderViewHostImpl - bool IsRenderViewLive() override; - void WriteIntoTrace(perfetto::TracedValue context) override; +@@ -137,6 +137,7 @@ class CONTENT_EXPORT RenderViewHostImpl + bool IsRenderViewLive() const override; + void WriteIntoTrace(perfetto::TracedProto context) const override; + void SetSchedulerThrottling(bool allowed) override; void SendWebPreferencesToRenderer(); void SendRendererPreferencesToRenderer( const blink::RendererPreferences& preferences); diff --git a/content/public/browser/render_view_host.h b/content/public/browser/render_view_host.h -index 787077d71c04d571aa825bec0a549c5fad2b8574..4b05b80802ba97a46eed60e509b503fc8375016b 100644 +index a6fe708878eb9afba9a68e0be71ba2c0b2a84d7d..5cc81ceb44d0a8baee3ebcc63aa4137b1e9ef08e 100644 --- a/content/public/browser/render_view_host.h +++ b/content/public/browser/render_view_host.h -@@ -74,6 +74,9 @@ class CONTENT_EXPORT RenderViewHost { - // Write a representation of this object into a trace. - virtual void WriteIntoTrace(perfetto::TracedValue context) = 0; +@@ -80,6 +80,9 @@ class CONTENT_EXPORT RenderViewHost { + virtual void WriteIntoTrace( + perfetto::TracedProto context) const = 0; + // Disable/Enable scheduler throttling. + virtual void SetSchedulerThrottling(bool allowed) = 0; @@ -73,10 +73,10 @@ index befd736a9cf362514b9a2ee475dc4a814c85a87b..24b2617f56673a3075697802cf5b574b + SetSchedulerThrottling(bool allowed); }; diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h -index 14d4a00293ab0b11e733676844ce483992d6cd8e..c6c2dbb9dddd1eaa21e8c7b276d871a3898463fa 100644 +index 560b72dfbc70172bc668229b29fe0c9da139f320..13ec73b9d627259625d64f5b97838033db89745c 100644 --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h -@@ -368,6 +368,7 @@ class WebView { +@@ -369,6 +369,7 @@ class WebView { // Scheduling ----------------------------------------------------------- virtual PageScheduler* Scheduler() const = 0; @@ -85,10 +85,10 @@ index 14d4a00293ab0b11e733676844ce483992d6cd8e..c6c2dbb9dddd1eaa21e8c7b276d871a3 // 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 8cdffac8ecb9ed2c6892f1e975a953846e7e3a5c..7e7927c7258963bd95a2c064ef85e410f4d2571d 100644 +index daab024ee0e2010e177eabeb7e0fb964c631dd17..06d8ca44fb1dc3748d81b5c5a407dfdf7183f845 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3659,6 +3659,13 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -3666,6 +3666,13 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -102,7 +102,7 @@ index 8cdffac8ecb9ed2c6892f1e975a953846e7e3a5c..7e7927c7258963bd95a2c064ef85e410 void WebViewImpl::SetVisibilityState( mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) { -@@ -3670,7 +3677,8 @@ void WebViewImpl::SetVisibilityState( +@@ -3677,7 +3684,8 @@ void WebViewImpl::SetVisibilityState( } GetPage()->SetVisibilityState(visibility_state, is_initial_state); GetPage()->GetPageScheduler()->SetPageVisible( diff --git a/patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch b/patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch index 763b2ecf8440..eac065943d3a 100644 --- a/patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch +++ b/patches/chromium/allow_in-process_windows_to_have_different_web_prefs.patch @@ -8,10 +8,10 @@ WebPreferences of in-process child windows, rather than relying on process-level command line switches, as before. diff --git a/third_party/blink/common/web_preferences/web_preferences.cc b/third_party/blink/common/web_preferences/web_preferences.cc -index 30e237f886b41bdf528b2a0e81054d15fb323f1f..43f7920cf6ff12d8a48ddef5440814a42266e8c5 100644 +index effc18673a7f832352f427c9f4fb8b276fc28ad6..96b67b56002f88e0f4e2af9997aa6a78a1accd96 100644 --- a/third_party/blink/common/web_preferences/web_preferences.cc +++ b/third_party/blink/common/web_preferences/web_preferences.cc -@@ -145,6 +145,20 @@ WebPreferences::WebPreferences() +@@ -144,6 +144,20 @@ WebPreferences::WebPreferences() fake_no_alloc_direct_call_for_testing_enabled(false), v8_cache_options(blink::mojom::V8CacheOptions::kDefault), record_whole_document(false), @@ -33,7 +33,7 @@ index 30e237f886b41bdf528b2a0e81054d15fb323f1f..43f7920cf6ff12d8a48ddef5440814a4 accelerated_video_decode_enabled(false), animation_policy( diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc -index d278453a261fe2dd3bacce433e35d50879b555a7..140f8d6273d944bfe36831d27aef757d89240b56 100644 +index a62792e0d484dc133f1df34a2c67dde838db203c..ef77424fc6778b047ac98700a5e18a3b6b161aba 100644 --- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc +++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc @@ -22,6 +22,10 @@ bool StructTraitslazy_frame_loading_distance_thresholds_px) || !data.ReadLazyImageLoadingDistanceThresholdsPx( -@@ -151,6 +155,19 @@ bool StructTraitsv8_cache_options = data.v8_cache_options(); out->record_whole_document = data.record_whole_document(); @@ -68,7 +68,7 @@ index d278453a261fe2dd3bacce433e35d50879b555a7..140f8d6273d944bfe36831d27aef757d out->accelerated_video_decode_enabled = data.accelerated_video_decode_enabled(); diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h -index 8509f720c5afb816c6cbb2313dd566a24236a790..b9f0f79d96c58a7769939610bb72f8b2bcd3be94 100644 +index 27d0bcc02a57b1a8f8f8e25df7af383d0e9a8c00..1cb920f4d0b01df012bc9b60eb3d9caa555d4e9e 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h @@ -10,6 +10,7 @@ @@ -79,7 +79,7 @@ index 8509f720c5afb816c6cbb2313dd566a24236a790..b9f0f79d96c58a7769939610bb72f8b2 #include "net/nqe/effective_connection_type.h" #include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/css/preferred_color_scheme.mojom-shared.h" -@@ -160,6 +161,22 @@ struct BLINK_COMMON_EXPORT WebPreferences { +@@ -159,6 +160,22 @@ struct BLINK_COMMON_EXPORT WebPreferences { blink::mojom::V8CacheOptions v8_cache_options; bool record_whole_document; @@ -103,7 +103,7 @@ index 8509f720c5afb816c6cbb2313dd566a24236a790..b9f0f79d96c58a7769939610bb72f8b2 // only controls whether or not the "document.cookie" field is properly // connected to the backing store, for instance if you wanted to be able to diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h -index a6291be3e953ceaee1d996e4b30a6ae78916bc7a..c3baf95c5d9b6a6ace56bcde9e1dc8179f18eaa0 100644 +index 0f5ed102b071001acc566b258946b359d33f5d45..aac80b973e4622d2207b92fcd2537342a60c6909 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h @@ -6,6 +6,7 @@ @@ -114,7 +114,7 @@ index a6291be3e953ceaee1d996e4b30a6ae78916bc7a..c3baf95c5d9b6a6ace56bcde9e1dc817 #include "mojo/public/cpp/bindings/struct_traits.h" #include "net/nqe/effective_connection_type.h" #include "third_party/blink/public/common/common_export.h" -@@ -441,6 +442,60 @@ struct BLINK_COMMON_EXPORT StructTraitsDetached(type); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index db69148e0756ed36bcf3a04f1ace69cc166261a6..bcf072a6d8bc46e5c71d9ef3f248b6af69693ac9 100644 +index 1efaff0e92061bc97dcbf3105f6b6c1dcefff17c..ec2e19c3ccf60f01b73259e1e6eff405ebf15f07 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -538,10 +538,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { +@@ -545,10 +545,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { } DCHECK(!view_ || !view_->IsAttached()); @@ -63,7 +63,7 @@ index db69148e0756ed36bcf3a04f1ace69cc166261a6..bcf072a6d8bc46e5c71d9ef3f248b6af if (!Client()) return false; -@@ -587,6 +583,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { +@@ -594,6 +590,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { DCHECK(!view_->IsAttached()); Client()->WillBeDetached(); diff --git a/patches/chromium/build_add_electron_tracing_category.patch b/patches/chromium/build_add_electron_tracing_category.patch index 22145207fe62..f096f681035e 100644 --- a/patches/chromium/build_add_electron_tracing_category.patch +++ b/patches/chromium/build_add_electron_tracing_category.patch @@ -8,10 +8,10 @@ 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 107516329273ee4a6cc49433b69f307b1264362b..0c9555a04233d07a186e34ada8b7615095854950 100644 +index 083a46a96bf969a075ef05cfe4837c4cce784191..22f18293e65035cc3b9af322520b102eb6b24a76 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -78,6 +78,7 @@ +@@ -80,6 +80,7 @@ X("drmcursor") \ X("dwrite") \ X("DXVA_Decoding") \ diff --git a/patches/chromium/build_disable_partition_alloc_on_mac.patch b/patches/chromium/build_disable_partition_alloc_on_mac.patch index 944a1f80f392..5fd0656a2cde 100644 --- a/patches/chromium/build_disable_partition_alloc_on_mac.patch +++ b/patches/chromium/build_disable_partition_alloc_on_mac.patch @@ -9,7 +9,7 @@ and can be removed when the crash in fork is resolved. Related issue: https://github.com/electron/electron/issues/32718 diff --git a/base/allocator/allocator.gni b/base/allocator/allocator.gni -index 56acfed89ec4ad4ee568a1b517923efa4b4e9c1f..a1da35a84f896d158ac88368ff6d95025a23ff95 100644 +index 97a57dfb1626ae9a781736dd8b0b55bf201162c1..5c97441faad781b459255cb1f7d0652ec86e40c8 100644 --- a/base/allocator/allocator.gni +++ b/base/allocator/allocator.gni @@ -20,7 +20,7 @@ _disable_partition_alloc = is_component_build || (is_win && is_debug) diff --git a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch index c692f905ec18..e3a17bcbab19 100644 --- a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch +++ b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch @@ -11,7 +11,7 @@ if we ever align our .pak file generation with Chrome we can remove this patch. diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 7caaf66cad9d5b9f787cea0d49c32c26801571c2..f45691888b74643189b956928fdc796bfc5bcee3 100644 +index a6e0a53d4ebbd585114bc0cda2e2d1caaab4a015..95a7e70eee0303471702b81c68f46a0fea2b6f0e 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -171,11 +171,16 @@ if (!is_android && !is_mac) { @@ -33,10 +33,10 @@ index 7caaf66cad9d5b9f787cea0d49c32c26801571c2..f45691888b74643189b956928fdc796b "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 6a40a73520a951d7c6fd06cbd07329a40ff41544..9ca837d995160d57c7efb51c54cf27283b11b20e 100644 +index fca255a2cd49f1f5d2bcb4418b04355c5befba38..2a0f3edc10a7ba48ee5a0efac0a6053f62b184e0 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4502,7 +4502,7 @@ static_library("browser") { +@@ -4508,7 +4508,7 @@ static_library("browser") { # On Windows, the hashes are embedded in //chrome:chrome_initial rather # than here in :chrome_dll. @@ -46,10 +46,10 @@ index 6a40a73520a951d7c6fd06cbd07329a40ff41544..9ca837d995160d57c7efb51c54cf2728 sources += [ "certificate_viewer_stub.cc" ] } diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 7be0809cfd3a08a87b29256241bc11a33abd3d17..e3c85fd9f550da204e36091bad256b1c2400ade8 100644 +index 3a3318c9586c88af0333d1b7586cbb426c205e7d..183d0c8ceb42a23424c3aa6d21c72e0a197ae638 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5719,7 +5719,6 @@ test("unit_tests") { +@@ -5904,7 +5904,6 @@ test("unit_tests") { deps += [ "//chrome:other_version", @@ -57,7 +57,7 @@ index 7be0809cfd3a08a87b29256241bc11a33abd3d17..e3c85fd9f550da204e36091bad256b1c "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/browser:chrome_process_finder", -@@ -5742,6 +5741,10 @@ test("unit_tests") { +@@ -5927,6 +5926,10 @@ test("unit_tests") { "//ui/resources", ] @@ -68,7 +68,7 @@ index 7be0809cfd3a08a87b29256241bc11a33abd3d17..e3c85fd9f550da204e36091bad256b1c ldflags = [ "/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll", "/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll", -@@ -6428,7 +6431,6 @@ test("unit_tests") { +@@ -6616,7 +6619,6 @@ test("unit_tests") { } deps += [ @@ -76,7 +76,7 @@ index 7be0809cfd3a08a87b29256241bc11a33abd3d17..e3c85fd9f550da204e36091bad256b1c "//chrome/browser:cart_db_content_proto", "//chrome/browser:coupon_db_content_proto", "//chrome/browser/media/router:test_support", -@@ -6473,6 +6475,11 @@ test("unit_tests") { +@@ -6662,6 +6664,11 @@ test("unit_tests") { "//ui/native_theme:test_support", "//ui/webui/resources/js/browser_command:mojo_bindings", ] diff --git a/patches/chromium/build_gn.patch b/patches/chromium/build_gn.patch index 8155d6972191..bd23b789dcd3 100644 --- a/patches/chromium/build_gn.patch +++ b/patches/chromium/build_gn.patch @@ -14,7 +14,7 @@ tradeoff is that switching from MAS_BUILD to !MAS_BUILD or vice-versa will rebuild the entire tree. diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn -index fcc7e12834733fa0927c35708de9665db4c59eba..faac97db5a2c86f1fcc89c3c045ef74b7b2b878a 100644 +index d960648941d8b959b25f87b364a594ec44760348..74a14a2373305e2e62b974b34a28ea9a62c6a911 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -123,6 +123,9 @@ if (current_os == "") { @@ -27,7 +27,7 @@ index fcc7e12834733fa0927c35708de9665db4c59eba..faac97db5a2c86f1fcc89c3c045ef74b # Set to enable the official build level of optimization. This has nothing # to do with branding, but enables an additional level of optimization above # release (!is_debug). This might be better expressed as a tri-state -@@ -346,6 +349,7 @@ default_compiler_configs = [ +@@ -349,6 +352,7 @@ default_compiler_configs = [ "//build/config/compiler/pgo:default_pgo_flags", "//build/config/coverage:default_coverage", "//build/config/sanitizers:default_sanitizer_flags", diff --git a/patches/chromium/build_libc_as_static_library.patch b/patches/chromium/build_libc_as_static_library.patch index e778543bd567..67ef2bf3d247 100644 --- a/patches/chromium/build_libc_as_static_library.patch +++ b/patches/chromium/build_libc_as_static_library.patch @@ -7,7 +7,7 @@ Build libc++ as static library to compile and pass nan tests diff --git a/buildtools/third_party/libc++/BUILD.gn b/buildtools/third_party/libc++/BUILD.gn -index 7915346430db72d18474d7a011b8dc7637c3f281..cd736d988f9c5e37dc24c724268fe115e00914d9 100644 +index dec348e235b1306cec50e0602fb910f21eaed925..0545e0ce5490df51088ca7a4cacd968e69fa0d09 100644 --- a/buildtools/third_party/libc++/BUILD.gn +++ b/buildtools/third_party/libc++/BUILD.gn @@ -44,7 +44,11 @@ config("winver") { @@ -32,7 +32,7 @@ index 7915346430db72d18474d7a011b8dc7637c3f281..cd736d988f9c5e37dc24c724268fe115 ] if (is_linux && !is_chromeos) { diff --git a/buildtools/third_party/libc++abi/BUILD.gn b/buildtools/third_party/libc++abi/BUILD.gn -index 1b0bea340d6e8aec153add6f184e382172916f8b..f5a8193e6b72f4cc039b95783be7d254b93911d8 100644 +index 40f1285f14c0843405e0ee51879b8742285a006d..5be895d3e36df53a5960006a1513f1322400fd23 100644 --- a/buildtools/third_party/libc++abi/BUILD.gn +++ b/buildtools/third_party/libc++abi/BUILD.gn @@ -4,7 +4,7 @@ diff --git a/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch b/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch new file mode 100644 index 000000000000..89e171dc5eb2 --- /dev/null +++ b/patches/chromium/build_make_libcxx_abi_unstable_false_for_electron.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Charles Kerr +Date: Tue, 22 Mar 2022 16:24:44 -0500 +Subject: build: make libcxx_abi_unstable false for electron + +https://nornagon.medium.com/a-libc-odyssey-973e51649063 + +diff --git a/build/config/c++/BUILD.gn b/build/config/c++/BUILD.gn +index 046792ac275853bf109537589b911cfada44ed24..e43daeaa8f8c8e23eea99b3f8f5f48f92012bbc1 100644 +--- a/build/config/c++/BUILD.gn ++++ b/build/config/c++/BUILD.gn +@@ -8,6 +8,11 @@ assert(use_custom_libcxx, "should only be used if use_custom_libcxx is set") + + libcxx_abi_unstable = true + ++if (is_electron_build) { ++ # This breaks native node modules ++ libcxx_abi_unstable = false ++} ++ + # TODO(xiaohuic): https://crbug/917533 Crashes on internal ChromeOS build. + # Do unconditionally once the underlying problem is fixed. + if (is_chromeos_ash && is_chrome_branded) { diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index bb9b95982086..278d3581d311 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,10 +9,10 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index eba372243a31d08c251ad3367d24999277a8289b..713e2883139bca4bb56dcc7e3efcf6d6dfc4a02b 100644 +index 20b9d7cd590361b176298e24b5aac6f546acb518..a6ed7b9f89b7fca2c6a6676053d520ba6c7716d7 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -6703,6 +6703,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -6866,6 +6866,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -21,10 +21,10 @@ index eba372243a31d08c251ad3367d24999277a8289b..713e2883139bca4bb56dcc7e3efcf6d6 &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 3fe9e1e4918ef65194621661c9c7c650089229fa..c8e49eeaca8b31479aa908be9c349ccd625e9e51 100644 +index 2afbf96abef912bf483d08f6c011aa4a2e515e25..92dcf2308842ce8922426b0cafdd5a3e83f4bd52 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3925,6 +3925,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3931,6 +3931,14 @@ FrameTree* WebContentsImpl::CreateNewWindow( } auto* new_contents_impl = new_contents.get(); @@ -39,7 +39,7 @@ index 3fe9e1e4918ef65194621661c9c7c650089229fa..c8e49eeaca8b31479aa908be9c349ccd new_contents_impl->GetController().SetSessionStorageNamespace( partition_config, session_storage_namespace); -@@ -3967,12 +3975,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3975,12 +3983,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -53,7 +53,7 @@ index 3fe9e1e4918ef65194621661c9c7c650089229fa..c8e49eeaca8b31479aa908be9c349ccd new_contents_impl, opener, params.target_url, params.referrer.To(), params.disposition, diff --git a/content/common/frame.mojom b/content/common/frame.mojom -index ace032dc2ffac27fbdddee5a4b13c3c3e36ba5ae..80f7dd56fdaa94a9880995b2b5393af0414eef29 100644 +index afc0dc34e4a1f6c06e96d7fa09922e8aaf4bab28..f3d13fc719324e064f70077deb5d95cb9e467820 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom @@ -550,6 +550,10 @@ struct CreateNewWindowParams { @@ -68,10 +68,10 @@ index ace032dc2ffac27fbdddee5a4b13c3c3e36ba5ae..80f7dd56fdaa94a9880995b2b5393af0 // 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 85ed8b5e84813c10f97c5785d906a87455f8f67e..a11d5ba888c1489870875c859ec9eb79c67f94b7 100644 +index d832c0c37554dafad0c44c78f6dc9233015b152f..654abc174a237a90225ad7be7f1180e929b9829b 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -571,6 +571,8 @@ bool ContentBrowserClient::CanCreateWindow( +@@ -576,6 +576,8 @@ bool ContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -81,10 +81,10 @@ index 85ed8b5e84813c10f97c5785d906a87455f8f67e..a11d5ba888c1489870875c859ec9eb79 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 47527cb2e434f771f5aeb5099432ae86a0ad06ea..2fe1462a2cd92a731a5816b5fc22b059bad92fe8 100644 +index e142bc65c2a0fe06a1cf59621c424170dc2d641c..8573ea54135e363f83bd786db3483d1c539e4bb1 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -168,6 +168,7 @@ class NetworkService; +@@ -169,6 +169,7 @@ class NetworkService; class TrustedURLLoaderHeaderClient; } // namespace mojom struct ResourceRequest; @@ -92,7 +92,7 @@ index 47527cb2e434f771f5aeb5099432ae86a0ad06ea..2fe1462a2cd92a731a5816b5fc22b059 } // namespace network namespace sandbox { -@@ -950,6 +951,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -958,6 +959,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -124,7 +124,7 @@ index f132199113778f6b50972419b61a187e6272300c..7bb1680553c405a9016cfd67eca5fa3c const OpenURLParams& params) { return nullptr; diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index f889d0bf33cf218a68bf5a9422aecaed23fa260a..3330876f623e5b2cb600b1ce1fd10b3375568613 100644 +index 9c70cc90402dd1541b2b58b3be2fa7ff215f8f57..a998c64237a7ffd6583a33cd54fe3229196300a6 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -16,6 +16,7 @@ @@ -150,7 +150,7 @@ index f889d0bf33cf218a68bf5a9422aecaed23fa260a..3330876f623e5b2cb600b1ce1fd10b33 // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc -index 83517883144a77a0c775ce2d146b4e85ef79ea97..aa65517a568aa0b324b2c8cca8f60bb532ba085a 100644 +index 9bdeb8745b3dd6d329f0403ca8c4a6f5de1d59c6..11815bca2741002dd8595af026ef402bc2af999e 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -32,6 +32,7 @@ @@ -173,10 +173,10 @@ index 83517883144a77a0c775ce2d146b4e85ef79ea97..aa65517a568aa0b324b2c8cca8f60bb5 /*is_opener_navigation=*/false, request.HasUserGesture(), // `openee_can_access_opener_origin` only matters for opener navigations, diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 54b62065d148ab860a49dc03daaf7680ff00d778..3008d3efe89585a562ae55734938b10ef8b0074e 100644 +index 4379497806bf7c85ade2f4e4554d6a60c4ec966c..fa860bbcf0c12df33dae69d25b01587676a1b79e 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -440,6 +440,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -438,6 +438,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -220,10 +220,10 @@ index 84d32491a56528a84b4395fba1d54cdbb38d522b..09998a83c449ef8cd9f360fbcdcf7edc } // namespace blink diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc -index 12658b5c9ca6bc10cffd2c9e8ddf45bac697e75c..284f3ed1513009092ecdf2be6ff87641cc404cd9 100644 +index c18012a217bfc492ac2cdef5776bb23099df57ae..b96bd45cfee98c8177b3ac5979273d1f9ba47388 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -2051,6 +2051,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2069,6 +2069,7 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, WebWindowFeatures window_features = GetWindowFeaturesFromString(features, incumbent_window); diff --git a/patches/chromium/chore_do_not_use_chrome_windows_in_cryptotoken_webrequestsender.patch b/patches/chromium/chore_do_not_use_chrome_windows_in_cryptotoken_webrequestsender.patch index a1ba014a796d..380b7d15612c 100644 --- a/patches/chromium/chore_do_not_use_chrome_windows_in_cryptotoken_webrequestsender.patch +++ b/patches/chromium/chore_do_not_use_chrome_windows_in_cryptotoken_webrequestsender.patch @@ -10,10 +10,10 @@ In Electron that can be simplified to webContents.isFocused() which maps to "is This can't be upstreamed but the patch is minimal. diff --git a/chrome/browser/resources/cryptotoken/webrequestsender.js b/chrome/browser/resources/cryptotoken/webrequestsender.js -index 67385e25a9233ce7a5077e69e9be1f457252ea5d..3e6864e6ea3374874598a0175746451126ddb165 100644 +index 8ea2d1c6d7269d25cd34a61d971d35c81b561670..8609defbb5de5c11614858586a9100974aed067c 100644 --- a/chrome/browser/resources/cryptotoken/webrequestsender.js +++ b/chrome/browser/resources/cryptotoken/webrequestsender.js -@@ -141,10 +141,11 @@ function tabInForeground(tabId) { +@@ -142,10 +142,11 @@ function tabInForeground(tabId) { reject(); return; } @@ -29,7 +29,7 @@ index 67385e25a9233ce7a5077e69e9be1f457252ea5d..3e6864e6ea3374874598a01757464511 chrome.tabs.get(tabId, function(tab) { if (chrome.runtime.lastError) { resolve(false); -@@ -154,9 +155,13 @@ function tabInForeground(tabId) { +@@ -155,9 +156,13 @@ function tabInForeground(tabId) { resolve(false); return; } diff --git a/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch b/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch index a0affa82eec7..00838845586b 100644 --- a/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch +++ b/patches/chromium/chore_expose_v8_initialization_isolate_callbacks.patch @@ -9,7 +9,7 @@ we're running with contextIsolation enabled, we should be falling back to Blink's logic. This will be upstreamed in some form. 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 10f34d87d74d81de91cbd006665465cee6c0d21e..93f09cd74b225a8b0c2d2f5280636513e852e8ff 100644 +index 5040ec838c64ffa8aa58ba43f51df649443b2f81..7a7a87d00fa392b7bd07267d9059664d5d472252 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc @@ -446,8 +446,9 @@ CodeGenerationCheckCallbackInMainThread(v8::Local context, diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index 19409a0d9762..04ad43d0a65f 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -49,7 +49,7 @@ index 27452df45433e4aeb7b9008f8e5b91dd4b5f50db..5c6f9936e6d3d2647d7efbc70efda855 // uses this to spawn new windows/tabs, which is also not allowed for // offscreen tabs. diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h -index 88b68339823142f9b2b2d4730d6ebc1033ac86a3..e2d53e1b233adced355be667d006d5d2ba3d5110 100644 +index faa684c429e8cd5817c043db48dcbea33c6c8782..8b5991bc8279585cc0749f6816aa8a03a2c4e558 100644 --- a/chrome/browser/media/offscreen_tab.h +++ b/chrome/browser/media/offscreen_tab.h @@ -107,8 +107,7 @@ class OffscreenTab final : public ProfileObserver, @@ -63,10 +63,10 @@ index 88b68339823142f9b2b2d4730d6ebc1033ac86a3..e2d53e1b233adced355be667d006d5d2 content::RenderFrameHost* requesting_frame, const blink::mojom::FullscreenOptions& options) final; diff --git a/chrome/browser/ui/ash/ash_web_view_impl.cc b/chrome/browser/ui/ash/ash_web_view_impl.cc -index 4df94c57d6be19d6e76430391386e84d2816d94a..f1c0c6e8bec7ef17292c2a5a3b33800f402c889b 100644 +index 593cbe8038789e3b071ec9f5c243be6f0be629f0..18e5ade28bb966b35a6f69b2543768ac482d4730 100644 --- a/chrome/browser/ui/ash/ash_web_view_impl.cc +++ b/chrome/browser/ui/ash/ash_web_view_impl.cc -@@ -77,10 +77,9 @@ bool AshWebViewImpl::IsWebContentsCreationOverridden( +@@ -79,10 +79,9 @@ bool AshWebViewImpl::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -80,7 +80,7 @@ index 4df94c57d6be19d6e76430391386e84d2816d94a..f1c0c6e8bec7ef17292c2a5a3b33800f /*from_user_gesture=*/true); return true; diff --git a/chrome/browser/ui/ash/ash_web_view_impl.h b/chrome/browser/ui/ash/ash_web_view_impl.h -index fd2bccf8f718683b55646ef200aaacc2df6ac485..b62b61fbcf4b8f1eff26546c5da020f88e4599fa 100644 +index e1adc822d8086b6c1b103a107923247cbb0aa7f2..2d2d65fa78d8fdccbe44aa1bf9b297e7038781c5 100644 --- a/chrome/browser/ui/ash/ash_web_view_impl.h +++ b/chrome/browser/ui/ash/ash_web_view_impl.h @@ -46,8 +46,7 @@ class AshWebViewImpl : public ash::AshWebView, @@ -108,10 +108,10 @@ index 6688ba8ba2fb7d930773144cdbc43f1f6fa2b685..22015c7b9b50e1264551ce226757f90e } diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index 04e327d970b872f0a9c505a0b99c6273900930f9..5993b3cb0cbe76cd266dee074effd736efa8fc50 100644 +index ace0c593debb46c9238e5708634fc6088a1bc715..31d5c0f00ae43706f16fc8615761e96eab31f1f3 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc -@@ -1767,12 +1767,11 @@ bool Browser::IsWebContentsCreationOverridden( +@@ -1770,12 +1770,11 @@ bool Browser::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -127,7 +127,7 @@ index 04e327d970b872f0a9c505a0b99c6273900930f9..5993b3cb0cbe76cd266dee074effd736 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index a63ba24be314eb4372d7dda7206dee4b52730d1e..f9bcaa001bfed987edd0ebb001f5cda0e0aca4aa 100644 +index 5edda102ff59ccb30d2150a88e75e8fb65379fca..82aaa442bca9e7a5e57315ace0b1c62e40ec1d24 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -808,8 +808,7 @@ class Browser : public TabStripModelObserver, @@ -246,10 +246,10 @@ index c6bd5c19f8a7ceec17c9e32af5296a9617f3a619..02199b439fba7fdc617b7f7980d958b7 void AddNewContents(content::WebContents* source, std::unique_ptr new_contents, diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 5c63a024827359ccf697d0b7fc8fa2092eb107b7..3da88b5831717c979373c064b4c1520c28d4fd98 100644 +index d69e028b34ab4407abcdea3ece93db39926c587e..a82b571fdabe90771bc8f8ed4ae40df3085592c7 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3873,8 +3873,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -3879,8 +3879,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, @@ -274,7 +274,7 @@ index 7bb1680553c405a9016cfd67eca5fa3c6439b692..3aa2cca04340098859e1072eaa80a46a } diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 3330876f623e5b2cb600b1ce1fd10b3375568613..a9f48c6577afef8876cd8304ff5a66405b7d8343 100644 +index a998c64237a7ffd6583a33cd54fe3229196300a6..4f57227a9033f905be13bc5166d0324d495a6531 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -318,8 +318,7 @@ class CONTENT_EXPORT WebContentsDelegate { @@ -288,7 +288,7 @@ index 3330876f623e5b2cb600b1ce1fd10b3375568613..a9f48c6577afef8876cd8304ff5a6640 // Allow delegate to creates a custom WebContents when // WebContents::CreateNewWindow() is called. This function is only called diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc -index ce83daee0eb44d72caaf1e7e250ce0c3fadb827c..ed0b508a5d6cdd4433a8117ef2032ce8e1d99273 100644 +index bddbd37ca73369adb82dad5bb8b25f0ab2a7f878..9bf28cd7f926f41041f40d4bc0a497c8b8730b86 100644 --- a/extensions/browser/guest_view/extension_options/extension_options_guest.cc +++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc @@ -213,8 +213,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden( @@ -316,10 +316,10 @@ index 7350382146178f58960a9bf68cd959076d2d9790..a70a94d14bdfa993feab60b8e4f32e10 content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -index 0b01120f6a6053ab03355c93216d703d0958aeab..a1c6c5a4b507bbf50668d7ed2febe97aca942c1d 100644 +index 56b6d5d28fe21a2bea723060ad48ee0134e814a2..a3da9c86c0018e7f4810feb73ca32896cd6ce93c 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -@@ -388,8 +388,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden( +@@ -402,8 +402,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -372,10 +372,10 @@ index f2054bca778784c223beb02de150cfeb31c52907..53bf6bc205e9c631597bfbda46f4a0b5 int opener_render_process_id, int opener_render_frame_id, diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc -index 2214ba7726f105e62bdc92bd0e6142ea9fa6ed72..2b9b804106317bfc914efacc7adfd282563e4c8b 100644 +index 899b8beabdf1131a08583470ace5b468576eeab6..21ab4ae22c54846af78518e897dc23ebe4ce8317 100644 --- a/headless/lib/browser/headless_web_contents_impl.cc +++ b/headless/lib/browser/headless_web_contents_impl.cc -@@ -176,8 +176,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { +@@ -177,8 +177,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -386,10 +386,10 @@ index 2214ba7726f105e62bdc92bd0e6142ea9fa6ed72..2b9b804106317bfc914efacc7adfd282 ->options() ->block_new_web_contents(); diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc -index 1c3eebdc2cc3f5d8f110562eb3e18a1f45521c4f..11b7b0c6617c40c766d64cd0d4e60d22e569bfb1 100644 +index 749200efec166e0c29402a3d5e079f2e94460363..2cbc96e911291fb0b31c3f4a1444ded0be4521f5 100644 --- a/ui/views/controls/webview/web_dialog_view.cc +++ b/ui/views/controls/webview/web_dialog_view.cc -@@ -426,8 +426,7 @@ bool WebDialogView::IsWebContentsCreationOverridden( +@@ -427,8 +427,7 @@ bool WebDialogView::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, diff --git a/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch b/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch index 262ac6344b12..10a9d5dbeb4c 100644 --- a/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch +++ b/patches/chromium/chore_use_electron_resources_not_chrome_for_spellchecker.patch @@ -7,10 +7,10 @@ spellchecker uses a few IDS_ resources. We need to load these from Electrons grit header instead of Chromes diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index ec55c3f97988a7de06a738e61e389ba07712ad4e..6a40a73520a951d7c6fd06cbd07329a40ff41544 100644 +index 863c9e088c2d967506a9fabd044d7b08cc8bee23..fca255a2cd49f1f5d2bcb4418b04355c5befba38 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7088,6 +7088,7 @@ static_library("browser") { +@@ -7123,6 +7123,7 @@ static_library("browser") { deps += [ "//components/spellcheck/browser", "//components/spellcheck/common", diff --git a/patches/chromium/chrome_key_systems.patch b/patches/chromium/chrome_key_systems.patch index e1eba13e55ff..2c9718a54092 100644 --- a/patches/chromium/chrome_key_systems.patch +++ b/patches/chromium/chrome_key_systems.patch @@ -7,7 +7,7 @@ Disable persiste licence support check for widevine cdm, as its not supported in the current version of chrome. diff --git a/chrome/renderer/media/chrome_key_systems.cc b/chrome/renderer/media/chrome_key_systems.cc -index 0cdaa37db5a4c992c8051a6e4370f61b3e4559a3..58108239e1b5aad967eff63d8eed10a560726c6e 100644 +index ff769b9855810bfe3761079ddae286fc8aa5602f..1fea025e8fc1d4e2496f117780fa4d0eb2f2e983 100644 --- a/chrome/renderer/media/chrome_key_systems.cc +++ b/chrome/renderer/media/chrome_key_systems.cc @@ -17,7 +17,9 @@ @@ -20,7 +20,7 @@ index 0cdaa37db5a4c992c8051a6e4370f61b3e4559a3..58108239e1b5aad967eff63d8eed10a5 #include "components/cdm/renderer/external_clear_key_key_system_properties.h" #include "components/cdm/renderer/widevine_key_system_properties.h" #include "content/public/renderer/render_thread.h" -@@ -230,12 +232,14 @@ SupportedCodecs GetSupportedCodecs(const media::CdmCapability& capability) { +@@ -183,12 +185,14 @@ SupportedCodecs GetSupportedCodecs(const media::CdmCapability& capability) { // Returns persistent-license session support. EmeSessionTypeSupport GetPersistentLicenseSupport(bool supported_by_the_cdm) { diff --git a/patches/chromium/command-ismediakey.patch b/patches/chromium/command-ismediakey.patch index 3a7e3c694cc0..ab63b9153c40 100644 --- a/patches/chromium/command-ismediakey.patch +++ b/patches/chromium/command-ismediakey.patch @@ -87,10 +87,10 @@ index 0f344ee352a48497e77a72bb298146c61e7fcf2a..3bad4263ea552fc63445bf5613f8add7 // Create an observer that registers a hot key for |accelerator|. std::unique_ptr observer = diff --git a/content/browser/media/media_keys_listener_manager_impl.cc b/content/browser/media/media_keys_listener_manager_impl.cc -index 4e9e4f4d21fbe650d8f32254a3b450074a038751..ac923f436cbdd6ded0629da4e4c659d94258e55b 100644 +index 3f37f08ccc06137317164e96e8934a0202fa5550..b954f8dde00d4f5257223c464e9145a6bef48900 100644 --- a/content/browser/media/media_keys_listener_manager_impl.cc +++ b/content/browser/media/media_keys_listener_manager_impl.cc -@@ -296,6 +296,11 @@ void MediaKeysListenerManagerImpl::UpdateSystemMediaControlsEnabledControls() { +@@ -297,6 +297,11 @@ void MediaKeysListenerManagerImpl::UpdateSystemMediaControlsEnabledControls() { case ui::VKEY_MEDIA_STOP: system_media_controls_->SetIsStopEnabled(should_enable); break; @@ -146,10 +146,10 @@ index ada705fb42e88d4bfa05b212c84111be9057a50e..a866b975687dd08ad88031a63f161b31 } diff --git a/ui/base/x/x11_global_shortcut_listener.cc b/ui/base/x/x11_global_shortcut_listener.cc -index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688ada1a3ad3 100644 +index 898e15a25c99ad25221c41594803521565ff4432..664337941023e800c9605f987d0e1d65bb0a444d 100644 --- a/ui/base/x/x11_global_shortcut_listener.cc +++ b/ui/base/x/x11_global_shortcut_listener.cc -@@ -32,11 +32,13 @@ const x11::ModMask kModifiersMasks[] = { +@@ -31,11 +31,13 @@ const x11::ModMask kModifiersMasks[] = { x11::ModMask GetNativeModifiers(bool is_alt_down, bool is_ctrl_down, @@ -165,7 +165,7 @@ index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688a } } // namespace -@@ -82,8 +84,9 @@ uint32_t XGlobalShortcutListener::DispatchEvent(const PlatformEvent& event) { +@@ -81,8 +83,9 @@ uint32_t XGlobalShortcutListener::DispatchEvent(const PlatformEvent& event) { bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, @@ -177,7 +177,7 @@ index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688a auto keysym = XKeysymForWindowsKeyCode(key_code, false); auto keycode = connection_->KeysymToKeycode(keysym); -@@ -108,7 +111,7 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code, +@@ -107,7 +110,7 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code, } registered_combinations_.insert( @@ -186,7 +186,7 @@ index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688a return true; } -@@ -116,8 +119,9 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code, +@@ -115,8 +118,9 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code, void XGlobalShortcutListener::UnregisterAccelerator(KeyboardCode key_code, bool is_alt_down, bool is_ctrl_down, @@ -198,7 +198,7 @@ index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688a auto keysym = XKeysymForWindowsKeyCode(key_code, false); auto keycode = connection_->KeysymToKeycode(keysym); -@@ -125,7 +129,7 @@ void XGlobalShortcutListener::UnregisterAccelerator(KeyboardCode key_code, +@@ -124,7 +128,7 @@ void XGlobalShortcutListener::UnregisterAccelerator(KeyboardCode key_code, connection_->UngrabKey({keycode, x_root_window_, modifiers | mask}); registered_combinations_.erase( @@ -207,7 +207,7 @@ index a772666160a71e8e31242e25a8f3383ad9b914bf..7ed78ff875ccf9c38a480d0d59f4688a } void XGlobalShortcutListener::OnKeyPressEvent(const KeyEvent& event) { -@@ -135,14 +139,15 @@ void XGlobalShortcutListener::OnKeyPressEvent(const KeyEvent& event) { +@@ -134,14 +138,15 @@ void XGlobalShortcutListener::OnKeyPressEvent(const KeyEvent& event) { const bool is_alt_down = event.flags() & EF_ALT_DOWN; const bool is_ctrl_down = event.flags() & EF_CONTROL_DOWN; const bool is_shift_down = event.flags() & EF_SHIFT_DOWN; diff --git a/patches/chromium/crash_allow_setting_more_options.patch b/patches/chromium/crash_allow_setting_more_options.patch index c16edea8ac14..ff3fe7c4fcfa 100644 --- a/patches/chromium/crash_allow_setting_more_options.patch +++ b/patches/chromium/crash_allow_setting_more_options.patch @@ -75,10 +75,10 @@ index 24e53fa62c2c4a11494ad3d43f0c5a806930fcdd..9b691baa6cc90cc3f9ada307c43f44c4 // Used by WebView to sample crashes without generating the unwanted dumps. If // the returned value is less than 100, crash dumping will be sampled to that diff --git a/components/crash/core/app/crashpad_linux.cc b/components/crash/core/app/crashpad_linux.cc -index dc2b18b322350121768571b7997d632a10220ac9..3e3ee0f721a2316d324fb31e17ba97ff24d9e6d7 100644 +index 32e2038e15adae14aa218a353f074cd6654bdc16..72bec9c08d7ec50257a86b0ee7173864d879d7d9 100644 --- a/components/crash/core/app/crashpad_linux.cc +++ b/components/crash/core/app/crashpad_linux.cc -@@ -180,6 +180,7 @@ bool PlatformCrashpadInitialization( +@@ -170,6 +170,7 @@ bool PlatformCrashpadInitialization( // where crash_reporter provides it's own values for lsb-release. annotations["lsb-release"] = base::GetLinuxDistro(); #endif @@ -86,7 +86,7 @@ index dc2b18b322350121768571b7997d632a10220ac9..3e3ee0f721a2316d324fb31e17ba97ff std::vector arguments; if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) { -@@ -201,6 +202,13 @@ bool PlatformCrashpadInitialization( +@@ -191,6 +192,13 @@ bool PlatformCrashpadInitialization( } #endif @@ -128,10 +128,10 @@ index dc041c43371fd58e3121ef6bc423aadb644bb8d0..a1fa566775724b4a1662a939fda3f0a5 arguments.push_back("--monitor-self"); } diff --git a/components/crash/core/app/crashpad_win.cc b/components/crash/core/app/crashpad_win.cc -index 1a8f42cb4e2ea493642d8b264d0be5c3da358793..e972272de54107aaed6143e3f3569ba56bd3cf3e 100644 +index d2354b84f3a184ad53571518198055a0a91cbc25..c05529257dda2acf0fa588d49e2b902736d9b02f 100644 --- a/components/crash/core/app/crashpad_win.cc +++ b/components/crash/core/app/crashpad_win.cc -@@ -89,6 +89,7 @@ bool PlatformCrashpadInitialization( +@@ -88,6 +88,7 @@ bool PlatformCrashpadInitialization( std::map process_annotations; GetPlatformCrashpadAnnotations(&process_annotations); @@ -139,7 +139,7 @@ index 1a8f42cb4e2ea493642d8b264d0be5c3da358793..e972272de54107aaed6143e3f3569ba5 std::string url = crash_reporter_client->GetUploadUrl(); -@@ -127,6 +128,13 @@ bool PlatformCrashpadInitialization( +@@ -126,6 +127,13 @@ bool PlatformCrashpadInitialization( std::vector arguments(start_arguments); diff --git a/patches/chromium/crashpad_pid_check.patch b/patches/chromium/crashpad_pid_check.patch index 597472b3ec79..5560d4b3ec9f 100644 --- a/patches/chromium/crashpad_pid_check.patch +++ b/patches/chromium/crashpad_pid_check.patch @@ -16,7 +16,7 @@ https://github.com/electron/electron/pull/18483#discussion_r292703588 https://github.com/electron/electron/pull/18483#issuecomment-501090683 diff --git a/third_party/crashpad/crashpad/util/win/exception_handler_server.cc b/third_party/crashpad/crashpad/util/win/exception_handler_server.cc -index 92d5c5d47cfa5bd70300bb8bbc16ab944cd93509..87c14718221a83d531d15abf1f1d2d1bbc020e77 100644 +index 6890a01cc4b333927be6c36ff3392706020f57a3..36da005deed5893989585427216fd1e16d5e9f0c 100644 --- a/third_party/crashpad/crashpad/util/win/exception_handler_server.cc +++ b/third_party/crashpad/crashpad/util/win/exception_handler_server.cc @@ -446,9 +446,16 @@ bool ExceptionHandlerServer::ServiceClientConnection( diff --git a/patches/chromium/dcheck.patch b/patches/chromium/dcheck.patch index 5374f0423050..0af9aeccfd05 100644 --- a/patches/chromium/dcheck.patch +++ b/patches/chromium/dcheck.patch @@ -17,10 +17,10 @@ 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/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc -index 183503c7d9891b7e651f0cac4b2dc97157b61928..1630a0a49a4b88ceda0ee14980236dc614b42c67 100644 +index 7a6503d4a4ad33290d97078336c18d81839a8675..0f162b8e681ebb67c5f3b23a40fe3b6ec97cec49 100644 --- a/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc +++ b/third_party/blink/renderer/core/mobile_metrics/mobile_friendliness_checker.cc -@@ -511,8 +511,7 @@ void MobileFriendlinessChecker::NotifyInvalidatePaint( +@@ -506,8 +506,7 @@ void MobileFriendlinessChecker::NotifyInvalidatePaint( ->GetPageScaleConstraintsSet() .FinalConstraints() .initial_scale; diff --git a/patches/chromium/desktop_media_list.patch b/patches/chromium/desktop_media_list.patch index de4da5324bf2..4db38bb6a59d 100644 --- a/patches/chromium/desktop_media_list.patch +++ b/patches/chromium/desktop_media_list.patch @@ -8,10 +8,10 @@ Subject: desktop_media_list.patch * Ensure "OnRefreshComplete()" even if there are no items in the list diff --git a/chrome/browser/media/webrtc/desktop_media_list.h b/chrome/browser/media/webrtc/desktop_media_list.h -index 57cfc646f8ea545271c22d79ec158a04b148bc9c..c5339603930f68e7019ca33d8b9f148cf4ac86af 100644 +index 03af516b6c85523c51a70dac281dbd732c10ea7e..b6f91fbd15181dff4d8ddc4be2b66c2a5012f495 100644 --- a/chrome/browser/media/webrtc/desktop_media_list.h +++ b/chrome/browser/media/webrtc/desktop_media_list.h -@@ -94,7 +94,8 @@ class DesktopMediaList { +@@ -96,7 +96,8 @@ class DesktopMediaList { // once per DesktopMediaList instance. It should not be called after // StartUpdating(), and StartUpdating() should not be called until |callback| // has been called. @@ -22,10 +22,10 @@ index 57cfc646f8ea545271c22d79ec158a04b148bc9c..c5339603930f68e7019ca33d8b9f148c virtual int GetSourceCount() const = 0; virtual const Source& GetSource(int index) const = 0; diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.cc b/chrome/browser/media/webrtc/desktop_media_list_base.cc -index 24bd95b79479c21182a0d1a61364e1794f900261..2b2a7494ee9bd88fd5c8ebf50a5e29738b2dffd0 100644 +index ac1e7854dc9ae629a499fac7626ec456e18c7867..087da9bbfb9081b94ca8ea8d245871dc3601b1a7 100644 --- a/chrome/browser/media/webrtc/desktop_media_list_base.cc +++ b/chrome/browser/media/webrtc/desktop_media_list_base.cc -@@ -63,12 +63,12 @@ void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) { +@@ -65,12 +65,12 @@ void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) { Refresh(true); } @@ -41,10 +41,10 @@ index 24bd95b79479c21182a0d1a61364e1794f900261..2b2a7494ee9bd88fd5c8ebf50a5e2973 int DesktopMediaListBase::GetSourceCount() const { diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.h b/chrome/browser/media/webrtc/desktop_media_list_base.h -index c56bc6dcc73cf0e0d5e0e64d45436ccac833cd66..69aaecca38ede55ee71310698710e3f17b04abff 100644 +index 9c77a2d5872cc340b7a237b896afea1dd3be2503..d06869ff78ec0d48e97c3aeb7ac86d4aa9d9b1ba 100644 --- a/chrome/browser/media/webrtc/desktop_media_list_base.h +++ b/chrome/browser/media/webrtc/desktop_media_list_base.h -@@ -36,7 +36,7 @@ class DesktopMediaListBase : public DesktopMediaList { +@@ -38,7 +38,7 @@ class DesktopMediaListBase : public DesktopMediaList { void SetThumbnailSize(const gfx::Size& thumbnail_size) override; void SetViewDialogWindowId(content::DesktopMediaID dialog_id) override; void StartUpdating(DesktopMediaListObserver* observer) override; @@ -54,10 +54,10 @@ index c56bc6dcc73cf0e0d5e0e64d45436ccac833cd66..69aaecca38ede55ee71310698710e3f1 const Source& GetSource(int index) const override; DesktopMediaList::Type GetMediaListType() const override; diff --git a/chrome/browser/media/webrtc/fake_desktop_media_list.cc b/chrome/browser/media/webrtc/fake_desktop_media_list.cc -index b1db454db6b7982962541cef18c09425b8f5fa5a..1e37f85d7f786807af331ccc347d84d9b4d7177c 100644 +index 2bf801156b93305705914d3dcb7dcbbebd03c096..6ea87e4471ab64c838b705c64be6bc10d74b213e 100644 --- a/chrome/browser/media/webrtc/fake_desktop_media_list.cc +++ b/chrome/browser/media/webrtc/fake_desktop_media_list.cc -@@ -75,7 +75,8 @@ void FakeDesktopMediaList::StartUpdating(DesktopMediaListObserver* observer) { +@@ -77,7 +77,8 @@ void FakeDesktopMediaList::StartUpdating(DesktopMediaListObserver* observer) { thumbnail_ = gfx::ImageSkia::CreateFrom1xBitmap(bitmap); } diff --git a/patches/chromium/disable-redraw-lock.patch b/patches/chromium/disable-redraw-lock.patch index 678825807237..90badb12ad13 100644 --- a/patches/chromium/disable-redraw-lock.patch +++ b/patches/chromium/disable-redraw-lock.patch @@ -15,7 +15,7 @@ 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 bf32a083d0f0873e112debe0e88ab1be8125a417..8ca72461bb7b42f1bc0da249a36f0fcf9ab6f13c 100644 +index bb79a55d46730a4a127ee6483a7a25ecdc2aea5b..b14fa0f41166a904991ec920cec2f45c3b71c953 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -308,6 +308,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500; diff --git a/patches/chromium/disable_color_correct_rendering.patch b/patches/chromium/disable_color_correct_rendering.patch index dac0d9fbd0df..24227afe8746 100644 --- a/patches/chromium/disable_color_correct_rendering.patch +++ b/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 61ab59e0d97a392ae18c1d7ad7dd606b5cd1c567..2a899818ebb67ba4fc06ccbcff3ee03f6b83c0e6 100644 +index a7636e4535d0c4303c4022620b2fc7d18870f6da..5de5f020da02f30b28bf02701e9fd1662424c914 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -1882,6 +1882,9 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( +@@ -1900,6 +1900,9 @@ void LayerTreeHostImpl::SetIsLikelyToRequireADraw( TargetColorParams LayerTreeHostImpl::GetTargetColorParams( gfx::ContentColorUsage content_color_usage) const { TargetColorParams params; @@ -34,7 +34,7 @@ index 61ab59e0d97a392ae18c1d7ad7dd606b5cd1c567..2a899818ebb67ba4fc06ccbcff3ee03f // If we are likely to software composite the resource, we use sRGB because // software compositing is unable to perform color conversion. diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h -index 64f1a3a3cb8d82235ff04f5c01a7cf571d8ba00c..ffa8d1a53870663647e423975f00e5650c6ab579 100644 +index f6094a5defe12c34564020b0779626b3e5bff99e..a068a9ba33d3f8c8cdc74ae63ab5e16caa0b90c3 100644 --- a/cc/trees/layer_tree_settings.h +++ b/cc/trees/layer_tree_settings.h @@ -93,6 +93,8 @@ class CC_EXPORT LayerTreeSettings { @@ -80,10 +80,10 @@ index 6a830ec9f29b9764cd425f0681dafbb18d90b457..a7a095ceb9e626c79db21e0d16c8ef47 !command_line->HasSwitch(switches::kUIDisablePartialSwap); diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc -index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b949187690aca71c 100644 +index 553c3be2562e836e2ce6d6f44997cebf3cba7466..fbe38d97a8d1861ecfb5ccb583d050a28b9ab108 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc -@@ -87,6 +87,9 @@ +@@ -86,6 +86,9 @@ using gpu::gles2::GLES2Interface; @@ -93,7 +93,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 namespace viz { namespace { -@@ -684,8 +687,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad, +@@ -683,8 +686,9 @@ void GLRenderer::DoDrawQuad(const DrawQuad* quad, void GLRenderer::DrawDebugBorderQuad(const DebugBorderDrawQuad* quad) { SetBlendEnabled(quad->ShouldDrawWithBlending()); @@ -105,7 +105,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 // Use the full quad_rect for debug quads to not move the edges based on // partial swaps. -@@ -1675,7 +1679,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params, +@@ -1674,7 +1678,8 @@ void GLRenderer::ChooseRPDQProgram(DrawRenderPassDrawQuadParams* params, params->use_color_matrix, tint_gl_composited_content_, params->apply_shader_based_rounded_corner && ShouldApplyRoundedCorner(params->quad)), @@ -115,7 +115,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 } void GLRenderer::UpdateRPDQUniforms(DrawRenderPassDrawQuadParams* params) { -@@ -2148,7 +2153,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, +@@ -2147,7 +2152,8 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, SetUseProgram(ProgramKey::SolidColor(use_aa ? USE_AA : NO_AA, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -125,7 +125,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 gfx::ColorSpace quad_color_space = gfx::ColorSpace::CreateSRGB(); SkColor4f color_f = SkColor4f::FromColor(color); -@@ -2156,7 +2162,7 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, +@@ -2155,7 +2161,7 @@ void GLRenderer::DrawSolidColorQuad(const SolidColorDrawQuad* quad, // Apply color transform if the color space or source and target do not match. if (quad_color_space != CurrentRenderPassColorSpace()) { const gfx::ColorTransform* color_transform = @@ -134,7 +134,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 gfx::ColorTransform::TriStim col(color_f.fR, color_f.fG, color_f.fB); color_transform->Transform(&col, 1); color_f.fR = col.x(); -@@ -2378,7 +2384,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad, +@@ -2377,7 +2383,8 @@ void GLRenderer::DrawContentQuadAA(const ContentDrawQuadBase* quad, : NON_PREMULTIPLIED_ALPHA, false, false, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -144,7 +144,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 if (current_program_->tint_color_matrix_location() != -1) { auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix(); -@@ -2477,7 +2484,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad, +@@ -2476,7 +2483,8 @@ void GLRenderer::DrawContentQuadNoAA(const ContentDrawQuadBase* quad, !quad->ShouldDrawWithBlending(), has_tex_clamp_rect, tint_gl_composited_content_, ShouldApplyRoundedCorner(quad)), @@ -154,7 +154,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 if (current_program_->tint_color_matrix_location() != -1) { auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix(); -@@ -2587,7 +2595,8 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad, +@@ -2586,7 +2594,8 @@ void GLRenderer::DrawYUVVideoQuad(const YUVVideoDrawQuad* quad, // The source color space should never be RGB. DCHECK_NE(src_color_space, src_color_space.GetAsFullRangeRGB()); @@ -164,7 +164,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 #if BUILDFLAG(IS_WIN) // Force sRGB output on Windows for overlay candidate video quads to match -@@ -2768,7 +2777,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad, +@@ -2767,7 +2776,8 @@ void GLRenderer::DrawStreamVideoQuad(const StreamVideoDrawQuad* quad, SetUseProgram(ProgramKey::VideoStream(tex_coord_precision, ShouldApplyRoundedCorner(quad)), @@ -174,7 +174,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); -@@ -2839,8 +2849,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) { +@@ -2838,8 +2848,8 @@ void GLRenderer::FlushTextureQuadCache(BoundGeometry flush_binding) { draw_cache_.nearest_neighbor ? GL_NEAREST : GL_LINEAR); // Bind the program to the GL state. @@ -185,7 +185,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 /*adjust_src_white_level=*/draw_cache_.is_video_frame, locked_quad.hdr_metadata()); -@@ -3697,7 +3707,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, +@@ -3696,7 +3706,9 @@ void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, const gfx::ColorSpace& dst_color_space, bool adjust_src_white_level, absl::optional hdr_metadata) { @@ -196,7 +196,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 gfx::ColorSpace adjusted_src_color_space = src_color_space; if (adjust_src_white_level && src_color_space.IsHDR()) { // TODO(b/183236148): consider using the destination's HDR static metadata -@@ -4085,9 +4097,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( +@@ -4084,9 +4096,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( cc::MathUtil::CheckedRoundUp(iosurface_height, iosurface_multiple); } @@ -209,7 +209,7 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 *new_bounds = gfx::RectF(updated_dst_rect.origin(), gfx::SizeF((*overlay_texture)->texture.size())); -@@ -4307,8 +4319,9 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { +@@ -4305,8 +4317,9 @@ void GLRenderer::FlushOverdrawFeedback(const gfx::Rect& output_rect) { PrepareGeometry(SHARED_BINDING); @@ -221,14 +221,14 @@ index deb95d2f0728b27af6115674094cc1b7a8e25807..339fe73954f33fb7bbc17f88b9491876 gfx::Transform render_matrix; render_matrix.Translate(0.5 * output_rect.width() + output_rect.x(), -@@ -4514,3 +4527,5 @@ bool GLRenderer::ColorTransformKey::operator<( +@@ -4512,3 +4525,5 @@ bool GLRenderer::ColorTransformKey::operator<( } } // namespace viz + +#undef PATCH_CS diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc -index f5d73922086b5b27907fd393d4d4204a574c3b25..5b09f5ef5f04b519ed4148498c82d003c9fd6c91 100644 +index 90c7ace352fe909e3f521403c2a7fbf030ccc31e..f011183e21921f38ce5062079e8430a030159bc1 100644 --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc @@ -227,6 +227,7 @@ GpuTerminationStatus ConvertToGpuTerminationStatus( @@ -240,10 +240,10 @@ index f5d73922086b5b27907fd393d4d4204a574c3b25..5b09f5ef5f04b519ed4148498c82d003 sandbox::policy::switches::kGpuSandboxAllowSysVShm, sandbox::policy::switches::kGpuSandboxFailuresFatal, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index ac9570fa3d9cb3b0026f70465e5b21ac7778c3df..acc0e121e7746da397cfab07b3707de7ae9a3143 100644 +index d8939c1936830b101d6bb4079cd99e6015b481c4..366f801cbe84a28ef462037a26da47c9f65057b4 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -194,6 +194,7 @@ +@@ -197,6 +197,7 @@ #include "ui/accessibility/accessibility_switches.h" #include "ui/base/ui_base_switches.h" #include "ui/display/display_switches.h" @@ -251,7 +251,7 @@ index ac9570fa3d9cb3b0026f70465e5b21ac7778c3df..acc0e121e7746da397cfab07b3707de7 #include "ui/gl/gl_switches.h" #include "url/gurl.h" #include "url/origin.h" -@@ -3283,6 +3284,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3212,6 +3213,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[] = { @@ -260,7 +260,7 @@ index ac9570fa3d9cb3b0026f70465e5b21ac7778c3df..acc0e121e7746da397cfab07b3707de7 sandbox::policy::switches::kDisableSeccompFilterSandbox, sandbox::policy::switches::kNoSandbox, 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 6260d73068636f4a8d4c73c161a4ffe165b267d0..2686ef0dfb7d8b667647d11fece5aa8e1be76fe5 100644 +index 648f25d99884b99f49e26cd9f280a8a6ae63e1c7..0f87961ecd8c24e3ba82c6bae187a12c9b112bd4 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 @@ @@ -292,7 +292,7 @@ index 6260d73068636f4a8d4c73c161a4ffe165b267d0..2686ef0dfb7d8b667647d11fece5aa8e } diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc -index 49ef0d352cfb6163499fa42416187595c7011a68..d5bc620847872fcba96f6941be529428755d83a2 100644 +index 4187a703f62f36ff14d3a95f4b116febd5242c09..8d3b82e802bbd011380df21915427aba26193952 100644 --- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc +++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_settings.cc @@ -24,6 +24,7 @@ @@ -303,7 +303,7 @@ index 49ef0d352cfb6163499fa42416187595c7011a68..d5bc620847872fcba96f6941be529428 #include "ui/native_theme/native_theme_features.h" #include "ui/native_theme/overlay_scrollbar_constants_aura.h" -@@ -184,6 +185,9 @@ cc::LayerTreeSettings GenerateLayerTreeSettings( +@@ -183,6 +184,9 @@ cc::LayerTreeSettings GenerateLayerTreeSettings( settings.main_frame_before_activation_enabled = cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); @@ -314,10 +314,10 @@ index 49ef0d352cfb6163499fa42416187595c7011a68..d5bc620847872fcba96f6941be529428 // is what the renderer uses if its not threaded. settings.enable_checker_imaging = diff --git a/ui/gfx/mac/io_surface.cc b/ui/gfx/mac/io_surface.cc -index 298321f1aabcf4328fd39b856694a8a6459bfa24..4be245d082cd9d833db72b29e3d652120ecb913e 100644 +index e36187917ecec5d9e40009d1c394a07e72281919..de9698d577ab48358d06362fc78575fd0ad98d30 100644 --- a/ui/gfx/mac/io_surface.cc +++ b/ui/gfx/mac/io_surface.cc -@@ -21,6 +21,7 @@ +@@ -20,6 +20,7 @@ #include "ui/gfx/buffer_format_util.h" #include "ui/gfx/color_space.h" #include "ui/gfx/icc_profile.h" @@ -325,7 +325,7 @@ index 298321f1aabcf4328fd39b856694a8a6459bfa24..4be245d082cd9d833db72b29e3d65212 namespace gfx { -@@ -143,6 +144,14 @@ void IOSurfaceMachPortTraits::Release(mach_port_t port) { +@@ -142,6 +143,14 @@ void IOSurfaceMachPortTraits::Release(mach_port_t port) { // Common method used by IOSurfaceSetColorSpace and IOSurfaceCanSetColorSpace. bool IOSurfaceSetColorSpace(IOSurfaceRef io_surface, const ColorSpace& color_space) { @@ -340,7 +340,7 @@ index 298321f1aabcf4328fd39b856694a8a6459bfa24..4be245d082cd9d833db72b29e3d65212 // Allow but ignore invalid color spaces. if (!color_space.IsValid()) return true; -@@ -313,6 +322,15 @@ IOSurfaceRef CreateIOSurface(const gfx::Size& size, +@@ -312,6 +321,15 @@ IOSurfaceRef CreateIOSurface(const gfx::Size& size, DCHECK_EQ(kIOReturnSuccess, r); } @@ -357,7 +357,7 @@ index 298321f1aabcf4328fd39b856694a8a6459bfa24..4be245d082cd9d833db72b29e3d65212 if (__builtin_available(macos 10.12, *)) { IOSurfaceSetValue(surface, CFSTR("IOSurfaceColorSpace"), kCGColorSpaceSRGB); diff --git a/ui/gfx/switches.cc b/ui/gfx/switches.cc -index be932ac3094a441cd5d9afa2ffd2c6d4a64ce559..a6aa9b4c6ba958eb81276911368cd053b9fb59f8 100644 +index 0e8044c6d87008c51fd165c6ef8bdc3687d6cc29..78015868927602b5225f252f0a9182f61b8431dc 100644 --- a/ui/gfx/switches.cc +++ b/ui/gfx/switches.cc @@ -11,6 +11,8 @@ namespace switches { @@ -370,7 +370,7 @@ index be932ac3094a441cd5d9afa2ffd2c6d4a64ce559..a6aa9b4c6ba958eb81276911368cd053 // sharpness, kerning, hinting and layout. const char kDisableFontSubpixelPositioning[] = diff --git a/ui/gfx/switches.h b/ui/gfx/switches.h -index 442809de1631081efbe062922539318f5172a5ae..b8e5c7e53d58a06175105c9396a7d976bda7a4bd 100644 +index e8e5d44e246364dd45594efb442c129676c14270..252096ee18ca33f4b98f68beb1f534e1c2ab805e 100644 --- a/ui/gfx/switches.h +++ b/ui/gfx/switches.h @@ -12,6 +12,7 @@ diff --git a/patches/chromium/disable_compositor_recycling.patch b/patches/chromium/disable_compositor_recycling.patch index 23daa8d150e3..cb16038fb732 100644 --- a/patches/chromium/disable_compositor_recycling.patch +++ b/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 58002d37ba340f84f47e2522c0d7bf7c1a64c5d2..bc0a73f08e77bf13eb1cafa55f955e6083071104 100644 +index 54a1142f17e2a63b86e1fab52ea90276091c85a4..df9381bf8dc4b2b85548c529038f60cc3185fcdd 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm -@@ -510,7 +510,11 @@ +@@ -511,7 +511,11 @@ return; host()->WasHidden(); diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 755b0eb4b995..e9e9af547fe6 100644 --- a/patches/chromium/disable_hidden.patch +++ b/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 03e318b14025f3c971d471351068986f8a1dd14d..59437e69e25fe85cffc9b558dec2284123ac48be 100644 +index 63f51521afa85f53073df2e3747eba95e80de09d..ed56e947fa137cbaddaa12503ae983d7acd4463f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -803,6 +803,9 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -809,6 +809,9 @@ void RenderWidgetHostImpl::WasHidden() { if (is_hidden_) return; @@ -20,12 +20,12 @@ index 03e318b14025f3c971d471351068986f8a1dd14d..59437e69e25fe85cffc9b558dec22841 blink::mojom::PointerLockResult::kWrongDocument); diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index 5cc97c9c8305bf23b7cdf39ea68c304fac20b479..a6a65a251711394a33fb02bd66c2eeb7b559f711 100644 +index 5e2e1fe4482fdde0df1a02ae9ae6d68431dac4d8..3ae005ae898ee0dd8befa7699b469fc379b5a1d1 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h -@@ -877,6 +877,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl - void OnLocalSurfaceIdChanged( - const cc::RenderFrameMetadata& metadata) override; +@@ -880,6 +880,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl + + SiteInstanceGroup* GetSiteInstanceGroup(); + // Electron: Prevents the widget from getting hidden. + bool disable_hidden_ = false; @@ -34,10 +34,10 @@ index 5cc97c9c8305bf23b7cdf39ea68c304fac20b479..a6a65a251711394a33fb02bd66c2eeb7 // |routing_id| must not be MSG_ROUTING_NONE. // If this object outlives |delegate|, DetachDelegate() must be called when diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc -index a819dcf960a4c70c0c8cd57710971de2c41e13ca..bbc3671c3fa8e058b8f107d601233735c0822297 100644 +index b39dd8d70aa590677f7d3e95412c0709f0fbbc81..558fd14566a4b953b5140b59ad614b70e1855bc5 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -619,7 +619,7 @@ void RenderWidgetHostViewAura::HideImpl() { +@@ -618,7 +618,7 @@ void RenderWidgetHostViewAura::HideImpl() { DCHECK(visibility_ == Visibility::HIDDEN || visibility_ == Visibility::OCCLUDED); diff --git a/patches/chromium/disable_unload_metrics.patch b/patches/chromium/disable_unload_metrics.patch index cc1a3911ab8a..075e38265e55 100644 --- a/patches/chromium/disable_unload_metrics.patch +++ b/patches/chromium/disable_unload_metrics.patch @@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we should continue seeking for a real fix. diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc -index a460f4643881a0bd70a863884aa50ae76e25c3b7..0635d66dad36e2d6042dd317962527793f5b96f7 100644 +index cd286b4925b3d2d9e74caecee759360488f2b8ba..0bc714a78e58719824ffeba8ced7854474fa6e92 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc -@@ -1159,6 +1159,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1177,6 +1177,7 @@ void Navigator::RecordNavigationMetrics( .InMilliseconds()); } @@ -35,7 +35,7 @@ index a460f4643881a0bd70a863884aa50ae76e25c3b7..0635d66dad36e2d6042dd31796252779 // If this is a same-process navigation and we have timestamps for unload // durations, fill those metrics out as well. if (params.unload_start && params.unload_end && -@@ -1205,6 +1206,7 @@ void Navigator::RecordNavigationMetrics( +@@ -1223,6 +1224,7 @@ void Navigator::RecordNavigationMetrics( first_before_unload_start_time) .InMilliseconds()); } diff --git a/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch b/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch index 6bd042bd527b..692ebe4ddcdb 100644 --- a/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch +++ b/patches/chromium/don_t_run_pcscan_notifythreadcreated_if_pcscan_is_disabled.patch @@ -6,10 +6,10 @@ Subject: Don't run PCScan functions if PCScan is disabled PCScan should not be invoked if PCScan is disabled. Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/2916657. diff --git a/base/allocator/partition_allocator/memory_reclaimer.cc b/base/allocator/partition_allocator/memory_reclaimer.cc -index 63819bf2593894bd763547d58cfae31d821bd7eb..a4ee9520cfc11125837e42955f8f6f6c3f21bf9e 100644 +index 60a33e1501b58d486217d934de6f5c2c392e01bb..3b9ccdf82c6be5b12d32f053bedc5c6d1cd4bc0e 100644 --- a/base/allocator/partition_allocator/memory_reclaimer.cc +++ b/base/allocator/partition_allocator/memory_reclaimer.cc -@@ -67,7 +67,7 @@ void PartitionAllocMemoryReclaimer::Reclaim(int flags) { +@@ -66,7 +66,7 @@ void MemoryReclaimer::Reclaim(int flags) { // // Lastly decommit empty slot spans and lastly try to discard unused pages at // the end of the remaining active slots. @@ -17,9 +17,9 @@ index 63819bf2593894bd763547d58cfae31d821bd7eb..a4ee9520cfc11125837e42955f8f6f6c +#if PA_STARSCAN_ENABLE_STARSCAN_ON_RECLAIM && defined(PA_ALLOW_PCSCAN) { using PCScan = internal::PCScan; - const auto invocation_mode = flags & PartitionPurgeAggressiveReclaim + const auto invocation_mode = flags & PurgeFlags::kAggressiveReclaim diff --git a/base/threading/platform_thread_posix.cc b/base/threading/platform_thread_posix.cc -index 4bfe2501309e832dc9962d5f4642c6b7c782f83d..c45f1207be984fae9aee2cc5b9a7c405ed5ed96e 100644 +index d1b71673ca79ea0f2293cda46564ceb8a018f4e5..ca70bb8fdf7fec2e0d5e2b3bf0ece86def72e21b 100644 --- a/base/threading/platform_thread_posix.cc +++ b/base/threading/platform_thread_posix.cc @@ -43,6 +43,7 @@ diff --git a/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch b/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch index 017e3d543112..d8cdef4d187c 100644 --- a/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch +++ b/patches/chromium/don_t_use_potentially_null_getwebframe_-_view_when_get_blink.patch @@ -11,10 +11,10 @@ This regressed in https://chromium-review.googlesource.com/c/chromium/src/+/2572 Upstream: https://chromium-review.googlesource.com/c/chromium/src/+/2598393 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 44c0ec9815aafd61182fd18a9d125e185d7196bc..a77c39adfc687d43004341d4ca9e6fa676c814f5 100644 +index bc8bdba3facba81c572d43b85881ec02ad7d2f00..3b12ab113f7c159beb74a09f95335977b4ee2b4f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -2394,7 +2394,7 @@ const blink::WebView* RenderFrameImpl::GetWebView() const { +@@ -2367,7 +2367,7 @@ const blink::WebView* RenderFrameImpl::GetWebView() const { } const blink::web_pref::WebPreferences& RenderFrameImpl::GetBlinkPreferences() { diff --git a/patches/chromium/enable_reset_aspect_ratio.patch b/patches/chromium/enable_reset_aspect_ratio.patch index a124b5b3d2ae..b03813082886 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -19,7 +19,7 @@ index a1de50d6b0f699d0651c369cafafdd5bb542242d..65b9f5e5f81e8ef8b591ef2e027e095d aspect_ratio.height()); } diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 8ca72461bb7b42f1bc0da249a36f0fcf9ab6f13c..9ca11a19e66e34585b4b11e89cc3b789a4389b5e 100644 +index b14fa0f41166a904991ec920cec2f45c3b71c953..37bb1e9788a251b3f2c79b5272d4a44c22b707b3 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -936,8 +936,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen) { diff --git a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch index c05e1e16acee..cad261c043f6 100644 --- a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch +++ b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch @@ -21,10 +21,10 @@ index c9b535eb083c250f4f874d8e6bd0c29ea9f3a10f..f220b8669507a4aea616b0dfbabda509 v8::ZoneBackingAllocator* GetZoneBackingAllocator() override; #endif diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc -index a7dad3d1053c3101183b9686adbccaa5cf3a87fc..24da1fde55c345cb58829539aec381af9af57bae 100644 +index 78b8a28eadf392422b55e441634e3161c8c1694c..af3ed7813d9ed5fb294b67a0da1237140b40abbf 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc -@@ -368,6 +368,10 @@ PageAllocator* V8Platform::GetPageAllocator() { +@@ -367,6 +367,10 @@ PageAllocator* V8Platform::GetPageAllocator() { return g_page_allocator.Pointer(); } diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index b30988fba7e9..d04ad170f906 100644 --- a/patches/chromium/expose_setuseragent_on_networkcontext.patch +++ b/patches/chromium/expose_setuseragent_on_networkcontext.patch @@ -33,10 +33,10 @@ index 14c71cc69388da46f62d9835e2a06fef0870da02..9481ea08401ae29ae9c1d960491b05b3 } // namespace net diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 20373c0e86852446569c401c4a993512cb388fc7..9b6dbdad1a17148303ddecaada17a57d4ea22bb2 100644 +index 4c8982a8ae3ae23fbeef244cd23b43c889d3fa94..13b48d5acadf5dcfb40a829751b089c1c29f9450 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1343,6 +1343,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1350,6 +1350,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,10 +51,10 @@ index 20373c0e86852446569c401c4a993512cb388fc7..9b6dbdad1a17148303ddecaada17a57d // 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 e412608e7720004462c48698c8ec39602b2b900e..46c00e0da6beb0c2e689475fc4b9927085414e1a 100644 +index eed05c05d1da28284af6ae0cef45dbbb47254058..f32671202010fa57901a09723feecacc72dbd5f9 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -282,6 +282,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -283,6 +283,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 e412608e7720004462c48698c8ec39602b2b900e..46c00e0da6beb0c2e689475fc4b99270 void SetEnableReferrers(bool enable_referrers) override; #if BUILDFLAG(IS_CHROMEOS) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index fa56cfed3703664232843ad26028096d95dca253..9852498e93939796e7ba6f80efcc7b2d827187ac 100644 +index c929eb10af5b8856debdc0d665eac767e9730714..c20bd2a2d6b989386ce7ef97e43f677e2c5291fa 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1067,6 +1067,9 @@ interface NetworkContext { +@@ -1089,6 +1089,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); diff --git a/patches/chromium/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index b0c806866f56..1a14cd39962a 100644 --- a/patches/chromium/extend_apply_webpreferences.patch +++ b/patches/chromium/extend_apply_webpreferences.patch @@ -12,10 +12,10 @@ Ideally we could add an embedder observer pattern here but that can be done in future work. diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 7e7927c7258963bd95a2c064ef85e410f4d2571d..05353bda1169df38499e6f789bb632307d7bcfde 100644 +index 06d8ca44fb1dc3748d81b5c5a407dfdf7183f845..85e1772fbcbb190e32dd30996541cc2e9d19d057 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -158,6 +158,7 @@ +@@ -159,6 +159,7 @@ #include "third_party/blink/renderer/core/timing/dom_window_performance.h" #include "third_party/blink/renderer/core/timing/window_performance.h" #include "third_party/blink/renderer/platform/fonts/font_cache.h" @@ -23,7 +23,7 @@ index 7e7927c7258963bd95a2c064ef85e410f4d2571d..05353bda1169df38499e6f789bb63230 #include "third_party/blink/renderer/platform/graphics/image.h" #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" -@@ -1776,6 +1777,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, +@@ -1774,6 +1775,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, #if BUILDFLAG(IS_MAC) web_view_impl->SetMaximumLegibleScale( prefs.default_maximum_page_scale_factor); diff --git a/patches/chromium/feat_add_data_transfer_to_requestsingleinstancelock.patch b/patches/chromium/feat_add_data_transfer_to_requestsingleinstancelock.patch index 1f6c211951b0..07752f798efa 100644 --- a/patches/chromium/feat_add_data_transfer_to_requestsingleinstancelock.patch +++ b/patches/chromium/feat_add_data_transfer_to_requestsingleinstancelock.patch @@ -96,19 +96,19 @@ index 5a64220aaf1309832dc0ad543e353de67fe0a779..5b701b1361707b610ed60c344e441e67 // Return true if the given pid is one of our child processes. // Assumes that the current pid is the root of all pids of the current diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a5a1f1424 100644 +index be2c417c07a4206fac4a9a6c03e516fd0493c942..78f74b0b21242553b6af98628dc48190f7d1137d 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc -@@ -148,7 +148,7 @@ const char kACKToken[] = "ACK"; +@@ -146,7 +146,7 @@ const char kACKToken[] = "ACK"; const char kShutdownToken[] = "SHUTDOWN"; const char kTokenDelimiter = '\0'; const int kMaxMessageLength = 32 * 1024; --const int kMaxACKMessageLength = base::size(kShutdownToken) - 1; +-const int kMaxACKMessageLength = std::size(kShutdownToken) - 1; +const int kMaxACKMessageLength = kMaxMessageLength; bool g_disable_prompt = false; bool g_skip_is_chrome_process_check = false; -@@ -614,6 +614,7 @@ class ProcessSingleton::LinuxWatcher +@@ -612,6 +612,7 @@ class ProcessSingleton::LinuxWatcher // |reader| is for sending back ACK message. void HandleMessage(const std::string& current_dir, const std::vector& argv, @@ -116,7 +116,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a SocketReader* reader); private: -@@ -638,6 +639,9 @@ class ProcessSingleton::LinuxWatcher +@@ -636,6 +637,9 @@ class ProcessSingleton::LinuxWatcher // The ProcessSingleton that owns us. ProcessSingleton* const parent_; @@ -126,7 +126,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a std::set, base::UniquePtrComparator> readers_; }; -@@ -668,16 +672,21 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { +@@ -666,16 +670,21 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { } void ProcessSingleton::LinuxWatcher::HandleMessage( @@ -141,7 +141,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a - if (parent_->notification_callback_.Run(base::CommandLine(argv), - base::FilePath(current_dir))) { - // Send back "ACK" message to prevent the client process from starting up. -- reader->FinishWithACK(kACKToken, base::size(kACKToken) - 1); +- reader->FinishWithACK(kACKToken, std::size(kACKToken) - 1); - } else { + auto wrapped_ack_callback = + base::BindRepeating(&ProcessSingleton::LinuxWatcher::AckCallback, @@ -154,7 +154,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a LOG(WARNING) << "Not handling interprocess notification as browser" " is shutting down"; // Send back "SHUTDOWN" message, so that the client process can start up -@@ -687,6 +696,22 @@ void ProcessSingleton::LinuxWatcher::HandleMessage( +@@ -685,6 +694,22 @@ void ProcessSingleton::LinuxWatcher::HandleMessage( } } @@ -165,7 +165,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a + if (!ack_callback_called_) { + ack_callback_called_ = true; + std::string ack_message; -+ ack_message.append(kACKToken, base::size(kACKToken) - 1); ++ ack_message.append(kACKToken, std::size(kACKToken) - 1); + if (response && response->size_bytes()) { + ack_message.append(reinterpret_cast(response->data()), + response->size_bytes()); @@ -177,17 +177,17 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a void ProcessSingleton::LinuxWatcher::RemoveSocketReader(SocketReader* reader) { DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK(reader); -@@ -722,7 +747,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -720,7 +745,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: } } - // Validate the message. The shortest message is kStartToken\0x\0x + // Validate the message. The shortest message kStartToken\0\00 + // The shortest message with additional data is kStartToken\0\00\00\0. - const size_t kMinMessageLength = base::size(kStartToken) + 4; + const size_t kMinMessageLength = std::size(kStartToken) + 4; if (bytes_read_ < kMinMessageLength) { buf_[bytes_read_] = 0; -@@ -752,10 +778,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -750,10 +776,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: tokens.erase(tokens.begin()); tokens.erase(tokens.begin()); @@ -217,7 +217,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a fd_watch_controller_.reset(); // LinuxWatcher::HandleMessage() is in charge of destroying this SocketReader -@@ -784,8 +828,12 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( +@@ -782,8 +826,12 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( // ProcessSingleton::ProcessSingleton( const base::FilePath& user_data_dir, @@ -231,7 +231,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a current_pid_(base::GetCurrentProcId()), watcher_(new LinuxWatcher(this)) { socket_path_ = user_data_dir.Append(chrome::kSingletonSocketFilename); -@@ -904,7 +952,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -902,7 +950,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( sizeof(socket_timeout)); // Found another process, prepare our command line @@ -241,7 +241,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a std::string to_send(kStartToken); to_send.push_back(kTokenDelimiter); -@@ -914,11 +963,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -912,11 +961,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( to_send.append(current_dir.value()); const std::vector& argv = cmd_line.argv(); @@ -263,14 +263,14 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a // Send the message if (!WriteToSocket(socket.fd(), to_send.data(), to_send.length())) { // Try to kill the other process, because it might have been dead. -@@ -960,6 +1019,17 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -958,6 +1017,17 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( linux_ui->NotifyWindowManagerStartupComplete(); #endif -+ size_t ack_data_len = len - (base::size(kACKToken) - 1); ++ size_t ack_data_len = len - (std::size(kACKToken) - 1); + if (ack_data_len) { + const uint8_t* raw_ack_data = -+ reinterpret_cast(buf + base::size(kACKToken) - 1); ++ reinterpret_cast(buf + std::size(kACKToken) - 1); + base::span ack_data = + base::make_span(raw_ack_data, raw_ack_data + ack_data_len); + notification_ack_callback_.Run(&ack_data); @@ -282,7 +282,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..44d563e35efb318c5684c30fc441996a return PROCESS_NOTIFIED; } diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc -index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce82ad6abb2 100644 +index ec725b44296266bea1a51aea889463a0bba8449c..a3d4dd1efc950033855a1f2783f941384b249a5d 100644 --- a/chrome/browser/process_singleton_win.cc +++ b/chrome/browser/process_singleton_win.cc @@ -21,6 +21,7 @@ @@ -434,7 +434,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce8 return true; } -@@ -254,9 +343,13 @@ bool ProcessSingleton::EscapeVirtualization( +@@ -261,9 +350,13 @@ bool ProcessSingleton::EscapeVirtualization( ProcessSingleton::ProcessSingleton( const std::string& program_name, const base::FilePath& user_data_dir, @@ -449,7 +449,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce8 program_name_(program_name), is_app_sandboxed_(is_app_sandboxed), is_virtualized_(false), -@@ -271,6 +364,37 @@ ProcessSingleton::~ProcessSingleton() { +@@ -278,6 +371,37 @@ ProcessSingleton::~ProcessSingleton() { ::CloseHandle(lock_file_); } @@ -487,7 +487,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce8 // Code roughly based on Mozilla. ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { TRACE_EVENT0("startup", "ProcessSingleton::NotifyOtherProcess"); -@@ -283,8 +407,9 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { +@@ -290,8 +414,9 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { return PROCESS_NONE; } @@ -498,7 +498,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce8 return PROCESS_NOTIFIED; case chrome::NOTIFY_FAILED: remote_window_ = NULL; -@@ -422,6 +547,18 @@ bool ProcessSingleton::Create() { +@@ -429,6 +554,18 @@ bool ProcessSingleton::Create() { << "Lock file can not be created! Error code: " << error; if (lock_file_ != INVALID_HANDLE_VALUE) { @@ -517,7 +517,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..1d393e6e161b896a47d3490d902f2ce8 // Set the window's title to the path of our user data directory so // other Chrome instances can decide if they should forward to us. TRACE_EVENT0("startup", "ProcessSingleton::Create:CreateWindow"); -@@ -449,6 +586,7 @@ bool ProcessSingleton::Create() { +@@ -456,6 +593,7 @@ bool ProcessSingleton::Create() { } void ProcessSingleton::Cleanup() { diff --git a/patches/chromium/feat_add_onclose_to_messageport.patch b/patches/chromium/feat_add_onclose_to_messageport.patch index cf52cfa05ff5..01d4fd5beeb2 100644 --- a/patches/chromium/feat_add_onclose_to_messageport.patch +++ b/patches/chromium/feat_add_onclose_to_messageport.patch @@ -10,10 +10,10 @@ get this standardised, but in lieu of that, this makes MessagePort a whole bunch more useful! diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc -index c5714d115210488cb531c1e54de540f429636638..6f67b21803fcdc2498ef207878d1541e04822fca 100644 +index a284d187968914b4304eb49362b2a8ccafa5e5c2..d6f8bf39c47cfc622dec5736d82ccc308d406cfa 100644 --- a/third_party/blink/renderer/core/messaging/message_port.cc +++ b/third_party/blink/renderer/core/messaging/message_port.cc -@@ -161,6 +161,7 @@ void MessagePort::close() { +@@ -162,6 +162,7 @@ void MessagePort::close() { Entangle(pipe.TakePort0()); } closed_ = true; diff --git a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch b/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch index fbd9cec05e06..8b78ba638e7d 100644 --- a/patches/chromium/feat_add_set_theme_source_to_allow_apps_to.patch +++ b/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 5376b01ad03c346ecc1c5d47ff125103dbc05eb8..a60ce1d4fe6b7132d7adac1a7687c7185d1abee3 100644 +index 3f596e0d24ccf7586e2e20d219b73300ee3f56a0..0eb957667b591d1215b60f83141d8431079c1f45 100644 --- a/ui/native_theme/native_theme.cc +++ b/ui/native_theme/native_theme.cc -@@ -114,6 +114,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors, +@@ -124,6 +124,8 @@ NativeTheme::NativeTheme(bool should_use_dark_colors, NativeTheme::~NativeTheme() = default; bool NativeTheme::ShouldUseDarkColors() const { @@ -26,12 +26,12 @@ index 5376b01ad03c346ecc1c5d47ff125103dbc05eb8..a60ce1d4fe6b7132d7adac1a7687c718 } diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h -index e46bc2cf64ca554c0e21a4e0851ad092f504e080..0ffe583d56ddc3abec8c848c1cd5dbc3623acb5b 100644 +index 3b9c8841ac65471141307025394464a90b02daa9..dba57a6af6a3ce8dc258a747d721fbc9d50b0ebf 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h -@@ -389,6 +389,23 @@ class NATIVE_THEME_EXPORT NativeTheme { - scoped_refptr custom_theme) - const; +@@ -392,6 +392,23 @@ class NATIVE_THEME_EXPORT NativeTheme { + custom_theme, + bool use_custom_frame = true) const; + + enum ThemeSource { @@ -53,7 +53,7 @@ index e46bc2cf64ca554c0e21a4e0851ad092f504e080..0ffe583d56ddc3abec8c848c1cd5dbc3 // 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 -@@ -558,6 +575,7 @@ class NATIVE_THEME_EXPORT NativeTheme { +@@ -557,6 +574,7 @@ class NATIVE_THEME_EXPORT NativeTheme { bool forced_colors_ = false; PreferredColorScheme preferred_color_scheme_ = PreferredColorScheme::kLight; PreferredContrast preferred_contrast_ = PreferredContrast::kNoPreference; diff --git a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch index 8aec002466d4..72cb9fc018ca 100644 --- a/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch +++ b/patches/chromium/feat_add_streaming-protocol_registry_to_multibuffer_data_source.patch @@ -12,21 +12,8 @@ This patch adds a list of "streaming protocols" to the MultibufferDataSource in other protocols to register their streaming behavior. MultibufferDataSource::AssumeFullyBuffered() then refers to the list so that it can correctly determine the data source's settings. -diff --git a/third_party/blink/public/platform/media/multi_buffer_data_source.h b/third_party/blink/public/platform/media/multi_buffer_data_source.h -index fd2441add0c816c5031ed0e9321d2be7e0937161..c324d855b26f6dcb63d127d7ddafa509cb1074e4 100644 ---- a/third_party/blink/public/platform/media/multi_buffer_data_source.h -+++ b/third_party/blink/public/platform/media/multi_buffer_data_source.h -@@ -33,6 +33,8 @@ namespace blink { - class BufferedDataSourceHost; - class MultiBufferReader; - -+void BLINK_PLATFORM_EXPORT AddStreamingScheme(const char* new_scheme); -+ - // A data source capable of loading URLs and buffering the data using an - // in-memory sliding window. - // diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc -index ba3e8d75ce49614e26dd77692166a11b614a5d9c..4c3170ecb94716ec2869c363381759cbf08f3ae6 100644 +index 58256037e0a2485a9f8de9f4086550f39e865b2d..3456f1d55b16239698ba83d1d27beec1c3806192 100644 --- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc +++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc @@ -10,8 +10,10 @@ @@ -39,7 +26,7 @@ index ba3e8d75ce49614e26dd77692166a11b614a5d9c..4c3170ecb94716ec2869c363381759cb +#include "base/strings/string_util.h" #include "media/base/media_log.h" #include "net/base/net_errors.h" - #include "third_party/blink/public/platform/media/buffered_data_source_host_impl.h" + #include "third_party/blink/renderer/platform/media/buffered_data_source_host_impl.h" @@ -60,8 +62,20 @@ const int kUpdateBufferSizeFrequency = 32; // How long to we delay a seek after a read? constexpr base::TimeDelta kSeekDelay = base::Milliseconds(20); @@ -77,3 +64,16 @@ index ba3e8d75ce49614e26dd77692166a11b614a5d9c..4c3170ecb94716ec2869c363381759cb } void MultiBufferDataSource::SetReader(MultiBufferReader* reader) { +diff --git a/third_party/blink/renderer/platform/media/multi_buffer_data_source.h b/third_party/blink/renderer/platform/media/multi_buffer_data_source.h +index cb5d1951af2ff71cc6c7905235d85d6cbc541ae7..292bcf55be733a5cc1e32e11bd00e9acebdbfcbf 100644 +--- a/third_party/blink/renderer/platform/media/multi_buffer_data_source.h ++++ b/third_party/blink/renderer/platform/media/multi_buffer_data_source.h +@@ -33,6 +33,8 @@ namespace blink { + class BufferedDataSourceHost; + class MultiBufferReader; + ++void BLINK_PLATFORM_EXPORT AddStreamingScheme(const char* new_scheme); ++ + // A data source capable of loading URLs and buffering the data using an + // in-memory sliding window. + // diff --git a/patches/chromium/feat_add_support_for_overriding_the_base_spellchecker_download_url.patch b/patches/chromium/feat_add_support_for_overriding_the_base_spellchecker_download_url.patch index 9fc5bef9c502..ae711b32caf3 100644 --- a/patches/chromium/feat_add_support_for_overriding_the_base_spellchecker_download_url.patch +++ b/patches/chromium/feat_add_support_for_overriding_the_base_spellchecker_download_url.patch @@ -9,10 +9,10 @@ production use cases. This is unlikely to be upstreamed as the change is entirely in //chrome. diff --git a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc -index 22fade6370fe654e48373f35bbac079131b873ff..57d694eab66c1431789405656f600390e023b533 100644 +index c1821235df8abd9c0991efeb1d82f8b6075e48e7..a35fc3aa63e6d57ef78ee4690f761060b074ec85 100644 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc -@@ -51,6 +51,9 @@ namespace { +@@ -52,6 +52,9 @@ namespace { base::LazyInstance::Leaky g_download_url_for_testing = LAZY_INSTANCE_INITIALIZER; @@ -22,7 +22,7 @@ index 22fade6370fe654e48373f35bbac079131b873ff..57d694eab66c1431789405656f600390 // Close the file. void CloseDictionary(base::File file) { base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, -@@ -271,6 +274,10 @@ void SpellcheckHunspellDictionary::SetDownloadURLForTesting(const GURL url) { +@@ -272,6 +275,10 @@ void SpellcheckHunspellDictionary::SetDownloadURLForTesting(const GURL url) { g_download_url_for_testing.Get() = url; } @@ -33,7 +33,7 @@ index 22fade6370fe654e48373f35bbac079131b873ff..57d694eab66c1431789405656f600390 GURL SpellcheckHunspellDictionary::GetDictionaryURL() { if (g_download_url_for_testing.Get() != GURL()) return g_download_url_for_testing.Get(); -@@ -278,6 +285,9 @@ GURL SpellcheckHunspellDictionary::GetDictionaryURL() { +@@ -279,6 +286,9 @@ GURL SpellcheckHunspellDictionary::GetDictionaryURL() { std::string bdict_file = dictionary_file_.path.BaseName().MaybeAsASCII(); DCHECK(!bdict_file.empty()); diff --git a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch index 231ad6fe4f48..f8f64ec23fbe 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -81,7 +81,7 @@ index 309422bcf85810db88a048bd0930c4072b41f234..759549f3046f4a897b597409b670bb1c private: const HWND hwnd_; diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn -index eff91b68cf4b72de41b7b2ad09c029b8b5dcf3c6..c736f772e3714c6a80703c41c8a2f0dab36b166d 100644 +index 002b3ddfb0f77b787b74ee088578e3eb813d0192..a9003a98546bbfe78e2d30457a032218cc263441 100644 --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn @@ -139,6 +139,8 @@ viz_component("service") { @@ -108,7 +108,7 @@ index 77d463e683d8b8d3a202681a6884eacaab79d70d..05d51cb2637d34c073cd0025e3658036 } // namespace viz diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc -index 8a277c6337d446890bb32814a68db2a9d3d3cd72..4c4e631d5a1476eaad6f54281e6d6899070d1a65 100644 +index 8a277c6337d446890bb32814a68db2a9d3d3cd72..1c967969a03c985e68f744cf4815cefbdd2c0f71 100644 --- a/components/viz/service/display_embedder/output_surface_provider_impl.cc +++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc @@ -26,6 +26,7 @@ @@ -159,9 +159,9 @@ index 8a277c6337d446890bb32814a68db2a9d3d3cd72..4c4e631d5a1476eaad6f54281e6d6899 +#if !BUILDFLAG(IS_APPLE) + if (offscreen) { + DCHECK(display_client); -+ mojom::LayeredWindowUpdaterPtr layered_window_updater; ++ mojo::PendingRemote layered_window_updater; + display_client->CreateLayeredWindowUpdater( -+ mojo::MakeRequest(&layered_window_updater)); ++ layered_window_updater.InitWithNewPipeAndPassReceiver()); + return std::make_unique( + std::move(layered_window_updater)); + } @@ -226,7 +226,7 @@ index a480befb5d8db36e7e281d5033aeef0bea83d220..4e54acc897d08c87bccc3b44f68634e2 diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc new file mode 100644 -index 0000000000000000000000000000000000000000..88aba74877a6490e08e357266b1ce8461b5b6dff +index 0000000000000000000000000000000000000000..d5e90022d129ce6a7a8effd6c85d3a5295ac79bf --- /dev/null +++ b/components/viz/service/display_embedder/software_output_device_proxy.cc @@ -0,0 +1,158 @@ @@ -302,7 +302,7 @@ index 0000000000000000000000000000000000000000..88aba74877a6490e08e357266b1ce846 +SoftwareOutputDeviceProxy::~SoftwareOutputDeviceProxy() = default; + +SoftwareOutputDeviceProxy::SoftwareOutputDeviceProxy( -+ mojom::LayeredWindowUpdaterPtr layered_window_updater) ++ mojo::PendingRemote layered_window_updater) + : layered_window_updater_(std::move(layered_window_updater)) { + DCHECK(layered_window_updater_.is_bound()); +} @@ -390,10 +390,10 @@ index 0000000000000000000000000000000000000000..88aba74877a6490e08e357266b1ce846 +} // namespace viz diff --git a/components/viz/service/display_embedder/software_output_device_proxy.h b/components/viz/service/display_embedder/software_output_device_proxy.h new file mode 100644 -index 0000000000000000000000000000000000000000..a80258d6165e45a3c3d2b551158ff7d2a5778a7c +index 0000000000000000000000000000000000000000..daeabe1906b177adfe56b8057a72afb33269f976 --- /dev/null +++ b/components/viz/service/display_embedder/software_output_device_proxy.h -@@ -0,0 +1,93 @@ +@@ -0,0 +1,95 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -409,6 +409,8 @@ index 0000000000000000000000000000000000000000..a80258d6165e45a3c3d2b551158ff7d2 +#include "components/viz/host/host_display_client.h" +#include "components/viz/service/display/software_output_device.h" +#include "components/viz/service/viz_service_export.h" ++#include "mojo/public/cpp/bindings/pending_remote.h" ++#include "mojo/public/cpp/bindings/remote.h" +#include "services/viz/privileged/mojom/compositing/display_private.mojom.h" +#include "services/viz/privileged/mojom/compositing/layered_window_updater.mojom.h" + @@ -455,7 +457,7 @@ index 0000000000000000000000000000000000000000..a80258d6165e45a3c3d2b551158ff7d2 +class SoftwareOutputDeviceProxy : public SoftwareOutputDeviceBase { + public: + explicit SoftwareOutputDeviceProxy( -+ mojom::LayeredWindowUpdaterPtr layered_window_updater); ++ mojo::PendingRemote layered_window_updater); + ~SoftwareOutputDeviceProxy() override; + + SoftwareOutputDeviceProxy(const SoftwareOutputDeviceProxy&) = delete; @@ -473,7 +475,7 @@ index 0000000000000000000000000000000000000000..a80258d6165e45a3c3d2b551158ff7d2 + // Runs |swap_ack_callback_| after draw has happened. + void DrawAck(); + -+ mojom::LayeredWindowUpdaterPtr layered_window_updater_; ++ mojo::Remote layered_window_updater_; + + std::unique_ptr canvas_; + bool waiting_on_draw_ack_ = false; @@ -501,7 +503,7 @@ index 583e3e2525c753a0962d481fc67a3582df75d0e9..9416ec929bebcff7f07088e635376ef2 waiting_on_draw_ack_ = true; diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc -index 4b6712b2a4f3c56a6d243ff9d93539505a5c7b86..7f62362ab27abd3497d23e8db8c8bb5a2e3392f9 100644 +index df92bab44402330869b44aa76bb40fc20e33b16a..2b3fbaee17c0a8bb7b04cd4c4edb13626dd1bb27 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc @@ -84,7 +84,8 @@ RootCompositorFrameSinkImpl::Create( @@ -571,7 +573,7 @@ index 6b7fbb6cf13dc8ee6ade0878a9a2c1efc5d4d3f1..e2af75168cb914a7b3b4a6c9b6a28549 + Draw(gfx.mojom.Rect damage_rect) => (); }; diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h -index 8b74e1d2a463156f62e983f535ff68a53215f648..6ef04da46c8b097b01d5ee40dcadf222d7a7870c 100644 +index b30b9460889b9bb3862f4e28b5f1292a118f2a09..d8f1f921d3e6e74c99d6a22c902f81dfc5bb646e 100644 --- a/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h @@ -81,6 +81,7 @@ class DisplayPrivate; @@ -599,7 +601,7 @@ index 8b74e1d2a463156f62e983f535ff68a53215f648..6ef04da46c8b097b01d5ee40dcadf222 // Compositor object to take care of GPU painting. // A Browser compositor object is responsible for generating the final // displayable form of pixels comprising a single widget's contents. It draws an -@@ -177,6 +188,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -178,6 +189,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -609,7 +611,7 @@ index 8b74e1d2a463156f62e983f535ff68a53215f648..6ef04da46c8b097b01d5ee40dcadf222 // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -467,6 +481,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -466,6 +480,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, std::unique_ptr pending_begin_frame_args_; @@ -619,7 +621,7 @@ index 8b74e1d2a463156f62e983f535ff68a53215f648..6ef04da46c8b097b01d5ee40dcadf222 raw_ptr root_layer_ = nullptr; diff --git a/ui/gfx/ca_layer_params.h b/ui/gfx/ca_layer_params.h -index 12e115cd6a128d8d150abc786d4d38b1d5119d91..b6320de28750333bee7ee83393849f4eb0a956ac 100644 +index c5fb29b30b9c5b7483998c567ed9a479d8743939..dc10d78315f76a3914ccd6e2e99af97fa909918b 100644 --- a/ui/gfx/ca_layer_params.h +++ b/ui/gfx/ca_layer_params.h @@ -6,6 +6,7 @@ @@ -630,7 +632,7 @@ index 12e115cd6a128d8d150abc786d4d38b1d5119d91..b6320de28750333bee7ee83393849f4e #include "ui/gfx/geometry/size.h" #include "ui/gfx/gfx_export.h" -@@ -51,6 +52,8 @@ struct GFX_EXPORT CALayerParams { +@@ -41,6 +42,8 @@ struct GFX_EXPORT CALayerParams { gfx::ScopedRefCountedIOSurfaceMachPort io_surface_mach_port; #endif diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch index 9dc1207d32df..f07fe207b2f5 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -103,10 +103,10 @@ index 4c4cc16db82d7434573f7740855fbe72d68815e6..f71290800b6bb51a39b1f86be36f02d6 string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index 5c5aeeda64b244ab1f58556f28d2ca3c133d03a8..2f9aa4d49693a22507f668b2738c54be59802b8f 100644 +index 1530c51f9090ce51de1f3bc495ca83590d6430ab..d053aa813ab53092dcefb81116ff850318f439c2 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -469,6 +469,7 @@ URLLoader::URLLoader( +@@ -470,6 +470,7 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, base::SequencedTaskRunnerHandle::Get()), per_factory_corb_state_(context.GetMutableCorbState()), @@ -114,7 +114,7 @@ index 5c5aeeda64b244ab1f58556f28d2ca3c133d03a8..2f9aa4d49693a22507f668b2738c54be devtools_request_id_(request.devtools_request_id), request_mode_(request.mode), request_credentials_mode_(request.credentials_mode), -@@ -636,7 +637,7 @@ URLLoader::URLLoader( +@@ -637,7 +638,7 @@ URLLoader::URLLoader( url_request_->SetRequestHeadersCallback(base::BindRepeating( &URLLoader::SetRawRequestHeadersAndNotify, base::Unretained(this))); @@ -123,7 +123,7 @@ index 5c5aeeda64b244ab1f58556f28d2ca3c133d03a8..2f9aa4d49693a22507f668b2738c54be url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1395,6 +1396,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1408,6 +1409,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); @@ -144,10 +144,10 @@ index 5c5aeeda64b244ab1f58556f28d2ca3c133d03a8..2f9aa4d49693a22507f668b2738c54be // Parse and remove the Trust Tokens response headers, if any are expected, diff --git a/services/network/url_loader.h b/services/network/url_loader.h -index 98fe2512671e43a4e0da6e9b9ff714d7204fc3a8..bf8751c1b37a678f73ec8e11c86e1eb1287443e4 100644 +index 53822d17b20f4e6d163d0dc84eea6c455254a5f7..c494a63b0c1dcb39120e8aabc84a60ebbf2ff224 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -506,6 +506,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -502,6 +502,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader std::unique_ptr resource_scheduler_request_handle_; diff --git a/patches/chromium/fix_aspect_ratio_with_max_size.patch b/patches/chromium/fix_aspect_ratio_with_max_size.patch index 195ea7ae74d6..498c91f8f91a 100644 --- a/patches/chromium/fix_aspect_ratio_with_max_size.patch +++ b/patches/chromium/fix_aspect_ratio_with_max_size.patch @@ -11,10 +11,10 @@ enlarge window above dimensions set during creation of the BrowserWindow. diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 9ca11a19e66e34585b4b11e89cc3b789a4389b5e..264a9109e42c23e9be6bf7269b3cfee2634b61e4 100644 +index 37bb1e9788a251b3f2c79b5272d4a44c22b707b3..29c3104308e9e64d0ab99bdfae00479f8e1bfaa1 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -3581,6 +3581,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, +@@ -3597,6 +3597,21 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, delegate_->GetMinMaxSize(&min_window_size, &max_window_size); min_window_size = delegate_->DIPToScreenSize(min_window_size); max_window_size = delegate_->DIPToScreenSize(max_window_size); diff --git a/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch b/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch index 7db4c0911e37..a17c7119f3e7 100644 --- a/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch +++ b/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch @@ -12,11 +12,11 @@ therefore causes unmapped page access crashes. This patch can be removed should we choose to support chrome.fileSystem or support it enough to fix the crash. -diff --git a/chrome/browser/resources/pdf/pdf_viewer.js b/chrome/browser/resources/pdf/pdf_viewer.js -index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b66399eb9 100644 ---- a/chrome/browser/resources/pdf/pdf_viewer.js -+++ b/chrome/browser/resources/pdf/pdf_viewer.js -@@ -966,25 +966,12 @@ export class PDFViewerElement extends PDFViewerBaseElement { +diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts +index 2e370bf7fd61d75677cfc84798ba543a48f3bc19..fc8f471745c8daf30679df1ffb994febe62cfbea 100644 +--- a/chrome/browser/resources/pdf/pdf_viewer.ts ++++ b/chrome/browser/resources/pdf/pdf_viewer.ts +@@ -855,26 +855,12 @@ export class PDFViewerElement extends PDFViewerBaseElement { dataArray = [result.dataToSave]; } @@ -25,7 +25,8 @@ index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b const blob = new Blob(dataArray); - const fileName = this.attachments_[index].name; - chrome.fileSystem.chooseEntry( -- {type: 'saveFile', suggestedName: fileName}, entry => { +- {type: 'saveFile', suggestedName: fileName}, +- (entry?: FileSystemFileEntry) => { - if (chrome.runtime.lastError) { - if (chrome.runtime.lastError.message !== 'User cancelled') { - console.error( @@ -34,7 +35,7 @@ index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b - } - return; - } -- entry.createWriter(writer => { +- entry!.createWriter((writer: FileWriter) => { - writer.write(blob); - // Unblock closing the window now that the user has saved - // successfully. @@ -47,12 +48,11 @@ index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b } /** -@@ -1111,30 +1098,13 @@ export class PDFViewerElement extends PDFViewerBaseElement { - if (!fileName.toLowerCase().endsWith('.pdf')) { +@@ -982,30 +968,12 @@ export class PDFViewerElement extends PDFViewerBaseElement { fileName = fileName + '.pdf'; } + - // Create blob before callback to avoid race condition. -+ + const a = document.createElement('a'); + a.download = fileName; const blob = new Blob([result.dataToSave], {type: 'application/pdf'}); @@ -62,7 +62,7 @@ index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b - accepts: [{description: '*.pdf', extensions: ['pdf']}], - suggestedName: fileName - }, -- entry => { +- (entry?: FileSystemFileEntry) => { - if (chrome.runtime.lastError) { - if (chrome.runtime.lastError.message !== 'User cancelled') { - console.error( @@ -71,7 +71,7 @@ index f3d71309080248024983891acb17d4df69648056..3cd563ed13ab9bd8fa084f54eb8f112b - } - return; - } -- entry.createWriter(writer => { +- entry!.createWriter((writer: FileWriter) => { - writer.write(blob); - // Unblock closing the window now that the user has saved - // successfully. diff --git a/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch b/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch index 458f2e257efd..1bc8ed89784d 100644 --- a/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch +++ b/patches/chromium/fix_expose_decrementcapturercount_in_web_contents_impl.patch @@ -8,10 +8,10 @@ we invoke it in order to expose contents.decrementCapturerCount([stayHidden, sta to users. We should try to upstream this. diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 7440f2025701ccde0ade36cda22467dd0614109b..3c6ee78454dc9154a37ec9046e382878ffda0c82 100644 +index 55224f960151b0cae23b2a49d755eace630e9e3a..86ab5a5e5e3e881fdaf3528640f097493123da74 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -1830,7 +1830,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, +@@ -1827,7 +1827,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, // IncrementCapturerCount() is destructed. void DecrementCapturerCount(bool stay_hidden, bool stay_awake, @@ -21,7 +21,7 @@ index 7440f2025701ccde0ade36cda22467dd0614109b..3c6ee78454dc9154a37ec9046e382878 // Calculates the PageVisibilityState for |visibility|, taking the capturing // state into account. diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index cd1b44d4ff5ce8924749ba9e41b3f599108bb8fd..72bc509b0506fafd026aa858864623886142b5f0 100644 +index d159f44dc855fee799f7b97b59a2a4e64631e7b4..b583fb7ff191d5dfce4b8fee5f06e074b3a6ea4f 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h @@ -673,6 +673,10 @@ class WebContents : public PageNavigator, diff --git a/patches/chromium/fix_media_key_usage_with_globalshortcuts.patch b/patches/chromium/fix_media_key_usage_with_globalshortcuts.patch index 7460a09ea3be..f9edde8861fa 100644 --- a/patches/chromium/fix_media_key_usage_with_globalshortcuts.patch +++ b/patches/chromium/fix_media_key_usage_with_globalshortcuts.patch @@ -59,10 +59,10 @@ index ad366d0fd4c3a637d75a102ab56984f0d01bfc04..d63eb133fd4bab1ea309bb8c742acf88 // true if register successfully, or false if 1) the specificied |accelerator| // has been registered by another caller or other native applications, or diff --git a/content/browser/media/media_keys_listener_manager_impl.cc b/content/browser/media/media_keys_listener_manager_impl.cc -index ac923f436cbdd6ded0629da4e4c659d94258e55b..43f9531075bcef87de8e60f24071f49fe4cd0891 100644 +index b954f8dde00d4f5257223c464e9145a6bef48900..b58999f295586a61bcc2648488a8b28f15d80a7e 100644 --- a/content/browser/media/media_keys_listener_manager_impl.cc +++ b/content/browser/media/media_keys_listener_manager_impl.cc -@@ -55,7 +55,12 @@ bool MediaKeysListenerManagerImpl::StartWatchingMediaKey( +@@ -56,7 +56,12 @@ bool MediaKeysListenerManagerImpl::StartWatchingMediaKey( CanActiveMediaSessionControllerReceiveEvents(); // Tell the underlying MediaKeysListener to listen for the key. @@ -76,7 +76,7 @@ index ac923f436cbdd6ded0629da4e4c659d94258e55b..43f9531075bcef87de8e60f24071f49f !media_keys_listener_->StartWatchingMediaKey(key_code)) { return false; } -@@ -238,18 +243,18 @@ void MediaKeysListenerManagerImpl::StartListeningForMediaKeysIfNecessary() { +@@ -239,18 +244,18 @@ void MediaKeysListenerManagerImpl::StartListeningForMediaKeysIfNecessary() { #endif if (system_media_controls_) { diff --git a/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch b/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch index 86a3c0fbc97b..5f8396839066 100644 --- a/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch +++ b/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch @@ -48,10 +48,10 @@ index 4a894ef70eeb1d8489049aef552c9bae4f24ae62..f5049d730a850f2947023f976b25fb77 } } diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.h b/content/browser/renderer_host/legacy_render_widget_host_win.h -index 79dffd981f4d461f30bd3796cfba1457eda3a89d..ae378ce95f90989fd0e74c38b57f5f7dc0a1ee29 100644 +index 81e5cde38627914e6a19ed2c1ab62547fdd7fc19..111c59c91073578d8d176598b5e4d10b84918d4c 100644 --- a/content/browser/renderer_host/legacy_render_widget_host_win.h +++ b/content/browser/renderer_host/legacy_render_widget_host_win.h -@@ -105,6 +105,7 @@ class CONTENT_EXPORT LegacyRenderWidgetHostHWND +@@ -106,6 +106,7 @@ class CONTENT_EXPORT LegacyRenderWidgetHostHWND MESSAGE_HANDLER_EX(WM_NCHITTEST, OnNCHitTest) MESSAGE_RANGE_HANDLER(WM_NCMOUSEMOVE, WM_NCXBUTTONDBLCLK, OnMouseRange) diff --git a/patches/chromium/fix_patch_out_permissions_checks_in_exclusive_access.patch b/patches/chromium/fix_patch_out_permissions_checks_in_exclusive_access.patch index f957509ddd87..dfbc1343d682 100644 --- a/patches/chromium/fix_patch_out_permissions_checks_in_exclusive_access.patch +++ b/patches/chromium/fix_patch_out_permissions_checks_in_exclusive_access.patch @@ -14,10 +14,10 @@ but it's not strictly necessary for this API to work to spec. Profile check has been upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/3247196 diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc -index 9b2c91d39324b61afa49ccea6be2eda8308473ff..1652b52c5c752809348b3ab44d3703ac343c829d 100644 +index 8d6f8aedab475c1a553949bfcba3753ebed87778..e379e4995b0812be5970cf9741a00e4f99dea3f1 100644 --- a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc +++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc -@@ -382,13 +382,9 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -384,13 +384,9 @@ void FullscreenController::EnterFullscreenModeInternal( // Do not enter fullscreen mode if disallowed by pref. This prevents the user // from manually entering fullscreen mode and also disables kiosk mode on // desktop platforms. @@ -33,7 +33,7 @@ index 9b2c91d39324b61afa49ccea6be2eda8308473ff..1652b52c5c752809348b3ab44d3703ac #endif toggled_into_fullscreen_ = true; -@@ -401,6 +397,7 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -403,6 +399,7 @@ void FullscreenController::EnterFullscreenModeInternal( url = extension_caused_fullscreen_; } @@ -41,7 +41,7 @@ index 9b2c91d39324b61afa49ccea6be2eda8308473ff..1652b52c5c752809348b3ab44d3703ac if (display_id != display::kInvalidDisplayId) { // Check, but do not prompt, for permission to request a specific screen. // Sites generally need permission to get the display id in the first place. -@@ -413,6 +410,7 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -415,6 +412,7 @@ void FullscreenController::EnterFullscreenModeInternal( display_id = display::kInvalidDisplayId; } } diff --git a/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch b/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch index 0559a3d4c452..929bc1574435 100644 --- a/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch +++ b/patches/chromium/fix_patch_out_profile_refs_in_accessibility_ui.patch @@ -7,7 +7,7 @@ This tweaks Chrome's Accessibility support at chrome://accessibility to make it usable from Electron by removing Profile references. diff --git a/chrome/browser/accessibility/accessibility_ui.cc b/chrome/browser/accessibility/accessibility_ui.cc -index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a65560d9e 100644 +index b9fd875b26d64e84201605978f897b234b998f6f..20ac941733b0b1f9e14954fde1c17b7b90008d9b 100644 --- a/chrome/browser/accessibility/accessibility_ui.cc +++ b/chrome/browser/accessibility/accessibility_ui.cc @@ -20,7 +20,10 @@ @@ -61,21 +61,22 @@ index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a data.SetStringKey(kInternal, show_internal ? kOn : kOff); std::unique_ptr rvh_list(new base::ListValue()); -@@ -271,11 +278,11 @@ void HandleAccessibilityRequestCallback( +@@ -271,12 +278,12 @@ void HandleAccessibilityRequestCallback( data.Set(kPagesField, std::move(rvh_list)); std::unique_ptr browser_list(new base::ListValue()); -#if !BUILDFLAG(IS_ANDROID) +#if 0 for (Browser* browser : *BrowserList::GetInstance()) { - browser_list->Append(BuildTargetDescriptor(browser)); + browser_list->Append( + base::Value::FromUniquePtrValue(BuildTargetDescriptor(browser))); } -#endif // !BUILDFLAG(IS_ANDROID) +#endif // !BUILDFLAG(IS_ANDROID) data.Set(kBrowsersField, std::move(browser_list)); std::unique_ptr widgets_list(new base::ListValue()); -@@ -491,8 +498,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag(const base::ListValue* args) { +@@ -493,8 +500,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag(const base::ListValue* args) { AllowJavascript(); if (flag_name_str == kInternal) { @@ -86,7 +87,7 @@ index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a return; } -@@ -599,10 +608,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree( +@@ -601,10 +610,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree( AXPropertyFilter::ALLOW_EMPTY); AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY); @@ -100,7 +101,7 @@ index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a result->SetStringKey(kTreeField, accessibility_contents); FireWebUIListener(request_type, *(result.get())); } -@@ -627,6 +638,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( +@@ -629,6 +640,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( AXPropertyFilter::ALLOW_EMPTY); AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY); @@ -108,7 +109,7 @@ index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a for (Browser* browser : *BrowserList::GetInstance()) { if (browser->session_id().id() == session_id) { std::unique_ptr result( -@@ -641,6 +653,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( +@@ -643,6 +655,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree( return; } } @@ -116,7 +117,7 @@ index 555dba06e99bd7294f88a21ddaf3b86a12fdd5ac..8064592eb285d1407ff8334149c27e3a #endif // !BUILDFLAG(IS_ANDROID) // No browser with the specified |session_id| was found. std::unique_ptr result(new base::DictionaryValue()); -@@ -757,5 +770,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents( +@@ -759,5 +772,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents( // static void AccessibilityUIMessageHandler::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { diff --git a/patches/chromium/fix_properly_honor_printing_page_ranges.patch b/patches/chromium/fix_properly_honor_printing_page_ranges.patch index 7addac9d2579..fb162f70ab70 100644 --- a/patches/chromium/fix_properly_honor_printing_page_ranges.patch +++ b/patches/chromium/fix_properly_honor_printing_page_ranges.patch @@ -62,10 +62,10 @@ index 9e351c7e80a135adf0ebe011763f5164e51981bb..b9fcb4d2a8c7a22ebc7cd8434636454e PMPrintSettings print_settings = static_cast([print_info_.get() PMPrintSettings]); diff --git a/printing/printing_context_system_dialog_win.cc b/printing/printing_context_system_dialog_win.cc -index a964910a3b7e3bd225a3b8dc35ef9dc57c77248d..9f791d9ba5f0b540f5e3a67f5e1abb318ddb7680 100644 +index ba604d33cc0601276320f3f81f20e98cb2811f74..1da667c66b75ab44727c5029c02d44379f924007 100644 --- a/printing/printing_context_system_dialog_win.cc +++ b/printing/printing_context_system_dialog_win.cc -@@ -54,14 +54,28 @@ void PrintingContextSystemDialogWin::AskUserForSettings( +@@ -53,14 +53,28 @@ void PrintingContextSystemDialogWin::AskUserForSettings( PRINTPAGERANGE ranges[32]; dialog_options.nStartPage = START_PAGE_GENERAL; if (max_pages) { @@ -74,7 +74,7 @@ index a964910a3b7e3bd225a3b8dc35ef9dc57c77248d..9f791d9ba5f0b540f5e3a67f5e1abb31 - ranges[0].nFromPage = 1; - ranges[0].nToPage = max_pages; - dialog_options.nPageRanges = 1; -- dialog_options.nMaxPageRanges = base::size(ranges); +- dialog_options.nMaxPageRanges = std::size(ranges); + + auto page_ranges = settings_->ranges(); + if (!page_ranges.empty()) { @@ -95,7 +95,7 @@ index a964910a3b7e3bd225a3b8dc35ef9dc57c77248d..9f791d9ba5f0b540f5e3a67f5e1abb31 + dialog_options.nMinPage = 1; dialog_options.nMaxPage = max_pages; -+ dialog_options.nMaxPageRanges = base::size(ranges); ++ dialog_options.nMaxPageRanges = std::size(ranges); dialog_options.lpPageRanges = ranges; } else { // No need to bother, we don't know how many pages are available. diff --git a/patches/chromium/fix_use_electron_generated_resources.patch b/patches/chromium/fix_use_electron_generated_resources.patch index 60b0f4952459..686e94326c21 100644 --- a/patches/chromium/fix_use_electron_generated_resources.patch +++ b/patches/chromium/fix_use_electron_generated_resources.patch @@ -12,7 +12,7 @@ as they will loaded as empty strings. * IDS_UTILITY_PROCESS_PRINTING_SERVICE_NAME on Windows diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc -index f72431f5bc7ba82316cf318f7845e7523c366d92..5133f3cd28c0d630a039118eb91c6c37ee202f3e 100644 +index ccb9d3fb018b4153cfebad8b87579dd5005398e9..5ee9583dddcceed80c7a6e0fa6a0365dbd6c9a6a 100644 --- a/chrome/browser/pdf/pdf_extension_util.cc +++ b/chrome/browser/pdf/pdf_extension_util.cc @@ -11,8 +11,7 @@ @@ -24,7 +24,7 @@ index f72431f5bc7ba82316cf318f7845e7523c366d92..5133f3cd28c0d630a039118eb91c6c37 +#include "electron/grit/electron_resources.h" #include "components/strings/grit/components_strings.h" #include "components/zoom/page_zoom_constants.h" - #include "pdf/pdf_features.h" + #include "ui/base/l10n/l10n_util.h" diff --git a/chrome/browser/printing/printing_service.cc b/chrome/browser/printing/printing_service.cc index 6d18517898c11c6a628cec2eade57fe845827b3d..a21f52e8a3c6f80d69b27faae4b77700fdd09e35 100644 --- a/chrome/browser/printing/printing_service.cc diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 481bd633fe47..80c56304eadf 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -6,10 +6,10 @@ Subject: frame_host_manager.patch Allows embedder to intercept site instances created by chromium. diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc -index 1ca418461788e5b7d58c14b03c456d2c21f1305b..7a65b6713e3d0547f1990f8c59d0d11459532477 100644 +index 6ecce70efe2d63259f8de512de276a49da1ee9c0..3068a27d60c109156d91dee68715d00aaf5f972d 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -3089,6 +3089,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -3167,6 +3167,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -20,10 +20,10 @@ index 1ca418461788e5b7d58c14b03c456d2c21f1305b..7a65b6713e3d0547f1990f8c59d0d114 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 2fe1462a2cd92a731a5816b5fc22b059bad92fe8..a4dfa54a7844983262cc0fa635433131382e4d14 100644 +index 8573ea54135e363f83bd786db3483d1c539e4bb1..11036e52affafe46bab3146184b8d89696d4163c 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -275,6 +275,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -276,6 +276,11 @@ class CONTENT_EXPORT ContentBrowserClient { virtual ~ContentBrowserClient() = default; diff --git a/patches/chromium/gin_enable_disable_v8_platform.patch b/patches/chromium/gin_enable_disable_v8_platform.patch index 5043b8a49a85..e67cc4c13a9e 100644 --- a/patches/chromium/gin_enable_disable_v8_platform.patch +++ b/patches/chromium/gin_enable_disable_v8_platform.patch @@ -38,10 +38,10 @@ index 1e36669dfb275b8a7c4913c8465bd299c548ed3a..178023d52c9e8ef716ee215e7a243b18 // Returns whether `Initialize` has already been invoked in the process. // Initialization is a one-way operation (i.e., this method cannot return diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index f411bbde031d18bd3e0322ce154ccfd8eace930d..5db96b7402de70d1b4eba8b12a51fbc89fcb7fb6 100644 +index b123e69bf6a57b1a4041c79c1cddd0117ed3851c..a8a23ccd0837866c1cb0657e0b8713d484042f38 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc -@@ -342,12 +342,14 @@ void SetFlags(IsolateHolder::ScriptMode mode, +@@ -348,7 +348,8 @@ void SetFlags(IsolateHolder::ScriptMode mode, // static void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, @@ -51,6 +51,9 @@ index f411bbde031d18bd3e0322ce154ccfd8eace930d..5db96b7402de70d1b4eba8b12a51fbc8 static bool v8_is_initialized = false; if (v8_is_initialized) return; +@@ -358,7 +359,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, + // See https://crbug.com/v8/11043 + SetFlags(mode, js_command_line_flags); - v8::V8::InitializePlatform(V8Platform::Get()); + if (create_v8_platform) diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index e595534ffa59..ea0050fc4822 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index 77f77f2deb13fc1c02903fc436028cce2d051cf0..25223130a82b22ad46eddf7e133c6085c5c843d3 100644 +index 22896db086972ff3865df9cbb4d904f1e00b7321..8e23293f8cd7f0a4203b3d5fdae24aa5e26fc2ec 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -952,6 +952,11 @@ +@@ -955,6 +955,11 @@ "includes": [4960], }, diff --git a/patches/chromium/gtk_visibility.patch b/patches/chromium/gtk_visibility.patch index 52f3cc0d8a50..db6a2993b6c7 100644 --- a/patches/chromium/gtk_visibility.patch +++ b/patches/chromium/gtk_visibility.patch @@ -18,7 +18,7 @@ index 349043f8a3cfc9f91cbae951e74258799a4fd126..0f7e3e544f524a7ad6660b54912cb119 # on GTK. "//examples:peerconnection_client", diff --git a/ui/ozone/platform/x11/BUILD.gn b/ui/ozone/platform/x11/BUILD.gn -index dd65850ec1352b764a9661b37e7c7b5e7d256016..89094825f858dcd91298dbaf26b370ca57eb4836 100644 +index 27d6cc30cad2dffed0a2587fdd49199248e006e1..f6c0974ca21e6b83faf81e5d11add0eb534645d1 100644 --- a/ui/ozone/platform/x11/BUILD.gn +++ b/ui/ozone/platform/x11/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") diff --git a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch index 6682f1b87ea4..c558d7e41b89 100644 --- a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch +++ b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch @@ -11,7 +11,7 @@ If removing this patch causes no sync failures, it's safe to delete :+1: Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903 diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index ee41efe814da161cafb49229e1f02c8b82749e7c..494bbdeea2725e4b1218ba534fd126203012c100 100755 +index ceeeedc42d9fe86383f9fda2b1a26d39119e655c..ff3b3cb47cbce01bcdcb28f1ef8a360143b2488f 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -298,6 +298,8 @@ def GetDefaultHostOs(): diff --git a/patches/chromium/load_v8_snapshot_in_browser_process.patch b/patches/chromium/load_v8_snapshot_in_browser_process.patch index b960942083b8..d8a9cd23bbe7 100644 --- a/patches/chromium/load_v8_snapshot_in_browser_process.patch +++ b/patches/chromium/load_v8_snapshot_in_browser_process.patch @@ -9,10 +9,10 @@ but due to the nature of electron, we need to load the v8 snapshot in the browser process. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 9d22238878e3204dd1d866d2bb085d5311dca36a..e3610815fd942e631a61089ca5eeba07edd7213c 100644 +index 7074141f95253587ae3ca156118ac6b10dd60e26..0476d00de005060c991cd6fa9ccd323ef5d56ea3 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc -@@ -249,11 +249,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { +@@ -248,11 +248,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { bool ShouldLoadV8Snapshot(const base::CommandLine& command_line, const std::string& process_type) { diff --git a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch index 6cf5df78a02c..def44cb73a8e 100644 --- a/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch +++ b/patches/chromium/logging_win32_only_create_a_console_if_logging_to_stderr.patch @@ -9,10 +9,10 @@ be created for each child process, despite logs being redirected to a file. diff --git a/content/app/content_main.cc b/content/app/content_main.cc -index 332b7d026e0365a66d5f4f275a90b48d0f2db5aa..3813fe1a3b2e95af5e213201ab3ea08a656e01c3 100644 +index bb2d3e991195877264fca46abd224d3a6ffd17e8..fc4f271f54235d2d8d823fdb0d95e3c76243390f 100644 --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -381,8 +381,12 @@ RunContentProcess(ContentMainParams params, +@@ -387,8 +387,12 @@ RunContentProcess(ContentMainParams params, #if BUILDFLAG(IS_WIN) // Route stdio to parent console (if any) or create one. diff --git a/patches/chromium/mas-cfisobjc.patch b/patches/chromium/mas-cfisobjc.patch index 88035201b510..7efd6508d3fc 100644 --- a/patches/chromium/mas-cfisobjc.patch +++ b/patches/chromium/mas-cfisobjc.patch @@ -6,10 +6,10 @@ Subject: mas: avoid usage of _CFIsObjC Removes usage of the _CFIsObjC private API. diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm -index bd26c088c2340f0c88227837fc797b1ed8157768..6e133c11acb7ea2570e6295b0788edc1606afbc2 100644 +index 61641e1ad8a47a4910918ff61523a23854745b81..d4a3e2282256f5a43235b40b4c9f46caa725c507 100644 --- a/base/mac/foundation_util.mm +++ b/base/mac/foundation_util.mm -@@ -31,12 +31,6 @@ +@@ -30,12 +30,6 @@ #if !BUILDFLAG(IS_IOS) CFTypeID SecACLGetTypeID(); CFTypeID SecTrustedApplicationGetTypeID(); @@ -22,7 +22,7 @@ index bd26c088c2340f0c88227837fc797b1ed8157768..6e133c11acb7ea2570e6295b0788edc1 #endif } // extern "C" -@@ -317,8 +311,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { +@@ -316,8 +310,7 @@ void SetBaseBundleID(const char* new_base_bundle_id) { const_cast(reinterpret_cast(cf_val)); DCHECK(!cf_val || CTFontGetTypeID() == CFGetTypeID(cf_val) || @@ -32,7 +32,7 @@ index bd26c088c2340f0c88227837fc797b1ed8157768..6e133c11acb7ea2570e6295b0788edc1 return ns_val; } -@@ -389,9 +382,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { +@@ -388,9 +381,6 @@ CTFontRef NSToCFCast(NSFont* ns_val) { return (CTFontRef)(cf_val); } diff --git a/patches/chromium/mas-cgdisplayusesforcetogray.patch b/patches/chromium/mas-cgdisplayusesforcetogray.patch index c55b2981c583..50554c76583b 100644 --- a/patches/chromium/mas-cgdisplayusesforcetogray.patch +++ b/patches/chromium/mas-cgdisplayusesforcetogray.patch @@ -6,10 +6,10 @@ Subject: mas: avoid usage of CGDisplayUsesForceToGray Removes usage of the CGDisplayUsesForceToGray private API. diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm -index 1fb42e658d219e46bbc157d929d3b2158c063204..cb6dec724dbe511cb0c66d507d0b68db7296b648 100644 +index 21778ef0c7657937987fdc70bf9ceb9439aebf15..2f6e1390a3b824d80832e47f6c368e757e2d9806 100644 --- a/ui/display/mac/screen_mac.mm +++ b/ui/display/mac/screen_mac.mm -@@ -155,7 +155,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) { +@@ -162,7 +162,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) { display.set_color_depth(Display::kDefaultBitsPerPixel); display.set_depth_per_component(Display::kDefaultBitsPerComponent); } diff --git a/patches/chromium/mas_disable_remote_accessibility.patch b/patches/chromium/mas_disable_remote_accessibility.patch index 21bddfec34c2..8ac081f88cbf 100644 --- a/patches/chromium/mas_disable_remote_accessibility.patch +++ b/patches/chromium/mas_disable_remote_accessibility.patch @@ -11,7 +11,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 9734fb620a9a4010083af41a9e5cea038556eef5..05c95fb9b15f5ccbfecaee29d360dd27bf42f086 100644 +index 04691696ee653b95cf046edfd464b1a800a38abe..b567b1e1fa9e5103a6219292a649f8807f0aa7ae 100644 --- a/components/remote_cocoa/app_shim/application_bridge.mm +++ b/components/remote_cocoa/app_shim/application_bridge.mm @@ -51,6 +51,7 @@ @@ -44,10 +44,10 @@ index 9734fb620a9a4010083af41a9e5cea038556eef5..05c95fb9b15f5ccbfecaee29d360dd27 } // 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 fedefafc9837f681ad1c3fc48d06a333fea893e2..f07a090c24382c9330e8bd8baa3de47ec76da956 100644 +index 6394980da8ab8b38e29693ccedfc3827ac111a4c..7fff28ee83475963f80987f7736ac866daa7dad2 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 -@@ -561,10 +561,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -567,10 +567,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { // this should be treated as an error and caught early. CHECK(bridged_view_); @@ -87,7 +87,7 @@ index 2cd40c288f42937688e4f846a002779158ada68f..f4c7bb0ab75835bfdbd100ce852646bf } 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 80d639b4a9eb7fa9265da4977782d125b72db719..5f82a49f6336cf89c8d404f8aef7b103709c95e9 100644 +index 2b99d6a9f13f12a2a470fb6a5aa98c05f26a54c7..46d735add749d76c32f80512d00373b442248c6a 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h @@ -49,7 +49,9 @@ class ScopedPasswordInputEnabler; @@ -100,7 +100,7 @@ index 80d639b4a9eb7fa9265da4977782d125b72db719..5f82a49f6336cf89c8d404f8aef7b103 @class RenderWidgetHostViewCocoa; namespace content { -@@ -665,10 +667,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac +@@ -661,10 +663,12 @@ class CONTENT_EXPORT RenderWidgetHostViewMac // EnsureSurfaceSynchronizedForWebTest(). uint32_t latest_capture_sequence_number_ = 0u; @@ -114,10 +114,10 @@ index 80d639b4a9eb7fa9265da4977782d125b72db719..5f82a49f6336cf89c8d404f8aef7b103 // 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 09ada3b859e1862cbf365960422871a56af54983..58002d37ba340f84f47e2522c0d7bf7c1a64c5d2 100644 +index 14fec4b1b39d995553b029ca7ec780ce29b27162..54a1142f17e2a63b86e1fab52ea90276091c85a4 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm -@@ -253,8 +253,10 @@ +@@ -252,8 +252,10 @@ void RenderWidgetHostViewMac::MigrateNSViewBridge( remote_cocoa::mojom::Application* remote_cocoa_application, uint64_t parent_ns_view_id) { @@ -128,7 +128,7 @@ index 09ada3b859e1862cbf365960422871a56af54983..58002d37ba340f84f47e2522c0d7bf7c // Disconnect from the previous bridge (this will have the effect of // destroying the associated bridge), and close the receiver (to allow it -@@ -1498,8 +1500,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -1519,8 +1521,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, gfx::NativeViewAccessible RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() { @@ -139,7 +139,7 @@ index 09ada3b859e1862cbf365960422871a56af54983..58002d37ba340f84f47e2522c0d7bf7c return [GetInProcessNSView() window]; } -@@ -1543,9 +1547,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -1564,9 +1568,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, } void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) { @@ -151,7 +151,7 @@ index 09ada3b859e1862cbf365960422871a56af54983..58002d37ba340f84f47e2522c0d7bf7c } bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame( -@@ -2038,12 +2044,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, +@@ -2061,12 +2067,14 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, void RenderWidgetHostViewMac::SetRemoteAccessibilityWindowToken( const std::vector& window_token) { @@ -167,10 +167,10 @@ index 09ada3b859e1862cbf365960422871a56af54983..58002d37ba340f84f47e2522c0d7bf7c /////////////////////////////////////////////////////////////////////////////// diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 37f37c3a8e8a00cf9d4b8959ac2d97fe31629ad8..fa06bafbbaa69a20ce5a3260ca92947cb2bb9228 100644 +index be753e5ea42cc8757b0e7f9a21aa12b40f1928f2..83f3ef36e17b484d838c9338ae6ad0073b42283c 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn -@@ -317,6 +317,13 @@ component("base") { +@@ -319,6 +319,13 @@ component("base") { ] } @@ -205,7 +205,7 @@ index e7adfee3210ec723c687adfcc4bee8827ef643e7..25a924a47eeb30d783ef83dbb4896c4b + #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 1964f624abc96c54645d1697b598799cfd9a2a00..30580103974b99dcaed2adb0b460b1af17658927 100644 +index d4051a7a8755c7b10d4df3746cb2857471f07c45..de04616893d1c97e3607eb5a4b942733ae597b05 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h @@ -31,7 +31,9 @@ @@ -218,7 +218,7 @@ index 1964f624abc96c54645d1697b598799cfd9a2a00..30580103974b99dcaed2adb0b460b1af @class NSView; namespace remote_cocoa { -@@ -445,11 +447,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost +@@ -449,11 +451,13 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost mojo::AssociatedRemote remote_ns_window_remote_; @@ -233,10 +233,10 @@ index 1964f624abc96c54645d1697b598799cfd9a2a00..30580103974b99dcaed2adb0b460b1af // 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 b77478d96caba7e94c198e9cc8cdd7a6b78e6b25..79af41886c66b51219b69282db17497c5af702d5 100644 +index 7ed5041b0625a98be269b4f4daeef33c3bc1f8b6..803d8bc43fa57c8e49d33d4be618d51a408ffe47 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -@@ -294,14 +294,22 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -296,14 +296,22 @@ void HandleAccelerator(const ui::Accelerator& accelerator, NativeWidgetMacNSWindowHost::GetNativeViewAccessibleForNSView() const { if (in_process_ns_window_bridge_) return in_process_ns_window_bridge_->ns_view(); @@ -259,7 +259,7 @@ index b77478d96caba7e94c198e9cc8cdd7a6b78e6b25..79af41886c66b51219b69282db17497c } remote_cocoa::mojom::NativeWidgetNSWindow* -@@ -1275,6 +1283,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1287,6 +1295,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, void NativeWidgetMacNSWindowHost::SetRemoteAccessibilityTokens( const std::vector& window_token, const std::vector& view_token) { @@ -267,7 +267,7 @@ index b77478d96caba7e94c198e9cc8cdd7a6b78e6b25..79af41886c66b51219b69282db17497c remote_window_accessible_ = ui::RemoteAccessibility::GetRemoteElementFromToken(window_token); remote_view_accessible_ = -@@ -1282,14 +1291,17 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1294,14 +1303,17 @@ void HandleAccelerator(const ui::Accelerator& accelerator, [remote_view_accessible_ setWindowUIElement:remote_window_accessible_.get()]; [remote_view_accessible_ setTopLevelUIElement:remote_window_accessible_.get()]; diff --git a/patches/chromium/mas_no_private_api.patch b/patches/chromium/mas_no_private_api.patch index 02127ca0ad5c..dd209431cba8 100644 --- a/patches/chromium/mas_no_private_api.patch +++ b/patches/chromium/mas_no_private_api.patch @@ -139,10 +139,10 @@ index 3f7dce0281f7b5a540d7b9377ef14a8a6aa9a2fa..11d8419791f3e45d5242081422d452d4 void BluetoothAdapterMac::RemovePairingDelegateInternal( diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn -index 6ffc09426b92b0623957f4a5f547865f49e29546..45cf4e11a77c175d61c2ffe69009802596c97e25 100644 +index ebe37172d254e8441fe2b8c290bd5a59af38d754..6a131f5c41f3e43a1467efeec2ce63f6903691b7 100644 --- a/media/audio/BUILD.gn +++ b/media/audio/BUILD.gn -@@ -175,6 +175,12 @@ source_set("audio") { +@@ -173,6 +173,12 @@ source_set("audio") { "mac/scoped_audio_unit.cc", "mac/scoped_audio_unit.h", ] @@ -169,7 +169,7 @@ index ebdc6364312ee710d416318836c03aeec9bfb65c..aa9b50de7efaf0e1b64effea93204984 } diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc -index e59fec60e9d593d311b21c12daf2d611a36a2d6e..b812dee59b55edee6efe73ce4b1da0a89b45240e 100644 +index 3cce5f20af78f4456466df64fe0d040b5dba5fa8..1814ebbca91007b242a4e4ef359896594c23616a 100644 --- a/net/dns/dns_config_service_posix.cc +++ b/net/dns/dns_config_service_posix.cc @@ -129,8 +129,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher { diff --git a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch index d524259dd942..e3324296a377 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/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 8ff62f92ed6efdbfc18db53db3c5bb59c1acfe34..20373c0e86852446569c401c4a993512cb388fc7 100644 +index 54b5a281161187f887032d9445f21c541b9691e5..4c8982a8ae3ae23fbeef244cd23b43c889d3fa94 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -126,6 +126,11 @@ +@@ -127,6 +127,11 @@ #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" @@ -22,7 +22,7 @@ index 8ff62f92ed6efdbfc18db53db3c5bb59c1acfe34..20373c0e86852446569c401c4a993512 #if BUILDFLAG(IS_CT_SUPPORTED) #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" #include "components/certificate_transparency/chrome_require_ct_delegate.h" -@@ -433,6 +438,91 @@ bool GetFullDataFilePath( +@@ -434,6 +439,91 @@ bool GetFullDataFilePath( } // namespace @@ -114,7 +114,7 @@ index 8ff62f92ed6efdbfc18db53db3c5bb59c1acfe34..20373c0e86852446569c401c4a993512 constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::PendingCertVerify::PendingCertVerify() = default; -@@ -671,6 +761,13 @@ void NetworkContext::SetClient( +@@ -678,6 +768,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -128,7 +128,7 @@ index 8ff62f92ed6efdbfc18db53db3c5bb59c1acfe34..20373c0e86852446569c401c4a993512 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -2226,6 +2323,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2242,6 +2339,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier)); cert_verifier = base::WrapUnique(cert_verifier_with_trust_anchors_); #endif // BUILDFLAG(IS_CHROMEOS) @@ -139,7 +139,7 @@ index 8ff62f92ed6efdbfc18db53db3c5bb59c1acfe34..20373c0e86852446569c401c4a993512 builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index 6de81678e62d6921d0df5944ab01705402caa568..e412608e7720004462c48698c8ec39602b2b900e 100644 +index 3fd4c43562aa5de00d8698096f154522420c8f24..eed05c05d1da28284af6ae0cef45dbbb47254058 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -105,6 +105,7 @@ class URLMatcher; @@ -150,7 +150,7 @@ index 6de81678e62d6921d0df5944ab01705402caa568..e412608e7720004462c48698c8ec3960 class CookieManager; class ExpectCTReporter; class HostResolver; -@@ -220,6 +221,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -221,6 +222,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) override; @@ -159,7 +159,7 @@ index 6de81678e62d6921d0df5944ab01705402caa568..e412608e7720004462c48698c8ec3960 void ResetURLLoaderFactories() override; void GetCookieManager( mojo::PendingReceiver receiver) override; -@@ -793,6 +796,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -796,6 +799,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext CertVerifierWithTrustAnchors* cert_verifier_with_trust_anchors_ = nullptr; #endif @@ -169,10 +169,10 @@ index 6de81678e62d6921d0df5944ab01705402caa568..e412608e7720004462c48698c8ec3960 // CertNetFetcher is not used by the current platform, or if the actual // net::CertVerifier is instantiated outside of the network service. diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 9cd06ee552f8e592dd9efd1e73b10e5998559c04..fa56cfed3703664232843ad26028096d95dca253 100644 +index 64199b44316ab4671941c734444d207591512d0a..c929eb10af5b8856debdc0d665eac767e9730714 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -277,6 +277,17 @@ struct NetworkContextFilePaths { +@@ -280,6 +280,17 @@ struct NetworkContextFilePaths { bool trigger_migration = false; }; @@ -190,7 +190,7 @@ index 9cd06ee552f8e592dd9efd1e73b10e5998559c04..fa56cfed3703664232843ad26028096d // Parameters for constructing a network context. struct NetworkContextParams { // The user agent string. -@@ -807,6 +818,9 @@ interface NetworkContext { +@@ -829,6 +840,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index fbb057eaf0f8..ff03cd3658ee 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -7,7 +7,7 @@ Pass RenderFrameHost through to PlatformNotificationService so Electron can identify which renderer a notification came from. diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc -index 06a1db7fd9324de7d1fcf49c5b8a40b922a945be..c63b92a5a100785bf00b5e6da4c7f71bb9e769b7 100644 +index 225609e52130d4113c8ae667f3ffa565bbde5b73..b33d27ce4fc6222146255cf4c0e7342751c75c9b 100644 --- a/chrome/browser/notifications/platform_notification_service_impl.cc +++ b/chrome/browser/notifications/platform_notification_service_impl.cc @@ -196,6 +196,7 @@ bool PlatformNotificationServiceImpl::WasClosedProgrammatically( @@ -31,7 +31,7 @@ index b0e64049d411305d58802fd290bb0480e9b36fee..4afcf3b7a5b841409b0e1c4c2f32fd48 const GURL& origin, const GURL& document_url, diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc -index 442b856f8bcfbcea7742188897f0ce0a25cd60f4..6165eb772901faa25514c9bbefd13ff6b45d6b33 100644 +index fd2c2d72ebc3cab0cc824bb091da32d4be635dd9..8bcd6a87c38413a5281d164e3c0fcfd23c3fa04b 100644 --- a/content/browser/notifications/blink_notification_service_impl.cc +++ b/content/browser/notifications/blink_notification_service_impl.cc @@ -81,10 +81,12 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl( @@ -90,7 +90,7 @@ index f0d5ea365cf09d2dc06de88fc03e4bf5ddfdf4a6..b68666813ab231a3d4233d3ed2f9655b /*document_url=*/GURL(), notification_service_remote_.BindNewPipeAndPassReceiver()); diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc -index 8e23ab272000a1244959bf9164d6880660d4a843..ff89f2bdf07e91029841bab7ce7c7a92526c0132 100644 +index 5580c415a1e8a45327147861d7c71cebd1ecbd5a..d37711f83be7566ec5ad2078942aaca1948a77c5 100644 --- a/content/browser/notifications/platform_notification_context_impl.cc +++ b/content/browser/notifications/platform_notification_context_impl.cc @@ -281,13 +281,14 @@ void PlatformNotificationContextImpl::Shutdown() { @@ -131,10 +131,10 @@ index 951075749b24814606f494c5a89ee2adf527f512..7036323ff8ee38ae92790dfd2e216df6 const GURL& document_url, mojo::PendingReceiver receiver); diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index a1a3683b8da459a5859a2953536f3400a7fda213..602525302cfdd89bf2ddc2924076e7349de7562a 100644 +index cc5f7c8d616ec9a433da428f180483da60736a9d..fb25a7c19f20ca690963c5a15bd09224687b5f57 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2125,7 +2125,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2083,7 +2083,7 @@ void RenderProcessHostImpl::CreateNotificationService( document_url = rfh->GetLastCommittedURL(); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/pepper_plugin_support.patch b/patches/chromium/pepper_plugin_support.patch index b9d73ff072c6..bae8f486133f 100644 --- a/patches/chromium/pepper_plugin_support.patch +++ b/patches/chromium/pepper_plugin_support.patch @@ -7,13 +7,13 @@ 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_isolated_file_system_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc -index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc244092d2 100644 +index 2425ccd480f4b0f3ac3b9dddb5dbf90639fe515b..6f20e2edd880e34149668ece6e80e79b3da8dc66 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 -@@ -7,17 +7,21 @@ +@@ -6,17 +6,21 @@ + #include - #include "base/cxx17_backports.h" +#if 0 #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile.h" @@ -32,7 +32,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc #include "ppapi/c/pp_errors.h" #include "ppapi/host/dispatch_host_message.h" #include "ppapi/host/host_message_context.h" -@@ -26,12 +30,11 @@ +@@ -25,12 +29,11 @@ #include "ppapi/shared_impl/file_system_util.h" #include "storage/browser/file_system/isolated_context.h" @@ -46,7 +46,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc namespace { -@@ -41,6 +44,7 @@ const char* kPredefinedAllowedCrxFsOrigins[] = { +@@ -40,6 +43,7 @@ const char* kPredefinedAllowedCrxFsOrigins[] = { }; } // namespace @@ -54,7 +54,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc // static PepperIsolatedFileSystemMessageFilter* -@@ -64,11 +68,16 @@ PepperIsolatedFileSystemMessageFilter::PepperIsolatedFileSystemMessageFilter( +@@ -63,11 +67,16 @@ PepperIsolatedFileSystemMessageFilter::PepperIsolatedFileSystemMessageFilter( const base::FilePath& profile_directory, const GURL& document_url, ppapi::host::PpapiHost* ppapi_host) @@ -62,7 +62,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc : render_process_id_(render_process_id), profile_directory_(profile_directory), document_url_(document_url) { - for (size_t i = 0; i < base::size(kPredefinedAllowedCrxFsOrigins); ++i) + for (size_t i = 0; i < std::size(kPredefinedAllowedCrxFsOrigins); ++i) allowed_crxfs_origins_.insert(kPredefinedAllowedCrxFsOrigins[i]); +#else + : profile_directory_(profile_directory), @@ -71,7 +71,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc } PepperIsolatedFileSystemMessageFilter:: -@@ -93,6 +102,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnResourceMessageReceived( +@@ -92,6 +101,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnResourceMessageReceived( return PP_ERROR_FAILED; } @@ -79,7 +79,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc Profile* PepperIsolatedFileSystemMessageFilter::GetProfile() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ProfileManager* profile_manager = g_browser_process->profile_manager(); -@@ -117,6 +127,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) { +@@ -116,6 +126,7 @@ PepperIsolatedFileSystemMessageFilter::CreateCrxFileSystem(Profile* profile) { return storage::IsolatedContext::ScopedFSHandle(); #endif } @@ -87,7 +87,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( ppapi::host::HostMessageContext* context, -@@ -125,7 +136,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( +@@ -124,7 +135,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID: break; case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX: @@ -96,7 +96,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc } NOTREACHED(); context->reply_msg = -@@ -133,6 +144,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( +@@ -132,6 +143,7 @@ int32_t PepperIsolatedFileSystemMessageFilter::OnOpenFileSystem( return PP_ERROR_FAILED; } @@ -104,7 +104,7 @@ index 308e7bff4ea829f5e68a93e77e0205f3f6a509c4..88a1e057ed8873f05e0d11160e7994bc int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( ppapi::host::HostMessageContext* context) { #if BUILDFLAG(ENABLE_EXTENSIONS) -@@ -173,3 +185,4 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( +@@ -172,3 +184,4 @@ int32_t PepperIsolatedFileSystemMessageFilter::OpenCrxFileSystem( return PP_ERROR_NOTSUPPORTED; #endif } @@ -156,41 +156,28 @@ index 40fafdbed313800a3f420d9d5a3daf8bbbdb7d95..1367725e04455ba5f299b8341a28f222 #endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_ISOLATED_FILE_SYSTEM_MESSAGE_FILTER_H_ diff --git a/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc b/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc -index 4b84f4ef068a76fa2be244a7f7ca2c6a8734bd46..13ae0a57535dfb516eb70b272fdaa5a4720d0591 100644 +index e3ee403ec5d4d75f22f1853ec8637a0559ce3c43..76232286e02a20bcd578c5ba28af638dfc8f562c 100644 --- a/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc +++ b/chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc -@@ -6,8 +6,13 @@ +@@ -5,7 +5,9 @@ + #include "chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h" #include "base/check_op.h" - #include "chrome/renderer/pepper/pepper_flash_font_file_host.h" +#if 0 #include "chrome/renderer/pepper/pepper_uma_host.h" -+#endif -+#include "electron/buildflags/buildflags.h" -+#if BUILDFLAG(ENABLE_PDF_VIEWER) - #include "components/pdf/renderer/pepper_pdf_host.h" +#endif #include "content/public/renderer/renderer_ppapi_host.h" - #include "pdf/buildflags.h" #include "ppapi/host/ppapi_host.h" -@@ -55,7 +60,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost( - } - } - --#if BUILDFLAG(ENABLE_PDF) -+#if BUILDFLAG(ENABLE_PDF_VIEWER) - if (host_->GetPpapiHost()->permissions().HasPermission( - ppapi::PERMISSION_PDF)) { - switch (message.type()) { -@@ -66,6 +71,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost( - } - #endif + #include "ppapi/host/resource_host.h" +@@ -33,6 +35,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost( + if (!host_->IsValidInstance(instance)) + return nullptr; +#if 0 // Permissions for the following interfaces will be checked at the // time of the corresponding instance's method calls. Currently these // interfaces are available only for whitelisted apps which may not have -@@ -75,6 +81,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost( +@@ -42,6 +45,7 @@ ChromeRendererPepperHostFactory::CreateResourceHost( return std::make_unique(host_, instance, resource); } } diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index 22bc937a11a4..ff258785cd53 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -9,49 +9,49 @@ don't get errors for Chrome's generated resources, which are non-existent because we don't generate them in our build. diff --git a/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc b/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc -index 063cbf00a7ae871d426cef5cec00aa379c3ace11..444d3cc2e1b00a62f382232d3d2eccdd481abf11 100644 +index 7bc8d118f87b91baf1c3bd1d34374996ab1d3638..2d2c1c86f311b07f0c2b09d5a4c082cc5599600c 100644 --- a/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc +++ b/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/back_to_tab_image_button.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" - #include "ui/gfx/color_palette.h" + #include "ui/base/models/image_model.h" diff --git a/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc b/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc -index 648e199cb015155ba84cf1c846cf6d2a16858007..294bfb625d1155e640eeeb37bea597dc2d980e58 100644 +index 7d0e39968bf34cdc99549cb48f6bf0a11c182565..f21c1672abf34dc9d19cd39c5d09083a60ef6978 100644 --- a/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc +++ b/chrome/browser/ui/views/overlay/back_to_tab_label_button.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/cursor/cursor.h" #include "ui/base/l10n/l10n_util.h" diff --git a/chrome/browser/ui/views/overlay/close_image_button.cc b/chrome/browser/ui/views/overlay/close_image_button.cc -index 0c1fa8676d00240e60ddd037664a409d1c9619dd..64d21f1878c3433324fc61353a10ee21d59c0b47 100644 +index d3400d7b02edc9cffba4cb53ec601b6e4cfea3b2..8e620ad6172a650ea96f80c0b44035932471d88b 100644 --- a/chrome/browser/ui/views/overlay/close_image_button.cc +++ b/chrome/browser/ui/views/overlay/close_image_button.cc @@ -6,7 +6,7 @@ #include "build/chromeos_buildflags.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" - #include "ui/gfx/color_palette.h" + #include "ui/base/models/image_model.h" diff --git a/chrome/browser/ui/views/overlay/document_overlay_window_views.cc b/chrome/browser/ui/views/overlay/document_overlay_window_views.cc -index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d42815d9f4 100644 +index 3309906bcae27ba89d73ce4fba49843a10cd31f6..9f828f70606238186b35b5e1ca8751134eaf3c33 100644 --- a/chrome/browser/ui/views/overlay/document_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/document_overlay_window_views.cc -@@ -20,6 +20,7 @@ +@@ -15,24 +15,28 @@ #include "base/timer/timer.h" #include "build/build_config.h" #include "chrome/app/vector_icons/vector_icons.h" @@ -59,8 +59,12 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 #include "chrome/browser/command_updater_delegate.h" #include "chrome/browser/command_updater_impl.h" #include "chrome/browser/profiles/profile.h" -@@ -28,14 +29,15 @@ + #include "chrome/browser/themes/theme_service.h" + #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" ++#endif + #include "chrome/browser/ui/color/chrome_color_id.h" ++#if 0 #include "chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" +#endif @@ -71,12 +75,13 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 #include "components/omnibox/browser/location_bar_model_impl.h" #include "components/vector_icons/vector_icons.h" #include "content/public/browser/document_picture_in_picture_window_controller.h" + #include "content/public/browser/picture_in_picture_window_controller.h" #include "content/public/browser/web_contents.h" +#include "electron/grit/electron_resources.h" #include "content/public/common/content_constants.h" #include "media/base/media_switches.h" #include "media/base/video_util.h" -@@ -57,7 +59,7 @@ +@@ -57,7 +61,7 @@ #include "ui/aura/window.h" #endif @@ -85,7 +90,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 #include "chrome/browser/shell_integration_win.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" -@@ -91,7 +93,7 @@ T* AddChildView(std::vector>* views, +@@ -109,7 +113,7 @@ END_METADATA } // namespace OverlayLocationBarViewProxy::~OverlayLocationBarViewProxy() = default; @@ -94,7 +99,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 class OverlayLocationBarViewImpl : public OverlayLocationBarViewProxy, public ChromeLocationBarModelDelegate, public LocationBarView::Delegate, -@@ -149,7 +151,7 @@ class OverlayLocationBarViewImpl : public OverlayLocationBarViewProxy, +@@ -167,7 +171,7 @@ class OverlayLocationBarViewImpl : public OverlayLocationBarViewProxy, const std::unique_ptr location_bar_model_; CommandUpdaterImpl command_updater_; }; @@ -103,7 +108,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 // static std::unique_ptr DocumentOverlayWindowViews::Create( content::DocumentPictureInPictureWindowController* controller, -@@ -185,7 +187,7 @@ std::unique_ptr DocumentOverlayWindowViews::Create( +@@ -203,7 +207,7 @@ std::unique_ptr DocumentOverlayWindowViews::Create( overlay_window->Init(std::move(params)); overlay_window->OnRootViewReady(); @@ -112,7 +117,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 std::wstring app_user_model_id; Browser* browser = chrome::FindBrowserWithWebContents(controller->GetWebContents()); -@@ -260,12 +262,6 @@ views::View* DocumentOverlayWindowViews::GetControlsContainerView() const { +@@ -278,12 +282,6 @@ views::View* DocumentOverlayWindowViews::GetControlsContainerView() const { return controls_container_view_; } @@ -125,7 +130,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 void DocumentOverlayWindowViews::SetUpViews() { // The window content consists of the fixed-height controls_container_view at // the top which is a box layout, and the remainder of the view is filled with -@@ -281,6 +277,7 @@ void DocumentOverlayWindowViews::SetUpViews() { +@@ -299,6 +297,7 @@ void DocumentOverlayWindowViews::SetUpViews() { // +-------------------------------------+ content::WebContents* pip_contents = controller_->GetChildWebContents(); @@ -133,7 +138,7 @@ index d12f196f2e7b1a4b3936af2cb16d872e91785fe4..4a015d21cf27b975c87d91d2149555d4 auto* profile = Profile::FromBrowserContext(pip_contents->GetBrowserContext()); profile_for_theme_ = profile; -@@ -291,8 +288,8 @@ void DocumentOverlayWindowViews::SetUpViews() { +@@ -309,8 +308,8 @@ void DocumentOverlayWindowViews::SetUpViews() { location_bar_view_proxy_ = std::make_unique( profile, controller_->GetWebContents()); } @@ -157,20 +162,20 @@ index 86d385842501d28b5eb42f841822294eb597e6ed..43c19dfa6ec6b48f8694636cc184dd61 // OverlayWindowViews bool ControlsHitTestContainsPoint(const gfx::Point& point) override; diff --git a/chrome/browser/ui/views/overlay/hang_up_button.cc b/chrome/browser/ui/views/overlay/hang_up_button.cc -index 8e54570ea4c83483eedee4c781f0498ba07bc3dd..b1eb0b2f1a3dfb71e1f5d3917c67e66ac2b27d22 100644 +index 26f8f5ffa444d874b229b5e8debf087e4469dfd1..10149e812a43e3d5c92701e9b2ae8d68ed8395c7 100644 --- a/chrome/browser/ui/views/overlay/hang_up_button.cc +++ b/chrome/browser/ui/views/overlay/hang_up_button.cc -@@ -4,7 +4,7 @@ - +@@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/hang_up_button.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc -index d96a4937e6ff6bbf4311673b4c91e9f0e957832a..a06cae5f50eb671fc05bd3d41ae4d218a649e991 100644 +index 850b34e3b40f7ff1848c66158976db079e0853bd..105dbc3661eb2710b2f10ca6584e85c36ad14705 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc @@ -14,13 +14,15 @@ @@ -200,85 +205,85 @@ index d96a4937e6ff6bbf4311673b4c91e9f0e957832a..a06cae5f50eb671fc05bd3d41ae4d218 #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" diff --git a/chrome/browser/ui/views/overlay/playback_image_button.cc b/chrome/browser/ui/views/overlay/playback_image_button.cc -index ad413df822af98f4f80a460c6e464cf5237d5ac4..821b75400a7a4921e59a414516739c6de5a66df7 100644 +index bcd3b2e1038786b660a4b91fbc20d9d8b4afffb4..a953c9d0ee0b49d6cc096e3eb236296b57cbc6c0 100644 --- a/chrome/browser/ui/views/overlay/playback_image_button.cc +++ b/chrome/browser/ui/views/overlay/playback_image_button.cc @@ -6,7 +6,7 @@ #include "chrome/app/vector_icons/vector_icons.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/resize_handle_button.cc b/chrome/browser/ui/views/overlay/resize_handle_button.cc -index 90c9dbbfa741da8cf72594738c1686b14e277663..34063436a7e8e36f624c1b86765fe886434df54a 100644 +index 8bf217b9b0c2bd22d6940c24c58eccb9865c5286..91f061a1243135db475371dda00c2fe054f4e8e3 100644 --- a/chrome/browser/ui/views/overlay/resize_handle_button.cc +++ b/chrome/browser/ui/views/overlay/resize_handle_button.cc @@ -6,7 +6,7 @@ #include "chrome/app/vector_icons/vector_icons.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "ui/base/hit_test.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc -index ae3b37b13498d63b0bc8d7d66e228f974e1c4b4a..9a4e7de29921209a5a7807efeecb02e05f38692d 100644 +index 51c7db1bfbd3c03b9cb2786c8c7482b33e3aca0b..2890f7420d2fd258f84019963eab6c9606e228db 100644 --- a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc +++ b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/skip_ad_label_button.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/gfx/color_palette.h" diff --git a/chrome/browser/ui/views/overlay/toggle_camera_button.cc b/chrome/browser/ui/views/overlay/toggle_camera_button.cc -index c5254509559fd89a8831d69498e2f120416b08df..711490193ac7a9a122fe2b85661dd1a63d3a06ac 100644 +index 46ec4441ddb227325b319359f9d33a80aa856d85..57957d72310c0a232c78489fba5a07cdf475dc53 100644 --- a/chrome/browser/ui/views/overlay/toggle_camera_button.cc +++ b/chrome/browser/ui/views/overlay/toggle_camera_button.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/toggle_camera_button.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/toggle_microphone_button.cc b/chrome/browser/ui/views/overlay/toggle_microphone_button.cc -index 98d653475bf2aaa57bd11961df3697882a9a40d7..3870cad08c531a2a8b3f6ba84088065a0d31f033 100644 +index 59b9a5442185bfb9efd8ed571ec63d56e3bc3326..34d58bf54019e0b8001c29cb301861d045c60214 100644 --- a/chrome/browser/ui/views/overlay/toggle_microphone_button.cc +++ b/chrome/browser/ui/views/overlay/toggle_microphone_button.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/views/overlay/toggle_microphone_button.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/track_image_button.cc b/chrome/browser/ui/views/overlay/track_image_button.cc -index d5690233eb85d9f2992ae90461c0d1fd83730d84..d32ee40d1dc7a0004d534540189179b240964888 100644 +index 5e136488b37887e9523ac04a9ff4ccdfaf96c104..24899f4c2b6fe66b96a6728bf747f1aad66f20a9 100644 --- a/chrome/browser/ui/views/overlay/track_image_button.cc +++ b/chrome/browser/ui/views/overlay/track_image_button.cc @@ -6,7 +6,7 @@ #include "chrome/app/vector_icons/vector_icons.h" - #include "chrome/browser/ui/views/overlay/constants.h" + #include "chrome/browser/ui/color/chrome_color_id.h" -#include "chrome/grit/generated_resources.h" +#include "electron/grit/electron_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index d25bffe434d866760d1efc4dd972b6ba4946acd0..2819bcefb83b6b4cb10114b7ad1df881ccade58d 100644 +index b2e281840f48592eb773c16042fb6b56a0fa132b..d5156bab0c81ca508733a8d3ba95f052ff6d83e6 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc @@ -15,9 +15,11 @@ @@ -290,10 +295,10 @@ index d25bffe434d866760d1efc4dd972b6ba4946acd0..2819bcefb83b6b4cb10114b7ad1df881 #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" +#endif + #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/views/overlay/back_to_tab_image_button.h" #include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h" - #include "chrome/browser/ui/views/overlay/close_image_button.h" -@@ -28,10 +30,10 @@ +@@ -29,10 +31,10 @@ #include "chrome/browser/ui/views/overlay/toggle_camera_button.h" #include "chrome/browser/ui/views/overlay/toggle_microphone_button.h" #include "chrome/browser/ui/views/overlay/track_image_button.h" @@ -305,7 +310,7 @@ index d25bffe434d866760d1efc4dd972b6ba4946acd0..2819bcefb83b6b4cb10114b7ad1df881 #include "media/base/media_switches.h" #include "media/base/video_util.h" #include "third_party/skia/include/core/SkColor.h" -@@ -53,7 +55,7 @@ +@@ -56,7 +58,7 @@ #include "ui/aura/window.h" #endif @@ -314,7 +319,7 @@ index d25bffe434d866760d1efc4dd972b6ba4946acd0..2819bcefb83b6b4cb10114b7ad1df881 #include "chrome/browser/shell_integration_win.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" -@@ -127,7 +129,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( +@@ -148,7 +150,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( overlay_window->Init(std::move(params)); overlay_window->OnRootViewReady(); diff --git a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch index 686010806fc7..e81c37f12f38 100644 --- a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch +++ b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch @@ -8,13 +8,19 @@ needed in chromium but our autofill implementation uses them. This patch can be our autofill implementation to work like Chromium's. diff --git a/ui/color/color_id.h b/ui/color/color_id.h -index 1b9518366ba6c44421a86565ea3eba80e14b6c43..203ac8902eda26262f4178985ee565874bf879b8 100644 +index d9db2d705c88e828383e81efd8f8c6d28e1520bb..7f0e1672af0fef134fc637324e366e9e8d985054 100644 --- a/ui/color/color_id.h +++ b/ui/color/color_id.h -@@ -121,6 +121,10 @@ - E_CPONLY(kColorPwaSecurityChipForegroundSecure) \ - E_CPONLY(kColorPwaToolbarBackground) \ - E_CPONLY(kColorPwaToolbarForeground) \ +@@ -122,6 +122,16 @@ + E_CPONLY(kColorOverlayScrollbarStrokeHoveredDark) \ + E_CPONLY(kColorOverlayScrollbarStrokeHoveredLight) \ + E_CPONLY(kColorProgressBar) \ ++ E_CPONLY(kColorPwaSecurityChipForeground) \ ++ E_CPONLY(kColorPwaSecurityChipForegroundDangerous) \ ++ E_CPONLY(kColorPwaSecurityChipForegroundPolicyCert) \ ++ E_CPONLY(kColorPwaSecurityChipForegroundSecure) \ ++ E_CPONLY(kColorPwaToolbarBackground) \ ++ E_CPONLY(kColorPwaToolbarForeground) \ + E_CPONLY(kColorResultsTableNormalBackground) \ + E_CPONLY(kColorResultsTableHoveredBackground) \ + E_CPONLY(kColorResultsTableNormalText) \ @@ -22,7 +28,7 @@ index 1b9518366ba6c44421a86565ea3eba80e14b6c43..203ac8902eda26262f4178985ee56587 E_CPONLY(kColorSeparator) \ E_CPONLY(kColorShadowBase) \ E_CPONLY(kColorShadowValueAmbientShadowElevationSixteen) \ -@@ -173,6 +177,7 @@ +@@ -174,6 +184,7 @@ E_CPONLY(kColorTreeNodeForeground) \ E_CPONLY(kColorTreeNodeForegroundSelectedFocused) \ E_CPONLY(kColorTreeNodeForegroundSelectedUnfocused) \ @@ -31,13 +37,13 @@ index 1b9518366ba6c44421a86565ea3eba80e14b6c43..203ac8902eda26262f4178985ee56587 #if BUILDFLAG(IS_CHROMEOS) diff --git a/ui/color/ui_color_mixer.cc b/ui/color/ui_color_mixer.cc -index 1d8415814c6245e3f2dfd01de7a2de11f09cdc7a..6db48efe454820e242b862edbfaf4d40cf16eb9d 100644 +index a89f393da6c06ba21d5303a925dd9e907bde5e03..e0106610831ca36544161672f3663e54b2585228 100644 --- a/ui/color/ui_color_mixer.cc +++ b/ui/color/ui_color_mixer.cc -@@ -141,6 +141,17 @@ void AddUiColorMixer(ColorProvider* provider, - kColorPwaSecurityChipForeground}; - mixer[kColorPwaToolbarBackground] = {kColorEndpointBackground}; - mixer[kColorPwaToolbarForeground] = {kColorEndpointForeground}; +@@ -138,6 +138,17 @@ void AddUiColorMixer(ColorProvider* provider, + SetAlpha(GetColorWithMaxContrast(kColorOverlayScrollbarFillHoveredLight), + gfx::kGoogleGreyAlpha500); + mixer[kColorProgressBar] = {kColorAccent}; + mixer[kColorResultsTableNormalBackground] = {SK_ColorWHITE}; + mixer[kColorResultsTableHoveredBackground] = + SetAlpha(kColorResultsTableNormalText, 0x0D); @@ -52,7 +58,7 @@ index 1d8415814c6245e3f2dfd01de7a2de11f09cdc7a..6db48efe454820e242b862edbfaf4d40 mixer[kColorSeparator] = {kColorMidground}; mixer[kColorShadowBase] = {dark_mode ? SK_ColorBLACK : gfx::kGoogleGrey800}; mixer[kColorShadowValueAmbientShadowElevationThree] = -@@ -216,6 +227,7 @@ void AddUiColorMixer(ColorProvider* provider, +@@ -213,6 +224,7 @@ void AddUiColorMixer(ColorProvider* provider, mixer[kColorTreeNodeForegroundSelectedFocused] = {kColorTreeNodeForeground}; mixer[kColorTreeNodeForegroundSelectedUnfocused] = { kColorTreeNodeForegroundSelectedFocused}; @@ -61,10 +67,10 @@ index 1d8415814c6245e3f2dfd01de7a2de11f09cdc7a..6db48efe454820e242b862edbfaf4d40 } diff --git a/ui/color/win/native_color_mixers_win.cc b/ui/color/win/native_color_mixers_win.cc -index 5faab22f665829e04cc07125f2486b9cb35f1f56..9776dbcc576c62ee44cbdd0d59542856363fb8f4 100644 +index 0620a389750649218865de06ed5d66f9ffe71871..575dcd925807263a9a5657d5156a3772421a0ed5 100644 --- a/ui/color/win/native_color_mixers_win.cc +++ b/ui/color/win/native_color_mixers_win.cc -@@ -136,16 +136,22 @@ void AddNativeUiColorMixer(ColorProvider* provider, +@@ -136,6 +136,10 @@ void AddNativeUiColorMixer(ColorProvider* provider, SetAlpha(kColorNotificationInputForeground, gfx::kGoogleGreyAlpha700); mixer[kColorSliderTrack] = AlphaBlend( kColorNativeHighlight, kColorNativeWindow, gfx::kGoogleGreyAlpha400); @@ -75,8 +81,10 @@ index 5faab22f665829e04cc07125f2486b9cb35f1f56..9776dbcc576c62ee44cbdd0d59542856 // Window Background mixer[kColorBubbleFooterBackground] = {kColorNativeWindow}; +@@ -143,11 +147,13 @@ void AddNativeUiColorMixer(ColorProvider* provider, + mixer[kColorFrameActive] = {ui::kColorNativeWindow}; + mixer[kColorFrameInactive] = {ui::kColorNativeWindow}; mixer[kColorTooltipBackground] = {kColorNativeWindow}; - mixer[kColorButtonBackgroundProminentDisabled] = {kColorNativeWindow}; + mixer[kColorResultsTableNormalBackground] = {kColorNativeWindow}; // Window Text @@ -87,7 +95,7 @@ index 5faab22f665829e04cc07125f2486b9cb35f1f56..9776dbcc576c62ee44cbdd0d59542856 // Hyperlinks mixer[kColorLinkForeground] = {kColorNativeHotlight}; -@@ -179,6 +185,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, +@@ -181,6 +187,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, mixer[kColorTextfieldForeground] = {kColorNativeBtnText}; mixer[kColorTextfieldForegroundPlaceholder] = {kColorNativeBtnText}; mixer[kColorTextfieldForegroundDisabled] = {kColorNativeBtnText}; diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index 86e14be4b665..6aae32dba1e9 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -69,10 +69,10 @@ index 650c78f16c812170aeda99d75300ff88f47347a0..c33ce445a23f97a744db3a4ac30ef471 NEW_DOC, diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc -index 7dbb9aea759e4a80a4ef3133eeffcd952bbe6d50..62fbaa0e24dff2037f47ef4ccf09993aa79b3ef8 100644 +index 27305997182f0a669291d2f36dd6b0b98c43f314..cbb83e1f5661852d84468ec9d342af1b2d05ae45 100644 --- a/chrome/browser/printing/print_job_worker.cc +++ b/chrome/browser/printing/print_job_worker.cc -@@ -20,13 +20,13 @@ +@@ -20,7 +20,6 @@ #include "build/build_config.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/printing/print_job.h" @@ -80,14 +80,15 @@ index 7dbb9aea759e4a80a4ef3133eeffcd952bbe6d50..62fbaa0e24dff2037f47ef4ccf09993a #include "components/crash/core/common/crash_keys.h" #include "components/device_event_log/device_event_log.h" #include "content/public/browser/browser_task_traits.h" - #include "content/public/browser/browser_thread.h" +@@ -28,6 +27,7 @@ + #include "content/public/browser/global_routing_id.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" +#include "electron/grit/electron_resources.h" #include "printing/backend/print_backend.h" #include "printing/buildflags/buildflags.h" #include "printing/mojom/print.mojom.h" -@@ -239,16 +239,21 @@ void PrintJobWorker::UpdatePrintSettings(base::Value new_settings, +@@ -234,16 +234,21 @@ void PrintJobWorker::UpdatePrintSettings(base::Value new_settings, #endif // BUILDFLAG(IS_LINUX) && defined(USE_CUPS) } @@ -113,10 +114,10 @@ index 7dbb9aea759e4a80a4ef3133eeffcd952bbe6d50..62fbaa0e24dff2037f47ef4ccf09993a #if BUILDFLAG(IS_CHROMEOS) diff --git a/chrome/browser/printing/print_job_worker_oop.cc b/chrome/browser/printing/print_job_worker_oop.cc -index 457749cf31578666304c30a5df1b8428629caafe..21c4a76411ee06775fb5bbb2d5a2ac17911d1c2a 100644 +index 52a13c0c47f7f3f18c4f552806add67291ce8726..765bde402fec094b51faea68e67d3782bbc06564 100644 --- a/chrome/browser/printing/print_job_worker_oop.cc +++ b/chrome/browser/printing/print_job_worker_oop.cc -@@ -225,7 +225,7 @@ void PrintJobWorkerOop::OnFailure() { +@@ -226,7 +226,7 @@ void PrintJobWorkerOop::OnFailure() { } void PrintJobWorkerOop::ShowErrorDialog() { @@ -126,10 +127,10 @@ index 457749cf31578666304c30a5df1b8428629caafe..21c4a76411ee06775fb5bbb2d5a2ac17 void PrintJobWorkerOop::UnregisterServiceManagerClient() { diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc -index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd0828b8a1 100644 +index 1f37c11047d47bb2d65975fa69f33d822206dd08..d13ee6a81cd7edc5be99f595515ca521e01702ac 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc -@@ -29,10 +29,10 @@ +@@ -30,10 +30,10 @@ #include "chrome/browser/printing/print_view_manager_common.h" #include "chrome/browser/printing/printer_query.h" #include "chrome/browser/profiles/profile.h" @@ -142,7 +143,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd #include "components/prefs/pref_service.h" #include "components/printing/browser/print_composite_client.h" #include "components/printing/browser/print_manager_utils.h" -@@ -47,6 +47,7 @@ +@@ -49,6 +49,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" @@ -150,7 +151,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd #include "mojo/public/cpp/system/buffer.h" #include "printing/buildflags/buildflags.h" #include "printing/metafile_skia.h" -@@ -81,6 +82,8 @@ using PrintSettingsCallback = +@@ -86,6 +87,8 @@ using PrintSettingsCallback = base::OnceCallback)>; void ShowWarningMessageBox(const std::u16string& message) { @@ -159,7 +160,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd // Runs always on the UI thread. static bool is_dialog_shown = false; if (is_dialog_shown) -@@ -89,6 +92,7 @@ void ShowWarningMessageBox(const std::u16string& message) { +@@ -94,6 +97,7 @@ void ShowWarningMessageBox(const std::u16string& message) { base::AutoReset auto_reset(&is_dialog_shown, true); chrome::ShowWarningMessageBox(nullptr, std::u16string(), message); @@ -167,7 +168,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd } #if BUILDFLAG(ENABLE_PRINT_PREVIEW) -@@ -188,7 +192,9 @@ void UpdatePrintSettingsReplyOnIO( +@@ -191,7 +195,9 @@ void UpdatePrintSettingsReplyOnIO( DCHECK_CURRENTLY_ON(content::BrowserThread::IO); DCHECK(printer_query); mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr(); @@ -178,7 +179,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd RenderParamsFromPrintSettings(printer_query->settings(), params->params.get()); params->params->document_cookie = printer_query->cookie(); -@@ -241,6 +247,7 @@ void ScriptedPrintReplyOnIO( +@@ -244,6 +250,7 @@ void ScriptedPrintReplyOnIO( mojom::PrintManagerHost::ScriptedPrintCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr(); @@ -186,7 +187,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd if (printer_query->last_status() == mojom::ResultCode::kSuccess && printer_query->settings().dpi()) { RenderParamsFromPrintSettings(printer_query->settings(), -@@ -250,8 +257,9 @@ void ScriptedPrintReplyOnIO( +@@ -253,8 +260,9 @@ void ScriptedPrintReplyOnIO( } bool has_valid_cookie = params->params->document_cookie; bool has_dpi = !params->params->dpi.IsEmpty(); @@ -197,7 +198,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd if (has_dpi && has_valid_cookie) { queue->QueuePrinterQuery(std::move(printer_query)); -@@ -290,12 +298,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) +@@ -292,12 +300,14 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) : PrintManager(web_contents), queue_(g_browser_process->print_job_manager()->queue()) { DCHECK(queue_); @@ -212,7 +213,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd } PrintViewManagerBase::~PrintViewManagerBase() { -@@ -303,7 +313,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { +@@ -305,7 +315,10 @@ PrintViewManagerBase::~PrintViewManagerBase() { DisconnectFromCurrentPrintJob(); } @@ -224,7 +225,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd // Remember the ID for `rfh`, to enable checking that the `RenderFrameHost` // is still valid after a possible inner message loop runs in // `DisconnectFromCurrentPrintJob()`. -@@ -326,7 +339,9 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { +@@ -328,7 +341,9 @@ bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh) { // go in `ReleasePrintJob()`. SetPrintingRFH(rfh); @@ -235,7 +236,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd for (auto& observer : GetObservers()) observer.OnPrintNow(rfh); -@@ -470,7 +485,8 @@ void PrintViewManagerBase::GetDefaultPrintSettingsReply( +@@ -471,7 +486,8 @@ void PrintViewManagerBase::GetDefaultPrintSettingsReply( void PrintViewManagerBase::ScriptedPrintReply( ScriptedPrintCallback callback, int process_id, @@ -245,7 +246,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (!content::RenderProcessHost::FromID(process_id)) { -@@ -478,16 +494,19 @@ void PrintViewManagerBase::ScriptedPrintReply( +@@ -479,16 +495,19 @@ void PrintViewManagerBase::ScriptedPrintReply( return; } @@ -259,17 +260,17 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd void PrintViewManagerBase::UpdatePrintingEnabled() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - // The Unretained() is safe because ForEachFrame() is synchronous. -- web_contents()->ForEachFrame(base::BindRepeating( + // The Unretained() is safe because ForEachRenderFrameHost() is synchronous. +- web_contents()->GetMainFrame()->ForEachRenderFrameHost(base::BindRepeating( - &PrintViewManagerBase::SendPrintingEnabled, base::Unretained(this), - printing_enabled_.GetValue())); -+ web_contents()->ForEachFrame( ++ web_contents()->GetMainFrame()->ForEachRenderFrameHost( + base::BindRepeating(&PrintViewManagerBase::SendPrintingEnabled, + base::Unretained(this), true)); } void PrintViewManagerBase::NavigationStopped() { -@@ -601,12 +620,13 @@ void PrintViewManagerBase::DidPrintDocument( +@@ -602,12 +621,13 @@ void PrintViewManagerBase::DidPrintDocument( void PrintViewManagerBase::GetDefaultPrintSettings( GetDefaultPrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -322,16 +323,16 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd + std::move(callback).Run(CreateEmptyPrintPagesParamsPtr(), false); return; } - int process_id = render_process_host->GetID(); -@@ -693,7 +716,6 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { + auto callback_wrapper = base::BindOnce( +@@ -691,7 +714,6 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie) { PrintManager::PrintingFailed(cookie); - #if BUILDFLAG(ENABLE_PRINT_PREVIEW) + #if !BUILDFLAG(IS_ANDROID) // Android does not implement this function. - ShowPrintErrorDialog(); #endif ReleasePrinterQuery(); -@@ -708,6 +730,11 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) { +@@ -706,6 +728,11 @@ void PrintViewManagerBase::RemoveObserver(Observer& observer) { } void PrintViewManagerBase::ShowInvalidPrinterSettingsError() { @@ -343,13 +344,15 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&ShowWarningMessageBox, l10n_util::GetStringUTF16( -@@ -718,8 +745,10 @@ void PrintViewManagerBase::RenderFrameHostStateChanged( +@@ -716,10 +743,12 @@ void PrintViewManagerBase::RenderFrameHostStateChanged( content::RenderFrameHost* render_frame_host, content::RenderFrameHost::LifecycleState /*old_state*/, content::RenderFrameHost::LifecycleState new_state) { -+#if 0 // Printing is always enabled. - if (new_state == content::RenderFrameHost::LifecycleState::kActive) ++#if 0 + if (new_state == content::RenderFrameHost::LifecycleState::kActive && + render_frame_host->GetProcess()->IsPdf()) { SendPrintingEnabled(printing_enabled_.GetValue(), render_frame_host); + } +#endif } @@ -402,7 +405,7 @@ index 9ed04fffa69c23834dec23836532dc3cc71299a6..2e332aab1d316569998f8d349af386bd if (!cookie) { diff --git a/chrome/browser/printing/print_view_manager_base.h b/chrome/browser/printing/print_view_manager_base.h -index 2661776307f773ac8f2c62529ec86349b045ee8f..4fa8f358ee59baed32ef4fd0684d010256206a54 100644 +index 2661776307f773ac8f2c62529ec86349b045ee8f..cb41b271adbb02517a5e1ad222d0320000437dfb 100644 --- a/chrome/browser/printing/print_view_manager_base.h +++ b/chrome/browser/printing/print_view_manager_base.h @@ -37,6 +37,8 @@ namespace printing { @@ -420,9 +423,9 @@ index 2661776307f773ac8f2c62529ec86349b045ee8f..4fa8f358ee59baed32ef4fd0684d0102 // this function. Returns false if printing is impossible at the moment. - virtual bool PrintNow(content::RenderFrameHost* rfh); + virtual bool PrintNow(content::RenderFrameHost* rfh, -+ bool silent, -+ base::Value settings, -+ CompletionCallback callback); ++ bool silent = true, ++ base::Value settings = {}, ++ CompletionCallback callback = {}); #if BUILDFLAG(ENABLE_PRINT_PREVIEW) // Prints the document in `print_data` with settings specified in @@ -460,8 +463,83 @@ index 2661776307f773ac8f2c62529ec86349b045ee8f..4fa8f358ee59baed32ef4fd0684d0102 // Set while running an inner message loop inside RenderAllMissingPagesNow(). // This means we are _blocking_ until all the necessary pages have been // rendered or the print settings are being loaded. +diff --git a/chrome/browser/ui/webui/print_preview/fake_print_render_frame.cc b/chrome/browser/ui/webui/print_preview/fake_print_render_frame.cc +index 879004c790d57b28e7a816ebf560971876c17168..334509d3ab45af4bb7877f656ca5aca7ee1bce00 100644 +--- a/chrome/browser/ui/webui/print_preview/fake_print_render_frame.cc ++++ b/chrome/browser/ui/webui/print_preview/fake_print_render_frame.cc +@@ -20,7 +20,7 @@ FakePrintRenderFrame::FakePrintRenderFrame( + + FakePrintRenderFrame::~FakePrintRenderFrame() = default; + +-void FakePrintRenderFrame::PrintRequestedPages() {} ++void FakePrintRenderFrame::PrintRequestedPages(bool /*silent*/, ::base::Value /*settings*/) {} + + void FakePrintRenderFrame::PrintForSystemDialog() {} + +diff --git a/chrome/browser/ui/webui/print_preview/fake_print_render_frame.h b/chrome/browser/ui/webui/print_preview/fake_print_render_frame.h +index 10f46664d8337d6be2fac24d9a6933429f3b2c2b..6de833f2da3ae85cf0752284146974f2026ab174 100644 +--- a/chrome/browser/ui/webui/print_preview/fake_print_render_frame.h ++++ b/chrome/browser/ui/webui/print_preview/fake_print_render_frame.h +@@ -24,7 +24,7 @@ class FakePrintRenderFrame : public mojom::PrintRenderFrame { + + private: + // printing::mojom::PrintRenderFrame: +- void PrintRequestedPages() override; ++ void PrintRequestedPages(bool silent, ::base::Value settings) override; + void PrintForSystemDialog() override; + void SetPrintPreviewUI( + mojo::PendingAssociatedRemote preview) override; +diff --git a/components/printing/browser/print_to_pdf/pdf_print_manager.cc b/components/printing/browser/print_to_pdf/pdf_print_manager.cc +index 66810a2a5f0c77ba107c71d2abaef8692bda0fea..cd6103af4571f82f11652a3c7ecf0e534428dc49 100644 +--- a/components/printing/browser/print_to_pdf/pdf_print_manager.cc ++++ b/components/printing/browser/print_to_pdf/pdf_print_manager.cc +@@ -116,7 +116,8 @@ void PdfPrintManager::PrintToPdf( + set_cookie(print_pages_params_->params->document_cookie); + callback_ = std::move(callback); + +- GetPrintRenderFrame(rfh)->PrintRequestedPages(); ++ // TODO(electron-maintainers): do something with job_settings here? ++ GetPrintRenderFrame(rfh)->PrintRequestedPages(true/*silent*/, base::Value{}/*job_settings*/); + } + + void PdfPrintManager::GetDefaultPrintSettings( +@@ -138,14 +139,14 @@ void PdfPrintManager::ScriptedPrint( + if (!printing_rfh_) { + DLOG(ERROR) << "Unexpected message received before PrintToPdf is " + "called: ScriptedPrint"; +- std::move(callback).Run(std::move(default_param)); ++ std::move(callback).Run(std::move(default_param), true/*canceled*/); + return; + } + if (params->is_scripted && + GetCurrentTargetFrame()->IsNestedWithinFencedFrame()) { + DLOG(ERROR) << "Unexpected message received. Script Print is not allowed" + " in a fenced frame."; +- std::move(callback).Run(std::move(default_param)); ++ std::move(callback).Run(std::move(default_param), true/*canceled*/); + return; + } + absl::variant page_ranges = +@@ -162,7 +163,7 @@ void PdfPrintManager::ScriptedPrint( + break; + } + ReleaseJob(print_result); +- std::move(callback).Run(std::move(default_param)); ++ std::move(callback).Run(std::move(default_param), true/*canceled*/); + return; + } + +@@ -170,7 +171,7 @@ void PdfPrintManager::ScriptedPrint( + print_pages_params_->pages = printing::PageRange::GetPages( + absl::get(page_ranges)); + +- std::move(callback).Run(print_pages_params_->Clone()); ++ std::move(callback).Run(print_pages_params_->Clone(), false/*canceled*/); + } + + void PdfPrintManager::ShowInvalidPrinterSettingsError() { diff --git a/components/printing/common/print.mojom b/components/printing/common/print.mojom -index 51ebcb4ae399018d3fd8566656596a7ef1f148af..c0fbff95137e2e5bccb9702a8cc858df2d989964 100644 +index 5afad24754e12554368a6619466ca025edc26180..e2e786692bd877d3b8bf7c31829496afa99ed539 100644 --- a/components/printing/common/print.mojom +++ b/components/printing/common/print.mojom @@ -274,7 +274,7 @@ interface PrintPreviewUI { @@ -469,7 +547,7 @@ index 51ebcb4ae399018d3fd8566656596a7ef1f148af..c0fbff95137e2e5bccb9702a8cc858df // 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. - PrintRequestedPages(); -+ PrintRequestedPages(bool silent, mojo_base.mojom.DictionaryValue settings); ++ PrintRequestedPages(bool silent, mojo_base.mojom.DeprecatedDictionaryValue settings); // 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 @@ -483,7 +561,7 @@ index 51ebcb4ae399018d3fd8566656596a7ef1f148af..c0fbff95137e2e5bccb9702a8cc858df // Tells the browser that there are invalid printer settings. ShowInvalidPrinterSettingsError(); diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc -index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9c832bf5a 100644 +index 066521576d021cbd3e68057f68199c23a8a30437..72777428d2456191875806bc3c57d0801b43a8ea 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc @@ -40,6 +40,7 @@ @@ -494,7 +572,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 #include "printing/units.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" -@@ -1254,7 +1255,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { +@@ -1263,7 +1264,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) { if (!weak_this) return; @@ -504,7 +582,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 if (!weak_this) return; -@@ -1285,7 +1287,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( +@@ -1294,7 +1296,7 @@ void PrintRenderFrameHelper::BindPrintRenderFrameReceiver( receivers_.Add(this, std::move(receiver)); } @@ -513,7 +591,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 ScopedIPC scoped_ipc(weak_ptr_factory_.GetWeakPtr()); if (ipc_nesting_level_ > kAllowedIpcDepthForPrint) return; -@@ -1300,7 +1302,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { +@@ -1309,7 +1311,7 @@ void PrintRenderFrameHelper::PrintRequestedPages() { // plugin node and print that instead. auto plugin = delegate_->GetPdfElement(frame); @@ -522,7 +600,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 if (!render_frame_gone_) frame->DispatchAfterPrintEvent(); -@@ -1331,7 +1333,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { +@@ -1340,7 +1342,8 @@ void PrintRenderFrameHelper::PrintForSystemDialog() { } Print(frame, print_preview_context_.source_node(), @@ -532,7 +610,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 if (!render_frame_gone_) print_preview_context_.DispatchAfterPrintEvent(); // WARNING: |this| may be gone at this point. Do not do any more work here and -@@ -1378,6 +1381,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { +@@ -1387,6 +1390,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value settings) { if (ipc_nesting_level_ > kAllowedIpcDepthForPrint) return; @@ -541,7 +619,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 print_preview_context_.OnPrintPreview(); if (print_preview_context_.IsForArc()) { -@@ -1915,7 +1920,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1924,7 +1929,8 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { return; Print(duplicate_node.GetDocument().GetFrame(), duplicate_node, @@ -551,7 +629,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 // Check if |this| is still valid. if (!weak_this) return; -@@ -1930,7 +1936,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -1939,7 +1945,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -562,7 +640,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 // If still not finished with earlier print request simply ignore. if (prep_frame_view_) return; -@@ -1938,7 +1946,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1947,7 +1955,7 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, FrameReference frame_ref(frame); uint32_t expected_page_count = 0; @@ -571,7 +649,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 DidFinishPrinting(FAIL_PRINT_INIT); return; // Failed to init print page settings. } -@@ -1957,8 +1965,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -1966,8 +1974,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, print_pages_params_->params->print_scaling_option; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -588,7 +666,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 // Check if |this| is still valid. if (!self) return; -@@ -2206,36 +2221,51 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2215,36 +2230,51 @@ void PrintRenderFrameHelper::IPCProcessed() { } } @@ -652,7 +730,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 notify_browser_of_print_failure_ = false; GetPrintManagerHost()->ShowInvalidPrinterSettingsError(); return false; -@@ -2380,7 +2410,7 @@ mojom::PrintPagesParamsPtr PrintRenderFrameHelper::GetPrintSettingsFromUser( +@@ -2389,7 +2419,7 @@ mojom::PrintPagesParamsPtr PrintRenderFrameHelper::GetPrintSettingsFromUser( std::move(params), base::BindOnce( [](base::OnceClosure quit_closure, mojom::PrintPagesParamsPtr* output, @@ -661,7 +739,7 @@ index 553b199325714b2ac91c996ef5d32abf76169573..93821dc9c6d79d2c13e6c8db12a75cd9 *output = std::move(input); std::move(quit_closure).Run(); }, -@@ -2625,18 +2655,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type, +@@ -2634,18 +2664,7 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type, } bool PrintRenderFrameHelper::CheckForCancel() { diff --git a/patches/chromium/process_singleton.patch b/patches/chromium/process_singleton.patch index 565c00742ba8..e5d125cd0dbb 100644 --- a/patches/chromium/process_singleton.patch +++ b/patches/chromium/process_singleton.patch @@ -75,18 +75,18 @@ index 16bb3aa15a5378e8319f75f4b6b72b39177828f4..5a64220aaf1309832dc0ad543e353de6 #if BUILDFLAG(IS_MAC) diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75 100644 +index 22331cd6985b2aa2347fe9d4211f51634e94d0a6..be2c417c07a4206fac4a9a6c03e516fd0493c942 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc -@@ -53,6 +53,7 @@ +@@ -54,6 +54,7 @@ #include #include #include +#include #include - #include -@@ -82,6 +83,7 @@ + #include "base/base_paths.h" +@@ -80,6 +81,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner_helpers.h" #include "base/task/single_thread_task_runner.h" @@ -94,7 +94,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 #include "base/threading/platform_thread.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" -@@ -98,9 +100,11 @@ +@@ -96,9 +98,11 @@ #include "net/base/network_interfaces.h" #include "ui/base/l10n/l10n_util.h" @@ -106,7 +106,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 #if defined(TOOLKIT_VIEWS) && \ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) -@@ -349,6 +353,9 @@ bool SymlinkPath(const base::FilePath& target, const base::FilePath& path) { +@@ -347,6 +351,9 @@ bool SymlinkPath(const base::FilePath& target, const base::FilePath& path) { bool DisplayProfileInUseError(const base::FilePath& lock_path, const std::string& hostname, int pid) { @@ -116,7 +116,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 std::u16string error = l10n_util::GetStringFUTF16( IDS_PROFILE_IN_USE_POSIX, base::NumberToString16(pid), base::ASCIIToUTF16(hostname)); -@@ -368,6 +375,7 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, +@@ -366,6 +373,7 @@ bool DisplayProfileInUseError(const base::FilePath& lock_path, NOTREACHED(); return false; @@ -124,7 +124,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 } bool IsChromeProcess(pid_t pid) { -@@ -408,6 +416,21 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) { +@@ -406,6 +414,21 @@ bool CheckCookie(const base::FilePath& path, const base::FilePath& cookie) { return (cookie == ReadLink(path)); } @@ -146,7 +146,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 bool ConnectSocket(ScopedSocket* socket, const base::FilePath& socket_path, const base::FilePath& cookie_path) { -@@ -775,6 +798,10 @@ ProcessSingleton::ProcessSingleton( +@@ -773,6 +796,10 @@ ProcessSingleton::ProcessSingleton( ProcessSingleton::~ProcessSingleton() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -157,7 +157,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 } ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() { -@@ -947,6 +974,20 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() { +@@ -945,6 +972,20 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessOrCreate() { base::Seconds(kTimeoutInSeconds)); } @@ -178,7 +178,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeoutOrCreate( const base::CommandLine& command_line, -@@ -1046,14 +1087,32 @@ bool ProcessSingleton::Create() { +@@ -1044,14 +1085,32 @@ bool ProcessSingleton::Create() { #endif } @@ -216,7 +216,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 // Check that the directory was created with the correct permissions. int dir_mode = 0; CHECK(base::GetPosixFilePermissions(socket_dir_.GetPath(), &dir_mode) && -@@ -1096,10 +1155,13 @@ bool ProcessSingleton::Create() { +@@ -1094,10 +1153,13 @@ bool ProcessSingleton::Create() { if (listen(sock, 5) < 0) NOTREACHED() << "listen failed: " << base::safe_strerror(errno); @@ -235,7 +235,7 @@ index c9f26ea2d2ea16484d416fdce095ec1b8b885991..7d3a441bdb64268ed5fbfa7bf589fb35 return true; } diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc -index 8eb7de0cd4007a5fd5431bcc7fb7be4962bd608e..0ea5eb3e3cf055d981ab73486115bac53287f2d7 100644 +index e2312c65623a3f54ecbc18058720ccae53822e76..ec725b44296266bea1a51aea889463a0bba8449c 100644 --- a/chrome/browser/process_singleton_win.cc +++ b/chrome/browser/process_singleton_win.cc @@ -28,7 +28,9 @@ @@ -265,7 +265,7 @@ index 8eb7de0cd4007a5fd5431bcc7fb7be4962bd608e..0ea5eb3e3cf055d981ab73486115bac5 } // Function was copied from Process::Terminate. -@@ -245,9 +252,13 @@ bool ProcessSingleton::EscapeVirtualization( +@@ -252,9 +259,13 @@ bool ProcessSingleton::EscapeVirtualization( } ProcessSingleton::ProcessSingleton( @@ -279,7 +279,7 @@ index 8eb7de0cd4007a5fd5431bcc7fb7be4962bd608e..0ea5eb3e3cf055d981ab73486115bac5 is_virtualized_(false), lock_file_(INVALID_HANDLE_VALUE), user_data_dir_(user_data_dir), -@@ -361,13 +372,16 @@ ProcessSingleton::NotifyOtherProcessOrCreate() { +@@ -368,13 +379,16 @@ ProcessSingleton::NotifyOtherProcessOrCreate() { return PROFILE_IN_USE; } @@ -297,7 +297,7 @@ index 8eb7de0cd4007a5fd5431bcc7fb7be4962bd608e..0ea5eb3e3cf055d981ab73486115bac5 remote_window_ = chrome::FindRunningChromeWindow(user_data_dir_); if (!remote_window_ && !EscapeVirtualization(user_data_dir_)) { -@@ -376,7 +390,7 @@ bool ProcessSingleton::Create() { +@@ -383,7 +397,7 @@ bool ProcessSingleton::Create() { // access. As documented, it's clearer to NOT request ownership on creation // since it isn't guaranteed we will get it. It is better to create it // without ownership and explicitly get the ownership afterward. @@ -306,7 +306,7 @@ index 8eb7de0cd4007a5fd5431bcc7fb7be4962bd608e..0ea5eb3e3cf055d981ab73486115bac5 if (!only_me.IsValid()) { DPLOG(FATAL) << "CreateMutex failed"; return false; -@@ -415,6 +429,17 @@ bool ProcessSingleton::Create() { +@@ -422,6 +436,17 @@ bool ProcessSingleton::Create() { window_.CreateNamed(base::BindRepeating(&ProcessLaunchNotification, notification_callback_), user_data_dir_.value()); diff --git a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch index ec5cabb02673..a4aa00e1ae18 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -30,10 +30,10 @@ index 059ff2b47e7aa8b9707e71ae9a1793bfdd86d319..529637f8b6af6b8b45f9de61d27b5e9c // RenderWidgetHost on the primary main frame, and false otherwise. virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 59437e69e25fe85cffc9b558dec2284123ac48be..d3af2aed32f6047cbb86bd2b4ce1df9fee80437c 100644 +index ed56e947fa137cbaddaa12503ae983d7acd4463f..e1d77416991bac0178935b1bd255947d20db6210 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2082,6 +2082,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { +@@ -2073,6 +2073,8 @@ void RenderWidgetHostImpl::FilterDropData(DropData* drop_data) { void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { if (view_) view_->UpdateCursor(WebCursor(cursor)); @@ -43,10 +43,10 @@ index 59437e69e25fe85cffc9b558dec2284123ac48be..d3af2aed32f6047cbb86bd2b4ce1df9f void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index c8e49eeaca8b31479aa908be9c349ccd625e9e51..5c63a024827359ccf697d0b7fc8fa2092eb107b7 100644 +index 92dcf2308842ce8922426b0cafdd5a3e83f4bd52..d69e028b34ab4407abcdea3ece93db39926c587e 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4486,6 +4486,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -4494,6 +4494,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -59,10 +59,10 @@ index c8e49eeaca8b31479aa908be9c349ccd625e9e51..5c63a024827359ccf697d0b7fc8fa209 RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 85b426a7552cf925157a76fcd1ed7de47cd27a54..7440f2025701ccde0ade36cda22467dd0614109b 100644 +index fdb4a26de507f260466a7bc22c5cadc64190c342..55224f960151b0cae23b2a49d755eace630e9e3a 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -965,6 +965,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, +@@ -961,6 +961,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, blink::mojom::FrameVisibility visibility) override; void SendScreenRects() override; TextInputManager* GetTextInputManager() override; diff --git a/patches/chromium/remove_incorrect_width_height_adjustments.patch b/patches/chromium/remove_incorrect_width_height_adjustments.patch deleted file mode 100644 index 4fce52ba6e28..000000000000 --- a/patches/chromium/remove_incorrect_width_height_adjustments.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bruce Dawson -Date: Mon, 28 Feb 2022 19:07:41 +0000 -Subject: Remove incorrect width/height adjustments - -In late 2016 a change which fixed some problems around window sizing -when attaching or detaching additional displays was landed, which fixed -some genuine bugs. Unfortunately it included a subtraction of 1 from the -width and height of the Chrome window. I couldn't find any discussion of -this size adjustment and I think that it was just a misunderstanding of -how window rectangles work (inclusive versus exclusive extents). - -This size adjustment causes non-maximized Chrome windows to shrink every -time a monitor is added or removed. The problematic commit was found -by the bug-filer through a bisect of more than four years of Chrome -history - I'm just landing the fix that they suggested. - -Bug: 1300415 -Change-Id: Ief124f584a91aa9cc3f10704b0cc1e83356dea5b -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3492658 -Reviewed-by: Allen Bauer -Commit-Queue: Bruce Dawson -Cr-Commit-Position: refs/heads/main@{#975872} - -diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 264a9109e42c23e9be6bf7269b3cfee2634b61e4..86f06d2a2c9588a2210a9f78f47e73f1b7c5e329 100644 ---- a/ui/views/win/hwnd_message_handler.cc -+++ b/ui/views/win/hwnd_message_handler.cc -@@ -2834,8 +2834,8 @@ void HWNDMessageHandler::OnWindowPosChanging(WINDOWPOS* window_pos) { - // (Win+Shift+Arrows). See crbug.com/656001. - window_rect.left = window_pos->x; - window_rect.top = window_pos->y; -- window_rect.right = window_pos->x + window_pos->cx - 1; -- window_rect.bottom = window_pos->y + window_pos->cy - 1; -+ window_rect.right = window_pos->x + window_pos->cx; -+ window_rect.bottom = window_pos->y + window_pos->cy; - } - - HMONITOR monitor; diff --git a/patches/chromium/render_widget_host_view_base.patch b/patches/chromium/render_widget_host_view_base.patch index 24054daa57a9..229cc895360e 100644 --- a/patches/chromium/render_widget_host_view_base.patch +++ b/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 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 5fd8cb63f589dd204c2477f2375ec1d3716b55f0..85e52f7a99fe350da05270cf6fde0fe82a1bec40 100644 +index 6944f34edbfb7656c19883243ab2eb15f5ce51d9..0a2ddf31689b0d2ba2600a40067f9892b06033a7 100644 --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -660,6 +660,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( +@@ -662,6 +662,13 @@ bool RenderWidgetHostViewBase::ScreenRectIsUnstableFor( return false; } diff --git a/patches/chromium/render_widget_host_view_mac.patch b/patches/chromium/render_widget_host_view_mac.patch index 9500c595ccfb..88293ba5df85 100644 --- a/patches/chromium/render_widget_host_view_mac.patch +++ b/patches/chromium/render_widget_host_view_mac.patch @@ -10,7 +10,7 @@ kinds of utility windows. Similarly for `disableAutoHideCursor`. Additionally, disables usage of some private APIs in MAS builds. diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm -index 57b797c2e730a76d4910f8bcd5b35cc515a61012..61575390665f00b96d593a2e1066be3b28d8de6f 100644 +index 1393c9c8382dd405edd9a5515210176395a98fe5..38bd45e0ca66af9f78bb532e411db66dc8d9d5da 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 @@ -154,6 +154,15 @@ void ExtractUnderlines(NSAttributedString* string, @@ -50,7 +50,7 @@ index 57b797c2e730a76d4910f8bcd5b35cc515a61012..61575390665f00b96d593a2e1066be3b if (view == self) hitSelf = YES; if ([view isKindOfClass:[self class]] && ![view isEqual:self] && -@@ -1006,6 +1022,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { +@@ -1005,6 +1021,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv { eventType == NSKeyDown && !(modifierFlags & NSCommandKeyMask); @@ -61,7 +61,7 @@ index 57b797c2e730a76d4910f8bcd5b35cc515a61012..61575390665f00b96d593a2e1066be3b // We only handle key down events and just simply forward other events. if (eventType != NSKeyDown) { _hostHelper->ForwardKeyboardEvent(event, latency_info); -@@ -1752,9 +1772,11 @@ - (NSAccessibilityRole)accessibilityRole { +@@ -1751,9 +1771,11 @@ - (NSAccessibilityRole)accessibilityRole { // Since this implementation doesn't have to wait any IPC calls, this doesn't // make any key-typing jank. --hbono 7/23/09 // @@ -73,7 +73,7 @@ index 57b797c2e730a76d4910f8bcd5b35cc515a61012..61575390665f00b96d593a2e1066be3b - (NSArray*)validAttributesForMarkedText { // This code is just copied from WebKit except renaming variables. -@@ -1763,7 +1785,10 @@ - (NSArray*)validAttributesForMarkedText { +@@ -1762,7 +1784,10 @@ - (NSArray*)validAttributesForMarkedText { initWithObjects:NSUnderlineStyleAttributeName, NSUnderlineColorAttributeName, NSMarkedClauseSegmentAttributeName, diff --git a/patches/chromium/resource_file_conflict.patch b/patches/chromium/resource_file_conflict.patch index 6ed6e2f5790a..536be6ee276a 100644 --- a/patches/chromium/resource_file_conflict.patch +++ b/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 04546cad2b3e6355d667fe725b85836f128f0df7..7caaf66cad9d5b9f787cea0d49c32c26801571c2 100644 +index 6a696e816a185f8492674fcaf1cbbf7e2faabf99..a6e0a53d4ebbd585114bc0cda2e2d1caaab4a015 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1591,7 +1591,7 @@ if (is_chrome_branded && !is_android) { +@@ -1545,7 +1545,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index 04546cad2b3e6355d667fe725b85836f128f0df7..7caaf66cad9d5b9f787cea0d49c32c26 chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1619,6 +1619,12 @@ if (!is_android) { +@@ -1574,6 +1574,12 @@ if (!is_android) { } } diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index 0a1e41b6d04e..c90a98511a53 100644 --- a/patches/chromium/scroll_bounce_flag.patch +++ b/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 0b42cba8667225c25df2405d99efe119a26c3585..ee8b42500499dc6a1700bc38e5b75976bb408490 100644 +index 347526056c09a34c62512869b7c21b9e2b6ea0d7..dda90e2043eaba4dd951628f4876cad60a553b9b 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1344,7 +1344,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1339,7 +1339,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { } bool RenderThreadImpl::IsElasticOverscrollEnabled() { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index dd479d4ad021..b40543e80b56 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,10 +22,10 @@ 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 602525302cfdd89bf2ddc2924076e7349de7562a..ac9570fa3d9cb3b0026f70465e5b21ac7778c3df 100644 +index fb25a7c19f20ca690963c5a15bd09224687b5f57..d8939c1936830b101d6bb4079cd99e6015b481c4 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -1836,9 +1836,15 @@ bool RenderProcessHostImpl::Init() { +@@ -1786,9 +1786,15 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( cmd_line.get(), IsJitDisabled()); diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 849e94be20cc..0eea1a2d4de6 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 3da88b5831717c979373c064b4c1520c28d4fd98..cf3ea07bb7d708f9078c46af2c4583215f9cd189 100644 +index a82b571fdabe90771bc8f8ed4ae40df3085592c7..1942d3446225411bdce80628e219641b3089d4a3 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3040,6 +3040,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3045,6 +3045,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, site_instance.get(), params.renderer_initiated_creation, params.main_frame_name, GetOriginalOpener(), primary_main_frame_policy); @@ -26,7 +26,7 @@ index 3da88b5831717c979373c064b4c1520c28d4fd98..cf3ea07bb7d708f9078c46af2c458321 WebContentsViewDelegate* delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -3050,6 +3057,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3055,6 +3062,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_.reset(CreateWebContentsView(this, delegate, &render_view_host_delegate_view_)); } @@ -35,7 +35,7 @@ index 3da88b5831717c979373c064b4c1520c28d4fd98..cf3ea07bb7d708f9078c46af2c458321 CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index ad5c13965f1ccc078de5f25b08d51ed43e37f259..cd1b44d4ff5ce8924749ba9e41b3f599108bb8fd 100644 +index cb672eb5276e8d3bb686f98405854f67970e72cb..d159f44dc855fee799f7b97b59a2a4e64631e7b4 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h @@ -93,10 +93,13 @@ class BrowserContext; diff --git a/patches/chromium/webview_cross_drag.patch b/patches/chromium/webview_cross_drag.patch index 67d32c0a23bb..45933f1ae2cd 100644 --- a/patches/chromium/webview_cross_drag.patch +++ b/patches/chromium/webview_cross_drag.patch @@ -8,17 +8,17 @@ This allows dragging and dropping between 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 eff6616ef019ea8b661b878cc5fccd1e4b9217aa..9aff1848395dc41311df575dd7cbf0771271ed03 100644 +index 4095ee0ef25226180acb35d320630f971305528e..a0aff5ad93e7644211a2c15553b3d0988f380b7b 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc -@@ -890,10 +890,7 @@ bool WebContentsViewAura::IsValidDragTarget( - // TODO(https://crbug.com/1266953): There are some known gaps caused by - // comparing `RenderViewHost` IDs, as `RenderViewHost` ID is not really a - // strong signal for page identity. -- return !drag_start_ || -- target_rwh->GetProcess()->GetID() == drag_start_->process_id || -- GetRenderViewHostID(web_contents_->GetRenderViewHost()) != -- drag_start_->view_id; +@@ -899,10 +899,7 @@ bool WebContentsViewAura::IsValidDragTarget( + // for the outermost view. Inner `WebContents` will have a + // `WebContentsViewChildFrame` so when dragging between an inner + // `WebContents` and its embedder the view IDs will be the same. +- bool cross_tab_drag = +- GetRenderViewHostID(web_contents_->GetRenderViewHost()) != +- drag_start_->view_id; +- return cross_tab_drag; + return true; } diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index af32042b3d84..87438368253c 100644 --- a/patches/chromium/webview_fullscreen.patch +++ b/patches/chromium/webview_fullscreen.patch @@ -14,10 +14,10 @@ Note that we also need to manually update embedder's `api::WebContents::IsFullscreenForTabOrPending` value. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 713e2883139bca4bb56dcc7e3efcf6d6dfc4a02b..be2721cc6dc0582a05c74ac3d50c123666d7d5a3 100644 +index a6ed7b9f89b7fca2c6a6676053d520ba6c7716d7..dd8c421545d75cd8c9864b88701e0f9071259444 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -6102,6 +6102,15 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -6253,6 +6253,15 @@ void RenderFrameHostImpl::EnterFullscreen( notified_instances.insert(parent_site_instance); } diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index 099e2f15e320..0ba771e680e5 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -10,10 +10,10 @@ An attempt to upstream this was made, but rejected: https://chromium-review.googlesource.com/c/chromium/src/+/1954347 diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h -index 63ead7f8ab838693bade7163ddebd1787cc82344..8512a66eda07202b6c6faea049736fd8f16c93db 100644 +index eb8968c2a86102d0d3a21f07c394f1c360083c6c..025ef3f70a5ae34faf8c6013fbfba171c7f501ac 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h -@@ -361,6 +361,11 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -356,6 +356,11 @@ class CONTENT_EXPORT ContentRendererClient { virtual void DidInitializeWorkerContextOnWorkerThread( v8::Local context) {} @@ -26,10 +26,10 @@ index 63ead7f8ab838693bade7163ddebd1787cc82344..8512a66eda07202b6c6faea049736fd8 // 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 a64d78c9d8112610af6a17c8f8b8b9124b9d40a3..0bd64497495cfd8eee5e7cae3eca69937f2e79e0 100644 +index 030fd7ed2ea675e42e7894b1d89e636f5f5b85a6..998fe8b45959b8cfd91a1ed4f75f5946adf61537 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -932,6 +932,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { +@@ -950,6 +950,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread(); } @@ -43,7 +43,7 @@ index a64d78c9d8112610af6a17c8f8b8b9124b9d40a3..0bd64497495cfd8eee5e7cae3eca6993 const v8::Local& worker) { GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 10c96d3915e64ebebd283c70292b33e22612b8eb..9fa6853a2945e2a34ed319f874f356a4afd72dd3 100644 +index 8cbfe0a939e97de8dd8d4b5e4d741fb46e94fd45..2bc2ef61890a4c189613ae8a3f61c746ffc5d310 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h @@ -208,6 +208,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { @@ -55,10 +55,10 @@ index 10c96d3915e64ebebd283c70292b33e22612b8eb..9fa6853a2945e2a34ed319f874f356a4 const blink::WebSecurityOrigin& script_origin) override; blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel() diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index d188491afffbd259d4287b0668a9d1cec291934a..2fe5234832f8a3510326171e1ccf5dbfeca49fc9 100644 +index ced2c8e433d5b807bd4f1aa44c6af53e93261c23..53b1ebb708e2332e38090d1adba88dbe850bf02d 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -720,6 +720,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -716,6 +716,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} @@ -67,10 +67,10 @@ index d188491afffbd259d4287b0668a9d1cec291934a..2fe5234832f8a3510326171e1ccf5dbf 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 3d29142e7e9d641d17ad16a8b24bf263f0bd4c73..9f5f07b2865df5ed8dd4a8c01082f4378b5f9ccf 100644 +index 2406a8b438de5f01f5354e08bcfc8810238b1bea..e7a60f6cae0fabeac6a5adec633ad5f45d43ef33 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -730,6 +730,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -731,6 +731,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { nested_runner_->QuitNow(); } diff --git a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch index 8c14560076af..6608ad6735fa 100644 --- a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch +++ b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch @@ -19,10 +19,10 @@ that clearly establishes the worker script is ready for evaluation with the scop initialized. diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h -index 8512a66eda07202b6c6faea049736fd8f16c93db..afe767350c8878da38ab2b566fa89bcb831f8716 100644 +index 025ef3f70a5ae34faf8c6013fbfba171c7f501ac..cea3f3dc05f91927f4ee8be5eec85ec26c8e1e07 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h -@@ -361,6 +361,11 @@ class CONTENT_EXPORT ContentRendererClient { +@@ -356,6 +356,11 @@ class CONTENT_EXPORT ContentRendererClient { virtual void DidInitializeWorkerContextOnWorkerThread( v8::Local context) {} @@ -35,10 +35,10 @@ index 8512a66eda07202b6c6faea049736fd8f16c93db..afe767350c8878da38ab2b566fa89bcb // from the worker thread. virtual void WillDestroyWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 0bd64497495cfd8eee5e7cae3eca69937f2e79e0..9ab68aabff203127dba5a0ccdf16fa62f3ef4c40 100644 +index 998fe8b45959b8cfd91a1ed4f75f5946adf61537..30d22188daed7f0b451ae75655e12bac3c4f10ac 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -944,6 +944,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( +@@ -962,6 +962,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( worker); } @@ -52,7 +52,7 @@ index 0bd64497495cfd8eee5e7cae3eca69937f2e79e0..9ab68aabff203127dba5a0ccdf16fa62 const blink::WebSecurityOrigin& script_origin) { return GetContentClient()->renderer()->AllowScriptExtensionForServiceWorker( diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h -index 9fa6853a2945e2a34ed319f874f356a4afd72dd3..87f9190d227e501a648dbbaa350bbb105601fbfb 100644 +index 2bc2ef61890a4c189613ae8a3f61c746ffc5d310..36661d62ec1e6f7966b0789326fcbefa5fc3db6e 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h @@ -208,6 +208,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { @@ -65,10 +65,10 @@ index 9fa6853a2945e2a34ed319f874f356a4afd72dd3..87f9190d227e501a648dbbaa350bbb10 bool AllowScriptExtensionForServiceWorker( const blink::WebSecurityOrigin& script_origin) override; diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index 2fe5234832f8a3510326171e1ccf5dbfeca49fc9..b36a118861b2efae6ae28ef0e7f14db5d284b929 100644 +index 53b1ebb708e2332e38090d1adba88dbe850bf02d..8e86b79cf98c5e2429d0ec54b27eb950c6ce6303 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -720,6 +720,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -716,6 +716,8 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} diff --git a/patches/devtools_frontend/fix_expose_globals_to_allow_patching_devtools_dock.patch b/patches/devtools_frontend/fix_expose_globals_to_allow_patching_devtools_dock.patch index 98510d24c4e2..e94b4197ec86 100644 --- a/patches/devtools_frontend/fix_expose_globals_to_allow_patching_devtools_dock.patch +++ b/patches/devtools_frontend/fix_expose_globals_to_allow_patching_devtools_dock.patch @@ -12,7 +12,7 @@ upstream a more durable approach to allowing us to do this, at which point this patch can be removed. diff --git a/front_end/entrypoints/shell/BUILD.gn b/front_end/entrypoints/shell/BUILD.gn -index bf96adcaa42a2406cf1dd7cd2468802886aa4fd7..cd84442cab4a0da772dd37cd4e921041b3b6173a 100644 +index 848d6edb722a88aa2d1b42290e65d677f5107acf..86e1c70d7693db0f1a6df32f0413c45f4854e586 100644 --- a/front_end/entrypoints/shell/BUILD.gn +++ b/front_end/entrypoints/shell/BUILD.gn @@ -31,6 +31,7 @@ devtools_entrypoint("shell") { diff --git a/patches/v8/build_gn.patch b/patches/v8/build_gn.patch index 13649f1c4acc..dbd23d4d3ed7 100644 --- a/patches/v8/build_gn.patch +++ b/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 fb68d0ec4d121aaac31fd6e4c317a59976ef034c..dbbe9ae10bebdd71f441fda00c7dbfa187603a84 100644 +index 076b75e2e5b3465ab3115f7186296c34f59480fc..7eaa7582fc1efc2381c267fec96fe94d274f922b 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -598,7 +598,7 @@ config("internal_config") { +@@ -605,7 +605,7 @@ config("internal_config") { ":cppgc_header_features", ] @@ -21,7 +21,7 @@ index fb68d0ec4d121aaac31fd6e4c317a59976ef034c..dbbe9ae10bebdd71f441fda00c7dbfa1 defines += [ "BUILDING_V8_SHARED" ] } -@@ -5733,7 +5733,7 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5819,7 +5819,7 @@ if (current_toolchain == v8_generator_toolchain) { "src/interpreter/bytecodes.h", ] @@ -30,7 +30,7 @@ index fb68d0ec4d121aaac31fd6e4c317a59976ef034c..dbbe9ae10bebdd71f441fda00c7dbfa1 deps = [ ":v8_libbase", -@@ -5771,6 +5771,8 @@ if (current_toolchain == v8_snapshot_toolchain) { +@@ -5857,6 +5857,8 @@ if (current_toolchain == v8_snapshot_toolchain) { configs = [ ":internal_config" ] diff --git a/patches/v8/dcheck.patch b/patches/v8/dcheck.patch index b4231609ce27..1db85681252e 100644 --- a/patches/v8/dcheck.patch +++ b/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 e6797c92a52ab7805261ace2156a39fe368bd747..1aed7cad8b7dfff9fc7b1f93040c3eda33693af3 100644 +index f0f1355f590b37d4b0ff1b68124165ab61099cc1..15d94af6d969f93cefb21d82ddb7d508320bea30 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -9097,7 +9097,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { +@@ -9088,7 +9088,7 @@ void Isolate::SetPromiseRejectCallback(PromiseRejectCallback callback) { } void Isolate::PerformMicrotaskCheckpoint() { @@ -19,10 +19,10 @@ index e6797c92a52ab7805261ace2156a39fe368bd747..1aed7cad8b7dfff9fc7b1f93040c3eda isolate->default_microtask_queue()->PerformCheckpoint(this); } diff --git a/src/heap/heap.cc b/src/heap/heap.cc -index 8e4ad43c1957f4ed555327588c41d049824c1dc5..54cf3b263ac5654b370897b951aa0be8f8d566e5 100644 +index ccef6add27d782845a404741e4a42d07c86d0222..659f5187f80f74b3902facebe8f34d8898244093 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc -@@ -6235,9 +6235,9 @@ void Heap::TearDown() { +@@ -6152,9 +6152,9 @@ void Heap::TearDown() { void Heap::AddGCPrologueCallback(v8::Isolate::GCCallbackWithData callback, GCType gc_type, void* data) { DCHECK_NOT_NULL(callback); diff --git a/patches/v8/do_not_export_private_v8_symbols_on_windows.patch b/patches/v8/do_not_export_private_v8_symbols_on_windows.patch index 59cf1289c5fa..bb775eb8c65e 100644 --- a/patches/v8/do_not_export_private_v8_symbols_on_windows.patch +++ b/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 c784f859ba874b9a79be3dd9c69d306b8a590660..93158da71e2e7dd1aecc421664d4d21687cb38a6 100644 +index 5338cdfd2067f1621ecb63ce8b8d1111e3677377..1f876cec9c66c2d92662c235ab5c9c608c242a37 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -598,6 +598,10 @@ config("internal_config") { +@@ -605,6 +605,10 @@ config("internal_config") { ":cppgc_header_features", ] @@ -27,7 +27,7 @@ index c784f859ba874b9a79be3dd9c69d306b8a590660..93158da71e2e7dd1aecc421664d4d216 defines += [ "BUILDING_V8_SHARED" ] } diff --git a/src/base/macros.h b/src/base/macros.h -index 3a73afc1ce7712a0683992608ff399734eea1f9d..f90f4ebffd6295bfa3e047cfb9c5ff0f2c30f26a 100644 +index fcb9f8756fd3ce9b83fe4ef60ad02fb225ec32dd..57dcd3deab5f37420a427954699dd85175328f3d 100644 --- a/src/base/macros.h +++ b/src/base/macros.h @@ -393,13 +393,17 @@ bool is_inbounds(float_t v) { diff --git a/patches/v8/export_symbols_needed_for_windows_build.patch b/patches/v8/export_symbols_needed_for_windows_build.patch index 4068e9b55533..c2e6211db28b 100644 --- a/patches/v8/export_symbols_needed_for_windows_build.patch +++ b/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 48f595a24ec7ead3076e1d44afb4f18b7bb810c3..df7cb44387a42fa173ce68ee8464d6abc050986f 100644 +index d57ad0a847ed1903228db4fb0650e1ca2922b608..de8947cb558455537e251f66cc3fe4f2f08c640b 100644 --- a/src/objects/objects.h +++ b/src/objects/objects.h -@@ -886,7 +886,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER }; +@@ -910,7 +910,7 @@ enum AccessorComponent { ACCESSOR_GETTER, ACCESSOR_SETTER }; // Utility superclass for stack-allocated objects that must be updated // on gc. It provides two ways for the gc to update instances, either // iterating or updating after gc. diff --git a/patches/v8/expose_mksnapshot.patch b/patches/v8/expose_mksnapshot.patch index ae318986f9b8..452d901cd270 100644 --- a/patches/v8/expose_mksnapshot.patch +++ b/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 dbbe9ae10bebdd71f441fda00c7dbfa187603a84..c784f859ba874b9a79be3dd9c69d306b8a590660 100644 +index 7eaa7582fc1efc2381c267fec96fe94d274f922b..5338cdfd2067f1621ecb63ce8b8d1111e3677377 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -5745,7 +5745,6 @@ if (current_toolchain == v8_generator_toolchain) { +@@ -5831,7 +5831,6 @@ if (current_toolchain == v8_generator_toolchain) { if (current_toolchain == v8_snapshot_toolchain) { v8_executable("mksnapshot") { diff --git a/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch index ad3c1b6198b4..def8b4cf37dd 100644 --- a/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch +++ b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch @@ -9,10 +9,10 @@ higher versions, but native module compiling with this version will have an issue. diff --git a/include/v8config.h b/include/v8config.h -index b16ab3ff88d1054d12af4de3ad0018c97c0b7fcc..c9963b43c121964c0c37c858adb228cd090d5c2a 100644 +index 77fd65c6c5b7d8c0a7fe7a37c40e17ce66f49ce6..010b3633546601ba70a55aeb8e8fc503ef79e2f5 100644 --- a/include/v8config.h +++ b/include/v8config.h -@@ -452,10 +452,13 @@ path. Add it with -I to the command line +@@ -454,10 +454,13 @@ path. Add it with -I to the command line # define V8_NOINLINE /* NOT SUPPORTED */ #endif @@ -28,7 +28,7 @@ index b16ab3ff88d1054d12af4de3ad0018c97c0b7fcc..c9963b43c121964c0c37c858adb228cd #else # define V8_DEPRECATED(message) #endif -@@ -463,7 +466,11 @@ path. Add it with -I to the command line +@@ -465,7 +468,11 @@ path. Add it with -I to the command line // A macro (V8_DEPRECATE_SOON) to make it easier to see what will be deprecated. #if defined(V8_IMMINENT_DEPRECATION_WARNINGS) diff --git a/patches/v8/workaround_an_undefined_symbol_error.patch b/patches/v8/workaround_an_undefined_symbol_error.patch index 4226bc8f1aca..5ced839d89db 100644 --- a/patches/v8/workaround_an_undefined_symbol_error.patch +++ b/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 ac7a46a895dd914f48038f36738c40ccfbd5c63f..e9f7bc7d022d05b6b62caf171d4e457119256831 100644 +index 1edc2bd6cb05ec1000c0cc651ad10ee40a71e1ec..87b7ed6862c8bfa25b63ac0dbd9e97028bbeb17d 100644 --- a/src/codegen/arm64/assembler-arm64.cc +++ b/src/codegen/arm64/assembler-arm64.cc @@ -3629,6 +3629,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift, diff --git a/script/zip_manifests/dist_zip.linux.arm.manifest b/script/zip_manifests/dist_zip.linux.arm.manifest index 7e08e3f695f0..82bcb68f4d16 100644 --- a/script/zip_manifests/dist_zip.linux.arm.manifest +++ b/script/zip_manifests/dist_zip.linux.arm.manifest @@ -11,6 +11,7 @@ libGLESv2.so libffmpeg.so libvk_swiftshader.so libvulkan.so.1 +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -61,6 +62,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.linux.arm64.manifest b/script/zip_manifests/dist_zip.linux.arm64.manifest index 7e08e3f695f0..82bcb68f4d16 100644 --- a/script/zip_manifests/dist_zip.linux.arm64.manifest +++ b/script/zip_manifests/dist_zip.linux.arm64.manifest @@ -11,6 +11,7 @@ libGLESv2.so libffmpeg.so libvk_swiftshader.so libvulkan.so.1 +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -61,6 +62,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.linux.x64.manifest b/script/zip_manifests/dist_zip.linux.x64.manifest index 7e08e3f695f0..82bcb68f4d16 100644 --- a/script/zip_manifests/dist_zip.linux.x64.manifest +++ b/script/zip_manifests/dist_zip.linux.x64.manifest @@ -11,6 +11,7 @@ libGLESv2.so libffmpeg.so libvk_swiftshader.so libvulkan.so.1 +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -61,6 +62,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.linux.x86.manifest b/script/zip_manifests/dist_zip.linux.x86.manifest index 7e08e3f695f0..82bcb68f4d16 100644 --- a/script/zip_manifests/dist_zip.linux.x86.manifest +++ b/script/zip_manifests/dist_zip.linux.x86.manifest @@ -11,6 +11,7 @@ libGLESv2.so libffmpeg.so libvk_swiftshader.so libvulkan.so.1 +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -61,6 +62,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.mac.arm64.manifest b/script/zip_manifests/dist_zip.mac.arm64.manifest index 91ed477f5451..997413de941e 100644 --- a/script/zip_manifests/dist_zip.mac.arm64.manifest +++ b/script/zip_manifests/dist_zip.mac.arm64.manifest @@ -24,6 +24,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects.nib +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ar.lproj/ @@ -128,6 +130,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/tr.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/locale.pak +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.arm64.bin Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/locale.pak @@ -193,6 +197,7 @@ Electron.app/Contents/MacOS/ Electron.app/Contents/MacOS/Electron Electron.app/Contents/PkgInfo Electron.app/Contents/Resources/ +Electron.app/Contents/Resources/af.lproj/ Electron.app/Contents/Resources/am.lproj/ Electron.app/Contents/Resources/ar.lproj/ Electron.app/Contents/Resources/bg.lproj/ @@ -245,6 +250,7 @@ Electron.app/Contents/Resources/te.lproj/ Electron.app/Contents/Resources/th.lproj/ Electron.app/Contents/Resources/tr.lproj/ Electron.app/Contents/Resources/uk.lproj/ +Electron.app/Contents/Resources/ur.lproj/ Electron.app/Contents/Resources/vi.lproj/ Electron.app/Contents/Resources/zh_CN.lproj/ Electron.app/Contents/Resources/zh_TW.lproj/ diff --git a/script/zip_manifests/dist_zip.mac.x64.manifest b/script/zip_manifests/dist_zip.mac.x64.manifest index e411bc46d62d..d20306318cf6 100644 --- a/script/zip_manifests/dist_zip.mac.x64.manifest +++ b/script/zip_manifests/dist_zip.mac.x64.manifest @@ -24,6 +24,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects.nib +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ar.lproj/ @@ -128,6 +130,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/tr.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/locale.pak +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.x86_64.bin Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/locale.pak @@ -193,6 +197,7 @@ Electron.app/Contents/MacOS/ Electron.app/Contents/MacOS/Electron Electron.app/Contents/PkgInfo Electron.app/Contents/Resources/ +Electron.app/Contents/Resources/af.lproj/ Electron.app/Contents/Resources/am.lproj/ Electron.app/Contents/Resources/ar.lproj/ Electron.app/Contents/Resources/bg.lproj/ @@ -245,6 +250,7 @@ Electron.app/Contents/Resources/te.lproj/ Electron.app/Contents/Resources/th.lproj/ Electron.app/Contents/Resources/tr.lproj/ Electron.app/Contents/Resources/uk.lproj/ +Electron.app/Contents/Resources/ur.lproj/ Electron.app/Contents/Resources/vi.lproj/ Electron.app/Contents/Resources/zh_CN.lproj/ Electron.app/Contents/Resources/zh_TW.lproj/ diff --git a/script/zip_manifests/dist_zip.mac_mas.arm64.manifest b/script/zip_manifests/dist_zip.mac_mas.arm64.manifest index 20ca9e4428da..5f319b17895a 100644 --- a/script/zip_manifests/dist_zip.mac_mas.arm64.manifest +++ b/script/zip_manifests/dist_zip.mac_mas.arm64.manifest @@ -21,6 +21,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects.nib +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ar.lproj/ @@ -125,6 +127,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/tr.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/locale.pak +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.arm64.bin Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/locale.pak @@ -170,6 +174,7 @@ Electron.app/Contents/MacOS/ Electron.app/Contents/MacOS/Electron Electron.app/Contents/PkgInfo Electron.app/Contents/Resources/ +Electron.app/Contents/Resources/af.lproj/ Electron.app/Contents/Resources/am.lproj/ Electron.app/Contents/Resources/ar.lproj/ Electron.app/Contents/Resources/bg.lproj/ @@ -222,6 +227,7 @@ Electron.app/Contents/Resources/te.lproj/ Electron.app/Contents/Resources/th.lproj/ Electron.app/Contents/Resources/tr.lproj/ Electron.app/Contents/Resources/uk.lproj/ +Electron.app/Contents/Resources/ur.lproj/ Electron.app/Contents/Resources/vi.lproj/ Electron.app/Contents/Resources/zh_CN.lproj/ Electron.app/Contents/Resources/zh_TW.lproj/ diff --git a/script/zip_manifests/dist_zip.mac_mas.x64.manifest b/script/zip_manifests/dist_zip.mac_mas.x64.manifest index c3a864ce2557..7736d9750d8e 100644 --- a/script/zip_manifests/dist_zip.mac_mas.x64.manifest +++ b/script/zip_manifests/dist_zip.mac_mas.x64.manifest @@ -21,6 +21,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects.nib +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ar.lproj/ @@ -125,6 +127,8 @@ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resourc Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/tr.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/locale.pak +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/ +Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/locale.pak Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.x86_64.bin Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/ Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/locale.pak @@ -170,6 +174,7 @@ Electron.app/Contents/MacOS/ Electron.app/Contents/MacOS/Electron Electron.app/Contents/PkgInfo Electron.app/Contents/Resources/ +Electron.app/Contents/Resources/af.lproj/ Electron.app/Contents/Resources/am.lproj/ Electron.app/Contents/Resources/ar.lproj/ Electron.app/Contents/Resources/bg.lproj/ @@ -222,6 +227,7 @@ Electron.app/Contents/Resources/te.lproj/ Electron.app/Contents/Resources/th.lproj/ Electron.app/Contents/Resources/tr.lproj/ Electron.app/Contents/Resources/uk.lproj/ +Electron.app/Contents/Resources/ur.lproj/ Electron.app/Contents/Resources/vi.lproj/ Electron.app/Contents/Resources/zh_CN.lproj/ Electron.app/Contents/Resources/zh_TW.lproj/ diff --git a/script/zip_manifests/dist_zip.win.arm64.manifest b/script/zip_manifests/dist_zip.win.arm64.manifest index 6f4e96ded773..9ae29943b772 100755 --- a/script/zip_manifests/dist_zip.win.arm64.manifest +++ b/script/zip_manifests/dist_zip.win.arm64.manifest @@ -7,6 +7,7 @@ ffmpeg.dll icudtl.dat libEGL.dll libGLESv2.dll +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -57,6 +58,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.win.ia32.manifest b/script/zip_manifests/dist_zip.win.ia32.manifest index 61abecd09b4d..cb7d05e9a4ec 100644 --- a/script/zip_manifests/dist_zip.win.ia32.manifest +++ b/script/zip_manifests/dist_zip.win.ia32.manifest @@ -8,6 +8,7 @@ ffmpeg.dll icudtl.dat libEGL.dll libGLESv2.dll +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -58,6 +59,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/script/zip_manifests/dist_zip.win.x64.manifest b/script/zip_manifests/dist_zip.win.x64.manifest index 61abecd09b4d..cb7d05e9a4ec 100644 --- a/script/zip_manifests/dist_zip.win.x64.manifest +++ b/script/zip_manifests/dist_zip.win.x64.manifest @@ -8,6 +8,7 @@ ffmpeg.dll icudtl.dat libEGL.dll libGLESv2.dll +locales/af.pak locales/am.pak locales/ar.pak locales/bg.pak @@ -58,6 +59,7 @@ locales/te.pak locales/th.pak locales/tr.pak locales/uk.pak +locales/ur.pak locales/vi.pak locales/zh-CN.pak locales/zh-TW.pak diff --git a/shell/app/electron_content_client.cc b/shell/app/electron_content_client.cc index 14e0c0c37283..598e7bf9d739 100644 --- a/shell/app/electron_content_client.cc +++ b/shell/app/electron_content_client.cc @@ -18,6 +18,7 @@ #include "content/public/common/content_switches.h" #include "electron/buildflags/buildflags.h" #include "extensions/common/constants.h" +#include "pdf/buildflags.h" #include "ppapi/buildflags/buildflags.h" #include "shell/common/electron_paths.h" #include "shell/common/options_switches.h" @@ -34,8 +35,8 @@ #endif // defined(WIDEVINE_CDM_AVAILABLE) #if BUILDFLAG(ENABLE_PDF_VIEWER) -#include "pdf/pdf.h" // nogncheck -#include "pdf/pdf_ppapi.h" // nogncheck +#include "components/pdf/renderer/internal_plugin_renderer_helpers.h" +#include "pdf/pdf.h" // nogncheck #include "shell/common/electron_constants.h" #endif // BUILDFLAG(ENABLE_PDF_VIEWER) @@ -43,7 +44,8 @@ #include "content/public/browser/plugin_service.h" #include "content/public/common/pepper_plugin_info.h" #include "ppapi/shared_impl/ppapi_permissions.h" -#endif // BUILDFLAG(ENABLE_PLUGINS) +#include "ppapi/shared_impl/ppapi_switches.h" // nogncheck crbug.com/1125897 +#endif // BUILDFLAG(ENABLE_PLUGINS) namespace electron { @@ -104,6 +106,8 @@ bool IsWidevineAvailable( #if BUILDFLAG(ENABLE_PLUGINS) void ComputeBuiltInPlugins(std::vector* plugins) { #if BUILDFLAG(ENABLE_PDF_VIEWER) + // TODO(upstream/thestig): Figure out how to make the PDF Viewer work without + // this PPAPI plugin registration. content::PepperPluginInfo pdf_info; pdf_info.is_internal = true; pdf_info.is_out_of_process = true; @@ -114,12 +118,6 @@ void ComputeBuiltInPlugins(std::vector* plugins) { content::WebPluginMimeType pdf_mime_type(kPdfPluginMimeType, "pdf", "Portable Document Format"); pdf_info.mime_types.push_back(pdf_mime_type); - pdf_info.internal_entry_points.get_interface = chrome_pdf::PPP_GetInterface; - pdf_info.internal_entry_points.initialize_module = - chrome_pdf::PPP_InitializeModule; - pdf_info.internal_entry_points.shutdown_module = - chrome_pdf::PPP_ShutdownModule; - pdf_info.permissions = ppapi::PERMISSION_PDF | ppapi::PERMISSION_DEV; plugins->push_back(pdf_info); // NB. in Chrome, this plugin isn't registered until the PDF extension is diff --git a/shell/app/electron_main_delegate.cc b/shell/app/electron_main_delegate.cc index caa13d764c7b..e1769670fb8b 100644 --- a/shell/app/electron_main_delegate.cc +++ b/shell/app/electron_main_delegate.cc @@ -234,7 +234,7 @@ ElectronMainDelegate::~ElectronMainDelegate() = default; const char* const ElectronMainDelegate::kNonWildcardDomainNonPortSchemes[] = { extensions::kExtensionScheme}; const size_t ElectronMainDelegate::kNonWildcardDomainNonPortSchemesSize = - base::size(kNonWildcardDomainNonPortSchemes); + std::size(kNonWildcardDomainNonPortSchemes); bool ElectronMainDelegate::BasicStartupComplete(int* exit_code) { auto* command_line = base::CommandLine::ForCurrentProcess(); diff --git a/shell/browser/bluetooth/electron_bluetooth_delegate.cc b/shell/browser/bluetooth/electron_bluetooth_delegate.cc index d25b4bd535d6..fcc90988bffb 100644 --- a/shell/browser/bluetooth/electron_bluetooth_delegate.cc +++ b/shell/browser/bluetooth/electron_bluetooth_delegate.cc @@ -91,6 +91,12 @@ bool ElectronBluetoothDelegate::HasDevicePermission( return true; } +void ElectronBluetoothDelegate::RevokeDevicePermissionWebInitiated( + RenderFrameHost* frame, + const WebBluetoothDeviceId& device_id) { + NOTIMPLEMENTED(); +} + bool ElectronBluetoothDelegate::IsAllowedToAccessService( RenderFrameHost* frame, const WebBluetoothDeviceId& device_id, diff --git a/shell/browser/bluetooth/electron_bluetooth_delegate.h b/shell/browser/bluetooth/electron_bluetooth_delegate.h index 897ce2f2d31f..9e9888ab4221 100644 --- a/shell/browser/bluetooth/electron_bluetooth_delegate.h +++ b/shell/browser/bluetooth/electron_bluetooth_delegate.h @@ -71,6 +71,9 @@ class ElectronBluetoothDelegate : public content::BluetoothDelegate { bool HasDevicePermission( content::RenderFrameHost* frame, const blink::WebBluetoothDeviceId& device_id) override; + void RevokeDevicePermissionWebInitiated( + content::RenderFrameHost* frame, + const blink::WebBluetoothDeviceId& device_id) override; bool IsAllowedToAccessService(content::RenderFrameHost* frame, const blink::WebBluetoothDeviceId& device_id, const device::BluetoothUUID& service) override; diff --git a/shell/browser/browser_win.cc b/shell/browser/browser_win.cc index 56a62ac32548..ced835e59c1f 100644 --- a/shell/browser/browser_win.cc +++ b/shell/browser/browser_win.cc @@ -40,7 +40,9 @@ #include "shell/common/gin_helper/dictionary.h" #include "shell/common/skia_util.h" #include "skia/ext/legacy_display_globals.h" +#include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkFont.h" +#include "third_party/skia/include/core/SkPaint.h" #include "ui/base/l10n/l10n_util.h" #include "ui/events/keycodes/keyboard_code_conversion_win.h" #include "ui/strings/grit/ui_strings.h" @@ -97,7 +99,7 @@ std::wstring GetAppInfoHelperForProtocol(ASSOCSTR assoc_str, const GURL& url) { return std::wstring(); wchar_t out_buffer[1024]; - DWORD buffer_size = base::size(out_buffer); + DWORD buffer_size = std::size(out_buffer); HRESULT hr = AssocQueryString(ASSOCF_IS_PROTOCOL, assoc_str, url_scheme.c_str(), NULL, out_buffer, &buffer_size); diff --git a/shell/browser/electron_browser_client.cc b/shell/browser/electron_browser_client.cc index 50fff944a3af..a11af4a0182e 100644 --- a/shell/browser/electron_browser_client.cc +++ b/shell/browser/electron_browser_client.cc @@ -27,11 +27,16 @@ #include "base/strings/utf_string_conversions.h" #include "base/task/post_task.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/pdf/chrome_pdf_stream_delegate.h" +#include "chrome/browser/plugins/pdf_iframe_navigation_throttle.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version.h" #include "components/net_log/chrome_net_log.h" #include "components/network_hints/common/network_hints.mojom.h" +#include "components/pdf/browser/pdf_navigation_throttle.h" +#include "components/pdf/browser/pdf_url_loader_request_interceptor.h" +#include "components/pdf/common/internal_plugin_helpers.h" #include "content/browser/keyboard_lock/keyboard_lock_service_impl.h" // nogncheck #include "content/browser/site_instance_impl.h" // nogncheck #include "content/public/browser/browser_main_runner.h" @@ -620,7 +625,7 @@ void ElectronBrowserClient::AppendExtraCommandLineSwitches( switches::kServiceWorkerSchemes, switches::kStreamingSchemes}; command_line->CopySwitchesFrom(*base::CommandLine::ForCurrentProcess(), kCommonSwitchNames, - base::size(kCommonSwitchNames)); + std::size(kCommonSwitchNames)); if (process_type == ::switches::kUtilityProcess || content::RenderProcessHost::FromID(process_id)) { MaybeAppendSecureOriginsAllowlistSwitch(command_line); @@ -1042,10 +1047,10 @@ void HandleExternalProtocolInUI( bool ElectronBrowserClient::HandleExternalProtocol( const GURL& url, content::WebContents::Getter web_contents_getter, - int child_id, int frame_tree_node_id, content::NavigationUIData* navigation_data, - bool is_main_frame, + bool is_primary_main_frame, + bool is_in_fenced_frame_tree, network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, @@ -1070,6 +1075,18 @@ ElectronBrowserClient::CreateThrottlesForNavigation( std::make_unique(handle)); #endif +#if BUILDFLAG(ENABLE_PDF_VIEWER) + std::unique_ptr pdf_iframe_throttle = + PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle); + if (pdf_iframe_throttle) + throttles.push_back(std::move(pdf_iframe_throttle)); + std::unique_ptr pdf_throttle = + pdf::PdfNavigationThrottle::MaybeCreateThrottleFor( + handle, std::make_unique()); + if (pdf_throttle) + throttles.push_back(std::move(pdf_throttle)); +#endif + return throttles; } @@ -1474,6 +1491,26 @@ bool ElectronBrowserClient::WillCreateURLLoaderFactory( return true; } +std::vector> +ElectronBrowserClient::WillCreateURLLoaderRequestInterceptors( + content::NavigationUIData* navigation_ui_data, + int frame_tree_node_id, + const scoped_refptr& + network_loader_factory) { + std::vector> + interceptors; +#if BUILDFLAG(ENABLE_PDF_VIEWER) + { + std::unique_ptr pdf_interceptor = + pdf::PdfURLLoaderRequestInterceptor::MaybeCreateInterceptor( + frame_tree_node_id, std::make_unique()); + if (pdf_interceptor) + interceptors.push_back(std::move(pdf_interceptor)); + } +#endif + return interceptors; +} + void ElectronBrowserClient::OverrideURLLoaderFactoryParams( content::BrowserContext* browser_context, const url::Origin& origin, @@ -1747,6 +1784,9 @@ ElectronBrowserClient::GetPluginMimeTypesWithExternalHandlers( auto map = PluginUtils::GetMimeTypeToExtensionIdMap(browser_context); for (const auto& pair : map) mime_types.insert(pair.first); +#endif +#if BUILDFLAG(ENABLE_PDF_VIEWER) + mime_types.insert(pdf::kInternalPluginMimeType); #endif return mime_types; } diff --git a/shell/browser/electron_browser_client.h b/shell/browser/electron_browser_client.h index 730fc07e687e..a19b04c4a685 100644 --- a/shell/browser/electron_browser_client.h +++ b/shell/browser/electron_browser_client.h @@ -227,6 +227,12 @@ class ElectronBrowserClient : public content::ContentBrowserClient, bool* bypass_redirect_checks, bool* disable_secure_dns, network::mojom::URLLoaderFactoryOverridePtr* factory_override) override; + std::vector> + WillCreateURLLoaderRequestInterceptors( + content::NavigationUIData* navigation_ui_data, + int frame_tree_node_id, + const scoped_refptr& + network_loader_factory) override; bool ShouldTreatURLSchemeAsFirstPartyWhenTopLevel( base::StringPiece scheme, bool is_embedded_origin_secure) override; @@ -247,10 +253,10 @@ class ElectronBrowserClient : public content::ContentBrowserClient, bool HandleExternalProtocol( const GURL& url, content::WebContents::Getter web_contents_getter, - int child_id, int frame_tree_node_id, content::NavigationUIData* navigation_data, - bool is_main_frame, + bool is_primary_main_frame, + bool is_in_fenced_frame_tree, network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, diff --git a/shell/browser/electron_browser_main_parts_posix.cc b/shell/browser/electron_browser_main_parts_posix.cc index 766dbd5785a7..6640dd2e3c4b 100644 --- a/shell/browser/electron_browser_main_parts_posix.cc +++ b/shell/browser/electron_browser_main_parts_posix.cc @@ -16,6 +16,7 @@ #include "base/debug/leak_annotations.h" #include "base/posix/eintr_wrapper.h" #include "base/task/post_task.h" +#include "base/threading/platform_thread.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "shell/browser/browser.h" diff --git a/shell/browser/electron_download_manager_delegate.cc b/shell/browser/electron_download_manager_delegate.cc index f1a54d9a6f15..7558535ca29c 100644 --- a/shell/browser/electron_download_manager_delegate.cc +++ b/shell/browser/electron_download_manager_delegate.cc @@ -141,11 +141,11 @@ void ElectronDownloadManagerDelegate::OnDownloadPathGenerated( std::ignore = dialog_promise.Then(std::move(dialog_callback)); file_dialog::ShowSaveDialog(settings, std::move(dialog_promise)); } else { - std::move(callback).Run(path, - download::DownloadItem::TARGET_DISPOSITION_PROMPT, - download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, - item->GetMixedContentStatus(), path, absl::nullopt, - download::DOWNLOAD_INTERRUPT_REASON_NONE); + std::move(callback).Run( + path, download::DownloadItem::TARGET_DISPOSITION_PROMPT, + download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, + item->GetMixedContentStatus(), path, base::FilePath(), absl::nullopt, + download::DOWNLOAD_INTERRUPT_REASON_NONE); } } @@ -184,7 +184,7 @@ void ElectronDownloadManagerDelegate::OnDownloadSaveDialogDone( std::move(download_callback) .Run(path, download::DownloadItem::TARGET_DISPOSITION_PROMPT, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, - item->GetMixedContentStatus(), path, absl::nullopt, + item->GetMixedContentStatus(), path, base::FilePath(), absl::nullopt, interrupt_reason); } @@ -204,7 +204,7 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget( download::DownloadItem::TARGET_DISPOSITION_OVERWRITE, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DownloadItem::MixedContentStatus::UNKNOWN, - download->GetForcedFilePath(), absl::nullopt, + download->GetForcedFilePath(), base::FilePath(), absl::nullopt, download::DOWNLOAD_INTERRUPT_REASON_NONE); return true; } @@ -217,7 +217,8 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget( save_path, download::DownloadItem::TARGET_DISPOSITION_OVERWRITE, download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DownloadItem::MixedContentStatus::UNKNOWN, save_path, - absl::nullopt, download::DOWNLOAD_INTERRUPT_REASON_NONE); + base::FilePath(), absl::nullopt, + download::DOWNLOAD_INTERRUPT_REASON_NONE); return true; } diff --git a/shell/browser/electron_permission_manager.cc b/shell/browser/electron_permission_manager.cc index a6902499aaf9..cab9b82abe3a 100644 --- a/shell/browser/electron_permission_manager.cc +++ b/shell/browser/electron_permission_manager.cc @@ -9,6 +9,7 @@ #include #include "base/values.h" +#include "content/browser/permissions/permission_util.h" // nogncheck #include "content/public/browser/child_process_security_policy.h" #include "content/public/browser/global_routing_id.h" #include "content/public/browser/permission_controller.h" @@ -398,4 +399,13 @@ ElectronPermissionManager::GetPermissionStatusForFrame( : blink::mojom::PermissionStatus::DENIED; } +blink::mojom::PermissionStatus +ElectronPermissionManager::GetPermissionStatusForCurrentDocument( + content::PermissionType permission, + content::RenderFrameHost* render_frame_host) { + return GetPermissionStatus( + permission, render_frame_host->GetLastCommittedOrigin().GetURL(), + content::PermissionUtil::GetLastCommittedOriginAsURL(render_frame_host)); +} + } // namespace electron diff --git a/shell/browser/electron_permission_manager.h b/shell/browser/electron_permission_manager.h index 38cedf2ebfda..e823b3c18833 100644 --- a/shell/browser/electron_permission_manager.h +++ b/shell/browser/electron_permission_manager.h @@ -85,6 +85,9 @@ class ElectronPermissionManager : public content::PermissionControllerDelegate { content::PermissionType permission, content::RenderFrameHost* render_frame_host, const GURL& requesting_origin) override; + blink::mojom::PermissionStatus GetPermissionStatusForCurrentDocument( + content::PermissionType permission, + content::RenderFrameHost* render_frame_host) override; bool CheckPermissionWithDetails(content::PermissionType permission, content::RenderFrameHost* render_frame_host, diff --git a/shell/browser/extensions/electron_extension_message_filter.cc b/shell/browser/extensions/electron_extension_message_filter.cc index 688c76c024f0..2da25a7627d2 100644 --- a/shell/browser/extensions/electron_extension_message_filter.cc +++ b/shell/browser/extensions/electron_extension_message_filter.cc @@ -40,7 +40,7 @@ ElectronExtensionMessageFilter::ElectronExtensionMessageFilter( int render_process_id, content::BrowserContext* browser_context) : BrowserMessageFilter(kExtensionFilteredMessageClasses, - base::size(kExtensionFilteredMessageClasses)), + std::size(kExtensionFilteredMessageClasses)), render_process_id_(render_process_id), browser_context_(browser_context) { DCHECK_CURRENTLY_ON(BrowserThread::UI); diff --git a/shell/browser/extensions/electron_messaging_delegate.cc b/shell/browser/extensions/electron_messaging_delegate.cc index 3d0544522241..416254206dfa 100644 --- a/shell/browser/extensions/electron_messaging_delegate.cc +++ b/shell/browser/extensions/electron_messaging_delegate.cc @@ -75,13 +75,40 @@ std::unique_ptr ElectronMessagingDelegate::CreateReceiverForTab( const std::string& extension_id, const PortId& receiver_port_id, content::WebContents* receiver_contents, - int receiver_frame_id) { + int receiver_frame_id, + const std::string& receiver_document_id) { // Frame ID -1 is every frame in the tab. - bool include_child_frames = receiver_frame_id == -1; - content::RenderFrameHost* receiver_rfh = - include_child_frames ? receiver_contents->GetMainFrame() - : ExtensionApiFrameIdMap::GetRenderFrameHostById( - receiver_contents, receiver_frame_id); + bool include_child_frames = + receiver_frame_id == -1 && receiver_document_id.empty(); + + content::RenderFrameHost* receiver_rfh = nullptr; + if (include_child_frames) { + // The target is the active outermost main frame of the WebContents. + receiver_rfh = receiver_contents->GetMainFrame(); + } else if (!receiver_document_id.empty()) { + ExtensionApiFrameIdMap::DocumentId document_id = + ExtensionApiFrameIdMap::DocumentIdFromString(receiver_document_id); + + // Return early for invalid documentIds. + if (!document_id) + return nullptr; + + receiver_rfh = + ExtensionApiFrameIdMap::Get()->GetRenderFrameHostByDocumentId( + document_id); + + // If both |document_id| and |receiver_frame_id| are provided they + // should find the same RenderFrameHost, if not return early. + if (receiver_frame_id != -1 && + ExtensionApiFrameIdMap::GetRenderFrameHostById( + receiver_contents, receiver_frame_id) != receiver_rfh) { + return nullptr; + } + } else { + DCHECK_GT(receiver_frame_id, -1); + receiver_rfh = ExtensionApiFrameIdMap::GetRenderFrameHostById( + receiver_contents, receiver_frame_id); + } if (!receiver_rfh) return nullptr; diff --git a/shell/browser/extensions/electron_messaging_delegate.h b/shell/browser/extensions/electron_messaging_delegate.h index ac82d85ca202..3c0942e65424 100644 --- a/shell/browser/extensions/electron_messaging_delegate.h +++ b/shell/browser/extensions/electron_messaging_delegate.h @@ -37,7 +37,8 @@ class ElectronMessagingDelegate : public MessagingDelegate { const std::string& extension_id, const PortId& receiver_port_id, content::WebContents* receiver_contents, - int receiver_frame_id) override; + int receiver_frame_id, + const std::string& receiver_document_id) override; std::unique_ptr CreateReceiverForNativeApp( content::BrowserContext* browser_context, base::WeakPtr channel_delegate, diff --git a/shell/browser/font_defaults.cc b/shell/browser/font_defaults.cc index 89fd78281b36..a4ac516fa24e 100644 --- a/shell/browser/font_defaults.cc +++ b/shell/browser/font_defaults.cc @@ -103,7 +103,7 @@ const FontDefault kFontDefaults[] = { IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN}, #endif }; -const size_t kFontDefaultsLength = base::size(kFontDefaults); +const size_t kFontDefaultsLength = std::size(kFontDefaults); // ^^^^^ DO NOT EDIT ^^^^^ diff --git a/shell/browser/javascript_environment.cc b/shell/browser/javascript_environment.cc index 0a40c5ca356f..e4c79c77f907 100644 --- a/shell/browser/javascript_environment.cc +++ b/shell/browser/javascript_environment.cc @@ -107,7 +107,7 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { private: static void* AllocateMemoryOrNull(size_t size, InitializationPolicy policy) { return AllocateMemoryWithFlags(size, policy, - base::PartitionAllocReturnNull); + partition_alloc::AllocFlags::kReturnNull); } static void* AllocateMemoryWithFlags(size_t size, @@ -131,9 +131,9 @@ class ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { } if (policy == kZeroInitialize) { - flags |= base::PartitionAllocZeroFill; + flags |= partition_alloc::AllocFlags::kZeroFill; } - void* data = allocator_->root()->AllocFlags(flags, size, "Electron"); + void* data = allocator_->root()->AllocWithFlags(flags, size, "Electron"); if (base::kAlignment < 16) { char* ptr = reinterpret_cast(data); DCHECK_EQ(base::bits::AlignUp(ptr, 16), ptr) diff --git a/shell/browser/native_window_views.h b/shell/browser/native_window_views.h index 56823eb4b629..ad839239f25a 100644 --- a/shell/browser/native_window_views.h +++ b/shell/browser/native_window_views.h @@ -13,6 +13,7 @@ #include #include "shell/common/api/api.mojom.h" +#include "third_party/skia/include/core/SkRegion.h" #include "ui/views/widget/widget_observer.h" #if BUILDFLAG(IS_WIN) diff --git a/shell/browser/net/asar/asar_url_loader.cc b/shell/browser/net/asar/asar_url_loader.cc index bfa2a7d0e483..7c39b2ed0b8b 100644 --- a/shell/browser/net/asar/asar_url_loader.cc +++ b/shell/browser/net/asar/asar_url_loader.cc @@ -63,7 +63,7 @@ class AsarURLLoader : public network::mojom::URLLoader { public: static void CreateAndStart( const network::ResourceRequest& request, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, scoped_refptr extra_response_headers) { // Owns itself. Will live as long as its URLLoader and URLLoaderClientPtr @@ -390,7 +390,7 @@ class AsarURLLoader : public network::mojom::URLLoader { void CreateAsarURLLoader( const network::ResourceRequest& request, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, scoped_refptr extra_response_headers) { auto task_runner = base::ThreadPool::CreateSequencedTaskRunner( diff --git a/shell/browser/net/asar/asar_url_loader.h b/shell/browser/net/asar/asar_url_loader.h index 09d255fd5d2d..4cd61df37b69 100644 --- a/shell/browser/net/asar/asar_url_loader.h +++ b/shell/browser/net/asar/asar_url_loader.h @@ -13,7 +13,7 @@ namespace asar { void CreateAsarURLLoader( const network::ResourceRequest& request, - network::mojom::URLLoaderRequest loader, + mojo::PendingReceiver loader, mojo::PendingRemote client, scoped_refptr extra_response_headers); diff --git a/shell/browser/net/network_context_service.cc b/shell/browser/net/network_context_service.cc index be8f3403dc81..176f28aa688d 100644 --- a/shell/browser/net/network_context_service.cc +++ b/shell/browser/net/network_context_service.cc @@ -80,14 +80,14 @@ void NetworkContextService::ConfigureNetworkContextParams( // Configure on-disk storage for persistent sessions. if (!in_memory) { // Configure the HTTP cache path and size. - network_context_params->http_cache_path = + network_context_params->http_cache_directory = path.Append(chrome::kCacheDirname); network_context_params->http_cache_max_size = browser_context_->GetMaxCacheSize(); network_context_params->file_paths = network::mojom::NetworkContextFilePaths::New(); - network_context_params->file_paths->data_path = + network_context_params->file_paths->data_directory = path.Append(chrome::kNetworkDataDirname); network_context_params->file_paths->unsandboxed_data_path = path; network_context_params->file_paths->trigger_migration = diff --git a/shell/browser/net/proxying_url_loader_factory.cc b/shell/browser/net/proxying_url_loader_factory.cc index 6eb27c839508..d079c7b286ff 100644 --- a/shell/browser/net/proxying_url_loader_factory.cc +++ b/shell/browser/net/proxying_url_loader_factory.cc @@ -523,8 +523,9 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToStartRequest( if (has_any_extra_headers_listeners_) options |= network::mojom::kURLLoadOptionUseHeaderClient; factory_->target_factory_->CreateLoaderAndStart( - mojo::MakeRequest(&target_loader_), network_service_request_id_, - options, request_, proxied_client_receiver_.BindNewPipeAndPassRemote(), + target_loader_.BindNewPipeAndPassReceiver(), + network_service_request_id_, options, request_, + proxied_client_receiver_.BindNewPipeAndPassRemote(), traffic_annotation_); } @@ -760,7 +761,7 @@ ProxyingURLLoaderFactory::ProxyingURLLoaderFactory( uint64_t* request_id_generator, std::unique_ptr navigation_ui_data, absl::optional navigation_id, - network::mojom::URLLoaderFactoryRequest loader_request, + mojo::PendingReceiver loader_request, mojo::PendingRemote target_factory_remote, mojo::PendingReceiver header_client_receiver, diff --git a/shell/browser/net/proxying_url_loader_factory.h b/shell/browser/net/proxying_url_loader_factory.h index 35d8e89be933..10b6d561cd69 100644 --- a/shell/browser/net/proxying_url_loader_factory.h +++ b/shell/browser/net/proxying_url_loader_factory.h @@ -28,6 +28,7 @@ #include "services/network/public/mojom/url_loader.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" #include "services/network/public/mojom/url_response_head.mojom.h" +#include "services/network/url_loader_factory.h" #include "shell/browser/net/electron_url_loader_factory.h" #include "shell/browser/net/web_request_api_interface.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -146,7 +147,7 @@ class ProxyingURLLoaderFactory mojo::Receiver proxied_client_receiver_{ this}; - network::mojom::URLLoaderPtr target_loader_; + mojo::Remote target_loader_; network::mojom::URLResponseHeadPtr current_response_; mojo::ScopedDataPipeConsumerHandle current_body_; @@ -198,7 +199,7 @@ class ProxyingURLLoaderFactory uint64_t* request_id_generator, std::unique_ptr navigation_ui_data, absl::optional navigation_id, - network::mojom::URLLoaderFactoryRequest loader_request, + mojo::PendingReceiver loader_request, mojo::PendingRemote target_factory_remote, mojo::PendingReceiver diff --git a/shell/browser/ui/electron_desktop_window_tree_host_linux.h b/shell/browser/ui/electron_desktop_window_tree_host_linux.h index bbf5782dcb38..58824f4dd63e 100644 --- a/shell/browser/ui/electron_desktop_window_tree_host_linux.h +++ b/shell/browser/ui/electron_desktop_window_tree_host_linux.h @@ -12,6 +12,7 @@ #include "base/scoped_observation.h" #include "shell/browser/native_window_views.h" #include "shell/browser/ui/views/client_frame_view_linux.h" +#include "third_party/skia/include/core/SkRRect.h" #include "ui/native_theme/native_theme_observer.h" #include "ui/views/linux_ui/device_scale_factor_observer.h" #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h" diff --git a/shell/browser/ui/file_dialog_win.cc b/shell/browser/ui/file_dialog_win.cc index 5aeaa238c210..18fc06b0b706 100644 --- a/shell/browser/ui/file_dialog_win.cc +++ b/shell/browser/ui/file_dialog_win.cc @@ -206,7 +206,7 @@ bool ShowOpenDialogSync(const DialogSettings& settings, wchar_t file_name[MAX_PATH]; hr = GetFileNameFromShellItem(item, SIGDN_FILESYSPATH, file_name, - base::size(file_name)); + std::size(file_name)); if (FAILED(hr)) return false; diff --git a/shell/browser/ui/gtk/app_indicator_icon.h b/shell/browser/ui/gtk/app_indicator_icon.h index 3219beb5ee15..0e50b89148a3 100644 --- a/shell/browser/ui/gtk/app_indicator_icon.h +++ b/shell/browser/ui/gtk/app_indicator_icon.h @@ -11,6 +11,7 @@ #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" #include "base/nix/xdg_util.h" +#include "third_party/skia/include/core/SkImage.h" #include "ui/base/glib/glib_signal.h" #include "ui/views/linux_ui/status_icon_linux.h" diff --git a/shell/browser/ui/inspectable_web_contents.cc b/shell/browser/ui/inspectable_web_contents.cc index 4779ee6c77f1..f249de999c7f 100644 --- a/shell/browser/ui/inspectable_web_contents.cc +++ b/shell/browser/ui/inspectable_web_contents.cc @@ -142,7 +142,7 @@ void SetZoomLevelForWebContents(content::WebContents* web_contents, double GetNextZoomLevel(double level, bool out) { double factor = blink::PageZoomLevelToZoomFactor(level); - size_t size = base::size(kPresetZoomFactors); + size_t size = std::size(kPresetZoomFactors); for (size_t i = 0; i < size; ++i) { if (!blink::PageZoomValuesEqual(kPresetZoomFactors[i], factor)) continue; diff --git a/shell/browser/ui/win/jump_list.cc b/shell/browser/ui/win/jump_list.cc index eb985984a7b3..12311f6377d1 100644 --- a/shell/browser/ui/win/jump_list.cc +++ b/shell/browser/ui/win/jump_list.cc @@ -93,7 +93,7 @@ bool ConvertShellLinkToJumpListItem(IShellLink* shell_link, item->type = JumpListItem::Type::kTask; wchar_t path[MAX_PATH]; - if (FAILED(shell_link->GetPath(path, base::size(path), nullptr, 0))) + if (FAILED(shell_link->GetPath(path, std::size(path), nullptr, 0))) return false; item->path = base::FilePath(path); @@ -111,18 +111,18 @@ bool ConvertShellLinkToJumpListItem(IShellLink* shell_link, item->title = prop.get().pwszVal; } - if (SUCCEEDED(shell_link->GetWorkingDirectory(path, base::size(path)))) + if (SUCCEEDED(shell_link->GetWorkingDirectory(path, std::size(path)))) item->working_dir = base::FilePath(path); int icon_index; if (SUCCEEDED( - shell_link->GetIconLocation(path, base::size(path), &icon_index))) { + shell_link->GetIconLocation(path, std::size(path), &icon_index))) { item->icon_path = base::FilePath(path); item->icon_index = icon_index; } wchar_t item_desc[INFOTIPSIZE]; - if (SUCCEEDED(shell_link->GetDescription(item_desc, base::size(item_desc)))) + if (SUCCEEDED(shell_link->GetDescription(item_desc, std::size(item_desc)))) item->description = item_desc; return true; diff --git a/shell/common/api/electron_api_native_image.h b/shell/common/api/electron_api_native_image.h index 7be02ad27b7a..9c417fa6d200 100644 --- a/shell/common/api/electron_api_native_image.h +++ b/shell/common/api/electron_api_native_image.h @@ -14,6 +14,7 @@ #include "gin/wrappable.h" #include "shell/common/gin_helper/error_thrower.h" #include "ui/gfx/image/image.h" +#include "ui/gfx/image/image_skia_rep.h" #if BUILDFLAG(IS_WIN) #include "base/files/file_path.h" diff --git a/shell/common/api/electron_api_native_image_mac.mm b/shell/common/api/electron_api_native_image_mac.mm index 60f3765a3def..12cbad9f3e3b 100644 --- a/shell/common/api/electron_api_native_image_mac.mm +++ b/shell/common/api/electron_api_native_image_mac.mm @@ -19,7 +19,7 @@ #include "shell/common/gin_converters/image_converter.h" #include "shell/common/gin_helper/promise.h" #include "ui/gfx/color_utils.h" -#include "ui/gfx/image/image.h" +#include "ui/gfx/geometry/size.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_skia_operations.h" diff --git a/shell/common/gin_helper/callback.cc b/shell/common/gin_helper/callback.cc index a5abed2c7020..569fc5d570bf 100644 --- a/shell/common/gin_helper/callback.cc +++ b/shell/common/gin_helper/callback.cc @@ -147,7 +147,7 @@ v8::Local BindFunctionWith(v8::Isolate* isolate, CHECK(!bind.IsEmpty()); v8::Local bind_func = bind.ToLocalChecked().As(); v8::Local converted[] = {func, arg1, arg2}; - return bind_func->Call(context, func, base::size(converted), converted) + return bind_func->Call(context, func, std::size(converted), converted) .ToLocalChecked(); } diff --git a/shell/common/platform_util_win.cc b/shell/common/platform_util_win.cc index c45093a559a6..eb1da7228470 100644 --- a/shell/common/platform_util_win.cc +++ b/shell/common/platform_util_win.cc @@ -288,7 +288,7 @@ void ShowItemInFolderOnWorkerThread(const base::FilePath& full_path) { return; const ITEMIDLIST* highlight[] = {file_item}; - hr = SHOpenFolderAndSelectItems(dir_item, base::size(highlight), highlight, + hr = SHOpenFolderAndSelectItems(dir_item, std::size(highlight), highlight, NULL); if (FAILED(hr)) { // On some systems, the above call mysteriously fails with "file not diff --git a/shell/common/skia_util.cc b/shell/common/skia_util.cc index 63f42a13ab41..21b47fc8c27f 100644 --- a/shell/common/skia_util.cc +++ b/shell/common/skia_util.cc @@ -21,6 +21,7 @@ #include "ui/gfx/geometry/size.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_skia_operations.h" +#include "ui/gfx/image/image_skia_rep.h" #include "ui/gfx/image/image_util.h" #if BUILDFLAG(IS_WIN) diff --git a/shell/common/v8_value_serializer.h b/shell/common/v8_value_serializer.h index b75ed82a3228..958677581bd4 100644 --- a/shell/common/v8_value_serializer.h +++ b/shell/common/v8_value_serializer.h @@ -6,6 +6,7 @@ #define ELECTRON_SHELL_COMMON_V8_VALUE_SERIALIZER_H_ #include "base/containers/span.h" +#include "ui/gfx/image/image_skia_rep.h" namespace v8 { class Isolate; diff --git a/shell/renderer/api/electron_api_web_frame.cc b/shell/renderer/api/electron_api_web_frame.cc index 6ec08e583da9..5f2ea089056a 100644 --- a/shell/renderer/api/electron_api_web_frame.cc +++ b/shell/renderer/api/electron_api_web_frame.cc @@ -79,17 +79,17 @@ struct Converter { }; template <> -struct Converter { +struct Converter { static bool FromV8(v8::Isolate* isolate, v8::Local val, - blink::WebDocument::CSSOrigin* out) { + blink::WebCssOrigin* out) { std::string css_origin; if (!ConvertFromV8(isolate, val, &css_origin)) return false; if (css_origin == "user") { - *out = blink::WebDocument::CSSOrigin::kUserOrigin; + *out = blink::WebCssOrigin::kUser; } else if (css_origin == "author") { - *out = blink::WebDocument::CSSOrigin::kAuthorOrigin; + *out = blink::WebCssOrigin::kAuthor; } else { return false; } @@ -613,8 +613,7 @@ class WebFrameRenderer : public gin::Wrappable, std::u16string InsertCSS(v8::Isolate* isolate, const std::string& css, gin::Arguments* args) { - blink::WebDocument::CSSOrigin css_origin = - blink::WebDocument::CSSOrigin::kAuthorOrigin; + blink::WebCssOrigin css_origin = blink::WebCssOrigin::kAuthor; gin_helper::Dictionary options; if (args->GetNext(&options)) diff --git a/shell/renderer/renderer_client_base.cc b/shell/renderer/renderer_client_base.cc index 98f79468c544..7b932f7f7576 100644 --- a/shell/renderer/renderer_client_base.cc +++ b/shell/renderer/renderer_client_base.cc @@ -12,7 +12,9 @@ #include "base/command_line.h" #include "base/strings/string_split.h" #include "base/strings/stringprintf.h" +#include "chrome/common/pdf_util.h" #include "components/network_hints/renderer/web_prescient_networking_impl.h" +#include "components/pdf/renderer/pdf_internal_plugin_delegate.h" #include "content/common/buildflags.h" #include "content/public/common/content_constants.h" #include "content/public/common/content_switches.h" @@ -37,7 +39,6 @@ #include "shell/renderer/electron_autofill_agent.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "third_party/blink/public/common/web_preferences/web_preferences.h" -#include "third_party/blink/public/platform/media/multi_buffer_data_source.h" #include "third_party/blink/public/web/blink.h" #include "third_party/blink/public/web/web_custom_element.h" // NOLINT(build/include_alpha) #include "third_party/blink/public/web/web_frame_widget.h" @@ -46,6 +47,7 @@ #include "third_party/blink/public/web/web_script_source.h" #include "third_party/blink/public/web/web_security_policy.h" #include "third_party/blink/public/web/web_view.h" +#include "third_party/blink/renderer/platform/media/multi_buffer_data_source.h" // nogncheck #include "third_party/blink/renderer/platform/weborigin/scheme_registry.h" // nogncheck #if BUILDFLAG(IS_MAC) @@ -56,6 +58,10 @@ #include #endif +#if defined(WIDEVINE_CDM_AVAILABLE) +#include "chrome/renderer/media/chrome_key_systems.h" // nogncheck +#endif + #if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER) #include "components/spellcheck/renderer/spellcheck.h" #include "components/spellcheck/renderer/spellcheck_provider.h" @@ -186,12 +192,6 @@ void RendererClientBase::RenderThreadStarted() { thread->AddObserver(extensions_renderer_client_->GetDispatcher()); #endif -#if BUILDFLAG(ENABLE_PDF_VIEWER) - // Enables printing from Chrome PDF viewer. - pdf_print_client_ = std::make_unique(); - pdf::PepperPDFHost::SetPrintClient(pdf_print_client_.get()); -#endif - #if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER) spellcheck_ = std::make_unique(this); #endif @@ -311,14 +311,38 @@ void RendererClientBase::DidClearWindowObject( render_frame->GetWebFrame()->ExecuteScript(blink::WebScriptSource("void 0")); } +class ChromePdfInternalPluginDelegate final + : public pdf::PdfInternalPluginDelegate { + public: + ChromePdfInternalPluginDelegate() = default; + ChromePdfInternalPluginDelegate(const ChromePdfInternalPluginDelegate&) = + delete; + ChromePdfInternalPluginDelegate& operator=( + const ChromePdfInternalPluginDelegate&) = delete; + ~ChromePdfInternalPluginDelegate() override = default; + + // `pdf::PdfInternalPluginDelegate`: + bool IsAllowedOrigin(const url::Origin& origin) const override { + return origin.scheme() == extensions::kExtensionScheme && + origin.host() == extension_misc::kPdfExtensionId; + } +}; + bool RendererClientBase::OverrideCreatePlugin( content::RenderFrame* render_frame, const blink::WebPluginParams& params, blink::WebPlugin** plugin) { - if (params.mime_type.Utf8() == content::kBrowserPluginMimeType || #if BUILDFLAG(ENABLE_PDF_VIEWER) - params.mime_type.Utf8() == kPdfPluginMimeType || + if (params.mime_type.Utf8() == kPdfPluginMimeType) { + *plugin = pdf::CreateInternalPlugin( + std::move(params), render_frame, + std::make_unique()); + return true; + } #endif // BUILDFLAG(ENABLE_PDF_VIEWER) + + if (params.mime_type.Utf8() == content::kBrowserPluginMimeType || + params.mime_type.Utf8() == kPdfPluginMimeType || render_frame->GetBlinkPreferences().enable_plugins) return false; @@ -329,15 +353,7 @@ bool RendererClientBase::OverrideCreatePlugin( void RendererClientBase::GetSupportedKeySystems( media::GetSupportedKeySystemsCB cb) { #if defined(WIDEVINE_CDM_AVAILABLE) - key_systems_provider_.GetSupportedKeySystems(std::move(cb)); -#endif -} - -bool RendererClientBase::IsKeySystemsUpdateNeeded() { -#if defined(WIDEVINE_CDM_AVAILABLE) - return key_systems_provider_.IsKeySystemsUpdateNeeded(); -#else - return false; + GetChromeKeySystems(std::move(cb)); #endif } @@ -355,6 +371,27 @@ bool RendererClientBase::IsPluginHandledExternally( #if BUILDFLAG(ENABLE_PDF_VIEWER) DCHECK(plugin_element.HasHTMLTagName("object") || plugin_element.HasHTMLTagName("embed")); + if (mime_type == "application/x-google-chrome-pdf") { + if (IsPdfInternalPluginAllowedOrigin( + render_frame->GetWebFrame()->GetSecurityOrigin())) { + return true; + } + + content::WebPluginInfo info; + info.type = content::WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS; + const char16_t kPDFExtensionPluginName[] = u"Chromium PDF Viewer"; + info.name = kPDFExtensionPluginName; + info.path = base::FilePath::FromUTF8Unsafe("internal-pdf-viewer"); + info.background_color = content::WebPluginInfo::kDefaultBackgroundColor; + info.mime_types.emplace_back("application/x-google-chrome-pdf", "pdf", + "Portable Document Format"); + return extensions::MimeHandlerViewContainerManager::Get( + content::RenderFrame::FromWebFrame( + plugin_element.GetDocument().GetFrame()), + true /* create_if_does_not_exist */) + ->CreateFrameContainer(plugin_element, original_url, mime_type, info); + } + // TODO(nornagon): this info should be shared with the data in // electron_content_client.cc / ComputeBuiltInPlugins. content::WebPluginInfo info; @@ -375,10 +412,19 @@ bool RendererClientBase::IsPluginHandledExternally( #endif } -bool RendererClientBase::IsOriginIsolatedPepperPlugin( - const base::FilePath& plugin_path) { - // Isolate all Pepper plugins, including the PDF plugin. - return true; +v8::Local RendererClientBase::GetScriptableObject( + const blink::WebElement& plugin_element, + v8::Isolate* isolate) { + // If there is a MimeHandlerView that can provide the scriptable object then + // MaybeCreateMimeHandlerView must have been called before and a container + // manager should exist. + auto* container_manager = extensions::MimeHandlerViewContainerManager::Get( + content::RenderFrame::FromWebFrame( + plugin_element.GetDocument().GetFrame()), + false /* create_if_does_not_exist */); + if (container_manager) + return container_manager->GetScriptableObject(plugin_element, isolate); + return v8::Local(); } std::unique_ptr diff --git a/shell/renderer/renderer_client_base.h b/shell/renderer/renderer_client_base.h index d830c6db5f88..821e7e2d6d2d 100644 --- a/shell/renderer/renderer_client_base.h +++ b/shell/renderer/renderer_client_base.h @@ -16,12 +16,8 @@ // In SHARED_INTERMEDIATE_DIR. #include "widevine_cdm_version.h" // NOLINT(build/include_directory) -#if defined(WIDEVINE_CDM_AVAILABLE) -#include "chrome/renderer/media/chrome_key_systems_provider.h" // nogncheck -#endif - #if BUILDFLAG(ENABLE_PDF_VIEWER) -#include "chrome/renderer/pepper/chrome_pdf_print_client.h" // nogncheck +#include "components/pdf/renderer/internal_plugin_renderer_helpers.h" #endif // BUILDFLAG(ENABLE_PDF_VIEWER) #if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER) @@ -105,13 +101,14 @@ class RendererClientBase : public content::ContentRendererClient const blink::WebPluginParams& params, blink::WebPlugin** plugin) override; void GetSupportedKeySystems(media::GetSupportedKeySystemsCB cb) override; - bool IsKeySystemsUpdateNeeded() override; void DidSetUserAgent(const std::string& user_agent) override; bool IsPluginHandledExternally(content::RenderFrame* render_frame, const blink::WebElement& plugin_element, const GURL& original_url, const std::string& mime_type) override; - bool IsOriginIsolatedPepperPlugin(const base::FilePath& plugin_path) override; + v8::Local GetScriptableObject( + const blink::WebElement& plugin_element, + v8::Isolate* isolate) override; void RunScriptsAtDocumentStart(content::RenderFrame* render_frame) override; void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) override; @@ -152,9 +149,6 @@ class RendererClientBase : public content::ContentRendererClient std::unique_ptr extensions_renderer_client_; #endif -#if defined(WIDEVINE_CDM_AVAILABLE) - ChromeKeySystemsProvider key_systems_provider_; -#endif std::string renderer_client_id_; // An increasing ID used for identifying an V8 context in this process. int64_t next_context_id_ = 0; @@ -162,9 +156,6 @@ class RendererClientBase : public content::ContentRendererClient #if BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER) std::unique_ptr spellcheck_; #endif -#if BUILDFLAG(ENABLE_PDF_VIEWER) - std::unique_ptr pdf_print_client_; -#endif }; } // namespace electron