@netless/window-manager 1.0.17 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/AppManager.ts +13 -2
- package/src/Register/storage.ts +6 -3
- package/src/index.ts +11 -1
package/package.json
CHANGED
package/src/AppManager.ts
CHANGED
|
@@ -745,8 +745,19 @@ export class AppManager {
|
|
|
745
745
|
public setMainViewFocusPath(scenePath?: string) {
|
|
746
746
|
const focusScenePath = scenePath || this.store.getMainViewScenePath();
|
|
747
747
|
if (focusScenePath) {
|
|
748
|
-
|
|
749
|
-
|
|
748
|
+
try {
|
|
749
|
+
setViewFocusScenePath(this.mainView, focusScenePath);
|
|
750
|
+
return this.mainView?.focusScenePath === focusScenePath;
|
|
751
|
+
} catch (error) {
|
|
752
|
+
const cause = error instanceof Error ? error : new Error(String(error));
|
|
753
|
+
this.Logger?.error(
|
|
754
|
+
`[WindowManager]: set main view focus scene path failed, ` +
|
|
755
|
+
`focusScenePath: ${focusScenePath}, ` +
|
|
756
|
+
`didRelease: ${Boolean((this.mainView as any).didRelease)}, ` +
|
|
757
|
+
`error: ${cause.message}, stack: ${cause.stack || ""}`
|
|
758
|
+
);
|
|
759
|
+
return false;
|
|
760
|
+
}
|
|
750
761
|
}
|
|
751
762
|
}
|
|
752
763
|
|
package/src/Register/storage.ts
CHANGED
|
@@ -8,8 +8,8 @@ export type Item = {
|
|
|
8
8
|
sourceCode: string;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
export const initDb = async () => {
|
|
12
|
-
db = await createDb();
|
|
11
|
+
export const initDb = async (onBlocked?: () => void) => {
|
|
12
|
+
db = await createDb(onBlocked);
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export const setItem = (key: string, val: any) => {
|
|
@@ -27,12 +27,15 @@ export const removeItem = (key: string) => {
|
|
|
27
27
|
return deleteRecord(db, key);
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
function createDb(): Promise<IDBDatabase> {
|
|
30
|
+
function createDb(onBlocked?: () => void): Promise<IDBDatabase> {
|
|
31
31
|
return new Promise((resolve, reject) => {
|
|
32
32
|
const request = indexedDB.open(DatabaseName, 2);
|
|
33
33
|
request.onerror = e => {
|
|
34
34
|
reject(e);
|
|
35
35
|
};
|
|
36
|
+
request.onblocked = () => {
|
|
37
|
+
onBlocked?.();
|
|
38
|
+
};
|
|
36
39
|
|
|
37
40
|
request.onupgradeneeded = (event: any) => {
|
|
38
41
|
const db = event.target.result as IDBDatabase;
|
package/src/index.ts
CHANGED
|
@@ -357,8 +357,14 @@ export class WindowManager
|
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
if (WindowManager.isCreated) {
|
|
360
|
+
manager?._roomLogger?.error(
|
|
361
|
+
"[WindowManager] mount duplicate check failed: isCreated=true"
|
|
362
|
+
);
|
|
360
363
|
throw new Error("[WindowManager]: Already created cannot be created again");
|
|
361
364
|
}
|
|
365
|
+
manager?._roomLogger?.info(
|
|
366
|
+
`[WindowManager] mount duplicate check passed: isCreated=${WindowManager.isCreated}`
|
|
367
|
+
);
|
|
362
368
|
|
|
363
369
|
this.debug = Boolean(debug);
|
|
364
370
|
if (manager?._roomLogger) {
|
|
@@ -440,7 +446,11 @@ export class WindowManager
|
|
|
440
446
|
);
|
|
441
447
|
}
|
|
442
448
|
try {
|
|
443
|
-
|
|
449
|
+
manager._roomLogger?.info("[WindowManager] indexedDB open start");
|
|
450
|
+
await initDb(() => {
|
|
451
|
+
manager?._roomLogger?.warn("[WindowManager] indexedDB open blocked");
|
|
452
|
+
});
|
|
453
|
+
manager._roomLogger?.info("[WindowManager] indexedDB open success");
|
|
444
454
|
} catch (error) {
|
|
445
455
|
manager._roomLogger?.warn(`[WindowManager] indexedDB open failed: ${error.message}`);
|
|
446
456
|
console.warn("[WindowManager]: indexedDB open failed");
|