chrome-devtools-frontend 1.0.1532884 → 1.0.1533544

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 (452) hide show
  1. package/eslint.config.mjs +89 -133
  2. package/front_end/core/host/InspectorFrontendHost.ts +1 -1
  3. package/front_end/core/host/UserMetrics.ts +0 -4
  4. package/front_end/core/i18n/i18nImpl.ts +1 -1
  5. package/front_end/core/protocol_client/InspectorBackend.ts +4 -15
  6. package/front_end/core/root/Runtime.ts +0 -2
  7. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +1 -1
  8. package/front_end/core/sdk/NetworkManager.ts +85 -46
  9. package/front_end/core/sdk/NetworkRequest.ts +7 -0
  10. package/front_end/devtools_compatibility.js +941 -1596
  11. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +1 -1
  12. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
  13. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -1
  14. package/front_end/entrypoints/main/MainImpl.ts +4 -9
  15. package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +1 -1
  16. package/front_end/entrypoints/node_app/node_app.ts +2 -2
  17. package/front_end/generated/InspectorBackendCommands.js +0 -4
  18. package/front_end/generated/protocol-mapping.d.ts +0 -18
  19. package/front_end/generated/protocol-proxy-api.d.ts +0 -22
  20. package/front_end/generated/protocol.ts +0 -74
  21. package/front_end/global_typings/global_defs.d.ts +16 -0
  22. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +9 -7
  23. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -1
  24. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatterBounds.snapshot.txt +1 -1
  25. package/front_end/models/ai_assistance/injected.ts +1 -1
  26. package/front_end/models/ai_assistance/performance/AIContext.ts +11 -28
  27. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  28. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
  29. package/front_end/models/extensions/ExtensionAPI.ts +1 -1
  30. package/front_end/models/extensions/extensions.ts +0 -6
  31. package/front_end/models/formatter/FormatterWorkerPool.ts +1 -1
  32. package/front_end/models/issues_manager/DeprecationIssue.ts +1 -1
  33. package/front_end/models/javascript_metadata/NativeFunctions.js +8 -0
  34. package/front_end/models/stack_trace/StackTraceModel.ts +1 -1
  35. package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +1 -1
  36. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
  37. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
  38. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -1
  39. package/front_end/panels/accessibility/AccessibilitySubPane.ts +2 -2
  40. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +0 -12
  41. package/front_end/panels/ai_assistance/PatchWidget.ts +1 -1
  42. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +0 -37
  43. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
  44. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +1 -1
  45. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +1 -1
  46. package/front_end/panels/animation/AnimationTimeline.ts +2 -2
  47. package/front_end/panels/application/AppManifestView.ts +1 -1
  48. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -1
  49. package/front_end/panels/application/BackgroundServiceView.ts +13 -4
  50. package/front_end/panels/application/CookieItemsView.ts +1 -1
  51. package/front_end/panels/application/DOMStorageItemsView.ts +1 -1
  52. package/front_end/panels/application/ExtensionStorageItemsView.ts +1 -1
  53. package/front_end/panels/application/IndexedDBViews.ts +1 -1
  54. package/front_end/panels/application/InterestGroupStorageView.ts +1 -1
  55. package/front_end/panels/application/OpenedWindowDetailsView.ts +3 -3
  56. package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
  57. package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +1 -1
  58. package/front_end/panels/application/ServiceWorkersView.ts +1 -1
  59. package/front_end/panels/application/SharedStorageEventsView.ts +1 -1
  60. package/front_end/panels/application/StorageView.ts +1 -1
  61. package/front_end/panels/application/components/BackForwardCacheView.ts +1 -1
  62. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +1 -1
  63. package/front_end/panels/application/components/FrameDetailsView.ts +1 -1
  64. package/front_end/panels/application/components/InterestGroupAccessGrid.ts +2 -2
  65. package/front_end/panels/application/components/OriginTrialTreeView.ts +2 -2
  66. package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -1
  67. package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
  68. package/front_end/panels/application/components/ServiceWorkerRouterView.ts +1 -1
  69. package/front_end/panels/application/components/StackTrace.ts +1 -1
  70. package/front_end/panels/application/components/StorageMetadataView.ts +1 -1
  71. package/front_end/panels/application/components/TrustTokensView.ts +1 -1
  72. package/front_end/panels/application/preloading/PreloadingView.ts +3 -3
  73. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
  74. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +1 -1
  75. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +1 -1
  76. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -2
  77. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +1 -1
  78. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +1 -1
  79. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +1 -1
  80. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +1 -1
  81. package/front_end/panels/autofill/AutofillView.ts +1 -1
  82. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  83. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
  84. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +1 -1
  85. package/front_end/panels/changes/CombinedDiffView.ts +1 -1
  86. package/front_end/{models/extensions → panels/common}/ExtensionPanel.ts +8 -12
  87. package/front_end/{models/extensions → panels/common}/ExtensionServer.ts +242 -180
  88. package/front_end/{models/extensions → panels/common}/ExtensionView.ts +0 -4
  89. package/front_end/panels/common/FreDialog.ts +1 -1
  90. package/front_end/panels/common/PersistenceUtils.ts +1 -1
  91. package/front_end/panels/common/common.ts +4 -1
  92. package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
  93. package/front_end/panels/console/ConsoleFormat.ts +1 -1
  94. package/front_end/panels/console/ConsoleInsightTeaser.ts +5 -3
  95. package/front_end/panels/console/ConsolePanel.ts +1 -1
  96. package/front_end/panels/console/ConsolePinPane.ts +2 -2
  97. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  98. package/front_end/panels/console/ConsoleSidebar.ts +1 -1
  99. package/front_end/panels/console/ConsoleView.ts +2 -2
  100. package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
  101. package/front_end/panels/console/ConsoleViewport.ts +1 -1
  102. package/front_end/panels/elements/AccessibilityTreeView.ts +1 -1
  103. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  104. package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
  105. package/front_end/panels/elements/ElementsPanel.ts +7 -7
  106. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
  107. package/front_end/panels/elements/ElementsTreeElement.ts +1 -1
  108. package/front_end/panels/elements/ElementsTreeOutline.ts +2 -2
  109. package/front_end/panels/elements/MetricsSidebarPane.ts +1 -1
  110. package/front_end/panels/elements/PropertyRenderer.ts +1 -1
  111. package/front_end/panels/elements/ShortcutTreeElement.ts +1 -1
  112. package/front_end/panels/elements/StyleEditorWidget.ts +1 -1
  113. package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
  114. package/front_end/panels/elements/StylePropertyTreeElement.ts +2 -2
  115. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  116. package/front_end/panels/elements/TopLayerContainer.ts +1 -1
  117. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
  118. package/front_end/panels/elements/components/CSSHintDetailsView.ts +13 -13
  119. package/front_end/panels/elements/components/CSSPropertyDocsView.ts +1 -1
  120. package/front_end/panels/elements/components/CSSQuery.ts +1 -2
  121. package/front_end/panels/elements/components/CSSVariableValueView.ts +1 -1
  122. package/front_end/panels/elements/components/ComputedStyleProperty.ts +1 -1
  123. package/front_end/panels/elements/components/ComputedStyleTrace.ts +1 -1
  124. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -2
  125. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  126. package/front_end/panels/elements/components/QueryContainer.ts +2 -2
  127. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -1
  128. package/front_end/panels/emulation/AdvancedApp.ts +1 -1
  129. package/front_end/panels/emulation/DeviceModeToolbar.ts +1 -1
  130. package/front_end/panels/emulation/DeviceModeView.ts +1 -1
  131. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  132. package/front_end/panels/emulation/MediaQueryInspector.ts +1 -1
  133. package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +1 -1
  134. package/front_end/panels/event_listeners/EventListenersView.ts +2 -2
  135. package/front_end/panels/explain/components/ConsoleInsight.ts +1 -1
  136. package/front_end/panels/issues/AffectedBlockedByResponseView.ts +1 -1
  137. package/front_end/panels/issues/AffectedCookiesView.ts +1 -1
  138. package/front_end/panels/issues/AffectedDescendantsWithinSelectElementView.ts +1 -1
  139. package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
  140. package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +1 -1
  141. package/front_end/panels/issues/AffectedElementsView.ts +1 -1
  142. package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +1 -1
  143. package/front_end/panels/issues/AffectedHeavyAdView.ts +1 -1
  144. package/front_end/panels/issues/AffectedMetadataAllowedSitesView.ts +1 -1
  145. package/front_end/panels/issues/AffectedPartitioningBlobURLView.ts +1 -1
  146. package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
  147. package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +1 -1
  148. package/front_end/panels/issues/AffectedSourcesView.ts +1 -1
  149. package/front_end/panels/issues/AffectedTrackingSitesView.ts +1 -1
  150. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +1 -1
  151. package/front_end/panels/issues/CorsIssueDetailsView.ts +1 -1
  152. package/front_end/panels/issues/GenericIssueDetailsView.ts +1 -1
  153. package/front_end/panels/issues/IssueKindView.ts +1 -1
  154. package/front_end/panels/issues/IssueView.ts +1 -1
  155. package/front_end/panels/issues/IssuesPane.ts +1 -1
  156. package/front_end/panels/issues/components/ElementsPanelLink.ts +1 -1
  157. package/front_end/panels/issues/components/HideIssuesMenu.ts +1 -1
  158. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -1
  159. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +1 -1
  160. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  161. package/front_end/panels/layer_viewer/PaintProfilerView.ts +1 -1
  162. package/front_end/panels/layer_viewer/TransformController.ts +1 -1
  163. package/front_end/panels/layers/LayerPaintProfilerView.ts +1 -1
  164. package/front_end/panels/layers/LayersPanel.ts +1 -1
  165. package/front_end/panels/lighthouse/LighthouseController.ts +207 -139
  166. package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
  167. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +1 -1
  168. package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -1
  169. package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
  170. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
  171. package/front_end/panels/lighthouse/RadioSetting.ts +1 -1
  172. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +1 -1
  173. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +1 -1
  174. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -2
  175. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  176. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
  177. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  178. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -2
  179. package/front_end/panels/media/EventDisplayTable.ts +1 -1
  180. package/front_end/panels/media/EventTimelineView.ts +1 -1
  181. package/front_end/panels/media/MainView.ts +1 -1
  182. package/front_end/panels/media/PlayerListView.ts +1 -1
  183. package/front_end/panels/media/PlayerMessagesView.ts +1 -1
  184. package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
  185. package/front_end/panels/media/TickingFlameChart.ts +1 -1
  186. package/front_end/panels/mobile_throttling/CalibrationController.ts +1 -1
  187. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +1 -1
  188. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +1 -1
  189. package/front_end/panels/network/BinaryResourceView.ts +1 -1
  190. package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
  191. package/front_end/panels/network/NetworkConfigView.ts +1 -1
  192. package/front_end/panels/network/NetworkDataGridNode.ts +21 -2
  193. package/front_end/panels/network/NetworkItemView.ts +1 -1
  194. package/front_end/panels/network/NetworkLogView.ts +2 -2
  195. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
  196. package/front_end/panels/network/NetworkManageCustomHeadersView.ts +1 -1
  197. package/front_end/panels/network/NetworkOverview.ts +1 -1
  198. package/front_end/panels/network/NetworkPanel.ts +4 -4
  199. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
  200. package/front_end/panels/network/RequestConditionsDrawer.ts +29 -5
  201. package/front_end/panels/network/RequestCookiesView.ts +1 -1
  202. package/front_end/panels/network/RequestInitiatorView.ts +1 -1
  203. package/front_end/panels/network/RequestPayloadView.ts +3 -4
  204. package/front_end/panels/network/RequestPreviewView.ts +1 -1
  205. package/front_end/panels/network/RequestTimingView.ts +1 -1
  206. package/front_end/panels/network/ResourceChunkView.ts +1 -1
  207. package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -1
  208. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -1
  209. package/front_end/panels/network/SignedExchangeInfoView.ts +1 -1
  210. package/front_end/panels/network/components/DirectSocketConnectionView.ts +1 -1
  211. package/front_end/panels/network/components/EditableSpan.ts +1 -1
  212. package/front_end/panels/network/components/HeaderSectionRow.ts +1 -1
  213. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
  214. package/front_end/panels/network/components/RequestHeadersView.ts +1 -1
  215. package/front_end/panels/network/components/RequestTrustTokensView.ts +1 -1
  216. package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
  217. package/front_end/panels/network/network-meta.ts +2 -2
  218. package/front_end/panels/network/networkLogView.css +24 -0
  219. package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +1 -1
  220. package/front_end/panels/profiler/HeapDetachedElementsView.ts +1 -1
  221. package/front_end/panels/profiler/HeapProfileView.ts +1 -1
  222. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -1
  223. package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
  224. package/front_end/panels/profiler/HeapTimelineOverview.ts +1 -1
  225. package/front_end/panels/profiler/IsolateSelector.ts +1 -1
  226. package/front_end/panels/profiler/LiveHeapProfileView.ts +1 -1
  227. package/front_end/panels/profiler/ProfileDataGrid.ts +1 -1
  228. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +1 -1
  229. package/front_end/panels/profiler/ProfileLauncherView.ts +1 -1
  230. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
  231. package/front_end/panels/profiler/ProfileView.ts +1 -1
  232. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  233. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -1
  234. package/front_end/panels/recorder/RecorderPanel.ts +1 -1
  235. package/front_end/panels/recorder/components/CreateRecordingView.ts +1 -1
  236. package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
  237. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  238. package/front_end/panels/recorder/components/ReplaySection.ts +1 -1
  239. package/front_end/panels/recorder/components/SelectButton.ts +1 -1
  240. package/front_end/panels/recorder/components/TimelineSection.ts +1 -1
  241. package/front_end/panels/recorder/extensions/ExtensionManager.ts +1 -1
  242. package/front_end/panels/recorder/models/ScreenshotUtils.ts +1 -1
  243. package/front_end/panels/screencast/ScreencastApp.ts +1 -1
  244. package/front_end/panels/screencast/ScreencastView.ts +1 -1
  245. package/front_end/panels/security/CookieControlsView.ts +1 -1
  246. package/front_end/panels/security/CookieReportView.ts +1 -1
  247. package/front_end/panels/security/IPProtectionView.ts +1 -1
  248. package/front_end/panels/security/SecurityPanel.ts +2 -2
  249. package/front_end/panels/security/SecurityPanelSidebar.ts +1 -1
  250. package/front_end/panels/sensors/LocationsSettingsTab.ts +1 -1
  251. package/front_end/panels/sensors/SensorsView.ts +1 -1
  252. package/front_end/panels/settings/AISettingsTab.ts +1 -1
  253. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +1 -1
  254. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
  255. package/front_end/panels/settings/SettingsScreen.ts +2 -2
  256. package/front_end/panels/settings/components/SyncSection.ts +1 -1
  257. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +1 -1
  258. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +1 -1
  259. package/front_end/panels/sources/BreakpointEditDialog.ts +1 -1
  260. package/front_end/panels/sources/CSSPlugin.ts +1 -1
  261. package/front_end/panels/sources/CallStackSidebarPane.ts +1 -1
  262. package/front_end/panels/sources/CoveragePlugin.ts +1 -1
  263. package/front_end/panels/sources/DebuggerPausedMessage.ts +1 -1
  264. package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
  265. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
  266. package/front_end/panels/sources/NavigatorView.ts +1 -1
  267. package/front_end/panels/sources/OpenFileQuickOpen.ts +1 -1
  268. package/front_end/panels/sources/PersistenceActions.ts +1 -1
  269. package/front_end/panels/sources/ProfilePlugin.ts +3 -2
  270. package/front_end/panels/sources/ResourceOriginPlugin.ts +1 -1
  271. package/front_end/panels/sources/ScopeChainSidebarPane.ts +1 -1
  272. package/front_end/panels/sources/SourcesNavigator.ts +1 -1
  273. package/front_end/panels/sources/SourcesPanel.ts +7 -7
  274. package/front_end/panels/sources/SourcesView.ts +1 -1
  275. package/front_end/panels/sources/TabbedEditorContainer.ts +4 -5
  276. package/front_end/panels/sources/ThreadsSidebarPane.ts +1 -1
  277. package/front_end/panels/sources/UISourceCodeFrame.ts +2 -2
  278. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +2 -2
  279. package/front_end/panels/sources/components/HeadersView.ts +2 -2
  280. package/front_end/panels/timeline/CLSLinkifier.ts +1 -1
  281. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +1 -1
  282. package/front_end/panels/timeline/CountersGraph.ts +1 -1
  283. package/front_end/panels/timeline/EventsTimelineTreeView.ts +1 -1
  284. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +1 -1
  285. package/front_end/panels/timeline/StatusDialog.ts +1 -1
  286. package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
  287. package/front_end/panels/timeline/TimelineController.ts +3 -3
  288. package/front_end/panels/timeline/TimelineDetailsView.ts +1 -1
  289. package/front_end/panels/timeline/TimelineEventOverview.ts +1 -1
  290. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -1
  291. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  292. package/front_end/panels/timeline/TimelineHistoryManager.ts +1 -1
  293. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  294. package/front_end/panels/timeline/TimelineMiniMap.ts +1 -1
  295. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
  296. package/front_end/panels/timeline/TimelinePanel.ts +1 -1
  297. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +1 -1
  298. package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
  299. package/front_end/panels/timeline/TimelineUIUtils.ts +4 -4
  300. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
  301. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
  302. package/front_end/panels/timeline/components/DetailsView.ts +1 -1
  303. package/front_end/panels/timeline/components/ExportTraceOptions.ts +1 -1
  304. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +1 -1
  305. package/front_end/panels/timeline/components/IgnoreListSetting.ts +2 -2
  306. package/front_end/panels/timeline/components/InteractionBreakdown.ts +1 -1
  307. package/front_end/panels/timeline/components/LiveMetricsView.ts +6 -6
  308. package/front_end/panels/timeline/components/MetricCard.ts +1 -1
  309. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
  310. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +3 -3
  311. package/front_end/panels/timeline/components/OriginMap.ts +2 -2
  312. package/front_end/panels/timeline/components/Sidebar.ts +1 -1
  313. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
  314. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +1 -1
  315. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
  316. package/front_end/panels/timeline/components/TimelineSummary.ts +1 -1
  317. package/front_end/panels/timeline/components/Utils.ts +1 -1
  318. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +5 -6
  319. package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
  320. package/front_end/panels/timeline/components/insights/EventRef.ts +1 -1
  321. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -2
  322. package/front_end/panels/timeline/components/insights/NodeLink.ts +1 -1
  323. package/front_end/panels/timeline/components/insights/Table.ts +1 -1
  324. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
  325. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  326. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  327. package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
  328. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +1 -1
  329. package/front_end/panels/utils/utils.ts +25 -5
  330. package/front_end/panels/webauthn/WebauthnPane.ts +1 -1
  331. package/front_end/third_party/chromium/README.chromium +1 -1
  332. package/front_end/third_party/lighthouse/README.chromium +2 -2
  333. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +474 -472
  334. package/front_end/tsconfig.compatibility.json +8 -0
  335. package/front_end/tsconfig.json +3 -1
  336. package/front_end/ui/components/adorners/Adorner.ts +1 -1
  337. package/front_end/ui/components/buttons/Button.ts +1 -1
  338. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  339. package/front_end/ui/components/cards/Card.ts +1 -1
  340. package/front_end/ui/components/chrome_link/ChromeLink.ts +2 -2
  341. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +1 -1
  342. package/front_end/ui/components/dialogs/ButtonDialog.ts +1 -1
  343. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  344. package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
  345. package/front_end/ui/components/diff_view/DiffView.ts +1 -1
  346. package/front_end/ui/components/docs/create_breadcrumbs.ts +1 -1
  347. package/front_end/ui/components/expandable_list/ExpandableList.ts +1 -2
  348. package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
  349. package/front_end/ui/components/icon_button/Icon.ts +1 -1
  350. package/front_end/ui/components/icon_button/IconButton.ts +1 -1
  351. package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
  352. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +1 -1
  353. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  354. package/front_end/ui/components/linkifier/LinkifierImpl.ts +2 -2
  355. package/front_end/ui/components/markdown_view/CodeBlock.ts +1 -1
  356. package/front_end/ui/components/markdown_view/MarkdownImage.ts +1 -1
  357. package/front_end/ui/components/markdown_view/MarkdownLink.ts +1 -2
  358. package/front_end/ui/components/markdown_view/MarkdownView.ts +3 -5
  359. package/front_end/ui/components/menus/Menu.ts +1 -1
  360. package/front_end/ui/components/menus/SelectMenu.ts +5 -5
  361. package/front_end/ui/components/node_text/NodeText.ts +1 -2
  362. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
  363. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
  364. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  365. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +1 -1
  366. package/front_end/ui/components/report_view/ReportView.ts +1 -1
  367. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -1
  368. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  369. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +1 -1
  370. package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
  371. package/front_end/ui/components/spinners/Spinner.ts +1 -1
  372. package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +1 -1
  373. package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
  374. package/front_end/ui/components/switch/SwitchImpl.ts +3 -3
  375. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +1 -1
  376. package/front_end/ui/components/text_editor/config.ts +1 -1
  377. package/front_end/ui/components/text_editor/javascript.ts +1 -1
  378. package/front_end/ui/components/text_prompt/TextPrompt.ts +1 -1
  379. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  380. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  381. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  382. package/front_end/ui/legacy/Dialog.ts +1 -1
  383. package/front_end/ui/legacy/DropTarget.ts +1 -1
  384. package/front_end/ui/legacy/FilterBar.ts +1 -1
  385. package/front_end/ui/legacy/Fragment.ts +1 -1
  386. package/front_end/ui/legacy/GlassPane.ts +1 -1
  387. package/front_end/ui/legacy/Infobar.ts +1 -1
  388. package/front_end/ui/legacy/InspectorView.ts +1 -1
  389. package/front_end/ui/legacy/ListControl.ts +1 -1
  390. package/front_end/ui/legacy/ListWidget.ts +2 -2
  391. package/front_end/ui/legacy/Panel.ts +1 -1
  392. package/front_end/ui/legacy/ReportView.ts +1 -1
  393. package/front_end/ui/legacy/RootView.ts +1 -1
  394. package/front_end/ui/legacy/SearchableView.ts +1 -1
  395. package/front_end/ui/legacy/SettingsUI.ts +1 -1
  396. package/front_end/ui/legacy/SoftContextMenu.ts +1 -1
  397. package/front_end/ui/legacy/SoftDropDown.ts +1 -1
  398. package/front_end/ui/legacy/SplitWidget.ts +1 -1
  399. package/front_end/ui/legacy/SuggestBox.ts +1 -1
  400. package/front_end/ui/legacy/TabbedPane.ts +1 -1
  401. package/front_end/ui/legacy/TextPrompt.ts +1 -1
  402. package/front_end/ui/legacy/Toolbar.ts +1 -1
  403. package/front_end/ui/legacy/Treeoutline.ts +2 -2
  404. package/front_end/ui/legacy/UIUtils.ts +2 -2
  405. package/front_end/ui/legacy/ViewManager.ts +1 -1
  406. package/front_end/ui/legacy/Widget.ts +1 -1
  407. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +1 -1
  408. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
  409. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +2 -2
  410. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
  411. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +1 -1
  412. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +1 -1
  413. package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
  414. package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -1
  415. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +1 -1
  416. package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +1 -1
  417. package/front_end/ui/legacy/components/inline_editor/CSSAngleSwatch.ts +1 -2
  418. package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -1
  419. package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +1 -1
  420. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +1 -1
  421. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +1 -1
  422. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
  423. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +1 -1
  424. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +1 -1
  425. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  426. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  427. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +1 -1
  428. package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +1 -1
  429. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +1 -1
  430. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
  431. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +1 -1
  432. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +1 -1
  433. package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -1
  434. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +1 -1
  435. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +1 -1
  436. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
  437. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +2 -2
  438. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -1
  439. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  440. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -1
  441. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +2 -2
  442. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -1
  443. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
  444. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  445. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
  446. package/front_end/ui/legacy/components/utils/Linkifier.ts +1 -1
  447. package/front_end/ui/legacy/theme_support/ThemeSupport.ts +1 -1
  448. package/front_end/ui/lit/i18n-template.ts +1 -1
  449. package/front_end/ui/visual_logging/Debugging.ts +1 -1
  450. package/front_end/ui/visual_logging/KnownContextValues.ts +0 -2
  451. package/mcp/mcp.ts +7 -2
  452. package/package.json +1 -1
