chrome-devtools-frontend 1.0.951864 → 1.0.952284

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/front_end/.eslintrc.js +6 -0
  2. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +36 -36
  3. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +53 -53
  4. package/front_end/entrypoints/formatter_worker/ESTreeWalker.ts +11 -11
  5. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +43 -43
  6. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +106 -105
  7. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +26 -26
  8. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +50 -55
  9. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +200 -200
  10. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +84 -83
  11. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.ts +15 -15
  12. package/front_end/entrypoints/inspector_main/InspectorMain.ts +21 -21
  13. package/front_end/entrypoints/main/ExecutionContextSelector.ts +30 -30
  14. package/front_end/entrypoints/main/MainImpl.ts +12 -12
  15. package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +33 -33
  16. package/front_end/entrypoints/node_app/NodeMain.ts +35 -35
  17. package/front_end/generated/InspectorBackendCommands.js +5 -1
  18. package/front_end/generated/protocol.d.ts +16 -0
  19. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +6 -6
  20. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +15 -15
  21. package/front_end/models/issues_manager/CorsIssue.ts +9 -9
  22. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -5
  23. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
  24. package/front_end/models/issues_manager/GenericIssue.ts +5 -5
  25. package/front_end/models/issues_manager/HeavyAdIssue.ts +5 -5
  26. package/front_end/models/issues_manager/Issue.ts +10 -10
  27. package/front_end/models/issues_manager/IssueResolver.ts +11 -10
  28. package/front_end/models/issues_manager/IssuesManager.ts +56 -56
  29. package/front_end/models/issues_manager/LowTextContrastIssue.ts +4 -4
  30. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -7
  31. package/front_end/models/issues_manager/NavigatorUserAgentIssue.ts +7 -7
  32. package/front_end/models/issues_manager/QuirksModeIssue.ts +4 -4
  33. package/front_end/models/issues_manager/SameSiteCookieIssue.ts +16 -16
  34. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +5 -5
  35. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +32 -31
  36. package/front_end/models/issues_manager/TrustedWebActivityIssue.ts +5 -5
  37. package/front_end/models/issues_manager/WasmCrossOriginModuleSharingIssue.ts +5 -5
  38. package/front_end/panels/application/components/BackForwardCacheView.ts +33 -33
  39. package/front_end/panels/application/components/EndpointsGrid.ts +12 -12
  40. package/front_end/panels/application/components/FrameDetailsView.ts +108 -110
  41. package/front_end/panels/application/components/OriginTrialTreeView.ts +45 -45
  42. package/front_end/panels/application/components/PermissionsPolicySection.ts +19 -19
  43. package/front_end/panels/application/components/ReportsGrid.ts +30 -30
  44. package/front_end/panels/application/components/StackTrace.ts +48 -47
  45. package/front_end/panels/application/components/TrustTokensView.ts +31 -31
  46. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +41 -52
  47. package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
  48. package/front_end/panels/css_overview/CSSOverviewPanel.ts +18 -27
  49. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +2 -2
  50. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +6 -6
  51. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +4 -4
  52. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +17 -17
  53. package/front_end/panels/elements/components/AdornerManager.ts +21 -21
  54. package/front_end/panels/elements/components/AdornerSettingsPane.ts +14 -14
  55. package/front_end/panels/elements/components/CSSQuery.ts +16 -16
  56. package/front_end/panels/elements/components/ComputedStyleProperty.ts +14 -14
  57. package/front_end/panels/elements/components/ComputedStyleTrace.ts +15 -15
  58. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +78 -78
  59. package/front_end/panels/elements/components/ElementsPanelLink.ts +16 -16
  60. package/front_end/panels/elements/components/LayoutPane.ts +47 -47
  61. package/front_end/panels/elements/components/NodeText.ts +18 -18
  62. package/front_end/panels/elements/components/QueryContainer.ts +40 -40
  63. package/front_end/panels/elements/components/StylePropertyEditor.ts +18 -18
  64. package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +4 -4
  65. package/front_end/panels/issues/AffectedBlockedByResponseView.ts +4 -4
  66. package/front_end/panels/issues/AffectedCookiesView.ts +4 -5
  67. package/front_end/panels/issues/AffectedDirectivesView.ts +19 -19
  68. package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +7 -8
  69. package/front_end/panels/issues/AffectedElementsView.ts +4 -4
  70. package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +7 -8
  71. package/front_end/panels/issues/AffectedHeavyAdView.ts +8 -8
  72. package/front_end/panels/issues/AffectedResourcesView.ts +25 -26
  73. package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +8 -8
  74. package/front_end/panels/issues/AffectedSourcesView.ts +4 -4
  75. package/front_end/panels/issues/AffectedTrustedWebActivityIssueDetailsView.ts +4 -4
  76. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +17 -17
  77. package/front_end/panels/issues/CSPViolationsListView.ts +22 -23
  78. package/front_end/panels/issues/CSPViolationsView.ts +17 -17
  79. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +13 -13
  80. package/front_end/panels/issues/CorsIssueDetailsView.ts +23 -23
  81. package/front_end/panels/issues/GenericIssueDetailsView.ts +4 -4
  82. package/front_end/panels/issues/HiddenIssuesRow.ts +7 -7
  83. package/front_end/panels/issues/IssueAggregator.ts +95 -95
  84. package/front_end/panels/issues/IssueKindView.ts +14 -14
  85. package/front_end/panels/issues/IssueView.ts +98 -98
  86. package/front_end/panels/issues/IssuesPane.ts +102 -102
  87. package/front_end/panels/issues/WasmCrossOriginModuleSharingAffectedResourcesView.ts +5 -5
  88. package/front_end/panels/issues/components/HideIssuesMenu.ts +10 -10
  89. package/front_end/panels/media/PlayerListView.ts +160 -97
  90. package/front_end/panels/media/PlayerMessagesView.ts +1 -0
  91. package/front_end/panels/media/playerListView.css +58 -0
  92. package/front_end/panels/network/NetworkLogView.ts +2 -6
  93. package/front_end/panels/network/NetworkWaterfallColumn.ts +2 -4
  94. package/front_end/panels/network/components/RequestTrustTokensView.ts +40 -40
  95. package/front_end/panels/network/components/WebBundleInfoView.ts +9 -9
  96. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +6 -12
  97. package/front_end/panels/settings/components/SyncSection.ts +14 -14
  98. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +96 -96
  99. package/front_end/panels/sources/BreakpointEditDialog.ts +4 -3
  100. package/front_end/panels/timeline/components/WebVitalsLane.ts +77 -76
  101. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +133 -133
  102. package/front_end/panels/timeline/components/WebVitalsTooltip.ts +9 -9
  103. package/front_end/panels/webauthn/WebauthnPane.ts +203 -205
  104. package/front_end/ui/components/adorners/Adorner.ts +2 -2
  105. package/front_end/ui/components/buttons/Button.ts +9 -9
  106. package/front_end/ui/components/data_grid/DataGrid.ts +62 -62
  107. package/front_end/ui/components/data_grid/DataGridController.ts +22 -22
  108. package/front_end/ui/components/diff_view/DiffView.ts +6 -6
  109. package/front_end/ui/components/expandable_list/ExpandableList.ts +5 -5
  110. package/front_end/ui/components/icon_button/Icon.ts +4 -4
  111. package/front_end/ui/components/icon_button/IconButton.ts +4 -4
  112. package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
  113. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +11 -11
  114. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +50 -50
  115. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +6 -6
  116. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +4 -4
  117. package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +12 -12
  118. package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +11 -11
  119. package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +40 -39
  120. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +18 -18
  121. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
  122. package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -4
  123. package/front_end/ui/components/markdown_view/MarkdownImage.ts +5 -5
  124. package/front_end/ui/components/markdown_view/MarkdownLink.ts +2 -2
  125. package/front_end/ui/components/markdown_view/MarkdownView.ts +4 -4
  126. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +2 -2
  127. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +2 -2
  128. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +4 -4
  129. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +22 -22
  130. package/front_end/ui/components/report_view/ReportView.ts +16 -16
  131. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +14 -14
  132. package/front_end/ui/components/settings/SettingCheckbox.ts +5 -5
  133. package/front_end/ui/components/survey_link/SurveyLink.ts +8 -8
  134. package/front_end/ui/components/text_editor/TextEditor.ts +9 -9
  135. package/front_end/ui/components/text_prompt/TextPrompt.ts +18 -18
  136. package/front_end/ui/components/tree_outline/TreeOutline.ts +69 -70
  137. package/front_end/ui/legacy/themeColors.css +2 -0
  138. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +12 -0
  139. package/package.json +1 -1
  140. package/scripts/eslint_rules/lib/use_private_class_members.js +41 -0
  141. package/scripts/eslint_rules/tests/use_private_class_members_test.js +62 -0
  142. package/scripts/migration/class-fields/migrate.js +2 -3
  143. package/scripts/migration/class-fields/migrate.sh +1 -3
  144. package/scripts/migration/class-fields/package.json +1 -1
