chrome-devtools-frontend 1.0.927127 → 1.0.928589

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.
Files changed (144) hide show
  1. package/AUTHORS +1 -0
  2. package/config/gni/all_devtools_files.gni +0 -1
  3. package/config/gni/devtools_grd_files.gni +30 -4
  4. package/config/gni/devtools_image_files.gni +1 -0
  5. package/front_end/Images/src/ic_preview_feature.svg +3 -0
  6. package/front_end/Tests.js +2 -3
  7. package/front_end/core/common/Settings.ts +26 -45
  8. package/front_end/core/host/UserMetrics.ts +2 -2
  9. package/front_end/core/i18n/locales/en-US.json +60 -15
  10. package/front_end/core/i18n/locales/en-XL.json +60 -15
  11. package/front_end/core/platform/keyboard-utilities.ts +1 -0
  12. package/front_end/core/root/Runtime.ts +62 -61
  13. package/front_end/core/sdk/AccessibilityModel.ts +73 -73
  14. package/front_end/core/sdk/CPUProfileDataModel.ts +14 -14
  15. package/front_end/core/sdk/CPUProfilerModel.ts +33 -33
  16. package/front_end/core/sdk/CPUThrottlingManager.ts +8 -8
  17. package/front_end/core/sdk/CSSFontFace.ts +10 -10
  18. package/front_end/core/sdk/CSSMatchedStyles.ts +114 -114
  19. package/front_end/core/sdk/CSSMedia.ts +22 -22
  20. package/front_end/core/sdk/CSSMetadata.ts +53 -49
  21. package/front_end/core/sdk/CSSModel.ts +139 -135
  22. package/front_end/core/sdk/CSSProperty.ts +18 -18
  23. package/front_end/core/sdk/CSSRule.ts +15 -15
  24. package/front_end/core/sdk/CSSStyleDeclaration.ts +49 -47
  25. package/front_end/core/sdk/CSSStyleSheetHeader.ts +12 -12
  26. package/front_end/core/sdk/ChildTargetManager.ts +41 -40
  27. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +10 -10
  28. package/front_end/core/sdk/Connections.ts +81 -81
  29. package/front_end/core/sdk/ConsoleModel.ts +68 -68
  30. package/front_end/core/sdk/Cookie.ts +48 -48
  31. package/front_end/core/sdk/CookieModel.ts +13 -13
  32. package/front_end/core/sdk/CookieParser.ts +45 -45
  33. package/front_end/core/sdk/DOMDebuggerModel.ts +131 -131
  34. package/front_end/core/sdk/DOMModel.ts +264 -252
  35. package/front_end/core/sdk/DebuggerModel.ts +209 -205
  36. package/front_end/core/sdk/EmulationModel.ts +76 -76
  37. package/front_end/core/sdk/FilmStripModel.ts +29 -29
  38. package/front_end/core/sdk/FrameManager.ts +43 -42
  39. package/front_end/core/sdk/HeapProfilerModel.ts +36 -36
  40. package/front_end/core/sdk/IsolateManager.ts +82 -82
  41. package/front_end/core/sdk/IssuesModel.ts +6 -6
  42. package/front_end/core/sdk/LayerTreeBase.ts +37 -37
  43. package/front_end/core/sdk/LogModel.ts +5 -5
  44. package/front_end/core/sdk/NetworkManager.ts +229 -225
  45. package/front_end/core/sdk/NetworkRequest.ts +368 -360
  46. package/front_end/core/sdk/OverlayColorGenerator.ts +9 -9
  47. package/front_end/core/sdk/OverlayModel.ts +155 -153
  48. package/front_end/core/sdk/OverlayPersistentHighlighter.ts +100 -101
  49. package/front_end/core/sdk/PageResourceLoader.ts +30 -30
  50. package/front_end/core/sdk/PaintProfiler.ts +16 -16
  51. package/front_end/core/sdk/PerformanceMetricsModel.ts +12 -12
  52. package/front_end/core/sdk/ProfileTreeModel.ts +3 -3
  53. package/front_end/core/sdk/RemoteObject.ts +108 -104
  54. package/front_end/core/sdk/Resource.ts +85 -84
  55. package/front_end/core/sdk/ResourceTreeModel.ts +150 -145
  56. package/front_end/core/sdk/RuntimeModel.ts +38 -34
  57. package/front_end/core/sdk/SDKModel.ts +3 -3
  58. package/front_end/core/sdk/ScreenCaptureModel.ts +19 -19
  59. package/front_end/core/sdk/Script.ts +29 -29
  60. package/front_end/core/sdk/SecurityOriginManager.ts +19 -19
  61. package/front_end/core/sdk/ServerTiming.ts +2 -2
  62. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +43 -43
  63. package/front_end/core/sdk/ServiceWorkerManager.ts +72 -68
  64. package/front_end/core/sdk/SourceMap.ts +40 -36
  65. package/front_end/core/sdk/SourceMapManager.ts +57 -57
  66. package/front_end/core/sdk/Target.ts +64 -63
  67. package/front_end/core/sdk/TargetManager.ts +60 -56
  68. package/front_end/core/sdk/TracingManager.ts +39 -39
  69. package/front_end/core/sdk/TracingModel.ts +125 -125
  70. package/front_end/core/sdk/WebAuthnModel.ts +9 -9
  71. package/front_end/entrypoints/lighthouse_worker/{LighthouseService.js → LighthouseService.ts} +20 -45
  72. package/front_end/entrypoints/lighthouse_worker/{lighthouse_worker.js → lighthouse_worker.ts} +0 -0
  73. package/front_end/entrypoints/main/MainImpl.ts +7 -2
  74. package/front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js +4 -4
  75. package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +1 -1
  76. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -6
  77. package/front_end/models/issues_manager/GenericIssue.ts +86 -0
  78. package/front_end/models/issues_manager/Issue.ts +24 -0
  79. package/front_end/models/issues_manager/IssuesManager.ts +18 -6
  80. package/front_end/models/issues_manager/descriptions/genericCrossOriginPortalPostMessageError.md +3 -0
  81. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  82. package/front_end/models/javascript_metadata/NativeFunctions.js +5422 -1
  83. package/front_end/panels/console/ConsoleSidebar.ts +0 -3
  84. package/front_end/panels/elements/ElementsTreeElement.ts +53 -61
  85. package/front_end/panels/elements/ElementsTreeOutline.ts +0 -1
  86. package/front_end/panels/elements/components/LayoutPane.ts +5 -1
  87. package/front_end/panels/issues/GenericIssueDetailsView.ts +68 -0
  88. package/front_end/panels/issues/IssueAggregator.ts +16 -0
  89. package/front_end/panels/issues/IssueKindView.ts +95 -0
  90. package/front_end/panels/issues/IssueView.ts +6 -0
  91. package/front_end/panels/issues/IssuesPane.ts +81 -18
  92. package/front_end/panels/issues/issuesTree.css +8 -3
  93. package/front_end/panels/lighthouse/LighthouseController.ts +3 -1
  94. package/front_end/panels/network/NetworkItemView.ts +1 -1
  95. package/front_end/panels/network/networkLogView.css +5 -0
  96. package/front_end/panels/sensors/LocationsSettingsTab.ts +1 -1
  97. package/front_end/panels/settings/SettingsScreen.ts +1 -0
  98. package/front_end/panels/settings/settingsScreen.css +24 -0
  99. package/front_end/panels/snippets/SnippetsQuickOpen.ts +8 -3
  100. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  101. package/front_end/panels/sources/sources-meta.ts +22 -7
  102. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  103. package/front_end/third_party/codemirror.next/package.json +4 -4
  104. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +137 -0
  105. package/front_end/ui/components/code_highlighter/codeHighlighter.css +51 -0
  106. package/front_end/ui/components/code_highlighter/code_highlighter.ts +11 -0
  107. package/front_end/ui/components/docs/text_editor/basic.html +28 -0
  108. package/front_end/ui/components/docs/text_editor/basic.ts +14 -0
  109. package/front_end/ui/components/docs/text_prompt/basic.html +35 -0
  110. package/front_end/ui/components/docs/text_prompt/basic.ts +19 -0
  111. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +1 -0
  112. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +17 -0
  113. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -0
  114. package/front_end/ui/components/text_editor/TextEditor.ts +161 -0
  115. package/front_end/ui/components/text_editor/config.ts +264 -0
  116. package/front_end/{panels/console/components/components.ts → ui/components/text_editor/text_editor.ts} +2 -5
  117. package/front_end/ui/components/text_editor/theme.ts +113 -0
  118. package/front_end/ui/components/text_prompt/TextPrompt.ts +144 -0
  119. package/front_end/ui/components/text_prompt/textPrompt.css +33 -0
  120. package/front_end/ui/components/text_prompt/text_prompt.ts +9 -0
  121. package/front_end/ui/legacy/ARIAUtils.ts +14 -11
  122. package/front_end/ui/legacy/TabbedPane.ts +32 -3
  123. package/front_end/ui/legacy/UIUtils.ts +3 -1
  124. package/front_end/ui/legacy/View.ts +6 -0
  125. package/front_end/ui/legacy/ViewManager.ts +5 -1
  126. package/front_end/ui/legacy/ViewRegistration.ts +5 -0
  127. package/front_end/ui/legacy/XLink.ts +1 -1
  128. package/front_end/ui/legacy/closeButton.css +6 -0
  129. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +8 -3
  130. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +38 -38
  131. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +10 -4
  132. package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +23 -6
  133. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +14 -16
  134. package/front_end/ui/legacy/filter.css +1 -0
  135. package/front_end/ui/legacy/tabbedPane.css +24 -0
  136. package/front_end/ui/legacy/toolbar.css +5 -0
  137. package/inspector_overlay/main.ts +2 -1
  138. package/inspector_overlay/tool_screenshot.ts +8 -1
  139. package/package.json +1 -1
  140. package/scripts/build/rollup.config.js +9 -0
  141. package/scripts/migration/class-fields/migrate.js +56 -0
  142. package/scripts/migration/class-fields/package.json +5 -0
  143. package/front_end/panels/console/components/SidebarDeprecation.ts +0 -58
  144. package/front_end/panels/console/components/sidebarDeprecation.css +0 -17
@@ -15,9 +15,9 @@ import * as Host from '../host/host.js';
15
15
  let targetManagerInstance: TargetManager|undefined;
16
16
 
17
17
  export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
18
- private targetsInternal: Set<Target>;
19
- private readonly observers: Set<Observer>;
20
- private modelListeners: Platform.MapUtilities.Multimap<string|symbol|number, {
18
+ #targetsInternal: Set<Target>;
19
+ readonly #observers: Set<Observer>;
20
+ #modelListeners: Platform.MapUtilities.Multimap<string|symbol|number, {
21
21
  modelClass: new(arg1: Target) => SDKModel,
22
22
  thisObject: (Object|undefined),
23
23
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -25,18 +25,18 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
25
25
  }>;
26
26
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
27
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- private readonly modelObservers: Platform.MapUtilities.Multimap<new(arg1: Target) => SDKModel, SDKModelObserver<any>>;
29
- private isSuspended: boolean;
30
- private browserTargetInternal: Target|null;
28
+ readonly #modelObservers: Platform.MapUtilities.Multimap<new(arg1: Target) => SDKModel, SDKModelObserver<any>>;
29
+ #isSuspended: boolean;
30
+ #browserTargetInternal: Target|null;
31
31
 
32
32
  private constructor() {
33
33
  super();
34
- this.targetsInternal = new Set();
35
- this.observers = new Set();
36
- this.modelListeners = new Platform.MapUtilities.Multimap();
37
- this.modelObservers = new Platform.MapUtilities.Multimap();
38
- this.isSuspended = false;
39
- this.browserTargetInternal = null;
34
+ this.#targetsInternal = new Set();
35
+ this.#observers = new Set();
36
+ this.#modelListeners = new Platform.MapUtilities.Multimap();
37
+ this.#modelObservers = new Platform.MapUtilities.Multimap();
38
+ this.#isSuspended = false;
39
+ this.#browserTargetInternal = null;
40
40
  }
