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
@@ -86,7 +86,7 @@ const UIStrings = {
86
86
  */
87
87
  showLessOfSetting: 'Show less of {PH1}',
88
88
  /**
89
- * @description Header for a list of feature attributes. 'When on, youll be able to …'.
89
+ * @description Header for a list of feature attributes. 'When on, you'll be able to …'.
90
90
  */
91
91
  whenOn: 'When on',
92
92
  /**
@@ -257,11 +257,11 @@ const UIStrings = {
257
257
  */
258
258
  enableAiCodeSuggestions: 'Enable AI code suggestions',
259
259
  /**
260
- * @description Message shown to the user if the age check isnt successful.
260
+ * @description Message shown to the user if the age check isn't successful.
261
261
  */
262
262
  ageRestricted: 'This feature is only available to users 18 years or older.',
263
263
  /**
264
- * @description The error message when the user isnt logged in to Chrome.
264
+ * @description The error message when the user isn't logged in to Chrome.
265
265
  */
266
266
  notLoggedIn: 'This feature is only available when you sign in to Chrome with your Google account.',
267
267
  /**
@@ -269,7 +269,7 @@ const UIStrings = {
269
269
  */
270
270
  offline: 'This feature is only available with an active internet connection.',
271
271
  /**
272
- * @description Text informing the user that AI assistance isnt available in Incognito mode or Guest mode.
272
+ * @description Text informing the user that AI assistance isn't available in Incognito mode or Guest mode.
273
273
  */
274
274
  notAvailableInIncognitoMode: 'AI assistance isn’t available in Incognito mode or Guest mode.',
275
275
  } as const;
@@ -24,25 +24,25 @@ import syncSectionStyles from './syncSection.css.js';
24
24
 
