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
@@ -45,123 +45,196 @@ export interface PlayerStatusMapElement {
45
45
  playerTitleElement: HTMLElement|null;
46
46
  }
47
47
 
48
- export class PlayerEntryTreeElement extends UI.TreeOutline.TreeElement {
49
- titleFromUrl: boolean;
50
- private readonly playerStatus: PlayerStatus;
51
- private readonly displayContainer: MainView;
52
-
53
- constructor(playerStatus: PlayerStatus, displayContainer: MainView, playerID: string) {
54
- super(playerStatus.playerTitle, false);
55
- this.titleFromUrl = true;
56
- this.playerStatus = playerStatus;
57
- this.displayContainer = displayContainer;
58
- this.setLeadingIcons([UI.Icon.Icon.create('largeicon-play-animation', 'media-player')]);
59
- this.listItemElement.classList.add('player-entry-tree-element');
60
- this.listItemElement.addEventListener('contextmenu', this.rightClickContextMenu.bind(this, playerID), false);
48
+ export class PlayerListView extends UI.Widget.VBox implements TriggerDispatcher {
49
+ private readonly playerEntryFragments: Map<string, UI.Fragment.Fragment>;
50
+ private readonly playerEntriesWithHostnameFrameTitle: Set<string>;
51
+ private readonly mainContainer: MainView;
52
+ private currentlySelectedEntry: Element|null;
53
+
54
+ constructor(mainContainer: MainView) {
55
+ super(true);
56
+
57
+ this.playerEntryFragments = new Map();
58
+ this.playerEntriesWithHostnameFrameTitle = new Set();
59
+
60
+ // Container where new panels can be added based on clicks.
61
+ this.mainContainer = mainContainer;
62
+
63
+ this.currentlySelectedEntry = null;
64
+ this.contentElement.createChild('div', 'player-entry-header').textContent = i18nString(UIStrings.players);
61
65
  }
62
66
 
63
- onselect(_selectedByUser?: boolean): boolean {
64
- this.displayContainer.renderMainPanel(this.playerStatus.playerID);
65
- return true;
67
+ private createPlayerListEntry(playerID: string): UI.Fragment.Fragment {
68
+ const entry = UI.Fragment.Fragment.build`
69
+ <div class="player-entry-row hbox">
70
+ <div class="player-entry-status-icon vbox">
71
+ <div $="icon" class="player-entry-status-icon-centering"></div>
72
+ </div>
73
+ <div $="frame-title" class="player-entry-frame-title">FrameTitle</div>
74
+ <div $="player-title" class="player-entry-player-title">PlayerTitle</div>
75
+ </div>
76
+ `;
77
+ const element = entry.element();
78
+
79
+ element.addEventListener('click', this.selectPlayer.bind(this, playerID, element));
80
+ element.addEventListener('contextmenu', this.rightClickPlayer.bind(this, playerID));
81
+
82
+ entry.$('icon').appendChild(UI.Icon.Icon.create('largeicon-pause-animation', 'media-player'));
83
+ return entry;
66
84
  }
67
85
 
68
- private rightClickContextMenu(playerID: string, event: Event): boolean {
86
+ private selectPlayer(playerID: string, element: Element): void {
87
+ this.mainContainer.renderMainPanel(playerID);
88
+ if (this.currentlySelectedEntry !== null) {
89
+ this.currentlySelectedEntry.classList.remove('selected');
90
+ }
91
+ element.classList.add('selected');
92
+ this.currentlySelectedEntry = element;
93
+ }
94
+
95
+ private rightClickPlayer(playerID: string, event: Event): boolean {
69
96
  const contextMenu = new UI.ContextMenu.ContextMenu(event);
70
- contextMenu.headerSection().appendItem(i18nString(UIStrings.hidePlayer), this.hidePlayer.bind(this, playerID));
71
- contextMenu.headerSection().appendItem(i18nString(UIStrings.hideAllOthers), this.hideOthers.bind(this, playerID));
72
- contextMenu.headerSection().appendItem(i18nString(UIStrings.savePlayerInfo), this.savePlayer.bind(this, playerID));
97
+ contextMenu.headerSection().appendItem(
98
+ i18nString(UIStrings.hidePlayer), this.mainContainer.markPlayerForDeletion.bind(this.mainContainer, playerID));
99
+ contextMenu.headerSection().appendItem(
100
+ i18nString(UIStrings.hideAllOthers),
101
+ this.mainContainer.markOtherPlayersForDeletion.bind(this.mainContainer, playerID));
102
+ contextMenu.headerSection().appendItem(
103
+ i18nString(UIStrings.savePlayerInfo), this.mainContainer.exportPlayerData.bind(this.mainContainer, playerID));
73
104
  contextMenu.show();
74
105
  return true;
75
106
  }
76
107
 
77
- private hidePlayer(playerID: string): void {
78
- this.displayContainer.markPlayerForDeletion(playerID);
79
- }
108
+ private setMediaElementFrameTitle(playerID: string, frameTitle: string, isHostname: boolean): void {
109
+ // Only remove the title from the set if we arent setting a hostname title.
110
+ // Otherwise, if it has a non-hostname title, and the requested new title is
111
+ // a hostname, just drop it.
112
+ if (this.playerEntriesWithHostnameFrameTitle.has(playerID)) {
113
+ if (!isHostname) {
114
+ this.playerEntriesWithHostnameFrameTitle.delete(playerID);
115
+ }
116
+ } else if (isHostname) {
117
+ return;
118
+ }
80
119
 
81
- private savePlayer(playerID: string): void {
82
- this.displayContainer.exportPlayerData(playerID);
120
+ if (!this.playerEntryFragments.has(playerID)) {
121
+ return;
122
+ }
123
+ const fragment = this.playerEntryFragments.get(playerID);
124
+ if (fragment === undefined || fragment.element() === undefined) {
125
+ return;
126
+ }
127
+ fragment.$('frame-title').textContent = frameTitle;
83
128
  }
84
129
 
85
- private hideOthers(playerID: string): void {
86
- this.displayContainer.markOtherPlayersForDeletion(playerID);
130
+ private setMediaElementPlayerTitle(playerID: string, playerTitle: string): void {
131
+ if (!this.playerEntryFragments.has(playerID)) {
132
+ return;
133
+ }
134
+ const fragment = this.playerEntryFragments.get(playerID);
135
+ if (fragment === undefined) {
136
+ return;
137
+ }
138
+ fragment.$('player-title').textContent = playerTitle;
87
139
  }
88
- }
89
140
 
90
- export class PlayerListView extends UI.Widget.VBox implements TriggerDispatcher {
91
- private readonly playerStatuses: Map<string, PlayerEntryTreeElement>;
92
- private readonly mainContainer: MainView;
93
- private readonly sidebarTree: UI.TreeOutline.TreeOutlineInShadow;
94
- private readonly playerList: UI.TreeOutline.TreeElement;
95
-
96
- constructor(mainContainer: MainView) {
97
- super(true);
98
-
99
- this.playerStatuses = new Map();
100
-
101
- // Container where new panels can be added based on clicks.
102
- this.mainContainer = mainContainer;
141
+ private setMediaElementPlayerIcon(playerID: string, iconName: string): void {
142
+ if (!this.playerEntryFragments.has(playerID)) {
143
+ return;
144
+ }
145
+ const fragment = this.playerEntryFragments.get(playerID);
146
+ if (fragment === undefined) {
147
+ return;
148
+ }
149
+ const icon = fragment.$('icon');
150
+ if (icon === undefined) {
151
+ return;
152
+ }
153
+ icon.textContent = '';
154
+ icon.appendChild(UI.Icon.Icon.create(iconName, 'media-player'));
155
+ }
103
156
 
104
- // The parent tree for storing sections
105
- this.sidebarTree = new UI.TreeOutline.TreeOutlineInShadow();
106
- this.contentElement.appendChild(this.sidebarTree.element);
157
+ private formatAndEvaluate(playerID: string, func: Function, candidate: string, min: number, max: number): void {
158
+ if (candidate.length <= min) {
159
+ return;
160
+ }
161
+ if (candidate.length >= max) {
162
+ candidate = candidate.substring(0, max - 3) + '...';
163
+ }
164
+ func.bind(this)(playerID, candidate);
165
+ }
107
166
 
108
- // Players active in this tab.
109
- this.playerList = this.addListSection(i18nString(UIStrings.players));
110
- this.playerList.listItemElement.classList.add('player-entry-header');
167
+ addMediaElementItem(playerID: string): void {
168
+ const sidebarEntry = this.createPlayerListEntry(playerID);
169
+ this.contentElement.appendChild(sidebarEntry.element());
170
+ this.playerEntryFragments.set(playerID, sidebarEntry);
171
+ this.playerEntriesWithHostnameFrameTitle.add(playerID);
111
172
  }
112
173
 
113
174
  deletePlayer(playerID: string): void {
114
- this.playerList.removeChild(this.playerStatuses.get(playerID) as UI.TreeOutline.TreeElement);
115
- this.playerStatuses.delete(playerID);
175
+ if (!this.playerEntryFragments.has(playerID)) {
176
+ return;
177
+ }
178
+ const fragment = this.playerEntryFragments.get(playerID);
179
+ if (fragment === undefined || fragment.element() === undefined) {
180
+ return;
181
+ }
182
+ this.contentElement.removeChild(fragment.element());
183
+ this.playerEntryFragments.delete(playerID);
116
184
  }
117
185
 
118
- private addListSection(title: string): UI.TreeOutline.TreeElement {
119
- const treeElement = new UI.TreeOutline.TreeElement(title, true);
120
- treeElement.listItemElement.classList.add('storage-group-list-item');
121
- treeElement.setCollapsible(false);
122
- treeElement.selectable = false;
123
- this.sidebarTree.appendChild(treeElement);
124
- return treeElement;
125
- }
186
+ onEvent(playerID: string, event: PlayerEvent): void {
187
+ const parsed = JSON.parse(event.value);
188
+ const eventType = parsed.event;
189
+
190
+ // Load events provide the actual underlying URL for the video, which makes
191
+ // a great way to identify a specific video within a page that potentially
192
+ // may have many videos. MSE videos have a special blob:http(s) protocol
193
+ // that we'd like to keep mind of, so we do prepend blob:
194
+ if (eventType === 'kLoad') {
195
+ const url = parsed.url as string;
196
+ const videoName = url.substring(url.lastIndexOf('/') + 1);
197
+ this.formatAndEvaluate(playerID, this.setMediaElementPlayerTitle, videoName, 1, 20);
198
+ return;
199
+ }
126
200
 
127
- addMediaElementItem(playerID: string): void {
128
- const playerStatus = {playerTitle: playerID, playerID: playerID, exists: true, playing: false, titleEdited: false};
129
- const playerElement = new PlayerEntryTreeElement(playerStatus, this.mainContainer, playerID);
130
- this.playerStatuses.set(playerID, playerElement);
131
- this.playerList.appendChild(playerElement);
132
- }
201
+ if (eventType === 'kPlay') {
202
+ this.setMediaElementPlayerIcon(playerID, 'largeicon-play-animation');
203
+ return;
204
+ }
133
205
 
134
- setMediaElementPlayerTitle(playerID: string, newTitle: string, isTitleExtractedFromUrl: boolean): void {
135
- if (this.playerStatuses.has(playerID)) {
136
- const sidebarEntry = this.playerStatuses.get(playerID);
137
- if (sidebarEntry && (!isTitleExtractedFromUrl || sidebarEntry.titleFromUrl)) {
138
- sidebarEntry.title = newTitle;
139
- sidebarEntry.titleFromUrl = isTitleExtractedFromUrl;
140
- }
206
+ if (eventType === 'kPause' || eventType === 'kEnded') {
207
+ this.setMediaElementPlayerIcon(playerID, 'largeicon-pause-animation');
208
+ return;
141
209
  }
142
- }
143
210
 
144
- setMediaElementPlayerIcon(playerID: string, iconName: string): void {
145
- if (this.playerStatuses.has(playerID)) {
146
- const sidebarEntry = this.playerStatuses.get(playerID);
147
- if (!sidebarEntry) {
148
- throw new Error('sidebarEntry is expected to not be null');
149
- }
150
- sidebarEntry.setLeadingIcons([UI.Icon.Icon.create(iconName, 'media-player')]);
211
+ if (eventType === 'kWebMediaPlayerDestroyed') {
212
+ this.setMediaElementPlayerIcon(playerID, 'smallicon-videoplayer-destroyed');
213
+ return;
151
214
  }
152
215
  }
153
216
 
154
217
  onProperty(playerID: string, property: Protocol.Media.PlayerProperty): void {
155
- // Sometimes the title will be an empty string, since this is provided
156
- // by the website. We don't want to swap title to an empty string.
157
- if (property.name === PlayerPropertyKeys.FrameTitle && property.value) {
158
- this.setMediaElementPlayerTitle(playerID, property.value as string, false);
218
+ // FrameUrl is always present, and we can generate a basic frame title from
219
+ // it by grabbing the hostname. It's not possible to generate a "good" player
220
+ // title from the FrameUrl though, since the page location itself might not
221
+ // have any relevance to the video being played, and would be shared by all
222
+ // videos on the page.
223
+ if (property.name === PlayerPropertyKeys.FrameUrl) {
224
+ const frameTitle = new URL(property.value).hostname;
225
+ this.formatAndEvaluate(playerID, this.setMediaElementFrameTitle, frameTitle, 1, 20);
226
+ return;
159
227
  }
160
228
 
161
- // Url always has a value.
162
- if (property.name === PlayerPropertyKeys.FrameUrl) {
163
- const urlPathComponent = property.value.substring(property.value.lastIndexOf('/') + 1);
164
- this.setMediaElementPlayerTitle(playerID, urlPathComponent, true);
229
+ // On the other hand, the page may set a title, which usually makes for a
230
+ // better frame title than a hostname. Unfortunately, its only "usually",
231
+ // since the site is free to set the title to _anything_, it might just be
232
+ // junk, or it might be super long. If it's empty, or 1 character, It's
233
+ // preferable to just drop it. Titles longer than 20 will have the first
234
+ // 17 characters kept and an elipsis appended.
235
+ if (property.name === PlayerPropertyKeys.FrameTitle && property.value) {
236
+ this.formatAndEvaluate(playerID, this.setMediaElementFrameTitle, property.value, 1, 20);
237
+ return;
165
238
  }
166
239
  }
167
240
 
@@ -173,18 +246,8 @@ export class PlayerListView extends UI.Widget.VBox implements TriggerDispatcher
173
246
  // TODO(tmathmeyer) show a message count number next to the player name.
174
247
  }
175
248
 
176
- onEvent(playerID: string, event: PlayerEvent): void {
177
- const eventType = JSON.parse(event.value).event;
178
- if (eventType === 'kPlay') {
179
- this.setMediaElementPlayerIcon(playerID, 'largeicon-play-animation');
180
- } else if (eventType === 'kPause') {
181
- this.setMediaElementPlayerIcon(playerID, 'largeicon-pause-animation');
182
- } else if (eventType === 'kWebMediaPlayerDestroyed') {
183
- this.setMediaElementPlayerIcon(playerID, 'smallicon-videoplayer-destroyed');
184
- }
185
- }
186
249
  wasShown(): void {
187
250
  super.wasShown();
188
- this.sidebarTree.registerCSSFiles([playerListViewStyles]);
251
+ this.registerCSSFiles([playerListViewStyles]);
189
252
  }
190
253
  }
@@ -317,6 +317,7 @@ export class PlayerMessagesView extends UI.Widget.VBox {
317
317
  this.bodyPanel.createChild('div', 'media-messages-message-container media-message-' + message.level);
318
318
  UI.UIUtils.createTextChild(container, message.message);
319
319
  }
320
+
320
321
  wasShown(): void {
321
322
  super.wasShown();
322
323
  this.registerCSSFiles([playerMessagesViewStyles]);
@@ -20,3 +20,61 @@ li.storage-group-list-item:not(:first-child) {
20
20
  li.storage-group-list-item::before {
21
21
  display: none;
22
22
  }
23
+
24
+ .player-entry-row {
25
+ height: 26px;
26
+ min-height: 26px;
27
+ line-height: 26px;
28
+ }
29
+
30
+ .player-entry-status-icon {
31
+ width: 28px;
32
+ min-width: 28px;
33
+ height: 26px;
34
+ border-right: 1px solid var(--color-details-hairline);
35
+ overflow: hidden;
36
+ }
37
+
38
+ .player-entry-status-icon-centering {
39
+ margin: auto;
40
+ display: inherit;
41
+ }
42
+
43
+ .player-entry-frame-title {
44
+ height: 26px;
45
+ padding: 0 10px;
46
+ border-right: 1px solid var(--color-details-hairline);
47
+ overflow: hidden;
48
+ }
49
+
50
+ .player-entry-player-title {
51
+ height: 26px;
52
+ padding-left: 10px;
53
+ overflow: hidden;
54
+ }
55
+
56
+ .player-entry-row:nth-child(odd) {
57
+ background: var(--color-background-elevation-0);
58
+ }
59
+
60
+ .player-entry-row:hover {
61
+ cursor: pointer;
62
+ background: var(--color-background-hover-overlay);
63
+ }
64
+
65
+ .player-entry-row.selected {
66
+ background: var(--color-primary-variant);
67
+ color: var(--legacy-selection-fg-color);
68
+ }
69
+
70
+ .player-entry-row.selected .player-entry-status-icon-centering {
71
+ filter: invert(100);
72
+ }
73
+
74
+ .player-entry-header {
75
+ height: 27px;
76
+ line-height: 27px;
77
+ min-height: 27px;
78
+ padding-left: 10px;
79
+ border-bottom: 1px solid var(--color-details-hairline);
80
+ }
@@ -2265,15 +2265,11 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
2265
2265
  }
2266
2266
 
2267
2267
  static getDCLEventColor(): string {
2268
- if (ThemeSupport.ThemeSupport.instance().themeName() === 'dark') {
2269
- return '#03A9F4';
2270
- }
2271
- return '#0867CB';
2268
+ return ThemeSupport.ThemeSupport.instance().getComputedValue('--color-syntax-3');
2272
2269
  }
2273
2270
 
2274
2271
  static getLoadEventColor(): string {
2275
- return ThemeSupport.ThemeSupport.instance().patchColorText(
2276
- '#B31412', ThemeSupport.ThemeSupport.ColorUsage.Foreground);
2272
+ return ThemeSupport.ThemeSupport.instance().getComputedValue('--color-syntax-1');
2277
2273
  }
2278
2274
  }
2279
2275
 
@@ -96,8 +96,7 @@ export class NetworkWaterfallColumn extends UI.Widget.VBox {
96
96
  this.styleForWaitingResourceType = resourceStyleTuple[0];
97
97
  this.styleForDownloadingResourceType = resourceStyleTuple[1];
98
98
 
99
- const baseLineColor =
100
- ThemeSupport.ThemeSupport.instance().patchColorText('#a5a5a5', ThemeSupport.ThemeSupport.ColorUsage.Foreground);
99
+ const baseLineColor = ThemeSupport.ThemeSupport.instance().getComputedValue('--color-text-disabled');
101
100
  this.wiskerStyle = {borderColor: baseLineColor, lineWidth: 1, fillStyle: undefined};
102
101
  this.hoverDetailsStyle = {fillStyle: baseLineColor, lineWidth: 1, borderColor: baseLineColor};
103
102
 
@@ -426,8 +425,7 @@ export class NetworkWaterfallColumn extends UI.Widget.VBox {
426
425
  this.drawLayers(context, useTimingBars);
427
426
 
428
427
  context.save();
429
- context.fillStyle =
430
- ThemeSupport.ThemeSupport.instance().patchColorText('#888', ThemeSupport.ThemeSupport.ColorUsage.Foreground);
428
+ context.fillStyle = ThemeSupport.ThemeSupport.instance().getComputedValue('--color-text-disabled');
431
429
  for (const textData of this.textLayers) {
432
430
  context.fillText(textData.text, textData.x, textData.y);
433
431
  }
@@ -88,30 +88,30 @@ const str_ = i18n.i18n.registerUIStrings('panels/network/components/RequestTrust
88
88
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
89
89
 
90
90
  export class RequestTrustTokensView extends UI.Widget.VBox {
91
- private readonly reportView = new RequestTrustTokensReport();
92
- private readonly request: SDK.NetworkRequest.NetworkRequest;
91
+ readonly #reportView = new RequestTrustTokensReport();
92
+ readonly #request: SDK.NetworkRequest.NetworkRequest;
93
93
 
94
94
  constructor(request: SDK.NetworkRequest.NetworkRequest) {
95
95
  super();
96
- this.request = request;
96
+ this.#request = request;
97
97
 
98
- this.contentElement.appendChild(this.reportView);
98
+ this.contentElement.appendChild(this.#reportView);
99
99
  }
100
100
 
101
101
  wasShown(): void {
102
- this.request.addEventListener(SDK.NetworkRequest.Events.TrustTokenResultAdded, this.refreshReportView, this);
102
+ this.#request.addEventListener(SDK.NetworkRequest.Events.TrustTokenResultAdded, this.#refreshReportView, this);
103
103
 
104
- this.refreshReportView();
104
+ this.#refreshReportView();
105
105
  }
106
106
 
107
107
  willHide(): void {
108
- this.request.removeEventListener(SDK.NetworkRequest.Events.TrustTokenResultAdded, this.refreshReportView, this);
108
+ this.#request.removeEventListener(SDK.NetworkRequest.Events.TrustTokenResultAdded, this.#refreshReportView, this);
109
109
  }
110
110
 
111
- private refreshReportView(): void {
112
- this.reportView.data = {
113
- params: this.request.trustTokenParams(),
114
- result: this.request.trustTokenOperationDoneEvent(),
111
+ #refreshReportView(): void {
112
+ this.#reportView.data = {
113
+ params: this.#request.trustTokenParams(),
114
+ result: this.#request.trustTokenOperationDoneEvent(),
115
115
  };
116
116
  }
117
117
  }
@@ -123,58 +123,58 @@ export interface RequestTrustTokensReportData {
123
123
 
124
124
  export class RequestTrustTokensReport extends HTMLElement {
125
125
  static readonly litTagName = LitHtml.literal`devtools-trust-token-report`;
126
- private readonly shadow = this.attachShadow({mode: 'open'});
127
- private trustTokenData?: Readonly<RequestTrustTokensReportData>;
126
+ readonly #shadow = this.attachShadow({mode: 'open'});
127
+ #trustTokenData?: Readonly<RequestTrustTokensReportData>;
128
128
 
129
129
  set data(data: RequestTrustTokensReportData) {
130
- this.trustTokenData = data;
131
- this.render();
130
+ this.#trustTokenData = data;
131
+ this.#render();
132
132
  }
133
133
 
134
134
  connectedCallback(): void {
135
- this.shadow.adoptedStyleSheets = [requestTrustTokensViewStyles];
135
+ this.#shadow.adoptedStyleSheets = [requestTrustTokensViewStyles];
136
136
  }
137
137
 
138
- private render(): void {
139
- if (!this.trustTokenData) {
138
+ #render(): void {
139
+ if (!this.#trustTokenData) {
140
140
  throw new Error('Trying to render a Trust Token report without providing data');
141
141
  }
142
142
 
143
143
  // Disabled until https://crbug.com/1079231 is fixed.
144
144
  // clang-format off
145
145
  LitHtml.render(LitHtml.html`<${ReportView.ReportView.Report.litTagName}>
146
- ${this.renderParameterSection()}
147
- ${this.renderResultSection()}
146
+ ${this.#renderParameterSection()}
147
+ ${this.#renderResultSection()}
148
148
  </${ReportView.ReportView.Report.litTagName}>
149
- `, this.shadow, {host: this});
149
+ `, this.#shadow, {host: this});
150
150
  // clang-format on
151
151
  }
152
152
 
153
- private renderParameterSection(): LitHtml.TemplateResult|{} {
154
- if (!this.trustTokenData || !this.trustTokenData.params) {
153
+ #renderParameterSection(): LitHtml.TemplateResult|{} {
154
+ if (!this.#trustTokenData || !this.#trustTokenData.params) {
155
155
  return LitHtml.nothing;
156
156
  }
157
157
 
158
158
  return LitHtml.html`
159
159
  <${ReportView.ReportView.ReportSectionHeader.litTagName}>${i18nString(UIStrings.parameters)}</${
160
160
  ReportView.ReportView.ReportSectionHeader.litTagName}>
161
- ${renderRowWithCodeValue(i18nString(UIStrings.type), this.trustTokenData.params.type.toString())}
162
- ${this.renderRefreshPolicy(this.trustTokenData.params)}
163
- ${this.renderIssuers(this.trustTokenData.params)}
164
- ${this.renderIssuerAndTopLevelOriginFromResult()}
161
+ ${renderRowWithCodeValue(i18nString(UIStrings.type), this.#trustTokenData.params.type.toString())}
162
+ ${this.#renderRefreshPolicy(this.#trustTokenData.params)}
163
+ ${this.#renderIssuers(this.#trustTokenData.params)}
164
+ ${this.#renderIssuerAndTopLevelOriginFromResult()}
165
165
  <${ReportView.ReportView.ReportSectionDivider.litTagName}></${
166
166
  ReportView.ReportView.ReportSectionDivider.litTagName}>
167
167
  `;
168
168
  }
169
169
 
170
- private renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
170
+ #renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
171
171
  if (params.type !== Protocol.Network.TrustTokenOperationType.Redemption) {
172
172
  return LitHtml.nothing;
173
173
  }
174
174
  return renderRowWithCodeValue(i18nString(UIStrings.refreshPolicy), params.refreshPolicy.toString());
175
175
  }
176
176
 
177
- private renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
177
+ #renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
178
178
  if (!params.issuers || params.issuers.length === 0) {
179
179
  return LitHtml.nothing;
180
180
  }
@@ -193,18 +193,18 @@ export class RequestTrustTokensReport extends HTMLElement {
193
193
  // The issuer and top level origin are technically parameters but reported in the
194
194
  // result structure due to the timing when they are calculated in the backend.
195
195
  // Nonetheless, we show them as part of the parameter section.
196
- private renderIssuerAndTopLevelOriginFromResult(): LitHtml.TemplateResult|{} {
197
- if (!this.trustTokenData || !this.trustTokenData.result) {
196
+ #renderIssuerAndTopLevelOriginFromResult(): LitHtml.TemplateResult|{} {
197
+ if (!this.#trustTokenData || !this.#trustTokenData.result) {
198
198
  return LitHtml.nothing;
199
199
  }
200
200
 
201
201
  return LitHtml.html`
202
- ${renderSimpleRowIfValuePresent(i18nString(UIStrings.topLevelOrigin), this.trustTokenData.result.topLevelOrigin)}
203
- ${renderSimpleRowIfValuePresent(i18nString(UIStrings.issuer), this.trustTokenData.result.issuerOrigin)}`;
202
+ ${renderSimpleRowIfValuePresent(i18nString(UIStrings.topLevelOrigin), this.#trustTokenData.result.topLevelOrigin)}
203
+ ${renderSimpleRowIfValuePresent(i18nString(UIStrings.issuer), this.#trustTokenData.result.issuerOrigin)}`;
204
204
  }
205
205
 
206
- private renderResultSection(): LitHtml.TemplateResult|{} {
207
- if (!this.trustTokenData || !this.trustTokenData.result) {
206
+ #renderResultSection(): LitHtml.TemplateResult|{} {
207
+ if (!this.#trustTokenData || !this.#trustTokenData.result) {
208
208
  return LitHtml.nothing;
209
209
  }
210
210
  return LitHtml.html`
@@ -215,19 +215,19 @@ export class RequestTrustTokensReport extends HTMLElement {
215
215
  <${ReportView.ReportView.ReportValue.litTagName}>
216
216
  <span>
217
217
  <${IconButton.Icon.Icon.litTagName} class="status-icon"
218
- .data=${getIconForStatusCode(this.trustTokenData.result.status) as IconButton.Icon.IconData}>
218
+ .data=${getIconForStatusCode(this.#trustTokenData.result.status) as IconButton.Icon.IconData}>
219
219
  </${IconButton.Icon.Icon.litTagName}>
220
- <strong>${getSimplifiedStatusTextForStatusCode(this.trustTokenData.result.status)}</strong>
221
- ${getDetailedTextForStatusCode(this.trustTokenData.result.status)}
220
+ <strong>${getSimplifiedStatusTextForStatusCode(this.#trustTokenData.result.status)}</strong>
221
+ ${getDetailedTextForStatusCode(this.#trustTokenData.result.status)}
222
222
  </span>
223
223
  </${ReportView.ReportView.ReportValue.litTagName}>
224
- ${this.renderIssuedTokenCount(this.trustTokenData.result)}
224
+ ${this.#renderIssuedTokenCount(this.#trustTokenData.result)}
225
225
  <${ReportView.ReportView.ReportSectionDivider.litTagName}></${
226
226
  ReportView.ReportView.ReportSectionDivider.litTagName}>
227
227
  `;
228
228
  }
229
229
 
230
- private renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.TemplateResult|{} {
230
+ #renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.TemplateResult|{} {
231
231
  if (result.type !== Protocol.Network.TrustTokenOperationType.Issuance) {
232
232
  return LitHtml.nothing;
233
233
  }
@@ -39,21 +39,21 @@ export class WebBundleInfoView extends UI.Widget.VBox {
39
39
 
40
40
  export class WebBundleInfoElement extends HTMLElement {
41
41
  static readonly litTagName = LitHtml.literal`devtools-web-bundle-info`;
42
- private readonly shadow = this.attachShadow({mode: 'open'});
43
- private webBundleInfo: Readonly<SDK.NetworkRequest.WebBundleInfo>;
44
- private webBundleName: Readonly<string>;
42
+ readonly #shadow = this.attachShadow({mode: 'open'});
43
+ #webBundleInfo: Readonly<SDK.NetworkRequest.WebBundleInfo>;
44
+ #webBundleName: Readonly<string>;
45
45
  constructor(webBundleInfo: SDK.NetworkRequest.WebBundleInfo, webBundleName: string) {
46
46
  super();
47
- this.webBundleInfo = webBundleInfo;
48
- this.webBundleName = webBundleName;
47
+ this.#webBundleInfo = webBundleInfo;
48
+ this.#webBundleName = webBundleName;
49
49
  }
50
50
 
51
51
  connectedCallback(): void {
52
- this.shadow.adoptedStyleSheets = [webBundleInfoViewStyles];
52
+ this.#shadow.adoptedStyleSheets = [webBundleInfoViewStyles];
53
53
  }
54
54
 
55
55
  render(): void {
56
- const rows = this.webBundleInfo.resourceUrls?.map(url => {
56
+ const rows = this.#webBundleInfo.resourceUrls?.map(url => {
57
57
  const mimeType = Common.ResourceType.ResourceType.mimeFromURL(url) || null;
58
58
  const resourceType = Common.ResourceType.ResourceType.fromMimeTypeOverride(mimeType) ||
59
59
  Common.ResourceType.ResourceType.fromMimeType(mimeType);
@@ -82,7 +82,7 @@ export class WebBundleInfoElement extends HTMLElement {
82
82
  <${IconButton.Icon.Icon.litTagName} class="icon"
83
83
  .data=${{color: '', iconName: 'resourceWebBundle', width: '16px'} as IconButton.Icon.IconData}>
84
84
  </${IconButton.Icon.Icon.litTagName}>
85
- <span>${this.webBundleName}</span>
85
+ <span>${this.#webBundleName}</span>
86
86
  <x-link href="https://web.dev/web-bundles/#explaining-web-bundles">
87
87
  <${IconButton.Icon.Icon.litTagName} class="icon"
88
88
  .data=${
@@ -108,7 +108,7 @@ export class WebBundleInfoElement extends HTMLElement {
108
108
  } as DataGrid.DataGrid.DataGridData}>
109
109
  </${DataGrid.DataGrid.DataGrid.litTagName}>
110
110
  </div>`,
111
- this.shadow);
111
+ this.#shadow);
112
112
  }
113
113
  }
114
114