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
@@ -0,0 +1,76 @@
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 i18n from '../../core/i18n/i18n.js';
6
+ import type * as SDK from '../../core/sdk/sdk.js';
7
+ import * as Protocol from '../../generated/protocol.js';
8
+
9
+ import {type AffectedElement, Issue, IssueCategory, IssueKind} from './Issue.js';
10
+ import type {MarkdownIssueDescription} from './MarkdownIssueDescription.js';
11
+
12
+ const UIStrings = {
13
+ /**
14
+ * @description Link title for the lazy-loaded image with zero size issue in the Issues panel.
15
+ */
16
+ lazyLoadImageZeroSize: 'Lazy-loaded images should have explicit dimensions',
17
+ } as const;
18
+ const str_ = i18n.i18n.registerUIStrings('models/issues_manager/LazyLoadImageIssue.ts', UIStrings);
19
+ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
20
+
21
+ export class LazyLoadImageIssue extends Issue<Protocol.Audits.LazyLoadImageIssueDetails> {
22
+ constructor(issueDetails: Protocol.Audits.LazyLoadImageIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel|null) {
23
+ const umaCode = [Protocol.Audits.InspectorIssueCode.LazyLoadImageIssue, 'ZeroSize'].join('::');
24
+ super({code: Protocol.Audits.InspectorIssueCode.LazyLoadImageIssue, umaCode}, issueDetails, issuesModel);
25
+ }
26
+
27
+ primaryKey(): string {
28
+ return `${this.code()}-(${this.details().nodeId})-(${this.details().url})`;
29
+ }
30
+
31
+ getCategory(): IssueCategory {
32
+ return IssueCategory.OTHER;
33
+ }
34
+
35
+ getDescription(): MarkdownIssueDescription {
36
+ return {
37
+ file: 'lazyLoadImageZeroSize.md',
38
+ links: [
39
+ {
40
+ link: 'https://web.dev/articles/browser-level-image-lazy-loading/#dimension-attributes',
41
+ linkTitle: i18nString(UIStrings.lazyLoadImageZeroSize),
42
+ },
43
+ ],
44
+ };
45
+ }
46
+
47
+ elementCount(): number {
48
+ return this.details().nodeId ? 1 : 0;
49
+ }
50
+
51
+ override elements(): Iterable<AffectedElement> {
52
+ if (this.details().nodeId) {
53
+ const target = this.model()?.target();
54
+ return [{
55
+ backendNodeId: this.details().nodeId,
56
+ nodeName: 'img',
57
+ target: target || null,
58
+ }];
59
+ }
60
+ return [];
61
+ }
62
+
63
+ getKind(): IssueKind {
64
+ return IssueKind.IMPROVEMENT;
65
+ }
66
+
67
+ static fromInspectorIssue(issuesModel: SDK.IssuesModel.IssuesModel|null,
68
+ inspectorIssue: Protocol.Audits.InspectorIssue): LazyLoadImageIssue[] {
69
+ const details = inspectorIssue.details.lazyLoadImageIssueDetails;
70
+ if (!details) {
71
+ console.warn('Lazy-loaded image issue without details received.');
72
+ return [];
73
+ }
74
+ return [new LazyLoadImageIssue(details, issuesModel)];
75
+ }
76
+ }
@@ -0,0 +1,7 @@
1
+ # Lazy-loaded images should have explicit dimensions
2
+
3
+ An image on this page specifies `loading="lazy"` without explicit width and height dimensions or aspect ratio styling.
4
+
5
+ When lazy-loaded images lack dimensions, the browser allocates an initial 0x0 bounding box before network loading completes. As the user scrolls and the image loads, its sudden expansion triggers unexpected layout shifts (CLS) and can displace or clip surrounding content.
6
+
7
+ To prevent layout shifts, always include explicit `width` and `height` attributes on lazy-loaded images, or define their aspect ratio using CSS.
@@ -20,6 +20,7 @@ import * as Issue from './Issue.js';
20
20
  import * as IssueAggregator from './IssueAggregator.js';
21
21
  import * as IssueResolver from './IssueResolver.js';
22
22
  import * as IssuesManager from './IssuesManager.js';
23
+ import * as LazyLoadImageIssue from './LazyLoadImageIssue.js';
23
24
  import * as MarkdownIssueDescription from './MarkdownIssueDescription.js';
