chrome-devtools-frontend 1.0.923319 → 1.0.923788

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 (223) hide show
  1. package/front_end/core/common/EventTarget.ts +7 -13
  2. package/front_end/core/common/Object.ts +5 -9
  3. package/front_end/core/common/Settings.ts +12 -9
  4. package/front_end/core/sdk/RuntimeModel.ts +1 -1
  5. package/front_end/core/sdk/SourceMap.ts +74 -31
  6. package/front_end/core/sdk/TargetManager.ts +7 -7
  7. package/front_end/models/bindings/CompilerScriptMapping.ts +24 -6
  8. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +30 -30
  9. package/front_end/models/extensions/ExtensionServer.ts +10 -13
  10. package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
  11. package/front_end/models/workspace_diff/WorkspaceDiff.ts +24 -20
  12. package/front_end/panels/application/ApplicationPanelSidebar.ts +14 -19
  13. package/front_end/panels/application/DatabaseModel.ts +6 -1
  14. package/front_end/panels/application/IndexedDBModel.ts +9 -1
  15. package/front_end/panels/console/ConsolePinPane.ts +1 -2
  16. package/front_end/panels/coverage/CoverageModel.ts +9 -3
  17. package/front_end/panels/media/PlayerMessagesView.ts +2 -4
  18. package/front_end/panels/profiler/HeapProfileView.ts +12 -2
  19. package/front_end/panels/profiler/HeapSnapshotView.ts +52 -20
  20. package/front_end/panels/profiler/ProfileHeader.ts +11 -2
  21. package/front_end/panels/profiler/ProfilesPanel.ts +7 -6
  22. package/front_end/panels/timeline/TimelineUIUtils.ts +1 -2
  23. package/front_end/panels/web_audio/WebAudioModel.ts +19 -1
  24. package/front_end/panels/web_audio/WebAudioView.ts +25 -19
  25. package/front_end/third_party/puppeteer/README.chromium +1 -1
  26. package/front_end/third_party/puppeteer/package/CHANGELOG.md +66 -0
  27. package/front_end/third_party/puppeteer/package/README.md +34 -13
  28. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
  29. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js +5 -5
  30. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -1
  31. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +18 -2
  32. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
  33. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js +8 -3
  34. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js.map +1 -1
  35. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts +2 -2
  36. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js +2 -2
  37. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts +22 -6
  38. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts.map +1 -1
  39. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js +14 -7
  40. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js.map +1 -1
  41. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts +1 -0
  42. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
  43. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js +10 -6
  44. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
  45. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
  46. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js +120 -0
  47. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js.map +1 -1
  48. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts +1 -1
  49. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts.map +1 -1
  50. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
  51. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +2 -2
  52. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
  53. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +62 -3
  54. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  55. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +131 -3
  56. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  57. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts +40 -0
  58. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts.map +1 -1
  59. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js +76 -0
  60. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js.map +1 -1
  61. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +53 -2
  62. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
  63. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +82 -13
  64. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +2 -1
  66. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +14 -2
  68. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +5 -0
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +1053 -29
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +1114 -22
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.d.ts.map +1 -1
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js +17 -6
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts +1 -0
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js +6 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts +21 -5
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +47 -28
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts +17 -0
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts.map +1 -0
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js +3 -0
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js.map +1 -0
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +9 -10
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +5 -2
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +10 -2
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts +1 -1
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +83 -6
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +7 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js +2 -2
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js.map +1 -1
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +17 -3
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +5 -5
  116. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +18 -2
  118. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +8 -3
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +2 -2
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +2 -2
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +22 -6
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +14 -7
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +1 -0
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +10 -6
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +120 -0
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +2 -2
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +62 -3
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +131 -3
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +40 -0
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +76 -0
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +53 -2
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +82 -13
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +2 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +14 -2
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +5 -0
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +1053 -29
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1115 -23
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +17 -6
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +1 -0
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +4 -0
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +21 -5
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +32 -13
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts +17 -0
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts.map +1 -0
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js +2 -0
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js.map +1 -0
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +9 -10
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +5 -2
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +10 -2
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +83 -6
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +7 -1
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +2 -2
  195. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js.map +1 -1
  196. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +17 -3
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  200. package/front_end/third_party/puppeteer/package/lib/types.d.ts +1382 -19726
  201. package/front_end/third_party/puppeteer/package/package.json +9 -6
  202. package/front_end/third_party/wasmparser/README.chromium +2 -2
  203. package/front_end/third_party/wasmparser/package/CHANGELOG.md +13 -0
  204. package/front_end/third_party/wasmparser/package/dist/cjs/WasmDis.js +50 -10
  205. package/front_end/third_party/wasmparser/package/dist/cjs/WasmDis.js.map +1 -1
  206. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.d.ts +21 -4
  207. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js +76 -8
  208. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js.map +1 -1
  209. package/front_end/third_party/wasmparser/package/dist/esm/WasmDis.js +50 -10
  210. package/front_end/third_party/wasmparser/package/dist/esm/WasmDis.js.map +1 -1
  211. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.d.ts +21 -4
  212. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js +76 -8
  213. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js.map +1 -1
  214. package/front_end/third_party/wasmparser/package/package.json +1 -1
  215. package/front_end/third_party/wasmparser/package/src/WasmDis.ts +47 -10
  216. package/front_end/third_party/wasmparser/package/src/WasmParser.ts +75 -5
  217. package/front_end/ui/components/icon_button/iconButton.css +4 -0
  218. package/front_end/ui/legacy/GlassPane.ts +1 -3
  219. package/front_end/ui/legacy/UIUtils.ts +2 -3
  220. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  221. package/front_end/ui/legacy/reportView.css +1 -0
  222. package/package.json +1 -1
  223. package/scripts/build/rollup.config.js +0 -5
