chrome-devtools-frontend 1.0.1549484 → 1.0.1550444

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 (196) hide show
  1. package/docs/styleguide/ux/components.md +53 -12
  2. package/docs/styleguide/ux/images/cards.png +0 -0
  3. package/docs/ui_engineering.md +2 -2
  4. package/front_end/core/sdk/NetworkManager.ts +12 -10
  5. package/front_end/core/sdk/PageResourceLoader.ts +8 -1
  6. package/front_end/core/sdk/SourceMapManager.ts +12 -6
  7. package/front_end/entrypoints/main/MainImpl.ts +0 -9
  8. package/front_end/foundation/Universe.ts +7 -0
  9. package/front_end/generated/InspectorBackendCommands.ts +5 -2
  10. package/front_end/generated/protocol-mapping.d.ts +8 -0
  11. package/front_end/generated/protocol-proxy-api.d.ts +6 -0
  12. package/front_end/generated/protocol.ts +76 -0
  13. package/front_end/models/ai_assistance/BuiltInAi.ts +79 -5
  14. package/front_end/models/issues_manager/AttributionReportingIssue.ts +6 -8
  15. package/front_end/models/issues_manager/BounceTrackingIssue.ts +4 -14
  16. package/front_end/models/issues_manager/ClientHintIssue.ts +5 -12
  17. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -12
  18. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +7 -14
  19. package/front_end/models/issues_manager/CookieIssue.ts +27 -30
  20. package/front_end/models/issues_manager/CorsIssue.ts +8 -17
  21. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -8
  22. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -14
  23. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +7 -14
  24. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +4 -11
  25. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +4 -11
  26. package/front_end/models/issues_manager/GenericIssue.ts +11 -16
  27. package/front_end/models/issues_manager/HeavyAdIssue.ts +4 -11
  28. package/front_end/models/issues_manager/Issue.ts +12 -4
  29. package/front_end/models/issues_manager/IssueAggregator.ts +8 -2
  30. package/front_end/models/issues_manager/LowTextContrastIssue.ts +3 -10
  31. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -13
  32. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +4 -11
  33. package/front_end/models/issues_manager/PropertyRuleIssue.ts +6 -12
  34. package/front_end/models/issues_manager/QuirksModeIssue.ts +3 -10
  35. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +7 -13
  36. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +4 -11
  37. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +6 -13
  38. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +8 -13
  39. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +2 -9
  40. package/front_end/models/javascript_metadata/NativeFunctions.js +0 -13
  41. package/front_end/panels/application/AppManifestView.ts +4 -4
  42. package/front_end/panels/application/ApplicationPanelSidebar.ts +21 -21
  43. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  44. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  45. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  46. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -2
  47. package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
  48. package/front_end/panels/application/PreloadingTreeElement.ts +3 -3
  49. package/front_end/panels/application/ReportingApiTreeElement.ts +2 -2
  50. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +3 -3
  51. package/front_end/panels/application/SharedStorageListTreeElement.ts +2 -2
  52. package/front_end/panels/application/StorageBucketsTreeElement.ts +3 -3
  53. package/front_end/panels/application/StorageView.ts +2 -2
  54. package/front_end/panels/application/TrustTokensTreeElement.ts +2 -2
  55. package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -1
  56. package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
  57. package/front_end/panels/application/components/SharedStorageMetadataView.ts +1 -1
  58. package/front_end/panels/application/components/TrustTokensView.ts +1 -1
  59. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
  60. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +1 -1
  61. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +1 -1
  62. package/front_end/panels/changes/ChangesSidebar.ts +2 -0
  63. package/front_end/panels/changes/CombinedDiffView.ts +2 -0
  64. package/front_end/panels/common/AnnotationManager.ts +71 -0
  65. package/front_end/panels/common/PersistenceUtils.ts +6 -7
  66. package/front_end/panels/common/common.ts +1 -0
  67. package/front_end/panels/console/ConsolePrompt.ts +4 -4
  68. package/front_end/panels/console/ConsoleView.ts +2 -2
  69. package/front_end/panels/console/ConsoleViewMessage.ts +10 -11
  70. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -0
  71. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  72. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
  73. package/front_end/panels/elements/ElementsPanel.ts +49 -0
  74. package/front_end/panels/elements/ElementsTreeElement.ts +156 -108
  75. package/front_end/panels/elements/ElementsTreeOutline.ts +9 -2
  76. package/front_end/panels/elements/ShortcutTreeElement.ts +2 -2
  77. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  78. package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -6
  79. package/front_end/panels/elements/StylesSidebarPane.ts +4 -5
  80. package/front_end/panels/elements/TopLayerContainer.ts +2 -2
  81. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  82. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  83. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  84. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -1
  85. package/front_end/panels/emulation/DeviceModeWrapper.ts +48 -3
  86. package/front_end/panels/explain/components/ConsoleInsight.ts +6 -4
  87. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  88. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +2 -2
  89. package/front_end/panels/issues/IssueKindView.ts +2 -2
  90. package/front_end/panels/issues/IssueView.ts +4 -4
  91. package/front_end/panels/js_timeline/js_timeline-meta.ts +4 -2
  92. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +1 -1
  93. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -1
  94. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  95. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  96. package/front_end/panels/media/PlayerListView.ts +1 -1
  97. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
  98. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +2 -3
  99. package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
  100. package/front_end/panels/network/NetworkFrameGrouper.ts +2 -2
  101. package/front_end/panels/network/NetworkItemView.ts +4 -4
  102. package/front_end/panels/network/NetworkLogViewColumns.ts +3 -3
  103. package/front_end/panels/network/RequestCookiesView.ts +2 -2
  104. package/front_end/panels/network/SignedExchangeInfoView.ts +2 -2
  105. package/front_end/panels/network/components/RequestTrustTokensView.ts +5 -6
  106. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
  107. package/front_end/panels/profiler/ProfileDataGrid.ts +2 -2
  108. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  109. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  110. package/front_end/panels/recorder/components/CreateRecordingView.ts +1 -1
  111. package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
  112. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  113. package/front_end/panels/recorder/components/RecordingView.ts +1 -1
  114. package/front_end/panels/recorder/components/StepView.ts +1 -1
  115. package/front_end/panels/screencast/ScreencastView.ts +8 -8
  116. package/front_end/panels/search/SearchView.ts +1 -1
  117. package/front_end/panels/security/CookieControlsTreeElement.ts +2 -2
  118. package/front_end/panels/security/CookieReportTreeElement.ts +2 -2
  119. package/front_end/panels/security/SecurityPanel.ts +5 -5
  120. package/front_end/panels/security/SecurityPanelSidebar.ts +3 -4
  121. package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -4
  122. package/front_end/panels/settings/SettingsScreen.ts +2 -3
  123. package/front_end/panels/snippets/SnippetsQuickOpen.ts +16 -8
  124. package/front_end/panels/sources/BreakpointEditDialog.ts +3 -3
  125. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  126. package/front_end/panels/sources/CSSPlugin.ts +3 -3
  127. package/front_end/panels/sources/CallStackSidebarPane.ts +4 -4
  128. package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
  129. package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +39 -30
  130. package/front_end/panels/sources/GoToLineQuickOpen.ts +11 -7
  131. package/front_end/panels/sources/NavigatorView.ts +2 -2
  132. package/front_end/panels/sources/OpenFileQuickOpen.ts +11 -15
  133. package/front_end/panels/sources/OutlineQuickOpen.ts +23 -26
  134. package/front_end/panels/sources/SourcesView.ts +2 -2
  135. package/front_end/panels/sources/TabbedEditorContainer.ts +4 -5
  136. package/front_end/panels/sources/ThreadsSidebarPane.ts +2 -2
  137. package/front_end/panels/sources/UISourceCodeFrame.ts +5 -5
  138. package/front_end/panels/timeline/TimelineHistoryManager.ts +2 -2
  139. package/front_end/panels/timeline/TimelinePanel.ts +14 -9
  140. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
  141. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  142. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
  143. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +1 -1
  144. package/front_end/panels/timeline/components/OriginMap.ts +1 -1
  145. package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
  146. package/front_end/panels/timeline/components/insights/DOMSize.ts +1 -1
  147. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -1
  148. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
  149. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  150. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  151. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  152. package/front_end/panels/utils/utils.ts +1 -0
  153. package/front_end/third_party/chromium/README.chromium +1 -1
  154. package/front_end/ui/components/adorners/Adorner.ts +20 -0
  155. package/front_end/ui/components/annotations/AnnotationRepository.ts +1 -1
  156. package/front_end/ui/components/buttons/Button.ts +1 -1
  157. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  158. package/front_end/ui/components/highlighting/HighlightElement.ts +15 -2
  159. package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
  160. package/front_end/ui/components/icon_button/IconButton.ts +1 -1
  161. package/front_end/ui/components/icon_button/icon_button.ts +0 -2
  162. package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
  163. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +1 -1
  164. package/front_end/ui/components/markdown_view/MarkdownImage.ts +3 -3
  165. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -1
  166. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +1 -1
  167. package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
  168. package/front_end/ui/components/text_editor/config.ts +2 -2
  169. package/front_end/ui/kit/cards/Card.docs.ts +43 -0
  170. package/front_end/ui/{components/icon_button → kit/icons}/Icon.docs.ts +3 -4
  171. package/front_end/ui/{components/icon_button → kit/icons}/Icon.ts +4 -4
  172. package/front_end/ui/kit/kit.ts +1 -0
  173. package/front_end/ui/legacy/Infobar.ts +3 -3
  174. package/front_end/ui/legacy/InspectorView.ts +3 -3
  175. package/front_end/ui/legacy/SearchableView.ts +2 -2
  176. package/front_end/ui/legacy/SoftContextMenu.ts +5 -5
  177. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  178. package/front_end/ui/legacy/TabbedPane.ts +9 -9
  179. package/front_end/ui/legacy/Toolbar.ts +3 -3
  180. package/front_end/ui/legacy/Treeoutline.ts +2 -2
  181. package/front_end/ui/legacy/UIUtils.ts +4 -4
  182. package/front_end/ui/legacy/ViewManager.ts +4 -4
  183. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +8 -8
  184. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +4 -4
  185. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +4 -4
  186. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +2 -2
  187. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -5
  188. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  189. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  190. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +22 -29
  191. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +8 -15
  192. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +11 -14
  193. package/front_end/ui/legacy/components/utils/Linkifier.ts +3 -3
  194. package/mcp/mcp.ts +1 -0
  195. package/package.json +1 -1
  196. /package/front_end/ui/{components/icon_button → kit/icons}/icon.css +0 -0
@@ -2,11 +2,14 @@
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 '../../ui/kit/kit.js';
6
+ import '../../ui/components/highlighting/highlighting.js';
7
+
5
8
  import * as i18n from '../../core/i18n/i18n.js';
6
9
  import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
7
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
8
10
  import * as QuickOpen from '../../ui/legacy/components/quick_open/quick_open.js';
9
11
  import * as UI from '../../ui/legacy/legacy.js';
12
+ import {html, nothing, type TemplateResult} from '../../ui/lit/lit.js';
10
13
 
11
14
  import {SourcesView} from './SourcesView.js';
12
15
  import type {UISourceCodeFrame} from './UISourceCodeFrame.js';
@@ -317,34 +320,28 @@ export class OutlineQuickOpen extends QuickOpen.FilteredListWidget.Provider {
317
320
  return -item.lineNumber - 1;
318
321
  }
319
322
 
320
- override renderItem(itemIndex: number, query: string, wrapperElement: Element): void {
323
+ override renderItem(itemIndex: number, query: string): TemplateResult {
321
324
  const item = this.items[itemIndex];
322
- const itemElement = wrapperElement.createChild('div');
323
- const titleElement = itemElement.createChild('div');
324
-
325
- const icon = IconButton.Icon.create('deployed');
326
- wrapperElement.insertBefore(icon, itemElement);
327
- titleElement.textContent = item.title + (item.subtitle ? item.subtitle : '');
328
- QuickOpen.FilteredListWidget.FilteredListWidget.highlightRanges(titleElement, query);
329
-
325
+ let location: string|undefined;
330
326
  const sourceFrame = this.currentSourceFrame();
331
- if (!sourceFrame) {
332
- return;
333
- }
334
-
335
- const tagElement = wrapperElement.createChild('span', 'tag');
336
- if (!tagElement) {
337
- return;
338
- }
339
-
340
- const disassembly = sourceFrame.wasmDisassembly;
341
- if (disassembly) {
342
- const lastBytecodeOffset = disassembly.lineNumberToBytecodeOffset(disassembly.lineNumbers - 1);
343
- const bytecodeOffsetDigits = lastBytecodeOffset.toString(16).length;
344
- tagElement.textContent = `:0x${item.columnNumber.toString(16).padStart(bytecodeOffsetDigits, '0')}`;
345
- } else {
346
- tagElement.textContent = `:${item.lineNumber + 1}`;
327
+ if (sourceFrame) {
328
+ const disassembly = sourceFrame.wasmDisassembly;
329
+ if (disassembly) {
330
+ const lastBytecodeOffset = disassembly.lineNumberToBytecodeOffset(disassembly.lineNumbers - 1);
331
+ const bytecodeOffsetDigits = lastBytecodeOffset.toString(16).length;
332
+ location = `:0x${item.columnNumber.toString(16).padStart(bytecodeOffsetDigits, '0')}`;
333
+ } else {
334
+ location = `:${item.lineNumber + 1}`;
335
+ }
347
336
  }
337
+ const title = item.title + (item.subtitle ? item.subtitle : '');
338
+ const highlightRanges = QuickOpen.FilteredListWidget.FilteredListWidget.getHighlightRanges(title, query, true);
339
+ // clang-format off
340
+ return html`
341
+ <devtools-icon name="deployed"></devtools-icon>
342
+ <div><devtools-highlight type="markup" ranges=${highlightRanges}>${title}</devtools-highlight></div>
343
+ ${location ? html`<span class="tag">${location}</span>` : nothing}`;
344
+ // clang-format on
348
345
  }
349
346
 
350
347
  override selectItem(itemIndex: number|null, _promptValue: string): void {
@@ -13,7 +13,7 @@ import * as SDK from '../../core/sdk/sdk.js';
13
13
  import * as Bindings from '../../models/bindings/bindings.js';
14
14
  import * as Persistence from '../../models/persistence/persistence.js';
15
15
  import * as Workspace from '../../models/workspace/workspace.js';
16
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
16
+ import {createIcon} from '../../ui/kit/kit.js';
17
17
  import * as QuickOpen from '../../ui/legacy/components/quick_open/quick_open.js';
18
18
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
19
19
  import * as UI from '../../ui/legacy/legacy.js';
@@ -149,7 +149,7 @@ export class SourcesView extends Common.ObjectWrapper.eventMixin<EventTypes, typ
149
149
  const workspaceElement = placeholder.createChild('div', 'tabbed-pane-placeholder-row');
150
150
  workspaceElement.classList.add('workspace');
151
151
 
152
- const icon = IconButton.Icon.create('sync', 'sync-icon');
152
+ const icon = createIcon('sync', 'sync-icon');
153
153
  workspaceElement.createChild('span', 'icon-container').appendChild(icon);
154
154
  const text = workspaceElement.createChild('span');
155
155
  text.textContent = UIStrings.workspaceDropInAFolderToSyncSources;
@@ -1,7 +1,6 @@
1
1
  // Copyright 2011 The Chromium Authors
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
- /* eslint-disable @devtools/no-imperative-dom-api */
5
4
 
6
5
  import * as Common from '../../core/common/common.js';
7
6
  import * as i18n from '../../core/i18n/i18n.js';
@@ -10,9 +9,9 @@ import * as Persistence from '../../models/persistence/persistence.js';
10
9
  import * as TextUtils from '../../models/text_utils/text_utils.js';
11
10
  import * as Workspace from '../../models/workspace/workspace.js';
12
11
  import type * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
13
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
14
12
  import * as Tooltips from '../../ui/components/tooltips/tooltips.js';
15
13
  import * as uiI18n from '../../ui/i18n/i18n.js';
14
+ import {Icon} from '../../ui/kit/kit.js';
16
15
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
17
16
  import * as UI from '../../ui/legacy/legacy.js';
18
17
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
@@ -527,7 +526,7 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
527
526
  }
528
527
 
529
528
  private addLoadErrorIcon(tabId: string): void {
530
- const icon = new IconButton.Icon.Icon();
529
+ const icon = new Icon();
531
530
  icon.name = 'cross-circle-filled';
532
531
  icon.classList.add('small');
533
532
  UI.Tooltip.Tooltip.install(icon, i18nString(UIStrings.unableToLoadThisContent));
@@ -606,7 +605,7 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
606
605
  const tooltip = this.tooltipForFile(uiSourceCode);
607
606
  this.tabbedPane.changeTabTitle(tabId, title, tooltip);
608
607
  if (uiSourceCode.loadError()) {
609
- const icon = new IconButton.Icon.Icon();
608
+ const icon = new Icon();
610
609
  icon.name = 'cross-circle-filled';
611
610
  icon.classList.add('small');
612
611
  UI.Tooltip.Tooltip.install(icon, i18nString(UIStrings.unableToLoadThisContent));
@@ -617,7 +616,7 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
617
616
  * and we will use a toast instead once available.
618
617
  **/
619
618
  const suffixElement = document.createElement('div');
620
- const icon = new IconButton.Icon.Icon();
619
+ const icon = new Icon();
621
620
  icon.name = 'warning-filled';
622
621
  icon.classList.add('small');
623
622
  const id = `tab-tooltip-${nextTooltipId++}`;
@@ -6,7 +6,7 @@
6
6
  import type * as Common from '../../core/common/common.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
9
+ import {Icon} from '../../ui/kit/kit.js';
10
10
  import * as UI from '../../ui/legacy/legacy.js';
11
11
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
12
12
 
@@ -54,7 +54,7 @@ export class ThreadsSidebarPane extends UI.Widget.VBox implements
54
54
  element.classList.add('thread-item');
55
55
  const title = element.createChild('div', 'thread-item-title');
56
56
  const pausedState = element.createChild('div', 'thread-item-paused-state');
57
- const icon = new IconButton.Icon.Icon();
57
+ const icon = new Icon();
58
58
  icon.name = 'large-arrow-right-filled';
59
59
  icon.classList.add('selected-thread-icon', 'small');
60
60
  element.appendChild(icon);
@@ -14,9 +14,9 @@ import * as Persistence from '../../models/persistence/persistence.js';
14
14
  import * as TextUtils from '../../models/text_utils/text_utils.js';
15
15
  import * as Workspace from '../../models/workspace/workspace.js';
16
16
  import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
17
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
18
17
  import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.js';
19
18
  import * as TextEditor from '../../ui/components/text_editor/text_editor.js';
19
+ import {Icon, type IconWithName} from '../../ui/kit/kit.js';
20
20
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
21
21
  import * as UI from '../../ui/legacy/legacy.js';
22
22
 
@@ -528,7 +528,7 @@ export class UISourceCodeFrame extends Common.ObjectWrapper
528
528
  }
529
529
  }
530
530
 
531
- function getIconDataForLevel(level: Workspace.UISourceCode.Message.Level): IconButton.Icon.IconWithName {
531
+ function getIconDataForLevel(level: Workspace.UISourceCode.Message.Level): IconWithName {
532
532
  if (level === Workspace.UISourceCode.Message.Level.ERROR) {
533
533
  return {color: 'var(--icon-error)', width: '16px', height: '14px', iconName: 'cross-circle-filled'};
534
534
  }
@@ -561,7 +561,7 @@ function messageLevelComparator(a: RowMessage, b: RowMessage): number {
561
561
  return messageLevelPriority[a.level()] - messageLevelPriority[b.level()];
562
562
  }
563
563
 
564
- function getIconDataForMessage(message: RowMessage): IconButton.Icon.IconWithName {
564
+ function getIconDataForMessage(message: RowMessage): IconWithName {
565
565
  if (message.origin instanceof IssuesManager.SourceFrameIssuesManager.IssueMessage) {
566
566
  return {iconName: IssueCounter.IssueCounter.getIssueKindIconName(message.origin.getIssueKind())};
567
567
  }
@@ -742,8 +742,8 @@ class RowMessageDecorations {
742
742
  }
743
743
  }
744
744
 
745
- function createIconFromIconData(data: IconButton.Icon.IconWithName): IconButton.Icon.Icon {
746
- const icon = new IconButton.Icon.Icon();
745
+ function createIconFromIconData(data: IconWithName): Icon {
746
+ const icon = new Icon();
747
747
  icon.name = data.iconName;
748
748
  if (data.width) {
749
749
  icon.style.width = data.width;
@@ -7,7 +7,7 @@ import * as Common from '../../core/common/common.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as Platform from '../../core/platform/platform.js';
9
9
  import * as Trace from '../../models/trace/trace.js';
10
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
10
+ import {createIcon} from '../../ui/kit/kit.js';
11
11
  import * as UI from '../../ui/legacy/legacy.js';
12
12
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
13
13
 
@@ -582,7 +582,7 @@ export class DropDown implements UI.ListControl.ListDelegate<number> {
582
582
 
583
583
  div.style.width = `${previewWidth}px`;
584
584
 
585
- const icon = IconButton.Icon.create('arrow-back');
585
+ const icon = createIcon('arrow-back');
586
586
  icon.title = i18nString(UIStrings.backButtonTooltip);
587
587
  icon.classList.add('back-arrow');
588
588
  div.appendChild(icon);
@@ -431,8 +431,11 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
431
431
  #onMainEntryHovered: (event: Common.EventTarget.EventTargetEvent<number>) => void;
432
432
  #hiddenTracksInfoBarByParsedTrace = new WeakMap<Trace.TraceModel.ParsedTrace, UI.Infobar.Infobar|'DISMISSED'>();
433
433
 
434
- constructor(traceModel?: Trace.TraceModel.Model) {
434
+ readonly #resourceLoader: SDK.PageResourceLoader.ResourceLoader;
435
+
436
+ constructor(resourceLoader: SDK.PageResourceLoader.ResourceLoader, traceModel?: Trace.TraceModel.Model) {
435
437
  super('timeline');
438
+ this.#resourceLoader = resourceLoader;
436
439
  this.registerRequiredCSS(timelinePanelStyles);
437
440
  const adornerContent = document.createElement('span');
438
441
  adornerContent.innerHTML = `<div style="
@@ -698,13 +701,16 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
698
701
  }
699
702
 
700
703
  static instance(opts: {
701
- forceNew: boolean|null,
704
+ forceNew: true,
705
+ resourceLoader: SDK.PageResourceLoader.ResourceLoader,
702
706
  traceModel?: Trace.TraceModel.Model,
703
- }|undefined = {forceNew: null}): TimelinePanel {
704
- const {forceNew} = opts;
707
+ }|undefined = undefined): TimelinePanel {
708
+ if (opts) {
709
+ timelinePanelInstance = new TimelinePanel(opts.resourceLoader, opts.traceModel);
710
+ }
705
711
 
706
- if (!timelinePanelInstance || forceNew) {
707
- timelinePanelInstance = new TimelinePanel(opts.traceModel);
712
+ if (!timelinePanelInstance) {
713
+ throw new Error('No TimelinePanel instance');
708
714
  }
709
715
 
710
716
  return timelinePanelInstance;
@@ -2643,8 +2649,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2643
2649
  initiatorUrl: script.url as Platform.DevToolsPath.UrlString
2644
2650
  };
2645
2651
  rawSourceMap = await SDK.SourceMapManager.tryLoadSourceMap(
2646
- SDK.PageResourceLoader.PageResourceLoader.instance(),
2647
- script.sourceMapUrl as Platform.DevToolsPath.UrlString, initiator);
2652
+ this.#resourceLoader, script.sourceMapUrl as Platform.DevToolsPath.UrlString, initiator);
2648
2653
  }
2649
2654
 
2650
2655
  if (script.url && rawSourceMap) {
@@ -2747,7 +2752,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2747
2752
  initiatorUrl: sourceUrl
2748
2753
  };
2749
2754
  const payload = await SDK.SourceMapManager.tryLoadSourceMap(
2750
- SDK.PageResourceLoader.PageResourceLoader.instance(), sourceMapUrl, initiator);
2755
+ TimelinePanel.instance().#resourceLoader, sourceMapUrl, initiator);
2751
2756
  return payload ? new SDK.SourceMap.SourceMap(sourceUrl, sourceMapUrl, payload) : null;
2752
2757
  };
2753
2758
  }
@@ -2,7 +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 '../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../ui/kit/kit.js';
6
6
  import '../../../ui/components/menus/menus.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
@@ -5,7 +5,7 @@
5
5
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
6
 
7
7
  import '../../../ui/components/settings/settings.js';
8
- import '../../../ui/components/icon_button/icon_button.js';
8
+ import '../../../ui/kit/kit.js';
9
9
  import './FieldSettingsDialog.js';
10
10
  import './NetworkThrottlingSelector.js';
11
11
  import '../../../ui/components/menus/menus.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
 
8
8
  import * as i18n from '../../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../../core/platform/platform.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
  import '../../../ui/components/menus/menus.js';
8
8
 
9
9
  import * as Common from '../../../core/common/common.js';
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable @devtools/no-imperative-dom-api */
5
5
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
6
 
7
- import '../../../ui/components/icon_button/icon_button.js';
7
+ import '../../../ui/kit/kit.js';
8
8
 
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
10
10
  import * as SDK from '../../../core/sdk/sdk.js';
@@ -7,7 +7,7 @@
7
7
  * @file A list of pass/fail conditions for an insight.
8
8
  */
9
9
 
10
- import '../../../../ui/components/icon_button/icon_button.js';
10
+ import '../../../../ui/kit/kit.js';
11
11
 
12
12
  import * as i18n from '../../../../core/i18n/i18n.js';
13
13
  import type * as Trace from '../../../../models/trace/trace.js';
@@ -2,7 +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 '../../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../../ui/kit/kit.js';
6
6
  import './Table.js';
7
7
  import './NodeLink.js';
8
8
 
@@ -2,7 +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 '../../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../../ui/kit/kit.js';
6
6
 
7
7
  import type {ImageDeliveryInsightModel} from '../../../../models/trace/insights/ImageDelivery.js';
8
8
  import * as Trace from '../../../../models/trace/trace.js';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import './Table.js';
6
6
  import './NodeLink.js';
7
- import '../../../../ui/components/icon_button/icon_button.js';
7
+ import '../../../../ui/kit/kit.js';
8
8
 
9
9
  import * as i18n from '../../../../core/i18n/i18n.js';
10
10
  import type {
@@ -1,7 +1,7 @@
1
1
  // Copyright 2024 The Chromium Authors
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
- import '../../../../ui/components/icon_button/icon_button.js';
4
+ import '../../../../ui/kit/kit.js';
5
5
 
6
6
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
7
7
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../../ui/kit/kit.js';
7
7
  import '../../../../ui/components/tooltips/tooltips.js';
8
8
  import '../../../../ui/components/spinners/spinners.js';
9
9
 
@@ -87,9 +87,10 @@ UI.ViewManager.registerViewExtension({
87
87
  title: i18nLazyString(UIStrings.performance),
88
88
  commandPrompt: i18nLazyString(UIStrings.showPerformance),
89
89
  order: 50,
90
- async loadView() {
90
+ async loadView(universe) {
91
91
  const Timeline = await loadTimelineModule();
92
- return Timeline.TimelinePanel.TimelinePanel.instance();
92
+ const resourceLoader = universe.context.get(SDK.PageResourceLoader.PageResourceLoader);
93
+ return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: true, resourceLoader});
93
94
  },
94
95
  });
95
96
 
@@ -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 '../../ui/kit/kit.js';
5
6
  import '../../ui/components/icon_button/icon_button.js';
6
7
 
7
8
  import * as Common from '../../core/common/common.js';
@@ -1,7 +1,7 @@
1
1
  Name: Dependencies sourced from the upstream `chromium` repository
2
2
  URL: https://chromium.googlesource.com/chromium/src
3
3
  Version: N/A
4
- Revision: 3e09060fabbdeb607bc7ed4db07e88ef0112f839
4
+ Revision: 5bbbb9ffe6bf19fdc31b46add466cd6ef53d75b4
5
5
  Update Mechanism: Manual (https://crbug.com/428069060)
6
6
  License: BSD-3-Clause
7
7
  License File: LICENSE
@@ -16,7 +16,12 @@ export interface AdornerData {
16
16
  jslogContext?: string;
17
17
  }
18
18
 
19
+ /**
20
+ * @deprecated Do not add new usages. The custom component will be removed an
21
+ * embedded into the corresponding views.
22
+ */
19
23
  export class Adorner extends HTMLElement {
24
+ static readonly observedAttributes = ['active', 'toggleable'];
20
25
  name = '';
21
26
 
22
27
  readonly #shadow = this.attachShadow({mode: 'open'});
@@ -53,6 +58,21 @@ export class Adorner extends HTMLElement {
53
58
  this.#render();
54
59
  }
55
60
 
61
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void {
62
+ if (oldValue === newValue) {
63
+ return;
64
+ }
65
+
66
+ switch (name) {
67
+ case 'active':
68
+ this.toggle(newValue === 'true');
69
+ break;
70
+ case 'toggleable':
71
+ this.#isToggle = newValue === 'true';
72
+ break;
73
+ }
74
+ }
75
+
56
76
  isActive(): boolean {
57
77
  return this.getAttribute('aria-pressed') === 'true';
58
78
  }
@@ -19,7 +19,7 @@ interface BaseAnnotationData {
19
19
  anchorToString?: string;
20
20
  }
21
21
 
22
- interface ElementsAnnotationData extends BaseAnnotationData {
22
+ export interface ElementsAnnotationData extends BaseAnnotationData {
23
23
  type: AnnotationType.ELEMENT_NODE;
24
24
  anchor?: SDK.DOMModel.DOMNode;
25
25
  }
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../icon_button/icon_button.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Lit from '../../lit/lit.js';
9
9
  import * as VisualLogging from '../../visual_logging/visual_logging.js';
@@ -2,7 +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
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
- import '../icon_button/icon_button.js';
5
+ import '../../kit/kit.js';
6
6
 
7
7
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
8
8
  import * as Lit from '../../lit/lit.js';
@@ -6,11 +6,14 @@
6
6
  import * as TextUtils from '../../../models/text_utils/text_utils.js';
7
7
 
8
8
  import {HighlightManager} from './HighlightManager.js';
9
+ import {type HighlightChange, highlightRangesWithStyleClass, revertDomChanges} from './MarkupHighlight.js';
9
10
 
10
11
  export class HighlightElement extends HTMLElement {
11
- static readonly observedAttributes = ['ranges', 'current-range'];
12
+ static readonly observedAttributes = ['ranges', 'current-range', 'type'];
12
13
  #ranges: TextUtils.TextRange.SourceRange[] = [];
13
14
  #currentRange: TextUtils.TextRange.SourceRange|undefined;
15
+ #type = 'css';
16
+ #markupChanges: HighlightChange[] = [];
14
17
 
15
18
  attributeChangedCallback(name: string, oldValue: string|null, newValue: string|null): void {
16
19
  if (oldValue === newValue) {
@@ -23,8 +26,18 @@ export class HighlightElement extends HTMLElement {
23
26
  case 'current-range':
24
27
  this.#currentRange = parseRanges(newValue)[0];
25
28
  break;
29
+ case 'type':
30
+ this.#type = newValue || 'css';
31
+ break;
26
32
  }
27
- HighlightManager.instance().set(this, this.#ranges, this.#currentRange);
33
+ queueMicrotask(() => {
34
+ if (this.#type === 'css') {
35
+ HighlightManager.instance().set(this, this.#ranges, this.#currentRange);
36
+ } else {
37
+ revertDomChanges(this.#markupChanges);
38
+ highlightRangesWithStyleClass(this, this.#ranges, 'highlight', this.#markupChanges);
39
+ }
40
+ });
28
41
  }
29
42
  }
30
43
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import './IconButton.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import {Directives, html, render} from '../../lit/lit.js';
9
9
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import './Icon.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Lit from '../../lit/lit.js';
9
9
 
@@ -3,11 +3,9 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as FileSourceIcon from './FileSourceIcon.js';
6
- import * as Icon from './Icon.js';
7
6
  import * as IconButton from './IconButton.js';
8
7
 
9
8
  export {
10
9
  FileSourceIcon,
11
- Icon,
12
10
  IconButton,
13
11
  };
@@ -8,8 +8,8 @@ import '../icon_button/icon_button.js';
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
10
10
  import * as IssuesManager from '../../../models/issues_manager/issues_manager.js';
11
+ import type * as IconButton from '../../../ui/components/icon_button/icon_button.js';
11
12
  import {html, render} from '../../lit/lit.js';
12
- import type * as IconButton from '../icon_button/icon_button.js';
13
13
 
14
14
  import issueCounterStyles from './issueCounter.css.js';
15
15
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
@@ -3,9 +3,9 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../../components/icon_button/icon_button.js';
6
+ import '../../kit/kit.js';
7
7
 
8
- import type * as IconButton from '../../components/icon_button/icon_button.js';
8
+ import type {IconData} from '../../kit/kit.js';
9
9
  import * as Lit from '../../lit/lit.js';
10
10
 
11
11
  import markdownImageStyles from './markdownImage.css.js';
@@ -42,7 +42,7 @@ export class MarkdownImage extends HTMLElement {
42
42
  }
43
43
  const {src, color, width = '100%', height = '100%'} = this.#imageData;
44
44
  return html`
45
- <devtools-icon .data=${{iconPath: src, color, width, height} as IconButton.Icon.IconData}></devtools-icon>
45
+ <devtools-icon .data=${{iconPath: src, color, width, height} as IconData}></devtools-icon>
46
46
  `;
47
47
  }
48
48
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../icon_button/icon_button.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as Lit from '../../lit/lit.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
- import '../icon_button/icon_button.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import type * as Host from '../../../core/host/host.js';