Skip to content
Snippets Groups Projects
Verified Commit 9e05ca8c authored by henry's avatar henry Committed by ma1
Browse files

Bug 42583: Modify moz-support-link for Base Browser.

parent 942b3f1d
No related branches found
No related tags found
1 merge request!1326Bug 43383: Rebased legacy onto 115.19.0esr
......@@ -17,7 +17,9 @@ MozXULElement.insertFTLIfNeeded("browser/components/mozSupportLink.ftl");
export default class MozSupportLink extends HTMLAnchorElement {
static SUPPORT_URL = "https://www.mozilla.org/";
static get observedAttributes() {
return ["support-page", "utm-content"];
// We add tor-manual-page for pages hosted at tor project. Also shared with
// base-browser/mullvad-browser. See tor-browser#42583.
return ["support-page", "utm-content", "tor-manual-page"];
}
/**
......@@ -96,12 +98,33 @@ export default class MozSupportLink extends HTMLAnchorElement {
}
attributeChangedCallback(attrName, oldVal, newVal) {
if (attrName === "support-page" || attrName === "utm-content") {
if (
attrName === "support-page" ||
attrName === "utm-content" ||
attrName === "tor-manual-page"
) {
this.#setHref();
}
}
#setHref() {
let torManualPage = this.getAttribute("tor-manual-page");
if (torManualPage) {
const [page, anchor] = torManualPage.split("_", 2);
let locale = Services.locale.appLocaleAsBCP47;
if (locale === "ja-JP-macos") {
// Convert quirk-locale to the locale used for tor project.
locale = "ja";
}
let href = `https://tb-manual.torproject.org/${locale}/${page}/`;
if (anchor) {
href = `${href}#${anchor}`;
}
this.href = href;
return;
}
let supportPage = this.getAttribute("support-page") ?? "";
let base = MozSupportLink.SUPPORT_URL + supportPage;
this.href = this.hasAttribute("utm-content")
......@@ -122,21 +145,7 @@ customElements.define("moz-support-link", MozSupportLink, { extends: "a" });
* Otherwise the url in unmodified form.
*/
export function formatUTMParams(contentAttribute, url) {
if (!contentAttribute) {
return url;
}
let parsedUrl = new URL(url);
let domain = `.${parsedUrl.hostname}`;
if (
!domain.endsWith(".mozilla.org") &&
// For testing: addons-dev.allizom.org and addons.allizom.org
!domain.endsWith(".allizom.org")
) {
return url;
}
parsedUrl.searchParams.set("utm_source", "firefox-browser");
parsedUrl.searchParams.set("utm_medium", "firefox-browser");
parsedUrl.searchParams.set("utm_content", contentAttribute);
return parsedUrl.href;
// Do not add utm parameters. See tor-browser#42583.
// NOTE: This method is also present in about:addons.
return url;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment