chrome-devtools-frontend 1.0.951410 → 1.0.952713

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 (214) hide show
  1. package/config/gni/devtools_grd_files.gni +3 -0
  2. package/extension-api/ExtensionAPI.d.ts +1 -1
  3. package/front_end/.eslintrc.js +6 -0
  4. package/front_end/Tests.js +10 -0
  5. package/front_end/core/common/App.ts +0 -3
  6. package/front_end/core/common/AppProvider.ts +0 -3
  7. package/front_end/core/common/JavaScriptMetaData.ts +0 -3
  8. package/front_end/core/common/QueryParamHandler.ts +0 -3
  9. package/front_end/core/common/Runnable.ts +0 -3
  10. package/front_end/core/common/SimpleHistoryManager.ts +0 -3
  11. package/front_end/core/host/UserMetrics.ts +2 -1
  12. package/front_end/core/i18n/locales/en-US.json +3 -0
  13. package/front_end/core/i18n/locales/en-XL.json +3 -0
  14. package/front_end/core/root/Runtime.ts +4 -12
  15. package/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -12
  16. package/front_end/core/sdk/PageResourceLoader.ts +2 -1
  17. package/front_end/core/sdk/TracingManager.ts +0 -3
  18. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +39 -39
  19. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +54 -54
  20. package/front_end/entrypoints/formatter_worker/ESTreeWalker.ts +20 -20
  21. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +54 -54
  22. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +145 -144
  23. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +40 -40
  24. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +64 -69
  25. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +203 -203
  26. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +109 -108
  27. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.ts +17 -17
  28. package/front_end/entrypoints/inspector_main/InspectorMain.ts +30 -30
  29. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +25 -25
  30. package/front_end/entrypoints/main/ExecutionContextSelector.ts +52 -55
  31. package/front_end/entrypoints/main/MainImpl.ts +49 -49
  32. package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +43 -43
  33. package/front_end/entrypoints/node_app/NodeMain.ts +38 -38
  34. package/front_end/generated/InspectorBackendCommands.js +5 -1
  35. package/front_end/generated/protocol.d.ts +16 -0
  36. package/front_end/legacy/legacy-defs.d.ts +0 -21
  37. package/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -3
  38. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -3
  39. package/front_end/models/bindings/FileUtils.ts +0 -3
  40. package/front_end/models/extensions/ExtensionAPI.ts +2 -1
  41. package/front_end/models/extensions/ExtensionTraceProvider.ts +0 -3
  42. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +1 -1
  43. package/front_end/models/issues_manager/ClientHintIssue.ts +95 -0
  44. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +6 -6
  45. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +15 -15
  46. package/front_end/models/issues_manager/CorsIssue.ts +9 -9
  47. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -5
  48. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
  49. package/front_end/models/issues_manager/GenericIssue.ts +5 -5
  50. package/front_end/models/issues_manager/HeavyAdIssue.ts +5 -5
  51. package/front_end/models/issues_manager/Issue.ts +10 -10
  52. package/front_end/models/issues_manager/IssueResolver.ts +11 -10
  53. package/front_end/models/issues_manager/IssuesManager.ts +61 -56
  54. package/front_end/models/issues_manager/LowTextContrastIssue.ts +4 -4
  55. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -7
  56. package/front_end/models/issues_manager/NavigatorUserAgentIssue.ts +7 -7
  57. package/front_end/models/issues_manager/QuirksModeIssue.ts +4 -4
  58. package/front_end/models/issues_manager/SameSiteCookieIssue.ts +16 -16
  59. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +5 -5
  60. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +32 -31
  61. package/front_end/models/issues_manager/TrustedWebActivityIssue.ts +5 -5
  62. package/front_end/models/issues_manager/WasmCrossOriginModuleSharingIssue.ts +5 -5
  63. package/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  64. package/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  65. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  66. package/front_end/models/timeline_model/TimelineModel.ts +1 -1
  67. package/front_end/panels/application/components/BackForwardCacheView.ts +33 -33
  68. package/front_end/panels/application/components/EndpointsGrid.ts +12 -12
  69. package/front_end/panels/application/components/FrameDetailsView.ts +108 -110
  70. package/front_end/panels/application/components/OriginTrialTreeView.ts +45 -45
  71. package/front_end/panels/application/components/PermissionsPolicySection.ts +19 -19
  72. package/front_end/panels/application/components/ReportsGrid.ts +30 -30
  73. package/front_end/panels/application/components/StackTrace.ts +48 -47
  74. package/front_end/panels/application/components/TrustTokensView.ts +31 -31
  75. package/front_end/panels/console/ConsoleView.ts +1 -1
  76. package/front_end/panels/console/ConsoleViewMessage.ts +1 -25
  77. package/front_end/panels/console/consoleView.css +5 -0
  78. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +41 -52
  79. package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
  80. package/front_end/panels/css_overview/CSSOverviewPanel.ts +18 -27
  81. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +2 -2
  82. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +6 -6
  83. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +4 -4
  84. package/front_end/panels/elements/ElementsTreeElement.ts +2 -6
  85. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +17 -17
  86. package/front_end/panels/elements/components/AdornerManager.ts +21 -21
  87. package/front_end/panels/elements/components/AdornerSettingsPane.ts +14 -14
  88. package/front_end/panels/elements/components/CSSQuery.ts +16 -16
  89. package/front_end/panels/elements/components/ComputedStyleProperty.ts +14 -14
  90. package/front_end/panels/elements/components/ComputedStyleTrace.ts +15 -15
  91. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +78 -78
  92. package/front_end/panels/elements/components/ElementsPanelLink.ts +16 -16
  93. package/front_end/panels/elements/components/LayoutPane.ts +47 -47
  94. package/front_end/panels/elements/components/NodeText.ts +18 -18
  95. package/front_end/panels/elements/components/QueryContainer.ts +40 -40
  96. package/front_end/panels/elements/components/StylePropertyEditor.ts +18 -18
  97. package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +4 -4
  98. package/front_end/panels/event_listeners/EventListenersUtils.ts +2 -1
  99. package/front_end/panels/issues/AffectedBlockedByResponseView.ts +4 -4
  100. package/front_end/panels/issues/AffectedCookiesView.ts +4 -5
  101. package/front_end/panels/issues/AffectedDirectivesView.ts +19 -19
  102. package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +7 -8
  103. package/front_end/panels/issues/AffectedElementsView.ts +4 -4
  104. package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +7 -8
  105. package/front_end/panels/issues/AffectedHeavyAdView.ts +8 -8
  106. package/front_end/panels/issues/AffectedResourcesView.ts +25 -26
  107. package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +8 -8
  108. package/front_end/panels/issues/AffectedSourcesView.ts +4 -4
  109. package/front_end/panels/issues/AffectedTrustedWebActivityIssueDetailsView.ts +4 -4
  110. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +17 -17
  111. package/front_end/panels/issues/CSPViolationsListView.ts +22 -23
  112. package/front_end/panels/issues/CSPViolationsView.ts +17 -17
  113. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +13 -13
  114. package/front_end/panels/issues/CorsIssueDetailsView.ts +23 -23
  115. package/front_end/panels/issues/GenericIssueDetailsView.ts +4 -4
  116. package/front_end/panels/issues/HiddenIssuesRow.ts +7 -7
  117. package/front_end/panels/issues/IssueAggregator.ts +95 -95
  118. package/front_end/panels/issues/IssueKindView.ts +14 -14
  119. package/front_end/panels/issues/IssueView.ts +98 -98
  120. package/front_end/panels/issues/IssuesPane.ts +102 -102
  121. package/front_end/panels/issues/WasmCrossOriginModuleSharingAffectedResourcesView.ts +5 -5
  122. package/front_end/panels/issues/components/HideIssuesMenu.ts +10 -10
  123. package/front_end/panels/media/PlayerListView.ts +160 -97
  124. package/front_end/panels/media/PlayerMessagesView.ts +1 -0
  125. package/front_end/panels/media/playerListView.css +58 -0
  126. package/front_end/panels/network/NetworkLogView.ts +2 -6
  127. package/front_end/panels/network/NetworkWaterfallColumn.ts +2 -4
  128. package/front_end/panels/network/components/RequestTrustTokensView.ts +40 -40
  129. package/front_end/panels/network/components/WebBundleInfoView.ts +9 -9
  130. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +92 -37
  131. package/front_end/panels/performance_monitor/performanceMonitor.css +32 -0
  132. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +2 -2
  133. package/front_end/panels/search/SearchConfig.ts +0 -6
  134. package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -0
  135. package/front_end/panels/settings/components/SyncSection.ts +14 -14
  136. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +96 -96
  137. package/front_end/panels/sources/BreakpointEditDialog.ts +4 -3
  138. package/front_end/panels/sources/NavigatorView.ts +3 -9
  139. package/front_end/panels/sources/SourceMapNamesResolver.ts +3 -3
  140. package/front_end/panels/sources/SourcesPanel.ts +1 -3
  141. package/front_end/panels/sources/SourcesView.ts +0 -3
  142. package/front_end/panels/sources/TabbedEditorContainer.ts +0 -3
  143. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  144. package/front_end/panels/timeline/TimelineLoader.ts +0 -3
  145. package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
  146. package/front_end/panels/timeline/components/WebVitalsLane.ts +77 -76
  147. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +133 -133
  148. package/front_end/panels/timeline/components/WebVitalsTooltip.ts +9 -9
  149. package/front_end/panels/webauthn/WebauthnPane.ts +203 -205
  150. package/front_end/third_party/codemirror.next/bundle.ts +3 -3
  151. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  152. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -1
  153. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +10 -1
  154. package/front_end/third_party/codemirror.next/codemirror.next.js +2 -1
  155. package/front_end/third_party/codemirror.next/package.json +3 -3
  156. package/front_end/third_party/diff/DiffWrapper.ts +7 -0
  157. package/front_end/ui/components/adorners/Adorner.ts +2 -2
  158. package/front_end/ui/components/buttons/Button.ts +9 -9
  159. package/front_end/ui/components/data_grid/DataGrid.ts +64 -64
  160. package/front_end/ui/components/data_grid/DataGridController.ts +22 -22
  161. package/front_end/ui/components/data_grid/DataGridUtils.ts +3 -0
  162. package/front_end/ui/components/diff_view/DiffView.ts +6 -6
  163. package/front_end/ui/components/expandable_list/ExpandableList.ts +5 -5
  164. package/front_end/ui/components/icon_button/Icon.ts +4 -4
  165. package/front_end/ui/components/icon_button/IconButton.ts +4 -4
  166. package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
  167. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +11 -11
  168. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +50 -50
  169. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +6 -6
  170. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +4 -4
  171. package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +12 -12
  172. package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +11 -11
  173. package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +40 -39
  174. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +18 -18
  175. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
  176. package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -4
  177. package/front_end/ui/components/markdown_view/MarkdownImage.ts +5 -5
  178. package/front_end/ui/components/markdown_view/MarkdownLink.ts +2 -2
  179. package/front_end/ui/components/markdown_view/MarkdownView.ts +4 -4
  180. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +2 -2
  181. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +2 -2
  182. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +4 -4
  183. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +22 -22
  184. package/front_end/ui/components/report_view/ReportView.ts +16 -16
  185. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +14 -14
  186. package/front_end/ui/components/settings/SettingCheckbox.ts +5 -5
  187. package/front_end/ui/components/survey_link/SurveyLink.ts +8 -8
  188. package/front_end/ui/components/text_editor/TextEditor.ts +9 -9
  189. package/front_end/ui/components/text_editor/cursor_tooltip.ts +7 -1
  190. package/front_end/ui/components/text_prompt/TextPrompt.ts +18 -18
  191. package/front_end/ui/components/tree_outline/TreeOutline.ts +69 -70
  192. package/front_end/ui/legacy/ContextFlavorListener.ts +0 -4
  193. package/front_end/ui/legacy/SearchableView.ts +13 -4
  194. package/front_end/ui/legacy/SuggestBox.ts +0 -3
  195. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +6 -6
  196. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -3
  197. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -1
  198. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +13 -12
  199. package/front_end/ui/legacy/components/source_frame/XMLView.ts +2 -2
  200. package/front_end/ui/legacy/themeColors.css +2 -0
  201. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +34 -7
  202. package/package.json +1 -1
  203. package/scripts/eslint_rules/lib/use_private_class_members.js +41 -0
  204. package/scripts/eslint_rules/tests/use_private_class_members_test.js +62 -0
  205. package/scripts/migration/class-fields/migrate.js +2 -3
  206. package/scripts/migration/class-fields/migrate.sh +1 -3
  207. package/scripts/migration/class-fields/package.json +1 -1
  208. package/config/gni/all_devtools_files.gni +0 -255
  209. package/scripts/build/devtools_file_hashes.py +0 -82
  210. package/scripts/devtools_run/devtools_run_cli +0 -49
  211. package/scripts/devtools_run/package.json +0 -13
  212. package/scripts/unzip.py +0 -20
  213. package/scripts/visualize_deps/jquery_svg.html +0 -57
  214. package/scripts/visualize_deps/run_visualize.js +0 -119
@@ -9,9 +9,9 @@ import * as SDK from '../../core/sdk/sdk.js';
9
9
  let contrastCheckTriggerInstance: ContrastCheckTrigger|null = null;
10
10
 
11
11
  export class ContrastCheckTrigger {
12
- private pageLoadListeners: WeakMap<SDK.ResourceTreeModel.ResourceTreeModel, Common.EventTarget.EventDescriptor> =
12
+ #pageLoadListeners: WeakMap<SDK.ResourceTreeModel.ResourceTreeModel, Common.EventTarget.EventDescriptor> =
13
13
  new WeakMap();
14
- private frameAddedListeners: WeakMap<SDK.ResourceTreeModel.ResourceTreeModel, Common.EventTarget.EventDescriptor> =
14
+ #frameAddedListeners: WeakMap<SDK.ResourceTreeModel.ResourceTreeModel, Common.EventTarget.EventDescriptor> =
15
15
  new WeakMap();
16
16
 
17
17
  constructor() {
@@ -27,40 +27,40 @@ export class ContrastCheckTrigger {
27
27
  }
28
28
 
29
29
  async modelAdded(resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel): Promise<void> {
30
- this.pageLoadListeners.set(
30
+ this.#pageLoadListeners.set(
31
31
  resourceTreeModel,
32
- resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.Load, this.pageLoaded, this));
33
- this.frameAddedListeners.set(
32
+ resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.Load, this.#pageLoaded, this));
33
+ this.#frameAddedListeners.set(
34
34
  resourceTreeModel,
35
- resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameAdded, this.frameAdded, this));
35
+ resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameAdded, this.#frameAdded, this));
36
36
  }
