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
Hi.
Continuing my thread from #8077 (comment)
I found the stack trace that seems to be coming from your extension.
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.web3in a Vue component, even without doing anything with it. Could there be some mutation observer or proxy magic happening withwindow.web3object 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)