25
25
  const UIStrings = {
26
26
  /**
27
- * @description Text shown to the user in Settings. ‘This setting refers
27
+ * @description Text shown to the user in Settings. ‘This setting' refers
28
28
  * to a checkbox that is disabled.
29
29
  */
30
30
  syncDisabled: 'To turn this setting on, you must enable Chrome sync.',
31
31
  /**
32
32
  * @description Text shown to the user in Settings. Explains why the checkbox
33
- * for saving DevTools settings to the users Google account is inactive.
33
+ * for saving DevTools settings to the user's Google account is inactive.
34
34
  */
35
35
  preferencesSyncDisabled: 'You need to first enable saving `Chrome` settings in your `Google` account.',
36
36
  /**
37
37
  * @description Label for the account email address. Shown in DevTools Settings in
38
38
  * front of the email address currently used for Chrome Sync.
39
39
  */
40
- signedIn: 'Signed into Chrome as:',
40
+ signedIn: 'Signed in to Chrome as:',
41
41
  /**
42
42
  * @description Label for the account settings. Shown in DevTools Settings when
43
43
  * the user is not logged in to Chrome.
44
44
  */
45
- notSignedIn: 'You’re not signed into Chrome.',
45
+ notSignedIn: 'You’re not signed in to Chrome.',
46
46
  /**
47
47
  * @description Label for the Google Developer Program profile status that corresponds to
48
48
  * the standard plan (no subscription).
@@ -40,12 +40,12 @@ const UIStrings = {
40
40
  */
41
41
  brandProperties: 'User agent properties',
42
42
  /**
43
- * @description Input field placeholder for brands browser name.
43
+ * @description Input field placeholder for brand's browser name.
44
44
  * Brands here relate to different browser brands/vendors like Google Chrome, Microsoft Edge, etc.
45
45
  */
46
46
  brandName: 'Brand',
47
47
  /**
48
- * @description ARIA label for brands browser name input field.
48
+ * @description ARIA label for brand's browser name input field.
49
49
  * Brands here relate to different browser brands/vendors like Google Chrome, Microsoft Edge, etc.
50
50
  * @example {index} PH1
51
51
  */
@@ -61,7 +61,7 @@ const UIStrings = {
61
61
  */
62
62
  brandVersionPlaceholder: 'Version (e.g. 87.0.4280.88)',
63
63
  /**
64
- * @description ARIA label for brands browser version input field.
64
+ * @description ARIA label for brand's browser version input field.
65
65
  * Brands here relate to different browser brands/vendors like Google Chrome, Microsoft Edge, etc.
66
66
  * @example {index} PH1
67
67
  */
@@ -6,9 +6,9 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
9
10
  import * as Protocol from '../../generated/protocol.js';
10
11
  import * as Persistence from '../../models/persistence/persistence.js';
11
- import * as TextUtils from '../../models/text_utils/text_utils.js';
12
12
  import * as Workspace from '../../models/workspace/workspace.js';
13
13
  import * as UI from '../../ui/legacy/legacy.js';
14
14
 
@@ -10,9 +10,9 @@ import * as i18n from '../../core/i18n/i18n.js';
10
10
  import * as Platform from '../../core/platform/platform.js';
11
11
  import {assertNotNullOrUndefined} from '../../core/platform/platform.js';
12
12
  import * as SDK from '../../core/sdk/sdk.js';
13
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
13
14
  import * as Bindings from '../../models/bindings/bindings.js';
14
15
  import * as Breakpoints from '../../models/breakpoints/breakpoints.js';
15
- import * as TextUtils from '../../models/text_utils/text_utils.js';
16
16
  import * as Workspace from '../../models/workspace/workspace.js';
17
17
  import * as Input from '../../ui/components/input/input.js';
18
18
  import * as RenderCoordinator from '../../ui/components/render_coordinator/render_coordinator.js';
@@ -6,7 +6,7 @@
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
- import * as TextUtils from '../../models/text_utils/text_utils.js';
9
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
10
10
  import * as Workspace from '../../models/workspace/workspace.js';
11
11
  import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
12
12
  import type * as TextEditor from '../../ui/components/text_editor/text_editor.js';
@@ -9,6 +9,7 @@ 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 * as Protocol from '../../generated/protocol.js';
13
14
  import * as Badges from '../../models/badges/badges.js';
14
15
  import * as Bindings from '../../models/bindings/bindings.js';
@@ -16,7 +17,6 @@ import * as Breakpoints from '../../models/breakpoints/breakpoints.js';
16
17
  import * as Formatter from '../../models/formatter/formatter.js';
17
18
  import * as SourceMapScopes from '../../models/source_map_scopes/source_map_scopes.js';
18
19
  import * as StackTrace from '../../models/stack_trace/stack_trace.js';
19
- import * as TextUtils from '../../models/text_utils/text_utils.js';
20
20
  import * as Workspace from '../../models/workspace/workspace.js';
21
21
  import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
22
22
  import * as Buttons from '../../ui/components/buttons/buttons.js';
@@ -41,7 +41,7 @@ const UIStrings = {
41
41
  /**
42
42
  * @description Text in Debugger Plugin of the Sources panel
43
43
  */
44
- thisScriptIsOnTheDebuggersIgnore: 'This script is on the debugger\'s ignore list',
44
+ thisScriptIsOnTheDebuggersIgnore: 'This script is on the debuggers ignore list',
45
45
  /**
46
46
  * @description Text to stop preventing the debugger from stepping into library code
47
47
  */
@@ -123,11 +123,11 @@ const UIStrings = {
123
123
  /**
124
124
  * @description Text in Debugger Plugin of the Sources panel
125
125
  */
126
- debuggingPowerReduced: 'DevTools can\'t show authored sources, but you can debug the deployed code.',
126
+ debuggingPowerReduced: 'DevTools cant show authored sources, but you can debug the deployed code.',
127
127
  /**
128
128
  * @description Text in Debugger Plugin of the Sources panel
129
129
  */
130
- reloadForSourceMap: 'To enable again, make sure the file isn\'t on the ignore list and reload.',
130
+ reloadForSourceMap: 'To enable again, make sure the file isnt on the ignore list and reload.',
131
131
  /**
132
132
  * @description Text in Debugger Plugin of the Sources panel
133
133
  * @example {http://site.com/lib.js.map} PH1
@@ -9,7 +9,7 @@ import * as i18n from '../../core/i18n/i18n.js';
9
9
  import * as Persistence from '../../models/persistence/persistence.js';
10
10
  import * as Workspace from '../../models/workspace/workspace.js';
11
11
  import * as QuickOpen from '../../ui/legacy/components/quick_open/quick_open.js';
12
- import {Directives, html, type TemplateResult} from '../../ui/lit/lit.js';
12
+ import {Directives, html, nothing, type TemplateResult} from '../../ui/lit/lit.js';
13
13
 
14
14
  import {FilePathScoreFunction} from './FilePathScoreFunction.js';
15
15
  import filteredUISourceCodeListProviderStyles from './filteredUISourceCodeListProvider.css.js';
@@ -24,12 +24,18 @@ const UIStrings = {
24
24
  * @example {compile.html} PH1
25
25
  */
26
26
  sIgnoreListed: '{PH1} (ignore listed)',
27
+ /**
28
+ * @description Tag indicating a file is from the local workspace
29
+ */
30
+ workspace: 'Workspace',
27
31
  } as const;
28
32
 
29
33
  const str_ = i18n.i18n.registerUIStrings('panels/sources/FilteredUISourceCodeListProvider.ts', UIStrings);
30
34
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
31
35
  const {classMap} = Directives;
32
36
 
37
+ const FILE_SYSTEM_SCORE_BONUS = 1_000_000;
38
+
33
39
  export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidget.Provider {
34
40
  private queryLineNumberAndColumnNumber: string;
35
41
  private defaultScores: Map<Workspace.UISourceCode.UISourceCode, number>|null;
@@ -48,6 +54,18 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
48
54
  this.uiSourceCodeIds = new Set();
49
55
  }
50
56
 
57
+ /**
58
+ * Checks if the given UISourceCode belongs to a file system project.
59
+ * This includes:
60
+ * - Workspace.Workspace.projectTypes.FileSystem: Standard workspace folders added by the user.
61
+ * - Workspace.Workspace.projectTypes.ConnectableFileSystem: Workspace folders connected via custom protocols.
62
+ */
63
+ private isFileSystemFile(uiSourceCode: Workspace.UISourceCode.UISourceCode): boolean {
64
+ const projectType = uiSourceCode.project().type();
65
+ return projectType === Workspace.Workspace.projectTypes.FileSystem ||
66
+ projectType === Workspace.Workspace.projectTypes.ConnectableFileSystem;
67
+ }
68
+
51
69
  private projectRemoved(event: Common.EventTarget.EventTargetEvent<Workspace.Workspace.Project>): void {
52
70
  const project = event.data;
53
71
  this.populate(project);
@@ -116,8 +134,10 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
116
134
  override itemScoreAt(itemIndex: number, query: string): number {
117
135
  const uiSourceCode = this.uiSourceCodes[itemIndex];
118
136
  const score = this.defaultScores ? (this.defaultScores.get(uiSourceCode) || 0) : 0;
137
+ const fileSystemBonus = this.isFileSystemFile(uiSourceCode) ? FILE_SYSTEM_SCORE_BONUS : 0;
138
+
119
139
  if (!query || query.length < 2) {
120
- return score;
140
+ return score + fileSystemBonus;
121
141
  }
122
142
 
123
143
  if (this.query !== query) {
@@ -148,7 +168,8 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
148
168
  }
149
169
 
150
170
  const fullDisplayName = uiSourceCode.fullDisplayName();
151
- return score + multiplier * (contentTypeBonus + this.scorer.calculateScore(fullDisplayName, null));
171
+ return score + multiplier * (contentTypeBonus + this.scorer.calculateScore(fullDisplayName, null)) +
172
+ fileSystemBonus;
152
173
  }
153
174
 
154
175
  override renderItem(itemIndex: number, query: string): TemplateResult {
@@ -179,6 +200,8 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
179
200
  subtitleRanges.push({offset: indexes[i], length: 1});
180
201
  }
181
202
  }
203
+ const isFileSystem = this.isFileSystemFile(uiSourceCode);
204
+
182
205
  // clang-format off
183
206
  return html`
184
207
  <style>${filteredUISourceCodeListProviderStyles}</style>
@@ -196,6 +219,7 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
196
219
  class="filtered-ui-source-code-subtitle" title=${tooltipText}>
197
220
  ${this.renderSubtitleElement(fullDisplayName.substring(0, fileNameIndex + 1))}
198
221
  </devtools-highlight>
222
+ ${isFileSystem ? html`<span class="tag">${i18nString(UIStrings.workspace)}</span>` : nothing}
199
223
  </div>`;
200
224
  // clang-format on
201
225
  }
@@ -9,10 +9,10 @@ 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 * as AiAssistance from '../../models/ai_assistance/ai_assistance.js';
13
14
  import * as Bindings from '../../models/bindings/bindings.js';
14
15
  import * as Persistence from '../../models/persistence/persistence.js';
15
- import * as TextUtils from '../../models/text_utils/text_utils.js';
16
16
  import * as Workspace from '../../models/workspace/workspace.js';
17
17
  import * as Buttons from '../../ui/components/buttons/buttons.js';
18
18
  import * as Spinners from '../../ui/components/spinners/spinners.js';
@@ -7,9 +7,9 @@ import * as Host from '../../core/host/host.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import type * as Platform from '../../core/platform/platform.js';
9
9
  import * as SDK from '../../core/sdk/sdk.js';
10
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
10
11
  import * as Bindings from '../../models/bindings/bindings.js';
11
12
  import * as Persistence from '../../models/persistence/persistence.js';
12
- import * as TextUtils from '../../models/text_utils/text_utils.js';
13
13
  import * as Workspace from '../../models/workspace/workspace.js';
14
14
  import * as UI from '../../ui/legacy/legacy.js';
15
15
 
@@ -11,9 +11,9 @@ import * as Host from '../../core/host/host.js';
11
11
  import * as i18n from '../../core/i18n/i18n.js';
12
12
  import * as Platform from '../../core/platform/platform.js';
13
13
  import * as SDK from '../../core/sdk/sdk.js';
14
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
14
15
  import * as Bindings from '../../models/bindings/bindings.js';
15
16
  import * as Persistence from '../../models/persistence/persistence.js';
16
- import * as TextUtils from '../../models/text_utils/text_utils.js';
17
17
  import * as Workspace from '../../models/workspace/workspace.js';
18
18
  import * as uiI18n from '../../ui/i18n/i18n.js';
19
19
  import {Link} from '../../ui/kit/kit.js';
@@ -4,9 +4,9 @@
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Platform from '../../core/platform/platform.js';
7
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
7
8
  import * as Bindings from '../../models/bindings/bindings.js';
8
9
  import * as Persistence from '../../models/persistence/persistence.js';
9
- import * as TextUtils from '../../models/text_utils/text_utils.js';
10
10
  import * as Workspace from '../../models/workspace/workspace.js';
11
11
  import type * as Search from '../search/search.js';
12
12
 
@@ -5,8 +5,8 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
8
9
  import * as Persistence from '../../models/persistence/persistence.js';
9
- import * as TextUtils from '../../models/text_utils/text_utils.js';
10
10
  import * as Workspace from '../../models/workspace/workspace.js';
11
11
  import type * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
12
12
  import * as Tooltips from '../../ui/components/tooltips/tooltips.js';
@@ -39,7 +39,7 @@ const UIStrings = {
39
39
  * @example {FolderName} PH1
40
40
  */
41
41
  changesWereNotSavedToFileSystemToSaveAddFolderToWorkspace:
42
- 'Changes weren\'t saved to file system. To save, add {PH1} to your Workspace.',
42
+ 'Changes werent saved to file system. To save, add {PH1} to your Workspace.',
43
43
  /**
44
44
  * @description Tooltip shown for the warning icon on an editor tab in the Sources panel
45
45
  * when the developer saved changes via Ctrl+S/Cmd+S, but didn't have a Workspace
@@ -48,7 +48,7 @@ const UIStrings = {
48
48
  * @example {Workspace} PH1
49
49
  */
50
50
  changesWereNotSavedToFileSystemToSaveSetUpYourWorkspace:
51
- 'Changes weren\'t saved to file system. To save, set up your {PH1}.',
51
+ 'Changes werent saved to file system. To save, set up your {PH1}.',
52
52
  } as const;
53
53
  const str_ = i18n.i18n.registerUIStrings('panels/sources/TabbedEditorContainer.ts', UIStrings);
54
54
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -7,12 +7,12 @@
7
7
  import * as Common from '../../core/common/common.js';
8
8
  import * as Host from '../../core/host/host.js';
9
9
  import * as i18n from '../../core/i18n/i18n.js';
10
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
10
11
  import * as FormatterActions from '../../entrypoints/formatter_worker/FormatterActions.js'; // eslint-disable-line @devtools/es-modules-import
11
12
  import * as AiCodeCompletion from '../../models/ai_code_completion/ai_code_completion.js';
12
13
  import * as Formatter from '../../models/formatter/formatter.js';
13
14
  import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
14
15
  import * as Persistence from '../../models/persistence/persistence.js';
15
- import * as TextUtils from '../../models/text_utils/text_utils.js';
16
16
  import * as Workspace from '../../models/workspace/workspace.js';
17
17
  import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
18
18
  import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.js';
@@ -6,9 +6,9 @@
6
6
 
7
7
  import * as Host from '../../../core/host/host.js';
8
8
  import * as i18n from '../../../core/i18n/i18n.js';
9
+ import * as TextUtils from '../../../core/text_utils/text_utils.js';
9
10
  import type * as Protocol from '../../../generated/protocol.js';
10
11
  import * as Persistence from '../../../models/persistence/persistence.js';
11
- import * as TextUtils from '../../../models/text_utils/text_utils.js';
12
12
  import * as Workspace from '../../../models/workspace/workspace.js';
13
13
  import * as Buttons from '../../../ui/components/buttons/buttons.js';
14
14
  import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
@@ -7,6 +7,7 @@
7
7
  .filtered-list-widget-item > .filtered-ui-source-code-list-item {
8
8
  align-content: center;
9
9
  display: grid;
10
+ grid-template-columns: 1fr auto;
10
11
  gap: var(--sys-size-2);
11
12
  line-height: initial;
12
13
  }
@@ -16,6 +17,8 @@
16
17
  }
17
18
 
18
19
  .filtered-ui-source-code-title {
20
+ grid-column: 1;
21
+ grid-row: 1;
19
22
  overflow: hidden;
20
23
  text-overflow: ellipsis;
21
24
  }
@@ -25,11 +28,12 @@
25
28
  }
26
29
 
27
30
  .filtered-ui-source-code-subtitle {
31
+ grid-column: 1;
32
+ grid-row: 2;
28
33
  flex: none;
29
34
  overflow: hidden;
30
35
  text-overflow: ellipsis;
31
36
  color: var(--sys-color-on-surface-subtle);
32
- padding-left: var(--sys-size-3);
33
37
  display: flex;
34
38
  white-space: pre;
35
39
  }
@@ -39,3 +43,10 @@
39
43
  overflow: hidden;
40
44
  text-overflow: ellipsis;
41
45
  }
46
+
47
+ .filtered-ui-source-code-list-item > .tag {
48
+ grid-column: 2;
49
+ grid-row: 1 / 3;
50
+ align-self: center;
51
+ white-space: nowrap;
52
+ }
@@ -365,7 +365,7 @@ const UIStrings = {
365
365
  /**
366
366
  * @description Title of an option under the Sources category that can be invoked through the Command Menu
367
367
  */
368
- doNotDisplayVariableValuesInline: 'Don\'t show variable values inline',
368
+ doNotDisplayVariableValuesInline: 'Dont show variable values inline',
369
369
  /**
370
370
  * @description Title of a setting under the Sources category in Settings
371
371
  */
@@ -6,7 +6,7 @@ import '../../ui/legacy/legacy.js';
6
6
 
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as Platform from '../../core/platform/platform.js';
9
- import * as TextUtils from '../../models/text_utils/text_utils.js';
9
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
10
10
  import type * as Trace from '../../models/trace/trace.js';
11
11
  import * as Workspace from '../../models/workspace/workspace.js';
12
12
  import * as Buttons from '../../ui/components/buttons/buttons.js';
@@ -262,8 +262,15 @@ export class TimelineController implements Tracing.TracingManager.TracingManager
262
262
  disabledByDefault('devtools.timeline.layers'), disabledByDefault('devtools.timeline.picture'),
263
263
  disabledByDefault('blink.graphics_context_annotations'));
