Skip to content

window.ethereum.request({method: 'eth_requestAccounts'}) hangs indifinitely on some sites after installing the 8.0.7 update #9234

@klesun

Description

@klesun

Hi.
Continuing my thread from #8077 (comment)

I found the stack trace that seems to be coming from your extension.

inpage.js:15 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': Symbol(Symbol.toStringTag) could not be cloned.
    at o._write (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:7404)
    at b (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:27879)
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:30995
    at o.v.write (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:31022)
    at t.exports.y (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:20323)
    at h (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:8:21103)
    at t.exports.s.emit (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:8:24089)
    at _ (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:15164)
    at w (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:14979)
    at t.exports.b.push (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/inpage.js:15:15790)

This does not seem to happen in all sites, I'm still searching for what of our actions cause pageScript to yield this error.

Checked on few pcs of my colleagues, they all had metamask working ok with our dapp in 8.0.6, but in 8.0.7 this issue appeared.

Not sure how, but this seems to be related to when we call jQuery $.ajax() to fetch our server data. It seems to somehow get into your _runMiddleware() function...

And the curious thing is that issue only happens when I set this.web3 = window.web3 in a Vue component, even without doing anything with it. Could there be some mutation observer or proxy magic happening with window.web3 object that conflicts with Vue reactive properties?

