Bug 1390450 - Workaround unavailable UITour feature in version 55 of opening about:accounts with specified email address
MozReview-Commit-ID: 57dUlNicj0t
--- a/browser/extensions/onboarding/bootstrap.js
+++ b/browser/extensions/onboarding/bootstrap.js
@@ -150,16 +150,21 @@ function initContentMessageListener() {
case "set-prefs":
setPrefs(msg.data.params);
break;
case "get-login-status":
msg.target.messageManager.sendAsyncMessage("Onboarding:ResponseLoginStatus", {
isLoggedIn: syncTourChecker.isLoggedIn()
});
break;
+ case "show-firefox-accounts":
+ let email = msg.data.params[0];
+ Services.wm.getMostRecentWindow("navigator:browser").gBrowser.loadURI(
+ "about:accounts?action=signup&email=" + encodeURIComponent(email));
+ break;
}
});
}
/**
* onBrowserReady - Continues startup of the add-on after browser is ready.
*/
function onBrowserReady() {
--- a/browser/extensions/onboarding/content/onboarding-tour-agent.js
+++ b/browser/extensions/onboarding/content/onboarding-tour-agent.js
@@ -49,22 +49,16 @@ document.getElementById("onboarding-over
Mozilla.UITour.showHighlight("privateWindow");
break;
case "onboarding-tour-search-button":
Mozilla.UITour.openSearchPanel(() => {});
break;
case "onboarding-tour-singlesearch-button":
Mozilla.UITour.showMenu("urlbar");
break;
- case "onboarding-tour-sync-button":
- let emailInput = document.getElementById("onboarding-tour-sync-email-input");
- if (emailInput.checkValidity()) {
- Mozilla.UITour.showFirefoxAccounts(null, emailInput.value);
- }
- break;
case "onboarding-overlay":
case "onboarding-overlay-close-btn":
// Dismiss any highlights if a user tries to close the dialog.
Mozilla.UITour.hideHighlight();
break;
}
// Dismiss any highlights if a user tries to change to other tours.
if (evt.target.classList.contains("onboarding-tour-item")) {
--- a/browser/extensions/onboarding/content/onboarding.js
+++ b/browser/extensions/onboarding/content/onboarding.js
@@ -234,17 +234,22 @@ var onboardingTourset = {
div.addEventListener("beforeshow", () => {
function loginStatusListener(msg) {
removeMessageListener("Onboarding:ResponseLoginStatus", loginStatusListener);
div.dataset.loginState = msg.data.isLoggedIn ? STATE_LOGIN : STATE_LOGOUT;
}
sendMessageToChrome("get-login-status");
addMessageListener("Onboarding:ResponseLoginStatus", loginStatusListener);
});
-
+ div.addEventListener("click", evt => {
+ if (evt.target.id === "onboarding-tour-sync-button" &&
+ emailInput.checkValidity()) {
+ sendMessageToChrome("show-firefox-accounts", [emailInput.value]);
+ }
+ });
return div;
},
},
"library": {
id: "onboarding-tour-library",
tourNameId: "onboarding.tour-library",
getNotificationStrings(bundle) {
return {