@codingame/monaco-vscode-view-common-service-override 20.4.1 → 21.0.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/index.js +0 -1
- package/package.json +41 -41
- package/service-override/vs/workbench/contrib/webview/browser/pre/index.html +62 -6
- package/service-override/vs/workbench/contrib/webview/browser/pre/service-worker.js +17 -2
- package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +70 -60
- package/vscode/src/vs/workbench/browser/actions/listCommands.js +3 -3
- package/vscode/src/vs/workbench/browser/actions/navigationActions.js +6 -6
- package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +169 -168
- package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +8 -8
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +12 -12
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +5 -5
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +3 -3
- package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +2 -2
- package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +12 -12
- package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.js +7 -7
- package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +29 -29
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +14 -14
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorAccessibilityHelp.js +5 -5
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +13 -13
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +3 -3
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +1 -1
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +11 -11
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +5 -5
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +12 -12
- package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +5 -5
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +3 -3
- package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +5 -4
- package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +2 -2
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +14 -4
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +5 -5
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +3 -3
- package/vscode/src/vs/workbench/services/editor/browser/editorPaneService.js +1 -1
- package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +9 -9
- package/vscode/src/vs/workbench/services/history/browser/historyService.js +9 -9
- package/vscode/src/vs/workbench/services/progress/browser/progressService.js +9 -9
- package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +6 -6
- package/service-override/vs/workbench/contrib/webview/browser/pre/index-no-csp.html +0 -1251
package/index.js
CHANGED
|
@@ -72,7 +72,6 @@ let webviewIframeAlternateDomains;
|
|
|
72
72
|
registerAssets({
|
|
73
73
|
'vs/workbench/contrib/webview/browser/pre/service-worker.js': () => changeUrlDomain(new URL('./service-override/vs/workbench/contrib/webview/browser/pre/service-worker.js', import.meta.url).href, webviewIframeAlternateDomains),
|
|
74
74
|
'vs/workbench/contrib/webview/browser/pre/index.html': () => changeUrlDomain(new URL('./service-override/vs/workbench/contrib/webview/browser/pre/index.html', import.meta.url).href, webviewIframeAlternateDomains),
|
|
75
|
-
'vs/workbench/contrib/webview/browser/pre/index-no-csp.html': () => changeUrlDomain(new URL('./service-override/vs/workbench/contrib/webview/browser/pre/index-no-csp.html', import.meta.url).href, webviewIframeAlternateDomains),
|
|
76
75
|
'vs/workbench/contrib/webview/browser/pre/fake.html': () => changeUrlDomain(new URL('./service-override/vs/workbench/contrib/webview/browser/pre/fake.html', import.meta.url).href, webviewIframeAlternateDomains)
|
|
77
76
|
});
|
|
78
77
|
registerServiceInitializePostParticipant(async (accessor) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-view-common-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "21.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - view-common service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,46 +15,46 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "
|
|
19
|
-
"@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "
|
|
20
|
-
"@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common": "
|
|
21
|
-
"@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "
|
|
22
|
-
"@codingame/monaco-vscode-
|
|
23
|
-
"@codingame/monaco-vscode-
|
|
24
|
-
"@codingame/monaco-vscode-
|
|
25
|
-
"@codingame/monaco-vscode-
|
|
26
|
-
"@codingame/monaco-vscode-
|
|
27
|
-
"@codingame/monaco-vscode-
|
|
28
|
-
"@codingame/monaco-vscode-
|
|
29
|
-
"@codingame/monaco-vscode-
|
|
30
|
-
"@codingame/monaco-vscode-
|
|
31
|
-
"@codingame/monaco-vscode-
|
|
32
|
-
"@codingame/monaco-vscode-
|
|
33
|
-
"@codingame/monaco-vscode-
|
|
34
|
-
"@codingame/monaco-vscode-
|
|
35
|
-
"@codingame/monaco-vscode-
|
|
36
|
-
"@codingame/monaco-vscode-
|
|
37
|
-
"@codingame/monaco-vscode-
|
|
38
|
-
"@codingame/monaco-vscode-
|
|
39
|
-
"@codingame/monaco-vscode-
|
|
40
|
-
"@codingame/monaco-vscode-
|
|
41
|
-
"@codingame/monaco-vscode-
|
|
42
|
-
"@codingame/monaco-vscode-
|
|
43
|
-
"@codingame/monaco-vscode-
|
|
44
|
-
"@codingame/monaco-vscode-
|
|
45
|
-
"@codingame/monaco-vscode-
|
|
46
|
-
"@codingame/monaco-vscode-
|
|
47
|
-
"@codingame/monaco-vscode-
|
|
48
|
-
"@codingame/monaco-vscode-
|
|
49
|
-
"@codingame/monaco-vscode-
|
|
50
|
-
"@codingame/monaco-vscode-
|
|
51
|
-
"@codingame/monaco-vscode-
|
|
52
|
-
"@codingame/monaco-vscode-dbfe5f85-b426-55ed-a79b-5f811b395762-common": "
|
|
53
|
-
"@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "
|
|
54
|
-
"@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "
|
|
55
|
-
"@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": "
|
|
56
|
-
"@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "
|
|
57
|
-
"@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common": "
|
|
18
|
+
"@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "21.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "21.0.0",
|
|
20
|
+
"@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common": "21.0.0",
|
|
21
|
+
"@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "21.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-23b6fb38-5e58-5886-b34b-27abc4f5df02-common": "21.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "21.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-3109a756-1f83-5d09-945b-9f0fcad928f0-common": "21.0.0",
|
|
25
|
+
"@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "21.0.0",
|
|
26
|
+
"@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": "21.0.0",
|
|
27
|
+
"@codingame/monaco-vscode-4fad3647-b95d-5c19-bab1-bb9de627a5ec-common": "21.0.0",
|
|
28
|
+
"@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "21.0.0",
|
|
29
|
+
"@codingame/monaco-vscode-5e2c24a1-3217-55e8-bc90-521eaf7df5a6-common": "21.0.0",
|
|
30
|
+
"@codingame/monaco-vscode-615ce609-8555-545a-a549-47bd9f80e9f8-common": "21.0.0",
|
|
31
|
+
"@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "21.0.0",
|
|
32
|
+
"@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "21.0.0",
|
|
33
|
+
"@codingame/monaco-vscode-6db1b967-5327-5c5c-8c17-bd92774c0fb2-common": "21.0.0",
|
|
34
|
+
"@codingame/monaco-vscode-71c8dbff-4c98-552f-aef0-e72b00fdcfc0-common": "21.0.0",
|
|
35
|
+
"@codingame/monaco-vscode-72a1b7d3-3f58-5545-9b7e-f579bd003081-common": "21.0.0",
|
|
36
|
+
"@codingame/monaco-vscode-7869cfe8-f42c-5721-9f2b-7d04a6a41f16-common": "21.0.0",
|
|
37
|
+
"@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "21.0.0",
|
|
38
|
+
"@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "21.0.0",
|
|
39
|
+
"@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": "21.0.0",
|
|
40
|
+
"@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "21.0.0",
|
|
41
|
+
"@codingame/monaco-vscode-9a5ab9e7-d838-5831-9eb4-e79ea3764dcb-common": "21.0.0",
|
|
42
|
+
"@codingame/monaco-vscode-9c84f943-bcb5-5bcf-92a6-91f66a732f26-common": "21.0.0",
|
|
43
|
+
"@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "21.0.0",
|
|
44
|
+
"@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "21.0.0",
|
|
45
|
+
"@codingame/monaco-vscode-ac93482b-2178-52df-a200-ba0d1a4963fb-common": "21.0.0",
|
|
46
|
+
"@codingame/monaco-vscode-api": "21.0.0",
|
|
47
|
+
"@codingame/monaco-vscode-bc6d9a89-1625-5010-b57e-ff44151144fe-common": "21.0.0",
|
|
48
|
+
"@codingame/monaco-vscode-bulk-edit-service-override": "21.0.0",
|
|
49
|
+
"@codingame/monaco-vscode-caeb744c-8e3f-5c11-80fb-0f057d24d544-common": "21.0.0",
|
|
50
|
+
"@codingame/monaco-vscode-d26a96d3-122c-5a3d-a04d-deb5ff0f19c0-common": "21.0.0",
|
|
51
|
+
"@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": "21.0.0",
|
|
52
|
+
"@codingame/monaco-vscode-dbfe5f85-b426-55ed-a79b-5f811b395762-common": "21.0.0",
|
|
53
|
+
"@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "21.0.0",
|
|
54
|
+
"@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "21.0.0",
|
|
55
|
+
"@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": "21.0.0",
|
|
56
|
+
"@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "21.0.0",
|
|
57
|
+
"@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common": "21.0.0"
|
|
58
58
|
},
|
|
59
59
|
"main": "index.js",
|
|
60
60
|
"module": "index.js",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
|
|
7
7
|
<meta http-equiv="Content-Security-Policy"
|
|
8
|
-
content="default-src 'none'; script-src 'sha256-
|
|
8
|
+
content="default-src 'none'; script-src 'sha256-dk59AsDExia54iNuVBobMQ28rQB/JDlPxdX7gwMIfYU=' 'self'; frame-src 'self'; style-src 'unsafe-inline';">
|
|
9
9
|
|
|
10
10
|
<!-- Disable pinch zooming -->
|
|
11
11
|
<meta name="viewport"
|
|
@@ -38,6 +38,24 @@
|
|
|
38
38
|
const serviceWorkerUri = searchParams.get('serviceWorkerUri');
|
|
39
39
|
const fakeHtmlUri = searchParams.get('fakeHtmlUri');
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* @param {string} name
|
|
43
|
+
* @param {Record<string, string>} [options]
|
|
44
|
+
*/
|
|
45
|
+
const perfMark = (name, options = {}) => {
|
|
46
|
+
performance.mark(`webview/index.html/${name}`, {
|
|
47
|
+
detail: {
|
|
48
|
+
id: ID,
|
|
49
|
+
...options
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
perfMark('scriptStart');
|
|
55
|
+
|
|
56
|
+
/** @type {MessageChannel | undefined} */
|
|
57
|
+
let outerIframeMessageChannel;
|
|
58
|
+
|
|
41
59
|
/**
|
|
42
60
|
* Use polling to track focus of main webview and iframes within the webview
|
|
43
61
|
*
|
|
@@ -88,6 +106,7 @@
|
|
|
88
106
|
const defaultStyles = document.createElement('style');
|
|
89
107
|
defaultStyles.id = '_defaultStyles';
|
|
90
108
|
defaultStyles.textContent = `
|
|
109
|
+
@layer vscode-default {
|
|
91
110
|
html {
|
|
92
111
|
scrollbar-color: var(--vscode-scrollbarSlider-background) var(--vscode-editor-background);
|
|
93
112
|
}
|
|
@@ -181,6 +200,7 @@
|
|
|
181
200
|
}
|
|
182
201
|
::highlight(current-find-highlight) {
|
|
183
202
|
background-color: var(--vscode-editor-findMatchBackground);
|
|
203
|
+
}
|
|
184
204
|
}`;
|
|
185
205
|
|
|
186
206
|
/**
|
|
@@ -221,9 +241,9 @@
|
|
|
221
241
|
});
|
|
222
242
|
};
|
|
223
243
|
})();
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
244
|
+
window.parent = window;
|
|
245
|
+
window.top = window;
|
|
246
|
+
window.frameElement = null;
|
|
227
247
|
`;
|
|
228
248
|
}
|
|
229
249
|
|
|
@@ -238,7 +258,7 @@
|
|
|
238
258
|
}
|
|
239
259
|
|
|
240
260
|
const swPath = encodeURI(`${serviceWorkerUri}?v=${expectedWorkerVersion}&vscode-resource-base-authority=${searchParams.get('vscode-resource-base-authority')}&id=${ID}&remoteAuthority=${searchParams.get('remoteAuthority') ?? ''}`);
|
|
241
|
-
navigator.serviceWorker.register(swPath)
|
|
261
|
+
navigator.serviceWorker.register(swPath, { type: 'module' })
|
|
242
262
|
.then(async registration => {
|
|
243
263
|
/**
|
|
244
264
|
* @param {MessageEvent} event
|
|
@@ -266,7 +286,8 @@
|
|
|
266
286
|
navigator.serviceWorker.addEventListener('message', versionHandler);
|
|
267
287
|
|
|
268
288
|
const postVersionMessage = (/** @type {ServiceWorker} */ controller) => {
|
|
269
|
-
|
|
289
|
+
outerIframeMessageChannel = new MessageChannel();
|
|
290
|
+
controller.postMessage({ channel: 'version' }, [outerIframeMessageChannel.port2]);
|
|
270
291
|
};
|
|
271
292
|
|
|
272
293
|
// At this point, either the service worker is ready and
|
|
@@ -343,6 +364,7 @@
|
|
|
343
364
|
|
|
344
365
|
async signalReady() {
|
|
345
366
|
const start = (/** @type {string} */ parentOrigin) => {
|
|
367
|
+
perfMark('signalingReady');
|
|
346
368
|
window.parent.postMessage({ target: ID, channel: 'webview-ready', data: {} }, parentOrigin, [this.channel.port2]);
|
|
347
369
|
};
|
|
348
370
|
|
|
@@ -888,6 +910,7 @@
|
|
|
888
910
|
window.addEventListener('drag', handleInnerDragEvent);
|
|
889
911
|
window.addEventListener('drop', handleInnerDropEvent);
|
|
890
912
|
|
|
913
|
+
|
|
891
914
|
onDomReady(() => {
|
|
892
915
|
if (!document.body) {
|
|
893
916
|
return;
|
|
@@ -934,9 +957,12 @@
|
|
|
934
957
|
// update iframe-contents
|
|
935
958
|
let updateId = 0;
|
|
936
959
|
hostMessaging.onMessage('content', async (_event, /** @type {import('../webviewMessages').UpdateContentEvent} */ data) => {
|
|
960
|
+
perfMark('content/started');
|
|
961
|
+
|
|
937
962
|
const currentUpdateId = ++updateId;
|
|
938
963
|
try {
|
|
939
964
|
await workerReady;
|
|
965
|
+
perfMark('content/workerReady');
|
|
940
966
|
} catch (e) {
|
|
941
967
|
console.error(`Webview fatal error: ${e}`);
|
|
942
968
|
hostMessaging.postMessage('fatal-error', { message: e + '' });
|
|
@@ -1025,12 +1051,15 @@
|
|
|
1025
1051
|
* @param {Document} contentDocument
|
|
1026
1052
|
*/
|
|
1027
1053
|
function onFrameLoaded(contentDocument) {
|
|
1054
|
+
perfMark('content/innerFrameLoaded')
|
|
1055
|
+
|
|
1028
1056
|
// Workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=978325
|
|
1029
1057
|
setTimeout(() => {
|
|
1030
1058
|
contentDocument.open();
|
|
1031
1059
|
contentDocument.write(newDocument);
|
|
1032
1060
|
contentDocument.close();
|
|
1033
1061
|
hookupOnLoadHandlers(newFrame);
|
|
1062
|
+
perfMark('content/wroteInnerContent')
|
|
1034
1063
|
|
|
1035
1064
|
if (initialStyleVersion !== styleVersion) {
|
|
1036
1065
|
applyStyles(contentDocument, contentDocument.body);
|
|
@@ -1091,6 +1120,21 @@
|
|
|
1091
1120
|
contentWindow.focus();
|
|
1092
1121
|
}
|
|
1093
1122
|
|
|
1123
|
+
// Get body size
|
|
1124
|
+
const docEl = contentDocument.documentElement;
|
|
1125
|
+
if (docEl) {
|
|
1126
|
+
const postSize = () => {
|
|
1127
|
+
hostMessaging.postMessage('updated-intrinsic-content-size', {
|
|
1128
|
+
width: docEl.offsetWidth,
|
|
1129
|
+
height: docEl.offsetHeight
|
|
1130
|
+
});
|
|
1131
|
+
};
|
|
1132
|
+
|
|
1133
|
+
const resizeObserver = new ResizeObserver(postSize);
|
|
1134
|
+
resizeObserver.observe(docEl);
|
|
1135
|
+
postSize();
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1094
1138
|
pendingMessages.forEach((message) => {
|
|
1095
1139
|
contentWindow.postMessage(message.message, window.origin, message.transfer);
|
|
1096
1140
|
});
|
|
@@ -1170,9 +1214,21 @@
|
|
|
1170
1214
|
contentWindow.addEventListener('dragenter', handleInnerDragStartEvent);
|
|
1171
1215
|
contentWindow.addEventListener('dragover', handleInnerDragEvent);
|
|
1172
1216
|
contentWindow.addEventListener('drag', handleInnerDragEvent);
|
|
1217
|
+
contentWindow.addEventListener('drop', handleInnerDropEvent);
|
|
1173
1218
|
|
|
1174
1219
|
unloadMonitor.onIframeLoaded(newFrame);
|
|
1175
1220
|
}
|
|
1221
|
+
|
|
1222
|
+
if (!disableServiceWorker && outerIframeMessageChannel) {
|
|
1223
|
+
outerIframeMessageChannel.port1.onmessage = event => {
|
|
1224
|
+
switch (event.data.channel) {
|
|
1225
|
+
case 'load-resource':
|
|
1226
|
+
case 'load-localhost':
|
|
1227
|
+
hostMessaging.postMessage(event.data.channel, event.data);
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1230
|
+
};
|
|
1231
|
+
}
|
|
1176
1232
|
});
|
|
1177
1233
|
|
|
1178
1234
|
// propagate vscode-context-menu-visible class
|
|
@@ -26,6 +26,19 @@ let outerIframeMessagePort;
|
|
|
26
26
|
*/
|
|
27
27
|
const resourceBaseAuthority = searchParams.get('vscode-resource-base-authority');
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @param {string} name
|
|
31
|
+
* @param {Record<string, string>} [options]
|
|
32
|
+
*/
|
|
33
|
+
const perfMark = (name, options = {}) => {
|
|
34
|
+
performance.mark(`webview/service-worker/${name}`, {
|
|
35
|
+
detail: {
|
|
36
|
+
...options
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
perfMark('scriptStart');
|
|
29
42
|
|
|
30
43
|
/** @type {number} */
|
|
31
44
|
const resolveTimeout = 30_000;
|
|
@@ -55,8 +68,8 @@ class RequestStore {
|
|
|
55
68
|
}
|
|
56
69
|
|
|
57
70
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
71
|
+
* @returns {{ requestId: number, promise: Promise<RequestStoreResult<T>> }}
|
|
72
|
+
*/
|
|
60
73
|
create() {
|
|
61
74
|
const requestId = ++this.requestPool;
|
|
62
75
|
|
|
@@ -129,8 +142,10 @@ sw.addEventListener('message', async (event) => {
|
|
|
129
142
|
const source = event.source;
|
|
130
143
|
switch (event.data.channel) {
|
|
131
144
|
case 'version': {
|
|
145
|
+
perfMark('version/request');
|
|
132
146
|
outerIframeMessagePort = event.ports[0];
|
|
133
147
|
sw.clients.get(source.id).then(client => {
|
|
148
|
+
perfMark('version/reply');
|
|
134
149
|
if (client) {
|
|
135
150
|
client.postMessage({
|
|
136
151
|
channel: 'version',
|