chrome-devtools-frontend 1.0.982087 → 1.0.995227

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 (489) hide show
  1. package/AUTHORS +2 -0
  2. package/config/gni/devtools_grd_files.gni +8 -7
  3. package/config/gni/devtools_image_files.gni +1 -0
  4. package/front_end/.eslintrc.js +10 -0
  5. package/front_end/Images/src/ic_rendering.svg +3 -0
  6. package/front_end/core/common/ParsedURL.ts +39 -28
  7. package/front_end/core/common/ResourceType.ts +1 -1
  8. package/front_end/core/common/SettingRegistration.ts +1 -0
  9. package/front_end/core/host/InspectorFrontendHost.ts +4 -4
  10. package/front_end/core/host/InspectorFrontendHostAPI.ts +7 -6
  11. package/front_end/core/host/Platform.ts +11 -2
  12. package/front_end/core/host/UserMetrics.ts +27 -2
  13. package/front_end/core/i18n/DevToolsLocale.ts +4 -0
  14. package/front_end/core/i18n/locales/af.json +76 -16
  15. package/front_end/core/i18n/locales/am.json +76 -16
  16. package/front_end/core/i18n/locales/ar.json +77 -17
  17. package/front_end/core/i18n/locales/as.json +76 -16
  18. package/front_end/core/i18n/locales/az.json +76 -16
  19. package/front_end/core/i18n/locales/be.json +75 -15
  20. package/front_end/core/i18n/locales/bg.json +76 -16
  21. package/front_end/core/i18n/locales/bn.json +76 -16
  22. package/front_end/core/i18n/locales/bs.json +88 -28
  23. package/front_end/core/i18n/locales/ca.json +76 -16
  24. package/front_end/core/i18n/locales/cs.json +76 -16
  25. package/front_end/core/i18n/locales/cy.json +76 -16
  26. package/front_end/core/i18n/locales/da.json +77 -17
  27. package/front_end/core/i18n/locales/de.json +178 -118
  28. package/front_end/core/i18n/locales/el.json +76 -16
  29. package/front_end/core/i18n/locales/en-GB.json +76 -16
  30. package/front_end/core/i18n/locales/en-US.json +193 -52
  31. package/front_end/core/i18n/locales/en-XL.json +193 -52
  32. package/front_end/core/i18n/locales/es-419.json +76 -16
  33. package/front_end/core/i18n/locales/es.json +76 -16
  34. package/front_end/core/i18n/locales/et.json +76 -16
  35. package/front_end/core/i18n/locales/eu.json +76 -16
  36. package/front_end/core/i18n/locales/fa.json +83 -23
  37. package/front_end/core/i18n/locales/fi.json +76 -16
  38. package/front_end/core/i18n/locales/fil.json +76 -16
  39. package/front_end/core/i18n/locales/fr-CA.json +76 -16
  40. package/front_end/core/i18n/locales/fr.json +76 -16
  41. package/front_end/core/i18n/locales/gl.json +76 -16
  42. package/front_end/core/i18n/locales/gu.json +76 -16
  43. package/front_end/core/i18n/locales/he.json +76 -16
  44. package/front_end/core/i18n/locales/hi.json +76 -16
  45. package/front_end/core/i18n/locales/hr.json +76 -16
  46. package/front_end/core/i18n/locales/hu.json +76 -16
  47. package/front_end/core/i18n/locales/hy.json +76 -16
  48. package/front_end/core/i18n/locales/id.json +79 -19
  49. package/front_end/core/i18n/locales/is.json +75 -15
  50. package/front_end/core/i18n/locales/it.json +124 -64
  51. package/front_end/core/i18n/locales/ja.json +76 -16
  52. package/front_end/core/i18n/locales/ka.json +76 -16
  53. package/front_end/core/i18n/locales/kk.json +76 -16
  54. package/front_end/core/i18n/locales/km.json +76 -16
  55. package/front_end/core/i18n/locales/kn.json +76 -16
  56. package/front_end/core/i18n/locales/ko.json +76 -16
  57. package/front_end/core/i18n/locales/ky.json +76 -16
  58. package/front_end/core/i18n/locales/lo.json +76 -16
  59. package/front_end/core/i18n/locales/lt.json +76 -16
  60. package/front_end/core/i18n/locales/lv.json +76 -16
  61. package/front_end/core/i18n/locales/mk.json +76 -16
  62. package/front_end/core/i18n/locales/ml.json +76 -16
  63. package/front_end/core/i18n/locales/mn.json +76 -16
  64. package/front_end/core/i18n/locales/mr.json +76 -16
  65. package/front_end/core/i18n/locales/ms.json +76 -16
  66. package/front_end/core/i18n/locales/my.json +78 -18
  67. package/front_end/core/i18n/locales/ne.json +76 -16
  68. package/front_end/core/i18n/locales/nl.json +77 -17
  69. package/front_end/core/i18n/locales/no.json +76 -16
  70. package/front_end/core/i18n/locales/or.json +76 -16
  71. package/front_end/core/i18n/locales/pa.json +76 -16
  72. package/front_end/core/i18n/locales/pl.json +78 -18
  73. package/front_end/core/i18n/locales/pt-PT.json +123 -63
  74. package/front_end/core/i18n/locales/pt.json +78 -18
  75. package/front_end/core/i18n/locales/ro.json +76 -16
  76. package/front_end/core/i18n/locales/ru.json +77 -17
  77. package/front_end/core/i18n/locales/si.json +76 -16
  78. package/front_end/core/i18n/locales/sk.json +76 -16
  79. package/front_end/core/i18n/locales/sl.json +76 -16
  80. package/front_end/core/i18n/locales/sq.json +76 -16
  81. package/front_end/core/i18n/locales/sr-Latn.json +76 -16
  82. package/front_end/core/i18n/locales/sr.json +76 -16
  83. package/front_end/core/i18n/locales/sv.json +76 -16
  84. package/front_end/core/i18n/locales/sw.json +76 -16
  85. package/front_end/core/i18n/locales/ta.json +77 -17
  86. package/front_end/core/i18n/locales/te.json +76 -16
  87. package/front_end/core/i18n/locales/th.json +76 -16
  88. package/front_end/core/i18n/locales/tr.json +76 -16
  89. package/front_end/core/i18n/locales/uk.json +76 -16
  90. package/front_end/core/i18n/locales/ur.json +76 -16
  91. package/front_end/core/i18n/locales/uz.json +77 -17
  92. package/front_end/core/i18n/locales/vi.json +76 -16
  93. package/front_end/core/i18n/locales/zh-HK.json +76 -16
  94. package/front_end/core/i18n/locales/zh-TW.json +76 -16
  95. package/front_end/core/i18n/locales/zh.json +76 -16
  96. package/front_end/core/i18n/locales/zu.json +76 -16
  97. package/front_end/core/platform/dom-utilities.ts +16 -0
  98. package/front_end/core/platform/platform.ts +2 -0
  99. package/front_end/core/protocol_client/InspectorBackend.ts +2 -1
  100. package/front_end/core/protocol_client/NodeURL.ts +1 -1
  101. package/front_end/core/root/Runtime.ts +6 -0
  102. package/front_end/core/sdk/AccessibilityModel.ts +7 -6
  103. package/front_end/core/sdk/CSSMatchedStyles.ts +71 -17
  104. package/front_end/core/sdk/CSSMetadata.ts +15 -0
  105. package/front_end/core/sdk/CSSModel.ts +9 -7
  106. package/front_end/core/sdk/CSSProperty.ts +97 -11
  107. package/front_end/core/sdk/CSSStyleSheetHeader.ts +9 -5
  108. package/front_end/core/sdk/CSSSupports.ts +4 -1
  109. package/front_end/core/sdk/ChildTargetManager.ts +3 -1
  110. package/front_end/core/sdk/Connections.ts +3 -2
  111. package/front_end/core/sdk/ConsoleModel.ts +6 -5
  112. package/front_end/core/sdk/Cookie.ts +4 -2
  113. package/front_end/core/sdk/DOMDebuggerModel.ts +10 -6
  114. package/front_end/core/sdk/DOMModel.ts +2 -2
  115. package/front_end/core/sdk/DebuggerModel.ts +27 -5
  116. package/front_end/core/sdk/HeapProfilerModel.ts +2 -1
  117. package/front_end/core/sdk/NetworkManager.ts +13 -12
  118. package/front_end/core/sdk/NetworkRequest.ts +1 -1
  119. package/front_end/core/sdk/PageLoad.ts +3 -1
  120. package/front_end/core/sdk/PageResourceLoader.ts +9 -7
  121. package/front_end/core/sdk/ProfileTreeModel.ts +3 -2
  122. package/front_end/core/sdk/RemoteObject.ts +18 -6
  123. package/front_end/core/sdk/ResourceTreeModel.ts +17 -11
  124. package/front_end/core/sdk/ScreenCaptureModel.ts +3 -0
  125. package/front_end/core/sdk/Script.ts +4 -3
  126. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +2 -1
  127. package/front_end/core/sdk/SourceMap.ts +10 -6
  128. package/front_end/core/sdk/SourceMapManager.ts +47 -5
  129. package/front_end/core/sdk/TracingModel.ts +0 -9
  130. package/front_end/devtools_compatibility.js +1 -0
  131. package/front_end/entrypoints/formatter_worker/CSSRuleParser.ts +1 -1
  132. package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +10 -3
  133. package/front_end/entrypoints/main/MainImpl.ts +22 -2
  134. package/front_end/generated/InspectorBackendCommands.js +79 -14
  135. package/front_end/generated/SupportedCSSProperties.js +21 -8
  136. package/front_end/generated/protocol-mapping.d.ts +4 -0
  137. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  138. package/front_end/generated/protocol.ts +158 -28
  139. package/front_end/legacy/legacy-defs.d.ts +0 -4
  140. package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +1 -1
  141. package/front_end/legacy_test_runner/test_runner/TestRunner.js +1 -0
  142. package/front_end/models/bindings/BreakpointManager.ts +68 -11
  143. package/front_end/models/bindings/CSSWorkspaceBinding.ts +9 -2
  144. package/front_end/models/bindings/CompilerScriptMapping.ts +3 -2
  145. package/front_end/models/bindings/ContentProviderBasedProject.ts +12 -9
  146. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +10 -8
  147. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -1
  148. package/front_end/models/bindings/DefaultScriptMapping.ts +8 -2
  149. package/front_end/models/bindings/IgnoreListManager.ts +5 -5
  150. package/front_end/models/bindings/ResourceUtils.ts +5 -4
  151. package/front_end/models/emulation/EmulatedDevices.ts +17 -0
  152. package/front_end/models/extensions/ExtensionAPI.ts +5 -2
  153. package/front_end/models/extensions/ExtensionPanel.ts +2 -1
  154. package/front_end/models/extensions/ExtensionServer.ts +13 -8
  155. package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -63
  156. package/front_end/models/issues_manager/CookieIssue.ts +7 -0
  157. package/front_end/models/issues_manager/DeprecationIssue.ts +326 -8
  158. package/front_end/models/issues_manager/IssuesManager.ts +4 -0
  159. package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  160. package/front_end/models/issues_manager/descriptions/deprecation.md +1 -1
  161. package/front_end/models/logs/LogManager.ts +2 -1
  162. package/front_end/models/logs/NetworkLog.ts +14 -12
  163. package/front_end/models/persistence/Automapping.ts +17 -16
  164. package/front_end/models/persistence/EditFileSystemView.ts +5 -4
  165. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +24 -24
  166. package/front_end/models/persistence/IsolatedFileSystem.ts +2 -2
  167. package/front_end/models/persistence/IsolatedFileSystemManager.ts +7 -6
  168. package/front_end/models/persistence/NetworkPersistenceManager.ts +92 -54
  169. package/front_end/models/persistence/PersistenceImpl.ts +7 -7
  170. package/front_end/models/persistence/PlatformFileSystem.ts +7 -8
  171. package/front_end/models/persistence/WorkspaceSettingsTab.ts +3 -2
  172. package/front_end/models/text_utils/CodeMirrorUtils.ts +53 -0
  173. package/front_end/models/text_utils/text_utils.ts +2 -0
  174. package/front_end/models/timeline_model/TimelineModel.ts +31 -30
  175. package/front_end/models/timeline_model/TimelineProfileTree.ts +3 -2
  176. package/front_end/models/workspace/UISourceCode.ts +16 -14
  177. package/front_end/models/workspace/WorkspaceImpl.ts +40 -16
  178. package/front_end/panels/accessibility/AccessibilitySubPane.ts +2 -1
  179. package/front_end/panels/application/AppManifestView.ts +1 -1
  180. package/front_end/panels/application/ApplicationPanelCacheSection.ts +5 -4
  181. package/front_end/panels/application/ApplicationPanelSidebar.ts +34 -30
  182. package/front_end/panels/application/ApplicationPanelTreeElement.ts +5 -4
  183. package/front_end/panels/application/DatabaseQueryView.ts +2 -1
  184. package/front_end/panels/application/InterestGroupTreeElement.ts +3 -2
  185. package/front_end/panels/application/ReportingApiTreeElement.ts +3 -2
  186. package/front_end/panels/application/ResourcesPanel.ts +4 -3
  187. package/front_end/panels/application/ServiceWorkerCacheViews.ts +6 -1
  188. package/front_end/panels/application/TrustTokensTreeElement.ts +3 -2
  189. package/front_end/panels/application/components/BackForwardCacheStrings.ts +10 -1
  190. package/front_end/panels/application/components/BackForwardCacheView.ts +163 -13
  191. package/front_end/panels/application/components/backForwardCacheView.css +15 -4
  192. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +19 -19
  193. package/front_end/panels/changes/ChangesView.ts +38 -0
  194. package/front_end/panels/console/ConsolePinPane.ts +7 -0
  195. package/front_end/panels/console/ConsolePrompt.ts +11 -1
  196. package/front_end/panels/console/ConsoleSidebar.ts +2 -1
  197. package/front_end/panels/console/ConsoleView.ts +57 -31
  198. package/front_end/panels/console/ConsoleViewMessage.ts +12 -9
  199. package/front_end/panels/console/ConsoleViewport.ts +2 -1
  200. package/front_end/panels/console/ErrorStackParser.ts +8 -4
  201. package/front_end/panels/console/consoleView.css +0 -1
  202. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  203. package/front_end/panels/coverage/CoverageModel.ts +6 -6
  204. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
  205. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +7 -6
  206. package/front_end/panels/css_overview/components/cssOverviewStartView.css +0 -48
  207. package/front_end/panels/css_overview/cssOverviewCompletedView.css +5 -0
  208. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +2 -0
  209. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -1
  210. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -1
  211. package/front_end/panels/elements/ElementStatePaneWidget.ts +4 -6
  212. package/front_end/panels/elements/ElementsPanel.ts +16 -5
  213. package/front_end/panels/elements/ImagePreviewPopover.ts +6 -4
  214. package/front_end/panels/elements/PropertiesWidget.ts +4 -24
  215. package/front_end/panels/elements/StyleEditorWidget.ts +2 -1
  216. package/front_end/panels/elements/StylePropertiesSection.ts +1614 -0
  217. package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -1
  218. package/front_end/panels/elements/StylePropertyTreeElement.ts +20 -1
  219. package/front_end/panels/elements/StylesSidebarPane.ts +97 -1675
  220. package/front_end/panels/elements/elements-legacy.ts +3 -3
  221. package/front_end/panels/elements/elements.ts +3 -0
  222. package/front_end/panels/elements/stylesSidebarPane.css +3 -1
  223. package/front_end/panels/input/InputTimeline.ts +1 -1
  224. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -50
  225. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +14 -2
  226. package/front_end/panels/issues/IssueAggregator.ts +8 -0
  227. package/front_end/panels/issues/issues.ts +2 -0
  228. package/front_end/panels/lighthouse/LighthouseController.ts +5 -1
  229. package/front_end/panels/lighthouse/LighthousePanel.ts +3 -1
  230. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +3 -3
  231. package/front_end/panels/network/BlockedURLsPane.ts +3 -2
  232. package/front_end/panels/network/NetworkConfigView.ts +6 -0
  233. package/front_end/panels/network/NetworkDataGridNode.ts +4 -0
  234. package/front_end/panels/network/NetworkLogView.ts +1 -1
  235. package/front_end/panels/network/RequestHTMLView.ts +1 -0
  236. package/front_end/panels/network/RequestHeadersView.ts +71 -10
  237. package/front_end/panels/network/networkLogView.css +9 -17
  238. package/front_end/panels/network/requestHeadersTree.css +16 -0
  239. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -0
  240. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  241. package/front_end/panels/profiler/ProfilesPanel.ts +2 -1
  242. package/front_end/panels/profiler/heapProfiler.css +15 -3
  243. package/front_end/panels/screencast/ScreencastView.ts +1 -1
  244. package/front_end/panels/search/SearchConfig.ts +2 -1
  245. package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
  246. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -2
  247. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +4 -4
  248. package/front_end/panels/sources/BreakpointEditDialog.ts +0 -1
  249. package/front_end/panels/sources/CSSPlugin.ts +6 -6
  250. package/front_end/panels/sources/CoveragePlugin.ts +2 -1
  251. package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
  252. package/front_end/panels/sources/EditingLocationHistoryManager.ts +4 -1
  253. package/front_end/panels/sources/NavigatorView.ts +28 -20
  254. package/front_end/panels/sources/SearchSourcesView.ts +2 -2
  255. package/front_end/panels/sources/SourcesNavigator.ts +4 -2
  256. package/front_end/panels/sources/SourcesPanel.ts +4 -4
  257. package/front_end/panels/sources/SourcesSearchScope.ts +12 -8
  258. package/front_end/panels/sources/SourcesView.ts +3 -1
  259. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  260. package/front_end/panels/sources/components/HeadersView.ts +1 -1
  261. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +9 -9
  262. package/front_end/panels/timeline/TimelinePanel.ts +1 -1
  263. package/front_end/panels/timeline/timelinePanel.css +1 -2
  264. package/front_end/panels/utils/utils.ts +97 -0
  265. package/front_end/third_party/codemirror.next/bundle.ts +27 -25
  266. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  267. package/front_end/third_party/codemirror.next/chunk/cpp.js +2 -2
  268. package/front_end/third_party/codemirror.next/chunk/java.js +2 -1
  269. package/front_end/third_party/codemirror.next/chunk/json.js +2 -2
  270. package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
  271. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -2
  272. package/front_end/third_party/codemirror.next/chunk/php.js +2 -1
  273. package/front_end/third_party/codemirror.next/chunk/python.js +2 -2
  274. package/front_end/third_party/codemirror.next/chunk/wast.js +2 -1
  275. package/front_end/third_party/codemirror.next/chunk/xml.js +2 -1
  276. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1884 -2281
  277. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  278. package/front_end/third_party/codemirror.next/package.json +21 -32
  279. package/front_end/third_party/lit-html/README.chromium +3 -3
  280. package/front_end/third_party/lit-html/package/README.md +1 -1
  281. package/front_end/third_party/lit-html/package/async-directive.d.ts +1 -1
  282. package/front_end/third_party/lit-html/package/async-directive.js.map +1 -1
  283. package/front_end/third_party/lit-html/package/development/async-directive.d.ts +1 -1
  284. package/front_end/third_party/lit-html/package/development/async-directive.js.map +1 -1
  285. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts +32 -0
  286. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts.map +1 -0
  287. package/front_end/third_party/lit-html/package/development/directives/choose.js +41 -0
  288. package/front_end/third_party/lit-html/package/development/directives/choose.js.map +1 -0
  289. package/front_end/third_party/lit-html/package/development/directives/join.d.ts +21 -0
  290. package/front_end/third_party/lit-html/package/development/directives/join.d.ts.map +1 -0
  291. package/front_end/third_party/lit-html/package/development/directives/join.js +19 -0
  292. package/front_end/third_party/lit-html/package/development/directives/join.js.map +1 -0
  293. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts +23 -0
  294. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts.map +1 -0
  295. package/front_end/third_party/lit-html/package/development/directives/keyed.js +39 -0
  296. package/front_end/third_party/lit-html/package/development/directives/keyed.js.map +1 -0
  297. package/front_end/third_party/lit-html/package/development/directives/map.d.ts +23 -0
  298. package/front_end/third_party/lit-html/package/development/directives/map.d.ts.map +1 -0
  299. package/front_end/third_party/lit-html/package/development/directives/map.js +30 -0
  300. package/front_end/third_party/lit-html/package/development/directives/map.js.map +1 -0
  301. package/front_end/third_party/lit-html/package/development/directives/range.d.ts +24 -0
  302. package/front_end/third_party/lit-html/package/development/directives/range.d.ts.map +1 -0
  303. package/front_end/third_party/lit-html/package/development/directives/range.js +13 -0
  304. package/front_end/third_party/lit-html/package/development/directives/range.js.map +1 -0
  305. package/front_end/third_party/lit-html/package/development/directives/template-content.d.ts +1 -1
  306. package/front_end/third_party/lit-html/package/development/directives/when.d.ts +26 -0
  307. package/front_end/third_party/lit-html/package/development/directives/when.d.ts.map +1 -0
  308. package/front_end/third_party/lit-html/package/development/directives/when.js +9 -0
  309. package/front_end/third_party/lit-html/package/development/directives/when.js.map +1 -0
  310. package/front_end/third_party/lit-html/package/development/lit-html.d.ts +182 -1
  311. package/front_end/third_party/lit-html/package/development/lit-html.d.ts.map +1 -1
  312. package/front_end/third_party/lit-html/package/development/lit-html.js +187 -4
  313. package/front_end/third_party/lit-html/package/development/lit-html.js.map +1 -1
  314. package/front_end/third_party/lit-html/package/development/static.d.ts.map +1 -1
  315. package/front_end/third_party/lit-html/package/development/static.js +7 -0
  316. package/front_end/third_party/lit-html/package/development/static.js.map +1 -1
  317. package/front_end/third_party/lit-html/package/directives/choose.d.ts +32 -0
  318. package/front_end/third_party/lit-html/package/directives/choose.d.ts.map +1 -0
  319. package/front_end/third_party/lit-html/package/directives/choose.js +7 -0
  320. package/front_end/third_party/lit-html/package/directives/choose.js.map +1 -0
  321. package/front_end/third_party/lit-html/package/directives/class-map.js +1 -1
  322. package/front_end/third_party/lit-html/package/directives/guard.js +1 -1
  323. package/front_end/third_party/lit-html/package/directives/join.d.ts +21 -0
  324. package/front_end/third_party/lit-html/package/directives/join.d.ts.map +1 -0
  325. package/front_end/third_party/lit-html/package/directives/join.js +7 -0
  326. package/front_end/third_party/lit-html/package/directives/join.js.map +1 -0
  327. package/front_end/third_party/lit-html/package/directives/keyed.d.ts +23 -0
  328. package/front_end/third_party/lit-html/package/directives/keyed.d.ts.map +1 -0
  329. package/front_end/third_party/lit-html/package/directives/keyed.js +7 -0
  330. package/front_end/third_party/lit-html/package/directives/keyed.js.map +1 -0
  331. package/front_end/third_party/lit-html/package/directives/map.d.ts +23 -0
  332. package/front_end/third_party/lit-html/package/directives/map.d.ts.map +1 -0
  333. package/front_end/third_party/lit-html/package/directives/map.js +7 -0
  334. package/front_end/third_party/lit-html/package/directives/map.js.map +1 -0
  335. package/front_end/third_party/lit-html/package/directives/range.d.ts +24 -0
  336. package/front_end/third_party/lit-html/package/directives/range.d.ts.map +1 -0
  337. package/front_end/third_party/lit-html/package/directives/range.js +7 -0
  338. package/front_end/third_party/lit-html/package/directives/range.js.map +1 -0
  339. package/front_end/third_party/lit-html/package/directives/ref.js +1 -1
  340. package/front_end/third_party/lit-html/package/directives/repeat.js +1 -1
  341. package/front_end/third_party/lit-html/package/directives/style-map.js +1 -1
  342. package/front_end/third_party/lit-html/package/directives/template-content.d.ts +1 -1
  343. package/front_end/third_party/lit-html/package/directives/template-content.js +1 -1
  344. package/front_end/third_party/lit-html/package/directives/unsafe-html.js +1 -1
  345. package/front_end/third_party/lit-html/package/directives/until.js +1 -1
  346. package/front_end/third_party/lit-html/package/directives/when.d.ts +26 -0
  347. package/front_end/third_party/lit-html/package/directives/when.d.ts.map +1 -0
  348. package/front_end/third_party/lit-html/package/directives/when.js +7 -0
  349. package/front_end/third_party/lit-html/package/directives/when.js.map +1 -0
  350. package/front_end/third_party/lit-html/package/lit-html.d.ts +182 -1
  351. package/front_end/third_party/lit-html/package/lit-html.d.ts.map +1 -1
  352. package/front_end/third_party/lit-html/package/lit-html.js +1 -1
  353. package/front_end/third_party/lit-html/package/lit-html.js.map +1 -1
  354. package/front_end/third_party/lit-html/package/package.json +25 -1
  355. package/front_end/third_party/lit-html/package/private-ssr-support.js +1 -1
  356. package/front_end/third_party/lit-html/package/static.d.ts.map +1 -1
  357. package/front_end/third_party/lit-html/package/static.js +1 -1
  358. package/front_end/third_party/lit-html/package/static.js.map +1 -1
  359. package/front_end/third_party/puppeteer/README.chromium +1 -1
  360. package/front_end/third_party/puppeteer/package/README.md +12 -13
  361. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js +5 -1
  362. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +5 -1
  364. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +2 -2
  366. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +2 -2
  367. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +2 -2
  368. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +13 -6
  370. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +5 -1
  372. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts +1 -0
  374. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  375. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js +4 -1
  376. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js.map +1 -1
  377. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +1 -0
  378. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  379. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +10 -0
  380. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  381. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +4 -2
  382. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
  383. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  385. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +12 -1
  386. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
  387. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js +5 -1
  388. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js.map +1 -1
  389. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +7 -6
  391. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +8 -1
  393. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  394. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +6 -2
  395. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +6 -2
  397. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  398. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  399. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +2 -2
  400. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +2 -2
  401. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +2 -2
  402. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  403. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +13 -6
  404. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  405. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts +1 -0
  406. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  407. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js +4 -1
  408. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js.map +1 -1
  409. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +1 -0
  410. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  411. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +10 -0
  412. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  413. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +4 -2
  414. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
  415. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  417. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +12 -1
  418. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
  419. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +2 -5
  421. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
  422. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +3 -0
  423. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +1 -1
  425. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  426. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +1 -1
  427. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  428. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  429. package/front_end/third_party/puppeteer/package/lib/types.d.ts +10 -6
  430. package/front_end/third_party/puppeteer/package/package.json +17 -17
  431. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +1 -1
  432. package/front_end/ui/components/data_grid/DataGrid.ts +8 -9
  433. package/front_end/ui/components/data_grid/DataGridController.ts +3 -1
  434. package/front_end/ui/components/docs/panel_introduction_steps/basic.html +25 -0
  435. package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +25 -0
  436. package/front_end/ui/components/input/input.ts +2 -2
  437. package/front_end/ui/components/linkifier/LinkifierUtils.ts +3 -1
  438. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +44 -0
  439. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +56 -0
  440. package/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.ts +5 -0
  441. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +3 -4
  442. package/front_end/ui/components/text_editor/TextEditor.ts +1 -1
  443. package/front_end/ui/components/text_editor/config.ts +1 -35
  444. package/front_end/ui/components/text_editor/javascript.ts +8 -8
  445. package/front_end/ui/components/tree_outline/TreeOutline.ts +10 -9
  446. package/front_end/ui/components/tree_outline/treeOutline.css +1 -1
  447. package/front_end/ui/legacy/ARIAUtils.ts +4 -2
  448. package/front_end/ui/legacy/ContextMenu.ts +14 -0
  449. package/front_end/ui/legacy/DockController.ts +2 -1
  450. package/front_end/ui/legacy/SettingsUI.ts +3 -3
  451. package/front_end/ui/legacy/SoftContextMenu.ts +43 -14
  452. package/front_end/ui/legacy/Toolbar.ts +16 -0
  453. package/front_end/ui/legacy/Treeoutline.ts +17 -7
  454. package/front_end/ui/legacy/UIUtils.ts +2 -2
  455. package/front_end/ui/legacy/View.ts +14 -8
  456. package/front_end/ui/legacy/ViewManager.ts +2 -1
  457. package/front_end/ui/legacy/ViewRegistration.ts +6 -0
  458. package/front_end/ui/legacy/Widget.ts +2 -1
  459. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +43 -11
  460. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +98 -48
  461. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +4 -3
  462. package/front_end/ui/legacy/components/data_grid/dataGrid.css +24 -28
  463. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +5 -11
  464. package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +8 -1
  465. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -7
  466. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +11 -10
  467. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +7 -1
  468. package/front_end/ui/legacy/components/utils/ImagePreview.ts +12 -7
  469. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -5
  470. package/front_end/ui/legacy/reportView.css +1 -0
  471. package/front_end/ui/legacy/splitWidget.css +1 -1
  472. package/front_end/ui/legacy/tabbedPane.css +1 -0
  473. package/front_end/ui/legacy/themeColors.css +1 -1
  474. package/front_end/ui/legacy/toolbar.css +17 -1
  475. package/front_end/ui/legacy/utils/focus-changed.ts +3 -1
  476. package/inspector_overlay/.eslintrc.js +9 -0
  477. package/package.json +17 -17
  478. package/scripts/eslint_rules/lib/check_component_naming.js +4 -0
  479. package/scripts/eslint_rules/lib/es_modules_import.js +6 -0
  480. package/scripts/eslint_rules/lib/inject_checkbox_styles.js +121 -0
  481. package/scripts/eslint_rules/tests/es_modules_import_test.js +12 -0
  482. package/scripts/eslint_rules/tests/inject_checkbox_styles_test.js +127 -0
  483. package/front_end/models/issues_manager/descriptions/arAttributionEventSourceTriggerDataTooLarge.md +0 -4
  484. package/front_end/models/issues_manager/descriptions/arAttributionTriggerDataTooLarge.md +0 -4
  485. package/front_end/models/issues_manager/descriptions/arInvalidAttributionData.md +0 -8
  486. package/front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md +0 -9
  487. package/front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md +0 -5
  488. package/front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md +0 -5
  489. package/front_end/models/issues_manager/descriptions/arMissingAttributionData.md +0 -7
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright (C) 2022 Google Inc. All rights reserved.
3
+ *
4
+ * Redistribution and use in source and binary forms, with or without
5
+ * modification, are permitted provided that the following conditions are
6
+ * met:
7
+ *
8
+ * * Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * * Redistributions in binary form must reproduce the above
11
+ * copyright notice, this list of conditions and the following disclaimer
12
+ * in the documentation and/or other materials provided with the
13
+ * distribution.
14
+ * * Neither the name of Google Inc. nor the names of its
15
+ * contributors may be used to endorse or promote products derived from
16
+ * this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ */
30
+
31
+ import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
32
+ type Tokenizer =
33
+ (line: string, callback: (value: string, style: string|null) => void) => void;
34
+
35
+ export function createCssTokenizer(): Tokenizer {
36
+ async function tokenize(
37
+ line: string, callback: (value: string, style: string|null) => void): Promise<void> {
38
+ const streamParser = await CodeMirror.cssStreamParser();
39
+ const stream = new CodeMirror.StringStream();
40
+ stream.string = line;
41
+
42
+ const startState = streamParser.startState();
43
+ let lastPos = stream.pos;
44
+ while (!stream.eol()) {
45
+ const token = streamParser.token(stream, startState);
46
+ const segment = stream.current().substring(lastPos, stream.pos);
47
+ callback(segment, token);
48
+ lastPos = stream.pos;
49
+ }
50
+ }
51
+ return tokenize;
52
+ }
53
+
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import * as CodeMirrorUtils from './CodeMirrorUtils.js';
5
6
  import * as ContentProvider from './ContentProvider.js';
