tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit c226407064adf2a042558dde3333be5a6d5dbb80
parent 7d4f7bd0d78be29a70197a74e24adf28ec80448e
Author: Emily McMinn <emcminn@mozilla.com>
Date:   Fri, 24 Oct 2025 20:18:38 +0000

Bug 1995817 - Prevent utm_term from being added on OPEN_URL if it already exists r=omc-reviewers,sachung

Adds a check to `addUtmParams()` to prevent the default about-welcome UTM term being added to URLs that already have a utm_term param. This should work for all `OPEN_URL` actions on about:welcome or in spotlights. If no utm_term is included on the link, the default term will still be added (or can be overridden using the top-level UTMTerm property.)

Differential Revision: https://phabricator.services.mozilla.com/D270048

Diffstat:
Mbrowser/components/aboutwelcome/content-src/lib/addUtmParams.mjs | 4+++-
Mbrowser/components/aboutwelcome/content/aboutwelcome.bundle.js | 4+++-
Mbrowser/components/aboutwelcome/tests/unit/addUtmParams.test.js | 5++++-
3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/browser/components/aboutwelcome/content-src/lib/addUtmParams.mjs b/browser/components/aboutwelcome/content-src/lib/addUtmParams.mjs @@ -27,6 +27,8 @@ export function addUtmParams(url, utmTerm) { returnUrl.searchParams.append(key, value); } } - returnUrl.searchParams.append("utm_term", utmTerm); + if (!returnUrl.searchParams.has("utm_term")) { + returnUrl.searchParams.append("utm_term", utmTerm); + } return returnUrl; } diff --git a/browser/components/aboutwelcome/content/aboutwelcome.bundle.js b/browser/components/aboutwelcome/content/aboutwelcome.bundle.js @@ -3883,7 +3883,9 @@ function addUtmParams(url, utmTerm) { returnUrl.searchParams.append(key, value); } } - returnUrl.searchParams.append("utm_term", utmTerm); + if (!returnUrl.searchParams.has("utm_term")) { + returnUrl.searchParams.append("utm_term", utmTerm); + } return returnUrl; } diff --git a/browser/components/aboutwelcome/tests/unit/addUtmParams.test.js b/browser/components/aboutwelcome/tests/unit/addUtmParams.test.js @@ -25,10 +25,13 @@ describe("addUtmParams", () => { assert.equal(params.get("utm_term"), "foo", "utm_term"); }); it("should not override the URL's existing utm param values", () => { - const url = new URL("https://foo.com/?utm_source=foo&utm_campaign=bar"); + const url = new URL( + "https://foo.com/?utm_source=foo&utm_campaign=bar&utm_term=baz" + ); const params = addUtmParams(url, "foo").searchParams; assert.equal(params.get("utm_source"), "foo", "utm_source"); assert.equal(params.get("utm_campaign"), "bar", "utm_campaign"); + assert.equal(params.get("utm_term"), "baz", "utm_term"); assert.equal(params.get("utm_medium"), "referral", "utm_medium"); }); });