From 99e647a7a894cff38441bcc34b89043f09841c6f Mon Sep 17 00:00:00 2001 From: Ashvin Jangid <142579833+ashvwinn@users.noreply.github.com> Date: Mon, 18 May 2026 02:05:20 +0530 Subject: [PATCH] gh-13653: fix copy url button/shortcut to respect `decodeURLsOnCopy` spec (gh-13659) Co-authored-by: mr. m <91018726+mr-cheffy@users.noreply.github.com> --- src/zen/common/modules/ZenCommonUtils.mjs | 27 +++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/zen/common/modules/ZenCommonUtils.mjs b/src/zen/common/modules/ZenCommonUtils.mjs index 6376c9618..649683106 100644 --- a/src/zen/common/modules/ZenCommonUtils.mjs +++ b/src/zen/common/modules/ZenCommonUtils.mjs @@ -87,8 +87,19 @@ export class nsZenPreloadedFeature { window.gZenCommonActions = { copyCurrentURLToClipboard() { const [currentUrl, ClipboardHelper] = gURLBar.zenStrippedURI; - const displaySpec = currentUrl.displaySpec; + let displaySpec = currentUrl.displaySpec; + + try { + if ( + Services.prefs.getBoolPref("browser.urlbar.decodeURLsOnCopy", false) && + !currentUrl.schemeIs("data") + ) { + displaySpec = decodeURI(displaySpec); + } + } catch (e) {} + ClipboardHelper.copyString(displaySpec); + let button; /* eslint-disable mozilla/valid-services */ if (Services.zen.canShare() && displaySpec.startsWith("http")) { @@ -118,8 +129,20 @@ window.gZenCommonActions = { copyCurrentURLAsMarkdownToClipboard() { const [currentUrl, ClipboardHelper] = gURLBar.zenStrippedURI; const tabTitle = gBrowser.selectedTab.label; - const markdownLink = `[${tabTitle}](${currentUrl.displaySpec})`; + let displaySpec = currentUrl.displaySpec; + + try { + if ( + Services.prefs.getBoolPref("browser.urlbar.decodeURLsOnCopy", false) && + !currentUrl.schemeIs("data") + ) { + displaySpec = decodeURI(displaySpec); + } + } catch (e) {} + + const markdownLink = `[${tabTitle}](${displaySpec})`; ClipboardHelper.copyString(markdownLink); + gZenUIManager.showToast("zen-copy-current-url-as-markdown-confirmation", { timeout: 3000, });