chrome-devtools-frontend 1.0.1625079 → 1.0.1626437

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 (190) hide show
  1. package/front_end/core/common/VersionController.ts +9 -7
  2. package/front_end/core/common/common.ts +0 -4
  3. package/front_end/core/host/AidaClient.ts +1 -1
  4. package/front_end/core/host/AidaClientTypes.ts +2 -0
  5. package/front_end/core/host/AidaGcaTranslation.ts +2 -2
  6. package/front_end/core/host/Platform.ts +0 -9
  7. package/front_end/core/host/UserMetrics.ts +0 -55
  8. package/front_end/core/root/ExperimentNames.ts +0 -1
  9. package/front_end/core/sdk/CPUThrottlingManager.ts +1 -1
  10. package/front_end/core/sdk/CSSMetadata.ts +60 -63
  11. package/front_end/core/sdk/CSSProperty.ts +1 -5
  12. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +11 -32
  13. package/front_end/{panels/application → core/sdk}/DOMStorageModel.ts +12 -10
  14. package/front_end/core/sdk/sdk.ts +2 -0
  15. package/front_end/entrypoints/main/MainImpl.ts +12 -8
  16. package/front_end/entrypoints/main/SimpleApp.ts +3 -4
  17. package/front_end/entrypoints/main/main-meta.ts +1 -1
  18. package/front_end/generated/InspectorBackendCommands.ts +3 -3
  19. package/front_end/generated/SupportedCSSProperties.js +21 -21
  20. package/front_end/generated/protocol.ts +4 -1
  21. package/front_end/models/ai_assistance/StorageItem.ts +16 -0
  22. package/front_end/models/ai_assistance/agents/StorageAgent.ts +82 -0
  23. package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
  24. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +9 -37
  25. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +26 -3
  26. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +10 -2
  27. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +5 -1
  28. package/front_end/models/issues_manager/CookieIssue.ts +0 -4
  29. package/front_end/models/issues_manager/RelatedIssue.ts +0 -14
  30. package/front_end/models/javascript_metadata/NativeFunctions.js +0 -4
  31. package/front_end/models/web_mcp/WebMCPModel.ts +11 -2
  32. package/front_end/models/workspace/IgnoreListManager.ts +1 -1
  33. package/front_end/models/workspace/UISourceCode.ts +10 -5
  34. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +6 -1
  35. package/front_end/panels/ai_assistance/components/ChatMessage.ts +26 -9
  36. package/front_end/panels/application/ApplicationPanelSidebar.ts +32 -42
  37. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  38. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  39. package/front_end/panels/application/DOMStorageItemsView.ts +18 -13
  40. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  41. package/front_end/panels/application/ReportingApiTreeElement.ts +3 -3
  42. package/front_end/panels/application/ResourcesPanel.ts +1 -2
  43. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -2
  44. package/front_end/panels/application/StorageView.ts +1 -2
  45. package/front_end/panels/application/TrustTokensTreeElement.ts +2 -2
  46. package/front_end/panels/application/WebMCPTreeElement.ts +2 -2
  47. package/front_end/panels/application/WebMCPView.ts +74 -16
  48. package/front_end/panels/application/application.ts +0 -2
  49. package/front_end/panels/application/webMCPView.css +13 -2
  50. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  51. package/front_end/panels/console/ConsoleView.ts +3 -4
  52. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +0 -152
  53. package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
  54. package/front_end/panels/elements/StandaloneStylesContainer.ts +3 -0
  55. package/front_end/panels/elements/StylePropertiesSection.ts +0 -61
  56. package/front_end/panels/elements/StylePropertyTreeElement.ts +36 -23
  57. package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +6 -4
  58. package/front_end/panels/elements/StylesContainer.ts +1 -0
  59. package/front_end/panels/elements/StylesSidebarPane.ts +12 -7
  60. package/front_end/panels/elements/stylesSidebarPane.css +0 -8
  61. package/front_end/panels/emulation/AdvancedApp.ts +3 -3
  62. package/front_end/panels/emulation/DeviceModeToolbar.ts +207 -377
  63. package/front_end/panels/emulation/emulation-meta.ts +1 -1
  64. package/front_end/panels/network/NetworkPanel.ts +1 -1
  65. package/front_end/panels/profiler/HeapProfilerPanel.ts +1 -2
  66. package/front_end/panels/screencast/ScreencastApp.ts +3 -3
  67. package/front_end/panels/screencast/screencast-meta.ts +1 -2
  68. package/front_end/panels/settings/SettingsScreen.ts +2 -2
  69. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +2 -4
  70. package/front_end/panels/sources/ScopeChainSidebarPane.ts +5 -1
  71. package/front_end/panels/sources/SourcesNavigator.ts +1 -1
  72. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -3
  73. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +179 -145
  74. package/front_end/panels/timeline/TimelinePanel.ts +2 -2
  75. package/front_end/panels/timeline/timelineTreeView.css +2 -2
  76. package/front_end/third_party/chromium/README.chromium +1 -1
  77. package/front_end/third_party/puppeteer/README.chromium +2 -2
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +2 -2
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +3 -2
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +53 -23
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +18 -8
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +4 -0
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts +1 -1
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js +54 -19
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts +5 -0
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js +2 -9
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +3 -0
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +37 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +5 -2
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +1 -0
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +47 -65
  119. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +143 -55
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +2 -2
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +3 -2
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +53 -23
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +18 -8
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +4 -0
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js +54 -19
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts +5 -0
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js +2 -9
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +3 -0
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +37 -1
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +5 -2
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +1 -0
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/types.d.ts +47 -65
  159. package/front_end/third_party/puppeteer/package/package.json +6 -6
  160. package/front_end/third_party/puppeteer/package/src/api/Page.ts +2 -2
  161. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +69 -27
  162. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +27 -8
  163. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +4 -2
  164. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +6 -0
  165. package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +60 -18
  166. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +7 -9
  167. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +3 -0
  168. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +37 -1
  169. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +7 -2
  170. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +1 -0
  171. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  172. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  173. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +19 -14
  174. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +8 -7
  175. package/front_end/ui/components/tooltips/Tooltip.ts +3 -3
  176. package/front_end/{core/common → ui/legacy}/AppProvider.ts +1 -1
  177. package/front_end/ui/legacy/InspectorView.ts +4 -3
  178. package/front_end/ui/legacy/TabbedPane.ts +1 -1
  179. package/front_end/ui/legacy/UIUserMetrics.ts +70 -0
  180. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -8
  181. package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +0 -6
  182. package/front_end/ui/legacy/legacy.ts +6 -0
  183. package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
  184. package/package.json +1 -1
  185. package/front_end/Images/src/custom-typography.svg +0 -3
  186. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +0 -798
  187. package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.ts +0 -250
  188. package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.ts +0 -204
  189. package/front_end/ui/legacy/components/inline_editor/fontEditor.css +0 -185
  190. /package/front_end/{core/common → ui/legacy}/App.ts +0 -0
