@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.
- package/lib/browser/abstract-webview.d.ts +57 -0
- package/lib/browser/abstract-webview.d.ts.map +1 -0
- package/lib/browser/abstract-webview.js +167 -0
- package/lib/browser/abstract-webview.js.map +1 -0
- package/lib/browser/contribution.d.ts +11 -0
- package/lib/browser/contribution.d.ts.map +1 -0
- package/lib/browser/contribution.js +85 -0
- package/lib/browser/contribution.js.map +1 -0
- package/lib/browser/editor-webview.d.ts +24 -0
- package/lib/browser/editor-webview.d.ts.map +1 -0
- package/lib/browser/editor-webview.js +167 -0
- package/lib/browser/editor-webview.js.map +1 -0
- package/lib/browser/electron-webview-webview.d.ts +21 -0
- package/lib/browser/electron-webview-webview.d.ts.map +1 -0
- package/lib/browser/electron-webview-webview.js +137 -0
- package/lib/browser/electron-webview-webview.js.map +1 -0
- package/lib/browser/iframe-webview.d.ts +21 -0
- package/lib/browser/iframe-webview.d.ts.map +1 -0
- package/lib/browser/iframe-webview.js +118 -0
- package/lib/browser/iframe-webview.js.map +1 -0
- package/lib/browser/index.d.ts +8 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +29 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/plain-webview.d.ts +45 -0
- package/lib/browser/plain-webview.d.ts.map +1 -0
- package/lib/browser/plain-webview.js +199 -0
- package/lib/browser/plain-webview.js.map +1 -0
- package/lib/browser/types.d.ts +171 -0
- package/lib/browser/types.d.ts.map +1 -0
- package/lib/browser/types.js +10 -0
- package/lib/browser/types.js.map +1 -0
- package/lib/browser/webview-window.d.ts +33 -0
- package/lib/browser/webview-window.d.ts.map +1 -0
- package/lib/browser/webview-window.js +104 -0
- package/lib/browser/webview-window.js.map +1 -0
- package/lib/browser/webview.service.d.ts +76 -0
- package/lib/browser/webview.service.d.ts.map +1 -0
- package/lib/browser/webview.service.js +380 -0
- package/lib/browser/webview.service.js.map +1 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +5 -0
- package/lib/common/index.js.map +1 -0
- package/lib/electron-main/index.d.ts +9 -0
- package/lib/electron-main/index.d.ts.map +1 -0
- package/lib/electron-main/index.js +41 -0
- package/lib/electron-main/index.js.map +1 -0
- package/lib/electron-webview/host-channel.d.ts +13 -0
- package/lib/electron-webview/host-channel.d.ts.map +1 -0
- package/lib/electron-webview/host-channel.js +57 -0
- package/lib/electron-webview/host-channel.js.map +1 -0
- package/lib/electron-webview/host-preload.js +2 -0
- package/lib/electron-webview/plain-preload.js +55 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/webview-host/common.d.ts +12 -0
- package/lib/webview-host/common.d.ts.map +1 -0
- package/lib/webview-host/common.js +97 -0
- package/lib/webview-host/common.js.map +1 -0
- package/lib/webview-host/web-preload.d.ts +16 -0
- package/lib/webview-host/web-preload.d.ts.map +1 -0
- package/lib/webview-host/web-preload.js +69 -0
- package/lib/webview-host/web-preload.js.map +1 -0
- package/lib/webview-host/webview-manager.d.ts +26 -0
- package/lib/webview-host/webview-manager.d.ts.map +1 -0
- package/lib/webview-host/webview-manager.js +314 -0
- package/lib/webview-host/webview-manager.js.map +1 -0
- package/lib/webview-host/webview.html +14 -0
- 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
|
+
}
|