41
41
 
42
42
  static instance({forceNew}: {
@@ -62,32 +62,32 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
62
62
  }
63
63
 
64
64
  async suspendAllTargets(reason?: string): Promise<void> {
65
- if (this.isSuspended) {
65
+ if (this.#isSuspended) {
66
66
  return;
67
67
  }
68
- this.isSuspended = true;
68
+ this.#isSuspended = true;
69
69
  this.dispatchEventToListeners(Events.SuspendStateChanged);
70
- const suspendPromises = Array.from(this.targetsInternal.values(), target => target.suspend(reason));
70
+ const suspendPromises = Array.from(this.#targetsInternal.values(), target => target.suspend(reason));
71
71
  await Promise.all(suspendPromises);
72
72
  }
73
73
 
74
74
  async resumeAllTargets(): Promise<void> {
75
- if (!this.isSuspended) {
75
+ if (!this.#isSuspended) {
76
76
  return;
77
77
  }
78
- this.isSuspended = false;
78
+ this.#isSuspended = false;
79
79
  this.dispatchEventToListeners(Events.SuspendStateChanged);
80
- const resumePromises = Array.from(this.targetsInternal.values(), target => target.resume());
80
+ const resumePromises = Array.from(this.#targetsInternal.values(), target => target.resume());
81
81
  await Promise.all(resumePromises);
82
82
  }
83
83
 
84
84
  allTargetsSuspended(): boolean {
85
- return this.isSuspended;
85
+ return this.#isSuspended;
86
86
  }
87
87
 
88
88
  models<T extends SDKModel>(modelClass: new(arg1: Target) => T): T[] {
89
89
  const result = [];
90
- for (const target of this.targetsInternal) {
90
+ for (const target of this.#targetsInternal) {
91
91
  const model = target.model(modelClass);
92
92
  if (model) {
93
93
  result.push(model);
@@ -103,24 +103,24 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
103
103
 
104
104
  observeModels<T extends SDKModel>(modelClass: new(arg1: Target) => T, observer: SDKModelObserver<T>): void {
105
105
  const models = this.models(modelClass);
106
- this.modelObservers.set(modelClass, observer);
106
+ this.#modelObservers.set(modelClass, observer);
107
107
  for (const model of models) {
108
108
  observer.modelAdded(model);
109
109
  }
110
110
  }
111
111
 
112
112
  unobserveModels<T extends SDKModel>(modelClass: new(arg1: Target) => SDKModel, observer: SDKModelObserver<T>): void {
113
- this.modelObservers.delete(modelClass, observer);
113
+ this.#modelObservers.delete(modelClass, observer);
114
114
  }
115
115
 
116
116
  modelAdded(target: Target, modelClass: new(arg1: Target) => SDKModel, model: SDKModel): void {
117
- for (const observer of this.modelObservers.get(modelClass).values()) {
117
+ for (const observer of this.#modelObservers.get(modelClass).values()) {
118
118
  observer.modelAdded(model);
119
119
  }
120
120
  }
121
121
 
122
122
  private modelRemoved(target: Target, modelClass: new(arg1: Target) => SDKModel, model: SDKModel): void {
123
- for (const observer of this.modelObservers.get(modelClass).values()) {
123
+ for (const observer of this.#modelObservers.get(modelClass).values()) {
124
124
  observer.modelRemoved(model);
125
125
  }
126
126
  }
@@ -131,13 +131,13 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
131
131
  for (const model of this.models(modelClass)) {
132
132
  model.addEventListener(eventType, listener, thisObject);
133
133
  }
134
- this.modelListeners.set(eventType, {modelClass: modelClass, thisObject: thisObject, listener: listener});
134
+ this.#modelListeners.set(eventType, {modelClass: modelClass, thisObject: thisObject, listener: listener});
135
135
  }
136
136
 
137
137
  removeModelListener<Events, T extends keyof Events>(
138
138
  modelClass: new(arg1: Target) => SDKModel<Events>, eventType: T,
139
139
  listener: Common.EventTarget.EventListener<Events, T>, thisObject?: Object): void {
140
- if (!this.modelListeners.has(eventType)) {
140
+ if (!this.#modelListeners.has(eventType)) {
141
141
  return;
142
142
  }
143
143
 
@@ -145,25 +145,25 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
145
145
  model.removeEventListener(eventType, listener, thisObject);
146
146
  }
147
147
 
148
- for (const info of this.modelListeners.get(eventType)) {
148
+ for (const info of this.#modelListeners.get(eventType)) {
149
149
  if (info.modelClass === modelClass && info.listener === listener && info.thisObject === thisObject) {
150
- this.modelListeners.delete(eventType, info);
150
+ this.#modelListeners.delete(eventType, info);
151
151
  }
152
152
  }
153
153
  }
154
154
 
155
155
  observeTargets(targetObserver: Observer): void {
156
- if (this.observers.has(targetObserver)) {
156
+ if (this.#observers.has(targetObserver)) {
157
157
  throw new Error('Observer can only be registered once');
158
158
  }
159
- for (const target of this.targetsInternal) {
159
+ for (const target of this.#targetsInternal) {
160
160
  targetObserver.targetAdded(target);
161
161
  }
162
- this.observers.add(targetObserver);
162
+ this.#observers.add(targetObserver);
163
163
  }
164
164
 
165
165
  unobserveTargets(targetObserver: Observer): void {
166
- this.observers.delete(targetObserver);
166
+ this.#observers.delete(targetObserver);
167
167
  }
168
168
 
169
169
  createTarget(
@@ -171,15 +171,15 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
171
171
  sessionId?: string, waitForDebuggerInPage?: boolean, connection?: ProtocolClient.InspectorBackend.Connection,
172
172
  targetInfo?: Protocol.Target.TargetInfo): Target {
173
173
  const target = new Target(
174
- this, id, name, type, parentTarget, sessionId || '', this.isSuspended, connection || null, targetInfo);
174
+ this, id, name, type, parentTarget, sessionId || '', this.#isSuspended, connection || null, targetInfo);
175
175
  if (waitForDebuggerInPage) {
176
176
  target.pageAgent().invoke_waitForDebugger();
177
177
  }
178
- target.createModels(new Set(this.modelObservers.keysArray()));
179
- this.targetsInternal.add(target);
178
+ target.createModels(new Set(this.#modelObservers.keysArray()));
179
+ this.#targetsInternal.add(target);
180
180
 
181
- // Iterate over a copy. observers might be modified during iteration.
182
- for (const observer of [...this.observers]) {
181
+ // Iterate over a copy. #observers might be modified during iteration.
182
+ for (const observer of [...this.#observers]) {
183
183
  observer.targetAdded(target);
184
184
  }
185
185
 
@@ -187,8 +187,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
187
187
  this.modelAdded(target, modelClass, model);
188
188
  }
189
189
 
190
- for (const key of this.modelListeners.keysArray()) {
191
- for (const info of this.modelListeners.get(key)) {
190
+ for (const key of this.#modelListeners.keysArray()) {
191
+ for (const info of this.#modelListeners.get(key)) {
192
192
  const model = target.model(info.modelClass);
193
193
  if (model) {
194
194
  model.addEventListener(key, info.listener, info.thisObject);
@@ -200,23 +200,23 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
200
200
  }
201
201
 
202
202
  removeTarget(target: Target): void {
203
- if (!this.targetsInternal.has(target)) {
203
+ if (!this.#targetsInternal.has(target)) {
204
204
  return;
205
205
  }
206
206
 
207
- this.targetsInternal.delete(target);
207
+ this.#targetsInternal.delete(target);
208
208
  for (const modelClass of target.models().keys()) {
209
209
  const model = (target.models().get(modelClass) as SDKModel);
210
210
  this.modelRemoved(target, modelClass, model);
211
211
  }
212
212
 
213
- // Iterate over a copy. observers might be modified during iteration.
214
- for (const observer of [...this.observers]) {
213
+ // Iterate over a copy. #observers might be modified during iteration.
214
+ for (const observer of [...this.#observers]) {
215
215
  observer.targetRemoved(target);
216
216
  }
217
217
 
218
- for (const key of this.modelListeners.keysArray()) {
219
- for (const info of this.modelListeners.get(key)) {
218
+ for (const key of this.#modelListeners.keysArray()) {
219
+ for (const info of this.#modelListeners.get(key)) {
220
220
  const model = target.model(info.modelClass);
221
221
  if (model) {
222
222
  model.removeEventListener(key, info.listener, info.thisObject);
@@ -226,43 +226,47 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
226
226
  }
227
227
 
228
228
  targets(): Target[] {
229
- return [...this.targetsInternal];
229
+ return [...this.#targetsInternal];
230
230
  }
231
231
 
232
232
  targetById(id: string): Target|null {
233
- // TODO(dgozman): add a map id -> target.
233
+ // TODO(dgozman): add a map #id -> #target.
234
234
  return this.targets().find(target => target.id() === id) || null;
235
235
  }
236
236
 
237
237
  mainTarget(): Target|null {
238
- return this.targetsInternal.size ? this.targetsInternal.values().next().value : null;
238
+ return this.#targetsInternal.size ? this.#targetsInternal.values().next().value : null;
239
239
  }
240
240
 
241
241
  browserTarget(): Target|null {
242
- return this.browserTargetInternal;
242
+ return this.#browserTargetInternal;
243
243
  }
244
244
 
245
245
  async maybeAttachInitialTarget(): Promise<boolean> {
246
246
  if (!Boolean(Root.Runtime.Runtime.queryParam('browserConnection'))) {
247
247
  return false;
248
248
  }
249
- if (!this.browserTargetInternal) {
250
- this.browserTargetInternal = new Target(
251
- this, /* id*/ 'main', /* name*/ 'browser', TargetType.Browser, /* parentTarget*/ null,
252
- /* sessionId */ '', /* suspended*/ false, /* connection*/ null, /* targetInfo*/ undefined);
253
- this.browserTargetInternal.createModels(new Set(this.modelObservers.keysArray()));
249
+ if (!this.#browserTargetInternal) {
250
+ this.#browserTargetInternal = new Target(
251
+ this, /* #id*/ 'main', /* #name*/ 'browser', TargetType.Browser, /* #parentTarget*/ null,
252
+ /* #sessionId */ '', /* suspended*/ false, /* #connection*/ null, /* targetInfo*/ undefined);
253
+ this.#browserTargetInternal.createModels(new Set(this.#modelObservers.keysArray()));
254
254
  }
255
255
  const targetId =
256
256
  await Host.InspectorFrontendHost.InspectorFrontendHostInstance.initialTargetId() as Protocol.Target.TargetID;
257
257
  // Do not await for Target.autoAttachRelated to return, as it goes throguh the renderer and we don't want to block early
258
- // at front-end initialization if a renderer is stuck. The rest of target discovery and auto-attach process should happen
258
+ // at front-end initialization if a renderer is stuck. The rest of #target discovery and auto-attach process should happen
259
259
  // asynchronously upon Target.attachedToTarget.
260
- this.browserTargetInternal.targetAgent().invoke_autoAttachRelated({
260
+ this.#browserTargetInternal.targetAgent().invoke_autoAttachRelated({
261
261
  targetId,
262
262
  waitForDebuggerOnStart: true,
263
263
  });
264
264
  return true;
265
265
  }
266
+
267
+ clearAllTargetsForTest(): void {
268
+ this.#targetsInternal.clear();
269
+ }
266
270
  }
267
271
 
268
272
  // TODO(crbug.com/1167717): Make this a const enum again
@@ -11,86 +11,86 @@ import {SDKModel} from './SDKModel.js';
11
11
  import type {ObjectSnapshot} from './TracingModel.js';
12
12
 
13
13
  export class TracingManager extends SDKModel<void> {
14
- private readonly tracingAgent: ProtocolProxyApi.TracingApi;
15
- private activeClient: TracingManagerClient|null;
16
- private eventBufferSize: number|null;
17
- private eventsRetrieved: number;
18
- private finishing?: boolean;
14
+ readonly #tracingAgent: ProtocolProxyApi.TracingApi;
15
+ #activeClient: TracingManagerClient|null;
16
+ #eventBufferSize: number|null;
17
+ #eventsRetrieved: number;
18
+ #finishing?: boolean;
19
19
  constructor(target: Target) {
20
20
  super(target);
21
- this.tracingAgent = target.tracingAgent();
21
+ this.#tracingAgent = target.tracingAgent();
22
22
  target.registerTracingDispatcher(new TracingDispatcher(this));
23
23
 
24
- this.activeClient = null;
25
- this.eventBufferSize = 0;
26
- this.eventsRetrieved = 0;
24
+ this.#activeClient = null;
25
+ this.#eventBufferSize = 0;
26
+ this.#eventsRetrieved = 0;
27
27
  }
28
28
 
29
29
  bufferUsage(usage?: number, eventCount?: number, percentFull?: number): void {
30
- this.eventBufferSize = eventCount === undefined ? null : eventCount;
31
- if (this.activeClient) {
32
- this.activeClient.tracingBufferUsage(usage || percentFull || 0);
30
+ this.#eventBufferSize = eventCount === undefined ? null : eventCount;
31
+ if (this.#activeClient) {
32
+ this.#activeClient.tracingBufferUsage(usage || percentFull || 0);
33
33
  }
34
34
  }
35
35
 
36
36
  eventsCollected(events: EventPayload[]): void {
37
- if (!this.activeClient) {
37
+ if (!this.#activeClient) {
38
38
  return;
39
39
  }
40
- this.activeClient.traceEventsCollected(events);
41
- this.eventsRetrieved += events.length;
42
- if (!this.eventBufferSize) {
43
- this.activeClient.eventsRetrievalProgress(0);
40
+ this.#activeClient.traceEventsCollected(events);
41
+ this.#eventsRetrieved += events.length;
42
+ if (!this.#eventBufferSize) {
43
+ this.#activeClient.eventsRetrievalProgress(0);
44
44
  return;
45
45
  }
46
46
 
47
- if (this.eventsRetrieved > this.eventBufferSize) {
48
- this.eventsRetrieved = this.eventBufferSize;
47
+ if (this.#eventsRetrieved > this.#eventBufferSize) {
48
+ this.#eventsRetrieved = this.#eventBufferSize;
49
49
  }
50
- this.activeClient.eventsRetrievalProgress(this.eventsRetrieved / this.eventBufferSize);
50
+ this.#activeClient.eventsRetrievalProgress(this.#eventsRetrieved / this.#eventBufferSize);
51
51
  }
52
52
 
53
53
  tracingComplete(): void {
54
- this.eventBufferSize = 0;
55
- this.eventsRetrieved = 0;
56
- if (this.activeClient) {
57
- this.activeClient.tracingComplete();
58
- this.activeClient = null;
54
+ this.#eventBufferSize = 0;
55
+ this.#eventsRetrieved = 0;
56
+ if (this.#activeClient) {
57
+ this.#activeClient.tracingComplete();
58
+ this.#activeClient = null;
59
59
  }
60
- this.finishing = false;
60
+ this.#finishing = false;
61
61
  }
62
62
 
63
63
  // TODO(petermarshall): Use the traceConfig argument instead of deprecated
64
64
  // categories + options.
65
65
  async start(client: TracingManagerClient, categoryFilter: string, options: string):
66
66
  Promise<Protocol.ProtocolResponseWithError> {
67
- if (this.activeClient) {
67
+ if (this.#activeClient) {
68
68
  throw new Error('Tracing is already started');
69
69
  }
70
70
  const bufferUsageReportingIntervalMs = 500;
71
- this.activeClient = client;
71
+ this.#activeClient = client;
72
72
  const args = {
73
73
  bufferUsageReportingInterval: bufferUsageReportingIntervalMs,
74
74
  categories: categoryFilter,
75
75
  options: options,
76
76
  transferMode: Protocol.Tracing.StartRequestTransferMode.ReportEvents,
77
77
  };
78
- const response = await this.tracingAgent.invoke_start(args);
78
+ const response = await this.#tracingAgent.invoke_start(args);
79
79
  if (response.getError()) {
80
- this.activeClient = null;
80
+ this.#activeClient = null;
81
81
  }
82
82
  return response;
83
83
  }
84
84
 
85
85
  stop(): void {
86
- if (!this.activeClient) {
86
+ if (!this.#activeClient) {
87
87
  throw new Error('Tracing is not started');
88
88
  }
89
- if (this.finishing) {
89
+ if (this.#finishing) {
90
90
  throw new Error('Tracing is already being stopped');
91
91
  }
92
- this.finishing = true;
93
- this.tracingAgent.invoke_end();
92
+ this.#finishing = true;
93
+ this.#tracingAgent.invoke_end();
94
94
  }
95
95
  }
96
96
 
@@ -106,21 +106,21 @@ export interface TracingManagerClient {
106
106
  }
107
107
 
108
108
  class TracingDispatcher implements ProtocolProxyApi.TracingDispatcher {
109
- private readonly tracingManager: TracingManager;
109
+ readonly #tracingManager: TracingManager;
110
110
  constructor(tracingManager: TracingManager) {
111
- this.tracingManager = tracingManager;
111
+ this.#tracingManager = tracingManager;
112
112
  }
113
113
 
114
114
  bufferUsage({value, eventCount, percentFull}: Protocol.Tracing.BufferUsageEvent): void {
115
- this.tracingManager.bufferUsage(value, eventCount, percentFull);
115
+ this.#tracingManager.bufferUsage(value, eventCount, percentFull);
116
116
  }
117
117
 
118
118
  dataCollected({value}: Protocol.Tracing.DataCollectedEvent): void {
119
- this.tracingManager.eventsCollected(value);
119
+ this.#tracingManager.eventsCollected(value);
120
120
  }
121
121
 
122
122
  tracingComplete(): void {
123
- this.tracingManager.tracingComplete();
123
+ this.#tracingManager.tracingComplete();
124
124
  }
125
125
  }
126
126