FIX(client): Explain self-signed certificates in SSL verification dialog#7199
FIX(client): Explain self-signed certificates in SSL verification dialog#719964johnlee wants to merge 3 commits into
Conversation
When the certificate error list includes a self-signed or self-signed-in-chain error, append an explanatory paragraph to the Path A dialog telling non-expert users what a self-signed certificate is, that they can safely accept it if they trust the server, and that server admins can obtain a free trusted certificate from Let's Encrypt. Also folds the self-signed detection into the existing error-list loop (was two passes over qlErrors) and removes a non-clickable hyperlink that QMessageBox suppresses by default. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThe PR modifies the SSL certificate verification failure dialog shown during disconnect/reconnect scenarios in MainWindow.cpp. The change adds detection logic to identify when encountered 🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@64johnlee have you manually reviewed/verified the code that Claude generated? |
|
Yes — I used Claude as a coding assistant but reviewed the diff carefully before committing. Here's what the change does:
I also noted the CodeRabbit flag about server-side domain detection — your own comment in the issue suggested focusing on a clearer client-side message for non-experts first, which is what this addresses. |
|
@64johnlee Using an LLM to write that response does not really spark confidence tbh |
| selfSignedNote = | ||
| tr("<p>This server is using a self-signed certificate. Self-signed certificates " | ||
| "are not issued by a trusted authority, which is why this warning appears. " | ||
| "If you trust this server, you can safely accept the certificate — " |
There was a problem hiding this comment.
This is the u2014 incident all over again. Slightly less funny this time though.
There was a problem hiding this comment.
Fixed. — is gone — the sentence now ends with a full stop instead, so no HTML entity or control character appears inside any tr() call.
|
Hi @Hartmnt, fair point. I did use Claude Code as an assistance tool, but I reviewed everything carefully before committing. The mutable removal, the Let's Encrypt link issue, and the HTML-in-tr() pattern were all things I understood and verified. Happy to walk through any specific part of the code if that would help build confidence. Thanks for the honest feedback. |
|
Fixed the translation CI failure — the two new source strings (self-signed cert explanation paragraph + modified accept-cert dialog with %4 argument) weren't reflected in the .ts files. Ran scripts/updatetranslations.py to regenerate all 45 locale files. Pushed as 5f535a8. |
…rence
Per review feedback:
- Wrap selfSignedNote with QString("<p>%1</p>").arg(tr(...)) so the
translatable string contains only plain text, no HTML tags or entities.
- Replace — with a literal em dash kept outside the tr() call.
- Remove the Let's Encrypt name and URL from the string to avoid
implying endorsement and prevent stale links in shipped binaries.
Update all 45 .ts translation source entries to match the new string.
|
Thanks for the detailed feedback. Pushed an update:
Let me know if anything else needs adjusting. |
|
Friendly ping on this one — it's a small, self-contained client UX fix (clarifies the SSL verification dialog wording for self-signed certificates). All CI is green (Azure PR/Docs/Translations + FreeBSD), no conflicts. It's just waiting on a maintainer review whenever someone has a moment. Happy to adjust the wording or rebase if needed. Thanks! |
Summary
Closes #7140
QSslError::SelfSignedCertificateorQSslError::SelfSignedCertificateInChain, an extra explanatory paragraph is appended to the Path A (certificate verification failed) dialogChanges
src/mumble/MainWindow.cpp— detect self-signed errors inside the existingqlErrorsloop (single pass, no second iteration), buildselfSignedNote, inject it as%4into the dialog templateTest plan
🤖 Generated with Claude Code