Skip to content

fix(juce): offer the activation link when the browser can't be opened - #44

Merged
TobbenTM merged 1 commit into
mainfrom
kingston-v1/no-default-browser-activation
Oct 17, 2026
Merged

TobbenTM merged 1 commit into
mainfrom
kingston-v1/no-default-browser-activation

Conversation

@TobbenTM

Copy link
Copy Markdown
Member

On Windows, juce::URL::launchInDefaultBrowser() is a bare ShellExecute, which fails when no default browser is set, yet the "Waiting for activation" screen still said it had opened the browser and offered only Cancel. The screen now always offers "Browser didn't open? Copy the link", and when the launch fails it says so and makes Copy activation link its main action, so the activation can be finished in any browser on this computer or another (both briefly confirm "Link copied", and the layout still fits at the minimum panel size). Custom UIs get ActivationController::browserOpenFailed(), and setPreviewBrowserLink() lets previews and snapshot tests show the link. Snapshot 02-activating changes, 02b-activating-no-browser is new, and 16-theme-ember-activating now renders the no-browser state. Tested with new controller tests (the JUCE suite passes on 8.0.4 and 6.1.3), snapshot renders at the default and minimum sizes, and a manual click of both controls to confirm the link reaches the clipboard; the Windows path itself is left to CI.

On Windows, juce::URL::launchInDefaultBrowser() is a bare ShellExecute,
which fails when no default browser is set. The controller noticed and
told onDiagnostic, but the "Waiting for activation" screen still said it
had opened the browser and offered only Cancel, so the user was stuck.

- The screen now always offers "Browser didn't open? Copy the link" once
  the link has arrived, since a launch can also report success while
  nothing visible happens.
- When the launch fails, the screen says so and makes "Copy activation
  link" its main action, so the activation can be finished in any
  browser, on this computer or another. Both show "Link copied" briefly.
- At the minimum panel size the spinner gives way so the copy and the
  button still fit.
- New ActivationController::browserOpenFailed() for custom UIs, and
  setPreviewBrowserLink() for previews and snapshot tests.
- Controller tests, a new 02b snapshot, and docs.
@argos-ci

argos-ci Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
default (Inspect) 👍 Approved by Tobias Lønnerød Madsen 2 changed, 1 added Oct 17, 2026, 12:36 PM

@TobbenTM
TobbenTM merged commit e5b2dc9 into main Oct 17, 2026
17 checks passed
github-actions Bot pushed a commit that referenced this pull request Oct 17, 2026
## [4.10.1](v4.10.0...v4.10.1) (2026-10-17)

### Bug Fixes

* **juce:** offer the activation link when the browser can't be opened ([#44](#44)) ([e5b2dc9](e5b2dc9))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 4.10.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant