Skip to content

Commit 5a52f4e

Browse files
ralyodioclaude
andcommitted
fix(ext): qrypt.chat CoinPay login — add "open in full tab" escape hatch (v3.4.1)
Phone login works in the embedded qrypt.chat, but CoinPay login redirects to coinpayportal.com, which sets X-Frame-Options and refuses to render in the iframe ("refused to connect"). Added a small bar on the qrypt.chat tab with an "open qrypt.chat in a full tab" link — in a real tab the OAuth redirect is top-level and works. Phone login stays in the embed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 7449614 commit 5a52f4e

28 files changed

Lines changed: 38 additions & 25 deletions

File tree

apps/desktop/extensions/ai-sidebar/chat.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ a { color:var(--cyan); }
5858
.composer input { flex:1; background:#04060c; color:var(--fg); border:1px solid var(--line); border-radius:8px; padding:9px; font:inherit; }
5959
.composer button { background:var(--cyan); color:#04060c; border:0; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
6060

61+
#tab-qrypt { flex-direction:column; }
62+
.qrypt-bar { padding:6px 12px; font-size:12px; color:var(--muted);
63+
border-bottom:1px solid var(--line); background:var(--panel); }
6164
#qrypt-frame { flex:1; width:100%; height:100%; border:0; display:block; background:var(--bg); }
6265
.soon { margin:60px auto; max-width:480px; text-align:center; color:var(--muted); padding:24px;
6366
border:1px dashed var(--line); border-radius:12px; }

apps/desktop/extensions/ai-sidebar/chat.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ <h2>Connect to IRC</h2>
5151

5252
<!-- ===== qrypt.chat (embeds the live E2EE app) ===== -->
5353
<section id="tab-qrypt" class="panel">
54+
<div class="qrypt-bar">
55+
Phone login works here. For <strong>CoinPay</strong> login,
56+
<a id="qrypt-open" href="#">open qrypt.chat in a full tab ↗</a>
57+
— its sign-in page can’t load inside an embed.
58+
</div>
5459
<iframe id="qrypt-frame"
5560
title="qrypt.chat"
5661
allow="camera; microphone; clipboard-write; autoplay; fullscreen"

apps/desktop/extensions/ai-sidebar/chat.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ document.querySelectorAll('.tab').forEach((btn) => {
1616
});
1717
});
1818

19+
// CoinPay login can't render in the embed (OAuth provider refuses framing) →
20+
// open qrypt.chat in a full tab where the top-level redirect works.
21+
const qo = document.getElementById('qrypt-open');
22+
if (qo) qo.addEventListener('click', (e) => { e.preventDefault(); chrome.tabs.create({ url: 'https://qrypt.chat/' }); });
23+
1924
// --- IRC ------------------------------------------------------------------
2025
const STORE_KEY = 'ircConfig';
2126
const irc = new IrcClient();

apps/desktop/extensions/ai-sidebar/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 3,
33
"name": "TronBrowser",
4-
"version": "3.4.0",
4+
"version": "3.4.1",
55
"description": "TronBrowser — privacy-first, AI-native. Branded new tab, private search, CoinPay login, and a bring-your-own-keys AI sidebar.",
66
"icons": {
77
"16": "icons/icon-16.png",

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/desktop",
3-
"version": "3.4.0",
3+
"version": "3.4.1",
44
"private": true,
55
"description": "Desktop shell for the TronBrowser Chromium fork",
66
"type": "module",

apps/docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/docs",
3-
"version": "3.4.0",
3+
"version": "3.4.1",
44
"private": true,
55
"description": "Documentation site",
66
"type": "module",

apps/extensions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/extensions",
3-
"version": "3.4.0",
3+
"version": "3.4.1",
44
"private": true,
55
"description": "TronBrowser extension store — pay $1, list your MV3 extension (tronbrowser.dev/store)",
66
"type": "module",

apps/mobile/app.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"slug": "tronbrowserdev",
55
"owner": "profullstack",
66
"scheme": "tronbrowser",
7-
"version": "3.4.0",
7+
"version": "3.4.1",
88
"orientation": "portrait",
99
"userInterfaceStyle": "dark",
1010
"platforms": [

apps/mobile/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/mobile",
3-
"version": "3.4.0",
3+
"version": "3.4.1",
44
"private": true,
55
"description": "TronBrowser mobile (Expo / React Native) — Phase 2",
66
"type": "module",

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/web",
3-
"version": "3.4.0",
3+
"version": "3.4.1",
44
"private": true,
55
"description": "TronBrowser marketing site + web dashboard",
66
"type": "module",

0 commit comments

Comments
 (0)