ソースを参照

fix: GM.xmlHttpRequest not resolving (#2427)

uohhh 1 週間 前
コミット
96c9bf22a6
1 ファイル変更6 行追加6 行削除
  1. 6 6
      src/injected/web/requests.js

+ 6 - 6
src/injected/web/requests.js

@@ -205,6 +205,12 @@ export function onRequestCreate(opts, context, fileName) {
     anonymous = !withCredentials,
     [UPLOAD]: upload,
   } = opts;
+  // setting opts.onload and onerror before EVENTS_TO_NOTIFY
+  if (context.async) res = new SafePromise((resolve, reject) => {
+    const { [kOnload]: onload, [kOnerror]: onerror } = opts;
+    opts[kOnload] = onload ? v => { resolve(v); onload(v); } : resolve;
+    opts[kOnerror] = onerror ? v => { reject(v); onerror(v); } : reject;
+  });
   for (let i = 0, obj, key, val, passes = upload && isObject(upload) ? 2 : 1; i < passes; i++) {
     obj = i ? nullObjFrom(upload) : opts;
     for (key of EVENTS_TO_NOTIFY) {
@@ -214,12 +220,6 @@ export function onRequestCreate(opts, context, fileName) {
       }
     }
   }
-  // setting opts.onload and onerror before EVENTS_TO_NOTIFY
-  if (context.async) res = new SafePromise((resolve, reject) => {
-    const { [kOnload]: onload, [kOnerror]: onerror } = opts;
-    opts[kOnload] = onload ? v => { resolve(v); onload(v); } : resolve;
-    opts[kOnerror] = onerror ? v => { reject(v); onerror(v); } : reject;
-  });
   idMap[id] = req;
   data = data == null && []
     // `binary` is for TM/GM-compatibility + non-objects = must use a string `data`