test
This commit is contained in:
@@ -7,6 +7,33 @@ cat <<'EOF'
|
|||||||
(() => {
|
(() => {
|
||||||
const stamp = () => new Date().toISOString();
|
const stamp = () => new Date().toISOString();
|
||||||
const counts = {};
|
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 wrap = (name) => {
|
||||||
const original = window[name];
|
const original = window[name];
|
||||||
if (typeof original !== "function") {
|
if (typeof original !== "function") {
|
||||||
@@ -190,7 +217,15 @@ cat <<'EOF'
|
|||||||
userID = userID || await window.__deployTestReadLocalForage("IM_USERID") || "6087132211";
|
userID = userID || await window.__deployTestReadLocalForage("IM_USERID") || "6087132211";
|
||||||
console.log(`[probe ${stamp()}] manual setSqlWasmPath`, "/sql-wasm.wasm");
|
console.log(`[probe ${stamp()}] manual setSqlWasmPath`, "/sql-wasm.wasm");
|
||||||
if (typeof window.setSqlWasmPath === "function") {
|
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: "./" });
|
console.log(`[probe ${stamp()}] manual initDB start`, { userID, dataDir: "./" });
|
||||||
const timeout = new Promise((_, reject) => {
|
const timeout = new Promise((_, reject) => {
|
||||||
@@ -207,6 +242,7 @@ cat <<'EOF'
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
然后退出登录/刷新页面重新登录一次,观察是否打印:
|
然后退出登录/刷新页面重新登录一次,观察是否打印:
|
||||||
|
- new Worker / worker.postMessage / worker error
|
||||||
- initSDK / login / initDB / setSqlWasmPath called / returned
|
- initSDK / login / initDB / setSqlWasmPath called / returned
|
||||||
- window error / unhandledrejection
|
- window error / unhandledrejection
|
||||||
- counts 里的 initSDK/login 是否从 0 变成 1
|
- counts 里的 initSDK/login 是否从 0 变成 1
|
||||||
|
|||||||
Reference in New Issue
Block a user