264
264
  }
265
+ const screenshotOptions: Tracing.TracingManager.TracingStartOptions = {};
265
266
  if (options.captureFilmStrip) {
266
267
  categoriesArray.push(disabledByDefault('devtools.screenshot'));
268
+ if (options.screenshotMaxSize !== undefined) {
269
+ screenshotOptions.screenshotMaxSize = options.screenshotMaxSize;
270
+ }
271
+ if (options.screenshotMaxCount !== undefined) {
272
+ screenshotOptions.screenshotMaxCount = options.screenshotMaxCount;
273
+ }
267
274
  }
268
275
  if (options.captureSelectorStats) {
269
276
  categoriesArray.push(disabledByDefault('blink.debug'));
@@ -281,7 +288,7 @@ export class TimelineController implements Tracing.TracingManager.TracingManager
281
288
  this.#fieldData = null;
282
289
  this.#recordingStartTime = Date.now();
283
290
 
284
- const response = await this.startRecordingWithCategories(categoriesArray.join(','));
291
+ const response = await this.startRecordingWithCategories(categoriesArray.join(','), screenshotOptions);
285
292
  if (response.getError()) {
286
293
  await SDK.TargetManager.TargetManager.instance().resumeAllTargets();
287
294
  throw new Error(response.getError());
@@ -403,7 +410,9 @@ export class TimelineController implements Tracing.TracingManager.TracingManager
403
410
  }
404
411
  }
