@browserless.io/browserless 2.2.0-beta-8 → 2.3.0-beta-1

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 (1342) hide show
  1. package/CHANGELOG.md +21 -2
  2. package/bin/browserless.js +26 -15
  3. package/bin/scaffold/README.md +8 -7
  4. package/build/browserless.d.ts +6 -1
  5. package/build/browserless.js +45 -26
  6. package/build/browsers/chrome.cdp.d.ts +6 -0
  7. package/build/browsers/chrome.cdp.js +6 -0
  8. package/build/browsers/chrome.playwright.d.ts +6 -0
  9. package/build/browsers/chrome.playwright.js +6 -0
  10. package/build/browsers/{cdp-chromium.d.ts → chromium.cdp.d.ts} +3 -2
  11. package/build/browsers/{cdp-chromium.js → chromium.cdp.js} +16 -10
  12. package/build/browsers/{playwright-chromium.d.ts → chromium.playwright.d.ts} +3 -2
  13. package/build/browsers/{playwright-chromium.js → chromium.playwright.js} +6 -5
  14. package/build/browsers/{playwright-firefox.d.ts → firefox.playwright.d.ts} +2 -2
  15. package/build/browsers/{playwright-firefox.js → firefox.playwright.js} +4 -4
  16. package/build/browsers/index.d.ts +20 -10
  17. package/build/browsers/index.js +110 -11
  18. package/build/browsers/{playwright-webkit.d.ts → webkit.playwright.d.ts} +2 -2
  19. package/build/browsers/{playwright-webkit.js → webkit.playwright.js} +4 -4
  20. package/build/data/selectors.json +1 -1
  21. package/build/exports.core.d.ts +24 -0
  22. package/build/exports.core.js +26 -0
  23. package/build/exports.d.ts +38 -22
  24. package/build/exports.js +44 -24
  25. package/build/hooks.d.ts +4 -5
  26. package/build/hooks.js +4 -6
  27. package/build/http.d.ts +22 -1
  28. package/build/http.js +21 -0
  29. package/build/router.js +19 -3
  30. package/build/routes/{chromium/http/content-post.body.json → chrome/http/content.post.body.json} +8 -8
  31. package/build/routes/chrome/http/content.post.d.ts +7 -0
  32. package/build/routes/chrome/http/content.post.js +6 -0
  33. package/build/routes/{chromium/http/scrape-post.body.json → chrome/http/download.post.body.json} +9 -56
  34. package/build/routes/chrome/http/download.post.d.ts +7 -0
  35. package/build/routes/chrome/http/download.post.js +6 -0
  36. package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +1 -0
  37. package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/function.post.body.json} +9 -99
  38. package/build/routes/chrome/http/function.post.d.ts +7 -0
  39. package/build/routes/chrome/http/function.post.js +6 -0
  40. package/build/routes/{management/http/sessions-get.response.json → chrome/http/function.post.query.json} +26 -68
  41. package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +1 -0
  42. package/build/routes/chrome/http/json-list.get.d.ts +1 -0
  43. package/build/routes/chrome/http/json-list.get.js +1 -0
  44. package/build/routes/chrome/http/json-list.get.response.json +4 -0
  45. package/build/routes/chrome/http/json-new.put.d.ts +1 -0
  46. package/build/routes/chrome/http/json-new.put.js +1 -0
  47. package/build/routes/chrome/http/json-new.put.response.json +4 -0
  48. package/build/routes/chrome/http/json-protocol.get.d.ts +1 -0
  49. package/build/routes/chrome/http/json-protocol.get.js +1 -0
  50. package/build/routes/chrome/http/json-protocol.get.response.json +4 -0
  51. package/build/routes/chrome/http/json-version.get.d.ts +1 -0
  52. package/build/routes/chrome/http/json-version.get.js +1 -0
  53. package/build/routes/chrome/http/json-version.get.response.json +4 -0
  54. package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +9 -153
  55. package/build/routes/chrome/http/pdf.post.d.ts +7 -0
  56. package/build/routes/chrome/http/pdf.post.js +6 -0
  57. package/build/routes/{chromium/http/download-post.query.json → chrome/http/pdf.post.query.json} +69 -6
  58. package/build/routes/chrome/http/performance.post.body.json +510 -0
  59. package/build/routes/chrome/http/performance.post.d.ts +7 -0
  60. package/build/routes/chrome/http/performance.post.js +6 -0
  61. package/build/routes/chrome/http/performance.post.query.json +183 -0
  62. package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +1 -3
  63. package/build/routes/chrome/http/scrape.post.body.json +510 -0
  64. package/build/routes/chrome/http/scrape.post.d.ts +7 -0
  65. package/build/routes/chrome/http/scrape.post.js +6 -0
  66. package/build/routes/chrome/http/scrape.post.query.json +183 -0
  67. package/build/routes/chrome/http/scrape.post.response.json +5 -0
  68. package/build/routes/chrome/http/screenshot.post.body.json +510 -0
  69. package/build/routes/chrome/http/screenshot.post.d.ts +7 -0
  70. package/build/routes/chrome/http/screenshot.post.js +6 -0
  71. package/build/routes/chrome/http/screenshot.post.query.json +183 -0
  72. package/build/routes/chrome/tests/content.spec.js +311 -0
  73. package/build/routes/chrome/tests/download.spec.js +67 -0
  74. package/build/routes/chrome/tests/function.spec.d.ts +1 -0
  75. package/build/routes/chrome/tests/function.spec.js +245 -0
  76. package/build/routes/chrome/tests/json-version.spec.d.ts +1 -0
  77. package/build/routes/chrome/tests/json-version.spec.js +37 -0
  78. package/build/routes/chrome/tests/page-websocket.spec.d.ts +1 -0
  79. package/build/routes/chrome/tests/page-websocket.spec.js +97 -0
  80. package/build/routes/chrome/tests/pdf.spec.d.ts +1 -0
  81. package/build/routes/chrome/tests/pdf.spec.js +333 -0
  82. package/build/routes/chrome/tests/performance.spec.d.ts +1 -0
  83. package/build/routes/chrome/tests/performance.spec.js +124 -0
  84. package/build/routes/chrome/tests/scrape.spec.d.ts +1 -0
  85. package/build/routes/chrome/tests/scrape.spec.js +354 -0
  86. package/build/routes/chrome/tests/screenshot.spec.d.ts +1 -0
  87. package/build/routes/chrome/tests/screenshot.spec.js +339 -0
  88. package/build/routes/chrome/tests/websocket.spec.d.ts +1 -0
  89. package/build/routes/chrome/tests/websocket.spec.js +371 -0
  90. package/build/routes/chrome/ws/browser.d.ts +6 -0
  91. package/build/routes/chrome/ws/browser.js +5 -0
  92. package/build/routes/chrome/ws/browser.query.json +183 -0
  93. package/build/routes/chrome/ws/cdp.d.ts +7 -0
  94. package/build/routes/chrome/ws/cdp.js +6 -0
  95. package/build/routes/chrome/ws/cdp.query.json +183 -0
  96. package/build/routes/chrome/ws/page.d.ts +6 -0
  97. package/build/routes/chrome/ws/page.js +5 -0
  98. package/build/routes/chrome/ws/page.query.json +183 -0
  99. package/build/routes/chrome/ws/playwright.d.ts +7 -0
  100. package/build/routes/chrome/ws/playwright.js +6 -0
  101. package/build/routes/chrome/ws/playwright.query.json +183 -0
  102. package/build/routes/chromium/http/content.post.body.json +510 -0
  103. package/build/routes/chromium/http/content.post.d.ts +1 -0
  104. package/build/routes/chromium/http/content.post.js +1 -0
  105. package/build/routes/chromium/http/content.post.query.json +183 -0
  106. package/build/routes/chromium/http/content.post.response.json +5 -0
  107. package/build/routes/chromium/http/download.post.body.json +510 -0
  108. package/build/routes/chromium/http/download.post.d.ts +1 -0
  109. package/build/routes/chromium/http/download.post.js +1 -0
  110. package/build/routes/chromium/http/download.post.query.json +183 -0
  111. package/build/routes/chromium/http/download.post.response.json +5 -0
  112. package/build/routes/chromium/http/function.post.body.json +510 -0
  113. package/build/routes/chromium/http/function.post.d.ts +1 -0
  114. package/build/routes/chromium/http/function.post.js +1 -0
  115. package/build/routes/chromium/http/function.post.query.json +183 -0
  116. package/build/routes/chromium/http/function.post.response.json +5 -0
  117. package/build/routes/chromium/http/json-list.get.d.ts +1 -0
  118. package/build/routes/chromium/http/json-list.get.js +1 -0
  119. package/build/routes/chromium/http/json-list.get.response.json +4 -0
  120. package/build/routes/chromium/http/json-new.put.d.ts +1 -0
  121. package/build/routes/chromium/http/json-new.put.js +1 -0
  122. package/build/routes/chromium/http/json-new.put.response.json +4 -0
  123. package/build/routes/chromium/http/json-protocol.get.d.ts +1 -0
  124. package/build/routes/chromium/http/json-protocol.get.js +1 -0
  125. package/build/routes/chromium/http/json-protocol.get.response.json +4 -0
  126. package/build/routes/chromium/http/json-version.get.d.ts +1 -0
  127. package/build/routes/chromium/http/json-version.get.js +1 -0
  128. package/build/routes/chromium/http/json-version.get.response.json +4 -0
  129. package/build/routes/chromium/http/pdf.post.body.json +510 -0
  130. package/build/routes/chromium/http/pdf.post.d.ts +1 -0
  131. package/build/routes/chromium/http/pdf.post.js +1 -0
  132. package/build/routes/chromium/http/pdf.post.query.json +183 -0
  133. package/build/routes/chromium/http/pdf.post.response.json +5 -0
  134. package/build/routes/chromium/http/performance.post.body.json +510 -0
  135. package/build/routes/chromium/http/performance.post.d.ts +1 -0
  136. package/build/routes/chromium/http/performance.post.js +1 -0
  137. package/build/routes/chromium/http/performance.post.query.json +183 -0
  138. package/build/routes/chromium/http/performance.post.response.json +5 -0
  139. package/build/routes/chromium/http/scrape.post.body.json +510 -0
  140. package/build/routes/chromium/http/scrape.post.d.ts +1 -0
  141. package/build/routes/chromium/http/scrape.post.js +1 -0
  142. package/build/routes/chromium/http/scrape.post.query.json +183 -0
  143. package/build/routes/chromium/http/scrape.post.response.json +5 -0
  144. package/build/routes/chromium/http/screenshot.post.body.json +510 -0
  145. package/build/routes/chromium/http/screenshot.post.d.ts +1 -0
  146. package/build/routes/chromium/http/screenshot.post.js +1 -0
  147. package/build/routes/chromium/http/screenshot.post.query.json +183 -0
  148. package/build/routes/chromium/http/screenshot.post.response.json +5 -0
  149. package/build/routes/chromium/tests/content.spec.js +16 -16
  150. package/build/routes/chromium/tests/download.spec.js +3 -3
  151. package/build/routes/chromium/tests/function.spec.js +10 -10
  152. package/build/routes/chromium/tests/page-websocket.spec.d.ts +1 -0
  153. package/build/routes/chromium/tests/page-websocket.spec.js +97 -0
  154. package/build/routes/chromium/tests/pdf.spec.js +16 -16
  155. package/build/routes/chromium/tests/performance.spec.js +7 -7
  156. package/build/routes/chromium/tests/scrape.spec.js +15 -15
  157. package/build/routes/chromium/tests/screenshot.spec.js +17 -17
  158. package/build/routes/chromium/tests/websocket.spec.js +31 -37
  159. package/build/routes/chromium/ws/browser.d.ts +1 -16
  160. package/build/routes/chromium/ws/browser.js +1 -10
  161. package/build/routes/chromium/ws/browser.query.json +69 -6
  162. package/build/routes/chromium/ws/cdp.d.ts +1 -0
  163. package/build/routes/chromium/ws/cdp.js +1 -0
  164. package/build/routes/chromium/ws/cdp.query.json +183 -0
  165. package/build/routes/chromium/ws/page.d.ts +1 -16
  166. package/build/routes/chromium/ws/page.js +1 -10
  167. package/build/routes/chromium/ws/page.query.json +69 -6
  168. package/build/routes/chromium/ws/playwright.d.ts +1 -0
  169. package/build/routes/chromium/ws/playwright.js +1 -0
  170. package/build/routes/chromium/ws/playwright.query.json +183 -0
  171. package/build/routes/firefox/ws/playwright.d.ts +20 -0
  172. package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
  173. package/build/routes/firefox/ws/playwright.query.json +183 -0
  174. package/build/routes/management/http/config.get.response.json +4 -0
  175. package/build/routes/management/http/metrics-total.get.response.json +4 -0
  176. package/build/routes/management/http/metrics.get.response.json +4 -0
  177. package/build/routes/management/http/sessions.get.response.json +4 -0
  178. package/build/routes/management/http/{static-get.js → static.get.js} +9 -9
  179. package/build/routes/webkit/ws/{playwright-webkit.d.ts → playwright.d.ts} +5 -5
  180. package/build/routes/webkit/ws/{playwright-webkit.js → playwright.js} +4 -4
  181. package/build/routes/webkit/ws/playwright.query.json +183 -0
  182. package/build/{routes/chromium/ws/cdp-chromium.d.ts → shared/browser.ws.d.ts} +4 -4
  183. package/build/shared/browser.ws.js +12 -0
  184. package/build/{routes/chromium/ws/playwright-chromium.d.ts → shared/chromium.playwright.ws.d.ts} +4 -4
  185. package/build/{routes/chromium/ws/playwright-chromium.js → shared/chromium.playwright.ws.js} +6 -3
  186. package/build/shared/chromium.ws.d.ts +16 -0
  187. package/build/shared/chromium.ws.js +10 -0
  188. package/build/{routes/chromium/http/content-post.d.ts → shared/content.http.d.ts} +3 -3
  189. package/build/{routes/chromium/http/content-post.js → shared/content.http.js} +3 -3
  190. package/build/{routes/chromium/http/download-post.d.ts → shared/download.http.d.ts} +3 -3
  191. package/build/{routes/chromium/http/download-post.js → shared/download.http.js} +4 -4
  192. package/build/{routes/chromium/http/function-post.d.ts → shared/function.http.d.ts} +3 -3
  193. package/build/{routes/chromium/http/function-post.js → shared/function.http.js} +4 -4
  194. package/build/{routes/chromium/http/json-new.d.ts → shared/json-list.http.d.ts} +2 -3
  195. package/build/{routes/chromium/http/json-list.js → shared/json-list.http.js} +5 -8
  196. package/build/{routes/chromium/http/json-list.d.ts → shared/json-new.http.d.ts} +2 -3
  197. package/build/shared/json-new.http.js +34 -0
  198. package/build/{routes/chromium/http/json-protocol-get.js → shared/json-protocol.http.js} +2 -2
  199. package/build/{routes/chromium/http/json-version-get.js → shared/json-version.http.js} +3 -3
  200. package/build/shared/page.ws.d.ts +16 -0
  201. package/build/shared/page.ws.js +13 -0
  202. package/build/{routes/chromium/http/pdf-post.d.ts → shared/pdf.http.d.ts} +3 -3
  203. package/build/{routes/chromium/http/pdf-post.js → shared/pdf.http.js} +3 -3
  204. package/build/{routes/chromium/http/performance.d.ts → shared/performance.http.d.ts} +3 -3
  205. package/build/{routes/chromium/http/performance.js → shared/performance.http.js} +4 -4
  206. package/build/{routes/chromium/http/scrape-post.d.ts → shared/scrape.http.d.ts} +3 -3
  207. package/build/{routes/chromium/http/scrape-post.js → shared/scrape.http.js} +3 -3
  208. package/build/{routes/chromium/http/screenshot-post.d.ts → shared/screenshot.http.d.ts} +3 -3
  209. package/build/{routes/chromium/http/screenshot-post.js → shared/screenshot.http.js} +3 -3
  210. package/build/shared/utils/performance/child.d.ts +1 -0
  211. package/build/{routes/chromium → shared}/utils/performance/main.js +2 -2
  212. package/build/shared/utils/performance/types.js +1 -0
  213. package/build/shim.js +2 -1
  214. package/build/types.d.ts +10 -8
  215. package/build/utils.d.ts +8 -3
  216. package/build/utils.js +24 -11
  217. package/docker/base/Dockerfile +1 -1
  218. package/docker/chrome/Dockerfile +6 -4
  219. package/docker/chromium/.dockerignore +16 -0
  220. package/docker/chromium/Dockerfile +42 -0
  221. package/docker/firefox/Dockerfile +3 -1
  222. package/docker/multi/Dockerfile +15 -1
  223. package/docker/webkit/Dockerfile +3 -1
  224. package/extensions/ublock/3p-filters.html +1 -1
  225. package/extensions/ublock/_locales/ar/messages.json +4 -0
  226. package/extensions/ublock/_locales/az/messages.json +4 -0
  227. package/extensions/ublock/_locales/be/messages.json +4 -0
  228. package/extensions/ublock/_locales/bg/messages.json +5 -1
  229. package/extensions/ublock/_locales/bn/messages.json +4 -0
  230. package/extensions/ublock/_locales/br_FR/messages.json +6 -2
  231. package/extensions/ublock/_locales/bs/messages.json +4 -0
  232. package/extensions/ublock/_locales/ca/messages.json +4 -0
  233. package/extensions/ublock/_locales/cs/messages.json +4 -0
  234. package/extensions/ublock/_locales/cv/messages.json +4 -0
  235. package/extensions/ublock/_locales/cy/messages.json +1294 -0
  236. package/extensions/ublock/_locales/da/messages.json +4 -0
  237. package/extensions/ublock/_locales/de/messages.json +5 -1
  238. package/extensions/ublock/_locales/el/messages.json +4 -0
  239. package/extensions/ublock/_locales/en/messages.json +4 -0
  240. package/extensions/ublock/_locales/en_GB/messages.json +4 -0
  241. package/extensions/ublock/_locales/eo/messages.json +9 -5
  242. package/extensions/ublock/_locales/es/messages.json +4 -0
  243. package/extensions/ublock/_locales/et/messages.json +4 -0
  244. package/extensions/ublock/_locales/eu/messages.json +8 -4
  245. package/extensions/ublock/_locales/fa/messages.json +4 -0
  246. package/extensions/ublock/_locales/fi/messages.json +4 -0
  247. package/extensions/ublock/_locales/fil/messages.json +4 -0
  248. package/extensions/ublock/_locales/fr/messages.json +4 -0
  249. package/extensions/ublock/_locales/fy/messages.json +4 -0
  250. package/extensions/ublock/_locales/gl/messages.json +4 -0
  251. package/extensions/ublock/_locales/gu/messages.json +4 -0
  252. package/extensions/ublock/_locales/he/messages.json +4 -0
  253. package/extensions/ublock/_locales/hi/messages.json +4 -0
  254. package/extensions/ublock/_locales/hr/messages.json +4 -0
  255. package/extensions/ublock/_locales/hu/messages.json +4 -0
  256. package/extensions/ublock/_locales/hy/messages.json +4 -0
  257. package/extensions/ublock/_locales/id/messages.json +5 -1
  258. package/extensions/ublock/_locales/it/messages.json +4 -0
  259. package/extensions/ublock/_locales/ja/messages.json +4 -0
  260. package/extensions/ublock/_locales/ka/messages.json +34 -30
  261. package/extensions/ublock/_locales/kk/messages.json +4 -0
  262. package/extensions/ublock/_locales/kn/messages.json +4 -0
  263. package/extensions/ublock/_locales/ko/messages.json +4 -0
  264. package/extensions/ublock/_locales/ku/messages.json +4 -0
  265. package/extensions/ublock/_locales/lt/messages.json +4 -0
  266. package/extensions/ublock/_locales/lv/messages.json +4 -0
  267. package/extensions/ublock/_locales/mk/messages.json +4 -0
  268. package/extensions/ublock/_locales/ml/messages.json +4 -0
  269. package/extensions/ublock/_locales/mr/messages.json +4 -0
  270. package/extensions/ublock/_locales/ms/messages.json +13 -9
  271. package/extensions/ublock/_locales/nb/messages.json +4 -0
  272. package/extensions/ublock/_locales/nl/messages.json +4 -0
  273. package/extensions/ublock/_locales/no/messages.json +4 -0
  274. package/extensions/ublock/_locales/oc/messages.json +4 -0
  275. package/extensions/ublock/_locales/pa/messages.json +4 -0
  276. package/extensions/ublock/_locales/pl/messages.json +5 -1
  277. package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
  278. package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
  279. package/extensions/ublock/_locales/ro/messages.json +5 -1
  280. package/extensions/ublock/_locales/ru/messages.json +4 -0
  281. package/extensions/ublock/_locales/si/messages.json +4 -0
  282. package/extensions/ublock/_locales/sk/messages.json +4 -0
  283. package/extensions/ublock/_locales/sl/messages.json +4 -0
  284. package/extensions/ublock/_locales/so/messages.json +4 -0
  285. package/extensions/ublock/_locales/sq/messages.json +4 -0
  286. package/extensions/ublock/_locales/sr/messages.json +4 -0
  287. package/extensions/ublock/_locales/sv/messages.json +4 -0
  288. package/extensions/ublock/_locales/sw/messages.json +4 -0
  289. package/extensions/ublock/_locales/ta/messages.json +4 -0
  290. package/extensions/ublock/_locales/te/messages.json +4 -0
  291. package/extensions/ublock/_locales/th/messages.json +12 -8
  292. package/extensions/ublock/_locales/tr/messages.json +4 -0
  293. package/extensions/ublock/_locales/uk/messages.json +4 -0
  294. package/extensions/ublock/_locales/ur/messages.json +4 -0
  295. package/extensions/ublock/_locales/vi/messages.json +4 -0
  296. package/extensions/ublock/_locales/zh_CN/messages.json +6 -2
  297. package/extensions/ublock/_locales/zh_TW/messages.json +6 -2
  298. package/extensions/ublock/assets/assets.json +11 -11
  299. package/extensions/ublock/assets/resources/scriptlets.js +660 -378
  300. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +7173 -3455
  301. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +18829 -1918
  302. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +21 -26
  303. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +118 -46
  304. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +710 -1117
  305. package/extensions/ublock/assets/ublock/badlists.txt +0 -4
  306. package/extensions/ublock/assets/ublock/badware.min.txt +116 -105
  307. package/extensions/ublock/assets/ublock/filters.min.txt +1443 -1097
  308. package/extensions/ublock/assets/ublock/privacy.min.txt +50 -31
  309. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +97 -108
  310. package/extensions/ublock/assets/ublock/unbreak.min.txt +64 -21
  311. package/extensions/ublock/css/1p-filters.css +4 -0
  312. package/extensions/ublock/css/3p-filters.css +6 -4
  313. package/extensions/ublock/css/common.css +1 -1
  314. package/extensions/ublock/css/fa-icons.css +1 -0
  315. package/extensions/ublock/css/logger-ui.css +72 -52
  316. package/extensions/ublock/css/popup-fenix.css +1 -1
  317. package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
  318. package/extensions/ublock/js/3p-filters.js +3 -3
  319. package/extensions/ublock/js/assets.js +7 -4
  320. package/extensions/ublock/js/background.js +1 -3
  321. package/extensions/ublock/js/benchmarks.js +1 -0
  322. package/extensions/ublock/js/broadcast.js +12 -0
  323. package/extensions/ublock/js/click2load.js +2 -3
  324. package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1 -0
  325. package/extensions/ublock/js/commands.js +10 -0
  326. package/extensions/ublock/js/contentscript-extra.js +13 -11
  327. package/extensions/ublock/js/contentscript.js +0 -31
  328. package/extensions/ublock/js/contextmenu.js +5 -1
  329. package/extensions/ublock/js/dyna-rules.js +83 -52
  330. package/extensions/ublock/js/fa-icons.js +1 -0
  331. package/extensions/ublock/js/filtering-context.js +0 -2
  332. package/extensions/ublock/js/i18n.js +1 -5
  333. package/extensions/ublock/js/logger-ui.js +71 -38
  334. package/extensions/ublock/js/logger.js +18 -14
  335. package/extensions/ublock/js/messaging.js +17 -5
  336. package/extensions/ublock/js/popup-fenix.js +6 -6
  337. package/extensions/ublock/js/scriptlet-filtering-core.js +14 -12
  338. package/extensions/ublock/js/scriptlet-filtering.js +149 -53
  339. package/extensions/ublock/js/scriptlets/scriptlet-loglevel-1.js +49 -0
  340. package/extensions/ublock/js/scriptlets/scriptlet-loglevel-2.js +49 -0
  341. package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -1
  342. package/extensions/ublock/js/static-dnr-filtering.js +4 -2
  343. package/extensions/ublock/js/static-filtering-parser.js +14 -8
  344. package/extensions/ublock/js/static-net-filtering.js +32 -30
  345. package/extensions/ublock/js/storage.js +18 -4
  346. package/extensions/ublock/js/traffic.js +3 -3
  347. package/extensions/ublock/js/ublock.js +1 -1
  348. package/extensions/ublock/js/vapi-background.js +15 -7
  349. package/extensions/ublock/logger-ui.html +18 -10
  350. package/extensions/ublock/manifest.json +4 -1
  351. package/extensions/ublock/web_accessible_resources/chartbeat.js +3 -0
  352. package/package.json +12 -12
  353. package/scripts/build-function.js +1 -1
  354. package/scripts/build-open-api.js +21 -11
  355. package/scripts/build-schemas.js +2 -3
  356. package/scripts/clean.js +6 -1
  357. package/scripts/install-debugger.js +20 -0
  358. package/scripts/install-devtools.js +40 -0
  359. package/src/browserless.ts +72 -45
  360. package/src/browsers/chrome.cdp.ts +10 -0
  361. package/src/browsers/chrome.playwright.ts +10 -0
  362. package/src/browsers/{cdp-chromium.ts → chromium.cdp.ts} +20 -13
  363. package/src/browsers/{playwright-chromium.ts → chromium.playwright.ts} +7 -6
  364. package/src/browsers/{playwright-firefox.ts → firefox.playwright.ts} +5 -5
  365. package/src/browsers/index.ts +160 -23
  366. package/src/browsers/{playwright-webkit.ts → webkit.playwright.ts} +5 -5
  367. package/src/exports.core.ts +26 -0
  368. package/src/exports.ts +48 -24
  369. package/src/hooks.ts +4 -12
  370. package/src/http.ts +21 -0
  371. package/src/router.ts +25 -5
  372. package/src/routes/chrome/http/content.post.ts +14 -0
  373. package/src/routes/chrome/http/download.post.ts +14 -0
  374. package/src/routes/chrome/http/function.post.ts +14 -0
  375. package/src/routes/chrome/http/json-list.get.ts +1 -0
  376. package/src/routes/chrome/http/json-new.put.ts +1 -0
  377. package/src/routes/chrome/http/json-protocol.get.ts +1 -0
  378. package/src/routes/chrome/http/json-version.get.ts +1 -0
  379. package/src/routes/chrome/http/pdf.post.ts +14 -0
  380. package/src/routes/chrome/http/performance.post.ts +14 -0
  381. package/src/routes/chrome/http/scrape.post.ts +14 -0
  382. package/src/routes/chrome/http/screenshot.post.ts +14 -0
  383. package/src/routes/chrome/tests/content.spec.ts +375 -0
  384. package/src/routes/chrome/tests/download.spec.ts +77 -0
  385. package/src/routes/chrome/tests/function.spec.ts +282 -0
  386. package/src/routes/chrome/tests/json-version.spec.ts +52 -0
  387. package/src/routes/chrome/tests/page-websocket.spec.ts +129 -0
  388. package/src/routes/chrome/tests/pdf.spec.ts +380 -0
  389. package/src/routes/chrome/tests/performance.spec.ts +155 -0
  390. package/src/routes/chrome/tests/scrape.spec.ts +417 -0
  391. package/src/routes/chrome/tests/screenshot.spec.ts +387 -0
  392. package/src/routes/chrome/tests/websocket.spec.ts +491 -0
  393. package/src/routes/chrome/ws/browser.ts +8 -0
  394. package/src/routes/chrome/ws/cdp.ts +12 -0
  395. package/src/routes/chrome/ws/page.ts +8 -0
  396. package/src/routes/chrome/ws/playwright.ts +12 -0
  397. package/src/routes/chromium/http/content.post.ts +6 -0
  398. package/src/routes/chromium/http/download.post.ts +6 -0
  399. package/src/routes/chromium/http/function.post.ts +6 -0
  400. package/src/routes/chromium/http/json-list.get.ts +1 -0
  401. package/src/routes/chromium/http/json-new.put.ts +1 -0
  402. package/src/routes/chromium/http/json-protocol.get.ts +1 -0
  403. package/src/routes/chromium/http/json-version.get.ts +1 -0
  404. package/src/routes/chromium/http/pdf.post.ts +6 -0
  405. package/src/routes/chromium/http/performance.post.ts +6 -0
  406. package/src/routes/chromium/http/scrape.post.ts +6 -0
  407. package/src/routes/chromium/http/screenshot.post.ts +6 -0
  408. package/src/routes/chromium/tests/content.spec.ts +36 -28
  409. package/src/routes/chromium/tests/download.spec.ts +3 -3
  410. package/src/routes/chromium/tests/function.spec.ts +18 -15
  411. package/src/routes/chromium/tests/page-websocket.spec.ts +129 -0
  412. package/src/routes/chromium/tests/pdf.spec.ts +31 -26
  413. package/src/routes/chromium/tests/performance.spec.ts +46 -34
  414. package/src/routes/chromium/tests/scrape.spec.ts +23 -20
  415. package/src/routes/chromium/tests/screenshot.spec.ts +24 -24
  416. package/src/routes/chromium/tests/websocket.spec.ts +31 -40
  417. package/src/routes/chromium/ws/browser.ts +1 -29
  418. package/src/routes/chromium/ws/cdp.ts +1 -0
  419. package/src/routes/chromium/ws/page.ts +1 -29
  420. package/src/routes/chromium/ws/playwright.ts +4 -0
  421. package/src/routes/firefox/ws/{playwright-firefox.ts → playwright.ts} +8 -6
  422. package/src/routes/management/http/{static-get.ts → static.get.ts} +15 -10
  423. package/src/routes/webkit/ws/{playwright-webkit.ts → playwright.ts} +5 -5
  424. package/src/shared/browser.ws.ts +34 -0
  425. package/src/{routes/chromium/ws/playwright-chromium.ts → shared/chromium.playwright.ws.ts} +7 -4
  426. package/src/{routes/chromium/ws/cdp-chromium.ts → shared/chromium.ws.ts} +6 -6
  427. package/src/{routes/chromium/http/content-post.ts → shared/content.http.ts} +4 -4
  428. package/src/{routes/chromium/http/download-post.ts → shared/download.http.ts} +4 -4
  429. package/src/{routes/chromium/http/function-post.ts → shared/function.http.ts} +4 -4
  430. package/src/shared/json-list.http.ts +35 -0
  431. package/src/{routes/chromium/http/json-new.ts → shared/json-new.http.ts} +23 -7
  432. package/src/{routes/chromium/http/json-protocol-get.ts → shared/json-protocol.http.ts} +3 -5
  433. package/src/{routes/chromium/http/json-version-get.ts → shared/json-version.http.ts} +4 -5
  434. package/src/shared/page.ws.ts +35 -0
  435. package/src/{routes/chromium/http/pdf-post.ts → shared/pdf.http.ts} +4 -4
  436. package/src/{routes/chromium/http/performance.ts → shared/performance.http.ts} +4 -4
  437. package/src/{routes/chromium/http/scrape-post.ts → shared/scrape.http.ts} +4 -4
  438. package/src/{routes/chromium/http/screenshot-post.ts → shared/screenshot.http.ts} +4 -4
  439. package/src/{routes/chromium → shared}/utils/function/handler.ts +2 -2
  440. package/src/{routes/chromium → shared}/utils/performance/main.ts +2 -4
  441. package/src/shim.ts +2 -1
  442. package/src/types.ts +27 -20
  443. package/src/utils.ts +32 -14
  444. package/static/devtools/Images/accelerometer-back.svg +1 -0
  445. package/static/devtools/Images/accelerometer-bottom.png +0 -0
  446. package/static/devtools/Images/accelerometer-front.svg +1 -0
  447. package/static/devtools/Images/accelerometer-left.png +0 -0
  448. package/static/devtools/Images/accelerometer-right.png +0 -0
  449. package/static/devtools/Images/accelerometer-top.png +0 -0
  450. package/static/devtools/Images/baseline-icon.svg +1 -0
  451. package/static/devtools/Images/breaking_change_icon.svg +1 -0
  452. package/static/devtools/Images/checkboxCheckmark.svg +1 -0
  453. package/static/devtools/Images/checker.png +0 -0
  454. package/static/devtools/Images/chevrons.svg +1 -0
  455. package/static/devtools/Images/chromeDisabledSelect.png +0 -0
  456. package/static/devtools/Images/chromeDisabledSelect_2x.png +0 -0
  457. package/static/devtools/Images/chromeLeft.avif +0 -0
  458. package/static/devtools/Images/chromeMiddle.avif +0 -0
  459. package/static/devtools/Images/chromeRight.avif +0 -0
  460. package/static/devtools/Images/chromeSelect.svg +1 -0
  461. package/static/devtools/Images/chromeSelectDark.svg +1 -0
  462. package/static/devtools/Images/cssoverview_icons_2x.avif +0 -0
  463. package/static/devtools/Images/dropdown_7x6_icon.svg +1 -0
  464. package/static/devtools/Images/elements_panel_icon.svg +1 -0
  465. package/static/devtools/Images/errorWave.svg +1 -0
  466. package/static/devtools/Images/error_icon.svg +1 -0
  467. package/static/devtools/Images/feedback_thin_16x16_icon.svg +1 -0
  468. package/static/devtools/Images/flex-align-content-center-icon.svg +1 -0
  469. package/static/devtools/Images/flex-align-content-end-icon.svg +1 -0
  470. package/static/devtools/Images/flex-align-content-space-around-icon.svg +1 -0
  471. package/static/devtools/Images/flex-align-content-space-between-icon.svg +1 -0
  472. package/static/devtools/Images/flex-align-content-space-evenly-icon.svg +1 -0
  473. package/static/devtools/Images/flex-align-content-start-icon.svg +1 -0
  474. package/static/devtools/Images/flex-align-content-stretch-icon.svg +1 -0
  475. package/static/devtools/Images/flex-align-items-center-icon.svg +1 -0
  476. package/static/devtools/Images/flex-align-items-flex-end-icon.svg +1 -0
  477. package/static/devtools/Images/flex-align-items-flex-start-icon.svg +1 -0
  478. package/static/devtools/Images/flex-align-items-stretch-icon.svg +1 -0
  479. package/static/devtools/Images/flex-align-self-center-icon.svg +1 -0
  480. package/static/devtools/Images/flex-align-self-flex-end-icon.svg +1 -0
  481. package/static/devtools/Images/flex-align-self-flex-start-icon.svg +1 -0
  482. package/static/devtools/Images/flex-align-self-stretch-icon.svg +1 -0
  483. package/static/devtools/Images/flex-direction-icon.svg +1 -0
  484. package/static/devtools/Images/flex-justify-content-center-icon.svg +1 -0
  485. package/static/devtools/Images/flex-justify-content-flex-end-icon.svg +1 -0
  486. package/static/devtools/Images/flex-justify-content-flex-start-icon.svg +1 -0
  487. package/static/devtools/Images/flex-justify-content-space-around-icon.svg +1 -0
  488. package/static/devtools/Images/flex-justify-content-space-between-icon.svg +1 -0
  489. package/static/devtools/Images/flex-justify-content-space-evenly-icon.svg +1 -0
  490. package/static/devtools/Images/ic_checkmark_16x16.svg +3 -0
  491. package/static/devtools/Images/ic_delete_filter.svg +1 -0
  492. package/static/devtools/Images/ic_delete_list.svg +1 -0
  493. package/static/devtools/Images/ic_info_black_18dp.svg +1 -0
  494. package/static/devtools/Images/ic_page_next_16x16_icon.svg +1 -0
  495. package/static/devtools/Images/ic_page_prev_16x16_icon.svg +1 -0
  496. package/static/devtools/Images/ic_redo_16x16_icon.svg +1 -0
  497. package/static/devtools/Images/ic_show_node_16x16.svg +4 -0
  498. package/static/devtools/Images/ic_suggest_color.svg +6 -0
  499. package/static/devtools/Images/ic_undo_16x16_icon.svg +1 -0
  500. package/static/devtools/Images/ic_warning_black_18dp.svg +1 -0
  501. package/static/devtools/Images/issue-text-icon.svg +1 -0
  502. package/static/devtools/Images/largeIcons.svg +1 -0
  503. package/static/devtools/Images/lighthouse_logo.svg +1 -0
  504. package/static/devtools/Images/link_icon.svg +1 -0
  505. package/static/devtools/Images/mediumIcons.svg +1 -0
  506. package/static/devtools/Images/navigationControls.png +0 -0
  507. package/static/devtools/Images/navigationControls_2x.png +0 -0
  508. package/static/devtools/Images/network_panel_icon.svg +1 -0
  509. package/static/devtools/Images/nodeIcon.avif +0 -0
  510. package/static/devtools/Images/node_search_icon.svg +1 -0
  511. package/static/devtools/Images/popoverArrows.png +0 -0
  512. package/static/devtools/Images/profileGroupIcon.png +0 -0
  513. package/static/devtools/Images/profileIcon.png +0 -0
  514. package/static/devtools/Images/profileSmallIcon.png +0 -0
  515. package/static/devtools/Images/radioDot-dark-theme.png +0 -0
  516. package/static/devtools/Images/radioDot.png +0 -0
  517. package/static/devtools/Images/refresh_12x12_icon.svg +1 -0
  518. package/static/devtools/Images/resizeDiagonal.svg +1 -0
  519. package/static/devtools/Images/resizeHorizontal.svg +1 -0
  520. package/static/devtools/Images/resizeVertical.svg +1 -0
  521. package/static/devtools/Images/resourceCSSIcon.png +0 -0
  522. package/static/devtools/Images/resourceDocumentIcon.png +0 -0
  523. package/static/devtools/Images/resourceDocumentIconSmall.png +0 -0
  524. package/static/devtools/Images/resourceJSIcon.png +0 -0
  525. package/static/devtools/Images/resourcePlainIcon.png +0 -0
  526. package/static/devtools/Images/resourcePlainIconSmall.png +0 -0
  527. package/static/devtools/Images/resourcesTimeGraphIcon.avif +0 -0
  528. package/static/devtools/Images/searchNext.png +0 -0
  529. package/static/devtools/Images/searchPrev.png +0 -0
  530. package/static/devtools/Images/securityIcons.svg +1 -0
  531. package/static/devtools/Images/settings_14x14_icon.svg +1 -0
  532. package/static/devtools/Images/smallIcons.svg +1 -0
  533. package/static/devtools/Images/sources_panel_icon.svg +1 -0
  534. package/static/devtools/Images/speech.png +0 -0
  535. package/static/devtools/Images/toolbarResizerVertical.png +0 -0
  536. package/static/devtools/Images/touchCursor.png +0 -0
  537. package/static/devtools/Images/touchCursor_2x.png +0 -0
  538. package/static/devtools/Images/treeoutlineTriangles.svg +1 -0
  539. package/static/devtools/Images/warning_icon.svg +1 -0
  540. package/static/devtools/Images/whatsnew.avif +0 -0
  541. package/static/devtools/Tests.js +1654 -0
  542. package/static/devtools/accessibility/accessibility-legacy.js +1 -0
  543. package/static/devtools/accessibility/accessibility-meta.js +1 -0
  544. package/static/devtools/accessibility/accessibility.js +1 -0
  545. package/static/devtools/accessibility/accessibility_module.js +1 -0
  546. package/static/devtools/accessibility_test_runner/accessibility_test_runner.js +77 -0
  547. package/static/devtools/accessibility_test_runner/accessibility_test_runner_module.js +0 -0
  548. package/static/devtools/animation/animation-legacy.js +1 -0
  549. package/static/devtools/animation/animation-meta.js +1 -0
  550. package/static/devtools/animation/animation.js +1 -0
  551. package/static/devtools/animation/animation_module.js +1 -0
  552. package/static/devtools/application_test_runner/AppcacheTestRunner.js +220 -0
  553. package/static/devtools/application_test_runner/CacheStorageTestRunner.js +286 -0
  554. package/static/devtools/application_test_runner/IndexedDBTestRunner.js +476 -0
  555. package/static/devtools/application_test_runner/ResourceTreeTestRunner.js +99 -0
  556. package/static/devtools/application_test_runner/ResourcesTestRunner.js +167 -0
  557. package/static/devtools/application_test_runner/ServiceWorkersTestRunner.js +131 -0
  558. package/static/devtools/application_test_runner/application_test_runner.js +10 -0
  559. package/static/devtools/application_test_runner/application_test_runner_module.js +0 -0
  560. package/static/devtools/axe_core_test_runner/axe_core_test_runner.js +174 -0
  561. package/static/devtools/axe_core_test_runner/axe_core_test_runner_module.js +0 -0
  562. package/static/devtools/bindings/bindings-legacy.js +1 -0
  563. package/static/devtools/bindings/bindings.js +1 -0
  564. package/static/devtools/bindings_test_runner/AutomappingTestRunner.js +130 -0
  565. package/static/devtools/bindings_test_runner/BindingsTestRunner.js +238 -0
  566. package/static/devtools/bindings_test_runner/IsolatedFilesystemTestRunner.js +287 -0
  567. package/static/devtools/bindings_test_runner/OverridesTestRunner.js +26 -0
  568. package/static/devtools/bindings_test_runner/PersistenceTestRunner.js +109 -0
  569. package/static/devtools/bindings_test_runner/bindings_test_runner.js +9 -0
  570. package/static/devtools/bindings_test_runner/bindings_test_runner_module.js +0 -0
  571. package/static/devtools/browser_debugger/browser_debugger-legacy.js +1 -0
  572. package/static/devtools/browser_debugger/browser_debugger-meta.js +1 -0
  573. package/static/devtools/browser_debugger/browser_debugger.js +1 -0
  574. package/static/devtools/browser_debugger/browser_debugger_module.js +1 -0
  575. package/static/devtools/browser_sdk/browser_sdk-meta.js +1 -0
  576. package/static/devtools/browser_sdk/browser_sdk.js +1 -0
  577. package/static/devtools/changes/changes-legacy.js +1 -0
  578. package/static/devtools/changes/changes-meta.js +1 -0
  579. package/static/devtools/changes/changes.js +1 -0
  580. package/static/devtools/changes/changes_module.js +1 -0
  581. package/static/devtools/client_variations/client_variations.js +1 -0
  582. package/static/devtools/client_variations/client_variations_module.js +0 -0
  583. package/static/devtools/cm/cm.js +1 -0
  584. package/static/devtools/cm/cm_module.js +1 -0
  585. package/static/devtools/cm_headless/cm_headless.js +1 -0
  586. package/static/devtools/color_picker/color_picker-legacy.js +1 -0
  587. package/static/devtools/color_picker/color_picker.js +1 -0
  588. package/static/devtools/color_picker/color_picker_module.js +1 -0
  589. package/static/devtools/common/common-legacy.js +1 -0
  590. package/static/devtools/common/common.js +1 -0
  591. package/static/devtools/component_helpers/component_helpers.js +1 -0
  592. package/static/devtools/components/components-legacy.js +1 -0
  593. package/static/devtools/components/components.js +1 -0
  594. package/static/devtools/console/console-legacy.js +1 -0
  595. package/static/devtools/console/console-meta.js +1 -0
  596. package/static/devtools/console/console.js +6 -0
  597. package/static/devtools/console/console_module.js +1 -0
  598. package/static/devtools/console_counters/console_counters-legacy.js +1 -0
  599. package/static/devtools/console_counters/console_counters.js +1 -0
  600. package/static/devtools/console_test_runner/console_test_runner.js +696 -0
  601. package/static/devtools/console_test_runner/console_test_runner_module.js +0 -0
  602. package/static/devtools/cookie_table/cookie_table-legacy.js +1 -0
  603. package/static/devtools/cookie_table/cookie_table.js +1 -0
  604. package/static/devtools/cookie_table/cookie_table_module.js +1 -0
  605. package/static/devtools/coverage/coverage-legacy.js +1 -0
  606. package/static/devtools/coverage/coverage-meta.js +1 -0
  607. package/static/devtools/coverage/coverage.js +1 -0
  608. package/static/devtools/coverage/coverage_module.js +1 -0
  609. package/static/devtools/coverage_test_runner/coverage_test_runner.js +151 -0
  610. package/static/devtools/coverage_test_runner/coverage_test_runner_module.js +0 -0
  611. package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner.js +72 -0
  612. package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js +0 -0
  613. package/static/devtools/css_overview/css_overview-meta.js +1 -0
  614. package/static/devtools/css_overview/css_overview.js +146 -0
  615. package/static/devtools/css_overview/css_overview_module.js +1 -0
  616. package/static/devtools/data_grid/data_grid-legacy.js +1 -0
  617. package/static/devtools/data_grid/data_grid.js +1 -0
  618. package/static/devtools/data_grid/data_grid_module.js +1 -0
  619. package/static/devtools/data_grid_test_runner/data_grid_test_runner.js +78 -0
  620. package/static/devtools/data_grid_test_runner/data_grid_test_runner_module.js +0 -0
  621. package/static/devtools/developer_resources/developer_resources-legacy.js +1 -0
  622. package/static/devtools/developer_resources/developer_resources-meta.js +1 -0
  623. package/static/devtools/developer_resources/developer_resources.js +1 -0
  624. package/static/devtools/developer_resources/developer_resources_module.js +1 -0
  625. package/static/devtools/device_mode_test_runner/device_mode_test_runner.js +45 -0
  626. package/static/devtools/device_mode_test_runner/device_mode_test_runner_module.js +0 -0
  627. package/static/devtools/devtools_app.html +20 -0
  628. package/static/devtools/devtools_app.js +1 -0
  629. package/static/devtools/devtools_compatibility.js +1546 -0
  630. package/static/devtools/diff/diff-legacy.js +1 -0
  631. package/static/devtools/diff/diff.js +1 -0
  632. package/static/devtools/diff/diff_module.js +0 -0
  633. package/static/devtools/dom_extension/dom_extension.js +1 -0
  634. package/static/devtools/elements/elements-legacy.js +1 -0
  635. package/static/devtools/elements/elements-meta.js +1 -0
  636. package/static/devtools/elements/elements.js +469 -0
  637. package/static/devtools/elements/elements_module.js +1 -0
  638. package/static/devtools/elements_test_runner/EditDOMTestRunner.js +78 -0
  639. package/static/devtools/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +39 -0
  640. package/static/devtools/elements_test_runner/ElementsTestRunner.js +1280 -0
  641. package/static/devtools/elements_test_runner/SetOuterHTMLTestRunner.js +115 -0
  642. package/static/devtools/elements_test_runner/StylesUpdateLinksTestRunner.js +134 -0
  643. package/static/devtools/elements_test_runner/elements_test_runner.js +9 -0
  644. package/static/devtools/elements_test_runner/elements_test_runner_module.js +0 -0
  645. package/static/devtools/emulated_devices/emulated_devices_module.js +0 -0
  646. package/static/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  647. package/static/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  648. package/static/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  649. package/static/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  650. package/static/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  651. package/static/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  652. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  653. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  654. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  655. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  656. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  657. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  658. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  659. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  660. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  661. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  662. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  663. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  664. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  665. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  666. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  667. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  668. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  669. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  670. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  671. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  672. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  673. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  674. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  675. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  676. package/static/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
  677. package/static/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
  678. package/static/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  679. package/static/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  680. package/static/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  681. package/static/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  682. package/static/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  683. package/static/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  684. package/static/devtools/emulation/emulation-legacy.js +1 -0
  685. package/static/devtools/emulation/emulation-meta.js +1 -0
  686. package/static/devtools/emulation/emulation.js +1 -0
  687. package/static/devtools/event_listeners/event_listeners-legacy.js +1 -0
  688. package/static/devtools/event_listeners/event_listeners.js +1 -0
  689. package/static/devtools/event_listeners/event_listeners_module.js +1 -0
  690. package/static/devtools/extensions/extensions-legacy.js +1 -0
  691. package/static/devtools/extensions/extensions.js +1 -0
  692. package/static/devtools/extensions_test_runner/ExtensionsNetworkTestRunner.js +27 -0
  693. package/static/devtools/extensions_test_runner/ExtensionsTestRunner.js +68 -0
  694. package/static/devtools/extensions_test_runner/extensions_test_runner.js +6 -0
  695. package/static/devtools/extensions_test_runner/extensions_test_runner_module.js +0 -0
  696. package/static/devtools/formatter/formatter-legacy.js +1 -0
  697. package/static/devtools/formatter/formatter.js +1 -0
  698. package/static/devtools/formatter/formatter_module.js +0 -0
  699. package/static/devtools/formatter_worker/FormatterActions.js +1 -0
  700. package/static/devtools/formatter_worker/formatter_worker-entrypoint.js +1 -0
  701. package/static/devtools/formatter_worker/formatter_worker.js +1 -0
  702. package/static/devtools/har_importer/har_importer-legacy.js +1 -0
  703. package/static/devtools/har_importer/har_importer.js +1 -0
  704. package/static/devtools/har_importer/har_importer_module.js +0 -0
  705. package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner.js +740 -0
  706. package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner_module.js +0 -0
  707. package/static/devtools/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
  708. package/static/devtools/heap_snapshot_model/heap_snapshot_model.js +1 -0
  709. package/static/devtools/heap_snapshot_model/heap_snapshot_model_module.js +0 -0
  710. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  711. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
  712. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  713. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker_module.js +0 -0
  714. package/static/devtools/help/help-legacy.js +1 -0
  715. package/static/devtools/help/help-meta.js +1 -0
  716. package/static/devtools/help/help.js +1 -0
  717. package/static/devtools/help/help_module.js +1 -0
  718. package/static/devtools/host/host-legacy.js +1 -0
  719. package/static/devtools/host/host.js +1 -0
  720. package/static/devtools/i18n/i18n.js +1 -0
  721. package/static/devtools/i18n/i18n_locales-tsconfig.json +8 -0
  722. package/static/devtools/i18n/locales/en-US.json +3566 -0
  723. package/static/devtools/inline_editor/inline_editor-legacy.js +1 -0
  724. package/static/devtools/inline_editor/inline_editor.js +203 -0
  725. package/static/devtools/inline_editor/inline_editor_module.js +1 -0
  726. package/static/devtools/input/input-legacy.js +1 -0
  727. package/static/devtools/input/input-meta.js +1 -0
  728. package/static/devtools/input/input.js +1 -0
  729. package/static/devtools/input/input_module.js +1 -0
  730. package/static/devtools/inspector.html +20 -0
  731. package/static/devtools/inspector.js +1 -0
  732. package/static/devtools/inspector_main/inspector_main-legacy.js +1 -0
  733. package/static/devtools/inspector_main/inspector_main-meta.js +1 -0
  734. package/static/devtools/inspector_main/inspector_main.js +1 -0
  735. package/static/devtools/integration_test_runner.html +14 -0
  736. package/static/devtools/integration_test_runner.js +2 -0
  737. package/static/devtools/issues/issues-legacy.js +1 -0
  738. package/static/devtools/issues/issues-meta.js +1 -0
  739. package/static/devtools/issues/issues.js +67 -0
  740. package/static/devtools/issues/issues_module.js +1 -0
  741. package/static/devtools/javascript_metadata/javascript_metadata-legacy.js +1 -0
  742. package/static/devtools/javascript_metadata/javascript_metadata.js +1 -0
  743. package/static/devtools/javascript_metadata/javascript_metadata_module.js +0 -0
  744. package/static/devtools/js_app.html +20 -0
  745. package/static/devtools/js_app.js +1 -0
  746. package/static/devtools/js_main/js_main-legacy.js +1 -0
  747. package/static/devtools/js_main/js_main.js +1 -0
  748. package/static/devtools/js_profiler/js_profiler-meta.js +1 -0
  749. package/static/devtools/js_profiler/js_profiler.js +1 -0
  750. package/static/devtools/js_profiler/js_profiler_module.js +0 -0
  751. package/static/devtools/layer_viewer/layer_viewer-legacy.js +1 -0
  752. package/static/devtools/layer_viewer/layer_viewer.js +1 -0
  753. package/static/devtools/layer_viewer/layer_viewer_module.js +1 -0
  754. package/static/devtools/layers/layers-legacy.js +1 -0
  755. package/static/devtools/layers/layers-meta.js +1 -0
  756. package/static/devtools/layers/layers.js +1 -0
  757. package/static/devtools/layers/layers_module.js +0 -0
  758. package/static/devtools/layers_test_runner/layers_test_runner.js +156 -0
  759. package/static/devtools/layers_test_runner/layers_test_runner_module.js +0 -0
  760. package/static/devtools/lighthouse/lighthouse-legacy.js +1 -0
  761. package/static/devtools/lighthouse/lighthouse-meta.js +1 -0
  762. package/static/devtools/lighthouse/lighthouse.js +70 -0
  763. package/static/devtools/lighthouse/lighthouse_module.js +1 -0
  764. package/static/devtools/lighthouse_test_runner/lighthouse_test_runner.js +136 -0
  765. package/static/devtools/lighthouse_test_runner/lighthouse_test_runner_module.js +0 -0
  766. package/static/devtools/lighthouse_worker/LighthouseService.js +195 -0
  767. package/static/devtools/lighthouse_worker/lighthouse_worker.js +6 -0
  768. package/static/devtools/lighthouse_worker.js +1 -0
  769. package/static/devtools/linear_memory_inspector/linear_memory_inspector-legacy.js +1 -0
  770. package/static/devtools/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  771. package/static/devtools/linear_memory_inspector/linear_memory_inspector.js +399 -0
  772. package/static/devtools/linear_memory_inspector/linear_memory_inspector_module.js +0 -0
  773. package/static/devtools/main/main-legacy.js +1 -0
  774. package/static/devtools/main/main.js +1 -0
  775. package/static/devtools/media/media-legacy.js +1 -0
  776. package/static/devtools/media/media-meta.js +1 -0
  777. package/static/devtools/media/media.js +1 -0
  778. package/static/devtools/media/media_module.js +1 -0
  779. package/static/devtools/mobile_throttling/mobile_throttling-legacy.js +1 -0
  780. package/static/devtools/mobile_throttling/mobile_throttling-meta.js +1 -0
  781. package/static/devtools/mobile_throttling/mobile_throttling.js +1 -0
  782. package/static/devtools/ndb_app.html +20 -0
  783. package/static/devtools/ndb_app.js +1 -0
  784. package/static/devtools/network/network-legacy.js +1 -0
  785. package/static/devtools/network/network-meta.js +1 -0
  786. package/static/devtools/network/network.js +72 -0
  787. package/static/devtools/network/network_module.js +1 -0
  788. package/static/devtools/network_test_runner/network_test_runner.js +280 -0
  789. package/static/devtools/network_test_runner/network_test_runner_module.js +0 -0
  790. package/static/devtools/node_app.html +20 -0
  791. package/static/devtools/node_app.js +1 -0
  792. package/static/devtools/node_debugger/node_debugger-meta.js +1 -0
  793. package/static/devtools/node_debugger/node_debugger.js +1 -0
  794. package/static/devtools/node_debugger/node_debugger_module.js +0 -0
  795. package/static/devtools/node_main/node_main-legacy.js +1 -0
  796. package/static/devtools/node_main/node_main-meta.js +1 -0
  797. package/static/devtools/node_main/node_main.js +1 -0
  798. package/static/devtools/object_ui/object_ui-legacy.js +1 -0
  799. package/static/devtools/object_ui/object_ui.js +3 -0
  800. package/static/devtools/object_ui/object_ui_module.js +1 -0
  801. package/static/devtools/perf_ui/perf_ui-legacy.js +1 -0
  802. package/static/devtools/perf_ui/perf_ui.js +152 -0
  803. package/static/devtools/perf_ui/perf_ui_module.js +1 -0
  804. package/static/devtools/performance_monitor/performance_monitor-legacy.js +1 -0
  805. package/static/devtools/performance_monitor/performance_monitor-meta.js +1 -0
  806. package/static/devtools/performance_monitor/performance_monitor.js +1 -0
  807. package/static/devtools/performance_monitor/performance_monitor_module.js +1 -0
  808. package/static/devtools/performance_test_runner/TimelineDataTestRunner.js +5375 -0
  809. package/static/devtools/performance_test_runner/TimelineTestRunner.js +446 -0
  810. package/static/devtools/performance_test_runner/performance_test_runner.js +6 -0
  811. package/static/devtools/performance_test_runner/performance_test_runner_module.js +0 -0
  812. package/static/devtools/persistence/persistence-legacy.js +1 -0
  813. package/static/devtools/persistence/persistence-meta.js +1 -0
  814. package/static/devtools/persistence/persistence.js +1 -0
  815. package/static/devtools/platform/platform.js +1 -0
  816. package/static/devtools/profiler/profiler-legacy.js +1 -0
  817. package/static/devtools/profiler/profiler-meta.js +1 -0
  818. package/static/devtools/profiler/profiler.js +8 -0
  819. package/static/devtools/profiler/profiler_module.js +1 -0
  820. package/static/devtools/protocol_client/protocol_client-legacy.js +1 -0
  821. package/static/devtools/protocol_client/protocol_client.js +1 -0
  822. package/static/devtools/protocol_monitor/protocol_monitor-legacy.js +1 -0
  823. package/static/devtools/protocol_monitor/protocol_monitor-meta.js +1 -0
  824. package/static/devtools/protocol_monitor/protocol_monitor.js +1 -0
  825. package/static/devtools/protocol_monitor/protocol_monitor_module.js +1 -0
  826. package/static/devtools/quick_open/quick_open-legacy.js +1 -0
  827. package/static/devtools/quick_open/quick_open.js +1 -0
  828. package/static/devtools/quick_open/quick_open_module.js +1 -0
  829. package/static/devtools/recorder/recorder.js +1 -0
  830. package/static/devtools/resources/resources-legacy.js +1 -0
  831. package/static/devtools/resources/resources-meta.js +1 -0
  832. package/static/devtools/resources/resources.js +28 -0
  833. package/static/devtools/resources/resources_module.js +1 -0
  834. package/static/devtools/root/root-legacy.js +1 -0
  835. package/static/devtools/root/root.js +1 -0
  836. package/static/devtools/screencast/screencast-legacy.js +1 -0
  837. package/static/devtools/screencast/screencast.js +1 -0
  838. package/static/devtools/sdk/sdk-legacy.js +1 -0
  839. package/static/devtools/sdk/sdk.js +2 -0
  840. package/static/devtools/sdk_test_runner/sdk_test_runner.js +297 -0
  841. package/static/devtools/sdk_test_runner/sdk_test_runner_module.js +0 -0
  842. package/static/devtools/search/search-legacy.js +1 -0
  843. package/static/devtools/search/search.js +1 -0
  844. package/static/devtools/search/search_module.js +1 -0
  845. package/static/devtools/security/security-legacy.js +1 -0
  846. package/static/devtools/security/security-meta.js +1 -0
  847. package/static/devtools/security/security.js +1 -0
  848. package/static/devtools/security/security_module.js +1 -0
  849. package/static/devtools/security_test_runner/security_test_runner.js +32 -0
  850. package/static/devtools/security_test_runner/security_test_runner_module.js +0 -0
  851. package/static/devtools/services/services-legacy.js +1 -0
  852. package/static/devtools/services/services.js +1 -0
  853. package/static/devtools/settings/settings-legacy.js +1 -0
  854. package/static/devtools/settings/settings-meta.js +1 -0
  855. package/static/devtools/settings/settings.js +1 -0
  856. package/static/devtools/settings/settings_module.js +1 -0
  857. package/static/devtools/shell.js +1 -0
  858. package/static/devtools/snippets/snippets-legacy.js +1 -0
  859. package/static/devtools/snippets/snippets.js +1 -0
  860. package/static/devtools/snippets/snippets_module.js +0 -0
  861. package/static/devtools/source_frame/source_frame-legacy.js +1 -0
  862. package/static/devtools/source_frame/source_frame.js +1 -0
  863. package/static/devtools/source_frame/source_frame_module.js +1 -0
  864. package/static/devtools/sources/sources-legacy.js +1 -0
  865. package/static/devtools/sources/sources-meta.js +1 -0
  866. package/static/devtools/sources/sources.js +13 -0
  867. package/static/devtools/sources/sources_module.js +1 -0
  868. package/static/devtools/sources_test_runner/AutocompleteTestRunner.js +46 -0
  869. package/static/devtools/sources_test_runner/DebuggerTestRunner.js +895 -0
  870. package/static/devtools/sources_test_runner/EditorTestRunner.js +237 -0
  871. package/static/devtools/sources_test_runner/LiveEditTestRunner.js +33 -0
  872. package/static/devtools/sources_test_runner/SearchTestRunner.js +158 -0
  873. package/static/devtools/sources_test_runner/SourcesTestRunner.js +173 -0
  874. package/static/devtools/sources_test_runner/sources_test_runner.js +10 -0
  875. package/static/devtools/sources_test_runner/sources_test_runner_module.js +0 -0
  876. package/static/devtools/startup/startup.js +1 -0
  877. package/static/devtools/test_runner/test_runner.js +1 -0
  878. package/static/devtools/text_editor/text_editor-legacy.js +1 -0
  879. package/static/devtools/text_editor/text_editor.js +1 -0
  880. package/static/devtools/text_editor/text_editor_module.js +1 -0
  881. package/static/devtools/text_utils/text_utils-legacy.js +1 -0
  882. package/static/devtools/text_utils/text_utils.js +1 -0
  883. package/static/devtools/theme_support/theme_support.js +1 -0
  884. package/static/devtools/third_party/acorn/acorn-tsconfig.json +8 -0
  885. package/static/devtools/third_party/acorn/acorn.js +1 -0
  886. package/static/devtools/third_party/acorn/package/dist/acorn.d.ts +209 -0
  887. package/static/devtools/third_party/acorn/package/dist/acorn.mjs +5261 -0
  888. package/static/devtools/third_party/acorn/package/dist/acorn.mjs.d.ts +2 -0
  889. package/static/devtools/third_party/acorn/package/dist/acorn.mjs.map +1 -0
  890. package/static/devtools/third_party/acorn-loose/acorn-loose-tsconfig.json +8 -0
  891. package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.d.ts +16 -0
  892. package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.mjs +1418 -0
  893. package/static/devtools/third_party/axe-core/axe.js +16423 -0
  894. package/static/devtools/third_party/chromium/chromium-tsconfig.json +8 -0
  895. package/static/devtools/third_party/chromium/client-variations/ClientVariations.d.ts +13 -0
  896. package/static/devtools/third_party/chromium/client-variations/ClientVariations.js +27 -0
  897. package/static/devtools/third_party/codemirror/codemirror-tsconfig.json +72 -0
  898. package/static/devtools/third_party/codemirror/package/addon/comment/comment.d.ts +4 -0
  899. package/static/devtools/third_party/codemirror/package/addon/comment/comment.js +211 -0
  900. package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.d.ts +1 -0
  901. package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.js +201 -0
  902. package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.d.ts +1 -0
  903. package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.js +158 -0
  904. package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.d.ts +1 -0
  905. package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.js +105 -0
  906. package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.d.ts +1 -0
  907. package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.js +157 -0
  908. package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.d.ts +1 -0
  909. package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.js +163 -0
  910. package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.d.ts +1 -0
  911. package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.js +131 -0
  912. package/static/devtools/third_party/codemirror/package/addon/mode/overlay.d.ts +1 -0
  913. package/static/devtools/third_party/codemirror/package/addon/mode/overlay.js +90 -0
  914. package/static/devtools/third_party/codemirror/package/addon/mode/simple.d.ts +1 -0
  915. package/static/devtools/third_party/codemirror/package/addon/mode/simple.js +216 -0
  916. package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.d.ts +1 -0
  917. package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.js +333 -0
  918. package/static/devtools/third_party/codemirror/package/addon/selection/active-line.d.ts +1 -0
  919. package/static/devtools/third_party/codemirror/package/addon/selection/active-line.js +72 -0
  920. package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.d.ts +1 -0
  921. package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.js +119 -0
  922. package/static/devtools/third_party/codemirror/package/lib/codemirror.d.ts +1 -0
  923. package/static/devtools/third_party/codemirror/package/lib/codemirror.js +9800 -0
  924. package/static/devtools/third_party/codemirror/package/mode/clike/clike.d.ts +4 -0
  925. package/static/devtools/third_party/codemirror/package/mode/clike/clike.js +935 -0
  926. package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.d.ts +4 -0
  927. package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.js +292 -0
  928. package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.d.ts +4 -0
  929. package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.js +359 -0
  930. package/static/devtools/third_party/codemirror/package/mode/css/css.d.ts +1 -0
  931. package/static/devtools/third_party/codemirror/package/mode/css/css.js +864 -0
  932. package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.d.ts +1 -0
  933. package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.js +37 -0
  934. package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.d.ts +1 -0
  935. package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.js +153 -0
  936. package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.d.ts +1 -0
  937. package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.js +942 -0
  938. package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.d.ts +4 -0
  939. package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.js +148 -0
  940. package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.d.ts +4 -0
  941. package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.js +280 -0
  942. package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.d.ts +1 -0
  943. package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.js +886 -0
  944. package/static/devtools/third_party/codemirror/package/mode/php/php.d.ts +1 -0
  945. package/static/devtools/third_party/codemirror/package/mode/php/php.js +234 -0
  946. package/static/devtools/third_party/codemirror/package/mode/python/python.d.ts +1 -0
  947. package/static/devtools/third_party/codemirror/package/mode/python/python.js +399 -0
  948. package/static/devtools/third_party/codemirror/package/mode/shell/shell.d.ts +1 -0
  949. package/static/devtools/third_party/codemirror/package/mode/shell/shell.js +168 -0
  950. package/static/devtools/third_party/codemirror/package/mode/wast/wast.d.ts +1 -0
  951. package/static/devtools/third_party/codemirror/package/mode/wast/wast.js +41 -0
  952. package/static/devtools/third_party/codemirror/package/mode/xml/xml.d.ts +1 -0
  953. package/static/devtools/third_party/codemirror/package/mode/xml/xml.js +413 -0
  954. package/static/devtools/third_party/i18n/bundle-tsconfig.json +8 -0
  955. package/static/devtools/third_party/i18n/i18n.d.ts +108 -0
  956. package/static/devtools/third_party/i18n/i18n.js +4336 -0
  957. package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.d.ts +1 -0
  958. package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.js +1140 -0
  959. package/static/devtools/third_party/lighthouse/lighthouse-tsconfig.json +10 -0
  960. package/static/devtools/third_party/lighthouse/locales/ar-XB.json +2066 -0
  961. package/static/devtools/third_party/lighthouse/locales/ar.json +2066 -0
  962. package/static/devtools/third_party/lighthouse/locales/bg.json +2066 -0
  963. package/static/devtools/third_party/lighthouse/locales/ca.json +2066 -0
  964. package/static/devtools/third_party/lighthouse/locales/cs.json +2066 -0
  965. package/static/devtools/third_party/lighthouse/locales/da.json +2066 -0
  966. package/static/devtools/third_party/lighthouse/locales/de.json +2066 -0
  967. package/static/devtools/third_party/lighthouse/locales/el.json +2066 -0
  968. package/static/devtools/third_party/lighthouse/locales/en-GB.json +2066 -0
  969. package/static/devtools/third_party/lighthouse/locales/en-US.json +2297 -0
  970. package/static/devtools/third_party/lighthouse/locales/en-XA.json +2066 -0
  971. package/static/devtools/third_party/lighthouse/locales/en-XL.json +2297 -0
  972. package/static/devtools/third_party/lighthouse/locales/es-419.json +2066 -0
  973. package/static/devtools/third_party/lighthouse/locales/es.json +2066 -0
  974. package/static/devtools/third_party/lighthouse/locales/fi.json +2066 -0
  975. package/static/devtools/third_party/lighthouse/locales/fil.json +2066 -0
  976. package/static/devtools/third_party/lighthouse/locales/fr.json +2066 -0
  977. package/static/devtools/third_party/lighthouse/locales/he.json +2066 -0
  978. package/static/devtools/third_party/lighthouse/locales/hi.json +2066 -0
  979. package/static/devtools/third_party/lighthouse/locales/hr.json +2066 -0
  980. package/static/devtools/third_party/lighthouse/locales/hu.json +2066 -0
  981. package/static/devtools/third_party/lighthouse/locales/id.json +2066 -0
  982. package/static/devtools/third_party/lighthouse/locales/it.json +2066 -0
  983. package/static/devtools/third_party/lighthouse/locales/ja.json +2066 -0
  984. package/static/devtools/third_party/lighthouse/locales/ko.json +2066 -0
  985. package/static/devtools/third_party/lighthouse/locales/lt.json +2066 -0
  986. package/static/devtools/third_party/lighthouse/locales/lv.json +2066 -0
  987. package/static/devtools/third_party/lighthouse/locales/nl.json +2066 -0
  988. package/static/devtools/third_party/lighthouse/locales/no.json +2066 -0
  989. package/static/devtools/third_party/lighthouse/locales/pl.json +2066 -0
  990. package/static/devtools/third_party/lighthouse/locales/pt-PT.json +2066 -0
  991. package/static/devtools/third_party/lighthouse/locales/pt.json +2066 -0
  992. package/static/devtools/third_party/lighthouse/locales/ro.json +2066 -0
  993. package/static/devtools/third_party/lighthouse/locales/ru.json +2066 -0
  994. package/static/devtools/third_party/lighthouse/locales/sk.json +2066 -0
  995. package/static/devtools/third_party/lighthouse/locales/sl.json +2066 -0
  996. package/static/devtools/third_party/lighthouse/locales/sr-Latn.json +2066 -0
  997. package/static/devtools/third_party/lighthouse/locales/sr.json +2066 -0
  998. package/static/devtools/third_party/lighthouse/locales/sv.json +2066 -0
  999. package/static/devtools/third_party/lighthouse/locales/ta.json +2066 -0
  1000. package/static/devtools/third_party/lighthouse/locales/te.json +2066 -0
  1001. package/static/devtools/third_party/lighthouse/locales/th.json +2066 -0
  1002. package/static/devtools/third_party/lighthouse/locales/tr.json +2066 -0
  1003. package/static/devtools/third_party/lighthouse/locales/uk.json +2066 -0
  1004. package/static/devtools/third_party/lighthouse/locales/vi.json +2066 -0
  1005. package/static/devtools/third_party/lighthouse/locales/zh-HK.json +2066 -0
  1006. package/static/devtools/third_party/lighthouse/locales/zh-TW.json +2066 -0
  1007. package/static/devtools/third_party/lighthouse/locales/zh.json +2066 -0
  1008. package/static/devtools/third_party/lighthouse/report-assets/report-generator.d.ts +1 -0
  1009. package/static/devtools/third_party/lighthouse/report-assets/report-generator.js +167 -0
  1010. package/static/devtools/third_party/lighthouse/report-assets/report.d.ts +1 -0
  1011. package/static/devtools/third_party/lighthouse/report-assets/report.js +5032 -0
  1012. package/static/devtools/third_party/lit-html/lit-html-tsconfig.json +22 -0
  1013. package/static/devtools/third_party/lit-html/lit-html.js +120 -0
  1014. package/static/devtools/third_party/lit-html/package/directives/class-map.d.ts +28 -0
  1015. package/static/devtools/third_party/lit-html/package/directives/class-map.js +101 -0
  1016. package/static/devtools/third_party/lit-html/package/directives/class-map.js.map +1 -0
  1017. package/static/devtools/third_party/lit-html/package/directives/if-defined.d.ts +22 -0
  1018. package/static/devtools/third_party/lit-html/package/directives/if-defined.js +37 -0
  1019. package/static/devtools/third_party/lit-html/package/directives/if-defined.js.map +1 -0
  1020. package/static/devtools/third_party/lit-html/package/directives/live.d.ts +38 -0
  1021. package/static/devtools/third_party/lit-html/package/directives/live.js +73 -0
  1022. package/static/devtools/third_party/lit-html/package/directives/live.js.map +1 -0
  1023. package/static/devtools/third_party/lit-html/package/directives/repeat.d.ts +37 -0
  1024. package/static/devtools/third_party/lit-html/package/directives/repeat.js +415 -0
  1025. package/static/devtools/third_party/lit-html/package/directives/repeat.js.map +1 -0
  1026. package/static/devtools/third_party/lit-html/package/directives/style-map.d.ts +36 -0
  1027. package/static/devtools/third_party/lit-html/package/directives/style-map.js +78 -0
  1028. package/static/devtools/third_party/lit-html/package/directives/style-map.js.map +1 -0
  1029. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.d.ts +39 -0
  1030. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js +52 -0
  1031. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js.map +1 -0
  1032. package/static/devtools/third_party/lit-html/package/lib/directive.d.ts +59 -0
  1033. package/static/devtools/third_party/lit-html/package/lib/directive.js +63 -0
  1034. package/static/devtools/third_party/lit-html/package/lib/directive.js.map +1 -0
  1035. package/static/devtools/third_party/lit-html/package/lib/dom.d.ts +29 -0
  1036. package/static/devtools/third_party/lit-html/package/lib/dom.js +44 -0
  1037. package/static/devtools/third_party/lit-html/package/lib/dom.js.map +1 -0
  1038. package/static/devtools/third_party/lit-html/package/lib/part.d.ts +46 -0
  1039. package/static/devtools/third_party/lit-html/package/lib/part.js +23 -0
  1040. package/static/devtools/third_party/lit-html/package/lib/part.js.map +1 -0
  1041. package/static/devtools/third_party/lit-html/package/lib/parts.d.ts +148 -0
  1042. package/static/devtools/third_party/lit-html/package/lib/parts.js +476 -0
  1043. package/static/devtools/third_party/lit-html/package/lib/parts.js.map +1 -0
  1044. package/static/devtools/third_party/lit-html/package/lib/render.d.ts +33 -0
  1045. package/static/devtools/third_party/lit-html/package/lib/render.js +43 -0
  1046. package/static/devtools/third_party/lit-html/package/lib/render.js.map +1 -0
  1047. package/static/devtools/third_party/lit-html/package/lib/template-factory.d.ts +57 -0
  1048. package/static/devtools/third_party/lit-html/package/lib/template-factory.js +48 -0
  1049. package/static/devtools/third_party/lit-html/package/lib/template-factory.js.map +1 -0
  1050. package/static/devtools/third_party/lit-html/package/lib/template-instance.d.ts +30 -0
  1051. package/static/devtools/third_party/lit-html/package/lib/template-instance.js +134 -0
  1052. package/static/devtools/third_party/lit-html/package/lib/template-instance.js.map +1 -0
  1053. package/static/devtools/third_party/lit-html/package/lib/template-result.d.ts +42 -0
  1054. package/static/devtools/third_party/lit-html/package/lib/template-result.js +131 -0
  1055. package/static/devtools/third_party/lit-html/package/lib/template-result.js.map +1 -0
  1056. package/static/devtools/third_party/lit-html/package/lib/template.d.ts +92 -0
  1057. package/static/devtools/third_party/lit-html/package/lib/template.js +215 -0
  1058. package/static/devtools/third_party/lit-html/package/lib/template.js.map +1 -0
  1059. package/static/devtools/third_party/lit-html/package/lit-html.d.ts +42 -0
  1060. package/static/devtools/third_party/lit-html/package/lit-html.js +59 -0
  1061. package/static/devtools/third_party/lit-html/package/lit-html.js.map +1 -0
  1062. package/static/devtools/third_party/marked/marked-tsconfig.json +8 -0
  1063. package/static/devtools/third_party/marked/marked.js +1 -0
  1064. package/static/devtools/third_party/marked/package/lib/marked.esm.d.ts +1 -0
  1065. package/static/devtools/third_party/marked/package/lib/marked.esm.js +2584 -0
  1066. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +53 -0
  1067. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +1 -0
  1068. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js +64 -0
  1069. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +176 -0
  1070. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -0
  1071. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +356 -0
  1072. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +21 -0
  1073. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
  1074. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -0
  1075. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +423 -0
  1076. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -0
  1077. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +516 -0
  1078. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +39 -0
  1079. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -0
  1080. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +76 -0
  1081. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +26 -0
  1082. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -0
  1083. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -0
  1084. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +120 -0
  1085. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -0
  1086. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +266 -0
  1087. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts +22 -0
  1088. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts.map +1 -0
  1089. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.js +15 -0
  1090. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -0
  1091. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -0
  1092. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +60 -0
  1093. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +181 -0
  1094. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -0
  1095. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +316 -0
  1096. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +174 -0
  1097. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -0
  1098. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +647 -0
  1099. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +53 -0
  1100. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -0
  1101. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +77 -0
  1102. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +33 -0
  1103. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -0
  1104. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +873 -0
  1105. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +76 -0
  1106. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -0
  1107. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +92 -0
  1108. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +25 -0
  1109. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -0
  1110. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +33 -0
  1111. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +34 -0
  1112. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -0
  1113. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +37 -0
  1114. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +59 -0
  1115. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -0
  1116. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js +15 -0
  1117. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts +89 -0
  1118. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -0
  1119. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +109 -0
  1120. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +82 -0
  1121. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +1 -0
  1122. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +83 -0
  1123. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +189 -0
  1124. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -0
  1125. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +313 -0
  1126. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +60 -0
  1127. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -0
  1128. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +66 -0
  1129. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +735 -0
  1130. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -0
  1131. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +962 -0
  1132. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +276 -0
  1133. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -0
  1134. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +421 -0
  1135. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +128 -0
  1136. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -0
  1137. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +150 -0
  1138. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +322 -0
  1139. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -0
  1140. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +463 -0
  1141. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +439 -0
  1142. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -0
  1143. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +724 -0
  1144. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +62 -0
  1145. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -0
  1146. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -0
  1147. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +80 -0
  1148. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -0
  1149. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +262 -0
  1150. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +152 -0
  1151. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -0
  1152. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +31 -0
  1153. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +910 -0
  1154. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -0
  1155. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1343 -0
  1156. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts +21 -0
  1157. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts.map +1 -0
  1158. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.js +15 -0
  1159. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +135 -0
  1160. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -0
  1161. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +133 -0
  1162. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +24 -0
  1163. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts.map +1 -0
  1164. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.js +0 -0
  1165. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +66 -0
  1166. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -0
  1167. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +157 -0
  1168. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +61 -0
  1169. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -0
  1170. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +72 -0
  1171. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +98 -0
  1172. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -0
  1173. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +137 -0
  1174. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +28 -0
  1175. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -0
  1176. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +43 -0
  1177. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +47 -0
  1178. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -0
  1179. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +94 -0
  1180. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +40 -0
  1181. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -0
  1182. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -0
  1183. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +102 -0
  1184. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -0
  1185. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +109 -0
  1186. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +22 -0
  1187. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -0
  1188. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +24 -0
  1189. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +17 -0
  1190. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -0
  1191. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +20 -0
  1192. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +66 -0
  1193. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -0
  1194. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +288 -0
  1195. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +17 -0
  1196. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -0
  1197. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +16 -0
  1198. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts +18 -0
  1199. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -0
  1200. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +39 -0
  1201. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +18 -0
  1202. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +1 -0
  1203. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +22 -0
  1204. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +132 -0
  1205. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -0
  1206. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +468 -0
  1207. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -0
  1208. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -0
  1209. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +197 -0
  1210. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +42 -0
  1211. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -0
  1212. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +0 -0
  1213. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +16 -0
  1214. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -0
  1215. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +469 -0
  1216. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +29 -0
  1217. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -0
  1218. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +34 -0
  1219. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +31 -0
  1220. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -0
  1221. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +61 -0
  1222. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +156 -0
  1223. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -0
  1224. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +183 -0
  1225. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +18 -0
  1226. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -0
  1227. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +151 -0
  1228. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts +18 -0
  1229. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +1 -0
  1230. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +23 -0
  1231. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +18 -0
  1232. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +1 -0
  1233. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.js +22 -0
  1234. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +22 -0
  1235. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -0
  1236. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +19 -0
  1237. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +18 -0
  1238. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +1 -0
  1239. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.js +22 -0
  1240. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +22 -0
  1241. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +1 -0
  1242. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +53 -0
  1243. package/static/devtools/third_party/puppeteer/puppeteer-tsconfig.json +58 -0
  1244. package/static/devtools/third_party/puppeteer/puppeteer.js +1 -0
  1245. package/static/devtools/third_party/wasmparser/package/dist/esm/WasmDis.js +1595 -0
  1246. package/static/devtools/third_party/wasmparser/package/dist/esm/WasmParser.js +3120 -0
  1247. package/static/devtools/third_party/wasmparser/wasmparser-tsconfig.json +9 -0
  1248. package/static/devtools/timeline/timeline-legacy.js +1 -0
  1249. package/static/devtools/timeline/timeline-meta.js +1 -0
  1250. package/static/devtools/timeline/timeline.js +1 -0
  1251. package/static/devtools/timeline/timeline_module.js +1 -0
  1252. package/static/devtools/timeline_model/timeline_model-legacy.js +1 -0
  1253. package/static/devtools/timeline_model/timeline_model.js +1 -0
  1254. package/static/devtools/timeline_model/timeline_model_module.js +0 -0
  1255. package/static/devtools/toolbox.html +20 -0
  1256. package/static/devtools/toolbox.js +1 -0
  1257. package/static/devtools/toolbox_bootstrap/toolbox_bootstrap.js +1 -0
  1258. package/static/devtools/ui/components/components.js +378 -0
  1259. package/static/devtools/ui/ui-legacy.js +1 -0
  1260. package/static/devtools/ui/ui.js +3 -0
  1261. package/static/devtools/ui/utils/utils.js +1 -0
  1262. package/static/devtools/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  1263. package/static/devtools/wasmparser_worker/wasmparser_worker.js +1 -0
  1264. package/static/devtools/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  1265. package/static/devtools/web_audio/web_audio-legacy.js +1 -0
  1266. package/static/devtools/web_audio/web_audio-meta.js +1 -0
  1267. package/static/devtools/web_audio/web_audio.js +23 -0
  1268. package/static/devtools/web_audio/web_audio_module.js +1 -0
  1269. package/static/devtools/webauthn/webauthn-legacy.js +1 -0
  1270. package/static/devtools/webauthn/webauthn-meta.js +1 -0
  1271. package/static/devtools/webauthn/webauthn.js +6 -0
  1272. package/static/devtools/webauthn/webauthn_module.js +1 -0
  1273. package/static/devtools/worker_app.html +20 -0
  1274. package/static/devtools/worker_app.js +1 -0
  1275. package/static/devtools/worker_main/worker_main-legacy.js +1 -0
  1276. package/static/devtools/worker_main/worker_main.js +1 -0
  1277. package/static/devtools/worker_service/worker_service.js +1 -0
  1278. package/static/devtools/workspace/workspace-legacy.js +1 -0
  1279. package/static/devtools/workspace/workspace.js +1 -0
  1280. package/static/devtools/workspace_diff/workspace_diff-legacy.js +1 -0
  1281. package/static/devtools/workspace_diff/workspace_diff.js +1 -0
  1282. package/static/devtools/workspace_diff/workspace_diff_module.js +0 -0
  1283. package/static/docs/swagger.json +3294 -2185
  1284. package/static/function/client.js +1037 -992
  1285. package/build/routes/chromium/http/download-post.body.json +0 -32
  1286. package/build/routes/chromium/http/function-post.body.json +0 -32
  1287. package/build/routes/chromium/http/function-post.query.json +0 -120
  1288. package/build/routes/chromium/http/json-list.response.json +0 -52
  1289. package/build/routes/chromium/http/json-new.js +0 -23
  1290. package/build/routes/chromium/http/json-new.response.json +0 -44
  1291. package/build/routes/chromium/http/json-protocol-get.response.json +0 -6
  1292. package/build/routes/chromium/http/json-version-get.response.json +0 -37
  1293. package/build/routes/chromium/http/pdf-post.query.json +0 -120
  1294. package/build/routes/chromium/http/performance.body.json +0 -26
  1295. package/build/routes/chromium/http/performance.query.json +0 -120
  1296. package/build/routes/chromium/http/scrape-post.response.json +0 -309
  1297. package/build/routes/chromium/http/screenshot-post.query.json +0 -120
  1298. package/build/routes/chromium/utils/cdp.d.ts +0 -2
  1299. package/build/routes/chromium/utils/cdp.js +0 -14
  1300. package/build/routes/chromium/ws/cdp-chromium.js +0 -10
  1301. package/build/routes/chromium/ws/cdp-chromium.query.json +0 -120
  1302. package/build/routes/chromium/ws/playwright-chromium.query.json +0 -100
  1303. package/build/routes/firefox/ws/playwright-firefox.d.ts +0 -16
  1304. package/build/routes/firefox/ws/playwright-firefox.query.json +0 -100
  1305. package/build/routes/management/http/config-get.response.json +0 -107
  1306. package/build/routes/management/http/metrics-get.response.json +0 -94
  1307. package/build/routes/management/http/metrics-total-get.response.json +0 -72
  1308. package/build/routes/webkit/ws/playwright-webkit.query.json +0 -100
  1309. package/src/routes/chromium/http/json-list.ts +0 -50
  1310. package/src/routes/chromium/utils/cdp.ts +0 -19
  1311. package/build/routes/{chromium/http/content-post.query.json → chrome/http/content.post.query.json} +0 -0
  1312. package/build/routes/{chromium/http/content-post.response.json → chrome/http/content.post.response.json} +0 -0
  1313. package/build/routes/{chromium/http/scrape-post.query.json → chrome/http/download.post.query.json} +0 -0
  1314. package/build/routes/{chromium/http/pdf-post.response.json → chrome/http/pdf.post.response.json} +0 -0
  1315. package/build/routes/{chromium/http/screenshot-post.response.json → chrome/http/screenshot.post.response.json} +0 -0
  1316. package/build/routes/{chromium/utils/performance/child.d.ts → chrome/tests/content.spec.d.ts} +0 -0
  1317. package/build/routes/{chromium/utils/performance/types.js → chrome/tests/download.spec.d.ts} +0 -0
  1318. package/build/routes/management/http/{config-get.d.ts → config.get.d.ts} +0 -0
  1319. package/build/routes/management/http/{config-get.js → config.get.js} +0 -0
  1320. package/build/routes/management/http/{metrics-total-get.d.ts → metrics-total.get.d.ts} +0 -0
  1321. package/build/routes/management/http/{metrics-total-get.js → metrics-total.get.js} +0 -0
  1322. package/build/routes/management/http/{metrics-get.d.ts → metrics.get.d.ts} +0 -0
  1323. package/build/routes/management/http/{metrics-get.js → metrics.get.js} +0 -0
  1324. package/build/routes/management/http/{sessions-get.d.ts → sessions.get.d.ts} +0 -0
  1325. package/build/routes/management/http/{sessions-get.js → sessions.get.js} +0 -0
  1326. package/build/routes/management/http/{static-get.d.ts → static.get.d.ts} +0 -0
  1327. package/build/{routes/chromium/http/json-protocol-get.d.ts → shared/json-protocol.http.d.ts} +1 -1
  1328. package/build/{routes/chromium/http/json-version-get.d.ts → shared/json-version.http.d.ts} +1 -1
  1329. /package/build/{routes/chromium → shared}/utils/function/client.d.ts +0 -0
  1330. /package/build/{routes/chromium → shared}/utils/function/client.js +0 -0
  1331. /package/build/{routes/chromium → shared}/utils/function/handler.d.ts +0 -0
  1332. /package/build/{routes/chromium → shared}/utils/function/handler.js +0 -0
  1333. /package/build/{routes/chromium → shared}/utils/performance/child.js +0 -0
  1334. /package/build/{routes/chromium → shared}/utils/performance/main.d.ts +0 -0
  1335. /package/build/{routes/chromium → shared}/utils/performance/types.d.ts +0 -0
  1336. /package/src/routes/management/http/{config-get.ts → config.get.ts} +0 -0
  1337. /package/src/routes/management/http/{metrics-total-get.ts → metrics-total.get.ts} +0 -0
  1338. /package/src/routes/management/http/{metrics-get.ts → metrics.get.ts} +0 -0
  1339. /package/src/routes/management/http/{sessions-get.ts → sessions.get.ts} +0 -0
  1340. /package/src/{routes/chromium → shared}/utils/function/client.ts +0 -0
  1341. /package/src/{routes/chromium → shared}/utils/performance/child.ts +0 -0
  1342. /package/src/{routes/chromium → shared}/utils/performance/types.ts +0 -0
