File tree Expand file tree Collapse file tree 3 files changed +9
-3
lines changed Expand file tree Collapse file tree 3 files changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -4,11 +4,12 @@ This changelog records changes to stable releases since 1.50.2. "TBA" changes he
4
4
5
5
## 1.100 (April 2025)
6
6
7
- - fix: explicitly specify completion ranges ([[ vscode #243409 ] ( https://github.com/microsoft/vscode/issues/243409 )] )
7
+ - fix: explicitly specify completion ranges ([ vscode #243409 ] ( https://github.com/microsoft/vscode/issues/243409 ) )
8
8
- fix: memory leak between debug sessions ([ #2173 ] ( https://github.com/microsoft/vscode-js-debug/issues/2173 ) )
9
9
- fix: support ` npm.scriptRunner: node `
10
10
- fix: support "attach to node process" without wmic.exe and on arm64 ([ vscode #244139 ] ( https://github.com/microsoft/vscode/issues/244139 ) )
11
11
- fix: support webview2 debugging on arm64
12
+ - fix: race condition when opening attached windows ([ vscode #239769 ] ( https://github.com/microsoft/vscode/issues/239769 ) )
12
13
- chore: enable experimental networking by default on recent Node versions
13
14
14
15
## 1.97 (January 2025)
Original file line number Diff line number Diff line change @@ -260,7 +260,9 @@ export class BrowserTargetManager implements IDisposable {
260
260
// Also for service workers: https://bugs.chromium.org/p/chromium/issues/detail?id=1281013
261
261
if ( ! jsTypes . has ( type ) || type === BrowserTargetType . ServiceWorker ) {
262
262
target . runIfWaitingForDebugger ( ) ;
263
- } else if ( type === BrowserTargetType . Page && waitForDebuggerOnStart ) {
263
+ } else if (
264
+ type === BrowserTargetType . Page && waitForDebuggerOnStart && ! targetInfo . canAccessOpener
265
+ ) {
264
266
cdp . Page . waitForDebugger ( { } ) ;
265
267
}
266
268
Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ export class BrowserTarget implements ITarget {
92
92
}
93
93
94
94
_children : Map < Cdp . Target . TargetID , BrowserTarget > = new Map ( ) ;
95
+ willWaitForDebugger : Promise < unknown > = Promise . resolve ( ) ;
95
96
96
97
public readonly sourcePathResolver = this . _manager . _sourcePathResolver ;
97
98
@@ -150,7 +151,9 @@ export class BrowserTarget implements ITarget {
150
151
151
152
async runIfWaitingForDebugger ( ) {
152
153
await Promise . all ( [
153
- this . _cdp . Runtime . runIfWaitingForDebugger ( { } ) ,
154
+ // If it can access the opener, the debugger state is shared with the parent,
155
+ // and calling `runIfWaitingForDebugger` can resume the parent.
156
+ ! this . _targetInfo . canAccessOpener && this . _cdp . Runtime . runIfWaitingForDebugger ( { } ) ,
154
157
this . _cdp . Runtime . evaluate ( { expression : signalReadyExpr ( ) } ) ,
155
158
] ) ;
156
159
}
You can’t perform that action at this time.
0 commit comments