diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 3846b5662f02..101b407da153 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -2442,7 +2442,6 @@ pref("browser.toolbars.bookmarks.showInPrivateBrowsing", false);
pref("identity.fxaccounts.toolbar.enabled", true);
pref("identity.fxaccounts.toolbar.accessed", false);
pref("identity.fxaccounts.toolbar.defaultVisible", false);
-pref("identity.fxaccounts.toolbar.pxiToolbarEnabled", false);
// Check bundled omni JARs for corruption.
pref("corroborator.enabled", true);
diff --git a/browser/base/content/appmenu-viewcache.inc.xhtml b/browser/base/content/appmenu-viewcache.inc.xhtml
index 650af66db853..ab95b3675d9a 100644
--- a/browser/base/content/appmenu-viewcache.inc.xhtml
+++ b/browser/base/content/appmenu-viewcache.inc.xhtml
@@ -559,7 +559,6 @@
data-l10n-id="appmenuitem-fxa-sign-in"/>
@@ -580,7 +579,6 @@
crop="end"/>
-
-
+
-
-
-
+ oncommand="gSync.disconnect();"/>
+
-
diff --git a/browser/base/content/browser-sync.js b/browser/base/content/browser-sync.js
index fb7b8b4c7c13..db50ed1d32a7 100644
--- a/browser/base/content/browser-sync.js
+++ b/browser/base/content/browser-sync.js
@@ -5,14 +5,6 @@
// This file is loaded into the browser window scope.
/* eslint-env mozilla/browser-window */
-const {
- FX_MONITOR_OAUTH_CLIENT_ID,
- FX_RELAY_OAUTH_CLIENT_ID,
- VPN_OAUTH_CLIENT_ID,
-} = ChromeUtils.importESModule(
- "resource://gre/modules/FxAccountsCommon.sys.mjs"
-);
-
const { UIState } = ChromeUtils.importESModule(
"resource://services-sync/UIState.sys.mjs"
);
@@ -356,8 +348,6 @@ var gSync = {
"browser/appmenu.ftl",
"browser/sync.ftl",
"toolkit/branding/accounts.ftl",
- // untranslated FTL
- "preview/appmenu.ftl",
],
true
));
@@ -416,11 +406,6 @@ var gSync = {
"FXA_ENABLED",
"identity.fxaccounts.enabled"
);
- XPCOMUtils.defineLazyPreferenceGetter(
- this,
- "PXI_TOOLBAR_ENABLED",
- "identity.fxaccounts.toolbar.pxiToolbarEnabled"
- );
},
maybeUpdateUIState() {
@@ -507,13 +492,6 @@ var gSync = {
fxaPanelView.addEventListener("ViewShowing", this);
fxaPanelView.addEventListener("ViewHiding", this);
- // If the experiment is enabled, we'll need to update the panels
- // to show some different text to the user
- if (this.PXI_TOOLBAR_ENABLED) {
- this.updateFxAPanel(UIState.get());
- this.updateCTAPanel();
- }
-
this._initialized = true;
},
@@ -558,14 +536,6 @@ var gSync = {
);
syncPrefsButtonEl.hidden = !UIState.get().syncEnabled;
- // We should ensure that we do not show the sign out button
- // if the user is not signed in
- const signOutButtonEl = PanelMultiView.getViewNode(
- document,
- "PanelUI-fxa-menu-account-signout-button"
- );
- signOutButtonEl.hidden = !this.isSignedIn;
-
panelview.syncedTabsPanelList = new SyncedTabsPanelList(
panelview,
PanelMultiView.getViewNode(document, "PanelUI-fxa-remotetabs-deck"),
@@ -610,7 +580,6 @@ var gSync = {
this.updateSyncButtonsTooltip(state);
this.updateSyncStatus(state);
this.updateFxAPanel(state);
- this.updateCTAPanel(state);
// Ensure we have something in the device list in the background.
this.ensureFxaDevices();
},
@@ -817,29 +786,15 @@ var gSync = {
entrypoint_variation: fxaButtonVisibilityExperiment.branch.slug,
};
}
- // If we're signed out but have the PXI pref enabled
- // we should show the PXI panel instead of taking the user
- // straight to FxA sign-in
- if (this.PXI_TOOLBAR_ENABLED) {
- this.updateCTAPanel();
- PanelUI.showSubView("PanelUI-fxa", anchor, aEvent);
- } else {
- let panel =
- anchor.id == "appMenu-fxa-label2"
- ? PanelMultiView.getViewNode(document, "PanelUI-fxa")
- : undefined;
- this.openFxAEmailFirstPageFromFxaMenu(panel, extraParams);
- PanelUI.hide();
- }
+
+ let panel =
+ anchor.id == "appMenu-fxa-label2"
+ ? PanelMultiView.getViewNode(document, "PanelUI-fxa")
+ : undefined;
+ this.openFxAEmailFirstPageFromFxaMenu(panel, extraParams);
+ PanelUI.hide();
return;
}
- // If the user is signed in and we have the PXI pref enabled then add
- // the pxi panel to the existing toolbar
- if (this.PXI_TOOLBAR_ENABLED) {
- this.updateCTAPanel();
- } else {
- PanelUI.showSubView("PanelUI-fxa", anchor, aEvent);
- }
if (!gFxaToolbarAccessed) {
Services.prefs.setBoolPref("identity.fxaccounts.toolbar.accessed", true);
@@ -901,33 +856,19 @@ var gSync = {
"fxa-manage-account-button"
);
- const signedInContainer = PanelMultiView.getViewNode(
- document,
- "PanelUI-signedin-panel"
- );
-
cadButtonEl.setAttribute("disabled", true);
syncNowButtonEl.hidden = true;
- signedInContainer.hidden = true;
fxaMenuAccountButtonEl.classList.remove("subviewbutton-nav");
fxaMenuAccountButtonEl.removeAttribute("closemenu");
syncSetupButtonEl.removeAttribute("hidden");
- let headerTitleL10nId = this.PXI_TOOLBAR_ENABLED
- ? "appmenuitem-moz-accounts-sign-in"
- : "appmenuitem-fxa-sign-in";
+ let headerTitleL10nId = "appmenuitem-fxa-sign-in";
let headerDescription;
if (state.status === UIState.STATUS_NOT_CONFIGURED) {
mainWindowEl.style.removeProperty("--avatar-image-url");
headerDescription = this.fluentStrings.formatValueSync(
"appmenu-fxa-signed-in-label"
);
- // Signed out, expeirment enabled is the only state we want to hide the
- // header description, so we make it empty and check for that when setting
- // the value
- if (this.PXI_TOOLBAR_ENABLED) {
- headerDescription = "";
- }
} else if (state.status === UIState.STATUS_LOGIN_FAILED) {
stateValue = "login-failed";
headerTitleL10nId = "account-disconnected2";
@@ -954,8 +895,6 @@ var gSync = {
mainWindowEl.style.removeProperty("--avatar-image-url");
};
img.src = state.avatarURL;
- signedInContainer.hidden = false;
- menuHeaderDescriptionEl.hidden = false;
} else {
mainWindowEl.style.removeProperty("--avatar-image-url");
}
@@ -978,8 +917,6 @@ var gSync = {
menuHeaderTitleEl.value =
this.fluentStrings.formatValueSync(headerTitleL10nId);
- // If we description is empty, we hide it
- menuHeaderDescriptionEl.hidden = !headerDescription;
menuHeaderDescriptionEl.value = headerDescription;
// We remove the data-l10n-id attribute here to prevent the node's value
// attribute from being overwritten by Fluent when the panel is moved
@@ -2022,95 +1959,6 @@ var gSync = {
}
},
- // This should only be shown if we have enabled the pxiPanel via
- // an experiment or explicitly through prefs
- updateCTAPanel() {
- const mainPanelEl = PanelMultiView.getViewNode(
- document,
- "PanelUI-fxa-pxi-cta-menu"
- );
-
- const syncCtaEl = PanelMultiView.getViewNode(
- document,
- "PanelUI-fxa-menu-sync-button"
- );
- // If we're not in the experiment then we do not enable this at all
- if (!this.PXI_TOOLBAR_ENABLED) {
- // If we've previously shown this but got disabled
- // we should ensure we hide the panel
- mainPanelEl.hidden = true;
- return;
- }
-
- // If we're already signed in an syncing, we shouldn't show the sync CTA
- syncCtaEl.hidden = this.isSignedIn;
-
- // ensure the container is visible
- mainPanelEl.hidden = false;
- },
- async openMonitorLink(panel) {
- this.emitFxaToolbarTelemetry("monitor_cta", panel);
- await this.openPXILink(
- FX_MONITOR_OAUTH_CLIENT_ID,
- new URL("https://monitor.firefox.com"),
- new URL("https://monitor.firefox.com/user/breaches")
- );
- },
-
- async openRelayLink(panel) {
- this.emitFxaToolbarTelemetry("relay_cta", panel);
- await this.openPXILink(
- FX_RELAY_OAUTH_CLIENT_ID,
- new URL("https://relay.firefox.com"),
- new URL("https://relay.firefox.com/accounts/profile")
- );
- },
-
- async openVPNLink(panel) {
- this.emitFxaToolbarTelemetry("vpn_cta", panel);
- await this.openPXILink(
- VPN_OAUTH_CLIENT_ID,
- new URL("https://www.mozilla.org/en-US/products/vpn/"),
- new URL("https://www.mozilla.org/en-US/products/vpn/")
- );
- },
-
- // A generic opening based on
- async openPXILink(clientId, defaultUrl, signedInUrl) {
- const params = {
- utm_medium: "firefox-desktop",
- utm_source: "toolbar",
- utm_campaign: "discovery",
- };
- const pxiSearchParams = new URLSearchParams(params);
-
- if (!this.isSignedIn) {
- // Add the base params + not signed in
- defaultUrl.search = pxiSearchParams.toString();
- defaultUrl.searchParams.append("utm_content", "notsignedin");
- this.openLink(defaultUrl);
- PanelUI.hide();
- return;
- }
-
- // Note: This is a network call
- let attachedClients = await fxAccounts.listAttachedOAuthClients();
- // If we have at least one client based on clientId passed in
- let hasPXIClient = attachedClients.some(c => !!c.id && c.id === clientId);
-
- const url = hasPXIClient ? signedInUrl : defaultUrl;
- // Add base params + signed in
- url.search = pxiSearchParams.toString();
- url.searchParams.append("utm_content", "signedIn");
-
- this.openLink(url);
- PanelUI.hide();
- },
-
- openLink(url) {
- switchToTabHavingURI(url, true, { replaceQueryString: true });
- },
-
QueryInterface: ChromeUtils.generateQI([
"nsIObserver",
"nsISupportsWeakReference",
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index dfb912281dd2..078629f36539 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -97,7 +97,6 @@
-
diff --git a/browser/base/content/test/sync/browser_sync.js b/browser/base/content/test/sync/browser_sync.js
index 3080325636d1..7ef31c37e25c 100644
--- a/browser/base/content/test/sync/browser_sync.js
+++ b/browser/base/content/test/sync/browser_sync.js
@@ -581,131 +581,6 @@ add_task(
}
);
-// If the PXI experiment is enabled, we need to ensure we can see the CTAs when signed out
-add_task(async function test_experiment_ui_state_unconfigured() {
- await BrowserTestUtils.openNewForegroundTab(gBrowser, "https://example.com/");
-
- // The experiment enables this bool, found in FeatureManifest.yaml
- Services.prefs.setBoolPref(
- "identity.fxaccounts.toolbar.pxiToolbarEnabled",
- true
- );
- let state = {
- status: UIState.STATUS_NOT_CONFIGURED,
- };
-
- gSync.updateAllUI(state);
-
- checkMenuBarItem("sync-setup");
-
- checkFxAAvatar("not_configured");
-
- let expectedLabel = gSync.fluentStrings.formatValueSync(
- "appmenuitem-moz-accounts-sign-in"
- );
-
- await openMainPanel();
-
- checkFxaToolbarButtonPanel({
- headerTitle: expectedLabel,
- headerDescription: "",
- enabledItems: [
- "PanelUI-fxa-pxi-cta-menu",
- "PanelUI-fxa-menu-sync-button",
- "PanelUI-fxa-menu-monitor-button",
- "PanelUI-fxa-menu-relay-button",
- "PanelUI-fxa-menu-vpn-button",
- ],
- disabledItems: [],
- hiddenItems: [
- "PanelUI-fxa-menu-syncnow-button",
- "PanelUI-fxa-menu-sync-prefs-button",
- ],
- });
-
- // Revert the pref at the end of the test
- Services.prefs.setBoolPref(
- "identity.fxaccounts.toolbar.pxiToolbarEnabled",
- false
- );
- await closeTabAndMainPanel();
-});
-
-// Ensure we can see the regular signed in flow + the extra PXI CTAs when
-// the experiment is enabled
-add_task(async function test_experiment_ui_state_signedin() {
- await BrowserTestUtils.openNewForegroundTab(gBrowser, "https://example.com/");
-
- // The experiment enables this bool, found in FeatureManifest.yaml
- Services.prefs.setBoolPref(
- "identity.fxaccounts.toolbar.pxiToolbarEnabled",
- true
- );
-
- const relativeDateAnchor = new Date();
- let state = {
- status: UIState.STATUS_SIGNED_IN,
- syncEnabled: true,
- email: "foo@bar.com",
- displayName: "Foo Bar",
- avatarURL: "https://foo.bar",
- lastSync: new Date(),
- syncing: false,
- };
-
- const origRelativeTimeFormat = gSync.relativeTimeFormat;
- gSync.relativeTimeFormat = {
- formatBestUnit(date) {
- return origRelativeTimeFormat.formatBestUnit(date, {
- now: relativeDateAnchor,
- });
- },
- };
-
- gSync.updateAllUI(state);
-
- await openFxaPanel();
-
- checkMenuBarItem("sync-syncnowitem");
- checkPanelHeader();
- checkFxaToolbarButtonPanel({
- headerTitle: "Manage account",
- headerDescription: state.displayName,
- enabledItems: [
- "PanelUI-fxa-menu-sendtab-button",
- "PanelUI-fxa-menu-connect-device-button",
- "PanelUI-fxa-menu-syncnow-button",
- "PanelUI-fxa-menu-sync-prefs-button",
- "PanelUI-fxa-menu-account-signout-button",
- "PanelUI-fxa-pxi-cta-menu",
- "PanelUI-fxa-menu-sync-button",
- "PanelUI-fxa-menu-monitor-button",
- "PanelUI-fxa-menu-relay-button",
- "PanelUI-fxa-menu-vpn-button",
- ],
- disabledItems: [],
- hiddenItems: ["PanelUI-fxa-menu-setup-sync-button"],
- });
- checkFxAAvatar("signedin");
- gSync.relativeTimeFormat = origRelativeTimeFormat;
- await closeFxaPanel();
-
- await openMainPanel();
-
- checkPanelUIStatusBar({
- description: "Foo Bar",
- titleHidden: true,
- hideFxAText: true,
- });
-
- // Revert the pref at the end of the test
- Services.prefs.setBoolPref(
- "identity.fxaccounts.toolbar.pxiToolbarEnabled",
- false
- );
- await closeTabAndMainPanel();
-});
-
function checkPanelUIStatusBar({
description,
title,
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 70326177101e..67a4b0c6c563 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -14,7 +14,6 @@
preview/enUS-searchFeatures.ftl (../components/urlbar/content/enUS-searchFeatures.ftl)
preview/shopping.ftl (../components/shopping/content/shopping.ftl)
preview/onboarding.ftl (../components/aboutwelcome/content/onboarding.ftl)
- preview/appmenu.ftl (../../services/fxaccounts/content/appmenu.ftl)
browser (%browser/**/*.ftl)
@AB_CD@.jar:
diff --git a/browser/themes/shared/customizableui/panelUI-shared.css b/browser/themes/shared/customizableui/panelUI-shared.css
index 913040644476..548085674d72 100644
--- a/browser/themes/shared/customizableui/panelUI-shared.css
+++ b/browser/themes/shared/customizableui/panelUI-shared.css
@@ -751,11 +751,7 @@ toolbarbutton[constrain-size="true"][cui-areatype="panel"] > .toolbarbutton-badg
#fxa-menu-header-description {
color: var(--text-color-deemphasized);
- font-weight: var(--font-weight-bold);
-}
-
-#cta-menu-header-description {
- color: var(--text-color-deemphasized);
+ font-weight: 600;
}
#PanelUI-appMenu-fxa-label-last-synced {
@@ -768,24 +764,10 @@ toolbarbutton[constrain-size="true"][cui-areatype="panel"] > .toolbarbutton-badg
list-style-image: url(chrome://browser/skin/fxa/send.svg);
}
-.ctaMenuLogo {
- width: 16px;
- height: 16px;
- margin-inline-start: 5px;
-}
-
#PanelUI-fxa-menu-monitor-button {
list-style-image: url(chrome://browser/skin/fxa/monitor.svg);
}
-#PanelUI-fxa-menu-relay-button {
- list-style-image: url(chrome://browser/content/logos/relay.svg);
-}
-
-#PanelUI-fxa-menu-vpn-button {
- list-style-image: url(chrome://browser/content/logos/vpn-dark.svg);
-}
-
:root:not([fxastatus="signedin"]) #PanelUI-fxa-menu-connect-device-button {
color: var(--panel-disabled-color);
}
diff --git a/services/fxaccounts/FxAccountsCommon.sys.mjs b/services/fxaccounts/FxAccountsCommon.sys.mjs
index 8713b64d4a08..48435e1c7075 100644
--- a/services/fxaccounts/FxAccountsCommon.sys.mjs
+++ b/services/fxaccounts/FxAccountsCommon.sys.mjs
@@ -95,8 +95,6 @@ export let DEPRECATED_SCOPE_ECOSYSTEM_TELEMETRY =
// OAuth metadata for other Firefox-related services that we might need to know about
// in order to provide an enhanced user experience.
export let FX_MONITOR_OAUTH_CLIENT_ID = "802d56ef2a9af9fa";
-export let FX_RELAY_OAUTH_CLIENT_ID = "9ebfe2c2f9ea3c58";
-export let VPN_OAUTH_CLIENT_ID = "e6eb0d1e856335fc";
// UI Requests.
export let UI_REQUEST_SIGN_IN_FLOW = "signInFlow";
diff --git a/services/fxaccounts/content/appmenu.ftl b/services/fxaccounts/content/appmenu.ftl
deleted file mode 100644
index 0aee22d83cde..000000000000
--- a/services/fxaccounts/content/appmenu.ftl
+++ /dev/null
@@ -1,19 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-### This file is not in a locales directory to prevent it from
-### being translated as the feature is still in heavy development
-### and strings are likely to change often.
-
--mozaccount-brand-name = Mozilla account
-appmenuitem-moz-accounts-sign-in = Sign in to your { -mozaccount-brand-name }
-
-sync-menu-title = Sync
-sync-menu-description = Access your web anywhere
-pxi-menu-monitor-title = { -monitor-brand-short-name }
-pxi-menu-monitor-description = Get data breach alerts
-pxi-menu-relay-title = { -relay-brand-short-name }
-pxi-menu-relay-description = Mask your real email and phone
-pxi-menu-vpn-title = { -mozilla-vpn-brand-name }
-pxi-menu-vpn-description = Protect your online activity
diff --git a/toolkit/components/nimbus/FeatureManifest.yaml b/toolkit/components/nimbus/FeatureManifest.yaml
index b4f6cca6807e..c55129cc73a0 100644
--- a/toolkit/components/nimbus/FeatureManifest.yaml
+++ b/toolkit/components/nimbus/FeatureManifest.yaml
@@ -1490,12 +1490,6 @@ fxaButtonVisibility:
description: True if the Firefox Accounts toolbar button should be visible when not signed in.
type: boolean
setPref: identity.fxaccounts.toolbar.defaultVisible
- pxiToolbarEnabled:
- description: >-
- True if we're enabling the PXI dropdown menu for the FxA toolbar button instead of
- taking the user straight to login
- type: boolean
- setPref: identity.fxaccounts.toolbar.pxiToolbarEnabled
legacyHeartbeat:
description: Normandy Heartbeat exposed to Nimbus