Here is a more complete stack trace if that helps:
(source of the stack trace: https://drive.google.com/file/d/1n39-kkRIRi0hDtvSvYrmrFcyazwn84eb/view?usp=sharing)


o._write | @ | inpage.js:formatted:5385
-- | -- | --
  | b | @ | inpage.js:formatted:6447
  | (anonymous) | @ | inpage.js:formatted:6599
  | v.write | @ | inpage.js:formatted:6601
  | y | @ | inpage.js:formatted:6071
  | h | @ | inpage.js:formatted:3752
  | s.emit | @ | inpage.js:formatted:3905
  | _ | @ | inpage.js:formatted:5817
  | w | @ | inpage.js:formatted:5811
  | b.push | @ | inpage.js:formatted:5843
  | _write | @ | inpage.js:formatted:5144
  | b | @ | inpage.js:formatted:6447
  | (anonymous) | @ | inpage.js:formatted:6599
  | v.write | @ | inpage.js:formatted:6601
  | y | @ | inpage.js:formatted:6071
  | h | @ | inpage.js:formatted:3752
  | s.emit | @ | inpage.js:formatted:3905
  | _ | @ | inpage.js:formatted:5817
  | w | @ | inpage.js:formatted:5811
  | b.push | @ | inpage.js:formatted:5843
  | middleware | @ | inpage.js:formatted:4977
  | (anonymous) | @ | inpage.js:formatted:1915
  | (anonymous) | @ | inpage.js:formatted:513
  | c | @ | inpage.js:formatted:470
  | (anonymous) | @ | inpage.js:formatted:474
  | _e | @ | inpage.js:formatted:511
  | (anonymous) | @ | inpage.js:formatted:528
  | (anonymous) | @ | inpage.js:formatted:482
  | _runMiddlewareDown | @ | inpage.js:formatted:1905
  | (anonymous) | @ | inpage.js:formatted:1889
  | n | @ | inpage.js:formatted:1590
  | Ir | @ | inpage.js:formatted:1597
  | _runMiddleware | @ | inpage.js:formatted:1889
  | _handle | @ | inpage.js:formatted:1878
  | handle | @ | inpage.js:formatted:1854
  | _rpcRequest | @ | inpage.js:formatted:2268
  | (anonymous) | @ | inpage.js:formatted:2230
  | request | @ | inpage.js:formatted:2229
  | get | @ | inpage.js:formatted:102
  | isPlainObject | @ | vue.runtime.esm.js?2b0e:64
  | observe | @ | vue.runtime.esm.js?2b0e:984
  | reactiveSetter | @ | vue.runtime.esm.js?2b0e:1054
  | proxySetter | @ | vue.runtime.esm.js?2b0e:4631
  | loaded | @ | LoginManagerEmail.vue?1dd4:230
  | created | @ | LoginManagerEmail.vue?1dd4:223
  | invokeWithErrorHandling | @ | vue.runtime.esm.js?2b0e:1854
  | callHook | @ | vue.runtime.esm.js?2b0e:4219
  | Vue._init | @ | vue.runtime.esm.js?2b0e:5008
  | LoginManagerEmail | @ | vue.runtime.esm.js?2b0e:5154
  | createComponentInstanceForVnode | @ | vue.runtime.esm.js?2b0e:3283
  | init | @ | vue.runtime.esm.js?2b0e:3114
  | createComponent | @ | vue.runtime.esm.js?2b0e:5978
  | createElm | @ | vue.runtime.esm.js?2b0e:5925
  | createChildren | @ | vue.runtime.esm.js?2b0e:6053
  | createElm | @ | vue.runtime.esm.js?2b0e:5954
  | patch | @ | vue.runtime.esm.js?2b0e:6477
  | Vue._update | @ | vue.runtime.esm.js?2b0e:3945
  | updateComponent | @ | vue.runtime.esm.js?2b0e:4066
  | get | @ | vue.runtime.esm.js?2b0e:4479
  | Watcher | @ | vue.runtime.esm.js?2b0e:4468
  | mountComponent | @ | vue.runtime.esm.js?2b0e:4073
  | Vue.$mount | @ | vue.runtime.esm.js?2b0e:8415
  | init | @ | vue.runtime.esm.js?2b0e:3118
  | createComponent | @ | vue.runtime.esm.js?2b0e:5978
  | createElm | @ | vue.runtime.esm.js?2b0e:5925
  | patch | @ | vue.runtime.esm.js?2b0e:6516
  | Vue._update | @ | vue.runtime.esm.js?2b0e:3945
  | updateComponent | @ | vue.runtime.esm.js?2b0e:4066
  | get | @ | vue.runtime.esm.js?2b0e:4479
  | Watcher | @ | vue.runtime.esm.js?2b0e:4468
  | mountComponent | @ | vue.runtime.esm.js?2b0e:4073
  | Vue.$mount | @ | vue.runtime.esm.js?2b0e:8415
  | eval | @ | LoginManager.ts?00fa:108
  | eval | @ | PopupManager.ts?0b08:18
  | _show | @ | TemplateManager.ts?9433:410
  | eval | @ | TemplateManager.ts?9433:267
  | success | @ | TemplateManager.ts?9433:304
  | i | @ | jquery-3.2.1.min.js:2
  | fireWith | @ | jquery-3.2.1.min.js:2
  | A | @ | jquery-3.2.1.min.js:4
  | (anonymous) | @ | jquery-3.2.1.min.js:4
  | load (async) |   |  
  | send | @ | jquery-3.2.1.min.js:4
  | ajax | @ | jquery-3.2.1.min.js:4
  | load_pack | @ | TemplateManager.ts?9433:291
  | load_pack_and_show_default_template | @ | TemplateManager.ts?9433:262
  | show | @ | TemplateManager.ts?9433:255
  | show | @ | PopupManager.ts?0b08:9
  | runLogIn | @ | LoginManager.ts?00fa:83
  | eval | @ | login.ts?2d00:12
  | _show | @ | TemplateManager.ts?9433:410
  | eval | @ | TemplateManager.ts?9433:267
  | success | @ | TemplateManager.ts?9433:304
  | i | @ | jquery-3.2.1.min.js:2
  | fireWith | @ | jquery-3.2.1.min.js:2
  | A | @ | jquery-3.2.1.min.js:4
  | (anonymous) | @ | jquery-3.2.1.min.js:4
  | load (async) |   |  
  | send | @ | jquery-3.2.1.min.js:4
  | ajax | @ | jquery-3.2.1.min.js:4
  | load_pack | @ | TemplateManager.ts?9433:291
  | load_pack_and_show_default_template | @ | TemplateManager.ts?9433:262
  | show | @ | TemplateManager.ts?9433:255
  | process | @ | login.ts?2d00:9


Metadata

Metadata

Assignees

No one assigned

    Labels

    Sev1-highHigh severity; partial loss of service with severe impact upon users, with no workaround.type-bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions