@opensumi/ide-webview 2.12.1-next-079c1930

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.
Files changed (72) hide show
  1. package/lib/browser/abstract-webview.d.ts +57 -0
  2. package/lib/browser/abstract-webview.d.ts.map +1 -0
  3. package/lib/browser/abstract-webview.js +167 -0
  4. package/lib/browser/abstract-webview.js.map +1 -0
  5. package/lib/browser/contribution.d.ts +11 -0
  6. package/lib/browser/contribution.d.ts.map +1 -0
  7. package/lib/browser/contribution.js +85 -0
  8. package/lib/browser/contribution.js.map +1 -0
  9. package/lib/browser/editor-webview.d.ts +24 -0
  10. package/lib/browser/editor-webview.d.ts.map +1 -0
  11. package/lib/browser/editor-webview.js +167 -0
  12. package/lib/browser/editor-webview.js.map +1 -0
  13. package/lib/browser/electron-webview-webview.d.ts +21 -0
  14. package/lib/browser/electron-webview-webview.d.ts.map +1 -0
  15. package/lib/browser/electron-webview-webview.js +137 -0
  16. package/lib/browser/electron-webview-webview.js.map +1 -0
  17. package/lib/browser/iframe-webview.d.ts +21 -0
  18. package/lib/browser/iframe-webview.d.ts.map +1 -0
  19. package/lib/browser/iframe-webview.js +118 -0
  20. package/lib/browser/iframe-webview.js.map +1 -0
  21. package/lib/browser/index.d.ts +8 -0
  22. package/lib/browser/index.d.ts.map +1 -0
  23. package/lib/browser/index.js +29 -0
  24. package/lib/browser/index.js.map +1 -0
  25. package/lib/browser/plain-webview.d.ts +45 -0
  26. package/lib/browser/plain-webview.d.ts.map +1 -0
  27. package/lib/browser/plain-webview.js +199 -0
  28. package/lib/browser/plain-webview.js.map +1 -0
  29. package/lib/browser/types.d.ts +171 -0
  30. package/lib/browser/types.d.ts.map +1 -0
  31. package/lib/browser/types.js +10 -0
  32. package/lib/browser/types.js.map +1 -0
  33. package/lib/browser/webview-window.d.ts +33 -0
  34. package/lib/browser/webview-window.d.ts.map +1 -0
  35. package/lib/browser/webview-window.js +104 -0
  36. package/lib/browser/webview-window.js.map +1 -0
  37. package/lib/browser/webview.service.d.ts +76 -0
  38. package/lib/browser/webview.service.d.ts.map +1 -0
  39. package/lib/browser/webview.service.js +380 -0
  40. package/lib/browser/webview.service.js.map +1 -0
  41. package/lib/common/index.d.ts +2 -0
  42. package/lib/common/index.d.ts.map +1 -0
  43. package/lib/common/index.js +5 -0
  44. package/lib/common/index.js.map +1 -0
  45. package/lib/electron-main/index.d.ts +9 -0
  46. package/lib/electron-main/index.d.ts.map +1 -0
  47. package/lib/electron-main/index.js +41 -0
  48. package/lib/electron-main/index.js.map +1 -0
  49. package/lib/electron-webview/host-channel.d.ts +13 -0
  50. package/lib/electron-webview/host-channel.d.ts.map +1 -0
  51. package/lib/electron-webview/host-channel.js +57 -0
  52. package/lib/electron-webview/host-channel.js.map +1 -0
  53. package/lib/electron-webview/host-preload.js +2 -0
  54. package/lib/electron-webview/plain-preload.js +55 -0
  55. package/lib/index.d.ts +2 -0
  56. package/lib/index.d.ts.map +1 -0
  57. package/lib/index.js +5 -0
  58. package/lib/index.js.map +1 -0
  59. package/lib/webview-host/common.d.ts +12 -0
  60. package/lib/webview-host/common.d.ts.map +1 -0
  61. package/lib/webview-host/common.js +97 -0
  62. package/lib/webview-host/common.js.map +1 -0
  63. package/lib/webview-host/web-preload.d.ts +16 -0
  64. package/lib/webview-host/web-preload.d.ts.map +1 -0
  65. package/lib/webview-host/web-preload.js +69 -0
  66. package/lib/webview-host/web-preload.js.map +1 -0
  67. package/lib/webview-host/webview-manager.d.ts +26 -0
  68. package/lib/webview-host/webview-manager.d.ts.map +1 -0
  69. package/lib/webview-host/webview-manager.js +314 -0
  70. package/lib/webview-host/webview-manager.js.map +1 -0
  71. package/lib/webview-host/webview.html +14 -0
  72. package/package.json +35 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/webview-host/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,wnCAqDrB,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5C;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,UAkCvC"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVsCodeApiScript = exports.defaultCss = void 0;
