chrome-devtools-frontend 1.0.1657110 → 1.0.1660788

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 (317) hide show
  1. package/.agents/skills/devtools-ux-writing-refactor/SKILL.md +125 -0
  2. package/.agents/skills/migrate-chromium-test/SKILL.md +15 -70
  3. package/.agents/skills/repro-flaky-tests/SKILL.md +53 -0
  4. package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +37 -18
  5. package/.agents/skills/version-control/SKILL.md +8 -1
  6. package/AUTHORS +1 -0
  7. package/SECURITY.md +3 -0
  8. package/docs/get_the_code.md +6 -0
  9. package/front_end/Images/src/ads.svg +1 -0
  10. package/front_end/Tests.js +6 -6
  11. package/front_end/core/common/Gzip.ts +12 -5
  12. package/front_end/core/common/ResourceType.ts +19 -19
  13. package/front_end/core/common/Revealer.ts +15 -15
  14. package/front_end/core/common/SettingRegistration.ts +19 -19
  15. package/front_end/core/host/AidaClient.ts +35 -9
  16. package/front_end/core/host/GdpClient.ts +10 -7
  17. package/front_end/core/platform/StringUtilities.ts +35 -0
  18. package/front_end/core/sdk/AccessibilityModel.snapshot.txt +17 -0
  19. package/front_end/core/sdk/AccessibilityModel.ts +132 -2
  20. package/front_end/core/sdk/CPUThrottlingManager.ts +8 -5
  21. package/front_end/core/sdk/CSSMetadata.ts +110 -16
  22. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -5
  23. package/front_end/core/sdk/ConsoleModel.ts +5 -5
  24. package/front_end/core/sdk/DOMDebuggerModel.ts +5 -1
  25. package/front_end/core/sdk/DOMModel.ts +32 -18
  26. package/front_end/core/sdk/NetworkManager.ts +58 -14
  27. package/front_end/core/sdk/NetworkRequest.ts +37 -1
  28. package/front_end/core/sdk/OverlayModel.ts +45 -6
  29. package/front_end/core/sdk/ResourceTreeModel.ts +6 -7
  30. package/front_end/core/sdk/ScreenCaptureModel.ts +2 -2
  31. package/front_end/core/sdk/ServerTiming.ts +17 -13
  32. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +4 -2
  33. package/front_end/core/sdk/ServiceWorkerManager.ts +19 -5
  34. package/front_end/core/sdk/TargetManager.ts +10 -1
  35. package/front_end/core/sdk/TraceObject.ts +4 -2
  36. package/front_end/core/sdk/sdk-meta.ts +170 -0
  37. package/front_end/design_system_tokens.css +0 -5
  38. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -1
  39. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +13 -4
  40. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +5 -2
  41. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +23 -4
  42. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +33 -10
  43. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +8 -3
  44. package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
  45. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -2
  46. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +36 -37
  47. package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +15 -33
  48. package/front_end/entrypoints/js_app/js_app.ts +6 -5
  49. package/front_end/entrypoints/main/GlobalAiButton.ts +4 -4
  50. package/front_end/entrypoints/main/MainImpl.ts +25 -55
  51. package/front_end/entrypoints/main/main-meta.ts +50 -50
  52. package/front_end/entrypoints/node_app/app/NodeConnectionsPanel.ts +5 -5
  53. package/front_end/entrypoints/node_app/app/NodeMain.ts +3 -3
  54. package/front_end/entrypoints/node_app/node_app.ts +10 -9
  55. package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
  56. package/front_end/foundation/Universe.ts +76 -6
  57. package/front_end/generated/InspectorBackendCommands.ts +3 -3
  58. package/front_end/generated/SupportedCSSProperties.js +19 -12
  59. package/front_end/generated/protocol.ts +7 -1
  60. package/front_end/models/ai_assistance/AiConversation.ts +19 -17
  61. package/front_end/models/ai_assistance/AiHistoryStorage.ts +37 -14
  62. package/front_end/models/ai_assistance/AiUtils.ts +38 -42
  63. package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -1
  64. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -2
  65. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
  66. package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
  67. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +270 -286
  68. package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +20 -0
  69. package/front_end/models/ai_assistance/performance/AICallTree.ts +3 -1
  70. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +3 -2
  71. package/front_end/models/autofill_manager/AutofillManager.ts +3 -1
  72. package/front_end/models/bindings/CSSWorkspaceBinding.ts +8 -5
  73. package/front_end/models/bindings/CompilerScriptMapping.ts +2 -1
  74. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +15 -16
  75. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +6 -4
  76. package/front_end/models/bindings/FileUtils.ts +11 -12
  77. package/front_end/models/bindings/NetworkProject.ts +4 -0
  78. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
  79. package/front_end/models/bindings/ResourceUtils.ts +1 -1
  80. package/front_end/models/bindings/SASSSourceMapping.ts +8 -5
  81. package/front_end/models/emulation/DeviceModeModel.ts +14 -14
  82. package/front_end/models/emulation/EmulatedDevices.ts +392 -11
  83. package/front_end/models/extensions/ExtensionAPI.ts +6 -6
  84. package/front_end/models/extensions/LanguageExtensionEndpoint.ts +13 -12
  85. package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
  86. package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
  87. package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +1 -1
  88. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +7 -7
  89. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +2 -2
  90. package/front_end/models/issues_manager/CookieIssue.ts +6 -7
  91. package/front_end/models/issues_manager/CorsIssue.ts +3 -3
  92. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +2 -2
  93. package/front_end/models/issues_manager/DeprecationIssue.ts +3 -3
  94. package/front_end/models/issues_manager/EmailVerificationRequestIssue.ts +1 -1
  95. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
  96. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
  97. package/front_end/models/issues_manager/GenericIssue.ts +7 -7
  98. package/front_end/models/issues_manager/HeavyAdIssue.ts +3 -3
  99. package/front_end/models/issues_manager/Issue.ts +8 -8
  100. package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
  101. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +3 -3
  102. package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
  103. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
  104. package/front_end/models/issues_manager/SelectivePermissionsInterventionIssue.ts +2 -2
  105. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +2 -2
  106. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
  107. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +3 -3
  108. package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
  109. package/front_end/models/stack_trace/StackTraceModel.ts +3 -3
  110. package/front_end/models/text_utils/ContentData.ts +27 -0
  111. package/front_end/models/trace/helpers/SamplesIntegrator.ts +21 -5
  112. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -14
  113. package/front_end/models/web_mcp/WebMCPModel.ts +24 -6
  114. package/front_end/models/workspace/IgnoreListManager.ts +6 -6
  115. package/front_end/models/workspace/UISourceCode.ts +3 -3
  116. package/front_end/models/workspace_diff/WorkspaceDiff.ts +23 -12
  117. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -22
  118. package/front_end/panels/ai_assistance/ExportConversation.ts +3 -4
  119. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +3 -3
  120. package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
  121. package/front_end/panels/ai_assistance/components/ChatMessage.ts +7 -0
  122. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +2 -2
  123. package/front_end/panels/animation/AnimationTimeline.ts +17 -19
  124. package/front_end/panels/animation/AnimationUI.ts +5 -5
  125. package/front_end/panels/animation/animation-meta.ts +2 -2
  126. package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -4
  127. package/front_end/panels/application/BackgroundServiceView.ts +2 -1
  128. package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -6
  129. package/front_end/panels/application/IndexedDBViews.ts +245 -262
  130. package/front_end/panels/application/OpenedWindowDetailsView.ts +1 -1
  131. package/front_end/panels/application/ResourcesPanel.ts +9 -2
  132. package/front_end/panels/application/ServiceWorkersView.ts +252 -211
  133. package/front_end/panels/application/StorageView.ts +97 -33
  134. package/front_end/panels/application/WebMCPView.ts +15 -1
  135. package/front_end/panels/application/components/AdsView.ts +1 -1
  136. package/front_end/panels/application/indexedDBViews.css +38 -9
  137. package/front_end/panels/application/preloading/helper/PreloadingForward.ts +2 -1
  138. package/front_end/panels/application/resourcesSidebar.css +5 -0
  139. package/front_end/panels/application/storageView.css +26 -9
  140. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +5 -1
  141. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +8 -6
  142. package/front_end/panels/common/DOMLinkifier.ts +1 -1
  143. package/front_end/panels/common/ExtensionServer.ts +119 -14
  144. package/front_end/panels/console/ConsoleContextSelector.ts +4 -4
  145. package/front_end/panels/console/ConsolePinPane.ts +12 -12
  146. package/front_end/panels/console/ConsolePrompt.ts +6 -6
  147. package/front_end/panels/console/ConsoleSidebar.ts +7 -7
  148. package/front_end/panels/console/ConsoleView.ts +45 -44
  149. package/front_end/panels/console/ConsoleViewMessage.ts +40 -40
  150. package/front_end/panels/console/SymbolizedErrorWidget.ts +2 -1
  151. package/front_end/panels/console/console-meta.ts +34 -34
  152. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
  153. package/front_end/panels/coverage/CoverageListView.ts +28 -28
  154. package/front_end/panels/coverage/CoverageModel.ts +2 -1
  155. package/front_end/panels/coverage/CoverageView.ts +23 -23
  156. package/front_end/panels/coverage/coverage-meta.ts +5 -5
  157. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +36 -36
  158. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -1
  159. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +2 -2
  160. package/front_end/panels/css_overview/CSSOverviewStartView.ts +6 -6
  161. package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +6 -6
  162. package/front_end/panels/css_overview/css_overview-meta.ts +2 -2
  163. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +20 -21
  164. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +6 -8
  165. package/front_end/panels/developer_resources/developer_resources-meta.ts +2 -2
  166. package/front_end/panels/elements/AccessibilityTreeUtils.ts +8 -102
  167. package/front_end/panels/elements/AccessibilityTreeView.ts +163 -70
  168. package/front_end/panels/elements/ElementsPanel.ts +17 -11
  169. package/front_end/panels/elements/ElementsTreeElement.ts +49 -2
  170. package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
  171. package/front_end/panels/elements/LayoutPane.ts +1 -1
  172. package/front_end/panels/elements/MetricsSidebarPane.ts +100 -34
  173. package/front_end/panels/elements/StylePropertiesSection.ts +2 -2
  174. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -2
  175. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  176. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +7 -18
  177. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -2
  178. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  179. package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
  180. package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
  181. package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
  182. package/front_end/panels/media/EventDisplayTable.ts +2 -2
  183. package/front_end/panels/media/EventTimelineView.ts +4 -4
  184. package/front_end/panels/media/MainView.ts +4 -4
  185. package/front_end/panels/media/PlayerDetailView.ts +5 -5
  186. package/front_end/panels/media/PlayerListView.ts +1 -1
  187. package/front_end/panels/media/PlayerMessagesView.ts +12 -12
  188. package/front_end/panels/media/PlayerPropertiesView.ts +17 -17
  189. package/front_end/panels/network/NetworkDataGridNode.ts +124 -36
  190. package/front_end/panels/network/NetworkLogView.ts +11 -2
  191. package/front_end/panels/network/NetworkLogViewColumns.ts +18 -0
  192. package/front_end/panels/network/NetworkPanel.ts +2 -1
  193. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -3
  194. package/front_end/panels/network/RequestConditionsDrawer.ts +2 -2
  195. package/front_end/panels/network/RequestPayloadView.ts +53 -7
  196. package/front_end/panels/network/RequestPreviewView.ts +7 -1
  197. package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
  198. package/front_end/panels/network/forward/UIFilter.ts +1 -0
  199. package/front_end/panels/network/networkPanel.css +1 -0
  200. package/front_end/panels/network/networkTimingTable.css +1 -1
  201. package/front_end/panels/network/requestPayloadView.css +10 -0
  202. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +12 -12
  203. package/front_end/panels/performance_monitor/performance_monitor-meta.ts +7 -7
  204. package/front_end/panels/profiler/HeapDetachedElementsView.ts +2 -2
  205. package/front_end/panels/profiler/HeapProfileView.ts +563 -51
  206. package/front_end/panels/profiler/HeapSnapshotView.ts +15 -9
  207. package/front_end/panels/profiler/ProfilesPanel.ts +13 -7
  208. package/front_end/panels/profiler/WritableProfileHeader.ts +152 -0
  209. package/front_end/panels/profiler/profiler.ts +2 -2
  210. package/front_end/panels/protocol_monitor/JSONEditor.ts +10 -10
  211. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +28 -32
  212. package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +1 -1
  213. package/front_end/panels/recorder/RecorderController.ts +15 -15
  214. package/front_end/panels/recorder/RecorderEvents.ts +8 -0
  215. package/front_end/panels/recorder/components/CreateRecordingView.ts +11 -11
  216. package/front_end/panels/recorder/components/ExtensionView.ts +74 -83
  217. package/front_end/panels/recorder/components/RecordingListView.ts +3 -3
  218. package/front_end/panels/recorder/components/RecordingView.ts +13 -10
  219. package/front_end/panels/recorder/components/ReplaySection.ts +9 -9
  220. package/front_end/panels/recorder/components/StepEditor.ts +352 -321
  221. package/front_end/panels/recorder/components/StepView.ts +36 -37
  222. package/front_end/panels/recorder/components/recordingView.css +1 -1
  223. package/front_end/panels/recorder/models/RecorderSettings.ts +2 -2
  224. package/front_end/panels/recorder/recorder-meta.ts +7 -7
  225. package/front_end/panels/screencast/ScreencastApp.ts +1 -1
  226. package/front_end/panels/screencast/ScreencastView.ts +12 -12
  227. package/front_end/panels/search/SearchResultsPane.ts +4 -4
  228. package/front_end/panels/search/SearchView.ts +20 -20
  229. package/front_end/panels/security/SecurityModel.ts +7 -7
  230. package/front_end/panels/security/SecurityPanel.ts +99 -107
  231. package/front_end/panels/security/SecurityPanelSidebar.ts +7 -7
  232. package/front_end/panels/security/security-meta.ts +2 -2
  233. package/front_end/panels/sensors/LocationsSettingsTab.ts +19 -19
  234. package/front_end/panels/sensors/SensorsView.ts +27 -27
  235. package/front_end/panels/sensors/sensors-meta.ts +13 -167
  236. package/front_end/panels/settings/AISettingsTab.ts +98 -56
  237. package/front_end/panels/settings/EditFileSystemView.ts +2 -2
  238. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -20
  239. package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
  240. package/front_end/panels/settings/SettingsScreen.ts +11 -11
  241. package/front_end/panels/settings/WorkspaceSettingsTab.ts +5 -5
  242. package/front_end/panels/settings/components/SyncSection.ts +12 -12
  243. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +13 -13
  244. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +31 -31
  245. package/front_end/panels/settings/emulation/emulation-meta.ts +1 -1
  246. package/front_end/panels/settings/settings-meta.ts +14 -14
  247. package/front_end/panels/sources/NavigatorView.ts +7 -6
  248. package/front_end/panels/sources/ScopeChainSidebarPane.ts +83 -37
  249. package/front_end/panels/sources/SourcesNavigator.ts +20 -18
  250. package/front_end/panels/sources/SourcesView.ts +10 -1
  251. package/front_end/panels/sources/scopeChainSidebarPane.css +12 -4
  252. package/front_end/panels/sources/sources-meta.ts +4 -4
  253. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +5 -2
  254. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -1
  255. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -1
  256. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  257. package/front_end/panels/timeline/TimelinePanel.ts +2 -1
  258. package/front_end/panels/timeline/TimelineUIUtils.ts +5 -2
  259. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +4 -2
  260. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +4 -2
  261. package/front_end/panels/timeline/components/insights/ImageRef.ts +2 -1
  262. package/front_end/panels/utils/utils.ts +7 -3
  263. package/front_end/panels/web_audio/WebAudioView.ts +17 -18
  264. package/front_end/panels/web_audio/web_audio-meta.ts +3 -3
  265. package/front_end/panels/webauthn/WebauthnPane.ts +10 -10
  266. package/front_end/panels/whats_new/ReleaseNoteView.ts +1 -1
  267. package/front_end/panels/whats_new/whats_new-meta.ts +11 -11
  268. package/front_end/third_party/chromium/README.chromium +1 -1
  269. package/front_end/third_party/lit/lib/async-directive.d.ts +2 -1
  270. package/front_end/third_party/lit/lib/async-directive.js +1 -1
  271. package/front_end/third_party/lit/lib/async-directive.js.map +1 -1
  272. package/front_end/third_party/lit/lib/decorators.d.ts +2 -1
  273. package/front_end/third_party/lit/lib/decorators.js.map +1 -1
  274. package/front_end/third_party/lit/lib/directive.d.ts +2 -1
  275. package/front_end/third_party/lit/lib/directive.js.map +1 -1
  276. package/front_end/third_party/lit/lib/directives.d.ts +2 -1
  277. package/front_end/third_party/lit/lib/directives.js +8 -8
  278. package/front_end/third_party/lit/lib/directives.js.map +1 -1
  279. package/front_end/third_party/lit/lib/lit.d.ts +2 -1
  280. package/front_end/third_party/lit/lib/lit.js +1 -1
  281. package/front_end/third_party/lit/lib/lit.js.map +1 -1
  282. package/front_end/third_party/lit/lib/static-html.d.ts +2 -1
  283. package/front_end/third_party/lit/lib/static-html.js +1 -1
  284. package/front_end/third_party/lit/lib/static-html.js.map +1 -1
  285. package/front_end/third_party/lit/package.json +2 -2
  286. package/front_end/third_party/lit/rebuild.sh +1 -1
  287. package/front_end/third_party/lit/src/async-directive.ts +5 -0
  288. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  289. package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
  290. package/front_end/ui/components/dialogs/shortcutDialog.css +15 -12
  291. package/front_end/ui/components/diff_view/DiffView.ts +2 -2
  292. package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
  293. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +5 -5
  294. package/front_end/ui/components/lists/List.ts +2 -2
  295. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  296. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +5 -5
  297. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  298. package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
  299. package/front_end/ui/components/survey_link/SurveyLink.ts +3 -3
  300. package/front_end/ui/components/text_editor/config.ts +2 -2
  301. package/front_end/ui/components/tree_outline/TreeOutline.ts +34 -1
  302. package/front_end/ui/legacy/ReportView.ts +5 -0
  303. package/front_end/ui/legacy/Treeoutline.ts +18 -0
  304. package/front_end/ui/legacy/View.ts +1 -1
  305. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -0
  306. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -3
  307. package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
  308. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  309. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +100 -36
  310. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +7 -1
  311. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +5 -0
  312. package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -2
  313. package/front_end/ui/legacy/inspectorCommon.css +5 -0
  314. package/front_end/ui/visual_logging/KnownContextValues.ts +4 -0
  315. package/mcp/mcp.ts +2 -0
  316. package/package.json +4 -4
  317. package/front_end/panels/profiler/ProfileView.ts +0 -610
