This commit is contained in:
vet
2026-04-14 12:57:10 +07:00
parent de947acc0f
commit 3332ec541a

View File

@@ -7,6 +7,33 @@ cat <<'EOF'
(() => {
const stamp = () => new Date().toISOString();
const counts = {};
if (!window.__deployTestWorkerWrapped) {
const NativeWorker = window.Worker;
window.Worker = function (url, options) {
console.log(`[probe ${stamp()}] new Worker`, { url: String(url), options });
const worker = new NativeWorker(url, options);
worker.addEventListener("error", (event) => {
console.error("[probe worker error]", {
message: event.message,
filename: event.filename,
lineno: event.lineno,
colno: event.colno,
});
});
worker.addEventListener("messageerror", (event) => {
console.error("[probe worker messageerror]", event);
});
const originalPostMessage = worker.postMessage.bind(worker);
worker.postMessage = (...args) => {
console.log(`[probe ${stamp()}] worker.postMessage`, { url: String(url), args });
return originalPostMessage(...args);
};
return worker;
};
window.Worker.prototype = NativeWorker.prototype;
window.__deployTestWorkerWrapped = true;
console.log("[probe] Worker: wrapped; reload page after installing this probe to catch SDK worker creation");
}
const wrap = (name) => {
const original = window[name];
if (typeof original !== "function") {
@@ -190,7 +217,15 @@ cat <<'EOF'
userID = userID || await window.__deployTestReadLocalForage("IM_USERID") || "6087132211";
console.log(`[probe ${stamp()}] manual setSqlWasmPath`, "/sql-wasm.wasm");
if (typeof window.setSqlWasmPath === "function") {
await window.setSqlWasmPath("/sql-wasm.wasm");
try {
const setPathTimeout = new Promise((_, reject) => {
setTimeout(() => reject(new Error("manual window.setSqlWasmPath timeout after 5000ms")), 5000);
});
await Promise.race([window.setSqlWasmPath("/sql-wasm.wasm"), setPathTimeout]);
console.log(`[probe ${stamp()}] manual setSqlWasmPath done`);
} catch (err) {
console.error(`[probe ${stamp()}] manual setSqlWasmPath failed`, err);
}
}
console.log(`[probe ${stamp()}] manual initDB start`, { userID, dataDir: "./" });
const timeout = new Promise((_, reject) => {
@@ -207,6 +242,7 @@ cat <<'EOF'
})();
然后退出登录/刷新页面重新登录一次,观察是否打印:
- new Worker / worker.postMessage / worker error
- initSDK / login / initDB / setSqlWasmPath called / returned
- window error / unhandledrejection
- counts 里的 initSDK/login 是否从 0 变成 1