Skip to content

Commit 181d531

Browse files
committed
polish: clear realtime view data when a debugee ends
Fixes microsoft/vscode#107792
1 parent f9a0d81 commit 181d531

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

packages/vscode-js-profile-flame/src/realtime/chart.ts

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ export class Chart {
122122
return;
123123
}
124124

125+
this.hasAnyData = hasData;
125126
this.elements.container.classList[hasData ? 'remove' : 'add'](styles.noData);
126127
}
127128

packages/vscode-js-profile-flame/src/realtime/client.ts

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ window.addEventListener('message', evt => {
3434
}
3535
chart.updateMetrics();
3636
break;
37+
case MessageType.ClearData:
38+
for (const metric of settings.allMetrics) {
39+
metric.setData([]);
40+
}
41+
chart.updateMetrics();
42+
break;
3743
default:
3844
// ignored
3945
}

packages/vscode-js-profile-flame/src/realtime/protocol.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const enum MessageType {
1717
SwitchGraph,
1818
SetEnabledMetrics,
1919
ApplyData,
20+
ClearData,
2021
}
2122

2223
export interface IDAMetrics {
@@ -90,7 +91,11 @@ export interface IApplyData {
9091
data: number[][];
9192
}
9293

93-
export type ToWebViewMessage = IAddData | IUpdateSettingsMessage | IApplyData;
94+
export interface IClearData {
95+
type: MessageType.ClearData;
96+
}
97+
98+
export type ToWebViewMessage = IAddData | IUpdateSettingsMessage | IApplyData | IClearData;
9499
export type FromWebViewMessage = ISwitchGraph | ISetEnabledGraphs;
95100

96101
export const getSteps = (settings: ISettings) =>

packages/vscode-js-profile-flame/src/realtimeSessionTracker.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,16 @@ export class RealtimeSessionTracker {
132132
*/
133133
public onSessionDidEnd(session: vscode.DebugSession) {
134134
const data = this.sessionData.get(session);
135-
if (data) {
136-
data.cts.cancel();
137-
this.sessionData.delete(session);
135+
if (!data) {
136+
return;
138137
}
139138

139+
data.cts.cancel();
140+
this.sessionData.delete(session);
141+
140142
if (this.displayedSession === session) {
141143
this.displayedSession = undefined;
144+
this.broadcast({ type: MessageType.ClearData });
142145
}
143146
}
144147

0 commit comments

Comments
 (0)