@@ -51,7 +51,6 @@ export interface AiCodeGenerationConfig {
51
51
  }
52
52
 
53
53
  export class AiCodeGenerationProvider {
54
- #devtoolsLocale: string;
55
54
  // 'ai-code-completion-enabled' setting controls both AI code completion and AI code generation.
56
55
  // Since this provider deals with code generation, the field has been named `#aiCodeGenerationEnabledSetting`.
57
56
  #aiCodeGenerationEnabledSetting =
@@ -72,9 +71,8 @@ export class AiCodeGenerationProvider {
72
71
  #controller = new AbortController();
73
72
 
74
73
  private constructor(aiCodeGenerationConfig: AiCodeGenerationConfig) {
75
- this.#devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance().locale;
76
- if (!AiCodeGeneration.AiCodeGeneration.AiCodeGeneration.isAiCodeGenerationEnabled(this.#devtoolsLocale)) {
77
- throw new Error('AI code generation feature is not enabled.');
74
+ if (!AiCodeGeneration.AiCodeGeneration.AiCodeGeneration.isAiCodeGenerationAvailable()) {
75
+ throw new Error('AI code generation feature is not available.');
78
76
  }
79
77
  this.#generationTeaser = new PanelCommon.AiCodeGenerationTeaser.AiCodeGenerationTeaser();
80
78
  this.#generationTeaser.disclaimerTooltipId =
@@ -142,8 +140,11 @@ export class AiCodeGenerationProvider {
142
140
  async #updateAiCodeGenerationState(): Promise<void> {
143
141
  const aidaAvailability = await Host.AidaClient.AidaClient.checkAccessPreconditions();
144
142
  const isAvailable = aidaAvailability === Host.AidaClient.AidaAccessPreconditions.AVAILABLE;
145
- const isEnabled = this.#aiCodeGenerationEnabledSetting.get();
146
- if (isAvailable && isEnabled) {
143
+ const devtoolsLocale = i18n.DevToolsLocale.DevToolsLocale.instance().locale;
144
+ const aiCodeGenerationEnabled =
145
+ AiCodeGeneration.AiCodeGeneration.AiCodeGeneration.isAiCodeGenerationEnabled(devtoolsLocale);
146
+ const isSettingEnabled = this.#aiCodeGenerationEnabledSetting.get();
147
+ if (isAvailable && aiCodeGenerationEnabled && isSettingEnabled) {
147
148
  if (!this.#aiCodeGenerationSettingEnabled) {
148
149
  // If the user enabled setting when code generation feature is already available,
149
150
  // we do not need to show the upgrade dialog.
@@ -153,7 +154,7 @@ export class AiCodeGenerationProvider {
153
154
  } else {
154
155
  this.#cleanupAiCodeGeneration();
155
156
  }
156
- this.#aiCodeGenerationSettingEnabled = isEnabled;
157
+ this.#aiCodeGenerationSettingEnabled = isSettingEnabled;
157
158
  }
158
159
 
159
160
  #editorKeymap(): readonly CodeMirror.KeyBinding[] {
@@ -627,9 +627,9 @@ export class Tooltip extends HTMLElement {
627
627
  throw new Error('Anchor must be an HTMLElement.');
628
628
  }
629
629
  this.#anchor = anchor;
630
- if (this.variant === 'rich' && describedbyAnchor) {
631
- console.warn(`The anchor for tooltip ${
632
- id} was defined with "aria-describedby". For rich tooltips "aria-details" is more appropriate.`);
630
+ if (this.variant === 'rich' && !detailsAnchor) {
631
+ console.warn(
632
+ `"aria-details" was not defined for tooltip ${id}. For rich tooltips "aria-details" should be defined.`);
633
633
  }
634
634
  }
635
635
 
@@ -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 * as Root from '../root/root.js';
5
+ import * as Root from '../../core/root/root.js';
6
6
 
7
7
  import type {App} from './App.js';
8
8
 
@@ -27,6 +27,7 @@ import type {Panel} from './Panel.js';
27
27
  import {type ShowMode, SplitWidget} from './SplitWidget.js';
28
28
  import {type EventData, Events as TabbedPaneEvents, type TabbedPane, type TabbedPaneTabDelegate} from './TabbedPane.js';
29
29
  import {Tooltip} from './Tooltip.js';
30
+ import {UIUserMetrics} from './UIUserMetrics.js';
30
31
  import type {TabbedViewLocation, View, ViewLocation, ViewLocationResolver} from './View.js';
31
32
  import {ViewManager} from './ViewManager.js';
32
33
  import {VBox, type Widget, WidgetFocusRestorer} from './Widget.js';
@@ -243,7 +244,7 @@ export class InspectorView extends VBox implements ViewLocationResolver {
243
244
  (event: Common.EventTarget.EventTargetEvent<EventData>) => this.tabSelected(event.data.tabId), this);
244
245
  const selectedTab = this.tabbedPane.selectedTabId;
245
246
  if (selectedTab) {
246
- Host.userMetrics.panelShown(selectedTab, true);
247
+ UIUserMetrics.instance().panelShown(selectedTab, true);
247
248
  }
248
249
  this.tabbedPane.setAccessibleName(i18nString(UIStrings.panels));
249
250
  this.tabbedPane.setTabDelegate(this.tabDelegate);
@@ -257,7 +258,7 @@ export class InspectorView extends VBox implements ViewLocationResolver {
257
258
  })}`);
258
259
 
259
260
  // Store the initial selected panel for use in launch histograms
260
- Host.userMetrics.setLaunchPanel(this.tabbedPane.selectedTabId);
261
+ UIUserMetrics.instance().setLaunchPanel(this.tabbedPane.selectedTabId);
261
262
 
262
263
  if (Host.InspectorFrontendHost.isUnderTest()) {
263
264
  this.tabbedPane.setAutoSelectFirstItemOnShow(false);
@@ -710,7 +711,7 @@ export class InspectorView extends VBox implements ViewLocationResolver {
710
711
  }
711
712
 
712
713
  private tabSelected(tabId: string): void {
713
- Host.userMetrics.panelShown(tabId);
714
+ UIUserMetrics.instance().panelShown(tabId, false);
714
715
  }
715
716
 
716
717
  setOwnerSplit(splitWidget: SplitWidget): void {
@@ -1384,11 +1384,11 @@ export class TabbedPaneTab {
1384
1384
  const tabElement = document.createElement('div');
1385
1385
  tabElement.classList.add('tabbed-pane-header-tab');
1386
1386
  tabElement.id = 'tab-' + this.#id;
1387
+ ARIAUtils.markAsTab(tabElement);
1387
1388
  ARIAUtils.setSelected(tabElement, false);
1388
1389
  ARIAUtils.setLabel(tabElement, this.title);
1389
1390
 
1390
1391
  const titleElement = tabElement.createChild('span', 'tabbed-pane-header-tab-title');
1391
- ARIAUtils.markAsTab(titleElement);
1392
1392
  titleElement.textContent = this.title;
1393
1393
  Tooltip.install(titleElement, this.tooltip || '');
1394
1394
  this.createIconElement(tabElement, titleElement, measuring);
@@ -0,0 +1,70 @@
1
+ // Copyright 2026 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as Host from '../../core/host/host.js';
6
+
7
+ export class UIUserMetrics {
8
+ #panelChangedSinceLaunch = false;
9
+ #firedLaunchHistogram = false;
10
+ #launchPanelName = '';
11
+
12
+ static #instance: UIUserMetrics|null = null;
13
+
14
+ static instance(): UIUserMetrics {
15
+ if (!this.#instance) {
16
+ this.#instance = new UIUserMetrics();
17
+ }
18
+ return this.#instance;
19
+ }
20
+
21
+ panelLoaded(panelName: string, histogramName: string): void {
22
+ if (this.#firedLaunchHistogram || panelName !== this.#launchPanelName) {
23
+ return;
24
+ }
25
+
26
+ this.#firedLaunchHistogram = true;
27
+ // Use rAF and setTimeout to ensure the marker is fired after layout and rendering.
28
+ // This will give the most accurate representation of the tool being ready for a user.
29
+ requestAnimationFrame(() => {
30
+ setTimeout(() => {
31
+ // Mark the load time so that we can pinpoint it more easily in a trace.
32
+ performance.mark(histogramName);
33
+ // If the user has switched panel before we finished loading, ignore the histogram,
34
+ // since the launch timings will have been affected and are no longer valid.
35
+ if (this.#panelChangedSinceLaunch) {
36
+ return;
37
+ }
38
+ // This fires the event for the appropriate launch histogram.
39
+ // The duration is measured as the time elapsed since the time origin of the document.
40
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.recordPerformanceHistogram(
41
+ histogramName, performance.now());
42
+ }, 0);
43
+ });
44
+ }
45
+
46
+ setLaunchPanel(panelName: string|null): void {
47
+ this.#launchPanelName = (panelName as string);
48
+ }
49
+
50
+ performanceTraceLoad(measure: PerformanceMeasure): void {
51
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.recordPerformanceHistogram(
52
+ 'DevTools.TraceLoad', measure.duration);
53
+ }
54
+
55
+ panelShown(panelName: string, isLaunching?: boolean): void {
56
+ const code = Host.UserMetrics.PanelCodes[panelName as keyof typeof Host.UserMetrics.PanelCodes] || 0;
57
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.recordEnumeratedHistogram(
58
+ Host.InspectorFrontendHostAPI.EnumeratedHistogram.PanelShown, code, Host.UserMetrics.PanelCodes.MAX_VALUE);
59
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.recordUserMetricsAction(
60
+ 'DevTools_PanelShown_' + panelName);
61
+
62
+ if (!isLaunching) {
63
+ this.#panelChangedSinceLaunch = true;
64
+ }
65
+ }
66
+
67
+ settingsPanelShown(settingsViewId: string): void {
68
+ this.panelShown('settings-' + settingsViewId);
69
+ }
70
+ }
@@ -549,14 +549,7 @@ export class CookiesTable extends UI.Widget.VBox {
549
549
  data.icons = data.icons || {};
550
550
  if (!(attribute in data.icons)) {
551
551
  data.icons[attribute] = new Icon();
552
- if (attribute === SDK.Cookie.Attribute.NAME &&
553
- IssuesManager.RelatedIssue.hasThirdPartyPhaseoutCookieIssue(cookie)) {
554
- data.icons[attribute].name = 'warning-filled';
555
- data.icons[attribute].onclick = () => IssuesManager.RelatedIssue.reveal(cookie);
556
- data.icons[attribute].style.cursor = 'pointer';
557
- } else {
558
- data.icons[attribute].name = 'info';
559
- }
552
+ data.icons[attribute].name = 'info';
560
553
  data.icons[attribute].classList.add('small');
561
554
  data.icons[attribute].title = blockedReason.uiString;
562
555
  } else if (data.icons[attribute]) {
@@ -12,9 +12,6 @@ import * as CSSAngle from './CSSAngle.js';
12
12
  import * as CSSAngleUtils from './CSSAngleUtils.js';
13
13
  import * as CSSLinearEasingModel from './CSSLinearEasingModel.js';
14
14
  import * as CSSShadowEditor from './CSSShadowEditor.js';
15
- import * as FontEditor from './FontEditor.js';
16
- import * as FontEditorUnitConverter from './FontEditorUnitConverter.js';
17
- import * as FontEditorUtils from './FontEditorUtils.js';
18
15
  import * as InlineEditorUtils from './InlineEditorUtils.js';
19
16
  import * as LinkSwatch from './LinkSwatch.js';
20
17
  import * as Swatches from './Swatches.js';
@@ -31,9 +28,6 @@ export {
31
28
  CSSAngleUtils,
32
29
  CSSLinearEasingModel,
33
30
  CSSShadowEditor,
34
- FontEditor,
35
- FontEditorUnitConverter,
36
- FontEditorUtils,
37
31
  InlineEditorUtils,
38
32
  LinkSwatch,
39
33
  Swatches,
@@ -4,6 +4,8 @@
4
4
 
5
5
  import * as ActionRegistration from './ActionRegistration.js';
6
6
  import * as ActionRegistry from './ActionRegistry.js';
7
+ import * as App from './App.js';
8
+ import * as AppProvider from './AppProvider.js';
7
9
  import * as ARIAUtils from './ARIAUtils.js';
8
10
  import * as Context from './Context.js';
9
11
  import * as ContextFlavorListener from './ContextFlavorListener.js';
@@ -45,6 +47,7 @@ import * as TextPrompt from './TextPrompt.js';
45
47
  import * as Toolbar from './Toolbar.js';
46
48
  import * as Tooltip from './Tooltip.js';
47
49
  import * as TreeOutline from './Treeoutline.js';
50
+ import * as UIUserMetrics from './UIUserMetrics.js';
48
51
  import * as UIUtils from './UIUtils.js';
49
52
  import * as View from './View.js';
50
53
  import * as ViewManager from './ViewManager.js';
@@ -54,6 +57,8 @@ import * as ZoomManager from './ZoomManager.js';
54
57
  export {
55
58
  ActionRegistration,
56
59
  ActionRegistry,
60
+ App,
61
+ AppProvider,
57
62
  ARIAUtils,
58
63
  Context,
59
64
  ContextFlavorListener,
@@ -95,6 +100,7 @@ export {
95
100
  Toolbar,
96
101
  Tooltip,
97
102
  TreeOutline,
103
+ UIUserMetrics,
98
104
  UIUtils,
99
105
  View,
100
106
  ViewManager,
@@ -1073,6 +1073,7 @@ export const knownContextValues = new Set([
1073
1073
  'copy-watch-expression-value',
1074
1074
  'copy-xpath',
1075
1075
  'core-web-vitals',
1076
+ 'corner',
1076
1077
  'corner-block-end-shape',
1077
1078
  'corner-block-start-shape',
1078
1079
  'corner-bottom-left-shape',
@@ -1135,6 +1136,7 @@ export const knownContextValues = new Set([
1135
1136
  'css-font-palette',
1136
1137
  'css-function',
1137
1138
  'css-layers',
1139
+ 'css-list-style-type',
1138
1140
  'css-location',
1139
1141
  'css-overview',
1140
1142
  'css-overview.cancel-processing',
package/package.json CHANGED
@@ -105,5 +105,5 @@
105
105
  "ip-address": "10.1.0",
106
106
  "basic-ftp": "5.2.2"
107
107
  },
108
- "version": "1.0.1625079"
108
+ "version": "1.0.1626437"
109
109
  }
@@ -1,3 +0,0 @@
1
- <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M9.5 18V13H11V14.75H17V16.25H11V18H9.5ZM3 16.25V14.75H8.5V16.25H3ZM5.8125 11H7.36875L8.19375 8.70833H11.8125L12.623 11H14.1875L10.7917 2H9.20833L5.8125 11ZM8.66667 7.39583L10.0417 3.66667L11.3542 7.39583H8.66667Z" fill="black"/>
3
- </svg>