Skip to content

Commit 11d836b

Browse files
committed
fix: apply electron updates for debugging vscode webviews
For microsoft/vscode#128637
1 parent baacf19 commit 11d836b

File tree

4 files changed

+37
-25
lines changed

4 files changed

+37
-25
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
This changelog records changes to stable releases since 1.50.2. "TBA" changes here may be available in the [nightly release](https://github.com/microsoft/vscode-js-debug/#nightly-extension) before they're in stable. Note that the minor version (`v1.X.0`) corresponds to the VS Code version js-debug is shipped in, but the patch version (`v1.50.X`) is not meaningful.
44

5+
## Nightly
6+
7+
- fix: apply electron updates for debugging vscode webviews ([ref](https://github.com/microsoft/vscode/issues/128637))
8+
59
## v1.59 (July 2021)
610

711
### v1.59.0 - 2021-07-27

src/adapter/threads.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1120,7 +1120,7 @@ export class Thread implements IVariableStoreDelegate {
11201120

11211121
// see https://github.com/microsoft/vscode/issues/103027
11221122
const runtimeScriptOffset = event.url.endsWith('#vscode-extension')
1123-
? { lineOffset: 2, columnOffset: 0 }
1123+
? { lineOffset: 1, columnOffset: 0 }
11241124
: undefined;
11251125

11261126
let resolvedSourceMapUrl: string | undefined;

src/targets/browser/vscodeRendererAttacher.ts

+3-23
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { DebugType } from '../../common/contributionUtils';
1111
import { DisposableList } from '../../common/disposable';
1212
import { ILogger, LogTag } from '../../common/logging';
1313
import { ISourcePathResolver } from '../../common/sourcePathResolver';
14-
import { createTargetFilterForConfig, TargetFilter } from '../../common/urlUtils';
14+
import { TargetFilter } from '../../common/urlUtils';
1515
import {
1616
AnyLaunchConfiguration,
1717
applyDefaults,
@@ -21,8 +21,6 @@ import { ITelemetryReporter } from '../../telemetry/telemetryReporter';
2121
import { ISourcePathResolverFactory } from '../sourcePathResolverFactory';
2222
import { ILaunchContext } from '../targets';
2323
import { BrowserAttacher } from './browserAttacher';
24-
import { BrowserTargetManager } from './browserTargetManager';
25-
import { BrowserTargetType } from './browserTargets';
2624
import { VSCodeRendererTargetManager } from './vscodeRendererTargetManager';
2725

2826
export interface IRendererAttachParams extends IChromeAttachConfiguration {
@@ -106,26 +104,8 @@ export class VSCodeRendererAttacher extends BrowserAttacher<IRendererAttachParam
106104
return new Connection(new RawPipeTransport(this.logger, pipe), this.logger, telemetryReporter);
107105
}
108106

109-
protected async getTargetFilter(
110-
_manager: BrowserTargetManager,
111-
params: IRendererAttachParams,
112-
): Promise<TargetFilter> {
113-
const baseFilter = createTargetFilterForConfig(params);
114-
return target => {
115-
if (
116-
params.debugWebWorkerExtHost &&
117-
target.type === BrowserTargetType.Worker &&
118-
target.title === 'WorkerExtensionHost'
119-
) {
120-
return true;
121-
}
122-
123-
if (params.debugWebviews && target.type === BrowserTargetType.IFrame && baseFilter(target)) {
124-
return true;
125-
}
126-
127-
return false;
128-
};
107+
protected async getTargetFilter(manager: VSCodeRendererTargetManager): Promise<TargetFilter> {
108+
return manager.filter;
129109
}
130110

131111
/**

src/targets/browser/vscodeRendererTargetManager.ts

+29-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import Cdp from '../../cdp/api';
77
import CdpConnection from '../../cdp/connection';
88
import { ILogger } from '../../common/logging';
99
import { ISourcePathResolver } from '../../common/sourcePathResolver';
10+
import { createTargetFilterForConfig, TargetFilter } from '../../common/urlUtils';
1011
import { ITelemetryReporter } from '../../telemetry/telemetryReporter';
1112
import { ITargetOrigin } from '../targetOrigin';
1213
import { BrowserTargetManager } from './browserTargetManager';
@@ -46,6 +47,33 @@ export class VSCodeRendererTargetManager extends BrowserTargetManager {
4647
);
4748
}
4849

50+
private readonly baseFilter = createTargetFilterForConfig(this.launchParams);
51+
52+
/**
53+
* Target filter for interested attachments.
54+
*/
55+
public readonly filter: TargetFilter = target => {
56+
const { debugWebWorkerExtHost, debugWebviews } = this.launchParams as IRendererAttachParams;
57+
if (debugWebWorkerExtHost) {
58+
if (target.type === BrowserTargetType.Worker && target.title === 'DebugWorkerExtensionHost') {
59+
return true;
60+
}
61+
62+
if (
63+
target.type === BrowserTargetType.Page &&
64+
target.title.includes('[Extension Development Host]')
65+
) {
66+
return true;
67+
}
68+
}
69+
70+
if (debugWebviews && target.type === BrowserTargetType.IFrame && this.baseFilter(target)) {
71+
return true;
72+
}
73+
74+
return false;
75+
};
76+
4977
/**
5078
* @inheritdoc
5179
*/
@@ -89,7 +117,7 @@ export class VSCodeRendererTargetManager extends BrowserTargetManager {
89117
const target = super.attachedToTarget(
90118
targetInfo,
91119
sessionId,
92-
waitingForDebugger,
120+
waitingForDebugger || this.filter(targetInfo),
93121
parentTarget,
94122
false,
95123
);

0 commit comments

Comments
 (0)