37
37
 
38
38
  modelRemoved(resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel): void {
39
- const pageLoadListener = this.pageLoadListeners.get(resourceTreeModel);
39
+ const pageLoadListener = this.#pageLoadListeners.get(resourceTreeModel);
40
40
  if (pageLoadListener) {
41
41
  Common.EventTarget.removeEventListeners([pageLoadListener]);
42
42
  }
43
- const frameAddedListeners = this.frameAddedListeners.get(resourceTreeModel);
43
+ const frameAddedListeners = this.#frameAddedListeners.get(resourceTreeModel);
44
44
  if (frameAddedListeners) {
45
45
  Common.EventTarget.removeEventListeners([frameAddedListeners]);
46
46
  }
47
47
  }
48
48
 
49
- private checkContrast(resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel): void {
49
+ #checkContrast(resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel): void {
50
50
  if (!Root.Runtime.experiments.isEnabled('contrastIssues')) {
51
51
  return;
52
52
  }
53
53
  resourceTreeModel.target().auditsAgent().invoke_checkContrast({});
54
54
  }
55
55
 
56
- private pageLoaded(
57
- event: Common.EventTarget
58
- .EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>): void {
56
+ #pageLoaded(event: Common.EventTarget
57
+ .EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>):
58
+ void {
59
59
  const {resourceTreeModel} = event.data;
60
- this.checkContrast(resourceTreeModel);
60
+ this.#checkContrast(resourceTreeModel);
61
61
  }
62
62
 
