New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Implement electron.DesktopCapturer.SetSkipCursor #25103
Conversation
This reverts commit c141b1a.
This reverts commit 2789f32.
This reverts commit 2342aaf.
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
…lectron#23771) When application is activated thru macOS app switcher (cmd+tab) the App's activate event is note emitted. The reason is that `applicationShouldHandleReopen:hasVisibleWindows:` is sent only when app is activated via Dock. Using `applicationDidBecomeActive:` is handling all cases properly. Co-authored-by: Lukas Weber <luweber@microsoft.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
…tcher (electron#23771)" (electron#23819) This reverts commit 7709e60.
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Aleksei Kuzmin <alkuzmin@microsoft.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* refactor: use typeutils for nativeImage serialization (electron#23693) * fix: ensure nativeImage serialization main->renderer
…ectron#23876) (cherry picked from commit 4133c71)
The devtools profiler is not attached at the point we run out init scripts (or our apps preload scripts), we do not really want to change when we run these init scripts but for when a dev is doing performance work it makes sense to give them an option to make the devtools profiler actually work on both our init scripts and their preload script. This PR adds that logic behind an environment variable ELECTRON_PROFILE_INIT_SCRIPTS. Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
…d preloads (electron#23893) Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
…enabled (electron#23896) * fix: add patch to prevent crash during frame swap with ctx isolation enabled * Update .patches * chore: update patches Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: Samuel Attard <sattard@slack-corp.com>
* docs: move protocol-ns to protocol.md * chore: fix up tests and implement missing pieces required for tests Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
…lectron#23899) This regressed once again in Electron 8 due to Chromium changes. Test Plan: - Confirm that test case from electron#15898 (comment) now works Notes: Fix disabling color correct rendering with `--disable-color-correct-rendering` Co-authored-by: Biru Mohanathas <birunthan@mohanathas.com>
Useful to dynamically stop cursor capture in the stream. By default the cursor is captured. First argument is a deviceId so one can stop capturing the cursor for a specific streamed source. electron#23923 Notes: Can enable or disable capturing cursor while the stream is running
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please target master instead of 10-x-y. We do not add features directly to release branches but we will backport them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are fairly chonky patches, can you attempt to upstream them so we don't have to take that burden?
It would not be possible to upstream it in the current state. I think the only way would be to start implementing There are some technical details here but essentially skipping the cursor on a particular source would affect all calls to getUserMedia or getDisplayMedia on that particular source (i.e. a particular app window A) This is because the compositing of the cursor and the frame is done in the webrtc capturer. Some interfaces would need to be changed in chromium/media first to allow passing a frame and the cursor as a meta overlay. So that consumers of the capturer could decide or not to composite the frame with the cursor independently of each others for the same source. That said currently this PR allows to show and hide the cursor on the fly. And skipping the cursor on a source app window A does not affect capturing the cursor on another source B. It only affects if there are multiple captures of the same source app window A at the same time. Note that even if this PR touches lot of files but only a few lines per files and the changes are quite redundant. |
Great work! |
@@ -97,6 +97,13 @@ which can detected by [`systemPreferences.getMediaAccessStatus`]. | |||
[`navigator.mediaDevices.getUserMedia`]: https://developer.mozilla.org/en/docs/Web/API/MediaDevices/getUserMedia | |||
[`systemPreferences.getMediaAccessStatus`]: system-preferences.md#systempreferencesgetmediaaccessstatusmediatype-macos | |||
|
|||
### `desktopCapturer.SetSkipCursor(sourceId, skip)` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### `desktopCapturer.SetSkipCursor(sourceId, skip)` | |
### `desktopCapturer.setSkipCursor(sourceId, skip)` |
Looks like this PR somehow got messed up. I can't review it as is. |
@miniak do you have time to resolve the issues here? |
Hi, I will try to rebase my PR against master later this year |
@CapOM, are you able to rebase against master? Let me know if there's anything I can do to help. |
Any update on this? Let me know if I can help |
Yes please go ahead with the rebase if you have some time, I do not have the bandwidth for now. Thanks |
I tried rebasing on master and I had a rather difficult time with it and ended up cherry-picking the commit. |
Seems like something has happened to this PR again :( |
I'm closing this PR as it's unreviewable in its current state, please open a new PR if you're interested in continuing development! |
Do you want to make a new PR based on your change? |
@CapOM Created a new PR instead of rebase, which seemed to be the easier way. I think the patches needs to be updated as it failed to apply for me. |
Description of Change
Checklist
npm test
passesRelease Notes
Notes: Can disable or re-enable cursor capturer while the stream is running