Bug 1390450 - Workaround unavailable UITour feature in version 55 of opening about:accounts with specified email address draft
authorRex Lee <rexboy@mozilla.com>
Tue, 15 Aug 2017 17:24:40 +0800
changeset 646455 031977cb63f97de95ba628c4fac37fa6aaa864d6
parent 645674 3bfcbdf5c6c381d5a8febb5c209e27a69fb89f9b
child 726257 a82bd19a648779fcccbd21c4c18e169912f18753
push id74136
push userbmo:rexboy@mozilla.com
push dateTue, 15 Aug 2017 09:25:32 +0000
bugs1390450
milestone57.0a1
Bug 1390450 - Workaround unavailable UITour feature in version 55 of opening about:accounts with specified email address MozReview-Commit-ID: 57dUlNicj0t
browser/extensions/onboarding/bootstrap.js
browser/extensions/onboarding/content/onboarding-tour-agent.js
browser/extensions/onboarding/content/onboarding.js
--- 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 {