Skip to content

fix(permissions): add camera and microphone usage descriptions - #250

Merged
yonaries merged 1 commit into
the-ora:mainfrom
zorahrel:feat/media-usage-descriptions
Sep 17, 2026
Merged

yonaries merged 1 commit into
the-ora:mainfrom
zorahrel:feat/media-usage-descriptions

Conversation

@zorahrel

Copy link
Copy Markdown
Contributor

Problem

Camera and microphone never work on any site: the first getUserMedia() call hangs forever with no error and no system dialog.

The app already has everything else in place, entitlements:

com.apple.security.device.camera
com.apple.security.device.audio-input

and the WebKit delegate in BrowserPage.swift:

func webView(_:requestMediaCapturePermissionFor:initiatedByFrame:type:decisionHandler:)

But Info.plist declares neither NSCameraUsageDescription nor NSMicrophoneUsageDescription. Without those strings macOS cannot present the TCC consent prompt, so the request is never surfaced to the user and the promise never settles.

Change

Adds both keys (via project.yml so the generated project stays in sync). The wording is intentionally generic since the consumer is any website, not the app itself.

Testing

Built Release on macOS 26.2 and loaded a page calling getUserMedia({audio:true, video:true}). Before: no prompt, call hangs. After: the system prompt appears, and tccd logs AUTHREQ_PROMPTING for kTCCServiceMicrophone and kTCCServiceCamera followed by a Create event once granted. Capture then works.

The app declares com.apple.security.device.camera and
device.audio-input entitlements and forwards getUserMedia requests via
requestMediaCapturePermissionFor, but Info.plist has no
NSCameraUsageDescription or NSMicrophoneUsageDescription.

Without those keys macOS cannot present the TCC consent prompt: the
first getUserMedia call hangs with no error and no dialog, so camera
and microphone never work on any site.

Adding both strings lets the system prompt appear as expected.
@greptile-apps

greptile-apps Bot commented Sep 15, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the required privacy descriptions are consistently declared in both application metadata sources.

Summary

Adds the macOS privacy usage descriptions required for WebKit websites to request camera and microphone access.

  • Adds matching NSCameraUsageDescription and NSMicrophoneUsageDescription entries to the application plist.
  • Keeps the Xcodegen source configuration synchronized with the plist.
  • Preserves the existing sandbox entitlement and WebKit permission flow.

Reviews (1) · Last reviewed commit: "fix(permissions): add camera and microph..."

@yonaries
yonaries merged commit 4e6cfd1 into the-ora:main Sep 17, 2026
3 checks passed
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.

2 participants