etherwallet icon indicating copy to clipboard operation
etherwallet copied to clipboard

Issue with Firefox 57 with U2F enabled

Open bismark opened this issue 6 years ago • 16 comments

With Firefox 57.0b8, if I have security.webauth.u2f enabled under about:config, MyEtherWallet site fails to load with the following error in the log:


TypeError: setting getter-only property "u2f"
[Learn More]
etherwallet-master.js:5792:3
Error: [$injector:modulerr] Failed to instantiate module mewApp due to:
[$injector:nomod] Module 'mewApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mewApp
minErr/<@https://www.myetherwallet.com/js/etherwallet-master.js:31590:14
module/<@https://www.myetherwallet.com/js/etherwallet-master.js:33722:19
ensure@https://www.myetherwallet.com/js/etherwallet-master.js:33643:40
module@https://www.myetherwallet.com/js/etherwallet-master.js:33720:16
loadModules/<@https://www.myetherwallet.com/js/etherwallet-master.js:36339:24
forEach@https://www.myetherwallet.com/js/etherwallet-master.js:31884:13
loadModules@https://www.myetherwallet.com/js/etherwallet-master.js:36323:7
createInjector@https://www.myetherwallet.com/js/etherwallet-master.js:36239:21
doBootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:33378:22
bootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:33397:14
angularInit@https://www.myetherwallet.com/js/etherwallet-master.js:33287:7
[131]</</<@https://www.myetherwallet.com/js/etherwallet-master.js:64666:5
trigger@https://www.myetherwallet.com/js/etherwallet-master.js:34874:7

http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=mewApp&p1=%5B%24injector%3Anomod%5D%20Module%20'mewApp'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3DmewApp%0AminErr%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A31590%3A14%0Amodule%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33722%3A19%0Aensure%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33643%3A40%0Amodule%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33720%3A16%0AloadModules%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36339%3A24%0AforEach%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A31884%3A13%0AloadModules%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36323%3A7%0AcreateInjector%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36239%3A21%0AdoBootstrap%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33378%3A22%0Abootstrap%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33397%3A14%0AangularInit%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33287%3A7%0A%5B131%5D%3C%2F%3C%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A64666%3A5%0Atrigger%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A34874%3A7%0A
etherwallet-master.js:31590:14

bismark avatar Oct 13 '17 17:10 bismark

I knew MyEtherWallet didn’t load in my Firefox, but I didn’t know why—never thought to check the logs. Same problem here, Firefox 57.0b13 with U2F support enabled (which seems necessary to use the Ledger Nano S).

Issue still not fixed in current MEW v3.10.6.0.

Diti avatar Nov 01 '17 05:11 Diti

Same issue here with Firefox 58.0b1 and U2F enabled.

Techwolf12 avatar Nov 12 '17 20:11 Techwolf12

Just updated to Fx 57 Final, and with U2F enabled also suffering from the same problem.

tomwassenberg avatar Nov 14 '17 19:11 tomwassenberg

Confirming this:

TypeError: setting getter-only property "u2f"
[Learn More]
etherwallet-master.js:6890:3
[58]<
https://myetherwallet.com/js/etherwallet-master.js:6890:3
s
https://myetherwallet.com/js/etherwallet-master.js:1:246
e
https://myetherwallet.com/js/etherwallet-master.js:1:425
<anonymous>
https://myetherwallet.com/js/etherwallet-master.js:1:11

Error: [$injector:modulerr] Failed to instantiate module mewApp due to:
[$injector:nomod] Module 'mewApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mewApp
minErr/<@https://myetherwallet.com/js/etherwallet-master.js:33845:14
module/<@https://myetherwallet.com/js/etherwallet-master.js:35977:19
ensure@https://myetherwallet.com/js/etherwallet-master.js:35898:40
module@https://myetherwallet.com/js/etherwallet-master.js:35975:16
loadModules/<@https://myetherwallet.com/js/etherwallet-master.js:38594:24
forEach@https://myetherwallet.com/js/etherwallet-master.js:34139:13
loadModules@https://myetherwallet.com/js/etherwallet-master.js:38578:7
createInjector@https://myetherwallet.com/js/etherwallet-master.js:38494:21
doBootstrap@https://myetherwallet.com/js/etherwallet-master.js:35633:22
bootstrap@https://myetherwallet.com/js/etherwallet-master.js:35652:14
angularInit@https://myetherwallet.com/js/etherwallet-master.js:35542:7
[135]</</<@https://myetherwallet.com/js/etherwallet-master.js:66921:5
trigger@https://myetherwallet.com/js/etherwallet-master.js:37129:7

