chrome-devtools-frontend 1.0.1652307 → 1.0.1656291

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 (267) hide show
  1. package/.agents/skills/fixing-skipped-tests/SKILL.md +32 -0
  2. package/.agents/skills/migrate-chromium-test/SKILL.md +144 -0
  3. package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +116 -0
  4. package/.agents/skills/ui-eng-vision-logic-consolidator/SKILL.md +82 -0
  5. package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +123 -0
  6. package/.agents/skills/ui-eng-vision-test-scaffolder/SKILL.md +125 -0
  7. package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +75 -0
  8. package/AUTHORS +1 -0
  9. package/config/owner/COMMON_OWNERS +0 -4
  10. package/docs/get_the_code.md +1 -2
  11. package/docs/playbook.md +1 -1
  12. package/docs/ui_engineering.md +3 -1
  13. package/eslint.config.mjs +0 -5
  14. package/front_end/Tests.js +1 -0
  15. package/front_end/core/common/Settings.ts +47 -30
  16. package/front_end/core/sdk/CPUThrottlingManager.ts +23 -167
  17. package/front_end/core/sdk/CSSMetadata.ts +23 -0
  18. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +8 -4
  19. package/front_end/core/sdk/ConsoleModel.ts +13 -11
  20. package/front_end/core/sdk/DOMDebuggerModel.ts +11 -5
  21. package/front_end/core/sdk/DOMModel.ts +4 -0
  22. package/front_end/core/sdk/EmulationModel.ts +4 -0
  23. package/front_end/core/sdk/EventBreakpointsModel.ts +9 -5
  24. package/front_end/core/sdk/IsolateManager.ts +6 -6
  25. package/front_end/core/sdk/ResourceTreeModel.ts +8 -5
  26. package/front_end/core/sdk/TargetManager.ts +17 -0
  27. package/front_end/entrypoints/devtools_app/devtools_app.ts +0 -1
  28. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +459 -74
  29. package/front_end/entrypoints/main/MainImpl.ts +12 -42
  30. package/front_end/foundation/Universe.ts +116 -3
  31. package/front_end/generated/InspectorBackendCommands.ts +11 -6
  32. package/front_end/generated/SupportedCSSProperties.js +124 -34
  33. package/front_end/generated/protocol-mapping.d.ts +8 -0
  34. package/front_end/generated/protocol-proxy-api.d.ts +15 -0
  35. package/front_end/generated/protocol.ts +94 -1
  36. package/front_end/models/ai_assistance/AiConversation.ts +2 -7
  37. package/front_end/models/ai_assistance/README.md +4 -3
  38. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +1 -1
  39. package/front_end/models/ai_assistance/agents/NetworkAgent.snapshot.txt +1 -1
  40. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
  41. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +13 -320
  42. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +0 -24
  43. package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -358
  44. package/front_end/models/ai_assistance/ai_assistance.ts +6 -8
  45. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +295 -0
  46. package/front_end/models/ai_assistance/contexts/RequestContext.snapshot.txt +0 -1
  47. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +0 -2
  48. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +10 -10
  49. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +12 -11
  50. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -6
  51. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -14
  52. package/front_end/models/ai_assistance/skills/accessibility.md +4 -2
  53. package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +142 -0
  54. package/front_end/models/ai_assistance/tools/GetStyles.ts +1 -1
  55. package/front_end/models/ai_assistance/tools/README.md +21 -1
  56. package/front_end/models/ai_assistance/tools/{ResolveLighthousePath.ts → ResolveDevtoolsNodePath.ts} +18 -17
  57. package/front_end/models/ai_assistance/tools/Tool.ts +6 -1
  58. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +4 -2
  59. package/front_end/models/autofill_manager/AutofillManager.ts +6 -15
  60. package/front_end/models/bindings/NetworkProject.ts +4 -8
  61. package/front_end/models/breakpoints/BreakpointManager.ts +9 -9
  62. package/front_end/models/emulation/DeviceModeModel.ts +24 -0
  63. package/front_end/models/emulation/EmulatedDevices.ts +108 -0
  64. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +36 -0
  65. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +8 -0
  66. package/front_end/models/issues_manager/IssuesManager.ts +10 -6
  67. package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +4 -5
  68. package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
  69. package/front_end/models/live-metrics/LiveMetrics.ts +6 -6
  70. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +5 -5
  71. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +3 -3
  72. package/front_end/models/logs/LogManager.ts +25 -10
  73. package/front_end/models/logs/NetworkLog.ts +24 -19
  74. package/front_end/models/persistence/AutomaticFileSystemManager.ts +14 -13
  75. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +26 -14
  76. package/front_end/models/persistence/IsolatedFileSystem.ts +9 -11
  77. package/front_end/models/persistence/IsolatedFileSystemManager.ts +22 -11
  78. package/front_end/models/persistence/NetworkPersistenceManager.ts +73 -44
  79. package/front_end/models/persistence/PersistenceImpl.ts +4 -5
  80. package/front_end/models/project_settings/ProjectSettingsModel.ts +12 -11
  81. package/front_end/models/trace/EntityMapper.ts +1 -1
  82. package/front_end/models/trace/handlers/ScreenshotsHandler.ts +14 -59
  83. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +12 -38
  84. package/front_end/panels/ai_assistance/ExportConversation.ts +4 -1
  85. package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
  86. package/front_end/panels/application/DeviceBoundSessionsView.ts +15 -3
  87. package/front_end/panels/application/FrameDetailsView.ts +2 -1
  88. package/front_end/panels/application/IndexedDBViews.ts +38 -36
  89. package/front_end/panels/application/ServiceWorkersView.ts +23 -16
  90. package/front_end/panels/application/components/AdsView.ts +4 -0
  91. package/front_end/panels/autofill/AutofillView.ts +1 -1
  92. package/front_end/panels/autofill/autofill-meta.ts +3 -2
  93. package/front_end/panels/common/CPUThrottlingOption.ts +142 -0
  94. package/front_end/panels/common/ThrottlingUtils.ts +9 -4
  95. package/front_end/panels/common/common.ts +1 -1
  96. package/front_end/panels/console/ConsoleViewMessage.ts +45 -0
  97. package/front_end/panels/elements/AccessibilityTreeUtils.ts +26 -15
  98. package/front_end/panels/elements/AccessibilityTreeView.ts +12 -9
  99. package/front_end/panels/elements/ElementsPanel.ts +0 -74
  100. package/front_end/panels/elements/ElementsTreeOutline.ts +5 -4
  101. package/front_end/panels/emulation/DeviceModeToolbar.ts +46 -45
  102. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +118 -68
  103. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  104. package/front_end/panels/layer_viewer/layerTreeOutline.css +20 -13
  105. package/front_end/panels/layers/LayersPanel.ts +1 -1
  106. package/front_end/panels/mobile_throttling/CalibrationController.ts +6 -5
  107. package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +1 -1
  108. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +40 -13
  109. package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +13 -17
  110. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +79 -30
  111. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +5 -0
  112. package/front_end/panels/network/LinkPreloadGenerator.ts +101 -0
  113. package/front_end/panels/network/NetworkLogView.ts +28 -9
  114. package/front_end/panels/network/NetworkPanel.ts +1 -63
  115. package/front_end/panels/network/RequestInitiatorView.ts +29 -4
  116. package/front_end/panels/network/components/HeaderSectionRow.css +9 -7
  117. package/front_end/panels/network/components/HeaderSectionRow.ts +20 -1
  118. package/front_end/panels/network/components/RequestHeaderSection.css +5 -3
  119. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -2
  120. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  121. package/front_end/panels/network/network.ts +2 -0
  122. package/front_end/panels/profiler/HeapSnapshotView.ts +121 -33
  123. package/front_end/panels/profiler/ModuleUIStrings.ts +4 -0
  124. package/front_end/panels/security/SecurityPanel.ts +36 -23
  125. package/front_end/panels/settings/SettingsScreen.ts +18 -103
  126. package/front_end/panels/settings/settings-meta.ts +0 -24
  127. package/front_end/panels/timeline/TimelineController.ts +3 -2
  128. package/front_end/panels/timeline/TimelineHistoryManager.ts +38 -37
  129. package/front_end/panels/timeline/TimelinePanel.ts +52 -11
  130. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +20 -18
  131. package/front_end/panels/timeline/components/LiveMetricsView.ts +38 -38
  132. package/front_end/panels/timeline/components/MetricCard.ts +18 -18
  133. package/front_end/panels/timeline/components/liveMetricsView.css +6 -6
  134. package/front_end/panels/timeline/components/metricCard.css +4 -4
  135. package/front_end/panels/timeline/timelineFlamechartPopover.css +2 -0
  136. package/front_end/panels/utils/utils.ts +25 -24
  137. package/front_end/panels/whats_new/ReleaseNoteText.ts +3 -3
  138. package/front_end/panels/whats_new/resources/WNDT.md +1 -1
  139. package/front_end/third_party/chromium/README.chromium +1 -1
  140. package/front_end/third_party/puppeteer/README.chromium +2 -2
  141. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +34 -55
  142. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +96 -83
  143. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +10 -1
  144. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.d.ts.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts +3 -2
  152. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.js.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.d.ts +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.js +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.d.ts.map +1 -1
  159. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js +2 -1
  162. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.js.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts +2 -2
  166. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +5 -2
  168. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js +23 -13
  173. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  175. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js +4 -1
  176. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js.map +1 -1
  177. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Input.js +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.d.ts.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.js.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.d.ts.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +3 -41
  183. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +4 -2
  188. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts +5 -0
  190. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js +5 -5
  196. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/types.d.ts +34 -55
  200. package/front_end/third_party/puppeteer/package/package.json +4 -4
  201. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
  202. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +2 -3
  203. package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +3 -1
  204. package/front_end/third_party/puppeteer/package/src/api/HTTPResponse.ts +3 -2
  205. package/front_end/third_party/puppeteer/package/src/api/Realm.ts +1 -2
  206. package/front_end/third_party/puppeteer/package/src/api/Target.ts +1 -1
  207. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +1 -2
  208. package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +3 -1
  209. package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +1 -3
  210. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +13 -3
  211. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +1 -1
  212. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +24 -13
  213. package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +4 -1
  214. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +1 -1
  215. package/front_end/third_party/puppeteer/package/src/cdp/LifecycleWatcher.ts +1 -4
  216. package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +2 -4
  217. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +7 -76
  218. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +1 -4
  219. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +4 -1
  220. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +5 -0
  221. package/front_end/third_party/puppeteer/package/src/revisions.ts +1 -1
  222. package/front_end/third_party/puppeteer/package/src/util/httpUtils.ts +5 -5
  223. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  224. package/front_end/third_party/puppeteer/third_party/parsel/README.chromium +1 -1
  225. package/front_end/ui/components/dialogs/Dialog.ts +3 -0
  226. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +0 -7
  227. package/front_end/ui/helpers/OpenInNewTab.ts +15 -7
  228. package/front_end/ui/legacy/InspectorDrawerView.ts +7 -5
  229. package/front_end/ui/legacy/ListWidget.ts +12 -0
  230. package/front_end/ui/legacy/SplitWidget.ts +12 -11
  231. package/front_end/ui/legacy/TabbedPane.ts +1 -108
  232. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +9 -0
  233. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +192 -139
  234. package/front_end/ui/legacy/components/data_grid/DataGridExporter.ts +89 -0
  235. package/front_end/ui/legacy/components/data_grid/dataGrid.css +10 -0
  236. package/front_end/ui/legacy/components/data_grid/data_grid.ts +3 -1
  237. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +8 -1
  238. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +110 -17
  239. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +89 -40
  240. package/front_end/ui/legacy/treeoutline.css +1 -1
  241. package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
  242. package/package.json +4 -3
  243. package/front_end/Images/navigationControls.png +0 -0
  244. package/front_end/Images/navigationControls_2x.png +0 -0
  245. package/front_end/Images/popoverArrows.png +0 -0
  246. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +0 -746
  247. package/front_end/entrypoints/greendev_floaty/floaty.css +0 -301
  248. package/front_end/entrypoints/greendev_floaty/floaty.html +0 -38
  249. package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +0 -415
  250. package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +0 -834
  251. package/front_end/models/ai_assistance/agents/GreenDevAgentAntigravityCliSocketClient.ts +0 -53
  252. package/front_end/models/ai_assistance/agents/GreenDevAgentGeminiCliSocketClient.ts +0 -117
  253. package/front_end/models/annotations/AnnotationRepository.ts +0 -238
  254. package/front_end/models/annotations/AnnotationType.ts +0 -10
  255. package/front_end/models/annotations/README.md +0 -7
  256. package/front_end/models/annotations/annotations.ts +0 -6
  257. package/front_end/models/greendev/Prototypes.ts +0 -68
  258. package/front_end/models/greendev/README.md +0 -5
  259. package/front_end/models/greendev/greendev.ts +0 -5
  260. package/front_end/panels/common/Annotation.ts +0 -184
  261. package/front_end/panels/common/AnnotationManager.ts +0 -208
  262. package/front_end/panels/common/annotation.css +0 -40
  263. package/front_end/panels/greendev/GreenDevPanel.css +0 -282
  264. package/front_end/panels/greendev/GreenDevPanel.ts +0 -364
  265. package/front_end/panels/greendev/GreenDevShared.ts +0 -13
  266. package/front_end/panels/greendev/greendev-meta.ts +0 -52
  267. package/front_end/panels/greendev/greendev.ts +0 -9
