debug: add indicators to differentiate debugged worker ext hosts

Fixes https://github.com/microsoft/vscode/issues/128637 (with corresponding js-debug changes)
This commit is contained in:
Connor Peet
2021-08-02 15:25:36 -07:00
parent 1faa6b91cf
commit 4897f96975
3 changed files with 18 additions and 10 deletions
@@ -88,6 +88,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
}
const forceHTTPS = (location.protocol === 'https:');
const suffix = this._environmentService.debugExtensionHost && this._environmentService.debugRenderer ? '?debugged=1' : '?';
if (this._environmentService.options && this._environmentService.options.__uniqueWebWorkerExtensionHostOrigin) {
const webEndpointUrlTemplate = this._productService.webEndpointUrlTemplate;
@@ -100,11 +101,13 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
.replace('{{commit}}', commit)
.replace('{{quality}}', quality)
);
return (
const base = (
forceHTTPS
? `${baseUrl}/out/vs/workbench/services/extensions/worker/httpsWebWorkerExtensionHostIframe.html`
: `${baseUrl}/out/vs/workbench/services/extensions/worker/httpWebWorkerExtensionHostIframe.html`
);
return base + suffix;
}
}
@@ -116,11 +119,13 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
if (this._productService.commit) {
baseUrl += `/${this._productService.commit}`;
}
return (
const base = (
forceHTTPS
? `${baseUrl}/out/vs/workbench/services/extensions/worker/httpsWebWorkerExtensionHostIframe.html`
: `${baseUrl}/out/vs/workbench/services/extensions/worker/httpWebWorkerExtensionHostIframe.html`
);
return base + suffix;
}
return null;
}
@@ -152,7 +157,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
iframe.style.display = 'none';
const vscodeWebWorkerExtHostId = generateUuid();
iframe.setAttribute('src', `${webWorkerExtensionHostIframeSrc}?vscodeWebWorkerExtHostId=${vscodeWebWorkerExtHostId}`);
iframe.setAttribute('src', `${webWorkerExtensionHostIframeSrc}&vscodeWebWorkerExtHostId=${vscodeWebWorkerExtHostId}`);
const barrier = new Barrier();
let port!: MessagePort;
@@ -242,7 +247,8 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
const nestedWorker = new Map<string, Worker>();
const worker = new DefaultWorkerFactory('WorkerExtensionHost').create(
const name = this._environmentService.debugRenderer && this._environmentService.debugExtensionHost ? 'DebugWorkerExtensionHost' : 'WorkerExtensionHost';
const worker = new DefaultWorkerFactory(name).create(
'vs/workbench/services/extensions/worker/extensionHostWorker',
(data: MessagePort | NewWorkerMessage | TerminateWorkerMessage | any) => {
@@ -6,8 +6,9 @@
<body>
<script>
(function() {
const idMatch = document.location.search.match(/\bvscodeWebWorkerExtHostId=([0-9a-f\-]+)/i);
const vscodeWebWorkerExtHostId = idMatch ? idMatch[1] : '';
const searchParams = new URL(document.location).searchParams;
const vscodeWebWorkerExtHostId = searchParams.get(vscodeWebWorkerExtHostId) || '';
const name = searchParams.get('debugged') ? 'WorkerExtensionHost' : 'DebugWorkerExtensionHost';
function sendError(error) {
window.parent.postMessage({
@@ -21,7 +22,7 @@
}
try {
const worker = new Worker('../../../../base/worker/workerMain.js', { name: 'WorkerExtensionHost' });
const worker = new Worker('../../../../base/worker/workerMain.js', { name });
worker.postMessage('vs/workbench/services/extensions/worker/extensionHostWorker');
const nestedWorkers = new Map();
@@ -6,8 +6,9 @@
<body>
<script>
(function() {
const idMatch = document.location.search.match(/\bvscodeWebWorkerExtHostId=([0-9a-f\-]+)/i);
const vscodeWebWorkerExtHostId = idMatch ? idMatch[1] : '';
const searchParams = new URL(document.location).searchParams;
const vscodeWebWorkerExtHostId = searchParams.get(vscodeWebWorkerExtHostId) || '';
const name = searchParams.get('debugged') ? 'WorkerExtensionHost' : 'DebugWorkerExtensionHost';
function sendError(error) {
window.parent.postMessage({
@@ -21,7 +22,7 @@
}
try {
const worker = new Worker('../../../../base/worker/workerMain.js', { name: 'WorkerExtensionHost' });
const worker = new Worker('../../../../base/worker/workerMain.js', { name });
worker.postMessage('vs/workbench/services/extensions/worker/extensionHostWorker');
const nestedWorkers = new Map();