63
- private async frameAdded(event: Common.EventTarget.EventTargetEvent<SDK.ResourceTreeModel.ResourceTreeFrame>):
63
+ async #frameAdded(event: Common.EventTarget.EventTargetEvent<SDK.ResourceTreeModel.ResourceTreeFrame>):
64
64
  Promise<void> {
65
65
  if (!Root.Runtime.experiments.isEnabled('contrastIssues')) {
66
66
  return;
@@ -74,7 +74,7 @@ export class ContrastCheckTrigger {
74
74
  const response = await frame.resourceTreeModel().target().runtimeAgent().invoke_evaluate(
75
75
  {expression: 'document.readyState', returnByValue: true});
76
76
  if (response.result && response.result.value === 'complete') {
77
- this.checkContrast(frame.resourceTreeModel());
77
+ this.#checkContrast(frame.resourceTreeModel());
78
78
  }
79
79
  }
80
80
  }
@@ -99,13 +99,13 @@ function getIssueCode(details: Protocol.Audits.CorsIssueDetails): IssueCode {
99
99
  }
100
100
 
101
101
  export class CorsIssue extends Issue<IssueCode> {
102
- private issueDetails: Protocol.Audits.CorsIssueDetails;
102
+ #issueDetails: Protocol.Audits.CorsIssueDetails;
103
103
 
104
104
  constructor(
105
105
  issueDetails: Protocol.Audits.CorsIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel,
106
106
  issueId: Protocol.Audits.IssueId|undefined) {
107
107
  super(getIssueCode(issueDetails), issuesModel, issueId);
108
- this.issueDetails = issueDetails;
108
+ this.#issueDetails = issueDetails;
109
109
  }
110
110
 
111
111
  getCategory(): IssueCategory {
@@ -113,11 +113,11 @@ export class CorsIssue extends Issue<IssueCode> {
113
113
  }
114
114
 
115
115
  details(): Protocol.Audits.CorsIssueDetails {
116
- return this.issueDetails;
116
+ return this.#issueDetails;
117
117
  }
118
118
 
119
119
  getDescription(): MarkdownIssueDescription|null {
120
- switch (getIssueCode(this.issueDetails)) {
120
+ switch (getIssueCode(this.#issueDetails)) {
121
121
  case IssueCode.InsecurePrivateNetwork:
122
122
  return {
123
123
  file: 'corsInsecurePrivateNetwork.md',
@@ -231,15 +231,15 @@ export class CorsIssue extends Issue<IssueCode> {
231
231
  }
232
232
 
233
233
  primaryKey(): string {
234
- return JSON.stringify(this.issueDetails);
234
+ return JSON.stringify(this.#issueDetails);
235
235
  }
236
236
 
237
237
  getKind(): IssueKind {
238
- if (this.issueDetails.isWarning &&
239
- (this.issueDetails.corsErrorStatus.corsError === Protocol.Network.CorsError.InsecurePrivateNetwork ||
240
- this.issueDetails.corsErrorStatus.corsError ===
238
+ if (this.#issueDetails.isWarning &&
239
+ (this.#issueDetails.corsErrorStatus.corsError === Protocol.Network.CorsError.InsecurePrivateNetwork ||
240
+ this.#issueDetails.corsErrorStatus.corsError ===
241
241
  Protocol.Network.CorsError.PreflightMissingAllowPrivateNetwork ||
242
- this.issueDetails.corsErrorStatus.corsError ===
242
+ this.#issueDetails.corsErrorStatus.corsError ===
243
243
  Protocol.Network.CorsError.PreflightInvalidAllowPrivateNetwork)) {
244
244
  return IssueKind.BreakingChange;
245
245
  }
@@ -40,23 +40,23 @@ export function isCrossOriginEmbedderPolicyIssue(reason: Protocol.Audits.Blocked
40
40
  }
41
41
 
42
42
  export class CrossOriginEmbedderPolicyIssue extends Issue {
43
- private issueDetails: Protocol.Audits.BlockedByResponseIssueDetails;
43
+ #issueDetails: Protocol.Audits.BlockedByResponseIssueDetails;
44
44
 
45
45
  constructor(issueDetails: Protocol.Audits.BlockedByResponseIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel) {
46
46
  super(`CrossOriginEmbedderPolicyIssue::${issueDetails.reason}`, issuesModel);
47
- this.issueDetails = issueDetails;
47
+ this.#issueDetails = issueDetails;
48
48
  }
49
49
 
50
50
  primaryKey(): string {
51
- return `${this.code()}-(${this.issueDetails.request.requestId})`;
51
+ return `${this.code()}-(${this.#issueDetails.request.requestId})`;
52
52
  }
53
53
 
54
54
  getBlockedByResponseDetails(): Iterable<Protocol.Audits.BlockedByResponseIssueDetails> {
55
- return [this.issueDetails];
55
+ return [this.#issueDetails];
56
56
  }
57
57
 
58
58
  requests(): Iterable<Protocol.Audits.AffectedRequest> {
59
- return [this.issueDetails.request];
59
+ return [this.#issueDetails.request];
60
60
  }
61
61
 
62
62
  getCategory(): IssueCategory {
@@ -13,11 +13,11 @@ export const enum IssueCode {
13
13
  }
14
14
 
15
15
  export class DeprecationIssue extends Issue<IssueCode> {
16
- private issueDetails: Protocol.Audits.DeprecationIssueDetails;
16
+ #issueDetails: Protocol.Audits.DeprecationIssueDetails;
17
17
 
18
18
  constructor(issueDetails: Protocol.Audits.DeprecationIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel) {
19
19
  super(IssueCode.DeprecationIssue, issuesModel);
20
- this.issueDetails = issueDetails;
20
+ this.#issueDetails = issueDetails;
21
21
  }
22
22
 
23
23
  getCategory(): IssueCategory {
@@ -25,7 +25,7 @@ export class DeprecationIssue extends Issue<IssueCode> {
25
25
  }
26
26
 
27
27
  details(): Protocol.Audits.DeprecationIssueDetails {
28
- return this.issueDetails;
28
+ return this.#issueDetails;
29
29
  }
30
30
 
31
31
  getDescription(): MarkdownIssueDescription|null {
@@ -34,21 +34,21 @@ export class DeprecationIssue extends Issue<IssueCode> {
34
34
  substitutions: new Map([
35
35
  // TODO(crbug.com/1264960): Re-work format to add i18n support per:
36
36
  // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md
37
- ['PLACEHOLDER_message', String(this.issueDetails.message)],
37
+ ['PLACEHOLDER_message', String(this.#issueDetails.message)],
38
38
  ]),
39
39
  links: [],
40
40
  };
41
41
  }
42
42
 
43
43
  sources(): Iterable<Protocol.Audits.SourceCodeLocation> {
44
- if (this.issueDetails.sourceCodeLocation) {
45
- return [this.issueDetails.sourceCodeLocation];
44
+ if (this.#issueDetails.sourceCodeLocation) {
45
+ return [this.#issueDetails.sourceCodeLocation];
46
46
  }
47
47
  return [];
48
48
  }
49
49
 
50
50
  primaryKey(): string {
51
- return JSON.stringify(this.issueDetails);
51
+ return JSON.stringify(this.#issueDetails);
52
52
  }
53
53
 
54
54
  getKind(): IssueKind {
@@ -20,7 +20,7 @@ const str_ = i18n.i18n.registerUIStrings('models/issues_manager/GenericIssue.ts'
20
20
  const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
21
21
 
22
22
  export class GenericIssue extends Issue {
23
- private issueDetails: Protocol.Audits.GenericIssueDetails;
23
+ #issueDetails: Protocol.Audits.GenericIssueDetails;
24
24
 
25
25
  constructor(
26
26
  issueDetails: Protocol.Audits.GenericIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel,
@@ -30,7 +30,7 @@ export class GenericIssue extends Issue {
30
30
  issueDetails.errorType,
31
31
  ].join('::');
32
32
  super(issueCode, issuesModel, issueId);
33
- this.issueDetails = issueDetails;
33
+ this.#issueDetails = issueDetails;
34
34
  }
35
35
 
36
36
  getCategory(): IssueCategory {
@@ -38,11 +38,11 @@ export class GenericIssue extends Issue {
38
38
  }
39
39
 
40
40
  primaryKey(): string {
41
- return `${this.code()}-(${this.issueDetails.frameId})`;
41
+ return `${this.code()}-(${this.#issueDetails.frameId})`;
42
42
  }
43
43
 
44
44
  getDescription(): MarkdownIssueDescription|null {
45
- const description = issueDescriptions.get(this.issueDetails.errorType);
45
+ const description = issueDescriptions.get(this.#issueDetails.errorType);
46
46
  if (!description) {
47
47
  return null;
48
48
  }
@@ -50,7 +50,7 @@ export class GenericIssue extends Issue {
50
50
  }
51
51
 
52
52
  details(): Protocol.Audits.GenericIssueDetails {
53
- return this.issueDetails;
53
+ return this.#issueDetails;
54
54
  }
55
55
 
56
56
  getKind(): IssueKind {
@@ -19,20 +19,20 @@ const str_ = i18n.i18n.registerUIStrings('models/issues_manager/HeavyAdIssue.ts'
19
19
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
20
20
 
21
21
  export class HeavyAdIssue extends Issue {
22
- private issueDetails: Protocol.Audits.HeavyAdIssueDetails;
22
+ #issueDetails: Protocol.Audits.HeavyAdIssueDetails;
23
23
 
24
24
  constructor(issueDetails: Protocol.Audits.HeavyAdIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel) {
25
25
  const umaCode = [Protocol.Audits.InspectorIssueCode.HeavyAdIssue, issueDetails.reason].join('::');
26
26
  super({code: Protocol.Audits.InspectorIssueCode.HeavyAdIssue, umaCode}, issuesModel);
27
- this.issueDetails = issueDetails;
27
+ this.#issueDetails = issueDetails;
28
28
  }
29
29
 
30
30
  details(): Protocol.Audits.HeavyAdIssueDetails {
31
- return this.issueDetails;
31
+ return this.#issueDetails;
32
32
  }
33
33
 
34
34
  primaryKey(): string {
35
- return `${Protocol.Audits.InspectorIssueCode.HeavyAdIssue}-${JSON.stringify(this.issueDetails)}`;
35
+ return `${Protocol.Audits.InspectorIssueCode.HeavyAdIssue}-${JSON.stringify(this.#issueDetails)}`;
36
36
  }
37
37
 
38
38
  getDescription(): MarkdownIssueDescription {
@@ -52,7 +52,7 @@ export class HeavyAdIssue extends Issue {
52
52
  }
53
53
 
54
54
  getKind(): IssueKind {
55
- switch (this.issueDetails.resolution) {
55
+ switch (this.#issueDetails.resolution) {
56
56
  case Protocol.Audits.HeavyAdResolutionStatus.HeavyAdBlocked:
57
57
  return IssueKind.PageError;
58
58
  case Protocol.Audits.HeavyAdResolutionStatus.HeavyAdWarning:
@@ -123,23 +123,23 @@ export interface AffectedElement {
123
123
  }
124
124
 
125
125
  export abstract class Issue<IssueCode extends string = string> {
126
- private issueCode: IssueCode;
127
- private issuesModel: SDK.IssuesModel.IssuesModel|null;
126
+ #issueCode: IssueCode;
127
+ #issuesModel: SDK.IssuesModel.IssuesModel|null;
128
128
  protected issueId: Protocol.Audits.IssueId|undefined = undefined;
129
- private hidden: boolean;
129
+ #hidden: boolean;
130
130
 
131
131
  constructor(
132
132
  code: IssueCode|{code: IssueCode, umaCode: string}, issuesModel: SDK.IssuesModel.IssuesModel|null = null,
133
133
  issueId?: Protocol.Audits.IssueId) {
134
- this.issueCode = typeof code === 'object' ? code.code : code;
135
- this.issuesModel = issuesModel;
134
+ this.#issueCode = typeof code === 'object' ? code.code : code;
135
+ this.#issuesModel = issuesModel;
136
136
  this.issueId = issueId;
137
137
  Host.userMetrics.issueCreated(typeof code === 'string' ? code : code.umaCode);
138
- this.hidden = false;
138
+ this.#hidden = false;
139
139
  }
140
140
 
141
141
  code(): IssueCode {
142
- return this.issueCode;
142
+ return this.#issueCode;
143
143
  }
144
144
 
145
145
  abstract primaryKey(): string;
@@ -184,7 +184,7 @@ export abstract class Issue<IssueCode extends string = string> {
184
184
  * The model might be unavailable or belong to a target that has already been disposed.
185
185
  */
186
186
  model(): SDK.IssuesModel.IssuesModel|null {
187
- return this.issuesModel;
187
+ return this.#issuesModel;
188
188
  }
189
189
 
190
190
  isCausedByThirdParty(): boolean {
@@ -196,11 +196,11 @@ export abstract class Issue<IssueCode extends string = string> {
196
196
  }
197
197
 
198
198
  isHidden(): boolean {
199
- return this.hidden;
199
+ return this.#hidden;
200
200
  }
201
201
 
202
202
  setHidden(hidden: boolean): void {
203
- this.hidden = hidden;
203
+ this.#hidden = hidden;
204
204
  }
205
205
  }
206
206
 
@@ -13,19 +13,19 @@ import type {IssueAddedEvent} from './IssuesManager.js';
13
13
  * A class that facilitates resolving an issueId to an issue. See `ResolverBase` for more info.
14
14
  */
15
15
  export class IssueResolver extends Common.ResolverBase.ResolverBase<Protocol.Audits.IssueId, Issue> {
16
- private issuesListener: Common.EventTarget.EventDescriptor|null = null;
17
- private issuesManager: IssuesManager;
16
+ #issuesListener: Common.EventTarget.EventDescriptor|null = null;
17
+ #issuesManager: IssuesManager;
18
18
 
19
19
  constructor(issuesManager: IssuesManager = IssuesManager.instance()) {
20
20
  super();
21
- this.issuesManager = issuesManager;
21
+ this.#issuesManager = issuesManager;
22
22
  }
23
23
 
24
24
  protected override getForId(id: Protocol.Audits.IssueId): Issue|null {
25
- return this.issuesManager.getIssueById(id) || null;
25
+ return this.#issuesManager.getIssueById(id) || null;
26
26
  }
27
27
 
28
- private onIssueAdded(event: Common.EventTarget.EventTargetEvent<IssueAddedEvent>): void {
28
+ #onIssueAdded(event: Common.EventTarget.EventTargetEvent<IssueAddedEvent>): void {
29
29
  const {issue} = event.data;
30
30
  const id = issue.getIssueId();
31
31
  if (id) {
@@ -34,17 +34,18 @@ export class IssueResolver extends Common.ResolverBase.ResolverBase<Protocol.Aud
34
34
  }
35
35
 
36
36
  protected override startListening(): void {
37
- if (this.issuesListener) {
37
+ if (this.#issuesListener) {
38
38
  return;
39
39
  }
40
- this.issuesListener = this.issuesManager.addEventListener(IssueManagerEvents.IssueAdded, this.onIssueAdded, this);
40
+ this.#issuesListener =
41
+ this.#issuesManager.addEventListener(IssueManagerEvents.IssueAdded, this.#onIssueAdded, this);
41
42
  }
42
43
 
43
44
  protected override stopListening(): void {
44
- if (!this.issuesListener) {
45
+ if (!this.#issuesListener) {
45
46
  return;
46
47
  }
47
- Common.EventTarget.removeEventListeners([this.issuesListener]);
48
- this.issuesListener = null;
48
+ Common.EventTarget.removeEventListeners([this.#issuesListener]);
49
+ this.#issuesListener = null;
49
50
  }
50
51
  }
@@ -8,6 +8,7 @@ import * as SDK from '../../core/sdk/sdk.js';
8
8
  import * as Protocol from '../../generated/protocol.js';
9
9
 
10
10
  import {AttributionReportingIssue} from './AttributionReportingIssue.js';
11
+ import {ClientHintIssue} from './ClientHintIssue.js';
11
12
  import {ContentSecurityPolicyIssue} from './ContentSecurityPolicyIssue.js';
12
13
  import {CorsIssue} from './CorsIssue.js';
13
14
  import {CrossOriginEmbedderPolicyIssue, isCrossOriginEmbedderPolicyIssue} from './CrossOriginEmbedderPolicyIssue.js';
@@ -104,6 +105,10 @@ const issueCodeHandlers = new Map<
104
105
  Protocol.Audits.InspectorIssueCode.DeprecationIssue,
105
106
  DeprecationIssue.fromInspectorIssue,
106
107
  ],
108
+ [
109
+ Protocol.Audits.InspectorIssueCode.ClientHintIssue,
110
+ ClientHintIssue.fromInspectorIssue,
111
+ ],
107
112
  ]);
108
113
 
109
114
  /**
@@ -160,30 +165,30 @@ export function getHideIssueByCodeSetting(): Common.Settings.Setting<HideIssueMe
160
165
  */
161
166
  export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements
162
167
  SDK.TargetManager.SDKModelObserver<SDK.IssuesModel.IssuesModel> {
163
- private eventListeners = new WeakMap<SDK.IssuesModel.IssuesModel, Common.EventTarget.EventDescriptor>();
164
- private allIssues = new Map<string, Issue>();
165
- private filteredIssues = new Map<string, Issue>();
166
- private issueCounts = new Map<IssueKind, number>();
167
- private hiddenIssueCount = new Map<IssueKind, number>();
168
- private hasSeenTopFrameNavigated = false;
169
- private sourceFrameIssuesManager = new SourceFrameIssuesManager(this);
170
- private issuesById: Map<string, Issue> = new Map();
168
+ #eventListeners = new WeakMap<SDK.IssuesModel.IssuesModel, Common.EventTarget.EventDescriptor>();
169
+ #allIssues = new Map<string, Issue>();
170
+ #filteredIssues = new Map<string, Issue>();
171
+ #issueCounts = new Map<IssueKind, number>();
172
+ #hiddenIssueCount = new Map<IssueKind, number>();
173
+ #hasSeenTopFrameNavigated = false;
174
+ #issuesById: Map<string, Issue> = new Map();
171
175
 
172
176
  constructor(
173
177
  private readonly showThirdPartyIssuesSetting?: Common.Settings.Setting<boolean>,
174
178
  private readonly hideIssueSetting?: Common.Settings.Setting<HideIssueMenuSetting>) {
175
179
  super();
180
+ new SourceFrameIssuesManager(this);
176
181
  SDK.TargetManager.TargetManager.instance().observeModels(SDK.IssuesModel.IssuesModel, this);
177
182
  SDK.FrameManager.FrameManager.instance().addEventListener(
178
- SDK.FrameManager.Events.TopFrameNavigated, this.onTopFrameNavigated, this);
183
+ SDK.FrameManager.Events.TopFrameNavigated, this.#onTopFrameNavigated, this);
179
184
  SDK.FrameManager.FrameManager.instance().addEventListener(
180
- SDK.FrameManager.Events.FrameAddedToTarget, this.onFrameAddedToTarget, this);
185
+ SDK.FrameManager.Events.FrameAddedToTarget, this.#onFrameAddedToTarget, this);
181
186
 
182
187
  // issueFilter uses the 'showThirdPartyIssues' setting. Clients of IssuesManager need
183
188
  // a full update when the setting changes to get an up-to-date issues list.
184
- this.showThirdPartyIssuesSetting?.addChangeListener(() => this.updateFilteredIssues());
189
+ this.showThirdPartyIssuesSetting?.addChangeListener(() => this.#updateFilteredIssues());
185
190
  if (Root.Runtime.experiments.isEnabled('hideIssuesFeature')) {
186
- this.hideIssueSetting?.addChangeListener(() => this.updateFilteredIssues());
191
+ this.hideIssueSetting?.addChangeListener(() => this.#updateFilteredIssues());
187
192
  }
188
193
  }
189
194
 
@@ -210,48 +215,48 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
210
215
  * during navigation.
211
216
  */
212
217
  reloadForAccurateInformationRequired(): boolean {
213
- return !this.hasSeenTopFrameNavigated;
218
+ return !this.#hasSeenTopFrameNavigated;
214
219
  }
215
220
 
216
- private onTopFrameNavigated(
217
- event: Common.EventTarget.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame}>): void {
221
+ #onTopFrameNavigated(event: Common.EventTarget.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame}>):
222
+ void {
218
223
  const {frame} = event.data;
219
224
  const keptIssues = new Map<string, Issue>();
220
- for (const [key, issue] of this.allIssues.entries()) {
225
+ for (const [key, issue] of this.#allIssues.entries()) {
221
226
  if (issue.isAssociatedWithRequestId(frame.loaderId)) {
222
227
  keptIssues.set(key, issue);
223
228
  }
224
229
  }
225
- this.allIssues = keptIssues;
226
- this.hasSeenTopFrameNavigated = true;
227
- this.updateFilteredIssues();
230
+ this.#allIssues = keptIssues;
231
+ this.#hasSeenTopFrameNavigated = true;
232
+ this.#updateFilteredIssues();
228
233
  }
229
234
 
230
- private onFrameAddedToTarget(
231
- event: Common.EventTarget.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame}>): void {
235
+ #onFrameAddedToTarget(event: Common.EventTarget.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame}>):
236
+ void {
232
237
  const {frame} = event.data;
233
238
  // Determining third-party status usually requires the registered domain of the top frame.
234
239
  // When DevTools is opened after navigation has completed, issues may be received
235
240
  // before the top frame is available. Thus, we trigger a recalcuation of third-party-ness
236
241
  // when we attach to the top frame.
237
242
  if (frame.isTopFrame()) {
238
- this.updateFilteredIssues();
243
+ this.#updateFilteredIssues();
239
244
  }
240
245
  }
241
246
 
242
247
  modelAdded(issuesModel: SDK.IssuesModel.IssuesModel): void {
243
- const listener = issuesModel.addEventListener(SDK.IssuesModel.Events.IssueAdded, this.onIssueAddedEvent, this);
244
- this.eventListeners.set(issuesModel, listener);
248
+ const listener = issuesModel.addEventListener(SDK.IssuesModel.Events.IssueAdded, this.#onIssueAddedEvent, this);
249
+ this.#eventListeners.set(issuesModel, listener);
245
250
  }
246
251
 
247
252
  modelRemoved(issuesModel: SDK.IssuesModel.IssuesModel): void {
248
- const listener = this.eventListeners.get(issuesModel);
253
+ const listener = this.#eventListeners.get(issuesModel);
249
254
  if (listener) {
250
255
  Common.EventTarget.removeEventListeners([listener]);
251
256
  }
252
257
  }
253
258
 
254
- private onIssueAddedEvent(event: Common.EventTarget.EventTargetEvent<SDK.IssuesModel.IssueAddedEvent>): void {
259
+ #onIssueAddedEvent(event: Common.EventTarget.EventTargetEvent<SDK.IssuesModel.IssueAddedEvent>): void {
255
260
  const {issuesModel, inspectorIssue} = event.data;
256
261
  const issues = createIssuesFromProtocolIssue(issuesModel, inspectorIssue);
257
262
  for (const issue of issues) {
@@ -265,25 +270,25 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
265
270
  return;
266
271
  }
267
272
  const primaryKey = issue.primaryKey();
268
- if (this.allIssues.has(primaryKey)) {
273
+ if (this.#allIssues.has(primaryKey)) {
269
274
  return;
270
275
  }
271
- this.allIssues.set(primaryKey, issue);
276
+ this.#allIssues.set(primaryKey, issue);
272
277
 
273
- if (this.issueFilter(issue)) {
274
- this.filteredIssues.set(primaryKey, issue);
275
- this.issueCounts.set(issue.getKind(), 1 + (this.issueCounts.get(issue.getKind()) || 0));
278
+ if (this.#issueFilter(issue)) {
279
+ this.#filteredIssues.set(primaryKey, issue);
280
+ this.#issueCounts.set(issue.getKind(), 1 + (this.#issueCounts.get(issue.getKind()) || 0));
276
281
  const issueId = issue.getIssueId();
277
282
  if (issueId) {
278
- this.issuesById.set(issueId, issue);
283
+ this.#issuesById.set(issueId, issue);
279
284
  }
280
285
  const values = this.hideIssueSetting?.get();
281
286
  const hideIssuesFeature = Root.Runtime.experiments.isEnabled('hideIssuesFeature');
282
287
  if (hideIssuesFeature) {
283
- this.updateIssueHiddenStatus(issue, values);
288
+ this.#updateIssueHiddenStatus(issue, values);
284
289
  }
285
290
  if (issue.isHidden()) {
286
- this.hiddenIssueCount.set(issue.getKind(), 1 + (this.hiddenIssueCount.get(issue.getKind()) || 0));
291
+ this.#hiddenIssueCount.set(issue.getKind(), 1 + (this.#hiddenIssueCount.get(issue.getKind()) || 0));
287
292
  }
288
293
  this.dispatchEventToListeners(Events.IssueAdded, {issuesModel, issue});
289
294
  }
@@ -293,36 +298,36 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
293
298
  }
294
299
 
295
300
  issues(): Iterable<Issue> {
296
- return this.filteredIssues.values();
301
+ return this.#filteredIssues.values();
297
302
  }
298
303
 
299
304
  numberOfIssues(kind?: IssueKind): number {
300
305
  if (kind) {
301
- return (this.issueCounts.get(kind) ?? 0) - this.numberOfHiddenIssues(kind);
306
+ return (this.#issueCounts.get(kind) ?? 0) - this.numberOfHiddenIssues(kind);
302
307
  }
303
- return this.filteredIssues.size - this.numberOfHiddenIssues();
308
+ return this.#filteredIssues.size - this.numberOfHiddenIssues();
304
309
  }
305
310
 
306
311
  numberOfHiddenIssues(kind?: IssueKind): number {
307
312
  if (kind) {
308
- return this.hiddenIssueCount.get(kind) ?? 0;
313
+ return this.#hiddenIssueCount.get(kind) ?? 0;
309
314
  }
310
315
  let count = 0;
311
- for (const num of this.hiddenIssueCount.values()) {
316
+ for (const num of this.#hiddenIssueCount.values()) {
312
317
  count += num;
313
318
  }
314
319
  return count;
315
320
  }
316
321
 
317
322
  numberOfAllStoredIssues(): number {
318
- return this.allIssues.size;
323
+ return this.#allIssues.size;
319
324
  }
320
325
 
321
- private issueFilter(issue: Issue): boolean {
326
+ #issueFilter(issue: Issue): boolean {
322
327
  return this.showThirdPartyIssuesSetting?.get() || !issue.isCausedByThirdParty();
323
328
  }
324
329
 
325
- private updateIssueHiddenStatus(issue: Issue, values: HideIssueMenuSetting|undefined): void {
330
+ #updateIssueHiddenStatus(issue: Issue, values: HideIssueMenuSetting|undefined): void {
326
331
  const code = issue.code();
327
332
  // All issues are hidden via their code.
328
333
  // For hiding we check whether the issue code is present and has a value of IssueStatus.Hidden
@@ -340,26 +345,26 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
340
345
  }
341
346
  }
342
347
 
343
- private updateFilteredIssues(): void {
344
- this.filteredIssues.clear();
345
- this.issueCounts.clear();
346
- this.issuesById.clear();
347
- this.hiddenIssueCount.clear();
348
+ #updateFilteredIssues(): void {
349
+ this.#filteredIssues.clear();
350
+ this.#issueCounts.clear();
351
+ this.#issuesById.clear();
352
+ this.#hiddenIssueCount.clear();
348
353
  const values = this.hideIssueSetting?.get();
349
354
  const hideIssuesFeature = Root.Runtime.experiments.isEnabled('hideIssuesFeature');
350
- for (const [key, issue] of this.allIssues) {
351
- if (this.issueFilter(issue)) {
355
+ for (const [key, issue] of this.#allIssues) {
356
+ if (this.#issueFilter(issue)) {
352
357
  if (hideIssuesFeature) {
353
- this.updateIssueHiddenStatus(issue, values);
358
+ this.#updateIssueHiddenStatus(issue, values);
354
359
  }
355
- this.filteredIssues.set(key, issue);
356
- this.issueCounts.set(issue.getKind(), 1 + (this.issueCounts.get(issue.getKind()) ?? 0));
360
+ this.#filteredIssues.set(key, issue);
361
+ this.#issueCounts.set(issue.getKind(), 1 + (this.#issueCounts.get(issue.getKind()) ?? 0));
357
362
  if (issue.isHidden()) {
358
- this.hiddenIssueCount.set(issue.getKind(), 1 + (this.hiddenIssueCount.get(issue.getKind()) || 0));
363
+ this.#hiddenIssueCount.set(issue.getKind(), 1 + (this.#hiddenIssueCount.get(issue.getKind()) || 0));
359
364
  }
360
365
  const issueId = issue.getIssueId();
361
366
  if (issueId) {
362
- this.issuesById.set(issueId, issue);
367
+ this.#issuesById.set(issueId, issue);
363
368
  }
364
369
  }
365
370
  }
@@ -368,14 +373,14 @@ export class IssuesManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
368
373
  }
369
374
 
370
375
  unhideAllIssues(): void {
371
- for (const issue of this.allIssues.values()) {
376
+ for (const issue of this.#allIssues.values()) {
372
377
  issue.setHidden(false);
373
378
  }
374
379
  this.hideIssueSetting?.set(defaultHideIssueByCodeSetting());
375
380
  }
376
381
 
377
382
  getIssueById(id: string): Issue|undefined {
378
- return this.issuesById.get(id);
383
+ return this.#issuesById.get(id);
379
384
  }
380
385
  }
381
386