Repository navigation
Fix macOS browser sources when obs64 runs outside an .app - #1807
Merged
Merged
Conversation
Without an .app ancestor, obs64 and its CEF helpers resolve different outer bundles, so helpers fail Mach-port rendezvous and exit; browser sources never load. Passing --main-bundle-path makes them agree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Test setup or teardown failures can leave the HTTP fixture listening because cleanup is not protected.
1 open finding
What changed in this PR
Fixes macOS browser-source startup when obs64 runs outside an .app, while preserving bundled behavior.
Changes:
- Sets CEF’s main bundle path to the helper app for unbundled execution.
- Adds local-server tests for browser-source loading, script execution, and refresh.
| File | Description |
|---|---|
tests/osn-tests/src/test_browser_source_load.ts |
Adds browser loading and refresh tests with diagnostics. |
obs-studio-server/source/main.cpp |
Sets the CEF bundle argument for unbundled macOS execution. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Setup failure leaves obs undefined and any teardown error previously skipped server.close(), leaking the listener. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sandboxcoder
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Problem: on macOS, when obs64 runs with no
.appancestor (Desktop e2e and dev runs fromnode_modules), browser sources are created but never load. CEF helpers start and exit immediately: obs64 and the helpers resolve different outer bundles, so their Mach-port rendezvous names don't match.Change: in that layout only, obs64 passes
--main-bundle-path=<osn>/Frameworks/obs64 Helper.appto CEF viaobs_set_cmdline_args. Packaged Desktop always has an.appancestor, so it's unaffected. Adds a browser-source load/refresh test against a local server.Evidence (#1805, macOS arm64 + x86_64): unbundled without the fix → 0/2; with the fix → 2/2, helpers alive. Windows unchanged.
🤖 Generated with Claude Code