@@ -2,1768 +2,1113 @@
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
- (function(window) {
5
+ // We want to keep this a IIFE as we want to keep the global scope clean
6
+ // We inject this script via a Classic script
7
+ // https://crsrc.org/c/third_party/blink/renderer/controller/dev_tools_frontend_impl.cc;l=107
8
+ (window => {
9
+ /**
10
+ * @returns {number|null}
11
+ */
12
+ function getRemoteMajorVersion() {
13
+ try {
14
+ const remoteVersion = new URLSearchParams(window.location.search).get('remoteVersion');
15
+ if (!remoteVersion) {
16
+ return null;
17
+ }
18
+ return parseInt(remoteVersion.split('.')[0], 10);
19
+ } catch {
20
+ return null;
21
+ }
22
+ }
23
+ // eslint-disable-next-line no-unused-vars
24
+ const majorVersion = getRemoteMajorVersion();
6
25
 
7
- // DevToolsAPI ----------------------------------------------------------------
26
+ // DevToolsAPI ----------------------------------------------------------------
27
+ /**
28
+ * @typedef {{runtimeAllowedHosts: string[], runtimeBlockedHosts: string[]}} ExtensionHostsPolicy
29
+ * @typedef {{startPage: string, name: string, exposeExperimentalAPIs: boolean, hostsPolicy?: ExtensionHostsPolicy}} ExtensionDescriptor
30
+ */
31
+ class DevToolsAPIImpl {
32
+ /**
33
+ * @type {string[]}
34
+ */
35
+ _originsForbiddenForExtensions = [];
8
36
 
9
- /**
10
- * @typedef {{runtimeAllowedHosts: !Array<string>, runtimeBlockedHosts: !Array<string>}} ExtensionHostsPolicy
11
- */
12
- /**
13
- * @typedef {{startPage: string, name: string, exposeExperimentalAPIs: boolean, hostsPolicy?: ExtensionHostsPolicy}} ExtensionDescriptor
14
- */
15
- const DevToolsAPIImpl = class {
16
- constructor() {
37
+ /**
38
+ * @type {ExtensionDescriptor[]}
39
+ */
40
+ _pendingExtensionDescriptors = [];
17
41
  /**
18
42
  * @type {number}
19
43
  */
20
- this._lastCallId = 0;
21
-
44
+ _lastCallId = 0;
22
45
  /**
23
- * @type {!Object.<number, function(?Object)>}
46
+ * @type {Record<number, (arg1: object) => void>}
24
47
  */
25
- this._callbacks = {};
48
+ _callbacks = {};
26
49
 
27
50
  /**
28
- * @type {!Array.<!ExtensionDescriptor>}
51
+ * @type {((param:ExtensionDescriptor)=> void) | null}
29
52
  */
30
- this._pendingExtensionDescriptors = [];
53
+ _addExtensionCallback = null;
31
54
 
32
55
  /**
33
- * @type {?function(!ExtensionDescriptor): void}
56
+ * @type {ReturnType<typeof Promise.withResolvers<string>>}
34
57
  */
35
- this._addExtensionCallback = null;
58
+ _initialTargetIdPromiseWithResolver = Promise.withResolvers();
36
59
 
37
60
  /**
38
- * @type {!Array<string>}
61
+ * @param id
62
+ * @param arg
39
63
  */
40
- this._originsForbiddenForExtensions = [];
64
+ embedderMessageAck(id, arg) {
65
+ const callback = this._callbacks[id];
66
+ delete this._callbacks[id];
67
+ if (callback) {
68
+ callback(arg);
69
+ }
70
+ }
41
71
 
42
72
  /**
43
- * @type {!Promise<string>}
73
+ * @param method
74
+ * @param args
75
+ * @param callback
44
76
  */
45
- this._initialTargetIdPromise = new Promise(resolve => {
46
- this._setInitialTargetId = resolve;
47
- });
48
- }
49
-
50
- /**
51
- * @param id
52
- * @param arg
53
- */
54
- embedderMessageAck(id, arg) {
55
- const callback = this._callbacks[id];
56
- delete this._callbacks[id];
57
- if (callback) {
58
- callback(arg);
77
+ sendMessageToEmbedder(method, args, callback) {
78
+ const callId = ++this._lastCallId;
79
+ if (callback) {
80
+ this._callbacks[callId] = callback;
81
+ }
82
+ const message = {id: callId, method};
83
+ if (args.length) {
84
+ message.params = args;
85
+ }
86
+ DevToolsHost.sendMessageToEmbedder(JSON.stringify(message));
59
87
  }
60
- }
61
88
 
62
- /**
63
- * @param method
64
- * @param args
65
- * @param callback
66
- */
67
- sendMessageToEmbedder(method, args, callback) {
68
- const callId = ++this._lastCallId;
69
- if (callback) {
70
- this._callbacks[callId] = callback;
71
- }
72
- const message = {id: callId, method};
73
- if (args.length) {
74
- message.params = args;
89
+ /**
90
+ * @param method
91
+ * @param args
92
+ */
93
+ _dispatchOnInspectorFrontendAPI(method, args) {
94
+ const inspectorFrontendAPI = window.InspectorFrontendAPI;
95
+ if (!inspectorFrontendAPI) {
96
+ // This is the case for device_mode_emulation_frame entrypoint. It's created via `window.open` from
97
+ // the DevTools window, so it shares a context with DevTools but has a separate DevToolsUIBinding and `window` object.
98
+ // We can safely ignore the events since they also arrive on the DevTools `window` object.
99
+ return;
100
+ }
101
+ inspectorFrontendAPI[method].apply(inspectorFrontendAPI, args);
75
102
  }
76
- DevToolsHost.sendMessageToEmbedder(JSON.stringify(message));
77
- }
78
-
79
- /**
80
- * @param method
81
- * @param args
82
- */
83
- _dispatchOnInspectorFrontendAPI(method, args) {
84
- const inspectorFrontendAPI = /** @type {!Object<string, function()>} */ (window['InspectorFrontendAPI']);
85
- if (!inspectorFrontendAPI) {
86
- // This is the case for device_mode_emulation_frame entrypoint. It's created via `window.open` from
87
- // the DevTools window, so it shares a context with DevTools but has a separate DevToolsUIBinding and `window` object.
88
- // We can safely ignore the events since they also arrive on the DevTools `window` object.
89
- return;
90
- }
91
- inspectorFrontendAPI[method].apply(inspectorFrontendAPI, args);
92
- }
93
103
 
94
- // API methods below this line --------------------------------------------
104
+ // API methods below this line --------------------------------------------
95
105
 
96
- /**
97
- * @param extensions
98
- */
99
- addExtensions(extensions) {
100
- // Support for legacy front-ends (<M41).
101
- if (window['WebInspector'] && window['WebInspector']['addExtensions']) {
102
- window['WebInspector']['addExtensions'](extensions);
106
+ /**
107
+ * @param extensions {ExtensionDescriptor[]}
108
+ */
109
+ addExtensions(extensions) {
103
110
  // The addExtensions command is sent as the onload event happens for
104
111
  // DevTools front-end. We should buffer this command until the frontend
105
112
  // is ready for it.
106
- } else if (this._addExtensionCallback) {
107
- extensions.forEach(this._addExtensionCallback);
108
- } else {
109
- this._pendingExtensionDescriptors.push(...extensions);
113
+ if (this._addExtensionCallback) {
114
+ extensions.forEach(this._addExtensionCallback);
115
+ } else {
116
+ this._pendingExtensionDescriptors.push(...extensions);
117
+ }
110
118
  }
111
- }
112
119
 
113
- /**
114
- * @param forbiddenOrigins
115
- */
116
- setOriginsForbiddenForExtensions(forbiddenOrigins) {
117
- this._originsForbiddenForExtensions = forbiddenOrigins;
118
- }
120
+ /**
121
+ * @param forbiddenOrigins {string[]}
122
+ */
123
+ setOriginsForbiddenForExtensions(forbiddenOrigins) {
124
+ this._originsForbiddenForExtensions = forbiddenOrigins;
125
+ }
119
126
 
120
- /**
121
- * @returns
122
- */
123
- getOriginsForbiddenForExtensions() {
124
- return this._originsForbiddenForExtensions;
125
- }
127
+ /**
128
+ * @returns {string[]}
129
+ */
130
+ getOriginsForbiddenForExtensions() {
131
+ return this._originsForbiddenForExtensions;
132
+ }
126
133
 
127
- /**
128
- * @param url
129
- */
130
- appendedToURL(url) {
131
- this._dispatchOnInspectorFrontendAPI('appendedToURL', [url]);
132
- }
134
+ /**
135
+ * @param url {string}
136
+ */
137
+ appendedToURL(url) {
138
+ this._dispatchOnInspectorFrontendAPI('appendedToURL', [url]);
139
+ }
133
140
 
134
- /**
135
- * @param url
136
- */
137
- canceledSaveURL(url) {
138
- this._dispatchOnInspectorFrontendAPI('canceledSaveURL', [url]);
139
- }
141
+ /**
142
+ * @param url {string}
143
+ */
144
+ canceledSaveURL(url) {
145
+ this._dispatchOnInspectorFrontendAPI('canceledSaveURL', [url]);
146
+ }
140
147
 
141
- contextMenuCleared() {
142
- this._dispatchOnInspectorFrontendAPI('contextMenuCleared', []);
143
- }
148
+ contextMenuCleared() {
149
+ this._dispatchOnInspectorFrontendAPI('contextMenuCleared', []);
150
+ }
144
151
 
145
- /**
146
- * @param id
147
- */
148
- contextMenuItemSelected(id) {
149
- this._dispatchOnInspectorFrontendAPI('contextMenuItemSelected', [id]);
150
- }
152
+ /**
153
+ * @param id
154
+ */
155
+ contextMenuItemSelected(id) {
156
+ this._dispatchOnInspectorFrontendAPI('contextMenuItemSelected', [id]);
157
+ }
151
158
 
152
- /**
153
- * @param count
154
- */
155
- deviceCountUpdated(count) {
156
- this._dispatchOnInspectorFrontendAPI('deviceCountUpdated', [count]);
157
- }
159
+ /**
160
+ * @param count
161
+ */
162
+ deviceCountUpdated(count) {
163
+ this._dispatchOnInspectorFrontendAPI('deviceCountUpdated', [count]);
164
+ }
158
165
 
159
- /**
160
- * @param config
161
- */
162
- devicesDiscoveryConfigChanged(config) {
163
- this._dispatchOnInspectorFrontendAPI('devicesDiscoveryConfigChanged', [config]);
164
- }
166
+ /**
167
+ * @param config
168
+ */
169
+ devicesDiscoveryConfigChanged(config) {
170
+ this._dispatchOnInspectorFrontendAPI('devicesDiscoveryConfigChanged', [config]);
171
+ }
165
172
 
166
- /**
167
- * @param status
168
- */
169
- devicesPortForwardingStatusChanged(status) {
170
- this._dispatchOnInspectorFrontendAPI('devicesPortForwardingStatusChanged', [status]);
171
- }
173
+ /**
174
+ * @param status
175
+ */
176
+ devicesPortForwardingStatusChanged(status) {
177
+ this._dispatchOnInspectorFrontendAPI('devicesPortForwardingStatusChanged', [status]);
178
+ }
172
179
 
173
- /**
174
- * @param devices
175
- */
176
- devicesUpdated(devices) {
177
- this._dispatchOnInspectorFrontendAPI('devicesUpdated', [devices]);
178
- }
180
+ /**
181
+ * @param devices
182
+ */
183
+ devicesUpdated(devices) {
184
+ this._dispatchOnInspectorFrontendAPI('devicesUpdated', [devices]);
185
+ }
179
186
 
180
- /**
181
- * @param message
182
- */
183
- dispatchMessage(message) {
184
- this._dispatchOnInspectorFrontendAPI('dispatchMessage', [message]);
185
- }
187
+ /**
188
+ * @param message
189
+ */
190
+ dispatchMessage(message) {
191
+ this._dispatchOnInspectorFrontendAPI('dispatchMessage', [message]);
192
+ }
186
193
 
187
- /**
188
- * @param messageChunk
189
- * @param messageSize
190
- */
191
- dispatchMessageChunk(messageChunk, messageSize) {
192
- this._dispatchOnInspectorFrontendAPI('dispatchMessageChunk', [messageChunk, messageSize]);
193
- }
194
+ /**
195
+ * @param messageChunk
196
+ * @param messageSize
197
+ */
198
+ dispatchMessageChunk(messageChunk, messageSize) {
199
+ this._dispatchOnInspectorFrontendAPI('dispatchMessageChunk', [messageChunk, messageSize]);
200
+ }
194
201
 
195
- enterInspectElementMode() {
196
- this._dispatchOnInspectorFrontendAPI('enterInspectElementMode', []);
197
- }
202
+ enterInspectElementMode() {
203
+ this._dispatchOnInspectorFrontendAPI('enterInspectElementMode', []);
204
+ }
198
205
 
199
- /**
200
- * @param color
201
- */
202
- eyeDropperPickedColor(color) {
203
- this._dispatchOnInspectorFrontendAPI('eyeDropperPickedColor', [color]);
204
- }
206
+ /**
207
+ * @param color
208
+ */
209
+ eyeDropperPickedColor(color) {
210
+ this._dispatchOnInspectorFrontendAPI('eyeDropperPickedColor', [color]);
211
+ }
205
212
 
206
- /**
207
- * @param fileSystems
208
- */
209
- fileSystemsLoaded(fileSystems) {
210
- this._dispatchOnInspectorFrontendAPI('fileSystemsLoaded', [fileSystems]);
211
- }
213
+ /**
214
+ * @param fileSystems
215
+ */
216
+ fileSystemsLoaded(fileSystems) {
217
+ this._dispatchOnInspectorFrontendAPI('fileSystemsLoaded', [fileSystems]);
218
+ }
212
219
 
213
- /**
214
- * @param fileSystemPath
215
- */
216
- fileSystemRemoved(fileSystemPath) {
217
- this._dispatchOnInspectorFrontendAPI('fileSystemRemoved', [fileSystemPath]);
218
- }
220
+ /**
221
+ * @param fileSystemPath
222
+ */
223
+ fileSystemRemoved(fileSystemPath) {
224
+ this._dispatchOnInspectorFrontendAPI('fileSystemRemoved', [fileSystemPath]);
225
+ }
219
226
 
220
- /**
221
- * @param error
222
- * @param fileSystem
223
- */
224
- fileSystemAdded(error, fileSystem) {
225
- this._dispatchOnInspectorFrontendAPI('fileSystemAdded', [error, fileSystem]);
226
- }
227
+ /**
228
+ * @param error
229
+ * @param fileSystem
230
+ */
231
+ fileSystemAdded(error, fileSystem) {
232
+ this._dispatchOnInspectorFrontendAPI('fileSystemAdded', [error, fileSystem]);
233
+ }
227
234
 
228
- /**
229
- * @param changedPaths
230
- * @param addedPaths
231
- * @param removedPaths
232
- */
233
- fileSystemFilesChangedAddedRemoved(changedPaths, addedPaths, removedPaths) {
234
- // Support for legacy front-ends (<M58)
235
- if (window['InspectorFrontendAPI'] && window['InspectorFrontendAPI']['fileSystemFilesChanged']) {
236
- this._dispatchOnInspectorFrontendAPI(
237
- 'fileSystemFilesChanged', [changedPaths.concat(addedPaths).concat(removedPaths)]);
238
- } else {
235
+ /**
236
+ * @param changedPaths
237
+ * @param addedPaths
238
+ * @param removedPaths
239
+ */
240
+ fileSystemFilesChangedAddedRemoved(changedPaths, addedPaths, removedPaths) {
239
241
  this._dispatchOnInspectorFrontendAPI(
240
242
  'fileSystemFilesChangedAddedRemoved', [changedPaths, addedPaths, removedPaths]);
241
243
  }
242
- }
243
244
 
244
- /**
245
- * @param requestId
246
- * @param fileSystemPath
247
- * @param totalWork
248
- */
249
- indexingTotalWorkCalculated(requestId, fileSystemPath, totalWork) {
250
- this._dispatchOnInspectorFrontendAPI('indexingTotalWorkCalculated', [requestId, fileSystemPath, totalWork]);
251
- }
245
+ /**
246
+ * @param requestId
247
+ * @param fileSystemPath
248
+ * @param totalWork
249
+ */
250
+ indexingTotalWorkCalculated(requestId, fileSystemPath, totalWork) {
251
+ this._dispatchOnInspectorFrontendAPI('indexingTotalWorkCalculated', [requestId, fileSystemPath, totalWork]);
252
+ }
252
253
 
253
- /**
254
- * @param requestId
255
- * @param fileSystemPath
256
- * @param worked
257
- */
258
- indexingWorked(requestId, fileSystemPath, worked) {
259
- this._dispatchOnInspectorFrontendAPI('indexingWorked', [requestId, fileSystemPath, worked]);
260
- }
254
+ /**
255
+ * @param requestId
256
+ * @param fileSystemPath
257
+ * @param worked
258
+ */
259
+ indexingWorked(requestId, fileSystemPath, worked) {
260
+ this._dispatchOnInspectorFrontendAPI('indexingWorked', [requestId, fileSystemPath, worked]);
261
+ }
261
262
 
262
- /**
263
- * @param requestId
264
- * @param fileSystemPath
265
- */
266
- indexingDone(requestId, fileSystemPath) {
267
- this._dispatchOnInspectorFrontendAPI('indexingDone', [requestId, fileSystemPath]);
268
- }
263
+ /**
264
+ * @param requestId
265
+ * @param fileSystemPath
266
+ */
267
+ indexingDone(requestId, fileSystemPath) {
268
+ this._dispatchOnInspectorFrontendAPI('indexingDone', [requestId, fileSystemPath]);
269
+ }
269
270
 
270
- /**
271
- * @param event
272
- */
273
- keyEventUnhandled(event) {
274
- event.keyIdentifier = keyCodeToKeyIdentifier(event.keyCode);
275
- this._dispatchOnInspectorFrontendAPI('keyEventUnhandled', [event]);
276
- }
271
+ /**
272
+ * @param event
273
+ */
274
+ keyEventUnhandled(event) {
275
+ event.keyIdentifier = keyCodeToKeyIdentifier(event.keyCode);
276
+ this._dispatchOnInspectorFrontendAPI('keyEventUnhandled', [event]);
277
+ }
277
278
 
278
- /**
279
- * @param callback
280
- */
281
- setAddExtensionCallback(callback) {
282
- this._addExtensionCallback = callback;
283
- if (this._pendingExtensionDescriptors.length) {
284
- this._pendingExtensionDescriptors.forEach(this._addExtensionCallback);
285
- this._pendingExtensionDescriptors = [];
279
+ /**
280
+ * @param callback {(param: object) => unknown}
281
+ */
282
+ setAddExtensionCallback(callback) {
283
+ this._addExtensionCallback = callback;
284
+ if (this._pendingExtensionDescriptors.length) {
285
+ this._pendingExtensionDescriptors.forEach(this._addExtensionCallback);
286
+ this._pendingExtensionDescriptors = [];
287
+ }
286
288
  }
287
- }
288
289
 
289
- /**
290
- * @param hard
291
- */
292
- reloadInspectedPage(hard) {
293
- this._dispatchOnInspectorFrontendAPI('reloadInspectedPage', [hard]);
294
- }
290
+ /**
291
+ * @param hard {boolean}
292
+ */
293
+ reloadInspectedPage(hard) {
294
+ this._dispatchOnInspectorFrontendAPI('reloadInspectedPage', [hard]);
295
+ }
295
296
 
296
- /**
297
- * @param url
298
- * @param lineNumber
299
- * @param columnNumber
300
- */
301
- revealSourceLine(url, lineNumber, columnNumber) {
302
- this._dispatchOnInspectorFrontendAPI('revealSourceLine', [url, lineNumber, columnNumber]);
303
- }
297
+ /**
298
+ * @param url
299
+ * @param lineNumber
300
+ * @param columnNumber
301
+ */
302
+ revealSourceLine(url, lineNumber, columnNumber) {
303
+ this._dispatchOnInspectorFrontendAPI('revealSourceLine', [url, lineNumber, columnNumber]);
304
+ }
304
305
 
305
- /**
306
- * @param url
307
- * @param fileSystemPath
308
- */
309
- savedURL(url, fileSystemPath) {
310
- this._dispatchOnInspectorFrontendAPI('savedURL', [url, fileSystemPath]);
311
- }
306
+ /**
307
+ * @param url
308
+ * @param fileSystemPath
309
+ */
310
+ savedURL(url, fileSystemPath) {
311
+ this._dispatchOnInspectorFrontendAPI('savedURL', [url, fileSystemPath]);
312
+ }
312
313
 
313
- /**
314
- * @param requestId
315
- * @param fileSystemPath
316
- * @param files
317
- */
318
- searchCompleted(requestId, fileSystemPath, files) {
319
- this._dispatchOnInspectorFrontendAPI('searchCompleted', [requestId, fileSystemPath, files]);
320
- }
314
+ /**
315
+ * @param requestId
316
+ * @param fileSystemPath
317
+ * @param files
318
+ */
319
+ searchCompleted(requestId, fileSystemPath, files) {
320
+ this._dispatchOnInspectorFrontendAPI('searchCompleted', [requestId, fileSystemPath, files]);
321
+ }
321
322
 
322
- colorThemeChanged() {
323
- this._dispatchOnInspectorFrontendAPI('colorThemeChanged', []);
324
- }
323
+ colorThemeChanged() {
324
+ this._dispatchOnInspectorFrontendAPI('colorThemeChanged', []);
325
+ }
325
326
 
326
- /**
327
- * @param tabId
328
- */
329
- setInspectedTabId(tabId) {
330
- this._inspectedTabIdValue = tabId;
327
+ /**
328
+ * @param tabId {string}
329
+ */
330
+ setInspectedTabId(tabId) {
331
+ this._inspectedTabIdValue = tabId;
331
332
 
332
- // Support for legacy front-ends (<M41).
333
- if (window['WebInspector'] && window['WebInspector']['setInspectedTabId']) {
334
- window['WebInspector']['setInspectedTabId'](tabId);
335
- } else {
336
333
  this._dispatchOnInspectorFrontendAPI('setInspectedTabId', [tabId]);
337
334
  }
338
- }
339
335
 
340
- /**
341
- * @param targetId
342
- */
343
- setInitialTargetId(targetId) {
344
- this._setInitialTargetId(targetId);
345
- }
336
+ /**
337
+ * @param targetId {string}
338
+ */
339
+ setInitialTargetId(targetId) {
340
+ this._initialTargetIdPromiseWithResolver.resolve(targetId);
341
+ }
346
342
 
347
- /**
348
- * @returns
349
- */
350
- getInspectedTabId() {
351
- return this._inspectedTabIdValue;
352
- }
343
+ /**
344
+ * @returns
345
+ */
346
+ getInspectedTabId() {
347
+ return this._inspectedTabIdValue;
348
+ }
353
349
 
354
- /**
355
- * @param useSoftMenu
356
- */
357
- setUseSoftMenu(useSoftMenu) {
358
- this._dispatchOnInspectorFrontendAPI('setUseSoftMenu', [useSoftMenu]);
359
- }
350
+ /**
351
+ * @param useSoftMenu {boolean}
352
+ */
353
+ setUseSoftMenu(useSoftMenu) {
354
+ this._dispatchOnInspectorFrontendAPI('setUseSoftMenu', [useSoftMenu]);
355
+ }
360
356
 
361
- /**
362
- * @param panelName
363
- */
364
- showPanel(panelName) {
365
- this._dispatchOnInspectorFrontendAPI('showPanel', [panelName]);
366
- }
357
+ /**
358
+ * @param panelName {string}
359
+ */
360
+ showPanel(panelName) {
361
+ this._dispatchOnInspectorFrontendAPI('showPanel', [panelName]);
362
+ }
367
363
 
368
- /**
369
- * @param id
370
- * @param chunk
371
- * @param encoded
372
- */
373
- streamWrite(id, chunk, encoded) {
374
- this._dispatchOnInspectorFrontendAPI('streamWrite', [id, encoded ? this._decodeBase64(chunk) : chunk]);
375
- }
364
+ /**
365
+ * @param id {number}
366
+ * @param chunk {string}
367
+ * @param encoded {boolean}
368
+ */
369
+ streamWrite(id, chunk, encoded) {
370
+ this._dispatchOnInspectorFrontendAPI('streamWrite', [id, encoded ? this._decodeBase64(chunk) : chunk]);
371
+ }
376
372
 
377
- /**
378
- * @param chunk
379
- * @returns
380
- */
381
- _decodeBase64(chunk) {
382
- const request = new XMLHttpRequest();
383
- request.open('GET', 'data:text/plain;base64,' + chunk, false);
384
- request.send(null);
385
- if (request.status === 200) {
386
- return request.responseText;
387
- }
388
- console.error('Error while decoding chunk in streamWrite');
389
- return '';
390
- }
391
- };
392
-
393
- const DevToolsAPI = new DevToolsAPIImpl();
394
- window.DevToolsAPI = DevToolsAPI;
395
-
396
- // InspectorFrontendHostImpl --------------------------------------------------
397
-
398
- /**
399
- * Enum for recordPerformanceHistogram
400
- * Warning: There is another definition of this enum in the DevTools code
401
- * base, keep them in sync:
402
- * front_end/core/host/InspectorFrontendHostAPI.ts
403
- * @readonly
404
- * @enum {string}
405
- */
406
- const EnumeratedHistogram = {
407
- // LINT.IfChange(EnumeratedHistogram)
408
- ActionTaken: 'DevTools.ActionTaken',
409
- DeveloperResourceLoaded: 'DevTools.DeveloperResourceLoaded',
410
- DeveloperResourceScheme: 'DevTools.DeveloperResourceScheme',
411
- ExperimentDisabled: 'DevTools.ExperimentDisabled',
412
- ExperimentDisabledAtLaunch: 'DevTools.ExperimentDisabledAtLaunch',
413
- ExperimentEnabled: 'DevTools.ExperimentEnabled',
414
- ExperimentEnabledAtLaunch: 'DevTools.ExperimentEnabledAtLaunch',
415
- IssueCreated: 'DevTools.IssueCreated',
416
- IssuesPanelIssueExpanded: 'DevTools.IssuesPanelIssueExpanded',
417
- IssuesPanelOpenedFrom: 'DevTools.IssuesPanelOpenedFrom',
418
- IssuesPanelResourceOpened: 'DevTools.IssuesPanelResourceOpened',
419
- KeybindSetSettingChanged: 'DevTools.KeybindSetSettingChanged',
420
- KeyboardShortcutFired: 'DevTools.KeyboardShortcutFired',
421
- Language: 'DevTools.Language',
422
- LighthouseModeRun: 'DevTools.LighthouseModeRun',
423
- LighthouseCategoryUsed: 'DevTools.LighthouseCategoryUsed',
424
- PanelShown: 'DevTools.PanelShown',
425
- RecordingAssertion: 'DevTools.RecordingAssertion',
426
- RecordingCodeToggled: 'DevTools.RecordingCodeToggled',
427
- RecordingCopiedToClipboard: 'DevTools.RecordingCopiedToClipboard',
428
- RecordingEdited: 'DevTools.RecordingEdited',
429
- RecordingExported: 'DevTools.RecordingExported',
430
- RecordingReplayFinished: 'DevTools.RecordingReplayFinished',
431
- RecordingReplaySpeed: 'DevTools.RecordingReplaySpeed',
432
- RecordingReplayStarted: 'DevTools.RecordingReplayStarted',
433
- RecordingToggled: 'DevTools.RecordingToggled',
434
- SourcesPanelFileDebugged: 'DevTools.SourcesPanelFileDebugged',
435
- SourcesPanelFileOpened: 'DevTools.SourcesPanelFileOpened',
436
- NetworkPanelResponsePreviewOpened: 'DevTools.NetworkPanelResponsePreviewOpened',
437
- TimelineNavigationSettingState: 'DevTools.TimelineNavigationSettingState',
438
- SyncSetting: 'DevTools.SyncSetting',
439
- SwatchActivated: 'DevTools.SwatchActivated',
440
- AnimationPlaybackRateChanged: 'DevTools.AnimationPlaybackRateChanged',
441
- // LINT.ThenChange(/front_end/core/host/InspectorFrontendHostAPI.ts:EnumeratedHistogram)
442
- };
443
-
444
- /**
445
- * @implements {InspectorFrontendHostAPI}
446
- */
447
- const InspectorFrontendHostImpl = class {
448
- /**
449
- * @returns
450
- */
451
- getSelectionBackgroundColor() {
452
- return '#6e86ff';
373
+ /**
374
+ * @param chunk {string}
375
+ * @returns {string}
376
+ */
377
+ _decodeBase64(chunk) {
378
+ const request = new XMLHttpRequest();
379
+ request.open('GET', 'data:text/plain;base64,' + chunk, false);
380
+ request.send(null);
381
+ if (request.status === 200) {
382
+ return request.responseText;
383
+ }
384
+ console.error('Error while decoding chunk in streamWrite');
385
+ return '';
386
+ }
453
387
  }
454
388
 
455
- /**
456
- * @returns
457
- */
458
- getSelectionForegroundColor() {
459
- return '#ffffff';
460
- }
389
+ const DevToolsAPI = new DevToolsAPIImpl();
390
+ window.DevToolsAPI = DevToolsAPI;
391
+
392
+ // InspectorFrontendHostImpl --------------------------------------------------
393
+
394
+ /**
395
+ * Enum for recordPerformanceHistogram
396
+ * Warning: There is another definition of this enum in the DevTools code
397
+ * base, keep them in sync:
398
+ * front_end/core/host/InspectorFrontendHostAPI.ts
399
+ * @readonly
400
+ * @enum {string}
401
+ */
402
+ const EnumeratedHistogram = {
403
+ // LINT.IfChange(EnumeratedHistogram)
404
+ ActionTaken: 'DevTools.ActionTaken',
405
+ DeveloperResourceLoaded: 'DevTools.DeveloperResourceLoaded',
406
+ DeveloperResourceScheme: 'DevTools.DeveloperResourceScheme',
407
+ ExperimentDisabled: 'DevTools.ExperimentDisabled',
408
+ ExperimentDisabledAtLaunch: 'DevTools.ExperimentDisabledAtLaunch',
409
+ ExperimentEnabled: 'DevTools.ExperimentEnabled',
410
+ ExperimentEnabledAtLaunch: 'DevTools.ExperimentEnabledAtLaunch',
411
+ IssueCreated: 'DevTools.IssueCreated',
412
+ IssuesPanelIssueExpanded: 'DevTools.IssuesPanelIssueExpanded',
413
+ IssuesPanelOpenedFrom: 'DevTools.IssuesPanelOpenedFrom',
414
+ IssuesPanelResourceOpened: 'DevTools.IssuesPanelResourceOpened',
415
+ KeybindSetSettingChanged: 'DevTools.KeybindSetSettingChanged',
416
+ KeyboardShortcutFired: 'DevTools.KeyboardShortcutFired',
417
+ Language: 'DevTools.Language',
418
+ LighthouseModeRun: 'DevTools.LighthouseModeRun',
419
+ LighthouseCategoryUsed: 'DevTools.LighthouseCategoryUsed',
420
+ PanelShown: 'DevTools.PanelShown',
421
+ RecordingAssertion: 'DevTools.RecordingAssertion',
422
+ RecordingCodeToggled: 'DevTools.RecordingCodeToggled',
423
+ RecordingCopiedToClipboard: 'DevTools.RecordingCopiedToClipboard',
424
+ RecordingEdited: 'DevTools.RecordingEdited',
425
+ RecordingExported: 'DevTools.RecordingExported',
426
+ RecordingReplayFinished: 'DevTools.RecordingReplayFinished',
427
+ RecordingReplaySpeed: 'DevTools.RecordingReplaySpeed',
428
+ RecordingReplayStarted: 'DevTools.RecordingReplayStarted',
429
+ RecordingToggled: 'DevTools.RecordingToggled',
430
+ SourcesPanelFileDebugged: 'DevTools.SourcesPanelFileDebugged',
431
+ SourcesPanelFileOpened: 'DevTools.SourcesPanelFileOpened',
432
+ NetworkPanelResponsePreviewOpened: 'DevTools.NetworkPanelResponsePreviewOpened',
433
+ TimelineNavigationSettingState: 'DevTools.TimelineNavigationSettingState',
434
+ SyncSetting: 'DevTools.SyncSetting',
435
+ SwatchActivated: 'DevTools.SwatchActivated',
436
+ AnimationPlaybackRateChanged: 'DevTools.AnimationPlaybackRateChanged'
437
+ // LINT.ThenChange(/front_end/core/host/InspectorFrontendHostAPI.ts:EnumeratedHistogram)
438
+ };
461
439
 
462
440
  /**
463
- * @returns
441
+ * @typedef {import('./core/host/InspectorFrontendHostAPI.js').InspectorFrontendHostAPI} InspectorFrontendHostAPI
442
+ * @implements {InspectorFrontendHostAPI}
464
443
  */
465
- getInactiveSelectionBackgroundColor() {
466
- return '#c9c8c8';
467
- }
444
+ class InspectorFrontendHostImpl {
445
+ /**
446
+ * Update inside `front_end/core/host/InspectorFrontendHost.ts:627`
447
+ * @type {any}
448
+ */
449
+ events;
468
450
 
469
- /**
470
- * @returns
471
- */
472
- getInactiveSelectionForegroundColor() {
473
- return '#323232';
474
- }
475
-
476
- /**
477
- * @override
478
- * @returns
479
- */
480
- platform() {
481
- return DevToolsHost.platform();
482
- }
483
-
484
- /**
485
- * @override
486
- */
487
- loadCompleted() {
488
- DevToolsAPI.sendMessageToEmbedder('loadCompleted', [], null);
489
- // Support for legacy (<57) frontends.
490
- if (window.Runtime && window.Runtime.queryParam) {
491
- const panelToOpen = window.Runtime.queryParam('panel');
492
- if (panelToOpen) {
493
- window.DevToolsAPI.showPanel(panelToOpen);
494
- }
451
+ /**
452
+ * @returns
453
+ */
454
+ platform() {
455
+ return DevToolsHost.platform();
495
456
  }
496
- }
497
-
498
- /**
499
- * @override
500
- */
501
- bringToFront() {
502
- DevToolsAPI.sendMessageToEmbedder('bringToFront', [], null);
503
- }
504
-
505
- /**
506
- * @override
507
- */
508
- closeWindow() {
509
- DevToolsAPI.sendMessageToEmbedder('closeWindow', [], null);
510
- }
511
-
512
- /**
513
- * @override
514
- * @param isDocked
515
- * @param callback
516
- */
517
- setIsDocked(isDocked, callback) {
518
- DevToolsAPI.sendMessageToEmbedder('setIsDocked', [isDocked], callback);
519
- }
520
-
521
- /**
522
- * @override
523
- * @param trigger
524
- * @param callback
525
- */
526
- showSurvey(trigger, callback) {
527
- DevToolsAPI.sendMessageToEmbedder('showSurvey', [trigger], /** @type {function(?Object)} */ (callback));
528
- }
529
-
530
- /**
531
- * @override
532
- * @param trigger
533
- * @param callback
534
- */
535
- canShowSurvey(trigger, callback) {
536
- DevToolsAPI.sendMessageToEmbedder('canShowSurvey', [trigger], /** @type {function(?Object)} */ (callback));
537
- }
538
-
539
- /**
540
- * Requests inspected page to be placed atop of the inspector frontend with specified bounds.
541
- * @override
542
- * @param bounds
543
- */
544
- setInspectedPageBounds(bounds) {
545
- DevToolsAPI.sendMessageToEmbedder('setInspectedPageBounds', [bounds], null);
546
- }
547
-
548
- /**
549
- * @override
550
- */
551
- inspectElementCompleted() {
552
- DevToolsAPI.sendMessageToEmbedder('inspectElementCompleted', [], null);
553
- }
554
-
555
- /**
556
- * @override
557
- * @param url
558
- * @param headers
559
- * @param streamId
560
- * @param callback
561
- */
562
- loadNetworkResource(url, headers, streamId, callback) {
563
- DevToolsAPI.sendMessageToEmbedder(
564
- 'loadNetworkResource', [url, headers, streamId], /** @type {function(?Object)} */ (callback));
565
- }
566
-
567
- /**
568
- * @override
569
- * @param name
570
- * @param options
571
- */
572
- registerPreference(name, options) {
573
- DevToolsAPI.sendMessageToEmbedder('registerPreference', [name, options], null);
574
- }
575
-
576
- /**
577
- * @override
578
- * @param callback
579
- */
580
- getPreferences(callback) {
581
- DevToolsAPI.sendMessageToEmbedder('getPreferences', [], /** @type {function(?Object)} */ (callback));
582
- }
583
-
584
- /**
585
- * @override
586
- * @param name
587
- * @param callback
588
- */
589
- getPreference(name, callback) {
590
- DevToolsAPI.sendMessageToEmbedder('getPreference', [name], /** @type {function(string)} */ (callback));
591
- }
592
-
593
- /**
594
- * @override
595
- * @param name
596
- * @param value
597
- */
598
- setPreference(name, value) {
599
- DevToolsAPI.sendMessageToEmbedder('setPreference', [name, value], null);
600
- }
601
-
602
- /**
603
- * @override
604
- * @param name
605
- */
606
- removePreference(name) {
607
- DevToolsAPI.sendMessageToEmbedder('removePreference', [name], null);
608
- }
609
-
610
- /**
611
- * @override
612
- */
613
- clearPreferences() {
614
- DevToolsAPI.sendMessageToEmbedder('clearPreferences', [], null);
615
- }
616
-
617
- /**
618
- * @override
619
- * @param callback
620
- */
621
- getSyncInformation(callback) {
622
- DevToolsAPI.sendMessageToEmbedder('getSyncInformation', [], callback);
623
- }
624
-
625
- /**
626
- * @override
627
- * @param callback
628
- */
629
- getHostConfig(callback) {
630
- DevToolsAPI.sendMessageToEmbedder('getHostConfig', [], hostConfig => {
631
- const majorVersion = getRemoteMajorVersion();
632
- if (majorVersion && majorVersion < 129 && hostConfig?.aidaAvailability) {
633
- return callback(this.hostConfigNewToOld(hostConfig));
634
- }
635
- return callback(hostConfig);
636
- });
637
- }
638
-
639
- /**
640
- * @param newConfig
641
- */
642
- hostConfigNewToOld(newConfig) {
643
- const devToolsConsoleInsights = {
644
- enabled: (newConfig.devToolsConsoleInsights?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
645
- aidaModelId: newConfig.devToolsConsoleInsights?.modelId ?? '',
646
- aidaTemperature: newConfig.devToolsConsoleInsights?.temperature ?? 0,
647
- blockedByAge: newConfig.aidaAvailability?.blockedByAge ?? true,
648
- blockedByEnterprisePolicy: newConfig.aidaAvailability?.blockedByEnterprisePolicy ?? true,
649
- blockedByFeatureFlag:
650
- (newConfig.devToolsConsoleInsights?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
651
- blockedByGeo: newConfig.aidaAvailability?.blockedByGeo ?? true,
652
- blockedByRollout: false,
653
- disallowLogging: newConfig.aidaAvailability?.disallowLogging ?? true,
654
- optIn: false,
655
- };
656
- const devToolsFreestylerDogfood = {
657
- enabled: (newConfig.devToolsFreestyler?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
658
- aidaModelId: newConfig.devToolsFreestyler?.modelId ?? '',
659
- aidaTemperature: newConfig.devToolsFreestyler?.temperature ?? 0,
660
- blockedByAge: newConfig.aidaAvailability?.blockedByAge ?? true,
661
- blockedByEnterprisePolicy: newConfig.aidaAvailability?.blockedByEnterprisePolicy ?? true,
662
- blockedByGeo: newConfig.aidaAvailability?.blockedByGeo ?? true,
663
- };
664
- return {
665
- devToolsConsoleInsights,
666
- devToolsFreestylerDogfood,
667
- devToolsVeLogging: newConfig.devToolsVeLogging,
668
- isOffTheRecord: newConfig.isOffTheRecord,
669
- };
670
- }
671
-
672
- /**
673
- * @override
674
- * @param origin
675
- * @param script
676
- */
677
- setInjectedScriptForOrigin(origin, script) {
678
- DevToolsAPI.sendMessageToEmbedder('registerExtensionsAPI', [origin, script], null);
679
- }
680
-
681
- /**
682
- * @override
683
- * @param url
684
- */
685
- inspectedURLChanged(url) {
686
- DevToolsAPI.sendMessageToEmbedder('inspectedURLChanged', [url], null);
687
- }
688
-
689
- /**
690
- * @override
691
- * @param text
692
- */
693
- copyText(text) {
694
- DevToolsHost.copyText(text);
695
- }
696
-
697
- /**
698
- * @override
699
- * @param url
700
- */
701
- openInNewTab(url) {
702
- DevToolsAPI.sendMessageToEmbedder('openInNewTab', [url], null);
703
- }
704
-
705
- /**
706
- * @override
707
- * @param query
708
- */
709
- openSearchResultsInNewTab(query) {
710
- DevToolsAPI.sendMessageToEmbedder('openSearchResultsInNewTab', [query], null);
711
- }
712
-
713
- /**
714
- * @override
715
- * @param fileSystemPath
716
- */
717
- showItemInFolder(fileSystemPath) {
718
- DevToolsAPI.sendMessageToEmbedder('showItemInFolder', [fileSystemPath], null);
719
- }
720
457
 
721
- /**
722
- * @override
723
- * @param url
724
- * @param content
725
- * @param forceSaveAs
726
- * @param isBase64
727
- */
728
- save(url, content, forceSaveAs, isBase64) {
729
- DevToolsAPI.sendMessageToEmbedder('save', [url, content, forceSaveAs, isBase64], null);
730
- }
731
-
732
- /**
733
- * @override
734
- * @param url
735
- * @param content
736
- */
737
- append(url, content) {
738
- DevToolsAPI.sendMessageToEmbedder('append', [url, content], null);
739
- }
740
-
741
- /**
742
- * @override
743
- * @param url
744
- */
745
- close(url) {
746
- }
747
-
748
- /**
749
- * @override
750
- * @param message
751
- */
752
- sendMessageToBackend(message) {
753
- DevToolsAPI.sendMessageToEmbedder('dispatchProtocolMessage', [message], null);
754
- }
458
+ loadCompleted() {
459
+ DevToolsAPI.sendMessageToEmbedder('loadCompleted', [], null);
460
+ }
755
461
 
756
- /**
757
- * @override
758
- * @param histogramName
759
- * @param sample
760
- * @param min
761
- * @param exclusiveMax
762
- * @param bucketSize
763
- */
764
- recordCountHistogram(histogramName, sample, min, exclusiveMax, bucketSize) {
765
- DevToolsAPI.sendMessageToEmbedder(
766
- 'recordCountHistogram', [histogramName, sample, min, exclusiveMax, bucketSize], null);
767
- }
462
+ bringToFront() {
463
+ DevToolsAPI.sendMessageToEmbedder('bringToFront', [], null);
464
+ }
768
465
 
769
- /**
770
- * @override
771
- * @param actionName
772
- * @param actionCode
773
- * @param bucketSize
774
- */
775
- recordEnumeratedHistogram(actionName, actionCode, bucketSize) {
776
- if (!Object.values(EnumeratedHistogram).includes(actionName)) {
777
- return;
466
+ closeWindow() {
467
+ DevToolsAPI.sendMessageToEmbedder('closeWindow', [], null);
778
468
  }
779
- DevToolsAPI.sendMessageToEmbedder('recordEnumeratedHistogram', [actionName, actionCode, bucketSize], null);
780
- }
781
469
 
782
- /**
783
- * @override
784
- * @param histogramName
785
- * @param duration
786
- */
787
- recordPerformanceHistogram(histogramName, duration) {
788
- DevToolsAPI.sendMessageToEmbedder('recordPerformanceHistogram', [histogramName, duration], null);
789
- }
470
+ /**
471
+ * @param isDocked
472
+ * @param callback
473
+ */
474
+ setIsDocked(isDocked, callback) {
475
+ DevToolsAPI.sendMessageToEmbedder('setIsDocked', [isDocked], callback);
476
+ }
790
477
 
791
- /**
792
- * @override
793
- * @param featureName
794
- */
795
- recordNewBadgeUsage(featureName) {
796
- DevToolsAPI.sendMessageToEmbedder('recordNewBadgeUsage', [featureName], null);
797
- }
478
+ /**
479
+ * @param trigger
480
+ * @param callback {(param: object) => unknown}
481
+ */
482
+ showSurvey(trigger, callback) {
483
+ DevToolsAPI.sendMessageToEmbedder('showSurvey', [trigger], callback);
484
+ }
798
485
 
799
- /**
800
- * @override
801
- * @param umaName
802
- */
803
- recordUserMetricsAction(umaName) {
804
- DevToolsAPI.sendMessageToEmbedder('recordUserMetricsAction', [umaName], null);
805
- }
486
+ /**
487
+ * @param trigger
488
+ * @param callback {(param: object) => unknown}
489
+ */
490
+ canShowSurvey(trigger, callback) {
491
+ DevToolsAPI.sendMessageToEmbedder('canShowSurvey', [trigger], callback);
492
+ }
806
493
 
807
- /**
808
- * @override
809
- */
810
- connectAutomaticFileSystem(fileSystemPath, fileSystemUUID, addIfMissing, callback) {
811
- DevToolsAPI.sendMessageToEmbedder(
812
- 'connectAutomaticFileSystem',
813
- [fileSystemPath, fileSystemUUID, addIfMissing],
814
- callback,
815
- );
816
- }
494
+ /**
495
+ * Requests inspected page to be placed atop of the inspector frontend with specified bounds.
496
+ * @param bounds
497
+ */
498
+ setInspectedPageBounds(bounds) {
499
+ DevToolsAPI.sendMessageToEmbedder('setInspectedPageBounds', [bounds], null);
500
+ }
817
501
 
818
- /**
819
- * @override
820
- */
821
- disconnectAutomaticFileSystem(fileSystemPath) {
822
- DevToolsAPI.sendMessageToEmbedder(
823
- 'disconnectAutomaticFileSystem',
824
- [fileSystemPath],
825
- null,
826
- );
827
- }
502
+ inspectElementCompleted() {
503
+ DevToolsAPI.sendMessageToEmbedder('inspectElementCompleted', [], null);
504
+ }
828
505
 
829
- /**
830
- * @override
831
- */
832
- requestFileSystems() {
833
- DevToolsAPI.sendMessageToEmbedder('requestFileSystems', [], null);
834
- }
506
+ /**
507
+ * @param url
508
+ * @param headers
509
+ * @param streamId
510
+ * @param callback {(param: object) => unknown}
511
+ */
512
+ loadNetworkResource(url, headers, streamId, callback) {
513
+ DevToolsAPI.sendMessageToEmbedder('loadNetworkResource', [url, headers, streamId], callback);
514
+ }
835
515
 
836
- /**
837
- * @override
838
- * @param type
839
- */
840
- addFileSystem(type) {
841
- DevToolsAPI.sendMessageToEmbedder('addFileSystem', [type || ''], null);
842
- }
516
+ /**
517
+ * @param name
518
+ * @param options
519
+ */
520
+ registerPreference(name, options) {
521
+ DevToolsAPI.sendMessageToEmbedder('registerPreference', [name, options], null);
522
+ }
843
523
 
844
- /**
845
- * @override
846
- * @param fileSystemPath
847
- */
848
- removeFileSystem(fileSystemPath) {
849
- DevToolsAPI.sendMessageToEmbedder('removeFileSystem', [fileSystemPath], null);
850
- }
524
+ /**
525
+ * @param callback {(param: object) => unknown}
526
+ */
527
+ getPreferences(callback) {
528
+ DevToolsAPI.sendMessageToEmbedder('getPreferences', [], callback);
529
+ }
851
530
 
852
- /**
853
- * @override
854
- * @param fileSystemId
855
- * @param registeredName
856
- * @returns
857
- */
858
- isolatedFileSystem(fileSystemId, registeredName) {
859
- return DevToolsHost.isolatedFileSystem(fileSystemId, registeredName);
860
- }
531
+ /**
532
+ * @param name
533
+ * @param callback {(param: object) => unknown}
534
+ */
535
+ getPreference(name, callback) {
536
+ DevToolsAPI.sendMessageToEmbedder('getPreference', [name], callback);
537
+ }
861
538
 
862
- /**
863
- * @override
864
- * @param fileSystem
865
- */
866
- upgradeDraggedFileSystemPermissions(fileSystem) {
867
- DevToolsHost.upgradeDraggedFileSystemPermissions(fileSystem);
868
- }
539
+ /**
540
+ * @param name
541
+ * @param value
542
+ */
543
+ setPreference(name, value) {
544
+ DevToolsAPI.sendMessageToEmbedder('setPreference', [name, value], null);
545
+ }
869
546
 
870
- /**
871
- * @override
872
- * @param requestId
873
- * @param fileSystemPath
874
- * @param excludedFolders
875
- */
876
- indexPath(requestId, fileSystemPath, excludedFolders) {
877
- // |excludedFolders| added in M67. For backward compatibility,
878
- // pass empty array.
879
- excludedFolders = excludedFolders || '[]';
880
- DevToolsAPI.sendMessageToEmbedder('indexPath', [requestId, fileSystemPath, excludedFolders], null);
881
- }
547
+ /**
548
+ * @param name
549
+ */
550
+ removePreference(name) {
551
+ DevToolsAPI.sendMessageToEmbedder('removePreference', [name], null);
552
+ }
882
553
 
883
- /**
884
- * @override
885
- * @param requestId
886
- */
887
- stopIndexing(requestId) {
888
- DevToolsAPI.sendMessageToEmbedder('stopIndexing', [requestId], null);
889
- }
554
+ clearPreferences() {
555
+ DevToolsAPI.sendMessageToEmbedder('clearPreferences', [], null);
556
+ }
890
557
 
891
- /**
892
- * @override
893
- * @param requestId
894
- * @param fileSystemPath
895
- * @param query
896
- */
897
- searchInPath(requestId, fileSystemPath, query) {
898
- DevToolsAPI.sendMessageToEmbedder('searchInPath', [requestId, fileSystemPath, query], null);
899
- }
558
+ /**
559
+ * @param callback
560
+ */
561
+ getSyncInformation(callback) {
562
+ DevToolsAPI.sendMessageToEmbedder('getSyncInformation', [], callback);
563
+ }
900
564
 
901
- /**
902
- * @override
903
- * @returns
904
- */
905
- zoomFactor() {
906
- return DevToolsHost.zoomFactor();
907
- }
565
+ /**
566
+ * @param callback
567
+ */
568
+ getHostConfig(callback) {
569
+ DevToolsAPI.sendMessageToEmbedder('getHostConfig', [], hostConfig => {
570
+ const majorVersion = getRemoteMajorVersion();
571
+ if (majorVersion && majorVersion < 129 && hostConfig?.aidaAvailability) {
572
+ return callback(this.hostConfigNewToOld(hostConfig));
573
+ }
574
+ return callback(hostConfig);
575
+ });
576
+ }
908
577
 
909
- /**
910
- * @override
911
- */
912
- zoomIn() {
913
- DevToolsAPI.sendMessageToEmbedder('zoomIn', [], null);
914
- }
578
+ /**
579
+ * @param newConfig
580
+ */
581
+ hostConfigNewToOld(newConfig) {
582
+ const devToolsConsoleInsights = {
583
+ enabled: (newConfig.devToolsConsoleInsights?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
584
+ aidaModelId: newConfig.devToolsConsoleInsights?.modelId ?? '',
585
+ aidaTemperature: newConfig.devToolsConsoleInsights?.temperature ?? 0,
586
+ blockedByAge: newConfig.aidaAvailability?.blockedByAge ?? true,
587
+ blockedByEnterprisePolicy: newConfig.aidaAvailability?.blockedByEnterprisePolicy ?? true,
588
+ blockedByFeatureFlag:
589
+ (newConfig.devToolsConsoleInsights?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
590
+ blockedByGeo: newConfig.aidaAvailability?.blockedByGeo ?? true,
591
+ blockedByRollout: false,
592
+ disallowLogging: newConfig.aidaAvailability?.disallowLogging ?? true,
593
+ optIn: false
594
+ };
595
+ const devToolsFreestylerDogfood = {
596
+ enabled: (newConfig.devToolsFreestyler?.enabled && newConfig.aidaAvailability?.enabled) ?? false,
597
+ aidaModelId: newConfig.devToolsFreestyler?.modelId ?? '',
598
+ aidaTemperature: newConfig.devToolsFreestyler?.temperature ?? 0,
599
+ blockedByAge: newConfig.aidaAvailability?.blockedByAge ?? true,
600
+ blockedByEnterprisePolicy: newConfig.aidaAvailability?.blockedByEnterprisePolicy ?? true,
601
+ blockedByGeo: newConfig.aidaAvailability?.blockedByGeo ?? true
602
+ };
603
+ return {
604
+ devToolsConsoleInsights,
605
+ devToolsFreestylerDogfood,
606
+ devToolsVeLogging: newConfig.devToolsVeLogging,
607
+ isOffTheRecord: newConfig.isOffTheRecord
608
+ };
609
+ }
915
610
 
916
- /**
917
- * @override
918
- */
919
- zoomOut() {
920
- DevToolsAPI.sendMessageToEmbedder('zoomOut', [], null);
921
- }
611
+ /**
612
+ * @param origin
613
+ * @param script
614
+ */
615
+ setInjectedScriptForOrigin(origin, script) {
616
+ DevToolsAPI.sendMessageToEmbedder('registerExtensionsAPI', [origin, script], null);
617
+ }
922
618
 
923
- /**
924
- * @override
925
- */
926
- resetZoom() {
927
- DevToolsAPI.sendMessageToEmbedder('resetZoom', [], null);
928
- }
619
+ /**
620
+ * @param url
621
+ */
622
+ inspectedURLChanged(url) {
623
+ DevToolsAPI.sendMessageToEmbedder('inspectedURLChanged', [url], null);
624
+ }
929
625
 
930
- /**
931
- * @override
932
- * @param shortcuts
933
- */
934
- setWhitelistedShortcuts(shortcuts) {
935
- DevToolsAPI.sendMessageToEmbedder('setWhitelistedShortcuts', [shortcuts], null);
936
- }
626
+ /**
627
+ * @param text
628
+ */
629
+ copyText(text) {
630
+ DevToolsHost.copyText(text);
631
+ }
937
632
 
938
- /**
939
- * @override
940
- * @param active
941
- */
942
- setEyeDropperActive(active) {
943
- DevToolsAPI.sendMessageToEmbedder('setEyeDropperActive', [active], null);
944
- }
633
+ /**
634
+ * @param url
635
+ */
636
+ openInNewTab(url) {
637
+ DevToolsAPI.sendMessageToEmbedder('openInNewTab', [url], null);
638
+ }
945
639
 
946
- /**
947
- * @override
948
- * @param certChain
949
- */
950
- showCertificateViewer(certChain) {
951
- DevToolsAPI.sendMessageToEmbedder('showCertificateViewer', [JSON.stringify(certChain)], null);
952
- }
640
+ /**
641
+ * @param query
642
+ */
643
+ openSearchResultsInNewTab(query) {
644
+ DevToolsAPI.sendMessageToEmbedder('openSearchResultsInNewTab', [query], null);
645
+ }
953
646
 
954
- /**
955
- * Only needed to run Lighthouse on old devtools.
956
- * @override
957
- * @param callback
958
- */
959
- reattach(callback) {
960
- DevToolsAPI.sendMessageToEmbedder('reattach', [], callback);
961
- }
647
+ /**
648
+ * @param fileSystemPath
649
+ */
650
+ showItemInFolder(fileSystemPath) {
651
+ DevToolsAPI.sendMessageToEmbedder('showItemInFolder', [fileSystemPath], null);
652
+ }
962
653
 
963
- /**
964
- * @override
965
- */
966
- readyForTest() {
967
- DevToolsAPI.sendMessageToEmbedder('readyForTest', [], null);
968
- }
654
+ /**
655
+ * @param url
656
+ * @param content
657
+ * @param forceSaveAs
658
+ * @param isBase64
659
+ */
660
+ save(url, content, forceSaveAs, isBase64) {
661
+ DevToolsAPI.sendMessageToEmbedder('save', [url, content, forceSaveAs, isBase64], null);
662
+ }
969
663
 
970
- /**
971
- * @override
972
- */
973
- connectionReady() {
974
- DevToolsAPI.sendMessageToEmbedder('connectionReady', [], null);
975
- }
664
+ /**
665
+ * @param url
666
+ * @param content
667
+ */
668
+ append(url, content) {
669
+ DevToolsAPI.sendMessageToEmbedder('append', [url, content], null);
670
+ }
976
671
 
977
- /**
978
- * @override
979
- * @param value
980
- */
981
- setOpenNewWindowForPopups(value) {
982
- DevToolsAPI.sendMessageToEmbedder('setOpenNewWindowForPopups', [value], null);
983
- }
672
+ /**
673
+ * @param url
674
+ */
675
+ close(url) {
676
+ }
984
677
 
985
- /**
986
- * @override
987
- * @param config
988
- */
989
- setDevicesDiscoveryConfig(config) {
990
- DevToolsAPI.sendMessageToEmbedder(
991
- 'setDevicesDiscoveryConfig',
992
- [
993
- config.discoverUsbDevices, config.portForwardingEnabled, JSON.stringify(config.portForwardingConfig),
994
- config.networkDiscoveryEnabled, JSON.stringify(config.networkDiscoveryConfig)
995
- ],
996
- null);
997
- }
678
+ /**
679
+ * @param message
680
+ */
681
+ sendMessageToBackend(message) {
682
+ DevToolsAPI.sendMessageToEmbedder('dispatchProtocolMessage', [message], null);
683
+ }
998
684
 
999
- /**
1000
- * @override
1001
- * @param enabled
1002
- */
1003
- setDevicesUpdatesEnabled(enabled) {
1004
- DevToolsAPI.sendMessageToEmbedder('setDevicesUpdatesEnabled', [enabled], null);
1005
- }
685
+ /**
686
+ * @param histogramName
687
+ * @param sample
688
+ * @param min
689
+ * @param exclusiveMax
690
+ * @param bucketSize
691
+ */
692
+ recordCountHistogram(histogramName, sample, min, exclusiveMax, bucketSize) {
693
+ DevToolsAPI.sendMessageToEmbedder(
694
+ 'recordCountHistogram', [histogramName, sample, min, exclusiveMax, bucketSize], null);
695
+ }
1006
696
 
1007
- /**
1008
- * @override
1009
- * @param browserId
1010
- * @param url
1011
- */
1012
- openRemotePage(browserId, url) {
1013
- DevToolsAPI.sendMessageToEmbedder('openRemotePage', [browserId, url], null);
1014
- }
697
+ /**
698
+ * @param actionName
699
+ * @param actionCode
700
+ * @param bucketSize
701
+ */
702
+ recordEnumeratedHistogram(actionName, actionCode, bucketSize) {
703
+ if (!Object.values(EnumeratedHistogram).includes(actionName)) {
704
+ return;
705
+ }
706
+ DevToolsAPI.sendMessageToEmbedder('recordEnumeratedHistogram', [actionName, actionCode, bucketSize], null);
707
+ }
1015
708
 
1016
- /**
1017
- * @override
1018
- */
1019
- openNodeFrontend() {
1020
- DevToolsAPI.sendMessageToEmbedder('openNodeFrontend', [], null);
1021
- }
709
+ /**
710
+ * @param histogramName
711
+ * @param duration
712
+ */
713
+ recordPerformanceHistogram(histogramName, duration) {
714
+ DevToolsAPI.sendMessageToEmbedder('recordPerformanceHistogram', [histogramName, duration], null);
715
+ }
1022
716
 
1023
- /**
1024
- * @override
1025
- * @param x
1026
- * @param y
1027
- * @param items
1028
- * @param document
1029
- */
1030
- showContextMenuAtPoint(x, y, items, document) {
1031
- DevToolsHost.showContextMenuAtPoint(x, y, items, document);
1032
- }
717
+ /**
718
+ * @param featureName
719
+ */
720
+ recordNewBadgeUsage(featureName) {
721
+ DevToolsAPI.sendMessageToEmbedder('recordNewBadgeUsage', [featureName], null);
722
+ }
1033
723
 
1034
- /**
1035
- * @override
1036
- * @returns
1037
- */
1038
- isHostedMode() {
1039
- return DevToolsHost.isHostedMode();
1040
- }
724
+ /**
725
+ * @param umaName
726
+ */
727
+ recordUserMetricsAction(umaName) {
728
+ DevToolsAPI.sendMessageToEmbedder('recordUserMetricsAction', [umaName], null);
729
+ }
1041
730
 
1042
- /**
1043
- * @override
1044
- * @param callback
1045
- */
1046
- setAddExtensionCallback(callback) {
1047
- DevToolsAPI.setAddExtensionCallback(callback);
1048
- }
731
+ connectAutomaticFileSystem(fileSystemPath, fileSystemUUID, addIfMissing, callback) {
732
+ DevToolsAPI.sendMessageToEmbedder(
733
+ 'connectAutomaticFileSystem', [fileSystemPath, fileSystemUUID, addIfMissing], callback);
734
+ }
1049
735
 
1050
- /**
1051
- * @override
1052
- * @param impressionEvent
1053
- */
1054
- recordImpression(impressionEvent) {
1055
- DevToolsAPI.sendMessageToEmbedder('recordImpression', [impressionEvent], null);
1056
- }
736
+ disconnectAutomaticFileSystem(fileSystemPath) {
737
+ DevToolsAPI.sendMessageToEmbedder('disconnectAutomaticFileSystem', [fileSystemPath], null);
738
+ }
1057
739
 
1058
- /**
1059
- * @override
1060
- * @param resizeEvent
1061
- */
1062
- recordResize(resizeEvent) {
1063
- DevToolsAPI.sendMessageToEmbedder('recordResize', [resizeEvent], null);
1064
- }
740
+ requestFileSystems() {
741
+ DevToolsAPI.sendMessageToEmbedder('requestFileSystems', [], null);
742
+ }
1065
743
 
1066
- /**
1067
- * @override
1068
- * @param clickEvent
1069
- */
1070
- recordClick(clickEvent) {
1071
- DevToolsAPI.sendMessageToEmbedder('recordClick', [clickEvent], null);
1072
- }
744
+ /**
745
+ * @param type
746
+ */
747
+ addFileSystem(type) {
748
+ DevToolsAPI.sendMessageToEmbedder('addFileSystem', [type || ''], null);
749
+ }
1073
750
 
1074
- /**
1075
- * @override
1076
- * @param hoverEvent
1077
- */
1078
- recordHover(hoverEvent) {
1079
- DevToolsAPI.sendMessageToEmbedder('recordHover', [hoverEvent], null);
1080
- }
751
+ /**
752
+ * @param fileSystemPath
753
+ */
754
+ removeFileSystem(fileSystemPath) {
755
+ DevToolsAPI.sendMessageToEmbedder('removeFileSystem', [fileSystemPath], null);
756
+ }
1081
757
 
1082
- /**
1083
- * @override
1084
- * @param dragEvent
1085
- */
1086
- recordDrag(dragEvent) {
1087
- DevToolsAPI.sendMessageToEmbedder('recordDrag', [dragEvent], null);
1088
- }
758
+ /**
759
+ * @param fileSystemId
760
+ * @param registeredName
761
+ * @returns
762
+ */
763
+ isolatedFileSystem(fileSystemId, registeredName) {
764
+ return DevToolsHost.isolatedFileSystem(fileSystemId, registeredName);
765
+ }
1089
766
 
1090
- /**
1091
- * @override
1092
- * @param changeEvent
1093
- */
1094
- recordChange(changeEvent) {
1095
- DevToolsAPI.sendMessageToEmbedder('recordChange', [changeEvent], null);
1096
- }
767
+ /**
768
+ * @param fileSystem
769
+ */
770
+ upgradeDraggedFileSystemPermissions(fileSystem) {
771
+ DevToolsHost.upgradeDraggedFileSystemPermissions(fileSystem);
772
+ }
1097
773
 
1098
- /**
1099
- * @override
1100
- * @param keyDownEvent
1101
- */
1102
- recordKeyDown(keyDownEvent) {
1103
- DevToolsAPI.sendMessageToEmbedder('recordKeyDown', [keyDownEvent], null);
1104
- }
774
+ /**
775
+ * @param requestId
776
+ * @param fileSystemPath
777
+ * @param excludedFolders
778
+ */
779
+ indexPath(requestId, fileSystemPath, excludedFolders) {
780
+ // |excludedFolders| added in M67. For backward compatibility,
781
+ // pass empty array.
782
+ excludedFolders = excludedFolders || '[]';
783
+ DevToolsAPI.sendMessageToEmbedder('indexPath', [requestId, fileSystemPath, excludedFolders], null);
784
+ }
1105
785
 
1106
- /**
1107
- * @override
1108
- * @param settingAccessEvent
1109
- */
1110
- recordSettingAccess(settingAccessEvent) {
1111
- DevToolsAPI.sendMessageToEmbedder('recordSettingAccess', [settingAccessEvent], null);
1112
- }
786
+ /**
787
+ * @param requestId
788
+ */
789
+ stopIndexing(requestId) {
790
+ DevToolsAPI.sendMessageToEmbedder('stopIndexing', [requestId], null);
791
+ }
1113
792
 
1114
- /**
1115
- * @override
1116
- * @param functionCallEvent
1117
- */
1118
- recordFunctionCall(functionCallEvent) {
1119
- DevToolsAPI.sendMessageToEmbedder('recordFunctionCall', [functionCallEvent], null);
1120
- }
793
+ /**
794
+ * @param requestId
795
+ * @param fileSystemPath
796
+ * @param query
797
+ */
798
+ searchInPath(requestId, fileSystemPath, query) {
799
+ DevToolsAPI.sendMessageToEmbedder('searchInPath', [requestId, fileSystemPath, query], null);
800
+ }
1121
801
 
1122
- // Backward-compatible methods below this line --------------------------------------------
802
+ /**
803
+ * @returns
804
+ */
805
+ zoomFactor() {
806
+ return DevToolsHost.zoomFactor();
807
+ }
1123
808
 
1124
- /**
1125
- * Support for legacy front-ends (<M65).
1126
- * @returns
1127
- */
1128
- isUnderTest() {
1129
- return false;
1130
- }
809
+ zoomIn() {
810
+ DevToolsAPI.sendMessageToEmbedder('zoomIn', [], null);
811
+ }
1131
812
 
1132
- /**
1133
- * Support for legacy front-ends (<M50).
1134
- * @param message
1135
- */
1136
- sendFrontendAPINotification(message) {
1137
- }
813
+ zoomOut() {
814
+ DevToolsAPI.sendMessageToEmbedder('zoomOut', [], null);
815
+ }
1138
816
 
1139
- /**
1140
- * Support for legacy front-ends (<M41).
1141
- * @returns
1142
- */
1143
- port() {
1144
- return 'unknown';
1145
- }
817
+ resetZoom() {
818
+ DevToolsAPI.sendMessageToEmbedder('resetZoom', [], null);
819
+ }
1146
820
 
1147
- /**
1148
- * Support for legacy front-ends (<M38).
1149
- * @param zoomFactor
1150
- */
1151
- setZoomFactor(zoomFactor) {
1152
- }
821
+ /**
822
+ * @param shortcuts
823
+ */
824
+ setWhitelistedShortcuts(shortcuts) {
825
+ DevToolsAPI.sendMessageToEmbedder('setWhitelistedShortcuts', [shortcuts], null);
826
+ }
1153
827
 
1154
- /**
1155
- * Support for legacy front-ends (<M34).
1156
- */
1157
- sendMessageToEmbedder() {
1158
- }
828
+ /**
829
+ * @param active
830
+ */
831
+ setEyeDropperActive(active) {
832
+ DevToolsAPI.sendMessageToEmbedder('setEyeDropperActive', [active], null);
833
+ }
1159
834
 
1160
- /**
1161
- * Support for legacy front-ends (<M34).
1162
- * @param dockSide
1163
- */
1164
- requestSetDockSide(dockSide) {
1165
- DevToolsAPI.sendMessageToEmbedder('setIsDocked', [dockSide !== 'undocked'], null);
1166
- }
835
+ /**
836
+ * @param certChain
837
+ */
838
+ showCertificateViewer(certChain) {
839
+ DevToolsAPI.sendMessageToEmbedder('showCertificateViewer', [JSON.stringify(certChain)], null);
840
+ }
1167
841
 
1168
- /**
1169
- * Support for legacy front-ends (<M34).
1170
- * @returns
1171
- */
1172
- supportsFileSystems() {
1173
- return true;
1174
- }
842
+ /**
843
+ * Only needed to run Lighthouse on old devtools.
844
+ * @param callback
845
+ */
846
+ reattach(callback) {
847
+ DevToolsAPI.sendMessageToEmbedder('reattach', [], callback);
848
+ }
1175
849
 
1176
- /**
1177
- * Support for legacy front-ends (<M44).
1178
- * @param actionCode
1179
- */
1180
- recordActionTaken(actionCode) {
1181
- // Do not record actions, as that may crash the DevTools renderer.
1182
- }
850
+ readyForTest() {
851
+ DevToolsAPI.sendMessageToEmbedder('readyForTest', [], null);
852
+ }
1183
853
 
1184
- /**
1185
- * Support for legacy front-ends (<M44).
1186
- * @param panelCode
1187
- */
1188
- recordPanelShown(panelCode) {
1189
- // Do not record actions, as that may crash the DevTools renderer.
1190
- }
854
+ connectionReady() {
855
+ DevToolsAPI.sendMessageToEmbedder('connectionReady', [], null);
856
+ }
1191
857
 
1192
- /**
1193
- * @returns
1194
- */
1195
- initialTargetId() {
1196
- return DevToolsAPI._initialTargetIdPromise;
1197
- }
858
+ /**
859
+ * @param value
860
+ */
861
+ setOpenNewWindowForPopups(value) {
862
+ DevToolsAPI.sendMessageToEmbedder('setOpenNewWindowForPopups', [value], null);
863
+ }
1198
864
 
1199
- /**
1200
- * @param request
1201
- * @param streamId
1202
- * @param cb
1203
- */
1204
- doAidaConversation(request, streamId, cb) {
1205
- DevToolsAPI.sendMessageToEmbedder('doAidaConversation', [request, streamId], cb);
1206
- }
865
+ /**
866
+ * @param config
867
+ */
868
+ setDevicesDiscoveryConfig(config) {
869
+ DevToolsAPI.sendMessageToEmbedder(
870
+ 'setDevicesDiscoveryConfig',
871
+ [
872
+ config.discoverUsbDevices, config.portForwardingEnabled, JSON.stringify(config.portForwardingConfig),
873
+ config.networkDiscoveryEnabled, JSON.stringify(config.networkDiscoveryConfig)
874
+ ],
875
+ null);
876
+ }
1207
877
 
1208
- /**
1209
- * @param request
1210
- * @param cb
1211
- */
1212
- aidaCodeComplete(request, cb) {
1213
- DevToolsAPI.sendMessageToEmbedder('aidaCodeComplete', [request], cb);
1214
- }
878
+ /**
879
+ * @param enabled
880
+ */
881
+ setDevicesUpdatesEnabled(enabled) {
882
+ DevToolsAPI.sendMessageToEmbedder('setDevicesUpdatesEnabled', [enabled], null);
883
+ }
1215
884
 
1216
- /**
1217
- * @param request
1218
- * @param cb
1219
- */
1220
- registerAidaClientEvent(request, cb) {
1221
- DevToolsAPI.sendMessageToEmbedder('registerAidaClientEvent', [request], cb);
1222
- }
885
+ /**
886
+ * @param browserId
887
+ * @param url
888
+ */
889
+ openRemotePage(browserId, url) {
890
+ DevToolsAPI.sendMessageToEmbedder('openRemotePage', [browserId, url], null);
891
+ }
1223
892
 
1224
- /**
1225
- * @param request
1226
- * @param cb
1227
- */
1228
- dispatchHttpRequest(request, cb) {
1229
- DevToolsAPI.sendMessageToEmbedder('dispatchHttpRequest', [request], cb);
1230
- }
1231
- };
1232
-
1233
- window.InspectorFrontendHost = new InspectorFrontendHostImpl();
1234
-
1235
- // DevToolsApp ---------------------------------------------------------------
1236
-
1237
- function installObjectObserve() {
1238
- /** @type {!Array<string>} */
1239
- const properties = [
1240
- 'advancedSearchConfig',
1241
- 'auditsPanelSplitViewState',
1242
- 'auditsSidebarWidth',
1243
- 'blockedURLs',
1244
- 'breakpoints',
1245
- 'cacheDisabled',
1246
- 'colorFormat',
1247
- 'consoleHistory',
1248
- 'consoleTimestampsEnabled',
1249
- 'cpuProfilerView',
1250
- 'cssSourceMapsEnabled',
1251
- 'currentDockState',
1252
- 'customColorPalette',
1253
- 'customDevicePresets',
1254
- 'customEmulatedDeviceList',
1255
- 'customFormatters',
1256
- 'customUserAgent',
1257
- 'databaseTableViewVisibleColumns',
1258
- 'dataGrid-cookiesTable',
1259
- 'dataGrid-DOMStorageItemsView',
1260
- 'debuggerSidebarHidden',
1261
- 'disablePausedStateOverlay',
1262
- 'domBreakpoints',
1263
- 'domWordWrap',
1264
- 'elementsPanelSplitViewState',
1265
- 'elementsSidebarWidth',
1266
- 'emulation.deviceHeight',
1267
- 'emulation.deviceModeValue',
1268
- 'emulation.deviceOrientationOverride',
1269
- 'emulation.deviceScale',
1270
- 'emulation.deviceScaleFactor',
1271
- 'emulation.deviceUA',
1272
- 'emulation.deviceWidth',
1273
- 'emulation.locationOverride',
1274
- 'emulation.showDeviceMode',
1275
- 'emulation.showRulers',
1276
- 'enableAsyncStackTraces',
1277
- 'enableIgnoreListing',
1278
- 'eventListenerBreakpoints',
1279
- 'fileMappingEntries',
1280
- 'fileSystemMapping',
1281
- 'FileSystemViewSidebarWidth',
1282
- 'fileSystemViewSplitViewState',
1283
- 'filterBar-consoleView',
1284
- 'filterBar-networkPanel',
1285
- 'filterBar-promisePane',
1286
- 'filterBar-timelinePanel',
1287
- 'frameViewerHideChromeWindow',
1288
- 'heapSnapshotRetainersViewSize',
1289
- 'heapSnapshotSplitViewState',
1290
- 'hideCollectedPromises',
1291
- 'hideNetworkMessages',
1292
- 'highlightNodeOnHoverInOverlay',
1293
- 'inlineVariableValues',
1294
- 'Inspector.drawerSplitView',
1295
- 'Inspector.drawerSplitViewState',
1296
- 'InspectorView.panelOrder',
1297
- 'InspectorView.screencastSplitView',
1298
- 'InspectorView.screencastSplitViewState',
1299
- 'InspectorView.splitView',
1300
- 'InspectorView.splitViewState',
1301
- 'javaScriptDisabled',
1302
- 'jsSourceMapsEnabled',
1303
- 'lastActivePanel',
1304
- 'lastDockState',
1305
- 'lastSelectedSourcesSidebarPaneTab',
1306
- 'lastSnippetEvaluationIndex',
1307
- 'layerDetailsSplitView',
1308
- 'layerDetailsSplitViewState',
1309
- 'layersPanelSplitViewState',
1310
- 'layersShowInternalLayers',
1311
- 'layersSidebarWidth',
1312
- 'messageLevelFilters',
1313
- 'messageURLFilters',
1314
- 'monitoringXHREnabled',
1315
- 'navigatorGroupByAuthored',
1316
- 'navigatorGroupByFolder',
1317
- 'navigatorHidden',
1318
- 'networkColorCodeResourceTypes',
1319
- 'networkConditions',
1320
- 'networkConditionsCustomProfiles',
1321
- 'networkHideDataURL',
1322
- 'networkLogColumnsVisibility',
1323
- 'networkLogLargeRows',
1324
- 'networkLogShowOverview',
1325
- 'networkPanelSplitViewState',
1326
- 'networkRecordFilmStripSetting',
1327
- 'networkResourceTypeFilters',
1328
- 'networkShowPrimaryLoadWaterfall',
1329
- 'networkSidebarWidth',
1330
- 'openLinkHandler',
1331
- 'pauseOnUncaughtException',
1332
- 'pauseOnCaughtException',
1333
- 'pauseOnExceptionEnabled',
1334
- 'preserveConsoleLog',
1335
- 'prettyPrintInfobarDisabled',
1336
- 'previouslyViewedFiles',
1337
- 'profilesPanelSplitViewState',
1338
- 'profilesSidebarWidth',
1339
- 'promiseStatusFilters',
1340
- 'recordAllocationStacks',
1341
- 'requestHeaderFilterSetting',
1342
- 'request-info-formData-category-expanded',
1343
- 'request-info-general-category-expanded',
1344
- 'request-info-queryString-category-expanded',
1345
- 'request-info-requestHeaders-category-expanded',
1346
- 'request-info-requestPayload-category-expanded',
1347
- 'request-info-responseHeaders-category-expanded',
1348
- 'resources',
1349
- 'resourcesLastSelectedItem',
1350
- 'resourcesPanelSplitViewState',
1351
- 'resourcesSidebarWidth',
1352
- 'resourceViewTab',
1353
- 'savedURLs',
1354
- 'screencastEnabled',
1355
- 'scriptsPanelNavigatorSidebarWidth',
1356
- 'searchInContentScripts',
1357
- 'selectedAuditCategories',
1358
- 'selectedColorPalette',
1359
- 'selectedProfileType',
1360
- 'shortcutPanelSwitch',
1361
- 'showAdvancedHeapSnapshotProperties',
1362
- 'showEventListenersForAncestors',
1363
- 'showFrameowkrListeners',
1364
- 'showHeaSnapshotObjectsHiddenProperties',
1365
- 'showInheritedComputedStyleProperties',
1366
- 'showMediaQueryInspector',
1367
- 'showUAShadowDOM',
1368
- 'showWhitespacesInEditor',
1369
- 'sidebarPosition',
1370
- 'skipContentScripts',
1371
- 'automaticallyIgnoreListKnownThirdPartyScripts',
1372
- 'skipStackFramesPattern',
1373
- 'sourceMapInfobarDisabled',
1374
- 'sourceMapSkippedInfobarDisabled',
1375
- 'sourcesPanelDebuggerSidebarSplitViewState',
1376
- 'sourcesPanelNavigatorSplitViewState',
1377
- 'sourcesPanelSplitSidebarRatio',
1378
- 'sourcesPanelSplitViewState',
1379
- 'sourcesSidebarWidth',
1380
- 'standardEmulatedDeviceList',
1381
- 'StylesPaneSplitRatio',
1382
- 'stylesPaneSplitViewState',
1383
- 'textEditorAutocompletion',
1384
- 'textEditorAutoDetectIndent',
1385
- 'textEditorBracketMatching',
1386
- 'textEditorIndent',
1387
- 'textEditorTabMovesFocus',
1388
- 'timelineCaptureFilmStrip',
1389
- 'timelineCaptureLayersAndPictures',
1390
- 'timelineCaptureMemory',
1391
- 'timelineCaptureNetwork',
1392
- 'timeline-details',
1393
- 'timelineEnableJSSampling',
1394
- 'timelineOverviewMode',
1395
- 'timelinePanelDetailsSplitViewState',
1396
- 'timelinePanelRecorsSplitViewState',
1397
- 'timelinePanelTimelineStackSplitViewState',
1398
- 'timelinePerspective',
1399
- 'timeline-split',
1400
- 'timelineTreeGroupBy',
1401
- 'timeline-view',
1402
- 'timelineViewMode',
1403
- 'uiTheme',
1404
- 'watchExpressions',
1405
- 'WebInspector.Drawer.lastSelectedView',
1406
- 'WebInspector.Drawer.showOnLoad',
1407
- 'workspaceExcludedFolders',
1408
- 'workspaceFolderExcludePattern',
1409
- 'workspaceInfobarDisabled',
1410
- 'workspaceMappingInfobarDisabled',
1411
- 'xhrBreakpoints'
1412
- ];
893
+ openNodeFrontend() {
894
+ DevToolsAPI.sendMessageToEmbedder('openNodeFrontend', [], null);
895
+ }
1413
896
 
1414
- /**
1415
- * @this {!{_storage: Object, _name: string}}
1416
- */
1417
- function settingRemove() {
1418
- this._storage[this._name] = undefined;
1419
- }
897
+ /**
898
+ * @param x
899
+ * @param y
900
+ * @param items
901
+ * @param document
902
+ */
903
+ showContextMenuAtPoint(x, y, items, document) {
904
+ DevToolsHost.showContextMenuAtPoint(x, y, items, document);
905
+ }
1420
906
 
1421
- /**
1422
- * @param object
1423
- * @param observer
1424
- */
1425
- function objectObserve(object, observer) {
1426
- if (window['WebInspector']) {
1427
- const settingPrototype = /** @type {!Object} */ (window['WebInspector']['Setting']['prototype']);
1428
- if (typeof settingPrototype['remove'] === 'function') {
1429
- settingPrototype['remove'] = settingRemove;
1430
- }
907
+ /**
908
+ * @returns
909
+ */
910
+ isHostedMode() {
911
+ return DevToolsHost.isHostedMode();
1431
912
  }
1432
- /** @type {!Set<string>} */
1433
- const changedProperties = new Set();
1434
- let scheduled = false;
1435
913
 
1436
- function scheduleObserver() {
1437
- if (scheduled) {
1438
- return;
1439
- }
1440
- scheduled = true;
1441
- queueMicrotask(callObserver);
914
+ /**
915
+ * @param callback
916
+ */
917
+ setAddExtensionCallback(callback) {
918
+ DevToolsAPI.setAddExtensionCallback(callback);
1442
919
  }
1443
920
 
1444
- function callObserver() {
1445
- scheduled = false;
1446
- const changes = /** @type {!Array<!{name: string}>} */ ([]);
1447
- changedProperties.forEach(function(name) {
1448
- changes.push({name});
1449
- });
1450
- changedProperties.clear();
1451
- observer.call(null, changes);
921
+ /**
922
+ * @param impressionEvent
923
+ */
924
+ recordImpression(impressionEvent) {
925
+ DevToolsAPI.sendMessageToEmbedder('recordImpression', [impressionEvent], null);
1452
926
  }
1453
927
 
1454
- /** @type {!Map<string, *>} */
1455
- const storage = new Map();
928
+ /**
929
+ * @param resizeEvent
930
+ */
931
+ recordResize(resizeEvent) {
932
+ DevToolsAPI.sendMessageToEmbedder('recordResize', [resizeEvent], null);
933
+ }
1456
934
 
1457
935
  /**
1458
- * @param property
936
+ * @param clickEvent
1459
937
  */
1460
- function defineProperty(property) {
1461
- if (property in object) {
1462
- storage.set(property, object[property]);
1463
- delete object[property];
1464
- }
938
+ recordClick(clickEvent) {
939
+ DevToolsAPI.sendMessageToEmbedder('recordClick', [clickEvent], null);
940
+ }
1465
941
 
1466
- Object.defineProperty(object, property, {
1467
- /**
1468
- * @returns
1469
- */
1470
- get: function() {
1471
- return storage.get(property);
1472
- },
1473
-
1474
- /**
1475
- * @param value
1476
- */
1477
- set: function(value) {
1478
- storage.set(property, value);
1479
- changedProperties.add(property);
1480
- scheduleObserver();
1481
- }
1482
- });
942
+ /**
943
+ * @param hoverEvent
944
+ */
945
+ recordHover(hoverEvent) {
946
+ DevToolsAPI.sendMessageToEmbedder('recordHover', [hoverEvent], null);
1483
947
  }
1484
948
 
1485
- for (let i = 0; i < properties.length; ++i) {
1486
- defineProperty(properties[i]);
949
+ /**
950
+ * @param dragEvent
951
+ */
952
+ recordDrag(dragEvent) {
953
+ DevToolsAPI.sendMessageToEmbedder('recordDrag', [dragEvent], null);
1487
954
  }
1488
- }
1489
955
 
1490
- window.Object.observe = objectObserve;
1491
- }
1492
-
1493
- /** @type {!Map<number, string>} */
1494
- const staticKeyIdentifiers = new Map([
1495
- [0x12, 'Alt'],
1496
- [0x11, 'Control'],
1497
- [0x10, 'Shift'],
1498
- [0x14, 'CapsLock'],
1499
- [0x5b, 'Win'],
1500
- [0x5c, 'Win'],
1501
- [0x0c, 'Clear'],
1502
- [0x28, 'Down'],
1503
- [0x23, 'End'],
1504
- [0x0a, 'Enter'],
1505
- [0x0d, 'Enter'],
1506
- [0x2b, 'Execute'],
1507
- [0x70, 'F1'],
1508
- [0x71, 'F2'],
1509
- [0x72, 'F3'],
1510
- [0x73, 'F4'],
1511
- [0x74, 'F5'],
1512
- [0x75, 'F6'],
1513
- [0x76, 'F7'],
1514
- [0x77, 'F8'],
1515
- [0x78, 'F9'],
1516
- [0x79, 'F10'],
1517
- [0x7a, 'F11'],
1518
- [0x7b, 'F12'],
1519
- [0x7c, 'F13'],
1520
- [0x7d, 'F14'],
1521
- [0x7e, 'F15'],
1522
- [0x7f, 'F16'],
1523
- [0x80, 'F17'],
1524
- [0x81, 'F18'],
1525
- [0x82, 'F19'],
1526
- [0x83, 'F20'],
1527
- [0x84, 'F21'],
1528
- [0x85, 'F22'],
1529
- [0x86, 'F23'],
1530
- [0x87, 'F24'],
1531
- [0x2f, 'Help'],
1532
- [0x24, 'Home'],
1533
- [0x2d, 'Insert'],
1534
- [0x25, 'Left'],
1535
- [0x22, 'PageDown'],
1536
- [0x21, 'PageUp'],
1537
- [0x13, 'Pause'],
1538
- [0x2c, 'PrintScreen'],
1539
- [0x27, 'Right'],
1540
- [0x91, 'Scroll'],
1541
- [0x29, 'Select'],
1542
- [0x26, 'Up'],
1543
- [0x2e, 'U+007F'], // Standard says that DEL becomes U+007F.
1544
- [0xb0, 'MediaNextTrack'],
1545
- [0xb1, 'MediaPreviousTrack'],
1546
- [0xb2, 'MediaStop'],
1547
- [0xb3, 'MediaPlayPause'],
1548
- [0xad, 'VolumeMute'],
1549
- [0xae, 'VolumeDown'],
1550
- [0xaf, 'VolumeUp'],
1551
- ]);
1552
-
1553
- /**
1554
- * @param keyCode
1555
- * @returns
1556
- */
1557
- function keyCodeToKeyIdentifier(keyCode) {
1558
- let result = staticKeyIdentifiers.get(keyCode);
1559
- if (result !== undefined) {
1560
- return result;
1561
- }
1562
- result = 'U+';
1563
- const hexString = keyCode.toString(16).toUpperCase();
1564
- for (let i = hexString.length; i < 4; ++i) {
1565
- result += '0';
1566
- }
1567
- result += hexString;
1568
- return result;
1569
- }
956
+ /**
957
+ * @param changeEvent
958
+ */
959
+ recordChange(changeEvent) {
960
+ DevToolsAPI.sendMessageToEmbedder('recordChange', [changeEvent], null);
961
+ }
1570
962
 
1571
- function installBackwardsCompatibility() {
1572
- const majorVersion = getRemoteMajorVersion();
1573
- if (!majorVersion) {
1574
- return;
1575
- }
963
+ /**
964
+ * @param keyDownEvent
965
+ */
966
+ recordKeyDown(keyDownEvent) {
967
+ DevToolsAPI.sendMessageToEmbedder('recordKeyDown', [keyDownEvent], null);
968
+ }
1576
969
 
1577
- /** @type {!Array<string>} */
1578
- const styleRules = [];
1579
- // Shadow DOM V0 polyfill
1580
- if (majorVersion <= 73 && !Element.prototype.createShadowRoot) {
1581
- Element.prototype.createShadowRoot = function() {
1582
- try {
1583
- return this.attachShadow({mode: 'open'});
1584
- } catch {
1585
- // some elements we use to add shadow roots can no
1586
- // longer have shadow roots.
1587
- const fakeShadowHost = document.createElement('span');
1588
- this.appendChild(fakeShadowHost);
1589
- fakeShadowHost.className = 'fake-shadow-host';
1590
- return fakeShadowHost.createShadowRoot();
1591
- }
1592
- };
970
+ /**
971
+ * @param settingAccessEvent
972
+ */
973
+ recordSettingAccess(settingAccessEvent) {
974
+ DevToolsAPI.sendMessageToEmbedder('recordSettingAccess', [settingAccessEvent], null);
975
+ }
1593
976
 
1594
- const origAdd = DOMTokenList.prototype.add;
1595
- DOMTokenList.prototype.add = function(...tokens) {
1596
- if (tokens[0].startsWith('insertion-point') || tokens[0].startsWith('tabbed-pane-header')) {
1597
- this._myElement.slot = '.' + tokens[0];
1598
- }
1599
- return origAdd.apply(this, tokens);
1600
- };
977
+ /**
978
+ * @param functionCallEvent
979
+ */
980
+ recordFunctionCall(functionCallEvent) {
981
+ DevToolsAPI.sendMessageToEmbedder('recordFunctionCall', [functionCallEvent], null);
982
+ }
1601
983
 
1602
- const origCreateElement = Document.prototype.createElement;
1603
- Document.prototype.createElement = function(tagName, ...rest) {
1604
- if (tagName === 'content') {
1605
- tagName = 'slot';
1606
- }
1607
- const element = origCreateElement.call(this, tagName, ...rest);
1608
- element.classList._myElement = element;
1609
- return element;
1610
- };
1611
-
1612
- Object.defineProperty(HTMLSlotElement.prototype, 'select', {
1613
- set(selector) {
1614
- this.name = selector;
1615
- }
1616
- });
1617
- }
984
+ // Backward-compatible methods below this line --------------------------------------------
1618
985
 
1619
- // Custom Elements V0 polyfill
1620
- if (majorVersion <= 73 && !Document.prototype.hasOwnProperty('registerElement')) {
1621
- const fakeRegistry = new Map();
1622
- Document.prototype.registerElement = function(typeExtension, options) {
1623
- const {prototype, extends: localName} = options;
1624
- const document = this;
1625
- const callback = function() {
1626
- const element = document.createElement(localName || typeExtension);
1627
- const skip = new Set(['constructor', '__proto__']);
1628
- for (const key of Object.keys(Object.getOwnPropertyDescriptors(prototype.__proto__ || {}))) {
1629
- if (skip.has(key)) {
1630
- continue;
1631
- }
1632
- element[key] = prototype[key];
1633
- }
1634
- element.setAttribute('is', typeExtension);
1635
- if (element['createdCallback']) {
1636
- element['createdCallback']();
1637
- }
1638
- return element;
1639
- };
1640
- fakeRegistry.set(typeExtension, callback);
1641
- return callback;
1642
- };
1643
-
1644
- const origCreateElement = Document.prototype.createElement;
1645
- Document.prototype.createElement = function(tagName, fakeCustomElementType) {
1646
- const fakeConstructor = fakeRegistry.get(fakeCustomElementType);
1647
- if (fakeConstructor) {
1648
- return fakeConstructor();
1649
- }
1650
- return origCreateElement.call(this, tagName, fakeCustomElementType);
1651
- };
1652
-
1653
- // DevTools front-ends mistakenly assume that
1654
- // classList.toggle('a', undefined) works as
1655
- // classList.toggle('a', false) rather than as
1656
- // classList.toggle('a');
1657
- const originalDOMTokenListToggle = DOMTokenList.prototype.toggle;
1658
- DOMTokenList.prototype.toggle = function(token, force) {
1659
- if (arguments.length === 1) {
1660
- force = !this.contains(token);
1661
- }
1662
- return originalDOMTokenListToggle.call(this, token, Boolean(force));
1663
- };
1664
- }
986
+ /**
987
+ * @returns
988
+ */
989
+ initialTargetId() {
990
+ return DevToolsAPI._initialTargetIdPromiseWithResolver.promise;
991
+ }
1665
992
 
1666
- if (majorVersion <= 66) {
1667
- /** @type {(!function(number, number):Element|undefined)} */
1668
- ShadowRoot.prototype.__originalShadowRootElementFromPoint;
1669
-
1670
- if (!ShadowRoot.prototype.__originalShadowRootElementFromPoint) {
1671
- ShadowRoot.prototype.__originalShadowRootElementFromPoint = ShadowRoot.prototype.elementFromPoint;
1672
- /**
1673
- * @param x
1674
- * @param y
1675
- * @returns
1676
- */
1677
- ShadowRoot.prototype.elementFromPoint = function(x, y) {
1678
- const originalResult = ShadowRoot.prototype.__originalShadowRootElementFromPoint.apply(this, arguments);
1679
- if (this.host && originalResult === this.host) {
1680
- return null;
1681
- }
1682
- return originalResult;
1683
- };
993
+ /**
994
+ * @param request
995
+ * @param streamId
996
+ * @param cb
997
+ */
998
+ doAidaConversation(request, streamId, cb) {
999
+ DevToolsAPI.sendMessageToEmbedder('doAidaConversation', [request, streamId], cb);
1684
1000
  }
1685
- }
1686
1001
 
1687
- if (majorVersion <= 53) {
1688
- Object.defineProperty(window.KeyboardEvent.prototype, 'keyIdentifier', {
1689
- /**
1690
- * @returns
1691
- * @this {KeyboardEvent}
1692
- */
1693
- get: function() {
1694
- return keyCodeToKeyIdentifier(this.keyCode);
1695
- }
1696
- });
1697
- }
1002
+ /**
1003
+ * @param request
1004
+ * @param cb
1005
+ */
1006
+ aidaCodeComplete(request, cb) {
1007
+ DevToolsAPI.sendMessageToEmbedder('aidaCodeComplete', [request], cb);
1008
+ }
1698
1009
 
1699
- if (majorVersion <= 50) {
1700
- installObjectObserve();
1701
- }
1010
+ /**
1011
+ * @param request
1012
+ * @param cb
1013
+ */
1014
+ registerAidaClientEvent(request, cb) {
1015
+ DevToolsAPI.sendMessageToEmbedder('registerAidaClientEvent', [request], cb);
1016
+ }
1702
1017
 
1703
- if (majorVersion <= 71) {
1704
- styleRules.push(
1705
- '.coverage-toolbar-container, .animation-timeline-toolbar-container, .computed-properties { flex-basis: auto; }');
1018
+ /**
1019
+ * @param request
1020
+ * @param cb
1021
+ */
1022
+ dispatchHttpRequest(request, cb) {
1023
+ DevToolsAPI.sendMessageToEmbedder('dispatchHttpRequest', [request], cb);
1024
+ }
1706
1025
  }
1707
1026
 
1708
- if (majorVersion <= 50) {
1709
- Event.prototype.deepPath = undefined;
1027
+ window.InspectorFrontendHost = new InspectorFrontendHostImpl();
1028
+
1029
+ // DevToolsApp ---------------------------------------------------------------
1030
+
1031
+ const staticKeyIdentifiers = new Map([
1032
+ [0x12, 'Alt'],
1033
+ [0x11, 'Control'],
1034
+ [0x10, 'Shift'],
1035
+ [0x14, 'CapsLock'],
1036
+ [0x5b, 'Win'],
1037
+ [0x5c, 'Win'],
1038
+ [0x0c, 'Clear'],
1039
+ [0x28, 'Down'],
1040
+ [0x23, 'End'],
1041
+ [0x0a, 'Enter'],
1042
+ [0x0d, 'Enter'],
1043
+ [0x2b, 'Execute'],
1044
+ [0x70, 'F1'],
1045
+ [0x71, 'F2'],
1046
+ [0x72, 'F3'],
1047
+ [0x73, 'F4'],
1048
+ [0x74, 'F5'],
1049
+ [0x75, 'F6'],
1050
+ [0x76, 'F7'],
1051
+ [0x77, 'F8'],
1052
+ [0x78, 'F9'],
1053
+ [0x79, 'F10'],
1054
+ [0x7a, 'F11'],
1055
+ [0x7b, 'F12'],
1056
+ [0x7c, 'F13'],
1057
+ [0x7d, 'F14'],
1058
+ [0x7e, 'F15'],
1059
+ [0x7f, 'F16'],
1060
+ [0x80, 'F17'],
1061
+ [0x81, 'F18'],
1062
+ [0x82, 'F19'],
1063
+ [0x83, 'F20'],
1064
+ [0x84, 'F21'],
1065
+ [0x85, 'F22'],
1066
+ [0x86, 'F23'],
1067
+ [0x87, 'F24'],
1068
+ [0x2f, 'Help'],
1069
+ [0x24, 'Home'],
1070
+ [0x2d, 'Insert'],
1071
+ [0x25, 'Left'],
1072
+ [0x22, 'PageDown'],
1073
+ [0x21, 'PageUp'],
1074
+ [0x13, 'Pause'],
1075
+ [0x2c, 'PrintScreen'],
1076
+ [0x27, 'Right'],
1077
+ [0x91, 'Scroll'],
1078
+ [0x29, 'Select'],
1079
+ [0x26, 'Up'],
1080
+ [0x2e, 'U+007F'], // Standard says that DEL becomes U+007F.
1081
+ [0xb0, 'MediaNextTrack'],
1082
+ [0xb1, 'MediaPreviousTrack'],
1083
+ [0xb2, 'MediaStop'],
1084
+ [0xb3, 'MediaPlayPause'],
1085
+ [0xad, 'VolumeMute'],
1086
+ [0xae, 'VolumeDown'],
1087
+ [0xaf, 'VolumeUp']
1088
+ ]);
1089
+
1090
+ /**
1091
+ * @param keyCode {number}
1092
+ * @returns
1093
+ */
1094
+ function keyCodeToKeyIdentifier(keyCode) {
1095
+ let result = staticKeyIdentifiers.get(keyCode);
1096
+ if (result !== undefined) {
1097
+ return result;
1098
+ }
1099
+ result = 'U+';
1100
+ const hexString = keyCode.toString(16).toUpperCase();
1101
+ for (let i = hexString.length; i < 4; ++i) {
1102
+ result += '0';
1103
+ }
1104
+ result += hexString;
1105
+ return result;
1710
1106
  }
1711
1107
 
1712
- if (majorVersion <= 54) {
1713
- window.FileError = /** @type {!function (new: FileError) : ?} */ ({
1714
- NOT_FOUND_ERR: DOMException.NOT_FOUND_ERR,
1715
- ABORT_ERR: DOMException.ABORT_ERR,
1716
- INVALID_MODIFICATION_ERR: DOMException.INVALID_MODIFICATION_ERR,
1717
- NOT_READABLE_ERR: 0 // No matching DOMException, so code will be 0.
1718
- });
1108
+ function installBackwardsCompatibility() {
1109
+ // Any polyfill that we need for backwards compatibility should be
1110
+ // Added in this function
1719
1111
  }
1720
1112
 
1721
- installExtraStyleRules(styleRules);
1722
- }
1723
-
1724
- /**
1725
- * @returns
1726
- */
1727
- function getRemoteMajorVersion() {
1728
- try {
1729
- const remoteVersion = new URLSearchParams(window.location.search).get('remoteVersion');
1730
- if (!remoteVersion) {
1731
- return null;
1732
- }
1733
- const majorVersion = parseInt(remoteVersion.split('.')[0], 10);
1734
- return majorVersion;
1735
- } catch {
1736
- return null;
1737
- }
1738
- }
1739
-
1740
- /**
1741
- * @param styleRules
1742
- */
1743
- function installExtraStyleRules(styleRules) {
1744
- if (!styleRules.length) {
1745
- return;
1746
- }
1747
- const styleText = styleRules.join('\n');
1748
- document.head.appendChild(createStyleElement(styleText));
1749
-
1750
- const origCreateShadowRoot = HTMLElement.prototype.createShadowRoot;
1751
- HTMLElement.prototype.createShadowRoot = function(...args) {
1752
- const shadowRoot = origCreateShadowRoot.call(this, ...args);
1753
- shadowRoot.appendChild(createStyleElement(styleText));
1754
- return shadowRoot;
1755
- };
1756
- }
1757
-
1758
- /**
1759
- * @param styleText
1760
- * @returns
1761
- */
1762
- function createStyleElement(styleText) {
1763
- const style = document.createElement('style');
1764
- style.textContent = styleText;
1765
- return style;
1766
- }
1767
-
1768
- installBackwardsCompatibility();
1113
+ installBackwardsCompatibility();
1769
1114
  })(window);