24
25
  import * as MixedContentIssue from './MixedContentIssue.js';
25
26
  import * as PartitioningBlobURLIssue from './PartitioningBlobURLIssue.js';
@@ -54,6 +55,7 @@ export {
54
55
  IssueAggregator,
55
56
  IssueResolver,
56
57
  IssuesManager,
58
+ LazyLoadImageIssue,
57
59
  MarkdownIssueDescription,
58
60
  MixedContentIssue,
59
61
  PartitioningBlobURLIssue,
@@ -226,7 +226,7 @@ export const NativeFunctions = [
226
226
  {
227
227
  name: "create",
228
228
  signatures: [["?options"]],
229
- receivers: ["CredentialsContainer","Classifier","SemanticEmbedder"]
229
+ receivers: ["CredentialsContainer","SemanticEmbedder"]
230
230
  },
231
231
  {
232
232
  name: "defineProperty",
@@ -8257,15 +8257,6 @@ export const NativeFunctions = [
8257
8257
  name: "WorkletAnimation",
8258
8258
  signatures: [["animatorName","effects","?timeline","?options"]]
8259
8259
  },
8260
- {
8261
- name: "availability",
8262
- signatures: [["?options"]],
8263
- receivers: ["SemanticEmbedder"]
8264
- },
8265
- {
8266
- name: "classify",
8267
- signatures: [["input","?options"]]
8268
- },
8269
8260
  {
8270
8261
  name: "LanguageModelToolCall",
8271
8262
  signatures: [["init"]]
@@ -8278,6 +8269,10 @@ export const NativeFunctions = [
8278
8269
  name: "LanguageModelToolError",
8279
8270
  signatures: [["init"]]
8280
8271
  },
8272
+ {
8273
+ name: "availability",
8274
+ signatures: [["?options"]]
8275
+ },
8281
8276
  {
8282
8277
  name: "embed",
8283
8278
  signatures: [["input","?options"]]
@@ -8642,6 +8637,10 @@ export const NativeFunctions = [
8642
8637
  name: "Touch",
8643
8638
  signatures: [["initDict"]]
8644
8639
  },
8640
+ {
8641
+ name: "InstallResultEvent",
8642
+ signatures: [["type","?eventInitDict"]]
8643
+ },
8645
8644
  {
8646
8645
  name: "TrackEvent",
8647
8646
  signatures: [["type","?eventInitDict"]]
@@ -17,12 +17,11 @@ const UIStrings = {
17
17
  /**
18
18
  * @description Warning text indicating that the Largest Contentful Paint (LCP) performance metric was affected by the user changing the simulated device.
19
19
  */
20
- lcpEmulationWarning:
21
- 'Simulating a new device after the page loads can affect LCP. Reload the page after simulating a new device for accurate LCP data.',
20
+ lcpEmulationWarning: 'Simulating a device after the page loads can affect LCP. Reload the page for accurate LCP.',
22
21
  /**
23
22
  * @description Warning text indicating that the Largest Contentful Paint (LCP) performance metric was affected by the page loading in the background.
24
23
  */
25
- lcpVisibilityWarning: 'LCP value may be inflated because the page started loading in the background.',
24
+ lcpVisibilityWarning: 'LCP may be inflated because the page started loading in the background.',
26
25
  } as const;
27
26
 
28
27
  const str_ = i18n.i18n.registerUIStrings('models/live-metrics/LiveMetrics.ts', UIStrings);
@@ -35,8 +35,8 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper<EventTypes> i
35
35
  readonly #settings: Common.Settings.Settings;
36
36
 
37
37
  constructor(
38
- targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
39
- settings: Common.Settings.Settings = Common.Settings.Settings.instance(),
38
+ targetManager: SDK.TargetManager.TargetManager,
39
+ settings: Common.Settings.Settings,
40
40
  ) {
41
41
  super();
42
42
  this.#targetManager = targetManager;
@@ -55,7 +55,8 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper<EventTypes> i
55
55
 
56
56
  static instance(): NetworkLog {
57
57
  if (!Root.DevToolsContext.globalInstance().has(NetworkLog)) {
58
- Root.DevToolsContext.globalInstance().set(NetworkLog, new NetworkLog());
58
+ Root.DevToolsContext.globalInstance().set(
59
+ NetworkLog, new NetworkLog(SDK.TargetManager.TargetManager.instance(), Common.Settings.Settings.instance()));
59
60
  }
60
61
 
61
62
  return Root.DevToolsContext.globalInstance().get(NetworkLog);
@@ -9,7 +9,7 @@ const UIStrings = {
9
9
  /**
10
10
  * @description Text to preserve the log after refreshing
11
11
  */
12
- preserveLog: 'Preserve log',
12
+ preserveLog: 'Keep log',
13
13
  /**
14
14
  * @description A term that can be used to search in the command menu, and will find the search
15
15
  * result 'Preserve log on page reload / navigation'. This is an additional search term to help
@@ -31,11 +31,11 @@ const UIStrings = {
31
31
  /**
32
32
  * @description Title of a setting under the Network category that can be invoked through the Command Menu
33
33
  */
34
- preserveLogOnPageReload: 'Preserve log on page reload / navigation',
34
+ preserveLogOnPageReload: 'Keep log on page reload / navigation',
35
35
  /**
36
36
  * @description Title of a setting under the Network category that can be invoked through the Command Menu
37
37
  */
38
- doNotPreserveLogOnPageReload: 'Do not preserve log on page reload / navigation',
38
+ doNotPreserveLogOnPageReload: 'Don’t keep log on page reload / navigation',
39
39
  /**
40
40
  * @description Title of an action in the network tool to toggle recording
41
41
  */
@@ -40,14 +40,14 @@ import type {Calculator} from './Calculator.js';
40
40
 
41
41
  const UIStrings = {
42
42
  /**
43
- * @description Latency download total format in Network Time Calculator of the Network panel
43
+ * @description Latency download total format in Network Time Calculator of the Network panel.
44
44
  * @example {20ms} PH1
45
45
  * @example {20ms} PH2
46
46
  * @example {40ms} PH3
47
47
  */
48
48
  sLatencySDownloadSTotal: '{PH1} latency, {PH2} download ({PH3} total)',
49
49
  /**
50
- * @description Latency format in Network Time Calculator of the Network panel
50
+ * @description Latency format in Network Time Calculator of the Network panel.
51
51
  * @example {20ms} PH1
52
52
  */
53
53
  sLatency: '{PH1} latency',
@@ -57,12 +57,12 @@ const UIStrings = {
57
57
  */
58
58
  sDownload: '{PH1} download',
59
59
  /**
60
- * @description From service worker format in Network Time Calculator of the Network panel
60
+ * @description From service worker format in Network Time Calculator of the Network panel.
61
61
  * @example {20ms latency} PH1
62
62
  */
63
63
  sFromServiceworker: '{PH1} (from `ServiceWorker`)',
64
64
  /**
65
- * @description From cache format in Network Time Calculator of the Network panel
65
+ * @description From cache format in Network Time Calculator of the Network panel.
66
66
  * @example {20ms latency} PH1
67
67
  */
68
68
  sFromCache: '{PH1} (from cache)',
@@ -6,8 +6,8 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.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 '../../core/text_utils/text_utils.js';
9
10
  import * as Bindings from '../bindings/bindings.js';
10
- import * as TextUtils from '../text_utils/text_utils.js';
11
11
  import * as Workspace from '../workspace/workspace.js';
12
12
 
13
13
  import {type FileSystem, FileSystemWorkspaceBinding} from './FileSystemWorkspaceBinding.js';
@@ -6,8 +6,8 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
8
  import * as Root from '../../core/root/root.js';
9
- import type {ContentDataOrError} from '../text_utils/ContentData.js';
10
- import type {SearchMatch} from '../text_utils/ContentProvider.js';
9
+ import type {ContentDataOrError} from '../../core/text_utils/ContentData.js';
10
+ import type {SearchMatch} from '../../core/text_utils/ContentProvider.js';
11
11
  import * as Workspace from '../workspace/workspace.js';
12
12
 
13
13
  import {
@@ -5,7 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
- import * as TextUtils from '../text_utils/text_utils.js';
8
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
9
9
  import * as Workspace from '../workspace/workspace.js';
10
10
 
11
11
  import type {IsolatedFileSystem} from './IsolatedFileSystem.js';
@@ -6,7 +6,7 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
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 '../text_utils/text_utils.js';
9
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
10
10
 
11
11
  import {Events, type IsolatedFileSystemManager} from './IsolatedFileSystemManager.js';
12
12
  import {Events as PlatformFileSystemEvents, PlatformFileSystem, PlatformFileSystemType} from './PlatformFileSystem.js';
@@ -26,7 +26,7 @@ const UIStrings = {
26
26
  * @example {c:\dir\file.js} PH1
27
27
  * @example {Underlying error} PH2
28
28
  */
29
- cantReadFileSS: 'Can\'t read file: {PH1}: {PH2}',
29
+ cantReadFileSS: 'Cant read file: {PH1}: {PH2}',
30
30
  /**
31
31
  * @description Text to show something is linked to another
32
32
  * @example {example.url} PH1
@@ -7,9 +7,9 @@ import * as Host from '../../core/host/host.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
8
  import * as Root from '../../core/root/root.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 Protocol from '../../generated/protocol.js';
11
12
  import * as Breakpoints from '../breakpoints/breakpoints.js';
12
- import * as TextUtils from '../text_utils/text_utils.js';
13
13
  import * as Workspace from '../workspace/workspace.js';
14
14
 
15
15
  import {type FileSystem, FileSystemWorkspaceBinding} from './FileSystemWorkspaceBinding.js';
@@ -7,9 +7,9 @@ import * as Host from '../../core/host/host.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
8
  import * as Root from '../../core/root/root.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 '../bindings/bindings.js';
11
12
  import * as BreakpointManager from '../breakpoints/breakpoints.js';
12
- import * as TextUtils from '../text_utils/text_utils.js';
13
13
  import * as Workspace from '../workspace/workspace.js';
14
14
 
15
15
  import {Automapping, type AutomappingStatus} from './Automapping.js';
@@ -5,7 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
- import type * as TextUtils from '../text_utils/text_utils.js';
8
+ import type * as TextUtils from '../../core/text_utils/text_utils.js';
9
9
 
10
10
  const UIStrings = {
11
11
  /**
@@ -5,9 +5,9 @@
5
5
  import type * as Common from '../../core/common/common.js';
6
6
  import type * as Platform from '../../core/platform/platform.js';
7
7
  import * as SDK from '../../core/sdk/sdk.js';
8
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
8
9
  import * as Bindings from '../bindings/bindings.js';
9
10
  import * as Formatter from '../formatter/formatter.js';
10
- import * as TextUtils from '../text_utils/text_utils.js';
11
11
  import * as Workspace from '../workspace/workspace.js';
12
12
 
13
13
  /** Represents the source code for a given function, including additional context of surrounding lines. */
@@ -3,10 +3,10 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as SDK from '../../core/sdk/sdk.js';
6
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
6
7
  import * as Protocol from '../../generated/protocol.js';
7
8
  import * as Bindings from '../bindings/bindings.js';
8
9
  import * as Formatter from '../formatter/formatter.js';
9
- import * as TextUtils from '../text_utils/text_utils.js';
10
10
 
11
11
  interface CachedScopeMap {
12
12
  sourceMap: SDK.SourceMap.SourceMap|undefined;
@@ -1,27 +1,5 @@
1
- // Copyright 2019 The Chromium Authors
1
+ // Copyright 2019 The Chromium Authors. All rights reserved.
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 CodeMirrorUtils from './CodeMirrorUtils.js';
6
- import * as ContentData from './ContentData.js';
7
- import * as ContentProvider from './ContentProvider.js';
8
- import * as StaticContentProvider from './StaticContentProvider.js';
9
- import * as StreamingContentData from './StreamingContentData.js';
10
- import * as Text from './Text.js';
11
- import * as TextCursor from './TextCursor.js';
12
- import * as TextRange from './TextRange.js';
13
- import * as TextUtils from './TextUtils.js';
14
- import * as WasmDisassembly from './WasmDisassembly.js';
15
-
16
- export {
17
- CodeMirrorUtils,
18
- ContentData,
19
- ContentProvider,
20
- StaticContentProvider,
21
- StreamingContentData,
22
- Text,
23
- TextCursor,
24
- TextRange,
25
- TextUtils,
26
- WasmDisassembly,
27
- };
5
+ export * from '../../core/text_utils/text_utils.js';
@@ -29,12 +29,12 @@ export const UIStrings = {
29
29
  /**
30
30
  * @description Message displayed in a chip explaining that an image file size is large for the # of pixels it has and recommends possible adjustments to improve the image size.
31
31
  */
32
- useCompression: 'Increasing the image compression factor could improve this image\'s download size.',
32
+ useCompression: 'Increasing the image compression factor could improve this images download size.',
33
33
  /**
34
34
  * @description Message displayed in a chip explaining that an image file size is large for the # of pixels it has and recommends possible adjustments to improve the image size.
35
35
  */
36
36
  useModernFormat:
37
- 'Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image\'s download size.',
37
+ 'Using a modern image format (WebP, AVIF) or increasing the image compression could improve this images download size.',
38
38
  /**
39
39
  * @description Message displayed in a chip advising the user to use video formats instead of GIFs because videos generally have smaller file sizes.
40
40
  */
@@ -28,7 +28,7 @@ export const UIStrings = {
28
28
  * @description Description of an insight that identifies polyfills for modern JavaScript features, and recommends their removal.
29
29
  */
30
30
  description:
31
- 'Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren\'t necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)',
31
+ 'Polyfills and transforms enable older browsers to use new JavaScript features. However, many arent necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)',
32
32
  /** Label for a column in a data table; entries will be the individual JavaScript scripts. */
33
33
  columnScript: 'Script',
34
34
  /** Label for a column in a data table; entries will be the number of wasted bytes (aka the estimated savings in terms of bytes). */
@@ -28,7 +28,7 @@ export const UIStrings = {
28
28
  /**
29
29
  * @description Text to describe that there are requests blocking rendering, which may affect LCP.
30
30
  */
31
- description: 'Requests are blocking the page\'s initial render, which may delay LCP. ' +
31
+ description: 'Requests are blocking the pages initial render, which may delay LCP. ' +
32
32
  '[Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) ' +
33
33
  'can move these network requests out of the critical path.',
34
34
  /**
@@ -24,7 +24,7 @@ export const UIStrings = {
24
24
  * This is displayed after a user expands the section to see more. No character length limits.
25
25
  */
26
26
  description: '3rd party code can significantly impact load performance. ' +
27
- '[Reduce and defer loading of 3rd party code](https://developer.chrome.com/docs/performance/insights/third-parties) to prioritize your page\'s content.',
27
+ '[Reduce and defer loading of 3rd party code](https://developer.chrome.com/docs/performance/insights/third-parties) to prioritize your pages content.',
28
28
  /** Label for a table column that displays the name of a third-party provider. */
29
29
  columnThirdParty: '3rd party',
30
30
  /** Label for a column in a data table; entries will be the download size of a web resource in kilobytes. */
@@ -6,7 +6,7 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
8
  import * as Root from '../../core/root/root.js';
9
- import type * as TextUtils from '../text_utils/text_utils.js';
9
+ import type * as TextUtils from '../../core/text_utils/text_utils.js';
10
10
 
11
11
  export interface SaveCallbackParam {
12
12
  fileSystemPath?: Platform.DevToolsPath.RawPathString|Platform.DevToolsPath.UrlString;
@@ -7,7 +7,7 @@
7
7
  import * as Common from '../../core/common/common.js';
8
8
  import * as i18n from '../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../core/platform/platform.js';
10
- import * as TextUtils from '../text_utils/text_utils.js';
10
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
11
11
 
12
12
  import {IgnoreListManager} from './IgnoreListManager.js';
13
13
  import {Events as WorkspaceImplEvents, type Project} from './WorkspaceImpl.js';
@@ -5,7 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import type * as Platform from '../../core/platform/platform.js';
7
7
  import * as Root from '../../core/root/root.js';
8
- import type * as TextUtils from '../text_utils/text_utils.js';
8
+ import type * as TextUtils from '../../core/text_utils/text_utils.js';
9
9
 
10
10
  import type {SearchConfig} from './SearchConfig.js';
11
11
  import {UISourceCode, type UISourceCodeMetadata} from './UISourceCode.js';
@@ -5,10 +5,10 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as Root from '../../core/root/root.js';
8
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
8
9
  import * as Diff from '../../third_party/diff/diff.js';
9
10
  import * as FormatterModule from '../formatter/formatter.js';
10
11
  import * as Persistence from '../persistence/persistence.js';
11
- import * as TextUtils from '../text_utils/text_utils.js';
12
12
  import * as Workspace from '../workspace/workspace.js';
13
13
 
14
14
  interface DiffResponse {
@@ -54,7 +54,7 @@ const UIStrings = {
54
54
  /**
55
55
  * @description Reason element in Accessibility Node View of the Accessibility panel
56
56
  */
57
- ancestorChildrenAreAll: 'Ancestor\'s children are all presentational:\xA0',
57
+ ancestorChildrenAreAll: 'Ancestors children are all presentational:\xA0',
58
58
  /**
59
59
  * @description Reason element in Accessibility Node View of the Accessibility panel
60
60
  * @example {aria-hidden} PH1
@@ -20,7 +20,7 @@ const UIStrings = {
20
20
  * @description Tooltip text that appears when hovering over the 'Invalid user entry' attribute name under the Computed Properties section in the Accessibility pane of the Elements pane
21
21
  */
22
22
  ifTrueThisElementsUserentered:
23
- 'If true, this element\'s user-entered value does not conform to validation requirement.',
23
+ 'If true, this elements user-entered value does not conform to validation requirement.',
24
24
  /**
25
25
  * @description Accessibility attribute name that appears under the Computed Properties section in the Accessibility pane of the Elements pane
26
26
  */
@@ -153,7 +153,7 @@ const UIStrings = {
153
153
  /**
154
154
  * @description Tooltip text that appears when hovering over the 'Orientation' attribute name under the Computed Properties section in the Accessibility pane of the Elements pane
155
155
  */
156
- whetherThisLinearElements: 'Whether this linear element\'s orientation is horizontal or vertical.',
156
+ whetherThisLinearElements: 'Whether this linear elements orientation is horizontal or vertical.',
157
157
  /**
158
158
  * @description Accessibility attribute name that appears under the Computed Properties section in the Accessibility pane of the Elements pane
159
159
  */
@@ -110,7 +110,7 @@ const UIStrings = {
110
110
  */
111
111
  noPastConversations: 'No past conversations',
112
112
  /**
113
- * @description Placeholder text for an inactive text field. When active, its used for the users input to AI assistance.
113
+ * @description Placeholder text for an inactive text field. When active, it's used for the user's input to AI assistance.
114
114
  */
115
115
  followTheSteps: 'Follow the steps above to ask a question',
116
116
  /**
@@ -2,8 +2,8 @@
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
  import * as Platform from '../../core/platform/platform.js';
5
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
5
6
  import type * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
6
- import * as TextUtils from '../../models/text_utils/text_utils.js';
7
7
  import * as Workspace from '../../models/workspace/workspace.js';
8
8
 
9
9
  export async function saveToDisk(conversation: AiAssistanceModel.AiConversation.AiConversation): Promise<void> {
@@ -56,7 +56,7 @@ const UIStrings = {
56
56
  */
57
57
  wrongLocale: 'To use this feature, set your language preference to English in DevTools settings.',
58
58
  /**
59
- * @description Message shown to the user if the users region is not
59
+ * @description Message shown to the user if the user's region is not
60
60
  * supported.
61
61
  */
62
62
  geoRestricted: 'This feature is unavailable in your region.',
@@ -11,6 +11,7 @@ import * as i18n from '../../../core/i18n/i18n.js';
11
11
  import * as Platform from '../../../core/platform/platform.js';
12
12
  import * as Root from '../../../core/root/root.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 type * as Protocol from '../../../generated/protocol.js';
15
16
  import type {
16
17
  AiWidget, BottomUpTreeAiWidget, ComputedStyleAiWidget, CoreVitalsAiWidget, DomTreeAiWidget, LighthouseReportAiWidget,
@@ -20,7 +21,6 @@ import type {
20
21
  import * as AiAssistanceModel from '../../../models/ai_assistance/ai_assistance.js';
21
22
  import * as ComputedStyle from '../../../models/computed_style/computed_style.js';
22
23
  import * as Formatter from '../../../models/formatter/formatter.js';
23
- import * as TextUtils from '../../../models/text_utils/text_utils.js';
24
24
  import * as Trace from '../../../models/trace/trace.js';
25
25
  import * as Workspace from '../../../models/workspace/workspace.js';
26
26
  import * as PanelsCommon from '../../../panels/common/common.js';
@@ -387,13 +387,13 @@ const UIStrings = {
387
387
  * @example {Image} PH1
388
388
  * @example {https://example.com/image.png} PH2
389
389
  */
390
- sSWidthDoesNotComplyWithRatioRequirement: '{PH1} {PH2} width can\'t be more than 2.3 times as long as the height',
390
+ sSWidthDoesNotComplyWithRatioRequirement: '{PH1} {PH2} width cant be more than 2.3 times as long as the height',
391
391
  /**
392
392
  * @description Warning message for image resources from the manifest
393
393
  * @example {Image} PH1
394
394
  * @example {https://example.com/image.png} PH2
395
395
  */
396
- sSHeightDoesNotComplyWithRatioRequirement: '{PH1} {PH2} height can\'t be more than 2.3 times as long as the width',
396
+ sSHeightDoesNotComplyWithRatioRequirement: '{PH1} {PH2} height cant be more than 2.3 times as long as the width',
397
397
  /**
398
398
  * @description Manifest installability error in the Application panel
399
399
  * @example {https://example.com/image.png} url
@@ -435,11 +435,11 @@ const UIStrings = {
435
435
  * @example {https://developer.mozilla.org/en-US/docs/Web/Manifest/display_override} PH1
436
436
  */
437
437
  wcoNotFound:
438
- 'Define {PH1} in the manifest to use the Window Controls Overlay API and customize your app\'s title bar.',
438
+ 'Define {PH1} in the manifest to use the Window Controls Overlay API and customize your apps title bar.',
439
439
  /**
440
440
  * @description Link text for more information on customizing Window Controls Overlay title bar in the Application panel
441
441
  */
442
- customizePwaTitleBar: 'Customize the window controls overlay of your PWA\'s title bar',
442
+ customizePwaTitleBar: 'Customize the window controls overlay of your PWAs title bar',
443
443
  /**
444
444
  * @description Text wrapping link to documentation on how to customize WCO title bar
445
445
  * @example {https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/window-controls-overlay} PH1
@@ -296,7 +296,7 @@ const UIStrings = {
296
296
  /**
297
297
  * @description Description text in the Application Panel describing a frame's resources
298
298
  */
299
- resourceDescription: 'On this page you can view the frame\'s resources.'
299
+ resourceDescription: 'On this page you can view the frames resources.'
300
300
  } as const;
301
301
  const str_ = i18n.i18n.registerUIStrings('panels/application/ApplicationPanelSidebar.ts', UIStrings);
302
302
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -655,7 +655,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
655
655
  this.addCookieDocument(frame);
656
656
  }
657
657
 
658
- this.cacheStorageListTreeElement.initialize();
659
658
  const backgroundServiceModel = this.target?.model(BackgroundServiceModel) || null;
660
659
  this.backgroundFetchTreeElement.initialize(backgroundServiceModel);
661
660
  this.backgroundSyncTreeElement.initialize(backgroundServiceModel);
@@ -7,8 +7,8 @@ import '../../ui/legacy/legacy.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as Platform from '../../core/platform/platform.js';
9
9
  import * as SDK from '../../core/sdk/sdk.js';
10
+ import type * as TextUtils from '../../core/text_utils/text_utils.js';
10
11
  import type * as Protocol from '../../generated/protocol.js';
11
- import type * as TextUtils from '../../models/text_utils/text_utils.js';
12
12
  import * as Buttons from '../../ui/components/buttons/buttons.js';
13
13
  import * as UI from '../../ui/legacy/legacy.js';
14
14
  import {html, render} from '../../ui/lit/lit.js';
@@ -33,8 +33,8 @@ import * as Common from '../../core/common/common.js';
33
33
  import * as i18n from '../../core/i18n/i18n.js';
34
34
  import type * as Platform from '../../core/platform/platform.js';
35
35
  import * as SDK from '../../core/sdk/sdk.js';
36
+ import * as TextUtils from '../../core/text_utils/text_utils.js';
36
37
  import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
37
- import * as TextUtils from '../../models/text_utils/text_utils.js';
38
38
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
39
39
  import * as UI from '../../ui/legacy/legacy.js';
40
40
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';