chrome-devtools-frontend 1.0.982087 → 1.0.995629

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
@@ -63,7 +63,7 @@ export class CSSModel extends SDKModel<EventTypes> {
63
63
  readonly #sourceMapManager: SourceMapManager<CSSStyleSheetHeader>;
64
64
  readonly #styleLoader: ComputedStyleLoader;
65
65
  readonly #stylePollingThrottler: Common.Throttler.Throttler;
66
- readonly #styleSheetIdsForURL: Map<string, Map<string, Set<Protocol.CSS.StyleSheetId>>>;
66
+ readonly #styleSheetIdsForURL: Map<Platform.DevToolsPath.UrlString, Map<string, Set<Protocol.CSS.StyleSheetId>>>;
67
67
  readonly #styleSheetIdToHeader: Map<Protocol.CSS.StyleSheetId, CSSStyleSheetHeader>;
68
68
  #cachedMatchedCascadeNode: DOMNode|null;
69
69
  #cachedMatchedCascadePromise: Promise<CSSMatchedStyles|null>|null;
@@ -111,7 +111,7 @@ export class CSSModel extends SDKModel<EventTypes> {
111
111
  .addChangeListener(event => this.#sourceMapManager.setEnabled((event.data as boolean)));
112
112
  }
113
113
 
114
- headersForSourceURL(sourceURL: string): CSSStyleSheetHeader[] {
114
+ headersForSourceURL(sourceURL: Platform.DevToolsPath.UrlString): CSSStyleSheetHeader[] {
115
115
  const headers = [];
116
116
  for (const headerId of this.getStyleSheetIdsForURL(sourceURL)) {
117
117
  const header = this.styleSheetHeaderForId(headerId);
@@ -122,7 +122,9 @@ export class CSSModel extends SDKModel<EventTypes> {
122
122
  return headers;
123
123
  }
124
124
 
125
- createRawLocationsByURL(sourceURL: string, lineNumber: number, columnNumber: number|undefined = 0): CSSLocation[] {
125
+ createRawLocationsByURL(
126
+ sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number,
127
+ columnNumber: number|undefined = 0): CSSLocation[] {
126
128
  const headers = this.headersForSourceURL(sourceURL);
127
129
  headers.sort(stylesheetComparator);
128
130
  const endIndex = Platform.ArrayUtilities.upperBound(
@@ -303,7 +305,7 @@ export class CSSModel extends SDKModel<EventTypes> {
303
305
  return new CSSMatchedStyles(
304
306
  this, (node as DOMNode), response.inlineStyle || null, response.attributesStyle || null,
305
307
  response.matchedCSSRules || [], response.pseudoElements || [], response.inherited || [],
306
- response.cssKeyframesRules || []);
308
+ response.inheritedPseudoElements || [], response.cssKeyframesRules || []);
307
309
  }
308
310
 
309
311
  async getClassNames(styleSheetId: Protocol.CSS.StyleSheetId): Promise<string[]> {
@@ -602,7 +604,7 @@ export class CSSModel extends SDKModel<EventTypes> {
602
604
  this.dispatchEventToListeners(Events.StyleSheetRemoved, header);
603
605
  }
604
606
 
605
- getStyleSheetIdsForURL(url: string): Protocol.CSS.StyleSheetId[] {
607
+ getStyleSheetIdsForURL(url: Platform.DevToolsPath.UrlString): Protocol.CSS.StyleSheetId[] {
606
608
  const frameIdToStyleSheetIds = this.#styleSheetIdsForURL.get(url);
607
609
  if (!frameIdToStyleSheetIds) {
608
610
  return [];
@@ -628,7 +630,7 @@ export class CSSModel extends SDKModel<EventTypes> {
628
630
 
629
631
  await this.ensureOriginalStyleSheetText(styleSheetId);
630
632
  const response = await this.agent.invoke_setStyleSheetText({styleSheetId: header.id, text: newText});
631
- const sourceMapURL = response.sourceMapURL;
633
+ const sourceMapURL = response.sourceMapURL as Platform.DevToolsPath.UrlString;
632
634
 
633
635
  this.#sourceMapManager.detachSourceMap(header);
634
636
  header.setSourceMapURL(sourceMapURL);
@@ -830,7 +832,7 @@ export class Edit {
830
832
  export class CSSLocation {
831
833
  readonly #cssModelInternal: CSSModel;
832
834
  styleSheetId: Protocol.CSS.StyleSheetId;
833
- url: string;
835
+ url: Platform.DevToolsPath.UrlString;
834
836
  lineNumber: number;
835
837
  columnNumber: number;
836
838
  constructor(header: CSSStyleSheetHeader, lineNumber: number, columnNumber?: number) {
@@ -3,10 +3,12 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as TextUtils from '../../models/text_utils/text_utils.js';
6
- import type * as Common from '../common/common.js';
6
+ import * as Common from '../common/common.js';
7
7
  import * as HostModule from '../host/host.js';
8
+ import * as Platform from '../platform/platform.js';
8
9
  import type * as Protocol from '../../generated/protocol.js';
9
10
 
11
+ import {cssMetadata, GridAreaRowRegex} from './CSSMetadata.js';
10
12
  import type {Edit} from './CSSModel.js';
11
13
  import type {CSSStyleDeclaration} from './CSSStyleDeclaration.js';
12
14
 
@@ -160,17 +162,101 @@ export class CSSProperty {
160
162
  }
161
163
 
162
164
  const range = this.range.relativeTo(this.ownerStyle.range.startLine, this.ownerStyle.range.startColumn);
165
+ const indentation = this.ownerStyle.cssText ?
166
+ this.detectIndentation(this.ownerStyle.cssText) :
167
+ Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
168
+ const endIndentation = this.ownerStyle.cssText ? indentation.substring(0, this.ownerStyle.range.endColumn) : '';
163
169
  const text = new TextUtils.Text.Text(this.ownerStyle.cssText || '');
164
- const textBeforeInsertion =
165
- text.extract(new TextUtils.TextRange.TextRange(0, 0, range.startLine, range.startColumn));
166
- // If we are appending after the last property and that property doesn't have a semicolon at the end
167
- // (which is only legal in the last position), then add the semicolon in front of the new text to avoid
168
- // CSS parsing errors. However, we shouldn't prepend semicolons on the first line or after a comment.
169
- if (textBeforeInsertion.trim().length && !/[;{\/]\s*$/.test(textBeforeInsertion)) {
170
- propertyText = ';' + propertyText;
171
- }
172
- const newStyleText = text.replaceRange(range, propertyText);
173
- return this.ownerStyle.setText(newStyleText, majorChange);
170
+ const newStyleText = text.replaceRange(range, Platform.StringUtilities.sprintf(';%s;', propertyText));
171
+ const styleText = await CSSProperty.formatStyle(newStyleText, indentation, endIndentation);
172
+ return this.ownerStyle.setText(styleText, majorChange);
173
+ }
174
+
175
+ static async formatStyle(
176
+ styleText: string, indentation: string, endIndentation: string): Promise<string> {
177
+ const doubleIndent = indentation.substring(endIndentation.length) + indentation;
178
+ if (indentation) {
179
+ indentation = '\n' + indentation;
180
+ }
181
+ let result = '';
182
+ let propertyName = '';
183
+ let propertyText = '';
184
+ let insideProperty = false;
185
+ let needsSemi = false;
186
+ const tokenize = TextUtils.CodeMirrorUtils.createCssTokenizer();
187
+
188
+ await tokenize('*{' + styleText + '}', processToken);
189
+ if (insideProperty) {
190
+ result += propertyText;
191
+ }
192
+ result = result.substring(2, result.length - 1).trimRight();
193
+ return result + (indentation ? '\n' + endIndentation : '');
194
+
195
+ function processToken(token: string, tokenType: string|null): void {
196
+ if (!insideProperty) {
197
+ const disabledProperty = tokenType?.includes('comment') && isDisabledProperty(token);
198
+ const isPropertyStart =
199
+ (tokenType?.includes('string') || tokenType?.includes('meta') || tokenType?.includes('property') ||
200
+ tokenType?.includes('variableName'));
201
+ if (disabledProperty) {
202
+ result = result.trimEnd() + indentation + token;
203
+ } else if (isPropertyStart) {
204
+ insideProperty = true;
205
+ propertyText = token;
206
+ } else if (token !== ';' || needsSemi) {
207
+ result += token;
208
+ if (token.trim() && !(tokenType?.includes('comment'))) {
209
+ needsSemi = token !== ';';
210
+ }
211
+ }
212
+ if (token === '{' && !tokenType) {
213
+ needsSemi = false;
214
+ }
215
+ return;
216
+ }
217
+
218
+ if (token === '}' || token === ';') {
219
+ // While `propertyText` can generally be trimmed, doing so
220
+ // breaks valid CSS declarations such as `--foo: ;` which would
221
+ // then produce invalid CSS of the form `--foo:;`. This
222
+ // implementation takes special care to restore a single
223
+ // whitespace token in this edge case. https://crbug.com/1071296
224
+ const trimmedPropertyText = propertyText.trim();
225
+ result =
226
+ result.trimEnd() + indentation + trimmedPropertyText + (trimmedPropertyText.endsWith(':') ? ' ' : '') + token;
227
+ needsSemi = false;
228
+ insideProperty = false;
229
+ propertyName = '';
230
+ return;
231
+ }
232
+ if (cssMetadata().isGridAreaDefiningProperty(propertyName)) {
233
+ const rowResult = GridAreaRowRegex.exec(token);
234
+ if (rowResult && rowResult.index === 0 && !propertyText.trimRight().endsWith(']')) {
235
+ propertyText = propertyText.trimRight() + '\n' + doubleIndent;
236
+ }
237
+ }
238
+ if (!propertyName && token === ':') {
239
+ propertyName = propertyText;
240
+ }
241
+ propertyText += token;
242
+ }
243
+
244
+ function isDisabledProperty(text: string): boolean {
245
+ const colon = text.indexOf(':');
246
+ if (colon === -1) {
247
+ return false;
248
+ }
249
+ const propertyName = text.substring(2, colon).trim();
250
+ return cssMetadata().isCSSPropertyName(propertyName);
251
+ }
252
+ }
253
+
254
+ private detectIndentation(text: string): string {
255
+ const lines = text.split('\n');
256
+ if (lines.length < 2) {
257
+ return '';
258
+ }
259
+ return TextUtils.TextUtils.Utils.lineIndent(lines[1]);
174
260
  }
175
261
 
176
262
  setValue(newValue: string, majorChange: boolean, overwrite: boolean, userCallback?: ((arg0: boolean) => void)): void {
@@ -5,7 +5,7 @@
5
5
  import * as TextUtils from '../../models/text_utils/text_utils.js';
6
6
  import * as Common from '../common/common.js';
7
7
  import * as i18n from '../i18n/i18n.js';
8
- import type * as Platform from '../platform/platform.js';
8
+ import * as Platform from '../platform/platform.js';
9
9
  import * as Root from '../root/root.js';
10
10
  import type * as Protocol from '../../generated/protocol.js';
11
11
 
@@ -46,7 +46,7 @@ export class CSSStyleSheetHeader implements TextUtils.ContentProvider.ContentPro
46
46
  endColumn: number;
47
47
  contentLength: number;
48
48
  ownerNode: DeferredDOMNode|undefined;
49
- sourceMapURL: string|undefined;
49
+ sourceMapURL: Platform.DevToolsPath.UrlString|undefined;
50
50
  #originalContentProviderInternal: TextUtils.StaticContentProvider.StaticContentProvider|null;
51
51
 
52
52
  constructor(cssModel: CSSModel, payload: Protocol.CSS.CSSStyleSheetHeader) {
@@ -69,7 +69,7 @@ export class CSSStyleSheetHeader implements TextUtils.ContentProvider.ContentPro
69
69
  if (payload.ownerNode) {
70
70
  this.ownerNode = new DeferredDOMNode(cssModel.target(), payload.ownerNode);
71
71
  }
72
- this.sourceMapURL = payload.sourceMapURL;
72
+ this.sourceMapURL = payload.sourceMapURL as Platform.DevToolsPath.UrlString;
73
73
  this.#originalContentProviderInternal = null;
74
74
  }
75
75
 
@@ -88,7 +88,7 @@ export class CSSStyleSheetHeader implements TextUtils.ContentProvider.ContentPro
88
88
  return this.#originalContentProviderInternal;
89
89
  }
90
90
 
91
- setSourceMapURL(sourceMapURL?: string): void {
91
+ setSourceMapURL(sourceMapURL?: Platform.DevToolsPath.UrlString): void {
92
92
  this.sourceMapURL = sourceMapURL;
93
93
  }
94
94
 
@@ -197,6 +197,10 @@ export class CSSStyleSheetHeader implements TextUtils.ContentProvider.ContentPro
197
197
  }
198
198
 
199
199
  createPageResourceLoadInitiator(): PageResourceLoadInitiator {
200
- return {target: null, frameId: this.frameId, initiatorUrl: this.hasSourceURL ? '' : this.sourceURL};
200
+ return {
201
+ target: null,
202
+ frameId: this.frameId,
203
+ initiatorUrl: this.hasSourceURL ? Platform.DevToolsPath.EmptyUrlString : this.sourceURL,
204
+ };
201
205
  }
202
206
  }
@@ -13,6 +13,8 @@ export class CSSSupports extends CSSQuery {
13
13
  return payload.map(supports => new CSSSupports(cssModel, supports));
14
14
  }
15
15
 
16
+ #active: boolean = true;
17
+
16
18
  constructor(cssModel: CSSModel, payload: Protocol.CSS.CSSSupports) {
17
19
  super(cssModel);
18
20
  this.reinitialize(payload);
@@ -22,9 +24,10 @@ export class CSSSupports extends CSSQuery {
22
24
  this.text = payload.text;
23
25
  this.range = payload.range ? TextUtils.TextRange.TextRange.fromObject(payload.range) : null;
24
26
  this.styleSheetId = payload.styleSheetId;
27
+ this.#active = payload.active;
25
28
  }
26
29
 
27
30
  active(): boolean {
28
- return true;
31
+ return this.#active;
29
32
  }
30
33
  }
@@ -142,7 +142,9 @@ export class ChildTargetManager extends SDKModel<EventTypes> implements Protocol
142
142
  }
143
143
  const target = this.#targetManager.createTarget(
144
144
  targetInfo.targetId, targetName, type, this.#parentTarget, sessionId, undefined, undefined, targetInfo);
145
- target.setInspectedURL(this.#parentTarget.inspectedURL());
145
+ if (type === Type.Worker || type === Type.ServiceWorker || type === Type.SharedWorker) {
146
+ target.setInspectedURL(this.#parentTarget.inspectedURL());
147
+ }
146
148
  this.#childTargetsBySessionId.set(sessionId, target);
147
149
  this.#childTargetsById.set(target.id(), target);
148
150
 
@@ -3,6 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../common/common.js';
6
+ import type * as Platform from '../platform/platform.js';
6
7
  import * as Host from '../host/host.js';
7
8
  import * as ProtocolClient from '../protocol_client/protocol_client.js';
8
9
  import * as Root from '../root/root.js';
@@ -82,7 +83,7 @@ export class WebSocketConnection implements ProtocolClient.InspectorBackend.Conn
82
83
  #onWebSocketDisconnect: (() => void)|null;
83
84
  #connected: boolean;
84
85
  #messages: string[];
85
- constructor(url: string, onWebSocketDisconnect: () => void) {
86
+ constructor(url: Platform.DevToolsPath.UrlString, onWebSocketDisconnect: () => void) {
86
87
  this.#socket = new WebSocket(url);
87
88
  this.#socket.onerror = this.onError.bind(this);
88
89
  this.#socket.onopen = this.onOpen.bind(this);
@@ -286,7 +287,7 @@ function createMainConnection(websocketConnectionLost: () => void): ProtocolClie
286
287
  const wsParam = Root.Runtime.Runtime.queryParam('ws');
287
288
  const wssParam = Root.Runtime.Runtime.queryParam('wss');
288
289
  if (wsParam || wssParam) {
289
- const ws = wsParam ? `ws://${wsParam}` : `wss://${wssParam}`;
290
+ const ws = (wsParam ? `ws://${wsParam}` : `wss://${wssParam}`) as Platform.DevToolsPath.UrlString;
290
291
  return new WebSocketConnection(ws, websocketConnectionLost);
291
292
  }
292
293
  if (Host.InspectorFrontendHost.InspectorFrontendHostInstance.isHostedMode()) {
@@ -32,6 +32,7 @@ import * as Protocol from '../../generated/protocol.js';
32
32
  import * as Common from '../common/common.js';
33
33
  import * as Host from '../host/host.js';
34
34
  import * as i18n from '../i18n/i18n.js';
35
+ import type * as Platform from '../platform/platform.js';
35
36
 
36
37
  import {FrontendMessageSource, FrontendMessageType} from './ConsoleModelTypes.js';
37
38
  export {FrontendMessageSource, FrontendMessageType} from './ConsoleModelTypes.js';
@@ -277,7 +278,7 @@ export class ConsoleModel extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
277
278
  const callFrame = call.stackTrace && call.stackTrace.callFrames.length ? call.stackTrace.callFrames[0] : null;
278
279
  const details = {
279
280
  type: call.type,
280
- url: callFrame?.url,
281
+ url: callFrame?.url as Platform.DevToolsPath.UrlString | undefined,
281
282
  line: callFrame?.lineNumber,
282
283
  column: callFrame?.columnNumber,
283
284
  parameters: call.args,
@@ -517,7 +518,7 @@ function areStackTracesEquivalent(
517
518
 
518
519
  export interface ConsoleMessageDetails {
519
520
  type?: MessageType;
520
- url?: string;
521
+ url?: Platform.DevToolsPath.UrlString;
521
522
  line?: number;
522
523
  column?: number;
523
524
  parameters?: (string|RemoteObject|Protocol.Runtime.RemoteObject)[];
@@ -537,7 +538,7 @@ export class ConsoleMessage {
537
538
  level: Protocol.Log.LogEntryLevel|null;
538
539
  messageText: string;
539
540
  readonly type: MessageType;
540
- url: string|undefined;
541
+ url: Platform.DevToolsPath.UrlString|undefined;
541
542
  line: number;
542
543
  column: number;
543
544
  parameters: (string|RemoteObject|Protocol.Runtime.RemoteObject)[]|undefined;
@@ -598,10 +599,10 @@ export class ConsoleMessage {
598
599
  static fromException(
599
600
  runtimeModel: RuntimeModel, exceptionDetails: Protocol.Runtime.ExceptionDetails,
600
601
  messageType?: Protocol.Runtime.ConsoleAPICalledEventType|FrontendMessageType, timestamp?: number,
601
- forceUrl?: string, affectedResources?: AffectedResources): ConsoleMessage {
602
+ forceUrl?: Platform.DevToolsPath.UrlString, affectedResources?: AffectedResources): ConsoleMessage {
602
603
  const details = {
603
604
  type: messageType,
604
- url: forceUrl || exceptionDetails.url,
605
+ url: forceUrl || exceptionDetails.url as Platform.DevToolsPath.UrlString,
605
606
  line: exceptionDetails.lineNumber,
606
607
  column: exceptionDetails.columnNumber,
607
608
  parameters: exceptionDetails.exception ?
@@ -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 '../platform/platform.js';
5
6
  import type * as Protocol from '../../generated/protocol.js';
6
7
 
7
8
  const OPAQUE_PARITION_KEY = '<opaque>';
@@ -144,7 +145,7 @@ export class Cookie {
144
145
  /**
145
146
  * @deprecated
146
147
  */
147
- url(): string|null {
148
+ url(): Platform.DevToolsPath.UrlString|null {
148
149
  if (!this.domain() || !this.path()) {
149
150
  return null;
150
151
  }
@@ -156,7 +157,8 @@ export class Cookie {
156
157
  }
157
158
  // We must not consider the this.sourceScheme() here, otherwise it will be impossible to set a cookie without
158
159
  // the Secure attribute from a secure origin.
159
- return (this.secure() ? 'https://' : 'http://') + this.domain() + port + this.path();
160
+ return (this.secure() ? 'https://' : 'http://') + this.domain() + port + this.path() as
161
+ Platform.DevToolsPath.UrlString;
160
162
  }
161
163
 
162
164
  setSize(size: number): void {
@@ -234,8 +234,12 @@ export class DOMDebuggerModel extends SDKModel<EventTypes> {
234
234
  readonly #runtimeModelInternal: RuntimeModel;
235
235
  #domModel: DOMModel;
236
236
  #domBreakpointsInternal: DOMBreakpoint[];
237
- readonly #domBreakpointsSetting: Common.Settings
238
- .Setting<{url: string, path: string, type: Protocol.DOMDebugger.DOMBreakpointType, enabled: boolean}[]>;
237
+ readonly #domBreakpointsSetting: Common.Settings.Setting<{
238
+ url: Platform.DevToolsPath.UrlString,
239
+ path: string,
240
+ type: Protocol.DOMDebugger.DOMBreakpointType,
241
+ enabled: boolean,
242
+ }[]>;
239
243
  suspended = false;
240
244
 
241
245
  constructor(target: Target) {
@@ -384,9 +388,9 @@ export class DOMDebuggerModel extends SDKModel<EventTypes> {
384
388
  return {type: type, node: node, targetNode: targetNode, insertion: insertion};
385
389
  }
386
390
 
387
- private currentURL(): string {
391
+ private currentURL(): Platform.DevToolsPath.UrlString {
388
392
  const domDocument = this.#domModel.existingDocument();
389
- return domDocument ? domDocument.documentURL : '';
393
+ return domDocument ? domDocument.documentURL : Platform.DevToolsPath.EmptyUrlString;
390
394
  }
391
395
 
392
396
  private async documentUpdated(): Promise<void> {
@@ -403,7 +407,7 @@ export class DOMDebuggerModel extends SDKModel<EventTypes> {
403
407
  // Note that requestDocument() caches the document so that it is requested
404
408
  // only once.
405
409
  const document = await this.#domModel.requestDocument();
406
- const currentURL = document ? document.documentURL : '';
410
+ const currentURL = document ? document.documentURL : Platform.DevToolsPath.EmptyUrlString;
407
411
  for (const breakpoint of this.#domBreakpointsSetting.get()) {
408
412
  if (breakpoint.url === currentURL) {
409
413
  void this.#domModel.pushNodeByPathToFrontend(breakpoint.path).then(appendBreakpoint.bind(this, breakpoint));
@@ -464,7 +468,7 @@ export class DOMDebuggerModel extends SDKModel<EventTypes> {
464
468
  private saveDOMBreakpoints(): void {
465
469
  const currentURL = this.currentURL();
466
470
  const breakpoints = this.#domBreakpointsSetting.get().filter((breakpoint: {
467
- url: string,
471
+ url: Platform.DevToolsPath.UrlString,
468
472
  }) => breakpoint.url !== currentURL);
469
473
  for (const breakpoint of this.#domBreakpointsInternal) {
470
474
  breakpoints.push(
@@ -808,9 +808,9 @@ export class DOMNode {
808
808
  traverse(this);
809
809
  }
810
810
 
811
- resolveURL(url: string): string|null {
811
+ resolveURL(url: string): Platform.DevToolsPath.UrlString|null {
812
812
  if (!url) {
813
- return url;
813
+ return url as Platform.DevToolsPath.UrlString;
814
814
  }
815
815
  for (let frameOwnerCandidate: (DOMNode|null) = (this as DOMNode | null); frameOwnerCandidate;
816
816
  frameOwnerCandidate = frameOwnerCandidate.parentNode) {
@@ -139,6 +139,7 @@ export class DebuggerModel extends SDKModel<EventTypes> {
139
139
  }>>)|null;
140
140
  #expandCallFramesCallback: ((arg0: Array<CallFrame>) => Promise<Array<CallFrame>>)|null;
141
141
  evaluateOnCallFrameCallback: ((arg0: CallFrame, arg1: EvaluationOptions) => Promise<EvaluationResult|null>)|null;
142
+ #synchronizeBreakpointsCallback: ((script: Script) => Promise<void>)|null;
142
143
  // We need to be able to register listeners for individual breakpoints. As such, we dispatch
143
144
  // on breakpoint ids, which are not statically known. The event #payload will always be a `Location`.
144
145
  readonly #breakpointResolvedEventTarget =
@@ -169,6 +170,7 @@ export class DebuggerModel extends SDKModel<EventTypes> {
169
170
  this.#computeAutoStepRangesCallback = null;
170
171
  this.#expandCallFramesCallback = null;
171
172
  this.evaluateOnCallFrameCallback = null;
173
+ this.#synchronizeBreakpointsCallback = null;
172
174
 
173
175
  this.#autoStepOver = false;
174
176
 
@@ -232,7 +234,12 @@ export class DebuggerModel extends SDKModel<EventTypes> {
232
234
  const isRemoteFrontend = Root.Runtime.Runtime.queryParam('remoteFrontend') || Root.Runtime.Runtime.queryParam('ws');
233
235
  const maxScriptsCacheSize = isRemoteFrontend ? 10e6 : 100e6;
234
236
  const enablePromise = this.agent.invoke_enable({maxScriptsCacheSize});
235
- void enablePromise.then(this.registerDebugger.bind(this));
237
+ let instrumentationPromise: Promise<Protocol.Debugger.SetInstrumentationBreakpointResponse>|undefined;
238
+ if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.INSTRUMENTATION_BREAKPOINTS)) {
239
+ instrumentationPromise = this.agent.invoke_setInstrumentationBreakpoint({
240
+ instrumentation: Protocol.Debugger.SetInstrumentationBreakpointRequestInstrumentation.BeforeScriptExecution,
241
+ });
242
+ }
236
243
  this.pauseOnExceptionStateChanged();
237
244
  void this.asyncStackTracesStateChanged();
238
245
  if (!Common.Settings.Settings.instance().moduleSetting('breakpointsActive').get()) {
@@ -242,7 +249,8 @@ export class DebuggerModel extends SDKModel<EventTypes> {
242
249
  void this.pauseOnAsyncCall(_scheduledPauseOnAsyncCall);
243
250
  }
244
251
  this.dispatchEventToListeners(Events.DebuggerWasEnabled, this);
245
- await enablePromise;
252
+ const [enableResult] = await Promise.all([enablePromise, instrumentationPromise]);
253
+ this.registerDebugger(enableResult);
246
254
  }
247
255
 
248
256
  async syncDebuggerId(): Promise<Protocol.Debugger.EnableResponse> {
@@ -644,11 +652,24 @@ export class DebuggerModel extends SDKModel<EventTypes> {
644
652
  this.evaluateOnCallFrameCallback = callback;
645
653
  }
646
654
 
655
+ setSynchronizeBreakpointsCallback(callback: (script: Script) => Promise<void>): void {
656
+ this.#synchronizeBreakpointsCallback = callback;
657
+ }
658
+
647
659
  async pausedScript(
648
660
  callFrames: Protocol.Debugger.CallFrame[], reason: Protocol.Debugger.PausedEventReason, auxData: Object|undefined,
649
661
  breakpointIds: string[], asyncStackTrace?: Protocol.Runtime.StackTrace,
650
662
  asyncStackTraceId?: Protocol.Runtime.StackTraceId,
651
663
  asyncCallStackTraceId?: Protocol.Runtime.StackTraceId): Promise<void> {
664
+ if (reason === Protocol.Debugger.PausedEventReason.Instrumentation) {
665
+ const script = this.scriptForId(callFrames[0].location.scriptId);
666
+ if (this.#synchronizeBreakpointsCallback && script) {
667
+ await this.#synchronizeBreakpointsCallback(script);
668
+ }
669
+ this.resume();
670
+ return;
671
+ }
672
+
652
673
  if (asyncCallStackTraceId) {
653
674
  // Note: this is only to support old backends. Newer ones do not send asyncCallStackTraceId.
654
675
  _scheduledPauseOnAsyncCall = asyncCallStackTraceId;
@@ -703,7 +724,7 @@ export class DebuggerModel extends SDKModel<EventTypes> {
703
724
  sourceMapURL: Platform.DevToolsPath.UrlString|undefined, hasSourceURLComment: boolean, hasSyntaxError: boolean,
704
725
  length: number, isModule: boolean|null, originStackTrace: Protocol.Runtime.StackTrace|null,
705
726
  codeOffset: number|null, scriptLanguage: string|null, debugSymbols: Protocol.Debugger.DebugSymbols|null,
706
- embedderName: string|null): Script {
727
+ embedderName: Platform.DevToolsPath.UrlString|null): Script {
707
728
  const knownScript = this.#scriptsInternal.get(scriptId);
708
729
  if (knownScript) {
709
730
  return knownScript;
@@ -1060,7 +1081,8 @@ class DebuggerDispatcher implements ProtocolProxyApi.DebuggerDispatcher {
1060
1081
  scriptId, url as Platform.DevToolsPath.UrlString, startLine, startColumn, endLine, endColumn,
1061
1082
  executionContextId, hash, executionContextAuxData, Boolean(isLiveEdit),
1062
1083
  sourceMapURL as Platform.DevToolsPath.UrlString, Boolean(hasSourceURL), false, length || 0, isModule || null,
1063
- stackTrace || null, codeOffset || null, scriptLanguage || null, debugSymbols || null, embedderName || null);
1084
+ stackTrace || null, codeOffset || null, scriptLanguage || null, debugSymbols || null,
1085
+ embedderName as Platform.DevToolsPath.UrlString || null);
1064
1086
  }
1065
1087
 
1066
1088
  scriptFailedToParse({
@@ -1089,7 +1111,7 @@ class DebuggerDispatcher implements ProtocolProxyApi.DebuggerDispatcher {
1089
1111
  scriptId, url as Platform.DevToolsPath.UrlString, startLine, startColumn, endLine, endColumn,
1090
1112
  executionContextId, hash, executionContextAuxData, false, sourceMapURL as Platform.DevToolsPath.UrlString,
1091
1113
  Boolean(hasSourceURL), true, length || 0, isModule || null, stackTrace || null, codeOffset || null,
1092
- scriptLanguage || null, null, embedderName || null);
1114
+ scriptLanguage || null, null, embedderName as Platform.DevToolsPath.UrlString || null);
1093
1115
  }
1094
1116
 
1095
1117
  breakpointResolved({breakpointId, location}: Protocol.Debugger.BreakpointResolvedEvent): void {
@@ -4,6 +4,7 @@
4
4
 
5
5
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
6
6
  import type * as Protocol from '../../generated/protocol.js';
7
+ import type * as Platform from '../platform/platform.js';
7
8
 
8
9
  import type {DebuggerModel} from './DebuggerModel.js';
9
10
  import type {RemoteObject} from './RemoteObject.js';
@@ -179,7 +180,7 @@ export type EventTypes = {
179
180
 
180
181
  export interface NativeProfilerCallFrame {
181
182
  functionName: string;
182
- url: string;
183
+ url: Platform.DevToolsPath.UrlString;
183
184
  scriptId?: string;
184
185
  lineNumber?: number;
185
186
  columnNumber?: number;
@@ -249,7 +249,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
249
249
  return newHeaders;
250
250
  }
251
251
 
252
- requestForURL(url: string): NetworkRequest|null {
252
+ requestForURL(url: Platform.DevToolsPath.UrlString): NetworkRequest|null {
253
253
  return this.dispatcher.requestForURL(url);
254
254
  }
255
255
 
@@ -281,7 +281,7 @@ export class NetworkManager extends SDKModel<EventTypes> {
281
281
  }
282
282
 
283
283
  async loadNetworkResource(
284
- frameId: Protocol.Page.FrameId|null, url: string,
284
+ frameId: Protocol.Page.FrameId|null, url: Platform.DevToolsPath.UrlString,
285
285
  options: Protocol.Network.LoadNetworkResourceOptions): Promise<Protocol.Network.LoadNetworkResourcePageResult> {
286
286
  const result = await this.#networkAgent.invoke_loadNetworkResource({frameId: frameId ?? undefined, url, options});
287
287
  if (result.getError()) {
@@ -395,7 +395,7 @@ export class FetchDispatcher implements ProtocolProxyApi.FetchDispatcher {
395
395
  export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
396
396
  readonly #manager: NetworkManager;
397
397
  #requestsById: Map<string, NetworkRequest>;
398
- #requestsByURL: Map<string, NetworkRequest>;
398
+ #requestsByURL: Map<Platform.DevToolsPath.UrlString, NetworkRequest>;
399
399
  #requestIdToExtraInfoBuilder: Map<string, ExtraInfoBuilder>;
400
400
  readonly #requestIdToTrustTokenEvent: Map<string, Protocol.Network.TrustTokenOperationDoneEvent>;
401
401
  constructor(manager: NetworkManager) {
@@ -417,7 +417,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
417
417
  MultitargetNetworkManager.Events.RequestIntercepted, this.#markAsIntercepted.bind(this));
418
418
  }
419
419
 
420
- #markAsIntercepted(event: Common.EventTarget.EventTargetEvent<string>): void {
420
+ #markAsIntercepted(event: Common.EventTarget.EventTargetEvent<Platform.DevToolsPath.UrlString>): void {
421
421
  const request = this.requestForURL(event.data);
422
422
  if (request) {
423
423
  request.setWasIntercepted(true);
@@ -522,7 +522,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
522
522
  return this.#requestsById.get(url) || null;
523
523
  }
524
524
 
525
- requestForURL(url: string): NetworkRequest|null {
525
+ requestForURL(url: Platform.DevToolsPath.UrlString): NetworkRequest|null {
526
526
  return this.#requestsByURL.get(url) || null;
527
527
  }
528
528
 
@@ -550,7 +550,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
550
550
  // TODO(crbug/841076): Sends the request ID of prefetching to the browser
551
551
  // process and DevTools to find the matching request.
552
552
  if (!networkRequest) {
553
- networkRequest = this.#requestsByURL.get(info.outerResponse.url);
553
+ networkRequest = this.#requestsByURL.get(info.outerResponse.url as Platform.DevToolsPath.UrlString);
554
554
  if (!networkRequest) {
555
555
  return;
556
556
  }
@@ -1021,7 +1021,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1021
1021
  subresourceWebBundleMetadataReceived({requestId, urls}: Protocol.Network.SubresourceWebBundleMetadataReceivedEvent):
1022
1022
  void {
1023
1023
  const extraInfoBuilder = this.getExtraInfoBuilder(requestId);
1024
- extraInfoBuilder.setWebBundleInfo({resourceUrls: urls});
1024
+ extraInfoBuilder.setWebBundleInfo({resourceUrls: urls as Platform.DevToolsPath.UrlString[]});
1025
1025
  const finalRequest = extraInfoBuilder.finalRequest();
1026
1026
  if (finalRequest) {
1027
1027
  this.updateNetworkRequest(finalRequest);
@@ -1099,7 +1099,7 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
1099
1099
  #updatingInterceptionPatternsPromise: Promise<void>|null;
1100
1100
  readonly #blockingEnabledSetting: Common.Settings.Setting<boolean>;
1101
1101
  readonly #blockedPatternsSetting: Common.Settings.Setting<BlockedPattern[]>;
1102
- #effectiveBlockedURLs: string[];
1102
+ #effectiveBlockedURLs: Platform.DevToolsPath.UrlString[];
1103
1103
  readonly #urlsForRequestInterceptor:
1104
1104
  Platform.MapUtilities.Multimap<(arg0: InterceptedRequest) => Promise<void>, InterceptionPattern>;
1105
1105
  #extraHeaders?: Protocol.Network.Headers;
@@ -1420,7 +1420,8 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
1420
1420
  await requestInterceptor(interceptedRequest);
1421
1421
  if (interceptedRequest.hasResponded()) {
1422
1422
  this.dispatchEventToListeners(
1423
- MultitargetNetworkManager.Events.RequestIntercepted, interceptedRequest.request.url);
1423
+ MultitargetNetworkManager.Events.RequestIntercepted,
1424
+ interceptedRequest.request.url as Platform.DevToolsPath.UrlString);
1424
1425
  return;
1425
1426
  }
1426
1427
  }
@@ -1453,7 +1454,7 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
1453
1454
  return certificate.tableNames;
1454
1455
  }
1455
1456
 
1456
- async loadResource(url: string): Promise<{
1457
+ async loadResource(url: Platform.DevToolsPath.UrlString): Promise<{
1457
1458
  success: boolean,
1458
1459
  content: string,
1459
1460
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
@@ -1496,7 +1497,7 @@ export namespace MultitargetNetworkManager {
1496
1497
  [Events.UserAgentChanged]: void,
1497
1498
  [Events.InterceptorsChanged]: void,
1498
1499
  [Events.AcceptedEncodingsChanged]: void,
1499
- [Events.RequestIntercepted]: string,
1500
+ [Events.RequestIntercepted]: Platform.DevToolsPath.UrlString,
1500
1501
  };
1501
1502
  }
1502
1503
 
@@ -1713,7 +1714,7 @@ export interface Conditions {
1713
1714
  }
1714
1715
 
1715
1716
  export interface BlockedPattern {
1716
- url: string;
1717
+ url: Platform.DevToolsPath.UrlString;
1717
1718
  enabled: boolean;
1718
1719
  }
1719
1720
 
@@ -1718,7 +1718,7 @@ export interface ExtraResponseInfo {
1718
1718
  }
1719
1719
 
1720
1720
  export interface WebBundleInfo {
1721
- resourceUrls?: string[];
1721
+ resourceUrls?: Platform.DevToolsPath.UrlString[];
1722
1722
  errorMessage?: string;
1723
1723
  }
1724
1724