Hi.
Continuing my thread from https://github.com/MetaMask/metamask-extension/issues/8077#issuecomment-674127803
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
I'm going to fix this asap, but until I do you can experience the issue in your browser by visiting:
https://blockchaincuties.com/login
Seems related to https://github.com/MetaMask/metamask-extension/issues/6080.
Thank you for creating an issue, @klesun. We will investigate and follow up!
I was able to reproduce this issue by creating a Symbol, and using it as a property of window.web3 on a site where our web3 library is injected.
Most helpful comment
I was able to reproduce this issue by creating a Symbol, and using it as a property of
window.web3on a site where ourweb3library is injected.