chrome-devtools-frontend 1.0.1000934 → 1.0.1002543

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 (187) hide show
  1. package/config/gni/devtools_grd_files.gni +4 -3
  2. package/front_end/.eslintrc.js +1 -0
  3. package/front_end/core/common/ParsedURL.ts +3 -3
  4. package/front_end/core/host/InspectorFrontendHost.ts +30 -1
  5. package/front_end/core/i18n/locales/en-US.json +177 -12
  6. package/front_end/core/i18n/locales/en-XL.json +177 -12
  7. package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
  8. package/front_end/core/root/Runtime.ts +7 -3
  9. package/front_end/core/sdk/ServiceWorkerManager.ts +6 -5
  10. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +14 -0
  11. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +491 -0
  12. package/front_end/entrypoints/formatter_worker/Substitute.ts +4 -440
  13. package/front_end/entrypoints/formatter_worker/formatter_worker.ts +2 -0
  14. package/front_end/generated/InspectorBackendCommands.js +38 -10
  15. package/front_end/generated/protocol-mapping.d.ts +5 -1
  16. package/front_end/generated/protocol-proxy-api.d.ts +4 -1
  17. package/front_end/generated/protocol.ts +50 -10
  18. package/front_end/models/bindings/BreakpointManager.ts +12 -11
  19. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  20. package/front_end/models/issues_manager/AttributionReportingIssue.ts +5 -36
  21. package/front_end/models/issues_manager/DeprecationIssue.ts +233 -257
  22. package/front_end/models/issues_manager/Issue.ts +8 -4
  23. package/front_end/models/persistence/PersistenceImpl.ts +2 -2
  24. package/front_end/models/timeline_model/TimelineModel.ts +0 -48
  25. package/front_end/panels/application/AppManifestView.ts +3 -3
  26. package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -1
  27. package/front_end/panels/application/ApplicationPanelSidebar.ts +11 -6
  28. package/front_end/panels/application/ApplicationPanelTreeElement.ts +2 -2
  29. package/front_end/panels/application/BackgroundServiceView.ts +5 -4
  30. package/front_end/panels/application/ResourcesPanel.ts +1 -1
  31. package/front_end/panels/application/components/BackForwardCacheView.ts +4 -5
  32. package/front_end/panels/application/components/FrameDetailsView.ts +19 -19
  33. package/front_end/panels/application/components/PermissionsPolicySection.ts +2 -2
  34. package/front_end/panels/console/ConsoleViewMessage.ts +6 -3
  35. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  36. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +3 -2
  37. package/front_end/panels/css_overview/cssOverviewCompletedView.css +4 -0
  38. package/front_end/panels/elements/StylePropertyTreeElement.ts +19 -13
  39. package/front_end/panels/elements/StylesSidebarPane.ts +53 -0
  40. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  41. package/front_end/panels/issues/AffectedResourcesView.ts +4 -3
  42. package/front_end/panels/issues/AffectedSourcesView.ts +2 -1
  43. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -43
  44. package/front_end/panels/issues/IssueView.ts +1 -1
  45. package/front_end/panels/lighthouse/LighthouseController.ts +5 -3
  46. package/front_end/panels/lighthouse/LighthouseReporterTypes.ts +2 -1
  47. package/front_end/panels/lighthouse/lighthousePanel.css +4 -0
  48. package/front_end/panels/network/components/RequestTrustTokensView.ts +7 -7
  49. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +2 -2
  50. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -1
  51. package/front_end/panels/profiler/ProfileDataGrid.ts +1 -1
  52. package/front_end/panels/security/SecurityPanel.ts +6 -5
  53. package/front_end/panels/settings/SettingsScreen.ts +2 -3
  54. package/front_end/panels/sources/DebuggerPlugin.ts +10 -9
  55. package/front_end/panels/sources/JavaScriptBreakpointsSidebarPane.ts +3 -3
  56. package/front_end/panels/timeline/PerformanceModel.ts +2 -6
  57. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -14
  58. package/front_end/panels/timeline/TimelineUIUtils.ts +14 -12
  59. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1036 -1088
  60. package/front_end/third_party/lighthouse/locales/en-US.json +241 -4
  61. package/front_end/third_party/lighthouse/locales/en-XL.json +241 -4
  62. package/front_end/third_party/lighthouse/report/bundle.d.ts +2 -0
  63. package/front_end/third_party/lighthouse/report/bundle.js +18 -12
  64. package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
  65. package/front_end/third_party/puppeteer/package/README.md +11 -11
  66. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.d.ts.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js +26 -2
  68. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +7 -0
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +2 -2
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +19 -11
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts +2 -2
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js +6 -2
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts +3 -0
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts.map +1 -0
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js +18 -0
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js.map +1 -0
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts +2 -0
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts.map +1 -0
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js +7 -0
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js.map +1 -0
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +2 -0
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts.map +1 -0
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +5 -0
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js.map +1 -0
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.js +2 -15
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts +1 -1
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +23 -15
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +1 -0
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +17 -3
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +1 -6
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/esm/package.json +1 -0
  113. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +3 -2
  115. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +7 -0
  118. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +2 -2
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +19 -11
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +2 -2
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +6 -2
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts +3 -0
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts.map +1 -0
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js +17 -0
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js.map +1 -0
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts +2 -0
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts.map +1 -0
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js +4 -0
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js.map +1 -0
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +2 -0
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts.map +1 -0
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +2 -0
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js.map +1 -0
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -1
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +2 -15
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js.map +1 -1
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +21 -13
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +1 -0
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +17 -3
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +1 -6
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  159. package/front_end/third_party/puppeteer/package/lib/types.d.ts +6 -6
  160. package/front_end/third_party/puppeteer/package/package.json +33 -18
  161. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -1
  162. package/front_end/ui/components/data_grid/DataGrid.ts +1 -1
  163. package/front_end/ui/components/data_grid/DataGridUtils.ts +1 -1
  164. package/front_end/ui/components/docs/linkifier/simple-url.ts +2 -1
  165. package/front_end/ui/components/docs/panel_feedback/basic.ts +3 -2
  166. package/front_end/ui/components/docs/panel_feedback/button.ts +2 -1
  167. package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -3
  168. package/front_end/ui/components/linkifier/LinkifierUtils.ts +2 -3
  169. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +4 -6
  170. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +5 -4
  171. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +4 -4
  172. package/front_end/ui/legacy/EmptyWidget.ts +2 -1
  173. package/front_end/ui/legacy/UIUtils.ts +4 -4
  174. package/front_end/ui/legacy/XLink.ts +12 -13
  175. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -4
  176. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  177. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +0 -2
  178. package/front_end/ui/legacy/components/utils/ImagePreview.ts +3 -7
  179. package/front_end/ui/legacy/components/utils/Linkifier.ts +23 -23
  180. package/front_end/ui/legacy/toolbar.css +1 -1
  181. package/front_end/ui/lit-html/lit-html.ts +3 -0
  182. package/package.json +1 -1
  183. package/scripts/eslint_rules/lib/lit_template_result_or_nothing.js +4 -0
  184. package/scripts/eslint_rules/tests/lit_template_result_or_nothing_test.js +13 -0
  185. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceEventId.md +0 -3
  186. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md +0 -4
  187. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md +0 -4
@@ -147,6 +147,14 @@ const UIStrings = {
147
147
  */
148
148
  automaticDarkMode: 'Automatic dark mode',
149
149
  /**
150
+ *@description Tooltip text that appears when hovering over the css changes button in the Styles Sidebar Pane of the Elements panel
151
+ */
152
+ copyAllCSSChanges: 'Copy all the CSS changes',
153
+ /**
154
+ *@description Tooltip text that appears after clicking on the copy CSS changes button
155
+ */
156
+ copiedToClipboard: 'Copied to clipboard',
157
+ /**
150
158
  *@description Text displayed on layer separators in the styles sidebar pane.
151
159
  */
152
160
  layer: 'Layer',
@@ -207,6 +215,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
207
215
  private readonly imagePreviewPopover: ImagePreviewPopover;
208
216
  activeCSSAngle: InlineEditor.CSSAngle.CSSAngle|null;
209
217
  #urlToChangeTracker: Map<Platform.DevToolsPath.UrlString, ChangeTracker> = new Map();
218
+ #copyChangesButton?: UI.Toolbar.ToolbarButton;
210
219
 
211
220
  static instance(): StylesSidebarPane {
212
221
  if (!stylesSidebarPaneInstance) {
@@ -579,6 +588,11 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
579
588
  if (!this.initialUpdateCompleted) {
580
589
  this.initialUpdateCompleted = true;
581
590
  this.appendToolbarItem(this.createRenderingShortcuts());
591
+ if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.STYLES_PANE_CSS_CHANGES)) {
592
+ this.#copyChangesButton = this.createCopyAllChangesButton();
593
+ this.appendToolbarItem(this.#copyChangesButton);
594
+ this.#copyChangesButton.element.classList.add('hidden');
595
+ }
582
596
  this.dispatchEventToListeners(Events.InitialUpdateCompleted);
583
597
  }
584
598
 
@@ -1109,6 +1123,22 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
1109
1123
  return changedLines.has(formattedLineNumber + 1);
1110
1124
  }
1111
1125
 
1126
+ updateChangeStatus(): void {
1127
+ if (!this.#copyChangesButton) {
1128
+ return;
1129
+ }
1130
+
1131
+ let hasChangedStyles = false;
1132
+ for (const changeTracker of this.#urlToChangeTracker.values()) {
1133
+ if (changeTracker.changedLines.size > 0) {
1134
+ hasChangedStyles = true;
1135
+ break;
1136
+ }
1137
+ }
1138
+
1139
+ this.#copyChangesButton.element.classList.toggle('hidden', !hasChangedStyles);
1140
+ }
1141
+
1112
1142
  private async refreshChangedLines(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<void> {
1113
1143
  const changeTracker = this.#urlToChangeTracker.get(uiSourceCode.url());
1114
1144
  if (!changeTracker) {
@@ -1290,6 +1320,29 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
1290
1320
 
1291
1321
  return button;
1292
1322
  }
1323
+
1324
+ private createCopyAllChangesButton(): UI.Toolbar.ToolbarButton {
1325
+ const copyAllChangesButton =
1326
+ new UI.Toolbar.ToolbarButton(i18nString(UIStrings.copyAllCSSChanges), 'largeicon-copy');
1327
+ // TODO(1296947): implement a dedicated component to share between all copy buttons
1328
+ copyAllChangesButton.element.setAttribute('data-content', i18nString(UIStrings.copiedToClipboard));
1329
+ let timeout: number|undefined;
1330
+ copyAllChangesButton.addEventListener(UI.Toolbar.ToolbarButton.Events.Click, async () => {
1331
+ const allChanges = await this.getFormattedChanges();
1332
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(allChanges);
1333
+ Host.userMetrics.styleTextCopied(Host.UserMetrics.StyleTextCopied.AllChangesViaStylesPane);
1334
+ if (timeout) {
1335
+ clearTimeout(timeout);
1336
+ timeout = undefined;
1337
+ }
1338
+ copyAllChangesButton.element.classList.add('copied-to-clipboard');
1339
+ timeout = window.setTimeout(() => {
1340
+ copyAllChangesButton.element.classList.remove('copied-to-clipboard');
1341
+ timeout = undefined;
1342
+ }, 2000);
1343
+ });
1344
+ return copyAllChangesButton;
1345
+ }
1293
1346
  }
1294
1347
 
1295
1348
  export const enum Events {
@@ -104,7 +104,7 @@ export class QueryContainer extends HTMLElement {
104
104
  // clang-format on
105
105
  }
106
106
 
107
- #renderQueriedSizeDetails(): LitHtml.TemplateResult|{} {
107
+ #renderQueriedSizeDetails(): LitHtml.LitTemplate {
108
108
  if (!this.#queriedSizeDetails || this.#queriedSizeDetails.queryAxis === QueryAxis.None) {
109
109
  return LitHtml.nothing;
110
110
  }
@@ -5,6 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
+ import type * as Platform from '../../core/platform/platform.js';
8
9
  import * as SDK from '../../core/sdk/sdk.js';
9
10
  import type * as IssuesManager from '../../models/issues_manager/issues_manager.js';
10
11
  import * as Logs from '../../models/logs/logs.js';
@@ -44,7 +45,7 @@ export const enum AffectedItem {
44
45
  Source = 'Source',
45
46
  }
46
47
 
47
- export const extractShortPath = (path: string): string => {
48
+ export const extractShortPath = (path: Platform.DevToolsPath.UrlString): string => {
48
49
  // 1st regex matches everything after last '/'
49
50
  // if path ends with '/', 2nd regex returns everything between the last two '/'
50
51
  return (/[^/]+$/.exec(path) || /[^/]+\/$/.exec(path) || [''])[0];
@@ -255,8 +256,8 @@ export abstract class AffectedResourcesView extends UI.TreeOutline.TreeElement {
255
256
  // TODO(crbug.com/1108503): Add some mechanism to be able to add telemetry to this element.
256
257
  const linkifier = new Components.Linkifier.Linkifier(maxLengthForDisplayedURLs);
257
258
  const sourceAnchor = linkifier.linkifyScriptLocation(
258
- target || null, sourceLocation.scriptId || null, sourceLocation.url, sourceLocation.lineNumber,
259
- {columnNumber: sourceLocation.columnNumber, inlineFrameIndex: 0});
259
+ target || null, sourceLocation.scriptId || null, sourceLocation.url as Platform.DevToolsPath.UrlString,
260
+ sourceLocation.lineNumber, {columnNumber: sourceLocation.columnNumber, inlineFrameIndex: 0});
260
261
  sourceCodeLocation.appendChild(sourceAnchor);
261
262
  }
262
263
  element.appendChild(sourceCodeLocation);
@@ -42,7 +42,8 @@ export class AffectedSourcesView extends AffectedResourcesView {
42
42
  // Also, this element has a context menu, so we should be able to
43
43
  // track when the user use the context menu too.
44
44
  // TODO(crbug.com/1108503): Add some mechanism to be able to add telemetry to this element.
45
- const anchorElement = Components.Linkifier.Linkifier.linkifyURL(url, linkifierURLOptions);
45
+ const anchorElement =
46
+ Components.Linkifier.Linkifier.linkifyURL(url as Platform.DevToolsPath.UrlString, linkifierURLOptions);
46
47
  cellElement.appendChild(anchorElement);
47
48
  const rowElement = document.createElement('tr');
48
49
  rowElement.classList.add('affected-resource-source');
@@ -27,21 +27,6 @@ const UIStrings = {
27
27
  * @description Noun, label for the column showing the associated network request in the issue details table.
28
28
  */
29
29
  request: 'Request',
30
- /**
31
- * @description Label for the column showing the invalid value used as the 'attributionsourceeventid' attribute
32
- * on an anchor HTML element ("a link").
33
- */
34
- invalidSourceEventId: 'Invalid `attributionsourceeventid`',
35
- /**
36
- * @description Label for the column showing the invalid value used as the 'attributionexpiry' attribute
37
- * on an anchor HTML element ("a link").
38
- */
39
- invalidSourceExpiry: 'Invalid `attributionexpiry`',
40
- /**
41
- * @description Label for the column showing the invalid value used as the 'attributionpriority' attribute
42
- * on an anchor HTML element ("a link").
43
- */
44
- invalidSourcePriority: 'Invalid `attributionsourcepriority`',
45
30
  /**
46
31
  * @description Label for the column showing the invalid URL used in an HTML anchor element ("a link").
47
32
  * A origin is (roughly said) the front part of a URL.
@@ -89,21 +74,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
89
74
  this.appendColumnTitle(header, i18nString(UIStrings.element));
90
75
  this.appendColumnTitle(header, i18nString(UIStrings.untrustworthyOrigin));
91
76
  break;
92
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceEventId:
93
- this.appendColumnTitle(header, i18nString(UIStrings.frame));
94
- this.appendColumnTitle(header, i18nString(UIStrings.element));
95
- this.appendColumnTitle(header, i18nString(UIStrings.invalidSourceEventId));
96
- break;
97
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceExpiry:
98
- this.appendColumnTitle(header, i18nString(UIStrings.frame));
99
- this.appendColumnTitle(header, i18nString(UIStrings.element));
100
- this.appendColumnTitle(header, i18nString(UIStrings.invalidSourceExpiry));
101
- break;
102
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourcePriority:
103
- this.appendColumnTitle(header, i18nString(UIStrings.frame));
104
- this.appendColumnTitle(header, i18nString(UIStrings.element));
105
- this.appendColumnTitle(header, i18nString(UIStrings.invalidSourcePriority));
106
- break;
107
77
  case IssuesManager.AttributionReportingIssue.IssueCode.PermissionPolicyDisabled:
108
78
  this.appendColumnTitle(header, i18nString(UIStrings.frame));
109
79
  this.appendColumnTitle(header, i18nString(UIStrings.element));
@@ -129,11 +99,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
129
99
  const details = issue.issueDetails;
130
100
 
131
101
  switch (issueCode) {
132
- case IssuesManager.AttributionReportingIssue.IssueCode.AttributionUntrustworthyFrameOrigin:
133
- this.#appendFrameOrEmptyCell(element, issue);
134
- this.#appendRequestOrEmptyCell(element, details.request);
135
- this.appendIssueDetailCell(element, details.invalidParameter || '');
136
- break;
137
102
  case IssuesManager.AttributionReportingIssue.IssueCode.AttributionSourceUntrustworthyOrigin:
138
103
  await this.#appendElementOrEmptyCell(element, issue);
139
104
  this.appendIssueDetailCell(element, details.invalidParameter || '');
@@ -142,14 +107,6 @@ export class AttributionReportingIssueDetailsView extends AffectedResourcesView
142
107
  this.#appendRequestOrEmptyCell(element, details.request);
143
108
  this.appendIssueDetailCell(element, details.invalidParameter || '');
144
109
  break;
145
- case IssuesManager.AttributionReportingIssue.IssueCode.AttributionSourceUntrustworthyFrameOrigin:
146
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceEventId:
147
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourceExpiry:
148
- case IssuesManager.AttributionReportingIssue.IssueCode.InvalidAttributionSourcePriority:
149
- this.#appendFrameOrEmptyCell(element, issue);
150
- await this.#appendElementOrEmptyCell(element, issue);
151
- this.appendIssueDetailCell(element, details.invalidParameter || '');
152
- break;
153
110
  case IssuesManager.AttributionReportingIssue.IssueCode.PermissionPolicyDisabled:
154
111
  this.#appendFrameOrEmptyCell(element, issue);
155
112
  await this.#appendElementOrEmptyCell(element, issue);
@@ -181,7 +181,7 @@ class AffectedMixedContentView extends AffectedResourcesView {
181
181
  },
182
182
  }));
183
183
  } else {
184
- const filename = extractShortPath(mixedContent.insecureURL);
184
+ const filename = extractShortPath(mixedContent.insecureURL as Platform.DevToolsPath.UrlString);
185
185
  const cell = this.appendIssueDetailCell(element, filename, 'affected-resource-mixed-content-info');
186
186
  cell.title = mixedContent.insecureURL;
187
187
  }
@@ -4,6 +4,7 @@
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
+ import type * as Platform from '../../core/platform/platform.js';
7
8
  import * as SDK from '../../core/sdk/sdk.js';
8
9
  import * as Protocol from '../../generated/protocol.js';
9
10
 
@@ -508,7 +509,7 @@ export const RuntimeSettings: RuntimeSetting[] = [
508
509
  value: 'snapshot',
509
510
  },
510
511
  ],
511
- learnMore: 'https://web.dev/lighthouse-user-flows/',
512
+ learnMore: 'https://web.dev/lighthouse-user-flows/' as Platform.DevToolsPath.UrlString,
512
513
  },
513
514
  {
514
515
  // This setting is disabled, but we keep it around to show in the UI.
@@ -517,7 +518,8 @@ export const RuntimeSettings: RuntimeSetting[] = [
517
518
  title: i18nLazyString(UIStrings.simulatedThrottling),
518
519
  // We will disable this when we have a Lantern trace viewer within DevTools.
519
520
  learnMore:
520
- 'https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#devtools-lighthouse-panel-throttling',
521
+ 'https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#devtools-lighthouse-panel-throttling' as
522
+ Platform.DevToolsPath.UrlString,
521
523
  description: i18nLazyString(UIStrings.simulateASlowerPageLoadBasedOn),
522
524
  setFlags: (flags: Flags, value: string|boolean): void => {
523
525
  flags.throttlingMethod = value ? 'simulate' : 'devtools';
@@ -600,5 +602,5 @@ export interface RuntimeSetting {
600
602
  tooltip?: () => Common.UIString.LocalizedString,
601
603
  }[];
602
604
  title?: () => Common.UIString.LocalizedString;
603
- learnMore?: string;
605
+ learnMore?: Platform.DevToolsPath.UrlString;
604
606
  }
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import type * as Platform from '../../core/platform/platform.js';
5
6
  import type * as SDK from '../../core/sdk/sdk.js';
6
7
 
7
8
  export class LighthouseReportGenerator {
@@ -80,7 +81,7 @@ export interface NodeDetailsJSON {
80
81
  snippet?: string;
81
82
  }
82
83
  export interface SourceLocationDetailsJSON {
83
- sourceUrl?: string;
84
+ sourceUrl?: Platform.DevToolsPath.UrlString;
84
85
  sourceLine?: string;
85
86
  sourceColumn?: string;
86
87
  }
@@ -50,3 +50,7 @@ button.view-trace {
50
50
  .lighthouse-toolbar-container > :first-child {
51
51
  flex: 1 1 auto;
52
52
  }
53
+
54
+ .lh-devtools .lh-element-screenshot__overlay {
55
+ position: absolute;
56
+ }
@@ -150,7 +150,7 @@ export class RequestTrustTokensReport extends HTMLElement {
150
150
  // clang-format on
151
151
  }
152
152
 
153
- #renderParameterSection(): LitHtml.TemplateResult|{} {
153
+ #renderParameterSection(): LitHtml.LitTemplate {
154
154
  if (!this.#trustTokenData || !this.#trustTokenData.params) {
155
155
  return LitHtml.nothing;
156
156
  }
@@ -167,14 +167,14 @@ export class RequestTrustTokensReport extends HTMLElement {
167
167
  `;
168
168
  }
169
169
 
170
- #renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
170
+ #renderRefreshPolicy(params: Protocol.Network.TrustTokenParams): LitHtml.LitTemplate {
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
- #renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.TemplateResult|{} {
177
+ #renderIssuers(params: Protocol.Network.TrustTokenParams): LitHtml.LitTemplate {
178
178
  if (!params.issuers || params.issuers.length === 0) {
179
179
  return LitHtml.nothing;
180
180
  }
@@ -193,7 +193,7 @@ 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
- #renderIssuerAndTopLevelOriginFromResult(): LitHtml.TemplateResult|{} {
196
+ #renderIssuerAndTopLevelOriginFromResult(): LitHtml.LitTemplate {
197
197
  if (!this.#trustTokenData || !this.#trustTokenData.result) {
198
198
  return LitHtml.nothing;
199
199
  }
@@ -203,7 +203,7 @@ export class RequestTrustTokensReport extends HTMLElement {
203
203
  ${renderSimpleRowIfValuePresent(i18nString(UIStrings.issuer), this.#trustTokenData.result.issuerOrigin)}`;
204
204
  }
205
205
 
206
- #renderResultSection(): LitHtml.TemplateResult|{} {
206
+ #renderResultSection(): LitHtml.LitTemplate {
207
207
  if (!this.#trustTokenData || !this.#trustTokenData.result) {
208
208
  return LitHtml.nothing;
209
209
  }
@@ -227,7 +227,7 @@ export class RequestTrustTokensReport extends HTMLElement {
227
227
  `;
228
228
  }
229
229
 
230
- #renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.TemplateResult|{} {
230
+ #renderIssuedTokenCount(result: Protocol.Network.TrustTokenOperationDoneEvent): LitHtml.LitTemplate {
231
231
  if (result.type !== Protocol.Network.TrustTokenOperationType.Issuance) {
232
232
  return LitHtml.nothing;
233
233
  }
@@ -284,7 +284,7 @@ function getDetailedTextForStatusCode(status: Protocol.Network.TrustTokenOperati
284
284
  }
285
285
  }
286
286
 
287
- function renderSimpleRowIfValuePresent<T>(key: string, value: T|undefined): LitHtml.TemplateResult|{} {
287
+ function renderSimpleRowIfValuePresent<T>(key: string, value: T|undefined): LitHtml.LitTemplate {
288
288
  if (value === undefined) {
289
289
  return LitHtml.nothing;
290
290
  }
@@ -1299,8 +1299,8 @@ export class AllocationGridNode extends HeapSnapshotGridNode {
1299
1299
  const linkifier = (this.dataGridInternal as AllocationDataGrid).linkifier;
1300
1300
  const urlElement = linkifier.linkifyScriptLocation(
1301
1301
  heapProfilerModel ? heapProfilerModel.target() : null,
1302
- String(allocationNode.scriptId) as Protocol.Runtime.ScriptId, allocationNode.scriptName,
1303
- allocationNode.line - 1, {
1302
+ String(allocationNode.scriptId) as Protocol.Runtime.ScriptId,
1303
+ allocationNode.scriptName as Platform.DevToolsPath.UrlString, allocationNode.line - 1, {
1304
1304
  columnNumber: allocationNode.column - 1,
1305
1305
  inlineFrameIndex: 0,
1306
1306
  className: 'profile-node-file',
@@ -1904,7 +1904,8 @@ export class HeapAllocationStackView extends UI.Widget.Widget {
1904
1904
  const target = this.heapProfilerModel ? this.heapProfilerModel.target() : null;
1905
1905
  const options = {columnNumber: frame.column - 1, inlineFrameIndex: 0};
1906
1906
  const urlElement = this.linkifier.linkifyScriptLocation(
1907
- target, String(frame.scriptId) as Protocol.Runtime.ScriptId, frame.scriptName, frame.line - 1, options);
1907
+ target, String(frame.scriptId) as Protocol.Runtime.ScriptId,
1908
+ frame.scriptName as Platform.DevToolsPath.UrlString, frame.line - 1, options);
1908
1909
  frameDiv.appendChild(urlElement);
1909
1910
  stackFrameToURLElement.set(frameDiv, urlElement);
1910
1911
  frameDiv.addEventListener('contextmenu', this.onContextMenu.bind(this, urlElement));
@@ -65,7 +65,7 @@ export class ProfileDataGridNode extends DataGrid.DataGrid.DataGridNode<unknown>
65
65
  total: number;
66
66
  functionName: string;
67
67
  readonly deoptReason: string;
68
- url: string;
68
+ url: Platform.DevToolsPath.UrlString;
69
69
  linkElement: Element|null;
70
70
  populated: boolean;
71
71
  savedSelf?: number;
@@ -5,6 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
+ import type * as Platform from '../../core/platform/platform.js';
8
9
  import * as SDK from '../../core/sdk/sdk.js';
9
10
  import * as Protocol from '../../generated/protocol.js';
10
11
  import * as NetworkForward from '../../panels/network/forward/forward.js';
@@ -513,7 +514,7 @@ export class SecurityPanel extends UI.Panel.PanelWithSidebar implements
513
514
  return certificateButton;
514
515
  }
515
516
 
516
- static createHighlightedUrl(url: string, securityState: string): Element {
517
+ static createHighlightedUrl(url: Platform.DevToolsPath.UrlString, securityState: string): Element {
517
518
  const schemeSeparator = '://';
518
519
  const index = url.indexOf(schemeSeparator);
519
520
 
@@ -548,7 +549,7 @@ export class SecurityPanel extends UI.Panel.PanelWithSidebar implements
548
549
  // The sidebar element will trigger displaying the main view. Rather than making a redundant call to display the main view, we rely on this.
549
550
  this.sidebarMainViewElement.select(true);
550
551
  }
551
- showOrigin(origin: string): void {
552
+ showOrigin(origin: Platform.DevToolsPath.UrlString): void {
552
553
  const originState = this.origins.get(origin);
553
554
  if (!originState) {
554
555
  return;
@@ -820,7 +821,7 @@ export class SecurityPanelSidebarTree extends UI.TreeOutline.TreeOutlineInShadow
820
821
  }
821
822
  }
822
823
 
823
- addOrigin(origin: string, securityState: Protocol.Security.SecurityState): void {
824
+ addOrigin(origin: Platform.DevToolsPath.UrlString, securityState: Protocol.Security.SecurityState): void {
824
825
  const originElement = new SecurityPanelSidebarTreeElement(
825
826
  SecurityPanel.createHighlightedUrl(origin, securityState), this.showOriginInPanel.bind(this, origin),
826
827
  'security-sidebar-tree-item', 'security-property');
@@ -1394,7 +1395,7 @@ export class SecurityMainView extends UI.Widget.VBox {
1394
1395
  export class SecurityOriginView extends UI.Widget.VBox {
1395
1396
  private readonly panel: SecurityPanel;
1396
1397
  private readonly originLockIcon: HTMLElement;
1397
- constructor(panel: SecurityPanel, origin: string, originState: OriginState) {
1398
+ constructor(panel: SecurityPanel, origin: Platform.DevToolsPath.UrlString, originState: OriginState) {
1398
1399
  super();
1399
1400
  this.panel = panel;
1400
1401
  this.setMinimumSize(200, 100);
@@ -1657,4 +1658,4 @@ export interface OriginState {
1657
1658
  originView?: SecurityOriginView|null;
1658
1659
  }
1659
1660
 
1660
- export type Origin = string;
1661
+ export type Origin = Platform.DevToolsPath.UrlString;
@@ -511,9 +511,8 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
511
511
  return true;
512
512
  // TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
513
513
  case 'settings.documentation':
514
- Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(
515
- UI.UIUtils.addReferrerToURL('https://developer.chrome.com/docs/devtools/') as
516
- Platform.DevToolsPath.UrlString);
514
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(UI.UIUtils.addReferrerToURL(
515
+ 'https://developer.chrome.com/docs/devtools/' as Platform.DevToolsPath.UrlString));
517
516
  return true;
518
517
  case 'settings.shortcuts':
519
518
  void SettingsScreen.showSettingsScreen({name: 'keybinds', focusTabHeader: true});
@@ -441,7 +441,7 @@ export class DebuggerPlugin extends Plugin {
441
441
  } else {
442
442
  const removeTitle = i18nString(UIStrings.removeBreakpoint, {n: breakpoints.length});
443
443
  contextMenu.debugSection().appendItem(
444
- removeTitle, () => breakpoints.forEach(breakpoint => breakpoint.remove(false)));
444
+ removeTitle, () => breakpoints.forEach(breakpoint => void breakpoint.remove(false)));
445
445
  if (breakpoints.length === 1 && supportsConditionalBreakpoints) {
446
446
  // Editing breakpoints only make sense for conditional breakpoints
447
447
  // and logpoints and both are currently only available for JavaScript
@@ -520,7 +520,7 @@ export class DebuggerPlugin extends Plugin {
520
520
  if (value !== this.muted) {
521
521
  this.muted = value;
522
522
  if (!value) {
523
- this.restoreBreakpointsAfterEditing();
523
+ void this.restoreBreakpointsAfterEditing();
524
524
  } else if (this.editor) {
525
525
  this.editor.dispatch({effects: muteBreakpoints.of(null)});
526
526
  }
@@ -1221,18 +1221,19 @@ export class DebuggerPlugin extends Plugin {
1221
1221
  // breakpoints the breakpoint manager might have (which point into
1222
1222
  // the old file) with the breakpoints we have, which had their
1223
1223
  // positions tracked through the changes.
1224
- private restoreBreakpointsAfterEditing(): void {
1224
+ private async restoreBreakpointsAfterEditing(): Promise<void> {
1225
1225
  const {breakpoints} = this;
1226
1226
  const editor = this.editor as TextEditor.TextEditor.TextEditor;
1227
1227
  this.breakpoints = [];
1228
- for (const {breakpoint, position} of breakpoints) {
1228
+ await Promise.all(breakpoints.map(async description => {
1229
+ const {breakpoint, position} = description;
1229
1230
  const condition = breakpoint.condition(), enabled = breakpoint.enabled();
1230
- breakpoint.remove(false);
1231
+ await breakpoint.remove(false);
1231
1232
  const editorLocation = editor.toLineColumn(position);
1232
1233
  const uiLocation =
1233
1234
  this.transformer.editorLocationToUILocation(editorLocation.lineNumber, editorLocation.columnNumber);
1234
- void this.setBreakpoint(uiLocation.lineNumber, uiLocation.columnNumber, condition, enabled);
1235
- }
1235
+ await this.setBreakpoint(uiLocation.lineNumber, uiLocation.columnNumber, condition, enabled);
1236
+ }));
1236
1237
  }
1237
1238
 
1238
1239
  private async refreshBreakpoints(): Promise<void> {
@@ -1269,7 +1270,7 @@ export class DebuggerPlugin extends Plugin {
1269
1270
  if (event.shiftKey) {
1270
1271
  breakpoint.setEnabled(!breakpoint.enabled());
1271
1272
  } else {
1272
- breakpoint.remove(false);
1273
+ void breakpoint.remove(false);
1273
1274
  }
1274
1275
  } else if (this.editor) {
1275
1276
  const editorLocation = this.editor.editor.posAtDOM(event.target as unknown as HTMLElement);
@@ -1444,7 +1445,7 @@ export class DebuggerPlugin extends Plugin {
1444
1445
  if (onlyDisable) {
1445
1446
  breakpoint.setEnabled(hasDisabled);
1446
1447
  } else {
1447
- breakpoint.remove(false);
1448
+ void breakpoint.remove(false);
1448
1449
  }
1449
1450
  }
1450
1451
  }
@@ -426,7 +426,7 @@ export class JavaScriptBreakpointsSidebarPane extends UI.ThrottledWidget.Throttl
426
426
  const removeEntryTitle = breakpoints.length > 1 ? i18nString(UIStrings.removeAllBreakpointsInLine) :
427
427
  i18nString(UIStrings.removeBreakpoint);
428
428
  contextMenu.defaultSection().appendItem(
429
- removeEntryTitle, () => breakpoints.map(breakpoint => breakpoint.remove(false /* keepInStorage */)));
429
+ removeEntryTitle, () => breakpoints.map(breakpoint => void breakpoint.remove(false /* keepInStorage */)));
430
430
  if (event.target instanceof Element) {
431
431
  contextMenu.defaultSection().appendItem(
432
432
  i18nString(UIStrings.revealLocation), this.revealLocation.bind(this, event.target));
@@ -487,14 +487,14 @@ export class JavaScriptBreakpointsSidebarPane extends UI.ThrottledWidget.Throttl
487
487
 
488
488
  private removeAllBreakpoints(): void {
489
489
  for (const breakpointLocation of this.breakpointManager.allBreakpointLocations()) {
490
- breakpointLocation.breakpoint.remove(false /* keepInStorage */);
490
+ void breakpointLocation.breakpoint.remove(false /* keepInStorage */);
491
491
  }
492
492
  }
493
493
 
494
494
  private removeOtherBreakpoints(selectedBreakpoints: Set<Bindings.BreakpointManager.Breakpoint>): void {
495
495
  for (const breakpointLocation of this.breakpointManager.allBreakpointLocations()) {
496
496
  if (!selectedBreakpoints.has(breakpointLocation.breakpoint)) {
497
- breakpointLocation.breakpoint.remove(false /* keepInStorage */);
497
+ void breakpointLocation.breakpoint.remove(false /* keepInStorage */);
498
498
  }
499
499
  }
500
500
  }
@@ -75,18 +75,14 @@ export class PerformanceModel extends Common.ObjectWrapper.ObjectWrapper<EventTy
75
75
  this.tracingModelInternal = model;
76
76
  this.timelineModelInternal.setEvents(model);
77
77
 
78
- let inputEvents: SDK.TracingModel.AsyncEvent[]|null = null;
79
78
  let animationEvents: SDK.TracingModel.AsyncEvent[]|null = null;
80
79
  for (const track of this.timelineModelInternal.tracks()) {
81
- if (track.type === TimelineModel.TimelineModel.TrackType.Input) {
82
- inputEvents = track.asyncEvents;
83
- }
84
80
  if (track.type === TimelineModel.TimelineModel.TrackType.Animation) {
85
81
  animationEvents = track.asyncEvents;
86
82
  }
87
83
  }
88
- if (inputEvents || animationEvents) {
89
- this.irModel.populate(inputEvents || [], animationEvents || []);
84
+ if (animationEvents) {
85
+ this.irModel.populate([], animationEvents || []);
90
86
  }
91
87
 
92
88
  const mainTracks = this.timelineModelInternal.tracks().filter(
@@ -54,10 +54,6 @@ const UIStrings = {
54
54
  */
55
55
  onIgnoreList: 'On ignore list',
56
56
  /**
57
- *@description Text in Timeline Flame Chart Data Provider of the Performance panel
58
- */
59
- input: 'Input',
60
- /**
61
57
  *@description Text that refers to the animation of the web page
62
58
  */
63
59
  animation: 'Animation',
@@ -428,10 +424,8 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
428
424
 
429
425
  const eventEntryType = EntryType.Event;
430
426
 
431
- const weight = (track: TimelineModel.TimelineModel.Track): 0|1|2|3|4|5|6|7|8|9|10|- 1 => {
427
+ const weight = (track: TimelineModel.TimelineModel.Track): 1|2|3|4|5|6|7|8|9|10|- 1 => {
432
428
  switch (track.type) {
433
- case TimelineModel.TimelineModel.TrackType.Input:
434
- return 0;
435
429
  case TimelineModel.TimelineModel.TrackType.Animation:
436
430
  return 1;
437
431
  case TimelineModel.TimelineModel.TrackType.Timings:
@@ -464,13 +458,6 @@ export class TimelineFlameChartDataProvider extends Common.ObjectWrapper.ObjectW
464
458
  let rasterCount = 0;
465
459
  for (const track of tracks) {
466
460
  switch (track.type) {
467
- case TimelineModel.TimelineModel.TrackType.Input: {
468
- this.appendAsyncEventsGroup(
469
- track, i18nString(UIStrings.input), track.asyncEvents, this.interactionsHeaderLevel2, eventEntryType,
470
- false /* selectable */);
471
- break;
472
- }
473
-
474
461
  case TimelineModel.TimelineModel.TrackType.Animation: {
475
462
  this.appendAsyncEventsGroup(
476
463
  track, i18nString(UIStrings.animation), track.asyncEvents, this.interactionsHeaderLevel2, eventEntryType,