electron/shell/browser
Athul Iddya 905e41bbdd
fix: use StartUpdating method for PipeWire capturer (#38833)
* fix: use StartUpdating method for PipeWire capturer

Fixed a crash related to PipeWire capturer by adapting to Chromium's
interface changes. Chromium expects a call to
`NativeDesktopMediaList::StartUpdating` with an implementation of
`DesktopMediaListObserver` for delegated capturers like PipeWire. This
interface allows listening to user permission events and listing
sources only after the user has made a choice on the permission dialog.

The interface has been implemented by an inner class to allow listening
to screen and window capture permissions concurrently using two
instances of the class. A patch that was resetting the capturer on the
first refresh has been changed to exclude PipeWire. PipeWire capturer
object will follow the lifecycle of `NativeDesktopMediaList`, as is the
case in Chromium.

Fixes #37463

* fix: wait for thumbnails from PipeWire when necessary

The PipeWire stream starts after the dialog is dismissed. If the sources
are listed immediately afterwards, the thumbnail may not have been
generated by that time. Explicitly wait for both thumbnail generation
and a selection on the source dialog before listing sources.
2023-07-11 10:21:11 +02:00
..
api fix: use StartUpdating method for PipeWire capturer (#38833) 2023-07-11 10:21:11 +02:00
badging chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
bluetooth chore: eliminate a few uses of base::AdaptCallbackForRepeating() (#38293) 2023-05-18 17:01:44 -04:00
extensions chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
hid chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
lib chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
linux chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
mac chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
media chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
net chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
notifications fix: Notification 'Show' button visible when no actions exist (#38997) 2023-07-06 15:50:08 -04:00
osr chore: bump chromium to 116.0.5829.0 (main) (#38726) 2023-06-13 14:45:48 -04:00
plugins chore: bump chromium to 98.0.4706.0 (main) (#31555) 2021-11-24 09:45:59 +01:00
printing chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
resources chore: strip trailing whitespace (#35969) 2023-02-01 12:59:16 +01:00
serial chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
ui fix: remove types from GTK CSS selectors (#39003) 2023-07-10 22:52:12 +02:00
usb chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
webauthn fix: WebAuthn Discoverable Credential (Resident Credential) (#35374) 2022-09-20 15:47:42 -07:00
win chore: used nested namespaces (#34737) 2022-06-29 12:55:47 -07:00
auto_updater.cc refactor: change defined(MAS_BUILD) to IS_MAS_BUILD() (#36332) 2022-11-14 12:46:52 -08:00
auto_updater.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
auto_updater_mac.mm chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
browser.cc fix: set supported scale factors on startup (#38836) 2023-06-20 12:24:03 -04:00
browser.h fix: set supported scale factors on startup (#38836) 2023-06-20 12:24:03 -04:00
browser_linux.cc chore: bump chromium to 113.0.5668.0 (main) (#37646) 2023-03-22 20:09:13 -04:00
browser_mac.mm chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
browser_observer.h feat: add did-resign-active event on app (#37933) 2023-04-18 16:53:39 +02:00
browser_process_impl.cc chore: bump chromium to 116.0.5833.0 (main) (#38809) 2023-06-15 16:37:01 -04:00
browser_process_impl.h chore: bump chromium to 116.0.5833.0 (main) (#38809) 2023-06-15 16:37:01 -04:00
browser_win.cc fix: Showing the about panel is async on all platforms (#37440) 2023-03-06 09:46:35 -05:00
certificate_manager_model.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
certificate_manager_model.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
child_web_contents_tracker.cc chore: bump chromium to 99.0.4767.0 (main) (#31986) 2022-01-10 17:31:39 -05:00
child_web_contents_tracker.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
cookie_change_notifier.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
cookie_change_notifier.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
draggable_region_provider.h refactor: move draggable regions to WebContents (#36230) 2022-11-07 10:15:57 -08:00
electron_api_ipc_handler_impl.cc refactor: use content::GlobalRenderFrameHostId (#38843) 2023-06-20 15:32:31 +02:00
electron_api_ipc_handler_impl.h refactor: use content::GlobalRenderFrameHostId (#38843) 2023-06-20 15:32:31 +02:00
electron_autofill_driver.cc fix: account for BrowserView bounds in setting autofill popup bounds (#38489) 2023-06-06 10:21:42 +02:00
electron_autofill_driver.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
electron_autofill_driver_factory.cc chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
electron_autofill_driver_factory.h chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
electron_browser_client.cc chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
electron_browser_client.h chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
electron_browser_context.cc chore: bump chromium to 116.0.5817.0 (main) (#38465) 2023-06-09 16:08:36 -07:00
electron_browser_context.h chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
electron_browser_main_parts.cc chore: bump chromium to 117.0.5852.0 (main) (#38891) 2023-07-01 16:22:55 -04:00
electron_browser_main_parts.h chore: bump chromium to 113.0.5653.0 (main) (#37587) 2023-03-16 19:03:53 +09:00
electron_browser_main_parts_linux.cc chore: bump chromium to 110.0.5415.0 (main) (#36186) 2022-11-17 14:59:23 -05:00
electron_browser_main_parts_mac.mm chore: bump chromium to 116.0.5817.0 (main) (#38465) 2023-06-09 16:08:36 -07:00
electron_browser_main_parts_posix.cc chore: bump chromium to 103.0.5046.0 (main) (#33906) 2022-05-17 12:48:40 -04:00
electron_download_manager_delegate.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
electron_download_manager_delegate.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
electron_gpu_client.cc chore: bump chromium to 100.0.4857.0 (main) (#32419) 2022-02-09 18:58:52 -08:00
electron_gpu_client.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
electron_javascript_dialog_manager.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
electron_javascript_dialog_manager.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
electron_navigation_throttle.cc feat: add will-frame-navigate event (#34418) 2023-03-28 10:55:41 -04:00
electron_navigation_throttle.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
electron_pdf_web_contents_helper_client.cc chore: bump chromium to 108.0.5329.0 (main) (#35628) 2022-10-03 13:21:00 -07:00
electron_pdf_web_contents_helper_client.h chore: bump chromium to 108.0.5329.0 (main) (#35628) 2022-10-03 13:21:00 -07:00
electron_permission_manager.cc refactor: use content::GlobalRenderFrameHostId (#38843) 2023-06-20 15:32:31 +02:00
electron_permission_manager.h feat: add USB protected classes handler (#38263) 2023-05-30 12:35:25 -04:00
electron_speech_recognition_manager_delegate.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
electron_speech_recognition_manager_delegate.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
electron_web_contents_utility_handler_impl.cc refactor: use content::GlobalRenderFrameHostId (#38843) 2023-06-20 15:32:31 +02:00
electron_web_contents_utility_handler_impl.h refactor: use content::GlobalRenderFrameHostId (#38843) 2023-06-20 15:32:31 +02:00
electron_web_ui_controller_factory.cc chore: clean up forward declarations (#29904) 2021-07-02 09:51:37 +09:00
electron_web_ui_controller_factory.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
event_emitter_mixin.h refactor: simplify events (#37099) 2023-02-13 13:39:18 -08:00
extended_web_contents_observer.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
fake_location_provider.cc chore: bump chromium to 116.0.5845.0 (main) (#38827) 2023-06-22 10:51:15 +02:00
fake_location_provider.h chore: bump chromium to 116.0.5845.0 (main) (#38827) 2023-06-22 10:51:15 +02:00
feature_list.cc build: remove enable_picture_in_picture build flag (#38620) 2023-06-07 23:56:31 -07:00
feature_list.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
file_select_helper.cc chore: stop using a RenderWidgetHost observer in FileSelectHelper (#38168) 2023-05-04 21:43:29 +02:00
file_select_helper.h chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
file_select_helper_mac.mm chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
font_defaults.cc chore: fix clang-tidy warnings (#38079) 2023-04-26 10:09:54 -04:00
font_defaults.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
javascript_environment.cc fix: avoid using v8 on Isolate termination (#35766) 2023-02-09 09:48:49 +01:00
javascript_environment.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
login_handler.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
login_handler.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
microtasks_runner.cc chore: bump chromium to 107.0.5274.0 (main) (#35375) 2022-09-07 09:46:37 +02:00
microtasks_runner.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
native_browser_view.cc chore: trim unused STL includes (#29414) 2021-06-01 10:34:44 +09:00
native_browser_view.h chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
native_browser_view_mac.h chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
native_browser_view_mac.mm revert: compensate for title bar height when setting bounds on BrowserView (#38981) 2023-07-06 09:50:08 +02:00
native_browser_view_views.cc chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
native_browser_view_views.h chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
native_window.cc feat: add BrowserWindow.showAllTabs() for macOS (#38965) 2023-07-10 10:43:37 +02:00
native_window.h feat: add BrowserWindow.showAllTabs() for macOS (#38965) 2023-07-10 10:43:37 +02:00
native_window_features.cc fix: Add support for Wayland window decorations (#29618) 2022-01-26 13:59:09 -08:00
native_window_features.h fix: Add support for Wayland window decorations (#29618) 2022-01-26 13:59:09 -08:00
native_window_mac.h feat: add BrowserWindow.showAllTabs() for macOS (#38965) 2023-07-10 10:43:37 +02:00
native_window_mac.mm feat: add BrowserWindow.showAllTabs() for macOS (#38965) 2023-07-10 10:43:37 +02:00
native_window_observer.h feat: replace scroll-touch* with generic input-event (#35531) 2022-09-27 12:47:46 -07:00
native_window_views.cc fix: use Chromium's way to compute min/max sizes (#38974) 2023-07-05 11:02:05 -04:00
native_window_views.h fix: use Chromium's way to compute min/max sizes (#38974) 2023-07-05 11:02:05 -04:00
native_window_views_win.cc fix: add restore event for minimized maximization (#35342) 2022-08-23 10:32:42 +09:00
network_hints_handler_impl.cc chore: bump chromium to 113.0.5636.0 (main) (#37130) 2023-03-10 10:07:42 -06:00
network_hints_handler_impl.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
protocol_registry.cc chore: bump chromium to 100.0.4857.0 (main) (#32419) 2022-02-09 18:58:52 -08:00
protocol_registry.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
relauncher.cc chore: use emplace when possible (#37877) 2023-04-11 15:21:03 +09:00
relauncher.h chore: bump chromium to 100.0.4857.0 (main) (#32419) 2022-02-09 18:58:52 -08:00
relauncher_linux.cc chore: used nested namespaces (#34737) 2022-06-29 12:55:47 -07:00
relauncher_mac.cc chore: use emplace when possible (#37877) 2023-04-11 15:21:03 +09:00
relauncher_win.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
session_preferences.cc refactor: add SessionPreferences::CreateForBrowserContext() (#38656) 2023-06-09 11:20:43 -05:00
session_preferences.h refactor: add SessionPreferences::CreateForBrowserContext() (#38656) 2023-06-09 11:20:43 -05:00
special_storage_policy.cc chore: bump chromium to 111.0.5544.3 (main) (#36820) 2023-02-03 12:43:42 +01:00
special_storage_policy.h chore: bump chromium to 106.0.5216.0 (main) (#34993) 2022-08-17 11:35:53 -07:00
web_contents_permission_helper.cc chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
web_contents_permission_helper.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
web_contents_preferences.cc refactor: more constexpr lookup tables (#38886) 2023-06-22 14:33:44 +02:00
web_contents_preferences.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
web_contents_zoom_controller.cc chore: bump chromium to 110.0.5415.0 (main) (#36186) 2022-11-17 14:59:23 -05:00
web_contents_zoom_controller.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
web_view_guest_delegate.cc chore: bump chromium to 115.0.5786.0 (main) (#38301) 2023-05-23 21:58:58 +02:00
web_view_guest_delegate.h chore: bump chromium to 115.0.5786.0 (main) (#38301) 2023-05-23 21:58:58 +02:00
web_view_manager.cc chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
web_view_manager.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00
window_list.cc fix: DCHECK when calling app.exit() (#33035) 2022-02-23 16:27:54 +01:00
window_list.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
window_list_observer.h chore: add ELECTRON_ prefix to C++ include guards (#31925) 2021-11-22 16:34:31 +09:00
zoom_level_delegate.cc chore: remove unused std includes (#38767) 2023-06-14 11:07:18 -07:00
zoom_level_delegate.h chore: enable check raw ptr fields (#38167) 2023-05-11 16:07:39 -04:00