http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=mewApp&p1=%5B%24injector%3Anomod%5D%20Module%20'mewApp'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3DmewApp%0AminErr%2F%3C%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33845%3A14%0Amodule%2F%3C%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35977%3A19%0Aensure%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35898%3A40%0Amodule%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35975%3A16%0AloadModules%2F%3C%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A38594%3A24%0AforEach%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A34139%3A13%0AloadModules%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A38578%3A7%0AcreateInjector%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A38494%3A21%0AdoBootstrap%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35633%3A22%0Abootstrap%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35652%3A14%0AangularInit%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A35542%3A7%0A%5B135%5D%3C%2F%3C%2F%3C%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A66921%3A5%0Atrigger%40https%3A%2F%2Fmyetherwallet.com%2Fjs%2Fetherwallet-master.js%3A37129%3A7%0A
etherwallet-master.js:33845:14
minErr/<
https://myetherwallet.com/js/etherwallet-master.js:33845:14
loadModules/<
https://myetherwallet.com/js/etherwallet-master.js:38618:17
forEach
https://myetherwallet.com/js/etherwallet-master.js:34139:13
loadModules
https://myetherwallet.com/js/etherwallet-master.js:38578:7
createInjector
https://myetherwallet.com/js/etherwallet-master.js:38494:21
doBootstrap
https://myetherwallet.com/js/etherwallet-master.js:35633:22
bootstrap
https://myetherwallet.com/js/etherwallet-master.js:35652:14
angularInit
https://myetherwallet.com/js/etherwallet-master.js:35542:7
[135]</</<
https://myetherwallet.com/js/etherwallet-master.js:66921:5
trigger
https://myetherwallet.com/js/etherwallet-master.js:37129:7

screenshot from 2017-11-24 22-09-42

flukejones avatar Nov 24 '17 09:11 flukejones

Same issue here with latest Firefox 57 & Windows 10

TypeError: setting getter-only property "u2f"

etherwallet-master.js:7000:3
Error: [$injector:modulerr] Failed to instantiate module mewApp due to:
[$injector:nomod] Module 'mewApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mewApp
minErr/<@https://www.myetherwallet.com/js/etherwallet-master.js:27184:14
module/<@https://www.myetherwallet.com/js/etherwallet-master.js:29316:19
ensure@https://www.myetherwallet.com/js/etherwallet-master.js:29237:40
module@https://www.myetherwallet.com/js/etherwallet-master.js:29314:16
loadModules/<@https://www.myetherwallet.com/js/etherwallet-master.js:31933:24
forEach@https://www.myetherwallet.com/js/etherwallet-master.js:27478:13
loadModules@https://www.myetherwallet.com/js/etherwallet-master.js:31917:7
createInjector@https://www.myetherwallet.com/js/etherwallet-master.js:31833:21
doBootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:28972:22
bootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:28991:14
angularInit@https://www.myetherwallet.com/js/etherwallet-master.js:28881:7
[136]</</<@https://www.myetherwallet.com/js/etherwallet-master.js:60260:5
trigger@https://www.myetherwallet.com/js/etherwallet-master.js:30468:7

phenomax avatar Dec 05 '17 23:12 phenomax

Alright.

Firefox doesn't like line 67 in main.js:

window.u2f = u2f;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only

However, removing that line does not make it work in FF, and it breaks it in Chrome.

Clicking connect to Ledger does nothing. Clicking connect a second time throws:

