metamask-extension icon indicating copy to clipboard operation
metamask-extension copied to clipboard

[Bug]: Not observing QR progress bar as expected in RC11.11.0

Open plasmacorral opened this issue 1 year ago • 1 comments

Describe the bug

Tested in Light and dark mode, and adding new device as well as signing and sending. Not once did I observe this progress bar in either the signature request or initial wallet binding. Firefox shows a console error when getting a signature request, but no errors appear in Chrome.

Chrome 117.0.5938.92 (no console errors observed) & Firefox 122.0.1 (console error below observed when trying to scan QR from hardware back to extension) in Mac Sonoma 14.2.1 Using Keystone V3 with Firmware 1.2.6 Dist build of commit 6d34630bb78be87da26ee45efad4fcf29d332b87

Expected behavior

With PR 20947 included, I was expecting to see a progress bar when scanning the signed TX of the PSD with Extension.

Screenshots/Recordings

Chrome: https://recordit.co/jF0Y7DmuTE Firefox: https://recordit.co/lns6OUFVTs

Screenshots from signature request:

Yellow spinner on open Accessing your camera with no progress bar

Screenshot from initial pairing: Initial pairing

Steps to reproduce

  1. Setup wallet
  2. Import QR hardware
  3. Attempt to send or sign with test dapp
  4. Scan QR from MetaMask with QR hardware
  5. Sign on QR hardware
  6. Tap Get signature
  7. Grant camera permission if needed
  8. Note that progress bar does not appear when scanning the QR from hardware back to MetaMask

Error messages or log output

e.mediaStreamIsTorchCompatible@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:85743
e.prototype.decodeFromStream/d</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:94343
i</u/</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84245
i</u/<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84350
a@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83064
promise callback*s@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83229
o</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83240
o<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83007
e.prototype.decodeFromStream@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:93226
e.prototype.decodeFromConstraints/d</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:93048
i</u/</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84245
i</u/<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84350
a@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83064
promise callback*s@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83229
o</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83240
o<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83007
e.prototype.decodeFromConstraints@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:92825
e.prototype.decodeFromVideoDevice/d</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:95082
i</u/</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84245
i</u/<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:84350
o</<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83262
o<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:83007
e.prototype.decodeFromVideoDevice@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1:94890
p/<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-3.js:1:388463
wl@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:264532
zu@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:289097
n.unstable_runWithPriority@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1:224240
Yi@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:232192
Fu@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:288853
Bu/<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:288764
D@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1:223623
x.port1.onmessage@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1:222367
EventHandlerNonNull*@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1:222291
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
requireRelative@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945:42
requireRelativeWithContext@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913:18
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1:225727
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
requireRelative@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945:42
requireRelativeWithContext@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913:18
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:186509
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
requireRelative@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945:42
requireRelativeWithContext@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913:18
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33:303866
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
requireRelative@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945:42
requireRelativeWithContext@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913:18
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-7.js:1:87814
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
requireRelative@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945:42
requireRelativeWithContext@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913:18
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-11.js:26:156219
setupProxy/n/e[t]@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1:693
internalRequire@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900:27
runModule@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13273:12
loadBundle/entryExports<@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13263:14
loadBundle@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13262:46
@moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-11.js:1:10
sentry-install.js:1:693
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    _ moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    logError moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:6912
    logSubErrors moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:6833
    levelMethod moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:6931
    newValue moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12462
    mediaStreamIsTorchCompatibleTrack moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    mediaStreamIsTorchCompatible moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    d moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    a moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    (Async: promise callback)
    s moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    decodeFromStream moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    d moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    a moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    (Async: promise callback)
    s moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    decodeFromConstraints moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    d moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    u moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    o moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    decodeFromVideoDevice moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-0.js:1
    p moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-3.js:1
    wl moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    zu moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    unstable_runWithPriority moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1
    Yi moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    Fu moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    Bu moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    D moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1
    onmessage moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1
    (Async: EventHandlerNonNull)
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    requireRelative moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945
    requireRelativeWithContext moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-2.js:1
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    requireRelative moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945
    requireRelativeWithContext moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    requireRelative moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945
    requireRelativeWithContext moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-1.js:33
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    requireRelative moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945
    requireRelativeWithContext moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-7.js:1
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    requireRelative moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12945
    requireRelativeWithContext moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12913
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-11.js:26
    t moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/sentry-install.js:1
    internalRequire moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:12900
    runModule moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13273
    entryExports moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13263
    loadBundle moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/runtime-lavamoat.js:13262
    <anonymous> moz-extension://42c8a8ca-a8c3-4c63-a815-41b0d0b9157d/ui-11.js:1

Version

11.11.0

Build type

None

Browser

Chrome, Firefox

Operating system

MacOS

Hardware wallet

Keystone

Additional context

No response

Severity

No response

plasmacorral avatar Feb 14 '24 03:02 plasmacorral

@plasmacorral You should scan an animated QR code by changing the derivation path to "Ledger Live". The progress bar dose not appear when scan static QR code.

renfengshi avatar Feb 18 '24 06:02 renfengshi

Manual testing steps Connect a hardware wallet. Connect your QR hardware wallet. Scan QR code.

I see reference to large data in the PR description, but the manual testing steps outlined in PR 20947 were not sufficient. For the sake of posterity, I will go back and add these important missing steps. Going forward, please make sure to include all necessary testing steps within the PR.

I can now confirm that when the QR being scanned from Keystone back into MetaMask is animated that there is a progress bar presented. I was able to confirm this by changing the derivation path in Keystone through 3 dots>Connect Software wallet>MetaMask>3dots>change derivation path and selecting Ledger Live

plasmacorral avatar Feb 21 '24 16:02 plasmacorral

QR must be animated on Keystone display to see this progress bar.

Notably, even large data like deploying an ERC721 from the test dapp that is animated when scanning into Keystone, presents a static QR when scanning the signature back into MetaMask.

plasmacorral avatar Feb 21 '24 16:02 plasmacorral

Reported this during retest: https://github.com/KeystoneHQ/keystone3-firmware/issues/556

plasmacorral avatar Feb 22 '24 17:02 plasmacorral