feat(lotus): in-frame screenshare button where the host can't delegate (cinny #43)
Firefox, Safari and WebKitGTK have no Capability Delegation, so the host
can't start a share from its call bar: getDisplayMedia needs the click in
this frame. Until now the host clicked EC's hidden footer button through
the DOM, which only works while the frame is same-origin.
With lotusHostControls + lotusFrameScreenshare the fork now shows EC's own
screenshare button (floating bottom-right, footer still hidden), so the
click is native. controls_state reports frameScreenshare so the host hides
its own button. New toWidget io.lotus.set_frame_screenshare { visible }
lets the host hide it while the room's call policy forbids screensharing
(never while a share is live, so it can still be stopped).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
dfb72bd9a5
commit
0f93368a7e
+3
-3
@@ -83,9 +83,9 @@ export const useTheme = (): void => {
|
||||
// (The host used to inject `:root { color-scheme }` for this.)
|
||||
document.documentElement.style.colorScheme = theme;
|
||||
}
|
||||
// [cinny #43] The host draws its own call bar: hide EC's footer, but keep
|
||||
// it in the DOM (the host still clicks its screenshare button on engines
|
||||
// without Capability Delegation). Replaces the host's injected styles.
|
||||
// [cinny #43] The host draws its own call bar: hide EC's footer. Replaces
|
||||
// the host's injected styles. Where the host can't start a share for us,
|
||||
// LotusFrameScreenshare shows EC's screenshare button on its own.
|
||||
if (lotusFlag("lotusHostControls"))
|
||||
document.body.classList.add("lotus-host-controls");
|
||||
}, [previousTheme, requestedTheme]);
|
||||
|
||||
Reference in New Issue
Block a user