Skip to content

fix(chrome-ext): open media actions in top-level popup - #613

Open
opaksbyron wants to merge 1 commit into
iblai:mainfrom
opaksbyron:fix/chrome-side-panel-media-popup
Open

opaksbyron wants to merge 1 commit into
iblai:mainfrom
opaksbyron:fix/chrome-side-panel-media-popup

Conversation

@opaksbyron

@opaksbyron opaksbyron commented Oct 28, 2026 •

Copy link
Copy Markdown

Summary

  • enable the existing agent popup-action protocol for voice calls and screen sharing
  • preserve the original mentor URL and bounded SSO session payload when the side-panel iframe is routed through /sso-login-complete
  • use chrome.windows.create with setSelfAsOpener so the media popup is not blocked after a cross-origin iframe message and can report status to the side panel
  • validate action and popup status messages against the expected mentor origin/source
  • add regression coverage and document the native Chrome side-panel touch-test boundary

Why

Chrome cannot reliably surface microphone or display-capture prompts from the storage-partitioned cross-origin mentor iframe inside an extension side panel. The mentor app already supports routing those actions to its host, but the extension did not enable that path. Opening the authenticated mentor route as a top-level popup lets Chrome present the normal media permission UI without adding an invalid manifest microphone permission.

Testing

  • pnpm test — 448 files passed, 12,181 tests passed, 1 skipped
  • pnpm build
  • pnpm typecheck
  • pnpm lint:check
  • pnpm vitest run components/chat/__tests__/index.test.tsx -t "iframe and chat popup actions|welcome screen popup actions"
  • JavaScript syntax checks for the extension scripts and vendored bundle
  • changed-file coverage gate
  • web and Tauri journey-regression gates

The repository local pre-push review command could not run because the external claude CLI is not installed in this environment; all project-owned executable checks above passed.

Manual verification

The final microphone/display chooser touch test requires loading the unpacked MV3 extension in Chrome native side-panel UI. This environment-specific checkpoint is recorded as not reproducible in the shared Playwright journey registry; URL/configuration behavior is regression-tested under Vitest.

Fixes #431

@opaksbyron
opaksbyron requested a review from mamigot as a code owner October 28, 2026 09:47

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chrome side-panel extension: microphone/screenshare blocked in side panel

1 participant