@@ -71,6 +71,7 @@ const str_ = i18n.i18n.registerUIStrings('core/sdk/ConsoleModel.ts', UIStrings);
71
71
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
72
72
 
73
73
  export class ConsoleModel extends SDKModel<EventTypes> {
74
+ readonly #console: Common.Console.Console;
74
75
  #messages: ConsoleMessage[] = [];
75
76
  readonly #messagesByTimestamp = new Platform.MapUtilities.Multimap<number, ConsoleMessage>();
76
77
  readonly #messageByExceptionId = new Map<RuntimeModel, Map<number, ConsoleMessage>>();
@@ -82,6 +83,7 @@ export class ConsoleModel extends SDKModel<EventTypes> {
82
83
 
83
84
  constructor(target: Target) {
84
85
  super(target);
86
+ this.#console = target.targetManager().getConsole();
85
87
 
86
88
  const resourceTreeModel = target.model(ResourceTreeModel);
87
89
  if (!resourceTreeModel || resourceTreeModel.cachedResourcesLoaded()) {
@@ -159,7 +161,7 @@ export class ConsoleModel extends SDKModel<EventTypes> {
159
161
  if ('error' in result) {
160
162
  return;
161
163
  }
162
- await Common.Console.Console.instance().showPromise();
164
+ await this.#console.showPromise();
163
165
  this.dispatchEventToListeners(
164
166
  Events.CommandEvaluated,
165
167
  {result: result.object, commandMessage: originatingMessage, exceptionDetails: result.exceptionDetails});
@@ -297,9 +299,9 @@ export class ConsoleModel extends SDKModel<EventTypes> {
297
299
  if (settings.moduleSetting('preserve-console-log').get()) {
298
300
  const {frame} = event.data;
299
301
  if (frame.backForwardCacheDetails.restoredFromCache) {
300
- Common.Console.Console.instance().log(i18nString(UIStrings.bfcacheNavigation, {PH1: frame.url}));
302
+ this.#console.log(i18nString(UIStrings.bfcacheNavigation, {PH1: frame.url}));
301
303
  } else {
302
- Common.Console.Console.instance().log(i18nString(UIStrings.navigatedToS, {PH1: frame.url}));
304
+ this.#console.log(i18nString(UIStrings.navigatedToS, {PH1: frame.url}));
303
305
  }
304
306
  }
305
307
  }
@@ -418,6 +420,14 @@ export class ConsoleModel extends SDKModel<EventTypes> {
418
420
 
419
421
  async saveToTempVariable(currentExecutionContext: ExecutionContext|null, remoteObject: RemoteObject|null):
420
422
  Promise<void> {
423
+ const failedToSave = (result: RemoteObject|null): void => {
424
+ let message = i18nString(UIStrings.failedToSaveToTempVariable);
425
+ if (result) {
426
+ message = (message + ' ' + result.description as Common.UIString.LocalizedString);
427
+ }
428
+ this.#console.error(message);
429
+ };
430
+
421
431
  if (!remoteObject || !currentExecutionContext) {
422
432
  failedToSave(null);
423
433
  return;
@@ -456,14 +466,6 @@ export class ConsoleModel extends SDKModel<EventTypes> {
456
466
  this[name] = value;
457
467
  return name;
458
468
  }
459
-
460
- function failedToSave(result: RemoteObject|null): void {
461
- let message = i18nString(UIStrings.failedToSaveToTempVariable);
462
- if (result) {
463
- message = (message + ' ' + result.description as Common.UIString.LocalizedString);
464
- }
465
- Common.Console.Console.instance().error(message);
466
- }
467
469
  }
468
470
  }
469
471
 
@@ -6,6 +6,7 @@ import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
6
6
  import * as Protocol from '../../generated/protocol.js';
7
7
  import type * as Common from '../common/common.js';
8
8
  import * as Platform from '../platform/platform.js';
9
+ import * as Root from '../root/root.js';
9
10
 
10
11
  import {CategorizedBreakpoint, Category} from './CategorizedBreakpoint.js';
11
12
  import type {EventListenerPausedDetailsAuxData, Location} from './DebuggerModel.js';
@@ -528,8 +529,6 @@ export class DOMEventListenerBreakpoint extends CategorizedBreakpoint {
528
529
  static readonly listener = 'listener:';
529
530
  }
530
531
 
531
- let domDebuggerManagerInstance: DOMDebuggerManager;
532
-
533
532
  export class DOMDebuggerManager implements SDKModelObserver<DOMDebuggerModel> {
534
533
  readonly #xhrBreakpointsSetting: Common.Settings.Setting<Array<{url: string, enabled: boolean}>>;
535
534
  readonly #xhrBreakpoints = new Map<string, boolean>();
@@ -671,11 +670,18 @@ export class DOMDebuggerManager implements SDKModelObserver<DOMDebuggerModel> {
671
670
  targetManager?: TargetManager,
672
671
  } = {forceNew: null}): DOMDebuggerManager {
673
672
  const {forceNew, targetManager} = opts;
674
- if (!domDebuggerManagerInstance || forceNew) {
675
- domDebuggerManagerInstance = new DOMDebuggerManager(targetManager);
673
+ if (!Root.DevToolsContext.globalInstance().has(DOMDebuggerManager) || forceNew) {
674
+ Root.DevToolsContext.globalInstance().set(
675
+ DOMDebuggerManager,
676
+ new DOMDebuggerManager(targetManager ?? TargetManager.instance()),
677
+ );
676
678
  }
677
679
 
678
- return domDebuggerManagerInstance;
680
+ return Root.DevToolsContext.globalInstance().get(DOMDebuggerManager);
681
+ }
682
+
683
+ static removeInstance(): void {
684
+ Root.DevToolsContext.globalInstance().delete(DOMDebuggerManager);
679
685
  }
680
686
 
681
687
  cspViolationBreakpoints(): CSPViolationBreakpoint[] {
@@ -512,6 +512,10 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
512
512
  return this.#pseudoElements.get(Protocol.DOM.PseudoType.PickerIcon)?.at(-1);
513
513
  }
514
514
 
515
+ interestButtonPseudoElement(): DOMNode|undefined {
516
+ return this.#pseudoElements.get(Protocol.DOM.PseudoType.InterestButton)?.at(-1);
517
+ }
518
+
515
519
  markerPseudoElement(): DOMNode|undefined {
516
520
  return this.#pseudoElements.get(Protocol.DOM.PseudoType.Marker)?.at(-1);
517
521
  }
@@ -250,6 +250,10 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
250
250
  }
251
251
  }
252
252
 
253
+ async setSafeAreaInsets(insets: Protocol.Emulation.SafeAreaInsets): Promise<void> {
254
+ await this.#emulationAgent.invoke_setSafeAreaInsetsOverride({insets});
255
+ }
256
+
253
257
  overlayModel(): OverlayModel|null {
254
258
  return this.#overlayModel;
255
259
  }
@@ -2,6 +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 Root from '../../core/root/root.js';
5
6
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
6
7
 
7
8
  import {CategorizedBreakpoint, Category} from './CategorizedBreakpoint.js';
@@ -83,8 +84,6 @@ class EventListenerBreakpoint extends CategorizedBreakpoint {
83
84
  static readonly instrumentationPrefix = 'instrumentation:';
84
85
  }
85
86
 
86
- let eventBreakpointManagerInstance: EventBreakpointsManager;
87
-
88
87
  export class EventBreakpointsManager implements SDKModelObserver<EventBreakpointsModel> {
89
88
  readonly #eventListenerBreakpoints: EventListenerBreakpoint[] = [];
90
89
  readonly #targetManager: TargetManager;
@@ -151,11 +150,16 @@ export class EventBreakpointsManager implements SDKModelObserver<EventBreakpoint
151
150
  targetManager?: TargetManager,
152
151
  } = {forceNew: null}): EventBreakpointsManager {
153
152
  const {forceNew, targetManager} = opts;
154
- if (!eventBreakpointManagerInstance || forceNew) {
155
- eventBreakpointManagerInstance = new EventBreakpointsManager(targetManager);
153
+ if (!Root.DevToolsContext.globalInstance().has(EventBreakpointsManager) || forceNew) {
154
+ Root.DevToolsContext.globalInstance().set(EventBreakpointsManager,
155
+ new EventBreakpointsManager(targetManager ?? TargetManager.instance()));
156
156
  }
157
157
 
158
- return eventBreakpointManagerInstance;
158
+ return Root.DevToolsContext.globalInstance().get(EventBreakpointsManager);
159
+ }
160
+
161
+ static removeInstance(): void {
162
+ Root.DevToolsContext.globalInstance().delete(EventBreakpointsManager);
159
163
  }
160
164
 
161
165
  private createInstrumentationBreakpoints(category: Category, instrumentationNames: InstrumentationNames[]): void {
@@ -3,13 +3,12 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../common/common.js';
6
+ import * as Root from '../root/root.js';
6
7
 
7
8
  import type {HeapProfilerModel} from './HeapProfilerModel.js';
8
9
  import {RuntimeModel} from './RuntimeModel.js';
9
10
  import {type SDKModelObserver, TargetManager} from './TargetManager.js';
10
11
 
11
- let isolateManagerInstance: IsolateManager;
12
-
13
12
  export class IsolateManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements
14
13
  SDKModelObserver<RuntimeModel> {
15
14
  readonly #isolates = new Map<string, Isolate>();
@@ -28,15 +27,16 @@ export class IsolateManager extends Common.ObjectWrapper.ObjectWrapper<EventType
28
27
  this.#targetManager.observeModels(RuntimeModel, this);
29
28
  }
30
29
 
31
- static instance({forceNew, targetManager}: {
30
+ static instance(opts: {
32
31
  forceNew: boolean,
33
32
  targetManager?: TargetManager,
34
33
  } = {forceNew: false}): IsolateManager {
35
- if (!isolateManagerInstance || forceNew) {
36
- isolateManagerInstance = new IsolateManager(targetManager);
34
+ const {forceNew, targetManager} = opts;
35
+ if (!Root.DevToolsContext.globalInstance().has(IsolateManager) || forceNew) {
36
+ Root.DevToolsContext.globalInstance().set(IsolateManager, new IsolateManager(targetManager));
37
37
  }
38
38
 
39
- return isolateManagerInstance;
39
+ return Root.DevToolsContext.globalInstance().get(IsolateManager);
40
40
  }
41
41
 
42
42
  observeIsolates(observer: Observer): void {
@@ -9,7 +9,7 @@ import * as i18n from '../i18n/i18n.js';
9
9
  import * as Platform from '../platform/platform.js';
10
10
 
11
11
  import {type DeferredDOMNode, DOMModel, type DOMNode} from './DOMModel.js';
12
- import {FrameManager} from './FrameManager.js';
12
+ import type {FrameManager} from './FrameManager.js';
13
13
  import {Events as NetworkManagerEvents, NetworkManager, type RequestUpdateDroppedEventData} from './NetworkManager.js';
14
14
  import type {NetworkRequest} from './NetworkRequest.js';
15
15
  import {Resource} from './Resource.js';
@@ -25,6 +25,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
25
25
  readonly storageAgent: ProtocolProxyApi.StorageApi;
26
26
  readonly #securityOriginManager: SecurityOriginManager;
27
27
  readonly #storageKeyManager: StorageKeyManager;
28
+ readonly #frameManager: FrameManager;
28
29
  readonly framesInternal = new Map<string, ResourceTreeFrame>();
29
30
  #cachedResourcesProcessed = false;
30
31
  #pendingReloadOptions: {
@@ -38,6 +39,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
38
39
 
39
40
  constructor(target: Target) {
40
41
  super(target);
42
+ this.#frameManager = target.targetManager().getFrameManager();
41
43
 
42
44
  const networkManager = target.model(NetworkManager);
43
45
  if (networkManager) {
@@ -92,8 +94,9 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
92
94
  return null;
93
95
  }
94
96
 
95
- static reloadAllPages(bypassCache?: boolean, scriptToEvaluateOnLoad?: string): void {
96
- for (const resourceTreeModel of TargetManager.instance().models(ResourceTreeModel)) {
97
+ static reloadAllPages(bypassCache?: boolean, scriptToEvaluateOnLoad?: string,
98
+ targetManager: TargetManager = TargetManager.instance()): void {
99
+ for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
97
100
  if (resourceTreeModel.target().parentTarget()?.type() !== Type.FRAME) {
98
101
  resourceTreeModel.reloadPage(bypassCache, scriptToEvaluateOnLoad);
99
102
  }
@@ -215,8 +218,8 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
215
218
  void this.updateStorageKeys();
216
219
 
217
220
  if (frame.backForwardCacheDetails.restoredFromCache) {
218
- FrameManager.instance().modelRemoved(this);
219
- FrameManager.instance().modelAdded(this);
221
+ this.#frameManager.modelRemoved(this);
222
+ this.#frameManager.modelAdded(this);
220
223
  void this.#buildResourceTree();
221
224
  }
222
225
  }
@@ -10,6 +10,7 @@ import {assertNotNullOrUndefined} from '../platform/platform.js';
10
10
  import type * as ProtocolClient from '../protocol_client/protocol_client.js';
11
11
  import * as Root from '../root/root.js';
12
12
 
13
+ import {FrameManager} from './FrameManager.js';
13
14
  import {type RegistrationInfo, SDKModel, type SDKModelConstructor} from './SDKModel.js';
14
15
  import {Target, Type as TargetType} from './Target.js';
15
16
 
@@ -31,6 +32,22 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
31
32
  return this.context.get(Common.Settings.Settings);
32
33
  }
33
34
 
35
+ // TODO(crbug.com/493763857): Remove fallback once all unit tests use TestUniverse.
36
+ getConsole(): Common.Console.Console {
37
+ if ('has' in this.context && typeof this.context.has === 'function' && !this.context.has(Common.Console.Console)) {
38
+ return Common.Console.Console.instance();
39
+ }
40
+ return this.context.get(Common.Console.Console);
41
+ }
42
+
43
+ // TODO(crbug.com/493763857): Remove fallback once all unit tests use TestUniverse.
44
+ getFrameManager(): FrameManager {
45
+ if ('has' in this.context && typeof this.context.has === 'function' && !this.context.has(FrameManager)) {
46
+ return FrameManager.instance();
47
+ }
48
+ return this.context.get(FrameManager);
49
+ }
50
+
34
51
  /* eslint-disable @typescript-eslint/no-explicit-any */
35
52
  #modelListeners: Platform.MapUtilities.Multimap<string|symbol|number, {
36
53
  modelClass: SDKModelConstructor,
@@ -5,7 +5,6 @@ import '../shell/shell.js';
5
5
  import '../../panels/css_overview/css_overview-meta.js';
6
6
  import '../../panels/elements/elements-meta.js';
7
7
  import '../../panels/browser_debugger/browser_debugger-meta.js';
8
- import '../../panels/greendev/greendev-meta.js';
9
8
  import '../../panels/network/network-meta.js';
10
9
  import '../../panels/security/security-meta.js';
11
10
  import '../../panels/emulation/emulation-meta.js';