@browserless.io/browserless 2.2.0-beta-6 → 2.2.0
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.
- package/CHANGELOG.md +21 -2
- package/bin/browserless.js +1 -1
- package/bin/scaffold/README.md +8 -7
- package/build/browserless.js +7 -6
- package/build/browsers/chrome.cdp.d.ts +6 -0
- package/build/browsers/chrome.cdp.js +6 -0
- package/build/browsers/chrome.playwright.d.ts +6 -0
- package/build/browsers/chrome.playwright.js +6 -0
- package/build/browsers/{cdp-chromium.d.ts → chromium.cdp.d.ts} +3 -2
- package/build/browsers/{cdp-chromium.js → chromium.cdp.js} +16 -10
- package/build/browsers/{playwright-chromium.d.ts → chromium.playwright.d.ts} +3 -2
- package/build/browsers/{playwright-chromium.js → chromium.playwright.js} +6 -5
- package/build/browsers/{playwright-firefox.d.ts → firefox.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-firefox.js → firefox.playwright.js} +4 -4
- package/build/browsers/index.d.ts +20 -10
- package/build/browsers/index.js +110 -11
- package/build/browsers/{playwright-webkit.d.ts → webkit.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-webkit.js → webkit.playwright.js} +4 -4
- package/build/data/selectors.json +1 -1
- package/build/exports.d.ts +6 -4
- package/build/exports.js +6 -4
- package/build/http.d.ts +22 -1
- package/build/http.js +21 -0
- package/build/router.js +19 -3
- package/build/routes/{chromium/http/content-post.body.json → chrome/http/content.post.body.json} +8 -8
- package/build/routes/chrome/http/content.post.d.ts +7 -0
- package/build/routes/chrome/http/content.post.js +6 -0
- package/build/routes/chrome/http/download.post.d.ts +7 -0
- package/build/routes/chrome/http/download.post.js +6 -0
- package/build/routes/chrome/http/function.post.d.ts +7 -0
- package/build/routes/chrome/http/function.post.js +6 -0
- package/build/routes/chrome/http/json-list.get.d.ts +1 -0
- package/build/routes/chrome/http/json-list.get.js +1 -0
- package/build/routes/chrome/http/json-new.put.d.ts +1 -0
- package/build/routes/chrome/http/json-new.put.js +1 -0
- package/build/routes/chrome/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chrome/http/json-protocol.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.d.ts +1 -0
- package/build/routes/chrome/http/json-version.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.response.json +44 -0
- package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +8 -8
- package/build/routes/chrome/http/pdf.post.d.ts +7 -0
- package/build/routes/chrome/http/pdf.post.js +6 -0
- package/build/routes/chrome/http/performance.post.d.ts +7 -0
- package/build/routes/chrome/http/performance.post.js +6 -0
- package/build/routes/{chromium/http/scrape-post.body.json → chrome/http/scrape.post.body.json} +8 -8
- package/build/routes/chrome/http/scrape.post.d.ts +7 -0
- package/build/routes/chrome/http/scrape.post.js +6 -0
- package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/screenshot.post.body.json} +8 -8
- package/build/routes/chrome/http/screenshot.post.d.ts +7 -0
- package/build/routes/chrome/http/screenshot.post.js +6 -0
- package/build/routes/chrome/tests/content.spec.js +311 -0
- package/build/routes/chrome/tests/download.spec.js +67 -0
- package/build/routes/chrome/tests/function.spec.d.ts +1 -0
- package/build/routes/chrome/tests/function.spec.js +245 -0
- package/build/routes/chrome/tests/json-version.spec.d.ts +1 -0
- package/build/routes/chrome/tests/json-version.spec.js +37 -0
- package/build/routes/chrome/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/page-websocket.spec.js +97 -0
- package/build/routes/chrome/tests/pdf.spec.d.ts +1 -0
- package/build/routes/chrome/tests/pdf.spec.js +333 -0
- package/build/routes/chrome/tests/performance.spec.d.ts +1 -0
- package/build/routes/chrome/tests/performance.spec.js +124 -0
- package/build/routes/chrome/tests/scrape.spec.d.ts +1 -0
- package/build/routes/chrome/tests/scrape.spec.js +354 -0
- package/build/routes/chrome/tests/screenshot.spec.d.ts +1 -0
- package/build/routes/chrome/tests/screenshot.spec.js +339 -0
- package/build/routes/chrome/tests/websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/websocket.spec.js +371 -0
- package/build/routes/chrome/ws/browser.d.ts +6 -0
- package/build/routes/chrome/ws/browser.js +5 -0
- package/build/routes/chrome/ws/cdp.d.ts +7 -0
- package/build/routes/chrome/ws/cdp.js +6 -0
- package/build/routes/chrome/ws/cdp.query.json +120 -0
- package/build/routes/chrome/ws/page.d.ts +6 -0
- package/build/routes/chrome/ws/page.js +5 -0
- package/build/routes/chrome/ws/page.query.json +120 -0
- package/build/routes/chrome/ws/playwright.d.ts +7 -0
- package/build/routes/chrome/ws/playwright.js +6 -0
- package/build/routes/chromium/http/content.post.body.json +510 -0
- package/build/routes/chromium/http/content.post.d.ts +1 -0
- package/build/routes/chromium/http/content.post.js +1 -0
- package/build/routes/chromium/http/content.post.query.json +183 -0
- package/build/routes/chromium/http/content.post.response.json +5 -0
- package/build/routes/chromium/http/download.post.body.json +32 -0
- package/build/routes/chromium/http/download.post.d.ts +1 -0
- package/build/routes/chromium/http/download.post.js +1 -0
- package/build/routes/chromium/http/download.post.query.json +120 -0
- package/build/routes/chromium/http/download.post.response.json +4 -0
- package/build/routes/chromium/http/function.post.body.json +32 -0
- package/build/routes/chromium/http/function.post.d.ts +1 -0
- package/build/routes/chromium/http/function.post.js +1 -0
- package/build/routes/chromium/http/function.post.query.json +120 -0
- package/build/routes/chromium/http/function.post.response.json +4 -0
- package/build/routes/chromium/http/json-list.get.d.ts +1 -0
- package/build/routes/chromium/http/json-list.get.js +1 -0
- package/build/routes/chromium/http/json-list.get.response.json +52 -0
- package/build/routes/chromium/http/json-new.put.d.ts +1 -0
- package/build/routes/chromium/http/json-new.put.js +1 -0
- package/build/routes/chromium/http/json-new.put.response.json +44 -0
- package/build/routes/chromium/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chromium/http/json-protocol.get.js +1 -0
- package/build/routes/chromium/http/json-protocol.get.response.json +6 -0
- package/build/routes/chromium/http/json-version.get.d.ts +1 -0
- package/build/routes/chromium/http/json-version.get.js +1 -0
- package/build/routes/chromium/http/json-version.get.response.json +44 -0
- package/build/routes/chromium/http/pdf.post.body.json +654 -0
- package/build/routes/chromium/http/pdf.post.d.ts +1 -0
- package/build/routes/chromium/http/pdf.post.js +1 -0
- package/build/routes/chromium/http/pdf.post.query.json +120 -0
- package/build/routes/chromium/http/pdf.post.response.json +5 -0
- package/build/routes/chromium/http/performance.post.body.json +26 -0
- package/build/routes/chromium/http/performance.post.d.ts +1 -0
- package/build/routes/chromium/http/performance.post.js +1 -0
- package/build/routes/chromium/http/performance.post.query.json +120 -0
- package/build/routes/chromium/http/performance.post.response.json +7 -0
- package/build/routes/chromium/http/scrape.post.body.json +557 -0
- package/build/routes/chromium/http/scrape.post.d.ts +1 -0
- package/build/routes/chromium/http/scrape.post.js +1 -0
- package/build/routes/chromium/http/scrape.post.query.json +183 -0
- package/build/routes/chromium/http/scrape.post.response.json +309 -0
- package/build/routes/chromium/http/screenshot.post.body.json +600 -0
- package/build/routes/chromium/http/screenshot.post.d.ts +1 -0
- package/build/routes/chromium/http/screenshot.post.js +1 -0
- package/build/routes/chromium/http/screenshot.post.query.json +120 -0
- package/build/routes/chromium/http/screenshot.post.response.json +5 -0
- package/build/routes/chromium/tests/content.spec.js +16 -16
- package/build/routes/chromium/tests/download.spec.js +3 -3
- package/build/routes/chromium/tests/function.spec.js +10 -10
- package/build/routes/chromium/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chromium/tests/page-websocket.spec.js +97 -0
- package/build/routes/chromium/tests/pdf.spec.js +16 -16
- package/build/routes/chromium/tests/performance.spec.js +7 -7
- package/build/routes/chromium/tests/scrape.spec.js +15 -15
- package/build/routes/chromium/tests/screenshot.spec.js +17 -17
- package/build/routes/chromium/tests/websocket.spec.js +31 -37
- package/build/routes/chromium/ws/browser.d.ts +1 -16
- package/build/routes/chromium/ws/browser.js +1 -10
- package/build/routes/chromium/ws/cdp.d.ts +1 -0
- package/build/routes/chromium/ws/cdp.js +1 -0
- package/build/routes/chromium/ws/cdp.query.json +120 -0
- package/build/routes/chromium/ws/page.d.ts +1 -16
- package/build/routes/chromium/ws/page.js +1 -10
- package/build/routes/chromium/ws/playwright.d.ts +1 -0
- package/build/routes/chromium/ws/playwright.js +1 -0
- package/build/routes/firefox/ws/{playwright-firefox.d.ts → playwright.d.ts} +5 -5
- package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
- package/build/routes/management/http/{sessions-get.response.json → sessions.get.response.json} +11 -1
- package/build/routes/management/http/{static-get.js → static.get.js} +2 -2
- package/build/routes/webkit/ws/{playwright-webkit.d.ts → playwright.d.ts} +5 -5
- package/build/routes/webkit/ws/{playwright-webkit.js → playwright.js} +4 -4
- package/build/routes/webkit/ws/playwright.query.json +100 -0
- package/build/{routes/chromium/ws/cdp-chromium.d.ts → shared/browser.ws.d.ts} +4 -4
- package/build/shared/browser.ws.js +12 -0
- package/build/{routes/chromium/ws/playwright-chromium.d.ts → shared/chromium.playwright.ws.d.ts} +4 -4
- package/build/{routes/chromium/ws/playwright-chromium.js → shared/chromium.playwright.ws.js} +6 -3
- package/build/shared/chromium.ws.d.ts +16 -0
- package/build/shared/chromium.ws.js +10 -0
- package/build/{routes/chromium/http/content-post.d.ts → shared/content.http.d.ts} +3 -3
- package/build/{routes/chromium/http/content-post.js → shared/content.http.js} +3 -3
- package/build/{routes/chromium/http/download-post.d.ts → shared/download.http.d.ts} +3 -3
- package/build/{routes/chromium/http/download-post.js → shared/download.http.js} +4 -4
- package/build/{routes/chromium/http/function-post.d.ts → shared/function.http.d.ts} +3 -3
- package/build/{routes/chromium/http/function-post.js → shared/function.http.js} +4 -4
- package/build/{routes/chromium/http/json-new.d.ts → shared/json-list.http.d.ts} +2 -3
- package/build/{routes/chromium/http/json-list.js → shared/json-list.http.js} +5 -8
- package/build/{routes/chromium/http/json-list.d.ts → shared/json-new.http.d.ts} +2 -3
- package/build/shared/json-new.http.js +34 -0
- package/build/{routes/chromium/http/json-protocol-get.js → shared/json-protocol.http.js} +2 -2
- package/build/{routes/chromium/http/json-version-get.js → shared/json-version.http.js} +3 -3
- package/build/shared/page.ws.d.ts +16 -0
- package/build/shared/page.ws.js +13 -0
- package/build/{routes/chromium/http/pdf-post.d.ts → shared/pdf.http.d.ts} +3 -3
- package/build/{routes/chromium/http/pdf-post.js → shared/pdf.http.js} +3 -3
- package/build/{routes/chromium/http/performance.d.ts → shared/performance.http.d.ts} +3 -3
- package/build/{routes/chromium/http/performance.js → shared/performance.http.js} +4 -4
- package/build/{routes/chromium/http/scrape-post.d.ts → shared/scrape.http.d.ts} +3 -3
- package/build/{routes/chromium/http/scrape-post.js → shared/scrape.http.js} +3 -3
- package/build/{routes/chromium/http/screenshot-post.d.ts → shared/screenshot.http.d.ts} +3 -3
- package/build/{routes/chromium/http/screenshot-post.js → shared/screenshot.http.js} +3 -3
- package/build/shared/utils/performance/child.d.ts +1 -0
- package/build/{routes/chromium → shared}/utils/performance/main.js +1 -1
- package/build/shared/utils/performance/types.js +1 -0
- package/build/shim.js +2 -1
- package/build/types.d.ts +10 -8
- package/build/utils.d.ts +8 -3
- package/build/utils.js +24 -11
- package/docker/base/Dockerfile +1 -1
- package/docker/chrome/Dockerfile +4 -4
- package/docker/chromium/.dockerignore +16 -0
- package/docker/chromium/Dockerfile +40 -0
- package/docker/firefox/Dockerfile +1 -1
- package/docker/multi/Dockerfile +13 -1
- package/docker/webkit/Dockerfile +1 -1
- package/extensions/ublock/3p-filters.html +1 -1
- package/extensions/ublock/_locales/ar/messages.json +4 -0
- package/extensions/ublock/_locales/az/messages.json +4 -0
- package/extensions/ublock/_locales/be/messages.json +4 -0
- package/extensions/ublock/_locales/bg/messages.json +5 -1
- package/extensions/ublock/_locales/bn/messages.json +4 -0
- package/extensions/ublock/_locales/br_FR/messages.json +6 -2
- package/extensions/ublock/_locales/bs/messages.json +4 -0
- package/extensions/ublock/_locales/ca/messages.json +4 -0
- package/extensions/ublock/_locales/cs/messages.json +4 -0
- package/extensions/ublock/_locales/cv/messages.json +4 -0
- package/extensions/ublock/_locales/cy/messages.json +1294 -0
- package/extensions/ublock/_locales/da/messages.json +4 -0
- package/extensions/ublock/_locales/de/messages.json +5 -1
- package/extensions/ublock/_locales/el/messages.json +4 -0
- package/extensions/ublock/_locales/en/messages.json +4 -0
- package/extensions/ublock/_locales/en_GB/messages.json +4 -0
- package/extensions/ublock/_locales/eo/messages.json +9 -5
- package/extensions/ublock/_locales/es/messages.json +4 -0
- package/extensions/ublock/_locales/et/messages.json +4 -0
- package/extensions/ublock/_locales/eu/messages.json +8 -4
- package/extensions/ublock/_locales/fa/messages.json +4 -0
- package/extensions/ublock/_locales/fi/messages.json +4 -0
- package/extensions/ublock/_locales/fil/messages.json +4 -0
- package/extensions/ublock/_locales/fr/messages.json +4 -0
- package/extensions/ublock/_locales/fy/messages.json +4 -0
- package/extensions/ublock/_locales/gl/messages.json +4 -0
- package/extensions/ublock/_locales/gu/messages.json +4 -0
- package/extensions/ublock/_locales/he/messages.json +4 -0
- package/extensions/ublock/_locales/hi/messages.json +4 -0
- package/extensions/ublock/_locales/hr/messages.json +4 -0
- package/extensions/ublock/_locales/hu/messages.json +4 -0
- package/extensions/ublock/_locales/hy/messages.json +4 -0
- package/extensions/ublock/_locales/id/messages.json +5 -1
- package/extensions/ublock/_locales/it/messages.json +4 -0
- package/extensions/ublock/_locales/ja/messages.json +4 -0
- package/extensions/ublock/_locales/ka/messages.json +34 -30
- package/extensions/ublock/_locales/kk/messages.json +4 -0
- package/extensions/ublock/_locales/kn/messages.json +4 -0
- package/extensions/ublock/_locales/ko/messages.json +4 -0
- package/extensions/ublock/_locales/ku/messages.json +4 -0
- package/extensions/ublock/_locales/lt/messages.json +4 -0
- package/extensions/ublock/_locales/lv/messages.json +4 -0
- package/extensions/ublock/_locales/mk/messages.json +4 -0
- package/extensions/ublock/_locales/ml/messages.json +4 -0
- package/extensions/ublock/_locales/mr/messages.json +4 -0
- package/extensions/ublock/_locales/ms/messages.json +13 -9
- package/extensions/ublock/_locales/nb/messages.json +4 -0
- package/extensions/ublock/_locales/nl/messages.json +4 -0
- package/extensions/ublock/_locales/no/messages.json +4 -0
- package/extensions/ublock/_locales/oc/messages.json +4 -0
- package/extensions/ublock/_locales/pa/messages.json +4 -0
- package/extensions/ublock/_locales/pl/messages.json +5 -1
- package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
- package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
- package/extensions/ublock/_locales/ro/messages.json +5 -1
- package/extensions/ublock/_locales/ru/messages.json +4 -0
- package/extensions/ublock/_locales/si/messages.json +4 -0
- package/extensions/ublock/_locales/sk/messages.json +4 -0
- package/extensions/ublock/_locales/sl/messages.json +4 -0
- package/extensions/ublock/_locales/so/messages.json +4 -0
- package/extensions/ublock/_locales/sq/messages.json +4 -0
- package/extensions/ublock/_locales/sr/messages.json +4 -0
- package/extensions/ublock/_locales/sv/messages.json +4 -0
- package/extensions/ublock/_locales/sw/messages.json +4 -0
- package/extensions/ublock/_locales/ta/messages.json +4 -0
- package/extensions/ublock/_locales/te/messages.json +4 -0
- package/extensions/ublock/_locales/th/messages.json +12 -8
- package/extensions/ublock/_locales/tr/messages.json +4 -0
- package/extensions/ublock/_locales/uk/messages.json +4 -0
- package/extensions/ublock/_locales/ur/messages.json +4 -0
- package/extensions/ublock/_locales/vi/messages.json +4 -0
- package/extensions/ublock/_locales/zh_CN/messages.json +6 -2
- package/extensions/ublock/_locales/zh_TW/messages.json +6 -2
- package/extensions/ublock/assets/assets.json +11 -11
- package/extensions/ublock/assets/resources/scriptlets.js +660 -378
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +7173 -3455
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +18829 -1918
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +21 -26
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +118 -46
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +710 -1117
- package/extensions/ublock/assets/ublock/badlists.txt +0 -4
- package/extensions/ublock/assets/ublock/badware.min.txt +116 -105
- package/extensions/ublock/assets/ublock/filters.min.txt +1443 -1097
- package/extensions/ublock/assets/ublock/privacy.min.txt +50 -31
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +97 -108
- package/extensions/ublock/assets/ublock/unbreak.min.txt +64 -21
- package/extensions/ublock/css/1p-filters.css +4 -0
- package/extensions/ublock/css/3p-filters.css +6 -4
- package/extensions/ublock/css/common.css +1 -1
- package/extensions/ublock/css/fa-icons.css +1 -0
- package/extensions/ublock/css/logger-ui.css +72 -52
- package/extensions/ublock/css/popup-fenix.css +1 -1
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/3p-filters.js +3 -3
- package/extensions/ublock/js/assets.js +7 -4
- package/extensions/ublock/js/background.js +1 -3
- package/extensions/ublock/js/benchmarks.js +1 -0
- package/extensions/ublock/js/broadcast.js +12 -0
- package/extensions/ublock/js/click2load.js +2 -3
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1 -0
- package/extensions/ublock/js/commands.js +10 -0
- package/extensions/ublock/js/contentscript-extra.js +13 -11
- package/extensions/ublock/js/contentscript.js +0 -31
- package/extensions/ublock/js/contextmenu.js +5 -1
- package/extensions/ublock/js/dyna-rules.js +83 -52
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/filtering-context.js +0 -2
- package/extensions/ublock/js/i18n.js +1 -5
- package/extensions/ublock/js/logger-ui.js +71 -38
- package/extensions/ublock/js/logger.js +18 -14
- package/extensions/ublock/js/messaging.js +17 -5
- package/extensions/ublock/js/popup-fenix.js +6 -6
- package/extensions/ublock/js/scriptlet-filtering-core.js +14 -12
- package/extensions/ublock/js/scriptlet-filtering.js +149 -53
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-1.js +49 -0
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-2.js +49 -0
- package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -1
- package/extensions/ublock/js/static-dnr-filtering.js +4 -2
- package/extensions/ublock/js/static-filtering-parser.js +14 -8
- package/extensions/ublock/js/static-net-filtering.js +32 -30
- package/extensions/ublock/js/storage.js +18 -4
- package/extensions/ublock/js/traffic.js +3 -3
- package/extensions/ublock/js/ublock.js +1 -1
- package/extensions/ublock/js/vapi-background.js +15 -7
- package/extensions/ublock/logger-ui.html +18 -10
- package/extensions/ublock/manifest.json +4 -1
- package/extensions/ublock/web_accessible_resources/chartbeat.js +3 -0
- package/package.json +12 -11
- package/scripts/build-function.js +1 -1
- package/scripts/build-open-api.js +3 -2
- package/scripts/clean.js +6 -1
- package/scripts/install-debugger.js +20 -0
- package/scripts/install-devtools.js +40 -0
- package/src/browserless.ts +11 -9
- package/src/browsers/chrome.cdp.ts +10 -0
- package/src/browsers/chrome.playwright.ts +10 -0
- package/src/browsers/{cdp-chromium.ts → chromium.cdp.ts} +20 -13
- package/src/browsers/{playwright-chromium.ts → chromium.playwright.ts} +7 -6
- package/src/browsers/{playwright-firefox.ts → firefox.playwright.ts} +5 -5
- package/src/browsers/index.ts +160 -23
- package/src/browsers/{playwright-webkit.ts → webkit.playwright.ts} +5 -5
- package/src/exports.ts +6 -4
- package/src/http.ts +21 -0
- package/src/router.ts +21 -5
- package/src/routes/chrome/http/content.post.ts +14 -0
- package/src/routes/chrome/http/download.post.ts +14 -0
- package/src/routes/chrome/http/function.post.ts +14 -0
- package/src/routes/chrome/http/json-list.get.ts +1 -0
- package/src/routes/chrome/http/json-new.put.ts +1 -0
- package/src/routes/chrome/http/json-protocol.get.ts +1 -0
- package/src/routes/chrome/http/json-version.get.ts +1 -0
- package/src/routes/chrome/http/pdf.post.ts +14 -0
- package/src/routes/chrome/http/performance.post.ts +14 -0
- package/src/routes/chrome/http/scrape.post.ts +14 -0
- package/src/routes/chrome/http/screenshot.post.ts +14 -0
- package/src/routes/chrome/tests/content.spec.ts +375 -0
- package/src/routes/chrome/tests/download.spec.ts +77 -0
- package/src/routes/chrome/tests/function.spec.ts +282 -0
- package/src/routes/chrome/tests/json-version.spec.ts +52 -0
- package/src/routes/chrome/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chrome/tests/pdf.spec.ts +380 -0
- package/src/routes/chrome/tests/performance.spec.ts +155 -0
- package/src/routes/chrome/tests/scrape.spec.ts +417 -0
- package/src/routes/chrome/tests/screenshot.spec.ts +387 -0
- package/src/routes/chrome/tests/websocket.spec.ts +491 -0
- package/src/routes/chrome/ws/browser.ts +8 -0
- package/src/routes/chrome/ws/cdp.ts +12 -0
- package/src/routes/chrome/ws/page.ts +8 -0
- package/src/routes/chrome/ws/playwright.ts +12 -0
- package/src/routes/chromium/http/content.post.ts +6 -0
- package/src/routes/chromium/http/download.post.ts +6 -0
- package/src/routes/chromium/http/function.post.ts +6 -0
- package/src/routes/chromium/http/json-list.get.ts +1 -0
- package/src/routes/chromium/http/json-new.put.ts +1 -0
- package/src/routes/chromium/http/json-protocol.get.ts +1 -0
- package/src/routes/chromium/http/json-version.get.ts +1 -0
- package/src/routes/chromium/http/pdf.post.ts +6 -0
- package/src/routes/chromium/http/performance.post.ts +6 -0
- package/src/routes/chromium/http/scrape.post.ts +6 -0
- package/src/routes/chromium/http/screenshot.post.ts +6 -0
- package/src/routes/chromium/tests/content.spec.ts +36 -28
- package/src/routes/chromium/tests/download.spec.ts +3 -3
- package/src/routes/chromium/tests/function.spec.ts +18 -15
- package/src/routes/chromium/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chromium/tests/pdf.spec.ts +31 -26
- package/src/routes/chromium/tests/performance.spec.ts +46 -34
- package/src/routes/chromium/tests/scrape.spec.ts +23 -20
- package/src/routes/chromium/tests/screenshot.spec.ts +24 -24
- package/src/routes/chromium/tests/websocket.spec.ts +31 -40
- package/src/routes/chromium/ws/browser.ts +1 -29
- package/src/routes/chromium/ws/cdp.ts +1 -0
- package/src/routes/chromium/ws/page.ts +1 -29
- package/src/routes/chromium/ws/playwright.ts +4 -0
- package/src/routes/firefox/ws/{playwright-firefox.ts → playwright.ts} +5 -5
- package/src/routes/management/http/{static-get.ts → static.get.ts} +2 -2
- package/src/routes/webkit/ws/{playwright-webkit.ts → playwright.ts} +5 -5
- package/src/shared/browser.ws.ts +34 -0
- package/src/{routes/chromium/ws/playwright-chromium.ts → shared/chromium.playwright.ws.ts} +7 -4
- package/src/{routes/chromium/ws/cdp-chromium.ts → shared/chromium.ws.ts} +6 -6
- package/src/{routes/chromium/http/content-post.ts → shared/content.http.ts} +4 -4
- package/src/{routes/chromium/http/download-post.ts → shared/download.http.ts} +4 -4
- package/src/{routes/chromium/http/function-post.ts → shared/function.http.ts} +4 -4
- package/src/shared/json-list.http.ts +35 -0
- package/src/{routes/chromium/http/json-new.ts → shared/json-new.http.ts} +23 -7
- package/src/{routes/chromium/http/json-protocol-get.ts → shared/json-protocol.http.ts} +3 -5
- package/src/{routes/chromium/http/json-version-get.ts → shared/json-version.http.ts} +4 -5
- package/src/shared/page.ws.ts +35 -0
- package/src/{routes/chromium/http/pdf-post.ts → shared/pdf.http.ts} +4 -4
- package/src/{routes/chromium/http/performance.ts → shared/performance.http.ts} +4 -4
- package/src/{routes/chromium/http/scrape-post.ts → shared/scrape.http.ts} +4 -4
- package/src/{routes/chromium/http/screenshot-post.ts → shared/screenshot.http.ts} +4 -4
- package/src/{routes/chromium → shared}/utils/function/handler.ts +2 -2
- package/src/{routes/chromium → shared}/utils/performance/main.ts +1 -2
- package/src/shim.ts +2 -1
- package/src/types.ts +27 -20
- package/src/utils.ts +32 -14
- package/static/devtools/Images/accelerometer-back.svg +1 -0
- package/static/devtools/Images/accelerometer-bottom.png +0 -0
- package/static/devtools/Images/accelerometer-front.svg +1 -0
- package/static/devtools/Images/accelerometer-left.png +0 -0
- package/static/devtools/Images/accelerometer-right.png +0 -0
- package/static/devtools/Images/accelerometer-top.png +0 -0
- package/static/devtools/Images/baseline-icon.svg +1 -0
- package/static/devtools/Images/breaking_change_icon.svg +1 -0
- package/static/devtools/Images/checkboxCheckmark.svg +1 -0
- package/static/devtools/Images/checker.png +0 -0
- package/static/devtools/Images/chevrons.svg +1 -0
- package/static/devtools/Images/chromeDisabledSelect.png +0 -0
- package/static/devtools/Images/chromeDisabledSelect_2x.png +0 -0
- package/static/devtools/Images/chromeLeft.avif +0 -0
- package/static/devtools/Images/chromeMiddle.avif +0 -0
- package/static/devtools/Images/chromeRight.avif +0 -0
- package/static/devtools/Images/chromeSelect.svg +1 -0
- package/static/devtools/Images/chromeSelectDark.svg +1 -0
- package/static/devtools/Images/cssoverview_icons_2x.avif +0 -0
- package/static/devtools/Images/dropdown_7x6_icon.svg +1 -0
- package/static/devtools/Images/elements_panel_icon.svg +1 -0
- package/static/devtools/Images/errorWave.svg +1 -0
- package/static/devtools/Images/error_icon.svg +1 -0
- package/static/devtools/Images/feedback_thin_16x16_icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-direction-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/ic_checkmark_16x16.svg +3 -0
- package/static/devtools/Images/ic_delete_filter.svg +1 -0
- package/static/devtools/Images/ic_delete_list.svg +1 -0
- package/static/devtools/Images/ic_info_black_18dp.svg +1 -0
- package/static/devtools/Images/ic_page_next_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_page_prev_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_redo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_show_node_16x16.svg +4 -0
- package/static/devtools/Images/ic_suggest_color.svg +6 -0
- package/static/devtools/Images/ic_undo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_warning_black_18dp.svg +1 -0
- package/static/devtools/Images/issue-text-icon.svg +1 -0
- package/static/devtools/Images/largeIcons.svg +1 -0
- package/static/devtools/Images/lighthouse_logo.svg +1 -0
- package/static/devtools/Images/link_icon.svg +1 -0
- package/static/devtools/Images/mediumIcons.svg +1 -0
- package/static/devtools/Images/navigationControls.png +0 -0
- package/static/devtools/Images/navigationControls_2x.png +0 -0
- package/static/devtools/Images/network_panel_icon.svg +1 -0
- package/static/devtools/Images/nodeIcon.avif +0 -0
- package/static/devtools/Images/node_search_icon.svg +1 -0
- package/static/devtools/Images/popoverArrows.png +0 -0
- package/static/devtools/Images/profileGroupIcon.png +0 -0
- package/static/devtools/Images/profileIcon.png +0 -0
- package/static/devtools/Images/profileSmallIcon.png +0 -0
- package/static/devtools/Images/radioDot-dark-theme.png +0 -0
- package/static/devtools/Images/radioDot.png +0 -0
- package/static/devtools/Images/refresh_12x12_icon.svg +1 -0
- package/static/devtools/Images/resizeDiagonal.svg +1 -0
- package/static/devtools/Images/resizeHorizontal.svg +1 -0
- package/static/devtools/Images/resizeVertical.svg +1 -0
- package/static/devtools/Images/resourceCSSIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIconSmall.png +0 -0
- package/static/devtools/Images/resourceJSIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIconSmall.png +0 -0
- package/static/devtools/Images/resourcesTimeGraphIcon.avif +0 -0
- package/static/devtools/Images/searchNext.png +0 -0
- package/static/devtools/Images/searchPrev.png +0 -0
- package/static/devtools/Images/securityIcons.svg +1 -0
- package/static/devtools/Images/settings_14x14_icon.svg +1 -0
- package/static/devtools/Images/smallIcons.svg +1 -0
- package/static/devtools/Images/sources_panel_icon.svg +1 -0
- package/static/devtools/Images/speech.png +0 -0
- package/static/devtools/Images/toolbarResizerVertical.png +0 -0
- package/static/devtools/Images/touchCursor.png +0 -0
- package/static/devtools/Images/touchCursor_2x.png +0 -0
- package/static/devtools/Images/treeoutlineTriangles.svg +1 -0
- package/static/devtools/Images/warning_icon.svg +1 -0
- package/static/devtools/Images/whatsnew.avif +0 -0
- package/static/devtools/Tests.js +1654 -0
- package/static/devtools/accessibility/accessibility-legacy.js +1 -0
- package/static/devtools/accessibility/accessibility-meta.js +1 -0
- package/static/devtools/accessibility/accessibility.js +1 -0
- package/static/devtools/accessibility/accessibility_module.js +1 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner.js +77 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner_module.js +0 -0
- package/static/devtools/animation/animation-legacy.js +1 -0
- package/static/devtools/animation/animation-meta.js +1 -0
- package/static/devtools/animation/animation.js +1 -0
- package/static/devtools/animation/animation_module.js +1 -0
- package/static/devtools/application_test_runner/AppcacheTestRunner.js +220 -0
- package/static/devtools/application_test_runner/CacheStorageTestRunner.js +286 -0
- package/static/devtools/application_test_runner/IndexedDBTestRunner.js +476 -0
- package/static/devtools/application_test_runner/ResourceTreeTestRunner.js +99 -0
- package/static/devtools/application_test_runner/ResourcesTestRunner.js +167 -0
- package/static/devtools/application_test_runner/ServiceWorkersTestRunner.js +131 -0
- package/static/devtools/application_test_runner/application_test_runner.js +10 -0
- package/static/devtools/application_test_runner/application_test_runner_module.js +0 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner.js +174 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner_module.js +0 -0
- package/static/devtools/bindings/bindings-legacy.js +1 -0
- package/static/devtools/bindings/bindings.js +1 -0
- package/static/devtools/bindings_test_runner/AutomappingTestRunner.js +130 -0
- package/static/devtools/bindings_test_runner/BindingsTestRunner.js +238 -0
- package/static/devtools/bindings_test_runner/IsolatedFilesystemTestRunner.js +287 -0
- package/static/devtools/bindings_test_runner/OverridesTestRunner.js +26 -0
- package/static/devtools/bindings_test_runner/PersistenceTestRunner.js +109 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner.js +9 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner_module.js +0 -0
- package/static/devtools/browser_debugger/browser_debugger-legacy.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger-meta.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger_module.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk-meta.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk.js +1 -0
- package/static/devtools/changes/changes-legacy.js +1 -0
- package/static/devtools/changes/changes-meta.js +1 -0
- package/static/devtools/changes/changes.js +1 -0
- package/static/devtools/changes/changes_module.js +1 -0
- package/static/devtools/client_variations/client_variations.js +1 -0
- package/static/devtools/client_variations/client_variations_module.js +0 -0
- package/static/devtools/cm/cm.js +1 -0
- package/static/devtools/cm/cm_module.js +1 -0
- package/static/devtools/cm_headless/cm_headless.js +1 -0
- package/static/devtools/color_picker/color_picker-legacy.js +1 -0
- package/static/devtools/color_picker/color_picker.js +1 -0
- package/static/devtools/color_picker/color_picker_module.js +1 -0
- package/static/devtools/common/common-legacy.js +1 -0
- package/static/devtools/common/common.js +1 -0
- package/static/devtools/component_helpers/component_helpers.js +1 -0
- package/static/devtools/components/components-legacy.js +1 -0
- package/static/devtools/components/components.js +1 -0
- package/static/devtools/console/console-legacy.js +1 -0
- package/static/devtools/console/console-meta.js +1 -0
- package/static/devtools/console/console.js +6 -0
- package/static/devtools/console/console_module.js +1 -0
- package/static/devtools/console_counters/console_counters-legacy.js +1 -0
- package/static/devtools/console_counters/console_counters.js +1 -0
- package/static/devtools/console_test_runner/console_test_runner.js +696 -0
- package/static/devtools/console_test_runner/console_test_runner_module.js +0 -0
- package/static/devtools/cookie_table/cookie_table-legacy.js +1 -0
- package/static/devtools/cookie_table/cookie_table.js +1 -0
- package/static/devtools/cookie_table/cookie_table_module.js +1 -0
- package/static/devtools/coverage/coverage-legacy.js +1 -0
- package/static/devtools/coverage/coverage-meta.js +1 -0
- package/static/devtools/coverage/coverage.js +1 -0
- package/static/devtools/coverage/coverage_module.js +1 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner.js +151 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner_module.js +0 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner.js +72 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js +0 -0
- package/static/devtools/css_overview/css_overview-meta.js +1 -0
- package/static/devtools/css_overview/css_overview.js +146 -0
- package/static/devtools/css_overview/css_overview_module.js +1 -0
- package/static/devtools/data_grid/data_grid-legacy.js +1 -0
- package/static/devtools/data_grid/data_grid.js +1 -0
- package/static/devtools/data_grid/data_grid_module.js +1 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner.js +78 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner_module.js +0 -0
- package/static/devtools/developer_resources/developer_resources-legacy.js +1 -0
- package/static/devtools/developer_resources/developer_resources-meta.js +1 -0
- package/static/devtools/developer_resources/developer_resources.js +1 -0
- package/static/devtools/developer_resources/developer_resources_module.js +1 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner.js +45 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner_module.js +0 -0
- package/static/devtools/devtools_app.html +20 -0
- package/static/devtools/devtools_app.js +1 -0
- package/static/devtools/devtools_compatibility.js +1546 -0
- package/static/devtools/diff/diff-legacy.js +1 -0
- package/static/devtools/diff/diff.js +1 -0
- package/static/devtools/diff/diff_module.js +0 -0
- package/static/devtools/dom_extension/dom_extension.js +1 -0
- package/static/devtools/elements/elements-legacy.js +1 -0
- package/static/devtools/elements/elements-meta.js +1 -0
- package/static/devtools/elements/elements.js +469 -0
- package/static/devtools/elements/elements_module.js +1 -0
- package/static/devtools/elements_test_runner/EditDOMTestRunner.js +78 -0
- package/static/devtools/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +39 -0
- package/static/devtools/elements_test_runner/ElementsTestRunner.js +1280 -0
- package/static/devtools/elements_test_runner/SetOuterHTMLTestRunner.js +115 -0
- package/static/devtools/elements_test_runner/StylesUpdateLinksTestRunner.js +134 -0
- package/static/devtools/elements_test_runner/elements_test_runner.js +9 -0
- package/static/devtools/elements_test_runner/elements_test_runner_module.js +0 -0
- package/static/devtools/emulated_devices/emulated_devices_module.js +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/static/devtools/emulation/emulation-legacy.js +1 -0
- package/static/devtools/emulation/emulation-meta.js +1 -0
- package/static/devtools/emulation/emulation.js +1 -0
- package/static/devtools/event_listeners/event_listeners-legacy.js +1 -0
- package/static/devtools/event_listeners/event_listeners.js +1 -0
- package/static/devtools/event_listeners/event_listeners_module.js +1 -0
- package/static/devtools/extensions/extensions-legacy.js +1 -0
- package/static/devtools/extensions/extensions.js +1 -0
- package/static/devtools/extensions_test_runner/ExtensionsNetworkTestRunner.js +27 -0
- package/static/devtools/extensions_test_runner/ExtensionsTestRunner.js +68 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner.js +6 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner_module.js +0 -0
- package/static/devtools/formatter/formatter-legacy.js +1 -0
- package/static/devtools/formatter/formatter.js +1 -0
- package/static/devtools/formatter/formatter_module.js +0 -0
- package/static/devtools/formatter_worker/FormatterActions.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker.js +1 -0
- package/static/devtools/har_importer/har_importer-legacy.js +1 -0
- package/static/devtools/har_importer/har_importer.js +1 -0
- package/static/devtools/har_importer/har_importer_module.js +0 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner.js +740 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner_module.js +0 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model_module.js +0 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker_module.js +0 -0
- package/static/devtools/help/help-legacy.js +1 -0
- package/static/devtools/help/help-meta.js +1 -0
- package/static/devtools/help/help.js +1 -0
- package/static/devtools/help/help_module.js +1 -0
- package/static/devtools/host/host-legacy.js +1 -0
- package/static/devtools/host/host.js +1 -0
- package/static/devtools/i18n/i18n.js +1 -0
- package/static/devtools/i18n/i18n_locales-tsconfig.json +8 -0
- package/static/devtools/i18n/locales/en-US.json +3566 -0
- package/static/devtools/inline_editor/inline_editor-legacy.js +1 -0
- package/static/devtools/inline_editor/inline_editor.js +203 -0
- package/static/devtools/inline_editor/inline_editor_module.js +1 -0
- package/static/devtools/input/input-legacy.js +1 -0
- package/static/devtools/input/input-meta.js +1 -0
- package/static/devtools/input/input.js +1 -0
- package/static/devtools/input/input_module.js +1 -0
- package/static/devtools/inspector.html +20 -0
- package/static/devtools/inspector.js +1 -0
- package/static/devtools/inspector_main/inspector_main-legacy.js +1 -0
- package/static/devtools/inspector_main/inspector_main-meta.js +1 -0
- package/static/devtools/inspector_main/inspector_main.js +1 -0
- package/static/devtools/integration_test_runner.html +14 -0
- package/static/devtools/integration_test_runner.js +2 -0
- package/static/devtools/issues/issues-legacy.js +1 -0
- package/static/devtools/issues/issues-meta.js +1 -0
- package/static/devtools/issues/issues.js +67 -0
- package/static/devtools/issues/issues_module.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata-legacy.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata_module.js +0 -0
- package/static/devtools/js_app.html +20 -0
- package/static/devtools/js_app.js +1 -0
- package/static/devtools/js_main/js_main-legacy.js +1 -0
- package/static/devtools/js_main/js_main.js +1 -0
- package/static/devtools/js_profiler/js_profiler-meta.js +1 -0
- package/static/devtools/js_profiler/js_profiler.js +1 -0
- package/static/devtools/js_profiler/js_profiler_module.js +0 -0
- package/static/devtools/layer_viewer/layer_viewer-legacy.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer_module.js +1 -0
- package/static/devtools/layers/layers-legacy.js +1 -0
- package/static/devtools/layers/layers-meta.js +1 -0
- package/static/devtools/layers/layers.js +1 -0
- package/static/devtools/layers/layers_module.js +0 -0
- package/static/devtools/layers_test_runner/layers_test_runner.js +156 -0
- package/static/devtools/layers_test_runner/layers_test_runner_module.js +0 -0
- package/static/devtools/lighthouse/lighthouse-legacy.js +1 -0
- package/static/devtools/lighthouse/lighthouse-meta.js +1 -0
- package/static/devtools/lighthouse/lighthouse.js +70 -0
- package/static/devtools/lighthouse/lighthouse_module.js +1 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner.js +136 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner_module.js +0 -0
- package/static/devtools/lighthouse_worker/LighthouseService.js +195 -0
- package/static/devtools/lighthouse_worker/lighthouse_worker.js +6 -0
- package/static/devtools/lighthouse_worker.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-legacy.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector.js +399 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector_module.js +0 -0
- package/static/devtools/main/main-legacy.js +1 -0
- package/static/devtools/main/main.js +1 -0
- package/static/devtools/media/media-legacy.js +1 -0
- package/static/devtools/media/media-meta.js +1 -0
- package/static/devtools/media/media.js +1 -0
- package/static/devtools/media/media_module.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-legacy.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling.js +1 -0
- package/static/devtools/ndb_app.html +20 -0
- package/static/devtools/ndb_app.js +1 -0
- package/static/devtools/network/network-legacy.js +1 -0
- package/static/devtools/network/network-meta.js +1 -0
- package/static/devtools/network/network.js +72 -0
- package/static/devtools/network/network_module.js +1 -0
- package/static/devtools/network_test_runner/network_test_runner.js +280 -0
- package/static/devtools/network_test_runner/network_test_runner_module.js +0 -0
- package/static/devtools/node_app.html +20 -0
- package/static/devtools/node_app.js +1 -0
- package/static/devtools/node_debugger/node_debugger-meta.js +1 -0
- package/static/devtools/node_debugger/node_debugger.js +1 -0
- package/static/devtools/node_debugger/node_debugger_module.js +0 -0
- package/static/devtools/node_main/node_main-legacy.js +1 -0
- package/static/devtools/node_main/node_main-meta.js +1 -0
- package/static/devtools/node_main/node_main.js +1 -0
- package/static/devtools/object_ui/object_ui-legacy.js +1 -0
- package/static/devtools/object_ui/object_ui.js +3 -0
- package/static/devtools/object_ui/object_ui_module.js +1 -0
- package/static/devtools/perf_ui/perf_ui-legacy.js +1 -0
- package/static/devtools/perf_ui/perf_ui.js +152 -0
- package/static/devtools/perf_ui/perf_ui_module.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-legacy.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-meta.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor_module.js +1 -0
- package/static/devtools/performance_test_runner/TimelineDataTestRunner.js +5375 -0
- package/static/devtools/performance_test_runner/TimelineTestRunner.js +446 -0
- package/static/devtools/performance_test_runner/performance_test_runner.js +6 -0
- package/static/devtools/performance_test_runner/performance_test_runner_module.js +0 -0
- package/static/devtools/persistence/persistence-legacy.js +1 -0
- package/static/devtools/persistence/persistence-meta.js +1 -0
- package/static/devtools/persistence/persistence.js +1 -0
- package/static/devtools/platform/platform.js +1 -0
- package/static/devtools/profiler/profiler-legacy.js +1 -0
- package/static/devtools/profiler/profiler-meta.js +1 -0
- package/static/devtools/profiler/profiler.js +8 -0
- package/static/devtools/profiler/profiler_module.js +1 -0
- package/static/devtools/protocol_client/protocol_client-legacy.js +1 -0
- package/static/devtools/protocol_client/protocol_client.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-legacy.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor_module.js +1 -0
- package/static/devtools/quick_open/quick_open-legacy.js +1 -0
- package/static/devtools/quick_open/quick_open.js +1 -0
- package/static/devtools/quick_open/quick_open_module.js +1 -0
- package/static/devtools/recorder/recorder.js +1 -0
- package/static/devtools/resources/resources-legacy.js +1 -0
- package/static/devtools/resources/resources-meta.js +1 -0
- package/static/devtools/resources/resources.js +28 -0
- package/static/devtools/resources/resources_module.js +1 -0
- package/static/devtools/root/root-legacy.js +1 -0
- package/static/devtools/root/root.js +1 -0
- package/static/devtools/screencast/screencast-legacy.js +1 -0
- package/static/devtools/screencast/screencast.js +1 -0
- package/static/devtools/sdk/sdk-legacy.js +1 -0
- package/static/devtools/sdk/sdk.js +2 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner.js +297 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner_module.js +0 -0
- package/static/devtools/search/search-legacy.js +1 -0
- package/static/devtools/search/search.js +1 -0
- package/static/devtools/search/search_module.js +1 -0
- package/static/devtools/security/security-legacy.js +1 -0
- package/static/devtools/security/security-meta.js +1 -0
- package/static/devtools/security/security.js +1 -0
- package/static/devtools/security/security_module.js +1 -0
- package/static/devtools/security_test_runner/security_test_runner.js +32 -0
- package/static/devtools/security_test_runner/security_test_runner_module.js +0 -0
- package/static/devtools/services/services-legacy.js +1 -0
- package/static/devtools/services/services.js +1 -0
- package/static/devtools/settings/settings-legacy.js +1 -0
- package/static/devtools/settings/settings-meta.js +1 -0
- package/static/devtools/settings/settings.js +1 -0
- package/static/devtools/settings/settings_module.js +1 -0
- package/static/devtools/shell.js +1 -0
- package/static/devtools/snippets/snippets-legacy.js +1 -0
- package/static/devtools/snippets/snippets.js +1 -0
- package/static/devtools/snippets/snippets_module.js +0 -0
- package/static/devtools/source_frame/source_frame-legacy.js +1 -0
- package/static/devtools/source_frame/source_frame.js +1 -0
- package/static/devtools/source_frame/source_frame_module.js +1 -0
- package/static/devtools/sources/sources-legacy.js +1 -0
- package/static/devtools/sources/sources-meta.js +1 -0
- package/static/devtools/sources/sources.js +13 -0
- package/static/devtools/sources/sources_module.js +1 -0
- package/static/devtools/sources_test_runner/AutocompleteTestRunner.js +46 -0
- package/static/devtools/sources_test_runner/DebuggerTestRunner.js +895 -0
- package/static/devtools/sources_test_runner/EditorTestRunner.js +237 -0
- package/static/devtools/sources_test_runner/LiveEditTestRunner.js +33 -0
- package/static/devtools/sources_test_runner/SearchTestRunner.js +158 -0
- package/static/devtools/sources_test_runner/SourcesTestRunner.js +173 -0
- package/static/devtools/sources_test_runner/sources_test_runner.js +10 -0
- package/static/devtools/sources_test_runner/sources_test_runner_module.js +0 -0
- package/static/devtools/startup/startup.js +1 -0
- package/static/devtools/test_runner/test_runner.js +1 -0
- package/static/devtools/text_editor/text_editor-legacy.js +1 -0
- package/static/devtools/text_editor/text_editor.js +1 -0
- package/static/devtools/text_editor/text_editor_module.js +1 -0
- package/static/devtools/text_utils/text_utils-legacy.js +1 -0
- package/static/devtools/text_utils/text_utils.js +1 -0
- package/static/devtools/theme_support/theme_support.js +1 -0
- package/static/devtools/third_party/acorn/acorn-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn/acorn.js +1 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.d.ts +209 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs +5261 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.d.ts +2 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.map +1 -0
- package/static/devtools/third_party/acorn-loose/acorn-loose-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.d.ts +16 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.mjs +1418 -0
- package/static/devtools/third_party/axe-core/axe.js +16423 -0
- package/static/devtools/third_party/chromium/chromium-tsconfig.json +8 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.d.ts +13 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.js +27 -0
- package/static/devtools/third_party/codemirror/codemirror-tsconfig.json +72 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.js +211 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.js +201 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.js +158 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.js +105 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.js +157 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.js +163 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.js +131 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.js +90 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.js +216 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.js +333 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.js +72 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.js +119 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.js +9800 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.js +935 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.js +292 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.js +359 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.js +864 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.js +37 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.js +153 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.js +942 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.js +148 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.js +280 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.js +886 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.js +234 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.js +399 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.js +168 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.js +41 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.js +413 -0
- package/static/devtools/third_party/i18n/bundle-tsconfig.json +8 -0
- package/static/devtools/third_party/i18n/i18n.d.ts +108 -0
- package/static/devtools/third_party/i18n/i18n.js +4336 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.js +1140 -0
- package/static/devtools/third_party/lighthouse/lighthouse-tsconfig.json +10 -0
- package/static/devtools/third_party/lighthouse/locales/ar-XB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ar.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/bg.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ca.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/cs.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/da.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/de.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/el.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-GB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-US.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/en-XA.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-XL.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/es-419.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/es.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fil.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/he.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hu.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/id.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/it.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ja.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ko.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/nl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/no.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt-PT.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ro.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ru.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr-Latn.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ta.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/te.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/th.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/tr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/uk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/vi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-HK.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-TW.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh.json +2066 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.js +167 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.js +5032 -0
- package/static/devtools/third_party/lit-html/lit-html-tsconfig.json +22 -0
- package/static/devtools/third_party/lit-html/lit-html.js +120 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.d.ts +28 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js +101 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.d.ts +22 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js +37 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/live.d.ts +38 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js +73 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.d.ts +37 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js +415 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.d.ts +36 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js +78 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.d.ts +39 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js +52 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.d.ts +59 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js +63 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.d.ts +29 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js +44 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/part.d.ts +46 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js +23 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.d.ts +148 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js +476 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/render.d.ts +33 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js +43 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.d.ts +57 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js +48 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.d.ts +30 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js +134 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js +131 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template.d.ts +92 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js +215 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lit-html.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js +59 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js.map +1 -0
- package/static/devtools/third_party/marked/marked-tsconfig.json +8 -0
- package/static/devtools/third_party/marked/marked.js +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.d.ts +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.js +2584 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js +64 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +176 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +356 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +423 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +516 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +26 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +120 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +266 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +181 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +316 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +174 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +647 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +77 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +873 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +92 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +25 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +37 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +59 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts +89 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +82 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +83 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +189 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +313 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +735 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +962 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +276 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +421 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +128 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +150 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +322 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +463 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +439 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +724 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +62 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +80 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +262 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +152 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +910 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1343 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +135 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +133 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +157 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +98 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +137 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +28 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +43 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +47 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +94 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +102 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +20 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +288 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +132 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +468 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +197 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +42 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +469 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +29 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +156 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +183 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +151 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +23 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +19 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +53 -0
- package/static/devtools/third_party/puppeteer/puppeteer-tsconfig.json +58 -0
- package/static/devtools/third_party/puppeteer/puppeteer.js +1 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmDis.js +1595 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmParser.js +3120 -0
- package/static/devtools/third_party/wasmparser/wasmparser-tsconfig.json +9 -0
- package/static/devtools/timeline/timeline-legacy.js +1 -0
- package/static/devtools/timeline/timeline-meta.js +1 -0
- package/static/devtools/timeline/timeline.js +1 -0
- package/static/devtools/timeline/timeline_module.js +1 -0
- package/static/devtools/timeline_model/timeline_model-legacy.js +1 -0
- package/static/devtools/timeline_model/timeline_model.js +1 -0
- package/static/devtools/timeline_model/timeline_model_module.js +0 -0
- package/static/devtools/toolbox.html +20 -0
- package/static/devtools/toolbox.js +1 -0
- package/static/devtools/toolbox_bootstrap/toolbox_bootstrap.js +1 -0
- package/static/devtools/ui/components/components.js +378 -0
- package/static/devtools/ui/ui-legacy.js +1 -0
- package/static/devtools/ui/ui.js +3 -0
- package/static/devtools/ui/utils/utils.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker.js +1 -0
- package/static/devtools/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/static/devtools/web_audio/web_audio-legacy.js +1 -0
- package/static/devtools/web_audio/web_audio-meta.js +1 -0
- package/static/devtools/web_audio/web_audio.js +23 -0
- package/static/devtools/web_audio/web_audio_module.js +1 -0
- package/static/devtools/webauthn/webauthn-legacy.js +1 -0
- package/static/devtools/webauthn/webauthn-meta.js +1 -0
- package/static/devtools/webauthn/webauthn.js +6 -0
- package/static/devtools/webauthn/webauthn_module.js +1 -0
- package/static/devtools/worker_app.html +20 -0
- package/static/devtools/worker_app.js +1 -0
- package/static/devtools/worker_main/worker_main-legacy.js +1 -0
- package/static/devtools/worker_main/worker_main.js +1 -0
- package/static/devtools/worker_service/worker_service.js +1 -0
- package/static/devtools/workspace/workspace-legacy.js +1 -0
- package/static/devtools/workspace/workspace.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff-legacy.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff_module.js +0 -0
- package/static/docs/swagger.json +2337 -279
- package/static/function/client.js +1037 -992
- package/build/routes/chromium/http/json-new.js +0 -23
- package/build/routes/chromium/http/json-version-get.response.json +0 -37
- package/build/routes/chromium/utils/cdp.d.ts +0 -2
- package/build/routes/chromium/utils/cdp.js +0 -14
- package/build/routes/chromium/ws/cdp-chromium.js +0 -10
- package/src/routes/chromium/http/json-list.ts +0 -50
- package/src/routes/chromium/utils/cdp.ts +0 -19
- package/build/routes/{chromium/http/content-post.query.json → chrome/http/content.post.query.json} +0 -0
- package/build/routes/{chromium/http/content-post.response.json → chrome/http/content.post.response.json} +0 -0
- package/build/routes/{chromium/http/download-post.body.json → chrome/http/download.post.body.json} +0 -0
- package/build/routes/{chromium/http/download-post.query.json → chrome/http/download.post.query.json} +0 -0
- package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +0 -0
- package/build/routes/{chromium/http/function-post.body.json → chrome/http/function.post.body.json} +0 -0
- package/build/routes/{chromium/http/function-post.query.json → chrome/http/function.post.query.json} +0 -0
- package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +0 -0
- package/build/routes/{chromium/http/json-list.response.json → chrome/http/json-list.get.response.json} +0 -0
- package/build/routes/{chromium/http/json-new.response.json → chrome/http/json-new.put.response.json} +0 -0
- package/build/routes/{chromium/http/json-protocol-get.response.json → chrome/http/json-protocol.get.response.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.query.json → chrome/http/pdf.post.query.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.response.json → chrome/http/pdf.post.response.json} +0 -0
- package/build/routes/{chromium/http/performance.body.json → chrome/http/performance.post.body.json} +0 -0
- package/build/routes/{chromium/http/performance.query.json → chrome/http/performance.post.query.json} +0 -0
- package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.query.json → chrome/http/scrape.post.query.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.response.json → chrome/http/scrape.post.response.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.query.json → chrome/http/screenshot.post.query.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.response.json → chrome/http/screenshot.post.response.json} +0 -0
- package/build/routes/{chromium/utils/performance/child.d.ts → chrome/tests/content.spec.d.ts} +0 -0
- package/build/routes/{chromium/utils/performance/types.js → chrome/tests/download.spec.d.ts} +0 -0
- package/build/routes/{chromium/ws/cdp-chromium.query.json → chrome/ws/browser.query.json} +0 -0
- package/build/routes/{chromium/ws/playwright-chromium.query.json → chrome/ws/playwright.query.json} +0 -0
- package/build/routes/{firefox/ws/playwright-firefox.query.json → chromium/ws/playwright.query.json} +0 -0
- package/build/routes/{webkit/ws/playwright-webkit.query.json → firefox/ws/playwright.query.json} +0 -0
- package/build/routes/management/http/{config-get.d.ts → config.get.d.ts} +0 -0
- package/build/routes/management/http/{config-get.js → config.get.js} +0 -0
- package/build/routes/management/http/{config-get.response.json → config.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-total-get.d.ts → metrics-total.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-total-get.js → metrics-total.get.js} +0 -0
- package/build/routes/management/http/{metrics-total-get.response.json → metrics-total.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-get.d.ts → metrics.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-get.js → metrics.get.js} +0 -0
- package/build/routes/management/http/{metrics-get.response.json → metrics.get.response.json} +0 -0
- package/build/routes/management/http/{sessions-get.d.ts → sessions.get.d.ts} +0 -0
- package/build/routes/management/http/{sessions-get.js → sessions.get.js} +0 -0
- package/build/routes/management/http/{static-get.d.ts → static.get.d.ts} +0 -0
- package/build/{routes/chromium/http/json-protocol-get.d.ts → shared/json-protocol.http.d.ts} +1 -1
- package/build/{routes/chromium/http/json-version-get.d.ts → shared/json-version.http.d.ts} +1 -1
- /package/build/{routes/chromium → shared}/utils/function/client.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/client.js +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/child.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/main.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/types.d.ts +0 -0
- /package/src/routes/management/http/{config-get.ts → config.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-total-get.ts → metrics-total.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-get.ts → metrics.get.ts} +0 -0
- /package/src/routes/management/http/{sessions-get.ts → sessions.get.ts} +0 -0
- /package/src/{routes/chromium → shared}/utils/function/client.ts +0 -0
- /package/src/{routes/chromium → shared}/utils/performance/child.ts +0 -0
- /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
|
+
};
|
|
File without changes
|
|
@@ -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
|
+
};
|
|
File without changes
|
|
@@ -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;
|