@@ -53,6 +53,18 @@ const byteFormatters = {
53
53
  ...defaultByteFormatterOptions,
54
54
  unit: 'kilobyte',
55
55
  }),
56
+ kilobytesDecimal: new Intl.NumberFormat('en-US', {
57
+ ...defaultByteFormatterOptions,
58
+ minimumFractionDigits: 1,
59
+ maximumFractionDigits: 1,
60
+ unit: 'kilobyte',
61
+ }),
62
+ kilobytesInteger: new Intl.NumberFormat('en-US', {
63
+ ...defaultByteFormatterOptions,
64
+ minimumFractionDigits: 0,
65
+ maximumFractionDigits: 0,
66
+ unit: 'kilobyte',
67
+ }),
56
68
  megabytes: new Intl.NumberFormat('en-US', {
57
69
  ...defaultByteFormatterOptions,
58
70
  unit: 'megabyte',
@@ -119,6 +131,14 @@ export function bytes(x: number): string {
119
131
  return formatAndEnsureSpace(byteFormatters.megabytes, megabytes);
120
132
  }
121
133
 
134
+ export function formatBytesToKb(x: number): string {
135
+ const kilobytes = x / 1_000;
136
+ if (kilobytes < 100) {
137
+ return formatAndEnsureSpace(byteFormatters.kilobytesDecimal, kilobytes);
138
+ }
139
+ return formatAndEnsureSpace(byteFormatters.kilobytesInteger, kilobytes);
140
+ }
141
+
122
142
  /**
123
143
  * When using 'narrow' unitDisplay, many locales exclude the space between the literal and the unit.
124
144
  * We don't like that, so when there is no space literal we inject the provided separator manually.
@@ -5,6 +5,7 @@
5
5
  import type * as Protocol from '../../../generated/protocol.js';
6
6
  import * as Trace from '../../../models/trace/trace.js';
7
7
  import * as SourceMapsResolver from '../../../models/trace_source_maps_resolver/trace_source_maps_resolver.js';
8
+ import * as Workspace from '../../../models/workspace/workspace.js';
8
9
 
9
10
  /** Iterates from a node down through its descendents. If the callback returns true, the loop stops. */
10
11
  function depthFirstWalk(
@@ -335,7 +336,8 @@ export class AICallTree {
335
336
  const selfTimeStr = roundToTenths(node.selfTime);
336
337
 
337
338
  // 6. URL Index
338
- const location = SourceMapsResolver.SourceMapsResolver.codeLocationForEntry(parsedTrace, event);
339
+ const location = SourceMapsResolver.SourceMapsResolver.codeLocationForEntry(
340
+ parsedTrace, event, Workspace.Workspace.WorkspaceImpl.instance());
339
341
  const url = location?.url;
340
342
  let urlIndexStr = '';
341
343
  if (url) {
@@ -9,6 +9,7 @@ import * as Logs from '../../logs/logs.js';
9
9
  import type {FunctionCallHandlerResult} from '../agents/AiAgent.js';
10
10
  import {isOpaqueOrigin} from '../AiOrigins.js';
11
11
  import {getRequestContextOrigin} from '../contexts/RequestContext.js';
12
+ import {formatBytesToKb, seconds} from '../data_formatters/UnitFormatters.js';
12
13
 
13
14
  import {
14
15
  type BaseToolCapability,
@@ -96,8 +97,8 @@ export class ListNetworkRequestsTool implements
96
97
  id: request.requestId(),
97
98
  url: request.url(),
98
99
  statusCode: request.statusCode,
99
- duration: i18n.TimeUtilities.secondsToString(request.duration),
100
- transferSize: i18n.ByteUtilities.formatBytesToKb(request.transferSize),
100
+ duration: seconds(request.duration),
101
+ transferSize: formatBytesToKb(request.transferSize),
101
102
  });
102
103
  requestsToShow.push(request);
103
104
  }
@@ -8,6 +8,7 @@ import * as SDK from '../../core/sdk/sdk.js';
8
8
  import type * as Protocol from '../../generated/protocol.js';
9
9
 
10
10
  export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
11
+ #targetManager: SDK.TargetManager.TargetManager;
11
12
  #address = '';
12
13
  #filledFields: Protocol.Autofill.FilledField[] = [];
13
14
  #matches: Match[] = [];
@@ -16,6 +17,7 @@ export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTyp
16
17
 
17
18
  constructor(targetManager: SDK.TargetManager.TargetManager, frameManager: SDK.FrameManager.FrameManager) {
18
19
  super();
20
+ this.#targetManager = targetManager;
19
21
  this.#frameManager = frameManager;
20
22
  targetManager.addModelListener(SDK.AutofillModel.AutofillModel, SDK.AutofillModel.Events.ADDRESS_FORM_FILLED,
21
23
  this.#addressFormFilled, this, {scoped: true});
@@ -58,7 +60,7 @@ export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTyp
58
60
  }
59
61
 
60
62
  clearHighlightedFilledFields(): void {
61
- SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight();
63
+ SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight(this.#targetManager);
62
64
  }
63
65
 
64
66
  #processAddressFormFilledData({addressUi, filledFields}: Protocol.Autofill.AddressFormFilledEvent): void {
@@ -152,6 +152,7 @@ export interface SourceMapping {
152
152
 
153
153
  export class ModelInfo {
154
154
  readonly #eventListeners: Common.EventTarget.EventDescriptor[];
155
+ readonly #cssWorkspaceBinding: CSSWorkspaceBinding;
155
156
  readonly #resourceMapping: ResourceMapping;
156
157
  #stylesSourceMapping: StylesSourceMapping;
157
158
  #sassSourceMapping: SASSSourceMapping;
@@ -159,6 +160,7 @@ export class ModelInfo {
159
160
  readonly #unboundLocations: Platform.MapUtilities.Multimap<Platform.DevToolsPath.UrlString, LiveLocation>;
160
161
  constructor(
161
162
  cssModel: SDK.CSSModel.CSSModel, resourceMapping: ResourceMapping, cssWorkspaceBinding: CSSWorkspaceBinding) {
163
+ this.#cssWorkspaceBinding = cssWorkspaceBinding;
162
164
  this.#eventListeners = [
163
165
  cssModel.addEventListener(
164
166
  SDK.CSSModel.Events.StyleSheetAdded,
@@ -191,7 +193,7 @@ export class ModelInfo {
191
193
  async createLiveLocation(
192
194
  rawLocation: SDK.CSSModel.CSSLocation, updateDelegate: (arg0: LiveLocationInterface) => Promise<void>,
193
195
  locationPool: LiveLocationPool): Promise<LiveLocation> {
194
- const location = new LiveLocation(rawLocation, this, updateDelegate, locationPool);
196
+ const location = new LiveLocation(rawLocation, this, this.#cssWorkspaceBinding, updateDelegate, locationPool);
195
197
  const header = rawLocation.header();
196
198
  if (header) {
197
199
  location.setHeader(header);
@@ -286,15 +288,16 @@ export class LiveLocation extends LiveLocationWithPool {
286
288
  readonly #lineNumber: number;
287
289
  readonly #columnNumber: number;
288
290
  readonly #info: ModelInfo;
291
+ readonly #cssWorkspaceBinding: CSSWorkspaceBinding;
289
292
  #header: SDK.CSSStyleSheetHeader.CSSStyleSheetHeader|null;
290
- constructor(
291
- rawLocation: SDK.CSSModel.CSSLocation, info: ModelInfo,
292
- updateDelegate: (arg0: LiveLocationInterface) => Promise<void>, locationPool: LiveLocationPool) {
293
+ constructor(rawLocation: SDK.CSSModel.CSSLocation, info: ModelInfo, cssWorkspaceBinding: CSSWorkspaceBinding,
294
+ updateDelegate: (arg0: LiveLocationInterface) => Promise<void>, locationPool: LiveLocationPool) {
293
295
  super(updateDelegate, locationPool);
294
296
  this.url = rawLocation.url;
295
297
  this.#lineNumber = rawLocation.lineNumber;
296
298
  this.#columnNumber = rawLocation.columnNumber;
297
299
  this.#info = info;
300
+ this.#cssWorkspaceBinding = cssWorkspaceBinding;
298
301
  this.#header = null;
299
302
  }
300
303
 
@@ -311,7 +314,7 @@ export class LiveLocation extends LiveLocationWithPool {
311
314
  return null;
312
315
  }
313
316
  const rawLocation = new SDK.CSSModel.CSSLocation(this.#header, this.#lineNumber, this.#columnNumber);
314
- return CSSWorkspaceBinding.instance().rawLocationToUILocation(rawLocation);
317
+ return this.#cssWorkspaceBinding.rawLocationToUILocation(rawLocation);
315
318
  }
316
319
 
317
320
  override dispose(): void {
@@ -480,7 +480,8 @@ export class CompilerScriptMapping implements DebuggerSourceMapping {
480
480
  const contentProvider = content !== null ?
481
481
  TextUtils.StaticContentProvider.StaticContentProvider.fromString(url, contentType, content) :
482
482
  new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
483
- url, contentType, script.createPageResourceLoadInitiator());
483
+ url, contentType, script.createPageResourceLoadInitiator(),
484
+ target.targetManager().getPageResourceLoader());
484
485
  let metadata: Workspace.UISourceCode.UISourceCodeMetadata|null = null;
485
486
  if (content !== null) {
486
487
  const encoder = new TextEncoder();
@@ -404,6 +404,7 @@ export class DebuggerLanguagePluginManager implements
404
404
  SDK.TargetManager.SDKModelObserver<SDK.DebuggerModel.DebuggerModel> {
405
405
  readonly #workspace: Workspace.Workspace.WorkspaceImpl;
406
406
  readonly #debuggerWorkspaceBinding: DebuggerWorkspaceBinding;
407
+ readonly #console: Common.Console.Console;
407
408
  #plugins: DebuggerLanguagePlugin[];
408
409
  readonly #debuggerModelToData: Map<SDK.DebuggerModel.DebuggerModel, ModelData>;
409
410
  readonly #rawModuleHandles: Map<string, {
@@ -417,11 +418,11 @@ export class DebuggerLanguagePluginManager implements
417
418
  private readonly stopIdByCallFrame = new Map<SDK.DebuggerModel.CallFrame, StopId>();
418
419
  private nextStopId: StopId = 0n;
419
420
 
420
- constructor(
421
- targetManager: SDK.TargetManager.TargetManager, workspace: Workspace.Workspace.WorkspaceImpl,
422
- debuggerWorkspaceBinding: DebuggerWorkspaceBinding) {
421
+ constructor(targetManager: SDK.TargetManager.TargetManager, workspace: Workspace.Workspace.WorkspaceImpl,
422
+ debuggerWorkspaceBinding: DebuggerWorkspaceBinding, console: Common.Console.Console) {
423
423
  this.#workspace = workspace;
424
424
  this.#debuggerWorkspaceBinding = debuggerWorkspaceBinding;
425
+ this.#console = console;
425
426
 
426
427
  this.#plugins = [];
427
428
 
@@ -511,8 +512,8 @@ export class DebuggerLanguagePluginManager implements
511
512
  const scripts = rawModuleHandle.scripts.filter(script => script.debuggerModel !== debuggerModel);
512
513
  if (scripts.length === 0) {
513
514
  rawModuleHandle.plugin.removeRawModule(rawModuleId).catch(error => {
514
- Common.Console.Console.instance().error(
515
- i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
515
+ this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}),
516
+ /* show=*/ false);
516
517
  });
517
518
  this.#rawModuleHandles.delete(rawModuleId);
518
519
  } else {
@@ -633,8 +634,7 @@ export class DebuggerLanguagePluginManager implements
633
634
  sourceLocation.lineNumber, sourceLocation.columnNumber >= 0 ? sourceLocation.columnNumber : undefined);
634
635
  }
635
636
  } catch (error) {
636
- Common.Console.Console.instance().error(
637
- i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
637
+ this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
638
638
  }
639
639
  return null;
640
640
  }
@@ -663,8 +663,7 @@ export class DebuggerLanguagePluginManager implements
663
663
  }
664
664
 
665
665
  return Promise.all(locationPromises).then(locations => locations.flat()).catch(error => {
666
- Common.Console.Console.instance().error(
667
- i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
666
+ this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
668
667
  return null;
669
668
  });
670
669
 
@@ -841,7 +840,7 @@ export class DebuggerLanguagePluginManager implements
841
840
  let rawModuleHandle = this.#rawModuleHandles.get(rawModuleId);
842
841
  if (!rawModuleHandle) {
843
842
  const sourceFileURLsPromise = (async () => {
844
- const console = Common.Console.Console.instance();
843
+ const console = this.#console;
845
844
  const url = script.sourceURL;
846
845
  const symbolsUrl = (script.debugSymbols?.externalURL) || '';
847
846
  if (symbolsUrl) {
@@ -962,8 +961,7 @@ export class DebuggerLanguagePluginManager implements
962
961
  }
963
962
  return Array.from(scopes.values());
964
963
  } catch (error) {
965
- Common.Console.Console.instance().error(
966
- i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
964
+ this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
967
965
  return null;
968
966
  }
969
967
  }
@@ -995,7 +993,7 @@ export class DebuggerLanguagePluginManager implements
995
993
  }
996
994
  return functionInfo;
997
995
  } catch (error) {
998
- Common.Console.Console.instance().warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
996
+ this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
999
997
  return {frames: []};
1000
998
  }
1001
999
  }
@@ -1032,7 +1030,7 @@ export class DebuggerLanguagePluginManager implements
1032
1030
  script.debuggerModel, script.scriptId, 0, Number(m.endOffset) + (script.codeOffset() || 0)),
1033
1031
  }));
1034
1032
  } catch (error) {
1035
- Common.Console.Console.instance().warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
1033
+ this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
1036
1034
  return [];
1037
1035
  }
1038
1036
  }
@@ -1069,7 +1067,7 @@ export class DebuggerLanguagePluginManager implements
1069
1067
  script.debuggerModel, script.scriptId, 0, Number(m.endOffset) + (script.codeOffset() || 0)),
1070
1068
  }));
1071
1069
  } catch (error) {
1072
- Common.Console.Console.instance().warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
1070
+ this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
1073
1071
  return [];
1074
1072
  }
1075
1073
  }
@@ -1128,7 +1126,8 @@ class ModelData {
1128
1126
  this.uiSourceCodeToScripts.set(uiSourceCode, [script]);
1129
1127
 
1130
1128
  const contentProvider = new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
1131
- url, Common.ResourceType.resourceTypes.SourceMapScript, initiator);
1129
+ url, Common.ResourceType.resourceTypes.SourceMapScript, initiator,
1130
+ script.target().targetManager().getPageResourceLoader());
1132
1131
  const mimeType = Common.ResourceType.ResourceType.mimeFromURL(url) || 'text/javascript';
1133
1132
  this.project.addUISourceCodeWithProvider(uiSourceCode, contentProvider, null, mimeType);
1134
1133
  } else {
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import * as Common from '../../core/common/common.js';
5
+ import type * as Common from '../../core/common/common.js';
6
6
  import * as Platform from '../../core/platform/platform.js';
7
7
  import * as Root from '../../core/root/root.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
@@ -34,6 +34,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
34
34
  readonly pluginManager: DebuggerLanguagePluginManager;
35
35
  readonly ignoreListManager: Workspace.IgnoreListManager.IgnoreListManager;
36
36
  readonly workspace: Workspace.Workspace.WorkspaceImpl;
37
+ readonly #settings: Common.Settings.Settings;
37
38
 
38
39
  constructor(
39
40
  resourceMapping: ResourceMapping, targetManager: SDK.TargetManager.TargetManager,
@@ -42,6 +43,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
42
43
  this.resourceMapping.debuggerWorkspaceBinding = this;
43
44
  this.ignoreListManager = ignoreListManager;
44
45
  this.workspace = workspace;
46
+ this.#settings = targetManager.settings;
45
47
 
46
48
  this.#debuggerModelToData = new Map();
47
49
  targetManager.observeModels(SDK.DebuggerModel.DebuggerModel, this);
@@ -50,7 +52,8 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
50
52
 
51
53
  this.#liveLocationPromises = new Set();
52
54
 
53
- this.pluginManager = new DebuggerLanguagePluginManager(targetManager, resourceMapping.workspace, this);
55
+ this.pluginManager =
56
+ new DebuggerLanguagePluginManager(targetManager, resourceMapping.workspace, this, targetManager.getConsole());
54
57
  }
55
58
 
56
59
  setFunctionRanges(
@@ -489,8 +492,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
489
492
  }
490
493
  const functionLocation = frame.functionLocation();
491
494
  if (!autoSteppingContext || debuggerPausedDetails.reason !== Protocol.Debugger.PausedEventReason.Step ||
492
- !functionLocation || !frame.script.isWasm() ||
493
- !Common.Settings.Settings.instance().moduleSetting('wasm-auto-stepping').get() ||
495
+ !functionLocation || !frame.script.isWasm() || !this.#settings.moduleSetting('wasm-auto-stepping').get() ||
494
496
  !this.pluginManager.hasPluginForScript(frame.script)) {
495
497
  return true;
496
498
  }
@@ -170,10 +170,12 @@ export class ChunkedFileReader implements ChunkedReader {
170
170
  }
171
171
 
172
172
  export class FileOutputStream implements Common.StringOutputStream.OutputStream {
173
+ readonly #fileManager: Workspace.FileManager.FileManager;
173
174
  #writeCallbacks: Array<() => void>;
174
175
  #fileName!: Platform.DevToolsPath.RawPathString|Platform.DevToolsPath.UrlString;
175
176
  #closed?: boolean;
176
- constructor() {
177
+ constructor(fileManager: Workspace.FileManager.FileManager) {
178
+ this.#fileManager = fileManager;
177
179
  this.#writeCallbacks = [];
178
180
  }
179
181
 
@@ -181,11 +183,10 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
181
183
  this.#closed = false;
182
184
  this.#writeCallbacks = [];
183
185
  this.#fileName = fileName;
184
- const saveResponse = await Workspace.FileManager.FileManager.instance().save(
185
- this.#fileName, TextUtils.ContentData.EMPTY_TEXT_CONTENT_DATA, /* forceSaveAs=*/ true);
186
+ const saveResponse = await this.#fileManager.save(this.#fileName, TextUtils.ContentData.EMPTY_TEXT_CONTENT_DATA,
187
+ /* forceSaveAs=*/ true);
186
188
  if (saveResponse) {
187
- Workspace.FileManager.FileManager.instance().addEventListener(
188
- Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
189
+ this.#fileManager.addEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
189
190
  }
190
191
  return Boolean(saveResponse);
191
192
  }
@@ -193,7 +194,7 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
193
194
  write(data: string): Promise<void> {
194
195
  return new Promise(resolve => {
195
196
  this.#writeCallbacks.push(resolve);
196
- Workspace.FileManager.FileManager.instance().append(this.#fileName, data);
197
+ this.#fileManager.append(this.#fileName, data);
197
198
  });
198
199
  }
199
200
 
@@ -202,9 +203,8 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
202
203
  if (this.#writeCallbacks.length) {
203
204
  return;
204
205
  }
205
- Workspace.FileManager.FileManager.instance().removeEventListener(
206
- Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
207
- Workspace.FileManager.FileManager.instance().close(this.#fileName);
206
+ this.#fileManager.removeEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
207
+ this.#fileManager.close(this.#fileName);
208
208
  }
209
209
 
210
210
  private onAppendDone(event: Common.EventTarget.EventTargetEvent<string>): void {
@@ -221,8 +221,7 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
221
221
  if (!this.#closed) {
222
222
  return;
223
223
  }
224
- Workspace.FileManager.FileManager.instance().removeEventListener(
225
- Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
226
- Workspace.FileManager.FileManager.instance().close(this.#fileName);
224
+ this.#fileManager.removeEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
225
+ this.#fileManager.close(this.#fileName);
227
226
  }
228
227
  }
@@ -25,6 +25,10 @@ export class NetworkProjectManager extends Common.ObjectWrapper.ObjectWrapper<Ev
25
25
 
26
26
  return Root.DevToolsContext.globalInstance().get(NetworkProjectManager);
27
27
  }
28
+
29
+ static removeInstance(): void {
30
+ Root.DevToolsContext.globalInstance().delete(NetworkProjectManager);
31
+ }
28
32
  }
29
33
 
30
34
  export const enum Events {
@@ -67,7 +67,8 @@ export class PresentationConsoleMessageManager {
67
67
  SDK.TargetManager.TargetManager.instance().addModelListener(
68
68
  SDK.ConsoleModel.ConsoleModel, SDK.ConsoleModel.Events.MessageAdded,
69
69
  event => this.consoleMessageAdded(event.data));
70
- SDK.ConsoleModel.ConsoleModel.allMessagesUnordered().forEach(this.consoleMessageAdded, this);
70
+ SDK.ConsoleModel.ConsoleModel.allMessagesUnordered(SDK.TargetManager.TargetManager.instance())
71
+ .forEach(this.consoleMessageAdded, this);
71
72
  SDK.TargetManager.TargetManager.instance().addModelListener(
72
73
  SDK.ConsoleModel.ConsoleModel, SDK.ConsoleModel.Events.ConsoleCleared,
73
74
  () => this.#sourceFrameMessageManager.clear());
@@ -39,7 +39,7 @@ import type * as Protocol from '../../generated/protocol.js';
39
39
  import * as Workspace from '../workspace/workspace.js';
40
40
 
41
41
  export function resourceForURL(url: Platform.DevToolsPath.UrlString): SDK.Resource.Resource|null {
42
- return SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(url);
42
+ return SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(SDK.TargetManager.TargetManager.instance(), url);
43
43
  }
44
44
 
45
45
  export function displayNameForURL(url: Platform.DevToolsPath.UrlString): string {
@@ -55,7 +55,8 @@ export class SASSSourceMapping implements SourceMapping {
55
55
  for (const sourceURL of sourceMap.sourceURLs()) {
56
56
  let binding = bindings.get(sourceURL);
57
57
  if (!binding) {
58
- binding = new Binding(project, sourceURL, header.createPageResourceLoadInitiator());
58
+ binding = new Binding(project, sourceURL, header.createPageResourceLoadInitiator(),
59
+ header.cssModel().target().targetManager().getPageResourceLoader());
59
60
  bindings.set(sourceURL, binding);
60
61
  }
61
62
  binding.addSourceMap(sourceMap, header.frameId);
@@ -151,15 +152,17 @@ class Binding {
151
152
  readonly #project: ContentProviderBasedProject;
152
153
  readonly #url: Platform.DevToolsPath.UrlString;
153
154
  readonly #initiator: SDK.PageResourceLoader.PageResourceLoadInitiator;
155
+ readonly #pageResourceLoader: SDK.PageResourceLoader.PageResourceLoader;
154
156
  referringSourceMaps: SDK.SourceMap.SourceMap[];
155
157
  uiSourceCode: Workspace.UISourceCode.UISourceCode|null;
156
158
 
157
- constructor(
158
- project: ContentProviderBasedProject, url: Platform.DevToolsPath.UrlString,
159
- initiator: SDK.PageResourceLoader.PageResourceLoadInitiator) {
159
+ constructor(project: ContentProviderBasedProject, url: Platform.DevToolsPath.UrlString,
160
+ initiator: SDK.PageResourceLoader.PageResourceLoadInitiator,
161
+ pageResourceLoader: SDK.PageResourceLoader.PageResourceLoader) {
160
162
  this.#project = project;
161
163
  this.#url = url;
162
164
  this.#initiator = initiator;
165
+ this.#pageResourceLoader = pageResourceLoader;
163
166
 
164
167
  this.referringSourceMaps = [];
165
168
  this.uiSourceCode = null;
@@ -173,7 +176,7 @@ class Binding {
173
176
  const contentProvider = embeddedContent !== null ?
174
177
  TextUtils.StaticContentProvider.StaticContentProvider.fromString(this.#url, contentType, embeddedContent) :
175
178
  new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
176
- this.#url, contentType, this.#initiator);
179
+ this.#url, contentType, this.#initiator, this.#pageResourceLoader);
177
180
  const newUISourceCode = this.#project.createUISourceCode(this.#url, contentType);
178
181
  uiSourceCodeToBinding.set(newUISourceCode, this);
179
182
  const mimeType = Common.ResourceType.ResourceType.mimeFromURL(this.#url) || contentType.canonicalMimeType();
@@ -21,62 +21,62 @@ import {
21
21
 
22
22
  const UIStrings = {
23
23
  /**
24
- * @description Error message shown in the Devices settings pane when the user enters an empty
24
+ * @description Error message shown on the Devices settings tab when the user enters an empty
25
25
  * width for a custom device.
26
26
  */
27
- widthCannotBeEmpty: 'Width cannot be empty.',
27
+ widthCannotBeEmpty: 'Width can’t be empty.',
28
28
  /**
29
- * @description Error message shown in the Devices settings pane when the user enters an invalid
29
+ * @description Error message shown on the Devices settings tab when the user enters an invalid
30
30
  * width for a custom device.
31
31
  */
32
32
  widthMustBeANumber: 'Width must be a number.',
33
33
  /**
34
- * @description Error message shown in the Devices settings pane when the user has entered a width
34
+ * @description Error message shown on the Devices settings tab when the user has entered a width
35
35
  * for a custom device that is too large.
36
36
  * @example {9999} PH1
37
37
  */
38
38
  widthMustBeLessThanOrEqualToS: 'Width must be less than or equal to {PH1}.',
39
39
  /**
40
- * @description Error message shown in the Devices settings pane when the user has entered a width
40
+ * @description Error message shown on the Devices settings tab when the user has entered a width
41
41
  * for a custom device that is too small.
42
42
  * @example {50} PH1
43
43
  */
44
44
  widthMustBeGreaterThanOrEqualToS: 'Width must be greater than or equal to {PH1}.',
45
45
  /**
46
- * @description Error message shown in the Devices settings pane when the user enters an empty
46
+ * @description Error message shown on the Devices settings tab when the user enters an empty
47
47
  * height for a custom device.
48
48
  */
49
- heightCannotBeEmpty: 'Height cannot be empty.',
49
+ heightCannotBeEmpty: 'Height can’t be empty.',
50
50
  /**
51
- * @description Error message shown in the Devices settings pane when the user enters an invalid
51
+ * @description Error message shown on the Devices settings tab when the user enters an invalid
52
52
  * height for a custom device.
53
53
  */
54
54
  heightMustBeANumber: 'Height must be a number.',
55
55
  /**
56
- * @description Error message shown in the Devices settings pane when the user has entered a height
56
+ * @description Error message shown on the Devices settings tab when the user has entered a height
57
57
  * for a custom device that is too large.
58
58
  * @example {9999} PH1
59
59
  */
60
60
  heightMustBeLessThanOrEqualToS: 'Height must be less than or equal to {PH1}.',
61
61
  /**
62
- * @description Error message shown in the Devices settings pane when the user has entered a height
62
+ * @description Error message shown on the Devices settings tab when the user has entered a height
63
63
  * for a custom device that is too small.
64
64
  * @example {50} PH1
65
65
  */
66
66
  heightMustBeGreaterThanOrEqualTo: 'Height must be greater than or equal to {PH1}.',
67
67
  /**
68
- * @description Error message shown in the Devices settings pane when the user enters an invalid
68
+ * @description Error message shown on the Devices settings tab when the user enters an invalid
69
69
  * device pixel ratio for a custom device.
70
70
  */
71
71
  devicePixelRatioMustBeANumberOr: 'Device pixel ratio must be a number or blank.',
72
72
  /**
73
- * @description Error message shown in the Devices settings pane when the user enters a device
73
+ * @description Error message shown on the Devices settings tab when the user enters a device
74
74
  * pixel ratio for a custom device that is too large.
75
75
  * @example {10} PH1
76
76
  */
77
77
  devicePixelRatioMustBeLessThanOr: 'Device pixel ratio must be less than or equal to {PH1}.',
78
78
  /**
79
- * @description Error message shown in the Devices settings pane when the user enters a device
79
+ * @description Error message shown on the Devices settings tab when the user enters a device
80
80
  * pixel ratio for a custom device that is too small.
81
81
  * @example {0} PH1
82
82
  */
@@ -166,7 +166,7 @@ export class DeviceModeModel extends Common.ObjectWrapper.ObjectWrapper<EventTyp
166
166
  this.#deviceScaleFactorSetting = this.#settings.createSetting('emulation.device-scale-factor', 0);
167
167
  this.#deviceScaleFactorSetting.addChangeListener(this.deviceScaleFactorSettingChanged, this);
168
168
 
169
- this.#deviceOutlineSetting = this.#settings.createSetting('emulation.show-device-outline', false);
169
+ this.#deviceOutlineSetting = this.#settings.moduleSetting('emulation.show-device-outline');
170
170
  this.#deviceOutlineSetting.addChangeListener(this.deviceOutlineSettingChanged, this);
171
171
 
172
172
  this.#toolbarControlsEnabledSetting = this.#settings.createSetting('emulation.toolbar-controls-enabled', true,