chrome-devtools-frontend 1.0.1662965 → 1.0.1664496

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 (273) hide show
  1. package/.agents/skills/{creating-a-model → devtools-model-management}/SKILL.md +0 -1
  2. package/.agents/skills/devtools-ux-writing-refactor/SKILL.md +2 -1
  3. package/.agents/skills/fixing-skipped-tests/SKILL.md +3 -3
  4. package/.agents/skills/merging-devtools-module/SKILL.md +1 -1
  5. package/.agents/skills/migrate-chromium-test/SKILL.md +3 -2
  6. package/.agents/skills/repro-flaky-tests/SKILL.md +71 -31
  7. package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +1 -0
  8. package/docs/ui_engineering.md +2 -0
  9. package/eslint.config.mjs +1 -0
  10. package/front_end/core/common/Settings.ts +75 -0
  11. package/front_end/core/protocol_client/PuppeteerDevToolsConnection.ts +112 -0
  12. package/front_end/core/sdk/CPUProfilerModel.ts +21 -13
  13. package/front_end/core/sdk/CSSContainerQuery.ts +1 -1
  14. package/front_end/core/sdk/CSSLayer.ts +1 -1
  15. package/front_end/core/sdk/CSSMedia.ts +1 -1
  16. package/front_end/core/sdk/CSSModel.ts +1 -1
  17. package/front_end/core/sdk/CSSNavigation.ts +1 -1
  18. package/front_end/core/sdk/CSSProperty.ts +1 -1
  19. package/front_end/core/sdk/CSSQuery.ts +1 -1
  20. package/front_end/core/sdk/CSSRule.ts +1 -1
  21. package/front_end/core/sdk/CSSScope.ts +1 -1
  22. package/front_end/core/sdk/CSSStartingStyle.ts +1 -1
  23. package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
  24. package/front_end/core/sdk/CSSStyleSheetHeader.ts +1 -1
  25. package/front_end/core/sdk/CSSSupports.ts +1 -1
  26. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +1 -1
  27. package/front_end/core/sdk/NetworkManager.ts +1 -1
  28. package/front_end/core/sdk/NetworkRequest.ts +7 -7
  29. package/front_end/core/sdk/Resource.ts +1 -1
  30. package/front_end/core/sdk/ScopeTreeCache.ts +1 -1
  31. package/front_end/core/sdk/Script.ts +1 -1
  32. package/front_end/core/sdk/ServerSentEvents.ts +1 -1
  33. package/front_end/core/sdk/SourceMap.ts +1 -1
  34. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  35. package/front_end/core/sdk/sdk-meta.ts +3 -3
  36. package/front_end/{models → core}/text_utils/ContentProvider.ts +4 -6
  37. package/front_end/{models → core}/text_utils/StaticContentProvider.ts +4 -6
  38. package/front_end/{models → core}/text_utils/StreamingContentData.ts +1 -2
  39. package/front_end/{models → core}/text_utils/TextRange.ts +6 -3
  40. package/front_end/{models → core}/text_utils/TextUtils.ts +7 -7
  41. package/front_end/{models → core}/text_utils/WasmDisassembly.ts +2 -2
  42. package/front_end/core/text_utils/text_utils.ts +27 -0
  43. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +1 -1
  44. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
  45. package/front_end/entrypoints/main/MainImpl.ts +14 -1
  46. package/front_end/foundation/Universe.ts +1 -1
  47. package/front_end/models/ai_assistance/AgentProject.ts +1 -1
  48. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +3 -6
  49. package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -1
  50. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +19 -11
  51. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
  52. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +23 -10
  53. package/front_end/models/ai_assistance/agents/StorageAgent.ts +19 -18
  54. package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -3
  55. package/front_end/models/ai_assistance/contexts/FileContext.ts +7 -3
  56. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +39 -11
  57. package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +6 -3
  58. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -1
  59. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +4 -4
  60. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +8 -8
  61. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +76 -3
  62. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +11 -1
  63. package/front_end/models/badges/AiExplorerBadge.ts +8 -3
  64. package/front_end/models/badges/Badge.ts +1 -0
  65. package/front_end/models/badges/UserBadges.ts +11 -5
  66. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  67. package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
  68. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
  69. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
  70. package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
  71. package/front_end/models/bindings/FileUtils.ts +1 -1
  72. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +7 -10
  73. package/front_end/models/bindings/ResourceMapping.ts +1 -1
  74. package/front_end/models/bindings/ResourceScriptMapping.ts +1 -1
  75. package/front_end/models/bindings/SASSSourceMapping.ts +1 -1
  76. package/front_end/models/bindings/StylesSourceMapping.ts +1 -1
  77. package/front_end/models/breakpoints/BreakpointManager.ts +1 -1
  78. package/front_end/models/crux-manager/CrUXManager.ts +1 -1
  79. package/front_end/models/emulation/EmulatedDevices.ts +3 -2
  80. package/front_end/models/har/Importer.ts +1 -1
  81. package/front_end/models/har/Writer.ts +1 -1
  82. package/front_end/models/issues_manager/IssueAggregator.ts +9 -0
  83. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  84. package/front_end/models/issues_manager/LazyLoadImageIssue.ts +76 -0
  85. package/front_end/models/issues_manager/descriptions/lazyLoadImageZeroSize.md +7 -0
  86. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  87. package/front_end/models/javascript_metadata/NativeFunctions.js +9 -10
  88. package/front_end/models/live-metrics/LiveMetrics.ts +2 -3
  89. package/front_end/models/logs/NetworkLog.ts +4 -3
  90. package/front_end/models/logs/logs-meta.ts +3 -3
  91. package/front_end/models/network_time_calculator/NetworkTimeCalculator.ts +4 -4
  92. package/front_end/models/persistence/Automapping.ts +1 -1
  93. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +2 -2
  94. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +1 -1
  95. package/front_end/models/persistence/IsolatedFileSystem.ts +2 -2
  96. package/front_end/models/persistence/NetworkPersistenceManager.ts +1 -1
  97. package/front_end/models/persistence/PersistenceImpl.ts +1 -1
  98. package/front_end/models/persistence/PlatformFileSystem.ts +1 -1
  99. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +1 -1
  100. package/front_end/models/source_map_scopes/NamesResolver.ts +1 -1
  101. package/front_end/models/text_utils/text_utils.ts +2 -24
  102. package/front_end/models/trace/insights/ImageDelivery.ts +2 -2
  103. package/front_end/models/trace/insights/LegacyJavaScript.ts +1 -1
  104. package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
  105. package/front_end/models/trace/insights/ThirdParties.ts +1 -1
  106. package/front_end/models/workspace/FileManager.ts +1 -1
  107. package/front_end/models/workspace/UISourceCode.ts +1 -1
  108. package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
  109. package/front_end/models/workspace_diff/WorkspaceDiff.ts +1 -1
  110. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
  111. package/front_end/panels/accessibility/AccessibilityStrings.ts +2 -2
  112. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +1 -1
  113. package/front_end/panels/ai_assistance/ExportConversation.ts +1 -1
  114. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +1 -1
  115. package/front_end/panels/ai_assistance/components/ChatMessage.ts +1 -1
  116. package/front_end/panels/application/AppManifestView.ts +4 -4
  117. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -2
  118. package/front_end/panels/application/CrashReportContextView.ts +1 -1
  119. package/front_end/panels/application/DOMStorageItemsView.ts +1 -1
  120. package/front_end/panels/application/DeviceBoundSessionsView.ts +4 -4
  121. package/front_end/panels/application/ExtensionStorageItemsView.ts +1 -1
  122. package/front_end/panels/application/FrameDetailsView.ts +1 -1
  123. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +12 -2
  124. package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
  125. package/front_end/panels/application/application.ts +2 -0
  126. package/front_end/panels/application/components/BackForwardCacheView.ts +21 -5
  127. package/front_end/panels/application/components/CrashReportContextGrid.ts +1 -1
  128. package/front_end/panels/application/components/TrustTokensView.ts +2 -2
  129. package/front_end/panels/application/preloading/PreloadingView.ts +1 -1
  130. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
  131. package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -2
  132. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -4
  133. package/front_end/panels/autofill/AutofillView.ts +1 -1
  134. package/front_end/panels/common/AiCodeCompletionTeaser.ts +1 -1
  135. package/front_end/panels/common/ExtensionServer.ts +1 -1
  136. package/front_end/panels/console/ConsoleFilter.ts +1 -1
  137. package/front_end/panels/console/ConsoleSidebar.ts +1 -1
  138. package/front_end/panels/console/ConsoleView.ts +1 -1
  139. package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
  140. package/front_end/panels/console/PromptBuilder.ts +1 -1
  141. package/front_end/panels/coverage/CoverageDecorationManager.ts +9 -1
  142. package/front_end/panels/coverage/CoverageModel.ts +1 -1
  143. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  144. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  145. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
  146. package/front_end/panels/elements/AccessibilityTreeView.ts +38 -3
  147. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +1 -1
  148. package/front_end/panels/elements/ElementIssueUtils.ts +2 -2
  149. package/front_end/panels/elements/ElementsTreeElement.ts +10 -3
  150. package/front_end/panels/elements/StandaloneStylesContainer.ts +1 -1
  151. package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
  152. package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -1
  153. package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +1 -1
  154. package/front_end/panels/elements/StylesContainer.ts +1 -1
  155. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  156. package/front_end/panels/elements/components/CSSPropertyDocsView.ts +1 -1
  157. package/front_end/panels/explain/components/ConsoleInsight.ts +2 -2
  158. package/front_end/panels/issues/AffectedLazyLoadImagesView.ts +76 -0
  159. package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
  160. package/front_end/panels/issues/CorsIssueDetailsView.ts +1 -1
  161. package/front_end/panels/issues/IssueView.ts +2 -0
  162. package/front_end/panels/issues/issues.ts +2 -0
  163. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  164. package/front_end/panels/lighthouse/LighthouseController.ts +5 -0
  165. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  166. package/front_end/panels/network/BinaryResourceView.ts +1 -1
  167. package/front_end/panels/network/NetworkDataGridNode.ts +29 -7
  168. package/front_end/panels/network/NetworkLogView.ts +1 -1
  169. package/front_end/panels/network/NetworkLogViewColumns.ts +6 -6
  170. package/front_end/panels/network/NetworkPanel.ts +4 -4
  171. package/front_end/panels/network/NetworkSearchScope.ts +1 -1
  172. package/front_end/panels/network/RequestConditionsDrawer.ts +1 -1
  173. package/front_end/panels/network/RequestHTMLView.ts +1 -1
  174. package/front_end/panels/network/RequestPayloadView.ts +1 -1
  175. package/front_end/panels/network/RequestPreviewView.ts +1 -1
  176. package/front_end/panels/network/RequestResponseView.ts +1 -1
  177. package/front_end/panels/network/ResourceChunkView.ts +1 -1
  178. package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -1
  179. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -1
  180. package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
  181. package/front_end/panels/network/forward/UIRequestLocation.ts +1 -1
  182. package/front_end/panels/network/network-meta.ts +3 -3
  183. package/front_end/panels/profiler/HeapProfileView.ts +6 -6
  184. package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
  185. package/front_end/panels/profiler/ProfileDataGrid.ts +12 -8
  186. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -1
  187. package/front_end/panels/recorder/RecorderPanel.ts +493 -381
  188. package/front_end/panels/recorder/RecordingListView.ts +8 -37
  189. package/front_end/panels/recorder/RecordingView.ts +54 -27
  190. package/front_end/panels/recorder/SelectorPicker.ts +0 -13
  191. package/front_end/panels/recorder/StepEditor.ts +6 -14
  192. package/front_end/panels/recorder/StepView.ts +36 -105
  193. package/front_end/panels/search/SearchResultsPane.ts +1 -1
  194. package/front_end/panels/security/SecurityPanel.ts +3 -3
  195. package/front_end/panels/settings/AISettingsTab.ts +4 -4
  196. package/front_end/panels/settings/components/SyncSection.ts +4 -4
  197. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +3 -3
  198. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +1 -1
  199. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  200. package/front_end/panels/sources/CoveragePlugin.ts +1 -1
  201. package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
  202. package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +27 -3
  203. package/front_end/panels/sources/NavigatorView.ts +1 -1
  204. package/front_end/panels/sources/PersistenceActions.ts +1 -1
  205. package/front_end/panels/sources/SourcesNavigator.ts +1 -1
  206. package/front_end/panels/sources/SourcesSearchScope.ts +1 -1
  207. package/front_end/panels/sources/TabbedEditorContainer.ts +3 -3
  208. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  209. package/front_end/panels/sources/components/HeadersView.ts +1 -1
  210. package/front_end/panels/sources/filteredUISourceCodeListProvider.css +12 -1
  211. package/front_end/panels/sources/sources-meta.ts +1 -1
  212. package/front_end/panels/timeline/StatusDialog.ts +1 -1
  213. package/front_end/panels/timeline/TimelineController.ts +24 -3
  214. package/front_end/panels/timeline/TimelinePanel.ts +116 -25
  215. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +2 -2
  216. package/front_end/panels/timeline/TimelineUIUtils.ts +1 -1
  217. package/front_end/panels/timeline/components/CWVMetrics.ts +1 -1
  218. package/front_end/panels/timeline/components/IgnoreListSetting.ts +1 -1
  219. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -2
  220. package/front_end/panels/timeline/timeline-meta.ts +13 -0
  221. package/front_end/services/tracing/TracingManager.ts +27 -2
  222. package/front_end/third_party/chromium/README.chromium +1 -1
  223. package/front_end/third_party/lighthouse/README.chromium +2 -2
  224. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1418 -1413
  225. package/front_end/third_party/lighthouse/locales/en-US.json +12 -6
  226. package/front_end/third_party/lighthouse/locales/en-XL.json +12 -6
  227. package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
  228. package/front_end/third_party/puppeteer/puppeteer.ts +20 -1
  229. package/front_end/ui/components/highlighting/HighlightElement.ts +4 -1
  230. package/front_end/ui/components/highlighting/HighlightManager.ts +1 -1
  231. package/front_end/ui/components/highlighting/MarkupHighlight.ts +1 -1
  232. package/front_end/ui/components/markdown_view/MarkdownView.ts +46 -2
  233. package/front_end/ui/components/markdown_view/markdownView.css +23 -0
  234. package/front_end/ui/components/text_editor/config.ts +1 -1
  235. package/front_end/ui/components/tree_outline/TreeOutline.ts +7 -1
  236. package/front_end/ui/legacy/Infobar.ts +1 -1
  237. package/front_end/ui/legacy/InspectorView.ts +12 -7
  238. package/front_end/ui/legacy/SuggestBox.ts +1 -1
  239. package/front_end/ui/legacy/TextPrompt.ts +1 -1
  240. package/front_end/ui/legacy/Toolbar.ts +5 -2
  241. package/front_end/ui/legacy/Treeoutline.ts +26 -7
  242. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
  243. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +1 -1
  244. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +1 -1
  245. package/front_end/ui/legacy/components/data_grid/dataGrid.css +1 -1
  246. package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +27 -13
  247. package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +5 -2
  248. package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts +23 -0
  249. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +161 -54
  250. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
  251. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +1 -1
  252. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -1
  253. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  254. package/front_end/ui/legacy/components/source_frame/JSONView.ts +105 -115
  255. package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +1 -1
  256. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -1
  257. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -3
  258. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
  259. package/front_end/ui/legacy/components/source_frame/XMLView.ts +5 -1
  260. package/front_end/ui/legacy/components/source_frame/jsonView.css +4 -0
  261. package/front_end/ui/legacy/components/utils/Linkifier.ts +1 -1
  262. package/front_end/ui/legacy/inspectorCommon.css +6 -2
  263. package/front_end/ui/settings/SettingUIRegistration.ts +105 -0
  264. package/front_end/ui/settings/settings.ts +9 -0
  265. package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
  266. package/mcp/mcp.ts +1 -0
  267. package/package.json +1 -1
  268. /package/.agents/skills/{verification → devtools-verification}/SKILL.md +0 -0
  269. /package/front_end/{models → core}/text_utils/CodeMirrorUtils.ts +0 -0
  270. /package/front_end/{models → core}/text_utils/ContentData.ts +0 -0
  271. /package/front_end/{models → core}/text_utils/Text.ts +0 -0
  272. /package/front_end/{models → core}/text_utils/TextCursor.ts +0 -0
  273. /package/front_end/{models → core}/text_utils/TextUtils.snapshot.txt +0 -0
