electron/shell/browser/api
Samuel Attard 49aba471dc
feat: add support for associating a Menu with a WebFrameMain (#45138)
* feat: add support for associating a Menu with a WebFrameMain

This allows certain OS level features to activate such as Writing Tools, Autofill.. and Services.

There appears to be a bug in macOS where the responder chain isn't traversed if the menu is not popped up using an event, as such we spoof a fake mouse event at the write coordinates in the right window and use that to open the menu.

* build: fix build on non-mac

* build: oops missed a header

* fix: safely handle optional T* by checking nullptr too

* build: fix gn check and build errors

* docs: suggested changes

* feat: default `frame` to `window.webContents.mainFrame` when possible

* fix: avoid deref nullptr view

* Revert "feat: default `frame` to `window.webContents.mainFrame` when possible"

This reverts commit 2e888368199317d67f6ad931a7e9eff0295c4b1b.

* fix: lint

* Remove redundant scoped objects

This code, including the comments, matches almost exactly the behavior of this argument to the function.

* Add ScopedPumpMessagesInPrivateModes patch

* More null pointer safety

---------

Co-authored-by: clavin <clavin@electronjs.org>
2025-03-28 11:50:07 -07:00
..
views
electron_api_app.cc fix: NODE_OPTIONS parsing for child processes on macOS (#46209) 2025-03-25 13:01:37 +09:00
electron_api_app.h
electron_api_app_mac.mm
electron_api_app_mas.mm
electron_api_auto_updater.cc
electron_api_auto_updater.h
electron_api_base_window.cc feat: add BrowserWindow.isSnapped() (#46079) 2025-03-24 12:09:14 +01:00
electron_api_base_window.h feat: add BrowserWindow.isSnapped() (#46079) 2025-03-24 12:09:14 +01:00
electron_api_browser_window.cc
electron_api_browser_window.h
electron_api_content_tracing.cc
electron_api_cookies.cc
electron_api_cookies.h chore: remove unused isolate argument from Cookies constructor (#44907) 2024-12-02 11:34:21 -05:00
electron_api_crash_reporter.cc
electron_api_crash_reporter.h
electron_api_data_pipe_holder.cc
electron_api_data_pipe_holder.h
electron_api_debugger.cc
electron_api_debugger.h
electron_api_desktop_capturer.cc perf: don't wait for thumbnails if they were not requested on macOS (#46138) 2025-03-25 12:20:38 +01:00
electron_api_desktop_capturer.h
electron_api_desktop_capturer_mac.mm
electron_api_dialog.cc
electron_api_download_item.cc
electron_api_download_item.h
electron_api_event_emitter.cc
electron_api_event_emitter.h
electron_api_extensions.cc
electron_api_extensions.h
electron_api_global_shortcut.cc perf: avoid redundant map lookups in GlobalShortcut (#46229) 2025-03-25 09:46:03 -05:00
electron_api_global_shortcut.h
electron_api_in_app_purchase.cc
electron_api_in_app_purchase.h
electron_api_menu.cc feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_menu.h feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_menu_mac.h feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_menu_mac.mm feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_menu_views.cc feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_menu_views.h feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_native_theme.cc
electron_api_native_theme.h
electron_api_native_theme_mac.mm
electron_api_net_log.cc
electron_api_net_log.h
electron_api_notification.cc
electron_api_notification.h
electron_api_power_monitor.cc
electron_api_power_monitor.h
electron_api_power_monitor_mac.mm
electron_api_power_monitor_win.cc
electron_api_power_save_blocker.cc
electron_api_power_save_blocker.h
electron_api_printing.cc
electron_api_protocol.cc
electron_api_protocol.h
electron_api_push_notifications.cc
electron_api_push_notifications.h
electron_api_push_notifications_mac.mm
electron_api_safe_storage.cc
electron_api_screen.cc
electron_api_screen.h
electron_api_service_worker_context.cc
electron_api_service_worker_context.h
electron_api_service_worker_main.cc perf: use absl::flat_hash_map instead of std::unordered_map (#46202) 2025-03-24 10:09:14 +01:00
electron_api_service_worker_main.h refactor: remove unused field ServiceWorkerMain::weak_factory_ (#46171) 2025-03-23 10:14:45 +01:00
electron_api_session.cc perf: avoid redundant map lookups in GetStorageMask() (#46315) 2025-03-28 00:25:25 -05:00
electron_api_session.h
electron_api_system_preferences.cc
electron_api_system_preferences.h
electron_api_system_preferences_mac.mm
electron_api_system_preferences_win.cc
electron_api_tray.cc
electron_api_tray.h
electron_api_utility_process.cc
electron_api_utility_process.h
electron_api_view.cc refactor: use = default to define trivial destructors (#46165) 2025-03-21 16:15:34 -05:00
electron_api_view.h
electron_api_web_contents.cc perf: avoid std::map temporaries in WebContents::DevToolsRequestFileSystems() (#46268) 2025-03-26 16:26:56 -05:00
electron_api_web_contents.h fix: build failure when printing is disabled (#46283) 2025-03-26 10:04:39 +01:00
electron_api_web_contents_impl.cc
electron_api_web_contents_mac.mm
electron_api_web_contents_view.cc
electron_api_web_contents_view.h
electron_api_web_frame_main.cc perf: avoid double map lookup in WebFrameMain::UpdateRenderFrameHost() (#46293) 2025-03-27 14:32:01 -05:00
electron_api_web_frame_main.h feat: add support for associating a Menu with a WebFrameMain (#45138) 2025-03-28 11:50:07 -07:00
electron_api_web_request.cc
electron_api_web_request.h
electron_api_web_view_manager.cc
frame_subscriber.cc
frame_subscriber.h
gpu_info_enumerator.cc
gpu_info_enumerator.h
gpuinfo_manager.cc
gpuinfo_manager.h
ipc_dispatcher.h
message_port.cc
message_port.h
process_metric.cc
process_metric.h
save_page_handler.cc
save_page_handler.h
ui_event.cc
ui_event.h