chrome-devtools-frontend 1.0.951864 → 1.0.952784

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 (175) hide show
  1. package/config/gni/devtools_grd_files.gni +3 -0
  2. package/front_end/.eslintrc.js +6 -0
  3. package/front_end/core/host/UserMetrics.ts +2 -1
  4. package/front_end/core/i18n/locales/en-US.json +3 -0
  5. package/front_end/core/i18n/locales/en-XL.json +3 -0
  6. package/front_end/core/root/Runtime.ts +4 -12
  7. package/front_end/core/sdk/PageResourceLoader.ts +2 -1
  8. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +39 -39
  9. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +54 -54
  10. package/front_end/entrypoints/formatter_worker/ESTreeWalker.ts +20 -20
  11. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +54 -54
  12. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +145 -144
  13. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +40 -40
  14. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +64 -69
  15. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +202 -200
  16. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +109 -108
  17. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.ts +17 -17
  18. package/front_end/entrypoints/inspector_main/InspectorMain.ts +30 -30
  19. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +25 -25
  20. package/front_end/entrypoints/main/ExecutionContextSelector.ts +52 -55
  21. package/front_end/entrypoints/main/MainImpl.ts +49 -49
  22. package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +43 -43
  23. package/front_end/entrypoints/node_app/NodeMain.ts +38 -38
  24. package/front_end/generated/InspectorBackendCommands.js +5 -1
  25. package/front_end/generated/protocol.d.ts +16 -0
  26. package/front_end/legacy/legacy-defs.d.ts +0 -21
  27. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +1 -1
  28. package/front_end/models/issues_manager/ClientHintIssue.ts +95 -0
  29. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +6 -6
  30. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +15 -15
  31. package/front_end/models/issues_manager/CorsIssue.ts +9 -9
  32. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -5
  33. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
  34. package/front_end/models/issues_manager/GenericIssue.ts +5 -5
  35. package/front_end/models/issues_manager/HeavyAdIssue.ts +5 -5
  36. package/front_end/models/issues_manager/Issue.ts +10 -10
  37. package/front_end/models/issues_manager/IssueResolver.ts +11 -10
  38. package/front_end/models/issues_manager/IssuesManager.ts +61 -56
  39. package/front_end/models/issues_manager/LowTextContrastIssue.ts +4 -4
  40. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -7
  41. package/front_end/models/issues_manager/NavigatorUserAgentIssue.ts +7 -7
  42. package/front_end/models/issues_manager/QuirksModeIssue.ts +4 -4
  43. package/front_end/models/issues_manager/SameSiteCookieIssue.ts +16 -16
  44. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +5 -5
  45. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +32 -31
  46. package/front_end/models/issues_manager/TrustedWebActivityIssue.ts +5 -5
  47. package/front_end/models/issues_manager/WasmCrossOriginModuleSharingIssue.ts +5 -5
  48. package/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  49. package/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  50. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  51. package/front_end/panels/application/components/BackForwardCacheView.ts +33 -33
  52. package/front_end/panels/application/components/EndpointsGrid.ts +12 -12
  53. package/front_end/panels/application/components/FrameDetailsView.ts +108 -110
  54. package/front_end/panels/application/components/OriginTrialTreeView.ts +45 -45
  55. package/front_end/panels/application/components/PermissionsPolicySection.ts +19 -19
  56. package/front_end/panels/application/components/ReportsGrid.ts +30 -30
  57. package/front_end/panels/application/components/StackTrace.ts +48 -47
  58. package/front_end/panels/application/components/TrustTokensView.ts +31 -31
  59. package/front_end/panels/console/ConsoleView.ts +1 -1
  60. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +41 -52
  61. package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
  62. package/front_end/panels/css_overview/CSSOverviewPanel.ts +18 -27
  63. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +2 -2
  64. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +6 -6
  65. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +4 -4
  66. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +17 -17
  67. package/front_end/panels/elements/components/AdornerManager.ts +21 -21
  68. package/front_end/panels/elements/components/AdornerSettingsPane.ts +14 -14
  69. package/front_end/panels/elements/components/CSSQuery.ts +16 -16
  70. package/front_end/panels/elements/components/ComputedStyleProperty.ts +14 -14
  71. package/front_end/panels/elements/components/ComputedStyleTrace.ts +15 -15
  72. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +78 -78
  73. package/front_end/panels/elements/components/ElementsPanelLink.ts +16 -16
  74. package/front_end/panels/elements/components/LayoutPane.ts +47 -47
  75. package/front_end/panels/elements/components/NodeText.ts +18 -18
  76. package/front_end/panels/elements/components/QueryContainer.ts +40 -40
  77. package/front_end/panels/elements/components/StylePropertyEditor.ts +18 -18
  78. package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +4 -4
  79. package/front_end/panels/issues/AffectedBlockedByResponseView.ts +4 -4
  80. package/front_end/panels/issues/AffectedCookiesView.ts +4 -5
  81. package/front_end/panels/issues/AffectedDirectivesView.ts +19 -19
  82. package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +7 -8
  83. package/front_end/panels/issues/AffectedElementsView.ts +4 -4
  84. package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +7 -8
  85. package/front_end/panels/issues/AffectedHeavyAdView.ts +8 -8
  86. package/front_end/panels/issues/AffectedResourcesView.ts +25 -26
  87. package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +8 -8
  88. package/front_end/panels/issues/AffectedSourcesView.ts +4 -4
  89. package/front_end/panels/issues/AffectedTrustedWebActivityIssueDetailsView.ts +4 -4
  90. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +17 -17
  91. package/front_end/panels/issues/CSPViolationsListView.ts +22 -23
  92. package/front_end/panels/issues/CSPViolationsView.ts +17 -17
  93. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +13 -13
  94. package/front_end/panels/issues/CorsIssueDetailsView.ts +23 -23
  95. package/front_end/panels/issues/GenericIssueDetailsView.ts +4 -4
  96. package/front_end/panels/issues/HiddenIssuesRow.ts +7 -7
  97. package/front_end/panels/issues/IssueAggregator.ts +95 -95
  98. package/front_end/panels/issues/IssueKindView.ts +14 -14
  99. package/front_end/panels/issues/IssueView.ts +98 -98
  100. package/front_end/panels/issues/IssuesPane.ts +102 -102
  101. package/front_end/panels/issues/WasmCrossOriginModuleSharingAffectedResourcesView.ts +5 -5
  102. package/front_end/panels/issues/components/HideIssuesMenu.ts +10 -10
  103. package/front_end/panels/media/PlayerListView.ts +160 -97
  104. package/front_end/panels/media/PlayerMessagesView.ts +1 -0
  105. package/front_end/panels/media/playerListView.css +58 -0
  106. package/front_end/panels/network/NetworkLogView.ts +2 -6
  107. package/front_end/panels/network/NetworkWaterfallColumn.ts +2 -4
  108. package/front_end/panels/network/components/RequestTrustTokensView.ts +40 -40
  109. package/front_end/panels/network/components/WebBundleInfoView.ts +9 -9
  110. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +92 -37
  111. package/front_end/panels/performance_monitor/performanceMonitor.css +32 -0
  112. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +2 -2
  113. package/front_end/panels/settings/components/SyncSection.ts +14 -14
  114. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +96 -96
  115. package/front_end/panels/sources/BreakpointEditDialog.ts +4 -3
  116. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  117. package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
  118. package/front_end/panels/timeline/components/WebVitalsLane.ts +77 -76
  119. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +133 -133
  120. package/front_end/panels/timeline/components/WebVitalsTooltip.ts +9 -9
  121. package/front_end/panels/webauthn/WebauthnPane.ts +203 -205
  122. package/front_end/third_party/diff/DiffWrapper.ts +7 -0
  123. package/front_end/ui/components/adorners/Adorner.ts +2 -2
  124. package/front_end/ui/components/buttons/Button.ts +9 -9
  125. package/front_end/ui/components/data_grid/DataGrid.ts +64 -64
  126. package/front_end/ui/components/data_grid/DataGridController.ts +22 -22
  127. package/front_end/ui/components/data_grid/DataGridUtils.ts +3 -0
  128. package/front_end/ui/components/diff_view/DiffView.ts +6 -6
  129. package/front_end/ui/components/expandable_list/ExpandableList.ts +5 -5
  130. package/front_end/ui/components/icon_button/Icon.ts +4 -4
  131. package/front_end/ui/components/icon_button/IconButton.ts +4 -4
  132. package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
  133. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +11 -11
  134. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +50 -50
  135. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +6 -6
  136. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +4 -4
  137. package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +12 -12
  138. package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +11 -11
  139. package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +40 -39
  140. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +18 -18
  141. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
  142. package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -4
  143. package/front_end/ui/components/markdown_view/MarkdownImage.ts +5 -5
  144. package/front_end/ui/components/markdown_view/MarkdownLink.ts +2 -2
  145. package/front_end/ui/components/markdown_view/MarkdownView.ts +4 -4
  146. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +2 -2
  147. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +2 -2
  148. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +4 -4
  149. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +22 -22
  150. package/front_end/ui/components/report_view/ReportView.ts +16 -16
  151. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +14 -14
  152. package/front_end/ui/components/settings/SettingCheckbox.ts +5 -5
  153. package/front_end/ui/components/survey_link/SurveyLink.ts +8 -8
  154. package/front_end/ui/components/text_editor/TextEditor.ts +9 -9
  155. package/front_end/ui/components/text_prompt/TextPrompt.ts +18 -18
  156. package/front_end/ui/components/tree_outline/TreeOutline.ts +69 -70
  157. package/front_end/ui/legacy/SearchableView.ts +13 -4
  158. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -1
  159. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +13 -12
  160. package/front_end/ui/legacy/components/source_frame/XMLView.ts +2 -2
  161. package/front_end/ui/legacy/themeColors.css +2 -0
  162. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +34 -7
  163. package/package.json +1 -1
  164. package/scripts/eslint_rules/lib/use_private_class_members.js +41 -0
  165. package/scripts/eslint_rules/tests/use_private_class_members_test.js +62 -0
  166. package/scripts/migration/class-fields/migrate.js +2 -3
  167. package/scripts/migration/class-fields/migrate.sh +1 -3
  168. package/scripts/migration/class-fields/package.json +1 -1
  169. package/config/gni/all_devtools_files.gni +0 -255
  170. package/scripts/build/devtools_file_hashes.py +0 -82
  171. package/scripts/devtools_run/devtools_run_cli +0 -49
  172. package/scripts/devtools_run/package.json +0 -13
  173. package/scripts/unzip.py +0 -20
  174. package/scripts/visualize_deps/jquery_svg.html +0 -57
  175. package/scripts/visualize_deps/run_visualize.js +0 -119
