chrome-devtools-frontend 1.0.1548980 → 1.0.1550444

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 (323) hide show
  1. package/docs/contributing/settings-experiments-features.md +35 -0
  2. package/docs/styleguide/ux/components.md +53 -12
  3. package/docs/styleguide/ux/images/cards.png +0 -0
  4. package/docs/styleguide/ux/patterns.md +27 -0
  5. package/docs/ui_engineering.md +2 -2
  6. package/eslint.config.mjs +1 -0
  7. package/front_end/Tests.js +2 -0
  8. package/front_end/core/host/InspectorFrontendHost.ts +26 -558
  9. package/front_end/core/host/InspectorFrontendHostAPI.ts +6 -3
  10. package/front_end/core/host/InspectorFrontendHostStub.ts +558 -0
  11. package/front_end/core/host/ResourceLoader.ts +9 -23
  12. package/front_end/core/host/UserMetrics.ts +4 -4
  13. package/front_end/core/root/DevToolsContext.ts +4 -0
  14. package/front_end/core/root/Runtime.ts +10 -0
  15. package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
  16. package/front_end/core/sdk/CSSModel.ts +24 -24
  17. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +11 -11
  18. package/front_end/core/sdk/CSSQuery.ts +1 -1
  19. package/front_end/core/sdk/CSSRule.ts +2 -2
  20. package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
  21. package/front_end/core/sdk/CSSStyleSheetHeader.ts +1 -1
  22. package/front_end/core/sdk/DOMModel.ts +3 -0
  23. package/front_end/core/sdk/NetworkManager.ts +41 -41
  24. package/front_end/core/sdk/NetworkRequest.ts +4 -0
  25. package/front_end/core/sdk/OverlayModel.ts +2 -2
  26. package/front_end/core/sdk/PageResourceLoader.ts +71 -38
  27. package/front_end/core/sdk/SourceMap.ts +6 -0
  28. package/front_end/core/sdk/SourceMapCache.ts +21 -0
  29. package/front_end/core/sdk/SourceMapManager.ts +14 -7
  30. package/front_end/core/sdk/SourceMapScopesInfo.ts +6 -2
  31. package/front_end/core/sdk/TargetManager.ts +14 -2
  32. package/front_end/core/sdk/sdk-meta.ts +13 -0
  33. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +1 -0
  34. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +1 -1
  35. package/front_end/entrypoints/main/MainImpl.ts +5 -4
  36. package/front_end/foundation/Universe.ts +8 -1
  37. package/front_end/generated/Deprecation.ts +18 -4
  38. package/front_end/generated/InspectorBackendCommands.ts +38 -33
  39. package/front_end/generated/SupportedCSSProperties.js +41 -41
  40. package/front_end/generated/protocol-mapping.d.ts +20 -0
  41. package/front_end/generated/protocol-proxy-api.d.ts +17 -0
  42. package/front_end/generated/protocol.ts +146 -35
  43. package/front_end/models/ai_assistance/AiConversation.ts +5 -4
  44. package/front_end/models/ai_assistance/BuiltInAi.ts +79 -5
  45. package/front_end/models/ai_assistance/ChangeManager.ts +4 -4
  46. package/front_end/models/ai_assistance/ConversationHandler.ts +0 -15
  47. package/front_end/models/ai_assistance/agents/AiAgent.ts +9 -6
  48. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +135 -3
  49. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +24 -0
  50. package/front_end/models/bindings/CompilerScriptMapping.ts +43 -0
  51. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +19 -0
  52. package/front_end/models/bindings/ResourceMapping.ts +73 -0
  53. package/front_end/models/bindings/ResourceScriptMapping.ts +50 -0
  54. package/front_end/models/issues_manager/AttributionReportingIssue.ts +6 -8
  55. package/front_end/models/issues_manager/BounceTrackingIssue.ts +4 -14
  56. package/front_end/models/issues_manager/ClientHintIssue.ts +5 -12
  57. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -12
  58. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +7 -14
  59. package/front_end/models/issues_manager/CookieIssue.ts +27 -30
  60. package/front_end/models/issues_manager/CorsIssue.ts +8 -17
  61. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -8
  62. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -14
  63. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +7 -14
  64. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +4 -11
  65. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +4 -11
  66. package/front_end/models/issues_manager/GenericIssue.ts +28 -16
  67. package/front_end/models/issues_manager/HeavyAdIssue.ts +4 -11
  68. package/front_end/models/issues_manager/Issue.ts +12 -4
  69. package/front_end/models/issues_manager/IssueAggregator.ts +8 -2
  70. package/front_end/models/issues_manager/LowTextContrastIssue.ts +3 -10
  71. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -13
  72. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +4 -11
  73. package/front_end/models/issues_manager/PropertyRuleIssue.ts +6 -12
  74. package/front_end/models/issues_manager/QuirksModeIssue.ts +3 -10
  75. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +7 -13
  76. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +4 -11
  77. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +6 -13
  78. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +8 -13
  79. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +2 -9
  80. package/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  81. package/front_end/models/javascript_metadata/NativeFunctions.js +7 -16
  82. package/front_end/models/source_map_scopes/FunctionCodeResolver.snapshot.txt +98 -0
  83. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +270 -0
  84. package/front_end/models/source_map_scopes/source_map_scopes.ts +2 -0
  85. package/front_end/models/workspace/UISourceCode.ts +51 -44
  86. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +76 -34
  87. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -0
  88. package/front_end/panels/ai_assistance/components/ChatView.ts +23 -11
  89. package/front_end/panels/application/AppManifestView.ts +7 -6
  90. package/front_end/panels/application/ApplicationPanelSidebar.ts +21 -21
  91. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  92. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  93. package/front_end/panels/application/FrameDetailsView.ts +5 -6
  94. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  95. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -2
  96. package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
  97. package/front_end/panels/application/PreloadingTreeElement.ts +3 -3
  98. package/front_end/panels/application/ReportingApiTreeElement.ts +2 -2
  99. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +3 -3
  100. package/front_end/panels/application/ServiceWorkersView.ts +2 -2
  101. package/front_end/panels/application/SharedStorageListTreeElement.ts +2 -2
  102. package/front_end/panels/application/StorageBucketsTreeElement.ts +3 -3
  103. package/front_end/panels/application/StorageView.ts +2 -2
  104. package/front_end/panels/application/TrustTokensTreeElement.ts +4 -8
  105. package/front_end/panels/application/components/PermissionsPolicySection.ts +202 -158
  106. package/front_end/panels/application/components/ProtocolHandlersView.ts +118 -81
  107. package/front_end/panels/application/components/ServiceWorkerRouterView.ts +47 -41
  108. package/front_end/panels/application/components/SharedStorageMetadataView.ts +1 -1
  109. package/front_end/panels/application/components/StorageMetadataView.ts +31 -34
  110. package/front_end/panels/application/components/TrustTokensView.ts +77 -69
  111. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
  112. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +1 -1
  113. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +1 -1
  114. package/front_end/panels/changes/ChangesSidebar.ts +2 -0
  115. package/front_end/panels/changes/CombinedDiffView.ts +2 -0
  116. package/front_end/panels/common/AnnotationManager.ts +71 -0
  117. package/front_end/panels/common/PersistenceUtils.ts +6 -7
  118. package/front_end/panels/common/common.ts +1 -0
  119. package/front_end/panels/console/ConsolePrompt.ts +4 -4
  120. package/front_end/panels/console/ConsoleView.ts +5 -4
  121. package/front_end/panels/console/ConsoleViewMessage.ts +16 -15
  122. package/front_end/panels/console/console-meta.ts +0 -13
  123. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -0
  124. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  125. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +3 -1
  126. package/front_end/panels/elements/CSSRuleValidator.ts +7 -7
  127. package/front_end/panels/elements/CSSRuleValidatorHelper.ts +2 -2
  128. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
  129. package/front_end/panels/elements/ElementsPanel.ts +49 -0
  130. package/front_end/panels/elements/ElementsTreeElement.ts +172 -121
  131. package/front_end/panels/elements/ElementsTreeOutline.ts +11 -3
  132. package/front_end/panels/elements/LayoutPane.ts +12 -10
  133. package/front_end/panels/elements/ShortcutTreeElement.ts +2 -2
  134. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  135. package/front_end/panels/elements/StylePropertyTreeElement.ts +18 -18
  136. package/front_end/panels/elements/StylesSidebarPane.ts +4 -5
  137. package/front_end/panels/elements/TopLayerContainer.ts +2 -2
  138. package/front_end/panels/elements/components/AdornerManager.ts +3 -3
  139. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  140. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  141. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  142. package/front_end/panels/elements/components/StylePropertyEditor.ts +7 -7
  143. package/front_end/panels/emulation/DeviceModeWrapper.ts +48 -3
  144. package/front_end/panels/explain/components/ConsoleInsight.ts +6 -4
  145. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  146. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +2 -2
  147. package/front_end/panels/issues/IssueKindView.ts +2 -2
  148. package/front_end/panels/issues/IssueView.ts +4 -4
  149. package/front_end/panels/js_timeline/js_timeline-meta.ts +4 -2
  150. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +28 -50
  151. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +15 -11
  152. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -1
  153. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  154. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  155. package/front_end/panels/media/PlayerListView.ts +100 -73
  156. package/front_end/panels/media/playerListView.css +5 -0
  157. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
  158. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +4 -5
  159. package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
  160. package/front_end/panels/network/NetworkFrameGrouper.ts +2 -2
  161. package/front_end/panels/network/NetworkItemView.ts +4 -4
  162. package/front_end/panels/network/NetworkLogViewColumns.ts +3 -3
  163. package/front_end/panels/network/RequestConditionsDrawer.ts +5 -5
  164. package/front_end/panels/network/RequestCookiesView.ts +2 -2
  165. package/front_end/panels/network/SignedExchangeInfoView.ts +2 -2
  166. package/front_end/panels/network/components/DirectSocketConnectionView.ts +17 -0
  167. package/front_end/panels/network/components/RequestTrustTokensView.ts +5 -6
  168. package/front_end/panels/network/resourceChunkView.css +4 -0
  169. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
  170. package/front_end/panels/profiler/ProfileDataGrid.ts +2 -2
  171. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  172. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  173. package/front_end/panels/recorder/components/CreateRecordingView.ts +1 -1
  174. package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
  175. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  176. package/front_end/panels/recorder/components/RecordingView.ts +1 -1
  177. package/front_end/panels/recorder/components/StepView.ts +1 -1
  178. package/front_end/panels/screencast/ScreencastView.ts +8 -8
  179. package/front_end/panels/search/SearchView.ts +1 -1
  180. package/front_end/panels/security/CookieControlsTreeElement.ts +2 -2
  181. package/front_end/panels/security/CookieControlsView.ts +1 -1
  182. package/front_end/panels/security/CookieReportTreeElement.ts +2 -2
  183. package/front_end/panels/security/SecurityPanel.ts +5 -5
  184. package/front_end/panels/security/SecurityPanelSidebar.ts +3 -4
  185. package/front_end/panels/sensors/LocationsSettingsTab.ts +1 -1
  186. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +1 -1
  187. package/front_end/panels/settings/KeybindsSettingsTab.ts +5 -5
  188. package/front_end/panels/settings/SettingsScreen.ts +7 -8
  189. package/front_end/panels/settings/WorkspaceSettingsTab.ts +1 -1
  190. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +1 -1
  191. package/front_end/panels/snippets/SnippetsQuickOpen.ts +16 -6
  192. package/front_end/panels/sources/BreakpointEditDialog.ts +3 -3
  193. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  194. package/front_end/panels/sources/CSSPlugin.ts +4 -4
  195. package/front_end/panels/sources/CallStackSidebarPane.ts +4 -4
  196. package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
  197. package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +40 -23
  198. package/front_end/panels/sources/GoToLineQuickOpen.ts +11 -5
  199. package/front_end/panels/sources/NavigatorView.ts +4 -4
  200. package/front_end/panels/sources/OpenFileQuickOpen.ts +11 -16
  201. package/front_end/panels/sources/OutlineQuickOpen.ts +23 -23
  202. package/front_end/panels/sources/ProfilePlugin.ts +21 -12
  203. package/front_end/panels/sources/SourcesView.ts +2 -2
  204. package/front_end/panels/sources/TabbedEditorContainer.ts +4 -5
  205. package/front_end/panels/sources/ThreadsSidebarPane.ts +2 -2
  206. package/front_end/panels/sources/UISourceCodeFrame.ts +5 -6
  207. package/front_end/panels/sources/filteredUISourceCodeListProvider.css +41 -0
  208. package/front_end/panels/timeline/TimelineHistoryManager.ts +2 -2
  209. package/front_end/panels/timeline/TimelinePanel.ts +29 -25
  210. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +3 -3
  211. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
  212. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  213. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
  214. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +1 -1
  215. package/front_end/panels/timeline/components/OriginMap.ts +1 -1
  216. package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
  217. package/front_end/panels/timeline/components/insights/DOMSize.ts +1 -1
  218. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -1
  219. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
  220. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
  221. package/front_end/panels/timeline/docs/flame_chart_migration.md +11 -16
  222. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  223. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  224. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  225. package/front_end/panels/utils/utils.ts +18 -3
  226. package/front_end/panels/whats_new/ReleaseNoteText.ts +10 -20
  227. package/front_end/panels/whats_new/resources/WNDT.md +8 -8
  228. package/front_end/third_party/chromium/README.chromium +1 -1
  229. package/front_end/third_party/puppeteer/third_party/mitt/README.chromium +1 -0
  230. package/front_end/third_party/puppeteer/third_party/parsel/README.chromium +1 -0
  231. package/front_end/third_party/puppeteer/third_party/rxjs/README.chromium +1 -0
  232. package/front_end/ui/components/adorners/Adorner.ts +21 -1
  233. package/front_end/ui/components/annotations/AnnotationRepository.ts +98 -0
  234. package/front_end/ui/components/annotations/AnnotationType.ts +10 -0
  235. package/front_end/ui/components/annotations/annotations.ts +6 -0
  236. package/front_end/ui/components/buttons/Button.ts +2 -2
  237. package/front_end/ui/components/buttons/FloatingButton.ts +2 -2
  238. package/front_end/ui/components/chrome_link/ChromeLink.ts +1 -1
  239. package/front_end/ui/components/dialogs/ButtonDialog.ts +1 -1
  240. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  241. package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -0
  242. package/front_end/ui/components/diff_view/DiffView.ts +1 -1
  243. package/front_end/ui/components/expandable_list/ExpandableList.ts +1 -1
  244. package/front_end/ui/components/highlighting/HighlightElement.ts +16 -2
  245. package/front_end/ui/components/highlighting/MarkupHighlight.ts +162 -0
  246. package/front_end/ui/components/highlighting/highlighting.ts +7 -0
  247. package/front_end/ui/components/icon_button/FileSourceIcon.ts +2 -2
  248. package/front_end/ui/components/icon_button/IconButton.ts +2 -2
  249. package/front_end/ui/components/icon_button/icon_button.ts +0 -2
  250. package/front_end/ui/components/issue_counter/IssueCounter.ts +2 -2
  251. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +2 -2
  252. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  253. package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
  254. package/front_end/ui/components/list/List.ts +184 -0
  255. package/front_end/ui/components/list/list.css +90 -0
  256. package/front_end/ui/components/{cards/cards.ts → list/lists.ts} +3 -3
  257. package/front_end/ui/components/markdown_view/CodeBlock.ts +1 -1
  258. package/front_end/ui/components/markdown_view/MarkdownImage.ts +4 -4
  259. package/front_end/ui/components/markdown_view/MarkdownLink.ts +1 -1
  260. package/front_end/ui/components/markdown_view/MarkdownView.ts +1 -1
  261. package/front_end/ui/components/menus/Menu.ts +1 -1
  262. package/front_end/ui/components/menus/SelectMenu.ts +1 -1
  263. package/front_end/ui/components/node_text/NodeText.ts +1 -1
  264. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
  265. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
  266. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  267. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +1 -1
  268. package/front_end/ui/components/report_view/ReportView.ts +1 -1
  269. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +2 -2
  270. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  271. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +2 -2
  272. package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
  273. package/front_end/ui/components/spinners/Spinner.ts +1 -1
  274. package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +1 -1
  275. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +1 -0
  276. package/front_end/ui/components/survey_link/SurveyLink.ts +2 -2
  277. package/front_end/ui/components/switch/SwitchImpl.ts +1 -1
  278. package/front_end/ui/components/text_editor/TextEditor.ts +1 -0
  279. package/front_end/ui/components/text_editor/config.ts +2 -2
  280. package/front_end/ui/components/text_prompt/TextPrompt.ts +1 -1
  281. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  282. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  283. package/front_end/ui/kit/cards/Card.docs.ts +43 -0
  284. package/front_end/ui/{components/icon_button → kit/icons}/Icon.docs.ts +3 -4
  285. package/front_end/ui/{components/icon_button → kit/icons}/Icon.ts +6 -4
  286. package/front_end/ui/kit/kit.ts +6 -0
  287. package/front_end/ui/legacy/Infobar.ts +3 -3
  288. package/front_end/ui/legacy/InspectorView.ts +3 -3
  289. package/front_end/ui/legacy/SearchableView.ts +2 -2
  290. package/front_end/ui/legacy/SoftContextMenu.ts +5 -5
  291. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  292. package/front_end/ui/legacy/TabbedPane.ts +106 -8
  293. package/front_end/ui/legacy/Toolbar.ts +3 -3
  294. package/front_end/ui/legacy/Treeoutline.ts +2 -2
  295. package/front_end/ui/legacy/UIUtils.ts +4 -188
  296. package/front_end/ui/legacy/ViewManager.ts +27 -12
  297. package/front_end/ui/legacy/ViewRegistration.ts +21 -22
  298. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +8 -8
  299. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +4 -4
  300. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +4 -4
  301. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +2 -2
  302. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -5
  303. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  304. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +5 -4
  305. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +73 -35
  306. package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +11 -2
  307. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  308. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +23 -31
  309. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +11 -27
  310. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +11 -15
  311. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +18 -65
  312. package/front_end/ui/legacy/components/source_frame/JSONView.ts +2 -1
  313. package/front_end/ui/legacy/components/utils/Linkifier.ts +3 -3
  314. package/front_end/ui/legacy/tabbedPane.css +10 -0
  315. package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
  316. package/inspector_overlay/README.md +3 -3
  317. package/mcp/HostBindings.ts +310 -0
  318. package/mcp/mcp.ts +18 -0
  319. package/mcp/tsconfig.json +6 -1
  320. package/package.json +26 -24
  321. /package/front_end/ui/{components → kit}/cards/Card.ts +0 -0
  322. /package/front_end/ui/{components → kit}/cards/card.css +0 -0
  323. /package/front_end/ui/{components/icon_button → kit/icons}/icon.css +0 -0