Exception { 
name: "NS_ERROR_FAILURE"
message: ""
result: 2147500037
filename: "https://www.myetherwallet.com/js/etherwallet-master.js"
lineNumber: 10539
columnNumber: 0
data: null
stack: "[89]</</Ledger3.prototype.exchange@https://www.myetherwallet.com/js/etherwallet-master.js:10539:2
\n[88]</</LedgerEth.prototype.getAddress@https://www.myetherwallet.com/js/etherwallet-master.js:10335:2
\n decryptWalletCtrl/$scope.scanLedger@https://www.myetherwallet.com/js/etherwallet-master.js:1691:9
\n fn@https://www.myetherwallet.com/js/etherwallet-master.js line 59476 > Function:4:147
\n callback@https://www.myetherwallet.com/js/etherwallet-master.js:71261:17
\n $eval@https://www.myetherwallet.com/js/etherwallet-master.js:62348:16
\n $apply@https://www.myetherwallet.com/js/etherwallet-master.js:62448:20
\n ngEventHandler/<@https://www.myetherwallet.com/js/etherwallet-master.js:71266:17
\n defaultHandlerWrapper@https://www.myetherwallet.com/js/etherwallet-master.js:47747:3
\n eventHandler@https://www.myetherwallet.com/js/etherwallet-master.js:47735:9\n"
}

This is a generic error message with no documented meaning. It seems to occur when people are doing weird things like creating and loading iframes via AJAX, make synchronous json calls when they aren't allowed, etc. So obviously it doesn't like the back and forth with ledger still

tayvano avatar Dec 19 '17 12:12 tayvano

Integrating with FIDO U2F v1.1 JS API will allow a developer’s web app to support U2F on Firefox. That said, it’s important to understand that every FIDO U2F implementation can vary from the official specifications. For example, Mozilla did not fully implement the FIDO AppID and Facet Specification. Some sites supporting FIDO U2F have made accommodations for the incompleteness of Firefox’s implementation, but some have not.

https://www.yubico.com/2017/11/how-to-navigate-fido-u2f-in-firefox-quantum/

tayvano avatar Dec 19 '17 12:12 tayvano

https://github.com/prefiks/u2f4moz/issues/59

https://twitter.com/jamespugjones/status/912314952232267777

https://twitter.com/jamespugjones/status/912315652072812544

https://www.w3.org/TR/webauthn/

tayvano avatar Dec 19 '17 12:12 tayvano

Hey, @tayvano! Just wanted to let you know I stumbled over this ticket when the u2f integration in Nextcloud stopped working (same issue on FF) and the solution for us was to replace the u2f JavaScript lib: https://github.com/nextcloud/twofactor_u2f/pull/74

Hope that helps!

ChristophWurst avatar Dec 19 '17 13:12 ChristophWurst

Holy crap you just blew my mind. I was just digging thru your codebase and that npm package

Thanks for the tip. 💖 💖 💖

tayvano avatar Dec 19 '17 13:12 tayvano

update npm package for reference so i can stop clicking in circles: https://www.npmjs.com/package/u2f-api

tayvano avatar Dec 19 '17 13:12 tayvano

Hey! This issue’s been open for 2 months and nobody from MEW has been assigned to it yet. Does anyone know if they’re aware of the issue or not?

Diti avatar Dec 19 '17 15:12 Diti

I think they are aware of it: https://www.reddit.com/r/MyEtherWallet/comments/7cuz45/issue_with_firefox_57_with_u2f_enabled/

bismark avatar Dec 19 '17 17:12 bismark

Tried using MEW with my Nano S yesterday, and came up with this exact problem. Merry Christmas & Happy New Year MEW.

bokkypoobah avatar Dec 26 '17 14:12 bokkypoobah

The entire site doesn't work, nano s or none if visited on firefox with u2f enabled. I have to use chrome to visit MEW for this reason. Basically Firefox is now incompatible with MEW.

Techwolf12 avatar Dec 31 '17 13:12 Techwolf12

Same here, I thought it was due to the firefox version... but obviously it's not. Disabling u2f allows me to access MEW without issues.

elboletaire avatar Jan 09 '18 14:01 elboletaire