405
412
 
406
- private async startRecordingWithCategories(categories: string): Promise<Protocol.ProtocolResponseWithError> {
413
+ private async startRecordingWithCategories(categories: string,
414
+ tracingStartOptions: Tracing.TracingManager.TracingStartOptions = {}):
415
+ Promise<Protocol.ProtocolResponseWithError> {
407
416
  if (!this.tracingManager) {
408
417
  throw new Error(i18nString(UIStrings.tracingNotSupported));
409
418
  }
@@ -412,7 +421,7 @@ export class TimelineController implements Tracing.TracingManager.TracingManager
412
421
  // all the functions data.
413
422
  await SDK.TargetManager.TargetManager.instance().suspendAllTargets('performance-timeline');
414
423
  this.tracingCompletePromise = Promise.withResolvers();
415
- const response = await this.tracingManager.start(this, categories);
424
+ const response = await this.tracingManager.start(this, categories, tracingStartOptions);
416
425
  await this.warmupJsProfiler();
417
426
  PanelCommon.ExtensionServer.ExtensionServer.instance().profilingStarted();
418
427
  return response;
@@ -485,4 +494,16 @@ export interface RecordingOptions {
485
494
  captureFilmStrip?: boolean;
486
495
  captureSelectorStats?: boolean;
487
496
  navigateToUrl?: Platform.DevToolsPath.UrlString;
497
+ /**
498
+ * Maximum width/height (in pixels) of each captured screenshot.
499
+ * Only meaningful when `captureFilmStrip` is true. When omitted the
500
+ * backend default is used (see CDP `Tracing.start`).
501
+ */
502
+ screenshotMaxSize?: number;
503
+ /**
504
+ * Maximum number of screenshots captured during a single recording.
505
+ * Only meaningful when `captureFilmStrip` is true. When omitted the
506
+ * backend default is used (see CDP `Tracing.start`).
507
+ */
508
+ screenshotMaxCount?: number;
488
509
  }