@@ -0,0 +1 @@
1
+ import{RelatedIssue as t}from"../browser_sdk/browser_sdk.js";import{ParsedURL as e}from"../common/common.js";import{DataGrid as i}from"../data_grid/data_grid.js";import{i18n as s}from"../i18n/i18n.js";import{StringUtilities as a}from"../platform/platform.js";import{Cookie as o}from"../sdk/sdk.js";import{Widget as r,Tooltip as l,Icon as n}from"../ui/ui.js";const d={session:"Session",name:"Name",value:"Value",size:"Size",editableCookies:"Editable Cookies",cookies:"Cookies",na:"N/A",showRequestsWithThisCookie:"Show Requests With This Cookie",showIssueAssociatedWithThis:"Show issue associated with this cookie"},u=s.registerUIStrings("cookie_table/CookiesTable.ts",d),c=s.getLocalizedString.bind(void 0,u),h=c(d.session);class b extends r.VBox{constructor(t,e,s,a,r){super(),this.registerRequiredCSS("cookie_table/cookiesTable.css",{enableLegacyPatching:!0}),this.element.classList.add("cookies-table"),this._saveCallback=e,this._refreshCallback=s,this._deleteCallback=r;const l=Boolean(e),n=[{id:o.Attributes.Name,title:c(d.name),sortable:!0,disclosure:l,sort:i.Order.Ascending,longText:!0,weight:24,editable:l},{id:o.Attributes.Value,title:c(d.value),sortable:!0,longText:!0,weight:34,editable:l},{id:o.Attributes.Domain,title:"Domain",sortable:!0,weight:7,editable:l},{id:o.Attributes.Path,title:"Path",sortable:!0,weight:7,editable:l},{id:o.Attributes.Expires,title:"Expires / Max-Age",sortable:!0,weight:7,editable:l},{id:o.Attributes.Size,title:c(d.size),sortable:!0,align:i.Align.Right,weight:7},{id:o.Attributes.HttpOnly,title:"HttpOnly",sortable:!0,align:i.Align.Center,weight:7,dataType:i.DataType.Boolean,editable:l},{id:o.Attributes.Secure,title:"Secure",sortable:!0,align:i.Align.Center,weight:7,dataType:i.DataType.Boolean,editable:l},{id:o.Attributes.SameSite,title:"SameSite",sortable:!0,weight:7,editable:l},{id:o.Attributes.SameParty,title:"SameParty",sortable:!0,align:i.Align.Center,weight:7,dataType:i.DataType.Boolean,editable:!1},{id:o.Attributes.Priority,title:"Priority",sortable:!0,sort:i.Order.Descending,weight:7,editable:l}];this._dataGrid=l?new i.DataGridImpl({displayName:c(d.editableCookies),columns:n,editCallback:this._onUpdateCookie.bind(this),deleteCallback:this._onDeleteCookie.bind(this),refreshCallback:s}):new i.DataGridImpl({displayName:c(d.cookies),columns:n,editCallback:void 0,deleteCallback:void 0,refreshCallback:void 0}),this._dataGrid.setStriped(!0),this._dataGrid.setName("cookiesTable"),this._dataGrid.addEventListener(i.Events.SortingChanged,this._rebuildTable,this),this._dataGrid.setRowContextMenuCallback(this._populateContextMenu.bind(this)),t&&this._dataGrid.renderInline(),a&&this._dataGrid.addEventListener(i.Events.SelectedNode,a,this),this._lastEditedColumnId=null,this._dataGrid.asWidget().show(this.element),this._data=[],this._cookieDomain="",this._cookieToBlockedReasons=null}setCookies(t,e){this.setCookieFolders([{cookies:t,folderName:null}],e)}setCookieFolders(t,e){this._data=t,this._cookieToBlockedReasons=e||null,this._rebuildTable()}setCookieDomain(t){this._cookieDomain=t}selectedCookie(){const t=this._dataGrid.selectedNode;return t?t.cookie:null}_getSelectionCookies(){const t=this._dataGrid.selectedNode,e=t&&t.traverseNextNode(!0),i=t&&t.traversePreviousNode(!0);return{current:t&&t.cookie,neighbor:e&&e.cookie||i&&i.cookie}}willHide(){this._lastEditedColumnId=null}_findSelectedCookie(t,e){if(!e)return null;const i=t.current,s=e.find((t=>this._isSameCookie(t,i)));if(s)return s;const a=t.neighbor,o=e.find((t=>this._isSameCookie(t,a)));return o||null}_isSameCookie(t,e){return null!=e&&e.name()===t.name()&&e.domain()===t.domain()&&e.path()===t.path()}_rebuildTable(){const t=this._getSelectionCookies(),e=this._lastEditedColumnId;this._lastEditedColumnId=null,this._dataGrid.rootNode().removeChildren();for(let s=0;s<this._data.length;++s){const a=this._data[s],r=this._findSelectedCookie(t,a.cookies);if(a.folderName){const t={};t[o.Attributes.Name]=a.folderName,t[o.Attributes.Value]="",t[o.Attributes.Size]=this._totalSize(a.cookies),t[o.Attributes.Domain]="",t[o.Attributes.Path]="",t[o.Attributes.Expires]="",t[o.Attributes.HttpOnly]="",t[o.Attributes.Secure]="",t[o.Attributes.SameSite]="",t[o.Attributes.SameParty]="",t[o.Attributes.Priority]="";const s=new i.DataGridNode(t);s.selectable=!0,this._dataGrid.rootNode().appendChild(s),s.element().classList.add("row-group"),this._populateNode(s,a.cookies,r,e),s.expand()}else this._populateNode(this._dataGrid.rootNode(),a.cookies,r,e)}t.current&&e&&!this._dataGrid.selectedNode&&this._addInactiveNode(this._dataGrid.rootNode(),t.current,e),this._saveCallback&&this._dataGrid.addCreationNode(!1)}_populateNode(t,e,i,s){if(t.removeChildren(),e){this._sortCookies(e);for(let a=0;a<e.length;++a){const o=e[a],r=this._createGridNode(o);t.appendChild(r),this._isSameCookie(o,i)&&(r.select(),null!==s&&this._dataGrid.startEditingNextEditableColumnOfDataGridNode(r,s))}}}_addInactiveNode(t,e,i){const s=this._createGridNode(e);t.appendChild(s),s.select(),s.setInactive(!0),null!==i&&this._dataGrid.startEditingNextEditableColumnOfDataGridNode(s,i)}_totalSize(t){let e=0;for(let i=0;t&&i<t.length;++i)e+=t[i].size();return e}_sortCookies(t){const e=this._dataGrid.isSortOrderAscending()?1:-1;function i(t,e){switch(e){case o.Attributes.Name:return String(t.name());case o.Attributes.Value:return String(t.value());case o.Attributes.Domain:return String(t.domain());case o.Attributes.Path:return String(t.path());case o.Attributes.HttpOnly:return String(t.httpOnly());case o.Attributes.Secure:return String(t.secure());case o.Attributes.SameSite:return String(t.sameSite());case o.Attributes.SameParty:return String(t.sameParty());default:return String(t.name())}}let s;const r=this._dataGrid.sortColumnId()||o.Attributes.Name;s=r===o.Attributes.Expires?function(t,i){return t.session()!==i.session()?e*(t.session()?1:-1):t.session()?0:t.maxAge()&&i.maxAge()?e*(t.maxAge()-i.maxAge()):t.expires()&&i.expires()?e*(t.expires()-i.expires()):e*(t.expires()?1:-1)}:r===o.Attributes.Size?function(t,i){return e*(t.size()-i.size())}:r===o.Attributes.Priority?function(t,i){const s=[Protocol.Network.CookiePriority.Low,Protocol.Network.CookiePriority.Medium,Protocol.Network.CookiePriority.High],a=s.indexOf(t.priority()),o=s.indexOf(i.priority());return e*(a-o)}:function(t,s,o){return e*a.compare(i(s,t),i(o,t))}.bind(null,r),t.sort(s)}_createGridNode(t){const e={};e[o.Attributes.Name]=t.name(),e[o.Attributes.Value]=t.value(),t.type()===o.Type.Request?(e[o.Attributes.Domain]=t.domain()?t.domain():c(d.na),e[o.Attributes.Path]=t.path()?t.path():c(d.na)):(e[o.Attributes.Domain]=t.domain()||"",e[o.Attributes.Path]=t.path()||""),t.maxAge()?e[o.Attributes.Expires]=Number.secondsToString(Math.floor(t.maxAge())):t.expires()?t.expires()<0?e[o.Attributes.Expires]=h:e[o.Attributes.Expires]=new Date(t.expires()).toISOString():e[o.Attributes.Expires]=t.type()===o.Type.Request?c(d.na):h,e[o.Attributes.Size]=t.size(),e[o.Attributes.HttpOnly]=t.httpOnly(),e[o.Attributes.Secure]=t.secure(),e[o.Attributes.SameSite]=t.sameSite()||"",e[o.Attributes.SameParty]=t.sameParty(),e[o.Attributes.Priority]=t.priority()||"";const i=this._cookieToBlockedReasons?this._cookieToBlockedReasons.get(t):null,s=new m(e,t,i||null);return s.selectable=!0,s}_onDeleteCookie(t){t.cookie&&this._deleteCallback&&this._deleteCallback(t.cookie,(()=>this._refresh()))}_onUpdateCookie(t,e,i,s){this._lastEditedColumnId=e,this._setDefaults(t),this._isValidCookieData(t.data)?this._saveNode(t):t.setDirty(!0)}_setDefaults(t){null===t.data[o.Attributes.Name]&&(t.data[o.Attributes.Name]=""),null===t.data[o.Attributes.Value]&&(t.data[o.Attributes.Value]=""),null===t.data[o.Attributes.Domain]&&(t.data[o.Attributes.Domain]=this._cookieDomain),null===t.data[o.Attributes.Path]&&(t.data[o.Attributes.Path]="/"),null===t.data[o.Attributes.Expires]&&(t.data[o.Attributes.Expires]=h)}_saveNode(t){const e=t.cookie,i=this._createCookieFromData(t.data);t.cookie=i,this._saveCallback&&this._saveCallback(i,e).then((e=>{e?this._refresh():t.setDirty(!0)}))}_createCookieFromData(t){const e=new o.Cookie(t[o.Attributes.Name],t[o.Attributes.Value],null,t[o.Attributes.Priority]);return e.addAttribute(o.Attributes.Domain,t[o.Attributes.Domain]),e.addAttribute(o.Attributes.Path,t[o.Attributes.Path]),t.expires&&t.expires!==h&&e.addAttribute(o.Attributes.Expires,new Date(t[o.Attributes.Expires]).toUTCString()),t[o.Attributes.HttpOnly]&&e.addAttribute(o.Attributes.HttpOnly),t[o.Attributes.Secure]&&e.addAttribute(o.Attributes.Secure),t[o.Attributes.SameSite]&&e.addAttribute(o.Attributes.SameSite,t[o.Attributes.SameSite]),t[o.Attributes.SameParty]&&e.addAttribute(o.Attributes.SameParty),e.setSize(t[o.Attributes.Name].length+t[o.Attributes.Value].length),e}_isValidCookieData(t){return(Boolean(t.name)||Boolean(t.value))&&this._isValidDomain(t.domain)&&this._isValidPath(t.path)&&this._isValidDate(t.expires)}_isValidDomain(t){if(!t)return!0;const i=e.ParsedURL.fromString("http://"+t);return null!==i&&i.domain()===t}_isValidPath(t){const i=e.ParsedURL.fromString("http://example.com"+t);return null!==i&&i.path===t}_isValidDate(t){return""===t||t===h||!isNaN(Date.parse(t))}_refresh(){this._refreshCallback&&this._refreshCallback()}_populateContextMenu(e,i){const s=i.cookie;if(!s)return;const a=s;e.revealSection().appendItem(c(d.showRequestsWithThisCookie),(()=>{const t=new CustomEvent("networkrevealandfilter",{bubbles:!0,composed:!0,detail:[{filterType:"cookie-domain",filterValue:a.domain()},{filterType:"cookie-name",filterValue:a.name()}]});this.element.dispatchEvent(t)})),t.hasIssues(a)&&e.revealSection().appendItem(c(d.showIssueAssociatedWithThis),(()=>{t.reveal(a)}))}}class m extends i.DataGridNode{constructor(t,e,i){super(t),this.cookie=e,this._blockedReasons=i}createCells(t){super.createCells(t),this._blockedReasons&&this._blockedReasons.length&&t.classList.add("flagged-cookie-attribute-row")}createCell(t){const e=super.createCell(t);l.Tooltip.install(e,e.textContent||"");let i="";if(this._blockedReasons)for(const e of this._blockedReasons){const s=e.attribute===t,a=!e.attribute&&t===o.Attributes.Name;(s||a)&&(i&&(i+="\n"),i+=e.uiString)}if(i){const t=n.Icon.create("smallicon-info","cookie-warning-icon");l.Tooltip.install(t,i),e.insertBefore(t,e.firstChild),e.classList.add("flagged-cookie-attribute-cell")}return e}}var p=Object.freeze({__proto__:null,UIStrings:d,CookiesTable:b,DataGridNode:m});export{p as CookiesTable};
@@ -0,0 +1 @@
1
+ import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("cookie_table/cookiesTable.css","/*\n * Copyright (c) 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.cookies-table .flagged-cookie-row {\n background-color: yellow;\n}\n\n.cookies-table .cookie-warning-icon {\n margin-right: 4px;\n}\n\n.cookies-table td.flagged-cookie-attribute-cell .cookie-warning-icon {\n filter: grayscale();\n}\n\n.cookies-table tr.revealed.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(odd) {\n background-color: hsl(51deg 85% 80%);\n}\n\n.cookies-table tr.revealed.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(even) {\n background-color: rgb(255 240 155);\n}\n\n/*# sourceURL=cookie_table/cookiesTable.css */");
@@ -0,0 +1 @@
1
+ import{CoverageDecorationManager as e,CoverageListView as o,CoverageModel as r,CoverageView as a}from"./coverage.js";self.Coverage=self.Coverage||{},Coverage=Coverage||{},Coverage.CoverageDecorationManager=e.CoverageDecorationManager,Coverage.CoverageListView=o.CoverageListView,Coverage.CoverageModel=r.CoverageModel,Coverage.CoverageModel.Events=r.Events,Coverage.CoverageType=r.CoverageType,Coverage.coverageTypeToString=o.coverageTypeToString,Coverage.URLCoverageInfo=r.URLCoverageInfo,Coverage.CoverageInfo=r.CoverageInfo,Coverage.CoverageView=a.CoverageView,Coverage.CoverageView.LineDecorator=a.LineDecorator,Coverage.CoverageView.ActionDelegate=a.ActionDelegate;
@@ -0,0 +1 @@
1
+ import{i18n as e}from"../i18n/i18n.js";import{Runtime as t}from"../root/root.js";import{ViewManager as o,ActionRegistration as r}from"../ui/ui.js";const a={coverage:"Coverage",showCoverage:"Show Coverage",instrumentCoverage:"Instrument coverage",stopInstrumentingCoverageAndShow:"Stop instrumenting coverage and show results",startInstrumentingCoverageAnd:"Start instrumenting coverage and reload page"},n=e.registerUIStrings("coverage/coverage-meta.ts",a),i=e.getLazilyComputedLocalizedString.bind(void 0,n);let g;async function s(){return g||(await t.Runtime.instance().loadModulePromise("coverage"),g=await import("./coverage.js")),g}o.registerViewExtension({location:"drawer-view",id:"coverage",title:i(a.coverage),commandPrompt:i(a.showCoverage),persistence:"closeable",order:100,loadView:async()=>(await s()).CoverageView.CoverageView.instance()}),r.registerActionExtension({actionId:"coverage.toggle-recording",iconClass:"largeicon-start-recording",toggleable:!0,toggledIconClass:"largeicon-stop-recording",toggleWithRedColor:!0,loadActionDelegate:async()=>(await s()).CoverageView.ActionDelegate.instance(),category:r.ActionCategory.PERFORMANCE,options:[{value:!0,title:i(a.instrumentCoverage)},{value:!1,title:i(a.stopInstrumentingCoverageAndShow)}]}),r.registerActionExtension({actionId:"coverage.start-with-reload",iconClass:"largeicon-refresh",loadActionDelegate:async()=>(await s()).CoverageView.ActionDelegate.instance(),category:r.ActionCategory.PERFORMANCE,title:i(a.startInstrumentingCoverageAnd)});export{a as UIStrings};
@@ -0,0 +1 @@
1
+ import{ObjectWrapper as e,Revealer as t,Settings as o}from"../common/common.js";import{ArrayUtilities as s,MapUtilities as i,NumberUtilities as n,DateUtilities as r}from"../platform/platform.js";import{SDKModel as a,CPUProfilerModel as l,CSSModel as c,DebuggerModel as d,ResourceTreeModel as h}from"../sdk/sdk.js";import{Text as u,TextRange as g}from"../text_utils/text_utils.js";import{DataGrid as _,SortableDataGrid as p}from"../data_grid/data_grid.js";import{SourceFormatter as v}from"../formatter/formatter.js";import{i18n as f}from"../i18n/i18n.js";import{Widget as m,Tooltip as S,UIUtils as C,Toolbar as y,ActionRegistry as b,ViewManager as B}from"../ui/ui.js";import{Workspace as T,UISourceCode as P}from"../workspace/workspace.js";import{DebuggerWorkspaceBinding as w,CSSWorkspaceBinding as x,FileUtils as R}from"../bindings/bindings.js";import{userMetrics as I,UserMetrics as k}from"../host/host.js";import{SourcesTextEditor as L}from"../source_frame/source_frame.js";var M;!function(e){e.CoverageUpdated="CoverageUpdated",e.CoverageReset="CoverageReset"}(M||(M={}));class E extends a.SDKModel{constructor(e){super(e),this._cpuProfilerModel=e.model(l.CPUProfilerModel),this._cssModel=e.model(c.CSSModel),this._debuggerModel=e.model(d.DebuggerModel),this._coverageByURL=new Map,this._coverageByContentProvider=new Map,this._coverageUpdateTimes=new Set,this._suspensionState="Active",this._pollTimer=null,this._currentPollPromise=null,this._shouldResumePollingOnResume=!1,this._jsBacklog=[],this._cssBacklog=[],this._performanceTraceRecording=!1}async start(e){if("Active"!==this._suspensionState)throw Error("Cannot start CoverageModel while it is not active.");const t=[];return this._cssModel&&(this._clearCSS(),this._cssModel.addEventListener(c.Events.StyleSheetAdded,this._handleStyleSheetAdded,this),t.push(this._cssModel.startCoverage())),this._cpuProfilerModel&&t.push(this._cpuProfilerModel.startPreciseCoverage(e,this.preciseCoverageDeltaUpdate.bind(this))),await Promise.all(t),Boolean(this._cssModel||this._cpuProfilerModel)}preciseCoverageDeltaUpdate(e,t,o){this._coverageUpdateTimes.add(e),this._backlogOrProcessJSCoverage(o,e)}async stop(){await this.stopPolling();const e=[];this._cpuProfilerModel&&e.push(this._cpuProfilerModel.stopPreciseCoverage()),this._cssModel&&(e.push(this._cssModel.stopCoverage()),this._cssModel.removeEventListener(c.Events.StyleSheetAdded,this._handleStyleSheetAdded,this)),await Promise.all(e)}reset(){this._coverageByURL=new Map,this._coverageByContentProvider=new Map,this._coverageUpdateTimes=new Set,this.dispatchEventToListeners(M.CoverageReset)}async startPolling(){this._currentPollPromise||"Active"!==this._suspensionState||await this._pollLoop()}async _pollLoop(){this._clearTimer(),this._currentPollPromise=this._pollAndCallback(),await this._currentPollPromise,("Active"===this._suspensionState||this._performanceTraceRecording)&&(this._pollTimer=window.setTimeout((()=>this._pollLoop()),200))}async stopPolling(){this._clearTimer(),await this._currentPollPromise,this._currentPollPromise=null,await this._pollAndCallback()}async _pollAndCallback(){if("Suspended"===this._suspensionState&&!this._performanceTraceRecording)return;const e=await this._takeAllCoverage();console.assert("Suspended"!==this._suspensionState||Boolean(this._performanceTraceRecording),"CoverageModel was suspended while polling."),e.length&&this.dispatchEventToListeners(M.CoverageUpdated,e)}_clearTimer(){this._pollTimer&&(clearTimeout(this._pollTimer),this._pollTimer=null)}async preSuspendModel(e){"Active"===this._suspensionState&&(this._suspensionState="Suspending","performance-timeline"!==e?this._currentPollPromise&&(await this.stopPolling(),this._shouldResumePollingOnResume=!0):this._performanceTraceRecording=!0)}async suspendModel(e){this._suspensionState="Suspended"}async resumeModel(){}async postResumeModel(){this._suspensionState="Active",this._performanceTraceRecording=!1,this._shouldResumePollingOnResume&&(this._shouldResumePollingOnResume=!1,await this.startPolling())}entries(){return Array.from(this._coverageByURL.values())}getCoverageForUrl(e){return this._coverageByURL.get(e)||null}usageForRange(e,t,o){const s=this._coverageByContentProvider.get(e);return s&&s.usageForRange(t,o)}_clearCSS(){for(const e of this._coverageByContentProvider.values()){if(1!==e.type())continue;const t=e.contentProvider();this._coverageByContentProvider.delete(t);const o=`${t.startLine}:${t.startColumn}`,s=this._coverageByURL.get(e.url());s&&s._coverageInfoByLocation.delete(o)&&(s._addToSizes(-e._usedSize,-e._size),s._coverageInfoByLocation.size||this._coverageByURL.delete(e.url()))}if(this._cssModel)for(const e of this._cssModel.getAllStyleSheetHeaders())this._addStyleSheetToCSSCoverage(e)}async _takeAllCoverage(){const[e,t]=await Promise.all([this._takeCSSCoverage(),this._takeJSCoverage()]);return[...e,...t]}async _takeJSCoverage(){if(!this._cpuProfilerModel)return[];const{coverage:e,timestamp:t}=await this._cpuProfilerModel.takePreciseCoverage();return this._coverageUpdateTimes.add(t),this._backlogOrProcessJSCoverage(e,t)}coverageUpdateTimes(){return this._coverageUpdateTimes}async _backlogOrProcessJSCoverage(e,t){if(e.length>0&&this._jsBacklog.push({rawCoverageData:e,stamp:t}),"Active"!==this._suspensionState)return[];const o=(e,t)=>e.stamp-t.stamp,s=[];for(const{rawCoverageData:e,stamp:t}of this._jsBacklog.sort(o))s.push(this._processJSCoverage(e,t));return this._jsBacklog=[],s.flat()}async processJSBacklog(){this._backlogOrProcessJSCoverage([],0)}_processJSCoverage(e,t){if(!this._debuggerModel)return[];const o=[];for(const s of e){const e=this._debuggerModel.scriptForId(s.scriptId);if(!e)continue;const i=[];let n=2;for(const e of s.functions){!1!==e.isBlockCoverage||1===e.ranges.length&&!e.ranges[0].count||(n|=4);for(const t of e.ranges)i.push(t)}const r=this._addCoverage(e,e.contentLength,e.lineOffset,e.columnOffset,i,n,t);r&&o.push(r)}return o}_handleStyleSheetAdded(e){const t=e.data;this._addStyleSheetToCSSCoverage(t)}async _takeCSSCoverage(){if(!this._cssModel||"Active"!==this._suspensionState)return[];const{coverage:e,timestamp:t}=await this._cssModel.takeCoverageDelta();return this._coverageUpdateTimes.add(t),this._backlogOrProcessCSSCoverage(e,t)}async _backlogOrProcessCSSCoverage(e,t){if(e.length>0&&this._cssBacklog.push({rawCoverageData:e,stamp:t}),"Active"!==this._suspensionState)return[];const o=(e,t)=>e.stamp-t.stamp,s=[];for(const{rawCoverageData:e,stamp:t}of this._cssBacklog.sort(o))s.push(this._processCSSCoverage(e,t));return this._cssBacklog=[],s.flat()}_processCSSCoverage(e,t){if(!this._cssModel)return[];const o=[],s=new Map;for(const t of e){const e=this._cssModel.styleSheetHeaderForId(t.styleSheetId);if(!e)continue;let o=s.get(e);o||(o=[],s.set(e,o)),o.push({startOffset:t.startOffset,endOffset:t.endOffset,count:Number(t.used)})}for(const e of s){const s=e[0],i=e[1],n=this._addCoverage(s,s.contentLength,s.startLine,s.startColumn,i,1,t);n&&o.push(n)}return o}static _convertToDisjointSegments(e,t){e.sort(((e,t)=>e.startOffset-t.startOffset));const o=[],s=[];for(const t of e){let e=s[s.length-1];for(;e&&e.endOffset<=t.startOffset;)i(e.endOffset,e.count),s.pop(),e=s[s.length-1];i(t.startOffset,e?e.count:0),s.push(t)}for(let e=s.pop();e;e=s.pop())i(e.endOffset,e.count);function i(e,s){const i=o[o.length-1];if(i){if(i.end===e)return;if(i.count===s)return void(i.end=e)}o.push({end:e,count:s,stamp:t})}return o}_addStyleSheetToCSSCoverage(e){this._addCoverage(e,e.contentLength,e.startLine,e.startColumn,[],1,Date.now())}_addCoverage(e,t,o,s,i,n,r){const a=e.contentURL();if(!a)return null;let l=this._coverageByURL.get(a),c=!1;l||(c=!0,l=new F(a),this._coverageByURL.set(a,l));const d=l._ensureEntry(e,t,o,s,n);this._coverageByContentProvider.set(e,d);const h=E._convertToDisjointSegments(i,r),u=h[h.length-1];u&&u.end<t&&h.push({end:t,stamp:r,count:0});const g=d._usedSize;return d.mergeCoverage(h),c||d._usedSize!==g?(l._addToSizes(d._usedSize-g,0),d):null}async exportReport(e){const t=[];function o(e,t){const[o,s]=e.split(":"),[i,n]=t.split(":");return Number.parseInt(o,10)-Number.parseInt(i,10)||Number.parseInt(s,10)-Number.parseInt(n,10)}const s=Array.from(this._coverageByURL.keys()).sort();for(const e of s){const s=this._coverageByURL.get(e);if(!s)continue;const i=s.url();if(i.startsWith("extensions::")||i.startsWith("chrome-extension://"))continue;let n=!1;for(const e of s._coverageInfoByLocation.values())if(e._lineOffset||e._columnOffset){n=Boolean(i);break}let r=null;if(n){const e=h.ResourceTreeModel.resourceForURL(i);if(e){const t=(await e.requestContent()).content;r=new u.Text(t||"")}}const a=Array.from(s._coverageInfoByLocation.keys()).sort(o);if(r){const e={url:i,ranges:[],text:r.value()};for(const t of a){const o=s._coverageInfoByLocation.get(t);if(!o)continue;const i=r?r.offsetFromPosition(o._lineOffset,o._columnOffset):0;let n=0;for(const t of o._segments)t.count?e.ranges.push({start:n+i,end:t.end+i}):n=t.end}t.push(e)}else for(const e of a){const o=s._coverageInfoByLocation.get(e);if(!o)continue;const n={url:i,ranges:[],text:(await o.contentProvider().requestContent()).content};let r=0;for(const e of o._segments)e.count?n.ranges.push({start:r,end:e.end}):r=e.end;t.push(n)}}await e.write(JSON.stringify(t,void 0,2)),e.close()}}a.SDKModel.register(E,a.Capability.None,!1);class F extends e.ObjectWrapper{constructor(e){super(),this._url=e,this._coverageInfoByLocation=new Map,this._size=0,this._usedSize=0,this._isContentScript=!1}url(){return this._url}type(){return this._type}size(){return this._size}usedSize(){return this._usedSize}unusedSize(){return this._size-this._usedSize}usedPercentage(){return 0===this._size?0:this.usedSize()/this.size()*100}unusedPercentage(){return 0===this._size?100:this.unusedSize()/this.size()*100}isContentScript(){return this._isContentScript}entries(){return this._coverageInfoByLocation.values()}_addToSizes(e,t){this._usedSize+=e,this._size+=t,0===e&&0===t||this.dispatchEventToListeners(F.Events.SizesChanged)}_ensureEntry(e,t,o,s,i){const n=`${o}:${s}`;let r=this._coverageInfoByLocation.get(n);return 2&i&&!this._coverageInfoByLocation.size&&(this._isContentScript=e.isContentScript()),this._type|=i,r?(r._coverageType|=i,r):(2&i&&!this._coverageInfoByLocation.size&&(this._isContentScript=e.isContentScript()),r=new A(e,t,o,s,i),this._coverageInfoByLocation.set(n,r),this._addToSizes(0,t),r)}}F.Events={SizesChanged:Symbol("SizesChanged")};const z=(e,t)=>{const o=[];let s=0,i=0;for(;s<e.length&&i<t.length;){const n=e[s],r=t[i],a=(n.count||0)+(r.count||0),l=Math.min(n.end,r.end),c=o[o.length-1],d=Math.min(n.stamp,r.stamp);c&&c.count===a&&c.stamp===d?c.end=l:o.push({end:l,count:a,stamp:d}),n.end<=r.end&&s++,n.end>=r.end&&i++}for(;s<e.length;s++)o.push(e[s]);for(;i<t.length;i++)o.push(t[i]);return o};class A{constructor(e,t,o,s,i){this._contentProvider=e,this._size=t,this._usedSize=0,this._statsByTimestamp=new Map,this._lineOffset=o,this._columnOffset=s,this._coverageType=i,this._segments=[]}contentProvider(){return this._contentProvider}url(){return this._contentProvider.contentURL()}type(){return this._coverageType}mergeCoverage(e){this._segments=z(this._segments,e),this._updateStats()}usedByTimestamp(){return this._statsByTimestamp}size(){return this._size}usageForRange(e,t){let o=s.upperBound(this._segments,e,((e,t)=>e-t.end));for(;o<this._segments.length&&this._segments[o].end<t;++o)if(this._segments[o].count)return!0;return o<this._segments.length&&Boolean(this._segments[o].count)}_updateStats(){this._statsByTimestamp=new Map,this._usedSize=0;let e=0;for(const t of this._segments){let o=this._statsByTimestamp.get(t.stamp);if(void 0===o&&(o=0),t.count){const s=t.end-e;this._usedSize+=s,this._statsByTimestamp.set(t.stamp,o+s)}e=t.end}}}var U=Object.freeze({__proto__:null,get Events(){return M},CoverageModel:E,URLCoverageInfo:F,mergeSegments:z,CoverageInfo:A});const O={css:"CSS",jsPerFunction:"JS (per function)",jsPerBlock:"JS (per block)",url:"URL",type:"Type",totalBytes:"Total Bytes",unusedBytes:"Unused Bytes",usageVisualization:"Usage Visualization",codeCoverage:"Code Coverage",jsCoverageWithPerFunction:"JS coverage with per function granularity: Once a function was executed, the whole function is marked as covered.",jsCoverageWithPerBlock:"JS coverage with per block granularity: Once a block of JavaScript was executed, that block is marked as covered.",Byte:"1 byte",sBytes:"{PH1} bytes",sPercent:"{PH1} %",ByteS:"1 byte, {PH1}",sBytesS:"{PH1} bytes, {PH2}",sBytesSBelongToFunctionsThatHave:"{PH1} bytes ({PH2} %) belong to functions that have not (yet) been executed.",sBytesSBelongToBlocksOf:"{PH1} bytes ({PH2} %) belong to blocks of JavaScript that have not (yet) been executed.",sBytesSBelongToFunctionsThatHaveExecuted:"{PH1} bytes ({PH2} %) belong to functions that have executed at least once.",sBytesSBelongToBlocksOfJavascript:"{PH1} bytes ({PH2} %) belong to blocks of JavaScript that have executed at least once.",sOfFileUnusedSOfFileUsed:"{PH1} % of file unused, {PH2} % of file used"},H=f.registerUIStrings("coverage/CoverageListView.ts",O),V=f.getLocalizedString.bind(void 0,H);function N(e){const t=[];return 1&e&&t.push(V(O.css)),4&e?t.push(V(O.jsPerFunction)):2&e&&t.push(V(O.jsPerBlock)),t.join("+")}class j extends m.VBox{constructor(e){super(!0),this._nodeForCoverageInfo=new Map,this._isVisibleFilter=e,this._highlightRegExp=null,this.registerRequiredCSS("coverage/coverageListView.css",{enableLegacyPatching:!0});const t=[{id:"url",title:V(O.url),width:"250px",fixedWidth:!1,sortable:!0},{id:"type",title:V(O.type),width:"45px",fixedWidth:!0,sortable:!0},{id:"size",title:V(O.totalBytes),width:"60px",fixedWidth:!0,sortable:!0,align:_.Align.Right},{id:"unusedSize",title:V(O.unusedBytes),width:"100px",fixedWidth:!0,sortable:!0,align:_.Align.Right,sort:_.Order.Descending},{id:"bars",title:V(O.usageVisualization),width:"250px",fixedWidth:!1,sortable:!0}];this._dataGrid=new p.SortableDataGrid({displayName:V(O.codeCoverage),columns:t,editCallback:void 0,refreshCallback:void 0,deleteCallback:void 0}),this._dataGrid.setResizeMethod(_.ResizeMethod.Last),this._dataGrid.element.classList.add("flex-auto"),this._dataGrid.element.addEventListener("keydown",this._onKeyDown.bind(this),!1),this._dataGrid.addEventListener(_.Events.OpenedNode,this._onOpenedNode,this),this._dataGrid.addEventListener(_.Events.SortingChanged,this._sortingChanged,this);const o=this._dataGrid.asWidget();o.show(this.contentElement),this.setDefaultFocusedChild(o)}update(e){let t=!1;const o=e.reduce(((e,t)=>Math.max(e,t.size())),0),s=this._dataGrid.rootNode();for(const i of e){let e=this._nodeForCoverageInfo.get(i);e?this._isVisibleFilter(e._coverageInfo)&&(t=e._refreshIfNeeded(o)||t):(e=new D(i,o),this._nodeForCoverageInfo.set(i,e),this._isVisibleFilter(e._coverageInfo)&&(s.appendChild(e),t=!0))}t&&this._sortingChanged()}reset(){this._nodeForCoverageInfo.clear(),this._dataGrid.rootNode().removeChildren()}updateFilterAndHighlight(e){this._highlightRegExp=e;let t=!1;for(const e of this._nodeForCoverageInfo.values()){const o=this._isVisibleFilter(e._coverageInfo),s=Boolean(e.parent);o&&e._setHighlight(this._highlightRegExp),o!==s&&(t=!0,o?this._dataGrid.rootNode().appendChild(e):e.remove())}t&&this._sortingChanged()}selectByUrl(e){for(const[t,o]of this._nodeForCoverageInfo.entries())if(t.url()===e){o.revealAndSelect();break}}_onOpenedNode(){this._revealSourceForSelectedNode()}_onKeyDown(e){"Enter"===e.key&&(e.consume(!0),this._revealSourceForSelectedNode())}async _revealSourceForSelectedNode(){const e=this._dataGrid.selectedNode;if(!e)return;const o=e._coverageInfo;let s=T.WorkspaceImpl.instance().uiSourceCodeForURL(o.url());if(!s)return;s=(await v.SourceFormatter.instance().format(s)).formattedSourceCode,this._dataGrid.selectedNode===e&&t.reveal(s)}_sortingChanged(){const e=this._dataGrid.sortColumnId();if(!e)return;const t=D.sortFunctionForColumn(e);t&&this._dataGrid.sortNodes(t,!this._dataGrid.isSortOrderAscending())}}class D extends p.SortableDataGridNode{constructor(e,t){super(),this._coverageInfo=e,this._url=e.url(),this._maxSize=t,this._highlightRegExp=null}_setHighlight(e){this._highlightRegExp!==e&&(this._highlightRegExp=e,this.refresh())}_refreshIfNeeded(e){return(this._lastUsedSize!==this._coverageInfo.usedSize()||e!==this._maxSize)&&(this._lastUsedSize=this._coverageInfo.usedSize(),this._maxSize=e,this.refresh(),!0)}createCell(e){const t=this.createTD(e);switch(e){case"url":{S.Tooltip.install(t,this._url);const o=t.createChild("div","url-outer"),s=o.createChild("div","url-prefix"),i=o.createChild("div","url-suffix"),n=/^(.*)(\/[^/]*)$/.exec(this._url);s.textContent=n?n[1]:this._url,i.textContent=n?n[2]:"",this._highlightRegExp&&this._highlight(o,this._url),this.setCellAccessibleName(this._url,t,e);break}case"type":t.textContent=N(this._coverageInfo.type()),4&this._coverageInfo.type()?S.Tooltip.install(t,V(O.jsCoverageWithPerFunction)):2&this._coverageInfo.type()&&S.Tooltip.install(t,V(O.jsCoverageWithPerBlock));break;case"size":{t.createChild("span").textContent=Number.withThousandsSeparator(this._coverageInfo.size()||0);const o=1===this._coverageInfo.size()?V(O.Byte):V(O.sBytes,{PH1:this._coverageInfo.size()||0});this.setCellAccessibleName(o,t,e);break}case"unusedSize":{const o=this._coverageInfo.unusedSize()||0,s=t.createChild("span"),i=t.createChild("span","percent-value");s.textContent=Number.withThousandsSeparator(o);const n=V(O.sPercent,{PH1:this._percentageString(this._coverageInfo.unusedPercentage())});i.textContent=n;const r=1===o?V(O.ByteS,{PH1:n}):V(O.sBytesS,{PH1:o,PH2:n});this.setCellAccessibleName(r,t,e);break}case"bars":{const o=t.createChild("div","bar-container"),s=this._percentageString(this._coverageInfo.unusedPercentage()),i=this._percentageString(this._coverageInfo.usedPercentage());if(this._coverageInfo.unusedSize()>0){const e=o.createChild("div","bar bar-unused-size");e.style.width=(this._coverageInfo.unusedSize()/this._maxSize*100||0)+"%",4&this._coverageInfo.type()?S.Tooltip.install(e,V(O.sBytesSBelongToFunctionsThatHave,{PH1:this._coverageInfo.unusedSize(),PH2:s})):2&this._coverageInfo.type()&&S.Tooltip.install(e,V(O.sBytesSBelongToBlocksOf,{PH1:this._coverageInfo.unusedSize(),PH2:s}))}if(this._coverageInfo.usedSize()>0){const e=o.createChild("div","bar bar-used-size");e.style.width=(this._coverageInfo.usedSize()/this._maxSize*100||0)+"%",4&this._coverageInfo.type()?S.Tooltip.install(e,V(O.sBytesSBelongToFunctionsThatHaveExecuted,{PH1:this._coverageInfo.usedSize(),PH2:i})):2&this._coverageInfo.type()&&S.Tooltip.install(e,V(O.sBytesSBelongToBlocksOfJavascript,{PH1:this._coverageInfo.usedSize(),PH2:i}))}this.setCellAccessibleName(V(O.sOfFileUnusedSOfFileUsed,{PH1:s,PH2:i}),t,e)}}return t}_percentageString(e){return e.toFixed(1)}_highlight(e,t){if(!this._highlightRegExp)return;const o=this._highlightRegExp.exec(t);if(!o||!o.length)return;const s=new g.SourceRange(o.index,o[0].length);C.highlightRangesWithStyleClass(e,[s],"filter-highlight")}static sortFunctionForColumn(e){const t=(e,t)=>e._url.localeCompare(t._url);switch(e){case"url":return t;case"type":return(e,o)=>{const s=N(e._coverageInfo.type()),i=N(o._coverageInfo.type());return s.localeCompare(i)||t(e,o)};case"size":return(e,o)=>e._coverageInfo.size()-o._coverageInfo.size()||t(e,o);case"bars":case"unusedSize":return(e,o)=>e._coverageInfo.unusedSize()-o._coverageInfo.unusedSize()||t(e,o);default:return console.assert(!1,"Unknown sort field: "+e),null}}}var W=Object.freeze({__proto__:null,UIStrings:O,coverageTypeToString:N,CoverageListView:j,GridNode:D});class G{constructor(e){this._coverageModel=e,this._textByProvider=new Map,this._uiSourceCodeByContentProvider=new i.Multimap;for(const e of T.WorkspaceImpl.instance().uiSourceCodes())e.addLineDecoration(0,"coverage",this);T.WorkspaceImpl.instance().addEventListener(T.Events.UISourceCodeAdded,this._onUISourceCodeAdded,this)}reset(){for(const e of T.WorkspaceImpl.instance().uiSourceCodes())e.removeDecorationsForType("coverage")}dispose(){this.reset(),T.WorkspaceImpl.instance().removeEventListener(T.Events.UISourceCodeAdded,this._onUISourceCodeAdded,this)}update(e){for(const t of e)for(const e of this._uiSourceCodeByContentProvider.get(t.contentProvider()))e.removeDecorationsForType("coverage"),e.addLineDecoration(0,"coverage",this)}async usageByLine(e){const t=[],{content:o}=await e.requestContent();if(!o)return[];const s=new u.Text(o);await this._updateTexts(e,s);const i=s.lineEndings();for(let o=0;o<s.lineCount();++o){const s=i[o]-(o?i[o-1]:0)-1;if(!s){t.push(void 0);continue}const n=this._rawLocationsForSourceLocation(e,o,0),r=this._rawLocationsForSourceLocation(e,o,s),[a,l]=await Promise.all([n,r]);let c=void 0;for(let e=0,t=0;e<a.length;++e){const o=a[e];for(;t<l.length&&G._compareLocations(o,l[t])>=0;)++t;if(t>=l.length||l[t].id!==o.id)continue;const s=l[t++],i=this._textByProvider.get(s.contentProvider);if(!i)continue;const n=i.value();let r=Math.min(i.offsetFromPosition(o.line,o.column),n.length-1),d=Math.min(i.offsetFromPosition(s.line,s.column),n.length-1);for(;r<=d&&/\s/.test(n[r]);)++r;for(;r<=d&&/\s/.test(n[d]);)--d;if(r<=d&&(c=this._coverageModel.usageForRange(s.contentProvider,r,d)),c)break}t.push(c)}return t}async _updateTexts(e,t){const o=[];for(let s=0;s<t.lineCount();++s)for(const t of await this._rawLocationsForSourceLocation(e,s,0))this._textByProvider.has(t.contentProvider)||(this._textByProvider.set(t.contentProvider,null),this._uiSourceCodeByContentProvider.set(t.contentProvider,e),o.push(this._updateTextForProvider(t.contentProvider)));await Promise.all(o)}async _updateTextForProvider(e){const{content:t}=await e.requestContent();this._textByProvider.set(e,new u.Text(t||""))}async _rawLocationsForSourceLocation(e,t,o){const s=[],i=e.contentType();if(i.hasScripts()){let n=await w.DebuggerWorkspaceBinding.instance().uiLocationToRawLocations(e,t,o);n=n.filter((e=>Boolean(e.script())));for(const e of n){const t=e.script();t&&(t.isInlineScript()&&i.isDocument()&&(e.lineNumber-=t.lineOffset,e.lineNumber||(e.columnNumber-=t.columnOffset)),s.push({id:"js:"+e.scriptId,contentProvider:t,line:e.lineNumber,column:e.columnNumber}))}}if(i.isStyleSheet()||i.isDocument()){const n=x.CSSWorkspaceBinding.instance().uiLocationToRawLocations(new P.UILocation(e,t,o));for(const e of n){const t=e.header();t&&(t.isInline&&i.isDocument()&&(e.lineNumber-=t.startLine,e.lineNumber||(e.columnNumber-=t.startColumn)),s.push({id:"css:"+e.styleSheetId,contentProvider:t,line:e.lineNumber,column:e.columnNumber}))}}return s.sort(G._compareLocations)}static _compareLocations(e,t){return e.id.localeCompare(t.id)||e.line-t.line||e.column-t.column}_onUISourceCodeAdded(e){e.data.addLineDecoration(0,"coverage",this)}}var J=Object.freeze({__proto__:null,decoratorType:"coverage",CoverageDecorationManager:G});const $={chooseCoverageGranularityPer:"Choose coverage granularity: Per function has low overhead, per block has significant overhead.",perFunction:"Per function",perBlock:"Per block",clearAll:"Clear all",export:"Export...",urlFilter:"URL filter",filterCoverageByType:"Filter coverage by type",all:"All",css:"CSS",javascript:"JavaScript",includeExtensionContentScripts:"Include extension content scripts",contentScripts:"Content scripts",clickTheReloadButtonSToReloadAnd:"Click the reload button {PH1} to reload and start capturing coverage.",clickTheRecordButtonSToStart:"Click the record button {PH1} to start capturing coverage.",filteredSTotalS:"Filtered: {PH1} Total: {PH2}",sOfSSUsedSoFarSUnused:"{PH1} of {PH2} ({PH3}%) used so far,\n {PH4} unused."},q=f.registerUIStrings("coverage/CoverageView.ts",$),K=f.getLocalizedString.bind(void 0,q);let Q,X;class Y extends m.VBox{constructor(){super(!0),this._model=null,this._decorationManager=null,this._resourceTreeModel=null,this.registerRequiredCSS("coverage/coverageView.css",{enableLegacyPatching:!0});const e=this.contentElement.createChild("div","coverage-toolbar-container"),t=new y.Toolbar("coverage-toolbar",e);this._coverageTypeComboBox=new y.ToolbarComboBox(this._onCoverageTypeComboBoxSelectionChanged.bind(this),K($.chooseCoverageGranularityPer));const s=[{label:K($.perFunction),value:6},{label:K($.perBlock),value:2}];for(const e of s)this._coverageTypeComboBox.addOption(this._coverageTypeComboBox.createOption(e.label,""+e.value));this._coverageTypeComboBoxSetting=o.Settings.instance().createSetting("coverageViewCoverageType",0),this._coverageTypeComboBox.setSelectedIndex(this._coverageTypeComboBoxSetting.get()),this._coverageTypeComboBox.setEnabled(!0),t.appendToolbarItem(this._coverageTypeComboBox),this._toggleRecordAction=b.ActionRegistry.instance().action("coverage.toggle-recording"),this._toggleRecordButton=y.Toolbar.createActionButton(this._toggleRecordAction),t.appendToolbarItem(this._toggleRecordButton);const i=a.TargetManager.instance().mainTarget(),n=i&&i.model(h.ResourceTreeModel);if(this._inlineReloadButton=null,n){const e=b.ActionRegistry.instance().action("coverage.start-with-reload");this._startWithReloadButton=y.Toolbar.createActionButton(e),t.appendToolbarItem(this._startWithReloadButton),this._toggleRecordButton.setEnabled(!1),this._toggleRecordButton.setVisible(!1)}this._clearButton=new y.ToolbarButton(K($.clearAll),"largeicon-clear"),this._clearButton.addEventListener(y.ToolbarButton.Events.Click,this._clear.bind(this)),t.appendToolbarItem(this._clearButton),t.appendSeparator(),this._saveButton=new y.ToolbarButton(K($.export),"largeicon-download"),this._saveButton.addEventListener(y.ToolbarButton.Events.Click,(e=>{this._exportReport()})),t.appendToolbarItem(this._saveButton),this._saveButton.setEnabled(!1),this._textFilterRegExp=null,t.appendSeparator(),this._filterInput=new y.ToolbarInput(K($.urlFilter),"",.4,1),this._filterInput.setEnabled(!1),this._filterInput.addEventListener(y.ToolbarInput.Event.TextChanged,this._onFilterChanged,this),t.appendToolbarItem(this._filterInput),t.appendSeparator(),this._typeFilterValue=null,this._filterByTypeComboBox=new y.ToolbarComboBox(this._onFilterByTypeChanged.bind(this),K($.filterCoverageByType));const r=[{label:K($.all),value:""},{label:K($.css),value:1},{label:K($.javascript),value:6}];for(const e of r)this._filterByTypeComboBox.addOption(this._filterByTypeComboBox.createOption(e.label,""+e.value));this._filterByTypeComboBox.setSelectedIndex(0),this._filterByTypeComboBox.setEnabled(!1),t.appendToolbarItem(this._filterByTypeComboBox),t.appendSeparator(),this._showContentScriptsSetting=o.Settings.instance().createSetting("showContentScripts",!1),this._showContentScriptsSetting.addChangeListener(this._onFilterChanged,this),this._contentScriptsCheckbox=new y.ToolbarSettingCheckbox(this._showContentScriptsSetting,K($.includeExtensionContentScripts),K($.contentScripts)),this._contentScriptsCheckbox.setEnabled(!1),t.appendToolbarItem(this._contentScriptsCheckbox),this._coverageResultsElement=this.contentElement.createChild("div","coverage-results"),this._landingPage=this._buildLandingPage(),this._listView=new j(this._isVisible.bind(this,!1)),this._statusToolbarElement=this.contentElement.createChild("div","coverage-toolbar-summary"),this._statusMessageElement=this._statusToolbarElement.createChild("div","coverage-message"),this._landingPage.show(this._coverageResultsElement)}static instance(){return Q||(Q=new Y),Q}_buildLandingPage(){const e=new m.VBox;let t;if(this._startWithReloadButton)this._inlineReloadButton=C.createInlineButton(y.Toolbar.createActionButtonForId("coverage.start-with-reload")),t=f.getFormatLocalizedString(q,$.clickTheReloadButtonSToReloadAnd,{PH1:this._inlineReloadButton});else{const e=C.createInlineButton(y.Toolbar.createActionButton(this._toggleRecordAction));t=f.getFormatLocalizedString(q,$.clickTheRecordButtonSToStart,{PH1:e})}return t.classList.add("message"),e.contentElement.appendChild(t),e.element.classList.add("landing-page"),e}_clear(){this._model&&this._model.reset(),this._reset()}_reset(){this._decorationManager&&(this._decorationManager.dispose(),this._decorationManager=null),this._listView.reset(),this._listView.detach(),this._landingPage.show(this._coverageResultsElement),this._statusMessageElement.textContent="",this._filterInput.setEnabled(!1),this._filterByTypeComboBox.setEnabled(!1),this._contentScriptsCheckbox.setEnabled(!1),this._saveButton.setEnabled(!1)}_toggleRecording(){!this._toggleRecordAction.toggled()?this._startRecording({reload:!1,jsCoveragePerBlock:this.isBlockCoverageSelected()}):this.stopRecording()}isBlockCoverageSelected(){const e=this._coverageTypeComboBox.selectedOption();return 2===Number(e?e.value:Number.NaN)}_selectCoverageType(e){const t=e?1:0;this._coverageTypeComboBox.setSelectedIndex(t)}_onCoverageTypeComboBoxSelectionChanged(){this._coverageTypeComboBoxSetting.set(this._coverageTypeComboBox.selectedIndex())}async ensureRecordingStarted(){this._toggleRecordAction.toggled()&&await this.stopRecording(),await this._startRecording({reload:!1,jsCoveragePerBlock:!1})}async _startRecording(e){let t,o;this._startWithReloadButton&&this._startWithReloadButton.element.hasFocus()||this._inlineReloadButton&&this._inlineReloadButton.hasFocus()?o=!0:this.hasFocus()&&(t=!0),this._reset();const s=a.TargetManager.instance().mainTarget();if(!s)return;const{reload:i,jsCoveragePerBlock:n}={reload:!1,jsCoveragePerBlock:!1,...e};if(this._model&&!i||(this._model=s.model(E)),!this._model)return;I.actionTaken(k.Action.CoverageStarted),n&&I.actionTaken(k.Action.CoverageStartedPerBlock);await this._model.start(Boolean(n))&&(this._selectCoverageType(Boolean(n)),this._model.addEventListener(M.CoverageUpdated,this._onCoverageDataReceived,this),this._resourceTreeModel=s.model(h.ResourceTreeModel),this._resourceTreeModel&&this._resourceTreeModel.addEventListener(h.Events.MainFrameNavigated,this._onMainFrameNavigated,this),this._decorationManager=new G(this._model),this._toggleRecordAction.setToggled(!0),this._clearButton.setEnabled(!1),this._startWithReloadButton&&(this._startWithReloadButton.setEnabled(!1),this._startWithReloadButton.setVisible(!1),this._toggleRecordButton.setEnabled(!0),this._toggleRecordButton.setVisible(!0),o&&this._toggleRecordButton.focus()),this._coverageTypeComboBox.setEnabled(!1),this._filterInput.setEnabled(!0),this._filterByTypeComboBox.setEnabled(!0),this._contentScriptsCheckbox.setEnabled(!0),this._landingPage.isShowing()&&this._landingPage.detach(),this._listView.show(this._coverageResultsElement),t&&!o&&this._listView.focus(),i&&this._resourceTreeModel?this._resourceTreeModel.reloadPage():this._model.startPolling())}_onCoverageDataReceived(e){const t=e.data;this._updateViews(t)}async stopRecording(){this._resourceTreeModel&&(this._resourceTreeModel.removeEventListener(h.Events.MainFrameNavigated,this._onMainFrameNavigated,this),this._resourceTreeModel=null),this.hasFocus()&&this._listView.focus(),this._model&&(await this._model.stop(),this._model.removeEventListener(M.CoverageUpdated,this._onCoverageDataReceived,this)),this._toggleRecordAction.setToggled(!1),this._coverageTypeComboBox.setEnabled(!0),this._startWithReloadButton&&(this._startWithReloadButton.setEnabled(!0),this._startWithReloadButton.setVisible(!0),this._toggleRecordButton.setEnabled(!1),this._toggleRecordButton.setVisible(!1)),this._clearButton.setEnabled(!0)}processBacklog(){this._model&&this._model.processJSBacklog()}_onMainFrameNavigated(){this._model&&this._model.reset(),this._decorationManager&&this._decorationManager.reset(),this._listView.reset(),this._model&&this._model.startPolling()}_updateViews(e){this._updateStats(),this._listView.update(this._model&&this._model.entries()||[]),this._saveButton.setEnabled(null!==this._model&&this._model.entries().length>0),this._decorationManager&&this._decorationManager.update(e)}_updateStats(){const e={total:0,unused:0},t={total:0,unused:0};let o=!1;if(this._model)for(const s of this._model.entries())e.total+=s.size(),e.unused+=s.unusedSize(),this._isVisible(!1,s)?(t.total+=s.size(),t.unused+=s.unusedSize()):o=!0;function s({total:e,unused:t}){const o=e-t,s=e?Math.round(100*o/e):0;return K($.sOfSSUsedSoFarSUnused,{PH1:n.bytesToString(o),PH2:n.bytesToString(e),PH3:s,PH4:n.bytesToString(t)})}this._statusMessageElement.textContent=o?K($.filteredSTotalS,{PH1:s(t),PH2:s(e)}):s(e)}_onFilterChanged(){if(!this._listView)return;const e=this._filterInput.value();this._textFilterRegExp=e?createPlainTextSearchRegex(e,"i"):null,this._listView.updateFilterAndHighlight(this._textFilterRegExp),this._updateStats()}_onFilterByTypeChanged(){if(!this._listView)return;I.actionTaken(k.Action.CoverageReportFiltered);const e=this._filterByTypeComboBox.selectedOption(),t=e&&e.value;this._typeFilterValue=parseInt(t||"",10)||null,this._listView.updateFilterAndHighlight(this._textFilterRegExp),this._updateStats()}_isVisible(e,t){const o=t.url();return!o.startsWith(Y._extensionBindingsURLPrefix)&&(!(t.isContentScript()&&!this._showContentScriptsSetting.get())&&(!(this._typeFilterValue&&!(t.type()&this._typeFilterValue))&&(e||!this._textFilterRegExp||this._textFilterRegExp.test(o))))}async _exportReport(){const e=new R.FileOutputStream,t=`Coverage-${r.toISO8601Compact(new Date)}.json`;await e.open(t)&&this._model&&this._model.exportReport(e)}selectCoverageItemByUrl(e){this._listView.selectByUrl(e)}}Y._extensionBindingsURLPrefix="extensions::";class Z{handleAction(e,t){const o="coverage";return B.ViewManager.instance().showView(o,!1,!0).then((()=>{const e=B.ViewManager.instance().view(o);return e&&e.widget()})).then((e=>this._innerHandleAction(e,t))),!0}static instance(e={forceNew:null}){const{forceNew:t}=e;return X&&!t||(X=new Z),X}_innerHandleAction(e,t){switch(t){case"coverage.toggle-recording":e._toggleRecording();break;case"coverage.start-with-reload":e._startRecording({reload:!0,jsCoveragePerBlock:e.isBlockCoverageSelected()});break;default:console.assert(!1,"Unknown action: "+t)}}}class ee{constructor(){this._listeners=new WeakMap}decorate(e,t){const o=e.decorationsForType("coverage");if(!o||!o.size)return void this._uninstallGutter(t);o.values().next().value.data().usageByLine(e).then((o=>{t.operation((()=>this._innerDecorate(e,t,o)))}))}_innerDecorate(e,t,o){const s=ee._gutterType;this._uninstallGutter(t),o.length&&this._installGutter(t,e.url());for(let e=0;e<o.length;++e){if("boolean"!=typeof o[e])continue;const i=o[e]?"text-editor-coverage-used-marker":"text-editor-coverage-unused-marker",n=document.createElement("div");n.classList.add(i),t.setGutterDecoration(e,s,n)}}makeGutterClickHandler(e){return function(t){if(t.data.gutterType!==ee._gutterType)return;const o="coverage";B.ViewManager.instance().showView(o).then((()=>{const e=B.ViewManager.instance().view(o);return e&&e.widget()})).then((t=>{const o=e.match(/(.*):formatted$/),s=o&&o[1]||e;t.selectCoverageItemByUrl(s)}))}}_installGutter(e,t){let o=this._listeners.get(e);o||(o=this.makeGutterClickHandler(t),this._listeners.set(e,o)),e.installGutter(ee._gutterType,!1),e.addEventListener(L.Events.GutterClick,o,this)}_uninstallGutter(e){e.uninstallGutter(ee._gutterType);const t=this._listeners.get(e);t&&(e.removeEventListener(L.Events.GutterClick,t,this),this._listeners.delete(e))}}ee._gutterType="CodeMirror-gutter-coverage";var te=Object.freeze({__proto__:null,UIStrings:$,CoverageView:Y,ActionDelegate:Z,LineDecorator:ee});export{J as CoverageDecorationManager,W as CoverageListView,U as CoverageModel,te as CoverageView};
@@ -0,0 +1 @@
1
+ import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("coverage/coverageListView.css",".data-grid {\n border: none;\n}\n\n.data-grid td .url-outer {\n width: 100%;\n display: inline-flex;\n justify-content: flex-start;\n}\n\n.data-grid td .url-outer .filter-highlight {\n font-weight: bold;\n}\n\n.data-grid td .url-prefix {\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n\n.data-grid td .url-suffix {\n flex: none;\n}\n\n.data-grid td .bar {\n display: inline-block;\n height: 8px;\n border: 1px solid transparent;\n}\n\n.data-grid .selected td .bar {\n border-top: 1px white solid;\n border-bottom: 1px white solid;\n}\n\n.data-grid .selected td .bar:last-child {\n border-right: 1px white solid;\n}\n\n.data-grid .selected td .bar:first-child {\n border-left: 1px white solid;\n}\n\n.data-grid td .bar-unused-size {\n background-color: #ee442f;\n}\n\n.data-grid td .bar-used-size {\n background-color: #63acbe;\n}\n\n.data-grid td .percent-value {\n color: #888;\n width: 45px;\n display: inline-block;\n}\n\n.data-grid:focus tr.selected span.percent-value {\n color: #eee;\n}\n\n@media (forced-colors: active) {\n .data-grid td .bar-container {\n forced-color-adjust: none;\n }\n\n .data-grid td .bar-unused-size {\n background-color: ButtonText;\n }\n\n .data-grid td .bar-used-size {\n background-color: ButtonFace;\n }\n\n .data-grid td .bar {\n border-color: ButtonText;\n }\n\n .data-grid .selected td .bar {\n border-top-color: HighlightText;\n border-bottom-color: HighlightText;\n }\n\n .data-grid .selected td .bar:last-child {\n border-right-color: HighlightText;\n }\n\n .data-grid .selected td .bar:first-child {\n border-left-color: HighlightText;\n }\n\n .data-grid:focus tr.selected span.percent-value {\n color: HighlightText;\n }\n}\n\n/*# sourceURL=coverage/coverageListView.css */");RootModule.Runtime.cachedResources.set("coverage/coverageView.css","/*\n * Copyright (c) 2016 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n:host {\n overflow: hidden;\n}\n\n.coverage-toolbar-container {\n display: flex;\n border-bottom: 1px solid #ccc;\n flex: 0 0 auto;\n}\n\n.coverage-toolbar {\n display: inline-block;\n width: 100%;\n}\n\n.coverage-toolbar-summary {\n background-color: #eee;\n border-top: 1px solid #ccc;\n padding-left: 5px;\n flex: 0 0 19px;\n display: flex;\n padding-right: 5px;\n}\n\n.coverage-toolbar-summary .coverage-message {\n padding-top: 2px;\n padding-left: 1ex;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.coverage-results {\n overflow-y: auto;\n display: flex;\n flex: auto;\n}\n\n.landing-page {\n justify-content: center;\n align-items: center;\n padding: 20px;\n}\n\n.landing-page .message {\n white-space: pre-line;\n}\n\n/*# sourceURL=coverage/coverageView.css */");
@@ -0,0 +1,151 @@
1
+ // Copyright 2017 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ /**
6
+ * @fileoverview using private properties isn't a Closure violation in tests.
7
+ */
8
+ self.CoverageTestRunner = self.CoverageTestRunner || {};
9
+
10
+ /**
11
+ * @param jsCoveragePerBlock - Collect per Block coverage if `true`, per function coverage otherwise.
12
+ * @return {!Promise}
13
+ */
14
+ CoverageTestRunner.startCoverage = async function(jsCoveragePerBlock) {
15
+ self.UI.viewManager.showView('coverage');
16
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
17
+ await coverageView._startRecording({reload: false, jsCoveragePerBlock});
18
+ };
19
+
20
+ /**
21
+ * @return {!Promise}
22
+ */
23
+ CoverageTestRunner.stopCoverage = function() {
24
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
25
+ return coverageView.stopRecording();
26
+ };
27
+
28
+ /**
29
+ * @return {!Promise}
30
+ */
31
+ CoverageTestRunner.suspendCoverageModel = async function() {
32
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
33
+ await coverageView._model.preSuspendModel();
34
+ await coverageView._model.suspendModel();
35
+ };
36
+
37
+ /**
38
+ * @return {!Promise}
39
+ */
40
+ CoverageTestRunner.resumeCoverageModel = async function() {
41
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
42
+ await coverageView._model.resumeModel();
43
+ await coverageView._model.postResumeModel();
44
+ };
45
+
46
+ /**
47
+ * @return {!Promise}
48
+ */
49
+ CoverageTestRunner.pollCoverage = async function() {
50
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
51
+ // Make sure not to have two instances of _pollAndCallback running at the same time.
52
+ await coverageView._model._currentPollPromise;
53
+ return coverageView._model._pollAndCallback();
54
+ };
55
+
56
+ /**
57
+ * @return {!Promise<Coverage.CoverageModel>}
58
+ */
59
+ CoverageTestRunner.getCoverageModel = function() {
60
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
61
+ return coverageView._model;
62
+ };
63
+
64
+ /**
65
+ * @return {!Promise<string>}
66
+ */
67
+ CoverageTestRunner.exportReport = async function() {
68
+ const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
69
+ let data;
70
+ await coverageView._model.exportReport({
71
+ write: d => {
72
+ data = d;
73
+ },
74
+ close: _ => 0
75
+ });
76
+ return data;
77
+ };
78
+
79
+ /**
80
+ * @return {!Promise<!SourceFrame.SourceFrame>}
81
+ */
82
+ CoverageTestRunner.sourceDecorated = async function(source) {
83
+ await self.UI.inspectorView.showPanel('sources');
84
+ const decoratePromise = TestRunner.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, '_innerDecorate');
85
+ const sourceFrame = await SourcesTestRunner.showScriptSourcePromise(source);
86
+ await decoratePromise;
87
+ return sourceFrame;
88
+ };
89
+
90
+ CoverageTestRunner.dumpDecorations = async function(source) {
91
+ const sourceFrame = await CoverageTestRunner.sourceDecorated(source);
92
+ CoverageTestRunner.dumpDecorationsInSourceFrame(sourceFrame);
93
+ };
94
+
95
+ /**
96
+ * @return {?DataGrid.DataGridNode}
97
+ */
98
+ CoverageTestRunner.findCoverageNodeForURL = function(url) {
99
+ const coverageListView = self.runtime.sharedInstance(Coverage.CoverageView)._listView;
100
+ const rootNode = coverageListView._dataGrid.rootNode();
101
+
102
+ for (const child of rootNode.children) {
103
+ if (child._coverageInfo.url().endsWith(url)) {
104
+ return child;
105
+ }
106
+ }
107
+
108
+ return null;
109
+ };
110
+
111
+ CoverageTestRunner.dumpDecorationsInSourceFrame = function(sourceFrame) {
112
+ const markerMap = new Map([['used', '+'], ['unused', '-']]);
113
+ const codeMirror = sourceFrame.textEditor.codeMirror();
114
+
115
+ for (let line = 0; line < codeMirror.lineCount(); ++line) {
116
+ const text = codeMirror.getLine(line);
117
+ let markerType = ' ';
118
+ const lineInfo = codeMirror.lineInfo(line);
119
+
120
+ if (!lineInfo) {
121
+ continue;
122
+ }
123
+
124
+ const gutterElement = lineInfo.gutterMarkers && lineInfo.gutterMarkers['CodeMirror-gutter-coverage'];
125
+
126
+ if (gutterElement) {
127
+ const markerClass = /^text-editor-coverage-(\w*)-marker$/.exec(gutterElement.classList)[1];
128
+ markerType = markerMap.get(markerClass) || gutterElement.classList;
129
+ }
130
+
131
+ TestRunner.addResult(`${line}: ${markerType} ${text}`);
132
+ }
133
+ };
134
+
135
+ CoverageTestRunner.dumpCoverageListView = function() {
136
+ const coverageListView = self.runtime.sharedInstance(Coverage.CoverageView)._listView;
137
+ const dataGrid = coverageListView._dataGrid;
138
+ dataGrid.updateInstantly();
139
+
140
+ for (const child of dataGrid.rootNode().children) {
141
+ const data = child._coverageInfo;
142
+ const url = TestRunner.formatters.formatAsURL(data.url());
143
+
144
+ if (url.startsWith('test://')) {
145
+ continue;
146
+ }
147
+
148
+ const type = Coverage.coverageTypeToString(data.type());
149
+ TestRunner.addResult(`${url} ${type} used: ${data.usedSize()} unused: ${data.unusedSize()} total: ${data.size()}`);
150
+ }
151
+ };
@@ -0,0 +1,72 @@
1
+ // Copyright 2017 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ /**
6
+ * @fileoverview using private properties isn't a Closure violation in tests.
7
+ */
8
+ self.CPUProfilerTestRunner = self.CPUProfilerTestRunner || {};
9
+
10
+ CPUProfilerTestRunner.startProfilerTest = function(callback) {
11
+ TestRunner.addResult('Profiler was enabled.');
12
+ TestRunner.addSniffer(UI.panels.js_profiler, '_addProfileHeader', CPUProfilerTestRunner._profileHeaderAdded, true);
13
+ TestRunner.addSniffer(Profiler.ProfileView.prototype, 'refresh', CPUProfilerTestRunner._profileViewRefresh, true);
14
+ TestRunner.safeWrap(callback)();
15
+ };
16
+
17
+ CPUProfilerTestRunner.completeProfilerTest = function() {
18
+ TestRunner.addResult('');
19
+ TestRunner.addResult('Profiler was disabled.');
20
+ TestRunner.completeTest();
21
+ };
22
+
23
+ CPUProfilerTestRunner.runProfilerTestSuite = function(testSuite) {
24
+ const testSuiteTests = testSuite.slice();
25
+
26
+ function runner() {
27
+ if (!testSuiteTests.length) {
28
+ CPUProfilerTestRunner.completeProfilerTest();
29
+ return;
30
+ }
31
+
32
+ const nextTest = testSuiteTests.shift();
33
+ TestRunner.addResult('');
34
+ TestRunner.addResult(
35
+ 'Running: ' +
36
+ /function\s([^(]*)/.exec(nextTest)[1]);
37
+ TestRunner.safeWrap(nextTest)(runner, runner);
38
+ }
39
+
40
+ CPUProfilerTestRunner.startProfilerTest(runner);
41
+ };
42
+
43
+ CPUProfilerTestRunner.showProfileWhenAdded = function(title) {
44
+ CPUProfilerTestRunner._showProfileWhenAdded = title;
45
+ };
46
+
47
+ CPUProfilerTestRunner._profileHeaderAdded = function(profile) {
48
+ if (CPUProfilerTestRunner._showProfileWhenAdded === profile.title) {
49
+ UI.panels.js_profiler.showProfile(profile);
50
+ }
51
+ };
52
+
53
+ CPUProfilerTestRunner.waitUntilProfileViewIsShown = function(title, callback) {
54
+ callback = TestRunner.safeWrap(callback);
55
+ const profilesPanel = UI.panels.js_profiler;
56
+
57
+ if (profilesPanel.visibleView && profilesPanel.visibleView.profile &&
58
+ profilesPanel.visibleView.profileHeader.title === title) {
59
+ callback(profilesPanel.visibleView);
60
+ } else {
61
+ CPUProfilerTestRunner._waitUntilProfileViewIsShownCallback = {title: title, callback: callback};
62
+ }
63
+ };
64
+
65
+ CPUProfilerTestRunner._profileViewRefresh = function() {
66
+ if (CPUProfilerTestRunner._waitUntilProfileViewIsShownCallback &&
67
+ CPUProfilerTestRunner._waitUntilProfileViewIsShownCallback.title === this.profileHeader.title) {
68
+ const callback = CPUProfilerTestRunner._waitUntilProfileViewIsShownCallback;
69
+ delete CPUProfilerTestRunner._waitUntilProfileViewIsShownCallback;
70
+ callback.callback(this);
71
+ }
72
+ };
@@ -0,0 +1 @@
1
+ import{i18n as e}from"../i18n/i18n.js";import{Runtime as i}from"../root/root.js";import{ViewManager as r}from"../ui/ui.js";const o={cssOverview:"CSS Overview",showCssOverview:"Show CSS Overview"},s=e.registerUIStrings("css_overview/css_overview-meta.ts",o),t=e.getLazilyComputedLocalizedString.bind(void 0,s);let v;r.registerViewExtension({location:"panel",id:"cssoverview",commandPrompt:t(o.showCssOverview),title:t(o.cssOverview),order:95,loadView:async()=>(await async function(){return v||(await i.Runtime.instance().loadModulePromise("css_overview"),v=await import("./css_overview.js")),v}()).CSSOverviewPanel.CSSOverviewPanel.instance(),experiment:i.ExperimentName.CSS_OVERVIEW});export{o as UIStrings};
@@ -0,0 +1,146 @@
1
+ import{ObjectWrapper as e,Color as t,ColorUtils as s,Linkifier as i}from"../common/common.js";import{SDKModel as n,CSSModel as o,DOMModel as a}from"../sdk/sdk.js";import{i18n as r}from"../i18n/i18n.js";import{ContrastInfo as l}from"../color_picker/color_picker.js";import{Runtime as d}from"../root/root.js";import{Widget as c,UIUtils as h,Fragment as u,Toolbar as v,Panel as m,SplitWidget as p,TabbedPane as g,Icon as _,Tooltip as b}from"../ui/ui.js";import{Linkifier as S}from"../components/components.js";import{SortableDataGrid as f,DataGrid as C}from"../data_grid/data_grid.js";import{NumberUtilities as w}from"../platform/platform.js";import{TextRange as y}from"../text_utils/text_utils.js";import{userMetrics as I,UserMetrics as k}from"../host/host.js";class $ extends e.ObjectWrapper{constructor(){super(),this.currentUrl=n.TargetManager.instance().inspectedURL(),n.TargetManager.instance().addEventListener(n.Events.InspectedURLChanged,this._checkUrlAndResetIfChanged,this)}_checkUrlAndResetIfChanged(){this.currentUrl!==n.TargetManager.instance().inspectedURL()&&(this.currentUrl=n.TargetManager.instance().inspectedURL(),this.dispatchEventToListeners(A.Reset))}}const A={RequestOverviewStart:Symbol("RequestOverviewStart"),RequestNodeHighlight:Symbol("RequestNodeHighlight"),PopulateNodes:Symbol("PopulateNodes"),RequestOverviewCancel:Symbol("RequestOverviewCancel"),OverviewCompleted:Symbol("OverviewCompleted"),Reset:Symbol("Reset")};var E=Object.freeze({__proto__:null,OverviewController:$,Events:A});const T={topAppliedToAStatically:"Top applied to a statically positioned element",leftAppliedToAStatically:"Left applied to a statically positioned element",rightAppliedToAStatically:"Right applied to a statically positioned element",bottomAppliedToAStatically:"Bottom applied to a statically positioned element",widthAppliedToAnInlineElement:"Width applied to an inline element",heightAppliedToAnInlineElement:"Height applied to an inline element",verticalAlignmentAppliedTo:"Vertical alignment applied to element which is neither inline nor table-cell"},x=r.registerUIStrings("css_overview/CSSOverviewUnusedDeclarations.js",T),M=r.getLocalizedString.bind(void 0,x);class O{static _add(e,t,s){const i=e.get(t)||[];i.push(s),e.set(t,i)}static checkForUnusedPositionValues(e,t,s,i,n,o,a,r){if("static"===s[i]){if("auto"!==s[n]){const i=M(T.topAppliedToAStatically);this._add(e,i,{declaration:"top: "+s[n],nodeId:t})}if("auto"!==s[o]){const i=M(T.leftAppliedToAStatically);this._add(e,i,{declaration:"left: "+s[o],nodeId:t})}if("auto"!==s[a]){const i=M(T.rightAppliedToAStatically);this._add(e,i,{declaration:"right: "+s[a],nodeId:t})}if("auto"!==s[r]){const i=M(T.bottomAppliedToAStatically);this._add(e,i,{declaration:"bottom: "+s[r],nodeId:t})}}}static checkForUnusedWidthAndHeightValues(e,t,s,i,n,o){if("inline"===s[i]){if("auto"!==s[n]){const i=M(T.widthAppliedToAnInlineElement);this._add(e,i,{declaration:"width: "+s[n],nodeId:t})}if("auto"!==s[o]){const i=M(T.heightAppliedToAnInlineElement);this._add(e,i,{declaration:"height: "+s[o],nodeId:t})}}}static checkForInvalidVerticalAlignment(e,t,s,i,n){if(s[i]&&"inline"!==s[i]&&!s[i].startsWith("table")&&"baseline"!==s[n]){const i=M(T.verticalAlignmentAppliedTo);this._add(e,i,{declaration:"vertical-align: "+s[n],nodeId:t})}}}var L=Object.freeze({__proto__:null,UIStrings:T,UnusedDeclaration:undefined,CSSOverviewUnusedDeclarations:O});class R extends n.SDKModel{constructor(e){super(e),this._runtimeAgent=e.runtimeAgent(),this._cssAgent=e.cssAgent(),this._domAgent=e.domAgent(),this._domSnapshotAgent=e.domsnapshotAgent(),this._overlayAgent=e.overlayAgent()}highlightNode(e){const s={contentColor:t.PageHighlight.Content.toProtocolRGBA(),showInfo:!0,contrastAlgorithm:d.experiments.isEnabled("APCA")?Protocol.Overlay.ContrastAlgorithm.Apca:Protocol.Overlay.ContrastAlgorithm.Aa};this._overlayAgent.invoke_hideHighlight(),this._overlayAgent.invoke_highlightNode({backendNodeId:e,highlightConfig:s})}async getNodeStyleStats(){const e=new Map,s=new Map,i=new Map,n=new Map,o=new Map,a=new Map,r=new Map,c=e=>e.hasAlpha()?e.asString(t.Format.HEXA):e.asString(t.Format.HEX),h=(e,s,i)=>{if(-1===e)return;const n=_[e];if(!n)return;const o=t.Color.parse(n);if(!o||0===o.rgba()[3])return;const a=c(o);if(!a)return;const r=i.get(a)||new Set;return r.add(s),i.set(a,r),o},u=e=>new Set(["altglyph","circle","ellipse","path","polygon","polyline","rect","svg","text","textpath","tref","tspan"]).has(e.toLowerCase()),v=e=>new Set(["iframe","video","embed","img"]).has(e.toLowerCase()),m=(e,t)=>new Set(["tr","td","thead","tbody"]).has(e.toLowerCase())&&t.startsWith("table");let p=0;const{documents:g,strings:_}=await this._domSnapshotAgent.invoke_captureSnapshot({computedStyles:["background-color","color","fill","border-top-width","border-top-color","border-bottom-width","border-bottom-color","border-left-width","border-left-color","border-right-width","border-right-color","font-family","font-size","font-weight","line-height","position","top","right","bottom","left","display","width","height","vertical-align"]});for(const{nodes:b,layout:S}of g){p+=S.nodeIndex.length;for(let p=0;p<S.styles.length;p++){const g=S.styles[p],f=S.nodeIndex[p];if(!b.backendNodeId||!b.nodeName)continue;const C=b.backendNodeId[f],w=b.nodeName[f],[y,I,k,$,A,E,T,x,M,L,R,P,F,N,V,D,H,B,W,U,q,z,j,G]=g,Q=h(y,C,e),X=h(I,C,s);if(u(_[w])&&h(k,C,n),"0px"!==_[$]&&h(A,C,o),"0px"!==_[E]&&h(T,C,o),"0px"!==_[x]&&h(M,C,o),"0px"!==_[L]&&h(R,C,o),P&&-1!==P){const e=_[P],t=a.get(e)||new Map,s="font-size",i="font-weight",n="line-height",o=t.get(s)||new Map,r=t.get(i)||new Map,l=t.get(n)||new Map;if(-1!==F){const e=_[F],t=o.get(e)||[];t.push(C),o.set(e,t)}if(-1!==N){const e=_[N],t=r.get(e)||[];t.push(C),r.set(e,t)}if(-1!==V){const e=_[V],t=l.get(e)||[];t.push(C),l.set(e,t)}t.set(s,o),t.set(i,r),t.set(n,l),a.set(e,t)}if(Q&&X&&"#text"===_[w]){const e=new l.ContrastInfo({backgroundColors:[Q.asString(t.Format.HEXA)],computedFontSize:-1!==F?_[F]:"",computedFontWeight:-1!==N?_[N]:""});e.setColor(X);const s=`${c(X)}_${c(Q)}`;if(d.experiments.isEnabled("APCA")){const t=e.contrastRatioAPCA(),n=e.contrastRatioAPCAThreshold();if(!(!(!t||!n)&&Math.abs(t)>=n)){const e={nodeId:C,contrastRatio:t,textColor:X,backgroundColor:Q,thresholdsViolated:{aa:!1,aaa:!1,apca:!0}};i.has(s)?i.get(s).push(e):i.set(s,[e])}}else{const t=e.contrastRatioThreshold("aa")||0,n=e.contrastRatioThreshold("aaa")||0,o=e.contrastRatio()||0;if(t>o||n>o){const e={nodeId:C,contrastRatio:o,textColor:X,backgroundColor:Q,thresholdsViolated:{aa:t>o,aaa:n>o,apca:!1}};i.has(s)?i.get(s).push(e):i.set(s,[e])}}}O.checkForUnusedPositionValues(r,C,_,D,H,U,B,W),u(_[w])||v(_[w])||O.checkForUnusedWidthAndHeightValues(r,C,_,q,z,j),-1===G||m(_[w],_[q])||O.checkForInvalidVerticalAlignment(r,C,_,q,G)}}return{backgroundColors:e,textColors:s,textColorContrastIssues:i,fillColors:n,borderColors:o,fontInfo:a,unusedDeclarations:r,elementCount:p}}getComputedStyleForNode(e){return this._cssAgent.invoke_getComputedStyleForNode({nodeId:e})}async getMediaQueries(){const e=await this._cssAgent.invoke_getMediaQueries(),t=new Map;if(!e)return t;for(const s of e.medias){if("linkedSheet"===s.source)continue;const e=t.get(s.text)||[];e.push(s),t.set(s.text,e)}return t}async getGlobalStylesheetStats(){const{result:e}=await this._runtimeAgent.invoke_evaluate({expression:"(function() {\n let styleRules = 0;\n let inlineStyles = 0;\n let externalSheets = 0;\n const stats = {\n // Simple.\n type: new Set(),\n class: new Set(),\n id: new Set(),\n universal: new Set(),\n attribute: new Set(),\n\n // Non-simple.\n nonSimple: new Set()\n };\n\n for (const styleSheet of document.styleSheets) {\n if (styleSheet.href) {\n externalSheets++;\n } else {\n inlineStyles++;\n }\n\n // Attempting to grab rules can trigger a DOMException.\n // Try it and if it fails skip to the next stylesheet.\n let rules;\n try {\n rules = styleSheet.rules;\n } catch (err) {\n continue;\n }\n\n for (const rule of rules) {\n if ('selectorText' in rule) {\n styleRules++;\n\n // Each group that was used.\n for (const selectorGroup of rule.selectorText.split(',')) {\n // Each selector in the group.\n for (const selector of selectorGroup.split(/[\\t\\n\\f\\r ]+/g)) {\n if (selector.startsWith('.')) {\n // Class.\n stats.class.add(selector);\n } else if (selector.startsWith('#')) {\n // Id.\n stats.id.add(selector);\n } else if (selector.startsWith('*')) {\n // Universal.\n stats.universal.add(selector);\n } else if (selector.startsWith('[')) {\n // Attribute.\n stats.attribute.add(selector);\n } else {\n // Type or non-simple selector.\n const specialChars = /[#.:\\[\\]|\\+>~]/;\n if (specialChars.test(selector)) {\n stats.nonSimple.add(selector);\n } else {\n stats.type.add(selector);\n }\n }\n }\n }\n }\n }\n }\n\n return {\n styleRules,\n inlineStyles,\n externalSheets,\n stats: {\n // Simple.\n type: stats.type.size,\n class: stats.class.size,\n id: stats.id.size,\n universal: stats.universal.size,\n attribute: stats.attribute.size,\n\n // Non-simple.\n nonSimple: stats.nonSimple.size\n }\n }\n })()",returnByValue:!0});if("object"===e.type)return e.value}}n.SDKModel.register(R,n.Capability.DOM,!1);var P=Object.freeze({__proto__:null,CSSOverviewModel:R});const F={captureOverview:"Capture overview",cssOverview:"CSS Overview"},N=r.registerUIStrings("css_overview/CSSOverviewStartView.js",F),V=r.getLocalizedString.bind(void 0,N);class D extends c.Widget{constructor(e){super(),this.registerRequiredCSS("css_overview/cssOverviewStartView.css",{enableLegacyPatching:!1}),this._controller=e,this._render()}_render(){const e=h.createTextButton(V(F.captureOverview),(()=>this._controller.dispatchEventToListeners(A.RequestOverviewStart)),"",!0);this.setDefaultFocusedElement(e);const t=u.Fragment.build`
2
+ <div class="vbox overview-start-view">
3
+ <h1>${V(F.cssOverview)}</h1>
4
+ <div>${e}</div>
5
+ </div>
6
+ `;this.contentElement.appendChild(t.element()),this.contentElement.style.overflow="auto"}}var H=Object.freeze({__proto__:null,UIStrings:F,CSSOverviewStartView:D});const B={cancel:"Cancel"},W=r.registerUIStrings("css_overview/CSSOverviewProcessingView.js",B),U=r.getLocalizedString.bind(void 0,W);class q extends c.Widget{constructor(e){super(),this.registerRequiredCSS("css_overview/cssOverviewProcessingView.css",{enableLegacyPatching:!1}),this._formatter=new Intl.NumberFormat("en-US"),this._controller=e,this._render()}_render(){const e=h.createTextButton(U(B.cancel),(()=>this._controller.dispatchEventToListeners(A.RequestOverviewCancel)),"",!0);this.setDefaultFocusedElement(e),this.fragment=u.Fragment.build`
7
+ <div class="vbox overview-processing-view">
8
+ <h1>Processing page</h1>
9
+ <div>${e}</div>
10
+ </div>
11
+ `,this.contentElement.appendChild(this.fragment.element()),this.contentElement.style.overflow="auto"}}var z=Object.freeze({__proto__:null,UIStrings:B,CSSOverviewProcessingView:q});const j={clearOverview:"Clear overview"},G=r.registerUIStrings("css_overview/CSSOverviewSidebarPanel.js",j),Q=r.getLocalizedString.bind(void 0,G);class X extends c.VBox{static get ITEM_CLASS_NAME(){return"overview-sidebar-panel-item"}static get SELECTED(){return"selected"}constructor(){super(!0),this.registerRequiredCSS("css_overview/cssOverviewSidebarPanel.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("overview-sidebar-panel"),this.contentElement.addEventListener("click",this._onItemClick.bind(this));const e=new v.ToolbarButton(Q(j.clearOverview),"largeicon-clear");e.addEventListener(v.ToolbarButton.Events.Click,this._reset,this);const t=this.contentElement.createChild("div","overview-toolbar");new v.Toolbar("",t).appendToolbarItem(e)}addItem(e,t){const s=this.contentElement.createChild("div",X.ITEM_CLASS_NAME);s.textContent=e,s.dataset.id=t}_reset(){this.dispatchEventToListeners(K.Reset)}_deselectAllItems(){this.contentElement.querySelectorAll("."+X.ITEM_CLASS_NAME).forEach((e=>{e.classList.remove(X.SELECTED)}))}_onItemClick(e){const t=e.composedPath()[0];if(!t.classList.contains(X.ITEM_CLASS_NAME))return;const{id:s}=t.dataset;s&&(this.select(s),this.dispatchEventToListeners(K.ItemSelected,s))}select(e){const t=this.contentElement.querySelector(`[data-id=${CSS.escape(e)}]`);t&&(t.classList.contains(X.SELECTED)||(this._deselectAllItems(),t.classList.add(X.SELECTED)))}}const K={ItemSelected:Symbol("ItemSelected"),Reset:Symbol("Reset")};var J=Object.freeze({__proto__:null,UIStrings:j,CSSOverviewSidebarPanel:X,SidebarEvents:K});const Y={overviewSummary:"Overview summary",colors:"Colors",fontInfo:"Font info",unusedDeclarations:"Unused declarations",mediaQueries:"Media queries",elements:"Elements",externalStylesheets:"External stylesheets",inlineStyleElements:"Inline style elements",styleRules:"Style rules",typeSelectors:"Type selectors",idSelectors:"ID selectors",classSelectors:"Class selectors",universalSelectors:"Universal selectors",attributeSelectors:"Attribute selectors",nonsimpleSelectors:"Non-simple selectors",backgroundColorsS:"Background colors: {PH1}",textColorsS:"Text colors: {PH1}",fillColorsS:"Fill colors: {PH1}",borderColorsS:"Border colors: {PH1}",thereAreNoFonts:"There are no fonts.",thereAreNoUnusedDeclarations:"There are no unused declarations.",thereAreNoMediaQueries:"There are no media queries.",contrastIssues:"Contrast issues",occurrence:"occurrence",occurrences:"occurrences",sS:"{PH1} {PH2}",contrastIssuesS:"Contrast issues: {PH1}",textColorSOverSBackgroundResults:"Text color {PH1} over {PH2} background results in low contrast for {PH3} elements",aa:"AA",aaa:"AAA",apca:"APCA",element:"Element",declaration:"Declaration",source:"Source",contrastRatio:"Contrast ratio",cssOverviewElements:"CSS Overview Elements",showElement:"Show element"},Z=r.registerUIStrings("css_overview/CSSOverviewCompletedView.js",Y),ee=r.getLocalizedString.bind(void 0,Z);function te(e){let[t,s,i]=e.hsla();return t=Math.round(360*t),s=Math.round(100*s),i=Math.round(100*i),i=Math.max(0,i-15),`1px solid hsl(${t}deg ${s}% ${i}%)`}class se extends m.PanelWithSidebar{constructor(e,t){super("css_overview_completed_view"),this.registerRequiredCSS("css_overview/cssOverviewCompletedView.css",{enableLegacyPatching:!1}),this._controller=e,this._formatter=new Intl.NumberFormat("en-US"),this._mainContainer=new p.SplitWidget(!0,!0),this._resultsContainer=new c.VBox,this._elementContainer=new ie,this._elementContainer.addEventListener(g.Events.TabClosed,(e=>{0===e.data&&this._mainContainer.setSidebarMinimized(!0)})),this._mainContainer.registerRequiredCSS("css_overview/cssOverviewCompletedView.css",{enableLegacyPatching:!0}),this._mainContainer.setMainWidget(this._resultsContainer),this._mainContainer.setSidebarWidget(this._elementContainer),this._mainContainer.setVertical(!1),this._mainContainer.setSecondIsSidebar(!0),this._mainContainer.setSidebarMinimized(!0),this._sideBar=new X,this.splitWidget().setSidebarWidget(this._sideBar),this.splitWidget().setMainWidget(this._mainContainer);const s=t.model(o.CSSModel),i=t.model(a.DOMModel);if(!s||!i)throw new Error("Target must provide CSS and DOM models");this._cssModel=s,this._domModel=i,this._domAgent=t.domAgent(),this._linkifier=new S.Linkifier(20,!0),this._viewMap=new Map,this._sideBar.addItem(ee(Y.overviewSummary),"summary"),this._sideBar.addItem(ee(Y.colors),"colors"),this._sideBar.addItem(ee(Y.fontInfo),"font-info"),this._sideBar.addItem(ee(Y.unusedDeclarations),"unused-declarations"),this._sideBar.addItem(ee(Y.mediaQueries),"media-queries"),this._sideBar.select("summary"),this._sideBar.addEventListener(K.ItemSelected,this._sideBarItemSelected,this),this._sideBar.addEventListener(K.Reset,this._sideBarReset,this),this._controller.addEventListener(A.Reset,this._reset,this),this._controller.addEventListener(A.PopulateNodes,this._createElementsView,this),this._resultsContainer.element.addEventListener("click",this._onClick.bind(this)),this._data=null}wasShown(){super.wasShown()}_sideBarItemSelected(e){const t=e.data,s=this._fragment.$(t);s&&s.scrollIntoView()}_sideBarReset(){this._controller.dispatchEventToListeners(A.Reset)}_reset(){this._resultsContainer.element.removeChildren(),this._mainContainer.setSidebarMinimized(!0),this._elementContainer.closeTabs(),this._viewMap=new Map,se.pushedNodes.clear(),this._sideBar.select("summary")}_onClick(e){if(!e.target)return;const t=e.target.dataset,s=t.type;if(!s||!this._data)return;let i;switch(s){case"contrast":{const e=t.section,n=t.key;if(!n)return;i={type:s,key:n,nodes:this._data.textColorContrastIssues.get(n)||[],section:e};break}case"color":{const e=t.color,n=t.section;if(!e)return;let o;switch(n){case"text":o=this._data.textColors.get(e);break;case"background":o=this._data.backgroundColors.get(e);break;case"fill":o=this._data.fillColors.get(e);break;case"border":o=this._data.borderColors.get(e)}if(!o)return;o=Array.from(o).map((e=>({nodeId:e}))),i={type:s,color:e,nodes:o,section:n};break}case"unused-declarations":{const e=t.declaration;if(!e)return;const n=this._data.unusedDeclarations.get(e);if(!n)return;i={type:s,declaration:e,nodes:n};break}case"media-queries":{const e=t.text;if(!e)return;const n=this._data.mediaQueries.get(e);if(!n)return;i={type:s,text:e,nodes:n};break}case"font-info":{const e=t.value;if(!t.path)return;const[n,o]=t.path.split("/");if(!e)return;const a=this._data.fontInfo.get(n);if(!a)return;const r=a.get(o);if(!r)return;const l=r.get(e);if(!l)return;i={type:s,name:`${e} (${n}, ${o})`,nodes:l.map((e=>({nodeId:e})))};break}default:return}e.consume(),this._controller.dispatchEventToListeners(A.PopulateNodes,i),this._mainContainer.setSidebarMinimized(!1)}_onMouseOver(e){const t=e.composedPath().find((e=>e.dataset&&e.dataset.backendNodeId));if(!t)return;const s=Number(t.dataset.backendNodeId);this._controller.dispatchEventToListeners(A.RequestNodeHighlight,s)}async _render(e){if(!e||!("backgroundColors"in e)||!("textColors"in e))return;this._data=e;const{elementCount:t,backgroundColors:s,textColors:i,textColorContrastIssues:n,fillColors:o,borderColors:a,globalStyleStats:r,mediaQueries:l,unusedDeclarations:d,fontInfo:c}=this._data,h=this._sortColorsByLuminance(s),v=this._sortColorsByLuminance(i),m=this._sortColorsByLuminance(o),p=this._sortColorsByLuminance(a);this._fragment=u.Fragment.build`
12
+ <div class="vbox overview-completed-view">
13
+ <div $="summary" class="results-section horizontally-padded summary">
14
+ <h1>${ee(Y.overviewSummary)}</h1>
15
+
16
+ <ul>
17
+ <li>
18
+ <div class="label">${ee(Y.elements)}</div>
19
+ <div class="value">${this._formatter.format(t)}</div>
20
+ </li>
21
+ <li>
22
+ <div class="label">${ee(Y.externalStylesheets)}</div>
23
+ <div class="value">${this._formatter.format(r.externalSheets)}</div>
24
+ </li>
25
+ <li>
26
+ <div class="label">${ee(Y.inlineStyleElements)}</div>
27
+ <div class="value">${this._formatter.format(r.inlineStyles)}</div>
28
+ </li>
29
+ <li>
30
+ <div class="label">${ee(Y.styleRules)}</div>
31
+ <div class="value">${this._formatter.format(r.styleRules)}</div>
32
+ </li>
33
+ <li>
34
+ <div class="label">${ee(Y.mediaQueries)}</div>
35
+ <div class="value">${this._formatter.format(l.size)}</div>
36
+ </li>
37
+ <li>
38
+ <div class="label">${ee(Y.typeSelectors)}</div>
39
+ <div class="value">${this._formatter.format(r.stats.type)}</div>
40
+ </li>
41
+ <li>
42
+ <div class="label">${ee(Y.idSelectors)}</div>
43
+ <div class="value">${this._formatter.format(r.stats.id)}</div>
44
+ </li>
45
+ <li>
46
+ <div class="label">${ee(Y.classSelectors)}</div>
47
+ <div class="value">${this._formatter.format(r.stats.class)}</div>
48
+ </li>
49
+ <li>
50
+ <div class="label">${ee(Y.universalSelectors)}</div>
51
+ <div class="value">${this._formatter.format(r.stats.universal)}</div>
52
+ </li>
53
+ <li>
54
+ <div class="label">${ee(Y.attributeSelectors)}</div>
55
+ <div class="value">${this._formatter.format(r.stats.attribute)}</div>
56
+ </li>
57
+ <li>
58
+ <div class="label">${ee(Y.nonsimpleSelectors)}</div>
59
+ <div class="value">${this._formatter.format(r.stats.nonSimple)}</div>
60
+ </li>
61
+ </ul>
62
+ </div>
63
+
64
+ <div $="colors" class="results-section horizontally-padded colors">
65
+ <h1>${ee(Y.colors)}</h1>
66
+ <h2>${ee(Y.backgroundColorsS,{PH1:h.length})}</h2>
67
+ <ul>
68
+ ${h.map(this._colorsToFragment.bind(this,"background"))}
69
+ </ul>
70
+
71
+ <h2>${ee(Y.textColorsS,{PH1:v.length})}</h2>
72
+ <ul>
73
+ ${v.map(this._colorsToFragment.bind(this,"text"))}
74
+ </ul>
75
+
76
+ ${n.size>0?this._contrastIssuesToFragment(n):""}
77
+
78
+ <h2>${ee(Y.fillColorsS,{PH1:m.length})}</h2>
79
+ <ul>
80
+ ${m.map(this._colorsToFragment.bind(this,"fill"))}
81
+ </ul>
82
+
83
+ <h2>${ee(Y.borderColorsS,{PH1:p.length})}</h2>
84
+ <ul>
85
+ ${p.map(this._colorsToFragment.bind(this,"border"))}
86
+ </ul>
87
+ </div>
88
+
89
+ <div $="font-info" class="results-section font-info">
90
+ <h1>${ee(Y.fontInfo)}</h1>
91
+ ${c.size>0?this._fontInfoToFragment(c):u.Fragment.build`<div>${ee(Y.thereAreNoFonts)}</div>`}
92
+ </div>
93
+
94
+ <div $="unused-declarations" class="results-section unused-declarations">
95
+ <h1>${ee(Y.unusedDeclarations)}</h1>
96
+ ${d.size>0?this._groupToFragment(d,"unused-declarations","declaration"):u.Fragment.build`<div class="horizontally-padded">${ee(Y.thereAreNoUnusedDeclarations)}</div>`}
97
+ </div>
98
+
99
+ <div $="media-queries" class="results-section media-queries">
100
+ <h1>${ee(Y.mediaQueries)}</h1>
101
+ ${l.size>0?this._groupToFragment(l,"media-queries","text"):u.Fragment.build`<div class="horizontally-padded">${ee(Y.thereAreNoMediaQueries)}</div>`}
102
+ </div>
103
+ </div>`,this._resultsContainer.element.appendChild(this._fragment.element())}_createElementsView(e){const{type:t,nodes:s}=e.data;let i="",n="";switch(t){case"contrast":{const{section:t,key:s}=e.data;i=`${t}-${s}`,n=ee(Y.contrastIssues);break}case"color":{const{section:t,color:s}=e.data;i=`${t}-${s}`,n=`${s.toUpperCase()} (${t})`;break}case"unused-declarations":{const{declaration:t}=e.data;i=""+t,n=""+t;break}case"media-queries":{const{text:t}=e.data;i=""+t,n=""+t;break}case"font-info":{const{name:t}=e.data;i=""+t,n=""+t;break}}let o=this._viewMap.get(i);o||(o=new ne(this._controller,this._domModel,this._cssModel,this._linkifier),o.populateNodes(s),this._viewMap.set(i,o)),this._elementContainer.appendTab(i,n,o,!0)}_fontInfoToFragment(e){const t=Array.from(e.entries());return u.Fragment.build`
104
+ ${t.map((([e,t])=>u.Fragment.build`<section class="font-family"><h2>${e}</h2> ${this._fontMetricsToFragment(e,t)}</section>`))}
105
+ `}_fontMetricsToFragment(e,t){const s=Array.from(t.entries());return u.Fragment.build`
106
+ <div class="font-metric">
107
+ ${s.map((([t,s])=>{const i=`${e}/${t}`;return u.Fragment.build`
108
+ <div>
109
+ <h3>${t}</h3>
110
+ ${this._groupToFragment(s,"font-info","value",i)}
111
+ </div>`}))}
112
+ </div>`}_groupToFragment(e,t,s,i=""){const n=Array.from(e.entries()).sort(((e,t)=>{const s=e[1];return t[1].length-s.length})),o=n.reduce(((e,t)=>e+t[1].length),0);return u.Fragment.build`<ul>
113
+ ${n.map((([e,n])=>{const a=100*n.length/o,r=1===n.length?ee(Y.occurrence):ee(Y.occurrences);return u.Fragment.build`<li>
114
+ <div class="title">${e}</div>
115
+ <button data-type="${t}" data-path="${i}" data-${s}="${e}">
116
+ <div class="details">${ee(Y.sS,{PH1:n.length,PH2:r})}</div>
117
+ <div class="bar-container">
118
+ <div class="bar" style="width: ${a}%"></div>
119
+ </div>
120
+ </button>
121
+ </li>`}))}
122
+ </ul>`}_contrastIssuesToFragment(e){return u.Fragment.build`
123
+ <h2>${ee(Y.contrastIssuesS,{PH1:e.size})}</h2>
124
+ <ul>
125
+ ${[...e.entries()].map((([e,t])=>this._contrastIssueToFragment(e,t)))}
126
+ </ul>
127
+ `}_contrastIssueToFragment(e,s){console.assert(s.length>0);let i=s[0];for(const e of s)Math.abs(e.contrastRatio)<Math.abs(i.contrastRatio)&&(i=e);const n=i.textColor.asString(t.Format.HEXA),o=i.backgroundColor.asString(t.Format.HEXA),a=d.experiments.isEnabled("APCA"),r=u.Fragment.build`<li>
128
+ <button
129
+ title="${ee(Y.textColorSOverSBackgroundResults,{PH1:n,PH2:o,PH3:s.length})}"
130
+ data-type="contrast" data-key="${e}" data-section="contrast" class="block" $="color">
131
+ Text
132
+ </button>
133
+ <div class="block-title">
134
+ <div class="contrast-warning hidden" $="aa"><span class="threshold-label">${ee(Y.aa)}</span></div>
135
+ <div class="contrast-warning hidden" $="aaa"><span class="threshold-label">${ee(Y.aaa)}</span></div>
136
+ <div class="contrast-warning hidden" $="apca"><span class="threshold-label">${ee(Y.apca)}</span></div>
137
+ </div>
138
+ </li>`;if(a){const e=r.$("apca");i.thresholdsViolated.apca?e.appendChild(_.Icon.create("smallicon-no")):e.appendChild(_.Icon.create("smallicon-checkmark-square")),e.classList.remove("hidden")}else{const e=r.$("aa");i.thresholdsViolated.aa?e.appendChild(_.Icon.create("smallicon-no")):e.appendChild(_.Icon.create("smallicon-checkmark-square"));const t=r.$("aaa");i.thresholdsViolated.aaa?t.appendChild(_.Icon.create("smallicon-no")):t.appendChild(_.Icon.create("smallicon-checkmark-square")),e.classList.remove("hidden"),t.classList.remove("hidden")}const l=r.$("color");return l.style.backgroundColor=o,l.style.color=n,l.style.border=te(i.backgroundColor),r}_colorsToFragment(e,s){const i=u.Fragment.build`<li>
139
+ <button data-type="color" data-color="${s}" data-section="${e}" class="block" $="color"></button>
140
+ <div class="block-title">${s}</div>
141
+ </li>`,n=i.$("color");n.style.backgroundColor=s;const o=t.Color.parse(s);if(o)return n.style.border=te(o),i}_sortColorsByLuminance(e){return Array.from(e.keys()).sort(((e,i)=>{const n=t.Color.parse(e),o=t.Color.parse(i);return n&&o?s.luminance(o.rgba())-s.luminance(n.rgba()):0}))}setOverviewData(e){this._render(e)}}se.pushedNodes=new Set;class ie extends c.VBox{constructor(){super(),this._tabbedPane=new g.TabbedPane,this._tabbedPane.show(this.element),this._tabbedPane.addEventListener(g.Events.TabClosed,(()=>{this.dispatchEventToListeners(g.Events.TabClosed,this._tabbedPane.tabIds().length)}))}appendTab(e,t,s,i){this._tabbedPane.hasTab(e)||this._tabbedPane.appendTab(e,t,s,void 0,void 0,i),this._tabbedPane.selectTab(e)}closeTabs(){this._tabbedPane.closeTabs(this._tabbedPane.tabIds())}}class ne extends c.Widget{constructor(e,t,s,i){super(),this._controller=e,this._domModel=t,this._cssModel=s,this._linkifier=i,this._elementGridColumns=[{id:"nodeId",title:ee(Y.element),sortable:!0,weight:50,titleDOMFragment:void 0,sort:void 0,align:void 0,width:void 0,fixedWidth:void 0,editable:void 0,nonSelectable:void 0,longText:void 0,disclosure:void 0,allowInSortByEvenWhenHidden:void 0,dataType:void 0,defaultWeight:void 0},{id:"declaration",title:ee(Y.declaration),sortable:!0,weight:50,titleDOMFragment:void 0,sort:void 0,align:void 0,width:void 0,fixedWidth:void 0,editable:void 0,nonSelectable:void 0,longText:void 0,disclosure:void 0,allowInSortByEvenWhenHidden:void 0,dataType:void 0,defaultWeight:void 0},{id:"sourceURL",title:ee(Y.source),sortable:!1,weight:100,titleDOMFragment:void 0,sort:void 0,align:void 0,width:void 0,fixedWidth:void 0,editable:void 0,nonSelectable:void 0,longText:void 0,disclosure:void 0,allowInSortByEvenWhenHidden:void 0,dataType:void 0,defaultWeight:void 0},{id:"contrastRatio",title:ee(Y.contrastRatio),sortable:!0,weight:25,titleDOMFragment:void 0,sort:void 0,align:void 0,width:"150px",fixedWidth:!0,editable:void 0,nonSelectable:void 0,longText:void 0,disclosure:void 0,allowInSortByEvenWhenHidden:void 0,dataType:void 0,defaultWeight:void 0}],this._elementGrid=new f.SortableDataGrid({displayName:ee(Y.cssOverviewElements),columns:this._elementGridColumns,editCallback:void 0,deleteCallback:void 0,refreshCallback:void 0}),this._elementGrid.element.classList.add("element-grid"),this._elementGrid.element.addEventListener("mouseover",this._onMouseOver.bind(this)),this._elementGrid.setStriped(!0),this._elementGrid.addEventListener(C.Events.SortingChanged,this._sortMediaQueryDataGrid.bind(this)),this.element.appendChild(this._elementGrid.element)}_sortMediaQueryDataGrid(){const e=this._elementGrid.sortColumnId();if(!e)return;const t=f.SortableDataGrid.StringComparator.bind(null,e);this._elementGrid.sortNodes(t,!this._elementGrid.isSortOrderAscending())}_onMouseOver(e){const t=e.composedPath().find((e=>e.dataset&&e.dataset.backendNodeId));if(!t)return;const s=Number(t.dataset.backendNodeId);this._controller.dispatchEventToListeners(A.RequestNodeHighlight,s)}async populateNodes(e){if(this._elementGrid.rootNode().removeChildren(),!e.length)return;const[t]=e,s=new Set;let i;if(t.nodeId&&s.add("nodeId"),t.declaration&&s.add("declaration"),t.sourceURL&&s.add("sourceURL"),t.contrastRatio&&s.add("contrastRatio"),s.has("nodeId")){const t=e.reduce(((e,t)=>se.pushedNodes.has(t.nodeId)?e:(se.pushedNodes.add(t.nodeId),e.add(t.nodeId))),new Set);i=await this._domModel.pushNodesByBackendIdsToFrontend(t)}for(const t of e){if(s.has("nodeId")){if(!i)continue;const e=i.get(t.nodeId);if(!e)continue;t.node=e}const e=new oe(this._elementGrid,t,this._linkifier,this._cssModel);e.selectable=!1,this._elementGrid.insertChild(e)}this._elementGrid.setColumnsVisiblity(s),this._elementGrid.renderInline(),this._elementGrid.wasShown()}}class oe extends f.SortableDataGridNode{constructor(e,t,s,i){super(e,t.hasChildren),this.data=t,this._linkifier=s,this._cssModel=i}createCell(e){if("nodeId"===e){const t=this.createTD(e);return t.textContent="...",i.Linkifier.linkify(this.data.node).then((e=>{t.textContent="",e.dataset.backendNodeId=this.data.node.backendNodeId(),t.appendChild(e);const s=document.createElement("button");s.classList.add("show-element"),b.Tooltip.install(s,ee(Y.showElement)),s.tabIndex=0,s.onclick=()=>this.data.node.scrollIntoView(),t.appendChild(s)})),t}if("sourceURL"===e){const t=this.createTD(e);if(this.data.range){const e=this._linkifyRuleLocation(this._cssModel,this._linkifier,this.data.styleSheetId,y.TextRange.fromObject(this.data.range));e&&""!==e.textContent?t.appendChild(e):t.textContent="(unable to link)"}else t.textContent="(unable to link to inlined styles)";return t}if("contrastRatio"===e){const t=this.createTD(e),s=d.experiments.isEnabled("APCA"),i=w.floor(this.data.contrastRatio,2),n=s?i+"%":i,o=u.Fragment.build`
142
+ <div class="contrast-container-in-grid" $="container">
143
+ <span class="contrast-preview" style="border: ${te(this.data.backgroundColor)}; color: ${this.data.textColor.asString()}; background-color: ${this.data.backgroundColor.asString()};">Aa</span>
144
+ <span>${n}</span>
145
+ </div>
146
+ `,a=o.$("container");return s?(a.append(u.Fragment.build`<span>${ee(Y.apca)}</span>`.element()),this.data.thresholdsViolated.apca?a.appendChild(_.Icon.create("smallicon-no")):a.appendChild(_.Icon.create("smallicon-checkmark-square"))):(a.append(u.Fragment.build`<span>${ee(Y.aa)}</span>`.element()),this.data.thresholdsViolated.aa?a.appendChild(_.Icon.create("smallicon-no")):a.appendChild(_.Icon.create("smallicon-checkmark-square")),a.append(u.Fragment.build`<span>${ee(Y.aaa)}</span>`.element()),this.data.thresholdsViolated.aaa?a.appendChild(_.Icon.create("smallicon-no")):a.appendChild(_.Icon.create("smallicon-checkmark-square"))),t.appendChild(o.element()),t}return super.createCell(e)}_linkifyRuleLocation(e,t,s,i){const n=e.styleSheetHeaderForId(s);if(!n)return;const a=n.lineNumberInSource(i.startLine),r=n.columnNumberInSource(i.startLine,i.startColumn),l=new o.CSSLocation(n,a,r);return t.linkifyCSSLocation(l)}}var ae=Object.freeze({__proto__:null,UIStrings:Y,NodeStyleStats:undefined,ContrastIssue:undefined,OverviewData:undefined,FontInfo:undefined,CSSOverviewCompletedView:se,DetailsView:ie,ElementDetailsView:ne,ElementNode:oe});let re;class le extends m.Panel{constructor(){super("css_overview"),this.registerRequiredCSS("css_overview/cssOverview.css",{enableLegacyPatching:!1}),this.element.classList.add("css-overview-panel");const[e]=n.TargetManager.instance().models(R);this._model=e,this._controller=new $,this._startView=new D(this._controller),this._processingView=new q(this._controller),this._completedView=new se(this._controller,e.target()),this._controller.addEventListener(A.RequestOverviewStart,(e=>{I.actionTaken(k.Action.CaptureCssOverviewClicked),this._startOverview()}),this),this._controller.addEventListener(A.RequestOverviewCancel,this._cancelOverview,this),this._controller.addEventListener(A.OverviewCompleted,this._overviewCompleted,this),this._controller.addEventListener(A.Reset,this._reset,this),this._controller.addEventListener(A.RequestNodeHighlight,this._requestNodeHighlight,this),this._reset()}static instance(){return re||(re=new le),re}_reset(){this._backgroundColors=new Map,this._textColors=new Map,this._fillColors=new Map,this._borderColors=new Map,this._fontInfo=new Map,this._mediaQueries=new Map,this._unusedDeclarations=new Map,this._elementCount=0,this._cancelled=!1,this._globalStyleStats={styleRules:0,inlineStyles:0,externalSheets:0,stats:{type:0,class:0,id:0,universal:0,attribute:0,nonSimple:0}},this._renderInitialView()}_requestNodeHighlight(e){this._model.highlightNode(e.data)}_renderInitialView(){this._processingView.hideWidget(),this._completedView.hideWidget(),this._startView.show(this.contentElement)}_renderOverviewStartedView(){this._startView.hideWidget(),this._completedView.hideWidget(),this._processingView.show(this.contentElement)}_renderOverviewCompletedView(){this._startView.hideWidget(),this._processingView.hideWidget(),this._completedView.show(this.contentElement),this._completedView.setOverviewData({backgroundColors:this._backgroundColors,textColors:this._textColors,textColorContrastIssues:this._textColorContrastIssues,fillColors:this._fillColors,borderColors:this._borderColors,globalStyleStats:this._globalStyleStats,fontInfo:this._fontInfo,elementCount:this._elementCount,mediaQueries:this._mediaQueries,unusedDeclarations:this._unusedDeclarations})}async _startOverview(){this._renderOverviewStartedView();const[e,{elementCount:t,backgroundColors:s,textColors:i,textColorContrastIssues:n,fillColors:o,borderColors:a,fontInfo:r,unusedDeclarations:l},d]=await Promise.all([this._model.getGlobalStylesheetStats(),this._model.getNodeStyleStats(),this._model.getMediaQueries()]);t&&(this._elementCount=t),e&&(this._globalStyleStats=e),d&&(this._mediaQueries=d),s&&(this._backgroundColors=s),i&&(this._textColors=i),n&&(this._textColorContrastIssues=n),o&&(this._fillColors=o),a&&(this._borderColors=a),r&&(this._fontInfo=r),l&&(this._unusedDeclarations=l),this._controller.dispatchEventToListeners(A.OverviewCompleted)}_getStyleValue(e,t){const s=e.filter((e=>e.name===t));if(s.length)return s[0].value}_cancelOverview(){this._cancelled=!0}_overviewCompleted(){this._renderOverviewCompletedView()}}var de=Object.freeze({__proto__:null,CSSOverviewPanel:le});export{ae as CSSOverviewCompletedView,E as CSSOverviewController,P as CSSOverviewModel,de as CSSOverviewPanel,z as CSSOverviewProcessingView,J as CSSOverviewSidebarPanel,H as CSSOverviewStartView,L as CSSOverviewUnusedDeclarations};
@@ -0,0 +1 @@
1
+ import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("css_overview/cssOverview.css","/**\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.css-overview-panel {\n overflow: hidden;\n}\n\n/*# sourceURL=css_overview/cssOverview.css */");RootModule.Runtime.cachedResources.set("css_overview/cssOverviewStartView.css","/**\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.overview-start-view {\n overflow: hidden;\n padding: 16px;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n\n.overview-start-view h1 {\n font-size: 16px;\n text-align: center;\n font-weight: normal;\n margin: 0;\n padding: 8px;\n}\n\n.overview-start-view div {\n font-size: 12px;\n text-align: center;\n font-weight: normal;\n margin: 0;\n padding-bottom: 44px;\n}\n\n/*# sourceURL=css_overview/cssOverviewStartView.css */");RootModule.Runtime.cachedResources.set("css_overview/cssOverviewProcessingView.css","/**\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.overview-processing-view {\n overflow: hidden;\n padding: 16px;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n\n.overview-processing-view h1 {\n font-size: 16px;\n text-align: center;\n font-weight: normal;\n margin: 0;\n padding: 8px;\n}\n\n.overview-processing-view h2 {\n font-size: 12px;\n text-align: center;\n font-weight: normal;\n margin: 0;\n padding-top: 32px;\n}\n\n/*# sourceURL=css_overview/cssOverviewProcessingView.css */");RootModule.Runtime.cachedResources.set("css_overview/cssOverviewCompletedView.css","/**\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.overview-completed-view {\n overflow: auto;\n\n --overview-default-padding: 28px;\n --overview-icon-padding: 32px;\n}\n\n.overview-completed-view .summary ul,\n.overview-completed-view .colors ul {\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.overview-completed-view .summary ul {\n display: grid;\n grid-template-columns: repeat(auto-fill, 140px);\n grid-gap: 16px;\n}\n\n.overview-completed-view .colors ul li {\n display: inline-block;\n margin: 0 0 16px 0;\n padding: 0 8px 0 0;\n}\n\n.overview-completed-view .summary ul li {\n display: flex;\n flex-direction: column;\n grid-column-start: auto;\n}\n\n.overview-completed-view li .label {\n font-size: 12px;\n padding-bottom: 2px;\n}\n\n.overview-completed-view li .value {\n font-size: 17px;\n}\n\n.overview-completed-view ul li span {\n font-weight: bold;\n}\n\n.unused-rules-grid .header-container,\n.unused-rules-grid .data-container,\n.unused-rules-grid table.data {\n position: relative;\n}\n\n.unused-rules-grid .data-container {\n top: 0;\n max-height: 350px;\n}\n\n.unused-rules-grid {\n border-left: none;\n border-right: none;\n}\n\n/** Ensure links are rendered at the correct height */\n\n.unused-rules-grid .monospace {\n display: block;\n height: 18px;\n}\n\n.element-grid {\n flex: 1;\n border-left: none;\n border-right: none;\n overflow: auto;\n}\n\n.block {\n width: 65px;\n height: 25px;\n border-radius: 3px;\n margin-right: 16px;\n cursor: pointer;\n}\n\n.block-title {\n padding-top: 4px;\n font-size: 12px;\n color: var(--color-text-primary);\n text-transform: uppercase;\n letter-spacing: 0;\n}\n\n.results-section {\n flex-shrink: 0;\n border-bottom: 1px solid var(--color-details-hairline);\n padding: var(--overview-default-padding) 0 var(--overview-default-padding) 0;\n}\n\n.horizontally-padded {\n padding-left: var(--overview-default-padding);\n padding-right: var(--overview-default-padding);\n}\n\n.results-section h1 {\n font-size: 15px;\n font-weight: normal;\n padding: 0;\n margin: 0 0 20px 0;\n padding-left: calc(var(--overview-default-padding) + var(--overview-icon-padding));\n position: relative;\n height: 26px;\n line-height: 26px;\n}\n\n.results-section h1::before {\n content: '';\n display: block;\n position: absolute;\n left: var(--overview-default-padding);\n top: 0;\n width: 26px;\n height: 26px;\n background-image: url(Images/cssoverview_icons_2x.avif);\n background-size: 104px 26px;\n}\n\n.results-section.horizontally-padded h1 {\n padding-left: var(--overview-icon-padding);\n}\n\n.results-section.horizontally-padded h1::before {\n left: 0;\n}\n\n.results-section.summary h1 {\n padding-left: 0;\n}\n\n.results-section.summary h1::before {\n display: none;\n}\n\n.results-section.colors h1::before {\n background-position: 0 0;\n}\n\n.results-section.font-info h1::before {\n background-position: -26px 0;\n}\n\n.results-section.unused-declarations h1::before {\n background-position: -52px 0;\n}\n\n.results-section.media-queries h1::before {\n background-position: -78px 0;\n}\n\n.results-section.colors h2 {\n margin-top: 20px;\n font-size: 13px;\n font-weight: normal;\n}\n\n.overview-completed-view .font-info ul,\n.overview-completed-view .media-queries ul,\n.overview-completed-view .unused-declarations ul {\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0 var(--overview-default-padding);\n}\n\n.overview-completed-view .font-info ul li,\n.overview-completed-view .media-queries ul li,\n.overview-completed-view .unused-declarations ul li {\n display: grid;\n grid-template-columns: 2fr 3fr;\n grid-gap: 12px;\n margin-bottom: 4px;\n align-items: center;\n}\n\n.overview-completed-view .font-info button,\n.overview-completed-view .media-queries button,\n.overview-completed-view .unused-declarations button {\n border: none;\n padding: 0;\n margin: 0;\n display: flex;\n align-items: center;\n border-radius: 2px;\n cursor: pointer;\n height: 28px;\n background: none;\n}\n\n.overview-completed-view .font-info button .details,\n.overview-completed-view .media-queries button .details,\n.overview-completed-view .unused-declarations button .details {\n min-width: 100px;\n text-align: right;\n margin-right: 8px;\n color: var(--color-primary);\n pointer-events: none;\n}\n\n.overview-completed-view .font-info button .bar-container,\n.overview-completed-view .media-queries button .bar-container,\n.overview-completed-view .unused-declarations button .bar-container {\n flex: 1;\n pointer-events: none;\n}\n\n.overview-completed-view .font-info button .bar,\n.overview-completed-view .media-queries button .bar,\n.overview-completed-view .unused-declarations button .bar {\n height: 8px;\n background: var(--color-primary);\n border-radius: 2px;\n min-width: 2px;\n}\n\n.overview-completed-view .font-info button:hover .details,\n.overview-completed-view .font-info button:focus .details,\n.overview-completed-view .media-queries button:hover .details,\n.overview-completed-view .media-queries button:focus .details,\n.overview-completed-view .unused-declarations button:hover .details,\n.overview-completed-view .unused-declarations button:focus .details {\n color: var(--color-primary-variant);\n}\n\n.overview-completed-view .font-info button:hover .bar,\n.overview-completed-view .font-info button:focus .bar,\n.overview-completed-view .media-queries button:hover .bar,\n.overview-completed-view .media-queries button:focus .bar,\n.overview-completed-view .unused-declarations button:hover .bar,\n.overview-completed-view .unused-declarations button:focus .bar {\n background-color: var(--color-primary-variant);\n box-shadow: 0 1px 2px rgb(0 0 0 / 10%), 0 0 0 2px rgb(66 133 244 / 40%);\n color: var(--color-background);\n}\n\n.overview-completed-view .font-info .font-metric {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n grid-gap: 12px;\n}\n\n.overview-completed-view .font-info ul {\n padding: 0;\n}\n\n.overview-completed-view .font-info ul li {\n grid-template-columns: 1fr 4fr;\n}\n\n.overview-completed-view .font-info h2 {\n font-size: 14px;\n font-weight: bold;\n margin: 0 0 1em 0;\n}\n\n.overview-completed-view .font-info h3 {\n font-size: 13px;\n font-weight: normal;\n font-style: italic;\n margin: 0 0 0.5em 0;\n}\n\n.overview-completed-view .font-info {\n padding-bottom: 0;\n}\n\n.overview-completed-view .font-family {\n padding: var(--overview-default-padding);\n}\n\n.overview-completed-view .font-family:nth-child(2n+1) {\n background: var(--color-background);\n}\n\n.overview-completed-view .font-family:first-of-type {\n padding-top: 0;\n}\n\n.contrast-warning {\n display: flex;\n align-items: baseline;\n}\n\n.contrast-warning .threshold-label {\n font-weight: normal;\n width: 30px;\n}\n\n.contrast-warning [is=ui-icon] {\n margin-left: 5px;\n}\n\n.contrast-preview {\n padding: 0 5px;\n}\n\n.contrast-container-in-grid {\n display: flex;\n align-items: baseline;\n}\n\n.contrast-container-in-grid > * {\n margin-right: 5px;\n min-width: initial;\n}\n\n[is=ui-icon].smallicon-checkmark-square {\n background-color: #00b06f;\n}\n\n[is=ui-icon].smallicon-no {\n background-color: red;\n}\n\n.data .nodeId-column {\n align-items: center;\n display: flex;\n height: 20px;\n}\n\n.show-element {\n margin: 0 0 0 8px;\n padding: 0;\n background: none;\n border: none;\n -webkit-mask-image: url(Images/ic_show_node_16x16.svg);\n background-color: var(--color-background-elevation-1);\n width: 16px;\n height: 16px;\n display: none;\n cursor: pointer;\n flex: none;\n}\n\n.show-element:focus,\n.show-element:hover {\n background-color: var(--color-syntax-1);\n}\n\n.nodeId-column:focus-within .show-element,\n.nodeId-column:hover .show-element {\n display: inline-block;\n}\n\n/*# sourceURL=css_overview/cssOverviewCompletedView.css */");RootModule.Runtime.cachedResources.set("css_overview/cssOverviewSidebarPanel.css","/**\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.overview-sidebar-panel {\n overflow: auto;\n display: flex;\n background: var(--color-background-elevation-1);\n}\n\n.overview-sidebar-panel-item {\n height: 30px;\n padding-left: 30px;\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--color-text-primary);\n}\n\n.overview-sidebar-panel-item:hover,\n.overview-sidebar-panel-item:focus {\n background: var(--color-background-highlight);\n}\n\n.overview-sidebar-panel-item.selected {\n background: var(--color-primary);\n color: var(--color-background);\n}\n\n.overview-toolbar {\n border-bottom: 1px solid var(--color-details-hairline);\n}\n\n/*# sourceURL=css_overview/cssOverviewSidebarPanel.css */");
@@ -0,0 +1 @@
1
+ import{DataGrid as a,ShowMoreDataGridNode as t,SortableDataGrid as r,ViewportDataGrid as d}from"./data_grid.js";self.DataGrid=self.DataGrid||{},DataGrid=DataGrid||{},DataGrid._preferredWidthSymbol=Symbol("preferredWidth"),DataGrid._columnIdSymbol=Symbol("columnId"),DataGrid._sortIconSymbol=Symbol("sortIcon"),DataGrid._longTextSymbol=Symbol("longText"),DataGrid.DataGrid=a.DataGridImpl,DataGrid.CreationDataGridNode=a.CreationDataGridNode,DataGrid.DataGridNode=a.DataGridNode,DataGrid.DataGridWidget=a.DataGridWidget,DataGrid.DataGrid.Events=a.Events,DataGrid.DataGrid.Order=a.Order,DataGrid.DataGrid.Align=a.Align,DataGrid.DataGrid.DataType=a.DataType,DataGrid.DataGrid.ResizeMethod=a.ResizeMethod,DataGrid.ShowMoreDataGridNode=t.ShowMoreDataGridNode,DataGrid.SortableDataGrid=r.SortableDataGrid,DataGrid.SortableDataGridNode=r.SortableDataGridNode,DataGrid.ViewportDataGrid=d.ViewportDataGrid,DataGrid.ViewportDataGrid.Events=d.Events,DataGrid.ViewportDataGridNode=d.ViewportDataGridNode;