6
7
  import * as StaticContentProvider from './StaticContentProvider.js';
7
8
  import * as Text from './Text.js';
@@ -10,6 +11,7 @@ import * as TextRange from './TextRange.js';
10
11
  import * as TextUtils from './TextUtils.js';
11
12
 
12
13
  export {
14
+ CodeMirrorUtils,
13
15
  ContentProvider,
14
16
  StaticContentProvider,
15
17
  Text,
@@ -341,7 +341,7 @@ export class TimelineModelImpl {
341
341
  }
342
342
  this.legacyCurrentPage = metaEvent.args['data'] && metaEvent.args['data']['page'];
343
343
  for (const thread of process.sortedThreads()) {
344
- let workerUrl: null = null;
344
+ let workerUrl: Platform.DevToolsPath.UrlString|null = null;
345
345
  if (thread.name() === TimelineModelImpl.WorkerThreadName ||
346
346
  thread.name() === TimelineModelImpl.WorkerThreadNameLegacy) {
347
347
  const workerMetaEvent = metadataEvents.workers.find(e => {
@@ -362,7 +362,7 @@ export class TimelineModelImpl {
362
362
  if (workerId) {
363
363
  this.workerIdByThread.set(thread, workerId);
364
364
  }
365
- workerUrl = workerMetaEvent.args['data']['url'] || '';
365
+ workerUrl = workerMetaEvent.args['data']['url'] || Platform.DevToolsPath.EmptyUrlString;
366
366
  }
367
367
  this.processThreadEvents(
368
368
  tracingModel, [{from: startTime, to: endTime}], thread, thread === metaEvent.thread, Boolean(workerUrl),
@@ -377,7 +377,7 @@ export class TimelineModelImpl {
377
377
  from: number,
378
378
  to: number,
379
379
  main: boolean,
380
- url: string,
380
+ url: Platform.DevToolsPath.UrlString,
381
381
  }[]>();
382
382
  for (const frame of this.pageFrames.values()) {
383
383
  for (let i = 0; i < frame.processes.length; i++) {
@@ -399,8 +399,8 @@ export class TimelineModelImpl {
399
399
  }
400
400
  data.sort((a, b) => a.from - b.from || a.to - b.to);
401
401
  const ranges = [];
402
- let lastUrl: string|null = null;
403
- let lastMainUrl: string|null = null;
402
+ let lastUrl: Platform.DevToolsPath.UrlString|null = null;
403
+ let lastMainUrl: Platform.DevToolsPath.UrlString|null = null;
404
404
  let hasMain = false;
405
405
  for (const item of data) {
406
406
  const last = ranges[ranges.length - 1];
@@ -447,7 +447,7 @@ export class TimelineModelImpl {
447
447
  this.workerIdByThread.set(thread, workerMetaEvent.args['data']['workerId'] || '');
448
448
  this.processThreadEvents(
449
449
  tracingModel, ranges, thread, false /* isMainThread */, true /* isWorker */, false /* forMainFrame */,
450
- workerMetaEvent.args['data']['url'] || '');
450
+ workerMetaEvent.args['data']['url'] || Platform.DevToolsPath.EmptyUrlString);
451
451
  } else {
452
452
  this.processThreadEvents(
453
453
  tracingModel, ranges, thread, false /* isMainThread */, false /* isWorker */, false /* forMainFrame */,
@@ -695,18 +695,18 @@ export class TimelineModelImpl {
695
695
  to: number,
696
696
  }[],
697
697
  thread: SDK.TracingModel.Thread, isMainThread: boolean, isWorker: boolean, forMainFrame: boolean,
698
- url: string|null): void {
698
+ url: Platform.DevToolsPath.UrlString|null): void {
699
699
  const track = new Track();
700
700
  track.name = thread.name() || i18nString(UIStrings.threadS, {PH1: thread.id()});
701
701
  track.type = TrackType.Other;
702
702
  track.thread = thread;
703
703
  if (isMainThread) {
704
704
  track.type = TrackType.MainThread;
705
- track.url = url || '';
705
+ track.url = url || Platform.DevToolsPath.EmptyUrlString;
706
706
  track.forMainFrame = forMainFrame;
707
707
  } else if (isWorker) {
708
708
  track.type = TrackType.Worker;
709
- track.url = url || '';
709
+ track.url = url || Platform.DevToolsPath.EmptyUrlString;
710
710
  track.name = track.url ? i18nString(UIStrings.workerS, {PH1: track.url}) : i18nString(UIStrings.dedicatedWorker);
711
711
  } else if (thread.name().startsWith('CompositorTileWorker')) {
712
712
  track.type = TrackType.Raster;
@@ -840,26 +840,30 @@ export class TimelineModelImpl {
840
840
  if (!lastStep) {
841
841
  throw new Error('AsyncEvent.steps access is out of bounds.');
842
842
  }
843
- // FIXME: fix event termination on the back-end instead.
844
- if (lastStep.phase !== SDK.TracingModel.Phase.AsyncEnd) {
843
+ if (lastStep.phase !== SDK.TracingModel.Phase.NestableAsyncEnd) {
845
844
  continue;
846
845
  }
847
- const data = lastStep.args['data'];
848
- asyncEvent.causedFrame = Boolean(data && data['INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT']);
846
+ const chromeLatencyInfo = asyncEvent.args['chrome_latency_info'];
847
+
848
+ const data = chromeLatencyInfo?.['component_info'];
849
+ asyncEvent.causedFrame =
850
+ Boolean(data?.some((c: any) => c['component_type'] === 'COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP'));
849
851
  if (asyncEvent.hasCategory(TimelineModelImpl.Category.LatencyInfo)) {
850
- if (lastStep.id && !this.knownInputEvents.has(lastStep.id)) {
852
+ if (lastStep.id && !this.knownInputEvents.has(chromeLatencyInfo.trace_id)) {
851
853
  continue;
852
854
  }
853
855
  if (asyncEvent.name === RecordType.InputLatencyMouseMove && !asyncEvent.causedFrame) {
854
856
  continue;
855
857
  }
856
858
  // Coalesced events are not really been processed, no need to track them.
857
- if (data['is_coalesced']) {
859
+ if (!data || data['is_coalesced']) {
858
860
  continue;
859
861
  }
860
- const rendererMain = data['INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT'];
862
+
863
+ const rendererMain =
864
+ data?.find((c: any) => c['component_type'] === 'COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN');
861
865
  if (rendererMain) {
862
- const time = rendererMain['time'] / 1000;
866
+ const time = rendererMain['time_us'] / 1000;
863
867
  TimelineData.forEvent(asyncEvent.steps[0]).timeWaitingForMainThread =
864
868
  time - asyncEvent.steps[0].startTime;
865
869
  }
@@ -1207,9 +1211,8 @@ export class TimelineModelImpl {
1207
1211
 
1208
1212
  private processBrowserEvent(event: SDK.TracingModel.Event): void {
1209
1213
  if (event.name === RecordType.LatencyInfoFlow) {
1210
- const frameId = event.args['frameTreeNodeId'];
1211
- if (typeof frameId === 'number' && frameId === this.mainFrameNodeId && event.bind_id) {
1212
- this.knownInputEvents.add(event.bind_id);
1214
+ if (event.args.chrome_latency_info.trace_id) {
1215
+ this.knownInputEvents.add(event.args.chrome_latency_info.trace_id);
1213
1216
  }
1214
1217
  return;
1215
1218
  }
@@ -1376,8 +1379,8 @@ export class TimelineModelImpl {
1376
1379
  return Array.from(this.pageFrames.values()).filter(frame => !frame.parent);
1377
1380
  }
1378
1381
 
1379
- pageURL(): string {
1380
- return this.mainFrame && this.mainFrame.url || '';
1382
+ pageURL(): Platform.DevToolsPath.UrlString {
1383
+ return this.mainFrame && this.mainFrame.url || Platform.DevToolsPath.EmptyUrlString;
1381
1384
  }
1382
1385
 
1383
1386
  pageFrameById(frameId: Protocol.Page.FrameId): PageFrame|null {
@@ -1640,7 +1643,7 @@ export class Track {
1640
1643
  name: string;
1641
1644
  type: TrackType;
1642
1645
  forMainFrame: boolean;
1643
- url: string;
1646
+ url: Platform.DevToolsPath.UrlString;
1644
1647
  events: SDK.TracingModel.Event[];
1645
1648
  asyncEvents: SDK.TracingModel.AsyncEvent[];
1646
1649
  tasks: SDK.TracingModel.Event[];
@@ -1651,7 +1654,7 @@ export class Track {
1651
1654
  this.type = TrackType.Other;
1652
1655
  // TODO(dgozman): replace forMainFrame with a list of frames, urls and time ranges.
1653
1656
  this.forMainFrame = false;
1654
- this.url = '';
1657
+ this.url = Platform.DevToolsPath.EmptyUrlString;
1655
1658
  // TODO(dgozman): do not distinguish between sync and async events.
1656
1659
  this.events = [];
1657
1660
  this.asyncEvents = [];
@@ -1732,13 +1735,13 @@ export class PageFrame {
1732
1735
  time: number,
1733
1736
  processId: number,
1734
1737
  processPseudoId: string|null,
1735
- url: string,
1738
+ url: Platform.DevToolsPath.UrlString,
1736
1739
  }[];
1737
1740
  deletedTime: number|null;
1738
1741
  ownerNode: SDK.DOMModel.DeferredDOMNode|null;
1739
1742
  constructor(payload: any) {
1740
1743
  this.frameId = payload['frame'];
1741
- this.url = payload['url'] || '';
1744
+ this.url = payload['url'] || Platform.DevToolsPath.EmptyUrlString;
1742
1745
  this.name = payload['name'];
1743
1746
  this.children = [];
1744
1747
  this.parent = null;
@@ -1789,7 +1792,7 @@ export class NetworkRequest {
1789
1792
  receiveHeadersEnd: number,
1790
1793
  };
1791
1794
  mimeType!: string;
1792
- url!: string;
1795
+ url!: Platform.DevToolsPath.UrlString;
1793
1796
  requestMethod!: string;
1794
1797
  private transferSize: number;
1795
1798
  private maybeDiskCached: boolean;
@@ -2123,7 +2126,6 @@ export class InvalidationTracker {
2123
2126
  lastScheduleStyleRecalculation = invalidation;
2124
2127
  }
2125
2128
  if (!lastScheduleStyleRecalculation) {
2126
- console.error('Failed to lookup the event that scheduled a style invalidator invalidation.');
2127
2129
  continue;
2128
2130
  }
2129
2131
  this.addSyntheticStyleRecalcInvalidation(
@@ -2143,7 +2145,6 @@ export class InvalidationTracker {
2143
2145
  invalidation.selectorPart = styleInvalidatorInvalidation.selectorPart;
2144
2146
  }
2145
2147
 
2146
- this.addInvalidation(invalidation);
2147
2148
  if (!invalidation.linkedRecalcStyleEvent) {
2148
2149
  this.associateWithLastRecalcStyleEvent(invalidation);
2149
2150
  }
@@ -2302,7 +2303,7 @@ export class TimelineAsyncEventTracker {
2302
2303
  export class TimelineData {
2303
2304
  warning: string|null;
2304
2305
  previewElement: Element|null;
2305
- url: string|null;
2306
+ url: Platform.DevToolsPath.UrlString|null;
2306
2307
  backendNodeIds: Protocol.DOM.BackendNodeId[];
2307
2308
  stackTrace: Protocol.Runtime.CallFrame[]|null;
2308
2309
  picture: SDK.TracingModel.ObjectSnapshot|null;
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import type * as Platform from '../../core/platform/platform.js';
5
6
  import type * as SDK from '../../core/sdk/sdk.js';
6
7
  import type * as Protocol from '../../generated/protocol.js';
7
8
 
@@ -494,14 +495,14 @@ export class BottomUpNode extends Node {
494
495
  }
495
496
  }
496
497
 
497
- export function eventURL(event: SDK.TracingModel.Event): string|null {
498
+ export function eventURL(event: SDK.TracingModel.Event): Platform.DevToolsPath.UrlString|null {
498
499
  const data = event.args['data'] || event.args['beginData'];
499
500
  if (data && data['url']) {
500
501
  return data['url'];
501
502
  }
502
503
  let frame = eventStackFrame(event);
503
504
  while (frame) {
504
- const url = frame['url'];
505
+ const url = frame['url'] as Platform.DevToolsPath.UrlString;
505
506
  if (url) {
506
507
  return url;
507
508
  }
@@ -51,13 +51,11 @@ const UIStrings = {
51
51
  const str_ = i18n.i18n.registerUIStrings('models/workspace/UISourceCode.ts', UIStrings);
52
52
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
53
53
 
54
- // TODO(crbug.com/1297535): Casts to UrlString and RawPathString will be removed from this file when migration to branded types is complete.
55
-
56
54
  export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements
57
55
  TextUtils.ContentProvider.ContentProvider {
58
56
  private projectInternal: Project;
59
- private urlInternal: string;
60
- private readonly originInternal: string;
57
+ private urlInternal: Platform.DevToolsPath.UrlString;
58
+ private readonly originInternal: Platform.DevToolsPath.UrlString;
61
59
  private readonly parentURLInternal: Platform.DevToolsPath.UrlString;
62
60
  private nameInternal: string;
63
61
  private contentTypeInternal: Common.ResourceType.ResourceType;
@@ -75,7 +73,7 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
75
73
  private disableEditInternal: boolean;
76
74
  private contentEncodedInternal?: boolean;
77
75
 
78
- constructor(project: Project, url: string, contentType: Common.ResourceType.ResourceType) {
76
+ constructor(project: Project, url: Platform.DevToolsPath.UrlString, contentType: Common.ResourceType.ResourceType) {
79
77
  super();
80
78
  this.projectInternal = project;
81
79
  this.urlInternal = url;
@@ -83,7 +81,8 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
83
81
  const parsedURL = Common.ParsedURL.ParsedURL.fromString(url);
84
82
  if (parsedURL) {
85
83
  this.originInternal = parsedURL.securityOrigin();
86
- this.parentURLInternal = this.originInternal + parsedURL.folderPathComponents as Platform.DevToolsPath.UrlString;
84
+ this.parentURLInternal =
85
+ Common.ParsedURL.ParsedURL.concatenate(this.originInternal, parsedURL.folderPathComponents);
87
86
  if (parsedURL.queryParams) {
88
87
  // in case file name contains query params, it doesn't look like a normal file name anymore
89
88
  // so it can as well remain encoded
@@ -93,7 +92,7 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
93
92
  this.nameInternal = decodeURIComponent(parsedURL.lastPathComponent);
94
93
  }
95
94
  } else {
96
- this.originInternal = '';
95
+ this.originInternal = Platform.DevToolsPath.EmptyUrlString;
97
96
  this.parentURLInternal = Platform.DevToolsPath.EmptyUrlString;
98
97
  this.nameInternal = url;
99
98
  }
@@ -125,14 +124,14 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
125
124
  }
126
125
 
127
126
  url(): Platform.DevToolsPath.UrlString {
128
- return this.urlInternal as Platform.DevToolsPath.UrlString;
127
+ return this.urlInternal;
129
128
  }
130
129
 
131
130
  parentURL(): Platform.DevToolsPath.UrlString {
132
131
  return this.parentURLInternal;
133
132
  }
134
133
 
135
- origin(): string {
134
+ origin(): Platform.DevToolsPath.UrlString {
136
135
  return this.originInternal;
137
136
  }
138
137
 
@@ -161,10 +160,12 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
161
160
  return promise;
162
161
 
163
162
  function innerCallback(
164
- this: UISourceCode, success: boolean, newName?: string, newURL?: string,
163
+ this: UISourceCode, success: boolean, newName?: string, newURL?: Platform.DevToolsPath.UrlString,
165
164
  newContentType?: Common.ResourceType.ResourceType): void {
166
165
  if (success) {
167
- this.updateName(newName as string, newURL as string, newContentType as Common.ResourceType.ResourceType);
166
+ this.updateName(
167
+ newName as Platform.DevToolsPath.RawPathString, newURL as Platform.DevToolsPath.UrlString,
168
+ newContentType as Common.ResourceType.ResourceType);
168
169
  }
169
170
  fulfill(success);
170
171
  }
@@ -174,14 +175,15 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
174
175
  this.projectInternal.deleteFile(this);
175
176
  }
176
177
 
177
- private updateName(name: string, url: string, contentType?: Common.ResourceType.ResourceType): void {
178
+ private updateName(
179
+ name: Platform.DevToolsPath.RawPathString, url: Platform.DevToolsPath.UrlString,
180
+ contentType?: Common.ResourceType.ResourceType): void {
178
181
  const oldURL = this.urlInternal;
179
182
  this.nameInternal = name;
180
183
  if (url) {
181
184
  this.urlInternal = url;
182
185
  } else {
183
- this.urlInternal = Common.ParsedURL.ParsedURL.relativePathToUrlString(
184
- name as Platform.DevToolsPath.RawPathString, oldURL as Platform.DevToolsPath.UrlString);
186
+ this.urlInternal = Common.ParsedURL.ParsedURL.relativePathToUrlString(name, oldURL);
185
187
  }
186
188
  if (contentType) {
187
189
  this.contentTypeInternal = contentType;
@@ -40,7 +40,8 @@ export interface ProjectSearchConfig {
40
40
  ignoreCase(): boolean;
41
41
  isRegex(): boolean;
42
42
  queries(): string[];
43
- filePathMatchesFileQuery(filePath: string): boolean;
43
+ filePathMatchesFileQuery(filePath: Platform.DevToolsPath.RawPathString|
44
+ Platform.DevToolsPath.EncodedPathString|Platform.DevToolsPath.UrlString): boolean;
44
45
  }
45
46
 
46
47
  export interface Project {
@@ -58,8 +59,10 @@ export interface Project {
58
59
  canRename(): boolean;
59
60
  rename(
60
61
  uiSourceCode: UISourceCode, newName: Platform.DevToolsPath.RawPathString,
61
- callback: (arg0: boolean, arg1?: string, arg2?: string, arg3?: Common.ResourceType.ResourceType) => void): void;
62
- excludeFolder(path: string): void;
62
+ callback:
63
+ (arg0: boolean, arg1?: string, arg2?: Platform.DevToolsPath.UrlString,
64
+ arg3?: Common.ResourceType.ResourceType) => void): void;
65
+ excludeFolder(path: Platform.DevToolsPath.UrlString): void;
63
66
  canExcludeFolder(path: Platform.DevToolsPath.EncodedPathString): boolean;
64
67
  createFile(path: Platform.DevToolsPath.EncodedPathString, name: string|null, content: string, isBase64?: boolean):
65
68
  Promise<UISourceCode|null>;
@@ -69,10 +72,10 @@ export interface Project {
69
72
  searchInFileContent(uiSourceCode: UISourceCode, query: string, caseSensitive: boolean, isRegex: boolean):
70
73
  Promise<TextUtils.ContentProvider.SearchMatch[]>;
71
74
  findFilesMatchingSearchRequest(
72
- searchConfig: ProjectSearchConfig, filesMathingFileQuery: string[],
75
+ searchConfig: ProjectSearchConfig, filesMatchingFileQuery: Platform.DevToolsPath.UrlString[],
73
76
  progress: Common.Progress.Progress): Promise<string[]>;
74
77
  indexContent(progress: Common.Progress.Progress): void;
75
- uiSourceCodeForURL(url: string): UISourceCode|null;
78
+ uiSourceCodeForURL(url: Platform.DevToolsPath.UrlString): UISourceCode|null;
76
79
  uiSourceCodes(): UISourceCode[];
77
80
  }
78
81
 
@@ -92,7 +95,7 @@ export abstract class ProjectStore implements Project {
92
95
  private readonly idInternal: string;
93
96
  private readonly typeInternal: projectTypes;
94
97
  private readonly displayNameInternal: string;
95
- private uiSourceCodesMap: Map<string, {
98
+ private uiSourceCodesMap: Map<Platform.DevToolsPath.UrlString, {
96
99
  uiSourceCode: UISourceCode,
97
100
  index: number,
98
101
  }>;
@@ -124,7 +127,8 @@ export abstract class ProjectStore implements Project {
124
127
  return this.workspaceInternal;
125
128
  }
126
129
 
127
- createUISourceCode(url: string, contentType: Common.ResourceType.ResourceType): UISourceCode {
130
+ createUISourceCode(url: Platform.DevToolsPath.UrlString, contentType: Common.ResourceType.ResourceType):
131
+ UISourceCode {
128
132
  return new UISourceCode(this, url, contentType);
129
133
  }
130
134
 
@@ -139,7 +143,7 @@ export abstract class ProjectStore implements Project {
139
143
  return true;
140
144
  }
141
145
 
142
- removeUISourceCode(url: string): void {
146
+ removeUISourceCode(url: Platform.DevToolsPath.UrlString): void {
143
147
  const uiSourceCode = this.uiSourceCodeForURL(url);
144
148
  if (!uiSourceCode) {
145
149
  return;
@@ -166,7 +170,7 @@ export abstract class ProjectStore implements Project {
166
170
  this.uiSourceCodesList = [];
167
171
  }
168
172
 
169
- uiSourceCodeForURL(url: string): UISourceCode|null {
173
+ uiSourceCodeForURL(url: Platform.DevToolsPath.UrlString): UISourceCode|null {
170
174
  const entry = this.uiSourceCodesMap.get(url);
171
175
  return entry ? entry.uiSourceCode : null;
172
176
  }
@@ -179,7 +183,7 @@ export abstract class ProjectStore implements Project {
179
183
  const oldPath = uiSourceCode.url();
180
184
  const newPath = uiSourceCode.parentURL() ?
181
185
  Common.ParsedURL.ParsedURL.urlFromParentUrlAndName(uiSourceCode.parentURL(), newName) :
182
- encodeURIComponent(newName);
186
+ encodeURIComponent(newName) as Platform.DevToolsPath.UrlString;
183
187
  const value = this.uiSourceCodesMap.get(oldPath) as {
184
188
  uiSourceCode: UISourceCode,
185
189
  index: number,
@@ -192,9 +196,11 @@ export abstract class ProjectStore implements Project {
192
196
 
193
197
  rename(
194
198
  _uiSourceCode: UISourceCode, _newName: string,
195
- _callback: (arg0: boolean, arg1?: string, arg2?: string, arg3?: Common.ResourceType.ResourceType) => void): void {
199
+ _callback:
200
+ (arg0: boolean, arg1?: string, arg2?: Platform.DevToolsPath.UrlString,
201
+ arg3?: Common.ResourceType.ResourceType) => void): void {
196
202
  }
197
- excludeFolder(_path: string): void {
203
+ excludeFolder(_path: Platform.DevToolsPath.UrlString): void {
198
204
  }
199
205
  deleteFile(_uiSourceCode: UISourceCode): void {
200
206
  }
@@ -219,7 +225,7 @@ export abstract class ProjectStore implements Project {
219
225
  abstract searchInFileContent(uiSourceCode: UISourceCode, query: string, caseSensitive: boolean, isRegex: boolean):
220
226
  Promise<TextUtils.ContentProvider.SearchMatch[]>;
221
227
  abstract findFilesMatchingSearchRequest(
222
- searchConfig: ProjectSearchConfig, filesMathingFileQuery: string[],
228
+ searchConfig: ProjectSearchConfig, filesMatchingFileQuery: Platform.DevToolsPath.UrlString[],
223
229
  progress: Common.Progress.Progress): Promise<string[]>;
224
230
  }
225
231
 
@@ -248,12 +254,30 @@ export class WorkspaceImpl extends Common.ObjectWrapper.ObjectWrapper<EventTypes
248
254
  workspaceInstance = undefined;
249
255
  }
250
256
 
251
- uiSourceCode(projectId: string, url: string): UISourceCode|null {
257
+ uiSourceCode(projectId: string, url: Platform.DevToolsPath.UrlString): UISourceCode|null {
252
258
  const project = this.projectsInternal.get(projectId);
253
259
  return project ? project.uiSourceCodeForURL(url) : null;
254
260
  }
255
261
 
256
- uiSourceCodeForURL(url: string): UISourceCode|null {
262
+ // This method explicitly awaits the UISourceCode if not yet
263
+ // available.
264
+ uiSourceCodeForURLPromise(url: Platform.DevToolsPath.UrlString): Promise<UISourceCode> {
265
+ const uiSourceCode = this.uiSourceCodeForURL(url);
266
+ if (uiSourceCode) {
267
+ return Promise.resolve(uiSourceCode);
268
+ }
269
+ return new Promise(resolve => {
270
+ const descriptor = this.addEventListener(Events.UISourceCodeAdded, event => {
271
+ const uiSourceCode = event.data;
272
+ if (uiSourceCode.url() === url) {
273
+ this.removeEventListener(Events.UISourceCodeAdded, descriptor.listener);
274
+ resolve(uiSourceCode);
275
+ }
276
+ });
277
+ });
278
+ }
279
+
280
+ uiSourceCodeForURL(url: Platform.DevToolsPath.UrlString): UISourceCode|null {
257
281
  for (const project of this.projectsInternal.values()) {
258
282
  const uiSourceCode = project.uiSourceCodeForURL(url);
259
283
  if (uiSourceCode) {
@@ -330,7 +354,7 @@ export enum Events {
330
354
  }
331
355
 
332
356
  export interface UISourceCodeRenamedEvent {
333
- oldURL: string;
357
+ oldURL: Platform.DevToolsPath.UrlString;
334
358
  uiSourceCode: UISourceCode;
335
359
  }
336
360
 
@@ -3,6 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import accessibilityPropertiesStyles from './accessibilityProperties.css.js';
6
+ import type * as Platform from '../../core/platform/platform.js';
6
7
  import type * as SDK from '../../core/sdk/sdk.js';
7
8
  import * as UI from '../../ui/legacy/legacy.js';
8
9
  import accessibilityNodeStyles from './accessibilityNode.css.js';
@@ -12,7 +13,7 @@ import objectValueStyles from '../../ui/legacy/components/object_ui/objectValue.
12
13
  export class AccessibilitySubPane extends UI.View.SimpleView {
13
14
  axNode: SDK.AccessibilityModel.AccessibilityNode|null;
14
15
  protected nodeInternal?: SDK.DOMModel.DOMNode|null;
15
- constructor(name: string) {
16
+ constructor(name: Platform.UIString.LocalizedString) {
16
17
  super(name);
17
18
 
18
19
  this.axNode = null;
@@ -925,7 +925,7 @@ export class AppManifestView extends UI.Widget.VBox implements SDK.TargetManager
925
925
  return errorMessages;
926
926
  }
927
927
 
928
- private async loadImage(url: string): Promise<{
928
+ private async loadImage(url: Platform.DevToolsPath.UrlString): Promise<{
929
929
  image: HTMLImageElement,
930
930
  wrapper: Element,
931
931
  }|null> {
@@ -4,6 +4,7 @@
4
4
 
5
5
  import type * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
+ import type * as Platform from '../../core/platform/platform.js';
7
8
  import * as SDK from '../../core/sdk/sdk.js';
8
9
  import * as UI from '../../ui/legacy/legacy.js';
9
10
  import * as ApplicationComponents from './components/components.js';
@@ -131,9 +132,9 @@ export class SWCacheTreeElement extends ApplicationPanelTreeElement {
131
132
  this.setLeadingIcons([icon]);
132
133
  }
133
134
 
134
- get itemURL(): string {
135
+ get itemURL(): Platform.DevToolsPath.UrlString {
135
136
  // I don't think this will work at all.
136
- return 'cache://' + this.cache.cacheId;
137
+ return 'cache://' + this.cache.cacheId as Platform.DevToolsPath.UrlString;
137
138
  }
138
139
 
139
140
  onattach(): void {
@@ -184,8 +185,8 @@ export class BackForwardCacheTreeElement extends ApplicationPanelTreeElement {
184
185
  this.setLeadingIcons([icon]);
185
186
  }
186
187
 
187
- get itemURL(): string {
188
- return 'bfcache://';
188
+ get itemURL(): Platform.DevToolsPath.UrlString {
189
+ return 'bfcache://' as Platform.DevToolsPath.UrlString;
189
190
  }
190
191
 
191
192
  onselect(selectedByUser?: boolean): boolean {