@lynker-desktop/electron-window-manager 0.0.8-alpha.7 → 0.0.9-alpha.0
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/common/index.d.ts +4 -0
- package/common/index.d.ts.map +1 -1
- package/esm/common/index.d.ts +4 -0
- package/esm/common/index.d.ts.map +1 -1
- package/esm/main/index.d.ts +17 -0
- package/esm/main/index.d.ts.map +1 -1
- package/esm/main/index.js +105 -15
- package/esm/main/index.js.map +1 -1
- package/esm/renderer/index.d.ts +95 -15
- package/esm/renderer/index.d.ts.map +1 -1
- package/esm/renderer/index.js +294 -135
- package/esm/renderer/index.js.map +1 -1
- package/main/index.d.ts +17 -0
- package/main/index.d.ts.map +1 -1
- package/main/index.js +105 -15
- package/main/index.js.map +1 -1
- package/package.json +2 -2
- package/renderer/index.d.ts +95 -15
- package/renderer/index.d.ts.map +1 -1
- package/renderer/index.js +294 -134
- package/renderer/index.js.map +1 -1
package/common/index.d.ts
CHANGED
|
@@ -42,6 +42,8 @@ export interface BWItem extends BrowserWindow {
|
|
|
42
42
|
_name: string;
|
|
43
43
|
/** 额外数据 */
|
|
44
44
|
_extraData?: string;
|
|
45
|
+
/** 初始化url */
|
|
46
|
+
_initUrl?: string;
|
|
45
47
|
}
|
|
46
48
|
export interface BVItem extends BrowserView {
|
|
47
49
|
id: number;
|
|
@@ -52,6 +54,8 @@ export interface BVItem extends BrowserView {
|
|
|
52
54
|
_name: string;
|
|
53
55
|
/** 额外数据 */
|
|
54
56
|
_extraData?: string;
|
|
57
|
+
/** 初始化url */
|
|
58
|
+
_initUrl?: string;
|
|
55
59
|
}
|
|
56
60
|
export {};
|
|
57
61
|
//# sourceMappingURL=index.d.ts.map
|
package/common/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAO,SAAQ,WAAW;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
package/esm/common/index.d.ts
CHANGED
|
@@ -42,6 +42,8 @@ export interface BWItem extends BrowserWindow {
|
|
|
42
42
|
_name: string;
|
|
43
43
|
/** 额外数据 */
|
|
44
44
|
_extraData?: string;
|
|
45
|
+
/** 初始化url */
|
|
46
|
+
_initUrl?: string;
|
|
45
47
|
}
|
|
46
48
|
export interface BVItem extends BrowserView {
|
|
47
49
|
id: number;
|
|
@@ -52,6 +54,8 @@ export interface BVItem extends BrowserView {
|
|
|
52
54
|
_name: string;
|
|
53
55
|
/** 额外数据 */
|
|
54
56
|
_extraData?: string;
|
|
57
|
+
/** 初始化url */
|
|
58
|
+
_initUrl?: string;
|
|
55
59
|
}
|
|
56
60
|
export {};
|
|
57
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAO,SAAQ,WAAW;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
package/esm/main/index.d.ts
CHANGED
|
@@ -14,6 +14,22 @@ export declare class WindowsManager {
|
|
|
14
14
|
preloadedBV: BVItem | null;
|
|
15
15
|
preloading: boolean;
|
|
16
16
|
webviewDomainWhiteList: string[];
|
|
17
|
+
/**
|
|
18
|
+
* webview 域名白名单
|
|
19
|
+
* 传入格式示例:
|
|
20
|
+
* [
|
|
21
|
+
* 'example.com', // 精确匹配 example.com
|
|
22
|
+
* '.example.com', // 匹配所有 example.com 的子域名,如 a.example.com、b.example.com
|
|
23
|
+
* 'sub.domain.com', // 精确匹配 sub.domain.com
|
|
24
|
+
* 'localhost', // 匹配 localhost 及本地回环地址
|
|
25
|
+
* '127.0.0.1', // 匹配 127.0.0.1
|
|
26
|
+
* '::1' // 匹配 IPv6 本地回环
|
|
27
|
+
* ]
|
|
28
|
+
* 注意:
|
|
29
|
+
* - 以点开头的(如 .example.com)会匹配所有子域名。
|
|
30
|
+
* - 不带点的(如 example.com)只匹配主域名。
|
|
31
|
+
* - 'localhost'、'127.0.0.1'、'::1' 以及局域网 IP(如 192.168.x.x、10.x.x.x、172.16.x.x~172.31.x.x)都视为本地白名单。
|
|
32
|
+
*/
|
|
17
33
|
constructor(preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsUrl?: string, webviewDomainWhiteList?: string[]);
|
|
18
34
|
setPreloadWebContentsUrl(preloadWebContentsUrl: string): void;
|
|
19
35
|
private _preloadInstances;
|
|
@@ -34,6 +50,7 @@ export declare class WindowsManager {
|
|
|
34
50
|
close(idOrName: string | number): boolean;
|
|
35
51
|
closeAll(): void;
|
|
36
52
|
rename(idOrName: string | number, newName: string): BWItem | BVItem | undefined;
|
|
53
|
+
reInitUrl(idOrName: string | number, url: string): BWItem | BVItem | undefined;
|
|
37
54
|
getPreload(): string | undefined;
|
|
38
55
|
private _applyBrowserWindowOptions;
|
|
39
56
|
private _applyBrowserViewOptions;
|
package/esm/main/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,WAAW,EAAkE,MAAM,UAAU,CAAA;AAIvI,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE/E,eAAO,MAAM,gBAAgB,wBAQzB,CAAC;AAUL,eAAO,MAAM,MAAM,QAAS,WAAW,SAEtC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,WAAW,EAAkE,MAAM,UAAU,CAAA;AAIvI,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE/E,eAAO,MAAM,gBAAgB,wBAQzB,CAAC;AAUL,eAAO,MAAM,MAAM,QAAS,WAAW,SAEtC,CAAA;AAoBD,qBAAa,cAAc;IACzB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvD,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,UAAU,EAAE,OAAO,CAAS;IAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAM;IACtC;;;;;;;;;;;;;;;OAeG;gBACS,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE;IAe/I,wBAAwB,CAAC,qBAAqB,EAAE,MAAM;YAgBxC,iBAAiB;IAwB/B,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,gBAAgB;IAyCxB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,MAAM;IACtF,MAAM,CAAC,OAAO,EAAE,6BAA6B,GAAG;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,MAAM;IACvE,MAAM,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,GAAG,MAAM;IAsX/D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,6BAA6B;IAmF5E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;IA6B3D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAyBtC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAqC/B,QAAQ;IA0BR,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM;IAqCjD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;IAgB9E,UAAU;IAKV,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,wBAAwB;IAiB1B,wBAAwB,CAAC,GAAG,EAAE,MAAM;CAqB3C;AAID,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,eAAO,MAAM,UAAU,aAAc,MAAM,mBAAmB,MAAM,iBAAiB,MAAM,0BAA0B,MAAM,2BAA2B,MAAM,EAAE,KAAG,cA4QhK,CAAA"}
|
package/esm/main/index.js
CHANGED
|
@@ -30,7 +30,8 @@ const initWebContentsVal = (win, preload) => {
|
|
|
30
30
|
__ELECTRON_WINDOW_MANAGER_TYPE__: ${JSON.stringify(win._type)},
|
|
31
31
|
__ELECTRON_WINDOW_MANAGER_NAME__: ${JSON.stringify(win._name)},
|
|
32
32
|
__ELECTRON_WINDOW_MANAGER_EXTRA_DATA__: ${JSON.stringify(win._extraData || '')},
|
|
33
|
-
__ELECTRON_WINDOW_MANAGER_PRELOAD__: ${JSON.stringify(preload)}
|
|
33
|
+
__ELECTRON_WINDOW_MANAGER_PRELOAD__: ${JSON.stringify(preload)},
|
|
34
|
+
__ELECTRON_WINDOW_MANAGER_INIT_URL__: ${JSON.stringify(win._initUrl || '')}
|
|
34
35
|
};
|
|
35
36
|
Object.entries(data).forEach(([key, value]) => {
|
|
36
37
|
window[key] = value;
|
|
@@ -39,6 +40,22 @@ const initWebContentsVal = (win, preload) => {
|
|
|
39
40
|
`);
|
|
40
41
|
};
|
|
41
42
|
class WindowsManager {
|
|
43
|
+
/**
|
|
44
|
+
* webview 域名白名单
|
|
45
|
+
* 传入格式示例:
|
|
46
|
+
* [
|
|
47
|
+
* 'example.com', // 精确匹配 example.com
|
|
48
|
+
* '.example.com', // 匹配所有 example.com 的子域名,如 a.example.com、b.example.com
|
|
49
|
+
* 'sub.domain.com', // 精确匹配 sub.domain.com
|
|
50
|
+
* 'localhost', // 匹配 localhost 及本地回环地址
|
|
51
|
+
* '127.0.0.1', // 匹配 127.0.0.1
|
|
52
|
+
* '::1' // 匹配 IPv6 本地回环
|
|
53
|
+
* ]
|
|
54
|
+
* 注意:
|
|
55
|
+
* - 以点开头的(如 .example.com)会匹配所有子域名。
|
|
56
|
+
* - 不带点的(如 example.com)只匹配主域名。
|
|
57
|
+
* - 'localhost'、'127.0.0.1'、'::1' 以及局域网 IP(如 192.168.x.x、10.x.x.x、172.16.x.x~172.31.x.x)都视为本地白名单。
|
|
58
|
+
*/
|
|
42
59
|
constructor(preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl, webviewDomainWhiteList) {
|
|
43
60
|
this.preloadedBW = null;
|
|
44
61
|
this.preloadedBW_FramelessWithButtons = null;
|
|
@@ -221,6 +238,7 @@ class WindowsManager {
|
|
|
221
238
|
win._type = 'BW';
|
|
222
239
|
win._name = options.name || 'anonymous';
|
|
223
240
|
win._extraData = `${options?.extraData || ''}`;
|
|
241
|
+
win._initUrl = `${options?.url || ''}`;
|
|
224
242
|
// @ts-ignore
|
|
225
243
|
win?.removeAllListeners && win?.removeAllListeners?.();
|
|
226
244
|
win.webContents.removeAllListeners && win.webContents.removeAllListeners();
|
|
@@ -322,6 +340,7 @@ class WindowsManager {
|
|
|
322
340
|
window._type = type;
|
|
323
341
|
window._name = name;
|
|
324
342
|
window._extraData = `${options?.extraData || ''}`;
|
|
343
|
+
window._initUrl = `${options?.url || ''}`;
|
|
325
344
|
log('log', 'create 5: ', window.id, window._id, window._name);
|
|
326
345
|
if (loadingView?.url) {
|
|
327
346
|
if (type === 'BW') {
|
|
@@ -359,24 +378,57 @@ class WindowsManager {
|
|
|
359
378
|
}
|
|
360
379
|
}
|
|
361
380
|
window.webContents.on('did-attach-webview', (_event, webContents) => {
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
381
|
+
const tryEnable = () => {
|
|
382
|
+
const url = webContents.getURL();
|
|
383
|
+
// 判断是否本地/内网IP
|
|
384
|
+
const isLocalhost = (hostname) => {
|
|
385
|
+
return (hostname === 'localhost' ||
|
|
386
|
+
hostname === '127.0.0.1' ||
|
|
387
|
+
hostname === '::1' ||
|
|
388
|
+
/^192\.168\./.test(hostname) ||
|
|
389
|
+
/^10\./.test(hostname) ||
|
|
390
|
+
/^172\.(1[6-9]|2[0-9]|3[0-1])\./.test(hostname));
|
|
391
|
+
};
|
|
392
|
+
if (this.webviewDomainWhiteList && this.webviewDomainWhiteList.length > 0) {
|
|
393
|
+
try {
|
|
394
|
+
const { hostname } = new URL(url);
|
|
395
|
+
// 优化白名单判断,支持 .example.com 形式的子域名通配和本地/内网IP
|
|
396
|
+
const isWhiteListed = this.webviewDomainWhiteList.some(domain => {
|
|
397
|
+
if (domain === 'localhost' || domain === '127.0.0.1' || domain === '::1') {
|
|
398
|
+
return isLocalhost(hostname);
|
|
399
|
+
}
|
|
400
|
+
if (domain.startsWith('.')) {
|
|
401
|
+
// .example.com 允许所有 *.example.com
|
|
402
|
+
return hostname === domain.slice(1) || hostname.endsWith(domain);
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
// 精确匹配
|
|
406
|
+
return hostname === domain;
|
|
407
|
+
}
|
|
408
|
+
}) || isLocalhost(hostname); // 允许本地回环和内网地址
|
|
409
|
+
if (isWhiteListed) {
|
|
410
|
+
enable(webContents);
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
log('log', 'webview 域名未在白名单,未启用 remote', url);
|
|
414
|
+
}
|
|
368
415
|
}
|
|
369
|
-
|
|
370
|
-
log('log', 'webview
|
|
416
|
+
catch {
|
|
417
|
+
log('log', 'webview url 解析失败,未启用 remote', url);
|
|
371
418
|
}
|
|
372
419
|
}
|
|
373
|
-
|
|
374
|
-
|
|
420
|
+
else {
|
|
421
|
+
enable(webContents); // 没有配置白名单则全部允许
|
|
375
422
|
}
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
423
|
+
};
|
|
424
|
+
// 只监听一次,防止多次触发
|
|
425
|
+
const onDidNavigate = () => {
|
|
426
|
+
tryEnable();
|
|
427
|
+
webContents.removeListener('did-navigate', onDidNavigate);
|
|
428
|
+
webContents.removeListener('did-finish-load', onDidNavigate);
|
|
429
|
+
};
|
|
430
|
+
webContents.on('did-navigate', onDidNavigate);
|
|
431
|
+
webContents.on('did-finish-load', onDidNavigate);
|
|
380
432
|
});
|
|
381
433
|
window.webContents.on('close', () => {
|
|
382
434
|
this.windows.delete(window.id || window._id);
|
|
@@ -415,6 +467,10 @@ class WindowsManager {
|
|
|
415
467
|
console.error('did-finish-load', window.webContents.id);
|
|
416
468
|
initWebContentsVal(window, `${preload || ''}`);
|
|
417
469
|
});
|
|
470
|
+
window.webContents.on('did-start-loading', () => {
|
|
471
|
+
console.error('did-start-loading', window.webContents.id);
|
|
472
|
+
initWebContentsVal(window, `${preload || ''}`);
|
|
473
|
+
});
|
|
418
474
|
if (type === 'BW') {
|
|
419
475
|
const handleBrowserViewFocus = (view) => {
|
|
420
476
|
try {
|
|
@@ -723,6 +779,21 @@ class WindowsManager {
|
|
|
723
779
|
initWebContentsVal(win, `${this.preload || ''}`);
|
|
724
780
|
return win;
|
|
725
781
|
}
|
|
782
|
+
reInitUrl(idOrName, url) {
|
|
783
|
+
log('log', 'reInitUrl', idOrName, url);
|
|
784
|
+
let win = undefined;
|
|
785
|
+
this.windows.forEach(i => {
|
|
786
|
+
if (i?._name === idOrName) {
|
|
787
|
+
win = i;
|
|
788
|
+
}
|
|
789
|
+
});
|
|
790
|
+
if (!win) {
|
|
791
|
+
return undefined;
|
|
792
|
+
}
|
|
793
|
+
win._initUrl = url;
|
|
794
|
+
initWebContentsVal(win, `${this.preload || ''}`);
|
|
795
|
+
return win;
|
|
796
|
+
}
|
|
726
797
|
getPreload() {
|
|
727
798
|
log('log', 'getPreload');
|
|
728
799
|
return this.preload;
|
|
@@ -816,6 +887,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl
|
|
|
816
887
|
winName: `${findWin?._name || ''}`,
|
|
817
888
|
winType: `${findWin?._type || ''}`,
|
|
818
889
|
winExtraData: `${findWin?._extraData || ''}`,
|
|
890
|
+
winInitUrl: `${findWin?._initUrl || ''}`,
|
|
819
891
|
};
|
|
820
892
|
}
|
|
821
893
|
const res = wm.create(opt.data);
|
|
@@ -824,6 +896,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl
|
|
|
824
896
|
winName: `${res?._name || ''}`,
|
|
825
897
|
winType: `${res?._type || ''}`,
|
|
826
898
|
winExtraData: `${res?._extraData || ''}`,
|
|
899
|
+
winInitUrl: `${res?._initUrl || ''}`,
|
|
827
900
|
};
|
|
828
901
|
}
|
|
829
902
|
if (data?.type === 'get') {
|
|
@@ -834,6 +907,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl
|
|
|
834
907
|
winName: `${res?._name || ''}`,
|
|
835
908
|
winType: `${res?._type || ''}`,
|
|
836
909
|
winExtraData: `${res?._extraData || ''}`,
|
|
910
|
+
winInitUrl: `${res?._initUrl || ''}`,
|
|
837
911
|
};
|
|
838
912
|
}
|
|
839
913
|
if (data?.type === 'getAll') {
|
|
@@ -846,6 +920,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl
|
|
|
846
920
|
winName: `${i?._name || ''}`,
|
|
847
921
|
winType: `${i?._type || ''}`,
|
|
848
922
|
winExtraData: `${i?._extraData || ''}`,
|
|
923
|
+
winInitUrl: `${i?._initUrl || ''}`,
|
|
849
924
|
};
|
|
850
925
|
});
|
|
851
926
|
return obj;
|
|
@@ -868,6 +943,21 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsUrl
|
|
|
868
943
|
winName: `${res?._name || ''}`,
|
|
869
944
|
winType: `${res?._type || ''}`,
|
|
870
945
|
winExtraData: `${res?._extraData || ''}`,
|
|
946
|
+
winInitUrl: `${res?._initUrl || ''}`,
|
|
947
|
+
};
|
|
948
|
+
}
|
|
949
|
+
return undefined;
|
|
950
|
+
}
|
|
951
|
+
if (data?.type === 'reInitUrl') {
|
|
952
|
+
const opt = data;
|
|
953
|
+
const res = wm.reInitUrl(opt.data.idOrName, opt.data.url);
|
|
954
|
+
if (res) {
|
|
955
|
+
return {
|
|
956
|
+
winId: Number(`${res?.id || res?._id || -1}`),
|
|
957
|
+
winName: `${res?._name || ''}`,
|
|
958
|
+
winType: `${res?._type || ''}`,
|
|
959
|
+
winExtraData: `${res?._extraData || ''}`,
|
|
960
|
+
winInitUrl: `${res?._initUrl || ''}`,
|
|
871
961
|
};
|
|
872
962
|
}
|
|
873
963
|
return undefined;
|