@@ -11,7 +11,7 @@ export interface EventDescriptor<Events = any, T extends EventType<Events> = any
11
11
  eventTarget: EventTarget<Events>;
12
12
  eventType: T;
13
13
  thisObject?: Object;
14
- listener: (arg0: EventTargetEvent<EventPayload<Events, T>>) => void;
14
+ listener: EventListener<Events, T>;
15
15
  }
16
16
 
17
17
  export function removeEventListeners(eventList: EventDescriptor[]): void {
@@ -22,24 +22,18 @@ export function removeEventListeners(eventList: EventDescriptor[]): void {
22
22
  eventList.splice(0);
23
23
  }
24
24
 
25
- // TODO(crbug.com/1228674): Once all event emitters and sinks have been migrated
26
- // we can use:
27
- // export type EventType<Events> = keyof Events;
28
- // export type EventPayload<Events, T> = Events[T];
29
25
  export type EventType<Events> = Events extends Object ? keyof Events : Events extends void ? never : string|symbol;
30
26
  export type EventPayload<Events, T> = T extends keyof Events ? Events[T] : unknown;
31
27
  export type EventPayloadToRestParameters<T> = T extends void ? [] : [T];
32
28
 
33
- // TODO(crbug.com/1228674) Remove defaults for generic type parameters once
34
- // all event emitters and sinks have been migrated.
35
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- export interface EventTarget<Events = any> {
37
- addEventListener<T extends EventType<Events>>(
38
- eventType: T, listener: (arg0: EventTargetEvent<EventPayload<Events, T>>) => void,
39
- thisObject?: Object): EventDescriptor<Events, T>;
29
+ export type EventListener<Events, T> = (arg0: EventTargetEvent<EventPayload<Events, T>>) => void;
30
+
31
+ export interface EventTarget<Events> {
32
+ addEventListener<T extends EventType<Events>>(eventType: T, listener: EventListener<Events, T>, thisObject?: Object):
33
+ EventDescriptor<Events, T>;
40
34
  once<T extends EventType<Events>>(eventType: T): Promise<EventPayload<Events, T>>;
41
35
  removeEventListener<T extends EventType<Events>>(
42
- eventType: T, listener: (arg0: EventTargetEvent<EventPayload<Events, T>>) => void, thisObject?: Object): void;
36
+ eventType: T, listener: EventListener<Events, T>, thisObject?: Object): void;
43
37
  hasEventListeners(eventType: EventType<Events>): boolean;
44
38
  dispatchEventToListeners<T extends EventType<Events>>(
45
39
  eventType: Platform.TypeScriptUtilities.NoUnion<T>,
@@ -28,7 +28,7 @@
28
28
  */
29
29
 
30
30
  import type * as Platform from '../platform/platform.js';
31
- import type {EventDescriptor, EventTarget, EventTargetEvent, EventType, EventPayload, EventPayloadToRestParameters} from './EventTarget.js';
31
+ import type {EventDescriptor, EventListener, EventTarget, EventTargetEvent, EventType, EventPayload, EventPayloadToRestParameters} from './EventTarget.js';
32
32
 
33
33
  export interface ListenerCallbackTuple {
34
34
  thisObject?: Object;
@@ -36,15 +36,11 @@ export interface ListenerCallbackTuple {
36
36
  disposed?: boolean;
37
37
  }
38
38
 
39
- // TODO(crbug.com/1228674) Remove defaults for generic type parameters once
40
- // all event emitters and sinks have been migrated.
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- export class ObjectWrapper<Events = any> implements EventTarget<Events> {
39
+ export class ObjectWrapper<Events> implements EventTarget<Events> {
43
40
  listeners?: Map<EventType<Events>, Set<ListenerCallbackTuple>>;
44
41
 
45
- addEventListener<T extends EventType<Events>>(
46
- eventType: T, listener: (arg0: EventTargetEvent<EventPayload<Events, T>>) => void,
47
- thisObject?: Object): EventDescriptor<Events, T> {
42
+ addEventListener<T extends EventType<Events>>(eventType: T, listener: EventListener<Events, T>, thisObject?: Object):
43
+ EventDescriptor<Events, T> {
48
44
  if (!this.listeners) {
49
45
  this.listeners = new Map();
50
46
  }
@@ -68,7 +64,7 @@ export class ObjectWrapper<Events = any> implements EventTarget<Events> {
68
64
  }
69
65
 
70
66
  removeEventListener<T extends EventType<Events>>(
71
- eventType: T, listener: (arg0: EventTargetEvent<EventPayload<Events, T>>) => void, thisObject?: Object): void {
67
+ eventType: T, listener: EventListener<Events, T>, thisObject?: Object): void {
72
68
  const listeners = this.listeners?.get(eventType);
73
69
  if (!listeners) {
74
70
  return;
@@ -46,7 +46,7 @@ export class Settings {
46
46
  private readonly sessionStorage: SettingsStorage;
47
47
  settingNameSet: Set<string>;
48
48
  orderValuesBySettingCategory: Map<SettingCategory, Set<number>>;
49
- private eventSupport: ObjectWrapper;
49
+ private eventSupport: ObjectWrapper<unknown>;
50
50
  private registry: Map<string, Setting<unknown>>;
51
51
  readonly moduleSettings: Map<string, Setting<unknown>>;
52
52
 
@@ -59,7 +59,7 @@ export class Settings {
59
59
 
60
60
  this.orderValuesBySettingCategory = new Map();
61
61
 
62
- this.eventSupport = new ObjectWrapper();
62
+ this.eventSupport = new ObjectWrapper<unknown>();
63
63
  this.registry = new Map();
64
64
  this.moduleSettings = new Map();
65
65
 
@@ -276,7 +276,7 @@ function removeSetting(setting: Setting<unknown>): void {
276
276
  export class Setting<V> {
277
277
  private nameInternal: string;
278
278
  private defaultValueInternal: V;
279
- private readonly eventSupport: ObjectWrapper;
279
+ private readonly eventSupport: ObjectWrapper<unknown>;
280
280
  private storage: SettingsStorage;
281
281
  private titleFunction!: () => Platform.UIString.LocalizedString;
282
282
  private titleInternal!: string;
@@ -287,7 +287,7 @@ export class Setting<V> {
287
287
  private serializer: Serializer<unknown, V> = JSON;
288
288
  private hadUserAction?: boolean;
289
289
 
290
- constructor(name: string, defaultValue: V, eventSupport: ObjectWrapper, storage: SettingsStorage) {
290
+ constructor(name: string, defaultValue: V, eventSupport: ObjectWrapper<unknown>, storage: SettingsStorage) {
291
291
  this.nameInternal = name;
292
292
  this.defaultValueInternal = defaultValue;
293
293
  this.eventSupport = eventSupport;
@@ -299,12 +299,14 @@ export class Setting<V> {
299
299
  this.serializer = serializer;
300
300
  }
301
301
 
302
- addChangeListener(listener: (arg0: EventTargetEvent) => void, thisObject?: Object): EventDescriptor {
303
- return this.eventSupport.addEventListener(this.nameInternal, listener, thisObject);
302
+ addChangeListener(listener: (arg0: EventTargetEvent<V>) => void, thisObject?: Object): EventDescriptor {
303
+ return this.eventSupport.addEventListener(
304
+ this.nameInternal, listener as (arg0: EventTargetEvent<unknown>) => void, thisObject);
304
305
  }
305
306
 
306
- removeChangeListener(listener: (arg0: EventTargetEvent) => void, thisObject?: Object): void {
307
- this.eventSupport.removeEventListener(this.nameInternal, listener, thisObject);
307
+ removeChangeListener(listener: (arg0: EventTargetEvent<V>) => void, thisObject?: Object): void {
308
+ this.eventSupport.removeEventListener(
309
+ this.nameInternal, listener as (arg0: EventTargetEvent<unknown>) => void, thisObject);
308
310
  }
309
311
 
310
312
  get name(): string {
@@ -449,7 +451,8 @@ export class RegExpSetting extends Setting<any> {
449
451
  private regex?: RegExp|null;
450
452
 
451
453
  constructor(
452
- name: string, defaultValue: string, eventSupport: ObjectWrapper, storage: SettingsStorage, regexFlags?: string) {
454
+ name: string, defaultValue: string, eventSupport: ObjectWrapper<unknown>, storage: SettingsStorage,
455
+ regexFlags?: string) {
453
456
  super(name, defaultValue ? [{pattern: defaultValue}] : [], eventSupport, storage);
454
457
  this.regexFlags = regexFlags;
455
458
  }
@@ -487,7 +487,7 @@ export interface QueryObjectRequestedEvent {
487
487
 
488
488
  export type EventTypes = {
489
489
  [Events.BindingCalled]: Protocol.Runtime.BindingCalledEvent,
490
- [Events.ExecutionContextCreated]: Protocol.Runtime.ExecutionContextDescription,
490
+ [Events.ExecutionContextCreated]: ExecutionContext,
491
491
  [Events.ExecutionContextDestroyed]: ExecutionContext,
492
492
  [Events.ExecutionContextChanged]: ExecutionContext,
493
493
  [Events.ExecutionContextOrderChanged]: RuntimeModel,
@@ -62,6 +62,7 @@ export interface SourceMap {
62
62
  TextUtils.ContentProvider.ContentProvider;
63
63
  embeddedContentByURL(sourceURL: string): string|null;
64
64
  findEntry(lineNumber: number, columnNumber: number): SourceMapEntry|null;
65
+ findReverseRanges(sourceURL: string, lineNumber: number, columnNumber: number): TextUtils.TextRange.TextRange[];
65
66
  sourceLineMapping(sourceURL: string, lineNumber: number, columnNumber: number): SourceMapEntry|null;
66
67
  mappings(): SourceMapEntry[];
67
68
  mapsOrigin(): boolean;
@@ -225,37 +226,71 @@ export class TextSourceMap implements SourceMap {
225
226
  }
226
227
 
227
228
  sourceLineMapping(sourceURL: string, lineNumber: number, columnNumber: number): SourceMapEntry|null {
228
- const mappings = this.reversedMappings(sourceURL);
229
- const first = Platform.ArrayUtilities.lowerBound(mappings, lineNumber, lineComparator);
230
- const last = Platform.ArrayUtilities.upperBound(mappings, lineNumber, lineComparator);
231
- if (first >= mappings.length || mappings[first].sourceLineNumber !== lineNumber) {
229
+ const mappings = this.mappings();
230
+ const reverseMappings = this.reversedMappings(sourceURL);
231
+ const first = Platform.ArrayUtilities.lowerBound(reverseMappings, lineNumber, lineComparator);
232
+ const last = Platform.ArrayUtilities.upperBound(reverseMappings, lineNumber, lineComparator);
233
+ if (first >= reverseMappings.length || mappings[reverseMappings[first]].sourceLineNumber !== lineNumber) {
232
234
  return null;
233
235
  }
234
- const columnMappings = mappings.slice(first, last);
236
+ const columnMappings = reverseMappings.slice(first, last);
235
237
  if (!columnMappings.length) {
236
238
  return null;
237
239
  }
238
240
  const index = Platform.ArrayUtilities.lowerBound(
239
- columnMappings, columnNumber, (columnNumber, mapping) => columnNumber - mapping.sourceColumnNumber);
240
- return index >= columnMappings.length ? columnMappings[columnMappings.length - 1] : columnMappings[index];
241
+ columnMappings, columnNumber, (columnNumber, i) => columnNumber - mappings[i].sourceColumnNumber);
242
+ return index >= columnMappings.length ? mappings[columnMappings[columnMappings.length - 1]] :
243
+ mappings[columnMappings[index]];
241
244
 
242
- function lineComparator(lineNumber: number, mapping: SourceMapEntry): number {
243
- return lineNumber - mapping.sourceLineNumber;
245
+ function lineComparator(lineNumber: number, i: number): number {
246
+ return lineNumber - mappings[i].sourceLineNumber;
244
247
  }
245
248
  }
246
249
 
247
- findReverseEntries(sourceURL: string, lineNumber: number, columnNumber: number): SourceMapEntry[] {
248
- const mappings = this.reversedMappings(sourceURL);
250
+ private findReverseIndices(sourceURL: string, lineNumber: number, columnNumber: number): number[] {
251
+ const mappings = this.mappings();
252
+ const reverseMappings = this.reversedMappings(sourceURL);
249
253
  const endIndex = Platform.ArrayUtilities.upperBound(
250
- mappings, undefined,
251
- (unused, entry) => lineNumber - entry.sourceLineNumber || columnNumber - entry.sourceColumnNumber);
254
+ reverseMappings, undefined,
255
+ (unused, i) => lineNumber - mappings[i].sourceLineNumber || columnNumber - mappings[i].sourceColumnNumber);
252
256
  let startIndex = endIndex;
253
- while (startIndex > 0 && mappings[startIndex - 1].sourceLineNumber === mappings[endIndex - 1].sourceLineNumber &&
254
- mappings[startIndex - 1].sourceColumnNumber === mappings[endIndex - 1].sourceColumnNumber) {
257
+ while (startIndex > 0 &&
258
+ mappings[reverseMappings[startIndex - 1]].sourceLineNumber ===
259
+ mappings[reverseMappings[endIndex - 1]].sourceLineNumber &&
260
+ mappings[reverseMappings[startIndex - 1]].sourceColumnNumber ===
261
+ mappings[reverseMappings[endIndex - 1]].sourceColumnNumber) {
255
262
  --startIndex;
256
263
  }
257
264
 
258
- return mappings.slice(startIndex, endIndex);
265
+ return reverseMappings.slice(startIndex, endIndex);
266
+ }
267
+
268
+ findReverseEntries(sourceURL: string, lineNumber: number, columnNumber: number): SourceMapEntry[] {
269
+ const mappings = this.mappings();
270
+ return this.findReverseIndices(sourceURL, lineNumber, columnNumber).map(i => mappings[i]);
271
+ }
272
+
273
+ findReverseRanges(sourceURL: string, lineNumber: number, columnNumber: number): TextUtils.TextRange.TextRange[] {
274
+ const mappings = this.mappings();
275
+ const indices = this.findReverseIndices(sourceURL, lineNumber, columnNumber);
276
+ const ranges: TextUtils.TextRange.TextRange[] = [];
277
+
278
+ for (let i = 0; i < indices.length; ++i) {
279
+ const startIndex = indices[i];
280
+
281
+ // Merge adjacent ranges.
282
+ let endIndex = startIndex + 1;
283
+ while (i + 1 < indices.length && endIndex === indices[i + 1]) {
284
+ ++endIndex;
285
+ ++i;
286
+ }
287
+ const endLine = endIndex < mappings.length ? mappings[endIndex].lineNumber : Infinity;
288
+ const endColumn = endIndex < mappings.length ? mappings[endIndex].columnNumber : 0;
289
+ ranges.push(new TextUtils.TextRange.TextRange(
290
+ mappings[startIndex].lineNumber, mappings[startIndex].columnNumber, endLine, endColumn));
291
+ }
292
+
293
+ return ranges;
259
294
  }
260
295
 
261
296
  mappings(): SourceMapEntry[] {
@@ -267,19 +302,22 @@ export class TextSourceMap implements SourceMap {
267
302
  return /** @type {!Array<!SourceMapEntry>} */ this.mappingsInternal as SourceMapEntry[];
268
303
  }
269
304
 
270
- private reversedMappings(sourceURL: string): SourceMapEntry[] {
305
+ private reversedMappings(sourceURL: string): number[] {
271
306
  const info = this.sourceInfos.get(sourceURL);
272
307
  if (!info) {
273
308
  return [];
274
309
  }
275
310
  const mappings = this.mappings();
276
311
  if (info.reverseMappings === null) {
277
- info.reverseMappings = mappings.filter(mapping => mapping.sourceURL === sourceURL).sort(sourceMappingComparator);
312
+ const indexes = Array(mappings.length).fill(0).map((_, i) => i);
313
+ info.reverseMappings = indexes.filter(i => mappings[i].sourceURL === sourceURL).sort(sourceMappingComparator);
278
314
  }
279
315
 
280
316
  return info.reverseMappings;
281
317
 
282
- function sourceMappingComparator(a: SourceMapEntry, b: SourceMapEntry): number {
318
+ function sourceMappingComparator(indexA: number, indexB: number): number {
319
+ const a = mappings[indexA];
320
+ const b = mappings[indexB];
283
321
  if (a.sourceLineNumber !== b.sourceLineNumber) {
284
322
  return a.sourceLineNumber - b.sourceLineNumber;
285
323
  }
@@ -415,25 +453,30 @@ export class TextSourceMap implements SourceMap {
415
453
  lineNumber: number,
416
454
  columnNumber: number,
417
455
  },
418
- mapping: SourceMapEntry): number {
419
- if (position.lineNumber !== mapping.sourceLineNumber) {
420
- return position.lineNumber - mapping.sourceLineNumber;
456
+ mappingIndex: number): number {
457
+ if (position.lineNumber !== mappings[mappingIndex].sourceLineNumber) {
458
+ return position.lineNumber - mappings[mappingIndex].sourceLineNumber;
421
459
  }
422
460
 
423
- return position.columnNumber - mapping.sourceColumnNumber;
461
+ return position.columnNumber - mappings[mappingIndex].sourceColumnNumber;
424
462
  }
425
463
 
426
- const mappings = this.reversedMappings(url);
427
- if (!mappings.length) {
464
+ const reverseMappings = this.reversedMappings(url);
465
+ const mappings = this.mappings();
466
+ if (!reverseMappings.length) {
428
467
  return null;
429
468
  }
430
469
  const startIndex = Platform.ArrayUtilities.lowerBound(
431
- mappings, {lineNumber: textRange.startLine, columnNumber: textRange.startColumn}, comparator);
470
+ reverseMappings, {lineNumber: textRange.startLine, columnNumber: textRange.startColumn}, comparator);
432
471
  const endIndex = Platform.ArrayUtilities.upperBound(
433
- mappings, {lineNumber: textRange.endLine, columnNumber: textRange.endColumn}, comparator);
472
+ reverseMappings, {lineNumber: textRange.endLine, columnNumber: textRange.endColumn}, comparator);
473
+
474
+ if (endIndex >= reverseMappings.length) {
475
+ return null;
476
+ }
434
477
 
435
- const startMapping = mappings[startIndex];
436
- const endMapping = mappings[endIndex];
478
+ const startMapping = mappings[reverseMappings[startIndex]];
479
+ const endMapping = mappings[reverseMappings[endIndex]];
437
480
  return new TextUtils.TextRange.TextRange(
438
481
  startMapping.lineNumber, startMapping.columnNumber, endMapping.lineNumber, endMapping.columnNumber);
439
482
  }
@@ -483,9 +526,9 @@ export namespace TextSourceMap {
483
526
 
484
527
  export class SourceInfo {
485
528
  content: string|null;
486
- reverseMappings: SourceMapEntry[]|null;
529
+ reverseMappings: number[]|null;
487
530
 
488
- constructor(content: string|null, reverseMappings: SourceMapEntry[]|null) {
531
+ constructor(content: string|null, reverseMappings: number[]|null) {
489
532
  this.content = content;
490
533
  this.reverseMappings = reverseMappings;
491
534
  }
@@ -17,7 +17,7 @@ let targetManagerInstance: TargetManager|undefined;
17
17
  export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
18
18
  private targetsInternal: Set<Target>;
19
19
  private readonly observers: Set<Observer>;
20
- private modelListeners: Platform.MapUtilities.Multimap<string|symbol, {
20
+ private modelListeners: Platform.MapUtilities.Multimap<string|symbol|number, {
21
21
  modelClass: new(arg1: Target) => SDKModel,
22
22
  thisObject: (Object|undefined),
23
23
  listener: (arg0: Common.EventTarget.EventTargetEvent) => void,
@@ -124,18 +124,18 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
124
124
  }
125
125
  }
126
126
 
127
- addModelListener(
128
- modelClass: new(arg1: Target) => SDKModel, eventType: string|symbol,
129
- listener: (arg0: Common.EventTarget.EventTargetEvent) => void, thisObject?: Object): void {
127
+ addModelListener<Events, T extends Common.EventTarget.EventType<Events>>(
128
+ modelClass: new(arg1: Target) => SDKModel<Events>, eventType: T,
129
+ listener: Common.EventTarget.EventListener<Events, T>, thisObject?: Object): void {
130
130
  for (const model of this.models(modelClass)) {
131
131
  model.addEventListener(eventType, listener, thisObject);
132
132
  }
133
133
  this.modelListeners.set(eventType, {modelClass: modelClass, thisObject: thisObject, listener: listener});
134
134
  }
135
135
 
136
- removeModelListener(
137
- modelClass: new(arg1: Target) => SDKModel, eventType: string|symbol,
138
- listener: (arg0: Common.EventTarget.EventTargetEvent) => void, thisObject?: Object): void {
136
+ removeModelListener<Events, T extends Common.EventTarget.EventType<Events>>(
137
+ modelClass: new(arg1: Target) => SDKModel<Events>, eventType: T,
138
+ listener: Common.EventTarget.EventListener<Events, T>, thisObject?: Object): void {
139
139
  if (!this.modelListeners.has(eventType)) {
140
140
  return;
141
141
  }
@@ -35,7 +35,7 @@ import * as TextUtils from '../text_utils/text_utils.js';
35
35
  import * as Workspace from '../workspace/workspace.js';
36
36
 
37
37
  import {ContentProviderBasedProject} from './ContentProviderBasedProject.js';
38
- import type {DebuggerSourceMapping, DebuggerWorkspaceBinding} from './DebuggerWorkspaceBinding.js';
38
+ import type {DebuggerSourceMapping, DebuggerWorkspaceBinding, RawLocationRange} from './DebuggerWorkspaceBinding.js';
39
39
  import {IgnoreListManager} from './IgnoreListManager.js';
40
40
  import {NetworkProject} from './NetworkProject.js';
41
41
 
@@ -131,15 +131,33 @@ export class CompilerScriptMapping implements DebuggerSourceMapping {
131
131
  return [];
132
132
  }
133
133
 
134
- mapsToSourceCode(rawLocation: SDK.DebuggerModel.Location): boolean {
134
+ getLocationRangesForSameSourceLocation(rawLocation: SDK.DebuggerModel.Location): RawLocationRange[] {
135
+ const debuggerModel = rawLocation.debuggerModel;
135
136
  const script = rawLocation.script();
136
- const sourceMap = script ? this.sourceMapManager.sourceMapForClient(script) : null;
137
+ if (!script) {
138
+ return [];
139
+ }
140
+ const sourceMap = this.sourceMapManager.sourceMapForClient(script);
137
141
  if (!sourceMap) {
138
- return true;
142
+ return [];
139
143
  }
144
+
145
+ // Find the source location for the raw location.
140
146
  const entry = sourceMap.findEntry(rawLocation.lineNumber, rawLocation.columnNumber);
141
- return entry !== null && entry.lineNumber === rawLocation.lineNumber &&
142
- entry.columnNumber === rawLocation.columnNumber;
147
+ if (!entry || !entry.sourceURL) {
148
+ return [];
149
+ }
150
+
151
+ // Map the source location back to raw location ranges.
152
+ const ranges = sourceMap.findReverseRanges(entry.sourceURL, entry.sourceLineNumber, entry.sourceColumnNumber);
153
+ return ranges.map(textRangeToLocationRange);
154
+
155
+ function textRangeToLocationRange(t: TextUtils.TextRange.TextRange): RawLocationRange {
156
+ return {
157
+ start: debuggerModel.createRawLocation(script as SDK.Script.Script, t.startLine, t.startColumn),
158
+ end: debuggerModel.createRawLocation(script as SDK.Script.Script, t.endLine, t.endColumn),
159
+ };
160
+ }
143
161
  }
144
162
 
145
163
  uiSourceCodeForURL(url: string, isContentScript: boolean): Workspace.UISourceCode.UISourceCode|null {
@@ -72,14 +72,8 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
72
72
  }
73
73
 
74
74
  private async computeAutoStepRanges(mode: SDK.DebuggerModel.StepMode, callFrame: SDK.DebuggerModel.CallFrame):
75
- Promise<{
76
- start: SDK.DebuggerModel.Location,
77
- end: SDK.DebuggerModel.Location,
78
- }[]> {
79
- function contained(location: SDK.DebuggerModel.Location, range: {
80
- start: SDK.DebuggerModel.Location,
81
- end: SDK.DebuggerModel.Location,
82
- }): boolean {
75
+ Promise<RawLocationRange[]> {
76
+ function contained(location: SDK.DebuggerModel.Location, range: RawLocationRange): boolean {
83
77
  const {start, end} = range;
84
78
  if (start.scriptId !== location.scriptId) {
85
79
  return false;
@@ -98,20 +92,17 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
98
92
 
99
93
  // TODO(crbug.com/1018234): Also take into account source maps here and remove the auto-stepping
100
94
  // logic in the front-end (which is currently still an experiment) completely.
95
+ const rawLocation = callFrame.location();
96
+ if (!rawLocation) {
97
+ return [];
98
+ }
101
99
  const pluginManager = this.pluginManager;
100
+ let ranges: RawLocationRange[] = [];
102
101
  if (pluginManager) {
103
- const rawLocation = callFrame.location();
104
102
  if (mode === SDK.DebuggerModel.StepMode.StepOut) {
105
103
  // Step out of inline function.
106
104
  return await pluginManager.getInlinedFunctionRanges(rawLocation);
107
105
  }
108
- let ranges: {
109
- start: SDK.DebuggerModel.Location,
110
- end: SDK.DebuggerModel.Location,
111
- }[]|{
112
- start: SDK.DebuggerModel.Location,
113
- end: SDK.DebuggerModel.Location,
114
- }[] = [];
115
106
  const uiLocation = await pluginManager.rawLocationToUILocation(rawLocation);
116
107
  if (uiLocation) {
117
108
  ranges = await pluginManager.uiLocationToRawLocationRanges(
@@ -119,14 +110,25 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
119
110
  [];
120
111
  // TODO(bmeurer): Remove the {rawLocation} from the {ranges}?
121
112
  ranges = ranges.filter(range => contained(rawLocation, range));
113
+ if (mode === SDK.DebuggerModel.StepMode.StepOver) {
114
+ // Step over an inlined function.
115
+ ranges = ranges.concat(await pluginManager.getInlinedCalleesRanges(rawLocation));
116
+ }
117
+ return ranges;
122
118
  }
123
- if (mode === SDK.DebuggerModel.StepMode.StepOver) {
124
- // Step over an inlined function.
125
- ranges = ranges.concat(await pluginManager.getInlinedCalleesRanges(rawLocation));
126
- }
127
- return ranges;
128
119
  }
129
- return [];
120
+
121
+ if (!Root.Runtime.experiments.isEnabled('emptySourceMapAutoStepping')) {
122
+ return [];
123
+ }
124
+
125
+ const compilerMapping = this.debuggerModelToData.get(rawLocation.debuggerModel)?.compilerMapping;
126
+ if (!compilerMapping) {
127
+ return [];
128
+ }
129
+ ranges = compilerMapping.getLocationRangesForSameSourceLocation(rawLocation);
130
+ ranges = ranges.filter(range => contained(rawLocation, range));
131
+ return ranges;
130
132
  }
131
133
 
132
134
  modelAdded(debuggerModel: SDK.DebuggerModel.DebuggerModel): void {
@@ -445,14 +447,7 @@ class ModelData {
445
447
  }
446
448
 
447
449
  private beforePaused(debuggerPausedDetails: SDK.DebuggerModel.DebuggerPausedDetails): boolean {
448
- const callFrame = debuggerPausedDetails.callFrames[0];
449
- if (!callFrame) {
450
- return false;
451
- }
452
- if (!Root.Runtime.experiments.isEnabled('emptySourceMapAutoStepping')) {
453
- return true;
454
- }
455
- return Boolean(this.compilerMapping.mapsToSourceCode(callFrame.location()));
450
+ return Boolean(debuggerPausedDetails.callFrames[0]);
456
451
  }
457
452
 
458
453
  dispose(): void {
@@ -566,6 +561,11 @@ class StackTraceTopFrameLocation extends LiveLocationWithPool {
566
561
  }
567
562
  }
568
563
 
564
+ export interface RawLocationRange {
565
+ start: SDK.DebuggerModel.Location;
566
+ end: SDK.DebuggerModel.Location;
567
+ }
568
+
569
569
  /**
570
570
  * @interface
571
571
  */
@@ -913,25 +913,22 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
913
913
  this.subscriptionStopHandlers.set(eventTopic, onUnsubscribeLast);
914
914
  }
915
915
 
916
- private registerAutosubscriptionHandler(
917
- eventTopic: string, eventTarget: Common.EventTarget.EventTarget, frontendEventType: string,
918
- handler: (arg0: Common.EventTarget.EventTargetEvent) => unknown): void {
916
+ private registerAutosubscriptionHandler<Events, T extends Common.EventTarget.EventType<Events>>(
917
+ eventTopic: string, eventTarget: Common.EventTarget.EventTarget<Events>, frontendEventType: T,
918
+ handler: Common.EventTarget.EventListener<Events, T>): void {
919
919
  this.registerSubscriptionHandler(
920
920
  eventTopic, () => eventTarget.addEventListener(frontendEventType, handler, this),
921
- eventTarget.removeEventListener.bind(eventTarget, frontendEventType, handler, this));
921
+ () => eventTarget.removeEventListener(frontendEventType, handler, this));
922
922
  }
923
923
 
924
- private registerAutosubscriptionTargetManagerHandler(
925
- eventTopic: string, modelClass: new(arg1: SDK.Target.Target) => SDK.SDKModel.SDKModel, frontendEventType: string,
926
- handler: (arg0: Common.EventTarget.EventTargetEvent) => unknown): void {
924
+ private registerAutosubscriptionTargetManagerHandler<Events, T extends Common.EventTarget.EventType<Events>>(
925
+ eventTopic: string, modelClass: new(arg1: SDK.Target.Target) => SDK.SDKModel.SDKModel<Events>,
926
+ frontendEventType: T, handler: Common.EventTarget.EventListener<Events, T>): void {
927
927
  this.registerSubscriptionHandler(
928
928
  eventTopic,
929
-
930
- SDK.TargetManager.TargetManager.instance().addModelListener.bind(
931
- SDK.TargetManager.TargetManager.instance(), modelClass, frontendEventType, handler, this),
932
-
933
- SDK.TargetManager.TargetManager.instance().removeModelListener.bind(
934
- SDK.TargetManager.TargetManager.instance(), modelClass, frontendEventType, handler, this));
929
+ () => SDK.TargetManager.TargetManager.instance().addModelListener(modelClass, frontendEventType, handler, this),
930
+ () => SDK.TargetManager.TargetManager.instance().removeModelListener(
931
+ modelClass, frontendEventType, handler, this));
935
932
  }
936
933
 
937
934
  private registerResourceContentCommittedHandler(
@@ -194,7 +194,7 @@ export class ProjectStore {
194
194
 
195
195
  let workspaceInstance: WorkspaceImpl|undefined;
196
196
 
197
- export class WorkspaceImpl extends Common.ObjectWrapper.ObjectWrapper {
197
+ export class WorkspaceImpl extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
198
198
  private projectsInternal: Map<string, Project>;
199
199
  private hasResourceContentTrackingExtensionsInternal: boolean;
200
200
 
@@ -33,16 +33,14 @@ export class WorkspaceDiffImpl extends Common.ObjectWrapper.ObjectWrapper<EventT
33
33
  return this.uiSourceCodeDiff(uiSourceCode).requestDiff();
34
34
  }
35
35
 
36
- subscribeToDiffChange(
37
- uiSourceCode: Workspace.UISourceCode.UISourceCode, callback: (arg0: Common.EventTarget.EventTargetEvent) => void,
38
- thisObj?: Object): void {
39
- this.uiSourceCodeDiff(uiSourceCode).addEventListener(Events.DiffChanged, callback, thisObj);
36
+ subscribeToDiffChange(uiSourceCode: Workspace.UISourceCode.UISourceCode, callback: () => void, thisObj?: Object):
37
+ void {
38
+ this.uiSourceCodeDiff(uiSourceCode).addEventListener(UISourceCodeDiffEvents.DiffChanged, callback, thisObj);
40
39
  }
41
40
 
42
- unsubscribeFromDiffChange(
43
- uiSourceCode: Workspace.UISourceCode.UISourceCode, callback: (arg0: Common.EventTarget.EventTargetEvent) => void,
44
- thisObj?: Object): void {
45
- this.uiSourceCodeDiff(uiSourceCode).removeEventListener(Events.DiffChanged, callback, thisObj);
41
+ unsubscribeFromDiffChange(uiSourceCode: Workspace.UISourceCode.UISourceCode, callback: () => void, thisObj?: Object):
42
+ void {
43
+ this.uiSourceCodeDiff(uiSourceCode).removeEventListener(UISourceCodeDiffEvents.DiffChanged, callback, thisObj);
46
44
  }
47
45
 
48
46
  modifiedUISourceCodes(): Workspace.UISourceCode.UISourceCode[] {
@@ -166,7 +164,20 @@ export class WorkspaceDiffImpl extends Common.ObjectWrapper.ObjectWrapper<EventT
166
164
  }
167
165
  }
168
166
 
169
- export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper {
167
+ export const enum Events {
168
+ ModifiedStatusChanged = 'ModifiedStatusChanged',
169
+ }
170
+
171
+ export interface ModifiedStatusChangedEvent {
172
+ uiSourceCode: Workspace.UISourceCode.UISourceCode;
173
+ isModified: boolean;
174
+ }
175
+
176
+ export type EventTypes = {
177
+ [Events.ModifiedStatusChanged]: ModifiedStatusChangedEvent,
178
+ };
179
+
180
+ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper<UISourceCodeDiffEventTypes> {
170
181
  private uiSourceCode: Workspace.UISourceCode.UISourceCode;
171
182
  private requestDiffPromise: Promise<Diff.Diff.DiffArray|null>|null;
172
183
  private pendingChanges: number|null;
@@ -196,7 +207,7 @@ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper {
196
207
  if (this.dispose) {
197
208
  return;
198
209
  }
199
- this.dispatchEventToListeners(Events.DiffChanged);
210
+ this.dispatchEventToListeners(UISourceCodeDiffEvents.DiffChanged);
200
211
  this.pendingChanges = null;
201
212
  }
202
213
  }
@@ -259,19 +270,12 @@ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper {
259
270
 
260
271
  // TODO(crbug.com/1167717): Make this a const enum again
261
272
  // eslint-disable-next-line rulesdir/const_enum
262
- export enum Events {
273
+ export enum UISourceCodeDiffEvents {
263
274
  DiffChanged = 'DiffChanged',
264
- ModifiedStatusChanged = 'ModifiedStatusChanged',
265
- }
266
-
267
- export interface ModifiedStatusChangedEvent {
268
- uiSourceCode: Workspace.UISourceCode.UISourceCode;
269
- isModified: boolean;
270
275
  }
271
276
 
272
- export type EventTypes = {
273
- [Events.DiffChanged]: void,
274
- [Events.ModifiedStatusChanged]: ModifiedStatusChangedEvent,
277
+ export type UISourceCodeDiffEventTypes = {
278
+ [UISourceCodeDiffEvents.DiffChanged]: void,
275
279
  };
276
280
 
277
281
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration