git: 655a41f5657e - 2024Q1 - www/ungoogled-chromium: update to 123.0.6312.58

From: Robert Nagy <rnagy_at_FreeBSD.org>
Date: Sat, 23 Mar 2024 07:33:29 UTC
The branch 2024Q1 has been updated by rnagy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=655a41f5657eab0aec8342fb0ad9c569562e43c7

commit 655a41f5657eab0aec8342fb0ad9c569562e43c7
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2024-03-22 20:37:53 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2024-03-23 07:33:13 +0000

    www/ungoogled-chromium: update to 123.0.6312.58
    
    Security:       https://vuxml.freebsd.org/freebsd/80815c47-e84f-11ee-8e76-a8a1599412c6.html
    (cherry picked from commit 8fa4a0ab94dfbbe0bc8633b9ac2eefc89e56c0a0)
---
 www/ungoogled-chromium/Makefile                    | 11 ++-
 www/ungoogled-chromium/distinfo                    | 14 ++--
 www/ungoogled-chromium/files/patch-BUILD.gn        | 20 ++---
 www/ungoogled-chromium/files/patch-base_BUILD.gn   | 24 +++---
 ...cator_partition__allocator_partition__alloc.gni |  4 +-
 ...tition__allocator_src_partition__alloc_BUILD.gn |  4 +-
 .../files/patch-base_base__switches.cc             | 11 ---
 .../files/patch-base_base__switches.h              | 11 ---
 .../patch-base_functional_unretained__traits.h     |  4 +-
 .../files/patch-base_i18n_icu__util.cc             |  6 +-
 .../files/patch-base_native__library__unittest.cc  |  4 +-
 .../patch-base_process_process__handle__openbsd.cc | 98 ++++++++++++++++------
 .../files/patch-base_process_process__metrics.h    |  4 +-
 .../files/patch-base_process_process__unittest.cc  |  4 +-
 ...profiler_stack__sampling__profiler__unittest.cc |  4 +-
 .../files/patch-base_rand__util__posix.cc          |  4 +-
 .../files/patch-base_synchronization_lock__impl.h  |  6 +-
 .../files/patch-base_syslog__logging.cc            |  6 +-
 .../files/patch-base_system_sys__info__posix.cc    |  8 +-
 .../patch-base_test_test__file__util__posix.cc     |  4 +-
 .../files/patch-base_threading_hang__watcher.cc    |  4 +-
 ..._threading_platform__thread__internal__posix.cc |  4 +-
 ...atch-base_trace__event_process__memory__dump.cc |  6 +-
 .../files/patch-build_config_clang_BUILD.gn        | 11 +++
 .../files/patch-build_config_compiler_BUILD.gn     | 18 ++--
 .../files/patch-build_config_rust.gni              | 13 +++
 .../files/patch-build_rust_std_BUILD.gn            | 10 +++
 .../files/patch-build_toolchain_gcc__toolchain.gni |  6 +-
 .../files/patch-build_toolchain_toolchain.gni      |  4 +-
 www/ungoogled-chromium/files/patch-cc_BUILD.gn     |  4 +-
 .../files/patch-chrome_app_chrome__main.cc         | 12 +--
 .../patch-chrome_app_chrome__main__delegate.cc     | 40 ++++++---
 .../files/patch-chrome_browser_BUILD.gn            |  4 +-
 .../files/patch-chrome_browser_about__flags.cc     | 83 ++++++++++--------
 ...e_browser_accessibility_pdf__ocr__controller.cc |  4 +-
 ...h-chrome_browser_after__startup__task__utils.cc |  8 +-
 ...browser_background_background__mode__manager.cc |  4 +-
 ...owser_background_background__mode__optimizer.cc |  4 +-
 .../patch-chrome_browser_browser__features.cc      |  6 +-
 .../patch-chrome_browser_browser__process__impl.cc | 10 +--
 ..._browser_chrome__browser__interface__binders.cc | 14 ++--
 .../patch-chrome_browser_chrome__browser__main.cc  | 20 ++---
 ...r_chrome__browser__main__extra__parts__ozone.cc | 11 +++
 ...-chrome_browser_chrome__browser__main__linux.cc | 24 +++++-
 ...h-chrome_browser_chrome__browser__main__linux.h | 11 +++
 ...ome_browser_chrome__content__browser__client.cc | 41 ++++-----
 ...rome_browser_chrome__content__browser__client.h |  4 +-
 ..._updater_widevine__cdm__component__installer.cc | 21 +++--
 ...download_chrome__download__manager__delegate.cc |  6 +-
 ...hrome_browser_download_download__item__model.cc |  4 +-
 ...tors_reporting_browser__crash__event__router.cc | 10 +--
 ...nnectors_reporting_crash__reporting__context.cc |  6 +-
 .../files/patch-chrome_browser_extensions_BUILD.gn |  4 +-
 ...__private_passwords__private__delegate__impl.cc |  4 +-
 ...s_api_runtime_chrome__runtime__api__delegate.cc |  4 +-
 ...extensions_api_settings__private_prefs__util.cc |  6 +-
 ...chrome_browser_extensions_api_tabs_tabs__api.cc |  4 +-
 .../patch-chrome_browser_flag__descriptions.cc     | 37 ++++----
 .../patch-chrome_browser_flag__descriptions.h      | 43 +++-------
 ...chrome_browser_headless_headless__mode__util.cc |  6 +-
 ...ser_metrics_chrome__metrics__service__client.cc | 22 ++---
 ...rowser_net_system__network__context__manager.cc | 38 ++++-----
 ...browser_net_system__network__context__manager.h | 10 +--
 ...d__manager_chrome__password__manager__client.cc |  4 +-
 ...d__manager_password__reuse__manager__factory.cc |  4 +-
 ...wser_permissions_chrome__permissions__client.cc | 11 ---
 ...onfiguration__policy__handler__list__factory.cc | 73 ++++++++++------
 .../patch-chrome_browser_prefs_browser__prefs.cc   | 40 +++------
 ...er_prefs_pref__service__incognito__allowlist.cc |  4 +-
 ...hrome__browser__main__extra__parts__profiles.cc | 20 ++---
 .../patch-chrome_browser_profiles_profile__impl.cc |  8 +-
 ...browsing_download__protection_file__analyzer.cc |  8 +-
 ...rowser_screen__ai_screen__ai__install__state.cc | 17 +---
 ...b__to__self_receiving__ui__handler__registry.cc |  6 +-
 ...o__self_send__tab__to__self__client__service.cc |  6 +-
 ...tch-chrome_browser_sync_chrome__sync__client.cc | 10 +--
 ...h-chrome_browser_sync_sync__service__factory.cc |  6 +-
 ...-chrome_browser_ui_actions_chrome__action__id.h |  4 +-
 ...rome_browser_ui_browser__command__controller.cc |  4 +-
 .../files/patch-chrome_browser_ui_chrome__pages.cc |  6 +-
 ..._passwords_manage__passwords__ui__controller.cc |  6 +-
 ...browser_ui_startup_startup__browser__creator.cc |  8 +-
 ...r_ui_startup_startup__browser__creator__impl.cc |  4 +-
 ...me_browser_ui_startup_startup__tab__provider.cc | 20 +++++
 .../files/patch-chrome_browser_ui_tab__helpers.cc  |  6 +-
 .../files/patch-chrome_browser_ui_ui__features.cc  |  4 +-
 .../files/patch-chrome_browser_ui_ui__features.h   |  4 +-
 ...h-chrome_browser_ui_views_accelerator__table.cc |  4 +-
 ...s_chrome__browser__main__extra__parts__views.cc |  6 +-
 ...owser_ui_views_compose_compose__dialog__view.cc |  4 +-
 ...-chrome_browser_ui_views_frame_browser__view.cc |  4 +-
 ...e_picture__in__picture__browser__frame__view.cc | 26 +++---
 ...me_picture__in__picture__browser__frame__view.h | 16 ++--
 ...views_passwords_password__bubble__view__base.cc |  6 +-
 ..._ui_views_profiles_profile__menu__view__base.cc |  4 +-
 ...e_browser_ui_views_tab__search__bubble__host.cc |  4 +-
 ..._browser_ui_views_tabs_tab__drag__controller.cc |  8 +-
 ...ui_views_tabs_tab__hover__card__bubble__view.cc |  4 +-
 ..._education_browser__user__education__service.cc |  4 +-
 ...eb__apps_web__app__integration__test__driver.cc | 20 ++---
 ..._ui_webui_app__home_app__home__page__handler.cc |  6 +-
 ...i_webui_chrome__web__ui__controller__factory.cc | 14 ++--
 ..._browser_ui_webui_ntp_app__launcher__handler.cc | 11 ---
 ...me_browser_ui_webui_realbox_realbox__handler.cc |  4 +-
 ..._webui_settings_accessibility__main__handler.cc | 37 +-------
 ...i_webui_settings_accessibility__main__handler.h | 40 +--------
 ...tings_settings__localized__strings__provider.cc | 16 ++--
 ..._os__integration_web__app__shortcut__manager.cc |  4 +-
 ...pplications_policy_web__app__policy__manager.cc |  4 +-
 ...thn_chrome__authenticator__request__delegate.cc |  4 +-
 .../files/patch-chrome_common_chrome__features.cc  | 27 ++----
 .../files/patch-chrome_common_chrome__features.h   | 16 ++--
 .../files/patch-chrome_common_chrome__paths.cc     | 12 +--
 .../files/patch-chrome_common_chrome__switches.cc  |  4 +-
 .../files/patch-chrome_common_chrome__switches.h   |  4 +-
 .../patch-chrome_common_media_cdm__registration.cc | 31 ++++---
 .../patch-chrome_common_media_cdm__registration.h  | 11 +++
 ...a_component__widevine__cdm__hint__file__linux.h |  4 +-
 .../files/patch-chrome_common_pref__names.h        | 27 ++++--
 .../files/patch-chrome_common_url__constants.h     |  4 +-
 .../patch-chrome_common_webui__url__constants.cc   | 12 +--
 .../patch-chrome_common_webui__url__constants.h    |  8 +-
 ...ome_renderer_chrome__render__frame__observer.cc |  4 +-
 ...vices_printing_print__backend__service__impl.cc |  6 +-
 .../files/patch-chrome_test_BUILD.gn               | 11 ---
 .../files/patch-chrome_utility_services.cc         | 14 ++--
 ...ecast_browser_cast__content__browser__client.cc |  4 +-
 ...utofill_core_browser_personal__data__manager.cc |  6 +-
 ...mponents_autofill_core_common_autofill__util.cc |  4 +-
 ...onents_commerce_core_commerce__feature__list.cc |  6 +-
 ...nstrained__window_constrained__window__views.cc | 11 +++
 .../files/patch-components_crash_core_app_BUILD.gn | 26 +++---
 ...e__engagement_public_feature__configurations.cc | 12 +--
 ...eature__engagement_public_feature__constants.cc | 23 ++---
 ...feature__engagement_public_feature__constants.h | 10 +--
 ...nts_feature__engagement_public_feature__list.cc |  8 +-
 ...ents_feature__engagement_public_feature__list.h | 14 ++--
 .../patch-components_gwp__asan_client_gwp__asan.cc |  4 +-
 ...nts_gwp__asan_crash__handler_crash__analyzer.cc |  6 +-
 .../patch-components_live__caption_caption__util.h |  4 +-
 ...nts_named__mojo__ipc__server_connection__info.h |  8 +-
 ...ger_core_browser_features_password__features.cc |  4 +-
 ...ager_core_browser_features_password__features.h |  6 +-
 ...manager_core_browser_password__form__manager.cc |  6 +-
 ...word__manager_core_browser_password__manager.cc |  4 +-
 ...er_password__store_login__database__unittest.cc |  4 +-
 ...ger_core_browser_sync_password__sync__bridge.cc |  4 +-
 ...er_core_common_password__manager__pref__names.h |  4 +-
 ...icy_core_browser_policy__pref__mapping__test.cc |  4 +-
 ...licy_core_common_cloud_cloud__policy__client.cc |  4 +-
 ...policy_core_common_cloud_cloud__policy__util.cc |  8 +-
 .../patch-components_qr__code__generator_BUILD.gn  | 32 -------
 ...atch-components_qr__code__generator_features.cc | 13 ---
 ...patch-components_qr__code__generator_features.h | 14 ----
 ...ents_qr__code__generator_qr__code__generator.cc | 47 -----------
 ...mponents_safe__browsing_core_common_features.cc |  8 +-
 ...gine__choice_search__engine__choice__service.cc |  4 +-
 ...nents_search__engines_template__url__service.cc |  8 +-
 ...nts_services_screen__ai_public_cpp_utilities.cc | 17 +---
 ...mponents_signin_public_base_signin__switches.cc | 15 +++-
 ...omponents_signin_public_base_signin__switches.h |  6 +-
 ..._user_core_browser_supervised__user__service.cc |  4 +-
 ...onents_supervised__user_core_common_features.cc | 19 ++---
 ...ponents_supervised__user_core_common_features.h |  8 +-
 .../files/patch-components_sync_base_features.cc   |  4 +-
 ...nts_user__education_views_help__bubble__view.cc |  4 +-
 ...nents_variations_service_variations__service.cc |  4 +-
 ...isplay__embedder_skia__output__surface__impl.cc |  4 +-
 ...omponents_viz_service_display_skia__renderer.cc |  4 +-
 ...e__sinks_root__compositor__frame__sink__impl.cc |  6 +-
 ...atch-content_app_content__main__runner__impl.cc | 12 +--
 .../files/patch-content_browser_BUILD.gn           |  4 +-
 ..._browser_browser__child__process__host__impl.cc |  4 +-
 .../patch-content_browser_browser__main__loop.cc   |  8 +-
 ...tent_browser_child__process__launcher__helper.h |  4 +-
 ...rowser_gpu_gpu__data__manager__impl__private.cc |  4 +-
 ...patch-content_browser_gpu_gpu__process__host.cc |  6 +-
 ...r_media_media__keys__listener__manager__impl.cc |  4 +-
 ...rowser_renderer__host_delegated__frame__host.cc |  4 +-
 ...r_renderer__host_render__process__host__impl.cc | 12 +--
 ...er_renderer__host_render__process__host__impl.h |  4 +-
 ...derer__host_render__widget__host__view__aura.cc | 12 +--
 ...nderer__host_render__widget__host__view__aura.h |  4 +-
 ...patch-content_browser_utility__process__host.cc |  6 +-
 ...wser_web__contents_web__contents__view__aura.cc |  4 +-
 .../files/patch-content_common_features.cc         |  4 +-
 .../files/patch-content_common_features.h          |  4 +-
 .../files/patch-content_gpu_gpu__main.cc           |  8 +-
 ...tent_public_browser_content__browser__client.cc |  4 +-
 ...atch-content_public_common_content__features.cc | 19 ++---
 .../patch-content_renderer_render__thread__impl.cc |  8 +-
 ...ent_renderer_renderer__blink__platform__impl.cc | 10 +--
 ...tent_renderer_renderer__blink__platform__impl.h |  4 +-
 .../files/patch-content_shell_BUILD.gn             |  4 +-
 ...atch-content_shell_app_shell__main__delegate.cc |  4 +-
 .../files/patch-content_test_BUILD.gn              |  6 +-
 .../files/patch-content_utility_services.cc        | 16 ++--
 .../files/patch-content_zygote_zygote__linux.cc    |  4 +-
 .../patch-device_bluetooth_bluetooth__adapter.cc   |  4 +-
 ..._browser__context__keyed__service__factories.cc |  6 +-
 ...sions_browser_api_management_management__api.cc |  4 +-
 ...sions_browser_api_messaging_message__service.cc |  6 +-
 ..._command__buffer_service_gles2__cmd__decoder.cc |  4 +-
 ...e_shared__image_external__vk__image__backing.cc |  6 +-
 ..._image_external__vk__image__backing__factory.cc |  6 +-
 ...service_shared__image_shared__image__factory.cc |  4 +-
 ...service_shared__image_shared__image__manager.cc |  4 +-
 ...ce_shared__image_wrapped__sk__image__backing.cc |  4 +-
 ...ommand__buffer_service_webgpu__decoder__impl.cc |  6 +-
 .../files/patch-gpu_config_gpu__finch__features.cc | 25 +++---
 .../files/patch-gpu_ipc_service_gpu__init.cc       | 10 +--
 .../patch-media_base_libaom__thread__wrapper.cc    | 24 ++++++
 .../patch-media_base_libvpx__thread__wrapper.cc    | 13 +--
 .../files/patch-media_base_media__switches.cc      | 22 ++---
 .../files/patch-media_base_media__switches.h       | 10 +--
 .../files/patch-media_base_video__frame.cc         |  4 +-
 ...u_chromeos_libyuv__image__processor__backend.cc |  8 +-
 ...pu_chromeos_mailbox__video__frame__converter.cc |  4 +-
 ...a_gpu_chromeos_platform__video__frame__utils.cc | 13 ++-
 ...-media_gpu_chromeos_video__decoder__pipeline.cc | 15 ++--
 ...dware__video__decoding__sandbox__hook__linux.cc | 12 +--
 .../patch-media_gpu_vaapi_vaapi__video__decoder.cc |  6 +-
 .../files/patch-media_gpu_vaapi_vaapi__wrapper.cc  |  4 +-
 ...ideo_gpu__memory__buffer__video__frame__pool.cc |  4 +-
 ...ia_video_video__encode__accelerator__adapter.cc |  6 +-
 .../files/patch-media_webrtc_audio__processor.cc   |  4 +-
 .../files/patch-media_webrtc_helpers.cc            | 27 ++++--
 .../files/patch-media_webrtc_helpers__unittests.cc | 49 ++++++++---
 .../files/patch-mojo_public_c_system_thunks.cc     |  6 +-
 www/ungoogled-chromium/files/patch-net_BUILD.gn    | 14 ++--
 .../files/patch-net_base_features.cc               | 13 ++-
 ...atch-net_http_http__auth__handler__negotiate.cc |  4 +-
 .../files/patch-net_socket_udp__socket__posix.cc   |  6 +-
 .../patch-net_socket_udp__socket__unittest.cc      | 12 +--
 ..._url__request_url__request__context__builder.cc |  4 +-
 .../files/patch-remoting_host_policy__watcher.cc   |  4 +-
 .../patch-remoting_host_remoting__me2me__host.cc   | 40 ++++-----
 .../files/patch-sandbox_policy_features.cc         |  4 +-
 .../files/patch-sandbox_policy_features.h          |  4 +-
 ...atch-sandbox_policy_openbsd_sandbox__openbsd.cc | 12 ++-
 ...services_device_compute__pressure_cpu__probe.cc | 10 ---
 .../patch-services_device_public_mojom_BUILD.gn    |  4 +-
 .../files/patch-services_network_BUILD.gn          |  4 +-
 .../patch-services_network_network__context.cc     |  4 +-
 ...rvices_network_network__sandbox__hook__linux.cc | 10 +--
 .../patch-services_network_network__service.cc     |  8 +-
 .../patch-services_network_network__service.h      |  8 +-
 .../patch-services_network_public_cpp_BUILD.gn     |  4 +-
 .../patch-services_network_public_mojom_BUILD.gn   |  4 +-
 ..._on__device__model_on__device__model__service.h |  6 +-
 ...atch-third__party_abseil-cpp_absl_base_config.h |  6 +-
 .../files/patch-third__party_angle_BUILD.gn        |  8 +-
 ...tch-third__party_angle_src_libANGLE_Display.cpp | 12 +--
 ...n_renderer__preferences_renderer__preferences.h |  4 +-
 ...ferences_renderer__preferences__mojom__traits.h |  4 +-
 ...h-third__party_blink_public_platform_platform.h |  4 +-
 ...blink_renderer_core_exported_web__view__impl.cc |  4 +-
 ...y_blink_renderer_core_frame_web__frame__test.cc |  6 +-
 ...arty_blink_renderer_core_layout_layout__view.cc |  6 +-
 ..._renderer_core_scroll_scrollbar__theme__aura.cc |  6 +-
 ..._audio_audio__renderer__mixer__manager__test.cc |  4 +-
 ...peerconnection_webrtc__audio__renderer__test.cc |  4 +-
 ...odules_webgl_webgl__rendering__context__base.cc |  4 +-
 ...rty_blink_renderer_modules_webgpu_gpu__queue.cc |  4 +-
 ...h-third__party_blink_renderer_platform_BUILD.gn |  4 +-
 ...ty_blink_renderer_platform_fonts_font__cache.cc |  4 +-
 ...rty_blink_renderer_platform_fonts_font__cache.h | 10 +--
 ...nderer_platform_fonts_skia_font__cache__skia.cc |  4 +-
 ...derer_platform_runtime__enabled__features.json5 | 45 +++++++---
 ...renderer_platform_text_text__break__iterator.cc | 13 ---
 ...ty_boringssl_src_util_generate__build__files.py |  6 +-
 .../files/patch-third__party_cpuinfo_cpuinfo.gni   |  6 +-
 ..._party_ffmpeg_chromium_scripts_build__ffmpeg.py | 62 +++-----------
 ...rty_ffmpeg_chromium_scripts_robo__lib_config.py | 48 ++++++-----
 .../files/patch-third__party_ffmpeg_configure      | 10 ---
 .../patch-third__party_fontconfig_include_config.h | 66 +++------------
 ...m_source_libaom_aom__ports_aarch64__cpudetect.c | 42 ++++++----
 ...ial__color__utilities_src_cpp_palettes_tones.cc |  4 +-
 ..._trace__processor_db_column_numeric__storage.cc | 14 ----
 ...etto_src_tracing_core_tracing__service__impl.cc | 12 ---
 ...o_src_tracing_service_tracing__service__impl.cc | 12 +++
 ...__party_speech-dispatcher_libspeechd__version.h |  4 +-
 ...-third__party_sqlite_src_amalgamation_sqlite3.c |  6 +-
 ...st__fonts_fontconfig_fontconfig__util__linux.cc |  4 +-
 ...ty_webrtc_rtc__base_physical__socket__server.cc |  4 +-
 .../files/patch-tools_gn_build_gen.py              |  6 +-
 .../files/patch-ui_base_cursor_cursor__factory.cc  |  4 +-
 .../patch-ui_base_ime_fake__text__input__client.cc |  4 +-
 .../patch-ui_base_ime_fake__text__input__client.h  |  4 +-
 .../files/patch-ui_base_test_ui__controls.h        |  4 +-
 .../files/patch-ui_base_ui__base__features.cc      |  6 +-
 .../files/patch-ui_base_x_x11__display__manager.cc |  6 +-
 .../files/patch-ui_base_x_x11__display__util.cc    | 30 +++----
 .../files/patch-ui_color_color__id.h               |  4 +-
 .../files/patch-ui_color_color__provider__utils.cc |  4 +-
 .../files/patch-ui_events_event.cc                 |  6 +-
 .../patch-ui_gfx_font__render__params__linux.cc    |  6 +-
 .../files/patch-ui_gfx_font__util.cc               |  8 +-
 .../files/patch-ui_gfx_gpu__memory__buffer.h       |  4 +-
 .../files/patch-ui_gfx_linux_gbm__wrapper.cc       |  4 +-
 ...fx_mojom_native__handle__types__mojom__traits.h | 10 +--
 .../files/patch-ui_gfx_platform__font__skia.cc     |  4 +-
 www/ungoogled-chromium/files/patch-ui_gl_BUILD.gn  |  6 +-
 .../files/patch-ui_gl_gl__switches.cc              |  6 +-
 ...rm_headless_vulkan__implementation__headless.cc |  8 +-
 ...form_wayland_emulate_wayland__input__emulate.cc |  6 +-
 ...tform_wayland_emulate_wayland__input__emulate.h |  8 +-
 ...wayland_host_wayland__input__method__context.cc | 11 +++
 ...tform_wayland_host_wayland__toplevel__window.cc |  4 +-
 ...atform_wayland_host_wayland__toplevel__window.h |  4 +-
 ..._ozone_platform_wayland_host_wayland__window.cc | 10 +--
 ...i_ozone_platform_wayland_host_wayland__window.h | 10 +--
 ...rm_wayland_host_xdg__toplevel__wrapper__impl.cc |  4 +-
 ...ne_platform_wayland_ozone__platform__wayland.cc |  4 +-
 ...one_platform_x11_vulkan__implementation__x11.cc |  4 +-
 ...tch-ui_ozone_platform_x11_x11__screen__ozone.cc | 13 ++-
 ...atch-ui_ozone_platform_x11_x11__screen__ozone.h | 31 ++++++-
 .../patch-ui_ozone_platform_x11_x11__window.cc     |  4 +-
 ...i_ozone_test_mock__platform__window__delegate.h |  4 +-
 ..._platform__window_platform__window__delegate.cc |  4 +-
 ...i_platform__window_platform__window__delegate.h |  4 +-
 ...rm__window_platform__window__init__properties.h |  6 +-
 .../patch-ui_views_controls_textfield_textfield.cc | 10 +--
 .../patch-ui_views_controls_textfield_textfield.h  |  8 +-
 .../files/patch-ui_views_style_platform__style.cc  | 12 +--
 ..._ui__controls__factory__desktop__aura__ozone.cc |  4 +-
 ...top__aura_desktop__drag__drop__client__ozone.cc |  6 +-
 ...__aura_desktop__window__tree__host__platform.cc | 10 +--
 .../files/patch-ui_views_widget_widget.cc          |  6 +-
 .../files/patch-ui_views_widget_widget.h           |  4 +-
 www/ungoogled-chromium/files/patch-v8_BUILD.gn     | 10 +--
 .../files/patch-v8_src_api_api.cc                  |  6 +-
 .../patch-v8_src_base_platform_platform-posix.cc   |  4 +-
 .../files/patch-v8_src_execution_isolate.cc        |  6 +-
 .../files/patch-v8_src_flags_flags.cc              | 10 +--
 ...wasm_baseline_ia32_liftoff-assembler-ia32-inl.h | 30 +++----
 336 files changed, 1753 insertions(+), 1779 deletions(-)

