@react-native/debugger-frontend 0.73.0-nightly-20230922-52104c6ee

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 (656) hide show
  1. package/BUILD_INFO +10 -0
  2. package/README.md +22 -0
  3. package/dist/third-party/LICENSE +28 -0
  4. package/dist/third-party/front_end/Images/3d-center.svg +1 -0
  5. package/dist/third-party/front_end/Images/3d-pan.svg +1 -0
  6. package/dist/third-party/front_end/Images/3d-rotate.svg +1 -0
  7. package/dist/third-party/front_end/Images/Images.js +223 -0
  8. package/dist/third-party/front_end/Images/accelerometer-back.svg +1 -0
  9. package/dist/third-party/front_end/Images/accelerometer-bottom.png +0 -0
  10. package/dist/third-party/front_end/Images/accelerometer-front.svg +1 -0
  11. package/dist/third-party/front_end/Images/accelerometer-left.png +0 -0
  12. package/dist/third-party/front_end/Images/accelerometer-right.png +0 -0
  13. package/dist/third-party/front_end/Images/accelerometer-top.png +0 -0
  14. package/dist/third-party/front_end/Images/align-content-center.svg +1 -0
  15. package/dist/third-party/front_end/Images/align-content-end.svg +1 -0
  16. package/dist/third-party/front_end/Images/align-content-space-around.svg +1 -0
  17. package/dist/third-party/front_end/Images/align-content-space-between.svg +1 -0
  18. package/dist/third-party/front_end/Images/align-content-space-evenly.svg +1 -0
  19. package/dist/third-party/front_end/Images/align-content-start.svg +1 -0
  20. package/dist/third-party/front_end/Images/align-content-stretch.svg +1 -0
  21. package/dist/third-party/front_end/Images/align-items-baseline.svg +1 -0
  22. package/dist/third-party/front_end/Images/align-items-center.svg +1 -0
  23. package/dist/third-party/front_end/Images/align-items-end.svg +1 -0
  24. package/dist/third-party/front_end/Images/align-items-start.svg +1 -0
  25. package/dist/third-party/front_end/Images/align-items-stretch.svg +1 -0
  26. package/dist/third-party/front_end/Images/align-self-center.svg +1 -0
  27. package/dist/third-party/front_end/Images/align-self-end.svg +1 -0
  28. package/dist/third-party/front_end/Images/align-self-start.svg +1 -0
  29. package/dist/third-party/front_end/Images/align-self-stretch.svg +1 -0
  30. package/dist/third-party/front_end/Images/arrow-down.svg +1 -0
  31. package/dist/third-party/front_end/Images/arrow-drop-down-dark.svg +1 -0
  32. package/dist/third-party/front_end/Images/arrow-drop-down-light.svg +1 -0
  33. package/dist/third-party/front_end/Images/arrow-up-down-circle.svg +1 -0
  34. package/dist/third-party/front_end/Images/arrow-up-down.svg +1 -0
  35. package/dist/third-party/front_end/Images/arrow-up.svg +1 -0
  36. package/dist/third-party/front_end/Images/bell.svg +1 -0
  37. package/dist/third-party/front_end/Images/bezier-curve-filled.svg +1 -0
  38. package/dist/third-party/front_end/Images/bin.svg +1 -0
  39. package/dist/third-party/front_end/Images/bottom-panel-close.svg +1 -0
  40. package/dist/third-party/front_end/Images/bottom-panel-open.svg +1 -0
  41. package/dist/third-party/front_end/Images/brackets.svg +1 -0
  42. package/dist/third-party/front_end/Images/breakpoint-circle.svg +1 -0
  43. package/dist/third-party/front_end/Images/breakpoint-crossed-filled.svg +1 -0
  44. package/dist/third-party/front_end/Images/breakpoint-crossed.svg +1 -0
  45. package/dist/third-party/front_end/Images/brush-filled.svg +1 -0
  46. package/dist/third-party/front_end/Images/brush.svg +1 -0
  47. package/dist/third-party/front_end/Images/bug.svg +1 -0
  48. package/dist/third-party/front_end/Images/bundle.svg +1 -0
  49. package/dist/third-party/front_end/Images/check-circle.svg +1 -0
  50. package/dist/third-party/front_end/Images/check-double.svg +1 -0
  51. package/dist/third-party/front_end/Images/checker.svg +1 -0
  52. package/dist/third-party/front_end/Images/checkmark.svg +1 -0
  53. package/dist/third-party/front_end/Images/chevron-double-right.svg +1 -0
  54. package/dist/third-party/front_end/Images/chevron-down.svg +1 -0
  55. package/dist/third-party/front_end/Images/chevron-left-dot.svg +1 -0
  56. package/dist/third-party/front_end/Images/chevron-left.svg +1 -0
  57. package/dist/third-party/front_end/Images/chevron-right.svg +1 -0
  58. package/dist/third-party/front_end/Images/chevron-up.svg +1 -0
  59. package/dist/third-party/front_end/Images/chromeLeft.avif +0 -0
  60. package/dist/third-party/front_end/Images/chromeMiddle.avif +0 -0
  61. package/dist/third-party/front_end/Images/chromeRight.avif +0 -0
  62. package/dist/third-party/front_end/Images/clear-list.svg +1 -0
  63. package/dist/third-party/front_end/Images/clear.svg +1 -0
  64. package/dist/third-party/front_end/Images/cloud.svg +1 -0
  65. package/dist/third-party/front_end/Images/code-circle.svg +1 -0
  66. package/dist/third-party/front_end/Images/code.svg +1 -0
  67. package/dist/third-party/front_end/Images/colon.svg +1 -0
  68. package/dist/third-party/front_end/Images/color-picker-filled.svg +1 -0
  69. package/dist/third-party/front_end/Images/color-picker.svg +1 -0
  70. package/dist/third-party/front_end/Images/console-conditional-breakpoint.svg +1 -0
  71. package/dist/third-party/front_end/Images/console-logpoint.svg +1 -0
  72. package/dist/third-party/front_end/Images/cookie.svg +1 -0
  73. package/dist/third-party/front_end/Images/copy.svg +1 -0
  74. package/dist/third-party/front_end/Images/credit-card.svg +1 -0
  75. package/dist/third-party/front_end/Images/cross-circle-filled.svg +1 -0
  76. package/dist/third-party/front_end/Images/cross-circle.svg +1 -0
  77. package/dist/third-party/front_end/Images/cross.svg +1 -0
  78. package/dist/third-party/front_end/Images/cssoverview_icons_2x.avif +0 -0
  79. package/dist/third-party/front_end/Images/custom-typography.svg +1 -0
  80. package/dist/third-party/front_end/Images/database.svg +1 -0
  81. package/dist/third-party/front_end/Images/deployed.svg +1 -0
  82. package/dist/third-party/front_end/Images/device-fold.svg +1 -0
  83. package/dist/third-party/front_end/Images/devices.svg +1 -0
  84. package/dist/third-party/front_end/Images/dock-bottom.svg +1 -0
  85. package/dist/third-party/front_end/Images/dock-left.svg +1 -0
  86. package/dist/third-party/front_end/Images/dock-right.svg +1 -0
  87. package/dist/third-party/front_end/Images/dock-window.svg +1 -0
  88. package/dist/third-party/front_end/Images/document.svg +1 -0
  89. package/dist/third-party/front_end/Images/dots-horizontal.svg +1 -0
  90. package/dist/third-party/front_end/Images/dots-vertical.svg +1 -0
  91. package/dist/third-party/front_end/Images/download.svg +1 -0
  92. package/dist/third-party/front_end/Images/edit.svg +1 -0
  93. package/dist/third-party/front_end/Images/empty.svg +1 -0
  94. package/dist/third-party/front_end/Images/errorWave.svg +1 -0
  95. package/dist/third-party/front_end/Images/exclamation.svg +1 -0
  96. package/dist/third-party/front_end/Images/experiment-check.svg +1 -0
  97. package/dist/third-party/front_end/Images/experiment.svg +1 -0
  98. package/dist/third-party/front_end/Images/eye.svg +1 -0
  99. package/dist/third-party/front_end/Images/file-document.svg +1 -0
  100. package/dist/third-party/front_end/Images/file-font.svg +1 -0
  101. package/dist/third-party/front_end/Images/file-generic.svg +1 -0
  102. package/dist/third-party/front_end/Images/file-image.svg +1 -0
  103. package/dist/third-party/front_end/Images/file-script.svg +1 -0
  104. package/dist/third-party/front_end/Images/file-snippet.svg +1 -0
  105. package/dist/third-party/front_end/Images/file-stylesheet.svg +1 -0
  106. package/dist/third-party/front_end/Images/filter-clear.svg +1 -0
  107. package/dist/third-party/front_end/Images/filter-filled.svg +1 -0
  108. package/dist/third-party/front_end/Images/filter.svg +1 -0
  109. package/dist/third-party/front_end/Images/flex-direction.svg +1 -0
  110. package/dist/third-party/front_end/Images/flex-no-wrap.svg +1 -0
  111. package/dist/third-party/front_end/Images/flex-wrap.svg +1 -0
  112. package/dist/third-party/front_end/Images/flow.svg +1 -0
  113. package/dist/third-party/front_end/Images/fold-more.svg +1 -0
  114. package/dist/third-party/front_end/Images/folder.svg +1 -0
  115. package/dist/third-party/front_end/Images/frame-crossed.svg +1 -0
  116. package/dist/third-party/front_end/Images/frame-icon.svg +1 -0
  117. package/dist/third-party/front_end/Images/frame.svg +1 -0
  118. package/dist/third-party/front_end/Images/gear-filled.svg +1 -0
  119. package/dist/third-party/front_end/Images/gear.svg +1 -0
  120. package/dist/third-party/front_end/Images/gears.svg +1 -0
  121. package/dist/third-party/front_end/Images/heap-snapshot.svg +1 -0
  122. package/dist/third-party/front_end/Images/heap-snapshots.svg +1 -0
  123. package/dist/third-party/front_end/Images/help.svg +1 -0
  124. package/dist/third-party/front_end/Images/iframe-crossed.svg +1 -0
  125. package/dist/third-party/front_end/Images/iframe.svg +1 -0
  126. package/dist/third-party/front_end/Images/import.svg +1 -0
  127. package/dist/third-party/front_end/Images/info-filled.svg +1 -0
  128. package/dist/third-party/front_end/Images/info.svg +1 -0
  129. package/dist/third-party/front_end/Images/issue-cross-filled.svg +1 -0
  130. package/dist/third-party/front_end/Images/issue-exclamation-filled.svg +1 -0
  131. package/dist/third-party/front_end/Images/issue-questionmark-filled.svg +1 -0
  132. package/dist/third-party/front_end/Images/issue-text-filled.svg +1 -0
  133. package/dist/third-party/front_end/Images/justify-content-center.svg +1 -0
  134. package/dist/third-party/front_end/Images/justify-content-end.svg +1 -0
  135. package/dist/third-party/front_end/Images/justify-content-space-around.svg +1 -0
  136. package/dist/third-party/front_end/Images/justify-content-space-between.svg +1 -0
  137. package/dist/third-party/front_end/Images/justify-content-space-evenly.svg +1 -0
  138. package/dist/third-party/front_end/Images/justify-content-start.svg +1 -0
  139. package/dist/third-party/front_end/Images/justify-items-center.svg +1 -0
  140. package/dist/third-party/front_end/Images/justify-items-end.svg +1 -0
  141. package/dist/third-party/front_end/Images/justify-items-start.svg +1 -0
  142. package/dist/third-party/front_end/Images/justify-items-stretch.svg +1 -0
  143. package/dist/third-party/front_end/Images/keyboard-pen.svg +1 -0
  144. package/dist/third-party/front_end/Images/large-arrow-right-filled.svg +1 -0
  145. package/dist/third-party/front_end/Images/largeIcons.svg +2 -0
  146. package/dist/third-party/front_end/Images/layers-filled.svg +1 -0
  147. package/dist/third-party/front_end/Images/layers.svg +1 -0
  148. package/dist/third-party/front_end/Images/left-panel-close.svg +1 -0
  149. package/dist/third-party/front_end/Images/left-panel-open.svg +1 -0
  150. package/dist/third-party/front_end/Images/lighthouse_logo.svg +1 -0
  151. package/dist/third-party/front_end/Images/list.svg +1 -0
  152. package/dist/third-party/front_end/Images/mediumIcons.svg +1 -0
  153. package/dist/third-party/front_end/Images/memory.svg +1 -0
  154. package/dist/third-party/front_end/Images/minus.svg +1 -0
  155. package/dist/third-party/front_end/Images/minus_icon.svg +1 -0
  156. package/dist/third-party/front_end/Images/navigationControls.png +0 -0
  157. package/dist/third-party/front_end/Images/navigationControls_2x.png +0 -0
  158. package/dist/third-party/front_end/Images/network-settings.svg +1 -0
  159. package/dist/third-party/front_end/Images/nodeIcon.avif +0 -0
  160. package/dist/third-party/front_end/Images/node_search_icon.svg +1 -0
  161. package/dist/third-party/front_end/Images/open-externally.svg +1 -0
  162. package/dist/third-party/front_end/Images/pause.svg +1 -0
  163. package/dist/third-party/front_end/Images/performance.svg +1 -0
  164. package/dist/third-party/front_end/Images/person.svg +1 -0
  165. package/dist/third-party/front_end/Images/play.svg +1 -0
  166. package/dist/third-party/front_end/Images/plus.svg +1 -0
  167. package/dist/third-party/front_end/Images/popoverArrows.png +0 -0
  168. package/dist/third-party/front_end/Images/popup.svg +1 -0
  169. package/dist/third-party/front_end/Images/preview_feature_video_thumbnail.svg +1 -0
  170. package/dist/third-party/front_end/Images/profile.svg +1 -0
  171. package/dist/third-party/front_end/Images/react_native/welcomeIcon.png +0 -0
  172. package/dist/third-party/front_end/Images/record-start.svg +1 -0
  173. package/dist/third-party/front_end/Images/record-stop.svg +1 -0
  174. package/dist/third-party/front_end/Images/redo.svg +1 -0
  175. package/dist/third-party/front_end/Images/refresh.svg +1 -0
  176. package/dist/third-party/front_end/Images/replace.svg +1 -0
  177. package/dist/third-party/front_end/Images/replay.svg +1 -0
  178. package/dist/third-party/front_end/Images/resizeDiagonal.svg +1 -0
  179. package/dist/third-party/front_end/Images/resizeHorizontal.svg +1 -0
  180. package/dist/third-party/front_end/Images/resizeVertical.svg +1 -0
  181. package/dist/third-party/front_end/Images/resume.svg +1 -0
  182. package/dist/third-party/front_end/Images/review.svg +1 -0
  183. package/dist/third-party/front_end/Images/right-panel-close.svg +1 -0
  184. package/dist/third-party/front_end/Images/right-panel-open.svg +1 -0
  185. package/dist/third-party/front_end/Images/screen-rotation.svg +1 -0
  186. package/dist/third-party/front_end/Images/search.svg +1 -0
  187. package/dist/third-party/front_end/Images/securityIcons.svg +1 -0
  188. package/dist/third-party/front_end/Images/select-element.svg +1 -0
  189. package/dist/third-party/front_end/Images/settings_14x14_icon.svg +1 -0
  190. package/dist/third-party/front_end/Images/shadow.svg +1 -0
  191. package/dist/third-party/front_end/Images/smallIcons.svg +1 -0
  192. package/dist/third-party/front_end/Images/snippet.svg +1 -0
  193. package/dist/third-party/front_end/Images/star.svg +1 -0
  194. package/dist/third-party/front_end/Images/step-into.svg +1 -0
  195. package/dist/third-party/front_end/Images/step-out.svg +1 -0
  196. package/dist/third-party/front_end/Images/step-over.svg +1 -0
  197. package/dist/third-party/front_end/Images/step.svg +1 -0
  198. package/dist/third-party/front_end/Images/stop.svg +1 -0
  199. package/dist/third-party/front_end/Images/symbol.svg +1 -0
  200. package/dist/third-party/front_end/Images/sync.svg +1 -0
  201. package/dist/third-party/front_end/Images/table.svg +1 -0
  202. package/dist/third-party/front_end/Images/toolbarResizerVertical.png +0 -0
  203. package/dist/third-party/front_end/Images/top-panel-close.svg +1 -0
  204. package/dist/third-party/front_end/Images/top-panel-open.svg +1 -0
  205. package/dist/third-party/front_end/Images/touchCursor.png +0 -0
  206. package/dist/third-party/front_end/Images/touchCursor_2x.png +0 -0
  207. package/dist/third-party/front_end/Images/triangle-bottom-right.svg +1 -0
  208. package/dist/third-party/front_end/Images/triangle-down.svg +1 -0
  209. package/dist/third-party/front_end/Images/triangle-left.svg +1 -0
  210. package/dist/third-party/front_end/Images/triangle-right.svg +1 -0
  211. package/dist/third-party/front_end/Images/triangle-up.svg +1 -0
  212. package/dist/third-party/front_end/Images/undo.svg +1 -0
  213. package/dist/third-party/front_end/Images/warning-filled.svg +1 -0
  214. package/dist/third-party/front_end/Images/warning.svg +1 -0
  215. package/dist/third-party/front_end/Images/warning_icon.svg +1 -0
  216. package/dist/third-party/front_end/Images/watch.svg +1 -0
  217. package/dist/third-party/front_end/Images/whatsnew.avif +0 -0
  218. package/dist/third-party/front_end/Images/width.svg +1 -0
  219. package/dist/third-party/front_end/Tests.js +1662 -0
  220. package/dist/third-party/front_end/core/common/common-legacy.js +1 -0
  221. package/dist/third-party/front_end/core/common/common.js +1 -0
  222. package/dist/third-party/front_end/core/dom_extension/dom_extension.js +1 -0
  223. package/dist/third-party/front_end/core/host/host-legacy.js +1 -0
  224. package/dist/third-party/front_end/core/host/host.js +1 -0
  225. package/dist/third-party/front_end/core/i18n/i18n.js +1 -0
  226. package/dist/third-party/front_end/core/i18n/locales/en-US.json +1 -0
  227. package/dist/third-party/front_end/core/i18n/locales/zh.json +1 -0
  228. package/dist/third-party/front_end/core/platform/platform.js +1 -0
  229. package/dist/third-party/front_end/core/protocol_client/protocol_client-legacy.js +1 -0
  230. package/dist/third-party/front_end/core/protocol_client/protocol_client.js +1 -0
  231. package/dist/third-party/front_end/core/root/root-legacy.js +1 -0
  232. package/dist/third-party/front_end/core/root/root.js +1 -0
  233. package/dist/third-party/front_end/core/sdk/sdk-legacy.js +1 -0
  234. package/dist/third-party/front_end/core/sdk/sdk-meta.js +1 -0
  235. package/dist/third-party/front_end/core/sdk/sdk.js +1 -0
  236. package/dist/third-party/front_end/device_mode_emulation_frame.html +20 -0
  237. package/dist/third-party/front_end/devtools_app.html +20 -0
  238. package/dist/third-party/front_end/devtools_compatibility.js +1595 -0
  239. package/dist/third-party/front_end/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  240. package/dist/third-party/front_end/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  241. package/dist/third-party/front_end/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  242. package/dist/third-party/front_end/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  243. package/dist/third-party/front_end/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  244. package/dist/third-party/front_end/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  245. package/dist/third-party/front_end/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
  246. package/dist/third-party/front_end/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
  247. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  248. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  249. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  250. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  251. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  252. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  253. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  254. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  255. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  256. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  257. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  258. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  259. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  260. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  261. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  262. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  263. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  264. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  265. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  266. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  267. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  268. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  269. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  270. package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  271. package/dist/third-party/front_end/emulated_devices/optimized/iPad-landscape.avif +0 -0
  272. package/dist/third-party/front_end/emulated_devices/optimized/iPad-portrait.avif +0 -0
  273. package/dist/third-party/front_end/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  274. package/dist/third-party/front_end/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  275. package/dist/third-party/front_end/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  276. package/dist/third-party/front_end/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  277. package/dist/third-party/front_end/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  278. package/dist/third-party/front_end/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  279. package/dist/third-party/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
  280. package/dist/third-party/front_end/entrypoints/devtools_app/devtools_app.js +1 -0
  281. package/dist/third-party/front_end/entrypoints/formatter_worker/FormatterActions.js +1 -0
  282. package/dist/third-party/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  283. package/dist/third-party/front_end/entrypoints/formatter_worker/formatter_worker.js +1 -0
  284. package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  285. package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
  286. package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  287. package/dist/third-party/front_end/entrypoints/inspector/inspector.js +1 -0
  288. package/dist/third-party/front_end/entrypoints/inspector_main/inspector_main-meta.js +1 -0
  289. package/dist/third-party/front_end/entrypoints/inspector_main/inspector_main.js +1 -0
  290. package/dist/third-party/front_end/entrypoints/js_app/js_app.js +1 -0
  291. package/dist/third-party/front_end/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  292. package/dist/third-party/front_end/entrypoints/main/main-legacy.js +1 -0
  293. package/dist/third-party/front_end/entrypoints/main/main-meta.js +1 -0
  294. package/dist/third-party/front_end/entrypoints/main/main.js +1 -0
  295. package/dist/third-party/front_end/entrypoints/ndb_app/ndb_app.js +1 -0
  296. package/dist/third-party/front_end/entrypoints/node_app/node_app.js +1 -0
  297. package/dist/third-party/front_end/entrypoints/rn_inspector/rn_inspector.js +1 -0
  298. package/dist/third-party/front_end/entrypoints/shell/shell.js +1 -0
  299. package/dist/third-party/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  300. package/dist/third-party/front_end/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  301. package/dist/third-party/front_end/entrypoints/worker_app/worker_app.js +1 -0
  302. package/dist/third-party/front_end/inspector.html +20 -0
  303. package/dist/third-party/front_end/integration_test_runner.html +40 -0
  304. package/dist/third-party/front_end/js_app.html +20 -0
  305. package/dist/third-party/front_end/legacy_test_runner/legacy_test_runner.js +36 -0
  306. package/dist/third-party/front_end/legacy_test_runner/test_runner/test_runner.js +1 -0
  307. package/dist/third-party/front_end/models/bindings/bindings-legacy.js +1 -0
  308. package/dist/third-party/front_end/models/bindings/bindings.js +1 -0
  309. package/dist/third-party/front_end/models/breakpoints/breakpoints-legacy.js +1 -0
  310. package/dist/third-party/front_end/models/breakpoints/breakpoints.js +1 -0
  311. package/dist/third-party/front_end/models/emulation/emulation.js +1 -0
  312. package/dist/third-party/front_end/models/extensions/extensions-legacy.js +1 -0
  313. package/dist/third-party/front_end/models/extensions/extensions.js +1 -0
  314. package/dist/third-party/front_end/models/formatter/formatter-legacy.js +1 -0
  315. package/dist/third-party/front_end/models/formatter/formatter.js +1 -0
  316. package/dist/third-party/front_end/models/har/har.js +1 -0
  317. package/dist/third-party/front_end/models/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
  318. package/dist/third-party/front_end/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  319. package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  320. package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  321. package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  322. package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  323. package/dist/third-party/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  324. package/dist/third-party/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  325. package/dist/third-party/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  326. package/dist/third-party/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  327. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  328. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  329. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  330. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  331. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  332. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  333. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  334. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  335. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  336. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  337. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedTreatedAsLaxRead.md +9 -0
  338. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedTreatedAsLaxSet.md +9 -0
  339. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  340. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  341. package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  342. package/dist/third-party/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  343. package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  344. package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  345. package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  346. package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  347. package/dist/third-party/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  348. package/dist/third-party/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  349. package/dist/third-party/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  350. package/dist/third-party/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  351. package/dist/third-party/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  352. package/dist/third-party/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  353. package/dist/third-party/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  354. package/dist/third-party/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  355. package/dist/third-party/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  356. package/dist/third-party/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  357. package/dist/third-party/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  358. package/dist/third-party/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinFirstPartySet.md +4 -0
  359. package/dist/third-party/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  360. package/dist/third-party/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  361. package/dist/third-party/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  362. package/dist/third-party/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  363. package/dist/third-party/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  364. package/dist/third-party/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  365. package/dist/third-party/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  366. package/dist/third-party/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  367. package/dist/third-party/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  368. package/dist/third-party/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  369. package/dist/third-party/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  370. package/dist/third-party/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  371. package/dist/third-party/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  372. package/dist/third-party/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  373. package/dist/third-party/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  374. package/dist/third-party/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  375. package/dist/third-party/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  376. package/dist/third-party/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  377. package/dist/third-party/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  378. package/dist/third-party/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  379. package/dist/third-party/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
  380. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  381. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  382. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  383. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  384. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  385. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  386. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  387. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  388. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  389. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  390. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  391. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  392. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  393. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  394. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  395. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  396. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  397. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  398. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  399. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  400. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  401. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  402. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  403. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  404. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  405. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  406. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  407. package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  408. package/dist/third-party/front_end/models/issues_manager/descriptions/genericCrossOriginPortalPostMessageError.md +3 -0
  409. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  410. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  411. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  412. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  413. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  414. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  415. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  416. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  417. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  418. package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  419. package/dist/third-party/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
  420. package/dist/third-party/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
  421. package/dist/third-party/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  422. package/dist/third-party/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  423. package/dist/third-party/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  424. package/dist/third-party/front_end/models/issues_manager/issues_manager.js +1 -0
  425. package/dist/third-party/front_end/models/javascript_metadata/javascript_metadata.js +1 -0
  426. package/dist/third-party/front_end/models/logs/logs-meta.js +1 -0
  427. package/dist/third-party/front_end/models/logs/logs.js +1 -0
  428. package/dist/third-party/front_end/models/persistence/persistence-legacy.js +1 -0
  429. package/dist/third-party/front_end/models/persistence/persistence-meta.js +1 -0
  430. package/dist/third-party/front_end/models/persistence/persistence.js +1 -0
  431. package/dist/third-party/front_end/models/source_map_scopes/source_map_scopes.js +1 -0
  432. package/dist/third-party/front_end/models/text_utils/text_utils-legacy.js +1 -0
  433. package/dist/third-party/front_end/models/text_utils/text_utils.js +1 -0
  434. package/dist/third-party/front_end/models/timeline_model/timeline_model-legacy.js +1 -0
  435. package/dist/third-party/front_end/models/timeline_model/timeline_model.js +1 -0
  436. package/dist/third-party/front_end/models/trace/extras/extras.js +1 -0
  437. package/dist/third-party/front_end/models/trace/handlers/handlers.js +1 -0
  438. package/dist/third-party/front_end/models/trace/helpers/helpers.js +1 -0
  439. package/dist/third-party/front_end/models/trace/trace.js +1 -0
  440. package/dist/third-party/front_end/models/trace/types/types.js +1 -0
  441. package/dist/third-party/front_end/models/workspace/workspace-legacy.js +1 -0
  442. package/dist/third-party/front_end/models/workspace/workspace.js +1 -0
  443. package/dist/third-party/front_end/models/workspace_diff/workspace_diff-legacy.js +1 -0
  444. package/dist/third-party/front_end/models/workspace_diff/workspace_diff.js +1 -0
  445. package/dist/third-party/front_end/ndb_app.html +20 -0
  446. package/dist/third-party/front_end/node_app.html +20 -0
  447. package/dist/third-party/front_end/panels/accessibility/accessibility-legacy.js +1 -0
  448. package/dist/third-party/front_end/panels/accessibility/accessibility-meta.js +1 -0
  449. package/dist/third-party/front_end/panels/accessibility/accessibility.js +1 -0
  450. package/dist/third-party/front_end/panels/animation/animation-legacy.js +1 -0
  451. package/dist/third-party/front_end/panels/animation/animation-meta.js +1 -0
  452. package/dist/third-party/front_end/panels/animation/animation.js +1 -0
  453. package/dist/third-party/front_end/panels/application/application-legacy.js +1 -0
  454. package/dist/third-party/front_end/panels/application/application-meta.js +1 -0
  455. package/dist/third-party/front_end/panels/application/application.js +1 -0
  456. package/dist/third-party/front_end/panels/application/components/components.js +1 -0
  457. package/dist/third-party/front_end/panels/application/preloading/components/components.js +1 -0
  458. package/dist/third-party/front_end/panels/browser_debugger/browser_debugger-legacy.js +1 -0
  459. package/dist/third-party/front_end/panels/browser_debugger/browser_debugger-meta.js +1 -0
  460. package/dist/third-party/front_end/panels/browser_debugger/browser_debugger.js +1 -0
  461. package/dist/third-party/front_end/panels/changes/changes-legacy.js +1 -0
  462. package/dist/third-party/front_end/panels/changes/changes-meta.js +1 -0
  463. package/dist/third-party/front_end/panels/changes/changes.js +1 -0
  464. package/dist/third-party/front_end/panels/console/console-legacy.js +1 -0
  465. package/dist/third-party/front_end/panels/console/console-meta.js +1 -0
  466. package/dist/third-party/front_end/panels/console/console.js +6 -0
  467. package/dist/third-party/front_end/panels/console_counters/console_counters-meta.js +1 -0
  468. package/dist/third-party/front_end/panels/console_counters/console_counters.js +1 -0
  469. package/dist/third-party/front_end/panels/coverage/coverage-legacy.js +1 -0
  470. package/dist/third-party/front_end/panels/coverage/coverage-meta.js +1 -0
  471. package/dist/third-party/front_end/panels/coverage/coverage.js +1 -0
  472. package/dist/third-party/front_end/panels/css_overview/components/components.js +1 -0
  473. package/dist/third-party/front_end/panels/css_overview/css_overview-meta.js +1 -0
  474. package/dist/third-party/front_end/panels/css_overview/css_overview.js +144 -0
  475. package/dist/third-party/front_end/panels/developer_resources/developer_resources-meta.js +1 -0
  476. package/dist/third-party/front_end/panels/developer_resources/developer_resources.js +1 -0
  477. package/dist/third-party/front_end/panels/elements/components/components.js +1 -0
  478. package/dist/third-party/front_end/panels/elements/elements-legacy.js +1 -0
  479. package/dist/third-party/front_end/panels/elements/elements-meta.js +1 -0
  480. package/dist/third-party/front_end/panels/elements/elements.js +1 -0
  481. package/dist/third-party/front_end/panels/emulation/components/components.js +22 -0
  482. package/dist/third-party/front_end/panels/emulation/emulation-legacy.js +1 -0
  483. package/dist/third-party/front_end/panels/emulation/emulation-meta.js +1 -0
  484. package/dist/third-party/front_end/panels/emulation/emulation.js +1 -0
  485. package/dist/third-party/front_end/panels/event_listeners/event_listeners.js +1 -0
  486. package/dist/third-party/front_end/panels/issues/components/components.js +1 -0
  487. package/dist/third-party/front_end/panels/issues/issues-meta.js +1 -0
  488. package/dist/third-party/front_end/panels/issues/issues.js +1 -0
  489. package/dist/third-party/front_end/panels/js_profiler/js_profiler-meta.js +1 -0
  490. package/dist/third-party/front_end/panels/js_profiler/js_profiler.js +1 -0
  491. package/dist/third-party/front_end/panels/layer_viewer/layer_viewer-legacy.js +1 -0
  492. package/dist/third-party/front_end/panels/layer_viewer/layer_viewer-meta.js +1 -0
  493. package/dist/third-party/front_end/panels/layer_viewer/layer_viewer.js +1 -0
  494. package/dist/third-party/front_end/panels/layers/layers-meta.js +1 -0
  495. package/dist/third-party/front_end/panels/layers/layers.js +1 -0
  496. package/dist/third-party/front_end/panels/lighthouse/lighthouse-legacy.js +1 -0
  497. package/dist/third-party/front_end/panels/lighthouse/lighthouse-meta.js +1 -0
  498. package/dist/third-party/front_end/panels/lighthouse/lighthouse.js +66 -0
  499. package/dist/third-party/front_end/panels/media/media-meta.js +1 -0
  500. package/dist/third-party/front_end/panels/media/media.js +25 -0
  501. package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling-legacy.js +1 -0
  502. package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
  503. package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling.js +1 -0
  504. package/dist/third-party/front_end/panels/network/components/components.js +1 -0
  505. package/dist/third-party/front_end/panels/network/forward/forward.js +1 -0
  506. package/dist/third-party/front_end/panels/network/network-legacy.js +1 -0
  507. package/dist/third-party/front_end/panels/network/network-meta.js +1 -0
  508. package/dist/third-party/front_end/panels/network/network.js +1 -0
  509. package/dist/third-party/front_end/panels/performance_monitor/performance_monitor-meta.js +1 -0
  510. package/dist/third-party/front_end/panels/performance_monitor/performance_monitor.js +1 -0
  511. package/dist/third-party/front_end/panels/profiler/profiler-legacy.js +1 -0
  512. package/dist/third-party/front_end/panels/profiler/profiler-meta.js +1 -0
  513. package/dist/third-party/front_end/panels/profiler/profiler.js +7 -0
  514. package/dist/third-party/front_end/panels/protocol_monitor/components/components.js +1 -0
  515. package/dist/third-party/front_end/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
  516. package/dist/third-party/front_end/panels/protocol_monitor/protocol_monitor.js +1 -0
  517. package/dist/third-party/front_end/panels/recorder/components/components.js +1 -0
  518. package/dist/third-party/front_end/panels/recorder/controllers/controllers.js +1 -0
  519. package/dist/third-party/front_end/panels/recorder/converters/converters.js +1 -0
  520. package/dist/third-party/front_end/panels/recorder/extensions/extensions.js +1 -0
  521. package/dist/third-party/front_end/panels/recorder/injected/injected.generated.js +1 -0
  522. package/dist/third-party/front_end/panels/recorder/injected/injected.js +1 -0
  523. package/dist/third-party/front_end/panels/recorder/models/models.js +1 -0
  524. package/dist/third-party/front_end/panels/recorder/recorder-actions.js +1 -0
  525. package/dist/third-party/front_end/panels/recorder/recorder-meta.js +1 -0
  526. package/dist/third-party/front_end/panels/recorder/recorder.js +1 -0
  527. package/dist/third-party/front_end/panels/recorder/util/util.js +1 -0
  528. package/dist/third-party/front_end/panels/rn_welcome/rn_welcome-meta.js +1 -0
  529. package/dist/third-party/front_end/panels/rn_welcome/rn_welcome.js +1 -0
  530. package/dist/third-party/front_end/panels/screencast/screencast-meta.js +1 -0
  531. package/dist/third-party/front_end/panels/screencast/screencast.js +1 -0
  532. package/dist/third-party/front_end/panels/search/search-legacy.js +1 -0
  533. package/dist/third-party/front_end/panels/search/search.js +1 -0
  534. package/dist/third-party/front_end/panels/security/security-legacy.js +1 -0
  535. package/dist/third-party/front_end/panels/security/security-meta.js +1 -0
  536. package/dist/third-party/front_end/panels/security/security.js +1 -0
  537. package/dist/third-party/front_end/panels/sensors/sensors-meta.js +1 -0
  538. package/dist/third-party/front_end/panels/sensors/sensors.js +1 -0
  539. package/dist/third-party/front_end/panels/settings/components/components.js +1 -0
  540. package/dist/third-party/front_end/panels/settings/emulation/components/components.js +1 -0
  541. package/dist/third-party/front_end/panels/settings/emulation/emulation-meta.js +1 -0
  542. package/dist/third-party/front_end/panels/settings/emulation/emulation.js +1 -0
  543. package/dist/third-party/front_end/panels/settings/emulation/utils/utils.js +1 -0
  544. package/dist/third-party/front_end/panels/settings/settings-legacy.js +1 -0
  545. package/dist/third-party/front_end/panels/settings/settings-meta.js +1 -0
  546. package/dist/third-party/front_end/panels/settings/settings.js +1 -0
  547. package/dist/third-party/front_end/panels/snippets/snippets-legacy.js +1 -0
  548. package/dist/third-party/front_end/panels/snippets/snippets.js +1 -0
  549. package/dist/third-party/front_end/panels/sources/components/components.js +1 -0
  550. package/dist/third-party/front_end/panels/sources/sources-legacy.js +1 -0
  551. package/dist/third-party/front_end/panels/sources/sources-meta.js +1 -0
  552. package/dist/third-party/front_end/panels/sources/sources.js +1 -0
  553. package/dist/third-party/front_end/panels/timeline/timeline-legacy.js +1 -0
  554. package/dist/third-party/front_end/panels/timeline/timeline-meta.js +1 -0
  555. package/dist/third-party/front_end/panels/timeline/timeline.js +1 -0
  556. package/dist/third-party/front_end/panels/utils/utils.js +1 -0
  557. package/dist/third-party/front_end/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  558. package/dist/third-party/front_end/panels/web_audio/web_audio-legacy.js +1 -0
  559. package/dist/third-party/front_end/panels/web_audio/web_audio-meta.js +1 -0
  560. package/dist/third-party/front_end/panels/web_audio/web_audio.js +1 -0
  561. package/dist/third-party/front_end/panels/webauthn/webauthn-meta.js +1 -0
  562. package/dist/third-party/front_end/panels/webauthn/webauthn.js +1 -0
  563. package/dist/third-party/front_end/rn_inspector.html +20 -0
  564. package/dist/third-party/front_end/services/puppeteer/puppeteer.js +1 -0
  565. package/dist/third-party/front_end/services/tracing/tracing.js +1 -0
  566. package/dist/third-party/front_end/services/window_bounds/window_bounds.js +1 -0
  567. package/dist/third-party/front_end/third_party/acorn/acorn.js +1 -0
  568. package/dist/third-party/front_end/third_party/chromium/client-variations/client-variations.js +1 -0
  569. package/dist/third-party/front_end/third_party/codemirror.next/chunk/angular.js +2 -0
  570. package/dist/third-party/front_end/third_party/codemirror.next/chunk/codemirror.js +2 -0
  571. package/dist/third-party/front_end/third_party/codemirror.next/chunk/cpp.js +2 -0
  572. package/dist/third-party/front_end/third_party/codemirror.next/chunk/java.js +2 -0
  573. package/dist/third-party/front_end/third_party/codemirror.next/chunk/json.js +2 -0
  574. package/dist/third-party/front_end/third_party/codemirror.next/chunk/legacy.js +2 -0
  575. package/dist/third-party/front_end/third_party/codemirror.next/chunk/less.js +2 -0
  576. package/dist/third-party/front_end/third_party/codemirror.next/chunk/markdown.js +2 -0
  577. package/dist/third-party/front_end/third_party/codemirror.next/chunk/php.js +2 -0
  578. package/dist/third-party/front_end/third_party/codemirror.next/chunk/python.js +2 -0
  579. package/dist/third-party/front_end/third_party/codemirror.next/chunk/sass.js +2 -0
  580. package/dist/third-party/front_end/third_party/codemirror.next/chunk/svelte.js +2 -0
  581. package/dist/third-party/front_end/third_party/codemirror.next/chunk/vue.js +2 -0
  582. package/dist/third-party/front_end/third_party/codemirror.next/chunk/wast.js +2 -0
  583. package/dist/third-party/front_end/third_party/codemirror.next/chunk/xml.js +2 -0
  584. package/dist/third-party/front_end/third_party/codemirror.next/codemirror.next.js +2 -0
  585. package/dist/third-party/front_end/third_party/diff/diff-legacy.js +1 -0
  586. package/dist/third-party/front_end/third_party/diff/diff.js +1 -0
  587. package/dist/third-party/front_end/third_party/i18n/i18n.js +1 -0
  588. package/dist/third-party/front_end/third_party/intl-messageformat/intl-messageformat.js +15 -0
  589. package/dist/third-party/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1297 -0
  590. package/dist/third-party/front_end/third_party/lighthouse/report/report.js +222 -0
  591. package/dist/third-party/front_end/third_party/lit/lit.js +98 -0
  592. package/dist/third-party/front_end/third_party/marked/marked.js +1 -0
  593. package/dist/third-party/front_end/third_party/puppeteer/puppeteer.js +1 -0
  594. package/dist/third-party/front_end/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  595. package/dist/third-party/front_end/third_party/wasmparser/wasmparser.js +1 -0
  596. package/dist/third-party/front_end/ui/components/adorners/adorners.js +1 -0
  597. package/dist/third-party/front_end/ui/components/buttons/buttons.js +1 -0
  598. package/dist/third-party/front_end/ui/components/chrome_link/chrome_link.js +1 -0
  599. package/dist/third-party/front_end/ui/components/code_highlighter/code_highlighter.js +1 -0
  600. package/dist/third-party/front_end/ui/components/data_grid/data_grid.js +1 -0
  601. package/dist/third-party/front_end/ui/components/dialogs/dialogs.js +1 -0
  602. package/dist/third-party/front_end/ui/components/diff_view/diff_view.js +1 -0
  603. package/dist/third-party/front_end/ui/components/expandable_list/expandable_list.js +1 -0
  604. package/dist/third-party/front_end/ui/components/helpers/helpers.js +1 -0
  605. package/dist/third-party/front_end/ui/components/icon_button/icon_button.js +1 -0
  606. package/dist/third-party/front_end/ui/components/input/input.js +1 -0
  607. package/dist/third-party/front_end/ui/components/issue_counter/issue_counter.js +1 -0
  608. package/dist/third-party/front_end/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  609. package/dist/third-party/front_end/ui/components/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  610. package/dist/third-party/front_end/ui/components/linear_memory_inspector/linear_memory_inspector.js +1 -0
  611. package/dist/third-party/front_end/ui/components/linkifier/linkifier.js +1 -0
  612. package/dist/third-party/front_end/ui/components/markdown_view/markdown_view.js +1 -0
  613. package/dist/third-party/front_end/ui/components/menus/menus.js +1 -0
  614. package/dist/third-party/front_end/ui/components/node_text/node_text.js +1 -0
  615. package/dist/third-party/front_end/ui/components/panel_feedback/panel_feedback.js +1 -0
  616. package/dist/third-party/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.js +1 -0
  617. package/dist/third-party/front_end/ui/components/render_coordinator/render_coordinator.js +1 -0
  618. package/dist/third-party/front_end/ui/components/report_view/report_view.js +1 -0
  619. package/dist/third-party/front_end/ui/components/request_link_icon/request_link_icon.js +1 -0
  620. package/dist/third-party/front_end/ui/components/settings/settings.js +1 -0
  621. package/dist/third-party/front_end/ui/components/srgb_overlay/srgb_overlay.js +1 -0
  622. package/dist/third-party/front_end/ui/components/survey_link/survey_link.js +1 -0
  623. package/dist/third-party/front_end/ui/components/text_editor/text_editor.js +1 -0
  624. package/dist/third-party/front_end/ui/components/text_prompt/text_prompt.js +1 -0
  625. package/dist/third-party/front_end/ui/components/tree_outline/tree_outline.js +1 -0
  626. package/dist/third-party/front_end/ui/components/two_states_counter/two_states_counter.js +1 -0
  627. package/dist/third-party/front_end/ui/legacy/components/color_picker/color_picker-legacy.js +1 -0
  628. package/dist/third-party/front_end/ui/legacy/components/color_picker/color_picker.js +1 -0
  629. package/dist/third-party/front_end/ui/legacy/components/cookie_table/cookie_table-legacy.js +1 -0
  630. package/dist/third-party/front_end/ui/legacy/components/cookie_table/cookie_table.js +1 -0
  631. package/dist/third-party/front_end/ui/legacy/components/data_grid/data_grid-legacy.js +1 -0
  632. package/dist/third-party/front_end/ui/legacy/components/data_grid/data_grid.js +1 -0
  633. package/dist/third-party/front_end/ui/legacy/components/inline_editor/inline_editor-legacy.js +1 -0
  634. package/dist/third-party/front_end/ui/legacy/components/inline_editor/inline_editor.js +1 -0
  635. package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui-legacy.js +1 -0
  636. package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
  637. package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui.js +1 -0
  638. package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui-legacy.js +1 -0
  639. package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
  640. package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui.js +12 -0
  641. package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open-legacy.js +1 -0
  642. package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
  643. package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open.js +1 -0
  644. package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame-legacy.js +1 -0
  645. package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
  646. package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame.js +1 -0
  647. package/dist/third-party/front_end/ui/legacy/components/utils/utils-legacy.js +1 -0
  648. package/dist/third-party/front_end/ui/legacy/components/utils/utils.js +1 -0
  649. package/dist/third-party/front_end/ui/legacy/legacy-legacy.js +1 -0
  650. package/dist/third-party/front_end/ui/legacy/legacy.js +1 -0
  651. package/dist/third-party/front_end/ui/legacy/theme_support/theme_support.js +1 -0
  652. package/dist/third-party/front_end/ui/legacy/utils/utils.js +1 -0
  653. package/dist/third-party/front_end/ui/lit-html/lit-html.js +1 -0
  654. package/dist/third-party/front_end/worker_app.html +20 -0
  655. package/index.js +15 -0
  656. package/package.json +25 -0
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i18n.js";const o={preserveLog:"Preserve log",preserve:"preserve",clear:"clear",reset:"reset",preserveLogOnPageReload:"Preserve log on page reload / navigation",doNotPreserveLogOnPageReload:"Do not preserve log on page reload / navigation",recordNetworkLog:"Record network log"},r=t.i18n.registerUIStrings("models/logs/logs-meta.ts",o),g=t.i18n.getLazilyComputedLocalizedString.bind(void 0,r);e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.NETWORK,title:g(o.preserveLog),settingName:"network_log.preserve-log",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!1,tags:[g(o.preserve),g(o.clear),g(o.reset)],options:[{value:!0,title:g(o.preserveLogOnPageReload)},{value:!1,title:g(o.doNotPreserveLogOnPageReload)}]}),e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.NETWORK,title:g(o.recordNetworkLog),settingName:"network_log.record-log",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!0,storageType:e.Settings.SettingStorageType.Session});
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/sdk/sdk.js";import*as s from"../../core/i18n/i18n.js";import*as r from"../../core/platform/platform.js";const n={anonymous:"<anonymous>"},o=s.i18n.registerUIStrings("models/logs/NetworkLog.ts",n),a=s.i18n.getLocalizedString.bind(void 0,o);let i;class d extends e.ObjectWrapper.ObjectWrapper{requestsInternal;sentNetworkRequests;receivedNetworkResponses;requestsSet;requestsMap;pageLoadForManager;isRecording;modelListeners;initiatorData;unresolvedPreflightRequests;constructor(){super(),this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet=new Set,this.requestsMap=new Map,this.pageLoadForManager=new Map,this.isRecording=!0,this.modelListeners=new WeakMap,this.initiatorData=new WeakMap,t.TargetManager.TargetManager.instance().observeModels(t.NetworkManager.NetworkManager,this);const s=e.Settings.Settings.instance().moduleSetting("network_log.record-log");s.addChangeListener((()=>{!e.Settings.Settings.instance().moduleSetting("network_log.preserve-log").get()&&s.get()&&this.reset(!0),this.setIsRecording(s.get())}),this),this.unresolvedPreflightRequests=new Map}static instance(){return i||(i=new d),i}static removeInstance(){i=void 0}modelAdded(e){const s=[];s.push(e.addEventListener(t.NetworkManager.Events.RequestStarted,this.onRequestStarted,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestUpdated,this.onRequestUpdated,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestRedirected,this.onRequestRedirect,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestFinished,this.onRequestUpdated,this)),s.push(e.addEventListener(t.NetworkManager.Events.MessageGenerated,this.networkMessageGenerated.bind(this,e))),s.push(e.addEventListener(t.NetworkManager.Events.ResponseReceived,this.onResponseReceived,this));const r=e.target().model(t.ResourceTreeModel.ResourceTreeModel);r&&(s.push(r.addEventListener(t.ResourceTreeModel.Events.WillReloadPage,this.willReloadPage,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.PrimaryPageChanged,this.onPrimaryPageChanged,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.Load,this.onLoad,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.DOMContentLoaded,this.onDOMContentLoaded.bind(this,r)))),this.modelListeners.set(e,s)}modelRemoved(e){this.removeNetworkManagerListeners(e)}removeNetworkManagerListeners(t){e.EventTarget.removeEventListeners(this.modelListeners.get(t)||[])}setIsRecording(e){this.isRecording!==e&&(this.isRecording=e,e?t.TargetManager.TargetManager.instance().observeModels(t.NetworkManager.NetworkManager,this):(t.TargetManager.TargetManager.instance().unobserveModels(t.NetworkManager.NetworkManager,this),t.TargetManager.TargetManager.instance().models(t.NetworkManager.NetworkManager).forEach(this.removeNetworkManagerListeners.bind(this))))}requestForURL(e){return this.requestsInternal.find((t=>t.url()===e))||null}originalRequestForURL(e){return this.sentNetworkRequests.find((t=>t.url===e))||null}originalResponseForURL(e){return this.receivedNetworkResponses.find((t=>t.url===e))||null}requests(){return this.requestsInternal}requestByManagerAndId(e,s){for(let r=this.requestsInternal.length-1;r>=0;r--){const n=this.requestsInternal[r];if(s===n.requestId()&&e===t.NetworkManager.NetworkManager.forRequest(n))return n}return null}requestByManagerAndURL(e,s){for(const r of this.requestsInternal)if(s===r.url()&&e===t.NetworkManager.NetworkManager.forRequest(r))return r;return null}initializeInitiatorSymbolIfNeeded(e){let t=this.initiatorData.get(e);return t||(t={info:null,chain:null,request:void 0},this.initiatorData.set(e,t),t)}static initiatorInfoForRequest(e,s){const o=s||{info:null,chain:null,request:void 0};let i,d,u=t.NetworkRequest.InitiatorType.Other,l=r.DevToolsPath.EmptyUrlString,g=null,h=null,c=null;const q=e.initiator(),R=e.redirectSource();if(R)u=t.NetworkRequest.InitiatorType.Redirect,l=R.url();else if(q)if("parser"===q.type)u=t.NetworkRequest.InitiatorType.Parser,l=q.url?q.url:l,i=q.lineNumber,d=q.columnNumber;else if("script"===q.type){for(let e=q.stack;e;){const s=e.callFrames.length?e.callFrames[0]:null;if(s){u=t.NetworkRequest.InitiatorType.Script,l=s.url||a(n.anonymous),i=s.lineNumber,d=s.columnNumber,g=s.scriptId;break}e=e.parent}!q.stack&&q.url&&(u=t.NetworkRequest.InitiatorType.Script,l=q.url,i=q.lineNumber),q.stack?.callFrames?.length&&(h=q.stack)}else"preload"===q.type?u=t.NetworkRequest.InitiatorType.Preload:"preflight"===q.type?(u=t.NetworkRequest.InitiatorType.Preflight,c=e.preflightInitiatorRequest()):"SignedExchange"===q.type&&(u=t.NetworkRequest.InitiatorType.SignedExchange,l=q.url||r.DevToolsPath.EmptyUrlString);return o.info={type:u,url:l,lineNumber:i,columnNumber:d,scriptId:g,stack:h,initiatorRequest:c},o.info}initiatorInfoForRequest(e){const t=this.initializeInitiatorSymbolIfNeeded(e);return t.info?t.info:d.initiatorInfoForRequest(e,t)}initiatorGraphForRequest(e){const s=new Map,r=t.NetworkManager.NetworkManager.forRequest(e);for(const n of this.requestsInternal){if(r===t.NetworkManager.NetworkManager.forRequest(n)&&this.initiatorChain(n).has(e)){const e=this.initiatorRequest(n);e&&s.set(n,e)}}return{initiators:this.initiatorChain(e),initiated:s}}initiatorChain(e){const t=this.initializeInitiatorSymbolIfNeeded(e);let s=t.chain;if(s)return s;s=new Set;let n=e;for(;n;){const e=this.initializeInitiatorSymbolIfNeeded(n);if(e.chain){r.SetUtilities.addAll(s,e.chain);break}if(s.has(n))break;s.add(n),n=this.initiatorRequest(n)}return t.chain=s,s}initiatorRequest(e){const s=this.initializeInitiatorSymbolIfNeeded(e);if(void 0!==s.request)return s.request;const r=this.initiatorInfoForRequest(e).url,n=t.NetworkManager.NetworkManager.forRequest(e);return s.request=n?this.requestByManagerAndURL(n,r):null,s.request}willReloadPage(){e.Settings.Settings.instance().moduleSetting("network_log.preserve-log").get()||this.reset(!0)}onPrimaryPageChanged(s){const r=s.data.frame,n=r.resourceTreeModel().target().model(t.NetworkManager.NetworkManager);if(!n||r.resourceTreeModel().target().parentTarget()?.type()===t.Target.Type.Frame)return;if(r.url!==r.unreachableUrl()&&r.url.startsWith("chrome-error://"))return;const o=e.Settings.Settings.instance().moduleSetting("network_log.preserve-log").get(),a=this.requestsInternal,i=this.requestsInternal.filter((e=>t.NetworkManager.NetworkManager.forRequest(e)===n)),d=this.requestsSet;this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet=new Set,this.requestsMap.clear(),this.unresolvedPreflightRequests.clear(),this.dispatchEventToListeners(l.Reset,{clearIfPreserved:!o});let u=null;const g=[];for(const e of i)if(e.loaderId===r.loaderId){if(!u){u=new t.PageLoad.PageLoad(e);let s=e.redirectSource();for(;s;)g.push(s),s=s.redirectSource()}g.push(e)}const h=[];for(const e of a){if(!e.initiatedByServiceWorker())continue;g.some((t=>t.url()===e.url()&&t.issueTime()<=e.issueTime()))&&h.push(e)}g.push(...h);for(const e of g)u?.bindRequest(e),d.delete(e),this.addRequest(e);if(o)for(const e of d)this.addRequest(e),e.preserved=!0;u&&this.pageLoadForManager.set(n,u)}addRequest(e){this.requestsInternal.push(e),this.requestsSet.add(e);const t=this.requestsMap.get(e.requestId());t?t.push(e):this.requestsMap.set(e.requestId(),[e]),this.tryResolvePreflightRequests(e),this.dispatchEventToListeners(l.RequestAdded,e)}tryResolvePreflightRequests(e){if(e.isPreflightRequest()){const t=e.initiator();if(t&&t.requestId){const[s]=this.requestsForId(t.requestId);s?(e.setPreflightInitiatorRequest(s),s.setPreflightRequest(e)):this.unresolvedPreflightRequests.set(t.requestId,e)}}else{const t=this.unresolvedPreflightRequests.get(e.requestId());if(t){this.unresolvedPreflightRequests.delete(e.requestId()),e.setPreflightRequest(t),t.setPreflightInitiatorRequest(e);const s=this.initiatorData.get(t);s&&(s.info=null),this.dispatchEventToListeners(l.RequestUpdated,t)}}}importRequests(e){this.reset(!0),this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet.clear(),this.requestsMap.clear(),this.unresolvedPreflightRequests.clear();for(const t of e)this.addRequest(t)}onRequestStarted(e){const{request:s,originalRequest:r}=e.data;r&&this.sentNetworkRequests.push(r),this.requestsSet.add(s);const n=t.NetworkManager.NetworkManager.forRequest(s),o=n?this.pageLoadForManager.get(n):null;o&&o.bindRequest(s),this.addRequest(s)}onResponseReceived(e){const t=e.data.response;this.receivedNetworkResponses.push(t)}onRequestUpdated(e){const t=e.data;this.requestsSet.has(t)&&this.dispatchEventToListeners(l.RequestUpdated,t)}onRequestRedirect(e){this.initiatorData.delete(e.data)}onDOMContentLoaded(e,s){const r=e.target().model(t.NetworkManager.NetworkManager),n=r?this.pageLoadForManager.get(r):null;n&&(n.contentLoadTime=s.data)}onLoad(e){const s=e.data.resourceTreeModel.target().model(t.NetworkManager.NetworkManager),r=s?this.pageLoadForManager.get(s):null;r&&(r.loadTime=e.data.loadTime)}reset(e){this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet.clear(),this.requestsMap.clear(),this.unresolvedPreflightRequests.clear();const s=new Set(t.TargetManager.TargetManager.instance().models(t.NetworkManager.NetworkManager));for(const e of this.pageLoadForManager.keys())s.has(e)||this.pageLoadForManager.delete(e);this.dispatchEventToListeners(l.Reset,{clearIfPreserved:e})}networkMessageGenerated(e,s){const{message:r,warning:n,requestId:o}=s.data,a=new t.ConsoleModel.ConsoleMessage(e.target().model(t.RuntimeModel.RuntimeModel),"network",n?"warning":"info",r);this.associateConsoleMessageWithRequest(a,o),e.target().model(t.ConsoleModel.ConsoleModel)?.addMessage(a)}associateConsoleMessageWithRequest(e,s){const r=e.target(),n=r?r.model(t.NetworkManager.NetworkManager):null;if(!n)return;const o=this.requestByManagerAndId(n,s);if(!o)return;u.set(e,o);const a=o.initiator();a&&(e.stackTrace=a.stack||void 0,a.url&&(e.url=a.url,e.line=a.lineNumber||0))}static requestForConsoleMessage(e){return u.get(e)||null}requestsForId(e){return this.requestsMap.get(e)||[]}}const u=new WeakMap;var l;!function(e){e.Reset="Reset",e.RequestAdded="RequestAdded",e.RequestUpdated="RequestUpdated"}(l||(l={}));var g=Object.freeze({__proto__:null,NetworkLog:d,get Events(){return l}});const h=new WeakMap;let c=null;class q{constructor(){t.TargetManager.TargetManager.instance().observeModels(t.LogModel.LogModel,this)}static instance({forceNew:e}={forceNew:!1}){return c&&!e||(c=new q),c}modelAdded(e){const s=[];s.push(e.addEventListener(t.LogModel.Events.EntryAdded,this.logEntryAdded,this)),h.set(e,s)}modelRemoved(t){const s=h.get(t);s&&e.EventTarget.removeEventListeners(s)}logEntryAdded(e){const{logModel:s,entry:r}=e.data,n=s.target(),o={url:r.url,line:r.lineNumber,parameters:[r.text,...r.args??[]],stackTrace:r.stackTrace,timestamp:r.timestamp,workerId:r.workerId,category:r.category,affectedResources:r.networkRequestId?{requestId:r.networkRequestId}:void 0},a=new t.ConsoleModel.ConsoleMessage(n.model(t.RuntimeModel.RuntimeModel),r.source,r.level,r.text,o);r.networkRequestId&&d.instance().associateConsoleMessageWithRequest(a,r.networkRequestId);const i=n.model(t.ConsoleModel.ConsoleModel);if("worker"===a.source){const e=a.workerId||"";if(t.TargetManager.TargetManager.instance().targetById(e))return;window.setTimeout((()=>{t.TargetManager.TargetManager.instance().targetById(e)||i?.addMessage(a)}),1e3)}else i?.addMessage(a)}}var R=Object.freeze({__proto__:null,LogManager:q});class M extends e.ResolverBase.ResolverBase{networkListener=null;networkLog;constructor(e=d.instance()){super(),this.networkLog=e}getForId(e){const t=this.networkLog.requestsForId(e);return t.length>0?t[0]:null}onRequestAdded(e){const t=e.data,s=t.backendRequestId();s&&this.onResolve(s,t)}startListening(){this.networkListener||(this.networkListener=this.networkLog.addEventListener(l.RequestAdded,this.onRequestAdded,this))}stopListening(){this.networkListener&&(e.EventTarget.removeEventListeners([this.networkListener]),this.networkListener=null)}}var p=Object.freeze({__proto__:null,RequestResolver:M});export{R as LogManager,g as NetworkLog,p as RequestResolver};
@@ -0,0 +1 @@
1
+ import*as e from"./persistence.js";self.Persistence=self.Persistence||{},Persistence=Persistence||{},Persistence.Automapping=e.Automapping.Automapping,Persistence.AutomappingStatus=e.Automapping.AutomappingStatus,Persistence.FileSystemWorkspaceBinding=e.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding,Persistence.FileSystemWorkspaceBinding.FileSystem=e.FileSystemWorkspaceBinding.FileSystem,Persistence.IsolatedFileSystem=e.IsolatedFileSystem.IsolatedFileSystem,Persistence.IsolatedFileSystemManager=e.IsolatedFileSystemManager.IsolatedFileSystemManager,Persistence.IsolatedFileSystemManager.Events=e.IsolatedFileSystemManager.Events,Persistence.NetworkPersistenceManager=e.NetworkPersistenceManager.NetworkPersistenceManager,Persistence.NetworkPersistenceManager.Events=e.NetworkPersistenceManager.Events,Persistence.PersistenceActions={},Persistence.PersistenceActions.ContextMenuProvider=e.PersistenceActions.ContextMenuProvider,Persistence.Persistence=e.Persistence.PersistenceImpl,Persistence.Persistence.Events=e.Persistence.Events,Persistence.Persistence._NodeShebang=e.Persistence.NodeShebang,Persistence.Persistence._NodePrefix=e.Persistence.NodePrefix,Persistence.Persistence._NodeSuffix=e.Persistence.NodeSuffix,Persistence.PersistenceBinding=e.Persistence.PersistenceBinding,Persistence.PersistenceUtils=e.PersistenceUtils.PersistenceUtils,Persistence.PlatformFileSystem=e.PlatformFileSystem.PlatformFileSystem,Persistence.WorkspaceSettingsTab=e.WorkspaceSettingsTab.WorkspaceSettingsTab;
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as r from"../../core/i18n/i18n.js";import*as t from"../../core/sdk/sdk.js";import*as s from"../../ui/legacy/legacy.js";import*as o from"../workspace/workspace.js";const i={workspace:"Workspace",showWorkspace:"Show Workspace",enableLocalOverrides:"Enable Local Overrides",interception:"interception",override:"override",network:"network",rewrite:"rewrite",request:"request",enableOverrideNetworkRequests:"Enable override network requests",disableOverrideNetworkRequests:"Disable override network requests"},n=r.i18n.registerUIStrings("models/persistence/persistence-meta.ts",i),a=r.i18n.getLazilyComputedLocalizedString.bind(void 0,n);let c;async function d(){return c||(c=await import("./persistence.js")),c}s.ViewManager.registerViewExtension({location:"settings-view",id:"workspace",title:a(i.workspace),commandPrompt:a(i.showWorkspace),order:1,loadView:async()=>(await d()).WorkspaceSettingsTab.WorkspaceSettingsTab.instance()}),e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.PERSISTENCE,title:a(i.enableLocalOverrides),settingName:"persistenceNetworkOverridesEnabled",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!1,tags:[a(i.interception),a(i.override),a(i.network),a(i.rewrite),a(i.request)],options:[{value:!0,title:a(i.enableOverrideNetworkRequests)},{value:!1,title:a(i.disableOverrideNetworkRequests)}]}),s.ContextMenu.registerProvider({contextTypes:()=>[o.UISourceCode.UISourceCode,t.Resource.Resource,t.NetworkRequest.NetworkRequest],loadProvider:async()=>(await d()).PersistenceActions.ContextMenuProvider.instance(),experiment:void 0});
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as s from"../../core/sdk/sdk.js";import*as n from"../bindings/bindings.js";import*as r from"../workspace/workspace.js";import*as i from"../../core/platform/platform.js";import*as o from"../text_utils/text_utils.js";import*as a from"../../core/i18n/i18n.js";import*as d from"../../ui/legacy/components/utils/utils.js";import*as l from"../breakpoints/breakpoints.js";import*as c from"../../ui/components/icon_button/icon_button.js";import*as h from"../../ui/legacy/legacy.js";import*as u from"../../core/root/root.js";const p={unableToReadFilesWithThis:"`PlatformFileSystem` cannot read files."},m=a.i18n.registerUIStrings("models/persistence/PlatformFileSystem.ts",p),g=a.i18n.getLocalizedString.bind(void 0,m);class f{pathInternal;typeInternal;constructor(e,t){this.pathInternal=e,this.typeInternal=t}getMetadata(e){return Promise.resolve(null)}initialFilePaths(){return[]}initialGitFolders(){return[]}path(){return this.pathInternal}embedderPath(){throw new Error("Not implemented")}type(){return this.typeInternal}async createFile(e,t){return Promise.resolve(null)}deleteFile(e){return Promise.resolve(!1)}requestFileBlob(e){return Promise.resolve(null)}async requestFileContent(e){return{content:null,error:g(p.unableToReadFilesWithThis),isEncoded:!1}}setFileContent(e,t,s){throw new Error("Not implemented")}renameFile(e,t,s){s(!1)}addExcludedFolder(e){}removeExcludedFolder(e){}fileSystemRemoved(){}isFileExcluded(e){return!1}excludedFolders(){return new Set}searchInPath(e,t){return Promise.resolve([])}indexContent(e){queueMicrotask((()=>{e.done()}))}mimeFromPath(e){throw new Error("Not implemented")}canExcludeFolder(e){return!1}contentType(e){throw new Error("Not implemented")}tooltipForURL(e){throw new Error("Not implemented")}supportsAutomapping(){throw new Error("Not implemented")}}var S=Object.freeze({__proto__:null,PlatformFileSystem:f});const y={fileSystemErrorS:"File system error: {PH1}",blobCouldNotBeLoaded:"Blob could not be loaded.",cantReadFileSS:"Can't read file: {PH1}: {PH2}",unknownErrorReadingFileS:"Unknown error reading file: {PH1}",linkedToS:"Linked to {PH1}"},P=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystem.ts",y),F=a.i18n.getLocalizedString.bind(void 0,P);class w extends f{manager;embedderPathInternal;domFileSystem;excludedFoldersSetting;excludedFoldersInternal;excludedEmbedderFolders;initialFilePathsInternal;initialGitFoldersInternal;fileLocks;constructor(t,s,n,r,i){super(s,i),this.manager=t,this.embedderPathInternal=n,this.domFileSystem=r,this.excludedFoldersSetting=e.Settings.Settings.instance().createLocalSetting("workspaceExcludedFolders",{}),this.excludedFoldersInternal=new Set(this.excludedFoldersSetting.get()[s]||[]),this.excludedEmbedderFolders=[],this.initialFilePathsInternal=new Set,this.initialGitFoldersInternal=new Set,this.fileLocks=new Map}static async create(e,s,n,r,i,o){const a=t.InspectorFrontendHost.InspectorFrontendHostInstance.isolatedFileSystem(i,o);if(!a)return null;const d=new w(e,s,n,a,r);return d.initializeFilePaths().then((()=>d)).catch((e=>(console.error(e),null)))}static errorMessage(e){return F(y.fileSystemErrorS,{PH1:e.message})}serializedFileOperation(e,t){const s=Promise.resolve(this.fileLocks.get(e)).then((()=>t.call(null)));return this.fileLocks.set(e,s),s}getMetadata(t){let s;const n=new Promise((e=>{s=e}));return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,(function(e){e.getMetadata(s,r)}),r),n;function r(e){const n=w.errorMessage(e);console.error(n+" when getting file metadata '"+t),s(null)}}initialFilePaths(){return[...this.initialFilePathsInternal]}initialGitFolders(){return[...this.initialGitFoldersInternal]}embedderPath(){return this.embedderPathInternal}initializeFilePaths(){return new Promise((s=>{let n=1,r=0,o=1;const a=function(i){for(let s=0;s<i.length;++s){const d=i[s];if(d.isDirectory){if(d.fullPath.endsWith("/.git")){const t=d.fullPath.lastIndexOf("/"),s=e.ParsedURL.ParsedURL.substr(d.fullPath,1,t);this.initialGitFoldersInternal.add(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(s))}if(this.isFileExcluded(e.ParsedURL.ParsedURL.concatenate(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(d.fullPath),"/"))){const s=e.ParsedURL.ParsedURL.concatenate(this.path(),e.ParsedURL.ParsedURL.rawPathToEncodedPathString(d.fullPath));this.excludedEmbedderFolders.push(e.ParsedURL.ParsedURL.urlToRawPathString(s,t.Platform.isWin()));continue}++o,++n,this.requestEntries(d.fullPath,a)}else{if(this.isFileExcluded(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(d.fullPath)))continue;++r,this.initialFilePathsInternal.add(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(e.ParsedURL.ParsedURL.substr(d.fullPath,1)))}}0==--n&&(s(),""===this.type()&&t.userMetrics.workspacesNumberOfFiles(r,o))}.bind(this);this.requestEntries(i.DevToolsPath.EmptyRawPathString,a)}))}async createFoldersIfNotExist(e){let t=await new Promise((t=>this.domFileSystem.root.getDirectory(e,void 0,t,(()=>t(null)))));if(t)return t;const s=e.split("/");let n="";for(const e of s)if(n=n+"/"+e,t=await this.innerCreateFolderIfNeeded(n),!t)return null;return t}innerCreateFolderIfNeeded(e){return new Promise((t=>{this.domFileSystem.root.getDirectory(e,{create:!0},(e=>t(e)),(s=>{const n=w.errorMessage(s);console.error(n+" trying to create directory '"+e+"'"),t(null)}))}))}async createFile(t,s){const n=await this.createFoldersIfNotExist(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t));if(!n)return null;const r=await this.serializedFileOperation(t,function s(r,i){return new Promise((o=>{const a=e.ParsedURL.ParsedURL.concatenate(r,(i||"").toString());n.getFile(a,{create:!0,exclusive:!0},o,(e=>{if("InvalidModificationError"===e.name)return void o(s.call(this,r,i?i+1:1));const n=w.errorMessage(e);console.error(n+" when testing if file exists '"+this.path()+"/"+t+"/"+a+"'"),o(null)}))}))}.bind(this,s||"NewFile"));return r?e.ParsedURL.ParsedURL.rawPathToEncodedPathString(e.ParsedURL.ParsedURL.substr(r.fullPath,1)):null}deleteFile(t){let s;const n=new Promise((e=>{s=e}));return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,function(e){e.remove(r,i.bind(this))}.bind(this),i.bind(this)),n;function r(){s(!0)}function i(e){const n=w.errorMessage(e);console.error(n+" when deleting file '"+this.path()+"/"+t+"'"),s(!1)}}requestFileBlob(t){return new Promise((s=>{function n(e){if("NotFoundError"===e.name)return void s(null);const n=w.errorMessage(e);console.error(n+" when getting content for file '"+this.path()+"/"+t+"'"),s(null)}this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,(e=>{e.file(s,n.bind(this))}),n.bind(this))}))}requestFileContent(e){return this.serializedFileOperation(e,(()=>this.innerRequestFileContent(e)))}async innerRequestFileContent(t){const s=await this.requestFileBlob(t);if(!s)return{content:null,error:F(y.blobCouldNotBeLoaded),isEncoded:!1};const n=new FileReader,r=e.ParsedURL.ParsedURL.extractExtension(t),i=k.has(r),o=new Promise((e=>{n.onloadend=e}));if(i?n.readAsBinaryString(s):n.readAsText(s),await o,n.error){const e=F(y.cantReadFileSS,{PH1:t,PH2:n.error.toString()});return console.error(e),{content:null,isEncoded:!1,error:e}}let a=null,d=null;try{a=n.result}catch(e){a=null,d=F(y.cantReadFileSS,{PH1:t,PH2:e.message})}return null==a?(d=d||F(y.unknownErrorReadingFileS,{PH1:t}),console.error(d),{content:null,isEncoded:!1,error:d}):{isEncoded:i,content:i?btoa(a):a}}async setFileContent(s,n,r){let i;t.userMetrics.actionTaken(t.UserMetrics.Action.FileSavedInWorkspace);function o(e){e.createWriter(a.bind(this),d.bind(this))}async function a(e){let t;e.onerror=d.bind(this),e.onwriteend=function(){e.onwriteend=i,e.truncate(t.size)},t=r?await(await fetch(`data:application/octet-stream;base64,${n}`)).blob():new Blob([n],{type:"text/plain"}),e.write(t)}function d(e){const t=w.errorMessage(e);console.error(t+" when setting content for file '"+this.path()+"/"+s+"'"),i(void 0)}this.serializedFileOperation(s,(()=>{const t=new Promise((e=>{i=e}));return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(s),{create:!0},o.bind(this),d.bind(this)),t}))}renameFile(t,s,n){if(!(s=s?e.ParsedURL.ParsedURL.trim(s):s)||-1!==s.indexOf("/"))return void n(!1);let r,i;function o(e){i=e,i.getFile(s,void 0,a,d.bind(this))}function a(e){n(!1)}function d(e){"NotFoundError"===e.name?r.moveTo(i,s,l,c.bind(this)):n(!1)}function l(e){n(!0,e.name)}function c(e){const r=w.errorMessage(e);console.error(r+" when renaming file '"+this.path()+"/"+t+"' to '"+s+"'"),n(!1)}this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,function(e){if(e.name===s)return void n(!1);r=e,r.getParent(o.bind(this),c.bind(this))}.bind(this),c.bind(this))}readDirectory(e,t){const s=e.createReader();let n=[];function r(s){const n=w.errorMessage(s);console.error(n+" when reading directory '"+e.fullPath+"'"),t([])}s.readEntries((function e(i){var o;i.length?(n=n.concat((o=i,Array.prototype.slice.call(o||[],0))),s.readEntries(e,r)):t(n.sort())}),r)}requestEntries(e,t){this.domFileSystem.root.getDirectory(e,void 0,function(e){this.readDirectory(e,t)}.bind(this),(function(s){const n=w.errorMessage(s);console.error(n+" when requesting entry '"+e+"'"),t([])}))}saveExcludedFolders(){const e=this.excludedFoldersSetting.get();e[this.path()]=[...this.excludedFoldersInternal],this.excludedFoldersSetting.set(e)}addExcludedFolder(e){this.excludedFoldersInternal.add(e),this.saveExcludedFolders(),this.manager.dispatchEventToListeners(M.ExcludedFolderAdded,e)}removeExcludedFolder(e){this.excludedFoldersInternal.delete(e),this.saveExcludedFolders(),this.manager.dispatchEventToListeners(M.ExcludedFolderRemoved,e)}fileSystemRemoved(){const e=this.excludedFoldersSetting.get();delete e[this.path()],this.excludedFoldersSetting.set(e)}isFileExcluded(t){if(this.excludedFoldersInternal.has(t))return!0;const s=this.manager.workspaceFolderExcludePatternSetting().asRegExp();return Boolean(s&&s.test(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t)))}excludedFolders(){return this.excludedFoldersInternal}searchInPath(s,n){return new Promise((r=>{const i=this.manager.registerCallback((function(t){r(t.map((t=>e.ParsedURL.ParsedURL.rawPathToUrlString(t)))),n.incrementWorked(1)}));t.InspectorFrontendHost.InspectorFrontendHostInstance.searchInPath(i,this.embedderPathInternal,s)}))}indexContent(e){e.setTotalWork(1);const s=this.manager.registerProgress(e);t.InspectorFrontendHost.InspectorFrontendHostInstance.indexPath(s,this.embedderPathInternal,JSON.stringify(this.excludedEmbedderFolders))}mimeFromPath(t){return e.ResourceType.ResourceType.mimeFromURL(t)||"text/plain"}canExcludeFolder(e){return Boolean(e)&&"overrides"!==this.type()}contentType(t){const s=e.ParsedURL.ParsedURL.extractExtension(t);return v.has(s)?e.ResourceType.resourceTypes.Stylesheet:C.has(s)?e.ResourceType.resourceTypes.Document:U.has(s)?e.ResourceType.resourceTypes.Image:I.has(s)?e.ResourceType.resourceTypes.Script:k.has(s)?e.ResourceType.resourceTypes.Other:e.ResourceType.resourceTypes.Document}tooltipForURL(s){const n=i.StringUtilities.trimMiddle(e.ParsedURL.ParsedURL.urlToRawPathString(s,t.Platform.isWin()),150);return F(y.linkedToS,{PH1:n})}supportsAutomapping(){return"overrides"!==this.type()}}const v=new Set(["css","scss","sass","less"]),C=new Set(["htm","html","asp","aspx","phtml","jsp"]),I=new Set(["asp","aspx","c","cc","cljs","coffee","cpp","cs","dart","java","js","jsp","jsx","h","m","mjs","mm","py","sh","ts","tsx","ls"]),U=new Set(["jpeg","jpg","svg","gif","webp","png","ico","tiff","tif","bmp"]),k=new Set(["cmd","com","exe","a","ar","iso","tar","bz2","gz","lz","lzma","z","7z","apk","arc","cab","dmg","jar","pak","rar","zip","3gp","aac","aiff","flac","m4a","mmf","mp3","ogg","oga","raw","sln","wav","wma","webm","mkv","flv","vob","ogv","gifv","avi","mov","qt","mp4","m4p","m4v","mpg","mpeg","jpeg","jpg","gif","webp","png","ico","tiff","tif","bmp"]);var R=Object.freeze({__proto__:null,IsolatedFileSystem:w,BinaryExtensions:k});const x={unableToAddFilesystemS:"Unable to add filesystem: {PH1}"},L=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystemManager.ts",x),b=a.i18n.getLocalizedString.bind(void 0,L);let E;class T extends e.ObjectWrapper.ObjectWrapper{fileSystemsInternal;callbacks;progresses;workspaceFolderExcludePatternSettingInternal;fileSystemRequestResolve;fileSystemsLoadedPromise;constructor(){super(),this.fileSystemsInternal=new Map,this.callbacks=new Map,this.progresses=new Map,t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemRemoved,this.onFileSystemRemoved,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemAdded,(e=>{this.onFileSystemAdded(e)}),this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemFilesChangedAddedRemoved,this.onFileSystemFilesChanged,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingTotalWorkCalculated,this.onIndexingTotalWorkCalculated,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingWorked,this.onIndexingWorked,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingDone,this.onIndexingDone,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.SearchCompleted,this.onSearchCompleted,this);const s=["/Thumbs.db$","/ehthumbs.db$","/Desktop.ini$","/\\$RECYCLE.BIN/"],n=["/\\.DS_Store$","/\\.Trashes$","/\\.Spotlight-V100$","/\\.AppleDouble$","/\\.LSOverride$","/Icon$","/\\._.*$"],r=["/.*~$"];let i=["/node_modules/","/bower_components/","/\\.devtools","/\\.git/","/\\.sass-cache/","/\\.hg/","/\\.idea/","/\\.svn/","/\\.cache/","/\\.project/"];i=t.Platform.isWin()?i.concat(s):t.Platform.isMac()?i.concat(n):i.concat(r);const o=i.join("|");this.workspaceFolderExcludePatternSettingInternal=e.Settings.Settings.instance().createRegExpSetting("workspaceFolderExcludePattern",o,t.Platform.isWin()?"i":""),this.fileSystemRequestResolve=null,this.fileSystemsLoadedPromise=this.requestFileSystems()}static instance(e={forceNew:null}){const{forceNew:t}=e;return E&&!t||(E=new T),E}static removeInstance(){E=null}requestFileSystems(){let e;const s=new Promise((t=>{e=t}));return t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemsLoaded,(function(e){const t=e.data,s=[];for(let e=0;e<t.length;++e)s.push(this.innerAddFileSystem(t[e],!1));Promise.all(s).then(n)}),this),t.InspectorFrontendHost.InspectorFrontendHostInstance.requestFileSystems(),s;function n(t){e(t.filter((e=>Boolean(e))))}}addFileSystem(e){return t.userMetrics.actionTaken("overrides"===e?t.UserMetrics.Action.AddFileSystemForOverrides:t.UserMetrics.Action.AddFileSystemToWorkspace),new Promise((s=>{this.fileSystemRequestResolve=s,t.InspectorFrontendHost.InspectorFrontendHostInstance.addFileSystem(e||"")}))}removeFileSystem(e){t.userMetrics.actionTaken("overrides"===e.type()?t.UserMetrics.Action.RemoveFileSystemForOverrides:t.UserMetrics.Action.RemoveFileSystemFromWorkspace),t.InspectorFrontendHost.InspectorFrontendHostInstance.removeFileSystem(e.embedderPath())}waitForFileSystems(){return this.fileSystemsLoadedPromise}innerAddFileSystem(t,s){const n=t.fileSystemPath,r=e.ParsedURL.ParsedURL.rawPathToUrlString(t.fileSystemPath);return w.create(this,r,n,t.type,t.fileSystemName,t.rootURL).then(function(e){if(!e)return null;this.fileSystemsInternal.set(r,e),s&&this.dispatchEventToListeners(M.FileSystemAdded,e);return e}.bind(this))}addPlatformFileSystem(e,t){this.fileSystemsInternal.set(e,t),this.dispatchEventToListeners(M.FileSystemAdded,t)}onFileSystemAdded(t){const{errorMessage:s,fileSystem:n}=t.data;if(s){if("<selection cancelled>"!==s&&e.Console.Console.instance().error(b(x.unableToAddFilesystemS,{PH1:s})),!this.fileSystemRequestResolve)return;this.fileSystemRequestResolve.call(null,null),this.fileSystemRequestResolve=null}else n&&this.innerAddFileSystem(n,!0).then((e=>{this.fileSystemRequestResolve&&(this.fileSystemRequestResolve.call(null,e),this.fileSystemRequestResolve=null)}))}onFileSystemRemoved(t){const s=t.data,n=e.ParsedURL.ParsedURL.rawPathToUrlString(s),r=this.fileSystemsInternal.get(n);r&&(this.fileSystemsInternal.delete(n),r.fileSystemRemoved(),this.dispatchEventToListeners(M.FileSystemRemoved,r))}onFileSystemFilesChanged(t){const s={changed:n.call(this,t.data.changed),added:n.call(this,t.data.added),removed:n.call(this,t.data.removed)};function n(t){const s=new i.MapUtilities.Multimap;for(const n of t){const t=e.ParsedURL.ParsedURL.rawPathToUrlString(n);for(const r of this.fileSystemsInternal.keys()){const i=this.fileSystemsInternal.get(r);if(i&&i.isFileExcluded(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(n)))continue;const o=r.endsWith("/")?r:r+"/";t.startsWith(o)&&s.set(r,t)}}return s}this.dispatchEventToListeners(M.FileSystemFilesChanged,s)}fileSystems(){return[...this.fileSystemsInternal.values()]}fileSystem(e){return this.fileSystemsInternal.get(e)||null}workspaceFolderExcludePatternSetting(){return this.workspaceFolderExcludePatternSettingInternal}registerCallback(e){const t=++j;return this.callbacks.set(t,e),t}registerProgress(e){const t=++j;return this.progresses.set(t,e),t}onIndexingTotalWorkCalculated(e){const{requestId:t,totalWork:s}=e.data,n=this.progresses.get(t);n&&n.setTotalWork(s)}onIndexingWorked(e){const{requestId:s,worked:n}=e.data,r=this.progresses.get(s);r&&(r.incrementWorked(n),r.isCanceled()&&(t.InspectorFrontendHost.InspectorFrontendHostInstance.stopIndexing(s),this.onIndexingDone(e)))}onIndexingDone(e){const{requestId:t}=e.data,s=this.progresses.get(t);s&&(s.done(),this.progresses.delete(t))}onSearchCompleted(e){const{requestId:t,files:s}=e.data,n=this.callbacks.get(t);n&&(n.call(null,s),this.callbacks.delete(t))}}var M;!function(e){e.FileSystemAdded="FileSystemAdded",e.FileSystemRemoved="FileSystemRemoved",e.FileSystemFilesChanged="FileSystemFilesChanged",e.ExcludedFolderAdded="ExcludedFolderAdded",e.ExcludedFolderRemoved="ExcludedFolderRemoved"}(M||(M={}));let j=0;var W=Object.freeze({__proto__:null,IsolatedFileSystemManager:T,get Events(){return M}});class A{isolatedFileSystemManager;workspace;eventListeners;boundFileSystems;constructor(e,t){this.isolatedFileSystemManager=e,this.workspace=t,this.eventListeners=[this.isolatedFileSystemManager.addEventListener(M.FileSystemAdded,this.onFileSystemAdded,this),this.isolatedFileSystemManager.addEventListener(M.FileSystemRemoved,this.onFileSystemRemoved,this),this.isolatedFileSystemManager.addEventListener(M.FileSystemFilesChanged,this.fileSystemFilesChanged,this)],this.boundFileSystems=new Map,this.isolatedFileSystemManager.waitForFileSystems().then(this.onFileSystemsLoaded.bind(this))}static projectId(e){return e}static relativePath(t){const s=t.project().fileSystemBaseURL;return e.ParsedURL.ParsedURL.split(e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t.url(),s.length),"/")}static tooltipForUISourceCode(e){return e.project().fileSystemInternal.tooltipForURL(e.url())}static fileSystemType(e){return e.fileSystemInternal.type()}static fileSystemSupportsAutomapping(e){return e.fileSystemInternal.supportsAutomapping()}static completeURL(t,s){const n=t;return e.ParsedURL.ParsedURL.concatenate(n.fileSystemBaseURL,s)}static fileSystemPath(e){return e}fileSystemManager(){return this.isolatedFileSystemManager}onFileSystemsLoaded(e){for(const t of e)this.addFileSystem(t)}onFileSystemAdded(e){const t=e.data;this.addFileSystem(t)}addFileSystem(e){const t=new B(this,e,this.workspace);this.boundFileSystems.set(e.path(),t)}onFileSystemRemoved(e){const t=e.data,s=this.boundFileSystems.get(t.path());s&&s.dispose(),this.boundFileSystems.delete(t.path())}fileSystemFilesChanged(e){const t=e.data;for(const e of t.changed.keysArray()){const s=this.boundFileSystems.get(e);s&&t.changed.get(e).forEach((e=>s.fileChanged(e)))}for(const e of t.added.keysArray()){const s=this.boundFileSystems.get(e);s&&t.added.get(e).forEach((e=>s.fileChanged(e)))}for(const e of t.removed.keysArray()){const s=this.boundFileSystems.get(e);s&&t.removed.get(e).forEach((e=>s.removeUISourceCode(e)))}}dispose(){e.EventTarget.removeEventListeners(this.eventListeners);for(const e of this.boundFileSystems.values())e.dispose(),this.boundFileSystems.delete(e.fileSystemInternal.path())}}class B extends r.Workspace.ProjectStore{fileSystemInternal;fileSystemBaseURL;fileSystemParentURL;fileSystemWorkspaceBinding;fileSystemPathInternal;creatingFilesGuard;constructor(t,s,n){const i=s.path(),o=A.projectId(i);console.assert(!n.project(o));const a=i.substr(i.lastIndexOf("/")+1);super(n,o,r.Workspace.projectTypes.FileSystem,a),this.fileSystemInternal=s,this.fileSystemBaseURL=e.ParsedURL.ParsedURL.concatenate(this.fileSystemInternal.path(),"/"),this.fileSystemParentURL=e.ParsedURL.ParsedURL.substr(this.fileSystemBaseURL,0,i.lastIndexOf("/")+1),this.fileSystemWorkspaceBinding=t,this.fileSystemPathInternal=i,this.creatingFilesGuard=new Set,n.addProject(this),this.populate()}fileSystemPath(){return this.fileSystemPathInternal}fileSystem(){return this.fileSystemInternal}mimeType(e){return this.fileSystemInternal.mimeFromPath(e.url())}initialGitFolders(){return this.fileSystemInternal.initialGitFolders().map((t=>e.ParsedURL.ParsedURL.concatenate(this.fileSystemPathInternal,"/",t)))}filePathForUISourceCode(t){return e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t.url(),this.fileSystemPathInternal.length)}isServiceProject(){return!1}requestMetadata(e){const t=H.get(e);if(t)return t;const s=this.filePathForUISourceCode(e),n=this.fileSystemInternal.getMetadata(s).then((function(e){if(!e)return null;return new r.UISourceCode.UISourceCodeMetadata(e.modificationTime,e.size)}));return H.set(e,n),n}requestFileBlob(e){return this.fileSystemInternal.requestFileBlob(this.filePathForUISourceCode(e))}requestFileContent(e){const t=this.filePathForUISourceCode(e);return this.fileSystemInternal.requestFileContent(t)}canSetFileContent(){return!0}async setFileContent(e,t,s){const n=this.filePathForUISourceCode(e);await this.fileSystemInternal.setFileContent(n,t,s)}fullDisplayName(e){const t=e.project().fileSystemParentURL;return e.url().substring(t.length)}canRename(){return!0}rename(t,s,n){if(s===t.name())return void n(!0,t.name(),t.url(),t.contentType());let r=this.filePathForUISourceCode(t);this.fileSystemInternal.renameFile(r,s,function(s,i){if(!s||!i)return void n(!1,i);console.assert(Boolean(i));const o=r.lastIndexOf("/"),a=e.ParsedURL.ParsedURL.substr(r,0,o);r=e.ParsedURL.ParsedURL.encodedFromParentPathAndName(a,i),r=e.ParsedURL.ParsedURL.substr(r,1);const d=e.ParsedURL.ParsedURL.concatenate(this.fileSystemBaseURL,r),l=this.fileSystemInternal.contentType(i);this.renameUISourceCode(t,i),n(!0,i,d,l)}.bind(this))}async searchInFileContent(e,t,s,n){const r=this.filePathForUISourceCode(e),{content:i}=await this.fileSystemInternal.requestFileContent(r);return i?o.TextUtils.performSearchInContent(i,t,s,n):[]}async findFilesMatchingSearchRequest(e,t,s){let n=t;const r=e.queries().slice();r.length||r.push(""),s.setTotalWork(r.length);for(const t of r){const r=await this.fileSystemInternal.searchInPath(e.isRegex()?"":t,s);r.sort(i.StringUtilities.naturalOrderComparator),n=i.ArrayUtilities.intersectOrdered(n,r,i.StringUtilities.naturalOrderComparator),s.incrementWorked(1)}return s.done(),n}indexContent(e){this.fileSystemInternal.indexContent(e)}populate(){const e=this.fileSystemInternal.initialFilePaths();if(0===e.length)return;const s=performance.now();(function n(r){const i=Math.min(r+1e3,e.length);for(let t=r;t<i;++t)this.addFile(e[t]);i<e.length?window.setTimeout(n.bind(this,i),100):"filesystem"===this.type()&&t.userMetrics.workspacesPopulated(performance.now()-s)}).call(this,0)}excludeFolder(t){let s=e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t,this.fileSystemBaseURL.length);s.startsWith("/")||(s=e.ParsedURL.ParsedURL.prepend("/",s)),s.endsWith("/")||(s=e.ParsedURL.ParsedURL.concatenate(s,"/")),this.fileSystemInternal.addExcludedFolder(s);for(const e of this.uiSourceCodes())e.url().startsWith(t)&&this.removeUISourceCode(e.url())}canExcludeFolder(e){return this.fileSystemInternal.canExcludeFolder(e)}canCreateFile(){return!0}async createFile(e,t,s,n){const r=this.fileSystemPathInternal+e+(e.endsWith("/")?"":"/")+t;this.creatingFilesGuard.add(r);const i=await this.fileSystemInternal.createFile(e,t);if(!i)return null;const o=this.addFile(i);return o.setContent(s,Boolean(n)),this.creatingFilesGuard.delete(r),o}deleteFile(e){const t=this.filePathForUISourceCode(e);this.fileSystemInternal.deleteFile(t).then((t=>{t&&this.removeUISourceCode(e.url())}))}remove(){this.fileSystemWorkspaceBinding.isolatedFileSystemManager.removeFileSystem(this.fileSystemInternal)}addFile(t){const s=this.fileSystemInternal.contentType(t),n=this.createUISourceCode(e.ParsedURL.ParsedURL.concatenate(this.fileSystemBaseURL,t),s);return this.addUISourceCode(n),n}fileChanged(e){if(this.creatingFilesGuard.has(e))return;const t=this.uiSourceCodeForURL(e);if(t)H.delete(t),t.checkContentUpdated();else{const t=this.fileSystemInternal.contentType(e);this.addUISourceCode(this.createUISourceCode(e,t))}}tooltipForURL(e){return this.fileSystemInternal.tooltipForURL(e)}dispose(){this.removeProject()}}const H=new WeakMap;var N=Object.freeze({__proto__:null,FileSystemWorkspaceBinding:A,FileSystem:B});let O;class q extends e.ObjectWrapper.ObjectWrapper{bindings;originalResponseContentPromises;savingForOverrides;savingSymbol;enabledSetting;workspace;networkUISourceCodeForEncodedPath;interceptionHandlerBound;updateInterceptionThrottler;projectInternal;activeProject;activeInternal;enabled;eventDescriptors;#e=new Map;#t=new WeakMap;#s;#n;constructor(t){super(),this.bindings=new WeakMap,this.originalResponseContentPromises=new WeakMap,this.savingForOverrides=new WeakSet,this.savingSymbol=Symbol("SavingForOverrides"),this.enabledSetting=e.Settings.Settings.instance().moduleSetting("persistenceNetworkOverridesEnabled"),this.enabledSetting.addChangeListener(this.enabledChanged,this),this.workspace=t,this.networkUISourceCodeForEncodedPath=new Map,this.interceptionHandlerBound=this.interceptionHandler.bind(this),this.updateInterceptionThrottler=new e.Throttler.Throttler(50),this.#s=new e.Throttler.Throttler(50),this.#n=new Set,this.projectInternal=null,this.activeProject=null,this.activeInternal=!1,this.enabled=!1,this.workspace.addEventListener(r.Workspace.Events.ProjectAdded,(e=>{this.onProjectAdded(e.data)})),this.workspace.addEventListener(r.Workspace.Events.ProjectRemoved,(e=>{this.onProjectRemoved(e.data)})),se.instance().addNetworkInterceptor(this.canHandleNetworkUISourceCode.bind(this)),l.BreakpointManager.BreakpointManager.instance().addUpdateBindingsCallback(this.networkUISourceCodeAdded.bind(this)),this.eventDescriptors=[],this.enabledChanged(),s.TargetManager.TargetManager.instance().observeTargets(this)}targetAdded(){this.updateActiveProject()}targetRemoved(){this.updateActiveProject()}static instance(e={forceNew:null,workspace:null}){const{forceNew:t,workspace:s}=e;if(!O||t){if(!s)throw new Error("Missing workspace for NetworkPersistenceManager");O=new q(s)}return O}active(){return this.activeInternal}project(){return this.projectInternal}originalContentForUISourceCode(e){const t=this.bindings.get(e);if(!t)return null;const s=t.fileSystem;return this.originalResponseContentPromises.get(s)||null}async enabledChanged(){this.enabled!==this.enabledSetting.get()&&(this.enabled=this.enabledSetting.get(),this.enabled?(t.userMetrics.actionTaken(t.UserMetrics.Action.PersistenceNetworkOverridesEnabled),this.eventDescriptors=[r.Workspace.WorkspaceImpl.instance().addEventListener(r.Workspace.Events.UISourceCodeRenamed,(e=>{this.uiSourceCodeRenamedListener(e)})),r.Workspace.WorkspaceImpl.instance().addEventListener(r.Workspace.Events.UISourceCodeAdded,(e=>{this.uiSourceCodeAdded(e)})),r.Workspace.WorkspaceImpl.instance().addEventListener(r.Workspace.Events.UISourceCodeRemoved,(e=>{this.uiSourceCodeRemovedListener(e)})),r.Workspace.WorkspaceImpl.instance().addEventListener(r.Workspace.Events.WorkingCopyCommitted,(e=>this.onUISourceCodeWorkingCopyCommitted(e.data.uiSourceCode)))],await this.updateActiveProject()):(t.userMetrics.actionTaken(t.UserMetrics.Action.PersistenceNetworkOverridesDisabled),e.EventTarget.removeEventListeners(this.eventDescriptors),await this.updateActiveProject()))}async uiSourceCodeRenamedListener(e){const t=e.data.uiSourceCode;await this.onUISourceCodeRemoved(t),await this.onUISourceCodeAdded(t)}async uiSourceCodeRemovedListener(e){await this.onUISourceCodeRemoved(e.data)}async uiSourceCodeAdded(e){await this.onUISourceCodeAdded(e.data)}async updateActiveProject(){const e=this.activeInternal;if(this.activeInternal=Boolean(this.enabledSetting.get()&&s.TargetManager.TargetManager.instance().rootTarget()&&this.projectInternal),this.activeInternal!==e){if(this.activeInternal&&this.projectInternal){await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeAdded(e))));const e=this.workspace.projectsForType(r.Workspace.projectTypes.Network);for(const t of e)await Promise.all([...t.uiSourceCodes()].map((e=>this.networkUISourceCodeAdded(e))))}else this.projectInternal&&(await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeRemoved(e)))),this.networkUISourceCodeForEncodedPath.clear());se.instance().refreshAutomapping()}}encodedPathFromUrl(t,s){return e.ParsedURL.ParsedURL.rawPathToEncodedPathString(this.rawPathFromUrl(t,s))}rawPathFromUrl(t,s){if(!this.activeInternal&&!s||!this.projectInternal)return i.DevToolsPath.EmptyRawPathString;let n=e.ParsedURL.ParsedURL.urlWithoutHash(t.replace(/^https?:\/\//,""));n.endsWith("/")&&-1===n.indexOf("?")&&(n=e.ParsedURL.ParsedURL.concatenate(n,"index.html"));let r=q.encodeEncodedPathToLocalPathParts(n);const o=A.fileSystemPath(this.projectInternal.id()),a=r.join("/");if(o.length+a.length>200){const t=r[0],s=r[r.length-1],o=s?s.substr(0,10)+"-":"",d=e.ParsedURL.ParsedURL.extractExtension(n),l=d?"."+d.substr(0,10):"";r=[t,"longurls",o+i.StringUtilities.hashCode(a).toString(16)+l]}return e.ParsedURL.ParsedURL.join(r,"/")}static encodeEncodedPathToLocalPathParts(e){const s=[];for(const n of this.#r(e)){if(!n)continue;let e=encodeURI(n).replace(/[\/\*]/g,(e=>"%"+e[0].charCodeAt(0).toString(16).toUpperCase()));if(t.Platform.isWin()){e=e.replace(/[:\?]/g,(e=>"%"+e[0].charCodeAt(0).toString(16).toUpperCase())),D.has(e.toLowerCase())&&(e=e.split("").map((e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())).join(""));"."===e.charAt(e.length-1)&&(e=e.substr(0,e.length-1)+"%2E")}s.push(e)}return s}static#r(t){const s=(t=e.ParsedURL.ParsedURL.urlWithoutHash(t)).indexOf("?");if(-1===s)return t.split("/");if(0===s)return[t];const n=t.substr(s),r=t.substr(0,t.length-n.length).split("/");return r[r.length-1]+=n,r}fileUrlFromNetworkUrl(t,s){return this.projectInternal?e.ParsedURL.ParsedURL.concatenate(this.projectInternal.fileSystemPath(),"/",this.encodedPathFromUrl(t,s)):i.DevToolsPath.EmptyUrlString}getHeadersUISourceCodeFromUrl(t){const s=this.fileUrlFromNetworkUrl(t,!0),n=e.ParsedURL.ParsedURL.substring(s,0,s.lastIndexOf("/")),i=e.ParsedURL.ParsedURL.concatenate(n,"/",_);return r.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(i)}async getOrCreateHeadersUISourceCodeFromUrl(s){let n=this.getHeadersUISourceCodeFromUrl(s);if(!n&&this.projectInternal){const r=this.encodedPathFromUrl(s,!0),i=e.ParsedURL.ParsedURL.substring(r,0,r.lastIndexOf("/"));n=await this.projectInternal.createFile(i,_,""),t.userMetrics.actionTaken(t.UserMetrics.Action.HeaderOverrideFileCreated)}return n}decodeLocalPathToUrlPath(e){try{return unescape(e)}catch(e){console.error(e)}return e}async#i(e){const t=this.bindings.get(e);if(t){const e=this.#o(t.network);await e.run(this.#a.bind(this,t))}}async#d(e){const t=this.bindings.get(e);t&&await this.#a(t)}#a(e){return this.bindings.delete(e.network),this.bindings.delete(e.fileSystem),se.instance().removeBinding(e)}async#l(e,t){const s=this.#o(e);await s.run((async()=>{const s=this.bindings.get(e);if(s){const{network:n,fileSystem:r}=s;if(e===n&&t===r)return;await this.#d(e),await this.#d(t)}await this.#c(e,t)}))}#o(t){let s=this.#t.get(t);return s||(s=new e.Mutex.Mutex,this.#t.set(t,s)),s}async#c(e,t){const s=new ue(e,t);this.bindings.set(e,s),this.bindings.set(t,s),await se.instance().addBinding(s);const n=this.savingForOverrides.has(e)?e:t,{content:r,isEncoded:i}=await n.requestContent();se.instance().syncContent(n,r||"",i)}onUISourceCodeWorkingCopyCommitted(e){this.saveUISourceCodeForOverrides(e),this.updateInterceptionPatterns()}canSaveUISourceCodeForOverrides(e){return this.activeInternal&&e.project().type()===r.Workspace.projectTypes.Network&&!this.bindings.has(e)&&!this.savingForOverrides.has(e)}async saveUISourceCodeForOverrides(t){if(!this.canSaveUISourceCodeForOverrides(t))return;this.savingForOverrides.add(t);let s=this.encodedPathFromUrl(t.url());const{content:n,isEncoded:r}=await t.requestContent(),i=s.lastIndexOf("/"),o=e.ParsedURL.ParsedURL.substring(s,i+1),a=e.ParsedURL.ParsedURL.encodedPathToRawPathString(o);s=e.ParsedURL.ParsedURL.substr(s,0,i),this.projectInternal&&await this.projectInternal.createFile(s,a,n??"",r),this.fileCreatedForTest(s,a),this.savingForOverrides.delete(t)}fileCreatedForTest(e,t){}patternForFileSystemUISourceCode(e){const t=A.relativePath(e);if(t.length<2)return"";if("longurls"===t[1]&&2!==t.length)return"file:"===t[0]?"file:///*":"http?://"+t[0]+"/*";const s=this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(t.join("/")));return s.startsWith("file:/")?"file:///"+s.substring("file:/".length):"http?://"+s}async onUISourceCodeAdded(e){await this.networkUISourceCodeAdded(e),await this.filesystemUISourceCodeAdded(e)}canHandleNetworkUISourceCode(e){return this.activeInternal&&!e.url().startsWith("snippet://")}async networkUISourceCodeAdded(t){if(t.project().type()!==r.Workspace.projectTypes.Network||!this.canHandleNetworkUISourceCode(t))return;const s=e.ParsedURL.ParsedURL.urlWithoutHash(t.url());this.networkUISourceCodeForEncodedPath.set(this.encodedPathFromUrl(s),t);const n=this.projectInternal.uiSourceCodeForURL(this.fileUrlFromNetworkUrl(s));n&&await this.#l(t,n),this.#h(t)}async filesystemUISourceCodeAdded(t){if(!this.activeInternal||t.project()!==this.projectInternal)return;this.updateInterceptionPatterns();const s=A.relativePath(t),n=this.networkUISourceCodeForEncodedPath.get(e.ParsedURL.ParsedURL.join(s,"/"));n&&await this.#l(n,t)}async#u(e){const t=(await e.requestContent()).content||"[]";let s=[];try{if(s=JSON.parse(t),!s.every($))throw"Type mismatch after parsing"}catch(t){return console.error("Failed to parse",e.url(),"for locally overriding headers."),[]}return s}#p(e){const t=this.decodeLocalPathToUrlPath(e);return{singlyDecodedPath:t,decodedPath:this.decodeLocalPathToUrlPath(t)}}async generateHeaderPatterns(t){const s=await this.#u(t),n=A.relativePath(t),r=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(n,"/"),0,-_.length),{singlyDecodedPath:i,decodedPath:o}=this.#p(r);let a;return a=n.length>2&&"longurls"===n[1]&&s.length?this.#m(o,s,n[0]):o.startsWith("file:/")?this.#g(e.ParsedURL.ParsedURL.substring(o,"file:/".length),s):this.#f(o,s),{...a,path:i}}#f(e,t){const s=new Set,n=[];for(const r of t){s.add("http?://"+e+r.applyTo),""===e&&(s.add("file:///"+r.applyTo),n.push({applyToRegex:new RegExp("^file:///"+G(e+r.applyTo)+"$"),headers:r.headers}));const{head:t,tail:i}=V(r.applyTo);i?(s.add("http?://"+e+t),n.push({applyToRegex:new RegExp(`^${G(e+t)}(${G(i)})?$`),headers:r.headers})):n.push({applyToRegex:new RegExp(`^${G(e+r.applyTo)}$`),headers:r.headers})}return{headerPatterns:s,overridesWithRegex:n}}#g(e,t){const s=new Set,n=[];for(const r of t)s.add("file:///"+e+r.applyTo),n.push({applyToRegex:new RegExp(`^file:/${G(e+r.applyTo)}$`),headers:r.headers});return{headerPatterns:s,overridesWithRegex:n}}#m(t,s,n){const r=new Set;let{decodedPath:i}=this.#p(e.ParsedURL.ParsedURL.concatenate(n,"/*"));const o=t.startsWith("file:/");o&&(t=e.ParsedURL.ParsedURL.substring(t,"file:/".length),i=e.ParsedURL.ParsedURL.substring(i,"file:/".length)),r.add((o?"file:///":"http?://")+i);const a=[];for(const e of s)a.push({applyToRegex:new RegExp(`^${o?"file:/":""}${G(t+e.applyTo)}$`),headers:e.headers});return{headerPatterns:r,overridesWithRegex:a}}async updateInterceptionPatternsForTests(){await this.#S()}updateInterceptionPatterns(){this.updateInterceptionThrottler.schedule(this.#S.bind(this))}async#S(){if(this.#e.clear(),!this.activeInternal||!this.projectInternal)return s.NetworkManager.MultitargetNetworkManager.instance().setInterceptionHandlerForPatterns([],this.interceptionHandlerBound);let e=new Set;for(const t of this.projectInternal.uiSourceCodes()){const s=this.patternForFileSystemUISourceCode(t);if(u.Runtime.experiments.isEnabled(u.Runtime.ExperimentName.HEADER_OVERRIDES)&&t.name()===_){const{headerPatterns:s,path:n,overridesWithRegex:r}=await this.generateHeaderPatterns(t);s.size>0&&(e=new Set([...e,...s]),this.#e.set(n,r))}else e.add(s);const{head:n,tail:r}=V(s);r&&e.add(n)}return s.NetworkManager.MultitargetNetworkManager.instance().setInterceptionHandlerForPatterns(Array.from(e).map((e=>({urlPattern:e,requestStage:"Response"}))),this.interceptionHandlerBound)}async onUISourceCodeRemoved(e){await this.networkUISourceCodeRemoved(e),await this.filesystemUISourceCodeRemoved(e)}async networkUISourceCodeRemoved(e){e.project().type()===r.Workspace.projectTypes.Network&&(await this.#i(e),this.#t.delete(e),this.networkUISourceCodeForEncodedPath.delete(this.encodedPathFromUrl(e.url()))),this.#h(e)}#h(t){if(!this.projectInternal)return;const s=this.projectInternal,n=this.fileUrlFromNetworkUrl(t.url());for(let t=s.fileSystemPath().length;t<n.length;t++){if("/"!==n[t])continue;const r=e.ParsedURL.ParsedURL.concatenate(e.ParsedURL.ParsedURL.substring(n,0,t+1),".headers"),i=s.uiSourceCodeForURL(r);i&&(this.#n.add(i),this.#s.schedule(this.#y.bind(this)))}}#y(){for(const e of this.#n)this.dispatchEventToListeners(z.RequestsForHeaderOverridesFileChanged,e);return this.#n.clear(),Promise.resolve()}hasMatchingNetworkUISourceCodeForHeaderOverridesFile(t){const s=A.relativePath(t),n=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(s,"/"),0,-_.length);for(const e of this.networkUISourceCodeForEncodedPath.keys())if(e.startsWith(n))return!0;return!1}async filesystemUISourceCodeRemoved(e){e.project()===this.projectInternal&&(this.updateInterceptionPatterns(),this.originalResponseContentPromises.delete(e),await this.#i(e))}async setProject(e){e!==this.projectInternal&&(this.projectInternal&&await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeRemoved(e)))),this.projectInternal=e,this.projectInternal&&await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeAdded(e)))),await this.updateActiveProject(),this.dispatchEventToListeners(z.ProjectChanged,this.projectInternal))}async onProjectAdded(e){if(e.type()!==r.Workspace.projectTypes.FileSystem||"overrides"!==A.fileSystemType(e))return;A.fileSystemPath(e.id())&&(this.projectInternal&&this.projectInternal.remove(),await this.setProject(e))}async onProjectRemoved(e){for(const t of e.uiSourceCodes())await this.networkUISourceCodeRemoved(t);e===this.projectInternal&&await this.setProject(null)}mergeHeaders(e,t){const n=new i.MapUtilities.Multimap;for(const{name:e,value:s}of t)"set-cookie"!==e.toLowerCase()&&n.set(e.toLowerCase(),s);const r=new Set(n.keysArray());for(const{name:t,value:s}of e){const e=t.toLowerCase();r.has(e)||"set-cookie"===e||n.set(e,s)}const o=[];for(const e of n.keysArray())for(const t of n.get(e))o.push({name:e,value:t});const a=e.filter((e=>"set-cookie"===e.name.toLowerCase()))||[],d=t.filter((e=>"set-cookie"===e.name.toLowerCase())),l=s.NetworkManager.InterceptedRequest.mergeSetCookieHeaders(a,d);return o.push(...l),o}#P(e,t,s){const n=this.#e.get(e)||[];for(const e of n){const n=this.decodeLocalPathToUrlPath(this.rawPathFromUrl(t));e.applyToRegex.test(n)&&(s=this.mergeHeaders(s,e.headers))}return s}handleHeaderInterception(t){let s=t.responseHeaders||[];const n=this.rawPathFromUrl(t.request.url).split("/");let r=i.DevToolsPath.EmptyEncodedPathString;s=this.#P(r,t.request.url,s);for(const i of n)r=e.ParsedURL.ParsedURL.concatenate(r,i,"/"),s=this.#P(r,t.request.url,s);return s}async interceptionHandler(t){const s=t.request.method;if(!this.activeInternal||"OPTIONS"===s)return;const n=this.projectInternal,r=this.fileUrlFromNetworkUrl(t.request.url),i=n.uiSourceCodeForURL(r);let o=[];if(u.Runtime.experiments.isEnabled(u.Runtime.ExperimentName.HEADER_OVERRIDES)&&(o=this.handleHeaderInterception(t)),!i&&!o.length)return;o.length||(o=t.responseHeaders||[]);let a="";if(t.responseHeaders)for(const e of t.responseHeaders)if("content-type"===e.name.toLowerCase()){a=e.value;break}if(!a){const s=e.ResourceType.resourceTypes[t.resourceType]||e.ResourceType.resourceTypes.Other;a=i?.mimeType()||"",e.ResourceType.ResourceType.fromMimeType(a)!==s&&(a=s.canonicalMimeType())}if(i){this.originalResponseContentPromises.set(i,t.responseBody().then((e=>{if(e.error||null===e.content)return null;if(e.encoded){const t=atob(e.content),s=new Uint8Array(t.length);for(let e=0;e<t.length;++e)s[e]=t.charCodeAt(e);return new TextDecoder("utf-8").decode(s)}return e.content})));const e=i.project(),s=await e.requestFileBlob(i);s&&t.continueRequestWithContent(new Blob([s],{type:a}),!1,o,!0)}else if(t.isRedirect())t.continueRequestWithContent(new Blob([],{type:a}),!0,o,!1);else{const e=await t.responseBody();!e.error&&e.content&&t.continueRequestWithContent(new Blob([e.content],{type:a}),!0,o,!1)}}}const D=new Set(["con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"]),_=".headers";var z;function $(e){return!!(e&&"string"==typeof e.applyTo&&e.headers&&e.headers.length&&Array.isArray(e.headers))&&e.headers.every((e=>"string"==typeof e.name&&"string"==typeof e.value))}function G(e){return i.StringUtilities.escapeCharacters(e,"[]{}()\\.^$+|-,?").replaceAll("*",".*")}function V(e){const t=e.lastIndexOf("/"),s=t>=0?e.slice(t+1):e,n=t>=0?e.slice(0,t+1):"",r=new RegExp("^"+G(s)+"$");return"*"!==s&&(r.test("index.html")||r.test("index.htm")||r.test("index.php"))?{head:n,tail:s}:{head:e}}!function(e){e.ProjectChanged="ProjectChanged",e.RequestsForHeaderOverridesFileChanged="RequestsForHeaderOverridesFileChanged"}(z||(z={}));var J=Object.freeze({__proto__:null,NetworkPersistenceManager:q,HEADERS_FILENAME:_,get Events(){return z},isHeaderOverride:$,escapeRegex:G,extractDirectoryIndex:V});const Y={linkedToSourceMapS:"Linked to source map: {PH1}",linkedToS:"Linked to {PH1}"},K=a.i18n.registerUIStrings("models/persistence/PersistenceUtils.ts",Y),Q=a.i18n.getLocalizedString.bind(void 0,K);class X{static tooltipForUISourceCode(e){const t=se.instance().binding(e);return t?e===t.network?A.tooltipForUISourceCode(t.fileSystem):t.network.contentType().isFromSourceMap()?Q(Y.linkedToSourceMapS,{PH1:i.StringUtilities.trimMiddle(t.network.url(),150)}):Q(Y.linkedToS,{PH1:i.StringUtilities.trimMiddle(t.network.url(),150)}):""}static iconForUISourceCode(e){const t=se.instance().binding(e);if(t){if(!t.fileSystem.url().startsWith("file://"))return null;const e=new c.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},h.Tooltip.Tooltip.install(e,X.tooltipForUISourceCode(t.network)),q.instance().project()===t.fileSystem.project()?e.classList.add("dot","purple"):e.classList.add("dot","green"),e}if(e.project().type()!==r.Workspace.projectTypes.FileSystem||!e.url().startsWith("file://"))return null;if(e.url().endsWith(_)&&q.instance().hasMatchingNetworkUISourceCodeForHeaderOverridesFile(e)){const e=new c.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},e.classList.add("dot","purple"),e}const s=new c.Icon.Icon;return s.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},h.Tooltip.Tooltip.install(s,X.tooltipForUISourceCode(e)),s}}class Z extends e.ObjectWrapper.ObjectWrapper{constructor(e){super(),e.addEventListener(he.BindingCreated,this.bindingChanged,this),e.addEventListener(he.BindingRemoved,this.bindingChanged,this)}bindingChanged(e){const t=e.data;this.dispatchEventToListeners(d.Linkifier.LinkDecorator.Events.LinkIconChanged,t.network)}linkIcon(e){return X.iconForUISourceCode(e)}}var ee=Object.freeze({__proto__:null,PersistenceUtils:X,LinkDecorator:Z});let te;class se extends e.ObjectWrapper.ObjectWrapper{workspace;breakpointManager;filePathPrefixesToBindingCount;subscribedBindingEventListeners;mapping;constructor(e,t){super(),this.workspace=e,this.breakpointManager=t,this.breakpointManager.addUpdateBindingsCallback(this.#F.bind(this)),this.filePathPrefixesToBindingCount=new ne,this.subscribedBindingEventListeners=new i.MapUtilities.Multimap;const s=new Z(this);d.Linkifier.Linkifier.setLinkDecorator(s),this.mapping=new me(this.workspace,this.onStatusAdded.bind(this),this.onStatusRemoved.bind(this))}static instance(e={forceNew:null,workspace:null,breakpointManager:null}){const{forceNew:t,workspace:s,breakpointManager:n}=e;if(!te||t){if(!s||!n)throw new Error("Missing arguments for workspace");te=new se(s,n)}return te}addNetworkInterceptor(e){this.mapping.addNetworkInterceptor(e)}refreshAutomapping(){this.mapping.scheduleRemap()}async addBinding(e){await this.innerAddBinding(e)}async addBindingForTest(e){await this.innerAddBinding(e)}async removeBinding(e){await this.innerRemoveBinding(e)}async removeBindingForTest(e){await this.innerRemoveBinding(e)}#F(e){return e.project().type()!==r.Workspace.projectTypes.Network?Promise.resolve():this.mapping.computeNetworkStatus(e)}async innerAddBinding(e){re.set(e.network,e),re.set(e.fileSystem,e),e.fileSystem.forceLoadOnCheckContent(),e.network.addEventListener(r.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.fileSystem.addEventListener(r.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.network.addEventListener(r.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),e.fileSystem.addEventListener(r.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),this.filePathPrefixesToBindingCount.add(e.fileSystem.url()),await this.moveBreakpoints(e.fileSystem,e.network),console.assert(!e.fileSystem.isDirty()||!e.network.isDirty()),e.fileSystem.isDirty()?this.syncWorkingCopy(e.fileSystem):e.network.isDirty()?this.syncWorkingCopy(e.network):e.network.hasCommits()&&e.network.content()!==e.fileSystem.content()&&(e.network.setWorkingCopy(e.network.content()),this.syncWorkingCopy(e.network)),this.notifyBindingEvent(e.network),this.notifyBindingEvent(e.fileSystem),this.dispatchEventToListeners(he.BindingCreated,e)}async innerRemoveBinding(e){re.get(e.network)===e&&(console.assert(re.get(e.network)===re.get(e.fileSystem),"ERROR: inconsistent binding for networkURL "+e.network.url()),re.delete(e.network),re.delete(e.fileSystem),e.network.removeEventListener(r.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.fileSystem.removeEventListener(r.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.network.removeEventListener(r.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),e.fileSystem.removeEventListener(r.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),this.filePathPrefixesToBindingCount.remove(e.fileSystem.url()),await this.breakpointManager.copyBreakpoints(e.network,e.fileSystem),this.notifyBindingEvent(e.network),this.notifyBindingEvent(e.fileSystem),this.dispatchEventToListeners(he.BindingRemoved,e))}onStatusAdded(e){const t=new ue(e.network,e.fileSystem);return ie.set(e,t),this.innerAddBinding(t)}async onStatusRemoved(e){const t=ie.get(e);await this.innerRemoveBinding(t)}onWorkingCopyChanged(e){const t=e.data;this.syncWorkingCopy(t)}syncWorkingCopy(e){const t=re.get(e);if(!t||ae.has(t))return;const r=t.network===e?t.fileSystem:t.network;if(!e.isDirty())return ae.add(t),r.resetWorkingCopy(),ae.delete(t),void this.contentSyncedForTest();const i=n.NetworkProject.NetworkProject.targetForUISourceCode(t.network);if(i&&i.type()===s.Target.Type.Node){const t=e.workingCopy();r.requestContent().then((()=>{const e=se.rewrapNodeJSContent(r,r.workingCopy(),t);o.call(this,(()=>e))}))}else o.call(this,(()=>e.workingCopy()));function o(e){t&&ae.add(t),r.setWorkingCopyGetter(e),t&&ae.delete(t),this.contentSyncedForTest()}}onWorkingCopyCommitted(e){const t=e.data.uiSourceCode,s=e.data.content;this.syncContent(t,s,Boolean(e.data.encoded))}syncContent(e,t,r){const i=re.get(e);if(!i||oe.has(i))return;const o=i.network===e?i.fileSystem:i.network,a=n.NetworkProject.NetworkProject.targetForUISourceCode(i.network);function d(e){i&&oe.add(i),o.setContent(e,r),i&&oe.delete(i),this.contentSyncedForTest()}a&&a.type()===s.Target.Type.Node?o.requestContent().then((e=>{const s=se.rewrapNodeJSContent(o,e.content||"",t);d.call(this,s)})):d.call(this,t)}static rewrapNodeJSContent(e,t,s){return e.project().type()===r.Workspace.projectTypes.FileSystem?(s.startsWith(de)&&s.endsWith(le)&&(s=s.substring(de.length,s.length-le.length)),t.startsWith(ce)&&(s=ce+s)):(s.startsWith(ce)&&(s=s.substring(ce.length)),t.startsWith(de)&&t.endsWith(le)&&(s=de+s+le)),s}contentSyncedForTest(){}async moveBreakpoints(e,t){const s=this.breakpointManager.breakpointLocationsForUISourceCode(e).map((e=>e.breakpoint));await Promise.all(s.map((async e=>(await e.remove(!1),this.breakpointManager.setBreakpoint(t,e.lineNumber(),e.columnNumber(),e.condition(),e.enabled(),e.isLogpoint(),"RESTORED")))))}hasUnsavedCommittedChanges(e){return!this.workspace.hasResourceContentTrackingExtensions()&&(!e.project().canSetFileContent()&&(!re.has(e)&&Boolean(e.hasCommits())))}binding(e){return re.get(e)||null}subscribeForBindingEvent(e,t){this.subscribedBindingEventListeners.set(e,t)}unsubscribeFromBindingEvent(e,t){this.subscribedBindingEventListeners.delete(e,t)}notifyBindingEvent(e){if(!this.subscribedBindingEventListeners.has(e))return;const t=Array.from(this.subscribedBindingEventListeners.get(e));for(const e of t)e.call(null)}fileSystem(e){const t=this.binding(e);return t?t.fileSystem:null}network(e){const t=this.binding(e);return t?t.network:null}filePathHasBindings(e){return this.filePathPrefixesToBindingCount.hasBindingPrefix(e)}}class ne{prefixCounts;constructor(){this.prefixCounts=new Map}getPlatformCanonicalFilePath(s){return t.Platform.isWin()?e.ParsedURL.ParsedURL.toLowerCase(s):s}add(e){e=this.getPlatformCanonicalFilePath(e);let t="";for(const s of e.split("/")){t+=s+"/";const e=this.prefixCounts.get(t)||0;this.prefixCounts.set(t,e+1)}}remove(e){e=this.getPlatformCanonicalFilePath(e);let t="";for(const s of e.split("/")){t+=s+"/";const e=this.prefixCounts.get(t);1===e?this.prefixCounts.delete(t):void 0!==e&&this.prefixCounts.set(t,e-1)}}hasBindingPrefix(t){return(t=this.getPlatformCanonicalFilePath(t)).endsWith("/")||(t=e.ParsedURL.ParsedURL.concatenate(t,"/")),this.prefixCounts.has(t)}}const re=new WeakMap,ie=new WeakMap,oe=new WeakSet,ae=new WeakSet,de="(function (exports, require, module, __filename, __dirname) { ",le="\n});",ce="#!/usr/bin/env node";var he;!function(e){e.BindingCreated="BindingCreated",e.BindingRemoved="BindingRemoved"}(he||(he={}));class ue{network;fileSystem;constructor(e,t){this.network=e,this.fileSystem=t}}var pe=Object.freeze({__proto__:null,PersistenceImpl:se,NodePrefix:de,NodeSuffix:le,NodeShebang:ce,get Events(){return he},PersistenceBinding:ue});class me{workspace;onStatusAdded;onStatusRemoved;statuses;fileSystemUISourceCodes;sweepThrottler;sourceCodeToProcessingPromiseMap;sourceCodeToAutoMappingStatusMap;sourceCodeToMetadataMap;filesIndex;projectFoldersIndex;activeFoldersIndex;interceptors;constructor(t,s,n){this.workspace=t,this.onStatusAdded=s,this.onStatusRemoved=n,this.statuses=new Set,this.fileSystemUISourceCodes=new Se,this.sweepThrottler=new e.Throttler.Throttler(100),this.sourceCodeToProcessingPromiseMap=new WeakMap,this.sourceCodeToAutoMappingStatusMap=new WeakMap,this.sourceCodeToMetadataMap=new WeakMap,this.filesIndex=new ge,this.projectFoldersIndex=new fe,this.activeFoldersIndex=new fe,this.interceptors=[],this.workspace.addEventListener(r.Workspace.Events.UISourceCodeAdded,(e=>this.onUISourceCodeAdded(e.data))),this.workspace.addEventListener(r.Workspace.Events.UISourceCodeRemoved,(e=>this.onUISourceCodeRemoved(e.data))),this.workspace.addEventListener(r.Workspace.Events.UISourceCodeRenamed,this.onUISourceCodeRenamed,this),this.workspace.addEventListener(r.Workspace.Events.ProjectAdded,(e=>this.onProjectAdded(e.data)),this),this.workspace.addEventListener(r.Workspace.Events.ProjectRemoved,(e=>this.onProjectRemoved(e.data)),this);for(const e of t.projects())this.onProjectAdded(e);for(const e of t.uiSourceCodes())this.onUISourceCodeAdded(e)}addNetworkInterceptor(e){this.interceptors.push(e),this.scheduleRemap()}scheduleRemap(){for(const e of this.statuses.values())this.clearNetworkStatus(e.network);this.scheduleSweep()}scheduleSweep(){this.sweepThrottler.schedule(function(){const e=this.workspace.projectsForType(r.Workspace.projectTypes.Network);for(const t of e)for(const e of t.uiSourceCodes())this.computeNetworkStatus(e);return this.onSweepHappenedForTest(),Promise.resolve()}.bind(this))}onSweepHappenedForTest(){}onProjectRemoved(e){for(const t of e.uiSourceCodes())this.onUISourceCodeRemoved(t);if(e.type()!==r.Workspace.projectTypes.FileSystem)return;const t=e;for(const e of t.initialGitFolders())this.projectFoldersIndex.removeFolder(e);this.projectFoldersIndex.removeFolder(t.fileSystemPath()),this.scheduleRemap()}onProjectAdded(e){if(e.type()!==r.Workspace.projectTypes.FileSystem)return;const t=e;for(const e of t.initialGitFolders())this.projectFoldersIndex.addFolder(e);this.projectFoldersIndex.addFolder(t.fileSystemPath());for(const t of e.uiSourceCodes())this.onUISourceCodeAdded(t);this.scheduleRemap()}onUISourceCodeAdded(e){const t=e.project();if(t.type()===r.Workspace.projectTypes.FileSystem){if(!A.fileSystemSupportsAutomapping(t))return;this.filesIndex.addPath(e.url()),this.fileSystemUISourceCodes.add(e),this.scheduleSweep()}else t.type()===r.Workspace.projectTypes.Network&&this.computeNetworkStatus(e)}onUISourceCodeRemoved(e){if(e.project().type()===r.Workspace.projectTypes.FileSystem){this.filesIndex.removePath(e.url()),this.fileSystemUISourceCodes.delete(e.url());const t=this.sourceCodeToAutoMappingStatusMap.get(e);t&&this.clearNetworkStatus(t.network)}else e.project().type()===r.Workspace.projectTypes.Network&&this.clearNetworkStatus(e)}onUISourceCodeRenamed(e){const{uiSourceCode:t,oldURL:s}=e.data;if(t.project().type()!==r.Workspace.projectTypes.FileSystem)return;this.filesIndex.removePath(s),this.fileSystemUISourceCodes.delete(s);const n=this.sourceCodeToAutoMappingStatusMap.get(t);n&&this.clearNetworkStatus(n.network),this.filesIndex.addPath(t.url()),this.fileSystemUISourceCodes.add(t),this.scheduleSweep()}computeNetworkStatus(e){const t=this.sourceCodeToProcessingPromiseMap.get(e);if(t)return t;if(this.sourceCodeToAutoMappingStatusMap.has(e))return Promise.resolve();if(this.interceptors.some((t=>t(e))))return Promise.resolve();if(e.url().startsWith("wasm://"))return Promise.resolve();const r=this.createBinding(e).then(async function(t){if(!t)return null;if(this.sourceCodeToProcessingPromiseMap.get(e)!==r)return null;if(t.network.contentType().isFromSourceMap()||!t.fileSystem.contentType().isTextType())return t;if(t.fileSystem.isDirty()&&(t.network.isDirty()||t.network.hasCommits()))return null;const[i,o]=await Promise.all([t.fileSystem.requestContent(),t.network.project().requestFileContent(t.network)]);if(null===i.content||null===o)return null;if(this.sourceCodeToProcessingPromiseMap.get(e)!==r)return null;const a=n.NetworkProject.NetworkProject.targetForUISourceCode(t.network);let d=!1;const l=i.content;if(a&&a.type()===s.Target.Type.Node){if(o.content){const e=se.rewrapNodeJSContent(t.fileSystem,l,o.content);d=l===e}}else o.content&&(d=l.trimEnd()===o.content.trimEnd());if(!d)return this.prevalidationFailedForTest(t),null;return t}.bind(this)).then(async function(t){if(this.sourceCodeToProcessingPromiseMap.get(e)!==r)return;if(!t)return this.onBindingFailedForTest(),void this.sourceCodeToProcessingPromiseMap.delete(e);if(this.sourceCodeToAutoMappingStatusMap.has(t.network)||this.sourceCodeToAutoMappingStatusMap.has(t.fileSystem))return void this.sourceCodeToProcessingPromiseMap.delete(e);if(this.statuses.add(t),this.sourceCodeToAutoMappingStatusMap.set(t.network,t),this.sourceCodeToAutoMappingStatusMap.set(t.fileSystem,t),t.exactMatch){const e=this.projectFoldersIndex.closestParentFolder(t.fileSystem.url());!!e&&this.activeFoldersIndex.addFolder(e)&&this.scheduleSweep()}await this.onStatusAdded.call(null,t),this.sourceCodeToProcessingPromiseMap.delete(e)}.bind(this));return this.sourceCodeToProcessingPromiseMap.set(e,r),r}prevalidationFailedForTest(e){}onBindingFailedForTest(){}clearNetworkStatus(e){if(this.sourceCodeToProcessingPromiseMap.has(e))return void this.sourceCodeToProcessingPromiseMap.delete(e);const t=this.sourceCodeToAutoMappingStatusMap.get(e);if(t){if(this.statuses.delete(t),this.sourceCodeToAutoMappingStatusMap.delete(t.network),this.sourceCodeToAutoMappingStatusMap.delete(t.fileSystem),t.exactMatch){const e=this.projectFoldersIndex.closestParentFolder(t.fileSystem.url());e&&this.activeFoldersIndex.removeFolder(e)}this.onStatusRemoved.call(null,t)}}async createBinding(t){const s=t.url();if(s.startsWith("file://")||s.startsWith("snippet://")){const e=this.fileSystemUISourceCodes.get(s);return e?new ye(t,e,!1):null}let n=e.ParsedURL.ParsedURL.extractPath(s);if(null===n)return null;n.endsWith("/")&&(n=e.ParsedURL.ParsedURL.concatenate(n,"index.html"));const r=this.filesIndex.similarFiles(n).map((e=>this.fileSystemUISourceCodes.get(e)));if(!r.length)return null;await Promise.all(r.concat(t).map((async e=>{this.sourceCodeToMetadataMap.set(e,await e.requestMetadata())})));const i=r.filter((e=>Boolean(this.activeFoldersIndex.closestParentFolder(e.url())))),o=this.sourceCodeToMetadataMap.get(t);if(!o||!o.modificationTime&&"number"!=typeof o.contentSize)return 1!==i.length?null:new ye(t,i[0],!1);let a=this.filterWithMetadata(i,o);return a.length||(a=this.filterWithMetadata(r,o)),1!==a.length?null:new ye(t,a[0],!0)}filterWithMetadata(e,t){return e.filter((e=>{const s=this.sourceCodeToMetadataMap.get(e);if(!s)return!1;const n=!t.modificationTime||!s.modificationTime||Math.abs(t.modificationTime.getTime()-s.modificationTime.getTime())<1e3,r=!t.contentSize||s.contentSize===t.contentSize;return n&&r}))}}class ge{#w=e.Trie.Trie.newArrayTrie();addPath(e){const t=e.split("/").reverse();this.#w.add(t)}removePath(e){const t=e.split("/").reverse();this.#w.remove(t)}similarFiles(e){const t=e.split("/").reverse(),s=this.#w.longestPrefix(t,!1);return 0===s.length?[]:this.#w.words(s).map((e=>e.reverse().join("/")))}}class fe{#v=e.Trie.Trie.newArrayTrie();#C=new Map;addFolder(e){const t=this.#I(e).split("/");this.#v.add(t);const s=t.join("/"),n=this.#C.get(s)??0;return this.#C.set(s,n+1),0===n}removeFolder(e){const t=this.#I(e).split("/"),s=t.join("/"),n=this.#C.get(s)??0;return!!n&&(n>1?(this.#C.set(s,n-1),!1):(this.#v.remove(t),this.#C.delete(s),!0))}closestParentFolder(e){const t=e.split("/");return this.#v.longestPrefix(t,!0).join("/")}#I(t){return t.endsWith("/")?e.ParsedURL.ParsedURL.substring(t,0,t.length-1):t}}class Se{sourceCodes;constructor(){this.sourceCodes=new Map}getPlatformCanonicalFileUrl(s){return t.Platform.isWin()?e.ParsedURL.ParsedURL.toLowerCase(s):s}add(e){const t=this.getPlatformCanonicalFileUrl(e.url());this.sourceCodes.set(t,e)}get(e){return e=this.getPlatformCanonicalFileUrl(e),this.sourceCodes.get(e)}delete(e){e=this.getPlatformCanonicalFileUrl(e),this.sourceCodes.delete(e)}}class ye{network;fileSystem;exactMatch;constructor(e,t,s){this.network=e,this.fileSystem=t,this.exactMatch=s}}var Pe=Object.freeze({__proto__:null,Automapping:me,AutomappingStatus:ye});const Fe=new CSSStyleSheet;Fe.replaceSync(".file-system-header{display:flex;flex-direction:row;align-items:center;flex:auto;margin:10px 0}.file-system-header-text{flex:1 0 auto}.add-button{margin-left:10px;align-self:flex-start}.file-system-list{flex:auto}.file-system-list-empty{flex:auto;height:30px;display:flex;align-items:center;justify-content:center;text-align:center}.file-system-list-item{padding:3px 5px;height:30px;display:flex;align-items:center;flex:auto 1 1}.file-system-value{flex:1 1 0}.list-item .file-system-value{white-space:nowrap;text-overflow:ellipsis;user-select:none;overflow:hidden}.file-system-edit-row{flex:none;display:flex;flex-direction:row;margin:6px 5px;align-items:center}.file-system-edit-row input{width:100%;text-align:inherit}\n/*# sourceURL=editFileSystemView.css */\n");const we={excludedFolders:"Excluded folders",add:"Add",none:"None",sViaDevtools:"{PH1} (via .devtools)",folderPath:"Folder path",enterAPath:"Enter a path",enterAUniquePath:"Enter a unique path"},ve=a.i18n.registerUIStrings("models/persistence/EditFileSystemView.ts",we),Ce=a.i18n.getLocalizedString.bind(void 0,ve);class Ie extends h.Widget.VBox{fileSystemPath;excludedFolders;eventListeners;excludedFoldersList;muteUpdate;excludedFolderEditor;constructor(e){super(!0),this.fileSystemPath=e,this.excludedFolders=[],this.eventListeners=[T.instance().addEventListener(M.ExcludedFolderAdded,this.update,this),T.instance().addEventListener(M.ExcludedFolderRemoved,this.update,this)];const t=this.contentElement.createChild("div","file-system-header");t.createChild("div","file-system-header-text").textContent=Ce(we.excludedFolders),t.appendChild(h.UIUtils.createTextButton(Ce(we.add),this.addExcludedFolderButtonClicked.bind(this),"add-button")),this.excludedFoldersList=new h.ListWidget.ListWidget(this),this.excludedFoldersList.element.classList.add("file-system-list");const s=document.createElement("div");s.classList.add("file-system-list-empty"),s.textContent=Ce(we.none),this.excludedFoldersList.setEmptyPlaceholder(s),this.excludedFoldersList.show(this.contentElement),this.update()}dispose(){e.EventTarget.removeEventListeners(this.eventListeners)}getFileSystem(){return T.instance().fileSystem(this.fileSystemPath)}update(){if(!this.muteUpdate){this.excludedFoldersList.clear(),this.excludedFolders=[];for(const e of this.getFileSystem().excludedFolders().values())this.excludedFolders.push(e),this.excludedFoldersList.appendItem(e,!0)}}addExcludedFolderButtonClicked(){this.excludedFoldersList.addNewItem(0,"")}renderItem(e,t){const s=document.createElement("div");s.classList.add("file-system-list-item");const n=t?e:Ce(we.sViaDevtools,{PH1:e}),r=s.createChild("div","file-system-value");return r.textContent=n,h.Tooltip.Tooltip.install(r,n),s}removeItemRequested(e,t){this.getFileSystem().removeExcludedFolder(this.excludedFolders[t])}commitEdit(e,t,s){this.muteUpdate=!0,s||this.getFileSystem().removeExcludedFolder(e),this.getFileSystem().addExcludedFolder(this.normalizePrefix(t.control("pathPrefix").value)),this.muteUpdate=!1,this.update()}beginEdit(e){const t=this.createExcludedFolderEditor();return t.control("pathPrefix").value=e,t}createExcludedFolderEditor(){if(this.excludedFolderEditor)return this.excludedFolderEditor;const e=new h.ListWidget.Editor;this.excludedFolderEditor=e;const t=e.contentElement();t.createChild("div","file-system-edit-row").createChild("div","file-system-value").textContent=Ce(we.folderPath);return t.createChild("div","file-system-edit-row").createChild("div","file-system-value").appendChild(e.createInput("pathPrefix","text","/path/to/folder/",function(e,t,s){const n=this.normalizePrefix(s.value.trim());if(!n)return{valid:!1,errorMessage:Ce(we.enterAPath)};const r=this.getFileSystem().excludedFolders().size;for(let e=0;e<r;++e)if(e!==t&&this.excludedFolders[e]===n)return{valid:!1,errorMessage:Ce(we.enterAUniquePath)};return{valid:!0,errorMessage:void 0}}.bind(this))),e}normalizePrefix(e){return e?e+("/"===e[e.length-1]?"":"/"):""}wasShown(){super.wasShown(),this.excludedFoldersList.registerCSSFiles([Fe]),this.registerCSSFiles([Fe])}}var Ue=Object.freeze({__proto__:null,EditFileSystemView:Ie});const ke={saveAs:"Save as...",saveImage:"Save image",saveForOverrides:"Save for overrides",openInContainingFolder:"Open in containing folder"},Re=a.i18n.registerUIStrings("models/persistence/PersistenceActions.ts",ke),xe=a.i18n.getLocalizedString.bind(void 0,Re);let Le;class be{static instance(e={forceNew:null}){const{forceNew:t}=e;return Le&&!t||(Le=new be),Le}appendApplicableItems(n,i,o){const a=o;a.contentType().isDocumentOrScriptOrStyleSheet()?i.saveSection().appendItem(xe(ke.saveAs),(async function(){a instanceof r.UISourceCode.UISourceCode&&a.commitWorkingCopy();const e=await a.requestContent();let t=e.content||"";e.isEncoded&&(t=window.atob(t));const s=a.contentURL();r.FileManager.FileManager.instance().save(s,t,!0),r.FileManager.FileManager.instance().close(s)})):a instanceof s.Resource.Resource&&a.contentType().isImage()&&i.saveSection().appendItem(xe(ke.saveImage),(async function(){const e=a,t=(await e.requestContent()).content||"",s=document.createElement("a");s.download=e.displayName,s.href="data:"+e.mimeType+";base64,"+t,s.click()}));const d=r.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(a.contentURL());d&&q.instance().canSaveUISourceCodeForOverrides(d)&&i.saveSection().appendItem(xe(ke.saveForOverrides),(()=>{d.commitWorkingCopy(),q.instance().saveUISourceCodeForOverrides(d),e.Revealer.reveal(d)}));const l=d&&se.instance().binding(d),c=l?l.fileSystem.contentURL():a.contentURL();if(c.startsWith("file://")){const s=e.ParsedURL.ParsedURL.urlToRawPathString(c,t.Platform.isWin());i.revealSection().appendItem(xe(ke.openInContainingFolder),(()=>t.InspectorFrontendHost.InspectorFrontendHostInstance.showItemInFolder(s)))}}}var Ee=Object.freeze({__proto__:null,ContextMenuProvider:be});const Te=new CSSStyleSheet;Te.replaceSync('.workspace-settings-tab header{padding:0 0 6px}.workspace-settings-tab header > h1{font-size:18px;font-weight:normal;margin:0;padding-bottom:3px}.workspace-settings-tab .settings-content{overflow-y:auto;overflow-x:hidden;margin:8px 8px 8px 0;padding:0 4px;flex:auto}.workspace-settings-tab .settings-container{width:100%;column-width:288px}.workspace-settings-tab .settings-tab.settings-container{column-width:308px}.workspace-settings-tab .settings-container-wrapper{position:absolute;top:31px;left:0;right:0;bottom:0;overflow:auto;padding-top:9px}.workspace-settings-tab .settings-tab.settings-content{margin:0;padding:0}.workspace-settings-tab .settings-tab p{margin:12px 0}.workspace-settings-tab p.folder-exclude-pattern{display:grid;align-items:center}.workspace-settings-tab p.folder-exclude-pattern > input{width:80%;margin-left:10px}.workspace-settings-tab .settings-tab .file-system-container{border-top:1px solid var(--color-background-elevation-2);padding:19px 0 10px;margin:20px 0}.workspace-settings-tab .settings-tab .file-system-header{display:flex;flex-direction:row;align-items:center}.workspace-settings-tab .settings-tab .file-system-name{font-weight:bold;flex:none;margin-right:10px;font-size:15px;overflow:hidden;text-overflow:ellipsis;max-width:70%}.workspace-settings-tab .settings-tab .file-system-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:auto}.workspace-settings-tab .settings-info-message{background-color:var(--color-background-elevation-1);padding:10px;margin:20px 0}.workspace-settings-tab .settings-tab.settings-content.settings-container{column-width:initial;overflow:hidden;padding-right:10px}.workspace-settings-tab .harmony-input[type="text"]:not(.error-input):not(:invalid){box-shadow:var(--legacy-focus-ring-inactive-shadow)}\n/*# sourceURL=workspaceSettingsTab.css */\n');const Me={workspace:"Workspace",mappingsAreInferredAutomatically:"Mappings are inferred automatically.",addFolder:"Add folder…",folderExcludePattern:"Folder exclude pattern",remove:"Remove"},je=a.i18n.registerUIStrings("models/persistence/WorkspaceSettingsTab.ts",Me),We=a.i18n.getLocalizedString.bind(void 0,je);let Ae;class Be extends h.Widget.VBox{containerElement;fileSystemsListContainer;elementByPath;mappingViewByPath;constructor(){super(),this.element.classList.add("workspace-settings-tab");const e=this.element.createChild("header");h.UIUtils.createTextChild(e.createChild("h1"),We(Me.workspace)),this.containerElement=this.element.createChild("div","settings-container-wrapper").createChild("div","settings-tab settings-content settings-container"),T.instance().addEventListener(M.FileSystemAdded,(e=>this.fileSystemAdded(e.data)),this),T.instance().addEventListener(M.FileSystemRemoved,(e=>this.fileSystemRemoved(e.data)),this);const t=this.createFolderExcludePatternInput();t.classList.add("folder-exclude-pattern"),this.containerElement.appendChild(t);const s=this.containerElement.createChild("div","settings-info-message");h.UIUtils.createTextChild(s,We(Me.mappingsAreInferredAutomatically)),this.fileSystemsListContainer=this.containerElement.createChild("div","");const n=h.UIUtils.createTextButton(We(Me.addFolder),this.addFileSystemClicked.bind(this));this.containerElement.appendChild(n),this.setDefaultFocusedElement(n),this.elementByPath=new Map,this.mappingViewByPath=new Map;const r=T.instance().fileSystems();for(let e=0;e<r.length;++e)this.addItem(r[e])}static instance(e={forceNew:null}){const{forceNew:t}=e;return Ae&&!t||(Ae=new Be),Ae}wasShown(){super.wasShown(),this.registerCSSFiles([Te])}createFolderExcludePatternInput(){const e=document.createElement("p"),t=e.createChild("label");t.textContent=We(Me.folderExcludePattern);const s=h.UIUtils.createInput("","text");h.ARIAUtils.bindLabelToControl(t,s),e.appendChild(s);const n=T.instance().workspaceFolderExcludePatternSetting(),r=h.UIUtils.bindInput(s,n.set.bind(n),(function(e){let t;try{t=new RegExp(e)}catch(e){}return{valid:Boolean(t),errorMessage:void 0}}),!1);return n.addChangeListener((()=>r.call(null,n.get()))),r(n.get()),e}addItem(e){if(!(e instanceof w))return;const t=q.instance().project();if(t&&T.instance().fileSystem(t.fileSystemPath())===e)return;const s=this.renderFileSystem(e);this.elementByPath.set(e.path(),s),this.fileSystemsListContainer.appendChild(s);const n=new Ie(e.path());this.mappingViewByPath.set(e.path(),n),n.element.classList.add("file-system-mapping-view"),n.show(s)}renderFileSystem(e){const t=e.path(),s=t.lastIndexOf("/"),n=t.substr(s+1),r=document.createElement("div");r.classList.add("file-system-container");const i=r.createChild("div","file-system-header"),o=i.createChild("div","file-system-name");o.textContent=n,h.ARIAUtils.markAsHeading(o,2);const a=i.createChild("div","file-system-path");a.textContent=t,h.Tooltip.Tooltip.install(a,t);const d=new h.Toolbar.Toolbar(""),l=new h.Toolbar.ToolbarButton(We(Me.remove),"cross");return l.addEventListener(h.Toolbar.ToolbarButton.Events.Click,this.removeFileSystemClicked.bind(this,e)),d.appendToolbarItem(l),i.appendChild(d.element),r}removeFileSystemClicked(e){T.instance().removeFileSystem(e)}addFileSystemClicked(){T.instance().addFileSystem()}fileSystemAdded(e){this.addItem(e)}fileSystemRemoved(e){const t=this.mappingViewByPath.get(e.path());t&&(t.dispose(),this.mappingViewByPath.delete(e.path()));const s=this.elementByPath.get(e.path());s&&(this.elementByPath.delete(e.path()),s.remove())}}var He=Object.freeze({__proto__:null,WorkspaceSettingsTab:Be});export{Pe as Automapping,Ue as EditFileSystemView,N as FileSystemWorkspaceBinding,R as IsolatedFileSystem,W as IsolatedFileSystemManager,J as NetworkPersistenceManager,pe as Persistence,Ee as PersistenceActions,ee as PersistenceUtils,S as PlatformFileSystem,He as WorkspaceSettingsTab};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/sdk/sdk.js";import*as t from"../bindings/bindings.js";import*as n from"../formatter/formatter.js";import*as r from"../text_utils/text_utils.js";import*as o from"../../core/platform/platform.js";const s=new WeakMap,i=new WeakMap,a=new WeakMap;async function c(e){const t=await e.requestContent();let n=a.get(t);if(void 0===n){const{content:e}=t;n=e?new r.Text.Text(e):null,a.set(t,n)}return n}class u{name;positions;constructor(e,t=[]){this.name=e,this.positions=t}addPosition(e,t){this.positions.push({lineNumber:e,columnNumber:t})}}const l=async function(e){const t=e.startLocation(),o=e.endLocation();if(!t||!o)return null;const s=t.script();if(!s||!s.sourceMapURL||s!==o.script())return null;const i=await c(s);if(!i)return null;const a=new r.TextRange.TextRange(t.lineNumber,t.columnNumber,o.lineNumber,o.columnNumber),u=i.extract(a),l=i.toSourceRange(a).offset,f=await async function(e){const t=[{prefix:"class DummyClass extends DummyBase { constructor",suffix:"}"},{prefix:"async function* __DEVTOOLS_DUMMY__",suffix:""},{prefix:"async ",suffix:""}];for(const{prefix:r,suffix:o}of t){const t=await n.FormatterWorkerPool.formatterWorkerPool().javaScriptScopeTree(r+e+o);if(t)return{prefixLength:r.length,scopeTree:t}}return null}(u);if(!f)return null;const{prefixLength:p,scopeTree:g}=f;return{scopeTree:g,text:i,slide:l-p}},f=async function(e,t){if(!e)return null;const n=t.startLocation(),o=t.endLocation();if(!n||!o)return null;const s=await l(e);if(!s)return null;const{scopeTree:i,text:a,slide:c}=s,f={start:a.offsetFromPosition(n.lineNumber,n.columnNumber)-c,end:a.offsetFromPosition(o.lineNumber,o.columnNumber)-c};if(!h(i,f))return null;let p=i;const g=[];for(;;){let e=!1;for(const t of p.children){if(h(t,f)){g.push(p),p=t,e=!0;break}if(!w(f,t)&&!h(f,t))return console.error("Wrong nesting of scopes"),null}if(!e)break}const m=[],b=new r.TextCursor.TextCursor(a.lineEndings());for(const e of p.variables){if(3===e.kind&&e.offsets.length<=1)continue;const t=new u(e.name);for(const n of e.offsets){const e=n+c;b.resetTo(e),t.addPosition(b.lineNumber(),b.columnNumber())}m.push(t)}const d=[];for(const e of g)for(const t of e.variables){let e=null;for(const n of t.offsets)if(n>=p.start&&n<p.end){e||(e=new u(t.name));const r=n+c;b.resetTo(r),e.addPosition(b.lineNumber(),b.columnNumber())}e&&d.push(e)}return{boundVariables:m,freeVariables:d};function h(e,t){return e.start<=t.start&&e.end>=t.end}function w(e,t){return e.end<=t.start||t.end<=e.start}},p=/^\s*([A-Za-z_$][A-Za-z_$0-9]*)\s*([.;,=]?)\s*$/,g=async e=>{let n=s.get(e);const r=e.callFrame().script,o=r.debuggerModel.sourceMapManager().sourceMapForClient(r);if(!n||n.sourceMap!==o){const t=(async()=>{const t=new Map;let n=null;if(!o)return{variableMapping:t,thisMapping:n};const s=[],a=(e,t)=>{for(const n of e.positions){const e=o.findEntry(n.lineNumber,n.columnNumber);if(e&&e.name)return void t(e.name)}s.push(async function(){if(o)for(const n of e.positions){const s=await i(r,o,e.name,n);if(s)return void t(s)}}())},c=function(){const t=e.callFrame().scopeChain();let n=0;for(;n<t.length&&t[n]!==e;n++);for(;n<t.length;n++){const e=t[n].type();if("local"===e||"closure"===e)break}return n===t.length?null:t[n]}(),u=await f(c,e);if(!u)return{variableMapping:t,thisMapping:n};for(const e of u.boundVariables)a(e,(n=>{"this"!==n&&t.set(e.name,n)}));for(const e of u.freeVariables)a(e,(t=>{"this"===t&&(n=e.name)}));return await Promise.all(s).then(w()),{variableMapping:t,thisMapping:n}})();n={sourceMap:o,mappingPromise:t},s.set(e,{sourceMap:o,mappingPromise:t})}return await n.mappingPromise;async function i(e,n,r,o){const s=n.findEntryRanges(o.lineNumber,o.columnNumber);if(!s)return null;const i=t.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().uiSourceCodeForSourceMapSourceURL(e.debuggerModel,s.sourceURL,e.isContentScript());if(!i)return null;const a=await c(e);if(!a)return null;const u=h(a.extract(s.range));if(!u)return null;const{name:l,punctuation:f}=u;if(l!==r)return null;const g=await c(i);if(!g)return null;const m=h(g.extract(s.sourceRange));if(!m)return null;const{name:b,punctuation:d}=m;return f===d||"comma"===f&&"semicolon"===d?b:null;function h(e){const t=e.match(p);if(!t)return null;const n=t[1];let r=null;switch(t[2]){case".":r="dot";break;case",":r="comma";break;case";":r="semicolon";break;case"=":r="equals";break;case"":r="none";break;default:return console.error(`Name token parsing error: unexpected token "${t[2]}"`),null}return{name:n,punctuation:r}}}},m=async e=>{const t=i.get(e);if(t)return t;const n=e.scopeChain(),r=await Promise.all(n.map(g)),o=new Map;for(const{variableMapping:e}of r)for(const[t,n]of e)n&&!o.has(n)&&o.set(n,t);return i.set(e,o),o};class b extends e.RemoteObject.RemoteObject{scope;object;constructor(e){super(),this.scope=e,this.object=e.object()}customPreview(){return this.object.customPreview()}get objectId(){return this.object.objectId}get type(){return this.object.type}get subtype(){return this.object.subtype}get value(){return this.object.value}get description(){return this.object.description}get hasChildren(){return this.object.hasChildren}get preview(){return this.object.preview}arrayLength(){return this.object.arrayLength()}getOwnProperties(e){return this.object.getOwnProperties(e)}async getAllProperties(t,n){const r=await this.object.getAllProperties(t,n),{variableMapping:o}=await g(this.scope),s=r.properties,i=r.internalProperties,a=[];if(s)for(let t=0;t<s.length;++t){const n=s[t],r=o.get(n.name)||s[t].name;n.value&&a.push(new e.RemoteObject.RemoteObjectProperty(r,n.value,n.enumerable,n.writable,n.isOwn,n.wasThrown,n.symbol,n.synthetic))}return{properties:a,internalProperties:i}}async setPropertyValue(e,t){const{variableMapping:n}=await g(this.scope);let r;r="string"==typeof e?e:e.value;let o=r;for(const e of n.keys())if(n.get(e)===r){o=e;break}return this.object.setPropertyValue(o,t)}async deleteProperty(e){return this.object.deleteProperty(e)}callFunction(e,t){return this.object.callFunction(e,t)}callFunctionJSON(e,t){return this.object.callFunctionJSON(e,t)}release(){this.object.release()}debuggerModel(){return this.object.debuggerModel()}runtimeModel(){return this.object.runtimeModel()}isNode(){return this.object.isNode()}}async function d(e,t,n){const o=e.debuggerModel.sourceMapManager().sourceMapForClient(e);if(!o)return null;const s=o.findEntry(t,n)?.name;if(!s)return null;const i=await c(e);if(!i)return null;const a=new r.TextRange.TextRange(t,n,t,n+1);return"("!==i.extract(a)?null:s}let h=function(){};const w=()=>h;var M=Object.freeze({__proto__:null,IdentifierPositions:u,scopeIdentifiers:f,resolveScopeChain:async function(e){if(!e)return null;const{pluginManager:n}=t.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance();if(n){const t=await n.resolveScopeChain(e);if(t)return t}return e.scopeChain()},allVariablesInCallFrame:m,resolveExpression:async(e,s,i,a,u,l)=>{if("application/wasm"===i.mimeType())return`memories["${s}"] ?? locals["${s}"] ?? tables["${s}"] ?? functions["${s}"] ?? globals["${s}"]`;if(!i.contentType().isFromSourceMap())return"";const f=await m(e);if(f.has(s))return f.get(s);const p=(await t.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().uiLocationToRawLocations(i,a,u)).find((t=>t.debuggerModel===e.debuggerModel));if(!p)return"";const g=p.script();if(!g)return"";const b=g.debuggerModel.sourceMapManager().sourceMapForClient(g);if(!b)return"";const d=await c(g);if(!d)return"";const h=b.reverseMapTextRanges(i.url(),new r.TextRange.TextRange(a,u,a,l));if(1!==h.length)return"";const[w]=h,M=d.extract(w);if(!M)return"";const y=await c(i);if(!y)return"";const j=b.findEntryRanges(w.startLine,w.startColumn),x=0===w.endColumn?w.endLine-1:w.endLine,v=0===w.endColumn?d.lineEndings()[x]:w.endColumn-1,R=b.findEntryRanges(x,v);if(!j||!R)return"";const k=y.extract(new r.TextRange.TextRange(j.sourceRange.startLine,j.sourceRange.startColumn,R.sourceRange.endLine,R.sourceRange.endColumn));return new RegExp(`^[\\s,;]*${o.StringUtilities.escapeForRegExp(s)}`,"g").test(k)?await n.FormatterWorkerPool.formatterWorkerPool().evaluatableJavaScriptSubstring(M):""},resolveThisObject:async e=>{if(!e)return null;const t=e.scopeChain();if(0===t.length)return e.thisObject();const{thisMapping:n}=await g(t[0]);if(!n)return e.thisObject();const r=await e.evaluate({expression:n,objectGroup:"backtrace",includeCommandLineAPI:!1,silent:!0,returnByValue:!1,generatePreview:!0});return"exceptionDetails"in r?!r.exceptionDetails&&r.object?r.object:e.thisObject():null},resolveScopeInObject:function(e){const t=e.startLocation(),n=e.endLocation(),r=t?t.script():null;return"global"!==e.type()&&r&&n&&r.sourceMapURL&&r===n.script()?new b(e):e.object()},RemoteObject:b,resolveDebuggerFrameFunctionName:async function(e){const t=e.localScope()?.startLocation();return t?await d(e.script,t.lineNumber,t.columnNumber):null},resolveProfileFrameFunctionName:async function({scriptId:n,lineNumber:r,columnNumber:o},s){if(!s||void 0===r||void 0===o||void 0===n)return null;const i=s.model(e.DebuggerModel.DebuggerModel),a=i?.scriptForId(String(n));if(!i||!a)return null;const c=t.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance(),u=new e.DebuggerModel.Location(i,n,r,o),l=await(c.pluginManager?.getFunctionInfo(a,u));if(l&&"frames"in l){const e=l.frames.at(-1);if(e?.name)return e.name}return await d(a,r,o)},getScopeResolvedForTest:w,setScopeResolvedForTest:e=>{h=e}});export{M as NamesResolver};
@@ -0,0 +1 @@
1
+ import*as t from"./text_utils.js";self.TextUtils=self.TextUtils||{},TextUtils=TextUtils||{},TextUtils.ContentProvider=t.ContentProvider.ContentProvider,TextUtils.ContentProvider.SearchMatch=t.ContentProvider.SearchMatch,TextUtils.ContentProvider.contentAsDataURL=t.ContentProvider.contentAsDataURL,TextUtils.StaticContentProvider=t.StaticContentProvider.StaticContentProvider,TextUtils.Text=t.Text.Text,TextUtils.TextCursor=t.TextCursor.TextCursor,TextUtils.TextRange=t.TextRange.TextRange,TextUtils.SourceRange=t.TextRange.SourceRange,TextUtils.TextUtils=t.TextUtils.Utils,TextUtils.FilterParser=t.TextUtils.FilterParser,TextUtils.BalancedJSONTokenizer=t.TextUtils.BalancedJSONTokenizer,TextUtils.isMinified=t.TextUtils.isMinified;
@@ -0,0 +1 @@
1
+ import*as t from"../../third_party/codemirror.next/codemirror.next.js";import*as e from"../../core/platform/platform.js";var n=Object.freeze({__proto__:null,createCssTokenizer:function(){return async function(e,n){const i=await t.cssStreamParser(),s=new t.StringStream(e,4,2),r=i.startState();let l=s.pos;for(;!s.eol();){s.start=l;let t=i.token(s,r);"error"===t&&"maybeprop"===r.state&&(t="property");n(s.current(),t),l=s.pos}}}});class i{lineNumber;lineContent;columnNumber;constructor(t,e,n){this.lineNumber=t,this.lineContent=e,this.columnNumber=n}}var s=Object.freeze({__proto__:null,ContentProvider:class{},SearchMatch:i,contentAsDataURL:function(t,e,n,i,s=!0){return null==t||s&&t.length>1048576?null:"data:"+e+(i?";charset="+i:"")+(n?";base64":"")+","+t}});class r{lineEndings;offsetInternal;lineNumberInternal;columnNumberInternal;constructor(t){this.lineEndings=t,this.offsetInternal=0,this.lineNumberInternal=0,this.columnNumberInternal=0}advance(t){for(this.offsetInternal=t;this.lineNumberInternal<this.lineEndings.length&&this.lineEndings[this.lineNumberInternal]<this.offsetInternal;)++this.lineNumberInternal;this.columnNumberInternal=this.lineNumberInternal?this.offsetInternal-this.lineEndings[this.lineNumberInternal-1]-1:this.offsetInternal}offset(){return this.offsetInternal}resetTo(t){this.offsetInternal=t,this.lineNumberInternal=e.ArrayUtilities.lowerBound(this.lineEndings,t,e.ArrayUtilities.DEFAULT_COMPARATOR),this.columnNumberInternal=this.lineNumberInternal?this.offsetInternal-this.lineEndings[this.lineNumberInternal-1]-1:this.offsetInternal}lineNumber(){return this.lineNumberInternal}columnNumber(){return this.columnNumberInternal}}var l=Object.freeze({__proto__:null,TextCursor:r});class o{startLine;startColumn;endLine;endColumn;constructor(t,e,n,i){this.startLine=t,this.startColumn=e,this.endLine=n,this.endColumn=i}static createFromLocation(t,e){return new o(t,e,t,e)}static createUnboundedFromLocation(t,e){return new o(t,e,2147483647,2147483647)}static fromObject(t){return new o(t.startLine,t.startColumn,t.endLine,t.endColumn)}static comparator(t,e){return t.compareTo(e)}static fromEdit(t,n){let i=t.startLine,s=t.startColumn+n.length;const r=e.StringUtilities.findLineEndingIndexes(n);if(r.length>1){i=t.startLine+r.length-1;const e=r.length;s=r[e-1]-r[e-2]-1}return new o(t.startLine,t.startColumn,i,s)}isEmpty(){return this.startLine===this.endLine&&this.startColumn===this.endColumn}immediatelyPrecedes(t){return!!t&&(this.endLine===t.startLine&&this.endColumn===t.startColumn)}immediatelyFollows(t){return!!t&&t.immediatelyPrecedes(this)}follows(t){return t.endLine===this.startLine&&t.endColumn<=this.startColumn||t.endLine<this.startLine}get linesCount(){return this.endLine-this.startLine}collapseToEnd(){return new o(this.endLine,this.endColumn,this.endLine,this.endColumn)}collapseToStart(){return new o(this.startLine,this.startColumn,this.startLine,this.startColumn)}normalize(){return this.startLine>this.endLine||this.startLine===this.endLine&&this.startColumn>this.endColumn?new o(this.endLine,this.endColumn,this.startLine,this.startColumn):this.clone()}clone(){return new o(this.startLine,this.startColumn,this.endLine,this.endColumn)}serializeToObject(){return{startLine:this.startLine,startColumn:this.startColumn,endLine:this.endLine,endColumn:this.endColumn}}compareTo(t){return this.startLine>t.startLine?1:this.startLine<t.startLine?-1:this.startColumn>t.startColumn?1:this.startColumn<t.startColumn?-1:0}compareToPosition(t,e){return t<this.startLine||t===this.startLine&&e<this.startColumn?-1:t>this.endLine||t===this.endLine&&e>this.endColumn?1:0}equal(t){return this.startLine===t.startLine&&this.endLine===t.endLine&&this.startColumn===t.startColumn&&this.endColumn===t.endColumn}relativeTo(t,e){const n=this.clone();return this.startLine===t&&(n.startColumn-=e),this.endLine===t&&(n.endColumn-=e),n.startLine-=t,n.endLine-=t,n}relativeFrom(t,e){const n=this.clone();return 0===this.startLine&&(n.startColumn+=e),0===this.endLine&&(n.endColumn+=e),n.startLine+=t,n.endLine+=t,n}rebaseAfterTextEdit(t,e){console.assert(t.startLine===e.startLine),console.assert(t.startColumn===e.startColumn);const n=this.clone();if(!this.follows(t))return n;const i=e.endLine-t.endLine,s=e.endColumn-t.endColumn;return n.startLine+=i,n.endLine+=i,n.startLine===e.endLine&&(n.startColumn+=s),n.endLine===e.endLine&&(n.endColumn+=s),n}toString(){return JSON.stringify(this)}containsLocation(t,e){return this.startLine===this.endLine?this.startLine===t&&this.startColumn<=e&&e<this.endColumn:this.startLine===t?this.startColumn<=e:this.endLine===t?e<this.endColumn:this.startLine<t&&t<this.endLine}get start(){return{lineNumber:this.startLine,columnNumber:this.startColumn}}get end(){return{lineNumber:this.endLine,columnNumber:this.endColumn}}intersection(t){let{startLine:e,startColumn:n}=this;e<t.startLine?(e=t.startLine,n=t.startColumn):e===t.startLine&&(n=Math.max(n,t.startColumn));let{endLine:i,endColumn:s}=this;return i>t.endLine?(i=t.endLine,s=t.endColumn):i===t.endLine&&(s=Math.min(s,t.endColumn)),e>i||e===i&&n>=s?new o(0,0,0,0):new o(e,n,i,s)}}class a{offset;length;constructor(t,e){this.offset=t,this.length=e}}var u=Object.freeze({__proto__:null,TextRange:o,SourceRange:a});class h{valueInternal;lineEndingsInternal;constructor(t){this.valueInternal=t}lineEndings(){return this.lineEndingsInternal||(this.lineEndingsInternal=e.StringUtilities.findLineEndingIndexes(this.valueInternal)),this.lineEndingsInternal}value(){return this.valueInternal}lineCount(){return this.lineEndings().length}offsetFromPosition(t,e){return(t?this.lineEndings()[t-1]+1:0)+e}positionFromOffset(t){const n=this.lineEndings(),i=e.ArrayUtilities.lowerBound(n,t,e.ArrayUtilities.DEFAULT_COMPARATOR);return{lineNumber:i,columnNumber:t-(i&&n[i-1]+1)}}lineAt(t){const e=this.lineEndings(),n=t>0?e[t-1]+1:0,i=e[t];let s=this.valueInternal.substring(n,i);return s.length>0&&"\r"===s.charAt(s.length-1)&&(s=s.substring(0,s.length-1)),s}toSourceRange(t){const e=this.offsetFromPosition(t.startLine,t.startColumn),n=this.offsetFromPosition(t.endLine,t.endColumn);return new a(e,n-e)}toTextRange(t){const e=new r(this.lineEndings()),n=o.createFromLocation(0,0);return e.resetTo(t.offset),n.startLine=e.lineNumber(),n.startColumn=e.columnNumber(),e.advance(t.offset+t.length),n.endLine=e.lineNumber(),n.endColumn=e.columnNumber(),n}replaceRange(t,e){const n=this.toSourceRange(t);return this.valueInternal.substring(0,n.offset)+e+this.valueInternal.substring(n.offset+n.length)}extract(t){const e=this.toSourceRange(t);return this.valueInternal.substr(e.offset,e.length)}}var c=Object.freeze({__proto__:null,Text:h});const d={get _keyValueFilterRegex(){return/(?:^|\s)(\-)?([\w\-]+):([^\s]+)/},get _regexFilterRegex(){return/(?:^|\s)(\-)?\/([^\s]+)\//},get _textFilterRegex(){return/(?:^|\s)(\-)?([^\s]+)/},get _SpaceCharRegex(){return/\s/},isSpaceChar:function(t){return d._SpaceCharRegex.test(t)},lineIndent:function(t){let e=0;for(;e<t.length&&d.isSpaceChar(t.charAt(e));)++e;return t.substr(0,e)},splitStringByRegexes(t,e){const n=[],i=[];for(let t=0;t<e.length;t++){const n=e[t];n.global?i.push(n):i.push(new RegExp(n.source,n.flags?n.flags+"g":"g"))}return function t(e,s,r){if(s>=i.length)return void n.push({value:e,position:r,regexIndex:-1,captureGroups:[]});const l=i[s];let o,a=0;l.lastIndex=0;for(;null!==(o=l.exec(e));){const i=e.substring(a,o.index);i&&t(i,s+1,r+a);const l=o[0];n.push({value:l,position:r+o.index,regexIndex:s,captureGroups:o.slice(1)}),a=o.index+l.length}const u=e.substring(a);u&&t(u,s+1,r+a)}(t,0,0),n}};const m=function(t,n,s,r){const l=e.StringUtilities.createSearchRegex(n,s,r),o=new h(t),a=[];for(let t=0;t<o.lineCount();++t){const e=o.lineAt(t);l.lastIndex=0;const n=l.exec(e);n&&a.push(new i(t,e,n.index))}return a};var f=Object.freeze({__proto__:null,Utils:d,FilterParser:class{keys;constructor(t){this.keys=t}static cloneFilter(t){return{key:t.key,text:t.text,regex:t.regex,negative:t.negative}}parse(t){const e=d.splitStringByRegexes(t,[d._keyValueFilterRegex,d._regexFilterRegex,d._textFilterRegex]),n=[];for(const{regexIndex:t,captureGroups:i}of e)if(-1!==t)if(0===t){const t=i[0],e=i[1],s=i[2];-1!==this.keys.indexOf(e)?n.push({key:e,regex:void 0,text:s,negative:Boolean(t)}):n.push({key:void 0,regex:void 0,text:`${e}:${s}`,negative:Boolean(t)})}else if(1===t){const t=i[0],e=i[1];try{n.push({key:void 0,regex:new RegExp(e,"i"),text:void 0,negative:Boolean(t)})}catch(i){n.push({key:void 0,regex:void 0,text:`/${e}/`,negative:Boolean(t)})}}else if(2===t){const t=i[0],e=i[1];n.push({key:void 0,regex:void 0,text:e,negative:Boolean(t)})}return n}},BalancedJSONTokenizer:class{callback;index;balance;buffer;findMultiple;closingDoubleQuoteRegex;lastBalancedIndex;constructor(t,e){this.callback=t,this.index=0,this.balance=0,this.buffer="",this.findMultiple=e||!1,this.closingDoubleQuoteRegex=/[^\\](?:\\\\)*"/g}write(t){this.buffer+=t;const e=this.buffer.length,n=this.buffer;let i;for(i=this.index;i<e;++i){const t=n[i];if('"'===t){if(this.closingDoubleQuoteRegex.lastIndex=i,!this.closingDoubleQuoteRegex.test(n))break;i=this.closingDoubleQuoteRegex.lastIndex-1}else if("{"===t)++this.balance;else if("}"===t){if(--this.balance,this.balance<0)return this.reportBalanced(),!1;if(!this.balance&&(this.lastBalancedIndex=i+1,!this.findMultiple))break}else if("]"===t&&!this.balance)return this.reportBalanced(),!1}return this.index=i,this.reportBalanced(),!0}reportBalanced(){this.lastBalancedIndex&&(this.callback(this.buffer.slice(0,this.lastBalancedIndex)),this.buffer=this.buffer.slice(this.lastBalancedIndex),this.index-=this.lastBalancedIndex,this.lastBalancedIndex=0)}remainder(){return this.buffer}},isMinified:function(t){let e=0;for(let n=0;n<t.length;++e){let e=t.indexOf("\n",n);e<0&&(e=t.length),n=e+1}return(t.length-e)/e>=80},performSearchInContent:m});class g{contentURLInternal;contentTypeInternal;lazyContent;constructor(t,e,n){this.contentURLInternal=t,this.contentTypeInternal=e,this.lazyContent=n}static fromString(t,e,n){return new g(t,e,(()=>Promise.resolve({content:n,isEncoded:!1})))}contentURL(){return this.contentURLInternal}contentType(){return this.contentTypeInternal}requestContent(){return this.lazyContent()}async searchInContent(t,e,n){const{content:i}=await this.lazyContent();return i?m(i,t,e,n):[]}}var L=Object.freeze({__proto__:null,StaticContentProvider:g});export{n as CodeMirrorUtils,s as ContentProvider,L as StaticContentProvider,c as Text,l as TextCursor,u as TextRange,f as TextUtils};
@@ -0,0 +1 @@
1
+ import*as e from"./timeline_model.js";self.TimelineModel=self.TimelineModel||{},TimelineModel=TimelineModel||{},TimelineModel.TimelineFrameModel=e.TimelineFrameModel.TimelineFrameModel,TimelineModel.TracingFrameLayerTree=e.TimelineFrameModel.TracingFrameLayerTree,TimelineModel.TimelineFrame=e.TimelineFrameModel.TimelineFrame,TimelineModel.LayerPaintEvent=e.TimelineFrameModel.LayerPaintEvent,TimelineModel.PendingFrame=e.TimelineFrameModel.PendingFrame,TimelineModel.TimelineJSProfileProcessor=e.TimelineJSProfile.TimelineJSProfileProcessor,TimelineModel.TimelineModel=e.TimelineModel.TimelineModelImpl,TimelineModel.TimelineModel.Track=e.TimelineModel.Track,TimelineModel.TimelineModel.TrackType=e.TimelineModel.TrackType,TimelineModel.TimelineModel.RecordType=e.TimelineModel.RecordType,TimelineModel.TimelineModel.PageFrame=e.TimelineModel.PageFrame,TimelineModel.TimelineModel.NetworkRequest=e.TimelineModel.NetworkRequest,TimelineModel.InvalidationTrackingEvent=e.TimelineModel.InvalidationTrackingEvent,TimelineModel.InvalidationTracker=e.TimelineModel.InvalidationTracker,TimelineModel.TimelineAsyncEventTracker=e.TimelineModel.TimelineAsyncEventTracker,TimelineModel.TimelineData=e.TimelineModel.EventOnTimelineData,TimelineModel.TimelineModelFilter=e.TimelineModelFilter.TimelineModelFilter,TimelineModel.TimelineVisibleEventsFilter=e.TimelineModelFilter.TimelineVisibleEventsFilter,TimelineModel.TimelineInvisibleEventsFilter=e.TimelineModelFilter.TimelineInvisibleEventsFilter,TimelineModel.ExclusiveNameFilter=e.TimelineModelFilter.ExclusiveNameFilter,TimelineModel.TimelineProfileTree={},TimelineModel.TimelineProfileTree.Node=e.TimelineProfileTree.Node,TimelineModel.TimelineProfileTree.TopDownNode=e.TimelineProfileTree.TopDownNode,TimelineModel.TimelineProfileTree.TopDownRootNode=e.TimelineProfileTree.TopDownRootNode,TimelineModel.TimelineProfileTree.BottomUpRootNode=e.TimelineProfileTree.BottomUpRootNode,TimelineModel.TimelineProfileTree.GroupNode=e.TimelineProfileTree.GroupNode,TimelineModel.TimelineProfileTree.BottomUpNode=e.TimelineProfileTree.BottomUpNode,TimelineModel.TimelineProfileTree.eventURL=e.TimelineProfileTree.eventURL,TimelineModel.TimelineProfileTree.eventStackFrame=e.TimelineProfileTree.eventStackFrame,TimelineModel.TracingLayerTree=e.TracingLayerTree.TracingLayerTree,TimelineModel.TracingLayer=e.TracingLayerTree.TracingLayer;
@@ -0,0 +1 @@
1
+ import*as e from"../../core/sdk/sdk.js";import*as t from"../../core/common/common.js";import*as r from"../../core/i18n/i18n.js";import*as a from"../../core/platform/platform.js";import*as n from"../../core/root/root.js";import*as i from"../trace/trace.js";const s={threadS:"Thread {PH1}"},o=r.i18n.registerUIStrings("models/timeline_model/TimelineJSProfile.ts",s),l=r.i18n.getLocalizedString.bind(void 0,o);class d{static generateConstructedEventsFromCpuProfileDataModel(t,r){const a=t.samples||[],n=t.timestamps,i=[],s=new Map;let o=t.root,l=[];for(let d=0;d<a.length;++d){const c=t.nodeByIndex(d);if(!c){console.error(`Node with unknown id ${a[d]} at index ${d}`);continue}let h;if(c===t.gcNode)h=o===t.gcNode?l:[c,...l];else if(h=s.get(c),!h){h=new Array(c.depth+1),s.set(c,h);let e=c;for(let t=0;e.parent;e=e.parent)h[t++]=e}const m=c===t.idleNode?g.JSIdleSample:c===t.programNode||c===t.gcNode?g.JSSystemSample:g.JSSample,u=new e.TracingModel.ConstructedEvent(e.TracingModel.DevToolsTimelineEventCategory,m,"I",n[d],r);u.args.data={stackTrace:h},i.push(u),o=c,l=h}return i}static isJSSampleEvent(e){return e.name===g.JSSample||e.name===g.JSSystemSample||e.name===g.JSIdleSample}static generateJSFrameEvents(t,r){const a=[],n=[],i=[];let s=0,o=!1;const{showAllEvents:l,showRuntimeCallStats:c,showNativeFunctions:h}=r;function m(e,t){if(i.length){const r=i.at(-1);r&&e<r&&(console.error(`Child stack is shallower (${e}) than the parent stack (${r}) at ${t}`),e=r)}n.length<e&&(console.error(`Trying to truncate higher than the current stack size at ${t}`),e=n.length);for(let e=0;e<n.length;++e)n[e].setEndTime(t);n.length=e}function u(t){const r=d.isJSSampleEvent(t)?t.args.data.stackTrace.slice().reverse():n.map((e=>e.args.data));!function(e){if(l)return;let t=null,r=0;for(let n=0;n<e.length;++n){const i=e[n],s=i.url,o=s&&s.startsWith("native ");if(!h&&o)continue;const l=d.isNativeRuntimeFrame(i);if(l&&(a=i.functionName,!c||!Boolean(d.nativeGroup(a))))continue;const m=l?d.nativeGroup(i.functionName):null;t&&t===m||(t=m,e[r++]=i)}var a;e.length=r}(r);const s=t.endTime||t.startTime,o=Math.min(r.length,n.length);let u;for(u=i.at(-1)||0;u<o;++u){const e=r[u],t=n[u].args.data;if(T=t,(p=e).scriptId!==T.scriptId||p.functionName!==T.functionName||p.lineNumber!==T.lineNumber)break;n[u].setEndTime(Math.max(n[u].endTime,s))}var p,T;for(m(u,t.startTime);u<r.length;++u){const i=r[u];let o=g.JSFrame;switch(t.name){case g.JSIdleSample:o=g.JSIdleFrame;break;case g.JSSystemSample:o=g.JSSystemFrame}const l=new e.TracingModel.ConstructedEvent(e.TracingModel.DevToolsTimelineEventCategory,o,"X",t.startTime,t.thread);l.ordinal=t.ordinal,l.addArgs({data:i}),l.setEndTime(s),n.push(l),a.push(l)}}const T=t.find(e.TracingModel.TracingModel.isTopLevelEvent),v=T?T.startTime:0;return p.forEachEvent(t,(function(t){e.TracingModel.eventIsFromNewEngine(t)||(o&&(m(i.pop(),t.startTime),o=!1),t.ordinal=++s,u(t),i.push(n.length))}),(function(t){e.TracingModel.eventIsFromNewEngine(t)||m(i.pop(),t.endTime)}),(function(t,r){if(!e.TracingModel.eventIsFromNewEngine(t)&&!e.TracingModel.eventIsFromNewEngine(r))if(t.ordinal=++s,r&&function(e){switch(e.name){case g.RunMicrotasks:case g.FunctionCall:case g.EvaluateScript:case g.EvaluateModule:case g.EventDispatch:case g.V8Execute:return!0}return!(!e.name.startsWith("v8")&&!e.name.startsWith("V8"))}(r)||o)u(t);else if(d.isJSSampleEvent(t)&&t.args?.data?.stackTrace?.length&&0===n.length){o=!0;const e=n.length;u(t),i.push(e)}}),v),a}static isNativeRuntimeFrame(e){return"native V8Runtime"===e.url}static nativeGroup(e){return e.startsWith("Parse")?d.NativeGroups.Parse:e.startsWith("Compile")||e.startsWith("Recompile")?d.NativeGroups.Compile:null}static createFakeTraceFromCpuProfile(t,r,a,n){const i=[];return a&&o("TracingStartedInPage",{data:{sessionId:"1"}},0,0,"M"),n||(n=l(s.threadS,{PH1:r})),o(e.TracingModel.MetadataEvent.ThreadName,{name:n},0,0,"M","__metadata"),t?(o(g.JSRoot,{},t.startTime,t.endTime-t.startTime,"X","toplevel"),o("CpuProfile",{data:{cpuProfile:t}},t.endTime,0,"I"),i):i;function o(e,t,a,n,s,o){const l={cat:o||"disabled-by-default-devtools.timeline",name:e,ph:s||"X",pid:1,tid:r,ts:a,args:t};return n&&(l.dur=n),i.push(l),l}}}!function(e){let t;!function(e){e.Compile="Compile",e.Parse="Parse"}(t=e.NativeGroups||(e.NativeGroups={}))}(d||(d={}));var c=Object.freeze({__proto__:null,get TimelineJSProfileProcessor(){return d}});const h={threadS:"Thread {PH1}",workerS:"`Worker` — {PH1}",dedicatedWorker:"Dedicated `Worker`",workerSS:"`Worker`: {PH1} — {PH2}",bidderWorkletS:"Bidder Worklet — {PH1}",sellerWorkletS:"Seller Worklet — {PH1}",unknownWorkletS:"Auction Worklet — {PH1}",bidderWorklet:"Bidder Worklet",sellerWorklet:"Seller Worklet",unknownWorklet:"Auction Worklet",workletService:"Auction Worklet Service",workletServiceS:"Auction Worklet Service — {PH1}"},m=r.i18n.registerUIStrings("models/timeline_model/TimelineModel.ts",h),u=r.i18n.getLocalizedString.bind(void 0,m);class p{isGenericTraceInternal;tracksInternal;namedTracks;inspectedTargetEventsInternal;timeMarkerEventsInternal;sessionId;mainFrameNodeId;pageFrames;auctionWorklets;cpuProfilesInternal;workerIdByThread;requestsFromBrowser;mainFrame;minimumRecordTimeInternal;maximumRecordTimeInternal;totalBlockingTimeInternal;estimatedTotalBlockingTime;asyncEventTracker;invalidationTracker;layoutInvalidate;lastScheduleStyleRecalculation;paintImageEventByPixelRefId;lastPaintForLayer;lastRecalculateStylesEvent;currentScriptEvent;eventStack;browserFrameTracking;persistentIds;legacyCurrentPage;currentTaskLayoutAndRecalcEvents;tracingModelInternal;mainFrameLayerTreeId;#e=!1;constructor(){this.minimumRecordTimeInternal=0,this.maximumRecordTimeInternal=0,this.totalBlockingTimeInternal=0,this.estimatedTotalBlockingTime=0,this.reset(),this.resetProcessingState(),this.currentTaskLayoutAndRecalcEvents=[],this.tracingModelInternal=null}static forEachEvent(t,r,a,n,s,o,l,d=!0){s=s||0,o=o||1/0;const c=[];for(let h=p.topLevelEventEndingAfter(t,s);h<t.length;++h){const m=t[h],{endTime:u,startTime:p,duration:g}=e.TracingModel.timesForEventInMilliseconds(m),T=e.TracingModel.phaseForEvent(m);if((u||p)<s)continue;if(p>=o)break;if(d&&i.Types.TraceEvents.isAsyncPhase(T)||i.Types.TraceEvents.isFlowPhase(T))continue;let v=c[c.length-1],f=v&&e.TracingModel.timesForEventInMilliseconds(v).endTime;for(;v&&void 0!==f&&f<=p;)c.pop(),a(v),v=c[c.length-1],f=v&&e.TracingModel.timesForEventInMilliseconds(v).endTime;l&&!l(m)||(g?(r(m),c.push(m)):n&&n(m,c[c.length-1]||null))}for(;c.length;){const e=c.pop();e&&a(e)}}static topLevelEventEndingAfter(t,r){let n=a.ArrayUtilities.upperBound(t,r,((t,r)=>t-e.TracingModel.timesForEventInMilliseconds(r).startTime))-1;for(;n>0&&!e.TracingModel.TracingModel.isTopLevelEvent(t[n]);)n--;return Math.max(n,0)}mainFrameID(){return this.mainFrame.frameId}isMarkerEvent(e){switch(e.name){case g.TimeStamp:return!0;case g.MarkFirstPaint:case g.MarkFCP:return Boolean(this.mainFrame)&&e.args.frame===this.mainFrame.frameId&&Boolean(e.args.data);case g.MarkDOMContent:case g.MarkLoad:case g.MarkLCPCandidate:case g.MarkLCPInvalidate:return Boolean(e.args.data.isOutermostMainFrame??e.args.data.isMainFrame);default:return!1}}isInteractiveTimeEvent(e){return e.name===g.InteractiveTime}isLayoutShiftEvent(e){return e.name===g.LayoutShift}isParseHTMLEvent(e){return e.name===g.ParseHTML}static isJsFrameEvent(e){return e.name===g.JSFrame||e.name===g.JSIdleFrame||e.name===g.JSSystemFrame}static globalEventId(e,t){const r=e.args.data||e.args.beginData,a=r&&r[t];return a?`${e.thread.process().id()}.${a}`:""}static eventFrameId(e){const t=e.args.data||e.args.beginData;return t&&t.frame||null}cpuProfiles(){return this.cpuProfilesInternal}totalBlockingTime(){return-1===this.totalBlockingTimeInternal?{time:this.estimatedTotalBlockingTime,estimated:!0}:{time:this.totalBlockingTimeInternal,estimated:!1}}targetByEvent(t){let r;if(t instanceof e.TracingModel.Event)r=t.thread;else{const e=this.tracingModelInternal?.getProcessById(t.pid);r=e?.threadById(t.tid)}if(!r)return null;const a=this.workerIdByThread.get(r),n=e.TargetManager.TargetManager.instance().primaryPageTarget();return a?e.TargetManager.TargetManager.instance().targetById(a):n}navStartTimes(){return this.tracingModelInternal?this.tracingModelInternal.navStartTimes():new Map}isFreshRecording(){return this.#e}setEvents(t,r=!1){this.#e=r,this.reset(),this.resetProcessingState(),this.tracingModelInternal=t,this.minimumRecordTimeInternal=t.minimumRecordTime(),this.maximumRecordTimeInternal=t.maximumRecordTime();const a=[];for(const e of t.sortedProcesses())if("Renderer"===e.name())for(const t of e.sortedThreads()){const e=t.removeEventsByName(g.LayoutShift);a.push(...e)}if(this.processSyncBrowserEvents(t),this.browserFrameTracking)this.processThreadsForBrowserFrames(t);else{const e=this.processMetadataEvents(t);this.isGenericTraceInternal=!e,e?this.processMetadataAndThreads(t,e):this.processGenericTrace(t)}this.inspectedTargetEventsInternal.sort(e.TracingModel.Event.compareStartTime),this.processAsyncBrowserEvents(t),this.resetProcessingState()}processGenericTrace(t){let r=e.TracingModel.TracingModel.browserMainThread(t);!r&&t.sortedProcesses().length&&(r=t.sortedProcesses()[0].sortedThreads()[0]);for(const e of t.sortedProcesses())for(const a of e.sortedThreads())this.processThreadEvents(t,a,a===r,!1,!0,0,null)}processMetadataAndThreads(e,t){let r=0;for(let n=0,i=t.page.length;n<i;n++){const s=t.page[n],o=s.thread.process(),l=n+1<i?t.page[n+1].startTime:1/0;if(r!==l){this.legacyCurrentPage=s.args.data&&s.args.data.page;for(const r of o.sortedThreads()){let n=null;if(r.name()===p.WorkerThreadName||r.name()===p.WorkerThreadNameLegacy){const e=t.workers.find((e=>{if(e.args.data.workerThreadId!==r.id())return!1;if(e.args.data.sessionId===this.sessionId)return!0;const t=p.eventFrameId(e);return!!t&&Boolean(this.pageFrames.get(t))}));if(!e)continue;const i=e.args.data.workerId;i&&this.workerIdByThread.set(r,i),n=e.args.data.url||a.DevToolsPath.EmptyUrlString}this.processThreadEvents(e,r,r===s.thread,Boolean(n),!0,0,n)}r=l}}}processThreadsForBrowserFrames(e){const t=new Map;for(const e of this.pageFrames.values())for(let r=0;r<e.processes.length;r++){const a=e.processes[r].processId;let n=t.get(a);n||(n=[],t.set(a,n));const i=r===e.processes.length-1?e.deletedTime||1/0:e.processes[r+1].time;n.push({from:e.processes[r].time,to:i,main:!e.parent,url:e.processes[r].url,workletType:0})}for(const e of this.auctionWorklets.values()){const r=e.processId;let n=t.get(r);n||(n=[],t.set(r,n)),n.push({from:e.startTime,to:e.endTime,main:!1,workletType:e.workletType,url:e.host?"https://"+e.host:a.DevToolsPath.EmptyUrlString})}const r=e.devToolsMetadataEvents();for(const n of e.sortedProcesses()){const i=t.get(n.id());if(!i)continue;i.sort(((e,t)=>e.from-t.from||e.to-t.to));let s=null,o=null,l=!1,d=!0,c=!1,h=0;for(const e of i)e.main&&(l=!0),e.url&&(e.main&&(o=e.url),s=e.url),0===e.workletType?d=!1:(!1===c?c=e.url:c!==e.url&&(c=!0),0===h?h=e.workletType:h!==e.workletType&&(h=3));for(const t of n.sortedThreads())if(t.name()===p.RendererMainThreadName)this.processThreadEvents(e,t,!0,!1,l,0,l?o:s);else if(t.name()===p.WorkerThreadName||t.name()===p.WorkerThreadNameLegacy){const i=r.find((e=>{if(e.name!==p.DevToolsMetadataEvent.TracingSessionIdForWorker)return!1;if(e.thread.process()!==n)return!1;if(e.args.data.workerThreadId!==t.id())return!1;const r=p.eventFrameId(e);return!!r&&Boolean(this.pageFrames.get(r))}));if(!i)continue;this.workerIdByThread.set(t,i.args.data.workerId||""),this.processThreadEvents(e,t,!1,!0,!1,0,i.args.data.url||a.DevToolsPath.EmptyUrlString)}else{let r=null,a=0;if(t.name()===p.AuctionWorkletThreadName||t.name().endsWith(p.UtilityMainThreadNameSuffix))"boolean"!=typeof c&&(r=c),a=h;else if(d)continue;this.processThreadEvents(e,t,!1,!1,!1,a,r)}}}processMetadataEvents(r){const a=r.devToolsMetadataEvents(),n=[],i=[];for(const e of a)if(e.name===p.DevToolsMetadataEvent.TracingStartedInPage){n.push(e),e.args.data&&e.args.data.persistentIds&&(this.persistentIds=!0);(e.args.data&&e.args.data.frames||[]).forEach((t=>this.addPageFrame(e,t))),this.mainFrame=this.rootFrames()[0]}else e.name===p.DevToolsMetadataEvent.TracingSessionIdForWorker?i.push(e):e.name===p.DevToolsMetadataEvent.TracingStartedInBrowser&&(console.assert(!this.mainFrameNodeId,"Multiple sessions in trace"),this.mainFrameNodeId=e.args.frameTreeNodeId);if(!n.length)return null;const s=n[0].args.sessionId||n[0].args.data.sessionId;this.sessionId=s;const o=new Set;const l={page:n.filter((function(e){let t=e.args;t.data&&(t=t.data);const r=t.sessionId;return r===s||(o.add(r),!1)})).sort(e.TracingModel.Event.compareStartTime),workers:i.sort(e.TracingModel.Event.compareStartTime)};return o.size&&t.Console.Console.instance().error("Timeline recording was started in more than one page simultaneously. Session id mismatch: "+this.sessionId+" and "+[...o]+"."),l}processSyncBrowserEvents(t){const r=e.TracingModel.TracingModel.browserMainThread(t);r&&r.events().forEach(this.processBrowserEvent,this)}processAsyncBrowserEvents(t){const r=e.TracingModel.TracingModel.browserMainThread(t);r&&this.processAsyncEvents(r)}resetProcessingState(){this.asyncEventTracker=new F,this.invalidationTracker=new k,this.layoutInvalidate={},this.lastScheduleStyleRecalculation={},this.paintImageEventByPixelRefId={},this.lastPaintForLayer={},this.lastRecalculateStylesEvent=null,this.currentScriptEvent=null,this.eventStack=[],this.browserFrameTracking=!1,this.persistentIds=!1,this.legacyCurrentPage=null}extractCpuProfileDataModel(r,a){const n=a.events();let i,s=null,o=n.at(-1);if(o&&o.name===g.CpuProfile){const e=o.args.data;i=e&&e.cpuProfile,s=this.targetByEvent(o)}if(!i){if(o=n.find((e=>e.name===g.Profile)),!o)return null;s=this.targetByEvent(o);const e=r.profileGroup(o);if(!e)return t.Console.Console.instance().error("Invalid CPU profile format."),null;i={startTime:1e3*o.startTime,endTime:0,nodes:[],samples:[],timeDeltas:[],lines:[]};for(const r of e.children){const e=r.args.data;"startTime"in e&&(i.startTime=1e3*r.startTime),"endTime"in e&&(i.endTime=1e3*r.startTime);const a=e.cpuProfile||{},n=a.samples||[],s=e.lines||Array(n.length).fill(0);if(i.nodes.push(...a.nodes||[]),i.lines.push(...s),i.samples&&i.samples.push(...n),i.timeDeltas&&i.timeDeltas.push(...e.timeDeltas||[]),i.samples&&i.timeDeltas&&i.samples.length!==i.timeDeltas.length)return t.Console.Console.instance().error("Failed to parse CPU profile."),null}if(!i.endTime&&i.timeDeltas){const e=i.timeDeltas;i.endTime=e.reduce(((e,t)=>e+t),i.startTime)}}try{const t=i,r=new e.CPUProfileDataModel.CPUProfileDataModel(t,s);return this.cpuProfilesInternal.push(r),r}catch(e){t.Console.Console.instance().error("Failed to parse CPU profile.")}return null}injectJSFrameEvents(r,i){const s=this.extractCpuProfileDataModel(r,i);let o=i.events();const l=s?d.generateConstructedEventsFromCpuProfileDataModel(s,i):null;if(l&&l.length&&(o=a.ArrayUtilities.mergeOrdered(o,l,e.TracingModel.Event.orderedCompareStartTime)),l||o.some((e=>e.name===g.JSSample||e.name===g.JSSystemSample||e.name===g.JSIdleSample))){const r=d.generateJSFrameEvents(o,{showAllEvents:n.Runtime.experiments.isEnabled("timelineShowAllEvents"),showRuntimeCallStats:n.Runtime.experiments.isEnabled("timelineV8RuntimeCallStats"),showNativeFunctions:t.Settings.Settings.instance().moduleSetting("showNativeFunctionsInJSProfile").get()});r&&r.length&&(o=a.ArrayUtilities.mergeOrdered(r,o,e.TracingModel.Event.orderedCompareStartTime))}return o}static nameAuctionWorklet(e,t){switch(e){case 1:return t?u(h.bidderWorkletS,{PH1:t}):u(h.bidderWorklet);case 2:return t?u(h.sellerWorkletS,{PH1:t}):u(h.sellerWorklet);default:return t?u(h.unknownWorkletS,{PH1:t}):u(h.unknownWorklet)}}processThreadEvents(e,t,r,n,s,o,l){const d=new v;d.name=t.name()||u(h.threadS,{PH1:t.id()}),d.type=T.Other,d.thread=t,r?(d.type=T.MainThread,d.url=l||a.DevToolsPath.EmptyUrlString,d.forMainFrame=s):n?(d.type=T.Worker,d.url=l||a.DevToolsPath.EmptyUrlString,d.name=d.url?u(h.workerS,{PH1:d.url}):u(h.dedicatedWorker)):t.name().startsWith("CompositorTileWorker")?d.type=T.Raster:t.name()===p.AuctionWorkletThreadName?(d.url=l||a.DevToolsPath.EmptyUrlString,d.name=p.nameAuctionWorklet(o,l)):0!==o&&t.name().endsWith(p.UtilityMainThreadNameSuffix)&&(d.url=l||a.DevToolsPath.EmptyUrlString,d.name=l?u(h.workletServiceS,{PH1:l}):u(h.workletService)),this.tracksInternal.push(d);const c=this.injectJSFrameEvents(e,t);this.eventStack=[];const m=this.eventStack;if(n){const e=c.find((e=>e.name===g.Profile));if(e){const t=this.targetByEvent(e);t&&(d.name=u(h.workerSS,{PH1:t.name(),PH2:d.url}))}}for(let e=0;e<c.length;e++){const t=c[e];this.isInteractiveTimeEvent(t)&&-1===this.totalBlockingTimeInternal&&(this.totalBlockingTimeInternal=t.args.args.total_blocking_time_ms);const a=t.name===g.Task&&t.duration&&t.duration>50;r&&a&&t.duration&&(this.estimatedTotalBlockingTime+=t.duration-50);let n=m[m.length-1];for(;n&&void 0!==n.endTime&&n.endTime<=t.startTime;)m.pop(),n=m[m.length-1];if(this.processEvent(t)){if(!i.Types.TraceEvents.isAsyncPhase(t.phase)&&t.duration){if(m.length){const e=m[m.length-1];e&&(e.selfTime-=t.duration,e.selfTime<0&&this.fixNegativeDuration(e,t))}t.selfTime=t.duration,m.length||d.tasks.push(t),m.push(t)}this.isMarkerEvent(t)&&this.timeMarkerEventsInternal.push(t),d.events.push(t),this.inspectedTargetEventsInternal.push(t)}}this.processAsyncEvents(t)}fixNegativeDuration(e,t){e.selfTime<-.001&&console.error(`Children are longer than parent at ${e.startTime} (${(t.startTime-this.minimumRecordTime()).toFixed(3)} by ${(-e.selfTime).toFixed(3)}`),e.selfTime=0}processAsyncEvents(t){const r=t.asyncEvents(),n=new Map;for(let e=0;e<r.length;++e){const t=r[e];t.name!==g.Animation||(i=T.Animation,n.has(i)||n.set(i,[]),n.get(i)).push(t)}var i;for(const[r,i]of n){const n=this.ensureNamedTrack(r);n.thread=t,n.asyncEvents=a.ArrayUtilities.mergeOrdered(n.asyncEvents,i,e.TracingModel.Event.compareStartTime)}}processEvent(e){const t=this.eventStack;if(!t.length){if(this.currentTaskLayoutAndRecalcEvents&&this.currentTaskLayoutAndRecalcEvents.length){const e=this.currentTaskLayoutAndRecalcEvents.reduce(((e,t)=>void 0===t.duration?e:e+t.duration),0);if(e>p.Thresholds.ForcedLayout)for(const e of this.currentTaskLayoutAndRecalcEvents){R.forEvent(e).warning=e.name===g.Layout?p.WarningType.ForcedLayout:p.WarningType.ForcedStyle}}this.currentTaskLayoutAndRecalcEvents=[]}this.currentScriptEvent&&void 0!==this.currentScriptEvent.endTime&&e.startTime>this.currentScriptEvent.endTime&&(this.currentScriptEvent=null);const r=e.args.data||e.args.beginData||{},a=R.forEvent(e);r.stackTrace&&(a.stackTrace=r.stackTrace.map((t=>{if(e.name!==g.JSSample&&e.name!==g.JSSystemSample&&e.name!==g.JSIdleSample){const e={...t};return--e.lineNumber,--e.columnNumber,e}return t})));let n=p.eventFrameId(e);const i=t[t.length-1];switch(!n&&i&&(n=R.forEvent(i).frameId),a.frameId=n||this.mainFrame&&this.mainFrame.frameId||"",this.asyncEventTracker.processEvent(e),e.name){case g.ResourceSendRequest:case g.WebSocketCreate:a.setInitiator(t[t.length-1]||null),a.url=r.url;break;case g.ScheduleStyleRecalculation:this.lastScheduleStyleRecalculation[r.frame]=e;break;case g.UpdateLayoutTree:case g.RecalculateStyles:this.invalidationTracker.didRecalcStyle(e),e.args.beginData&&a.setInitiator(this.lastScheduleStyleRecalculation[e.args.beginData.frame]),this.lastRecalculateStylesEvent=e,this.currentScriptEvent&&this.currentTaskLayoutAndRecalcEvents.push(e);break;case g.ScheduleStyleInvalidationTracking:case g.StyleRecalcInvalidationTracking:case g.StyleInvalidatorInvalidationTracking:case g.LayoutInvalidationTracking:this.invalidationTracker.addInvalidation(new S(e,a));break;case g.InvalidateLayout:{let t=e;const a=r.frame;!this.layoutInvalidate[a]&&this.lastRecalculateStylesEvent&&void 0!==this.lastRecalculateStylesEvent.endTime&&this.lastRecalculateStylesEvent.endTime>e.startTime&&(t=R.forEvent(this.lastRecalculateStylesEvent).initiator()),this.layoutInvalidate[a]=t;break}case g.Layout:{this.invalidationTracker.didLayout(e);const t=e.args.beginData.frame;if(a.setInitiator(this.layoutInvalidate[t]),e.args.endData)if(e.args.endData.layoutRoots)for(let t=0;t<e.args.endData.layoutRoots.length;++t)a.backendNodeIds.push(e.args.endData.layoutRoots[t].nodeId);else a.backendNodeIds.push(e.args.endData.rootNode);this.layoutInvalidate[t]=null,this.currentScriptEvent&&this.currentTaskLayoutAndRecalcEvents.push(e);break}case g.Task:void 0!==e.duration&&e.duration>p.Thresholds.LongTask&&(a.warning=p.WarningType.LongTask);break;case g.EventDispatch:void 0!==e.duration&&e.duration>p.Thresholds.RecurringHandler&&(a.warning=p.WarningType.LongHandler);break;case g.TimerFire:case g.FireAnimationFrame:void 0!==e.duration&&e.duration>p.Thresholds.RecurringHandler&&(a.warning=p.WarningType.LongRecurringHandler);break;case g.FunctionCall:"string"==typeof r.scriptName&&(r.url=r.scriptName),"number"==typeof r.scriptLine&&(r.lineNumber=r.scriptLine);case g.EvaluateScript:case g.CompileScript:case g.CacheScript:"number"==typeof r.lineNumber&&--r.lineNumber,"number"==typeof r.columnNumber&&--r.columnNumber;case g.RunMicrotasks:this.currentScriptEvent||(this.currentScriptEvent=e);break;case g.SetLayerTreeId:{if(this.sessionId&&r.sessionId&&this.sessionId===r.sessionId){this.mainFrameLayerTreeId=r.layerTreeId;break}const t=p.eventFrameId(e),a=t?this.pageFrames.get(t):null;if(!a||a.parent)return!1;this.mainFrameLayerTreeId=r.layerTreeId;break}case g.Paint:{if(this.invalidationTracker.didPaint=!0,"nodeId"in r&&a.backendNodeIds.push(r.nodeId),!r.layerId)break;const t=r.layerId;this.lastPaintForLayer[t]=e;break}case g.DisplayItemListSnapshot:case g.PictureSnapshot:{const t=this.findAncestorEvent(g.UpdateLayer);if(!t||t.args.layerTreeId!==this.mainFrameLayerTreeId)break;const r=this.lastPaintForLayer[t.args.layerId];r&&(R.forEvent(r).picture=e);break}case g.ScrollLayer:a.backendNodeIds.push(r.nodeId);break;case g.PaintImage:a.backendNodeIds.push(r.nodeId),a.url=r.url;break;case g.DecodeImage:case g.ResizeImage:{let e=this.findAncestorEvent(g.PaintImage);if(!e){const t=this.findAncestorEvent(g.DecodeLazyPixelRef);e=t&&this.paintImageEventByPixelRefId[t.args.LazyPixelRef]}if(!e)break;const t=R.forEvent(e);a.backendNodeIds.push(t.backendNodeIds[0]),a.url=t.url;break}case g.DrawLazyPixelRef:{const t=this.findAncestorEvent(g.PaintImage);if(!t)break;this.paintImageEventByPixelRefId[e.args.LazyPixelRef]=t;const r=R.forEvent(t);a.backendNodeIds.push(r.backendNodeIds[0]),a.url=r.url;break}case g.FrameStartedLoading:if(a.frameId!==e.args.frame)return!1;break;case g.MarkLCPCandidate:a.backendNodeIds.push(r.nodeId);break;case g.MarkDOMContent:case g.MarkLoad:{const t=p.eventFrameId(e);if(!t||!this.pageFrames.has(t))return!1;break}case g.CommitLoad:{if(this.browserFrameTracking)break;const t=p.eventFrameId(e),a=Boolean(r.isOutermostMainFrame??r.isMainFrame),n=t?this.pageFrames.get(t):null;if(n)n.update(e.startTime,r);else if(this.persistentIds){if(a)return!1;if(!this.addPageFrame(e,r))return!1}else if(r.page&&r.page!==this.legacyCurrentPage)return!1;if(a&&t){const e=this.pageFrames.get(t);e&&(this.mainFrame=e)}break}case g.FireIdleCallback:void 0!==e.duration&&e.duration>r.allottedMilliseconds+p.Thresholds.IdleCallbackAddon&&(a.warning=p.WarningType.IdleDeadlineExceeded)}return!0}processBrowserEvent(t){if(t.name!==g.ResourceWillSendRequest){if(t.hasCategory(e.TracingModel.DevToolsMetadataEventCategory)&&t.args.data){const e=t.args.data;if(t.name===p.DevToolsMetadataEvent.TracingStartedInBrowser){if(!e.persistentIds)return;this.browserFrameTracking=!0,this.mainFrameNodeId=e.frameTreeNodeId;return void(e.frames||[]).forEach((e=>{const t=e.parent&&this.pageFrames.get(e.parent);if(e.parent&&!t)return;let r=this.pageFrames.get(e.frame);r||(r=new f(e),this.pageFrames.set(r.frameId,r),t?t.addChild(r):this.mainFrame=r),r.update(this.minimumRecordTimeInternal,e)}))}if(t.name===p.DevToolsMetadataEvent.FrameCommittedInBrowser&&this.browserFrameTracking){let r=this.pageFrames.get(e.frame);if(!r){const t=e.parent&&this.pageFrames.get(e.parent);if(!t)return;r=new f(e),this.pageFrames.set(r.frameId,r),t.addChild(r)}return void r.update(t.startTime,e)}if(t.name===p.DevToolsMetadataEvent.ProcessReadyInBrowser&&this.browserFrameTracking){const t=this.pageFrames.get(e.frame);return void(t&&t.processReady(e.processPseudoId,e.processId))}if(t.name===p.DevToolsMetadataEvent.FrameDeletedInBrowser&&this.browserFrameTracking){const r=this.pageFrames.get(e.frame);return void(r&&(r.deletedTime=t.startTime))}if(t.name===p.DevToolsMetadataEvent.AuctionWorkletRunningInProcess&&this.browserFrameTracking){const r=new y(t,e);this.auctionWorklets.set(e.target,r)}if(t.name===p.DevToolsMetadataEvent.AuctionWorkletDoneWithProcess&&this.browserFrameTracking){const r=this.auctionWorklets.get(e.target);r&&(r.endTime=t.startTime)}}}else{const e=t.args?.data?.requestId;"string"==typeof e&&this.requestsFromBrowser.set(e,t)}}ensureNamedTrack(e){let t=this.namedTracks.get(e);return t||(t=new v,t.type=e,this.tracksInternal.push(t),this.namedTracks.set(e,t),t)}findAncestorEvent(e){for(let t=this.eventStack.length-1;t>=0;--t){const r=this.eventStack[t];if(r.name===e)return r}return null}addPageFrame(e,t){const r=t.parent&&this.pageFrames.get(t.parent);if(t.parent&&!r)return!1;const a=new f(t);return this.pageFrames.set(a.frameId,a),a.update(e.startTime,t),r&&r.addChild(a),!0}reset(){this.isGenericTraceInternal=!1,this.tracksInternal=[],this.namedTracks=new Map,this.inspectedTargetEventsInternal=[],this.timeMarkerEventsInternal=[],this.sessionId=null,this.mainFrameNodeId=null,this.cpuProfilesInternal=[],this.workerIdByThread=new WeakMap,this.pageFrames=new Map,this.auctionWorklets=new Map,this.requestsFromBrowser=new Map,this.minimumRecordTimeInternal=0,this.maximumRecordTimeInternal=0,this.totalBlockingTimeInternal=-1,this.estimatedTotalBlockingTime=0}isGenericTrace(){return this.isGenericTraceInternal}tracingModel(){return this.tracingModelInternal}minimumRecordTime(){return this.minimumRecordTimeInternal}maximumRecordTime(){return this.maximumRecordTimeInternal}inspectedTargetEvents(){return this.inspectedTargetEventsInternal}tracks(){return this.tracksInternal}isEmpty(){return 0===this.minimumRecordTime()&&0===this.maximumRecordTime()}timeMarkerEvents(){return this.timeMarkerEventsInternal}rootFrames(){return Array.from(this.pageFrames.values()).filter((e=>!e.parent))}pageURL(){return this.mainFrame&&this.mainFrame.url||a.DevToolsPath.EmptyUrlString}pageFrameById(e){return e&&this.pageFrames.get(e)||null}networkRequests(){if(this.isGenericTrace())return[];const e=new Map,t=[],r=[],a=new Set([g.ResourceWillSendRequest,g.ResourceSendRequest,g.ResourceReceiveResponse,g.ResourceReceivedData,g.ResourceFinish,g.ResourceMarkAsCached]),n=this.inspectedTargetEvents();for(let e=0;e<n.length;++e){const t=n[e];if(!a.has(t.name))continue;const r=p.globalEventId(t,"requestId"),s=t.args?.data?.requestId;if(t.name===g.ResourceSendRequest&&s&&this.requestsFromBrowser.has(s)){const e=this.requestsFromBrowser.get(s);e&&i(e,r)}i(t,r)}function i(a,n){let i=e.get(n);i?i.addEvent(a):(i=new I(a),e.set(n,i),i.startTime?t.push(i):r.push(i))}return r.concat(t)}}var g,T;!function(e){e.Task="RunTask",e.Program="Program",e.EventDispatch="EventDispatch",e.GPUTask="GPUTask",e.Animation="Animation",e.RequestMainThreadFrame="RequestMainThreadFrame",e.BeginFrame="BeginFrame",e.NeedsBeginFrameChanged="NeedsBeginFrameChanged",e.BeginMainThreadFrame="BeginMainThreadFrame",e.ActivateLayerTree="ActivateLayerTree",e.DrawFrame="DrawFrame",e.DroppedFrame="DroppedFrame",e.HitTest="HitTest",e.ScheduleStyleRecalculation="ScheduleStyleRecalculation",e.RecalculateStyles="RecalculateStyles",e.UpdateLayoutTree="UpdateLayoutTree",e.InvalidateLayout="InvalidateLayout",e.Layerize="Layerize",e.Layout="Layout",e.LayoutShift="LayoutShift",e.UpdateLayer="UpdateLayer",e.UpdateLayerTree="UpdateLayerTree",e.PaintSetup="PaintSetup",e.Paint="Paint",e.PaintImage="PaintImage",e.PrePaint="PrePaint",e.Rasterize="Rasterize",e.RasterTask="RasterTask",e.ScrollLayer="ScrollLayer",e.Commit="Commit",e.CompositeLayers="CompositeLayers",e.ComputeIntersections="IntersectionObserverController::computeIntersections",e.InteractiveTime="InteractiveTime",e.ScheduleStyleInvalidationTracking="ScheduleStyleInvalidationTracking",e.StyleRecalcInvalidationTracking="StyleRecalcInvalidationTracking",e.StyleInvalidatorInvalidationTracking="StyleInvalidatorInvalidationTracking",e.LayoutInvalidationTracking="LayoutInvalidationTracking",e.ParseHTML="ParseHTML",e.ParseAuthorStyleSheet="ParseAuthorStyleSheet",e.TimerInstall="TimerInstall",e.TimerRemove="TimerRemove",e.TimerFire="TimerFire",e.XHRReadyStateChange="XHRReadyStateChange",e.XHRLoad="XHRLoad",e.CompileScript="v8.compile",e.CompileCode="V8.CompileCode",e.OptimizeCode="V8.OptimizeCode",e.EvaluateScript="EvaluateScript",e.CacheScript="v8.produceCache",e.CompileModule="v8.compileModule",e.EvaluateModule="v8.evaluateModule",e.CacheModule="v8.produceModuleCache",e.WasmStreamFromResponseCallback="v8.wasm.streamFromResponseCallback",e.WasmCompiledModule="v8.wasm.compiledModule",e.WasmCachedModule="v8.wasm.cachedModule",e.WasmModuleCacheHit="v8.wasm.moduleCacheHit",e.WasmModuleCacheInvalid="v8.wasm.moduleCacheInvalid",e.FrameStartedLoading="FrameStartedLoading",e.CommitLoad="CommitLoad",e.MarkLoad="MarkLoad",e.MarkDOMContent="MarkDOMContent",e.MarkFirstPaint="firstPaint",e.MarkFCP="firstContentfulPaint",e.MarkLCPCandidate="largestContentfulPaint::Candidate",e.MarkLCPInvalidate="largestContentfulPaint::Invalidate",e.NavigationStart="navigationStart",e.TimeStamp="TimeStamp",e.ConsoleTime="ConsoleTime",e.UserTiming="UserTiming",e.EventTiming="EventTiming",e.ResourceWillSendRequest="ResourceWillSendRequest",e.ResourceSendRequest="ResourceSendRequest",e.ResourceReceiveResponse="ResourceReceiveResponse",e.ResourceReceivedData="ResourceReceivedData",e.ResourceFinish="ResourceFinish",e.ResourceMarkAsCached="ResourceMarkAsCached",e.RunMicrotasks="RunMicrotasks",e.FunctionCall="FunctionCall",e.GCEvent="GCEvent",e.MajorGC="MajorGC",e.MinorGC="MinorGC",e.JSFrame="JSFrame",e.JSSample="JSSample",e.JSIdleFrame="JSIdleFrame",e.JSIdleSample="JSIdleSample",e.JSSystemFrame="JSSystemFrame",e.JSSystemSample="JSSystemSample",e.JSRoot="JSRoot",e.V8Sample="V8Sample",e.JitCodeAdded="JitCodeAdded",e.JitCodeMoved="JitCodeMoved",e.StreamingCompileScript="v8.parseOnBackground",e.StreamingCompileScriptWaiting="v8.parseOnBackgroundWaiting",e.StreamingCompileScriptParsing="v8.parseOnBackgroundParsing",e.BackgroundDeserialize="v8.deserializeOnBackground",e.FinalizeDeserialization="V8.FinalizeDeserialization",e.V8Execute="V8.Execute",e.UpdateCounters="UpdateCounters",e.RequestAnimationFrame="RequestAnimationFrame",e.CancelAnimationFrame="CancelAnimationFrame",e.FireAnimationFrame="FireAnimationFrame",e.RequestIdleCallback="RequestIdleCallback",e.CancelIdleCallback="CancelIdleCallback",e.FireIdleCallback="FireIdleCallback",e.WebSocketCreate="WebSocketCreate",e.WebSocketSendHandshakeRequest="WebSocketSendHandshakeRequest",e.WebSocketReceiveHandshakeResponse="WebSocketReceiveHandshakeResponse",e.WebSocketDestroy="WebSocketDestroy",e.EmbedderCallback="EmbedderCallback",e.SetLayerTreeId="SetLayerTreeId",e.TracingStartedInPage="TracingStartedInPage",e.TracingSessionIdForWorker="TracingSessionIdForWorker",e.StartProfiling="CpuProfiler::StartProfiling",e.DecodeImage="Decode Image",e.ResizeImage="Resize Image",e.DrawLazyPixelRef="Draw LazyPixelRef",e.DecodeLazyPixelRef="Decode LazyPixelRef",e.LazyPixelRef="LazyPixelRef",e.LayerTreeHostImplSnapshot="cc::LayerTreeHostImpl",e.PictureSnapshot="cc::Picture",e.DisplayItemListSnapshot="cc::DisplayItemList",e.InputLatencyMouseMove="InputLatency::MouseMove",e.InputLatencyMouseWheel="InputLatency::MouseWheel",e.ImplSideFling="InputHandlerProxy::HandleGestureFling::started",e.GCCollectGarbage="BlinkGC.AtomicPhase",e.CryptoDoEncrypt="DoEncrypt",e.CryptoDoEncryptReply="DoEncryptReply",e.CryptoDoDecrypt="DoDecrypt",e.CryptoDoDecryptReply="DoDecryptReply",e.CryptoDoDigest="DoDigest",e.CryptoDoDigestReply="DoDigestReply",e.CryptoDoSign="DoSign",e.CryptoDoSignReply="DoSignReply",e.CryptoDoVerify="DoVerify",e.CryptoDoVerifyReply="DoVerifyReply",e.CpuProfile="CpuProfile",e.Profile="Profile",e.AsyncTask="AsyncTask"}(g||(g={})),function(e){let t;e.Category={Console:"blink.console",UserTiming:"blink.user_timing",Loading:"loading"},function(e){e.LongTask="LongTask",e.ForcedStyle="ForcedStyle",e.ForcedLayout="ForcedLayout",e.IdleDeadlineExceeded="IdleDeadlineExceeded",e.LongHandler="LongHandler",e.LongRecurringHandler="LongRecurringHandler",e.V8Deopt="V8Deopt",e.LongInteraction="LongInteraction"}(t=e.WarningType||(e.WarningType={})),e.WorkerThreadName="DedicatedWorker thread",e.WorkerThreadNameLegacy="DedicatedWorker Thread",e.RendererMainThreadName="CrRendererMain",e.BrowserMainThreadName="CrBrowserMain",e.UtilityMainThreadNameSuffix="CrUtilityMain",e.AuctionWorkletThreadName="AuctionV8HelperThread",e.DevToolsMetadataEvent={TracingStartedInBrowser:"TracingStartedInBrowser",TracingStartedInPage:"TracingStartedInPage",TracingSessionIdForWorker:"TracingSessionIdForWorker",FrameCommittedInBrowser:"FrameCommittedInBrowser",ProcessReadyInBrowser:"ProcessReadyInBrowser",FrameDeletedInBrowser:"FrameDeletedInBrowser",AuctionWorkletRunningInProcess:"AuctionWorkletRunningInProcess",AuctionWorkletDoneWithProcess:"AuctionWorkletDoneWithProcess"},e.Thresholds={LongTask:50,Handler:150,RecurringHandler:50,ForcedLayout:30,IdleCallbackAddon:5}}(p||(p={}));class v{name;type;forMainFrame;url;events;asyncEvents;tasks;eventsForTreeViewInternal;thread;constructor(){this.name="",this.type=T.Other,this.forMainFrame=!1,this.url=a.DevToolsPath.EmptyUrlString,this.events=[],this.asyncEvents=[],this.tasks=[],this.eventsForTreeViewInternal=null,this.thread=null}eventsForTreeView(){if(this.eventsForTreeViewInternal)return this.eventsForTreeViewInternal;const t=[];function r(){const e=t[t.length-1];if(void 0!==e){const t=e.endTime;if(void 0!==t)return t}throw new Error("End time does not exist on event.")}this.eventsForTreeViewInternal=[...this.events];for(const a of this.asyncEvents){const n=a.startTime;let i=a.endTime;for(void 0===i&&(i=n);t.length&&n>=r();)t.pop();if(t.length&&i>r()){this.eventsForTreeViewInternal=[...this.events];break}const s=new e.TracingModel.ConstructedEvent(a.categoriesString,a.name,"X",n,a.thread);s.setEndTime(i),s.addArgs(a.args),this.eventsForTreeViewInternal.push(s),t.push(s)}return this.eventsForTreeViewInternal}}!function(e){e.MainThread="MainThread",e.Worker="Worker",e.Animation="Animation",e.Raster="Raster",e.Experience="Experience",e.Other="Other"}(T||(T={}));class f{frameId;url;name;children;parent;processes;deletedTime;ownerNode;constructor(e){this.frameId=e.frame,this.url=e.url||a.DevToolsPath.EmptyUrlString,this.name=e.name,this.children=[],this.parent=null,this.processes=[],this.deletedTime=null,this.ownerNode=null}update(e,t){this.url=t.url||"",this.name=t.name,t.processId?this.processes.push({time:e,processId:t.processId,processPseudoId:"",url:t.url||""}):this.processes.push({time:e,processId:-1,processPseudoId:t.processPseudoId,url:t.url||""})}processReady(e,t){for(const r of this.processes)r.processPseudoId===e&&(r.processPseudoId="",r.processId=t)}addChild(e){this.children.push(e),e.parent=this}}class y{targetId;processId;host;startTime;endTime;workletType;constructor(e,t){this.targetId="string"==typeof t.target?t.target:"",this.processId="number"==typeof t.pid?t.pid:0,this.host="string"==typeof t.host?t.host:void 0,this.startTime=e.startTime,this.endTime=1/0,"bidder"===t.type?this.workletType=1:"seller"===t.type?this.workletType=2:this.workletType=3}}class I{startTime;endTime;encodedDataLength;decodedBodyLength;children;timing;mimeType;url;requestMethod;transferSize;maybeDiskCached;memoryCachedInternal;priority;finishTime;responseTime;fromServiceWorker;hasCachedResource;constructor(e){const t=e.name===g.ResourceSendRequest||e.name===g.ResourceWillSendRequest;this.startTime=t?e.startTime:0,this.endTime=1/0,this.encodedDataLength=0,this.decodedBodyLength=0,this.children=[],this.transferSize=0,this.maybeDiskCached=!1,this.memoryCachedInternal=!1,this.addEvent(e)}addEvent(e){this.children.push(e),this.startTime=Math.min(this.startTime,e.startTime);const t=e.args.data;t.mimeType&&(this.mimeType=t.mimeType),"priority"in t&&(this.priority=t.priority),e.name===g.ResourceFinish&&(this.endTime=e.startTime),t.finishTime&&(this.finishTime=1e3*t.finishTime),this.responseTime||e.name!==g.ResourceReceiveResponse&&e.name!==g.ResourceReceivedData||(this.responseTime=e.startTime);const r=t.encodedDataLength||0;e.name===g.ResourceMarkAsCached&&(this.memoryCachedInternal=!0),e.name===g.ResourceReceiveResponse&&(t.fromCache&&(this.maybeDiskCached=!0),t.fromServiceWorker&&(this.fromServiceWorker=!0),t.hasCachedResource&&(this.hasCachedResource=!0),this.encodedDataLength=r),e.name===g.ResourceReceivedData&&(this.encodedDataLength+=r),e.name===g.ResourceFinish&&r&&(this.encodedDataLength=r,this.transferSize=r);const a=t.decodedBodyLength;e.name===g.ResourceFinish&&a&&(this.decodedBodyLength=a),this.url||(this.url=t.url),this.requestMethod||(this.requestMethod=t.requestMethod),this.timing||(this.timing=t.timing),t.fromServiceWorker&&(this.fromServiceWorker=!0)}cached(){return Boolean(this.memoryCachedInternal)||Boolean(this.maybeDiskCached)&&!this.transferSize&&!this.fromServiceWorker}memoryCached(){return this.memoryCachedInternal}getSendReceiveTiming(){if(this.cached()||!this.timing)return{sendStartTime:this.startTime,headersEndTime:this.startTime};const e=1e3*this.timing.requestTime;return{sendStartTime:e+this.timing.sendStart,headersEndTime:e+this.timing.receiveHeadersEnd}}getStartTime(){return Math.min(this.startTime,!this.cached()&&this.timing&&1e3*this.timing.requestTime||1/0)}beginTime(){return Math.min(this.getStartTime(),!this.cached()&&this.timing&&1e3*this.timing.pushStart||1/0)}}class S{type;startTime;tracingEvent;frame;nodeId;nodeName;invalidationSet;invalidatedSelectorId;changedId;changedClass;changedAttribute;changedPseudo;selectorPart;extraData;invalidationList;cause;linkedRecalcStyleEvent;linkedLayoutEvent;constructor(e,t){this.type=e.name,this.startTime=e.startTime,this.tracingEvent=e;const r=e.args.data;this.frame=r.frame,this.nodeId=r.nodeId,this.nodeName=r.nodeName,this.invalidationSet=r.invalidationSet,this.invalidatedSelectorId=r.invalidatedSelectorId,this.changedId=r.changedId,this.changedClass=r.changedClass,this.changedAttribute=r.changedAttribute,this.changedPseudo=r.changedPseudo,this.selectorPart=r.selectorPart,this.extraData=r.extraData,this.invalidationList=r.invalidationList,this.cause={reason:r.reason,stackTrace:t.stackTrace},this.linkedRecalcStyleEvent=!1,this.linkedLayoutEvent=!1,!this.cause.reason&&this.cause.stackTrace&&this.type===g.LayoutInvalidationTracking&&(this.cause.reason="Layout forced")}}class k{lastRecalcStyle;didPaint;invalidations;invalidationsByNodeId;constructor(){this.lastRecalcStyle=null,this.didPaint=!1,this.initializePerFrameState(),this.invalidations={},this.invalidationsByNodeId={}}static invalidationEventsFor(e){return P.get(e)||null}addInvalidation(e){if(this.startNewFrameIfNeeded(),!e.nodeId)return console.error("Invalidation lacks node information."),void console.error(e);if(e.type===g.StyleRecalcInvalidationTracking&&"StyleInvalidator"===e.cause.reason)return;if(e.type===g.ScheduleStyleInvalidationTracking||e.type===g.StyleInvalidatorInvalidationTracking||e.type===g.StyleRecalcInvalidationTracking){e.startTime&&this.lastRecalcStyle&&void 0!==this.lastRecalcStyle.endTime&&e.startTime>=this.lastRecalcStyle.startTime&&e.startTime<=this.lastRecalcStyle.endTime&&this.associateWithLastRecalcStyleEvent(e)}this.invalidations[e.type]?this.invalidations[e.type].push(e):this.invalidations[e.type]=[e],e.nodeId&&(this.invalidationsByNodeId[e.nodeId]?this.invalidationsByNodeId[e.nodeId].push(e):this.invalidationsByNodeId[e.nodeId]=[e])}didRecalcStyle(e){this.lastRecalcStyle=e;const t=[g.ScheduleStyleInvalidationTracking,g.StyleInvalidatorInvalidationTracking,g.StyleRecalcInvalidationTracking];for(const e of this.invalidationsOfTypes(t))this.associateWithLastRecalcStyleEvent(e)}associateWithLastRecalcStyleEvent(e){if(e.linkedRecalcStyleEvent)return;if(!this.lastRecalcStyle)throw new Error("Last recalculate style event not set.");const t=this.lastRecalcStyle.args.beginData.frame;e.type===g.StyleInvalidatorInvalidationTracking?this.addSyntheticStyleRecalcInvalidations(this.lastRecalcStyle,t,e):e.type===g.ScheduleStyleInvalidationTracking||this.addInvalidationToEvent(this.lastRecalcStyle,t,e),e.linkedRecalcStyleEvent=!0}addSyntheticStyleRecalcInvalidations(e,t,r){if(r.invalidationList){if(!r.nodeId)return console.error("Invalidation lacks node information."),void console.error(r);for(let e=0;e<r.invalidationList.length;e++){const a=r.invalidationList[e].id;let n;const i=this.invalidationsByNodeId[r.nodeId]||[];for(let e=0;e<i.length;e++){const r=i[e];r.frame===t&&r.invalidationSet===a&&r.type===g.ScheduleStyleInvalidationTracking&&(n=r)}n&&this.addSyntheticStyleRecalcInvalidation(n.tracingEvent,r)}}else this.addSyntheticStyleRecalcInvalidation(r.tracingEvent,r)}addSyntheticStyleRecalcInvalidation(e,t){const r=R.forEvent(e),a=new S(e,r);a.type=g.StyleRecalcInvalidationTracking,t.cause.reason&&(a.cause.reason=t.cause.reason),t.selectorPart&&(a.selectorPart=t.selectorPart),a.linkedRecalcStyleEvent||this.associateWithLastRecalcStyleEvent(a)}didLayout(e){const t=e.args.beginData.frame;for(const r of this.invalidationsOfTypes([g.LayoutInvalidationTracking]))r.linkedLayoutEvent||(this.addInvalidationToEvent(e,t,r),r.linkedLayoutEvent=!0)}addInvalidationToEvent(e,t,r){if(t!==r.frame)return;const a=P.get(e);a?a.push(r):P.set(e,[r])}invalidationsOfTypes(e){const t=this.invalidations;return e||(e=Object.keys(t)),function*(){if(e)for(let r=0;r<e.length;++r){const a=t[e[r]]||[];for(let e=0;e<a.length;++e)yield a[e]}}()}startNewFrameIfNeeded(){this.didPaint&&this.initializePerFrameState()}initializePerFrameState(){this.invalidations={},this.invalidationsByNodeId={},this.lastRecalcStyle=null,this.didPaint=!1}}class F{initiatorByType;constructor(){if(F.initialize(),this.initiatorByType=new Map,F.asyncEvents)for(const e of F.asyncEvents.keys())this.initiatorByType.set(e,new Map)}static initialize(){if(F.asyncEvents)return;const e=new Map;e.set(g.TimerInstall,{causes:[g.TimerFire],joinBy:"timerId"}),e.set(g.ResourceSendRequest,{causes:[g.ResourceMarkAsCached,g.ResourceReceiveResponse,g.ResourceReceivedData,g.ResourceFinish],joinBy:"requestId"}),e.set(g.RequestAnimationFrame,{causes:[g.FireAnimationFrame],joinBy:"id"}),e.set(g.RequestIdleCallback,{causes:[g.FireIdleCallback],joinBy:"id"}),e.set(g.WebSocketCreate,{causes:[g.WebSocketSendHandshakeRequest,g.WebSocketReceiveHandshakeResponse,g.WebSocketDestroy],joinBy:"identifier"}),F.asyncEvents=e,F.typeToInitiator=new Map;for(const t of e){const e=t[1].causes;for(const r of e)F.typeToInitiator.set(r,t[0])}}processEvent(e){if(!F.typeToInitiator||!F.asyncEvents)return;let t=F.typeToInitiator.get(e.name);const r=!t;t||(t=e.name);const a=F.asyncEvents.get(t);if(!a)return;const n=p.globalEventId(e,a.joinBy);if(!n)return;const i=this.initiatorByType.get(t);if(i){if(r)return void i.set(n,e);const t=i.get(n),a=R.forEvent(e);a.setInitiator(t||null),!a.frameId&&t&&(a.frameId=p.eventFrameId(t))}}static asyncEvents=null;static typeToInitiator=null}class R{warning;previewElement;url;backendNodeIds;stackTrace;picture;initiatorInternal;frameId;timeWaitingForMainThread;constructor(){this.warning=null,this.previewElement=null,this.url=null,this.backendNodeIds=[],this.stackTrace=null,this.picture=null,this.initiatorInternal=null,this.frameId=null}setInitiator(e){if(this.initiatorInternal=e,!e||this.url)return;const t=R.forEvent(e).url;t&&(this.url=t)}initiator(){return this.initiatorInternal}topFrame(){const e=this.stackTraceForSelfOrInitiator();return e&&e[0]||null}stackTraceForSelfOrInitiator(){return this.stackTrace||this.initiatorInternal&&R.forEvent(this.initiatorInternal).stackTrace}static forEvent(t){return t instanceof e.TracingModel.PayloadEvent?R.forTraceEventData(t.rawPayload()):t instanceof e.TracingModel.Event?C(t):R.forTraceEventData(t)}static forTraceEventData(e){return C(e)}}function C(e){let t=E.get(e);return t||(t=new R,E.set(e,t)),t}const E=new WeakMap,P=new WeakMap;var M=Object.freeze({__proto__:null,get TimelineModelImpl(){return p},get RecordType(){return g},Track:v,get TrackType(){return T},PageFrame:f,AuctionWorklet:y,NetworkRequest:I,InvalidationTrackingEvent:S,InvalidationTracker:k,TimelineAsyncEventTracker:F,EventOnTimelineData:R});class w{}class L extends w{visibleTypes;constructor(e){super(),this.visibleTypes=new Set(e)}accept(e){return this.visibleTypes.has(L.eventType(e))}static eventType(t){return e.TracingModel.eventHasCategory(t,p.Category.Console)?g.ConsoleTime:e.TracingModel.eventHasCategory(t,p.Category.UserTiming)?g.UserTiming:t.name}}var b=Object.freeze({__proto__:null,TimelineModelFilter:w,TimelineVisibleEventsFilter:L,TimelineInvisibleEventsFilter:class extends w{invisibleTypes;constructor(e){super(),this.invisibleTypes=new Set(e)}accept(e){return!this.invisibleTypes.has(L.eventType(e))}},ExclusiveNameFilter:class extends w{excludeNames;constructor(e){super(),this.excludeNames=new Set(e)}accept(e){return!this.excludeNames.has(e.name)}}});class D extends e.LayerTreeBase.LayerTreeBase{tileById;paintProfilerModel;constructor(t){super(t),this.tileById=new Map,this.paintProfilerModel=t&&t.model(e.PaintProfiler.PaintProfilerModel)}async setLayers(e,t,r){const a=new Set;if(e)this.extractNodeIdsToResolve(a,{},e);else if(t)for(let e=0;e<t.length;++e)this.extractNodeIdsToResolve(a,{},t[e]);await this.resolveBackendNodeIds(a);const n=this.layersById;if(this.layersById=new Map,this.setContentRoot(null),e){const t=this.innerSetLayers(n,e);this.setRoot(t)}else if(t){const e=t.map(this.innerSetLayers.bind(this,n)),r=this.contentRoot();if(!r)throw new Error("Content root is not set.");this.setRoot(r);for(let t=0;t<e.length;++t)e[t].id()!==r.id()&&r.addChild(e[t])}this.setPaints(r)}setTiles(e){this.tileById=new Map;for(const t of e)this.tileById.set(t.id,t)}pictureForRasterTile(e){const r=this.tileById.get("cc::Tile/"+e);if(!r)return t.Console.Console.instance().error(`Tile ${e} is missing`),Promise.resolve(null);const a=this.layerById(r.layer_id);return a?a.pictureForRect(r.content_rect):(t.Console.Console.instance().error(`Layer ${r.layer_id} for tile ${e} is not found`),Promise.resolve(null))}setPaints(e){for(let t=0;t<e.length;++t){const r=this.layersById.get(e[t].layerId());r&&r.addPaintEvent(e[t])}}innerSetLayers(e,t){let r=e.get(t.layer_id);r?r.reset(t):r=new B(this.paintProfilerModel,t),this.layersById.set(t.layer_id,r),t.owner_node&&r.setNode(this.backendNodeIdToNode().get(t.owner_node)||null),!this.contentRoot()&&r.drawsContent()&&this.setContentRoot(r);for(let a=0;t.children&&a<t.children.length;++a)r.addChild(this.innerSetLayers(e,t.children[a]));return r}extractNodeIdsToResolve(e,t,r){const a=r.owner_node;a&&!this.backendNodeIdToNode().has(a)&&e.add(a);for(let a=0;r.children&&a<r.children.length;++a)this.extractNodeIdsToResolve(e,t,r.children[a])}}class B{parentLayerId;parentInternal;layerId;nodeInternal;offsetXInternal;offsetYInternal;widthInternal;heightInternal;childrenInternal;quadInternal;scrollRectsInternal;gpuMemoryUsageInternal;paints;compositingReasons;compositingReasonIds;drawsContentInternal;paintProfilerModel;constructor(e,t){this.parentLayerId=null,this.parentInternal=null,this.layerId="",this.nodeInternal=null,this.offsetXInternal=-1,this.offsetYInternal=-1,this.widthInternal=-1,this.heightInternal=-1,this.childrenInternal=[],this.quadInternal=[],this.scrollRectsInternal=[],this.gpuMemoryUsageInternal=-1,this.paints=[],this.compositingReasons=[],this.compositingReasonIds=[],this.drawsContentInternal=!1,this.paintProfilerModel=e,this.reset(t)}reset(e){this.nodeInternal=null,this.layerId=String(e.layer_id),this.offsetXInternal=e.position[0],this.offsetYInternal=e.position[1],this.widthInternal=e.bounds.width,this.heightInternal=e.bounds.height,this.childrenInternal=[],this.parentLayerId=null,this.parentInternal=null,this.quadInternal=e.layer_quad||[],this.createScrollRects(e),this.compositingReasons=e.compositing_reasons||[],this.compositingReasonIds=e.compositing_reason_ids||[],this.drawsContentInternal=Boolean(e.draws_content),this.gpuMemoryUsageInternal=e.gpu_memory_usage,this.paints=[]}id(){return this.layerId}parentId(){return this.parentLayerId}parent(){return this.parentInternal}isRoot(){return!this.parentId()}children(){return this.childrenInternal}addChild(e){const t=e;t.parentInternal&&console.assert(!1,"Child already has a parent"),this.childrenInternal.push(t),t.parentInternal=this,t.parentLayerId=this.layerId}setNode(e){this.nodeInternal=e}node(){return this.nodeInternal}nodeForSelfOrAncestor(){let e=this;for(;e;e=e.parent())if(e.node())return e.node();return null}offsetX(){return this.offsetXInternal}offsetY(){return this.offsetYInternal}width(){return this.widthInternal}height(){return this.heightInternal}transform(){return null}quad(){return this.quadInternal}anchorPoint(){return[.5,.5,0]}invisible(){return!1}paintCount(){return 0}lastPaintRect(){return null}scrollRects(){return this.scrollRectsInternal}stickyPositionConstraint(){return null}gpuMemoryUsage(){return this.gpuMemoryUsageInternal}snapshots(){return this.paints.map((e=>e.snapshotPromise().then((e=>{if(!e)return null;return{rect:{x:e.rect[0],y:e.rect[1],width:e.rect[2],height:e.rect[3]},snapshot:e.snapshot}}))))}pictureForRect(e){return Promise.all(this.paints.map((e=>e.picturePromise()))).then((r=>{const a=r.filter((r=>{return r&&(a=r.rect,n=e,t(a[0],a[0]+a[2],n[0],n[0]+n[2])&&t(a[1],a[1]+a[3],n[1],n[1]+n[3]));var a,n})).map((e=>({x:e.rect[0],y:e.rect[1],picture:e.serializedPicture})));if(!a.length||!this.paintProfilerModel)return null;const n=a.reduce(((e,t)=>Math.min(e,t.x)),1/0),i=a.reduce(((e,t)=>Math.min(e,t.y)),1/0),s={x:e[0]-n,y:e[1]-i,width:e[2],height:e[3]};return this.paintProfilerModel.loadSnapshotFromFragments(a).then((e=>e?{rect:s,snapshot:e}:null))}));function t(e,t,r,a){return console.assert(e<=t&&r<=a,"segments should be specified as ordered pairs"),t>r&&e<a}}scrollRectsFromParams(e,t){return{rect:{x:e[0],y:e[1],width:e[2],height:e[3]},type:t}}createScrollRects(e){const t=[];e.non_fast_scrollable_region&&t.push(this.scrollRectsFromParams(e.non_fast_scrollable_region,"NonFastScrollable")),e.touch_event_handler_region&&t.push(this.scrollRectsFromParams(e.touch_event_handler_region,"TouchEventHandler")),e.wheel_event_handler_region&&t.push(this.scrollRectsFromParams(e.wheel_event_handler_region,"WheelEventHandler")),e.scroll_event_handler_region&&t.push(this.scrollRectsFromParams(e.scroll_event_handler_region,"RepaintsOnScroll")),this.scrollRectsInternal=t}addPaintEvent(e){this.paints.push(e)}requestCompositingReasons(){return Promise.resolve(this.compositingReasons)}requestCompositingReasonIds(){return Promise.resolve(this.compositingReasonIds)}drawsContent(){return this.drawsContentInternal}}var N=Object.freeze({__proto__:null,TracingLayerTree:D,TracingLayer:B});class W{categoryMapper;frames;frameById;beginFrameQueue;minimumRecordTime;lastFrame;mainFrameCommitted;mainFrameRequested;lastLayerTree;framePendingActivation;currentTaskTimeByCategory;target;framePendingCommit;lastBeginFrame;lastDroppedFrame;lastNeedsBeginFrame;lastTaskBeginTime;layerTreeId;currentProcessMainThread;constructor(e){this.categoryMapper=e,this.reset()}getFrames(){return this.frames}getFramesWithinWindow(e,t){const r=a.ArrayUtilities.lowerBound(this.frames,e||0,((e,t)=>e-t.endTime)),n=a.ArrayUtilities.lowerBound(this.frames,t||1/0,((e,t)=>e-t.startTime));return this.frames.slice(r,n)}hasRasterTile(e){const t=e.args.tileData;if(!t)return!1;const r=t.sourceFrameNumber,a=r&&this.frameById[r];return!(!a||!a.layerTree)}rasterTilePromise(e){if(!this.target)return Promise.resolve(null);const t=e.args.tileData,r=t.sourceFrameNumber,a=t.tileId&&t.tileId.id_ref,n=r&&this.frameById[r];return n&&n.layerTree&&a?n.layerTree.layerTreePromise().then((e=>e&&e.pictureForRasterTile(a))):Promise.resolve(null)}reset(){this.minimumRecordTime=1/0,this.frames=[],this.frameById={},this.beginFrameQueue=new U,this.lastFrame=null,this.lastLayerTree=null,this.mainFrameCommitted=!1,this.mainFrameRequested=!1,this.framePendingCommit=null,this.lastBeginFrame=null,this.lastDroppedFrame=null,this.lastNeedsBeginFrame=null,this.framePendingActivation=null,this.lastTaskBeginTime=null,this.target=null,this.layerTreeId=null,this.currentTaskTimeByCategory={}}handleBeginFrame(e,t){this.lastFrame||this.startFrame(e),this.lastBeginFrame=e,this.beginFrameQueue.addFrameIfNotExists(t,e,!1,!1)}handleDroppedFrame(e,t,r){this.lastFrame||this.startFrame(e),this.beginFrameQueue.addFrameIfNotExists(t,e,!0,r),this.beginFrameQueue.setDropped(t,!0),this.beginFrameQueue.setPartial(t,r)}handleDrawFrame(e,t){if(this.lastFrame){if(this.mainFrameCommitted||!this.mainFrameRequested){if(this.lastNeedsBeginFrame){(this.framePendingActivation?this.framePendingActivation.triggerTime:this.lastBeginFrame||this.lastNeedsBeginFrame)>this.lastFrame.startTime&&(this.lastFrame.idle=!0,this.lastBeginFrame=null),this.lastNeedsBeginFrame=null}const e=this.beginFrameQueue.processPendingBeginFramesOnDrawFrame(t);for(const t of e){const e=this.lastFrame.idle;this.startFrame(t.startTime),e&&this.framePendingActivation&&this.commitPendingFrame(),t.isDropped&&(this.lastFrame.dropped=!0),t.isPartial&&(this.lastFrame.isPartial=!0)}}this.mainFrameCommitted=!1}else this.startFrame(e)}handleActivateLayerTree(){this.lastFrame&&this.framePendingActivation&&!this.lastNeedsBeginFrame&&this.commitPendingFrame()}handleRequestMainThreadFrame(){this.lastFrame&&(this.mainFrameRequested=!0)}handleCommit(){this.framePendingCommit&&(this.framePendingActivation=this.framePendingCommit,this.framePendingCommit=null,this.mainFrameRequested=!1,this.mainFrameCommitted=!0)}handleLayerTreeSnapshot(e){this.lastLayerTree=e}handleNeedFrameChanged(e,t){t&&(this.lastNeedsBeginFrame=e)}startFrame(e){this.lastFrame&&this.flushFrame(this.lastFrame,e),this.lastFrame=new x(e,e-this.minimumRecordTime)}flushFrame(e,t){e.setLayerTree(this.lastLayerTree),e.setEndTime(t),this.lastLayerTree&&this.lastLayerTree.setPaints(e.paints);const r=this.frames[this.frames.length-1];this.frames.length&&r&&(e.startTime!==r.endTime||e.startTime>e.endTime)&&console.assert(!1,`Inconsistent frame time for frame ${this.frames.length} (${e.startTime} - ${e.endTime})`),this.frames.push(e),"number"==typeof e.mainFrameId&&(this.frameById[e.mainFrameId]=e)}commitPendingFrame(){this.framePendingActivation&&this.lastFrame&&(this.lastFrame.addTimeForCategories(this.framePendingActivation.timeByCategory),this.lastFrame.paints=this.framePendingActivation.paints,this.lastFrame.mainFrameId=this.framePendingActivation.mainFrameId,this.framePendingActivation=null)}addTraceEvents(e,t,r){this.target=e;let a=0;this.currentProcessMainThread=r.length&&r[0].thread||null;for(let e=0;e<t.length;++e){for(;a+1<r.length&&r[a+1].time<=t[e].startTime;)this.currentProcessMainThread=r[++a].thread;this.addTraceEvent(t[e])}this.currentProcessMainThread=null}addTraceEvent(t){if(t.startTime&&t.startTime<this.minimumRecordTime&&(this.minimumRecordTime=t.startTime),t.name===g.SetLayerTreeId)this.layerTreeId=t.args.layerTreeId||t.args.data.layerTreeId;else if(t.id&&"O"===t.phase&&t.name===g.LayerTreeHostImplSnapshot&&Number(t.id)===this.layerTreeId&&this.target){const e=t;this.handleLayerTreeSnapshot(new A(this.target,e))}else this.processCompositorEvents(t),t.thread===this.currentProcessMainThread?this.addMainThreadTraceEvent(t):this.lastFrame&&t.selfTime&&!e.TracingModel.TracingModel.isTopLevelEvent(t)&&this.lastFrame.addTimeForCategory(this.categoryMapper(t),t.selfTime)}processCompositorEvents(e){if(e.args.layerTreeId!==this.layerTreeId)return;const t=e.startTime;e.name===g.BeginFrame?this.handleBeginFrame(t,e.args.frameSeqId):e.name===g.DrawFrame?this.handleDrawFrame(t,e.args.frameSeqId):e.name===g.ActivateLayerTree?this.handleActivateLayerTree():e.name===g.RequestMainThreadFrame?this.handleRequestMainThreadFrame():e.name===g.NeedsBeginFrameChanged?this.handleNeedFrameChanged(t,e.args.data&&e.args.data.needsBeginFrame):e.name===g.DroppedFrame&&this.handleDroppedFrame(t,e.args.frameSeqId,e.args.hasPartialUpdate)}addMainThreadTraceEvent(t){e.TracingModel.TracingModel.isTopLevelEvent(t)&&(this.currentTaskTimeByCategory={},this.lastTaskBeginTime=t.startTime),!this.framePendingCommit&&W.mainFrameMarkers.indexOf(t.name)>=0&&(this.framePendingCommit=new q(this.lastTaskBeginTime||t.startTime,this.currentTaskTimeByCategory)),this.framePendingCommit?(this.addTimeForCategory(this.framePendingCommit.timeByCategory,t),t.name===g.BeginMainThreadFrame&&t.args.data&&t.args.data.frameId&&(this.framePendingCommit.mainFrameId=t.args.data.frameId),t.name===g.Paint&&t.args.data.layerId&&R.forEvent(t).picture&&this.target&&this.framePendingCommit.paints.push(new _(t,this.target)),t.name!==g.CompositeLayers&&t.name!==g.Commit||t.args.layerTreeId!==this.layerTreeId||this.handleCommit()):this.addTimeForCategory(this.currentTaskTimeByCategory,t)}addTimeForCategory(e,t){if(!t.selfTime)return;const r=this.categoryMapper(t);e[r]=(e[r]||0)+t.selfTime}static mainFrameMarkers=[g.ScheduleStyleRecalculation,g.InvalidateLayout,g.BeginMainThreadFrame,g.ScrollLayer]}class A{target;snapshot;paintsInternal;constructor(e,t){this.target=e,this.snapshot=t}async layerTreePromise(){const e=this.snapshot.getSnapshot();if(!e)return null;const t=e.device_viewport_size,r=e.active_tiles,a=e.active_tree.root_layer,n=e.active_tree.layers,i=new D(this.target);return i.setViewportSize(t),i.setTiles(r),await i.setLayers(a,n,this.paintsInternal||[]),i}paints(){return this.paintsInternal||[]}setPaints(e){this.paintsInternal=e}}class x{startTime;startTimeOffset;endTime;duration;timeByCategory;cpuTime;idle;dropped;isPartial;layerTree;paints;mainFrameId;constructor(e,t){this.startTime=e,this.startTimeOffset=t,this.endTime=this.startTime,this.duration=0,this.timeByCategory={},this.cpuTime=0,this.idle=!1,this.dropped=!1,this.isPartial=!1,this.layerTree=null,this.paints=[],this.mainFrameId=void 0}hasWarnings(){return!1}setEndTime(e){this.endTime=e,this.duration=this.endTime-this.startTime}setLayerTree(e){this.layerTree=e}addTimeForCategories(e){for(const t in e)this.addTimeForCategory(t,e[t])}addTimeForCategory(e,t){this.timeByCategory[e]=(this.timeByCategory[e]||0)+t,this.cpuTime+=t}}class _{eventInternal;target;constructor(e,t){this.eventInternal=e,this.target=t}layerId(){return this.eventInternal.args.data.layerId}event(){return this.eventInternal}picturePromise(){const e=R.forEvent(this.eventInternal).picture;if(!e)return Promise.resolve(null);const t=e.getSnapshot(),r=t.params&&t.params.layer_rect,a=t.skp64;return Promise.resolve(r&&a?{rect:r,serializedPicture:a}:null)}async snapshotPromise(){const t=this.target&&this.target.model(e.PaintProfiler.PaintProfilerModel),r=await this.picturePromise();if(!r||!t)return null;const a=await t.loadSnapshot(r.serializedPicture);return a?{rect:r.rect,snapshot:a}:null}}class q{timeByCategory;paints;mainFrameId;triggerTime;constructor(e,t){this.timeByCategory=t,this.paints=[],this.mainFrameId=void 0,this.triggerTime=e}}class H{seqId;startTime;isDropped;isPartial;constructor(e,t,r,a){this.seqId=e,this.startTime=t,this.isDropped=r,this.isPartial=a}}class U{queueFrames;mapFrames;constructor(){this.queueFrames=[],this.mapFrames={}}addFrameIfNotExists(e,t,r,a){e in this.mapFrames||(this.mapFrames[e]=new H(e,t,r,a),this.queueFrames.push(e))}setDropped(e,t){e in this.mapFrames&&(this.mapFrames[e].isDropped=t)}setPartial(e,t){e in this.mapFrames&&(this.mapFrames[e].isPartial=t)}processPendingBeginFramesOnDrawFrame(e){const t=[];if(e in this.mapFrames){for(;this.queueFrames[0]!==e;){const e=this.queueFrames[0];this.mapFrames[e].isDropped&&t.push(this.mapFrames[e]),delete this.mapFrames[e],this.queueFrames.shift()}t.push(this.mapFrames[e]),delete this.mapFrames[e],this.queueFrames.shift()}return t}}var J=Object.freeze({__proto__:null,TimelineFrameModel:W,TracingFrameLayerTree:A,TimelineFrame:x,LayerPaintEvent:_,PendingFrame:q,TimelineFrameBeginFrameQueue:U});class z{totalTime;selfTime;id;event;parent;groupId;isGroupNodeInternal;depth;constructor(e,t){this.totalTime=0,this.selfTime=0,this.id=e,this.event=t,this.groupId="",this.isGroupNodeInternal=!1,this.depth=0}isGroupNode(){return this.isGroupNodeInternal}hasChildren(){throw"Not implemented"}setHasChildren(e){throw"Not implemented"}children(){throw"Not implemented"}searchTree(e,t){t=t||[],this.event&&e(this.event)&&t.push(this);for(const r of this.children().values())r.searchTree(e,t);return t}}class G extends z{root;hasChildrenInternal;childrenInternal;parent;constructor(e,t,r){super(e,t),this.root=r&&r.root,this.hasChildrenInternal=!1,this.childrenInternal=null,this.parent=r}hasChildren(){return this.hasChildrenInternal}setHasChildren(e){this.hasChildrenInternal=e}children(){return this.childrenInternal||this.buildChildren()}buildChildren(){const t=[];for(let e=this;e.parent&&!e.isGroupNode();e=e.parent)t.push(e);t.reverse();const r=new Map,a=this,n=this.root;if(!n)return this.childrenInternal=r,this.childrenInternal;const i=n.startTime,s=n.endTime,o=n.doNotAggregate?function(e){++c,h===t.length&&c<=t.length+2&&u(e,0);--c}:void 0,l=n.doNotAggregate?void 0:j,d=n.getEventGroupIdCallback();let c=0,h=0,m=null;function u(e,n){if(c===t.length+2){if(!m)return;return m.setHasChildren(!0),void(m.selfTime-=n)}let i,s="";l?(i=l(e),s=d?d(e):"",s&&(i+="/"+s)):i=Symbol("uniqueId");let o=r.get(i);o||(o=new G(i,e,a),o.groupId=s,r.set(i,o)),o.selfTime+=n,o.totalTime+=n,m=o}return p.forEachEvent(n.events,(function(r){const{startTime:a,endTime:n}=e.TracingModel.timesForEventInMilliseconds(r);if(++c,c>t.length+2)return;if(!function(r){const{endTime:a}=e.TracingModel.timesForEventInMilliseconds(r);if(h===t.length)return!0;if(h!==c-1)return!1;if(!a)return!1;if(!l)return r===t[h].event&&++h,!1;let n=l(r);const i=d?d(r):"";i&&(n+="/"+i);n===t[h].id&&++h;return!1}(r))return;const o=(void 0!==n?Math.min(n,s):s)-Math.max(i,a);o<0&&console.error("Negative event duration");u(r,o)}),(function(e){--c,h>c&&(h=c)}),o,i,s,n.filter,!1),this.childrenInternal=r,r}getRoot(){return this.root}}class O extends z{childrenInternal;isGroupNodeInternal;constructor(e,t,r){super(e,r),this.childrenInternal=new Map,this.parent=t,this.isGroupNodeInternal=!0}addChild(e,t,r){this.childrenInternal.set(e.id,e),this.selfTime+=t,this.totalTime+=r,e.parent=this}hasChildren(){return!0}children(){return this.childrenInternal}}class V extends z{parent;root;depth;cachedChildren;hasChildrenInternal;constructor(e,t,r,a,n){super(t,r),this.parent=n,this.root=e,this.depth=(n.depth||0)+1,this.cachedChildren=null,this.hasChildrenInternal=a}hasChildren(){return this.hasChildrenInternal}setHasChildren(e){this.hasChildrenInternal=e}children(){if(this.cachedChildren)return this.cachedChildren;const t=[0],r=[],a=[],n=new Map,i=this.root.startTime,s=this.root.endTime;let o=i;const l=this;return p.forEachEvent(this.root.events,(function(n){const{startTime:o,endTime:l}=e.TracingModel.timesForEventInMilliseconds(n),d=(void 0!==l?Math.min(l,s):s)-Math.max(o,i);d<0&&console.assert(!1,"Negative duration of an event");t[t.length-1]-=d,t.push(d);const c=j(n);r.push(c),a.push(n)}),(function(i){const{startTime:d,endTime:c}=e.TracingModel.timesForEventInMilliseconds(i),h=t.pop(),m=r.pop();let u;for(a.pop(),u=l;u.depth>1;u=u.parent)if(u.id!==r[r.length+1-u.depth])return;if(u.id!==m||r.length<l.depth)return;const p=r[r.length-l.depth];if(u=n.get(p),!u){const e=a[a.length-l.depth],t=a.length>l.depth;u=new V(l.root,p,e,t,l),n.set(p,u)}const g=void 0!==c?Math.min(c,s):s,T=g-Math.max(d,o);u.selfTime+=h||0,u.totalTime+=T,o=g}),void 0,i,s,this.root.filter,!1),this.cachedChildren=this.root.filterChildren(n),this.cachedChildren}searchTree(e,t){return t=t||[],this.event&&e(this.event)&&t.push(this),t}}function $(e){return p.isJsFrameEvent(e)?e.args.data||null:R.forEvent(e).topFrame()}function j(e){if(e.name===g.TimeStamp)return`${e.name}:${e.args.data.message}`;if(!p.isJsFrameEvent(e))return e.name;const t=e.args.data,r=t.scriptId||t.url||"",a=t.functionName;return`f:${d.isNativeRuntimeFrame(t)?d.nativeGroup(a)||a:`${a}:${t.lineNumber}:${t.columnNumber}`}@${r}`}var X=Object.freeze({__proto__:null,Node:z,TopDownNode:G,TopDownRootNode:class extends G{filter;events;startTime;endTime;eventGroupIdCallback;doNotAggregate;totalTime;selfTime;constructor(e,t,r,a,n,i){super("",null,null),this.root=this,this.events=e,this.filter=e=>t.every((t=>t.accept(e))),this.startTime=r,this.endTime=a,this.eventGroupIdCallback=i,this.doNotAggregate=n,this.totalTime=a-r,this.selfTime=this.totalTime}children(){return this.childrenInternal||this.grouppedTopNodes()}grouppedTopNodes(){const e=super.children();for(const t of e.values())this.selfTime-=t.totalTime;if(!this.eventGroupIdCallback)return e;const t=new Map;for(const r of e.values()){const e=this.eventGroupIdCallback(r.event);let a=t.get(e);a||(a=new O(e,this,r.event),t.set(e,a)),a.addChild(r,r.selfTime,r.totalTime)}return this.childrenInternal=t,t}getEventGroupIdCallback(){return this.eventGroupIdCallback}},BottomUpRootNode:class extends z{childrenInternal;events;textFilter;filter;startTime;endTime;eventGroupIdCallback;totalTime;constructor(e,t,r,a,n,i){super("",null),this.childrenInternal=null,this.events=e,this.textFilter=t,this.filter=e=>r.every((t=>t.accept(e))),this.startTime=a,this.endTime=n,this.eventGroupIdCallback=i,this.totalTime=n-a}hasChildren(){return!0}filterChildren(e){for(const[t,r]of e)r.event&&!this.textFilter.accept(r.event)&&e.delete(t);return e}children(){return this.childrenInternal||(this.childrenInternal=this.filterChildren(this.grouppedTopNodes())),this.childrenInternal}ungrouppedTopNodes(){const t=this,r=this.startTime,a=this.endTime,n=new Map,i=[a-r],s=[],o=new Map;p.forEachEvent(this.events,(function(t){const{startTime:n,endTime:l}=e.TracingModel.timesForEventInMilliseconds(t),d=(void 0!==l?Math.min(l,a):a)-Math.max(n,r);i[i.length-1]-=d,i.push(d);const c=j(t),h=!o.has(c);h&&o.set(c,d);s.push(h)}),(function(e){const r=j(e);let a=n.get(r);a||(a=new V(t,r,e,!1,t),n.set(r,a));a.selfTime+=i.pop()||0,s.pop()&&(a.totalTime+=o.get(r)||0,o.delete(r));s.length&&a.setHasChildren(!0)}),void 0,r,a,this.filter,!1),this.selfTime=i.pop()||0;for(const e of n)e[1].selfTime<=0&&n.delete(e[0]);return n}grouppedTopNodes(){const e=this.ungrouppedTopNodes();if(!this.eventGroupIdCallback)return e;const t=new Map;for(const r of e.values()){const e=this.eventGroupIdCallback(r.event);let a=t.get(e);a||(a=new O(e,this,r.event),t.set(e,a)),a.addChild(r,r.selfTime,r.selfTime)}return t}},GroupNode:O,BottomUpNode:V,eventURL:function(e){const t=e.args.data||e.args.beginData;if(t&&t.url)return t.url;let r=$(e);for(;r;){const e=r.url;if(e)return e;r=r.parent}return null},eventStackFrame:$,_eventId:j});export{J as TimelineFrameModel,c as TimelineJSProfile,M as TimelineModel,b as TimelineModelFilter,X as TimelineProfileTree,N as TracingLayerTree};
@@ -0,0 +1 @@
1
+ import*as t from"../../../core/platform/platform.js";const e=new Map;var r=Object.freeze({__proto__:null,filmStripFromTraceEngine:function(r,n){const s=[],o=void 0!==n?n:r.Meta.traceBounds.min,i=e.get(r)?.get(o);if(i)return i;for(const t of r.Screenshots){if(t.ts<o)continue;const e={index:s.length,screenshotEvent:t,screenshotAsString:t.args.snapshot};s.push(e)}const a={frames:Array.from(s)};return t.MapUtilities.getWithDefault(e,r,(()=>new Map)).set(o,a),a},frameClosestToTimestamp:function(e,r){const n=t.ArrayUtilities.nearestIndexFromEnd(e.frames,(t=>t.screenshotEvent.ts<r));return null===n?null:e.frames[n]}});export{r as FilmStrip};
@@ -0,0 +1 @@
1
+ import*as e from"../../../core/platform/platform.js";import*as t from"../types/types.js";import*as n from"../helpers/helpers.js";const r=new Map;let a="",i="",s=t.TraceEvents.ProcessID(-1),o=t.TraceEvents.ThreadID(-1),c=t.TraceEvents.ProcessID(-1),d=t.TraceEvents.ThreadID(-1),l=null;const u=new Set,m={min:t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),max:t.Timing.MicroSeconds(Number.NEGATIVE_INFINITY),range:t.Timing.MicroSeconds(Number.POSITIVE_INFINITY)},g=new Map,f=new Map,T=new Map;let p=t.Timing.MicroSeconds(-1);const v=new Set(["B","E","X","I"]);let h=1;function E(n,a){const i=e.MapUtilities.getWithDefault(r,a.frame,(()=>new Map)),s=e.MapUtilities.getWithDefault(i,a.processId,(()=>({frame:a,window:{min:t.Timing.MicroSeconds(0),max:t.Timing.MicroSeconds(0),range:t.Timing.MicroSeconds(0)}})));s.window.min===t.Timing.MicroSeconds(0)&&(s.window.min=n.ts)}function w(){if(3!==h)throw new Error("Meta Handler is not finalized");return{traceBounds:{...m},browserProcessId:s,browserThreadId:o,gpuProcessId:c,gpuThreadId:d===t.TraceEvents.ThreadID(-1)?void 0:d,viewportRect:l||void 0,mainFrameId:a,mainFrameURL:i,navigationsByFrameId:new Map(g),navigationsByNavigationId:new Map(f),threadsInProcess:new Map(T),rendererProcessesByFrame:new Map(r),topLevelRendererIds:new Set(u)}}var M=Object.freeze({__proto__:null,reset:function(){g.clear(),f.clear(),s=t.TraceEvents.ProcessID(-1),o=t.TraceEvents.ThreadID(-1),c=t.TraceEvents.ProcessID(-1),d=t.TraceEvents.ThreadID(-1),l=null,u.clear(),T.clear(),r.clear(),m.min=t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),m.max=t.Timing.MicroSeconds(Number.NEGATIVE_INFINITY),m.range=t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),p=t.Timing.MicroSeconds(-1),h=1},initialize:function(){if(1!==h)throw new Error("Meta Handler was not reset");h=2},handleEvent:function(n){if(2!==h)throw new Error("Meta Handler is not initialized");if(0!==n.ts&&!n.name.endsWith("::UMA")&&v.has(n.ph)){m.min=t.Timing.MicroSeconds(Math.min(n.ts,m.min));const e=n.dur||t.Timing.MicroSeconds(0);m.max=t.Timing.MicroSeconds(Math.max(n.ts+e,m.max))}if(!t.TraceEvents.isProcessName(n)||"Browser"!==n.args.name&&"HeadlessBrowser"!==n.args.name)if(!t.TraceEvents.isProcessName(n)||"Gpu"!==n.args.name&&"GPU Process"!==n.args.name)if(t.TraceEvents.isThreadName(n)&&"CrGpuMain"===n.args.name)d=n.tid;else{if(t.TraceEvents.isThreadName(n)&&"CrBrowserMain"===n.args.name&&(o=n.tid),t.TraceEvents.isTraceEventMainFrameViewport(n)&&null===l){const e=n.args.data.viewport_rect,t=e[0],r=e[1],a=e[2],i=e[5];l=new DOMRect(t,r,a,i)}if(t.TraceEvents.isTraceEventTracingStartedInBrowser(n)){if(p=n.ts,!n.args.data)throw new Error("No frames found in trace data");for(const e of n.args.data.frames??[])E(n,e),e.parent||(a=e.frame,i=e.url,u.add(e.processId))}else if(t.TraceEvents.isTraceEventFrameCommittedInBrowser(n)){const e=n.args.data;if(!e)return;if(E(n,e),e.parent)return;u.add(e.processId)}else if(t.TraceEvents.isTraceEventCommitLoad(n)){const e=n.args.data;if(!e)return;const{frame:t,name:r,url:a}=e;E(n,{processId:n.pid,frame:t,name:r,url:a})}else if(t.TraceEvents.isThreadName(n)){e.MapUtilities.getWithDefault(T,n.pid,(()=>new Map)).set(n.tid,n)}else if(t.TraceEvents.isTraceEventNavigationStartWithURL(n)&&n.args.data){const e=n.args.data.navigationId;if(f.has(e))throw new Error("Found multiple navigation start events with the same navigation ID.");f.set(e,n);const t=n.args.frame,r=g.get(t)||[];return r.push(n),void g.set(t,r)}}else c=n.pid;else s=n.pid},finalize:async function(){if(2!==h)throw new Error("Handler is not initialized");m.min=p,m.range=t.Timing.MicroSeconds(m.max-m.min);for(const[,e]of r){const n=[...e.values()];for(let e=0;e<n.length;e++){const r=n[e],a=n[e+1];a?(r.window.max=t.Timing.MicroSeconds(a.window.min-1),r.window.range=t.Timing.MicroSeconds(r.window.max-r.window.min)):(r.window.max=t.Timing.MicroSeconds(m.max),r.window.range=t.Timing.MicroSeconds(m.max-r.window.min))}}for(const[e,t]of g)if(!r.has(e)){g.delete(e);for(const e of t)e.args.data&&f.delete(e.args.data.navigationId)}h=3},data:w});let S=1;const y=new Map;let I=[];var b=Object.freeze({__proto__:null,reset:function(){y.clear(),I=[],S=1},initialize:function(){if(1!==S)throw new Error("GPU Handler was not reset before being initialized");S=2},handleEvent:function(e){if(2!==S)throw new Error("GPU Handler is not initialized");t.TraceEvents.isTraceEventGPUTask(e)&&n.Trace.addEventToProcessThread(e,y)},finalize:async function(){if(2!==S)throw new Error("GPU Handler is not initialized");const{gpuProcessId:e,gpuThreadId:t}=w(),n=y.get(e);n&&t&&(I=n.get(t)||[]),S=3},data:function(){if(3!==S)throw new Error("GPU Handler is not finalized");return{mainGPUThreadTasks:[...I]}},deps:function(){return["Meta"]}});const C=new Map;let P=[];function R(){return[...P]}var D=Object.freeze({__proto__:null,reset:function(){C.clear(),P.length=0},handleEvent:function(e){"O"===e.ph&&"Screenshot"===e.name&&n.Trace.addEventToProcessThread(e,C)},finalize:async function(){const{browserProcessId:e,browserThreadId:t}=w(),n=C.get(e);n&&(P=n.get(t)||[])},data:R,deps:function(){return["Meta"]}});const k=n.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(5e3)),F=n.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(1e3)),_=[],L=[],W=[],N=[];let x=0,z=-1;const U=[],O=[];let q=1;function H(e){return{min:e,max:e,range:t.Timing.MicroSeconds(0)}}function A(e,n){e.max=n,e.range=t.Timing.MicroSeconds(e.max-e.min)}function B(e){const t=R(),n=J(t,e);if(n)return`data:img/png;base64,${t[n].args.snapshot}`}function J(t,n){return e.ArrayUtilities.nearestIndexFromBeginning(t,(e=>e.ts>n))}var G=Object.freeze({__proto__:null,MAX_CLUSTER_DURATION:k,MAX_SHIFT_TIME_DELTA:F,initialize:function(){if(1!==q)throw new Error("LayoutShifts Handler was not reset");q=2},reset:function(){q=1,_.length=0,L.length=0,N.length=0,U.length=0,x=0,O.length=0,z=-1},handleEvent:function(e){if(2!==q)throw new Error("Handler is not initialized");!t.TraceEvents.isTraceEventLayoutShift(e)||e.args.data?.had_recent_input?t.TraceEvents.isTraceEventLayoutInvalidation(e)?L.push(e):(t.TraceEvents.isTraceEventStyleRecalcInvalidation(e)&&W.push(e),t.TraceEvents.isTraceEventPrePaint(e)&&N.push(e)):_.push(e)},findNextScreenshotEventIndex:J,finalize:async function(){_.sort(((e,t)=>e.ts-t.ts)),N.sort(((e,t)=>e.ts-t.ts)),L.sort(((e,t)=>e.ts-t.ts)),await async function(){const{navigationsByFrameId:n,mainFrameId:r,traceBounds:a}=w(),i=n.get(r)||[];if(0===_.length)return;let s=_[0].ts,o=_[0].ts,c=null;for(const n of _){const r=n.ts-s>k,a=n.ts-o>F,d=e.ArrayUtilities.nearestIndexFromEnd(i,(e=>e.ts<n.ts)),l=c!==d&&null!==d;if(r||a||l||!U.length){const e=n.ts,c=r?s+k:1/0,u=a?o+F:1/0,m=l?i[d].ts:1/0,g=Math.min(c,u,m);if(U.length>0){A(U[U.length-1].clusterWindow,t.Timing.MicroSeconds(g))}U.push({events:[],clusterWindow:H(e),clusterCumulativeScore:0,scoreWindows:{good:H(e),needsImprovement:null,bad:null}}),s=e}const u=U[U.length-1],m=null!==d?t.Timing.MicroSeconds(n.ts-i[d].ts):void 0;if(u.clusterCumulativeScore+=n.args.data?n.args.data.weighted_score_delta:0,!n.args.data)continue;const g={...n,args:{frame:n.args.frame,data:{...n.args.data,rawEvent:n}},parsedData:{screenshotSource:B(n.ts),timeFromNavigation:m,cumulativeWeightedScoreInWindow:u.clusterCumulativeScore,sessionWindowData:{cumulativeWindowScore:0,id:U.length}}};u.events.push(g),A(u.clusterWindow,n.ts),o=n.ts,c=d}for(const n of U){let r=0,s=-1;if(n===U[U.length-1]){const r=k+n.clusterWindow.min,s=n.clusterWindow.max+F,o=e.ArrayUtilities.nearestIndexFromBeginning(i,(e=>e.ts>n.clusterWindow.max)),c=o?i[o].ts:1/0,d=Math.min(r,s,a.max,c);A(n.clusterWindow,t.Timing.MicroSeconds(d))}for(const e of n.events){r+=e.args.data?e.args.data.weighted_score_delta:0,s=e.parsedData.sessionWindowData.id;const a=e.ts;e.parsedData.sessionWindowData.cumulativeWindowScore=n.clusterCumulativeScore,r<.1?A(n.scoreWindows.good,a):r>=.1&&r<.25?(n.scoreWindows.needsImprovement||(A(n.scoreWindows.good,t.Timing.MicroSeconds(a-1)),n.scoreWindows.needsImprovement=H(a)),A(n.scoreWindows.needsImprovement,a)):r>=.25&&(n.scoreWindows.bad||(n.scoreWindows.needsImprovement?A(n.scoreWindows.needsImprovement,t.Timing.MicroSeconds(a-1)):A(n.scoreWindows.good,t.Timing.MicroSeconds(a-1)),n.scoreWindows.bad=H(e.ts)),A(n.scoreWindows.bad,a)),n.scoreWindows.bad?A(n.scoreWindows.bad,n.clusterWindow.max):n.scoreWindows.needsImprovement?A(n.scoreWindows.needsImprovement,n.clusterWindow.max):A(n.scoreWindows.good,n.clusterWindow.max)}r>x&&(z=s,x=r)}}(),function(){const{traceBounds:e}=w();O.push({ts:e.min,score:0});for(const e of U){let t=0;e.events[0].args.data&&O.push({ts:e.clusterWindow.min,score:e.events[0].args.data.weighted_score_delta});for(let n=0;n<e.events.length;n++){const r=e.events[n];r.args.data&&(t+=r.args.data.weighted_score_delta,O.push({ts:r.ts,score:t}))}O.push({ts:e.clusterWindow.max,score:0})}}(),q=3},data:function(){if(3!==q)throw new Error("Layout Shifts Handler is not finalized");return{clusters:[...U],sessionMaxScore:x,clsWindowID:z,prePaintEvents:[...N],layoutInvalidationEvents:[...L],styleRecalcInvalidationEvents:[],scoreRecords:[...O]}},deps:function(){return["Screenshots","Meta"]},stateForLayoutShiftScore:function(e){let t="good";return e>=.1&&(t="ok"),e>=.25&&(t="bad"),t}});const V=new Map,j=new Map,Y=[];function $(e,t,n){V.has(e)||V.set(e,{});const r=V.get(e);if(!r)throw new Error(`Unable to locate trace events for request ID ${e}`);if(Array.isArray(r[t])){const e=n;r[t].push(...e)}else r[t]=n}function X(e){for(const t of e)if(t>0)return t;return 0}let K=1;var Q=Object.freeze({__proto__:null,reset:function(){j.clear(),V.clear(),Y.length=0,K=1},initialize:function(){K=2},handleEvent:function(e){if(2!==K)throw new Error("Network Request handler is not initialized");t.TraceEvents.isTraceEventResourceWillSendRequest(e)?$(e.args.data.requestId,"willSendRequests",[e]):t.TraceEvents.isTraceEventResourceSendRequest(e)?$(e.args.data.requestId,"sendRequests",[e]):t.TraceEvents.isTraceEventResourceReceiveResponse(e)?$(e.args.data.requestId,"receiveResponse",e):t.TraceEvents.isTraceEventResourceReceivedData(e)?$(e.args.data.requestId,"receivedData",[e]):t.TraceEvents.isTraceEventResourceFinish(e)&&$(e.args.data.requestId,"resourceFinish",e)},finalize:async function(){if(2!==K)throw new Error("Network Request handler is not initialized");const{rendererProcessesByFrame:n}=w();for(const[r,a]of V.entries()){if(!a.sendRequests||!a.receiveResponse)continue;const i=[];for(let e=0;e<a.sendRequests.length-1;e++){const n=a.sendRequests[e],r=a.sendRequests[e+1];let s=n.ts,o=t.Timing.MicroSeconds(r.ts-n.ts);if(a.willSendRequests&&a.willSendRequests[e]&&a.willSendRequests[e+1]){const n=a.willSendRequests[e],r=a.willSendRequests[e+1];s=n.ts,o=t.Timing.MicroSeconds(r.ts-n.ts)}i.push({url:n.args.data.url,priority:n.args.data.priority,ts:s,dur:o})}const s=a.sendRequests[0],o=a.sendRequests[a.sendRequests.length-1],{timing:c}=a.receiveResponse.args.data;if(!c)continue;const d=a.willSendRequests&&a.willSendRequests.length?t.Timing.MicroSeconds(a.willSendRequests[0].ts):t.Timing.MicroSeconds(s.ts),l=a.willSendRequests&&a.willSendRequests.length?t.Timing.MicroSeconds(a.willSendRequests[a.willSendRequests.length-1].ts):t.Timing.MicroSeconds(o.ts),u=a.resourceFinish?a.resourceFinish.ts:l,m=a.resourceFinish?t.Timing.MicroSeconds(1e6*a.resourceFinish.args.data.finishTime):t.Timing.MicroSeconds(u),g=t.Timing.MicroSeconds((m||l)-l),f=t.Timing.MicroSeconds(u-(m||u)),T=t.Timing.MicroSeconds(l-d),p=t.Timing.MicroSeconds(e.NumberUtilities.clamp(1e6*c.requestTime-l,0,Number.MAX_VALUE)),v=t.Timing.MicroSeconds(X([1e3*c.dnsStart,1e3*c.connectStart,1e3*c.sendStart,a.receiveResponse.ts-l])),h=t.Timing.MicroSeconds(1e3*(c.receiveHeadersEnd-c.sendEnd)),E=t.Timing.MicroSeconds(1e6*c.requestTime+1e3*c.receiveHeadersEnd),w=t.Timing.MicroSeconds((m||E)-E),M=t.Timing.MicroSeconds(g+f),S=t.Timing.MicroSeconds(1e3*(c.dnsEnd-c.dnsStart)),y=t.Timing.MicroSeconds(1e3*(c.sslEnd-c.sslStart)),I=t.Timing.MicroSeconds(1e3*(c.proxyEnd-c.proxyStart)),b=t.Timing.MicroSeconds(1e3*(c.sendEnd-c.sendStart)),C=t.Timing.MicroSeconds(1e3*(c.connectEnd-c.connectStart)),{priority:P,frame:R,url:D,renderBlocking:k}=o.args.data,{mimeType:F,fromCache:_,fromServiceWorker:L}=a.receiveResponse.args.data,{encodedDataLength:W,decodedBodyLength:N}=a.resourceFinish?a.resourceFinish.args.data:{encodedDataLength:0,decodedBodyLength:0},{receiveHeadersEnd:x,requestTime:z,sendEnd:U,sendStart:O,sslStart:q}=c,{host:H,protocol:A,pathname:B,search:J}=new URL(D),G="https:"===A,V=n.get(R)?.get(o.pid),$=V?V.frame.url:"",K={args:{data:{decodedBodyLength:N,dnsLookup:S,download:w,encodedDataLength:W,finishTime:m,frame:R,fromCache:_,fromServiceWorker:L,initialConnection:C,host:H,isHttps:G,mimeType:F,networkDuration:g,pathname:B,search:J,priority:P,processingDuration:f,protocol:A,proxyNegotiation:I,redirectionDuration:T,queueing:p,receiveHeadersEnd:t.Timing.MicroSeconds(x),redirects:i,requestId:r,renderBlocking:k||"non_blocking",requestSent:b,requestTime:z,requestingFrameUrl:$,sendEnd:t.Timing.MicroSeconds(1e3*U),sendStart:t.Timing.MicroSeconds(1e3*O),ssl:y,sslStart:t.Timing.MicroSeconds(1e3*q),stalled:v,statusCode:a.receiveResponse.args.data.statusCode,stackTrace:o.args.data.stackTrace,totalTime:M,url:D,waiting:h}},cat:"loading",name:"SyntheticNetworkRequest",ph:"X",dur:t.Timing.MicroSeconds(u-d),tdur:t.Timing.MicroSeconds(u-d),ts:t.Timing.MicroSeconds(d),tts:t.Timing.MicroSeconds(d),pid:o.pid,tid:o.tid};if(K.args.data.fromCache){K.args.data.queueing=t.Timing.MicroSeconds(0),K.args.data.waiting=t.Timing.MicroSeconds(0),K.args.data.dnsLookup=t.Timing.MicroSeconds(0),K.args.data.initialConnection=t.Timing.MicroSeconds(0),K.args.data.ssl=t.Timing.MicroSeconds(0),K.args.data.requestSent=t.Timing.MicroSeconds(0),K.args.data.proxyNegotiation=t.Timing.MicroSeconds(0),K.args.data.networkDuration=t.Timing.MicroSeconds(0);const e=a.receiveResponse?a.receiveResponse.ts:d;K.args.data.stalled=t.Timing.MicroSeconds(e-d),K.args.data.download=t.Timing.MicroSeconds(u-e)}const Q=e.MapUtilities.getWithDefault(j,H,(()=>({renderBlocking:[],nonRenderBlocking:[],all:[]})));"non_blocking"===K.args.data.renderBlocking?Q.nonRenderBlocking.push(K):Q.renderBlocking.push(K),Q.all.push(K),Y.push(K)}K=3},data:function(){if(3!==K)throw new Error("Network Request handler is not finalized");return{byOrigin:new Map(j),byTime:[...Y]}},deps:function(){return["Meta"]}});const Z=new Map;let ee=[];let te=[];const ne=new Set,re=[t.TraceEvents.isTraceEventMarkDOMContent,t.TraceEvents.isTraceEventMarkLoad,t.TraceEvents.isTraceEventFirstPaint,t.TraceEvents.isTraceEventFirstContentfulPaint,t.TraceEvents.isTraceEventLargestContentfulPaintCandidate];function ae(e){return re.some((t=>t(e)))}const ie=[...re,t.TraceEvents.isTraceEventInteractiveTime];function se(e){return ie.some((t=>t(e)))}function oe(r,a){const i=r.args.data?.navigationId;if(!i)throw new Error("Navigation event unexpectedly had no navigation ID.");const s=de(a),{rendererProcessesByFrame:o}=w(),c=o.get(s);if(!c)return;const d=c.get(a.pid);if(!d)return;if(a.ts>=d.window.min&&a.ts<=d.window.max)if(t.TraceEvents.isTraceEventFirstContentfulPaint(a)){const e=t.Timing.MicroSeconds(a.ts-r.ts);ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(e,{format:2,maximumFractionDigits:2}),metricName:"FCP",classification:ue(e),navigation:r})}else if(t.TraceEvents.isTraceEventFirstPaint(a)){const e=t.Timing.MicroSeconds(a.ts-r.ts);ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(e,{format:2,maximumFractionDigits:2}),metricName:"FP",classification:"unclassified",navigation:r})}else if(t.TraceEvents.isTraceEventMarkDOMContent(a)){const e=t.Timing.MicroSeconds(a.ts-r.ts);ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(e,{format:2,maximumFractionDigits:2}),metricName:"DCL",classification:"unclassified",navigation:r})}else if(t.TraceEvents.isTraceEventInteractiveTime(a)){const e=t.Timing.MicroSeconds(a.ts-r.ts);ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(e,{format:2,maximumFractionDigits:2}),metricName:"TTI",classification:me(e),navigation:r});const o=n.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(a.args.args.total_blocking_time_ms));ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(o,{format:1,maximumFractionDigits:2}),metricName:"TBT",classification:Te(o),navigation:r})}else if(t.TraceEvents.isTraceEventMarkLoad(a)){const e=t.Timing.MicroSeconds(a.ts-r.ts);ce(s,i,{event:a,score:n.Timing.formatMicrosecondsTime(e,{format:2,maximumFractionDigits:2}),metricName:"L",classification:"unclassified",navigation:r})}else if(t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(a)){const o=a.args.data?.candidateIndex;if(!o)throw new Error("Largest Contenful Paint unexpectedly had no candidateIndex.");const c=t.Timing.MicroSeconds(a.ts-r.ts),d={event:a,score:n.Timing.formatMicrosecondsTime(c,{format:2,maximumFractionDigits:2}),metricName:"LCP",classification:ge(c),navigation:r},l=e.MapUtilities.getWithDefault(Z,s,(()=>new Map)),u=e.MapUtilities.getWithDefault(l,i,(()=>new Map)).get("LCP");if(void 0===u)return ne.add(d.event),void ce(s,i,d);const m=u.event;if(!t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(m))return;const g=m.args.data?.candidateIndex;if(!g)return;g<o&&(ne.delete(m),ne.add(d.event),ce(s,i,d))}else if(!t.TraceEvents.isTraceEventLayoutShift(a))return e.assertNever(a,`Unexpected event type: ${a}`)}function ce(t,n,r){const a=e.MapUtilities.getWithDefault(Z,t,(()=>new Map)),i=e.MapUtilities.getWithDefault(a,n,(()=>new Map));i.delete(r.metricName),i.set(r.metricName,r)}function de(n){if(t.TraceEvents.isTraceEventFirstContentfulPaint(n)||t.TraceEvents.isTraceEventInteractiveTime(n)||t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(n)||t.TraceEvents.isTraceEventLayoutShift(n)||t.TraceEvents.isTraceEventFirstPaint(n))return n.args.frame;if(t.TraceEvents.isTraceEventMarkDOMContent(n)||t.TraceEvents.isTraceEventMarkLoad(n)){const e=n.args.data?.frame;if(!e)throw new Error("MarkDOMContent unexpectedly had no frame ID.");return e}e.assertNever(n,`Unexpected event type: ${n}`)}function le(r){if(t.TraceEvents.isTraceEventFirstContentfulPaint(r)||t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(r)||t.TraceEvents.isTraceEventFirstPaint(r)){const e=r.args.data?.navigationId;if(!e)throw new Error("Trace event unexpectedly had no navigation ID.");const{navigationsByNavigationId:t}=w(),n=t.get(e);return n||null}if(t.TraceEvents.isTraceEventMarkDOMContent(r)||t.TraceEvents.isTraceEventInteractiveTime(r)||t.TraceEvents.isTraceEventLayoutShift(r)||t.TraceEvents.isTraceEventMarkLoad(r)){const e=de(r),{navigationsByFrameId:t}=w();return n.Trace.getNavigationForTraceEvent(r,e,t)}return e.assertNever(r,`Unexpected event type: ${r}`)}function ue(e){const r=n.Timing.secondsToMicroseconds(t.Timing.Seconds(1.8));let a="bad";return e<=n.Timing.secondsToMicroseconds(t.Timing.Seconds(3))&&(a="ok"),e<=r&&(a="good"),a}function me(e){const r=n.Timing.secondsToMicroseconds(t.Timing.Seconds(3.8));let a="bad";return e<=n.Timing.secondsToMicroseconds(t.Timing.Seconds(7.3))&&(a="ok"),e<=r&&(a="good"),a}function ge(e){const r=n.Timing.secondsToMicroseconds(t.Timing.Seconds(2.5));let a="bad";return e<=n.Timing.secondsToMicroseconds(t.Timing.Seconds(4))&&(a="ok"),e<=r&&(a="good"),a}function fe(e){return"unclassified"}function Te(e){const r=n.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(200));let a="bad";return e<=n.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(600))&&(a="ok"),e<=r&&(a="good"),a}var pe=Object.freeze({__proto__:null,reset:function(){Z.clear(),te=[],ee=[],ne.clear()},MarkerName:["MarkDOMContent","MarkLoad","firstPaint","firstContentfulPaint","largestContentfulPaint::Candidate"],isTraceEventMarkerEvent:ae,eventIsPageLoadEvent:se,handleEvent:function(e){se(e)&&te.push(e)},getFrameIdForPageLoadEvent:de,getFirstFCPTimestampFromModelData:function(e){const t=e.Meta.mainFrameId,n=e.PageLoadMetrics.metricScoresByFrameId.get(t);if(!n)return null;let r=null;for(const e of n.values()){const t=e.get("FCP")?.event?.ts;t&&(r?t<r&&(r=t):r=t)}return r},scoreClassificationForFirstContentfulPaint:ue,scoreClassificationForTimeToInteractive:me,scoreClassificationForLargestContentfulPaint:ge,scoreClassificationForDOMContentLoaded:fe,scoreClassificationForTotalBlockingTime:Te,finalize:async function(){te.sort(((e,t)=>e.ts-t.ts));for(const e of te){const t=le(e);t&&oe(t,e)}const e=function(){const e=[],t=[...Z.values()].flatMap((e=>[...e.values()]));for(let n=0;n<t.length;n++){const r=t[n].get("LCP");r&&r.event&&e.push(r.event)}return e}(),n=w().mainFrameId,r=[...e,...te.filter((e=>!t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(e)))].filter(ae);ee=r.filter((e=>de(e)===n)).sort(((e,t)=>e.ts-t.ts))},data:function(){return{metricScoresByFrameId:new Map(Z),allMarkerEvents:[...ee]}},deps:function(){return["Meta"]}});const ve=[];let he=null;const Ee=[],we=[],Me=new Map,Se=[];let ye=1;const Ie=new Set(["pointerdown","touchstart","pointerup","touchend","mousedown","mouseup","click"]),be=new Set(["keydown","keypress","keyup"]);function Ce(e){return Ie.has(e.type)?"POINTER":be.has(e.type)?"KEYBOARD":"OTHER"}function Pe(e){const n={POINTER:new Map,KEYBOARD:new Map,OTHER:new Map};function r(e){const r=Ce(e),a=n[r],i=t.Timing.MicroSeconds(e.ts+e.dur),s=a.get(i);s?e.ts<s.ts&&a.set(i,e):a.set(i,e)}for(const t of e)r(t);const a=Object.values(n).flatMap((e=>Array.from(e.values())));return a.sort(((e,t)=>e.ts-t.ts)),a}var Re=Object.freeze({__proto__:null,reset:function(){ve.length=0,Ee.length=0,Se.length=0,Me.clear(),we.length=0,ye=2},handleEvent:function(e){if(2!==ye)throw new Error("Handler is not initialized");if(!t.TraceEvents.isTraceEventEventTiming(e))return;if(t.TraceEvents.isTraceEventEventTimingEnd(e)&&Me.set(e.id,e),ve.push(e),!e.args.data||!t.TraceEvents.isTraceEventEventTimingStart(e))return;const{duration:n,interactionId:r}=e.args.data;n<1||void 0===r||0===r||Se.push(e)},categoryOfInteraction:Ce,removeNestedInteractions:Pe,finalize:async function(){for(const e of Se){const n=Me.get(e.id);if(!n)continue;if(!e.args.data?.type||!e.args.data?.interactionId)continue;const r={cat:e.cat,name:e.name,pid:e.pid,tid:e.tid,ph:e.ph,args:{data:{beginEvent:e,endEvent:n}},ts:e.ts,dur:t.Timing.MicroSeconds(n.ts-e.ts),type:e.args.data.type,interactionId:e.args.data.interactionId};(!he||he.dur<r.dur)&&(he=r),Ee.push(r)}ye=3,we.push(...Pe(Ee))},data:function(){return{allEvents:[...ve],interactionEvents:[...Ee],interactionEventsWithNoNesting:[...we],longestInteractionEvent:he}}});const De=[],ke=[],Fe=[],_e=[],Le=[];let We=1;const Ne=["workerStart","redirectStart","redirectEnd","fetchStart","domainLookupStart","domainLookupEnd","connectStart","connectEnd","secureConnectionStart","requestStart","responseStart","responseEnd"],xe=["navigationStart","unloadEventStart","unloadEventEnd","redirectStart","redirectEnd","fetchStart","commitNavigationEnd","domainLookupStart","domainLookupEnd","connectStart","connectEnd","secureConnectionStart","requestStart","responseStart","responseEnd","domLoading","domInteractive","domContentLoadedEventStart","domContentLoadedEventEnd","domComplete","loadEventStart","loadEventEnd"];var ze=Object.freeze({__proto__:null,reset:function(){De.length=0,ke.length=0,Fe.length=0,_e.length=0,Le.length=0,We=2},handleEvent:function(e){if(2!==We)throw new Error("UserTimings handler is not initialized");[...Ne,...xe].includes(e.name)||(t.TraceEvents.isTraceEventPerformanceMeasure(e)?ke.push(e):(t.TraceEvents.isTraceEventPerformanceMark(e)&&Fe.push(e),t.TraceEvents.isTraceEventConsoleTime(e)&&_e.push(e),t.TraceEvents.isTraceEventTimeStamp(e)&&Le.push(e)))},finalize:async function(){if(2!==We)throw new Error("UserTimings handler is not initialized");const r=new Map;for(const t of[...ke,..._e]){const a=n.Trace.extractId(t);if(void 0===a)continue;const i=`${t.cat}:${a}:${t.name}`,s=e.MapUtilities.getWithDefault(r,i,(()=>({begin:null,end:null}))),o="b"===t.ph,c="e"===t.ph;o?s.begin=t:c&&(s.end=t)}for(const[e,n]of r.entries()){if(!n.begin||!n.end)continue;const r={cat:n.end.cat,ph:n.end.ph,pid:n.end.pid,tid:n.end.tid,id:e,name:n.begin.name,dur:t.Timing.MicroSeconds(n.end.ts-n.begin.ts),ts:n.begin.ts,args:{data:{beginEvent:n.begin,endEvent:n.end}}};De.push(r)}De.sort(((e,t)=>e.ts>t.ts?1:t.ts>e.ts?-1:0)),We=3},data:function(){if(3!==We)throw new Error("UserTimings handler is not finalized");return{performanceMeasures:De.filter(t.TraceEvents.isTraceEventPerformanceMeasure),consoleTimings:De.filter(t.TraceEvents.isTraceEventConsoleTime),performanceMarks:[...Fe],timestampEvents:[...Le]}}});const Ue={UserTimings:ze,PageLoadMetrics:pe,UserInteractions:Re,LayoutShifts:G,Screenshots:D,GPU:b,NetworkRequests:Q};var Oe=Object.freeze({__proto__:null,ENABLED_TRACE_HANDLERS:Ue});const qe=[];var He=Object.freeze({__proto__:null,reset:function(){qe.length=0},handleEvent:function(e){t.TraceEvents.isTraceEventAnimation(e)&&qe.push(e)},data:function(){return{animations:qe}}});const Ae=new Map;var Be=Object.freeze({__proto__:null,reset:function(){Ae.clear()},handleEvent:function(e){t.TraceEvents.isTraceEventLargestImagePaintCandidate(e)&&e.args.data&&Ae.set(e.args.data.DOMNodeId,e)},data:function(){return new Map(Ae)}});const Je=new Map;var Ge=Object.freeze({__proto__:null,reset:function(){Je.clear()},handleEvent:function(e){t.TraceEvents.isTraceEventLargestTextPaintCandidate(e)&&e.args.data&&Je.set(e.args.data.DOMNodeId,e)},data:function(){return new Map(Je)}});const Ve=new Map([["Program",{category:"Other",label:"Other"}],["RunTask",{category:"Other",label:"Run Task"}],["AsyncTask",{category:"Other",label:"Async Task"}],["XHRLoad",{category:"Load",label:"Load"}],["XHRReadyStateChange",{category:"Load",label:"ReadyStateChange"}],["ParseHTML",{category:"Parse",label:"Parse HTML"}],["ParseAuthorStyleSheet",{category:"Parse",label:"Parse StyleSheet"}],["V8.CompileScript",{category:"V8",label:"Compile Script"}],["V8.CompileCode",{category:"V8",label:"Compile Code"}],["V8.CompileModule",{category:"V8",label:"Compile Module"}],["V8.OptimizeCode",{category:"V8",label:"Optimize"}],["v8.wasm.streamFromResponseCallback",{category:"Js",label:"Streaming Wasm Response"}],["v8.wasm.compiledModule",{category:"Js",label:"Compiled Wasm Module"}],["v8.wasm.cachedModule",{category:"Js",label:"Cached Wasm Module"}],["v8.wasm.moduleCacheHit",{category:"Js",label:"Wasm Module Cache Hit"}],["v8.wasm.moduleCacheInvalid",{category:"Js",label:"Wasm Module Cache Invalid"}],["RunMicrotasks",{category:"Js",label:"Run Microtasks"}],["EvaluateScript",{category:"Js",label:"Evaluate Script"}],["FunctionCall",{category:"Js",label:"Function Call"}],["EventDispatch",{category:"Js",label:"Event"}],["RequestMainThreadFrame",{category:"Js",label:"Request Main Thread Frame"}],["RequestAnimationFrame",{category:"Js",label:"Request Animation Frame"}],["CancelAnimationFrame",{category:"Js",label:"Cancel Animation Frame"}],["FireAnimationFrame",{category:"Js",label:"Animation Frame"}],["RequestIdleCallback",{category:"Js",label:"Request Idle Callback"}],["CancelIdleCallback",{category:"Js",label:"Cancel Idle Callback"}],["FireIdleCallback",{category:"Js",label:"Idle Callback"}],["TimerInstall",{category:"Js",label:"Timer Installed"}],["TimerRemove",{category:"Js",label:"Timer Removed"}],["TimerFire",{category:"Js",label:"Timer Fired"}],["WebSocketCreate",{category:"Js",label:"Create WebSocket"}],["WebSocketSendHandshakeRequest",{category:"Js",label:"Send WebSocket Handshake"}],["WebSocketReceiveHandshakeResponse",{category:"Js",label:"Receive WebSocket Handshake"}],["WebSocketDestroy",{category:"Js",label:"Destroy WebSocket"}],["DoEncrypt",{category:"Js",label:"Crypto Encrypt"}],["DoEncryptReply",{category:"Js",label:"Crypto Encrypt Reply"}],["DoDecrypt",{category:"Js",label:"Crypto Decrypt"}],["DoDecryptReply",{category:"Js",label:"Crypto Decrypt Reply"}],["DoDigest",{category:"Js",label:"Crypto Digest"}],["DoDigestReply",{category:"Js",label:"Crypto Digest Reply"}],["DoSign",{category:"Js",label:"Crypto Sign"}],["DoSignReply",{category:"Js",label:"Crypto Sign Reply"}],["DoVerify",{category:"Js",label:"Crypto Verify"}],["DoVerifyReply",{category:"Js",label:"Crypto Verify Reply"}],["GCEvent",{category:"Gc",label:"GC"}],["BlinkGC.AtomicPhase",{category:"Gc",label:"DOM GC"}],["V8.GCIncrementalMarking",{category:"Gc",label:"Incremental GC"}],["MajorGC",{category:"Gc",label:"Major GC"}],["MinorGC",{category:"Gc",label:"Minor GC"}],["ScheduleStyleRecalculation",{category:"Layout",label:"Schedule Recalculate Style"}],["RecalculateStyles",{category:"Layout",label:"Recalculate Style"}],["Layout",{category:"Layout",label:"Layout"}],["UpdateLayoutTree",{category:"Layout",label:"Recalculate Style"}],["InvalidateLayout",{category:"Layout",label:"Invalidate Layout"}],["LayoutInvalidationTracking",{category:"Layout",label:"Layout Invalidation"}],["ComputeIntersections",{category:"Paint",label:"Compute Intersections"}],["HitTest",{category:"Layout",label:"Hit Test"}],["PrePaint",{category:"Layout",label:"Pre-Paint"}],["ScrollLayer",{category:"Paint",label:"Scroll"}],["UpdateLayer",{category:"Paint",label:"Update Layer"}],["PaintSetup",{category:"Paint",label:"Paint Setup"}],["Paint",{category:"Paint",label:"Paint"}],["PaintImage",{category:"Paint",label:"Paint Image"}],["Commit",{category:"Paint",label:"Commit"}],["CompositeLayers",{category:"Paint",label:"Composite Layers"}],["RasterTask",{category:"Paint",label:"Raster"}],["ImageDecodeTask",{category:"Paint",label:"Decode Image Task"}],["ImageUploadTask",{category:"Paint",label:"Upload Image Task"}],["Decode Image",{category:"Paint",label:"Decode Image"}],["Resize Image",{category:"Paint",label:"Resize Image"}],["Draw LazyPixelRef",{category:"Paint",label:"Draw LazyPixelRef"}],["Decode LazyPixelRef",{category:"Paint",label:"Decode LazyPixelRef"}],["GPUTask",{category:"Paint",label:"GPU Task"}]]);var je=Object.freeze({__proto__:null,KNOWN_EVENTS:Ve});const Ye=new Map,$e=new Map,Xe=[];let Ke=0;let Qe=1;const Ze=()=>({url:null,isOnMainFrame:!1,threads:new Map}),et=()=>({name:null,events:[]}),tt=(e,t)=>({event:e,id:t,parentId:null,childrenIds:new Set,depth:0}),nt=(t,n)=>e.MapUtilities.getWithDefault(t,n,Ze),rt=(t,n)=>e.MapUtilities.getWithDefault(t.threads,n,et);function at(e,t,n,r){it(e,t,n),st(e,t,n),ot(e,n,r)}function it(e,t,n){for(const[r,a]of n)for(const[n,i]of a){const a=nt(e,n);if(null===a.url||r===t)try{new URL(i.frame.url),a.url=i.frame.url}catch(e){a.url=null}}}function st(e,t,n){for(const[r,a]of n)for(const[n]of a){const a=nt(e,n);r===t&&(a.isOnMainFrame=!0)}}function ot(e,t,n){for(const[,r]of t)for(const[t]of r){const r=nt(e,t);for(const[e,a]of n.get(t)??[]){rt(r,e).name=a?.args.name??`${e}`}}}function ct(e){for(const[t,n]of e){if(null===n.url){e.delete(t);continue}"about:"===new URL(n.url).protocol&&e.delete(t)}}function dt(e){for(const[,t]of e)for(const[e,n]of t.threads)n.tree?.roots.size||t.threads.delete(e)}function lt(e,t){for(const[,r]of e)for(const[,e]of r.threads)n.Trace.sortTraceEventsInPlace(e.events),e.tree=ut(e.events,t)}function ut(e,n){const r=[];Ke=-1;const a={nodes:new Map,roots:new Set,maxDepth:0};for(let i=0;i<e.length;i++){const s=e[i];if(!n.filter.has(s.name))continue;const o=s.dur||0,c=++Ke,d=tt(s,c);if(0===r.length){a.nodes.set(c,d),a.roots.add(c),s.selfTime=t.Timing.MicroSeconds(o),r.push(d),a.maxDepth=Math.max(a.maxDepth,r.length),$e.set(s,d);continue}const l=r.at(-1);if(void 0===l)throw new Error("Impossible: no parent node found in the stack");const u=l.event,m=s.ts,g=u.ts,f=m+o,T=g+(u.dur||0);if(m<g)throw new Error("Impossible: current event starts before the parent event");if(m>=T){r.pop(),i--,Ke--;continue}if(f>T)throw new Error("Impossible: current event starts during the parent event");a.nodes.set(c,d),d.depth=r.length,d.parentId=l.id,l.childrenIds.add(c),s.selfTime=t.Timing.MicroSeconds(o),void 0!==u.selfTime&&(u.selfTime=t.Timing.MicroSeconds(u.selfTime-(s.dur||0))),r.push(d),a.maxDepth=Math.max(a.maxDepth,r.length),$e.set(s,d)}return a}const mt=new Set(["Layout"]),gt=new Set(["RecalculateStyles","UpdateLayoutTree"]);var ft=Object.freeze({__proto__:null,reset:function(){Ye.clear(),$e.clear(),Xe.length=0,Ke=-1,Qe=1},initialize:function(){if(1!==Qe)throw new Error("Renderer Handler was not reset");Qe=2},handleEvent:function(e){if(2!==Qe)throw new Error("Renderer Handler is not initialized");if(t.TraceEvents.isTraceEventInstant(e)||t.TraceEvents.isTraceEventComplete(e)){const t=nt(Ye,e.pid);rt(t,e.tid).events.push(e),Xe.push(e)}},finalize:async function(){if(2!==Qe)throw new Error("Renderer Handler is not initialized");const{mainFrameId:e,rendererProcessesByFrame:t,threadsInProcess:n}=w();at(Ye,e,t,n),ct(Ye),lt(Ye,{filter:Ve}),dt(Ye),Qe=3},data:function(){if(3!==Qe)throw new Error("Renderer Handler is not finalized");return{processes:new Map(Ye),traceEventToNode:new Map($e),allRendererEvents:[...Xe]}},assignMeta:at,assignOrigin:it,assignIsMainFrame:st,assignThreadName:ot,sanitizeProcesses:ct,sanitizeThreads:dt,buildHierarchy:lt,treify:ut,FORCED_LAYOUT_EVENT_NAMES:mt,FORCED_RECALC_STYLE_EVENTS:gt,deps:function(){return["Meta","Samples"]}});function Tt(e){e.sort(((e,t)=>{const n=e.ts,r=t.ts;return n<r?-1:n>r?1:0}))}const pt=new Set(["Other","V8","Js","Gc"]),vt=new Set([void 0,"JS"]),ht=[/^chrome-extension:\/\//,/^extensions::/],Et=t.Timing.MicroSeconds(200),wt=new Map,Mt=new Map,St=new Map;let yt=1;const It=()=>({threads:new Map}),bt=e=>({callFrame:e,parentId:null,childrenIds:new Set}),Ct=(e,t,n,r)=>({topmostStackFrame:{nodeId:e},tid:n,pid:t,ts:r}),Pt=(t,n)=>e.MapUtilities.getWithDefault(t,n,It),Rt=(t,n,r)=>e.MapUtilities.getWithDefault(t.threads,n,(()=>(e=>({profile:e}))(r)));function Dt(e,t){for(const[,n]of e){const{head:e,chunks:r}=n;if(!e||!r?.length)continue;const a=e.pid,i=e.tid;Rt(Pt(t,a),i,n)}}function kt(e,t){for(const[r,a]of e)for(const[e,i]of a.threads){n.Trace.sortTraceEventsInPlace(i.profile.chunks);const a={filter:pt},s=i.boundaries=Ft(t,r,e,a),o=i.tree=_t(i.profile.chunks),{startTime:c}=i.profile.head.args.data,d={filterCodeTypes:!0,filterUrls:!0},l=Wt((i.samples=Lt(r,e,c,o,i.profile.chunks,d)).map((e=>Ut(o,e))),s);i.calls=l.calls,i.dur=l.dur}}function Ft(e,n,r,a){const i=e.get(n);if(!i)return[];const s=i.get(r);if(!s)return[];const o=new Set;for(const e of s){const n=Ve.get(e.name)?.category??"Other";a.filter.has(n)&&(o.add(e.ts),o.add(t.Timing.MicroSeconds(e.ts+e.dur)))}return[...o].sort(((e,t)=>e<t?-1:1))}function _t(t,n){const r={nodes:new Map};for(const a of t){const t=a.args.data?.cpuProfile;if(!t)continue;const i=t.nodes;if(i)for(const t of i){const a=t.id,i=t.parent,s=t.callFrame;if(!Nt(s,n))continue;const o=e.MapUtilities.getWithDefault(r.nodes,a,(()=>bt(s)));void 0!==i&&(o.parentId=i,r.nodes.get(i)?.childrenIds.add(a))}}return r}function Lt(e,n,r,a,i,s){const o=[];for(const c of i){const{timeDeltas:i,cpuProfile:d}=c.args.data??{};if(i&&d)for(let c=0;c<i.length;c++){const l=i[c],u=d.samples[c];r=t.Timing.MicroSeconds(r+l);const m=xt(u,a,s);null!==m&&o.push(Ct(m,e,n,r))}}return Tt(o),o}function Wt(n,r){const a={calls:new Array,dur:t.Timing.MicroSeconds(0)};let i=0;for(const s of n){if(s.ts>=i){i=r[e.ArrayUtilities.nearestIndexFromBeginning(r,(e=>e>s.ts))??1/0],a.calls.push(s);continue}const n=a.calls.at(-1);if(!n)continue;const o=s.stackFrame.nodeId===n.stackFrame.nodeId,c=s.ts-(n.ts+n.dur)<Et;o&&c?(n.dur=t.Timing.MicroSeconds(s.ts-n.ts),n.children.push(...s.children)):a.calls.push(s)}for(const e of a.calls){const n=Wt(e.children,r);e.children=n.calls,e.selfDur=t.Timing.MicroSeconds(e.dur-n.dur),a.dur=t.Timing.MicroSeconds(a.dur+e.dur)}return a}function Nt(e,t){return!(t?.filterCodeTypes&&!vt.has(e.codeType))&&(!t?.filterUrls||!ht.some((t=>e.url?.match(t))))}function xt(e,t,n){if(null===e)return null;const r=t.nodes.get(e),a=r?.callFrame;return r&&a?Nt(a,n)?e:xt(r.parentId,t,n):null}function zt(e,t){const n=[];let r,a=t;for(;null!==a&&(r=e.nodes.get(a));)n.push(a),a=r.parentId;return n.reverse()}function Ut(e,n){const r=zt(e,n.topmostStackFrame.nodeId).map((e=>((e,n)=>({stackFrame:{nodeId:e},tid:n.tid,pid:n.pid,ts:n.ts,dur:t.Timing.MicroSeconds(0),selfDur:t.Timing.MicroSeconds(0),children:[]}))(e,n)));for(let e=1;e<r.length;e++){const t=r[e-1],n=r[e];t.children.push(n)}return r[0]}function Ot(t,n,r,a=new Map){for(const i of t){if(i.ts<n||i.ts+i.dur>r)continue;const t=e.MapUtilities.getWithDefault(a,i.stackFrame.nodeId,(()=>({stackFrame:{nodeId:i.stackFrame.nodeId},calls:[],durPercent:0,selfDurPercent:0})));t.calls.push(i),t.durPercent+=i.dur/(r-n)*100,t.selfDurPercent+=i.selfDur/(r-n)*100,Ot(i.children,n,r,a)}return a.values()}var qt=Object.freeze({__proto__:null,sortProfileSamples:Tt,reset:function(){wt.clear(),Mt.clear(),St.clear(),yt=1},initialize:function(){if(1!==yt)throw new Error("Samples Handler was not reset");yt=2},handleEvent:function(n){if(2!==yt)throw new Error("Samples Handler is not initialized");if(t.TraceEvents.isTraceEventProfile(n)){e.MapUtilities.getWithDefault(Mt,n.id,(()=>({}))).head=n}else{if(t.TraceEvents.isTraceEventProfileChunk(n)){const t=e.MapUtilities.getWithDefault(Mt,n.id,(()=>({})));return t.chunks=t.chunks??[],void t.chunks.push(n)}if(t.TraceEvents.isTraceEventComplete(n)){const t=e.MapUtilities.getWithDefault(wt,n.pid,(()=>new Map));e.MapUtilities.getWithDefault(t,n.tid,(()=>[])).push(n)}else;}},finalize:async function(){if(2!==yt)throw new Error("Samples Handler is not initialized");Dt(Mt,St),kt(St,wt),yt=3},data:function(){if(3!==yt)throw new Error("Samples Handler is not finalized");return{profiles:new Map(Mt),processes:new Map(St)}},buildProcessesAndThreads:Dt,buildHierarchy:kt,collectBoundaries:Ft,collectStackTraces:_t,collectSamples:Lt,mergeCalls:Wt,isAllowedCallFrame:Nt,findTopmostAllowedCallFrame:xt,buildStackTraceAsCallFrameIdsFromId:zt,buildStackTraceAsCallFramesFromId:function(e,t){return zt(e,t).map((t=>{const n=e.nodes.get(t)?.callFrame;if(!n)throw new Error;return n}))},buildProfileCallFromSample:Ut,getAllFunctionsBetweenTimestamps:Ot,getAllHotFunctionsBetweenTimestamps:function(e,t,n,r){return[...Ot(e,t,n)].filter((e=>e.selfDurPercent>=r)).sort(((e,t)=>e.selfDurPercent>t.selfDurPercent?-1:1))}}),Ht=Object.freeze({__proto__:null,Animation:He,GPU:b,LargestImagePaint:Be,LargestTextPaint:Ge,LayoutShifts:G,Meta:M,NetworkRequests:Q,PageLoadMetrics:pe,Renderer:ft,Samples:qt,Screenshots:D,UserInteractions:Re,UserTimings:ze});export{Oe as Migration,Ht as ModelHandlers,je as Types};
@@ -0,0 +1 @@
1
+ import*as t from"../../../core/platform/platform.js";import*as e from"../types/types.js";import*as i from"../../../core/common/common.js";function n(e,i,n){const r=n.get(i);if(!r||""===i)return null;const s=t.ArrayUtilities.nearestIndexFromEnd(r,(t=>t.ts<=e.ts));return null===s?null:r[s]}var r=Object.freeze({__proto__:null,extractOriginFromTrace:function(t){const e=i.ParsedURL.ParsedURL.fromString(t);return e?e.host.startsWith("www.")?e.host.slice(4):e.host:null},addEventToProcessThread:function(t,e){const{tid:i,pid:n}=t;let r=e.get(n);r||(r=new Map);let s=r.get(i);s||(s=[]),s.push(t),r.set(t.tid,s),e.set(t.pid,r)},sortTraceEventsInPlace:function(t){t.sort(((t,e)=>{const i=t.ts,n=e.ts;if(i<n)return-1;if(i>n)return 1;const r=i+(t.dur??0),s=n+(e.dur??0);return r>s?-1:r<s?1:0}))},getNavigationForTraceEvent:n,extractId:function(t){return t.id||t.id2?.global||t.id2?.local}});const s=t=>e.Timing.MicroSeconds(1e3*t),o=t=>e.Timing.MilliSeconds(1e3*t);function a(t){if(t<1e3)return 0;const e=t/1e3;if(e<1e3)return 1;return e/1e3<60?2:3}const l={style:"unit",unit:"millisecond",unitDisplay:"narrow"},c=t=>JSON.stringify(t),u=t=>new Intl.NumberFormat(navigator.language,t?JSON.parse(t):{}),m=new Map;t.MapUtilities.getWithDefault(m,c({style:"decimal"}),u),t.MapUtilities.getWithDefault(m,c(l),u),t.MapUtilities.getWithDefault(m,c({...l,unit:"second"}),u),t.MapUtilities.getWithDefault(m,c({...l,unit:"minute"}),u);var d=Object.freeze({__proto__:null,millisecondsToMicroseconds:s,secondsToMilliseconds:o,secondsToMicroseconds:t=>s(o(t)),microSecondsToMilliseconds:t=>e.Timing.MilliSeconds(t/1e3),detectBestTimeUnit:a,formatMicrosecondsTime:function(e,i={}){i.format||(i.format=a(e));const n=e/1e3,r=n/1e3,s={...l,...i};switch(i.format){case 0:return`${t.MapUtilities.getWithDefault(m,c({style:"decimal"}),u).format(e)}μs`;case 1:return t.MapUtilities.getWithDefault(m,c(s),u).format(n);case 2:return t.MapUtilities.getWithDefault(m,c({...s,unit:"second"}),u).format(r);default:{const e=t.MapUtilities.getWithDefault(m,c({...s,unit:"minute"}),u),i=t.MapUtilities.getWithDefault(m,c({...s,unit:"second"}),u),n=r/60,[o,a,l]=e.formatToParts(n);let d=0;return a&&l&&(d=Math.round(60*Number(`0.${l.value}`))),`${e.format(Number(o.value))} ${i.format(d)}`}}},timeStampForEventAdjustedByClosestNavigation:function(t,i,r,s){let o=t.ts-i.min;if(t.args?.data?.navigationId){const e=r.get(t.args.data.navigationId);e&&(o=t.ts-e.ts)}else if(t.args?.data?.frame){const e=n(t,t.args.data.frame,s);e&&(o=t.ts-e.ts)}return e.Timing.MicroSeconds(o)}});export{d as Timing,r as Trace};