@@ -4,9 +4,8 @@
4
4
  /* eslint-disable @devtools/no-imperative-dom-api */
5
5
 
6
6
  import * as i18n from '../../../../core/i18n/i18n.js';
7
- import * as Platform from '../../../../core/platform/platform.js';
8
7
  import * as SDK from '../../../../core/sdk/sdk.js';
9
- import * as Highlighting from '../../../components/highlighting/highlighting.js';
8
+ import {html, render} from '../../../lit/lit.js';
10
9
  import * as VisualLogging from '../../../visual_logging/visual_logging.js';
11
10
  import * as UI from '../../legacy.js';
12
11
  import * as ObjectUI from '../object_ui/object_ui.js';
@@ -22,26 +21,48 @@ const UIStrings = {
22
21
  const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/source_frame/JSONView.ts', UIStrings);
23
22
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
24
23
 
24
+ export interface ViewInput {
25
+ objectTree: ObjectUI.ObjectPropertiesSection.ObjectTree;
26
+ parsedJSON: ParsedJSON;
27
+ }
28
+
29
+ export type ViewOutput = undefined;
30
+
31
+ const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTMLElement): void => {
32
+ const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(input.parsedJSON.data);
33
+ const titleText = input.parsedJSON.prefix + obj.description + input.parsedJSON.suffix;
34
+ const title = html`<span>${titleText}</span>`;
35
+ render(html`
36
+ <style>${jsonViewStyles}</style>
37
+ ${ObjectUI.ObjectPropertiesSection.renderObjectPropertiesSection(input.objectTree, title)}
38
+ `,
39
+ target, {
40
+
41
+ container: {
42
+ classes: ['json-view'],
43
+ attributes: {
44
+ jslog: VisualLogging.section('json-view'),
45
+ },
46
+ },
47
+ });
48
+ };
49
+
50
+ type View = typeof DEFAULT_VIEW;
51
+
25
52
  export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Searchable {
26
- private initialized: boolean;
27
- private readonly parsedJSON: ParsedJSON;
28
- private startCollapsed: boolean;
29
- private searchableView!: UI.SearchableView.SearchableView|null;
30
- private treeOutline!: ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection;
31
- private currentSearchFocusIndex: number;
32
- private currentSearchTreeElements: ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement[];
33
- private searchRegex: RegExp|null;
34
- constructor(parsedJSON: ParsedJSON, startCollapsed?: boolean) {
35
- super();
36
- this.initialized = false;
37
- this.registerRequiredCSS(jsonViewStyles);
38
- this.parsedJSON = parsedJSON;
53
+ #parsedJSON: ParsedJSON;
54
+ private readonly startCollapsed: boolean;
55
+ private searchableView: UI.SearchableView.SearchableView|null = null;
56
+ private objectTree: ObjectUI.ObjectPropertiesSection.ObjectTree|null = null;
57
+ private readonly search: UI.TreeOutline.TreeSearch<ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase>;
58
+ private readonly view: View;
59
+
60
+ constructor(parsedJSON: ParsedJSON, startCollapsed?: boolean, element?: HTMLElement, view: View = DEFAULT_VIEW) {
61
+ super(element);
62
+ this.#parsedJSON = parsedJSON;
39
63
  this.startCollapsed = Boolean(startCollapsed);
40
- this.element.classList.add('json-view');
41
- this.element.setAttribute('jslog', `${VisualLogging.section('json-view')}`);
42
- this.currentSearchFocusIndex = 0;
43
- this.currentSearchTreeElements = [];
44
- this.searchRegex = null;
64
+ this.search = new UI.TreeOutline.TreeSearch();
65
+ this.view = view;
45
66
  }
46
67
 
47
68
  static async createView(content: string): Promise<UI.SearchableView.SearchableView|null> {
@@ -69,6 +90,17 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
69
90
  return searchableView;
70
91
  }
71
92
 
93
+ set parsedJSON(parsedJSON: ParsedJSON) {
94
+ if (this.objectTree) {
95
+ this.objectTree.removeEventListener(ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase.Events.CHILDREN_CHANGED,
96
+ this.#onChildrenChanged, this);
97
+ }
98
+ this.#parsedJSON = parsedJSON;
99
+ this.objectTree = null;
100
+ this.onSearchCanceled();
101
+ this.requestUpdate();
102
+ }
103
+
72
104
  setSearchableView(searchableView: UI.SearchableView.SearchableView): void {
73
105
  this.searchableView = searchableView;
74
106
  }
@@ -137,129 +169,89 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
137
169
  override wasShown(): void {
138
170
  super.wasShown();
139
171
  this.initialize();
172
+ this.requestUpdate();
140
173
  }
141
174
 
142
175
  private initialize(): void {
143
- if (this.initialized) {
176
+ if (this.objectTree) {
144
177
  return;
145
178
  }
146
- this.initialized = true;
147
-
148
- const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(this.parsedJSON.data);
149
- const title = this.parsedJSON.prefix + obj.description + this.parsedJSON.suffix;
150
- this.treeOutline = new ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection(
151
- obj, title, undefined, true /* showOverflow */, false /* editable */);
152
- this.treeOutline.enableContextMenu();
179
+ const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(this.#parsedJSON.data);
180
+ this.objectTree = new ObjectUI.ObjectPropertiesSection.ObjectTree(obj, {
181
+ readOnly: true,
182
+ propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
183
+ search: this.search,
184
+ });
153
185
  if (!this.startCollapsed) {
154
- this.treeOutline.expand();
155
- }
156
- this.element.appendChild(this.treeOutline.element);
157
- const firstChild = this.treeOutline.firstChild();
158
- if (firstChild) {
159
- firstChild.select(true /* omitFocus */, false /* selectedByUser */);
186
+ this.objectTree.expanded = true;
160
187
  }
188
+ this.objectTree.addEventListener(ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase.Events.CHILDREN_CHANGED,
189
+ this.#onChildrenChanged, this);
161
190
  }
162
191
 
163
- private jumpToMatch(index: number): void {
164
- if (!this.searchRegex) {
165
- return;
166
- }
167
- const previousFocusElement = this.currentSearchTreeElements[this.currentSearchFocusIndex];
168
- if (previousFocusElement) {
169
- previousFocusElement.setSearchRegex(this.searchRegex);
170
- }
171
-
172
- const newFocusElement = this.currentSearchTreeElements[index];
173
- if (newFocusElement) {
174
- this.updateSearchIndex(index);
175
- newFocusElement.setSearchRegex(this.searchRegex, Highlighting.highlightedCurrentSearchResultClassName);
176
- newFocusElement.reveal();
177
- } else {
178
- this.updateSearchIndex(0);
179
- }
192
+ #onChildrenChanged(): void {
193
+ this.requestUpdate();
180
194
  }
181
195
 
182
- private updateSearchCount(count: number): void {
183
- if (!this.searchableView) {
196
+ override performUpdate(): void {
197
+ this.initialize();
198
+ if (!this.objectTree) {
184
199
  return;
185
200
  }
186
- this.searchableView.updateSearchMatchesCount(count);
201
+ this.view({objectTree: this.objectTree, parsedJSON: this.#parsedJSON}, undefined, this.contentElement);
187
202
  }
188
203
 
189
- private updateSearchIndex(index: number): void {
190
- this.currentSearchFocusIndex = index;
191
- if (!this.searchableView) {
192
- return;
204
+ private jumpToMatch(): void {
205
+ if (this.searchableView) {
206
+ this.search.updateSearchableView(this.searchableView);
207
+ }
208
+ const currentMatch = this.search.currentMatch();
209
+ if (currentMatch) {
210
+ let current = currentMatch.node.parent;
211
+ while (current) {
212
+ current.expanded = true;
213
+ current = current.parent;
214
+ }
193
215
  }
194
- this.searchableView.updateCurrentMatchIndex(index);
195
216
  }
196
217
 
197
218
  onSearchCanceled(): void {
198
- this.searchRegex = null;
199
- this.currentSearchTreeElements = [];
200
-
201
- let element: UI.TreeOutline.TreeElement|null;
202
- for (element = this.treeOutline.rootElement(); element; element = element.traverseNextTreeElement(false)) {
203
- if (!(element instanceof ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement)) {
204
- continue;
205
- }
206
- element.revertHighlightChanges();
219
+ this.search.reset();
220
+ if (this.searchableView) {
221
+ this.search.updateSearchableView(this.searchableView);
207
222
  }
208
- this.updateSearchCount(0);
209
- this.updateSearchIndex(0);
210
223
  }
211
224
 
212
- performSearch(searchConfig: UI.SearchableView.SearchConfig, _shouldJump: boolean, jumpBackwards?: boolean): void {
213
- let newIndex: number = this.currentSearchFocusIndex;
214
- const previousSearchFocusElement = this.currentSearchTreeElements[newIndex];
225
+ performSearch(searchConfig: UI.SearchableView.SearchConfig, shouldJump: boolean, jumpBackwards?: boolean): void {
226
+ this.initialize();
215
227
  this.onSearchCanceled();
216
- this.searchRegex = searchConfig.toSearchRegex(true).regex;
228
+ const searchRegex = searchConfig.toSearchRegex(true).regex;
229
+ if (!this.objectTree) {
230
+ return;
231
+ }
217
232
 
218
- let element: UI.TreeOutline.TreeElement|null;
219
- for (element = this.treeOutline.rootElement(); element; element = element.traverseNextTreeElement(false)) {
220
- if (!(element instanceof ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement)) {
221
- continue;
222
- }
223
- const hasMatch = element.setSearchRegex(this.searchRegex);
224
- if (hasMatch) {
225
- this.currentSearchTreeElements.push(element);
233
+ this.search.search(this.objectTree, jumpBackwards ?? false, (node, closeTag) => {
234
+ if (closeTag || !searchRegex) {
235
+ return [];
226
236
  }
227
- if (previousSearchFocusElement === element) {
228
- const currentIndex = this.currentSearchTreeElements.length - 1;
229
- if (hasMatch || jumpBackwards) {
230
- newIndex = currentIndex;
231
- } else {
232
- newIndex = currentIndex + 1;
233
- }
234
- }
235
- }
236
- this.updateSearchCount(this.currentSearchTreeElements.length);
237
+ return node.match(searchRegex);
238
+ });
237
239
 
238
- if (!this.currentSearchTreeElements.length) {
239
- this.updateSearchIndex(-1);
240
- return;
240
+ if (shouldJump) {
241
+ this.jumpToMatch();
242
+ } else if (this.searchableView) {
243
+ this.search.updateSearchableView(this.searchableView);
241
244
  }
242
- newIndex = Platform.NumberUtilities.mod(newIndex, this.currentSearchTreeElements.length);
243
-
244
- this.jumpToMatch(newIndex);
245
245
  }
246
246
 
247
247
  jumpToNextSearchResult(): void {
248
- if (!this.currentSearchTreeElements.length) {
249
- return;
250
- }
251
- const newIndex =
252
- Platform.NumberUtilities.mod(this.currentSearchFocusIndex + 1, this.currentSearchTreeElements.length);
253
- this.jumpToMatch(newIndex);
248
+ this.search.next();
249
+ this.jumpToMatch();
254
250
  }
255
251
 
256
252
  jumpToPreviousSearchResult(): void {
257
- if (!this.currentSearchTreeElements.length) {
258
- return;
259
- }
260
- const newIndex =
261
- Platform.NumberUtilities.mod(this.currentSearchFocusIndex - 1, this.currentSearchTreeElements.length);
262
- this.jumpToMatch(newIndex);
253
+ this.search.prev();
254
+ this.jumpToMatch();
263
255
  }
264
256
 
265
257
  supportsCaseSensitiveSearch(): boolean {
@@ -301,11 +293,9 @@ export class SearchableJsonView extends UI.SearchableView.SearchableView {
301
293
  }
302
294
 
303
295
  set jsonObject(obj: Object|null|undefined) {
304
- const jsonView = new JSONView(new ParsedJSON(obj, '', ''));
305
- this.#jsonView.detach();
306
- this.#jsonView = jsonView;
307
- this.searchProvider = jsonView;
308
- jsonView.show(this.element);
296
+ this.#jsonView.parsedJSON = new ParsedJSON(obj, '', '');
297
+ this.searchProvider = this.#jsonView;
298
+ this.#jsonView.show(this.element);
309
299
  this.requestUpdate();
310
300
  }
311
301
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  import * as Common from '../../../../core/common/common.js';
7
7
  import * as i18n from '../../../../core/i18n/i18n.js';
8
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
8
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
9
9
  import * as UI from '../../legacy.js';
10
10
 
11
11
  import {FontView} from './FontView.js';
@@ -36,8 +36,8 @@ import '../../legacy.js';
36
36
 
37
37
  import * as Common from '../../../../core/common/common.js';
38
38
  import * as i18n from '../../../../core/i18n/i18n.js';
39
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
39
40
  import * as FormatterActions from '../../../../entrypoints/formatter_worker/FormatterActions.js'; // eslint-disable-line @devtools/es-modules-import
40
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
41
41
  import {render} from '../../../../ui/lit/lit.js';
42
42
  import * as UI from '../../legacy.js';
43
43
 
@@ -9,8 +9,8 @@ import * as i18n from '../../../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../../../core/platform/platform.js';
10
10
  import * as Root from '../../../../core/root/root.js';
11
11
  import * as SDK from '../../../../core/sdk/sdk.js';
12
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
12
13
  import * as Formatter from '../../../../models/formatter/formatter.js';
13
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
14
14
  import * as PanelCommon from '../../../../panels/common/common.js';
15
15
  import * as CodeMirror from '../../../../third_party/codemirror.next/codemirror.next.js';
16
16
  import * as CodeHighlighter from '../../../components/code_highlighter/code_highlighter.js';
@@ -73,7 +73,7 @@ const UIStrings = {
73
73
  * @example {allow pasting} PH1
74
74
  */
75
75
  doNotPaste:
76
- 'Don\'t paste code you do not understand or have not reviewed yourself into DevTools. This could allow attackers to steal your identity or take control of your computer. Please type “{PH1}” below to allow pasting.',
76
+ 'Dont paste code you do not understand or have not reviewed yourself into DevTools. This could allow attackers to steal your identity or take control of your computer. Please type “{PH1}” below to allow pasting.',
77
77
  /**
78
78
  * @description Text a user needs to type in order to confirm that they are aware of the danger of pasting code into the DevTools console.
79
79
  */
@@ -88,7 +88,7 @@ const UIStrings = {
88
88
  * a text editor.
89
89
  */
90
90
  binaryContentError:
91
- 'Editor can\'t show binary data. Use the "Response" tab in the "Network" panel to inspect this resource.',
91
+ 'Editor cant show binary data. Use the "Response" tab in the "Network" panel to inspect this resource.',
92
92
  } as const;
93
93
  const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/source_frame/SourceFrame.ts', UIStrings);
94
94
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable @devtools/no-imperative-dom-api */
5
5
 
6
6
  import type * as Common from '../../../../core/common/common.js';
7
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
7
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
8
8
  import * as LinearMemoryInspectorComponents from '../../../../panels/linear_memory_inspector/components/components.js';
9
9
  import * as UI from '../../legacy.js';
10
10
 
@@ -5,7 +5,7 @@
5
5
  import '../../../components/highlighting/highlighting.js';
6
6
 
7
7
  import * as i18n from '../../../../core/i18n/i18n.js';
8
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
8
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
9
9
  import * as Lit from '../../../lit/lit.js';
10
10
  import * as VisualLogging from '../../../visual_logging/visual_logging.js';
11
11
  import * as UI from '../../legacy.js';
@@ -249,6 +249,10 @@ export class XMLTreeViewNode {
249
249
  return this.#children;
250
250
  }
251
251
 
252
+ treeNodeChildren(): Iterable<XMLTreeViewNode> {
253
+ return this.children();
254
+ }
255
+
252
256
  match(regex: RegExp, closeTag: boolean): RegExpStringIterator<RegExpExecArray> {
253
257
  return textView(this, closeTag).matchAll(regex);
254
258
  }
@@ -8,3 +8,7 @@
8
8
  padding: 2px 6px;
9
9
  overflow: auto;
10
10
  }
11
+
12
+ devtools-tree {
13
+ display: block;
14
+ }
@@ -9,11 +9,11 @@ import * as Host from '../../../../core/host/host.js';
9
9
  import * as i18n from '../../../../core/i18n/i18n.js';
10
10
  import * as Platform from '../../../../core/platform/platform.js';
11
11
  import * as SDK from '../../../../core/sdk/sdk.js';
12
+ import * as TextUtils from '../../../../core/text_utils/text_utils.js';
12
13
  import type * as Protocol from '../../../../generated/protocol.js';
13
14
  import * as Bindings from '../../../../models/bindings/bindings.js';
14
15
  import * as Breakpoints from '../../../../models/breakpoints/breakpoints.js';
15
16
  import type * as StackTrace from '../../../../models/stack_trace/stack_trace.js';
16
- import * as TextUtils from '../../../../models/text_utils/text_utils.js';
17
17
  import type * as Trace from '../../../../models/trace/trace.js';
18
18
  import * as Workspace from '../../../../models/workspace/workspace.js';
19
19
  import * as UIHelpers from '../../../helpers/helpers.js';
@@ -141,9 +141,11 @@ iframe.widget {
141
141
  display: none !important; /* stylelint-disable-line declaration-no-important */
142
142
  }
143
143
 
144
- .highlighted-search-result,:host::highlight(highlighted-search-result) {
144
+ .highlighted-search-result,
145
+ :host::highlight(highlighted-search-result) {
145
146
  border-radius: 1px;
146
147
  background-color: var(--sys-color-yellow-container);
148
+ color: var(--sys-color-on-yellow-container);
147
149
  outline: 1px solid var(--sys-color-yellow-container);
148
150
  }
149
151
 
@@ -320,7 +322,8 @@ input[type='range']:disabled::-webkit-slider-thumb {
320
322
  }
321
323
  }
322
324
 
323
- .highlighted-search-result.current-search-result,:host::highlight(current-search-result) {
325
+ .highlighted-search-result.current-search-result,
326
+ :host::highlight(current-search-result) {
324
327
  /* Note: this value is used in light & dark mode */
325
328
  --override-current-search-result-background-color: rgb(255 127 0 / 80%);
326
329
 
@@ -329,6 +332,7 @@ input[type='range']:disabled::-webkit-slider-thumb {
329
332
  padding: 1px;
330
333
  margin: -1px;
331
334
  background-color: var(--override-current-search-result-background-color);
335
+ color: var(--sys-color-on-surface);
332
336
  }
333
337
 
334
338
  .dimmed {
@@ -0,0 +1,105 @@
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 Common from '../../core/common/common.js';
6
+ import type * as Platform from '../../core/platform/platform.js';
7
+
8
+ export interface SettingUIDescriptor {
9
+ /**
10
+ * The category with which the setting is displayed in the UI.
11
+ */
12
+ category?: Common.SettingRegistration.SettingCategory;
13
+ /**
14
+ * Used to sort on screen the settings that belong to the same category.
15
+ */
16
+ order?: number;
17
+ /**
18
+ * The title with which the setting is shown on screen.
19
+ */
20
+ title?: () => Platform.UIString.LocalizedString;
21
+ /**
22
+ * Words used to find a setting in the Command Menu.
23
+ */
24
+ tags?: Array<() => Platform.UIString.LocalizedString>;
25
+ /**
26
+ * The possible values the setting can have, each with a description composed of a title and an optional text.
27
+ */
28
+ options?: Common.SettingRegistration.SettingExtensionOption[];
29
+ /**
30
+ * Whether DevTools must be reloaded for a change in the setting to take effect.
31
+ */
32
+ reloadRequired?: boolean;
33
+ /**
34
+ * If a setting is deprecated, define this notice to show an appropriate warning according to the `warning` property.
35
+ * If `disabled` is set, the setting will be disabled in the settings UI. In that case, `experiment` optionally can be
36
+ * set to link to an experiment (by experiment name). The information icon in the settings UI can then be clicked to
37
+ * jump to the experiment. If a setting is not disabled, the experiment entry will be ignored.
38
+ */
39
+ deprecationNotice?: {disabled: boolean, warning: () => Platform.UIString.LocalizedString, experiment?: string};
40
+ /**
41
+ * See {@link LearnMore} for more info.
42
+ */
43
+ learnMore?: Common.SettingRegistration.LearnMore;
44
+ }
45
+
46
+ export interface RegisteredSettingUI {
47
+ descriptor: Common.Settings.SettingDescriptor<unknown>;
48
+ uiDescriptor: SettingUIDescriptor;
49
+ }
50
+
51
+ const registeredSettings = new Map<string, RegisteredSettingUI>();
52
+
53
+ export function register(
54
+ settingDescriptor: Common.Settings.SettingDescriptor<unknown>,
55
+ settingUIDescriptor: SettingUIDescriptor,
56
+ ): void {
57
+ const settingName = settingDescriptor.name;
58
+ if (registeredSettings.has(settingName)) {
59
+ throw new Error(`Duplicate setting name '${settingName}'`);
60
+ }
61
+ registeredSettings.set(settingName, {descriptor: settingDescriptor, uiDescriptor: settingUIDescriptor});
62
+ }
63
+
64
+ export function getRegisteredSettings(): readonly RegisteredSettingUI[] {
65
+ const combined = new Map<string, RegisteredSettingUI>();
66
+ for (const legacy of Common.SettingRegistration.getRegisteredSettings()) {
67
+ combined.set(legacy.settingName, {
68
+ descriptor: {
69
+ name: legacy.settingName,
70
+ type: legacy.settingType,
71
+ defaultValue: legacy.defaultValue,
72
+ storageType: legacy.storageType,
73
+ },
74
+ uiDescriptor: {
75
+ category: legacy.category,
76
+ order: legacy.order,
77
+ title: legacy.title,
78
+ tags: legacy.tags,
79
+ options: legacy.options,
80
+ reloadRequired: legacy.reloadRequired,
81
+ deprecationNotice: legacy.deprecationNotice,
82
+ learnMore: legacy.learnMore,
83
+ },
84
+ });
85
+ }
86
+
87
+ for (const [name, registeredUI] of registeredSettings) {
88
+ combined.set(name, registeredUI);
89
+ }
90
+
91
+ return Array.from(combined.values());
92
+ }
93
+
94
+ export function resolve(settingDescriptor: Common.Settings.SettingDescriptor<unknown>): SettingUIDescriptor {
95
+ const settingUI = registeredSettings.get(settingDescriptor.name) ??
96
+ getRegisteredSettings().find(registered => registered.descriptor.name === settingDescriptor.name);
97
+ if (!settingUI) {
98
+ throw new Error(`No UI descriptor registered for setting '${settingDescriptor.name}'`);
99
+ }
100
+ return settingUI.uiDescriptor;
101
+ }
102
+
103
+ export function resetSettings(): void {
104
+ registeredSettings.clear();
105
+ }
@@ -0,0 +1,9 @@
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 SettingUIRegistration from './SettingUIRegistration.js';
6
+
7
+ export {
8
+ SettingUIRegistration,
9
+ };
@@ -1468,6 +1468,8 @@ export const knownContextValues = new Set([
1468
1468
  'dynamic-synced-setting',
1469
1469
  'e-ink',
1470
1470
  'early-hints-headers',
1471
+ 'ease-in-out',
1472
+ 'ease-out',
1471
1473
  'edit',
1472
1474
  'edit-and-resend',
1473
1475
  'edit-attribute',
@@ -1679,6 +1681,7 @@ export const knownContextValues = new Set([
1679
1681
  'fangsong',
1680
1682
  'fantasy',
1681
1683
  'fast-4g',
1684
+ 'fast-out-linear-in',
1682
1685
  'feedback',
1683
1686
  'fetch',
1684
1687
  'fetch-and-xhr',
@@ -2322,6 +2325,7 @@ export const knownContextValues = new Set([
2322
2325
  'layout',
2323
2326
  'layout-count',
2324
2327
  'layout-shifts',
2328
+ 'lazy-load-image-details',
2325
2329
  'lcp-breakdown',
2326
2330
  'lcp-breakdown-widget',
2327
2331
  'lcp-discovery-widget',
@@ -2563,6 +2567,7 @@ export const knownContextValues = new Set([
2563
2567
  'line-height-value-type',
2564
2568
  'line-names',
2565
2569
  'line-numbers',
2570
+ 'linear',
2566
2571
  'linear-memory-inspector',
2567
2572
  'linear-memory-inspector.address',
2568
2573
  'linear-memory-inspector.byte-cell',
@@ -3477,6 +3482,7 @@ export const knownContextValues = new Set([
3477
3482
  'screen',
3478
3483
  'screen-rotation',
3479
3484
  'screencast-enabled',
3485
+ 'screenshot-capture-mode',
3480
3486
  'screenshots',
3481
3487
  'script',
3482
3488
  'script-blocked-by-csp',
@@ -3952,6 +3958,8 @@ export const knownContextValues = new Set([
3952
3958
  'sv',
3953
3959
  'sw',
3954
3960
  'sw-scope',
3961
+ 'switch-to-accessibility-tree',
3962
+ 'switch-to-dom-tree',
3955
3963
  'symbols',
3956
3964
  'sync-preferences',
3957
3965
  'sync-tag',
@@ -4088,6 +4096,7 @@ export const knownContextValues = new Set([
4088
4096
  'timeline-range-summary',
4089
4097
  'timeline-save-as-gz',
4090
4098
  'timeline-scope',
4099
+ 'timeline-screenshot-capture-mode',
4091
4100
  'timeline-settings-pane',
4092
4101
  'timeline-settings-toggle',
4093
4102
  'timeline-show-all-events',
@@ -4316,6 +4325,10 @@ export const knownContextValues = new Set([
4316
4325
  'touchmove',
4317
4326
  'touchstart',
4318
4327
  'tr',
4328
+ 'tracing.screenshot-size.100-11250',
4329
+ 'tracing.screenshot-size.1000-100',
4330
+ 'tracing.screenshot-size.250-1800',
4331
+ 'tracing.screenshot-size.500-450',
4319
4332
  'track-configuration-enter',
4320
4333
  'track-configuration-exit',
4321
4334
  'tracking-sites-details',
package/mcp/mcp.ts CHANGED
@@ -21,6 +21,7 @@ export * as I18n from '../front_end/core/i18n/i18n.js';
21
21
  export type * as CDPConnection from '../front_end/core/protocol_client/CDPConnection.js';
22
22
  export {ConnectionTransport} from '../front_end/core/protocol_client/ConnectionTransport.js';
23
23
  export * as ProtocolClient from '../front_end/core/protocol_client/protocol_client.js';
24
+ export {PuppeteerDevToolsConnection} from '../front_end/core/protocol_client/PuppeteerDevToolsConnection.js';
24
25
  export {DebuggerModel} from '../front_end/core/sdk/DebuggerModel.js';
25
26
  export * as NetworkManager from '../front_end/core/sdk/NetworkManager.js';
26
27
  export {RuntimeModel} from '../front_end/core/sdk/RuntimeModel.js';
package/package.json CHANGED
@@ -92,5 +92,5 @@
92
92
  "webidl2": "24.5.0",
93
93
  "yargs": "17.7.2"
94
94
  },
95
- "version": "1.0.1662965"
95
+ "version": "1.0.1664496"
96
96
  }
File without changes