@@ -36,30 +36,30 @@ import {ESTreeWalker} from './ESTreeWalker.js';
36
36
  import type {FormattedContentBuilder} from './FormattedContentBuilder.js';
37
37
 
38
38
  export class JavaScriptFormatter {
39
- private readonly builder: FormattedContentBuilder;
40
- private tokenizer!: AcornTokenizer;
41
- private content!: string;
42
- private fromOffset!: number;
43
- private lastLineNumber!: number;
44
- private toOffset?: number;
39
+ readonly #builder: FormattedContentBuilder;
40
+ #tokenizer!: AcornTokenizer;
41
+ #content!: string;
42
+ #fromOffset!: number;
43
+ #lastLineNumber!: number;
44
+ #toOffset?: number;
45
45
  constructor(builder: FormattedContentBuilder) {
46
- this.builder = builder;
46
+ this.#builder = builder;
47
47
  }
48
48
 
49
49
  format(text: string, lineEndings: number[], fromOffset: number, toOffset: number): void {
50
- this.fromOffset = fromOffset;
51
- this.toOffset = toOffset;
52
- this.content = text.substring(this.fromOffset, this.toOffset);
53
- this.lastLineNumber = 0;
54
- this.tokenizer = new AcornTokenizer(this.content);
55
- const ast = Acorn.parse(this.content, {
50
+ this.#fromOffset = fromOffset;
51
+ this.#toOffset = toOffset;
52
+ this.#content = text.substring(this.#fromOffset, this.#toOffset);
53
+ this.#lastLineNumber = 0;
54
+ this.#tokenizer = new AcornTokenizer(this.#content);
55
+ const ast = Acorn.parse(this.#content, {
56
56
  ranges: false,
57
57
  preserveParens: true,
58
58
  allowImportExportEverywhere: true,
59
59
  ecmaVersion: ECMA_VERSION,
60
60
  allowHashBang: true,
61
61
  });
62
- const walker = new ESTreeWalker(this.beforeVisit.bind(this), this.afterVisit.bind(this));
62
+ const walker = new ESTreeWalker(this.#beforeVisit.bind(this), this.#afterVisit.bind(this));
63
63
  // @ts-ignore Technically, the acorn Node type is a subclass of Acorn.ESTree.Node.
64
64
  // However, the acorn package currently exports its type without specifying
65
65
  // this relationship. So while this is allowed on runtime, we can't properly
@@ -67,55 +67,55 @@ export class JavaScriptFormatter {
67
67
  walker.walk(ast);
68
68
  }
69
69
 
70
- private push(token: Acorn.Token|Acorn.Comment|null, format: string): void {
70
+ #push(token: Acorn.Token|Acorn.Comment|null, format: string): void {
71
71
  for (let i = 0; i < format.length; ++i) {
72
72
  if (format[i] === 's') {
73
- this.builder.addSoftSpace();
73
+ this.#builder.addSoftSpace();
74
74
  } else if (format[i] === 'S') {
75
- this.builder.addHardSpace();
75
+ this.#builder.addHardSpace();
76
76
  } else if (format[i] === 'n') {
77
- this.builder.addNewLine();
77
+ this.#builder.addNewLine();
78
78
  } else if (format[i] === '>') {
79
- this.builder.increaseNestingLevel();
79
+ this.#builder.increaseNestingLevel();
80
80
  } else if (format[i] === '<') {
81
- this.builder.decreaseNestingLevel();
81
+ this.#builder.decreaseNestingLevel();
82
82
  } else if (format[i] === 't') {
83
- if (this.tokenizer.tokenLineStart() - this.lastLineNumber > 1) {
84
- this.builder.addNewLine(true);
83
+ if (this.#tokenizer.tokenLineStart() - this.#lastLineNumber > 1) {
84
+ this.#builder.addNewLine(true);
85
85
  }
86
- this.lastLineNumber = this.tokenizer.tokenLineEnd();
86
+ this.#lastLineNumber = this.#tokenizer.tokenLineEnd();
87
87
  if (token) {
88
- this.builder.addToken(this.content.substring(token.start, token.end), this.fromOffset + token.start);
88
+ this.#builder.addToken(this.#content.substring(token.start, token.end), this.#fromOffset + token.start);
89
89
  }
90
90
  }
91
91
  }
92
92
  }
93
93
 
94
- private beforeVisit(node: Acorn.ESTree.Node): undefined {
94
+ #beforeVisit(node: Acorn.ESTree.Node): undefined {
95
95
  if (!node.parent) {
96
96
  return;
97
97
  }
98
98
  let token;
99
- while ((token = this.tokenizer.peekToken()) && token.start < node.start) {
100
- const token = (this.tokenizer.nextToken() as TokenOrComment);
99
+ while ((token = this.#tokenizer.peekToken()) && token.start < node.start) {
100
+ const token = (this.#tokenizer.nextToken() as TokenOrComment);
101
101
  // @ts-ignore Same reason as above about Acorn types and ESTree types
102
- const format = this.formatToken(node.parent, token);
103
- this.push(token, format);
102
+ const format = this.#formatToken(node.parent, token);
103
+ this.#push(token, format);
104
104
  }
105
105
  return;
106
106
  }
107
107
 
108
- private afterVisit(node: Acorn.ESTree.Node): void {
108
+ #afterVisit(node: Acorn.ESTree.Node): void {
109
109
  let token;
110
- while ((token = this.tokenizer.peekToken()) && token.start < node.end) {
111
- const token = (this.tokenizer.nextToken() as TokenOrComment);
112
- const format = this.formatToken(node, token);
113
- this.push(token, format);
110
+ while ((token = this.#tokenizer.peekToken()) && token.start < node.end) {
111
+ const token = (this.#tokenizer.nextToken() as TokenOrComment);
112
+ const format = this.#formatToken(node, token);
113
+ this.#push(token, format);
114
114
  }
115
- this.push(null, this.finishNode(node));
115
+ this.#push(null, this.#finishNode(node));
116
116
  }
117
117
 
118
- private inForLoopHeader(node: Acorn.ESTree.Node): boolean {
118
+ #inForLoopHeader(node: Acorn.ESTree.Node): boolean {
119
119
  const parent = node.parent;
120
120
  if (!parent) {
121
121
  return false;
@@ -131,7 +131,7 @@ export class JavaScriptFormatter {
131
131
  return false;
132
132
  }
133
133
 
134
- private formatToken(node: Acorn.ESTree.Node, tokenOrComment: TokenOrComment): string {
134
+ #formatToken(node: Acorn.ESTree.Node, tokenOrComment: TokenOrComment): string {
135
135
  const AT = AcornTokenizer;
136
136
  if (AT.lineComment(tokenOrComment)) {
137
137
  return 'tn';
@@ -241,7 +241,7 @@ export class JavaScriptFormatter {
241
241
  // it exists. We can't fix that, unless we use proper typechecking
242
242
  allVariablesInitialized = allVariablesInitialized && Boolean(declarations[i].init);
243
243
  }
244
- return !this.inForLoopHeader(node) && allVariablesInitialized ? 'nSSts' : 'ts';
244
+ return !this.#inForLoopHeader(node) && allVariablesInitialized ? 'nSSts' : 'ts';
245
245
  }
246
246
  } else if (node.type === 'PropertyDefinition') {
247
247
  if (AT.punctuator(token, '=')) {
@@ -356,13 +356,13 @@ export class JavaScriptFormatter {
356
356
  return AT.keyword(token) && !AT.keyword(token, 'this') ? 'ts' : 't';
357
357
  }
358
358
 
359
- private finishNode(node: Acorn.ESTree.Node): string {
359
+ #finishNode(node: Acorn.ESTree.Node): string {
360
360
  if (node.type === 'WithStatement') {
361
361
  if (node.body && node.body.type !== 'BlockStatement') {
362
362
  return 'n<';
363
363
  }
364
364
  } else if (node.type === 'VariableDeclaration') {
365
- if (!this.inForLoopHeader(node)) {
365
+ if (!this.#inForLoopHeader(node)) {
366
366
  return 'n';
367
367
  }
368
368
  } else if (node.type === 'ForStatement' || node.type === 'ForOfStatement' || node.type === 'ForInStatement') {
@@ -33,43 +33,38 @@ import * as HeapSnapshotModel from '../../models/heap_snapshot_model/heap_snapsh
33
33
  export class AllocationProfile {
34
34
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
35
35
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- private readonly strings: any;
37
- // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- private readonly liveObjectStats: any;
40
- private nextNodeId: number;
41
- private functionInfos: FunctionAllocationInfo[];
42
- private idToNode: {[x: number]: BottomUpAllocationNode|null};
43
- private readonly idToTopDownNode: {[x: number]: TopDownAllocationNode};
44
- private collapsedTopNodeIdToFunctionInfo: {[x: number]: FunctionAllocationInfo};
45
- private traceTops: HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode[]|null;
46
- private readonly traceTree: TopDownAllocationNode;
36
+ readonly #strings: any;
37
+ #nextNodeId: number;
38
+ #functionInfos: FunctionAllocationInfo[];
39
+ #idToNode: {[x: number]: BottomUpAllocationNode|null};
40
+ readonly #idToTopDownNode: {[x: number]: TopDownAllocationNode};
41
+ #collapsedTopNodeIdToFunctionInfo: {[x: number]: FunctionAllocationInfo};
42
+ #traceTops: HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode[]|null;
47
43
 
48
44
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
49
45
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
46
  constructor(profile: any, liveObjectStats: any) {
51
- this.strings = profile.strings;
52
- this.liveObjectStats = liveObjectStats;
47
+ this.#strings = profile.strings;
53
48
 
54
- this.nextNodeId = 1;
55
- this.functionInfos = [];
49
+ this.#nextNodeId = 1;
50
+ this.#functionInfos = [];
56
51
 
57
- this.idToNode = {};
52
+ this.#idToNode = {};
58
53
 
59
- this.idToTopDownNode = {};
54
+ this.#idToTopDownNode = {};
60
55
 
61
- this.collapsedTopNodeIdToFunctionInfo = {};
56
+ this.#collapsedTopNodeIdToFunctionInfo = {};
62
57
 
63
- this.traceTops = null;
58
+ this.#traceTops = null;
64
59
 
65
- this.buildFunctionAllocationInfos(profile);
66
- this.traceTree = this.buildAllocationTree(profile, liveObjectStats);
60
+ this.#buildFunctionAllocationInfos(profile);
61
+ this.#buildAllocationTree(profile, liveObjectStats);
67
62
  }
68
63
 
69
64
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
70
65
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
- private buildFunctionAllocationInfos(profile: any): void {
72
- const strings = this.strings;
66
+ #buildFunctionAllocationInfos(profile: any): void {
67
+ const strings = this.#strings;
73
68
 
74
69
  const functionInfoFields = profile.snapshot.meta.trace_function_info_fields;
75
70
  const functionNameOffset = functionInfoFields.indexOf('name');
@@ -81,7 +76,7 @@ export class AllocationProfile {
81
76
 
82
77
  const rawInfos = profile.trace_function_infos;
83
78
  const infoLength = rawInfos.length;
84
- const functionInfos = this.functionInfos = new Array(infoLength / functionInfoFieldCount);
79
+ const functionInfos = this.#functionInfos = new Array(infoLength / functionInfoFieldCount);
85
80
  let index = 0;
86
81
  for (let i = 0; i < infoLength; i += functionInfoFieldCount) {
87
82
  functionInfos[index++] = new FunctionAllocationInfo(
@@ -92,10 +87,10 @@ export class AllocationProfile {
92
87
 
93
88
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
94
89
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- private buildAllocationTree(profile: any, liveObjectStats: any): TopDownAllocationNode {
90
+ #buildAllocationTree(profile: any, liveObjectStats: any): TopDownAllocationNode {
96
91
  const traceTreeRaw = profile.trace_tree;
97
- const functionInfos = this.functionInfos;
98
- const idToTopDownNode = this.idToTopDownNode;
92
+ const functionInfos = this.#functionInfos;
93
+ const idToTopDownNode = this.#idToTopDownNode;
99
94
 
100
95
  const traceNodeFields = profile.snapshot.meta.trace_node_fields;
101
96
  const nodeIdOffset = traceNodeFields.indexOf('id');
@@ -132,22 +127,22 @@ export class AllocationProfile {
132
127
  }
133
128
 
134
129
  serializeTraceTops(): HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode[] {
135
- if (this.traceTops) {
136
- return this.traceTops;
130
+ if (this.#traceTops) {
131
+ return this.#traceTops;
137
132
  }
138
133
 
139
- const result: HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode[] = this.traceTops = [];
140
- const functionInfos = this.functionInfos;
134
+ const result: HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode[] = this.#traceTops = [];
135
+ const functionInfos = this.#functionInfos;
141
136
  for (let i = 0; i < functionInfos.length; i++) {
142
137
  const info = functionInfos[i];
143
138
  if (info.totalCount === 0) {
144
139
  continue;
145
140
  }
146
- const nodeId = this.nextNodeId++;
141
+ const nodeId = this.#nextNodeId++;
147
142
  const isRoot = i === 0;
148
- result.push(this.serializeNode(
143
+ result.push(this.#serializeNode(
149
144
  nodeId, info, info.totalCount, info.totalSize, info.totalLiveCount, info.totalLiveSize, !isRoot));
150
- this.collapsedTopNodeIdToFunctionInfo[nodeId] = info;
145
+ this.#collapsedTopNodeIdToFunctionInfo[nodeId] = info;
151
146
  }
152
147
  result.sort(function(a, b) {
153
148
  return b.size - a.size;
@@ -156,24 +151,24 @@ export class AllocationProfile {
156
151
  }
157
152
 
158
153
  serializeCallers(nodeId: number): HeapSnapshotModel.HeapSnapshotModel.AllocationNodeCallers {
159
- let node = this.ensureBottomUpNode(nodeId);
154
+ let node = this.#ensureBottomUpNode(nodeId);
160
155
  const nodesWithSingleCaller = [];
161
156
  while (node.callers().length === 1) {
162
157
  node = node.callers()[0];
163
- nodesWithSingleCaller.push(this.serializeCaller(node));
158
+ nodesWithSingleCaller.push(this.#serializeCaller(node));
164
159
  }
165
160
 
166
161
  const branchingCallers = [];
167
162
  const callers = node.callers();
168
163
  for (let i = 0; i < callers.length; i++) {
169
- branchingCallers.push(this.serializeCaller(callers[i]));
164
+ branchingCallers.push(this.#serializeCaller(callers[i]));
170
165
  }
171
166
 
172
167
  return new HeapSnapshotModel.HeapSnapshotModel.AllocationNodeCallers(nodesWithSingleCaller, branchingCallers);
173
168
  }
174
169
 
175
170
  serializeAllocationStack(traceNodeId: number): HeapSnapshotModel.HeapSnapshotModel.AllocationStackFrame[] {
176
- let node: (TopDownAllocationNode|null)|TopDownAllocationNode = this.idToTopDownNode[traceNodeId];
171
+ let node: (TopDownAllocationNode|null)|TopDownAllocationNode = this.#idToTopDownNode[traceNodeId];
177
172
  const result = [];
178
173
  while (node) {
179
174
  const functionInfo = node.functionInfo;
@@ -186,29 +181,29 @@ export class AllocationProfile {
186
181
  }
187
182
 
188
183
  traceIds(allocationNodeId: number): number[] {
189
- return this.ensureBottomUpNode(allocationNodeId).traceTopIds;
184
+ return this.#ensureBottomUpNode(allocationNodeId).traceTopIds;
190
185
  }
191
186
 
192
- private ensureBottomUpNode(nodeId: number): BottomUpAllocationNode {
193
- let node = this.idToNode[nodeId];
187
+ #ensureBottomUpNode(nodeId: number): BottomUpAllocationNode {
188
+ let node = this.#idToNode[nodeId];
194
189
  if (!node) {
195
- const functionInfo = this.collapsedTopNodeIdToFunctionInfo[nodeId];
190
+ const functionInfo = this.#collapsedTopNodeIdToFunctionInfo[nodeId];
196
191
  node = functionInfo.bottomUpRoot();
197
- delete this.collapsedTopNodeIdToFunctionInfo[nodeId];
198
- this.idToNode[nodeId] = node;
192
+ delete this.#collapsedTopNodeIdToFunctionInfo[nodeId];
193
+ this.#idToNode[nodeId] = node;
199
194
  }
200
195
  return node as BottomUpAllocationNode;
201
196
  }
202
197
 
203
- private serializeCaller(node: BottomUpAllocationNode): HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode {
204
- const callerId = this.nextNodeId++;
205
- this.idToNode[callerId] = node;
206
- return this.serializeNode(
198
+ #serializeCaller(node: BottomUpAllocationNode): HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode {
199
+ const callerId = this.#nextNodeId++;
200
+ this.#idToNode[callerId] = node;
201
+ return this.#serializeNode(
207
202
  callerId, node.functionInfo, node.allocationCount, node.allocationSize, node.liveCount, node.liveSize,
208
203
  node.hasCallers());
209
204
  }
210
205
 
211
- private serializeNode(
206
+ #serializeNode(
212
207
  nodeId: number, functionInfo: FunctionAllocationInfo, count: number, size: number, liveCount: number,
213
208
  liveSize: number, hasChildren: boolean): HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode {
214
209
  return new HeapSnapshotModel.HeapSnapshotModel.SerializedAllocationNode(
@@ -248,7 +243,7 @@ export class BottomUpAllocationNode {
248
243
  liveCount: number;
249
244
  liveSize: number;
250
245
  traceTopIds: number[];
251
- private readonly callersInternal: BottomUpAllocationNode[];
246
+ readonly #callersInternal: BottomUpAllocationNode[];
252
247
  constructor(functionInfo: FunctionAllocationInfo) {
253
248
  this.functionInfo = functionInfo;
254
249
  this.allocationCount = 0;
@@ -258,14 +253,14 @@ export class BottomUpAllocationNode {
258
253
 
259
254
  this.traceTopIds = [];
260
255
 
261
- this.callersInternal = [];
256
+ this.#callersInternal = [];
262
257
  }
263
258
 
264
259
  addCaller(traceNode: TopDownAllocationNode): BottomUpAllocationNode {
265
260
  const functionInfo = traceNode.functionInfo;
266
261
  let result;
267
- for (let i = 0; i < this.callersInternal.length; i++) {
268
- const caller = this.callersInternal[i];
262
+ for (let i = 0; i < this.#callersInternal.length; i++) {
263
+ const caller = this.#callersInternal[i];
269
264
  if (caller.functionInfo === functionInfo) {
270
265
  result = caller;
271
266
  break;
@@ -273,17 +268,17 @@ export class BottomUpAllocationNode {
273
268
  }
274
269
  if (!result) {
275
270
  result = new BottomUpAllocationNode(functionInfo);
276
- this.callersInternal.push(result);
271
+ this.#callersInternal.push(result);
277
272
  }
278
273
  return result;
279
274
  }
280
275
 
281
276
  callers(): BottomUpAllocationNode[] {
282
- return this.callersInternal;
277
+ return this.#callersInternal;
283
278
  }
284
279
 
285
280
  hasCallers(): boolean {
286
- return this.callersInternal.length > 0;
281
+ return this.#callersInternal.length > 0;
287
282
  }
288
283
  }
289
284
 
@@ -297,8 +292,8 @@ export class FunctionAllocationInfo {
297
292
  totalSize: number;
298
293
  totalLiveCount: number;
299
294
  totalLiveSize: number;
300
- private traceTops: TopDownAllocationNode[];
301
- private bottomUpTree?: BottomUpAllocationNode;
295
+ #traceTops: TopDownAllocationNode[];
296
+ #bottomUpTree?: BottomUpAllocationNode;
302
297
  constructor(functionName: string, scriptName: string, scriptId: number, line: number, column: number) {
303
298
  this.functionName = functionName;
304
299
  this.scriptName = scriptName;
@@ -310,14 +305,14 @@ export class FunctionAllocationInfo {
310
305
  this.totalLiveCount = 0;
311
306
  this.totalLiveSize = 0;
312
307
 
313
- this.traceTops = [];
308
+ this.#traceTops = [];
314
309
  }
315
310
 
316
311
  addTraceTopNode(node: TopDownAllocationNode): void {
317
312
  if (node.allocationCount === 0) {
318
313
  return;
319
314
  }
320
- this.traceTops.push(node);
315
+ this.#traceTops.push(node);
321
316
  this.totalCount += node.allocationCount;
322
317
  this.totalSize += node.allocationSize;
323
318
  this.totalLiveCount += node.liveCount;
@@ -325,21 +320,21 @@ export class FunctionAllocationInfo {
325
320
  }
326
321
 
327
322
  bottomUpRoot(): BottomUpAllocationNode|null {
328
- if (!this.traceTops.length) {
323
+ if (!this.#traceTops.length) {
329
324
  return null;
330
325
  }
331
- if (!this.bottomUpTree) {
332
- this.buildAllocationTraceTree();
326
+ if (!this.#bottomUpTree) {
327
+ this.#buildAllocationTraceTree();
333
328
  }
334
- return this.bottomUpTree as BottomUpAllocationNode;
329
+ return this.#bottomUpTree as BottomUpAllocationNode;
335
330
  }
336
331
 
337
- private buildAllocationTraceTree(): void {
338
- this.bottomUpTree = new BottomUpAllocationNode(this);
332
+ #buildAllocationTraceTree(): void {
333
+ this.#bottomUpTree = new BottomUpAllocationNode(this);
339
334
 
340
- for (let i = 0; i < this.traceTops.length; i++) {
341
- let node: (TopDownAllocationNode|null)|TopDownAllocationNode = this.traceTops[i];
342
- let bottomUpNode: BottomUpAllocationNode = this.bottomUpTree;
335
+ for (let i = 0; i < this.#traceTops.length; i++) {
336
+ let node: (TopDownAllocationNode|null)|TopDownAllocationNode = this.#traceTops[i];
337
+ let bottomUpNode: BottomUpAllocationNode = this.#bottomUpTree;
343
338
  const count = node.allocationCount;
344
339
  const size = node.allocationSize;
345
340
  const liveCount = node.liveCount;