@@ -7,8 +7,8 @@ import * as Common from '../common/common.js';
7
7
  import * as Host from '../host/host.js';
8
8
  import * as i18n from '../i18n/i18n.js';
9
9
  import type * as Platform from '../platform/platform.js';
10
+ import * as Root from '../root/root.js';
10
11
 
11
- import {FrameManager} from './FrameManager.js';
12
12
  import {IOModel} from './IOModel.js';
13
13
  import {MultitargetNetworkManager, NetworkManager} from './NetworkManager.js';
14
14
  import {
@@ -68,7 +68,14 @@ export class ResourceKey {
68
68
  }
69
69
  }
70
70
 
71
- let pageResourceLoader: PageResourceLoader|null = null;
71
+ export type UserAgentProvider = Pick<MultitargetNetworkManager, 'currentUserAgent'>;
72
+
73
+ /**
74
+ * The PageResourceLoader has two responsibilities: loading resources and tracking statistics scoped to targets
75
+ * for the DeveloperResourcesPanel. Many places only require the former, so we expose that functionality via small
76
+ * sub-interface. This makes it easier to test classes that require resource loading.
77
+ */
78
+ export type ResourceLoader = Pick<PageResourceLoader, 'loadResource'>;
72
79
 
73
80
  interface LoadQueueEntry {
74
81
  resolve: () => void;
@@ -80,7 +87,10 @@ interface LoadQueueEntry {
80
87
  * `PageResource` object around that holds meta information. This can be as the basis for reporting to the user which
81
88
  * resources were loaded, and whether there was a load error.
82
89
  */
83
- export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
90
+ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements ResourceLoader {
91
+ readonly #targetManager: TargetManager;
92
+ readonly #settings: Common.Settings.Settings;
93
+ readonly #userAgentProvider: UserAgentProvider;
84
94
  #currentlyLoading = 0;
85
95
  #currentlyLoadingPerTarget = new Map<Protocol.Target.TargetID|'main', number>();
86
96
  readonly #maxConcurrentLoads: number;
@@ -92,41 +102,51 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
92
102
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
93
103
  }>)|null;
94
104
  constructor(
105
+ targetManager: TargetManager, settings: Common.Settings.Settings, userAgentProvider: UserAgentProvider,
95
106
  loadOverride: ((arg0: string) => Promise<{
96
107
  success: boolean,
97
108
  content: string,
98
109
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
99
110
  }>)|null,
100
- maxConcurrentLoads: number) {
111
+ maxConcurrentLoads = 500) {
101
112
  super();
113
+ this.#targetManager = targetManager;
114
+ this.#settings = settings;
115
+ this.#userAgentProvider = userAgentProvider;
102
116
  this.#maxConcurrentLoads = maxConcurrentLoads;
103
- TargetManager.instance().addModelListener(
117
+ this.#targetManager.addModelListener(
104
118
  ResourceTreeModel, ResourceTreeModelEvents.PrimaryPageChanged, this.onPrimaryPageChanged, this);
105
119
  this.#loadOverride = loadOverride;
106
120
  }
107
121
 
108
- static instance({forceNew, loadOverride, maxConcurrentLoads}: {
122
+ static instance({forceNew, targetManager, settings, userAgentProvider, loadOverride, maxConcurrentLoads}: {
109
123
  forceNew: boolean,
110
124
  loadOverride: (null|((arg0: string) => Promise<{
111
125
  success: boolean,
112
126
  content: string,
113
127
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
114
128
  }>)),
115
- maxConcurrentLoads: number,
129
+ targetManager?: TargetManager,
130
+ settings?: Common.Settings.Settings,
131
+ userAgentProvider?: UserAgentProvider,
132
+ maxConcurrentLoads?: number,
116
133
  } = {
117
134
  forceNew: false,
118
135
  loadOverride: null,
119
- maxConcurrentLoads: 500,
120
136
  }): PageResourceLoader {
121
- if (!pageResourceLoader || forceNew) {
122
- pageResourceLoader = new PageResourceLoader(loadOverride, maxConcurrentLoads);
137
+ if (forceNew) {
138
+ Root.DevToolsContext.globalInstance().set(
139
+ PageResourceLoader,
140
+ new PageResourceLoader(
141
+ targetManager ?? TargetManager.instance(), settings ?? Common.Settings.Settings.instance(),
142
+ userAgentProvider ?? MultitargetNetworkManager.instance(), loadOverride, maxConcurrentLoads));
123
143
  }
124
144
 
125
- return pageResourceLoader;
145
+ return Root.DevToolsContext.globalInstance().get(PageResourceLoader);
126
146
  }
127
147
 
128
148
  static removeInstance(): void {
129
- pageResourceLoader = null;
149
+ Root.DevToolsContext.globalInstance().delete(PageResourceLoader);
130
150
  }
131
151
 
132
152
  onPrimaryPageChanged(
@@ -159,7 +179,7 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
159
179
 
160
180
  getScopedResourcesLoaded(): Map<string, PageResource> {
161
181
  return new Map([...this.#pageResources].filter(
162
- ([_, pageResource]) => TargetManager.instance().isInScope(pageResource.initiator.target) ||
182
+ ([_, pageResource]) => this.#targetManager.isInScope(pageResource.initiator.target) ||
163
183
  isExtensionInitiator(pageResource.initiator)));
164
184
  }
165
185
 
@@ -180,11 +200,10 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
180
200
  loading: number,
181
201
  resources: number,
182
202
  } {
183
- const targetManager = TargetManager.instance();
184
203
  let loadingCount = 0;
185
204
  for (const [targetId, count] of this.#currentlyLoadingPerTarget) {
186
- const target = targetManager.targetById(targetId);
187
- if (targetManager.isInScope(target)) {
205
+ const target = this.#targetManager.targetById(targetId);
206
+ if (this.#targetManager.isInScope(target)) {
188
207
  loadingCount += count;
189
208
  }
190
209
  }
@@ -305,25 +324,15 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
305
324
  return await this.#loadOverride(url);
306
325
  }
307
326
  const parsedURL = new Common.ParsedURL.ParsedURL(url);
308
- const eligibleForLoadFromTarget = getLoadThroughTargetSetting().get() && parsedURL && parsedURL.scheme !== 'file' &&
309
- parsedURL.scheme !== 'data' && parsedURL.scheme !== 'devtools';
327
+ const eligibleForLoadFromTarget = this.getLoadThroughTargetSetting().get() && parsedURL &&
328
+ parsedURL.scheme !== 'file' && parsedURL.scheme !== 'data' && parsedURL.scheme !== 'devtools' &&
329
+ initiator.target;
310
330
  Host.userMetrics.developerResourceScheme(this.getDeveloperResourceScheme(parsedURL));
311
331
  if (eligibleForLoadFromTarget) {
312
332
  try {
313
- if (initiator.target) {
314
- Host.userMetrics.developerResourceLoaded(
315
- Host.UserMetrics.DeveloperResourceLoaded.LOAD_THROUGH_PAGE_VIA_TARGET);
316
- const result = await this.loadFromTarget(initiator.target, initiator.frameId, url, isBinary);
317
- return result;
318
- }
319
- const frame = FrameManager.instance().getFrame(initiator.frameId);
320
- if (frame) {
321
- Host.userMetrics.developerResourceLoaded(
322
- Host.UserMetrics.DeveloperResourceLoaded.LOAD_THROUGH_PAGE_VIA_FRAME);
323
- const result =
324
- await this.loadFromTarget(frame.resourceTreeModel().target(), initiator.frameId, url, isBinary);
325
- return result;
326
- }
333
+ Host.userMetrics.developerResourceLoaded(Host.UserMetrics.DeveloperResourceLoaded.LOAD_THROUGH_PAGE_VIA_TARGET);
334
+ const result = await this.loadFromTarget(initiator.target, initiator.frameId, url, isBinary);
335
+ return result;
327
336
  } catch (e) {
328
337
  if (e instanceof Error) {
329
338
  Host.userMetrics.developerResourceLoaded(Host.UserMetrics.DeveloperResourceLoaded.LOAD_THROUGH_PAGE_FAILURE);
@@ -339,13 +348,13 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
339
348
  }
340
349
  Host.userMetrics.developerResourceLoaded(Host.UserMetrics.DeveloperResourceLoaded.LOAD_THROUGH_PAGE_FALLBACK);
341
350
  } else {
342
- const code = getLoadThroughTargetSetting().get() ?
351
+ const code = this.getLoadThroughTargetSetting().get() ?
343
352
  Host.UserMetrics.DeveloperResourceLoaded.FALLBACK_PER_PROTOCOL :
344
353
  Host.UserMetrics.DeveloperResourceLoaded.FALLBACK_PER_OVERRIDE;
345
354
  Host.userMetrics.developerResourceLoaded(code);
346
355
  }
347
356
 
348
- const result = await MultitargetNetworkManager.instance().loadResource(url);
357
+ const result = await this.loadFromHostBindings(url);
349
358
  if (eligibleForLoadFromTarget && !result.success) {
350
359
  Host.userMetrics.developerResourceLoaded(Host.UserMetrics.DeveloperResourceLoaded.FALLBACK_FAILURE);
351
360
  }
@@ -395,7 +404,7 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
395
404
  }> {
396
405
  const networkManager = (target.model(NetworkManager) as NetworkManager);
397
406
  const ioModel = (target.model(IOModel) as IOModel);
398
- const disableCache = Common.Settings.Settings.instance().moduleSetting('cache-disabled').get();
407
+ const disableCache = this.#settings.moduleSetting('cache-disabled').get();
399
408
  const resource = await networkManager.loadNetworkResource(frameId, url, {disableCache, includeCredentials: true});
400
409
  try {
401
410
  const content = resource.stream ?
@@ -420,10 +429,34 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
420
429
  }
421
430
  }
422
431
  }
423
- }
424
432
 
425
- export function getLoadThroughTargetSetting(): Common.Settings.Setting<boolean> {
426
- return Common.Settings.Settings.instance().createSetting('load-through-target', true);
433
+ private async loadFromHostBindings(url: Platform.DevToolsPath.UrlString): Promise<{
434
+ success: boolean,
435
+ content: string,
436
+ errorDescription: Host.ResourceLoader.LoadErrorDescription,
437
+ }> {
438
+ const headers: Record<string, string> = {};
439
+
440
+ const currentUserAgent = this.#userAgentProvider.currentUserAgent();
441
+ if (currentUserAgent) {
442
+ headers['User-Agent'] = currentUserAgent;
443
+ }
444
+
445
+ if (this.#settings.moduleSetting('cache-disabled').get()) {
446
+ headers['Cache-Control'] = 'no-cache';
447
+ }
448
+
449
+ const allowRemoteFilePaths = this.#settings.moduleSetting('network.enable-remote-file-loading').get();
450
+
451
+ return await new Promise(
452
+ resolve => Host.ResourceLoader.load(url, headers, (success, _responseHeaders, content, errorDescription) => {
453
+ resolve({success, content, errorDescription});
454
+ }, allowRemoteFilePaths));
455
+ }
456
+
457
+ getLoadThroughTargetSetting(): Common.Settings.Setting<boolean> {
458
+ return this.#settings.createSetting('load-through-target', true);
459
+ }
427
460
  }
428
461
 
429
462
  export const enum Events {
@@ -779,6 +779,12 @@ export class SourceMap {
779
779
  return this.#scopesInfo?.findOriginalFunctionName(position) ?? null;
780
780
  }
781
781
 
782
+ findOriginalFunctionScope(position: ScopesCodec.Position):
783
+ {scope: ScopesCodec.OriginalScope, url?: Platform.DevToolsPath.UrlString}|null {
784
+ this.#ensureSourceMapProcessed();
785
+ return this.#scopesInfo?.findOriginalFunctionScope(position) ?? null;
786
+ }
787
+
782
788
  isOutlinedFrame(generatedLine: number, generatedColumn: number): boolean {
783
789
  this.#ensureSourceMapProcessed();
784
790
  return this.#scopesInfo?.isOutlinedFrame(generatedLine, generatedColumn) ?? false;
@@ -9,6 +9,11 @@ export class SourceMapCache {
9
9
  static readonly #INSTANCE = new SourceMapCache('devtools-source-map-cache');
10
10
 
11
11
  static instance(): SourceMapCache {
12
+ if (typeof window === 'undefined') {
13
+ // TODO(crbug.com/451502260): Move this behind a `HostRuntime` interface.
14
+ return IN_MEMORY_INSTANCE as unknown as
15
+ SourceMapCache; // TS doesn't like that our in-memory class doesn't have the same private fields.
16
+ }
12
17
  return this.#INSTANCE;
13
18
  }
14
19
 
@@ -52,3 +57,19 @@ export class SourceMapCache {
52
57
  await window.caches.delete(this.#name);
53
58
  }
54
59
  }
60
+
61
+ const IN_MEMORY_INSTANCE = new (class implements Pick<SourceMapCache, 'get'|'set'|'disposeForTest'> {
62
+ readonly #cache = new Map<DebugId, SourceMapV3>();
63
+
64
+ async set(debugId: DebugId, sourceMap: SourceMapV3): Promise<void> {
65
+ this.#cache.set(debugId, sourceMap);
66
+ }
67
+
68
+ async get(debugId: DebugId): Promise<SourceMapV3|null> {
69
+ return this.#cache.get(debugId) ?? null;
70
+ }
71
+
72
+ async disposeForTest(): Promise<void> {
73
+ // Do nothing.
74
+ }
75
+ })();
@@ -6,7 +6,7 @@ import * as Common from '../common/common.js';
6
6
  import * as Platform from '../platform/platform.js';
7
7
 
8
8
  import type {FrameAssociated} from './FrameAssociated.js';
9
- import {PageResourceLoader, type PageResourceLoadInitiator} from './PageResourceLoader.js';
9
+ import {PageResourceLoader, type PageResourceLoadInitiator, type ResourceLoader} from './PageResourceLoader.js';
10
10
  import {type DebugId, parseSourceMap, SourceMap, type SourceMapV3} from './SourceMap.js';
11
11
  import {SourceMapCache} from './SourceMapCache.js';
12
12
  import {type Target, Type} from './Target.js';
@@ -112,8 +112,14 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
112
112
  if (this.#attachingClient === client) {
113
113
  this.#attachingClient = null;
114
114
  const initiator = client.createPageResourceLoadInitiator();
115
+ // TODO(crbug.com/458180550): Pass PageResourceLoader via constructor.
116
+ // The reason we grab it here lazily from the context is that otherwise every
117
+ // unit test using `createTarget` would need to set up a `PageResourceLoader`, as
118
+ // CSSModel and DebuggerModel are autostarted by default, and they create a
119
+ // SourceMapManager in their respective constructors.
120
+ const resourceLoader = this.#target.targetManager().context.get(PageResourceLoader);
115
121
  clientData.sourceMapPromise =
116
- loadSourceMap(sourceMapURL, client.debugId(), initiator)
122
+ loadSourceMap(resourceLoader, sourceMapURL, client.debugId(), initiator)
117
123
  .then(
118
124
  payload => {
119
125
  const sourceMap = this.#factory(sourceURL, sourceMapURL, payload, client);
@@ -180,8 +186,8 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
180
186
  }
181
187
  }
182
188
 
183
- export async function loadSourceMap(
184
- url: Platform.DevToolsPath.UrlString, debugId: DebugId|null,
189
+ async function loadSourceMap(
190
+ resourceLoader: ResourceLoader, url: Platform.DevToolsPath.UrlString, debugId: DebugId|null,
185
191
  initiator: PageResourceLoadInitiator): Promise<SourceMapV3> {
186
192
  try {
187
193
  if (debugId) {
@@ -191,7 +197,7 @@ export async function loadSourceMap(
191
197
  }
192
198
  }
193
199
 
194
- const {content} = await PageResourceLoader.instance().loadResource(url, initiator);
200
+ const {content} = await resourceLoader.loadResource(url, initiator);
195
201
  const sourceMap = parseSourceMap(content);
196
202
  if ('debugId' in sourceMap && sourceMap.debugId) {
197
203
  // In case something goes wrong with updating the cache, we still want to use the source map.
@@ -204,9 +210,10 @@ export async function loadSourceMap(
204
210
  }
205
211
 
206
212
  export async function tryLoadSourceMap(
207
- url: Platform.DevToolsPath.UrlString, initiator: PageResourceLoadInitiator): Promise<SourceMapV3|null> {
213
+ resourceLoader: ResourceLoader, url: Platform.DevToolsPath.UrlString,
214
+ initiator: PageResourceLoadInitiator): Promise<SourceMapV3|null> {
208
215
  try {
209
- return await loadSourceMap(url, null, initiator);
216
+ return await loadSourceMap(resourceLoader, url, null, initiator);
210
217
  } catch (cause) {
211
218
  console.error(cause);
212
219
  return null;
@@ -121,14 +121,18 @@ export class SourceMapScopesInfo {
121
121
  const canMapOriginalPosition = startEntry && endEntry && sourceIndex !== undefined &&
122
122
  startEntry.sourceIndex === endEntry.sourceIndex && startEntry.sourceIndex !== undefined && sourceIndex >= 0 &&
123
123
  sourceIndex < numSourceUrls;
124
- const isStackFrame = node.kind === Formatter.FormatterWorkerPool.ScopeKind.FUNCTION;
124
+ const isStackFrame = node.kind === Formatter.FormatterWorkerPool.ScopeKind.FUNCTION ||
125
+ node.kind === Formatter.FormatterWorkerPool.ScopeKind.ARROW_FUNCTION;
126
+ // TODO(crbug.com/368222773): Instead of mapping `start`, we should report a number of candidates. e.g. for arrow functions we should
127
+ // follow the spec and map the `=>` as the spec says that is where the original name (if any) for arrow functions can be found.
128
+ const name = node.kind === Formatter.FormatterWorkerPool.ScopeKind.FUNCTION ? startEntry?.name : undefined;
125
129
 
126
130
  let scope: ScopesCodec.OriginalScope|undefined;
127
131
  if (canMapOriginalPosition) {
128
132
  scope = {
129
133
  start: {line: startEntry.sourceLineNumber, column: startEntry.sourceColumnNumber},
130
134
  end: {line: endEntry.sourceLineNumber, column: endEntry.sourceColumnNumber},
131
- name: startEntry.name,
135
+ name,
132
136
  isStackFrame,
133
137
  variables: [],
134
138
  children: [],
@@ -14,6 +14,16 @@ import {type RegistrationInfo, SDKModel, type SDKModelConstructor} from './SDKMo
14
14
  import {Target, Type as TargetType} from './Target.js';
15
15
 
16
16
  export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
17
+ /**
18
+ * @deprecated
19
+ *
20
+ * Intended for {@link SDKModel} classes to be able to retrieve scoped singletons like
21
+ * the "PageResourceLoader" or the "FrameManager".
22
+ *
23
+ * This is only an intermediate step to migrate towards our "layering vision" where
24
+ * SDKModels don't require things from the next layer.
25
+ */
26
+ readonly context: Root.DevToolsContext.DevToolsContext;
17
27
  #targets: Set<Target>;
18
28
  readonly #observers: Set<Observer>;
19
29
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -36,8 +46,9 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
36
46
  /**
37
47
  * @param overrideAutoStartModels If provided, then the `autostart` flag on {@link RegistrationInfo} will be ignored.
38
48
  */
39
- constructor(overrideAutoStartModels?: Set<SDKModelConstructor>) {
49
+ constructor(context: Root.DevToolsContext.DevToolsContext, overrideAutoStartModels?: Set<SDKModelConstructor>) {
40
50
  super();
51
+ this.context = context;
41
52
  this.#targets = new Set();
42
53
  this.#observers = new Set();
43
54
  this.#modelListeners = new Platform.MapUtilities.Multimap();
@@ -55,7 +66,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
55
66
  forceNew: boolean,
56
67
  } = {forceNew: false}): TargetManager {
57
68
  if (!Root.DevToolsContext.globalInstance().has(TargetManager) || forceNew) {
58
- Root.DevToolsContext.globalInstance().set(TargetManager, new TargetManager());
69
+ Root.DevToolsContext.globalInstance().set(
70
+ TargetManager, new TargetManager(Root.DevToolsContext.globalInstance()));
59
71
  }
60
72
 
61
73
  return Root.DevToolsContext.globalInstance().get(TargetManager);
@@ -387,6 +387,10 @@ const UIStrings = {
387
387
  * @description Title of a setting under the Sources category that can be invoked through the Command Menu
388
388
  */
389
389
  disableCssSourceMaps: 'Disable CSS source maps',
390
+ /**
391
+ * @description Title of a setting under the Console category in Settings
392
+ */
393
+ logXmlhttprequests: 'Log XMLHttpRequests',
390
394
  } as const;
391
395
  const str_ = i18n.i18n.registerUIStrings('core/sdk/sdk-meta.ts', UIStrings);
392
396
  const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
@@ -1194,3 +1198,12 @@ Common.Settings.registerSettingExtension({
1194
1198
  },
1195
1199
  ],
1196
1200
  });
1201
+
1202
+ Common.Settings.registerSettingExtension({
1203
+ category: Common.Settings.SettingCategory.CONSOLE,
1204
+ storageType: Common.Settings.SettingStorageType.SYNCED,
1205
+ title: i18nLazyString(UIStrings.logXmlhttprequests),
1206
+ settingName: 'monitoring-xhr-enabled',
1207
+ settingType: Common.Settings.SettingType.BOOLEAN,
1208
+ defaultValue: false,
1209
+ });
@@ -48,6 +48,7 @@ export const enum ScopeKind {
48
48
  BLOCK = 1,
49
49
  FUNCTION = 2,
50
50
  GLOBAL = 3,
51
+ ARROW_FUNCTION = 4,
51
52
  }
52
53
 
53
54
  export interface ScopeTreeNode {
@@ -172,7 +172,7 @@ export class ScopeVariableAnalysis {
172
172
  node.elements.forEach(item => this.#processNode(item));
173
173
  break;
174
174
  case 'ArrowFunctionExpression': {
175
- this.#pushScope(node.start, node.end, ScopeKind.FUNCTION);
175
+ this.#pushScope(node.start, node.end, ScopeKind.ARROW_FUNCTION);
176
176
  node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.VAR, false));
177
177
  if (node.body.type === 'BlockStatement') {
178
178
  // Include the body of the arrow function in the same scope as the arguments.
@@ -132,6 +132,7 @@ let loadedPanelCommonModule: typeof PanelCommon|undefined;
132
132
  export class MainImpl {
133
133
  #readyForTestPromise = Promise.withResolvers<void>();
134
134
  #veStartPromise!: Promise<void>;
135
+ #universe!: Foundation.Universe.Universe;
135
136
 
136
137
  constructor() {
137
138
  MainImpl.instanceForTest = this;
@@ -175,8 +176,8 @@ export class MainImpl {
175
176
  runSettingsMigration: !Host.InspectorFrontendHost.isUnderTest(),
176
177
  },
177
178
  };
178
- const universe = new Foundation.Universe.Universe(creationOptions);
179
- Root.DevToolsContext.setGlobalInstance(universe.context);
179
+ this.#universe = new Foundation.Universe.Universe(creationOptions);
180
+ Root.DevToolsContext.setGlobalInstance(this.#universe.context);
180
181
 
181
182
  await this.requestAndRegisterLocaleData();
182
183
 
@@ -425,6 +426,7 @@ export class MainImpl {
425
426
  {forceNew: true, win: window, frontendHost: Host.InspectorFrontendHost.InspectorFrontendHostInstance});
426
427
  UI.ContextMenu.ContextMenu.initialize();
427
428
  UI.ContextMenu.ContextMenu.installHandler(document);
429
+ UI.ViewManager.ViewManager.instance({forceNew: true, universe: this.#universe});
428
430
 
429
431
  // These instances need to be created early so they don't miss any events about requests/issues/etc.
430
432
  Logs.NetworkLog.NetworkLog.instance();
@@ -439,7 +441,6 @@ export class MainImpl {
439
441
  IssuesManager.ContrastCheckTrigger.ContrastCheckTrigger.instance();
440
442
 
441
443
  UI.DockController.DockController.instance({forceNew: true, canDock});
442
- SDK.NetworkManager.MultitargetNetworkManager.instance({forceNew: true});
443
444
  SDK.DOMDebuggerModel.DOMDebuggerManager.instance({forceNew: true});
444
445
  const targetManager = SDK.TargetManager.TargetManager.instance();
445
446
  targetManager.addEventListener(
@@ -939,7 +940,7 @@ export class MainMenuItem implements UI.Toolbar.Provider {
939
940
  contextMenu.appendItemsAtLocation('mainMenu');
940
941
  const moreTools =
941
942
  contextMenu.defaultSection().appendSubMenuItem(i18nString(UIStrings.moreTools), false, 'more-tools');
942
- const viewExtensions = UI.ViewManager.getRegisteredViewExtensions();
943
+ const viewExtensions = UI.ViewManager.ViewManager.instance().getRegisteredViewExtensions();
943
944
  viewExtensions.sort((extension1, extension2) => {
944
945
  const title1 = extension1.title();
945
946
  const title2 = extension2.title();
@@ -24,9 +24,16 @@ export class Universe {
24
24
  ...options.settingsCreationOptions,
25
25
  });
26
26
 
27
- const targetManager = new SDK.TargetManager.TargetManager(options.overrideAutoStartModels);
27
+ const targetManager = new SDK.TargetManager.TargetManager(this.context, options.overrideAutoStartModels);
28
28
  this.context.set(SDK.TargetManager.TargetManager, targetManager);
29
29
 
30
+ const multitargetNetworkManager = new SDK.NetworkManager.MultitargetNetworkManager(targetManager);
31
+ this.context.set(SDK.NetworkManager.MultitargetNetworkManager, multitargetNetworkManager);
32
+
33
+ const pageResourceLoader =
34
+ new SDK.PageResourceLoader.PageResourceLoader(targetManager, settings, multitargetNetworkManager, null);
35
+ this.context.set(SDK.PageResourceLoader.PageResourceLoader, pageResourceLoader);
36
+
30
37
  const workspace = new Workspace.Workspace.WorkspaceImpl();
31
38
  this.context.set(Workspace.Workspace.WorkspaceImpl, workspace);
32
39
 
@@ -58,6 +58,10 @@ export const UIStrings = {
58
58
  * @description Warning displayed to developers when a data: URL is assigned to SVGUseElement to let them know that the support is deprecated.
59
59
  */
60
60
  DataUrlInSvgUse: "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future.",
61
+ /**
62
+ * @description Translation is not needed, this will never be exposed in production code.
63
+ */
64
+ ExampleBrowserProcessDeprecation: "This is an example for showing the code required for a browser process reported deprecation.",
61
65
  /**
62
66
  * @description A deprecation warning shown in the DevTools Issues tab. It's shown when one of the Protected Audience APIs like `navigator.joinAdInterestGroup`, `navigator.getInterestGroupAdAuctionData` or `navigator.runAdAuction` are called.
63
67
  */
@@ -174,10 +178,6 @@ export const UIStrings = {
174
178
  * @description Standard message when one web API is deprecated in favor of another.
175
179
  */
176
180
  PrefixedVideoSupportsFullscreen: "HTMLVideoElement.webkitSupportsFullscreen is deprecated. Please use Document.fullscreenEnabled instead.",
177
- /**
178
- * @description Warning displayed to developers that the API `chrome.privacy.websites.privacySandboxEnabled` is being deprecated in favour of three new more granular APIs: topicsEnabled, FledgeEnabled and adMeasurementEnabled. The `privacySandboxEnabled` API allowed extensions to control the homologous Chrome Setting. The existing Chrome Setting for Privacy Sandbox is also going away in favor of more granular settings that are matched by the new extensions APIs- topicsEnabled, FledgeEnabled and adMeasurementEnabled.
179
- */
180
- PrivacySandboxExtensionsAPI: "We're deprecating the API `chrome.privacy.websites.privacySandboxEnabled`, though it will remain active for backward compatibility until release M113. Instead, please use `chrome.privacy.websites.topicsEnabled`, `chrome.privacy.websites.fledgeEnabled` and `chrome.privacy.websites.adMeasurementEnabled`. See https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled.",
181
181
  /**
182
182
  * @description Standard message when one web API is deprecated in favor of another.
183
183
  */
@@ -210,6 +210,14 @@ export const UIStrings = {
210
210
  * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun 'SharedArrayBuffer' which refers to a JavaScript construct.
211
211
  */
212
212
  SharedArrayBufferConstructedWithoutIsolation: "`SharedArrayBuffer` will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.",
213
+ /**
214
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when one of the Shared Storage APIs like `sharedStorage.set()`, `sharedStorage.worklet.addModule()`, `sharedStorage.selectURL()`, etc., along with `<img sharedstoragewritable>`, `<iframe sharedstoragewritable>`, or `fetch(url, {sharedStorageWritable: true})` are used.
215
+ */
216
+ SharedStorage: "The Shared Storage API is deprecated and will be removed in a future release.",
217
+ /**
218
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when the `document.requestStorageAccessFor` API is called. The placeholder will always be the string `document.requestStorageAccessFor`.
219
+ */
220
+ StorageAccessAPI_requestStorageAccessFor_Method: "`document.requestStorageAccessFor` is deprecated and will be removed. See https://privacysandbox.com/news/update-on-plans-for-privacy-sandbox-technologies/ for more details.",
213
221
  /**
214
222
  * @description A deprecation warning shown in the DevTools Issues tab. It's shown when the speech synthesis API is called before the page receives a user activation.
215
223
  */
@@ -351,6 +359,12 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
351
359
  "SharedArrayBufferConstructedWithoutIsolation": {
352
360
  "milestone": 106
353
361
  },
362
+ "SharedStorage": {
363
+ "chromeStatusFeature": 5076349064708096
364
+ },
365
+ "StorageAccessAPI_requestStorageAccessFor_Method": {
366
+ "chromeStatusFeature": 5162221567082496
367
+ },
354
368
  "TextToSpeech_DisallowedByAutoplay": {
355
369
  "chromeStatusFeature": 5687444770914304,
356
370
  "milestone": 71