Bug 1531959 - Change all RemoteLogins message names to PasswordManager in pwmgr code. r=MattN
authorECarr <econline23@gmail.com>
Tue, 05 Mar 2019 21:08:49 +0000
changeset 520322 e2b8ea7e00d9ccb32e57775b343667bf833e50ab
parent 520321 5c6fc3df47377fcdc94d51861b4f3fa9a70acfdc
child 520323 14b6b6f8a599748d3a7d8435f57c37e696a97df7
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersMattN
bugs1531959
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1531959 - Change all RemoteLogins message names to PasswordManager in pwmgr code. r=MattN Differential Revision: https://phabricator.services.mozilla.com/D22176
browser/base/content/content.js
browser/components/BrowserGlue.jsm
mobile/android/chrome/content/content.js
mobile/android/components/BrowserCLH.js
toolkit/components/passwordmgr/LoginManagerContent.jsm
toolkit/components/passwordmgr/LoginManagerParent.jsm
toolkit/components/passwordmgr/LoginRecipes.jsm
toolkit/components/passwordmgr/test/mochitest/pwmgr_common_parent.js
toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html
toolkit/components/passwordmgr/test/mochitest/test_formless_submit_navigation.html
toolkit/components/satchel/AutoCompletePopup.jsm
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -24,17 +24,17 @@ XPCOMUtils.defineLazyModuleGetters(this,
 XPCOMUtils.defineLazyGetter(this, "LoginManagerContent", () => {
   let tmp = {};
   ChromeUtils.import("resource://gre/modules/LoginManagerContent.jsm", tmp);
   tmp.LoginManagerContent.setupEventListeners(global);
   return tmp.LoginManagerContent;
 });
 
 // NOTE: Much of this logic is duplicated in BrowserCLH.js for Android.
-addMessageListener("RemoteLogins:fillForm", function(message) {
+addMessageListener("PasswordManager:fillForm", function(message) {
   // intercept if ContextMenu.jsm had sent a plain object for remote targets
   message.objects.inputElement = ContextMenuChild.getTarget(global, message, "inputElement");
   LoginManagerContent.receiveMessage(message, content);
 });
 
 function shouldIgnoreLoginManagerEvent(event) {
   // If we have a null principal then prevent any more password manager code from running and
   // incorrectly using the document `location`.
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -525,22 +525,22 @@ const listeners = {
     "FormValidation:ShowPopup": ["FormValidationHandler"],
     "FormValidation:HidePopup": ["FormValidationHandler"],
     "PictureInPicture:Request": ["PictureInPicture"],
     "PictureInPicture:Close": ["PictureInPicture"],
     "Prompt:Open": ["RemotePrompt"],
     "Reader:FaviconRequest": ["ReaderParent"],
     "Reader:UpdateReaderButton": ["ReaderParent"],
     // PLEASE KEEP THIS LIST IN SYNC WITH THE MOBILE LISTENERS IN BrowserCLH.js
-    "RemoteLogins:findLogins": ["LoginManagerParent"],
-    "RemoteLogins:findRecipes": ["LoginManagerParent"],
-    "RemoteLogins:onFormSubmit": ["LoginManagerParent"],
-    "RemoteLogins:autoCompleteLogins": ["LoginManagerParent"],
-    "RemoteLogins:removeLogin": ["LoginManagerParent"],
-    "RemoteLogins:insecureLoginFormPresent": ["LoginManagerParent"],
+    "PasswordManager:findLogins": ["LoginManagerParent"],
+    "PasswordManager:findRecipes": ["LoginManagerParent"],
+    "PasswordManager:onFormSubmit": ["LoginManagerParent"],
+    "PasswordManager:autoCompleteLogins": ["LoginManagerParent"],
+    "PasswordManager:removeLogin": ["LoginManagerParent"],
+    "PasswordManager:insecureLoginFormPresent": ["LoginManagerParent"],
     // PLEASE KEEP THIS LIST IN SYNC WITH THE MOBILE LISTENERS IN BrowserCLH.js
     "rtcpeer:CancelRequest": ["webrtcUI"],
     "rtcpeer:Request": ["webrtcUI"],
     "webrtc:CancelRequest": ["webrtcUI"],
     "webrtc:Request": ["webrtcUI"],
     "webrtc:StopRecording": ["webrtcUI"],
     "webrtc:UpdateBrowserIndicators": ["webrtcUI"],
   },
--- a/mobile/android/chrome/content/content.js
+++ b/mobile/android/chrome/content/content.js
@@ -531,13 +531,13 @@ var AboutReaderListener = {
       sendAsyncMessage("Reader:UpdateReaderButton", { isArticle: true });
     } else if (forceNonArticle) {
       sendAsyncMessage("Reader:UpdateReaderButton", { isArticle: false });
     }
   },
 };
 AboutReaderListener.init();
 
-addMessageListener("RemoteLogins:fillForm", function(message) {
+addMessageListener("PasswordManager:fillForm", function(message) {
   LoginManagerContent.receiveMessage(message, content);
 });
 
 Services.obs.notifyObservers(this, "tab-content-frameloader-created");
--- a/mobile/android/components/BrowserCLH.js
+++ b/mobile/android/components/BrowserCLH.js
@@ -67,22 +67,22 @@ BrowserCLH.prototype = {
           },
         }, "invalidformsubmit");
 
         GeckoViewUtils.addLazyGetter(this, "LoginManagerParent", {
           module: "resource://gre/modules/LoginManagerParent.jsm",
           mm: [
             // PLEASE KEEP THIS LIST IN SYNC WITH THE DESKTOP LIST IN
             // BrowserGlue.jsm
-            "RemoteLogins:findLogins",
-            "RemoteLogins:findRecipes",
-            "RemoteLogins:onFormSubmit",
-            "RemoteLogins:autoCompleteLogins",
-            "RemoteLogins:removeLogin",
-            "RemoteLogins:insecureLoginFormPresent",
+            "PasswordManager:findLogins",
+            "PasswordManager:findRecipes",
+            "PasswordManager:onFormSubmit",
+            "PasswordManager:autoCompleteLogins",
+            "PasswordManager:removeLogin",
+            "PasswordManager:insecureLoginFormPresent",
             // PLEASE KEEP THIS LIST IN SYNC WITH THE DESKTOP LIST IN
             // BrowserGlue.jsm
           ],
         });
         GeckoViewUtils.addLazyGetter(this, "LoginManagerContent", {
           module: "resource://gre/modules/LoginManagerContent.jsm",
         });
 
--- a/toolkit/components/passwordmgr/LoginManagerContent.jsm
+++ b/toolkit/components/passwordmgr/LoginManagerContent.jsm
@@ -141,18 +141,18 @@ var LoginManagerContent = {
   },
 
   _getRandomId() {
     return Cc["@mozilla.org/uuid-generator;1"]
              .getService(Ci.nsIUUIDGenerator).generateUUID().toString();
   },
 
   _messages: [
-    "RemoteLogins:loginsFound",
-    "RemoteLogins:loginsAutoCompleted",
+    "PasswordManager:loginsFound",
+    "PasswordManager:loginsAutoCompleted",
   ],
 
   /**
    * WeakMap of the root element of a FormLike to the FormLike representing its fields.
    *
    * This is used to be able to lookup an existing FormLike for a given root element since multiple
    * calls to LoginFormFactory won't give the exact same object. When batching fills we don't always
    * want to use the most recent list of elements for a FormLike since we may end up doing multiple
@@ -231,40 +231,40 @@ var LoginManagerContent = {
 
     let deferred = PromiseUtils.defer();
     requestData.promise = deferred;
     this._requests.set(requestId, requestData);
     return deferred.promise;
   },
 
   receiveMessage(msg, topWindow) {
-    if (msg.name == "RemoteLogins:fillForm") {
+    if (msg.name == "PasswordManager:fillForm") {
       this.fillForm({
         topDocument: topWindow.document,
         loginFormOrigin: msg.data.loginFormOrigin,
         loginsFound: LoginHelper.vanillaObjectsToLogins(msg.data.logins),
         recipes: msg.data.recipes,
         inputElement: msg.objects.inputElement,
       });
       return;
     }
 
     let request = this._takeRequest(msg);
     switch (msg.name) {
-      case "RemoteLogins:loginsFound": {
+      case "PasswordManager:loginsFound": {
         let loginsFound = LoginHelper.vanillaObjectsToLogins(msg.data.logins);
         request.promise.resolve({
           form: request.form,
           loginsFound,
           recipes: msg.data.recipes,
         });
         break;
       }
 
-      case "RemoteLogins:loginsAutoCompleted": {
+      case "PasswordManager:loginsAutoCompleted": {
         let loginsFound = LoginHelper.vanillaObjectsToLogins(msg.data.logins);
         let messageManager = msg.target;
         request.promise.resolve({ logins: loginsFound, messageManager });
         break;
       }
     }
   },
 
@@ -289,17 +289,17 @@ var LoginManagerContent = {
 
     // XXX Weak??
     let requestData = { form };
     let messageData = { formOrigin,
                         actionOrigin,
                         options };
 
     return this._sendRequest(messageManager, requestData,
-                             "RemoteLogins:findLogins",
+                             "PasswordManager:findLogins",
                              messageData);
   },
 
   _autoCompleteSearchAsync(aSearchString, aPreviousResult,
                            aElement, aRect) {
     let doc = aElement.ownerDocument;
     let form = LoginFormFactory.createFromField(aElement);
     let win = doc.defaultView;
@@ -320,17 +320,17 @@ var LoginManagerContent = {
                         searchString: aSearchString,
                         previousResult,
                         rect: aRect,
                         isSecure: InsecurePasswordUtils.isFormSecure(form),
                         isPasswordField: aElement.type == "password",
     };
 
     return this._sendRequest(messageManager, requestData,
-                             "RemoteLogins:autoCompleteLogins",
+                             "PasswordManager:autoCompleteLogins",
                              messageData);
   },
 
   setupEventListeners(global) {
     global.addEventListener("pageshow", (event) => {
       this.onPageShow(event);
     });
   },
@@ -546,17 +546,17 @@ var LoginManagerContent = {
       let hasLoginForm = ChromeUtils.nondeterministicGetWeakSetKeys(rootElsWeakSet)
                                     .filter(el => el.isConnected).length > 0;
       return (hasLoginForm && !thisWindow.isSecureContext) ||
              Array.some(thisWindow.frames,
                         frame => hasInsecureLoginForms(frame));
     };
 
     let messageManager = topWindow.docShell.messageManager;
-    messageManager.sendAsyncMessage("RemoteLogins:insecureLoginFormPresent", {
+    messageManager.sendAsyncMessage("PasswordManager:insecureLoginFormPresent", {
       hasInsecureLoginForms: hasInsecureLoginForms(topWindow),
     });
   },
 
   /**
    * Perform a password fill upon user request coming from the parent process.
    * The fill will be in the form previously identified during page navigation.
    *
@@ -1044,17 +1044,17 @@ var LoginManagerContent = {
                             null;
 
     // Make sure to pass the opener's top ID in case it was in a frame.
     let openerTopWindowID = null;
     if (win.opener) {
       openerTopWindowID = win.opener.top.windowUtils.outerWindowID;
     }
 
-    messageManager.sendAsyncMessage("RemoteLogins:onFormSubmit",
+    messageManager.sendAsyncMessage("PasswordManager:onFormSubmit",
                                     { hostname,
                                       formSubmitURL,
                                       usernameField: mockUsername,
                                       newPasswordField: mockPassword,
                                       oldPasswordField: mockOldPassword,
                                       openerTopWindowID,
                                     });
   },
@@ -1687,17 +1687,17 @@ UserAutoCompleteResult.prototype = {
     this.matchCount--;
     if (this.defaultIndex > this.logins.length) {
       this.defaultIndex--;
     }
 
     if (removeFromDB) {
       if (this._messageManager) {
         let vanilla = LoginHelper.loginToVanillaObject(removedLogin);
-        this._messageManager.sendAsyncMessage("RemoteLogins:removeLogin",
+        this._messageManager.sendAsyncMessage("PasswordManager:removeLogin",
                                               { login: vanilla });
       } else {
         Services.logins.removeLogin(removedLogin);
       }
     }
   },
 };
 
--- a/toolkit/components/passwordmgr/LoginManagerParent.jsm
+++ b/toolkit/components/passwordmgr/LoginManagerParent.jsm
@@ -67,54 +67,54 @@ var LoginManagerParent = {
     return LoginHelper.dedupeLogins(logins, ["username"], resolveBy, formOrigin);
   },
 
   // Listeners are added in BrowserGlue.jsm on desktop
   // and in BrowserCLH.js on mobile.
   receiveMessage(msg) {
     let data = msg.data;
     switch (msg.name) {
-      case "RemoteLogins:findLogins": {
+      case "PasswordManager:findLogins": {
         // TODO Verify msg.target's principals against the formOrigin?
         this.sendLoginDataToChild(data.options.showMasterPassword,
                                   data.formOrigin,
                                   data.actionOrigin,
                                   data.requestId,
                                   msg.target.messageManager);
         break;
       }
 
-      case "RemoteLogins:findRecipes": {
+      case "PasswordManager:findRecipes": {
         let formHost = (new URL(data.formOrigin)).host;
         return this._recipeManager.getRecipesForHost(formHost);
       }
 
-      case "RemoteLogins:onFormSubmit": {
+      case "PasswordManager:onFormSubmit": {
         // TODO Verify msg.target's principals against the formOrigin?
         this.onFormSubmit(data.hostname,
                           data.formSubmitURL,
                           data.usernameField,
                           data.newPasswordField,
                           data.oldPasswordField,
                           data.openerTopWindowID,
                           msg.target);
         break;
       }
 
-      case "RemoteLogins:insecureLoginFormPresent": {
+      case "PasswordManager:insecureLoginFormPresent": {
         this.setHasInsecureLoginForms(msg.target, data.hasInsecureLoginForms);
         break;
       }
 
-      case "RemoteLogins:autoCompleteLogins": {
+      case "PasswordManager:autoCompleteLogins": {
         this.doAutocompleteSearch(data, msg.target);
         break;
       }
 
-      case "RemoteLogins:removeLogin": {
+      case "PasswordManager:removeLogin": {
         let login = LoginHelper.vanillaObjectToLogin(data.login);
         AutoCompletePopup.removeLogin(login);
         break;
       }
     }
 
     return undefined;
   },
@@ -136,17 +136,17 @@ var LoginManagerParent = {
       }
     }
 
     // Convert the array of nsILoginInfo to vanilla JS objects since nsILoginInfo
     // doesn't support structured cloning.
     let jsLogins = [LoginHelper.loginToVanillaObject(login)];
 
     let objects = inputElement ? {inputElement} : null;
-    browser.messageManager.sendAsyncMessage("RemoteLogins:fillForm", {
+    browser.messageManager.sendAsyncMessage("PasswordManager:fillForm", {
       loginFormOrigin,
       logins: jsLogins,
       recipes,
     }, objects);
   },
 
   /**
    * Send relevant data (e.g. logins and recipes) to the child process (LoginManagerContent).
@@ -162,17 +162,17 @@ var LoginManagerParent = {
         recipes = recipeManager.getRecipesForHost(formHost);
       } catch (ex) {
         // Some schemes e.g. chrome aren't supported by URL
       }
     }
 
     if (!showMasterPassword && !Services.logins.isLoggedIn) {
       try {
-        target.sendAsyncMessage("RemoteLogins:loginsFound", {
+        target.sendAsyncMessage("PasswordManager:loginsFound", {
           requestId,
           logins: [],
           recipes,
         });
       } catch (e) {
         log("error sending message to target", e);
       }
       return;
@@ -188,17 +188,17 @@ var LoginManagerParent = {
                                                 Ci.nsISupportsWeakReference]),
 
         observe(subject, topic, data) {
           log("Got deferred sendLoginDataToChild notification:", topic);
           // Only run observer once.
           Services.obs.removeObserver(this, "passwordmgr-crypto-login");
           Services.obs.removeObserver(this, "passwordmgr-crypto-loginCanceled");
           if (topic == "passwordmgr-crypto-loginCanceled") {
-            target.sendAsyncMessage("RemoteLogins:loginsFound", {
+            target.sendAsyncMessage("PasswordManager:loginsFound", {
               requestId,
               logins: [],
               recipes,
             });
             return;
           }
 
           self.sendLoginDataToChild(showMasterPassword, formOrigin, actionOrigin,
@@ -217,17 +217,17 @@ var LoginManagerParent = {
     }
 
     let logins = this._searchAndDedupeLogins(formOrigin, actionOrigin);
 
     log("sendLoginDataToChild:", logins.length, "deduped logins");
     // Convert the array of nsILoginInfo to vanilla JS objects since nsILoginInfo
     // doesn't support structured cloning.
     var jsLogins = LoginHelper.loginsToVanillaObjects(logins);
-    target.sendAsyncMessage("RemoteLogins:loginsFound", {
+    target.sendAsyncMessage("PasswordManager:loginsFound", {
       requestId,
       logins: jsLogins,
       recipes,
     });
   },
 
   doAutocompleteSearch({ formOrigin, actionOrigin,
                          searchString, previousResult,
@@ -239,17 +239,17 @@ var LoginManagerParent = {
     // Cancel if we unsuccessfully prompted for the master password too recently.
     if (!Services.logins.isLoggedIn) {
       let timeDiff = Date.now() - this._lastMPLoginCancelled;
       if (timeDiff < this._repromptTimeout) {
         log("Not searching logins for autocomplete since the master password " +
             `prompt was last cancelled ${Math.round(timeDiff / 1000)} seconds ago.`);
         // Send an empty array to make LoginManagerContent clear the
         // outstanding request it has temporarily saved.
-        target.messageManager.sendAsyncMessage("RemoteLogins:loginsAutoCompleted", {
+        target.messageManager.sendAsyncMessage("PasswordManager:loginsAutoCompleted", {
           requestId,
           logins: [],
         });
         return;
       }
     }
 
     let searchStringLower = searchString.toLowerCase();
@@ -277,17 +277,17 @@ var LoginManagerParent = {
         return true;
       }
       return match && match.toLowerCase().startsWith(searchStringLower);
     });
 
     // Convert the array of nsILoginInfo to vanilla JS objects since nsILoginInfo
     // doesn't support structured cloning.
     var jsLogins = LoginHelper.loginsToVanillaObjects(matchingLogins);
-    target.messageManager.sendAsyncMessage("RemoteLogins:loginsAutoCompleted", {
+    target.messageManager.sendAsyncMessage("PasswordManager:loginsAutoCompleted", {
       requestId,
       logins: jsLogins,
     });
   },
 
   onFormSubmit(hostname, formSubmitURL,
                usernameField, newPasswordField,
                oldPasswordField, openerTopWindowID,
--- a/toolkit/components/passwordmgr/LoginRecipes.jsm
+++ b/toolkit/components/passwordmgr/LoginRecipes.jsm
@@ -232,17 +232,17 @@ var LoginRecipesContent = {
       if (recipes) {
         return recipes;
       }
     }
 
     let mm = win.docShell.messageManager;
 
     log.warn("getRecipes: falling back to a synchronous message for:", aHost);
-    recipes = mm.sendSyncMessage("RemoteLogins:findRecipes", { formOrigin: aHost })[0];
+    recipes = mm.sendSyncMessage("PasswordManager:findRecipes", { formOrigin: aHost })[0];
     this.cacheRecipes(aHost, win, recipes);
 
     return recipes;
   },
 
   /**
    * @param {Set} aRecipes - Possible recipes that could apply to the form
    * @param {FormLike} aForm - We use a form instead of just a URL so we can later apply
--- a/toolkit/components/passwordmgr/test/mochitest/pwmgr_common_parent.js
+++ b/toolkit/components/passwordmgr/test/mochitest/pwmgr_common_parent.js
@@ -148,11 +148,11 @@ addMessageListener("isLoggedIn", () => {
 addMessageListener("setMasterPassword", ({ enable }) => {
   if (enable) {
     LoginTestUtils.masterPassword.enable();
   } else {
     LoginTestUtils.masterPassword.disable();
   }
 });
 
-Services.mm.addMessageListener("RemoteLogins:onFormSubmit", function onFormSubmit(message) {
+Services.mm.addMessageListener("PasswordManager:onFormSubmit", function onFormSubmit(message) {
   sendAsyncMessage("formSubmissionProcessed", message.data, message.objects);
 });
--- a/toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html
+++ b/toolkit/components/passwordmgr/test/mochitest/test_formless_submit.html
@@ -36,17 +36,17 @@ add_task(async function setup() {
 
 const DEFAULT_ORIGIN = "http://mochi.test:8888";
 const TESTCASES = [
   {
     // Inputs
     document: `<input type=password value="pass1">`,
     inputIndexForFormLike: 0,
 
-    // Expected outputs similar to RemoteLogins:onFormSubmit
+    // Expected outputs similar to PasswordManager:onFormSubmit
     hostname: DEFAULT_ORIGIN,
     formSubmitURL: DEFAULT_ORIGIN,
     usernameFieldValue: null,
     newPasswordFieldValue: "pass1",
     oldPasswordFieldValue: null,
   },
   {
     document: `<input value="user1">
@@ -145,17 +145,17 @@ add_task(async function test() {
     let formLike = LoginFormFactory.createFromField(inputForFormLike);
 
     info("Calling _onFormSubmit with FormLike");
     let processedPromise = getSubmitMessage();
     LoginManagerContent._onFormSubmit(formLike);
 
     let submittedResult = await processedPromise;
 
-    // Check data sent via RemoteLogins:onFormSubmit
+    // Check data sent via PasswordManager:onFormSubmit
     is(submittedResult.hostname, tc.hostname, "Check hostname");
     is(submittedResult.formSubmitURL, tc.formSubmitURL, "Check formSubmitURL");
 
     if (tc.usernameFieldValue === null) {
       is(submittedResult.usernameField, tc.usernameFieldValue, "Check usernameField");
     } else {
       is(submittedResult.usernameField.value, tc.usernameFieldValue, "Check usernameField");
     }
--- a/toolkit/components/passwordmgr/test/mochitest/test_formless_submit_navigation.html
+++ b/toolkit/components/passwordmgr/test/mochitest/test_formless_submit_navigation.html
@@ -45,17 +45,17 @@ const SCRIPTS = {
   PUSHSTATE: `history.pushState({}, "Pushed state", "?pushed");`,
   WINDOW_LOCATION: `window.location = "data:text/html;charset=utf-8,window.location";`,
 };
 const TESTCASES = [
   {
     // Inputs
     document: `<input type=password value="pass1">`,
 
-    // Expected outputs similar to RemoteLogins:onFormSubmit
+    // Expected outputs similar to PasswordManager:onFormSubmit
     hostname: DEFAULT_ORIGIN,
     formSubmitURL: DEFAULT_ORIGIN,
     usernameFieldValue: null,
     newPasswordFieldValue: "pass1",
     oldPasswordFieldValue: null,
   },
   {
     document: `<input value="user1">
@@ -151,17 +151,17 @@ add_task(async function test() {
       // Wait for the form to be processed before trying to submit.
       await promiseFormsProcessed();
       let processedPromise = getSubmitMessage();
       info("Running " + scriptName + " script to cause a submission");
       frameDoc.defaultView.eval(SCRIPTS[scriptName]);
 
       let submittedResult = await processedPromise;
 
-      // Check data sent via RemoteLogins:onFormSubmit
+      // Check data sent via PasswordManager:onFormSubmit
       is(submittedResult.hostname, tc.hostname, "Check hostname");
       is(submittedResult.formSubmitURL, tc.formSubmitURL, "Check formSubmitURL");
 
       if (tc.usernameFieldValue === null) {
         is(submittedResult.usernameField, tc.usernameFieldValue, "Check usernameField");
       } else {
         is(submittedResult.usernameField.value, tc.usernameFieldValue, "Check usernameField");
       }
--- a/toolkit/components/satchel/AutoCompletePopup.jsm
+++ b/toolkit/components/satchel/AutoCompletePopup.jsm
@@ -148,17 +148,17 @@ this.AutoCompletePopup = {
         break;
       }
     }
   },
 
   // Along with being called internally by the receiveMessage handler,
   // this function is also called directly by the login manager, which
   // uses a single message to fill in the autocomplete results. See
-  // "RemoteLogins:autoCompleteLogins".
+  // "PasswordManager:autoCompleteLogins".
   showPopupWithResults({ browser, rect, dir, results }) {
     if (!results.length || this.openedPopup) {
       // We shouldn't ever be showing an empty popup, and if we
       // already have a popup open, the old one needs to close before
       // we consider opening a new one.
       return;
     }