From b68ff380282e9fbcd9fcbb07d803660368ed92cd Mon Sep 17 00:00:00 2001 From: Xmader Date: Mon, 10 May 2021 10:55:24 -0400 Subject: [PATCH] fix: mp3 & midi download The result differed as connection speed differs. race condition: this script code and `webpackChunkmusescore_es6` chunks --- src/wrapper.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/wrapper.js b/src/wrapper.js index 7bb34d7..10ed72b 100644 --- a/src/wrapper.js +++ b/src/wrapper.js @@ -30,10 +30,11 @@ function getRandL () { // script loader new Promise(resolve => { - const id = '' + Math.random(); - w[id] = resolve; - - const stackN = 9 + const d = new Image() + document.body.prepend(d) + resolve(d) +}).then(d => { + const stackN = 10 let loaderIntro = '' for (let i = 0; i < stackN; i++) { loaderIntro += `(function ${getRandL()}(){` @@ -41,12 +42,10 @@ new Promise(resolve => { const loaderOutro = '})()'.repeat(stackN) const mockUrl = "https://c.amazon-adsystem.com/aax2/apstag.js" - setTimeout(`${loaderIntro}const d=new Image();window['${id}'](d);delete window['${id}'];document.body.prepend(d)${loaderOutro}//# sourceURL=${mockUrl}`) -}).then(d => { d.style.display = 'none'; d.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; d.once = false; - d.setAttribute('onload', `if(this.once)return;this.once=true;this.remove();const GM=window['${gmId}'];delete window['${gmId}'];(` + function a () { + d.setAttribute('onload', `const self=this;${loaderIntro}if(self.once)return;self.once=true;self.remove();const GM=window['${gmId}'];delete window['${gmId}'];(` + function a () { /** script code here */ -}.toString() + ')()')}) \ No newline at end of file +}.toString() + `)()${loaderOutro}//# sourceURL=${mockUrl}`)}) \ No newline at end of file