From 470de704d57138ee0bc2ff15b994a825517f629d Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 27 May 2026 10:58:15 +0200 Subject: [PATCH 01/20] Fix URL open in PWA mode by using noopener,noreferrer window.open from a PWA standalone window was opening URLs in a new standalone PWA context, causing scheme-less URLs like "paperlesspost.com" to resolve relative to the PWA base path instead of opening in the browser. Adding 'noopener,noreferrer' severs the opener relationship so Chrome treats the new window as an independent browser tab. Co-Authored-By: Claude Sonnet 4.6 --- pwa/src/lib/Dashboard.svelte | 2 +- pwa/src/lib/RecordList.svelte | 2 +- pwa/src/lib/RecordRead.svelte | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pwa/src/lib/Dashboard.svelte b/pwa/src/lib/Dashboard.svelte index a522118..c2c3ee7 100644 --- a/pwa/src/lib/Dashboard.svelte +++ b/pwa/src/lib/Dashboard.svelte @@ -1524,7 +1524,7 @@ if (e.ctrlKey && e.key === 'Enter') { e.preventDefault(); startEdit(); return } if (e.key === 'Enter' && !e.target.matches('button, a')) { e.preventDefault() - if (record.URL) window.open(absoluteUrl(record.URL), '_blank') + if (record.URL) window.open(absoluteUrl(record.URL), '_blank', 'noopener,noreferrer') return } if (e.ctrlKey && e.key === 'c') { diff --git a/pwa/src/lib/RecordList.svelte b/pwa/src/lib/RecordList.svelte index aaaf915..6cd2b35 100644 --- a/pwa/src/lib/RecordList.svelte +++ b/pwa/src/lib/RecordList.svelte @@ -471,7 +471,7 @@ - {/if} diff --git a/pwa/src/lib/RecordRead.svelte b/pwa/src/lib/RecordRead.svelte index e26354a..bcbea50 100644 --- a/pwa/src/lib/RecordRead.svelte +++ b/pwa/src/lib/RecordRead.svelte @@ -470,7 +470,7 @@
e.stopPropagation()}> - { e.preventDefault(); window.open(absoluteUrl(record.URL), '_blank') }}> + { e.preventDefault(); window.open(absoluteUrl(record.URL), '_blank', 'noopener,noreferrer') }}>
- + {/if} {#if contextMenu.rec.TwoFactorKey !== undefined} - {/if} {#each (contextMenu.rec.CustomFields ?? []).slice(0, 9) as cf, i} @@ -756,7 +756,7 @@ {/if}
- The bookmarklet contains a unique private key that will not be shown again. Drag it to your bookmarks bar or copy the link before closing. + The bookmarklet contains no private key. Its paired signing key stays in this browser profile's Portpass storage and can be revoked here.
{/if} + + + +
+ +
+ {#if pairDelegatePreview} +
+ + + Pairing code {pairDelegatePreview.displayCode}{pairDelegatePreview.relayUrl ? ` · Relay ${pairDelegatePreview.relayUrl}` : ''} + +
+
+ +
+ BAR HIDDEN + + Paste as the bookmark URL in the filling profile +
+
+ + {/if} + {#if pairDelegateError}
{pairDelegateError}
{/if} +
+ +
+ + +{/if} + {#if setupMode}