4
+ exports.defaultCss = `body {
5
+ background-color: var(--vscode-editor-background);
6
+ color: var(--vscode-editor-foreground);
7
+ font-family: var(--vscode-font-family);
8
+ font-weight: var(--vscode-font-weight);
9
+ font-size: var(--vscode-font-size);
10
+ margin: 0;
11
+ padding: 0 20px;
12
+ }
13
+
14
+ img {
15
+ max-width: 100%;
16
+ max-height: 100%;
17
+ }
18
+
19
+ a {
20
+ color: var(--vscode-textLink-foreground);
21
+ }
22
+
23
+ a:hover {
24
+ color: var(--vscode-textLink-activeForeground);
25
+ }
26
+
27
+ a:focus,
28
+ input:focus,
29
+ select:focus,
30
+ textarea:focus {
31
+ outline: 1px solid -webkit-focus-ring-color;
32
+ outline-offset: -1px;
33
+ }
34
+
35
+ code {
36
+ color: var(--vscode-textPreformat-foreground);
37
+ }
38
+
39
+ blockquote {
40
+ background: var(--vscode-textBlockQuote-background);
41
+ border-color: var(--vscode-textBlockQuote-border);
42
+ }
43
+
44
+ ::-webkit-scrollbar {
45
+ width: 10px;
46
+ height: 10px;
47
+ }
48
+
49
+ ::-webkit-scrollbar-thumb {
50
+ background-color: var(--vscode-scrollbarSlider-background);
51
+ }
52
+ ::-webkit-scrollbar-thumb:hover {
53
+ background-color: var(--vscode-scrollbarSlider-hoverBackground);
54
+ }
55
+ ::-webkit-scrollbar-thumb:active {
56
+ background-color: var(--vscode-scrollbarSlider-activeBackground);
57
+ }`;
58
+ function addslashes(str) {
59
+ return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
60
+ }
61
+ function getVsCodeApiScript(state) {
62
+ return `
63
+ const acquireVsCodeApi = (function() {
64
+ const originalPostMessage = window.parent.postMessage.bind(window.parent);
65
+ const targetOrigin = '*';
66
+ let acquired = false;
67
+
68
+ let state = ${state ? `JSON.parse("${addslashes(JSON.stringify(state))}")` : undefined};
69
+
70
+ return () => {
71
+ if (acquired) {
72
+ throw new Error('An instance of the VS Code API has already been acquired');
73
+ }
74
+ acquired = true;
75
+ return Object.freeze({
76
+ postMessage: function(msg) {
77
+ return originalPostMessage({ command: 'onmessage', data: msg }, targetOrigin);
78
+ },
79
+ setState: function(newState) {
80
+ state = newState;
81
+ originalPostMessage({ command: 'do-update-state', data: JSON.parse(JSON.stringify(newState)) }, targetOrigin);
82
+ return newState;
83
+ },
84
+ getState: function() {
85
+ return state;
86
+ }
87
+ });
88
+ };
89
+ })();
90
+ delete window.parent;
91
+ delete window.top;
92
+ delete window.frameElement;
93
+ window.acquireVsCodeApi = acquireVsCodeApi;
94
+ `;
95
+ }
96
+ exports.getVsCodeApiScript = getVsCodeApiScript;
97
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/webview-host/common.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDxB,CAAC;AAYH,SAAS,UAAU,CAAE,GAAG;IACtB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAK;IACtC,OAAO;;;;;;oBAMW,KAAK,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BzF,CAAC;AACJ,CAAC;AAlCD,gDAkCC"}
@@ -0,0 +1,16 @@
1
+ import { IWebviewChannel } from './common';
2
+ export declare class WebIframeChannel implements IWebviewChannel {
3
+ private handlers;
4
+ focusIframeOnCreate?: boolean | undefined;
5
+ ready?: Promise<void> | undefined;
6
+ fakeLoad: boolean;
7
+ private isInDevelopmentMode;
8
+ private id;
9
+ constructor();
10
+ get inDev(): boolean;
11
+ postMessage(channel: any, data?: any): void;
12
+ onMessage(channel: any, handler: any): void;
13
+ onIframeLoaded(newFrame: any): void;
14
+ onKeydown(event: KeyboardEvent): void;
15
+ }
16
+ //# sourceMappingURL=web-preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-preload.d.ts","sourceRoot":"","sources":["../../src/webview-host/web-preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,qBAAa,gBAAiB,YAAW,eAAe;IAEtD,OAAO,CAAC,QAAQ,CAAa;IAC7B,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,EAAE,CAA0D;;IA8BpE,IAAI,KAAK,YAER;IAED,WAAW,CAAC,OAAO,KAAA,EAAE,IAAI,CAAC,KAAA;IAM1B,SAAS,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA;IAI1B,cAAc,CAAC,QAAQ,KAAA;IAYvB,SAAS,CAAC,KAAK,EAAE,aAAa;CAO/B"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebIframeChannel = void 0;
4
+ const webview_manager_1 = require("./webview-manager");
5
+ class WebIframeChannel {
6
+ constructor() {
7
+ this.handlers = new Map();
8
+ this.fakeLoad = false;
9
+ this.isInDevelopmentMode = false;
10
+ this.id = document.location.search.match(/\bid=([\w-]+)/)[1];
11
+ window.addEventListener('message', (e) => {
12
+ if (e.data && (e.data.command === 'onmessage' || e.data.command === 'do-update-state')) {
13
+ // Came from inner iframe
14
+ this.postMessage(e.data.command, e.data.data);
15
+ return;
16
+ }
17
+ const channel = e.data.channel;
18
+ const handler = this.handlers.get(channel);
19
+ if (handler) {
20
+ handler(e, e.data.data);
21
+ }
22
+ else {
23
+ // tslint:disable-next-line:no-console
24
+ console.log('no handler for ', e);
25
+ }
26
+ });
27
+ this.ready = new Promise(async (resolve) => {
28
+ // TODO 等待service worker完成 未来资源使用service worker时需要加入
29
+ resolve();
30
+ });
31
+ this.onMessage('devtools-opened', () => {
32
+ this.isInDevelopmentMode = true;
33
+ });
34
+ }
35
+ get inDev() {
36
+ return this.isInDevelopmentMode;
37
+ }
38
+ postMessage(channel, data) {
39
+ if (window.parent !== window) {
40
+ window.parent.postMessage({ target: this.id, channel, data }, '*');
41
+ }
42
+ }
43
+ onMessage(channel, handler) {
44
+ this.handlers.set(channel, handler);
45
+ }
46
+ onIframeLoaded(newFrame) {
47
+ // newFrame.contentWindow.onbeforeunload = () => {
48
+ // if (this.isInDevelopmentMode) { // Allow reloads while developing a webview
49
+ // this.postMessage('do-reload');
50
+ // return false;
51
+ // }
52
+ // // Block navigation when not in development mode
53
+ // console.log('prevented webview navigation');
54
+ // return false;
55
+ // };
56
+ }
57
+ onKeydown(event) {
58
+ // 在浏览器上,需要阻止一些默认的keydown快捷键
59
+ if (event.key === 's' && (event.metaKey || event.ctrlKey)) {
60
+ // 阻止保存
61
+ event.preventDefault();
62
+ }
63
+ }
64
+ }
65
+ exports.WebIframeChannel = WebIframeChannel;
66
+ /* tslint:disable */
67
+ new webview_manager_1.WebviewPanelManager(new WebIframeChannel());
68
+ /* tslint:enable */
69
+ //# sourceMappingURL=web-preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-preload.js","sourceRoot":"","sources":["../../src/webview-host/web-preload.ts"],"names":[],"mappings":";;;AAEA,uDAAwD;AAExD,MAAa,gBAAgB;IAS3B;QAPQ,aAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAG7B,aAAQ,GAAY,KAAK,CAAC;QAClB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,OAAE,GAAG,QAAS,CAAC,QAAS,CAAC,MAAO,CAAC,KAAK,CAAC,eAAe,CAAE,CAAC,CAAC,CAAC,CAAC;QAGlE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,EAAE;gBACtF,yBAAyB;gBACzB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,OAAO;aACR;YAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;iBAAM;gBACL,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/C,qDAAqD;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,IAAK;QACxB,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;SACpE;IACH,CAAC;IAED,SAAS,CAAC,OAAO,EAAE,OAAO;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,QAAQ;QACrB,kDAAkD;QAClD,gFAAgF;QAChF,qCAAqC;QACrC,oBAAoB;QACpB,MAAM;QACN,qDAAqD;QACrD,iDAAiD;QACjD,kBAAkB;QAClB,KAAK;IACP,CAAC;IAED,SAAS,CAAC,KAAoB;QAC5B,4BAA4B;QAC5B,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAG;YAC1D,OAAO;YACP,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;CACF;AAtED,4CAsEC;AAED,oBAAoB;AACpB,IAAI,qCAAmB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAChD,mBAAmB"}
@@ -0,0 +1,26 @@
1
+ import { IWebviewChannel } from './common';
2
+ export declare class WebviewPanelManager {
3
+ private channel;
4
+ private activeTheme;
5
+ private styles;
6
+ private isHandlingScroll;
7
+ private updateId;
8
+ private firstLoad;
9
+ private loadTimeout;
10
+ private pendingMessages;
11
+ private initialScrollProgress;
12
+ private ID;
13
+ constructor(channel: IWebviewChannel);
14
+ private init;
15
+ private setContent;
16
+ private trackFocus;
17
+ private getActiveFrame;
18
+ private getPendingFrame;
19
+ private get defaultCssRules();
20
+ private applyStyles;
21
+ private handleInnerClick;
22
+ private handleInnerKeydown;
23
+ private handleInnerScroll;
24
+ private toContentHtml;
25
+ }
26
+ //# sourceMappingURL=webview-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-manager.d.ts","sourceRoot":"","sources":["../../src/webview-host/webview-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAuB,MAAM,UAAU,CAAC;AAE5E,qBAAa,mBAAmB;IAYlB,OAAO,CAAC,OAAO;IAV3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,EAAE,CAAqB;gBAEX,OAAO,EAAE,eAAe;IAI5C,OAAO,CAAC,IAAI;YAuDE,UAAU;IAiJxB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,aAAa;CA+BtB"}
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebviewPanelManager = void 0;
4
+ const common_1 = require("./common");
5
+ class WebviewPanelManager {
6
+ constructor(channel) {
7
+ this.channel = channel;
8
+ this.activeTheme = 'default';
9
+ this.isHandlingScroll = false;
10
+ this.updateId = 0;
11
+ this.firstLoad = true;
12
+ this.pendingMessages = [];
13
+ document.addEventListener('DOMContentLoaded', this.init.bind(this));
14
+ }
15
+ init() {
16
+ const idMatch = document.location.search.match(/\bid=([\w-]+)/);
17
+ this.ID = idMatch ? idMatch[1] : undefined;
18
+ if (!document.body) {
19
+ return;
20
+ }
21
+ this.channel.onMessage('styles', (_event, data) => {
22
+ this.styles = data.styles;
23
+ this.activeTheme = data.activeTheme;
24
+ const target = this.getActiveFrame();
25
+ if (!target) {
26
+ return;
27
+ }
28
+ if (target.contentDocument) {
29
+ this.applyStyles(target.contentDocument, target.contentDocument.body);
30
+ }
31
+ });
32
+ // propagate focus
33
+ this.channel.onMessage('focus', () => {
34
+ const target = this.getActiveFrame();
35
+ if (target && target.contentWindow) {
36
+ target.contentWindow.focus();
37
+ }
38
+ });
39
+ this.channel.onMessage('content', async (_event, data) => {
40
+ return this.setContent(data);
41
+ });
42
+ this.channel.onMessage('message', (_event, data) => {
43
+ const pending = this.getPendingFrame();
44
+ if (!pending) {
45
+ const target = this.getActiveFrame();
46
+ if (target) {
47
+ target.contentWindow.postMessage(data, '*');
48
+ return;
49
+ }
50
+ }
51
+ this.pendingMessages.push(data);
52
+ });
53
+ this.trackFocus({
54
+ onFocus: () => this.channel.postMessage('did-focus'),
55
+ onBlur: () => this.channel.postMessage('did-blur'),
56
+ });
57
+ this.channel.postMessage('webview-ready', {});
58
+ }
59
+ async setContent(data) {
60
+ const currentUpdateId = ++this.updateId;
61
+ await this.channel.ready;
62
+ if (currentUpdateId !== this.updateId) {
63
+ return;
64
+ }
65
+ const options = data.options;
66
+ const newDocument = this.toContentHtml(data);
67
+ const frame = this.getActiveFrame();
68
+ const wasFirstLoad = this.firstLoad;
69
+ // keep current scrollY around and use later
70
+ let setInitialScrollPosition;
71
+ if (this.firstLoad) {
72
+ this.firstLoad = false;
73
+ setInitialScrollPosition = (body, window) => {
74
+ if (!isNaN(this.initialScrollProgress)) {
75
+ if (window.scrollY === 0) {
76
+ window.scroll(0, body.clientHeight * this.initialScrollProgress);
77
+ }
78
+ }
79
+ };
80
+ }
81
+ else {
82
+ const scrollY = frame && frame.contentDocument && frame.contentDocument.body ? frame.contentWindow.scrollY : 0;
83
+ setInitialScrollPosition = (body, window) => {
84
+ if (window.scrollY === 0) {
85
+ window.scroll(0, scrollY);
86
+ }
87
+ };
88
+ }
89
+ // Clean up old pending frames and set current one as new one
90
+ const previousPendingFrame = this.getPendingFrame();
91
+ if (previousPendingFrame) {
92
+ previousPendingFrame.setAttribute('id', '');
93
+ document.body.removeChild(previousPendingFrame);
94
+ }
95
+ if (!wasFirstLoad) {
96
+ this.pendingMessages = [];
97
+ }
98
+ const newFrame = document.createElement('iframe');
99
+ newFrame.setAttribute('id', 'pending-frame');
100
+ newFrame.setAttribute('frameborder', '0');
101
+ newFrame.setAttribute('allow', 'autoplay');
102
+ newFrame.setAttribute('sandbox', options.allowScripts ? 'allow-scripts allow-forms allow-same-origin' : 'allow-scripts allow-same-origin');
103
+ if (this.channel.fakeLoad) {
104
+ // 使用service-worker时候
105
+ newFrame.src = `./fake.html?id=${this.ID}`;
106
+ }
107
+ newFrame.style.cssText = 'display: block; margin: 0; overflow: hidden; position: absolute; width: 100%; height: 100%; visibility: hidden';
108
+ document.body.appendChild(newFrame);
109
+ if (!this.channel.fakeLoad) {
110
+ // write new content onto iframe
111
+ newFrame.contentDocument.open();
112
+ }
113
+ newFrame.contentWindow.addEventListener('keydown', this.handleInnerKeydown.bind(this));
114
+ newFrame.contentWindow.addEventListener('DOMContentLoaded', (e) => {
115
+ if (this.channel.fakeLoad) {
116
+ newFrame.contentDocument.open();
117
+ newFrame.contentDocument.write(newDocument);
118
+ newFrame.contentDocument.close();
119
+ hookupOnLoadHandlers(newFrame);
120
+ }
121
+ const contentDocument = e.target ? e.target : undefined;
122
+ if (contentDocument) {
123
+ this.applyStyles(contentDocument, contentDocument.body);
124
+ }
125
+ });
126
+ const onLoad = (contentDocument, contentWindow) => {
127
+ if (contentDocument && contentDocument.body) {
128
+ // Workaround for https://github.com/Microsoft/vscode/issues/12865
129
+ // check new scrollY and reset if neccessary
130
+ setInitialScrollPosition(contentDocument.body, contentWindow);
131
+ }
132
+ const newFrame = this.getPendingFrame();
133
+ if (newFrame && newFrame.contentDocument && newFrame.contentDocument === contentDocument) {
134
+ const oldActiveFrame = this.getActiveFrame();
135
+ if (oldActiveFrame) {
136
+ document.body.removeChild(oldActiveFrame);
137
+ }
138
+ // Styles may have changed since we created the element. Make sure we re-style
139
+ this.applyStyles(newFrame.contentDocument, newFrame.contentDocument.body);
140
+ newFrame.setAttribute('id', 'active-frame');
141
+ newFrame.style.visibility = 'visible';
142
+ if (this.channel.focusIframeOnCreate) {
143
+ newFrame.contentWindow.focus();
144
+ }
145
+ contentWindow.addEventListener('scroll', this.handleInnerScroll.bind(this));
146
+ this.pendingMessages.forEach((data) => {
147
+ contentWindow.postMessage(data, '*');
148
+ });
149
+ this.pendingMessages = [];
150
+ }
151
+ };
152
+ /**
153
+ * @param {HTMLIFrameElement} newFrame
154
+ */
155
+ const hookupOnLoadHandlers = (newFrame) => {
156
+ clearTimeout(this.loadTimeout);
157
+ this.loadTimeout = undefined;
158
+ this.loadTimeout = setTimeout(() => {
159
+ clearTimeout(this.loadTimeout);
160
+ this.loadTimeout = undefined;
161
+ onLoad(newFrame.contentDocument, newFrame.contentWindow);
162
+ }, 1000);
163
+ const _this = this;
164
+ newFrame.contentWindow.addEventListener('load', function (e) {
165
+ if (_this.loadTimeout) {
166
+ clearTimeout(_this.loadTimeout);
167
+ _this.loadTimeout = undefined;
168
+ onLoad(e.target, this);
169
+ }
170
+ });
171
+ // Bubble out link clicks
172
+ newFrame.contentWindow.addEventListener('click', this.handleInnerClick.bind(this));
173
+ if (this.channel.onIframeLoaded) {
174
+ this.channel.onIframeLoaded(newFrame);
175
+ }
176
+ };
177
+ if (!this.channel.fakeLoad) {
178
+ hookupOnLoadHandlers(newFrame);
179
+ }
180
+ if (!this.channel.fakeLoad) {
181
+ newFrame.contentDocument.write(newDocument);
182
+ newFrame.contentDocument.close();
183
+ }
184
+ this.channel.postMessage('did-set-content', undefined);
185
+ }
186
+ trackFocus({ onFocus, onBlur }) {
187
+ const interval = 50;
188
+ let isFocused = document.hasFocus();
189
+ setInterval(() => {
190
+ const isCurrentlyFocused = document.hasFocus();
191
+ if (isCurrentlyFocused === isFocused) {
192
+ return;
193
+ }
194
+ isFocused = isCurrentlyFocused;
195
+ if (isCurrentlyFocused) {
196
+ onFocus();
197
+ }
198
+ else {
199
+ onBlur();
200
+ }
201
+ }, interval);
202
+ }
203
+ getActiveFrame() {
204
+ return document.getElementById('active-frame');
205
+ }
206
+ getPendingFrame() {
207
+ return document.getElementById('pending-frame');
208
+ }
209
+ get defaultCssRules() {
210
+ return common_1.defaultCss;
211
+ }
212
+ applyStyles(document, body) {
213
+ if (!document) {
214
+ return;
215
+ }
216
+ if (body) {
217
+ body.classList.remove('vscode-light', 'vscode-dark', 'vscode-high-contrast');
218
+ body.classList.add(this.activeTheme);
219
+ }
220
+ if (this.styles) {
221
+ for (const variable of Object.keys(this.styles)) {
222
+ document.documentElement.style.setProperty(`--${variable}`, this.styles[variable]);
223
+ }
224
+ }
225
+ }
226
+ handleInnerClick(event) {
227
+ if (!event || !event.view || !event.view.document) {
228
+ return;
229
+ }
230
+ const baseElement = event.view.document.getElementsByTagName('base')[0];
231
+ let node = event.target;
232
+ while (node) {
233
+ if (node.tagName && node.tagName.toLowerCase() === 'a' && node.href) {
234
+ if (node.getAttribute('href') === '#') {
235
+ event.view.scrollTo(0, 0);
236
+ }
237
+ else if (node.hash && (node.getAttribute('href') === node.hash || (baseElement && node.href.indexOf(baseElement.href) >= 0))) {
238
+ const scrollTarget = event.view.document.getElementById(node.hash.substr(1, node.hash.length - 1));
239
+ if (scrollTarget) {
240
+ scrollTarget.scrollIntoView();
241
+ }
242
+ }
243
+ else {
244
+ this.channel.postMessage('did-click-link', node.href.baseVal || node.href);
245
+ }
246
+ event.preventDefault();
247
+ break;
248
+ }
249
+ node = node.parentNode;
250
+ }
251
+ }
252
+ handleInnerKeydown(e) {
253
+ this.channel.postMessage('did-keydown', {
254
+ key: e.key,
255
+ keyCode: e.keyCode,
256
+ code: e.code,
257
+ shiftKey: e.shiftKey,
258
+ altKey: e.altKey,
259
+ ctrlKey: e.ctrlKey,
260
+ metaKey: e.metaKey,
261
+ repeat: e.repeat,
262
+ });
263
+ this.channel.onKeydown && this.channel.onKeydown(e);
264
+ }
265
+ handleInnerScroll(event) {
266
+ if (!event.target || !event.target.body) {
267
+ return;
268
+ }
269
+ if (this.isHandlingScroll) {
270
+ return;
271
+ }
272
+ const progress = event.currentTarget.scrollY / event.target.body.clientHeight;
273
+ if (isNaN(progress)) {
274
+ return;
275
+ }
276
+ this.isHandlingScroll = true;
277
+ window.requestAnimationFrame(() => {
278
+ try {
279
+ this.channel.postMessage('did-scroll', progress);
280
+ }
281
+ catch (e) {
282
+ // noop
283
+ }
284
+ this.isHandlingScroll = false;
285
+ });
286
+ }
287
+ toContentHtml(data) {
288
+ const options = data.options;
289
+ const text = data.contents;
290
+ const newDocument = new DOMParser().parseFromString(text, 'text/html');
291
+ newDocument.querySelectorAll('a').forEach((a) => {
292
+ if (!a.title) {
293
+ a.title = a.getAttribute('href');
294
+ }
295
+ });
296
+ // apply default script
297
+ if (options.allowScripts) {
298
+ const defaultScript = newDocument.createElement('script');
299
+ defaultScript.textContent = (0, common_1.getVsCodeApiScript)(data.state);
300
+ newDocument.head.prepend(defaultScript);
301
+ }
302
+ // apply default styles
303
+ const defaultStyles = newDocument.createElement('style');
304
+ defaultStyles.id = '_defaultStyles';
305
+ defaultStyles.innerHTML = this.defaultCssRules;
306
+ newDocument.head.prepend(defaultStyles);
307
+ this.applyStyles(newDocument, newDocument.body);
308
+ // set DOCTYPE for newDocument explicitly as DOMParser.parseFromString strips it off
309
+ // and DOCTYPE is needed in the iframe to ensure that the user agent stylesheet is correctly overridden
310
+ return '<!DOCTYPE html>\n' + newDocument.documentElement.outerHTML;
311
+ }
312
+ }
313
+ exports.WebviewPanelManager = WebviewPanelManager;
314
+ //# sourceMappingURL=webview-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-manager.js","sourceRoot":"","sources":["../../src/webview-host/webview-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" style="width: 100%; height: 100%;">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
8
+ <title>Webview Panel Container</title>
9
+ </head>
10
+
11
+ <body style="margin: 0; overflow: hidden; width: 100%; height: 100%">
12
+ </body>
13
+
14
+ </html>
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@opensumi/ide-webview",
3
+ "version": "2.12.1-next-079c1930",
4
+ "files": [
5
+ "lib",
6
+ "resources"
7
+ ],
8
+ "license": "MIT",
9
+ "main": "lib/index.js",
10
+ "typings": "lib/index.d.ts",
11
+ "scripts": {
12
+ "prepublishOnly": "npm run build",
13
+ "build": "tsc --build ../../configs/ts/references/tsconfig.webview.json",
14
+ "copy-resources": "node ./copy-resources.js"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git@github.com:opensumi/core.git"
19
+ },
20
+ "dependencies": {
21
+ "@opensumi/ide-core-common": "2.12.1-next-079c1930",
22
+ "@opensumi/ide-core-node": "2.12.1-next-079c1930"
23
+ },
24
+ "devDependencies": {
25
+ "@opensumi/ide-core-browser": "2.12.1-next-079c1930",
26
+ "@opensumi/ide-static-resource": "2.12.1-next-079c1930",
27
+ "@opensumi/ide-dev-tool": "^1.3.1",
28
+ "@opensumi/ide-editor": "2.12.1-next-079c1930",
29
+ "@opensumi/ide-theme": "2.12.1-next-079c1930",
30
+ "@opensumi/ide-core-electron-main": "2.12.1-next-079c1930"
31
+ },
32
+ "peerDependencies": {
33
+ "electron": "*"
34
+ }
35
+ }