Hello world :-) I was just about to report request to enable PulseAudio by default in Chrome just as it is in Firefox, but I found this thread that requests disabling the PulseAudio by default: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216327 PulseAudio distinguishes input and output devices and the sound streams so you can list them and adjust parameters such as volume per stream rather than per device. This is really important for WebRTC where you can easily and quickly switch between different devices for instance web camera microphone or internal laptop microphone or external microhpne. In Firefox that uses PulseAudio I can see many input devices and I can select among them. In Chromium that uses only ALSA by default I can see only "default" microphone and this is not the one that works nor any other input device. I did a compilation of Chromium with PulseAudio enabled but each pkg update tells me it wants to replace it with a binary that has defaults (no PulseAudio). Is PulseAudio still not welcome in Chromium by default? Best regards, Tomek
I'm experiencing an issue as well but not sure if it's due to this or some other weirdness. But I've noticed that on my framework laptop on FreeBSD 14.0-CURRENT #0 main-n255077-490a0f77de7, Chromium ignores my mute requests (either via Fn key or KDE Plasma UI), but respects volume increase / decrease requests. Firefox however respects all three and will (un)mute immediately.
I would like to see PulseAudio enabled by default in Chromium too. My microphone does not work in WebRTC using default Chromium, it works correctly in Chromium built with PulseAudio enabled. The only problem is that to build Chromium I need to use an external server, and it takes 12+ hours. It is impossible to build the port on a laptop (needs to much RAM). Maybe, a good solution would be a slave port, something like 'chromium-pulseaudio'.
*** This bug has been marked as a duplicate of bug 278521 ***
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=89e432ced730385869e5bf6df4b705facbd1c947 commit 89e432ced730385869e5bf6df4b705facbd1c947 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2024-05-04 02:02:20 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2024-05-04 02:06:57 +0000 www/chromium: Change default audio output to PULSEAUDIO to make chromium to play nice with desktop environments PR: 278521 246449 Approved by: chromium@FreeBSD.org (maintainer's timeout; 4 years on bug#246449) www/chromium/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Yes this is wrong. Please revert your commit. The proper way of doing this is to have chromium pick what audio backend to use by default, so if you have pulseaudio installed it will pick that and fall back to sndio by default. I will implement this in the coming weeks.
(In reply to Robert Nagy from comment #5) In addition to this chromium should also allow the user to choose what audio backend to use, regardless of what backends are installed.
I'm guessing chromium doesn't support OSS since I don't see it in the port's list of backends?
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=762aa0135a4e18d32bd27bba5266fe6edd769d82 commit 762aa0135a4e18d32bd27bba5266fe6edd769d82 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2024-05-05 15:51:10 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2024-05-05 16:09:08 +0000 Revert "www/chromium: Change default audio output to PULSEAUDIO to make chromium to play nice with desktop environments" This reverts commit 89e432ced730385869e5bf6df4b705facbd1c947. Reason: Several people complained that the PulseAudio dependency is a lot heavier than Sndio. This is currently a controversial issue because: 1. PulseAudio is indeed a heavier dependency compared to Sndio, so for people who prefer minimalistic setup Sndio should be a default. 2. Currently desktop environments work best with PulseAudio, so it is better for average users to have PulseAudio as a default backend. It would be best if www/chromium would allow to change audio backend at-startup or on-the-fly without the need to change port options. This can be achieved by the following methods: 1. Flavorizing www/chromium based on audio backends. 2. Creating slave ports with different audio backends. 3. Implementing on-the-fly or at-startup setting of the audio backend. In https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246449#c5 Robert Nagy <rnagy@FreeBSD.org> volunteered to implement audio backend dependency in a proper way. I've suggested that the item 3. above is a proper way for chromium. PR: 246449 www/chromium/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
I perfectly understand the people who don't like Pulseaudio and don't wont to see Chromium installs it by default. But sorry, guys, sndio just does not work for many important web apps (like MS Teams for example) in case of multiple in/out channels!! If I install Chromium, having Firefox already installed as a default browser - it's just because some apps work only with Chromium, and Chromium with sndio does not work correctly. Chromium is an application that really heavy to build, I'm doing it since many months and I have many issues with upgrade of packages because of Chromium installed from port (just because of Pulseaudio option). If Pulseaudio active by default is not good for someone - please, find another solution to be able to install Chromium with Pulseaudio from package.
Additionally, I don't see how can this be implemented such that PulseAudio isn't a dependency, and that backends would be able to be switched at run-time or start-time. This two are obviously a conflicting requirements. I think that the best solution in the meantime is to flavorize this port. This is fairly easy to do, and this would satisfy needs of users of all kinds. Would there be any objection to flavorization? desktop@FreeBSD.org - do you have any objections? Yuri
Me too, I don't think that switching at run-time is possible (or, maybe, it would be possible if the port is built WITH Pulseaudio option). I think the flavorization is the best option now.
Created attachment 250463 [details] flavorize-chromium-on-audio-backends I am proposing an easy solution to flavorize the port. This should satisfy all categories of users. Attaching the patch for desktop@FreeBSD.org approval. I'll be testing its build in the meantime. In case a better solution is found in the meantime or later - it would be very welcome.
(In reply to Yuri Victorovich from comment #12) Correction: * approval should be from chromium@FreeBSD.org
(In reply to Yuri Victorovich from comment #12) Looking into FLAVORS section of poudriere manpage [1], anyone who have *installed www/chromium, *building home blew pkgs with poudriere with `poudriere -a`, *and have FLAVOR_DEFAULT_ALL set would be severy bitten by forced builds of multiple www/chromium with your flavorization. Slave ports (www/chromium-alsa and www/chromium-sndio, restoring pulseaudio by default for average desktop environment users) would be preferrable here. Note that if www/chromium is light-weighted-to-build enough (for example, finishes building on slowest supported environments in 5 minutes or so), flavorizing should be preferrerd. [1] https://man.freebsd.org/cgi/man.cgi?poudriere(8)
I'm working on adding slave ports.
Created attachment 250470 [details] patch adding slave ports I am attaching the slave ports patch. Could anybody please review them and see if anything might be wrong or improved? I would also appreciate if anybody with more computing resources could build all 3 of them and verify that they work. (It would take me days to do this.) Thank you, Yuri
I don't see any reason for slave ports. The patch I am working on will do the right thing by default without adding any dependencies and allow you to specify which audio backend to use if you do not want the 'auto' mode.
(In reply to Robert Nagy from comment #17) +1
I'll be interested in taking a look at the solution when it's ready Robert. Thank you!
(In reply to Robert Nagy from comment #17) Sounds great! Looking forward to see it. FYI: www/chromium at commit 89e432ced730385869e5bf6df4b705facbd1c947 required 10.5 hours on my ThinkPad P52 with 32GB of memory and 6C12T. If I missingly configured/started poudriere on it, it could become at least 3 times longer for 3 backends. This is because I hesitated flavorization way.
(In reply to Robert Nagy from comment #17) Thank you Robert. Please don't forget about ALSA backend.
Created attachment 250489 [details] [PATCH] www/chromium: implement selectable audio backend support with these changes, chromium now automatically selects which audio backend to use in the following order: pulse (if running) -> sndio (if running) -> alsa -> fake an additional command line option has been also implemented so that the user can force which backend to use: --audio-backend={auto,sndio,pulse,alsa}
Thanks for that Robert. I took a brief look at the changes. Just to confirm, it seems the port doesn't have any audio system being pulled in (other than Pipewire which is primarily used on Linux from my understanding - I haven't been keeping much track of its state). My main question is with that mentioned, I'm guessing it's the responsibility of the user to install whatever backend they want beforehand so that when Chromium runs at runtime, it will detect and reuse the one on the system? If that's the case that sounds good since it does indeed avoid Chromium having to pull in unnecessary dependencies. This is also assuming that Chromium has the needed support to communicate with those backends without having to pull the main sound dependencies themselves (for linking purposes or what not).
(In reply to Jonathan Vasquez from comment #23) Well not really. Chromium depends on alsa-lib and sndio. Pulseaudio is dlopen'd so you do not have to have it installed.
Is there a way to download binary package for testing?
(In reply to Oleh Hushchenkov from comment #25) I have a 13.3 amd64 package here: https://nerd.hu/chromium-124.0.6367.118_2.pkg
(In reply to Robert Nagy from comment #26) I installed it on 14-STABLE. Audio works, microphone in online tester also works. Can't try any video conferencing now. How I can check which audio backend is active? No pulseaudio installed, only sndio and alsa-libs. Thanks.
(In reply to Oleh Hushchenkov from comment #27) Well I can add some debug info for that as well, but for now you can run with --enable-logging=stderr and see if it falls back from Pulse -> Sndio -> Alsa -> Fake as it logs in case it falls back in auto mode.
(In reply to Robert Nagy from comment #28) With --enable-logging=stderr I can see how it falls back pulse -> sndio. When I use --audio-backend={sndio,alsa} switch no logs, but audio works in the same way. I have no running sndio server, but it's running in sndio server less mode, as I understand. So alsa backend can be used only with --audio-backend=alsa switch? In auto mode it's unreachable? Thanks.
(In reply to Oleh Hushchenkov from comment #29) Yes that seems to be correct, however I think that's fine because I don't find ALSA quiet useful. If sndio does not work for you, you have other problems.
(In reply to Robert Nagy from comment #30) Probably you are right. At least skype echo test works with sndio. I tested sndio and alsa backends with --audio-backend switch, but I can't test pulse. Maybe someone else will do it. Thank you Robert.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=6acad34cb2bc3b858f64724620fd3c11b2a602f3 commit 6acad34cb2bc3b858f64724620fd3c11b2a602f3 Author: Robert Nagy <rnagy@FreeBSD.org> AuthorDate: 2024-05-22 11:21:19 +0000 Commit: Robert Nagy <rnagy@FreeBSD.org> CommitDate: 2024-05-22 13:26:15 +0000 www/chromium: update to 125.0.6422.76 and implement selectable audio backend support with these changes, chromium now automatically selects which audio backend to use in the following order: pulse (if running) -> sndio -> alsa -> fake an additional command line option has been also implemented so that the user can force which backend to use: --audio-backend={auto,sndio,pulse,alsa} Security: https://vuxml.freebsd.org/freebsd/8247af0d-183b-11ef-9f97-a8a1599412c6.html PR: 246449 www/chromium/Makefile | 41 ++++------ www/chromium/distinfo | 14 ++-- www/chromium/files/patch-BUILD.gn | 20 ++--- www/chromium/files/patch-base_BUILD.gn | 22 +++--- .../files/patch-base_allocator_dispatcher_tls.h | 4 +- ...cator_partition__allocator_partition__alloc.gni | 4 +- ...tition__allocator_src_partition__alloc_BUILD.gn | 4 +- ...artition__alloc_address__space__randomization.h | 10 +-- ...src_partition__alloc_partition__alloc__config.h | 6 +- ..._partition__alloc_partition__alloc__constants.h | 4 +- ...locator_src_partition__alloc_partition__root.cc | 8 +- ..._allocator_src_partition__alloc_stack_stack.cc} | 4 +- .../files/patch-base_debug_stack__trace.cc | 18 ++--- www/chromium/files/patch-base_features.cc (new) | 20 +++++ .../files/patch-base_files_file__util__posix.cc | 4 +- .../files/patch-base_files_file__util__unittest.cc | 6 +- www/chromium/files/patch-base_linux__util.cc | 12 +-- .../files/patch-base_process_internal__linux.h | 6 +- .../files/patch-base_process_process__metrics.cc | 8 +- .../files/patch-base_process_process__metrics.h | 24 +++--- ...patch-base_process_process__metrics__freebsd.cc | 25 ++++--- ...patch-base_process_process__metrics__openbsd.cc | 38 +++++----- ...atch-base_process_process__metrics__unittest.cc | 4 +- .../files/patch-base_process_process__posix.cc | 10 +-- ...profiler_stack__sampling__profiler__unittest.cc | 6 +- .../patch-base_strings_safe__sprintf__unittest.cc | 6 +- .../files/patch-base_synchronization_lock__impl.h | 6 +- www/chromium/files/patch-base_system_sys__info.h | 6 +- ...patch-base_threading_platform__thread__posix.cc | 19 +++-- ...ch-base_threading_platform__thread__unittest.cc | 8 +- .../files/patch-build_config_BUILDCONFIG.gn | 8 +- .../files/patch-build_config_clang_BUILD.gn | 4 +- .../files/patch-build_config_compiler_BUILD.gn | 30 ++++---- www/chromium/files/patch-build_config_rust.gni | 4 +- .../files/patch-build_toolchain_gcc__toolchain.gni | 4 +- www/chromium/files/patch-cc_BUILD.gn | 6 +- .../patch-chrome_app_chrome__main__delegate.cc | 46 +++++------- www/chromium/files/patch-chrome_browser_BUILD.gn | 4 +- .../files/patch-chrome_browser_about__flags.cc | 75 +++++++++++-------- ...e_browser_accessibility_pdf__ocr__controller.cc | 4 +- ...ete_chrome__autocomplete__scheme__classifier.cc | 4 +- .../patch-chrome_browser_browser__features.cc | 6 +- .../patch-chrome_browser_browser__process__impl.cc | 8 +- .../patch-chrome_browser_browser__process__impl.h | 4 +- ..._browser_chrome__browser__interface__binders.cc | 23 ++---- .../patch-chrome_browser_chrome__browser__main.cc | 10 +-- ...r_chrome__browser__main__extra__parts__linux.cc | 8 +- ...ome_browser_chrome__content__browser__client.cc | 40 +++++----- ...rome_browser_chrome__content__browser__client.h | 4 +- ..._updater_widevine__cdm__component__installer.cc | 21 ++++-- .../patch-chrome_browser_devtools_BUILD.gn (gone) | 10 --- ...download_chrome__download__manager__delegate.cc | 8 +- ...ch-chrome_browser_download_download__commands.h | 4 +- ...hrome_browser_download_download__item__model.cc | 8 +- ...er_enterprise_connectors_connectors__service.cc | 4 +- ...browser_enterprise_watermark_watermark__view.cc | 6 +- .../files/patch-chrome_browser_extensions_BUILD.gn | 4 +- ..._private_enterprise__reporting__private__api.cc | 10 +-- ...management_chrome__management__api__delegate.cc | 4 +- ...__private_passwords__private__delegate__impl.cc | 4 +- ...extensions_api_settings__private_prefs__util.cc | 4 +- ...api_webstore__private_webstore__private__api.cc | 4 +- .../patch-chrome_browser_flag__descriptions.cc | 33 +++----- .../patch-chrome_browser_flag__descriptions.h | 31 +++----- ...e_browser_media_webrtc_webrtc__log__uploader.cc | 4 +- ...ser_media_webrtc_webrtc__logging__controller.cc | 4 +- ...ser_metrics_chrome__metrics__service__client.cc | 20 ++--- ...ch-chrome_browser_metrics_perf_cpu__identity.cc | 4 +- ...hrome_browser_metrics_power_process__monitor.cc | 10 +-- ...age_modules_file__suggestion_drive__service.cc} | 4 +- ...d__manager_chrome__password__manager__client.cc | 6 +- ...onfiguration__policy__handler__list__factory.cc | 56 +++++++------- .../patch-chrome_browser_prefs_browser__prefs.cc | 10 +-- ...er_prefs_pref__service__incognito__allowlist.cc | 4 +- ...er_printing_print__backend__service__manager.cc | 8 +- ...hrome__browser__main__extra__parts__profiles.cc | 20 ++--- .../patch-chrome_browser_profiles_profile__impl.cc | 8 +- ...d__content__scanning_binary__upload__service.cc | 4 +- ...rch__engine__choice__service__factory.cc (gone) | 20 ----- ...ser_sharing_sharing__handler__registry__impl.cc | 8 +- ...__user_supervised__user__extensions__manager.cc | 6 +- ...tch-chrome_browser_sync_chrome__sync__client.cc | 30 ++++---- ...h-chrome_browser_sync_sync__service__factory.cc | 16 ++-- ...atch-chrome_browser_sync_sync__service__util.cc | 4 +- ..._payments_desktop__payments__window__manager.cc | 6 +- ...l_payments_desktop__payments__window__manager.h | 14 ++-- .../files/patch-chrome_browser_ui_browser.h | 4 +- ...rome_browser_ui_browser__command__controller.cc | 12 +-- .../patch-chrome_browser_ui_browser__ui__prefs.cc | 4 +- .../files/patch-chrome_browser_ui_chrome__pages.cc | 6 +- .../files/patch-chrome_browser_ui_chrome__pages.h | 4 +- ..._passwords_manage__passwords__ui__controller.cc | 6 +- ...e_browser_ui_signin_signin__view__controller.cc | 4 +- ...chrome_browser_ui_startup_bad__flags__prompt.cc | 4 +- ...browser_ui_startup_startup__browser__creator.cc | 10 +-- .../files/patch-chrome_browser_ui_tab__helpers.cc | 6 +- ...ui_task__manager_task__manager__table__model.cc | 4 +- ...tch-chrome_browser_ui_test_test__browser__ui.cc | 4 +- .../files/patch-chrome_browser_ui_ui__features.cc | 4 +- .../files/patch-chrome_browser_ui_ui__features.h | 4 +- ...wser_ui_views_chrome__views__delegate__linux.cc | 6 +- ...-chrome_browser_ui_views_frame_browser__view.cc | 4 +- ..._ui_views_omnibox_omnibox__view__views.cc (new) | 11 +++ ..._ui_views_profiles_profile__menu__view__base.cc | 4 +- ...es_signin__view__controller__delegate__views.cc | 14 ++-- ...les_signin__view__controller__delegate__views.h | 4 +- ...e_browser_ui_views_tab__search__bubble__host.cc | 4 +- .../patch-chrome_browser_ui_views_tabs_tab.cc | 4 +- ..._browser_ui_views_tabs_tab__drag__controller.cc | 14 ++-- ...ui_views_tabs_tab__hover__card__bubble__view.cc | 6 +- ..._education_browser__user__education__service.cc | 4 +- ...eb__apps_web__app__integration__test__driver.cc | 34 ++++----- ...eb__applications_web__app__ui__manager__impl.cc | 6 +- ..._ui_webui_app__home_app__home__page__handler.cc | 6 +- ...i_webui_chrome__web__ui__controller__factory.cc | 14 ++-- ...i_connectors__internals_device__trust__utils.cc | 4 +- ..._ui_webui_management_management__ui__handler.cc | 12 +-- ..._ui_webui_searchbox_searchbox__handler.cc (new) | 29 ++++++++ ...tings_settings__localized__strings__provider.cc | 25 ++----- ...hrome_browser_ui_window__sizer_window__sizer.cc | 4 +- ...mmands_install__app__locally__command.cc (gone) | 11 --- ...ications_extensions_extension__status__utils.cc | 4 +- ...__integration_os__integration__test__override.h | 12 +-- ...pplications_policy_web__app__policy__manager.cc | 4 +- ...s_test_os__integration__test__override__impl.cc | 76 +++++++++---------- ...ns_test_os__integration__test__override__impl.h | 20 ++--- ...thn_chrome__authenticator__request__delegate.cc | 4 +- .../files/patch-chrome_common_chrome__features.cc | 16 ++-- .../files/patch-chrome_common_chrome__features.h | 12 +-- .../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 +++++--- ...h-chrome_common_media_cdm__registration.h (new) | 11 +++ ...a_component__widevine__cdm__hint__file__linux.h | 4 +- .../files/patch-chrome_common_pref__names.h | 24 +++--- .../files/patch-chrome_common_url__constants.h | 4 +- .../patch-chrome_common_webui__url__constants.cc | 12 +-- .../patch-chrome_common_webui__url__constants.h | 8 +- ...derer_chrome__render__frame__observer.cc (gone) | 11 --- .../files/patch-chrome_utility_services.cc | 14 ++-- ...hromecast_browser_cast__browser__main__parts.cc | 14 ++-- ...ecast_browser_cast__content__browser__client.cc | 4 +- ...l_core_browser_payments__data__manager.cc (new) | 11 +++ ..._core_browser_personal__data__manager.cc (gone) | 12 --- ...ill_core_common_autofill__payments__features.cc | 4 +- ...onents_commerce_core_commerce__feature__list.cc | 4 +- ...core_browser_user__permission__service__impl.cc | 4 +- ...e__engagement_public_feature__configurations.cc | 24 ++---- ...eature__engagement_public_feature__constants.cc | 19 +++-- ...feature__engagement_public_feature__constants.h | 6 +- ...nts_feature__engagement_public_feature__list.cc | 8 +- ...ents_feature__engagement_public_feature__list.h | 20 ++--- .../patch-components_gwp__asan_client_gwp__asan.cc | 4 +- ...patch-components_live__caption_caption__util.cc | 13 +--- .../files/patch-components_metrics_metrics__log.cc | 10 +-- ...zation__guide_core_optimization__guide__util.cc | 4 +- ...onents_os__crypt_sync_libsecret__util__linux.cc | 6 +- ...ger_core_browser_features_password__features.cc | 8 +- ...ager_core_browser_features_password__features.h | 4 +- ...manager_core_browser_password__form__manager.cc | 6 +- ...word__manager_core_browser_password__manager.cc | 4 +- ..._core_browser_password__manager__client.h (new) | 20 +++++ ...ssword__store_login__database__async__helper.cc | 4 +- ...rowser_stub__password__manager__client.cc (new) | 11 +++ ...browser_stub__password__manager__client.h (new) | 11 +++ ...ger_core_browser_sync_password__sync__bridge.cc | 4 +- ...er_core_common_password__manager__pref__names.h | 4 +- ...mponents_performance__manager_public_features.h | 4 +- ...licy_core_common_cloud_cloud__policy__client.cc | 4 +- ...ts_safe__browsing_core_common_features.cc (new) | 11 +++ ...gine__choice_search__engine__choice__service.cc | 4 +- ...nents_search__engines_template__url__service.cc | 4 +- ...mponents_signin_public_base_signin__switches.cc | 6 +- ...omponents_signin_public_base_signin__switches.h | 4 +- .../patch-components_soda_soda__util.cc (new) | 11 +++ ..._metric__utils_common_startup__metric__utils.cc | 4 +- ..._user_core_browser_supervised__user__service.cc | 4 +- ...onents_supervised__user_core_common_features.cc | 8 +- ...ponents_supervised__user_core_common_features.h | 8 +- .../files/patch-components_sync_base_features.cc | 4 +- ...ch-components_viz_host_host__display__client.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 | 4 +- .../files/patch-content_app_content__main.cc | 4 +- ...atch-content_app_content__main__runner__impl.cc | 20 ++--- www/chromium/files/patch-content_browser_BUILD.gn | 4 +- .../patch-content_browser_audio_audio__service.cc | 6 +- ..._browser_browser__child__process__host__impl.cc | 4 +- ...t_browser_browser__child__process__host__impl.h | 6 +- .../patch-content_browser_browser__main__loop.cc | 8 +- ...tent_browser_child__process__launcher__helper.h | 8 +- ...wser_child__process__launcher__helper__linux.cc | 22 +++--- ...browser_child__thread__type__switcher__linux.cc | 4 +- ...owser_devtools_devtools__frontend__host__impl.h | 4 +- ...wser_devtools_protocol_system__info__handler.cc | 4 +- ...content_browser_gpu_gpu__data__manager__impl.cc | 4 +- ...-content_browser_gpu_gpu__data__manager__impl.h | 4 +- ...rowser_gpu_gpu__data__manager__impl__private.cc | 4 +- ...browser_gpu_gpu__data__manager__impl__private.h | 6 +- ...patch-content_browser_gpu_gpu__process__host.cc | 6 +- ...wser_media_frameless__media__interface__proxy.h | 4 +- ...ent_browser_network__service__instance__impl.cc | 8 +- ...ia_service__video__capture__device__launcher.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 | 14 ++-- ...patch-content_browser_utility__process__host.cc | 18 ++++- .../patch-content_browser_utility__process__host.h | 10 +-- ...wser_web__contents_web__contents__view__aura.cc | 4 +- www/chromium/files/patch-content_child_BUILD.gn | 4 +- .../files/patch-content_common_features.cc | 6 +- www/chromium/files/patch-content_common_features.h | 8 +- .../patch-content_common_font__list__unittest.cc | 4 +- www/chromium/files/patch-content_gpu_gpu__main.cc | 24 +++--- ...tent_public_browser_content__browser__client.cc | 4 +- ...ontent_public_browser_service__process__host.cc | 4 +- ...atch-content_public_common_content__features.cc | 36 ++++----- ...atch-content_public_common_content__switches.cc | 6 +- ...patch-content_public_common_content__switches.h | 6 +- ...u__video__accelerator__factories__impl.cc (new) | 11 +++ .../patch-content_renderer_render__thread__impl.cc | 10 +-- www/chromium/files/patch-content_shell_BUILD.gn | 4 +- ...atch-content_shell_app_shell__main__delegate.cc | 4 +- ...l_renderer_shell__content__renderer__client.cc} | 12 +-- .../files/patch-content_utility_services.cc | 12 +-- .../files/patch-content_utility_utility__main.cc | 22 +++--- .../patch-content_utility_utility__thread__impl.cc | 6 +- .../files/patch-content_zygote_zygote__linux.cc | 4 +- ...mand__buffer_service_dawn__context__provider.cc | 4 +- ..._command__buffer_service_gles2__cmd__decoder.cc | 4 +- ...service_shared__image_shared__image__manager.cc | 4 +- ...ommand__buffer_service_webgpu__decoder__impl.cc | 6 +- .../files/patch-gpu_ipc_service_gpu__init.cc | 18 ++--- .../files/patch-gpu_vulkan_vulkan__util.cc | 4 +- .../files/patch-ipc_ipc__message__utils.cc | 4 +- .../patch-media_audio_pulse_pulse__util.cc (new) | 14 ++++ ...atch-media_audio_sndio_audio__manager__sndio.cc | 87 ++++++++++++++++++---- .../files/patch-media_base_media__switches.cc | 42 ++++++----- .../files/patch-media_base_media__switches.h | 21 ++++-- .../files/patch-media_base_video__frame.cc | 14 ++-- www/chromium/files/patch-media_base_video__frame.h | 16 ++-- ...capture_video_video__capture__device__client.cc | 4 +- ...=> patch-media_ffmpeg_scripts_build__ffmpeg.py} | 31 +++++--- ...patch-media_ffmpeg_scripts_robo__lib_config.py} | 15 ++-- ...u_chromeos_libyuv__image__processor__backend.cc | 6 +- ...pu_chromeos_mailbox__video__frame__converter.cc | 4 +- ...a_gpu_chromeos_platform__video__frame__utils.cc | 4 +- ...-media_gpu_chromeos_video__decoder__pipeline.cc | 14 ++-- .../patch-media_gpu_vaapi_vaapi__video__decoder.cc | 4 +- .../files/patch-media_gpu_vaapi_vaapi__wrapper.cc | 4 +- www/chromium/files/patch-media_media__options.gni | 13 +--- ...ideo_gpu__memory__buffer__video__frame__pool.cc | 8 +- www/chromium/files/patch-media_webrtc_helpers.cc | 6 +- www/chromium/files/patch-mojo_core_channel.cc | 4 +- .../patch-mojo_public_tools_bindings_mojom.gni | 4 +- www/chromium/files/patch-net_BUILD.gn | 14 ++-- www/chromium/files/patch-net_base_features.cc | 8 +- www/chromium/files/patch-net_dns_BUILD.gn | 18 +---- www/chromium/files/patch-net_dns_public_BUILD.gn | 4 +- ...xy__resolution_proxy__config__service__linux.cc | 4 +- ...verify__tool_cert__verify__comparision__tool.cc | 10 +-- ..._tools_cert__verify__tool_cert__verify__tool.cc | 8 +- ...patch-net_url__request_url__request__context.cc | 4 +- .../patch-net_url__request_url__request__context.h | 4 +- ..._url__request_url__request__context__builder.cc | 4 +- .../files/patch-remoting_host_client__session.cc | 4 +- ...ch-remoting_host_me2me__desktop__environment.cc | 8 +- .../patch-remoting_host_setup_start__host__main.cc | 8 +- ...atch-remoting_protocol_webrtc__video__stream.cc | 6 +- ...tch-sandbox_linux_services_libc__interceptor.cc | 4 +- .../files/patch-sandbox_policy_features.cc | 4 +- www/chromium/files/patch-sandbox_policy_features.h | 4 +- ...vice_geolocation_location__arbitrator.cc (gone) | 11 --- .../files/patch-services_device_usb_BUILD.gn | 8 +- www/chromium/files/patch-services_network_BUILD.gn | 4 +- .../patch-services_network_network__context.cc | 6 +- .../patch-services_network_network__context.h | 4 +- .../patch-services_network_network__service.cc | 8 +- .../patch-services_network_network__service.h | 12 +-- .../patch-services_network_public_cpp_BUILD.gn | 4 +- .../patch-services_network_public_mojom_BUILD.gn | 4 +- ...__model_ml_on__device__model__executor.cc (new) | 11 +++ ..._on__device__model_on__device__model__service.h | 6 +- ...ervices_on__device__model_pre__sandbox__init.cc | 4 +- .../files/patch-services_service__manager_BUILD.gn | 4 +- ...video__capture_video__capture__service__impl.cc | 10 +-- ...blink_renderer_controller_blink__initializer.cc | 8 +- ...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 | 4 +- ..._renderer_core_scroll_scrollbar__theme__aura.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 +- ...er_platform_graphics_video__frame__submitter.cc | 4 +- ...derer_platform_runtime__enabled__features.json5 | 14 ++-- ...arty_blink_renderer_platform_wtf_stack__util.cc | 8 +- ...ngssl_src_util_generate__build__files.py (gone) | 34 --------- ..._party_dawn_include_dawn_native_VulkanBackend.h | 4 +- .../files/patch-third__party_ffmpeg_configure | 4 +- ...-third__party_libusb_src_libusb_libusb.h (gone) | 11 --- ...x_source_libvpx_vpx__ports_aarch64__cpudetect.c | 4 +- ...-third__party_pdfium_fxjs_fx__date__helpers.cpp | 6 +- ...rd__party_perfetto_include_perfetto_base_time.h | 8 +- ...tobuf_src_google_protobuf_arenastring.cc (gone) | 12 --- ...uf_src_google_protobuf_stubs_platform__macros.h | 6 +- ...-third__party_sqlite_src_amalgamation_sqlite3.c | 6 +- .../files/patch-third__party_unrar_src_crypt.cpp | 4 +- ...__capture_linux_x11_x__server__pixel__buffer.cc | 20 ++--- ...ols_json__schema__compiler_feature__compiler.py | 4 +- .../patch-tools_protoc__wrapper_protoc__wrapper.py | 4 +- .../patch-ui_base_ime_fake__text__input__client.cc | 4 +- ...-ui_base_ime_init_input__method__initializer.cc | 6 +- .../patch-ui_base_resource_resource__bundle.cc | 4 +- .../files/patch-ui_base_ui__base__features.cc | 6 +- .../files/patch-ui_base_x_x11__cursor__loader.cc | 10 +-- www/chromium/files/patch-ui_color_color__id.h | 10 +-- .../files/patch-ui_compositor_compositor.cc | 4 +- .../files/patch-ui_compositor_compositor.h | 4 +- www/chromium/files/patch-ui_gfx_BUILD.gn | 4 +- .../files/patch-ui_gfx_codec_png__codec.cc (gone) | 11 --- .../files/patch-ui_gfx_gpu__memory__buffer.cc | 4 +- .../files/patch-ui_gfx_linux_gbm__wrapper.cc | 4 +- www/chromium/files/patch-ui_gl_BUILD.gn | 8 +- www/chromium/files/patch-ui_gl_gl__switches.cc | 6 +- .../patch-ui_native__theme_native__theme__base.cc | 4 +- ...ne_platform_wayland_host_wayland__connection.cc | 4 +- ...e_platform_wayland_host_wayland__popup.cc (new) | 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 | 8 +- ...ne_platform_wayland_ozone__platform__wayland.cc | 4 +- .../patch-ui_ozone_platform_x11_x11__window.cc | 4 +- ...rm__window_platform__window__init__properties.h | 4 +- .../files/patch-ui_views_focus_focus__manager.cc | 6 +- ...__aura_desktop__window__tree__host__platform.cc | 17 +---- www/chromium/files/patch-ui_views_widget_widget.cc | 4 +- .../files/patch-ui_views_widget_widget.h (gone) | 11 --- .../patch-ui_views_window_dialog__delegate.cc | 4 +- www/chromium/files/patch-v8_BUILD.gn | 43 ++++++----- www/chromium/files/patch-v8_src_api_api.cc | 4 +- .../patch-v8_src_base_platform_platform-posix.cc | 6 +- .../files/patch-v8_src_execution_isolate.cc | 6 +- www/chromium/files/patch-v8_src_flags_flags.cc | 4 +- ...wasm_baseline_ia32_liftoff-assembler-ia32-inl.h | 30 ++++---- www/chromium/pkg-plist | 3 + 350 files changed, 1735 insertions(+), 1692 deletions(-)
This is missing a dependency on pulseaudio it seems, see bug #279242. I hit the same build failure, probably because I have disabled pulseaudio globally. I hope this can be solved without pulseaudio being a runtime dependency, either as a build only dependency or we'd need an option to disable it. I really don't want pulse to mess with my sound setup.