diff --git a/www/ungoogled-chromium/Makefile b/www/ungoogled-chromium/Makefile
index e506e565eb8f..691a71e898b3 100644
--- a/www/ungoogled-chromium/Makefile
+++ b/www/ungoogled-chromium/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	ungoogled-chromium
-PORTVERSION=	122.0.6261.111
+PORTVERSION=	123.0.6312.58
 UGVERSION=	${DISTVERSION}-1
 CATEGORIES=	www wayland
 MASTER_SITES=	https://commondatastorage.googleapis.com/chromium-browser-official/ \
@@ -25,6 +25,7 @@ BUILD_DEPENDS=	bash:shells/bash \
 		gperf:devel/gperf \
 		flock:sysutils/flock \
 		node:www/node \
+		rustc:lang/rust \
 		xcb-proto>0:x11/xcb-proto \
 		${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \
 		${LOCALBASE}/share/usbids/usb.ids:misc/usbids \
@@ -135,7 +136,6 @@ GN_ARGS+=	build_with_tflite_lib=false \
 		enable_reading_list=false \
 		enable_remoting=false \
 		enable_reporting=false \
-		enable_rust=false \
 		enable_service_discovery=false \
 		exclude_unwind_tables=true \
 		google_api_key="" \
@@ -285,6 +285,13 @@ MAKE_ENV+=	C_INCLUDE_PATH=${LOCALBASE}/include \
 
 WRKSRC=		${WRKDIR}/chromium-${DISTVERSION}
 
+# rust
+RUSTC_VERSION!= rustc -V 2>/dev/null || true
+MAKE_ENV+=	RUSTC_BOOTSTRAP=1
+GN_ARGS+=	enable_rust=true \
+		rust_sysroot_absolute="${LOCALBASE}" \
+		rustc_version="${RUSTC_VERSION}"
+
 pre-everything::
 	@${ECHO_MSG}
 	@${ECHO_MSG} "To build Ungoogled Chromium, you should have around 2GB of memory"
diff --git a/www/ungoogled-chromium/distinfo b/www/ungoogled-chromium/distinfo
index 22498363ec5a..e681327e9782 100644
--- a/www/ungoogled-chromium/distinfo
+++ b/www/ungoogled-chromium/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1709727561
-SHA256 (chromium-122.0.6261.111.tar.xz) = 0b3da2f0ca63625e84a1b36571f23591248b8fcb422ce683c09283dbfc35c309
-SIZE (chromium-122.0.6261.111.tar.xz) = 3422993788
-SHA256 (ungoogled-chromium-122.0.6261.111-1.tar.gz) = 3cbef7a3038fa1fe6cd064540a71247c696c828a0abf50bf1d87d6efb075f5dd
-SIZE (ungoogled-chromium-122.0.6261.111-1.tar.gz) = 674198
-SHA256 (chromium-122.0.6261.111-testdata.tar.xz) = 80dc53e110b3f0fa5ef36bf6ae188a034f32daeb99942cfb4f1e9d6d20786aca
-SIZE (chromium-122.0.6261.111-testdata.tar.xz) = 280203120
+TIMESTAMP = 1711138219
+SHA256 (chromium-123.0.6312.58.tar.xz) = f8dae4a2ff7b00bb44fa136c2101638fea4f232e4819be3f73381ddc0d3bf718
+SIZE (chromium-123.0.6312.58.tar.xz) = 3465099244
+SHA256 (ungoogled-chromium-123.0.6312.58-1.tar.gz) = 3234f01b3918a080a3a42798fc59c88b0d0515e355ada4022c70ec314bd3b02e
+SIZE (ungoogled-chromium-123.0.6312.58-1.tar.gz) = 667470
+SHA256 (chromium-123.0.6312.58-testdata.tar.xz) = a5dbcc3dd4a7469db1a85e31739508c8919fb37ca6050a617f059329e0d45940
+SIZE (chromium-123.0.6312.58-testdata.tar.xz) = 275371844
 SHA256 (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = a2ca2962daf482a8f943163541e1c73ba4b2694fabcd2510981f2db4eda493c8
 SIZE (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 32624734
diff --git a/www/ungoogled-chromium/files/patch-BUILD.gn b/www/ungoogled-chromium/files/patch-BUILD.gn
index f4ede03ea198..651a50c7693e 100644
--- a/www/ungoogled-chromium/files/patch-BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-BUILD.gn
@@ -1,6 +1,6 @@
---- BUILD.gn.orig	2024-02-25 20:22:18 UTC
+--- BUILD.gn.orig	2024-03-22 14:16:19 UTC
 +++ BUILD.gn
-@@ -63,7 +63,7 @@ declare_args() {
+@@ -64,7 +64,7 @@ declare_args() {
    root_extra_deps = []
  }
  
@@ -9,7 +9,7 @@
    # An official (maximally optimized!) component (optimized for build times)
    # build doesn't make sense and usually doesn't work.
    assert(!is_component_build)
-@@ -95,7 +95,6 @@ group("gn_all") {
+@@ -96,7 +96,6 @@ group("gn_all") {
        "//codelabs",
        "//components:components_unittests",
        "//components/gwp_asan:gwp_asan_unittests",
@@ -17,7 +17,7 @@
        "//net:net_unittests",
        "//sandbox:sandbox_unittests",
        "//services:services_unittests",
-@@ -425,7 +424,7 @@ group("gn_all") {
+@@ -428,7 +427,7 @@ group("gn_all") {
        }
      }
  
@@ -26,7 +26,7 @@
        deps += [
          "//third_party/breakpad:breakpad_unittests",
          "//third_party/breakpad:core-2-minidump",
-@@ -617,6 +616,15 @@ group("gn_all") {
+@@ -620,6 +619,15 @@ group("gn_all") {
        }
      }
  
@@ -42,7 +42,7 @@
      if (is_mac) {
        deps += [
          "//third_party/breakpad:dump_syms",
-@@ -663,7 +671,7 @@ group("gn_all") {
+@@ -666,7 +674,7 @@ group("gn_all") {
            host_os == "win") {
          deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
        }
@@ -51,7 +51,7 @@
        deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
      }
  
-@@ -1084,7 +1092,7 @@ if (use_blink && !is_cronet_build) {
+@@ -1087,7 +1095,7 @@ if (use_blink && !is_cronet_build) {
      ]
    }
  
@@ -60,7 +60,7 @@
      script_test("chrome_wpt_tests") {
        script = "//third_party/blink/tools/run_wpt_tests.py"
        args = [
-@@ -1175,7 +1183,7 @@ if (use_blink && !is_cronet_build) {
+@@ -1178,7 +1186,7 @@ if (use_blink && !is_cronet_build) {
        data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ]
      }
  
@@ -69,7 +69,7 @@
        data_deps +=
            [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
      }
-@@ -1184,7 +1192,7 @@ if (use_blink && !is_cronet_build) {
+@@ -1187,7 +1195,7 @@ if (use_blink && !is_cronet_build) {
        data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
      }
  
@@ -78,7 +78,7 @@
        data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
      }
  
-@@ -1634,7 +1642,7 @@ group("chromium_builder_perf") {
+@@ -1637,7 +1645,7 @@ group("chromium_builder_perf") {
        data_deps += [ "//chrome/test:performance_browser_tests" ]
      }
  
diff --git a/www/ungoogled-chromium/files/patch-base_BUILD.gn b/www/ungoogled-chromium/files/patch-base_BUILD.gn
index ef521a04b43d..ded8e83a42f1 100644
--- a/www/ungoogled-chromium/files/patch-base_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-base_BUILD.gn
@@ -1,6 +1,6 @@
---- base/BUILD.gn.orig	2024-02-25 20:22:18 UTC
+--- base/BUILD.gn.orig	2024-03-22 14:16:19 UTC
 +++ base/BUILD.gn
-@@ -187,7 +187,7 @@ buildflag_header("ios_cronet_buildflags") {
+@@ -192,7 +192,7 @@ buildflag_header("ios_cronet_buildflags") {
    flags = [ "CRONET_BUILD=$is_cronet_build" ]
  }
  
@@ -9,7 +9,7 @@
  buildflag_header("message_pump_buildflags") {
    header = "message_pump_buildflags.h"
    header_dir = "base/message_loop"
-@@ -1118,11 +1118,23 @@ component("base") {
+@@ -1126,11 +1126,23 @@ component("base") {
    # Needed for <atomic> if using newer C++ library than sysroot, except if
    # building inside the cros_sdk environment - use host_toolchain as a
    # more robust check for this.
@@ -34,7 +34,7 @@
    if (use_allocator_shim) {
      if (is_apple) {
        sources += [ "allocator/early_zone_registration_apple.h" ]
-@@ -1142,7 +1154,7 @@ component("base") {
+@@ -1150,7 +1162,7 @@ component("base") {
  
    # Allow more direct string conversions on platforms with native utf8
    # strings
@@ -43,7 +43,7 @@
      defines += [ "SYSTEM_NATIVE_UTF8" ]
    }
  
-@@ -2088,6 +2100,22 @@ component("base") {
+@@ -2106,6 +2118,22 @@ component("base") {
      ]
    }
  
@@ -66,7 +66,7 @@
    # iOS
    if (is_ios) {
      sources += [
-@@ -2218,6 +2246,31 @@ component("base") {
+@@ -2241,6 +2269,31 @@ component("base") {
      }
    }
  
@@ -98,7 +98,7 @@
    if (use_blink) {
      sources += [
        "files/file_path_watcher.cc",
-@@ -2228,7 +2281,7 @@ component("base") {
+@@ -2251,7 +2304,7 @@ component("base") {
    }
  
    if (dep_libevent) {
@@ -107,7 +107,7 @@
    }
  
    if (use_libevent) {
-@@ -2993,7 +3046,7 @@ if (is_apple) {
+@@ -3027,7 +3080,7 @@ if (is_apple) {
    }
  }
  
@@ -116,7 +116,7 @@
    # This test must compile with -fstack-protector-all
    source_set("stack_canary_linux_unittests") {
      testonly = true
-@@ -3629,14 +3682,14 @@ test("base_unittests") {
+@@ -3675,14 +3728,14 @@ test("base_unittests") {
      ]
    }
  
@@ -133,7 +133,7 @@
        deps += [ ":stack_canary_linux_unittests" ]
      }
    }
-@@ -3651,7 +3704,7 @@ test("base_unittests") {
+@@ -3701,7 +3754,7 @@ test("base_unittests") {
        "posix/file_descriptor_shuffle_unittest.cc",
        "posix/unix_domain_socket_unittest.cc",
      ]
@@ -142,7 +142,7 @@
        sources += [
          "profiler/stack_base_address_posix_unittest.cc",
          "profiler/stack_copier_signal_unittest.cc",
-@@ -3662,7 +3715,7 @@ test("base_unittests") {
+@@ -3712,7 +3765,7 @@ test("base_unittests") {
  
    # Allow more direct string conversions on platforms with native utf8
    # strings
@@ -151,7 +151,7 @@
      defines += [ "SYSTEM_NATIVE_UTF8" ]
    }
  
-@@ -3925,7 +3978,7 @@ test("base_unittests") {
+@@ -3980,7 +4033,7 @@ test("base_unittests") {
      }
    }
  
diff --git a/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_partition__alloc.gni b/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_partition__alloc.gni
index 284403a45df8..9882ab1dac47 100644
--- a/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_partition__alloc.gni
+++ b/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_partition__alloc.gni
@@ -1,4 +1,4 @@
---- base/allocator/partition_allocator/partition_alloc.gni.orig	2024-03-06 06:05:23 UTC
+--- base/allocator/partition_allocator/partition_alloc.gni.orig	2024-03-22 14:16:19 UTC
 +++ base/allocator/partition_allocator/partition_alloc.gni
 @@ -30,7 +30,7 @@ if (is_nacl) {
  }
@@ -9,7 +9,7 @@
  
  declare_args() {
    # Causes all the allocations to be routed via allocator_shim.cc. Usually,
-@@ -335,7 +335,7 @@ declare_args() {
+@@ -357,7 +357,7 @@ declare_args() {
    # dependencies that use partition_allocator are compiled in AOSP against a
    # version of glibc that does not include pkeys syscall numbers.
    enable_pkeys =
diff --git a/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn b/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
index f9bb6767d3ff..372c63248989 100644
--- a/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
+++ b/www/ungoogled-chromium/files/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
@@ -1,6 +1,6 @@
---- base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig	2024-02-25 20:22:18 UTC
+--- base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig	2024-03-22 14:16:19 UTC
 +++ base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
-@@ -852,7 +852,7 @@ if (is_clang_or_gcc) {
+@@ -858,7 +858,7 @@ if (is_clang_or_gcc) {
          configs -= [ "//build/config/compiler:enable_arc" ]
        }
      }
diff --git a/www/ungoogled-chromium/files/patch-base_base__switches.cc b/www/ungoogled-chromium/files/patch-base_base__switches.cc
deleted file mode 100644
index 50c791b95619..000000000000
--- a/www/ungoogled-chromium/files/patch-base_base__switches.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- base/base_switches.cc.orig	2024-02-25 20:22:18 UTC
-+++ base/base_switches.cc
-@@ -172,7 +172,7 @@ const char kPackageVersionName[] = "package-version-na
- const char kPackageVersionCode[] = "package-version-code";
- #endif
- 
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- // TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when
- // Crashpad is fully enabled on Linux. Indicates that Crashpad should be
- // enabled.
diff --git a/www/ungoogled-chromium/files/patch-base_base__switches.h b/www/ungoogled-chromium/files/patch-base_base__switches.h
deleted file mode 100644
index 60dde09bd511..000000000000
--- a/www/ungoogled-chromium/files/patch-base_base__switches.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- base/base_switches.h.orig	2024-02-25 20:22:18 UTC
-+++ base/base_switches.h
-@@ -60,7 +60,7 @@ extern const char kPackageVersionName[];
- extern const char kPackageVersionCode[];
- #endif
- 
--#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
- // TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when
- // Crashpad is fully enabled on Linux.
- extern const char kEnableCrashpad[];
diff --git a/www/ungoogled-chromium/files/patch-base_functional_unretained__traits.h b/www/ungoogled-chromium/files/patch-base_functional_unretained__traits.h
index 2689b8f3c9b1..dc0c96e27996 100644
--- a/www/ungoogled-chromium/files/patch-base_functional_unretained__traits.h
+++ b/www/ungoogled-chromium/files/patch-base_functional_unretained__traits.h
@@ -1,6 +1,6 @@
---- base/functional/unretained_traits.h.orig	2024-02-25 20:22:18 UTC
+--- base/functional/unretained_traits.h.orig	2024-03-22 14:16:19 UTC
 +++ base/functional/unretained_traits.h
-@@ -99,7 +99,7 @@ struct SupportsUnretainedImpl {
+@@ -93,7 +93,7 @@ struct SupportsUnretainedImpl {
  // official builds, and then in non-test code as well.
  #if defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS) || \
      (!defined(UNIT_TEST) && !defined(OFFICIAL_BUILD) &&        \
diff --git a/www/ungoogled-chromium/files/patch-base_i18n_icu__util.cc b/www/ungoogled-chromium/files/patch-base_i18n_icu__util.cc
index 0336d64cecfd..323f559d3155 100644
--- a/www/ungoogled-chromium/files/patch-base_i18n_icu__util.cc
+++ b/www/ungoogled-chromium/files/patch-base_i18n_icu__util.cc
@@ -1,6 +1,6 @@
---- base/i18n/icu_util.cc.orig	2023-09-17 07:59:53 UTC
+--- base/i18n/icu_util.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/i18n/icu_util.cc
-@@ -51,7 +51,7 @@
+@@ -52,7 +52,7 @@
  #include "third_party/icu/source/common/unicode/unistr.h"
  #endif
  
@@ -9,7 +9,7 @@
      BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
  #include "third_party/icu/source/i18n/unicode/timezone.h"
  #endif
-@@ -345,7 +345,7 @@ void InitializeIcuTimeZone() {
+@@ -328,7 +328,7 @@ void InitializeIcuTimeZone() {
        FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
    icu::TimeZone::adoptDefault(
        icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id)));
diff --git a/www/ungoogled-chromium/files/patch-base_native__library__unittest.cc b/www/ungoogled-chromium/files/patch-base_native__library__unittest.cc
index 8d6f7841fee7..3bcf2a694751 100644
--- a/www/ungoogled-chromium/files/patch-base_native__library__unittest.cc
+++ b/www/ungoogled-chromium/files/patch-base_native__library__unittest.cc
@@ -1,6 +1,6 @@
---- base/native_library_unittest.cc.orig	2024-02-03 15:42:55 UTC
+--- base/native_library_unittest.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/native_library_unittest.cc
-@@ -135,7 +135,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
+@@ -133,7 +133,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
  // versions with respect to symbol resolution scope.
  // TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255
  #if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
diff --git a/www/ungoogled-chromium/files/patch-base_process_process__handle__openbsd.cc b/www/ungoogled-chromium/files/patch-base_process_process__handle__openbsd.cc
index 5d2e2ba47fe7..35879219717e 100644
--- a/www/ungoogled-chromium/files/patch-base_process_process__handle__openbsd.cc
+++ b/www/ungoogled-chromium/files/patch-base_process_process__handle__openbsd.cc
@@ -1,18 +1,22 @@
---- base/process/process_handle_openbsd.cc.orig	2022-10-01 07:40:07 UTC
+--- base/process/process_handle_openbsd.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/process/process_handle_openbsd.cc
-@@ -3,8 +3,11 @@
+@@ -3,48 +3,112 @@
  // found in the LICENSE file.
  
  #include "base/process/process_handle.h"
 +#include "base/files/file_util.h"
  
  #include <stddef.h>
++#include <stdlib.h>
 +#include <sys/param.h>
 +#include <sys/proc.h>
++#include <sys/stat.h>
  #include <sys/sysctl.h>
  #include <sys/types.h>
  #include <unistd.h>
-@@ -12,39 +15,59 @@
+ 
++#include <kvm.h>
++
  namespace base {
  
  ProcessId GetParentProcessId(ProcessHandle process) {
@@ -26,18 +30,19 @@
    if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
      return -1;
  
+-  mib[5] = (length / sizeof(struct kinfo_proc));
 +  info = (struct kinfo_proc *)malloc(length);
-+
-   mib[5] = (length / sizeof(struct kinfo_proc));
  
 -  if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
 -    return -1;
++  mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc)));
+ 
+-  return info.p_ppid;
 +  if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
 +    ppid = -1;
 +    goto out;
 +  }
- 
--  return info.p_ppid;
++
 +  ppid = info->p_ppid;
 +
 +out:
@@ -47,16 +52,20 @@
  
  FilePath GetProcessExecutablePath(ProcessHandle process) {
 -  struct kinfo_proc kp;
--  size_t len;
-+  struct kinfo_proc *info;
-+  size_t length;
-+  char *path = NULL;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
-                 sizeof(struct kinfo_proc), 0 };
++  struct kinfo_file *files;
++  kvm_t *kd = NULL;
++  char errbuf[_POSIX2_LINE_MAX];
++  char **retvalargs, *cpath, retval[PATH_MAX];
++  int cnt;
+   size_t len;
+-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
+-                sizeof(struct kinfo_proc), 0 };
++  char *tokens[2];
++  struct stat sb;
++  FilePath *result = nullptr;
  
 -  if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) == -1)
-+  if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) == -1)
-     return FilePath();
+-    return FilePath();
 -  mib[5] = (len / sizeof(struct kinfo_proc));
 -  if (sysctl(mib, std::size(mib), &kp, &len, NULL, 0) < 0)
 -    return FilePath();
@@ -64,26 +73,61 @@
 -    return FilePath();
 -  if (strcmp(kp.p_comm, "chrome") == 0)
 -    return FilePath(kp.p_comm);
++  int mib[] = { CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_ARGV };
  
 -  return FilePath();
-+  info = (struct kinfo_proc *)malloc(length);
++  if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
++    *result = FilePath(cpath);
++  else
++    *result = FilePath("/usr/local/chrome/chrome");
 +
-+  mib[5] = (length / sizeof(struct kinfo_proc));
++  if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) != -1) {
++    retvalargs = static_cast<char**>(malloc(len));
++    if (!retvalargs)
++      return *result;
 +
-+  if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0)
-+    goto out;
++    if (sysctl(mib, std::size(mib), retvalargs, &len, NULL, 0) < 0) {
++      free(retvalargs);
++      return *result;
++    }
 +
-+  if ((info->p_flag & P_SYSTEM) != 0)
-+    goto out;
++    if ((*tokens = strtok(retvalargs[0], ":")) == NULL) {
++      free(retvalargs);
++      return *result;
++    }
 +
-+  if (strcmp(info->p_comm, "chrome") == 0) {
-+    path = info->p_comm;
-+    goto out;
++    free(retvalargs);
++
++    if (tokens[0] == NULL)
++      return *result;
++
++    if (realpath(tokens[0], retval) == NULL)
++      return *result;
++
++    if (stat(retval, &sb) < 0)
++      return *result;
++
++    if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES,
++         errbuf)) == NULL)
++      return *result;
++
++    if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process,
++        sizeof(struct kinfo_file), &cnt)) == NULL) {
++      kvm_close(kd);
++      return *result;
++    }
++
++    for (int i = 0; i < cnt; i++) {
++      if (files[i].fd_fd == KERN_FILE_TEXT &&
++          files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++          files[i].va_fileid == sb.st_ino) {
++            kvm_close(kd);
++            *result = FilePath(retval);
++      }
++    }
 +  }
 +
-+out:
-+  free(info);
-+  return FilePath(path);
++  return *result;
  }
  
  }  // namespace base
diff --git a/www/ungoogled-chromium/files/patch-base_process_process__metrics.h b/www/ungoogled-chromium/files/patch-base_process_process__metrics.h
index 48e5ff32c708..a7e383cdc65d 100644
--- a/www/ungoogled-chromium/files/patch-base_process_process__metrics.h
+++ b/www/ungoogled-chromium/files/patch-base_process_process__metrics.h
@@ -1,4 +1,4 @@
---- base/process/process_metrics.h.orig	2023-12-23 12:33:28 UTC
+--- base/process/process_metrics.h.orig	2024-03-22 14:16:19 UTC
 +++ base/process/process_metrics.h
 @@ -37,7 +37,7 @@
  #endif
@@ -109,7 +109,7 @@
  // Parse the data found in /proc/<pid>/stat and return the sum of the
  // CPU-related ticks.  Returns -1 on parse error.
  // Exposed for testing.
-@@ -588,7 +586,7 @@ class BASE_EXPORT SystemMetrics {
+@@ -594,7 +592,7 @@ class BASE_EXPORT SystemMetrics {
    FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics);
  
    size_t committed_memory_;
diff --git a/www/ungoogled-chromium/files/patch-base_process_process__unittest.cc b/www/ungoogled-chromium/files/patch-base_process_process__unittest.cc
index 3de852e93c14..5405f49b5180 100644
--- a/www/ungoogled-chromium/files/patch-base_process_process__unittest.cc
+++ b/www/ungoogled-chromium/files/patch-base_process_process__unittest.cc
@@ -1,6 +1,6 @@
---- base/process/process_unittest.cc.orig	2023-11-04 07:08:51 UTC
+--- base/process/process_unittest.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/process/process_unittest.cc
-@@ -198,7 +198,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) {
+@@ -199,7 +199,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) {
    // was spawned and a time recorded after it was spawned. However, since the
    // base::Time and process creation clocks don't match, tolerate some error.
    constexpr base::TimeDelta kTolerance =
diff --git a/www/ungoogled-chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc b/www/ungoogled-chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc
index 1d2a16d04f44..d9c2aee3ae8e 100644
--- a/www/ungoogled-chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc
+++ b/www/ungoogled-chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc
@@ -1,6 +1,6 @@
---- base/profiler/stack_sampling_profiler_unittest.cc.orig	2022-10-01 07:40:07 UTC
+--- base/profiler/stack_sampling_profiler_unittest.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/profiler/stack_sampling_profiler_unittest.cc
-@@ -41,7 +41,7 @@
+@@ -42,7 +42,7 @@
  #include <intrin.h>
  #include <malloc.h>
  #include <windows.h>
diff --git a/www/ungoogled-chromium/files/patch-base_rand__util__posix.cc b/www/ungoogled-chromium/files/patch-base_rand__util__posix.cc
index 6aba6acff1cc..519616833805 100644
--- a/www/ungoogled-chromium/files/patch-base_rand__util__posix.cc
+++ b/www/ungoogled-chromium/files/patch-base_rand__util__posix.cc
@@ -1,4 +1,4 @@
---- base/rand_util_posix.cc.orig	2024-02-25 20:22:18 UTC
+--- base/rand_util_posix.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/rand_util_posix.cc
 @@ -23,7 +23,7 @@
  #include "base/time/time.h"
@@ -49,7 +49,7 @@
  
  }  // namespace
 @@ -239,9 +245,11 @@ void RandBytes(void* output, size_t output_length) {
-   RandBytes(make_span(reinterpret_cast<uint8_t*>(output), output_length));
+   RandBytes(make_span(static_cast<uint8_t*>(output), output_length));
  }
  
 +#if !BUILDFLAG(IS_BSD)
diff --git a/www/ungoogled-chromium/files/patch-base_synchronization_lock__impl.h b/www/ungoogled-chromium/files/patch-base_synchronization_lock__impl.h
index e6f4587deb66..0c9e47bfcc8c 100644
--- a/www/ungoogled-chromium/files/patch-base_synchronization_lock__impl.h
+++ b/www/ungoogled-chromium/files/patch-base_synchronization_lock__impl.h
@@ -1,6 +1,6 @@
---- base/synchronization/lock_impl.h.orig	2024-02-25 20:22:18 UTC
+--- base/synchronization/lock_impl.h.orig	2024-03-22 14:16:19 UTC
 +++ base/synchronization/lock_impl.h
-@@ -106,6 +106,10 @@ void LockImpl::Unlock() {
+@@ -105,6 +105,10 @@ void LockImpl::Unlock() {
  }
  
  #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
@@ -11,7 +11,7 @@
  
  #if DCHECK_IS_ON()
  BASE_EXPORT void dcheck_trylock_result(int rv);
-@@ -126,6 +130,9 @@ void LockImpl::Unlock() {
+@@ -125,6 +129,9 @@ void LockImpl::Unlock() {
    dcheck_unlock_result(rv);
  #endif
  }
diff --git a/www/ungoogled-chromium/files/patch-base_syslog__logging.cc b/www/ungoogled-chromium/files/patch-base_syslog__logging.cc
index 44fbed6ce89b..67332485349a 100644
--- a/www/ungoogled-chromium/files/patch-base_syslog__logging.cc
+++ b/www/ungoogled-chromium/files/patch-base_syslog__logging.cc
@@ -1,6 +1,6 @@
---- base/syslog_logging.cc.orig	2022-10-01 07:40:07 UTC
+--- base/syslog_logging.cc.orig	2024-03-22 14:16:19 UTC
 +++ base/syslog_logging.cc
-@@ -15,7 +15,7 @@
+@@ -17,7 +17,7 @@
  #include "base/strings/string_util.h"
  #include "base/win/scoped_handle.h"
  #include "base/win/win_util.h"
@@ -9,7 +9,7 @@
  // <syslog.h> defines LOG_INFO, LOG_WARNING macros that could conflict with
  // base::LOG_INFO, base::LOG_WARNING.
  #include <syslog.h>
-@@ -147,7 +147,7 @@ EventLogMessage::~EventLogMessage() {
+@@ -149,7 +149,7 @@ EventLogMessage::~EventLogMessage() {
  
    if (user_sid != nullptr)
      ::LocalFree(user_sid);
diff --git a/www/ungoogled-chromium/files/patch-base_system_sys__info__posix.cc b/www/ungoogled-chromium/files/patch-base_system_sys__info__posix.cc
index 152e9454d826..3d7c69c01aef 100644
--- a/www/ungoogled-chromium/files/patch-base_system_sys__info__posix.cc
+++ b/www/ungoogled-chromium/files/patch-base_system_sys__info__posix.cc
*** 9619 LINES SKIPPED ***