Closed Bug 1791415 Opened 3 years ago Closed 3 years ago

LastPass extension not working

Categories

(WebExtensions :: General, defect)

Firefox 106
defect

Tracking

(firefox-esr102 disabled, firefox106 disabled, firefox107 disabled, firefox108 fixed)

RESOLVED FIXED
108 Branch
Tracking Status
firefox-esr102 --- disabled
firefox106 --- disabled
firefox107 --- disabled
firefox108 --- fixed

People

(Reporter: neclimdul, Unassigned)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0

Steps to reproduce:

Trying to log into my lastpass account in Firefox Nightly has been broken for several weeks now. When ever I try to log in, the initial

Actual results:

The login looks like it initially works and it displays an animation like its loading my vault. The animation never completes and eventually it logs me back out.

Expected results:

Logged in and have access to my password vault.

Browser console log from firefox nightly

Got around to following what happens in the browser console. Not sure what to make of it but this is what I'm seeing. To confirm the "corruption" isn't something wrong with my account I tested in chrome and the current stable firefox release. Both worked without issue so this does seem to be something different in nightly?

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Widget: Gtk
Product: Firefox → Core
Component: Widget: Gtk → General
Product: Core → Firefox

(In reply to James Gilliland from comment #2)

Got around to following what happens in the browser console. Not sure what to make of it but this is what I'm seeing. To confirm the "corruption" isn't something wrong with my account I tested in chrome and the current stable firefox release. Both worked without issue so this does seem to be something different in nightly?

Thank you for the report James. Can you please confirm which exactly version of Nightly and release Firefox did you test this with, and which OS (linux distro)? Also, if we can't manage to reproduce, would you be willing to try with a fresh profile and/or using mozregression please?

Alex, can we please try to confirm this on Linux, and if you can reproduce, find the regression window right away?

Flags: needinfo?(neclimdul)
Product: Firefox → WebExtensions

Are you using a snap build of Firefox? NativeMessaging is not supported yet, until bug 1661935 gets resolved (along with additional changes to non-Firefox software in Ubuntu).

As a work-around, you can use a non-Snap version of Firefox.

Hello,

I could not reproduce the issue on either of the latest versions of Nightly (107.0a1/20220929214556), Beta (106.0b6/20220929195234) or Release (105.0.1/20220922151854) under Windows 10 x64 and Ubuntu 16.04 LTS. Note that these tested versions have been installed from the Mozilla FTP here: https://ftp.mozilla.org/pub/firefox/.

I’ve also tried reproducing the issue on the latest snap builds of Nightly (107.0a1/20220930023734 – canonical-002), Beta (106.0b6/20220929235759 - canonical-002) and Release (105.0.1/20220923151236 – canonical-002) but again with no success.

In all cases and tested builds, I can log into LastPass without issues from either the extension page that opens after installing the extension or via the login form from the extension pop-up. I’m kept logged in and not logged out without me doing so explicitly. Equally, the vault can be accessed without issues and the extension works as intended.

Good question about the snap. No, I use the snap for the stable(which works) but have nightly installed "normally" downloaded from https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly

On recreating it, just to make sure I just did the following steps to confirm.

  • Grabbed a different laptop, also with Ubuntu 22.04 installed.
  • Created an entirely new users. No firefox profiles or any other files in its home directory.
  • Downloaded a branch new nightly install from the above url
  • Installed the extension.
  • Tried to log in.

Same error.

So maybe its something with ubuntu 22.04? Its quite a bit different software stack from 16.04 so that wouldn't be surprising that it behaves different. Based on the error maybe they removed support for a deprecated encryption standard or something?

Flags: needinfo?(neclimdul)

The severity field is not set for this bug.
:rpl, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(lgreco)

Went back to test this today and logged in to the 105 and 108 at the same time. I noticed something I hadn't noticed before, the freeze happens at the point where it prompts me for a TOTP. A possibility then might be that Alex didn't have MFA enabled so didn't run into this issue?

Alex, are you able to confirm this on Ubuntu 22.04?

Went back to test this today and logged in to the 105 and 108 at the same time. I noticed something I hadn't noticed before, the freeze happens at the point where it prompts me for a TOTP. A possibility then might be that Alex didn't have MFA enabled so didn't run into this issue?

Are there any relevant logs in the global browser console and/or extension console (about:debugging > Inspect at the extension)? The initial screenshot suggests that the Native Messaging application cannot be found. So it could also be a bug with Lastpass (or your installation of it), and nothing to do with Firefox.

Hello,

Firstly, I just want to point out that the only available Linux I have access to, is Ubuntu 16.04 LTS, without the possibility of an update unfortunately.

As per Comment 9, I’ve set up MFA via the LastPass authenticator app on my phone. Now, each time, after I submit the email and password via the login form, I’m asked for a passcode. On the authenticator app I get a prompt to either accept or reject the login request and a I think a 1 minute timer to do this. Of course, I accept and I’m logged in without any issues and not logged out.

So I cannot reproduce the issue even so, at least on what OS I have available.

Tested on the latest Nightly (108.0a1/20221018213916) and Release (106.0/20221010110315) aas well as the latest available snap builds of Nightly (107.0a1/20221013022417 – canonical-002) and Release (106.0/20221014183137 – canonical-002).

As for errors in the browser console, I only get a “ExtensionError: No such native application com.lastpass.nplastpass”, on both the normal builds and the snap ones, but that does not hinder the login process or any other extension function it seems.

Hello again,

I managed to get a VM up and running with an Ubuntu 22.04.1 LTS Live CD and checked again. I still cannot reproduce the issue on my end. I can log in without issues and stay logged in (MFA is enabled, of course). The extension also functions as expected.

Tested on the latest Release (106.0.1/20221019185550), Beta (107.0b3/20221020202724) and Nightly (108.0a1/20221020215126) and their snap variants Release (106.0.1/20221020070818 – canonical-002), Beta (107.0b3/20221021002327 – canonical-002) and Nightly (108.0a1/20221021022220 – canonical-002).

So I did some tests and it was pretty confusing.

First confusion bit, a clean profile with just lastpass I was able to log in cleanly. But if I log in to my Firefox profile with just lastpass enabled it failed.

To try to and recreate that through regression testing I used the --profile-persistence=copy-first and logged in the first time and used that profile for each test. The bisect looked reasonable. Old build passed and it narrowed down around July with 104 which aligns with experience. I waited a bit b/c I was busy and wanted to make sure it didn't fix itself.

The final result also looks a little confusing looking at the debug log. I don't see anything about array methods but maybe I'm missing something.
I've rerun the bisect several times though and it comes back to this same revision each time.

44:55.77 INFO: Last good revision: 41cd304ad950ac66f7496ff2995467df09acb8b3
44:55.77 INFO: First bad revision: 9247e947c41c153a3a0d3180ba99e03e328c4f0e
44:55.77 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=41cd304ad950ac66f7496ff2995467df09acb8b3&tochange=9247e947c41c153a3a0d3180ba99e03e328c4f0e

That patch to bug 1739648 renamed groupBy / groupByToMap to group / groupToMap. The feature is Nightly-only.

"group" is very generic, and I see some occurrences of "group" in LastPass's source code, in 11 MB of JS files... It will be tough to determine whether there is an occurrence of "group" in it.
https://addons.mozilla.org/en-US/firefox/addon/lastpass-password-manager/

Given the regression range, I'm marking this as a regression of bug 1739648. I wonder how web-compatible the addition of "group" is.

James - could you try to put a breakpoint at the first script of LastPass, and run the following snippet to see if it "fixes" the bug?
Array.prototype.group = null;

and if it does, could you try to trace potential triggers of the issue? After running the next snippet, any access to "group" would report the stack trace to the devtools console.

Object.defineProperty(Array.prototype, "group", {
  get() {
    console.trace("group property was accessed?");
    // debugger; // uncomment to trigger debugger.
    return () => {};
  },
  set(value) {
    console.trace("group property was SET?");
    Object.defineProperty(this, "group", { value, enumerable: true, writable: true, configurable: true })
  },
  configurable: true,
  enumerable: true,
});
Regressed by: 1739648

James - see comment 14.

If using the devtools / debugger is too complicated, then an alternative could be to unzip the xpi of the add-on and put the snippet from comment 14 in a new JS file, and load that JS file before running other scripts. Then zip it, and load the add-on in a new profile at about:debugging. If you're not able to do that, let me know and I can try to create a special version for you.

So far, the reproduction steps in this bug have not been very precise. Could you write a step-by-step guide to reproduce the issue? A screen recording of your attempt to reproduce the bug may also help.

Flags: needinfo?(neclimdul)

Learned some new ways to use the browser debug so that was fun! That definitely fixed it and there are soooo many calls to group property.

The common trace formats are:

console.trace() group property was accessed? debugger eval code:3:13
    get debugger eval code:3
    lpisqueueable moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    lpMakeRequestReal moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    lpMakeRequest moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    (Async: setTimeout handler)
    lpMakeRequest moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    sendLpImprove moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/server.js:1
    extendSendImproveParams moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/platformBackground.js:1
    sendLpImprove moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/server.js:1
    Interfaces moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    a moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    _e moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    open moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    <anonymous> moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/initializeDropdown.js:1
    Interfaces moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    get_selected_tab moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
console.trace() group property was accessed? debugger eval code:3:13
    get debugger eval code:3
    lpisqueueable moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    lpMakeRequestReal moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    lpMakeRequest moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    (Async: setTimeout handler)
    lpMakeRequest moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    sendLpImprove moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/server.js:1
    extendSendImproveParams moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/platformBackground.js:1
    sendLpImprove moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/server.js:1
    Interfaces moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    a moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    _e moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    open moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    <anonymous> moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/initializeDropdown.js:1
    Interfaces moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    get_selected_tab moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1

Then what looks like a thousand or more calls that resemble this:

console.trace() group property was accessed? 246 debugger eval code:3:13
    get debugger eval code:3
    jQuery 2
    o moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    VaultItemBase moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    VaultItem moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    AccountBase moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    AccountBaseWithFields moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    Account moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/model.js:1
    M moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/controller.js:1
    initializeModel moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/controller.js:1
    Ee moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    a moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    (Async: setTimeout handler)
    a moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    _e moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    open moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/extensionDropdown.js:1
    <anonymous> moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/initializeDropdown.js:1
    Interfaces moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
    get_selected_tab moz-extension://e5b12fec-e74a-43d6-88d5-76c3a5d8785b/lpfulllib.js:1
Flags: needinfo?(neclimdul)

As far as reproducing I'm not sure I can be more precise, its just trying to log in.

  1. Open firefox nightly. Check about page to confirm on latest version.
  2. Click the last pass extension icon
  3. type my username and password, click Log In
  4. Enter MFA code, click Authenticate. "Remember me" state doesn't seem to matter, next step is same regardless of the value.
  5. See spinning vault icon. Eventually vault goes away and lastpass icon returns to logged out state.

I guess there's something special about my account that's triggering different code? Maybe the way I've grouped passwords or some random feature in sharing or something? I think its going to be really hard to narrow down further without just thrashing my account which I'm not keen on doing so hopefully those traces are enough.

Thanks for checking. Given the evidence and logs I am marking this as confirmed. I'll close this bug once the linked bug that disables the feature on Nightly lands.

Status: UNCONFIRMED → NEW
Depends on: 1799619
Ever confirmed: true

Set release status flags based on info from the regressing bug 1739648

I just noticed in the merge there is the javascript.options.experimental.array_grouping about:config option which is a heck of a lot easier to test. 🤣

Toggling that also fixes the bug so... another confirmation and a workaround of sorts.

Thanks for your help with investigating this issue James. As you can see in the other bug, this report helped with discovering that the new JavaScript feature was not web-compatible, and turning it off resolves issues in websites, not just the add-on here.

Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(lgreco)
Resolution: --- → FIXED
Target Milestone: --- → 108 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: