chrome-devtools-frontend 1.0.1516909 → 1.0.1519267

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 (162) hide show
  1. package/config/owner/COMMON_OWNERS +2 -2
  2. package/docs/checklist/README.md +2 -2
  3. package/docs/checklist/javascript.md +1 -1
  4. package/docs/contributing/README.md +1 -1
  5. package/docs/contributing/settings-experiments-features.md +9 -8
  6. package/docs/cookbook/devtools_on_devtools.md +2 -2
  7. package/docs/cookbook/localization.md +10 -10
  8. package/docs/devtools-protocol.md +9 -8
  9. package/docs/ecosystem/automatic_workspace_folders.md +3 -3
  10. package/docs/get_the_code.md +0 -2
  11. package/docs/styleguide/ux/components.md +166 -85
  12. package/docs/styleguide/ux/numbers.md +3 -4
  13. package/eslint.config.mjs +1 -0
  14. package/front_end/core/common/README.md +13 -12
  15. package/front_end/core/host/GdpClient.ts +16 -1
  16. package/front_end/core/host/UserMetrics.ts +4 -2
  17. package/front_end/core/root/Runtime.ts +13 -0
  18. package/front_end/core/sdk/CSSMatchedStyles.ts +5 -1
  19. package/front_end/core/sdk/EnhancedTracesParser.ts +5 -5
  20. package/front_end/core/sdk/RehydratingConnection.snapshot.txt +211 -0
  21. package/front_end/core/sdk/TargetManager.ts +4 -0
  22. package/front_end/entrypoints/main/MainImpl.ts +6 -3
  23. package/front_end/generated/InspectorBackendCommands.js +10 -7
  24. package/front_end/generated/SupportedCSSProperties.js +40 -11
  25. package/front_end/generated/protocol-mapping.d.ts +16 -1
  26. package/front_end/generated/protocol-proxy-api.d.ts +13 -1
  27. package/front_end/generated/protocol.ts +95 -0
  28. package/front_end/models/ai_assistance/agents/AiAgent.ts +57 -10
  29. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +119 -51
  30. package/front_end/models/ai_assistance/agents/StylingAgent.ts +0 -31
  31. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +14 -181
  32. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +19 -315
  33. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +224 -50
  34. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +310 -11
  35. package/front_end/models/ai_assistance/performance/AIContext.ts +15 -2
  36. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +22 -11
  37. package/front_end/models/badges/AiExplorerBadge.ts +19 -3
  38. package/front_end/models/badges/Badge.ts +10 -3
  39. package/front_end/models/badges/CodeWhispererBadge.ts +3 -4
  40. package/front_end/models/badges/DOMDetectiveBadge.ts +1 -0
  41. package/front_end/models/badges/SpeedsterBadge.ts +1 -0
  42. package/front_end/models/badges/StarterBadge.ts +3 -2
  43. package/front_end/models/badges/UserBadges.ts +21 -3
  44. package/front_end/models/badges/badges.ts +1 -0
  45. package/front_end/models/javascript_metadata/NativeFunctions.js +2 -2
  46. package/front_end/models/trace/EventsSerializer.ts +4 -3
  47. package/front_end/models/trace/README.md +28 -1
  48. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +101 -73
  49. package/front_end/models/trace/handlers/UserTimingsHandler.ts +1 -1
  50. package/front_end/models/trace/helpers/Timing.ts +1 -1
  51. package/front_end/models/trace/helpers/Trace.ts +99 -43
  52. package/front_end/models/trace/types/TraceEvents.ts +9 -0
  53. package/front_end/panels/accessibility/ARIAAttributesView.ts +113 -191
  54. package/front_end/panels/accessibility/AccessibilityNodeView.ts +9 -9
  55. package/front_end/panels/accessibility/AccessibilitySubPane.ts +6 -4
  56. package/front_end/panels/accessibility/accessibilityProperties.css +2 -0
  57. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +20 -3
  58. package/front_end/panels/ai_assistance/components/ChatView.ts +9 -10
  59. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +44 -0
  60. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +2 -2
  61. package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +32 -9
  62. package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +7 -1
  63. package/front_end/panels/common/BadgeNotification.ts +21 -5
  64. package/front_end/panels/common/GdpSignUpDialog.ts +20 -12
  65. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  66. package/front_end/panels/console/ConsoleView.ts +6 -2
  67. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +5 -5
  68. package/front_end/panels/elements/ElementsPanel.ts +4 -0
  69. package/front_end/panels/elements/ElementsTreeElement.ts +18 -0
  70. package/front_end/panels/elements/ElementsTreeOutline.ts +13 -0
  71. package/front_end/panels/elements/StylePropertyTreeElement.ts +21 -6
  72. package/front_end/panels/media/TickingFlameChart.ts +1 -1
  73. package/front_end/panels/profiler/HeapSnapshotView.ts +34 -19
  74. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  75. package/front_end/panels/search/SearchResultsPane.ts +167 -152
  76. package/front_end/panels/search/SearchView.ts +36 -26
  77. package/front_end/panels/search/searchResultsPane.css +9 -0
  78. package/front_end/panels/security/CookieControlsView.ts +2 -1
  79. package/front_end/panels/settings/AISettingsTab.ts +6 -3
  80. package/front_end/panels/settings/components/SyncSection.ts +39 -17
  81. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +1 -1
  82. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +9 -1
  83. package/front_end/panels/sources/SourcesPanel.ts +4 -1
  84. package/front_end/panels/sources/sourcesView.css +6 -1
  85. package/front_end/panels/timeline/AppenderUtils.ts +2 -2
  86. package/front_end/panels/timeline/ExtensionTrackAppender.ts +13 -4
  87. package/front_end/panels/timeline/GPUTrackAppender.ts +2 -1
  88. package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -1
  89. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +2 -1
  90. package/front_end/panels/timeline/ThreadAppender.ts +12 -3
  91. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +9 -4
  92. package/front_end/panels/timeline/TimelinePanel.ts +3 -2
  93. package/front_end/panels/timeline/TimelineUIUtils.ts +5 -4
  94. package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -1
  95. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +95 -82
  96. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +1 -1
  97. package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -2
  98. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +1 -1
  99. package/front_end/panels/timeline/components/RelatedInsightChips.ts +1 -1
  100. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
  101. package/front_end/panels/timeline/components/cpuThrottlingSelector.css +17 -15
  102. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +3 -0
  103. package/front_end/third_party/chromium/README.chromium +1 -1
  104. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  105. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  106. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +6 -9
  107. package/front_end/third_party/codemirror.next/package.json +2 -1
  108. package/front_end/third_party/diff/README.chromium +1 -0
  109. package/front_end/third_party/puppeteer/README.chromium +2 -2
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -2
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +1 -0
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.d.ts.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.js +16 -25
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  126. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +19 -28
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +1 -0
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.d.ts.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.js +16 -25
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.js.map +1 -1
  140. package/front_end/third_party/puppeteer/package/package.json +10 -3
  141. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  142. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  143. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +1 -0
  144. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  145. package/front_end/third_party/puppeteer/package/src/util/Function.ts +22 -30
  146. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  147. package/front_end/ui/components/markdown_view/MarkdownImage.ts +4 -5
  148. package/front_end/ui/components/switch/SwitchImpl.ts +12 -1
  149. package/front_end/ui/components/text_editor/config.ts +22 -9
  150. package/front_end/ui/components/tooltips/Tooltip.ts +70 -31
  151. package/front_end/ui/legacy/README.md +33 -24
  152. package/front_end/ui/legacy/SearchableView.ts +19 -26
  153. package/front_end/ui/legacy/TextPrompt.ts +166 -1
  154. package/front_end/ui/legacy/Treeoutline.ts +19 -3
  155. package/front_end/ui/legacy/UIUtils.ts +15 -2
  156. package/front_end/ui/legacy/XElement.ts +0 -43
  157. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +20 -4
  158. package/front_end/ui/legacy/components/source_frame/XMLView.ts +12 -11
  159. package/front_end/ui/lit/i18n-template.ts +5 -2
  160. package/front_end/ui/visual_logging/KnownContextValues.ts +23 -6
  161. package/front_end/ui/visual_logging/README.md +43 -27
  162. package/package.json +1 -1
