mirror of
https://github.com/home-assistant/frontend.git
synced 2026-05-24 17:19:17 +01:00
7dbd6ae5a27770fae44231ffc41268684eb7ff46
* Add-on iframe: delegate microphone + camera Permissions Policy The add-on ingress iframe in ``ha-panel-app.ts`` ships without an ``allow=`` attribute, so the Permissions Policy default of *deny* applies for ``microphone`` and ``camera`` on the cross-origin iframe. An add-on that wants to call ``getUserMedia`` — voice notes, dictation, video calls, photo capture — fails silently with ``NotAllowedError`` before the browser even surfaces the permission prompt. The failure is most visible on the Android Companion app, where there's no "open in a new tab" escape: the user presses the mic button and nothing happens, no toast, no logs. Delegate ``microphone``, ``camera``, and ``clipboard-write`` to the add-on iframe. Add-ons are first-party software the user explicitly installs, and Chrome's runtime permission prompt still gates the hardware access — the ``allow=`` attribute just lets the iframe *request* the prompt instead of being blocked at the policy layer. ``clipboard-write`` is bundled in because the next-most-frequent silent-fail in add-on land is ``navigator.clipboard.writeText`` for "copy link" / "copy code" affordances, blocked by the same mechanism. * Sandbox add-on ingress iframe without allow-same-origin Split IFRAME_SANDBOX into two constants: IFRAME_SANDBOX (without allow-same-origin) for add-on ingress iframes that need origin isolation, and IFRAME_SANDBOX_SAME_ORIGIN for external iframes that need same-origin access. This ensures add-on iframes can't inherit camera/microphone permissions already granted to the Home Assistant origin, and prevents same-origin iframes from removing their own sandbox. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Paulus Schoutsen <balloob@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…
…
…
Home Assistant Frontend
This is the repository for the official Home Assistant frontend.
Development
- Initial setup:
script/setup - Development: Instructions
- Production build:
script/build_frontend - Gallery:
cd gallery && script/develop_gallery
Frontend development
Classic environment
A complete guide can be found at the following link. It describes a short guide for the build of project.
License
Home Assistant is open-source and Apache 2 licensed. Feel free to browse the repository, learn and reuse parts in your own projects.
We use BrowserStack to test Home Assistant on a large variety of devices.
Description
Languages
TypeScript
98.8%
JavaScript
1.1%

