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
@@ -20,7 +20,7 @@ export const generatedProperties = [
20
20
  ],
21
21
  "name": "-alternative-webkit-line-clamp-longhand",
22
22
  "runtime_flag": "CSSLineClamp",
23
- "runtime_flag_status": "stable"
23
+ "runtime_flag_status": "experimental"
24
24
  },
25
25
  {
26
26
  "longhands": [
@@ -253,6 +253,12 @@ export const generatedProperties = [
253
253
  },
254
254
  {
255
255
  "inherited": true,
256
+ "keywords": [
257
+ "sideways",
258
+ "upright",
259
+ "sideways-right",
260
+ "vertical-right"
261
+ ],
256
262
  "name": "-webkit-text-orientation"
257
263
  },
258
264
  {
@@ -1963,9 +1969,7 @@ export const generatedProperties = [
1963
1969
  "keywords": [
1964
1970
  "auto"
1965
1971
  ],
1966
- "name": "column-height",
1967
- "runtime_flag": "MulticolColumnWrapping",
1968
- "runtime_flag_status": "stable"
1972
+ "name": "column-height"
1969
1973
  },
1970
1974
  {
1971
1975
  "longhands": [
@@ -2129,9 +2133,7 @@ export const generatedProperties = [
2129
2133
  "nowrap",
2130
2134
  "wrap"
2131
2135
  ],
2132
- "name": "column-wrap",
2133
- "runtime_flag": "MulticolColumnWrapping",
2134
- "runtime_flag_status": "stable"
2136
+ "name": "column-wrap"
2135
2137
  },
2136
2138
  {
2137
2139
  "devtools_keywords": [
@@ -2677,6 +2679,35 @@ export const generatedProperties = [
2677
2679
  "name": "direction"
2678
2680
  },
2679
2681
  {
2682
+ "devtools_keywords": [
2683
+ "inline",
2684
+ "block",
2685
+ "list-item",
2686
+ "inline-block",
2687
+ "table",
2688
+ "inline-table",
2689
+ "table-row-group",
2690
+ "table-header-group",
2691
+ "table-footer-group",
2692
+ "table-row",
2693
+ "table-column-group",
2694
+ "table-column",
2695
+ "table-cell",
2696
+ "table-caption",
2697
+ "-webkit-box",
2698
+ "-webkit-inline-box",
2699
+ "flex",
2700
+ "inline-flex",
2701
+ "grid",
2702
+ "inline-grid",
2703
+ "contents",
2704
+ "flow-root",
2705
+ "none",
2706
+ "flow",
2707
+ "math",
2708
+ "ruby",
2709
+ "ruby-text"
2710
+ ],
2680
2711
  "keywords": [
2681
2712
  "inline",
2682
2713
  "block",
@@ -3430,8 +3461,6 @@ export const generatedProperties = [
3430
3461
  "inherited": true,
3431
3462
  "keywords": [
3432
3463
  "auto",
3433
- "optimizespeed",
3434
- "optimizequality",
3435
3464
  "-webkit-optimize-contrast",
3436
3465
  "pixelated",
3437
3466
  "crisp-edges"
@@ -3591,6 +3620,13 @@ export const generatedProperties = [
3591
3620
  "name": "lighting-color"
3592
3621
  },
3593
3622
  {
3623
+ "devtools_keywords": [
3624
+ "auto",
3625
+ "loose",
3626
+ "normal",
3627
+ "strict",
3628
+ "anywhere"
3629
+ ],
3594
3630
  "inherited": true,
3595
3631
  "keywords": [
3596
3632
  "auto",
@@ -3603,6 +3639,12 @@ export const generatedProperties = [
3603
3639
  "name": "line-break"
3604
3640
  },
3605
3641
  {
3642
+ "devtools_keywords": [
3643
+ "none",
3644
+ "auto",
3645
+ "ellipsis",
3646
+ "no-ellipsis"
3647
+ ],
3606
3648
  "keywords": [
3607
3649
  "none",
3608
3650
  "auto",
@@ -3612,7 +3654,7 @@ export const generatedProperties = [
3612
3654
  ],
3613
3655
  "name": "line-clamp",
3614
3656
  "runtime_flag": "CSSLineClamp",
3615
- "runtime_flag_status": "stable"
3657
+ "runtime_flag_status": "experimental"
3616
3658
  },
3617
3659
  {
3618
3660
  "is_descriptor": true,
@@ -4085,6 +4127,18 @@ export const generatedProperties = [
4085
4127
  "name": "outline-offset"
4086
4128
  },
4087
4129
  {
4130
+ "devtools_keywords": [
4131
+ "none",
4132
+ "auto",
4133
+ "inset",
4134
+ "groove",
4135
+ "outset",
4136
+ "ridge",
4137
+ "dotted",
4138
+ "dashed",
4139
+ "solid",
4140
+ "double"
4141
+ ],
4088
4142
  "keywords": [
4089
4143
  "none",
4090
4144
  "hidden",
@@ -5314,6 +5368,17 @@ export const generatedProperties = [
5314
5368
  "name": "table-layout"
5315
5369
  },
5316
5370
  {
5371
+ "devtools_keywords": [
5372
+ "left",
5373
+ "right",
5374
+ "center",
5375
+ "justify",
5376
+ "-webkit-left",
5377
+ "-webkit-right",
5378
+ "-webkit-center",
5379
+ "start",
5380
+ "end"
5381
+ ],
5317
5382
  "inherited": true,
5318
5383
  "keywords": [
5319
5384
  "left",
@@ -5330,6 +5395,15 @@ export const generatedProperties = [
5330
5395
  "name": "text-align"
5331
5396
  },
5332
5397
  {
5398
+ "devtools_keywords": [
5399
+ "auto",
5400
+ "start",
5401
+ "end",
5402
+ "left",
5403
+ "right",
5404
+ "center",
5405
+ "justify"
5406
+ ],
5333
5407
  "inherited": true,
5334
5408
  "keywords": [
5335
5409
  "auto",
@@ -5513,7 +5587,8 @@ export const generatedProperties = [
5513
5587
  "keywords": [
5514
5588
  "sideways",
5515
5589
  "mixed",
5516
- "upright"
5590
+ "upright",
5591
+ "sideways-right"
5517
5592
  ],
5518
5593
  "name": "text-orientation"
5519
5594
  },
@@ -5570,6 +5645,13 @@ export const generatedProperties = [
5570
5645
  "name": "text-spacing-trim"
5571
5646
  },
5572
5647
  {
5648
+ "devtools_keywords": [
5649
+ "none",
5650
+ "capitalize",
5651
+ "uppercase",
5652
+ "lowercase",
5653
+ "math-auto"
5654
+ ],
5573
5655
  "inherited": true,
5574
5656
  "keywords": [
5575
5657
  "none",
@@ -5627,6 +5709,9 @@ export const generatedProperties = [
5627
5709
  "name": "text-wrap-style"
5628
5710
  },
5629
5711
  {
5712
+ "devtools_keywords": [
5713
+ "none"
5714
+ ],
5630
5715
  "keywords": [
5631
5716
  "none",
5632
5717
  "all"
@@ -5838,6 +5923,12 @@ export const generatedProperties = [
5838
5923
  "name": "unicode-range"
5839
5924
  },
5840
5925
  {
5926
+ "devtools_keywords": [
5927
+ "auto",
5928
+ "none",
5929
+ "text",
5930
+ "all"
5931
+ ],
5841
5932
  "inherited": true,
5842
5933
  "keywords": [
5843
5934
  "auto",
@@ -5907,6 +5998,9 @@ export const generatedProperties = [
5907
5998
  "name": "view-transition-group"
5908
5999
  },
5909
6000
  {
6001
+ "devtools_keywords": [
6002
+ "none"
6003
+ ],
5910
6004
  "keywords": [
5911
6005
  "none",
5912
6006
  "auto"
@@ -6145,6 +6239,14 @@ export const generatedPropertyValues = {
6145
6239
  "grammar-error"
6146
6240
  ]
6147
6241
  },
6242
+ "-webkit-text-orientation": {
6243
+ "values": [
6244
+ "sideways",
6245
+ "upright",
6246
+ "sideways-right",
6247
+ "vertical-right"
6248
+ ]
6249
+ },
6148
6250
  "-webkit-text-security": {
6149
6251
  "values": [
6150
6252
  "none",
@@ -7242,9 +7344,7 @@ export const generatedPropertyValues = {
7242
7344
  "flow",
7243
7345
  "math",
7244
7346
  "ruby",
7245
- "ruby-text",
7246
- "grid-lanes",
7247
- "inline-grid-lanes"
7347
+ "ruby-text"
7248
7348
  ]
7249
7349
  },
7250
7350
  "dominant-baseline": {
@@ -7693,8 +7793,6 @@ export const generatedPropertyValues = {
7693
7793
  "image-rendering": {
7694
7794
  "values": [
7695
7795
  "auto",
7696
- "optimizespeed",
7697
- "optimizequality",
7698
7796
  "-webkit-optimize-contrast",
7699
7797
  "pixelated",
7700
7798
  "crisp-edges"
@@ -7789,8 +7887,7 @@ export const generatedPropertyValues = {
7789
7887
  "loose",
7790
7888
  "normal",
7791
7889
  "strict",
7792
- "anywhere",
7793
- "after-white-space"
7890
+ "anywhere"
7794
7891
  ]
7795
7892
  },
7796
7893
  "line-clamp": {
@@ -7798,8 +7895,7 @@ export const generatedPropertyValues = {
7798
7895
  "none",
7799
7896
  "auto",
7800
7897
  "ellipsis",
7801
- "no-ellipsis",
7802
- "-webkit-legacy"
7898
+ "no-ellipsis"
7803
7899
  ]
7804
7900
  },
7805
7901
  "line-height": {
@@ -8094,7 +8190,7 @@ export const generatedPropertyValues = {
8094
8190
  "outline-style": {
8095
8191
  "values": [
8096
8192
  "none",
8097
- "hidden",
8193
+ "auto",
8098
8194
  "inset",
8099
8195
  "groove",
8100
8196
  "outset",
@@ -8681,8 +8777,7 @@ export const generatedPropertyValues = {
8681
8777
  "-webkit-right",
8682
8778
  "-webkit-center",
8683
8779
  "start",
8684
- "end",
8685
- "match-parent"
8780
+ "end"
8686
8781
  ]
8687
8782
  },
8688
8783
  "text-align-last": {
@@ -8693,8 +8788,7 @@ export const generatedPropertyValues = {
8693
8788
  "left",
8694
8789
  "right",
8695
8790
  "center",
8696
- "justify",
8697
- "match-parent"
8791
+ "justify"
8698
8792
  ]
8699
8793
  },
8700
8794
  "text-anchor": {
@@ -8802,7 +8896,8 @@ export const generatedPropertyValues = {
8802
8896
  "values": [
8803
8897
  "sideways",
8804
8898
  "mixed",
8805
- "upright"
8899
+ "upright",
8900
+ "sideways-right"
8806
8901
  ]
8807
8902
  },
8808
8903
  "text-overflow": {
@@ -8844,8 +8939,6 @@ export const generatedPropertyValues = {
8844
8939
  "capitalize",
8845
8940
  "uppercase",
8846
8941
  "lowercase",
8847
- "full-width",
8848
- "full-size-kana",
8849
8942
  "math-auto"
8850
8943
  ]
8851
8944
  },
@@ -8879,8 +8972,7 @@ export const generatedPropertyValues = {
8879
8972
  },
8880
8973
  "timeline-scope": {
8881
8974
  "values": [
8882
- "none",
8883
- "all"
8975
+ "none"
8884
8976
  ]
8885
8977
  },
8886
8978
  "timeline-trigger-active-range-end": {
@@ -8997,8 +9089,7 @@ export const generatedPropertyValues = {
8997
9089
  "auto",
8998
9090
  "none",
8999
9091
  "text",
9000
- "all",
9001
- "contain"
9092
+ "all"
9002
9093
  ]
9003
9094
  },
9004
9095
  "vector-effect": {
@@ -9046,8 +9137,7 @@ export const generatedPropertyValues = {
9046
9137
  },
9047
9138
  "view-transition-name": {
9048
9139
  "values": [
9049
- "none",
9050
- "auto"
9140
+ "none"
9051
9141
  ]
9052
9142
  },
9053
9143
  "view-transition-scope": {
@@ -2482,6 +2482,14 @@ export namespace ProtocolMapping {
2482
2482
  paramsType: [Protocol.DeviceOrientation.SetDeviceOrientationOverrideRequest];
2483
2483
  returnType: void;
2484
2484
  };
2485
+ /**
2486
+ * Sets the behavior of the virtual wallet for digital credential requests
2487
+ * issued from this frame.
2488
+ */
2489
+ 'DigitalCredentials.setVirtualWalletBehavior': {
2490
+ paramsType: [Protocol.DigitalCredentials.SetVirtualWalletBehaviorRequest];
2491
+ returnType: void;
2492
+ };
2485
2493
  /**
2486
2494
  * Tells whether emulation is supported.
2487
2495
  */
@@ -54,6 +54,8 @@ declare namespace ProtocolProxyApi {
54
54
 
55
55
  DeviceOrientation: DeviceOrientationApi;
56
56
 
57
+ DigitalCredentials: DigitalCredentialsApi;
58
+
57
59
  Emulation: EmulationApi;
58
60
 
59
61
  EventBreakpoints: EventBreakpointsApi;
@@ -169,6 +171,8 @@ declare namespace ProtocolProxyApi {
169
171
 
170
172
  DeviceOrientation: DeviceOrientationDispatcher;
171
173
 
174
+ DigitalCredentials: DigitalCredentialsDispatcher;
175
+
172
176
  Emulation: EmulationDispatcher;
173
177
 
174
178
  EventBreakpoints: EventBreakpointsDispatcher;
@@ -1639,6 +1643,17 @@ declare namespace ProtocolProxyApi {
1639
1643
  export interface DeviceOrientationDispatcher {
1640
1644
  }
1641
1645
 
1646
+ export interface DigitalCredentialsApi {
1647
+ /**
1648
+ * Sets the behavior of the virtual wallet for digital credential requests
1649
+ * issued from this frame.
1650
+ */
1651
+ invoke_setVirtualWalletBehavior(params: Protocol.DigitalCredentials.SetVirtualWalletBehaviorRequest): Promise<Protocol.ProtocolResponseWithError>;
1652
+
1653
+ }
1654
+ export interface DigitalCredentialsDispatcher {
1655
+ }
1656
+
1642
1657
  export interface EmulationApi {
1643
1658
  /**
1644
1659
  * Tells whether emulation is supported.
@@ -440,6 +440,29 @@ export namespace Accessibility {
440
440
  */
441
441
  export namespace Ads {
442
442
 
443
+ /**
444
+ * Ad frame data.
445
+ */
446
+ export interface AdFrameData {
447
+ /**
448
+ * The DevTools frame token.
449
+ */
450
+ frameId: Page.FrameId;
451
+ /**
452
+ * The initial origin of the frame. To minimize the payload size, this is
453
+ * only sent once per frame.
454
+ */
455
+ initialOrigin?: string;
456
+ /**
457
+ * The network bytes of the frame.
458
+ */
459
+ networkBytes: number;
460
+ /**
461
+ * The CPU time of the frame, in milliseconds.
462
+ */
463
+ cpuTime: number;
464
+ }
465
+
443
466
  /**
444
467
  * Ad metrics for a page.
445
468
  */
@@ -471,6 +494,14 @@ export namespace Ads {
471
494
  * The total ad network bytes.
472
495
  */
473
496
  totalAdNetworkBytes: number;
497
+ /**
498
+ * The list of ad frames that have been updated since the last event.
499
+ */
500
+ updateAdFrames: AdFrameData[];
501
+ /**
502
+ * The list of ad frame IDs that have been removed since the last event.
503
+ */
504
+ removeAdFrames: Page.FrameId[];
474
505
  }
475
506
 
476
507
  export interface GetAdMetricsResponse extends ProtocolResponseWithError {
@@ -1617,6 +1648,8 @@ export namespace Audits {
1617
1648
  FontSizeTooSmall = 'FontSizeTooSmall',
1618
1649
  FontSizeTooLarge = 'FontSizeTooLarge',
1619
1650
  InvalidSizeValue = 'InvalidSizeValue',
1651
+ NonSecureContext = 'NonSecureContext',
1652
+ MissingTransientUserActivation = 'MissingTransientUserActivation',
1620
1653
  }
1621
1654
 
1622
1655
  /**
@@ -4807,6 +4840,7 @@ export namespace DOM {
4807
4840
  SelectListbox = 'select-listbox',
4808
4841
  PermissionIcon = 'permission-icon',
4809
4842
  OverscrollAreaParent = 'overscroll-area-parent',
4843
+ OverscrollBackdrop = 'overscroll-backdrop',
4810
4844
  Skeleton = 'skeleton',
4811
4845
  }
4812
4846
 
@@ -6976,6 +7010,39 @@ export namespace DeviceOrientation {
6976
7010
  }
6977
7011
  }
6978
7012
 
7013
+ /**
7014
+ * This domain allows interacting with the Digital Credentials API for automation.
7015
+ */
7016
+ export namespace DigitalCredentials {
7017
+
7018
+ /**
7019
+ * The type of virtual wallet action.
7020
+ */
7021
+ export const enum VirtualWalletBehavior {
7022
+ Respond = 'respond',
7023
+ Decline = 'decline',
7024
+ Wait = 'wait',
7025
+ Clear = 'clear',
7026
+ }
7027
+
7028
+ export interface SetVirtualWalletBehaviorRequest {
7029
+ /**
7030
+ * The behavior of the virtual wallet.
7031
+ */
7032
+ behavior: VirtualWalletBehavior;
7033
+ /**
7034
+ * The protocol identifier (e.g. "openid4vp"). Required when |behavior| is
7035
+ * "respond", forbidden otherwise.
7036
+ */
7037
+ protocol?: string;
7038
+ /**
7039
+ * The response data object returned by the wallet.
7040
+ * Required when |behavior| is "respond", forbidden otherwise.
7041
+ */
7042
+ response?: any;
7043
+ }
7044
+ }
7045
+
6979
7046
  /**
6980
7047
  * This domain emulates different environments for the page.
6981
7048
  */
@@ -11975,10 +12042,12 @@ export namespace Network {
11975
12042
 
11976
12043
  /**
11977
12044
  * A fetch result for a device bound session creation or refresh.
12045
+ * LINT_SKIP.IfChange(DeviceBoundSessionFetchResult)
11978
12046
  */
11979
12047
  export const enum DeviceBoundSessionFetchResult {
11980
12048
  Success = 'Success',
11981
- KeyError = 'KeyError',
12049
+ SigningKeyGenerationError = 'SigningKeyGenerationError',
12050
+ AttestationKeyGenerationError = 'AttestationKeyGenerationError',
11982
12051
  SigningError = 'SigningError',
11983
12052
  TransientSigningError = 'TransientSigningError',
11984
12053
  ServerRequestedTermination = 'ServerRequestedTermination',
@@ -15790,6 +15859,15 @@ export namespace Page {
15790
15859
  * option, use with caution.
15791
15860
  */
15792
15861
  grantUniveralAccess?: boolean;
15862
+ /**
15863
+ * An optional content security policy to set for the isolated world.
15864
+ * If omitted, any existing CSP for the world will be cleared.
15865
+ * Note that clearing or updating the CSP does not immediately affect the active
15866
+ * context in the same document because LocalDOMWindow caches the
15867
+ * ContentSecurityPolicy object. The change takes effect on subsequent
15868
+ * navigations when a new window context is created.
15869
+ */
15870
+ contentSecurityPolicy?: string;
15793
15871
  }
15794
15872
 
15795
15873
  export interface CreateIsolatedWorldResponse extends ProtocolResponseWithError {
@@ -19952,6 +20030,21 @@ export namespace Tracing {
19952
20030
  * Backend type (defaults to `auto`)
19953
20031
  */
19954
20032
  tracingBackend?: TracingBackend;
20033
+ /**
20034
+ * Maximum width and height (in pixels) of each captured screenshot.
20035
+ * Only used when the `disabled-by-default-devtools.screenshot` category is
20036
+ * enabled. Defaults to 500. The combined memory footprint of screenshots
20037
+ * (`screenshotMaxSize` * `screenshotMaxSize` * 4 * `screenshotMaxCount`)
20038
+ * is clamped to the existing per-session budget.
20039
+ */
20040
+ screenshotMaxSize?: integer;
20041
+ /**
20042
+ * Maximum number of screenshots captured during a single tracing session.
20043
+ * Only used when the `disabled-by-default-devtools.screenshot` category is
20044
+ * enabled. Defaults to 450. Clamped together with `screenshotMaxSize` to
20045
+ * stay within the per-session screenshot memory budget.
20046
+ */
20047
+ screenshotMaxCount?: integer;
19955
20048
  }
19956
20049
 
19957
20050
  export interface BufferUsageEvent {
@@ -8,7 +8,6 @@ import * as Root from '../../core/root/root.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
9
  import type * as LHModel from '../../models/lighthouse/lighthouse.js';
10
10
  import type * as Trace from '../../models/trace/trace.js';
11
- import * as Greendev from '../greendev/greendev.js';
12
11
  import type * as NetworkTimeCalculator from '../network_time_calculator/network_time_calculator.js';
13
12
 
14
13
  import {AccessibilityAgent} from './agents/AccessibilityAgent.js';
@@ -27,7 +26,7 @@ import {
27
26
  import {ContextSelectionAgent} from './agents/ContextSelectionAgent.js';
28
27
  import {FileAgent} from './agents/FileAgent.js';
29
28
  import {NetworkAgent} from './agents/NetworkAgent.js';
30
- import {PerformanceAgent, PerformanceTraceContext} from './agents/PerformanceAgent.js';
29
+ import {PerformanceAgent} from './agents/PerformanceAgent.js';
31
30
  import {StorageAgent, StorageContext} from './agents/StorageAgent.js';
32
31
  import {StylingAgent} from './agents/StylingAgent.js';
33
32
  import {AiAgent2} from './AiAgent2.js';
@@ -36,6 +35,7 @@ import type {ChangeManager} from './ChangeManager.js';
36
35
  import {AccessibilityContext} from './contexts/AccessibilityContext.js';
37
36
  import {DOMNodeContext} from './contexts/DOMNodeContext.js';
38
37
  import {FileContext} from './contexts/FileContext.js';
38
+ import {PerformanceTraceContext} from './contexts/PerformanceTraceContext.js';
39
39
  import {RequestContext} from './contexts/RequestContext.js';
40
40
 
41
41
  export const NOT_FOUND_IMAGE_DATA = '';
@@ -204,11 +204,6 @@ export class AiConversation {
204
204
  return this.#contexts.at(0);
205
205
  }
206
206
 
207
- getPendingMultimodalInput(): MultimodalInput|undefined {
208
- const greenDevEmulationEnabled = Greendev.Prototypes.instance().isEnabled('emulationCapabilities');
209
- return greenDevEmulationEnabled ? this.#agent.popPendingMultimodalInput() : undefined;
210
- }
211
-
212
207
  #reconstructHistory(historyWithoutImages: ResponseData[]): ResponseData[] {
213
208
  const imageHistory = AiHistoryStorage.instance().getImageHistory();
214
209
  if (imageHistory && imageHistory.length > 0) {
@@ -8,7 +8,7 @@ When the user interacts with AI via the AI Assistance Panel, they are having a _
8
8
 
9
9
  Each agent has a _context_ defined, which represents the selected data that forms the context of the conversation the user is having with that agent. For example:
10
10
 
11
- - The `PerformanceAgent` has an individual performance trace and a specific focus (an insight, or a call tree) as its context.
11
+ - The `PerformanceAgent` uses `PerformanceTraceContext` wrapping an individual performance trace and a specific focus (an insight, or a call tree) as its context.
12
12
  - The `StylingAgent` has a DOM Node as its context.
13
13
 
14
14
  Contexts are defined as subclasses extending the `ConversationContext` abstract class, which defines the following key methods:
@@ -51,9 +51,9 @@ To support skills requiring execution of code or fetching page state (like compu
51
51
 
52
52
  ## Performance specific documentation
53
53
 
54
- ### `TimelineUtils.AIContext.AgentFocus`
54
+ ### `PerformanceTraceContext`
55
55
 
56
- The context for `PerformanceAgent` is `AgentFocus`, which supports different behavior for different entry-points of the "Ask AI" feature for a trace. The two entry-points now are "insight" and "call-tree". The agent modifies its capabilities based on this focus.
56
+ The context for `PerformanceAgent` is `PerformanceTraceContext`, which wraps `AgentFocus`. `AgentFocus` supports different behavior for different entry-points of the "Ask AI" feature for a trace (such as a specific performance insight, flame chart call tree, trace event, or the whole parsed trace). `PerformanceTraceContext` implements `ConversationContext<AgentFocus>` to fetch prompt details, user-facing accordion details, and context-specific AI suggestions.
57
57
 
58
58
  ### Adding "Ask AI" to a new Insight
59
59
 
@@ -116,4 +116,5 @@ To prevent prompt injection attacks and cross-origin data leaks, the AI Assistan
116
116
  * **Origin Locking**: Once a conversation session begins, it locks to the origin of the initial data context (e.g. `https://google.com` or a specific file path).
117
117
  * **Opaque Origins**: Any origin classified as opaque (e.g. `data:`, `about:`, `detached` nodes, unparsed `undefined://` or empty origins) is blocked from starting AI assistance (`isOpaqueOrigin()`).
118
118
  * **File Isolation**: Local files (`file://`) do not share a single wildcard origin. Instead, the path is appended (e.g. `file:///path/to/file.js`) to treat each local file as its own unique origin. Swapping local files in the same conversation is blocked.
119
+ * **Trace Isolation**: Imported performance trace recordings are isolated using the virtual origin `imported-trace://${domain}`. This ensures that loaded local trace files do not share origins with live pages, preventing potential cross-origin prompt injection attacks when switching contexts.
119
120
  * **Equivalence**: `areOriginsEquivalent()` ensures opaque origins are never equivalent to anything (including themselves), forcing a conversation reset on transitions.
@@ -17,6 +17,7 @@ import {isOpaqueOrigin} from '../AiOrigins.js';
17
17
  import {AccessibilityContext} from '../contexts/AccessibilityContext.js';
18
18
  import {DOMNodeContext} from '../contexts/DOMNodeContext.js';
19
19
  import {FileContext} from '../contexts/FileContext.js';
20
+ import {PerformanceTraceContext} from '../contexts/PerformanceTraceContext.js';
20
21
  import {getRequestContextOrigin, RequestContext} from '../contexts/RequestContext.js';
21
22
  import {debugLog} from '../debug.js';
22
23
  import {StorageItem} from '../StorageItem.js';
@@ -28,7 +29,6 @@ import {
28
29
  type ContextResponse,
29
30
  type RequestOptions,
30
31
  } from './AiAgent.js';
31
- import {PerformanceTraceContext} from './PerformanceAgent.js';
32
32
  import {StorageContext} from './StorageAgent.js';
33
33
 
34
34
  const lockedString = i18n.i18n.lockedString;
@@ -59,7 +59,7 @@ Content:
59
59
  {
60
60
  "parts": [
61
61
  {
62
- "text": "# Selected network request\nRequest: https://www.example.com\n\nRequest headers:\ncontent-type: bar1\n\nResponse headers:\ncontent-type: bar2\nx-forwarded-for: bar3\n\nResponse body:\n{\"request\":\"body\"}\n\nResponse status: 200\nNetwork request status: pending\n\nRequest timing:\nQueued at (timestamp): 0 s\nStarted at (timestamp): 501 s\nQueueing (duration): 501 s\nConnection start (stalled) (duration): 800 ms\nRequest sent (duration): 100 ms\nDuration (duration): 501 s\n\nRequest initiator chain:\n- URL: <redacted cross-origin initiator URL>\n\t- URL: https://www.example.com\n\t\t- URL: https://www.example.com/1\n\t\t- URL: https://www.example.com/2\n\n# User request\n\ntest"
62
+ "text": "# Selected network request\nRequest: https://www.example.com\nRequest headers:\ncontent-type: bar1\n\nResponse headers:\ncontent-type: bar2\nx-forwarded-for: bar3\n\nResponse body:\n{\"request\":\"body\"}\n\nResponse status: 200\nNetwork request status: pending\n\nRequest timing:\nQueued at (timestamp): 0 s\nStarted at (timestamp): 501 s\nQueueing (duration): 501 s\nConnection start (stalled) (duration): 800 ms\nRequest sent (duration): 100 ms\nDuration (duration): 501 s\n\nRequest initiator chain:\n- URL: <redacted cross-origin initiator URL>\n\t- URL: https://www.example.com\n\t\t- URL: https://www.example.com/1\n\t\t- URL: https://www.example.com/2\n\n# User request\n\ntest"
63
63
  }
64
64
  ],
65
65
  "role": 1