@@ -65,53 +65,10 @@ class XBox extends XElement {
65
65
  }
66
66
  }
67
67
 
68
- class XVBox extends XBox {
69
- constructor() {
70
- super('column');
71
- }
72
- }
73
-
74
68
  class XHBox extends XBox {
75
69
  constructor() {
76
70
  super('row');
77
71
  }
78
72
  }
79
73
 
80
- class XCBox extends XElement {
81
- constructor() {
82
- super();
83
- this.style.setProperty('display', 'flex');
84
- this.style.setProperty('flex-direction', 'column');
85
- this.style.setProperty('justify-content', 'center');
86
- this.style.setProperty('align-items', 'center');
87
- }
88
- }
89
-
90
- class XDiv extends XElement {
91
- constructor() {
92
- super();
93
- this.style.setProperty('display', 'block');
94
- }
95
- }
96
-
97
- class XSpan extends XElement {
98
- constructor() {
99
- super();
100
- this.style.setProperty('display', 'inline');
101
- }
102
- }
103
-
104
- class XText extends XElement {
105
- constructor() {
106
- super();
107
- this.style.setProperty('display', 'inline');
108
- this.style.setProperty('white-space', 'pre');
109
- }
110
- }
111
-
112
- customElements.define('x-vbox', XVBox);
113
74
  customElements.define('x-hbox', XHBox);
114
- customElements.define('x-cbox', XCBox);
115
- customElements.define('x-div', XDiv);
116
- customElements.define('x-span', XSpan);
117
- customElements.define('x-text', XText);
@@ -148,6 +148,12 @@ export const enum HoverType {
148
148
  ERROR = 'ERROR',
149
149
  }
150
150
 
151
+ export const enum GroupCollapsibleState {
152
+ ALWAYS = 0,
153
+ NEVER = 1,
154
+ IF_MULTI_ROW = 2
155
+ }
156
+
151
157
  export interface FlameChartDelegate {
152
158
  windowChanged(_startTime: number, _endTime: number, _animate: boolean): void;
153
159
  updateRangeSelection(_startTime: number, _endTime: number): void;
@@ -3793,10 +3799,21 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
3793
3799
 
3794
3800
  const groups = this.rawTimelineData.groups || [];
3795
3801
  const style = groups[index].style;
3796
- if (!style.shareHeaderLine || !style.collapsible) {
3797
- return Boolean(style.collapsible);
3802
+ if (style.collapsible === GroupCollapsibleState.NEVER) {
3803
+ return false;
3804
+ }
3805
+ if (!style.shareHeaderLine) {
3806
+ return style.collapsible === GroupCollapsibleState.ALWAYS;
3798
3807
  }
3799
3808
  const isLastGroup = index + 1 >= groups.length;
3809
+ if (style.collapsible === GroupCollapsibleState.IF_MULTI_ROW) {
3810
+ const nextRowStartLevel = isLastGroup ? this.dataProvider.maxStackDepth() : groups[index + 1].startLevel;
3811
+ const rowsInCurrentGroup = nextRowStartLevel - groups[index].startLevel;
3812
+ // If everything fits in one line, there's no need to offer the expand capability.
3813
+ if (rowsInCurrentGroup < 2) {
3814
+ return false;
3815
+ }
3816
+ }
3800
3817
  if (!isLastGroup && groups[index + 1].style.nestingLevel > style.nestingLevel) {
3801
3818
  return true;
3802
3819
  }
@@ -4421,8 +4438,7 @@ export interface Group {
4421
4438
  export interface GroupStyle {
4422
4439
  height: number;
4423
4440
  padding: number;
4424
- /* Can it be collapsed? True by default! */
4425
- collapsible: boolean;
4441
+ collapsible: GroupCollapsibleState;
4426
4442
  /** The color of the group title text. */
4427
4443
  color: string;
4428
4444
  /**
@@ -129,7 +129,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
129
129
  }
130
130
  }
131
131
  }
132
- return input.search.highlight(highlights, selected);
132
+ return UI.TreeOutline.TreeSearch.highlight(highlights, selected);
133
133
  }
134
134
 
135
135
  function layOutNode(node: XMLTreeViewNode, populateSubtrees = false): Lit.LitTemplate {
@@ -138,13 +138,15 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
138
138
 
139
139
  // clang-format off
140
140
  return html`
141
- <li
142
- ${highlight(node, /* closeTag=*/ false)}
143
- role="treeitem"
144
- ?selected=${input.jumpToNextSearchResult?.node === node}
145
- @expand=${onExpand}>
146
- ${htmlView(node)}${populateSubtrees || input.search ? subtree(node) : Lit.nothing}
147
- </li>`;
141
+ <li ${highlight(node, /* closeTag=*/ false)} role="treeitem"
142
+ ?selected=${input.jumpToNextSearchResult?.node === node}
143
+ @expand=${onExpand}>
144
+ ${htmlView(node)}
145
+ ${node.children().length ? html`
146
+ <ul role="group" ?hidden=${!node.expanded}>
147
+ ${populateSubtrees || input.search ? subtree(node) : Lit.nothing}
148
+ </ul>` : Lit.nothing}
149
+ </li>`;
148
150
  // clang-format on
149
151
  }
150
152
 
@@ -154,15 +156,14 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
154
156
  return Lit.nothing;
155
157
  }
156
158
  // clang-format off
157
- return html`<ul role="group" ?hidden=${!treeNode.expanded}>
159
+ return html`
158
160
  ${children.map(child => layOutNode(child, treeNode.expanded))}
159
161
  ${treeNode.node instanceof Element
160
162
  ? html`<li
161
163
  ${highlight(treeNode, /* closeTag=*/ true)}
162
164
  role="treeitem"><span part='shadow-xml-view-close-tag'>${'</' + treeNode.node.tagName + '>'}</span
163
165
  ></li>`
164
- : Lit.nothing}
165
- </ul>`;
166
+ : Lit.nothing}`;
166
167
  // clang-format on
167
168
  }
168
169
 
@@ -2,6 +2,9 @@
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
+ // This files is import lit directly
6
+ /* eslint-disable rulesdir/lit-template-result-or-nothing */
7
+
5
8
  import * as i18n from '../../core/i18n/i18n.js';
6
9
  import type * as I18n from '../../third_party/i18n/i18n.js';
7
10
  import * as Lit from '../../third_party/lit/lit.js';
@@ -14,10 +17,10 @@ const {html} = Lit.StaticHtml;
14
17
  */
15
18
  export function i18nTemplate(
16
19
  registeredStrings: I18n.LocalizedStringSet.RegisteredFileStrings, stringId: string,
17
- placeholders: Record<string, Lit.TemplateResult|string>): Lit.TemplateResult {
20
+ placeholders: Record<string, Lit.TemplateResult|string>): Lit.TemplateResult|typeof Lit.nothing {
18
21
  const formatter = registeredStrings.getLocalizedStringSetFor(i18n.DevToolsLocale.DevToolsLocale.instance().locale)
19
22
  .getMessageFormatterFor(stringId);
20
- let result = html``;
23
+ let result: Lit.TemplateResult|typeof Lit.nothing = Lit.nothing;
21
24
  for (const icuElement of formatter.getAst()) {
22
25
  if (icuElement.type === /* argumentElement */ 1) {
23
26
  const placeholderValue = placeholders[icuElement.value];
@@ -348,9 +348,11 @@ export const knownContextValues = new Set([
348
348
  'ai-code-completion-citations.citation-link',
349
349
  'ai-code-completion-disclaimer',
350
350
  'ai-code-completion-enabled',
351
+ 'ai-code-completion-spinner-tooltip',
351
352
  'ai-code-completion-teaser-dismissed',
352
353
  'ai-code-completion-teaser.dismiss',
353
354
  'ai-code-completion-teaser.fre',
355
+ 'ai-explorer',
354
356
  'ai_assistance',
355
357
  'align-content',
356
358
  'align-content-center',
@@ -540,6 +542,7 @@ export const knownContextValues = new Set([
540
542
  'background-services',
541
543
  'background-size',
542
544
  'background-sync',
545
+ 'badge-notification',
543
546
  'badge-notification.dismiss',
544
547
  'badproperty',
545
548
  'bars',
@@ -713,6 +716,7 @@ export const knownContextValues = new Set([
713
716
  'chrome-android-mobile-high-end',
714
717
  'chrome-android-tablet',
715
718
  'chrome-chrome-os',
719
+ 'chrome-devtools-user',
716
720
  'chrome-extension://fmkadmapgofadopljbjfkapdkoienihi⚛️Components',
717
721
  'chrome-extension://fmkadmapgofadopljbjfkapdkoienihi⚛️Profiler',
718
722
  'chrome-extension://ienfalfjdbdpebioblfackkekamfmbnhAngular',
@@ -780,6 +784,7 @@ export const knownContextValues = new Set([
780
784
  'code-snippets-explainer.console-insights',
781
785
  'code-snippets-explainer.freestyler',
782
786
  'code-snippets-explainer.patch-widget',
787
+ 'code-whisperer',
783
788
  'collapse',
784
789
  'collapse-children',
785
790
  'collapsed-files',
@@ -884,6 +889,7 @@ export const knownContextValues = new Set([
884
889
  'content',
885
890
  'content-encoding',
886
891
  'content-length',
892
+ 'content-policy',
887
893
  'content-type',
888
894
  'content-visibility',
889
895
  'context',
@@ -1028,6 +1034,7 @@ export const knownContextValues = new Set([
1028
1034
  'cpu-throttling-selector',
1029
1035
  'cpu-throttling-selector-calibrate',
1030
1036
  'create-new-snippet',
1037
+ 'create-profile',
1031
1038
  'create-recording',
1032
1039
  'create-recording-view',
1033
1040
  'creator-ad-script-ancestry',
@@ -1277,6 +1284,7 @@ export const knownContextValues = new Set([
1277
1284
  'dom-attr-modified',
1278
1285
  'dom-character-data-modified',
1279
1286
  'dom-content-loaded',
1287
+ 'dom-detective',
1280
1288
  'dom-focus-in',
1281
1289
  'dom-focus-out',
1282
1290
  'dom-mutation',
@@ -1692,12 +1700,9 @@ export const knownContextValues = new Set([
1692
1700
  'gap-rule-overlap',
1693
1701
  'gap-rule-paint-order',
1694
1702
  'garamond',
1695
- 'gdp.content-policy',
1696
- 'gdp.privacy-policy',
1697
- 'gdp.sign-up',
1698
- 'gdp.sign-up-dialog-open',
1699
- 'gdp.signup.keep-me-updated',
1700
- 'gdp.terms-of-service',
1703
+ 'gdp-profile',
1704
+ 'gdp-sign-up-dialog',
1705
+ 'gdp.ai-conversation-count',
1701
1706
  'gen-ai-settings-panel',
1702
1707
  'general',
1703
1708
  'generative-ai-terms-of-service',
@@ -1985,6 +1990,7 @@ export const knownContextValues = new Set([
1985
1990
  'justify-self',
1986
1991
  'ka',
1987
1992
  'keep-alive',
1993
+ 'keep-me-updated',
1988
1994
  'key',
1989
1995
  'keybinds',
1990
1996
  'keyboard',
@@ -2403,6 +2409,7 @@ export const knownContextValues = new Set([
2403
2409
  'main.zoom-reset',
2404
2410
  'make-a-copy',
2405
2411
  'manage-header-columns',
2412
+ 'manage-settings',
2406
2413
  'manager-custom-headers',
2407
2414
  'manifest',
2408
2415
  'manifest.copy-id',
@@ -2691,6 +2698,7 @@ export const knownContextValues = new Set([
2691
2698
  'open-memory-inspector',
2692
2699
  'open-network-panel',
2693
2700
  'open-performance-panel',
2701
+ 'open-sign-up-dialog',
2694
2702
  'open-sources-panel',
2695
2703
  'open-using',
2696
2704
  'opened-windows',
@@ -2888,6 +2896,7 @@ export const knownContextValues = new Set([
2888
2896
  'priority',
2889
2897
  'privacy',
2890
2898
  'privacy-notice',
2899
+ 'privacy-policy',
2891
2900
  'privacy-policy.console-insights',
2892
2901
  'private-state-tokens',
2893
2902
  'production-origin',
@@ -2911,6 +2920,7 @@ export const knownContextValues = new Set([
2911
2920
  'profiler.profile-type',
2912
2921
  'profiler.save-to-file',
2913
2922
  'profiles-sidebar',
2923
+ 'program-link',
2914
2924
  'progress',
2915
2925
  'prop',
2916
2926
  'prop1',
@@ -2963,6 +2973,7 @@ export const knownContextValues = new Set([
2963
2973
  'rec-2020',
2964
2974
  'recalc-style-count',
2965
2975
  'receive',
2976
+ 'receive-badges',
2966
2977
  'receive-gdp-badges',
2967
2978
  'recommendation',
2968
2979
  'reconnect',
@@ -2996,6 +3007,7 @@ export const knownContextValues = new Set([
2996
3007
  'release-notes',
2997
3008
  'reload-required',
2998
3009
  'rem',
3010
+ 'remind-me-later',
2999
3011
  'remote-address',
3000
3012
  'remote-address-space',
3001
3013
  'remote-debnugging-terminated',
@@ -3119,6 +3131,7 @@ export const knownContextValues = new Set([
3119
3131
  'rpId',
3120
3132
  'ru',
3121
3133
  'ruby-align',
3134
+ 'ruby-overhang',
3122
3135
  'ruby-position',
3123
3136
  'rule',
3124
3137
  'rule-color',
@@ -3436,6 +3449,7 @@ export const knownContextValues = new Set([
3436
3449
  'sidebar-position-right',
3437
3450
  'sidebar-test-replace-page-with-object',
3438
3451
  'sign-count',
3452
+ 'sign-up',
3439
3453
  'signCount',
3440
3454
  'simulate',
3441
3455
  'simulate-custom-quota',
@@ -3529,6 +3543,7 @@ export const knownContextValues = new Set([
3529
3543
  'speak',
3530
3544
  'speak-as',
3531
3545
  'speculative-loads',
3546
+ 'speedster',
3532
3547
  'spread',
3533
3548
  'sq',
3534
3549
  'sr',
@@ -3748,6 +3763,7 @@ export const knownContextValues = new Set([
3748
3763
  'timeline-trigger-name',
3749
3764
  'timeline-trigger-range-end',
3750
3765
  'timeline-trigger-range-start',
3766
+ 'timeline-trigger-source',
3751
3767
  'timeline-trigger-timeline',
3752
3768
  'timeline-user-has-opened-sidebar-once',
3753
3769
  'timeline-v8-runtime-call-stats',
@@ -4042,6 +4058,7 @@ export const knownContextValues = new Set([
4042
4058
  'view-computed-value',
4043
4059
  'view-details',
4044
4060
  'view-parsed',
4061
+ 'view-profile',
4045
4062
  'view-source',
4046
4063
  'view-timeline',
4047
4064
  'view-timeline-axis',
@@ -60,20 +60,22 @@ element. There’s a number of fluent builder functions exported
60
60
  the attribute value. These are all bound versions of
61
61
  `LoggingConfig.makeConfigStringBuilder` and are used in the legacy UI as:
62
62
 
63
- ```js
63
+ ```ts
64
64
  this.element.setAttribute('jslog', `${VisualLogging.panel(context)}`);
65
65
  ```
66
66
 
67
67
  or
68
68
 
69
- ```js
70
- button.element.setAttribute('jslog', `${VisualLogging.dropDown('rendering-emulations')
71
- .track({click: true})}`);
69
+ ```ts
70
+ button.element.setAttribute(
71
+ 'jslog',
72
+ `${VisualLogging.dropDown('rendering-emulations').track({ click: true })}`,
73
+ );
72
74
  ```
73
75
 
74
76
  In LitHTML, the usage is:
75
77
 
76
- ```js
78
+ ```ts
77
79
  Lit.html`<td jslog=${VisualLogging.tableCell(/* context */ col.id)
78
80
  .track({click: true})}>
79
81
  ```
@@ -121,27 +123,37 @@ First argument is a provider name that is later used as an argument in the
121
123
  `jslog` builder `context()` method. Second is a function that takes an Element or Event
122
124
  and returns a number. For a disclosure triangle, this is as follows:
123
125
 
124
- ```js
126
+ ```ts
125
127
  function disclosureTriangleLoggingContextProvider(
126
- e: VisualLogging.Loggable|Event): Promise<number|undefined> {
128
+ e: VisualLogging.Loggable | Event,
129
+ ): Promise<number | undefined> {
127
130
  if (e instanceof Element) {
128
131
  return Promise.resolve(e.classList.contains('parent') ? 1 : 0);
129
132
  }
130
133
  if (e instanceof MouseEvent && e.currentTarget instanceof Node) {
131
- const treeElement = TreeElement.getTreeElementBylistItemNode(e.currentTarget);
134
+ const treeElement = TreeElement.getTreeElementBylistItemNode(
135
+ e.currentTarget,
136
+ );
132
137
  if (treeElement) {
133
- return Promise.resolve(treeElement.isEventWithinDisclosureTriangle(e) ? 1 : 0);
138
+ return Promise.resolve(
139
+ treeElement.isEventWithinDisclosureTriangle(e) ? 1 : 0,
140
+ );
134
141
  }
135
142
  }
136
143
  return Promise.resolve(undefined);
137
144
  }
138
145
 
139
-
140
- VisualLogging.registerContextProvider('disclosureTriangle',
141
- disclosureTriangleLoggingContextProvider);
142
-
143
- listItemNode.setAttribute('jslog', `${VisualLogging.treeItem()
144
- .track({click: true}).context('disclosureTriangle')}`);
146
+ VisualLogging.registerContextProvider(
147
+ 'disclosureTriangle',
148
+ disclosureTriangleLoggingContextProvider,
149
+ );
150
+
151
+ listItemNode.setAttribute(
152
+ 'jslog',
153
+ `${VisualLogging.treeItem()
154
+ .track({ click: true })
155
+ .context('disclosureTriangle')}`,
156
+ );
145
157
  ```
146
158
 
147
159
  Similarly parent provides are used to specify parent visual elements in
@@ -150,18 +162,18 @@ to identify the parent. However, sometimes, markup doesn’t reflect the logical
150
162
  structure, for example, when a legacy tree outline has children in an `<ol>` element, which is a
151
163
  sibling of `<li>` that specifies the parent. In this case, you can do the following:
152
164
 
153
- ```js
154
- function loggingParentProvider(e: Element): Element|undefined {
165
+ ```ts
166
+ function loggingParentProvider(e: Element): Element | undefined {
155
167
  const treeElement = TreeElement.getTreeElementBylistItemNode(e);
156
168
  return treeElement?.parent?.listItemElement;
157
169
  }
158
170
 
159
- VisualLogging.registerParentProvider('parentTreeItem',
160
- loggingParentProvider);
171
+ VisualLogging.registerParentProvider('parentTreeItem', loggingParentProvider);
161
172
 
162
173
  this.listItemNode.setAttribute(
163
- 'jslog',
164
- `${VisualLogging.treeItem().track({click: true}).parent('parentTreeItem')}`);
174
+ 'jslog',
175
+ `${VisualLogging.treeItem().track({ click: true }).parent('parentTreeItem')}`,
176
+ );
165
177
  ```
166
178
 
167
179
  ### Logging beyond DOM
@@ -182,11 +194,15 @@ Then call `registerLoggable` with the corresponding JavaScript
182
194
  object, config string in the same format as the `jslog` attribute would have,
183
195
  and an optional parent JavaScript object. For a native menu item, this is:
184
196
 
185
-
186
- ```js
187
- VisualLogging.registerLoggable(descriptor, `${VisualLogging.action()
188
- .track({click: true}).context(descriptor.jslogContext)}`,
189
- parent || descriptors, size);
197
+ ```ts
198
+ VisualLogging.registerLoggable(
199
+ descriptor,
200
+ `${VisualLogging.action()
201
+ .track({ click: true })
202
+ .context(descriptor.jslogContext)}`,
203
+ parent || descriptors,
204
+ size,
205
+ );
190
206
  ```
191
207
 
192
208
  This only registers the element and doesn’t log anything yet. To log
@@ -198,7 +214,7 @@ Similarly to log click, call `VisualLogging.logClick`.
198
214
  You may find it useful to see which UI elements are annotated and how the tree
199
215
  structure look like. To do that, run
200
216
 
201
- ```js
217
+ ```ts
202
218
  setVeDebuggingEnabled(true);
203
219
  ```
204
220
 
package/package.json CHANGED
@@ -102,5 +102,5 @@
102
102
  "@eslint/core": "0.15.1"
103
103
  }
104
104
  },
105
- "version": "1.0.1516909"
105
+ "version": "1.0.1519267"
106
106
  }