@@ -133,7 +133,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
133
133
  this.affectedResourcesCountElement.classList.add('cors-issue-affected-resource-label');
134
134
  }
135
135
 
136
- private appendStatus(element: HTMLElement, isWarning: boolean): void {
136
+ #appendStatus(element: HTMLElement, isWarning: boolean): void {
137
137
  const status = document.createElement('td');
138
138
  if (isWarning) {
139
139
  status.classList.add('affected-resource-report-only-status');
@@ -149,8 +149,8 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
149
149
  return i18nString(UIStrings.nRequests, {n: count});
150
150
  }
151
151
 
152
- private appendDetails(
153
- issueCode: IssuesManager.CorsIssue.IssueCode, issues: Iterable<IssuesManager.CorsIssue.CorsIssue>): void {
152
+ #appendDetails(issueCode: IssuesManager.CorsIssue.IssueCode, issues: Iterable<IssuesManager.CorsIssue.CorsIssue>):
153
+ void {
154
154
  const header = document.createElement('tr');
155
155
  this.appendColumnTitle(header, i18nString(UIStrings.request));
156
156
  this.appendColumnTitle(header, i18nString(UIStrings.status));
@@ -222,12 +222,12 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
222
222
  let count = 0;
223
223
  for (const issue of issues) {
224
224
  count++;
225
- this.appendDetail(issueCode, issue);
225
+ this.#appendDetail(issueCode, issue);
226
226
  }
227
227
  this.updateAffectedResourceCount(count);
228
228
  }
229
229
 
230
- private appendSecureContextCell(element: HTMLElement, isSecureContext: boolean|undefined): void {
230
+ #appendSecureContextCell(element: HTMLElement, isSecureContext: boolean|undefined): void {
231
231
  if (isSecureContext === undefined) {
232
232
  this.appendIssueDetailCell(element, '');
233
233
  return;
@@ -292,7 +292,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
292
292
  throw new Error('Invalid Argument');
293
293
  }
294
294
 
295
- private appendDetail(issueCode: IssuesManager.CorsIssue.IssueCode, issue: IssuesManager.CorsIssue.CorsIssue): void {
295
+ #appendDetail(issueCode: IssuesManager.CorsIssue.IssueCode, issue: IssuesManager.CorsIssue.CorsIssue): void {
296
296
  const element = document.createElement('tr');
297
297
  element.classList.add('affected-resource-directive');
298
298
 
@@ -314,7 +314,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
314
314
  switch (issueCode) {
315
315
  case IssuesManager.CorsIssue.IssueCode.InvalidHeaderValues:
316
316
  element.appendChild(this.createRequestCell(details.request, opts));
317
- this.appendStatus(element, details.isWarning);
317
+ this.#appendStatus(element, details.isWarning);
318
318
  if (corsError.includes('Preflight')) {
319
319
  element.appendChild(
320
320
  this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
@@ -327,7 +327,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
327
327
  break;
328
328
  case IssuesManager.CorsIssue.IssueCode.WildcardOriginNotAllowed:
329
329
  element.appendChild(this.createRequestCell(details.request, opts));
330
- this.appendStatus(element, details.isWarning);
330
+ this.#appendStatus(element, details.isWarning);
331
331
  if (corsError.includes('Preflight')) {
332
332
  element.appendChild(
333
333
  this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
@@ -337,7 +337,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
337
337
  break;
338
338
  case IssuesManager.CorsIssue.IssueCode.PreflightResponseInvalid: {
339
339
  element.appendChild(this.createRequestCell(details.request, opts));
340
- this.appendStatus(element, details.isWarning);
340
+ this.#appendStatus(element, details.isWarning);
341
341
  const specialHighlightHeader = corsError === Protocol.Network.CorsError.PreflightInvalidStatus ?
342
342
  {
343
343
  section: NetworkForward.UIRequestLocation.UIHeaderSection.General,
@@ -351,7 +351,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
351
351
  }
352
352
  case IssuesManager.CorsIssue.IssueCode.OriginMismatch:
353
353
  element.appendChild(this.createRequestCell(details.request, opts));
354
- this.appendStatus(element, details.isWarning);
354
+ this.#appendStatus(element, details.isWarning);
355
355
  if (corsError.includes('Preflight')) {
356
356
  element.appendChild(
357
357
  this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
@@ -363,7 +363,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
363
363
  break;
364
364
  case IssuesManager.CorsIssue.IssueCode.AllowCredentialsRequired:
365
365
  element.appendChild(this.createRequestCell(details.request, opts));
366
- this.appendStatus(element, details.isWarning);
366
+ this.#appendStatus(element, details.isWarning);
367
367
  if (corsError.includes('Preflight')) {
368
368
  element.appendChild(
369
369
  this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
@@ -374,23 +374,23 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
374
374
  break;
375
375
  case IssuesManager.CorsIssue.IssueCode.InsecurePrivateNetwork:
376
376
  element.appendChild(this.createRequestCell(details.request, opts));
377
- this.appendStatus(element, details.isWarning);
377
+ this.#appendStatus(element, details.isWarning);
378
378
  this.appendIssueDetailCell(element, details.resourceIPAddressSpace ?? '');
379
379
  this.appendIssueDetailCell(element, details.clientSecurityState?.initiatorIPAddressSpace ?? '');
380
- this.appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
380
+ this.#appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
381
381
  break;
382
382
  case IssuesManager.CorsIssue.IssueCode.PreflightAllowPrivateNetworkError: {
383
383
  element.appendChild(this.createRequestCell(details.request, opts));
384
- this.appendStatus(element, details.isWarning);
384
+ this.#appendStatus(element, details.isWarning);
385
385
  element.appendChild(this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
386
386
  this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter, 'code-example');
387
387
  this.appendIssueDetailCell(element, details.clientSecurityState?.initiatorIPAddressSpace ?? '');
388
- this.appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
388
+ this.#appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
389
389
  break;
390
390
  }
391
391
  case IssuesManager.CorsIssue.IssueCode.MethodDisallowedByPreflightResponse:
392
392
  element.appendChild(this.createRequestCell(details.request, opts));
393
- this.appendStatus(element, details.isWarning);
393
+ this.#appendStatus(element, details.isWarning);
394
394
  element.appendChild(this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
395
395
  this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter, 'code-example');
396
396
  break;
@@ -402,7 +402,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
402
402
  name: corsErrorStatus.failedParameter,
403
403
  },
404
404
  }));
405
- this.appendStatus(element, details.isWarning);
405
+ this.#appendStatus(element, details.isWarning);
406
406
  element.appendChild(this.createRequestCell(details.request, {
407
407
  ...opts,
408
408
  linkToPreflight: true,
@@ -421,11 +421,11 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
421
421
  name: CorsIssueDetailsView.getHeaderFromError(corsError),
422
422
  },
423
423
  }));
424
- this.appendStatus(element, details.isWarning);
424
+ this.#appendStatus(element, details.isWarning);
425
425
  break;
426
426
  case IssuesManager.CorsIssue.IssueCode.DisallowedByMode:
427
427
  element.appendChild(this.createRequestCell(details.request, opts));
428
- this.appendStatus(element, details.isWarning);
428
+ this.#appendStatus(element, details.isWarning);
429
429
  this.appendIssueDetailCell(element, details.initiatorOrigin ?? '', 'code-example');
430
430
  this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
431
431
  break;
@@ -437,19 +437,19 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
437
437
  name: CorsIssueDetailsView.getHeaderFromError(corsError),
438
438
  },
439
439
  }));
440
- this.appendStatus(element, details.isWarning);
440
+ this.#appendStatus(element, details.isWarning);
441
441
  this.appendIssueDetailCell(element, details.initiatorOrigin ?? '', 'code-example');
442
442
  this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
443
443
  this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter ?? '', 'code-example');
444
444
  break;
445
445
  case IssuesManager.CorsIssue.IssueCode.NoCorsRedirectModeNotFollow:
446
446
  element.appendChild(this.createRequestCell(details.request, opts));
447
- this.appendStatus(element, details.isWarning);
447
+ this.#appendStatus(element, details.isWarning);
448
448
  this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
449
449
  break;
450
450
  default:
451
451
  element.appendChild(this.createRequestCell(details.request, opts));
452
- this.appendStatus(element, details.isWarning);
452
+ this.#appendStatus(element, details.isWarning);
453
453
  Platform.assertUnhandled<IssuesManager.CorsIssue.IssueCode.PreflightMissingAllowExternal|
454
454
  IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowExternal|
455
455
  IssuesManager.CorsIssue.IssueCode.InvalidPrivateNetworkAccess|
@@ -464,7 +464,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
464
464
  this.clear();
465
465
  const issues = this.issue.getCorsIssues();
466
466
  if (issues.size > 0) {
467
- this.appendDetails(issues.values().next().value.code(), issues);
467
+ this.#appendDetails(issues.values().next().value.code(), issues);
468
468
  } else {
469
469
  this.updateAffectedResourceCount(0);
470
470
  }
@@ -27,7 +27,7 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
27
27
  return i18nString(UIStrings.nResources, {n: count});
28
28
  }
29
29
 
30
- private appendDetails(genericIssues: ReadonlySet<IssuesManager.GenericIssue.GenericIssue>): void {
30
+ #appendDetails(genericIssues: ReadonlySet<IssuesManager.GenericIssue.GenericIssue>): void {
31
31
  const header = document.createElement('tr');
32
32
 
33
33
  const sampleIssueDetails = genericIssues.values().next().value.details();
@@ -39,12 +39,12 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
39
39
  let count = 0;
40
40
  for (const genericIssue of genericIssues) {
41
41
  count++;
42
- this.appendDetail(genericIssue);
42
+ this.#appendDetail(genericIssue);
43
43
  }
44
44
  this.updateAffectedResourceCount(count);
45
45
  }
46
46
 
47
- private appendDetail(genericIssue: IssuesManager.GenericIssue.GenericIssue): void {
47
+ #appendDetail(genericIssue: IssuesManager.GenericIssue.GenericIssue): void {
48
48
  const element = document.createElement('tr');
49
49
  element.classList.add('affected-resource-directive');
50
50
 
@@ -60,7 +60,7 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
60
60
  this.clear();
61
61
  const issues = this.issue.getGenericIssues();
62
62
  if (issues.size > 0) {
63
- this.appendDetails(issues);
63
+ this.#appendDetails(issues);
64
64
  } else {
65
65
  this.updateAffectedResourceCount(0);
66
66
  }
@@ -22,18 +22,18 @@ const str_ = i18n.i18n.registerUIStrings('panels/issues/HiddenIssuesRow.ts', UIS
22
22
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
23
23
 
24
24
  export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
25
- private numHiddenAggregatedIssues: HTMLElement;
25
+ #numHiddenAggregatedIssues: HTMLElement;
26
26
 
27
27
  constructor() {
28
28
  super(undefined, true);
29
- this.numHiddenAggregatedIssues = document.createElement('span');
29
+ this.#numHiddenAggregatedIssues = document.createElement('span');
30
30
  this.toggleOnClick = true;
31
31
  this.listItemElement.classList.add('issue-category', 'hidden-issues');
32
32
  this.childrenListElement.classList.add('hidden-issues-body');
33
- this.appendHeader();
33
+ this.#appendHeader();
34
34
  }
35
35
 
36
- private appendHeader(): void {
36
+ #appendHeader(): void {
37
37
  const unhideAllIssuesBtn = UI.UIUtils.createTextButton(
38
38
  i18nString(UIStrings.unhideAll),
39
39
  (): void => IssuesManager.IssuesManager.IssuesManager.instance().unhideAllIssues(),
@@ -42,10 +42,10 @@ export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
42
42
  const countAdorner = new Adorners.Adorner.Adorner();
43
43
  countAdorner.data = {
44
44
  name: 'countWrapper',
45
- content: this.numHiddenAggregatedIssues,
45
+ content: this.#numHiddenAggregatedIssues,
46
46
  };
47
47
  countAdorner.classList.add('aggregated-issues-count');
48
- this.numHiddenAggregatedIssues.textContent = '0';
48
+ this.#numHiddenAggregatedIssues.textContent = '0';
49
49
  const header = document.createElement('div');
50
50
  const title = document.createElement('div');
51
51
  header.classList.add('header');
@@ -58,6 +58,6 @@ export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
58
58
  }
59
59
 
60
60
  update(count: number): void {
61
- this.numHiddenAggregatedIssues.textContent = `${count}`;
61
+ this.#numHiddenAggregatedIssues.textContent = `${count}`;
62
62
  }
63
63
  }
@@ -25,34 +25,34 @@ export type AggregationKey = {
25
25
  * of all resources that are affected by the aggregated issues.
26
26
  */
27
27
  export class AggregatedIssue extends IssuesManager.Issue.Issue {
28
- private affectedCookies = new Map<string, {
28
+ #affectedCookies = new Map<string, {
29
29
  cookie: Protocol.Audits.AffectedCookie,
30
30
  hasRequest: boolean,
31
31
  }>();
32
- private affectedRawCookieLines = new Map<string, {rawCookieLine: string, hasRequest: boolean}>();
33
- private affectedRequests = new Map<string, Protocol.Audits.AffectedRequest>();
34
- private affectedLocations = new Map<string, Protocol.Audits.SourceCodeLocation>();
35
- private heavyAdIssues = new Set<IssuesManager.HeavyAdIssue.HeavyAdIssue>();
36
- private blockedByResponseDetails = new Map<string, Protocol.Audits.BlockedByResponseIssueDetails>();
37
- private corsIssues = new Set<IssuesManager.CorsIssue.CorsIssue>();
38
- private cspIssues = new Set<IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue>();
39
- private issueKind = IssuesManager.Issue.IssueKind.Improvement;
40
- private lowContrastIssues = new Set<IssuesManager.LowTextContrastIssue.LowTextContrastIssue>();
41
- private mixedContentIssues = new Set<IssuesManager.MixedContentIssue.MixedContentIssue>();
42
- private sharedArrayBufferIssues = new Set<IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue>();
43
- private trustedWebActivityIssues = new Set<IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue>();
44
- private quirksModeIssues = new Set<IssuesManager.QuirksModeIssue.QuirksModeIssue>();
45
- private attributionReportingIssues = new Set<IssuesManager.AttributionReportingIssue.AttributionReportingIssue>();
46
- private wasmCrossOriginModuleSharingIssues =
32
+ #affectedRawCookieLines = new Map<string, {rawCookieLine: string, hasRequest: boolean}>();
33
+ #affectedRequests = new Map<string, Protocol.Audits.AffectedRequest>();
34
+ #affectedLocations = new Map<string, Protocol.Audits.SourceCodeLocation>();
35
+ #heavyAdIssues = new Set<IssuesManager.HeavyAdIssue.HeavyAdIssue>();
36
+ #blockedByResponseDetails = new Map<string, Protocol.Audits.BlockedByResponseIssueDetails>();
37
+ #corsIssues = new Set<IssuesManager.CorsIssue.CorsIssue>();
38
+ #cspIssues = new Set<IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue>();
39
+ #issueKind = IssuesManager.Issue.IssueKind.Improvement;
40
+ #lowContrastIssues = new Set<IssuesManager.LowTextContrastIssue.LowTextContrastIssue>();
41
+ #mixedContentIssues = new Set<IssuesManager.MixedContentIssue.MixedContentIssue>();
42
+ #sharedArrayBufferIssues = new Set<IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue>();
43
+ #trustedWebActivityIssues = new Set<IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue>();
44
+ #quirksModeIssues = new Set<IssuesManager.QuirksModeIssue.QuirksModeIssue>();
45
+ #attributionReportingIssues = new Set<IssuesManager.AttributionReportingIssue.AttributionReportingIssue>();
46
+ #wasmCrossOriginModuleSharingIssues =
47
47
  new Set<IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue>();
48
- private genericIssues = new Set<IssuesManager.GenericIssue.GenericIssue>();
49
- private representative?: IssuesManager.Issue.Issue;
50
- private aggregatedIssuesCount = 0;
51
- private key: AggregationKey;
48
+ #genericIssues = new Set<IssuesManager.GenericIssue.GenericIssue>();
49
+ #representative?: IssuesManager.Issue.Issue;
50
+ #aggregatedIssuesCount = 0;
51
+ #key: AggregationKey;
52
52
 
53
53
  constructor(code: string, aggregationKey: AggregationKey) {
54
54
  super(code);
55
- this.key = aggregationKey;
55
+ this.#key = aggregationKey;
56
56
  }
57
57
 
58
58
  override primaryKey(): string {
@@ -60,183 +60,183 @@ export class AggregatedIssue extends IssuesManager.Issue.Issue {
60
60
  }
61
61
 
62
62
  aggregationKey(): AggregationKey {
63
- return this.key;
63
+ return this.#key;
64
64
  }
65
65
 
66
66
  getBlockedByResponseDetails(): Iterable<Protocol.Audits.BlockedByResponseIssueDetails> {
67
- return this.blockedByResponseDetails.values();
67
+ return this.#blockedByResponseDetails.values();
68
68
  }
69
69
 
70
70
  cookies(): Iterable<Protocol.Audits.AffectedCookie> {
71
- return Array.from(this.affectedCookies.values()).map(x => x.cookie);
71
+ return Array.from(this.#affectedCookies.values()).map(x => x.cookie);
72
72
  }
73
73
 
74
74
  getRawCookieLines(): Iterable<{rawCookieLine: string, hasRequest: boolean}> {
75
- return this.affectedRawCookieLines.values();
75
+ return this.#affectedRawCookieLines.values();
76
76
  }
77
77
 
78
78
  sources(): Iterable<Protocol.Audits.SourceCodeLocation> {
79
- return this.affectedLocations.values();
79
+ return this.#affectedLocations.values();
80
80
  }
81
81
 
82
82
  cookiesWithRequestIndicator(): Iterable<{
83
83
  cookie: Protocol.Audits.AffectedCookie,
84
84
  hasRequest: boolean,
85
85
  }> {
86
- return this.affectedCookies.values();
86
+ return this.#affectedCookies.values();
87
87
  }
88
88
 
89
89
  getHeavyAdIssues(): Iterable<IssuesManager.HeavyAdIssue.HeavyAdIssue> {
90
- return this.heavyAdIssues;
90
+ return this.#heavyAdIssues;
91
91
  }
92
92
 
93
93
  getMixedContentIssues(): Iterable<IssuesManager.MixedContentIssue.MixedContentIssue> {
94
- return this.mixedContentIssues;
94
+ return this.#mixedContentIssues;
95
95
  }
96
96
 
97
97
  getTrustedWebActivityIssues(): Iterable<IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue> {
98
- return this.trustedWebActivityIssues;
98
+ return this.#trustedWebActivityIssues;
99
99
  }
100
100
 
101
101
  getCorsIssues(): Set<IssuesManager.CorsIssue.CorsIssue> {
102
- return this.corsIssues;
102
+ return this.#corsIssues;
103
103
  }
104
104
 
105
105
  getCspIssues(): Iterable<IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue> {
106
- return this.cspIssues;
106
+ return this.#cspIssues;
107
107
  }
108
108
 
109
109
  getLowContrastIssues(): Iterable<IssuesManager.LowTextContrastIssue.LowTextContrastIssue> {
110
- return this.lowContrastIssues;
110
+ return this.#lowContrastIssues;
111
111
  }
112
112
 
113
113
  requests(): Iterable<Protocol.Audits.AffectedRequest> {
114
- return this.affectedRequests.values();
114
+ return this.#affectedRequests.values();
115
115
  }
116
116
 
117
117
  getSharedArrayBufferIssues(): Iterable<IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue> {
118
- return this.sharedArrayBufferIssues;
118
+ return this.#sharedArrayBufferIssues;
119
119
  }
120
120
 
121
121
  getQuirksModeIssues(): Iterable<IssuesManager.QuirksModeIssue.QuirksModeIssue> {
122
- return this.quirksModeIssues;
122
+ return this.#quirksModeIssues;
123
123
  }
124
124
 
125
125
  getAttributionReportingIssues(): ReadonlySet<IssuesManager.AttributionReportingIssue.AttributionReportingIssue> {
126
- return this.attributionReportingIssues;
126
+ return this.#attributionReportingIssues;
127
127
  }
128
128
 
129
129
  getWasmCrossOriginModuleSharingIssue():
130
130
  ReadonlySet<IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue> {
131
- return this.wasmCrossOriginModuleSharingIssues;
131
+ return this.#wasmCrossOriginModuleSharingIssues;
132
132
  }
133
133
 
134
134
  getGenericIssues(): ReadonlySet<IssuesManager.GenericIssue.GenericIssue> {
135
- return this.genericIssues;
135
+ return this.#genericIssues;
136
136
  }
137
137
 
138
138
  getDescription(): IssuesManager.MarkdownIssueDescription.MarkdownIssueDescription|null {
139
- if (this.representative) {
140
- return this.representative.getDescription();
139
+ if (this.#representative) {
140
+ return this.#representative.getDescription();
141
141
  }
142
142
  return null;
143
143
  }
144
144
 
145
145
  getCategory(): IssuesManager.Issue.IssueCategory {
146
- if (this.representative) {
147
- return this.representative.getCategory();
146
+ if (this.#representative) {
147
+ return this.#representative.getCategory();
148
148
  }
149
149
  return IssuesManager.Issue.IssueCategory.Other;
150
150
  }
151
151
 
152
152
  getAggregatedIssuesCount(): number {
153
- return this.aggregatedIssuesCount;
153
+ return this.#aggregatedIssuesCount;
154
154
  }
155
155
 
156
156
  /**
157
157
  * Produces a primary key for a cookie. Use this instead of `JSON.stringify` in
158
158
  * case new fields are added to `AffectedCookie`.
159
159
  */
160
- private keyForCookie(cookie: Protocol.Audits.AffectedCookie): string {
160
+ #keyForCookie(cookie: Protocol.Audits.AffectedCookie): string {
161
161
  const {domain, path, name} = cookie;
162
162
  return `${domain};${path};${name}`;
163
163
  }
164
164
 
165
165
  addInstance(issue: IssuesManager.Issue.Issue): void {
166
- this.aggregatedIssuesCount++;
167
- if (!this.representative) {
168
- this.representative = issue;
166
+ this.#aggregatedIssuesCount++;
167
+ if (!this.#representative) {
168
+ this.#representative = issue;
169
169
  }
170
- this.issueKind = IssuesManager.Issue.unionIssueKind(this.issueKind, issue.getKind());
170
+ this.#issueKind = IssuesManager.Issue.unionIssueKind(this.#issueKind, issue.getKind());
171
171
  let hasRequest = false;
172
172
  for (const request of issue.requests()) {
173
173
  hasRequest = true;
174
- if (!this.affectedRequests.has(request.requestId)) {
175
- this.affectedRequests.set(request.requestId, request);
174
+ if (!this.#affectedRequests.has(request.requestId)) {
175
+ this.#affectedRequests.set(request.requestId, request);
176
176
  }
177
177
  }
178
178
  for (const cookie of issue.cookies()) {
179
- const key = this.keyForCookie(cookie);
180
- if (!this.affectedCookies.has(key)) {
181
- this.affectedCookies.set(key, {cookie, hasRequest});
179
+ const key = this.#keyForCookie(cookie);
180
+ if (!this.#affectedCookies.has(key)) {
181
+ this.#affectedCookies.set(key, {cookie, hasRequest});
182
182
  }
183
183
  }
184
184
  for (const rawCookieLine of issue.rawCookieLines()) {
185
- if (!this.affectedRawCookieLines.has(rawCookieLine)) {
186
- this.affectedRawCookieLines.set(rawCookieLine, {rawCookieLine, hasRequest});
185
+ if (!this.#affectedRawCookieLines.has(rawCookieLine)) {
186
+ this.#affectedRawCookieLines.set(rawCookieLine, {rawCookieLine, hasRequest});
187
187
  }
188
188
  }
189
189
  for (const location of issue.sources()) {
190
190
  const key = JSON.stringify(location);
191
- if (!this.affectedLocations.has(key)) {
192
- this.affectedLocations.set(key, location);
191
+ if (!this.#affectedLocations.has(key)) {
192
+ this.#affectedLocations.set(key, location);
193
193
  }
194
194
  }
195
195
  if (issue instanceof IssuesManager.MixedContentIssue.MixedContentIssue) {
196
- this.mixedContentIssues.add(issue);
196
+ this.#mixedContentIssues.add(issue);
197
197
  }
198
198
  if (issue instanceof IssuesManager.HeavyAdIssue.HeavyAdIssue) {
199
- this.heavyAdIssues.add(issue);
199
+ this.#heavyAdIssues.add(issue);
200
200
  }
201
201
  for (const details of issue.getBlockedByResponseDetails()) {
202
202
  const key = JSON.stringify(details, ['parentFrame', 'blockedFrame', 'requestId', 'frameId', 'reason', 'request']);
203
- this.blockedByResponseDetails.set(key, details);
203
+ this.#blockedByResponseDetails.set(key, details);
204
204
  }
205
205
  if (issue instanceof IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue) {
206
- this.trustedWebActivityIssues.add(issue);
206
+ this.#trustedWebActivityIssues.add(issue);
207
207
  }
208
208
  if (issue instanceof IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue) {
209
- this.cspIssues.add(issue);
209
+ this.#cspIssues.add(issue);
210
210
  }
211
211
  if (issue instanceof IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue) {
212
- this.sharedArrayBufferIssues.add(issue);
212
+ this.#sharedArrayBufferIssues.add(issue);
213
213
  }
214
214
  if (issue instanceof IssuesManager.LowTextContrastIssue.LowTextContrastIssue) {
215
- this.lowContrastIssues.add(issue);
215
+ this.#lowContrastIssues.add(issue);
216
216
  }
217
217
  if (issue instanceof IssuesManager.CorsIssue.CorsIssue) {
218
- this.corsIssues.add(issue);
218
+ this.#corsIssues.add(issue);
219
219
  }
220
220
  if (issue instanceof IssuesManager.QuirksModeIssue.QuirksModeIssue) {
221
- this.quirksModeIssues.add(issue);
221
+ this.#quirksModeIssues.add(issue);
222
222
  }
223
223
  if (issue instanceof IssuesManager.AttributionReportingIssue.AttributionReportingIssue) {
224
- this.attributionReportingIssues.add(issue);
224
+ this.#attributionReportingIssues.add(issue);
225
225
  }
226
226
  if (issue instanceof IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue) {
227
- this.wasmCrossOriginModuleSharingIssues.add(issue);
227
+ this.#wasmCrossOriginModuleSharingIssues.add(issue);
228
228
  }
229
229
  if (issue instanceof IssuesManager.GenericIssue.GenericIssue) {
230
- this.genericIssues.add(issue);
230
+ this.#genericIssues.add(issue);
231
231
  }
232
232
  }
233
233
 
234
234
  getKind(): IssuesManager.Issue.IssueKind {
235
- return this.issueKind;
235
+ return this.#issueKind;
236
236
  }
237
237
 
238
238
  isHidden(): boolean {
239
- return this.representative?.isHidden() || false;
239
+ return this.#representative?.isHidden() || false;
240
240
  }
241
241
 
242
242
  setHidden(_value: boolean): void {
@@ -245,40 +245,40 @@ export class AggregatedIssue extends IssuesManager.Issue.Issue {
245
245
  }
246
246
 
247
247
  export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
248
- private readonly aggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
249
- private readonly hiddenAggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
248
+ readonly #aggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
249
+ readonly #hiddenAggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
250
250
  constructor(private readonly issuesManager: IssuesManager.IssuesManager.IssuesManager) {
251
251
  super();
252
- this.issuesManager.addEventListener(IssuesManager.IssuesManager.Events.IssueAdded, this.onIssueAdded, this);
252
+ this.issuesManager.addEventListener(IssuesManager.IssuesManager.Events.IssueAdded, this.#onIssueAdded, this);
253
253
  this.issuesManager.addEventListener(
254
- IssuesManager.IssuesManager.Events.FullUpdateRequired, this.onFullUpdateRequired, this);
254
+ IssuesManager.IssuesManager.Events.FullUpdateRequired, this.#onFullUpdateRequired, this);
255
255
  for (const issue of this.issuesManager.issues()) {
256
- this.aggregateIssue(issue);
256
+ this.#aggregateIssue(issue);
257
257
  }
258
258
  }
259
259
 
260
- private onIssueAdded(event: Common.EventTarget.EventTargetEvent<IssuesManager.IssuesManager.IssueAddedEvent>): void {
261
- this.aggregateIssue(event.data.issue);
260
+ #onIssueAdded(event: Common.EventTarget.EventTargetEvent<IssuesManager.IssuesManager.IssueAddedEvent>): void {
261
+ this.#aggregateIssue(event.data.issue);
262
262
  }
263
263
 
264
- private onFullUpdateRequired(): void {
265
- this.aggregatedIssuesByKey.clear();
266
- this.hiddenAggregatedIssuesByKey.clear();
264
+ #onFullUpdateRequired(): void {
265
+ this.#aggregatedIssuesByKey.clear();
266
+ this.#hiddenAggregatedIssuesByKey.clear();
267
267
  for (const issue of this.issuesManager.issues()) {
268
- this.aggregateIssue(issue);
268
+ this.#aggregateIssue(issue);
269
269
  }
270
270
  this.dispatchEventToListeners(Events.FullUpdateRequired);
271
271
  }
272
272
 
273
- private aggregateIssue(issue: IssuesManager.Issue.Issue): AggregatedIssue {
274
- const map = issue.isHidden() ? this.hiddenAggregatedIssuesByKey : this.aggregatedIssuesByKey;
275
- const aggregatedIssue = this.aggregateIssueByStatus(map, issue);
273
+ #aggregateIssue(issue: IssuesManager.Issue.Issue): AggregatedIssue {
274
+ const map = issue.isHidden() ? this.#hiddenAggregatedIssuesByKey : this.#aggregatedIssuesByKey;
275
+ const aggregatedIssue = this.#aggregateIssueByStatus(map, issue);
276
276
  this.dispatchEventToListeners(Events.AggregatedIssueUpdated, aggregatedIssue);
277
277
  return aggregatedIssue;
278
278
  }
279
279
 
280
- private aggregateIssueByStatus(
281
- aggregatedIssuesMap: Map<AggregationKey, AggregatedIssue>, issue: IssuesManager.Issue.Issue): AggregatedIssue {
280
+ #aggregateIssueByStatus(aggregatedIssuesMap: Map<AggregationKey, AggregatedIssue>, issue: IssuesManager.Issue.Issue):
281
+ AggregatedIssue {
282
282
  const key = issue.code() as unknown as AggregationKey;
283
283
  let aggregatedIssue = aggregatedIssuesMap.get(key);
284
284
  if (!aggregatedIssue) {
@@ -290,20 +290,20 @@ export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTyp
290
290
  }
291
291
 
292
292
  aggregatedIssues(): Iterable<AggregatedIssue> {
293
- return [...this.aggregatedIssuesByKey.values(), ...this.hiddenAggregatedIssuesByKey.values()];
293
+ return [...this.#aggregatedIssuesByKey.values(), ...this.#hiddenAggregatedIssuesByKey.values()];
294
294
  }
295
295
 
296
296
  hiddenAggregatedIssues(): Iterable<AggregatedIssue> {
297
- return this.hiddenAggregatedIssuesByKey.values();
297
+ return this.#hiddenAggregatedIssuesByKey.values();
298
298
  }
299
299
 
300
300
  aggregatedIssueCodes(): Set<AggregationKey> {
301
- return new Set([...this.aggregatedIssuesByKey.keys(), ...this.hiddenAggregatedIssuesByKey.keys()]);
301
+ return new Set([...this.#aggregatedIssuesByKey.keys(), ...this.#hiddenAggregatedIssuesByKey.keys()]);
302
302
  }
303
303
 
304
304
  aggregatedIssueCategories(): Set<IssuesManager.Issue.IssueCategory> {
305
305
  const result = new Set<IssuesManager.Issue.IssueCategory>();
306
- for (const issue of this.aggregatedIssuesByKey.values()) {
306
+ for (const issue of this.#aggregatedIssuesByKey.values()) {
307
307
  result.add(issue.getCategory());
308
308
  }
309
309
  return result;
@@ -311,18 +311,18 @@ export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTyp
311
311
 
312
312
  aggregatedIssueKinds(): Set<IssuesManager.Issue.IssueKind> {
313
313
  const result = new Set<IssuesManager.Issue.IssueKind>();
314
- for (const issue of this.aggregatedIssuesByKey.values()) {
314
+ for (const issue of this.#aggregatedIssuesByKey.values()) {
315
315
  result.add(issue.getKind());
316
316
  }
317
317
  return result;
318
318
  }
319
319
 
320
320
  numberOfAggregatedIssues(): number {
321
- return this.aggregatedIssuesByKey.size;
321
+ return this.#aggregatedIssuesByKey.size;
322
322
  }
323
323
 
324
324
  numberOfHiddenAggregatedIssues(): number {
325
- return this.hiddenAggregatedIssuesByKey.size;
325
+ return this.#hiddenAggregatedIssuesByKey.size;
326
326
  }
327
327
 
328
328
  keyForIssue(issue: IssuesManager.Issue.Issue<string>): AggregationKey {