electron/atom/browser
Samuel Attard 77a4946069
refactor: rewire the desktop capturer API to remove race conditions (#18029)
We now create a new instance of atom::api::DesktopCapturer for every
request instead of weirdly re-using the same instance and queuing
requests.  This means there is now a 1:1 relationship between request
and DesktopCapturer so there isn't a race condition between the observer
for one request calling back before the observer of another.  This is an
issue ever since the backing APIs moved to worker threads.

This also does a few things to ensure memory management
* Only ever listen to one event per-request, after that we wipe the emit
function to ignore all future events
* Ensures we clean up the window_capturer_, screen_capturer_ and
captured_sources_ in native land once the request is over.

This _in theory_ fixes a flake we've been seeing on CI where we try to
resolve the promise for a request that no longerr exists.
2019-04-29 13:21:28 -07:00
..
api refactor: rewire the desktop capturer API to remove race conditions (#18029) 2019-04-29 13:21:28 -07:00
lib feat: Upgrade to Chromium 71.0.3578.98 (#15966) 2019-01-11 17:00:43 -08:00
loader build: enable gn check for //electron:electron_lib (#17100) 2019-03-05 10:38:55 +05:30
mac Revert "device/fido/mac: add more specific check for TouchID availability" 2019-04-02 14:43:04 -07:00
media Move MediaStream Mojo and public interfaces to Blink. 2019-02-14 23:59:21 +05:30
net feat: migrate protocol module to NetworkService (Part 2) (#17965) 2019-04-29 11:37:45 +09:00
notifications chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
osr chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
printing chore: node_includes header no longer needs to be at the end of the list (#17090) 2019-03-11 17:13:43 -07:00
resources Bump v6.0.0-nightly.20190404 2019-04-04 11:42:14 -07:00
ui chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
win refactor: eliminate brightray (#15240) 2018-10-24 12:49:10 +02:00
atom_blob_reader.cc feat: promisify session.getBlobData() (#17303) 2019-03-14 08:11:01 -07:00
atom_blob_reader.h feat: promisify session.getBlobData() (#17303) 2019-03-14 08:11:01 -07:00
atom_browser_client.cc fix: allow access to the profile dir in mac network sandbox (nws13n) (#17931) 2019-04-24 09:31:36 +09:00
atom_browser_client.h fix: allow access to the profile dir in mac network sandbox (nws13n) (#17931) 2019-04-24 09:31:36 +09:00
atom_browser_context.cc refactor: Enable network service (Part 1) (#17431) 2019-03-26 10:10:48 +09:00
atom_browser_context.h refactor: Enable network service (Part 1) (#17431) 2019-03-26 10:10:48 +09:00
atom_browser_main_parts.cc refactor: initialize feature list earlier (#17922) 2019-04-23 15:18:12 -07:00
atom_browser_main_parts.h refactor: initialize feature list earlier (#17922) 2019-04-23 15:18:12 -07:00
atom_browser_main_parts_mac.mm fix: crash when run from SMB network share (#17886) 2019-04-22 19:28:48 -07:00
atom_browser_main_parts_posix.cc feat: Upgrade to Chromium 71.0.3578.98 (#15966) 2019-01-11 17:00:43 -08:00
atom_download_manager_delegate.cc fix: incorrect default path setting for dl items (#17773) 2019-04-15 14:11:20 -04:00
atom_download_manager_delegate.h fix: use async save dialog for anchor download attribute (#16612) 2019-01-31 11:06:55 +09:00
atom_javascript_dialog_manager.cc fix: use file path as key for safeDialogs on filesystem (#17546) 2019-03-27 11:21:10 -07:00
atom_javascript_dialog_manager.h Give the JS dialog manager the alerting frame. 2018-06-19 11:49:42 +10:00
atom_navigation_throttle.cc refactor: remove WebContents::CreateFrom (#15241) 2018-10-19 17:52:07 +09:00
atom_navigation_throttle.h feat: add will-redirect (#13866) 2018-09-16 01:42:43 +10:00
atom_paths.h refactor: eliminate brightray (#15240) 2018-10-24 12:49:10 +02:00
atom_permission_manager.cc Change SubscribePermissionStatusChange to use a RFH to query permissions 2018-12-03 20:07:39 +05:30
atom_permission_manager.h Change SubscribePermissionStatusChange to use a RFH to query permissions 2018-12-03 20:07:39 +05:30
atom_quota_permission_context.cc Fix includes in AtomQuotaPermissionContext 2018-06-19 11:49:41 +10:00
atom_quota_permission_context.h Fix includes in AtomQuotaPermissionContext 2018-06-19 11:49:41 +10:00
atom_resource_dispatcher_host_delegate.cc Remove const interfaces from content::ResourceRequestInfo. 2019-03-08 15:06:16 -08:00
atom_resource_dispatcher_host_delegate.h Handle external protocols with the network service. 2018-09-11 20:24:03 +02:00
atom_speech_recognition_manager_delegate.cc Remove content::SpeechRecognitionResult 2018-10-09 14:38:00 -07:00
atom_speech_recognition_manager_delegate.h Remove content::SpeechRecognitionResult 2018-10-09 14:38:00 -07:00
atom_web_ui_controller_factory.cc refactor: move devtools from brightray to atom (#15234) 2018-10-19 15:50:30 +02:00
atom_web_ui_controller_factory.h Change CreateWebUIControllerForURL() to return a unique_ptr 2018-10-09 14:38:00 -07:00
auto_updater.cc also format missing .cc files 2018-04-18 20:48:45 -04:00
auto_updater.h clang-format atom files 2018-04-18 20:48:45 -04:00
auto_updater_mac.mm clang-format objc files (#12673) 2018-04-20 11:47:04 -07:00
browser.cc chore: make util::Promise a move-only type (#17071) 2019-02-21 12:32:44 +00:00
browser.h feat: add native emoji picker (#17359) 2019-03-14 13:39:52 -07:00
browser_linux.cc feat: add native emoji picker (#17359) 2019-03-14 13:39:52 -07:00
browser_mac.mm chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
browser_observer.h chore: make BrowserObserver a CheckedObserver 2018-12-03 20:07:38 +05:30
browser_process_impl.cc refactor: Enable network service (Part 1) (#17431) 2019-03-26 10:10:48 +09:00
browser_process_impl.h refactor: Enable network service (Part 1) (#17431) 2019-03-26 10:10:48 +09:00
browser_win.cc feat: add native emoji picker (#17359) 2019-03-14 13:39:52 -07:00
child_web_contents_tracker.cc content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
child_web_contents_tracker.h content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
common_web_contents_delegate.cc chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
common_web_contents_delegate.h fix: enable autofill popups on mac (#16308) 2019-02-11 09:38:58 -10:00
common_web_contents_delegate_mac.mm Revert "feat: upgrade to Chromium 72.0.3626.52 (#16334)" 2019-01-22 12:01:04 -08:00
common_web_contents_delegate_views.cc fix: enable autofill popups on mac (#16308) 2019-02-11 09:38:58 -10:00
cookie_change_notifier.cc refactor: create request context from network context (#14656) 2018-10-04 13:08:56 -05:00
cookie_change_notifier.h refactor: create request context from network context (#14656) 2018-10-04 13:08:56 -05:00
fake_location_provider.cc fix: opt into location services once device service has been started (#14253) 2018-08-23 08:51:46 -07:00
fake_location_provider.h Port //services/device/geolocation to network::SimpleURLLoader 2018-10-09 14:38:00 -07:00
feature_list.cc refactor: initialize feature list earlier (#17922) 2019-04-23 15:18:12 -07:00
feature_list.h refactor: initialize feature list earlier (#17922) 2019-04-23 15:18:12 -07:00
font_defaults.cc Use base::size rather than arraysize 2019-02-14 23:59:22 +05:30
font_defaults.h fix: match Chrome's font fallback behavior (#15486) 2018-11-08 10:51:51 -04:00
io_thread.cc chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
io_thread.h fix: initialize system network context from IOThread 2018-11-14 12:42:24 +05:30
javascript_environment.cc chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
javascript_environment.h fix: add microtask runner and fix promise test (#15071) 2018-10-16 02:26:47 +11:00
login_handler.cc chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
login_handler.h chore: bump chromium to 1e9f9a24aa12 (master) (#17880) 2019-04-20 10:20:37 -07:00
microtasks_runner.cc fix: add microtask runner and fix promise test (#15071) 2018-10-16 02:26:47 +11:00
microtasks_runner.h fix: add microtask runner and fix promise test (#15071) 2018-10-16 02:26:47 +11:00
native_browser_view.cc refactor: move devtools from brightray to atom (#15234) 2018-10-19 15:50:30 +02:00
native_browser_view.h feat: flexible autoresize for BrowserViews (#16184) 2019-01-31 11:07:19 +09:00
native_browser_view_mac.h refactor: move devtools from brightray to atom (#15234) 2018-10-19 15:50:30 +02:00
native_browser_view_mac.mm feat: flexible autoresize for BrowserViews (#16184) 2019-01-31 11:07:19 +09:00
native_browser_view_views.cc feat: flexible autoresize for BrowserViews (#16184) 2019-01-31 11:07:19 +09:00
native_browser_view_views.h feat: flexible autoresize for BrowserViews (#16184) 2019-01-31 11:07:19 +09:00
native_window.cc content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
native_window.h feat: allow windows to be excluded from the windows menu (#17404) 2019-03-27 08:10:23 -04:00
native_window_mac.h feat: allow windows to be excluded from the windows menu (#17404) 2019-03-27 08:10:23 -04:00
native_window_mac.mm fix: port OSR code to new viz compositor codepath (#17538) 2019-04-17 14:10:04 -07:00
native_window_observer.h feat: implement 'app-command' events for browser history navigation keys on Linux (#15441) 2018-12-05 09:35:59 -08:00
native_window_views.cc feat: allow windows to be excluded from the windows menu (#17404) 2019-03-27 08:10:23 -04:00
native_window_views.h feat: allow windows to be excluded from the windows menu (#17404) 2019-03-27 08:10:23 -04:00
native_window_views_win.cc fix: improve the way frameless windows are handled on Windows (#16596) 2019-01-31 11:19:47 +09:00
node_debugger.cc feat: upgrade to Node 12 (#17838) 2019-04-26 18:55:12 +09:00
node_debugger.h inspector: stop dragging platform pointer 2018-09-11 20:24:03 +02:00
pref_store_delegate.cc refactor: create request context from network context (#14656) 2018-10-04 13:08:56 -05:00
pref_store_delegate.h refactor: create request context from network context (#14656) 2018-10-04 13:08:56 -05:00
relauncher.cc PathService -> base::PathService 2018-10-04 00:12:54 +02:00
relauncher.h
relauncher_linux.cc fix relaunch on linux (#14975) 2018-10-04 18:41:37 -05:00
relauncher_mac.cc also format missing .cc files 2018-04-18 20:48:45 -04:00
relauncher_win.cc also format missing .cc files 2018-04-18 20:48:45 -04:00
render_process_preferences.cc refactor: replace base::Value::DeepCopy and CreateDeepCopy with Clone (#14420) 2018-09-02 17:38:35 -05:00
render_process_preferences.h Refactoring: use C++11 class member variable initialization 2018-05-22 00:18:38 +02:00
session_preferences.cc also format missing .cc files 2018-04-18 20:48:45 -04:00
session_preferences.h clang-format atom files 2018-04-18 20:48:45 -04:00
special_storage_policy.cc Handle deleting cookies with session-only policy in network service 2018-10-09 14:38:00 -07:00
special_storage_policy.h Handle deleting cookies with session-only policy in network service 2018-10-09 14:38:00 -07:00
unresponsive_suppressor.cc
unresponsive_suppressor.h
web_contents_permission_helper.cc content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
web_contents_permission_helper.h content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
web_contents_preferences.cc refactor: add missing constants for options (#17897) 2019-04-23 09:14:18 -07:00
web_contents_preferences.h content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
web_contents_zoom_controller.cc content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
web_contents_zoom_controller.h content: Fix WebContentsUserData for usage across components. 2019-02-14 23:59:21 +05:30
web_dialog_helper.cc IWYU: add missing headers 2019-03-08 15:04:32 -08:00
web_dialog_helper.h feat: Upgrade to Chromium 71.0.3578.98 (#15966) 2019-01-11 17:00:43 -08:00
web_view_guest_delegate.cc AttachToOuterWebContentsFrame => AttachInnerWebContents 2019-03-08 15:13:12 -08:00
web_view_guest_delegate.h fix: use OOPIF for webview tag (#13869) 2018-08-16 15:57:40 -07:00
web_view_manager.cc [chromium-style] auto variable type must not deduce to a raw pointer type 2018-04-19 11:10:52 -07:00
web_view_manager.h clang-format atom files 2018-04-18 20:48:45 -04:00
window_list.cc [chromium-style] auto variable type must not deduce to a raw pointer type 2018-04-19 11:10:52 -07:00
window_list.h Add IsEmpty helper and remove GetInstance public usage 2017-04-11 09:09:17 -07:00
window_list_observer.h chore: make BrowserObserver a CheckedObserver 2018-12-03 20:07:38 +05:30
zoom_level_delegate.cc refactor: move media/net from brightray to atom (#15288) 2018-10-19 14:51:43 -04:00
zoom_level_delegate.h refactor: move media/net from brightray to atom (#15288) 2018-10-19 14:51:43 -04:00