@browserless.io/browserless 2.2.0-beta-8 → 2.3.0-beta-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -2
- package/bin/browserless.js +26 -15
- package/bin/scaffold/README.md +8 -7
- package/build/browserless.d.ts +6 -1
- package/build/browserless.js +45 -26
- 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.core.d.ts +24 -0
- package/build/exports.core.js +26 -0
- package/build/exports.d.ts +38 -22
- package/build/exports.js +44 -24
- package/build/hooks.d.ts +4 -5
- package/build/hooks.js +4 -6
- 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/{chromium/http/scrape-post.body.json → chrome/http/download.post.body.json} +9 -56
- package/build/routes/chrome/http/download.post.d.ts +7 -0
- package/build/routes/chrome/http/download.post.js +6 -0
- package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +1 -0
- package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/function.post.body.json} +9 -99
- package/build/routes/chrome/http/function.post.d.ts +7 -0
- package/build/routes/chrome/http/function.post.js +6 -0
- package/build/routes/{management/http/sessions-get.response.json → chrome/http/function.post.query.json} +26 -68
- package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +1 -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-list.get.response.json +4 -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-new.put.response.json +4 -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-protocol.get.response.json +4 -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 +4 -0
- package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +9 -153
- package/build/routes/chrome/http/pdf.post.d.ts +7 -0
- package/build/routes/chrome/http/pdf.post.js +6 -0
- package/build/routes/{chromium/http/download-post.query.json → chrome/http/pdf.post.query.json} +69 -6
- package/build/routes/chrome/http/performance.post.body.json +510 -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/chrome/http/performance.post.query.json +183 -0
- package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +1 -3
- package/build/routes/chrome/http/scrape.post.body.json +510 -0
- package/build/routes/chrome/http/scrape.post.d.ts +7 -0
- package/build/routes/chrome/http/scrape.post.js +6 -0
- package/build/routes/chrome/http/scrape.post.query.json +183 -0
- package/build/routes/chrome/http/scrape.post.response.json +5 -0
- package/build/routes/chrome/http/screenshot.post.body.json +510 -0
- 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/http/screenshot.post.query.json +183 -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/browser.query.json +183 -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 +183 -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 +183 -0
- package/build/routes/chrome/ws/playwright.d.ts +7 -0
- package/build/routes/chrome/ws/playwright.js +6 -0
- package/build/routes/chrome/ws/playwright.query.json +183 -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 +510 -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 +183 -0
- package/build/routes/chromium/http/download.post.response.json +5 -0
- package/build/routes/chromium/http/function.post.body.json +510 -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 +183 -0
- package/build/routes/chromium/http/function.post.response.json +5 -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 +4 -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 +4 -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 +4 -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 +4 -0
- package/build/routes/chromium/http/pdf.post.body.json +510 -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 +183 -0
- package/build/routes/chromium/http/pdf.post.response.json +5 -0
- package/build/routes/chromium/http/performance.post.body.json +510 -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 +183 -0
- package/build/routes/chromium/http/performance.post.response.json +5 -0
- package/build/routes/chromium/http/scrape.post.body.json +510 -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 +5 -0
- package/build/routes/chromium/http/screenshot.post.body.json +510 -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 +183 -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/browser.query.json +69 -6
- 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 +183 -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/page.query.json +69 -6
- package/build/routes/chromium/ws/playwright.d.ts +1 -0
- package/build/routes/chromium/ws/playwright.js +1 -0
- package/build/routes/chromium/ws/playwright.query.json +183 -0
- package/build/routes/firefox/ws/playwright.d.ts +20 -0
- package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
- package/build/routes/firefox/ws/playwright.query.json +183 -0
- package/build/routes/management/http/config.get.response.json +4 -0
- package/build/routes/management/http/metrics-total.get.response.json +4 -0
- package/build/routes/management/http/metrics.get.response.json +4 -0
- package/build/routes/management/http/sessions.get.response.json +4 -0
- package/build/routes/management/http/{static-get.js → static.get.js} +9 -9
- 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 +183 -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 +2 -2
- 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 +6 -4
- package/docker/chromium/.dockerignore +16 -0
- package/docker/chromium/Dockerfile +42 -0
- package/docker/firefox/Dockerfile +3 -1
- package/docker/multi/Dockerfile +15 -1
- package/docker/webkit/Dockerfile +3 -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 -12
- package/scripts/build-function.js +1 -1
- package/scripts/build-open-api.js +21 -11
- package/scripts/build-schemas.js +2 -3
- package/scripts/clean.js +6 -1
- package/scripts/install-debugger.js +20 -0
- package/scripts/install-devtools.js +40 -0
- package/src/browserless.ts +72 -45
- 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.core.ts +26 -0
- package/src/exports.ts +48 -24
- package/src/hooks.ts +4 -12
- package/src/http.ts +21 -0
- package/src/router.ts +25 -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} +8 -6
- package/src/routes/management/http/{static-get.ts → static.get.ts} +15 -10
- 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 +2 -4
- 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 +3294 -2185
- package/static/function/client.js +1037 -992
- package/build/routes/chromium/http/download-post.body.json +0 -32
- package/build/routes/chromium/http/function-post.body.json +0 -32
- package/build/routes/chromium/http/function-post.query.json +0 -120
- package/build/routes/chromium/http/json-list.response.json +0 -52
- package/build/routes/chromium/http/json-new.js +0 -23
- package/build/routes/chromium/http/json-new.response.json +0 -44
- package/build/routes/chromium/http/json-protocol-get.response.json +0 -6
- package/build/routes/chromium/http/json-version-get.response.json +0 -37
- package/build/routes/chromium/http/pdf-post.query.json +0 -120
- package/build/routes/chromium/http/performance.body.json +0 -26
- package/build/routes/chromium/http/performance.query.json +0 -120
- package/build/routes/chromium/http/scrape-post.response.json +0 -309
- package/build/routes/chromium/http/screenshot-post.query.json +0 -120
- 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/build/routes/chromium/ws/cdp-chromium.query.json +0 -120
- package/build/routes/chromium/ws/playwright-chromium.query.json +0 -100
- package/build/routes/firefox/ws/playwright-firefox.d.ts +0 -16
- package/build/routes/firefox/ws/playwright-firefox.query.json +0 -100
- package/build/routes/management/http/config-get.response.json +0 -107
- package/build/routes/management/http/metrics-get.response.json +0 -94
- package/build/routes/management/http/metrics-total-get.response.json +0 -72
- package/build/routes/webkit/ws/playwright-webkit.query.json +0 -100
- 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/scrape-post.query.json → chrome/http/download.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/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/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/{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-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/{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{ARIAAttributesView as e,ARIAMetadata as i,AXBreadcrumbsPane as t,AccessibilityNodeView as s,AccessibilitySidebarView as A,AccessibilitySubPane as c,AccessibilityStrings as r}from"./accessibility.js";self.Accessibility=self.Accessibility||{},Accessibility=Accessibility||{},Accessibility.ARIAAttributesPane=e.ARIAAttributesPane,Accessibility.ARIAAttributesTreeElement=e.ARIAAttributesTreeElement,Accessibility.ARIAAttributesPane.ARIAAttributePrompt=e.ARIAAttributePrompt,Accessibility.ARIAMetadata=i.ARIAMetadata,Accessibility.ARIAMetadata.Attribute=i.Attribute,Accessibility.ariaMetadata=i.ariaMetadata,Accessibility.AXBreadcrumbsPane=t.AXBreadcrumbsPane,Accessibility.AXBreadcrumb=t.AXBreadcrumb,Accessibility.AXBreadcrumb.RoleStyles=t.RoleStyles,Accessibility.AXNodeSubPane=s.AXNodeSubPane,Accessibility.AXNodePropertyTreeElement=s.AXNodePropertyTreeElement,Accessibility.AXNodePropertyTreeElement.TypeStyles=s.TypeStyles,Accessibility.AXNodePropertyTreeElement.StringProperties=s.StringProperties,Accessibility.AXNodePropertyTreePropertyElement=s.AXNodePropertyTreePropertyElement,Accessibility.AXValueSourceTreeElement=s.AXValueSourceTreeElement,Accessibility.AXRelatedNodeSourceTreeElement=s.AXRelatedNodeSourceTreeElement,Accessibility.AXRelatedNodeElement=s.AXRelatedNodeElement,Accessibility.AXNodeIgnoredReasonTreeElement=s.AXNodeIgnoredReasonTreeElement,Accessibility.AccessibilitySidebarView=A.AccessibilitySidebarView,Accessibility.AccessibilitySubPane=c.AccessibilitySubPane,Accessibility.AccessibilityStrings={},Accessibility.AccessibilityStrings.AXAttributes=r.AXAttributes,Accessibility.AccessibilityStrings.AXSourceTypes=r.AXSourceTypes,Accessibility.AccessibilityStrings.AXNativeSourceTypes=r.AXNativeSourceTypes;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ls as i}from"../platform/platform.js";import{Runtime as e}from"../root/root.js";import{ViewManager as t}from"../ui/ui.js";let s;t.registerViewExtension({location:"elements-sidebar",id:"accessibility.view",title:()=>i`Accessibility`,commandPrompt:()=>i`Show Accessibility`,order:10,persistence:"permanent",loadView:async()=>(await async function(){return s||(await e.Runtime.instance().loadModulePromise("accessibility"),s=await import("./accessibility.js")),s}()).AccessibilitySidebarView.AccessibilitySidebarView.instance()});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Linkifier as e,Revealer as t}from"../common/common.js";import{ls as a}from"../platform/platform.js";import{AccessibilityModel as i,DOMModel as s,OverlayModel as r,SDKModel as n}from"../sdk/sdk.js";import{View as o,TreeOutline as l,Tooltip as d,UIUtils as c,TextPrompt as u,ARIAUtils as m,ContextMenu as h,ThrottledWidget as p,ViewManager as b,Context as _}from"../ui/ui.js";import{Runtime as f}from"../root/root.js";import{userMetrics as g,UserMetrics as v}from"../host/host.js";const x={disabled:{name:a`Disabled`,description:a`If true, this element currently cannot be interacted with.`,group:"AXGlobalStates"},invalid:{name:a`Invalid user entry`,description:a`If true, this element's user-entered value does not conform to validation requirement.`,group:"AXGlobalStates"},editable:{name:a`Editable`,description:a`If and how this element can be edited.`},focusable:{name:a`Focusable`,description:a`If true, this element can receive focus.`},focused:{name:a`Focused`,description:a`If true, this element currently has focus.`},settable:{name:a`Can set value`,description:a`Whether the value of this element can be set.`},live:{name:a`Live region`,description:a`Whether and what priority of live updates may be expected for this element.`,group:"AXLiveRegionAttributes"},atomic:{name:a`Atomic (live regions)`,description:a`If this element may receive live updates, whether the entire live region should be presented to the user on changes, or only changed nodes.`,group:"AXLiveRegionAttributes"},relevant:{name:a`Relevant (live regions)`,description:a`If this element may receive live updates, what type of updates should trigger a notification.`,group:"AXLiveRegionAttributes"},busy:{name:a`Busy (live regions)`,description:a`Whether this element or its subtree are currently being updated (and thus may be in an inconsistent state).`,group:"AXLiveRegionAttributes"},root:{name:a`Live region root`,description:a`If this element may receive live updates, the root element of the containing live region.`,group:"AXLiveRegionAttributes"},autocomplete:{name:a`Has autocomplete`,description:a`Whether and what type of autocomplete suggestions are currently provided by this element.`,group:"AXWidgetAttributes"},haspopup:{name:a`Has popup`,description:a`Whether this element has caused some kind of pop-up (such as a menu) to appear.`,group:"AXWidgetAttributes"},level:{name:a`Level`,description:a`The hierarchical level of this element.`,group:"AXWidgetAttributes"},multiselectable:{name:a`Multi-selectable`,description:a`Whether a user may select more than one option from this widget.`,group:"AXWidgetAttributes"},orientation:{name:a`Orientation`,description:a`Whether this linear element's orientation is horizontal or vertical.`,group:"AXWidgetAttributes"},multiline:{name:a`Multi-line`,description:a`Whether this text box may have more than one line.`,group:"AXWidgetAttributes"},readonly:{name:a`Read-only`,description:a`If true, this element may be interacted with, but its value cannot be changed.`,group:"AXWidgetAttributes"},required:{name:a`Required`,description:a`Whether this element is a required field in a form.`,group:"AXWidgetAttributes"},valuemin:{name:a`Minimum value`,description:a`For a range widget, the minimum allowed value.`,group:"AXWidgetAttributes"},valuemax:{name:a`Maximum value`,description:a`For a range widget, the maximum allowed value.`,group:"AXWidgetAttributes"},valuetext:{name:a`Value description`,description:a`A human-readable version of the value of a range widget (where necessary).`,group:"AXWidgetAttributes"},checked:{name:a`Checked`,description:a`Whether this checkbox, radio button or tree item is checked, unchecked, or mixed (e.g. has both checked and un-checked children).`,group:"AXWidgetStates"},expanded:{name:a`Expanded`,description:a`Whether this element, or another grouping element it controls, is expanded.`,group:"AXWidgetStates"},pressed:{name:a`Pressed`,description:a`Whether this toggle button is currently in a pressed state.`,group:"AXWidgetStates"},selected:{name:a`Selected`,description:a`Whether the option represented by this element is currently selected.`,group:"AXWidgetStates"},activedescendant:{name:a`Active descendant`,description:a`The descendant of this element which is active; i.e. the element to which focus should be delegated.`,group:"AXRelationshipAttributes"},flowto:{name:a`Flows to`,description:a`Element to which the user may choose to navigate after this one, instead of the next element in the DOM order.`,group:"AXRelationshipAttributes"},controls:{name:a`Controls`,description:a`Element or elements whose content or presence is/are controlled by this widget.`,group:"AXRelationshipAttributes"},describedby:{name:a`Described by`,description:a`Element or elements which form the description of this element.`,group:"AXRelationshipAttributes"},labelledby:{name:a`Labeled by`,description:a`Element or elements which may form the name of this element.`,group:"AXRelationshipAttributes"},owns:{name:a`Owns`,description:a`Element or elements which should be considered descendants of this element, despite not being descendants in the DOM.`,group:"AXRelationshipAttributes"},name:{name:a`Name`,description:a`The computed name of this element.`,group:"Default"},role:{name:a`Role`,description:a`Indicates the purpose of this element, such as a user interface idiom for a widget, or structural role within a document.`,group:"Default"},value:{name:a`Value`,description:a`The value of this element; this may be user-provided or developer-provided, depending on the element.`,group:"Default"},help:{name:a`Help`,description:a`The computed help text for this element.`,group:"Default"},description:{name:a`Description`,description:a`The accessible description for this element.`,group:"Default"}},y={attribute:{name:a`From attribute`,description:a`Value from attribute.`},implicit:{name:a`Implicit`,description:a`Implicit value.`},style:{name:a`From style`,description:a`Value from style.`},contents:{name:a`Contents`,description:a`Value from element contents.`},placeholder:{name:a`From placeholder attribute`,description:a`Value from placeholder attribute.`},relatedElement:{name:a`Related element`,description:a`Value from related element.`}},E={figcaption:{name:a`From caption`,description:a`Value from figcaption element.`},label:{name:a`From label`,description:a`Value from label element.`},labelfor:{name:a`From label (for)`,description:a`Value from label element with for= attribute.`},labelwrapped:{name:a`From label (wrapped)`,description:a`Value from label element wrapped.`},legend:{name:a`From legend`,description:a`Value from legend element.`},rubyannotation:{name:a`From ruby annotation`,description:a`Value from native HTML ruby annotation.`},tablecaption:{name:a`From caption`,description:a`Value from table caption.`},title:{name:a`From title`,description:a`Value from title attribute.`},other:{name:a`From native HTML`,description:a`Value from native HTML (unknown source).`}};var N=Object.freeze({__proto__:null,AXAttributes:x,AXSourceTypes:y,AXNativeSourceTypes:E});class A extends o.SimpleView{constructor(e){super(e),this._axNode=null,this.registerRequiredCSS("accessibility/accessibilityProperties.css",{enableLegacyPatching:!1})}setAXNode(e){}node(){return this._node||null}setNode(e){this._node=e}createInfo(e,t){const a=t||"gray-info-message",i=this.element.createChild("div",a);return i.textContent=e,i}createTreeOutline(){const e=new l.TreeOutlineInShadow;return e.registerRequiredCSS("accessibility/accessibilityNode.css",{enableLegacyPatching:!1}),e.registerRequiredCSS("accessibility/accessibilityProperties.css",{enableLegacyPatching:!1}),e.registerRequiredCSS("object_ui/objectValue.css",{enableLegacyPatching:!0}),e.element.classList.add("hidden"),e.hideOverflow(),this.element.appendChild(e.element),e}}var w=Object.freeze({__proto__:null,AccessibilitySubPane:A});class C extends A{constructor(){super(a`Computed Properties`),this._axNode=null,this.contentElement.classList.add("ax-subpane"),this._noNodeInfo=this.createInfo(a`No accessibility node`),this._ignoredInfo=this.createInfo(a`Accessibility node not exposed`,"ax-ignored-info hidden"),this._treeOutline=this.createTreeOutline(),this._ignoredReasonsTree=this.createTreeOutline(),this.element.classList.add("accessibility-computed"),this.registerRequiredCSS("accessibility/accessibilityNode.css",{enableLegacyPatching:!1}),this._treeOutline.setFocusable(!0)}setAXNode(e){if(this._axNode===e)return;this._axNode=e;const t=this._treeOutline;t.removeChildren();const a=this._ignoredReasonsTree;if(a.removeChildren(),!e)return t.element.classList.add("hidden"),this._ignoredInfo.classList.add("hidden"),a.element.classList.add("hidden"),this._noNodeInfo.classList.remove("hidden"),void this.element.classList.add("ax-ignored-node-pane");if(e.ignored()){this._noNodeInfo.classList.add("hidden"),t.element.classList.add("hidden"),this.element.classList.add("ax-ignored-node-pane"),this._ignoredInfo.classList.remove("hidden"),a.element.classList.remove("hidden");const i=e.ignoredReasons();for(const t of i)s=t,a.appendChild(new S(s,e));return void(a.firstChild()||a.element.classList.add("hidden"))}var s;function r(a){t.appendChild(new I(a,e))}this.element.classList.remove("ax-ignored-node-pane"),this._ignoredInfo.classList.add("hidden"),a.element.classList.add("hidden"),this._noNodeInfo.classList.add("hidden"),t.element.classList.remove("hidden");for(const t of e.coreProperties())r(t);const n=e.role();if(n){r({name:i.CoreAxPropertyName.Role,value:n})}for(const t of e.properties())r(t);const o=t.firstChild();o&&o.select(!0,!1)}setNode(e){super.setNode(e),this._axNode=null}}class k extends l.TreeElement{constructor(e){super(""),this._axNode=e}static createSimpleValueElement(e,t){let a;const i=Protocol.Accessibility.AXValueType;let s;e&&e!==i.ValueUndefined&&e!==i.ComputedString?(a=document.createElement("span"),a.classList.add("monospace")):a=document.createElement("span");return s=e&&R.has(e)?'"'+t.replace(/\n/g,"↵")+'"':String(t),e&&e in L&&a.classList.add(L[e]),a.setTextContentTruncatedIfNeeded(s||""),d.Tooltip.install(a,String(t)||""),a}static createExclamationMark(e){const t=document.createElement("span",{is:"dt-icon-label"});return t.type="smallicon-warning",d.Tooltip.install(t,e),t}appendNameElement(e){const t=document.createElement("span");if(e in x){const a=x[e];t.textContent=a.name,d.Tooltip.install(t,a.description),t.classList.add("ax-readable-name")}else t.textContent=e,t.classList.add("ax-name"),t.classList.add("monospace");this.listItemElement.appendChild(t)}appendValueElement(e){const t=Protocol.Accessibility.AXValueType;if(e.type===t.Idref||e.type===t.Node||e.type===t.IdrefList||e.type===t.NodeList)return void this.appendRelatedNodeListValueElement(e);if(e.sources){const t=e.sources;for(let e=0;e<t.length;e++){const a=t[e],i=new P(a,this._axNode);this.appendChild(i)}this.expand()}const a=k.createSimpleValueElement(e.type,String(e.value));this.listItemElement.appendChild(a)}appendRelatedNode(e,t){const a=new s.DeferredDOMNode(this._axNode.accessibilityModel().target(),e.backendDOMNodeId),i=new M({deferredNode:a,idref:void 0},e);this.appendChild(i)}appendRelatedNodeInline(e){const t=new s.DeferredDOMNode(this._axNode.accessibilityModel().target(),e.backendDOMNodeId),a=new F({deferredNode:t,idref:void 0},e);this.listItemElement.appendChild(a.render())}appendRelatedNodeListValueElement(e){!e.relatedNodes||1!==e.relatedNodes.length||e.value?(e.relatedNodes&&e.relatedNodes.forEach(this.appendRelatedNode,this),e.relatedNodes&&e.relatedNodes.length<=3?this.expand():this.collapse()):this.appendRelatedNodeInline(e.relatedNodes[0])}}const L={attribute:"ax-value-string",boolean:"object-value-boolean",booleanOrUndefined:"object-value-boolean",computedString:"ax-readable-string",idref:"ax-value-string",idrefList:"ax-value-string",integer:"object-value-number",internalRole:"ax-internal-role",number:"ax-value-number",role:"ax-role",string:"ax-value-string",tristate:"object-value-boolean",valueUndefined:"ax-value-undefined"},R=new Set([Protocol.Accessibility.AXValueType.String,Protocol.Accessibility.AXValueType.ComputedString,Protocol.Accessibility.AXValueType.IdrefList,Protocol.Accessibility.AXValueType.Idref]);class I extends k{constructor(e,t){super(t),this._property=e,this.toggleOnClick=!0,this.listItemElement.classList.add("property")}onattach(){this._update()}_update(){this.listItemElement.removeChildren(),this.appendNameElement(this._property.name),this.listItemElement.createChild("span","separator").textContent=": ",this.appendValueElement(this._property.value)}}class P extends k{constructor(e,t){super(t),this._source=e}onattach(){this._update()}appendRelatedNodeWithIdref(e,t){const a=new s.DeferredDOMNode(this._axNode.accessibilityModel().target(),e.backendDOMNodeId),i=new M({deferredNode:a,idref:t},e);this.appendChild(i)}appendIDRefValueElement(e){if(null===e.value)return;const t=e.relatedNodes||[];if(""===e.value){for(const e of t){const t=e.idref||"";this.appendRelatedNodeWithIdref(e,t)}return}const a=e.value.trim().split(/\s+/);for(const e of a){const i=t.find((t=>t.idref===e));i?this.appendRelatedNodeWithIdref(i,e):1===a.length?this.listItemElement.appendChild(new F({deferredNode:void 0,idref:e}).render()):this.appendChild(new M({deferredNode:void 0,idref:e}))}}appendRelatedNodeListValueElement(e){const t=e.relatedNodes,a=t?t.length:0;e.type===Protocol.Accessibility.AXValueType.IdrefList||e.type===Protocol.Accessibility.AXValueType.Idref?this.appendIDRefValueElement(e):super.appendRelatedNodeListValueElement(e),a<=3?this.expand():this.collapse()}appendSourceNameElement(e){const t=document.createElement("span"),a=Protocol.Accessibility.AXValueSourceType,i=e.type;switch(i){case a.Attribute:case a.Placeholder:case a.RelatedElement:if(e.nativeSource){const a=e.nativeSource;t.textContent=E[a].name,d.Tooltip.install(t,E[a].description),t.classList.add("ax-readable-name");break}t.textContent=e.attribute||null,t.classList.add("ax-name"),t.classList.add("monospace");break;default:i in y?(t.textContent=y[i].name,d.Tooltip.install(t,y[i].description),t.classList.add("ax-readable-name")):(console.warn(i,"not in AXSourceTypes"),t.textContent=i)}this.listItemElement.appendChild(t)}_update(){if(this.listItemElement.removeChildren(),this._source.invalid){const e=k.createExclamationMark(a`Invalid source.`);this.listItemElement.appendChild(e),this.listItemElement.classList.add("ax-value-source-invalid")}else this._source.superseded&&this.listItemElement.classList.add("ax-value-source-unused");if(this.appendSourceNameElement(this._source),this.listItemElement.createChild("span","separator").textContent=": ",this._source.attributeValue)this.appendValueElement(this._source.attributeValue),c.createTextChild(this.listItemElement," ");else if(this._source.nativeSourceValue)this.appendValueElement(this._source.nativeSourceValue),c.createTextChild(this.listItemElement," "),this._source.value&&this.appendValueElement(this._source.value);else if(this._source.value)this.appendValueElement(this._source.value);else{const e=k.createSimpleValueElement(Protocol.Accessibility.AXValueType.ValueUndefined,a`Not specified`);this.listItemElement.appendChild(e),this.listItemElement.classList.add("ax-value-source-unused")}this._source.value&&this._source.superseded&&this.listItemElement.classList.add("ax-value-source-superseded")}}class M extends l.TreeElement{constructor(e,t){super(""),this._value=t,this._axRelatedNodeElement=new F(e,t),this.selectable=!0}onattach(){this.listItemElement.appendChild(this._axRelatedNodeElement.render()),this._value&&this._value.text&&this.listItemElement.appendChild(k.createSimpleValueElement(Protocol.Accessibility.AXValueType.ComputedString,this._value.text))}onenter(){return this._axRelatedNodeElement.revealNode(),!0}}class F{constructor(e,t){this._deferredNode=e.deferredNode,this._idref=e.idref,this._value=t}render(){const t=document.createElement("span");if(this._deferredNode){const a=document.createElement("span");t.appendChild(a),this._deferredNode.resolvePromise().then((t=>{e.Linkifier.linkify(t,{tooltip:void 0,preventKeyboardFocus:!0}).then((e=>a.appendChild(e)))}))}else if(this._idref){t.classList.add("invalid");const e=k.createExclamationMark(a`No node with this ID.`);c.createTextChild(e,this._idref),t.appendChild(e)}return t}revealNode(){this._deferredNode&&this._deferredNode.resolvePromise().then((e=>t.reveal(e)))}}class S extends k{constructor(e,t){super(t),this._property=e,this._axNode=t,this.toggleOnClick=!0,this.selectable=!1}static createReasonElement(e,t){let a=null;switch(e){case"activeModalDialog":a=c.formatLocalized("Element is hidden by active modal dialog: ",[]);break;case"ancestorIsLeafNode":a=c.formatLocalized("Ancestor's children are all presentational: ",[]);break;case"ariaHiddenElement":{const e=document.createElement("span",{is:"source-code"}).textContent="aria-hidden";a=c.formatLocalized("Element is %s.",[e]);break}case"ariaHiddenSubtree":{const e=document.createElement("span",{is:"source-code"}).textContent="aria-hidden",t=document.createElement("span",{is:"source-code"}).textContent="true";a=c.formatLocalized("%s is %s on ancestor: ",[e,t]);break}case"emptyAlt":a=c.formatLocalized("Element has empty alt text.",[]);break;case"emptyText":a=c.formatLocalized("No text content.",[]);break;case"inertElement":a=c.formatLocalized("Element is inert.",[]);break;case"inertSubtree":a=c.formatLocalized("Element is in an inert subtree from ",[]);break;case"inheritsPresentation":a=c.formatLocalized("Element inherits presentational role from ",[]);break;case"labelContainer":a=c.formatLocalized("Part of label element: ",[]);break;case"labelFor":a=c.formatLocalized("Label for ",[]);break;case"notRendered":a=c.formatLocalized("Element is not rendered.",[]);break;case"notVisible":a=c.formatLocalized("Element is not visible.",[]);break;case"presentationalRole":{const e=t&&t.role()||"",i=document.createElement("span",{is:"source-code"}).textContent="role="+e;a=c.formatLocalized("Element has %s.",[i]);break}case"probablyPresentational":a=c.formatLocalized("Element is presentational.",[]);break;case"staticTextUsedAsNameFor":a=c.formatLocalized("Static text node is used as name for ",[]);break;case"uninteresting":a=c.formatLocalized("Element not interesting for accessibility.",[])}return a&&a.classList.add("ax-reason"),a}onattach(){this.listItemElement.removeChildren(),this._reasonElement=S.createReasonElement(this._property.name,this._axNode),this._reasonElement&&this.listItemElement.appendChild(this._reasonElement);const e=this._property.value;e.type===Protocol.Accessibility.AXValueType.Idref&&this.appendRelatedNodeListValueElement(e)}}var V=Object.freeze({__proto__:null,AXNodeSubPane:C,AXNodePropertyTreeElement:k,TypeStyles:L,StringProperties:R,AXNodePropertyTreePropertyElement:I,AXValueSourceTreeElement:P,AXRelatedNodeSourceTreeElement:M,AXRelatedNodeElement:F,AXNodeIgnoredReasonTreeElement:S});const O={attributes:[{type:"IDREF",name:"aria-activedescendant"},{default:"false",type:"boolean",name:"aria-atomic"},{default:"none",enum:["inline","list","both","none"],type:"token",name:"aria-autocomplete"},{default:"false",type:"boolean",name:"aria-busy"},{default:"undefined",enum:["true","false","mixed","undefined"],type:"token",name:"aria-checked"},{type:"integer",name:"aria-colcount"},{type:"integer",name:"aria-colindex"},{type:"integer",name:"aria-colspan"},{type:"IDREF_list",name:"aria-controls"},{default:"false",enum:["page","step","location","date","time","true","false"],type:"token",name:"aria-current"},{type:"IDREF_list",name:"aria-describedby"},{type:"string",name:"aria-description"},{type:"IDREF",name:"aria-details"},{default:"false",type:"boolean",name:"aria-disabled"},{default:"none",enum:["copy","move","link","execute","popup","none"],type:"token_list",name:"aria-dropeffect"},{type:"IDREF",name:"aria-errormessage"},{default:"undefined",enum:["true","false","undefined"],type:"token",name:"aria-expanded"},{type:"IDREF_list",name:"aria-flowto"},{default:"undefined",enum:["true","false","undefined"],type:"token",name:"aria-grabbed"},{default:"false",enum:["false","true","menu","listbox","tree","grid","dialog"],type:"token",name:"aria-haspopup"},{default:"undefined",enum:["true","false","undefined"],type:"token",name:"aria-hidden"},{default:"false",enum:["grammar","false","spelling","true"],type:"token",name:"aria-invalid"},{type:"string",name:"aria-keyshortcuts"},{type:"string",name:"aria-label"},{type:"IDREF_list",name:"aria-labelledby"},{type:"IDREF_list",name:"aria-labeledby"},{type:"integer",name:"aria-level"},{default:"off",enum:["off","polite","assertive"],type:"token",name:"aria-live"},{default:"false",type:"boolean",name:"aria-modal"},{default:"false",type:"boolean",name:"aria-multiline"},{default:"false",type:"boolean",name:"aria-multiselectable"},{default:"undefined",enum:["horizontal","undefined","vertical"],type:"token",name:"aria-orientation"},{type:"IDREF_list",name:"aria-owns"},{type:"string",name:"aria-placeholder"},{type:"integer",name:"aria-posinset"},{default:"undefined",enum:["true","false","mixed","undefined"],type:"token",name:"aria-pressed"},{default:"false",type:"boolean",name:"aria-readonly"},{default:"additions text",enum:["additions","removals","text","all"],type:"token_list",name:"aria-relevant"},{default:"false",type:"boolean",name:"aria-required"},{type:"string",name:"aria-roledescription"},{type:"integer",name:"aria-rowcount"},{type:"integer",name:"aria-rowindex"},{type:"integer",name:"aria-rowspan"},{default:"undefined",enum:["true","false","undefined"],type:"token",name:"aria-selected"},{type:"integer",name:"aria-setsize"},{default:"none",enum:["ascending","descending","none","other"],type:"token",name:"aria-sort"},{type:"decimal",name:"aria-valuemax"},{type:"decimal",name:"aria-valuemin"},{type:"decimal",name:"aria-valuenow"},{type:"string",name:"aria-valuetext"}],roles:[{implicitValues:{"aria-atomic":"true","aria-live":"assertive"},superclasses:["section"],name:"alert",nameFrom:["author"]},{superclasses:["alert","dialog"],name:"alertdialog",nameRequired:!0,nameFrom:["author"]},{superclasses:["structure"],name:"application",nameRequired:!0,nameFrom:["author"]},{supportedAttributes:["aria-posinset","aria-setsize"],superclasses:["document"],name:"article",nameFrom:["author"]},{superclasses:["landmark"],name:"banner",nameFrom:["author"]},{name:"button",nameRequired:!0,nameFrom:["contents","author"],supportedAttributes:["aria-expanded","aria-pressed"],superclasses:["command"],childrenPresentational:!0},{scope:"row",supportedAttributes:["aria-colindex","aria-colspan","aria-rowindex","aria-rowspan"],superclasses:["section"],name:"cell",namefrom:["contents","author"]},{name:"checkbox",nameRequired:!0,implicitValues:{"aria-checked":!1},requiredAttributes:["aria-checked"],nameFrom:["contents","author"],supportedAttributes:["aria-readonly"],superclasses:["input"]},{name:"columnheader",nameRequired:!0,nameFrom:["contents","author"],supportedAttributes:["aria-sort"],superclasses:["gridcell","sectionhead","widget"],scope:["row"]},{name:"combobox",nameRequired:!0,implicitValues:{"aria-haspopup":"listbox","aria-expanded":"false"},requiredAttributes:["aria-controls","aria-expanded"],mustContain:["textbox"],nameFrom:["author"],supportedAttributes:["aria-autocomplete","aria-readonly","aria-required"],superclasses:["select"]},{abstract:!0,superclasses:["widget"],name:"command",nameFrom:["author"]},{superclasses:["landmark"],name:"complementary",nameFrom:["author"]},{supportedAttributes:["aria-activedescendant"],abstract:!0,superclasses:["widget"],name:"composite",nameFrom:["author"]},{superclasses:["landmark"],name:"contentinfo",nameFrom:["author"]},{superclasses:["section"],name:"definition",nameFrom:["author"]},{superclasses:["window"],name:"dialog",nameRequired:!0,nameFrom:["author"]},{superclasses:["list"],name:"directory",nameFrom:["author"]},{supportedAttributes:["aria-expanded"],superclasses:["structure"],name:"document",nameRequired:!1,nameFrom:["author"]},{nameRequired:!1,superclasses:["list"],name:"feed",mustContain:["article"],nameFrom:["author"]},{superclasses:["section"],name:"figure",nameRequired:!1,namefrom:["author"]},{superclasses:["landmark"],name:"form",nameFrom:["author"]},{name:"grid",nameRequired:!0,nameFrom:["author"],mustContain:["row"],supportedAttributes:["aria-level","aria-multiselectable","aria-readonly"],superclasses:["composite","table"]},{name:"gridcell",nameRequired:!0,nameFrom:["contents","author"],supportedAttributes:["aria-readonly","aria-required","aria-selected"],superclasses:["cell","widget"],scope:["row"]},{supportedAttributes:["aria-activedescendant"],superclasses:["section"],name:"group",nameFrom:["author"]},{name:"heading",nameRequired:!0,implicitValues:{"aria-level":"2"},namefrom:["contents","author"],supportedAttributes:["aria-level"],superclasses:["sectionhead"]},{childrenPresentational:!0,superclasses:["section"],name:"img",nameRequired:!0,nameFrom:["author"]},{abstract:!0,superclasses:["widget"],name:"input",nameFrom:["author"]},{abstract:!0,superclasses:["section"],name:"landmark",nameRequired:!1,nameFrom:["author"]},{supportedAttributes:["aria-expanded"],superclasses:["command"],name:"link",nameRequired:!0,nameFrom:["contents","author"]},{implicitValues:{"aria-orientation":"vertical"},superclasses:["section"],name:"list",mustContain:["listitem"],nameFrom:["author"]},{name:"listbox",nameRequired:!0,implicitValues:{"aria-orientation":"vertical"},nameFrom:["author"],mustContain:["option"],supportedAttributes:["aria-multiselectable","aria-readonly","aria-required"],superclasses:["select"]},{scope:["group","list"],supportedAttributes:["aria-level","aria-posinset","aria-setsize"],superclasses:["section"],name:"listitem",nameFrom:["author"]},{implicitValues:{"aria-live":"polite"},superclasses:["section"],name:"log",nameRequired:!0,nameFrom:["author"]},{superclasses:["landmark"],name:"main",nameFrom:["author"]},{superclasses:["section"],name:"marquee",nameRequired:!0,nameFrom:["author"]},{childrenPresentational:!0,superclasses:["section"],name:"math",nameRequired:!0,nameFrom:["author"]},{implicitValues:{"aria-orientation":"vertical"},superclasses:["select"],name:"menu",mustContain:["group","menuitemradio","menuitem","menuitemcheckbox","menuitemradio"],nameFrom:["author"]},{implicitValues:{"aria-orientation":"horizontal"},superclasses:["menu"],name:"menubar",mustContain:["menuitem","menuitemradio","menuitemcheckbox"],nameFrom:["author"]},{scope:["group","menu","menubar"],superclasses:["command"],name:"menuitem",nameRequired:!0,nameFrom:["contents","author"]},{name:"menuitemcheckbox",nameRequired:!0,implicitValues:{"aria-checked":!1},nameFrom:["contents","author"],superclasses:["checkbox","menuitem"],childrenPresentational:!0,scope:["menu","menubar"]},{name:"menuitemradio",nameRequired:!0,implicitValues:{"aria-checked":!1},nameFrom:["contents","author"],superclasses:["menuitemcheckbox","radio"],childrenPresentational:!0,scope:["menu","menubar","group"]},{superclasses:["landmark"],name:"navigation",nameFrom:["author"]},{name:"none",superclasses:["structure"]},{superclasses:["section"],name:"note",nameFrom:["author"]},{name:"option",nameRequired:!0,implicitValues:{"aria-selected":"false"},requiredAttributes:["aria-selected"],nameFrom:["contents","author"],supportedAttributes:["aria-checked","aria-posinset","aria-setsize"],superclasses:["input"],childrenPresentational:!0,scope:["listbox"]},{name:"presentation",superclasses:["structure"]},{childrenPresentational:!0,superclasses:["range"],name:"progressbar",nameRequired:!0,nameFrom:["author"]},{name:"radio",nameRequired:!0,implicitValues:{"aria-checked":"false"},requiredAttributes:["aria-checked"],nameFrom:["contents","author"],supportedAttributes:["aria-posinset","aria-setsize"],superclasses:["input"],childrenPresentational:!0},{name:"radiogroup",nameRequired:!0,nameFrom:["author"],mustContain:["radio"],supportedAttributes:["aria-readonly","aria-required"],superclasses:["select"]},{supportedAttributes:["aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"],abstract:!0,superclasses:["widget"],name:"range",nameFrom:["author"]},{superclasses:["landmark"],name:"region",nameRequired:!0,nameFrom:["author"]},{supportedAttributes:["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"],abstract:!0,name:"roletype"},{name:"row",nameFrom:["contents","author"],mustContain:["cell","columnheader","gridcell","rowheader"],supportedAttributes:["aria-colindex","aria-level","aria-rowindex","aria-selected","aria-setsize","aria-posinset"],superclasses:["group","widget"],scope:["grid","rowgroup","table","treegrid"]},{scope:["grid","table","treegrid"],superclasses:["structure"],name:"rowgroup",mustContain:["row"],nameFrom:["contents","author"]},{name:"rowheader",nameRequired:!0,nameFrom:["contents","author"],supportedAttributes:["aria-sort"],superclasses:["cell","gridcell","sectionhead"],scope:["row"]},{name:"scrollbar",nameRequired:!1,implicitValues:{"aria-valuemax":"100","aria-valuemin":"0","aria-orientation":"vertical"},nameFrom:["author"],requiredAttributes:["aria-controls","aria-orientation","aria-valuemax","aria-valuemin","aria-valuenow"],superclasses:["range"],childrenPresentational:!0},{superclasses:["landmark"],name:"search",nameFrom:["author"]},{superclasses:["textbox"],name:"searchbox",nameRequired:!0,nameFrom:["author"]},{supportedAttributes:["aria-expanded"],abstract:!0,name:"section",superclasses:["structure"]},{supportedAttributes:["aria-expanded"],abstract:!0,superclasses:["structure"],name:"sectionhead",nameFrom:["contents","author"]},{abstract:!0,superclasses:["composite","group"],name:"select",nameFrom:["author"]},{supportedAttributes:["aria-orientation","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext"],superclasses:["structure"],name:"separator",nameFrom:["author"]},{name:"slider",nameRequired:!0,implicitValues:{"aria-valuemax":"100","aria-valuemin":"0","aria-orientation":"horizontal"},requiredAttributes:["aria-valuemax","aria-valuemin","aria-valuenow"],nameFrom:["author"],supportedAttributes:["aria-orientation"],superclasses:["input","range"],childrenPresentational:!0},{name:"spinbutton",nameRequired:!0,implicitValues:{"aria-valuenow":"0"},requiredAttributes:["aria-valuemax","aria-valuemin","aria-valuenow"],nameFrom:["author"],supportedAttributes:["aria-required","aria-readonly"],superclasses:["composite","input","range"]},{implicitValues:{"aria-atomic":"true","aria-live":"polite"},superclasses:["section"],name:"status",nameFrom:["author"]},{abstract:!0,name:"structure",superclasses:["roletype"]},{name:"switch",nameRequired:!0,implicitValues:{"aria-checked":"false"},nameFrom:["contents","author"],requiredAttributes:["aria-checked"],superclasses:["checkbox"],childrenPresentational:!0},{name:"tab",implicitValues:{"aria-selected":"false"},nameFrom:["contents","author"],supportedAttributes:["aria-selected"],superclasses:["sectionhead","widget"],childrenPresentational:!0,scope:["tablist"]},{name:"table",nameRequired:!0,nameFrom:["author"],mustContain:["row"],supportedAttributes:["aria-colcount","aria-rowcount"],superclasses:["section"]},{name:"tablist",implicitValues:{"aria-orientation":"horizontal"},nameFrom:["author"],mustContain:["tab"],supportedAttributes:["aria-level","aria-multiselectable","aria-orientation"],superclasses:["composite"]},{superclasses:["section"],name:"tabpanel",nameRequired:!0,nameFrom:["author"]},{superclasses:["section"],name:"term",nameFrom:["author"]},{supportedAttributes:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-placeholder","aria-readonly","aria-required"],superclasses:["input"],name:"textbox",nameRequired:!0,nameFrom:["author"]},{superclasses:["status"],name:"timer",nameFrom:["author"]},{implicitValues:{"aria-orientation":"horizontal"},supportedAttributes:["aria-orientation"],superclasses:["group"],name:"toolbar",nameFrom:["author"]},{superclasses:["section"],name:"tooltip",nameRequired:!0,nameFrom:["contents","author"]},{name:"tree",nameRequired:!0,implicitValues:{"aria-orientation":"vertical"},nameFrom:["author"],mustContain:["group","treeitem"],supportedAttributes:["aria-multiselectable","aria-required"],superclasses:["select"]},{nameRequired:!0,superclasses:["grid","tree"],name:"treegrid",mustContain:["row"],nameFrom:["author"]},{scope:["group","tree"],superclasses:["listitem","option"],name:"treeitem",nameRequired:!0,nameFrom:["contents","author"]},{abstract:!0,name:"widget",superclasses:["roletype"]},{supportedAttributes:["aria-expanded","aria-modal"],abstract:!0,superclasses:["roletype"],name:"window",nameFrom:["author"]}],metadata:{namespaceURI:"http://www.w3.org/1999/xhtml",attrsNullNamespace:!0,namespace:"HTML",export:"CORE_EXPORT",namespacePrefix:"xhtml"}};let T;class D{constructor(e){this._attributes=new Map,this._roleNames=[],e&&this._initialize(e)}_initialize(e){const t=e.attributes,a=["true","false"];for(const e of t)"boolean"===e.type&&(e.enum=a),this._attributes.set(e.name,new B(e));this._roleNames=e.roles.map((e=>e.name))}valuesForProperty(e){const t=this._attributes.get(e);return t?t.getEnum():"role"===e?this._roleNames:[]}}function q(){return T||(T=new D(O||null)),T}class B{constructor(e){this._enum=[],e.enum&&(this._enum=e.enum)}getEnum(){return this._enum}}var X=Object.freeze({__proto__:null,AttributeConfig:undefined,RoleConfig:undefined,Config:undefined,ARIAMetadata:D,ariaMetadata:q,Attribute:B});class W extends A{constructor(){super(a`ARIA Attributes`),this._noPropertiesInfo=this.createInfo(a`No ARIA attributes`),this._treeOutline=this.createTreeOutline()}setNode(e){if(super.setNode(e),this._treeOutline.removeChildren(),!e)return;const t=e.domModel().target(),a=e.attributes();for(let e=0;e<a.length;++e){const i=a[e];this._isARIAAttribute(i)&&this._treeOutline.appendChild(new z(this,i,t))}const i=0!==this._treeOutline.rootElement().childCount();this._noPropertiesInfo.classList.toggle("hidden",i),this._treeOutline.element.classList.toggle("hidden",!i)}_isARIAAttribute(e){return j.has(e.name)}}class z extends l.TreeElement{constructor(e,t,a){super(""),this._parentPane=e,this._attribute=t,this.selectable=!1}static createARIAValueElement(e){const t=document.createElement("span");return t.classList.add("monospace"),t.setTextContentTruncatedIfNeeded(e||""),t}onattach(){this._populateListItem(),this.listItemElement.addEventListener("click",this._mouseClick.bind(this))}_populateListItem(){this.listItemElement.removeChildren(),this.appendNameElement(this._attribute.name),this.listItemElement.createChild("span","separator").textContent=": ",this.appendAttributeValueElement(this._attribute.value)}appendNameElement(e){this._nameElement=document.createElement("span"),this._nameElement.textContent=e,this._nameElement.classList.add("ax-name"),this._nameElement.classList.add("monospace"),this.listItemElement.appendChild(this._nameElement)}appendAttributeValueElement(e){this._valueElement=z.createARIAValueElement(e),this.listItemElement.appendChild(this._valueElement)}_mouseClick(e){e.target!==this.listItemElement&&(e.consume(!0),this._startEditing())}_startEditing(){const e=this._valueElement;if(!e||c.isBeingEdited(e))return;const t=e.textContent||"";const a=this._nameElement.textContent||"";this._prompt=new H(q().valuesForProperty(a),this),this._prompt.setAutocompletionTimeout(0);this._prompt.attachAndStartEditing(e,function(e,t){const a=t.target.textContent||"";this._editingCommitted(a,e)}.bind(this,t)).addEventListener("keydown",(e=>this._editingValueKeyDown(t,e)),!1);const i=e.getComponentSelection();i&&i.selectAllChildren(e)}_removePrompt(){this._prompt&&(this._prompt.detach(),delete this._prompt)}_editingCommitted(e,t){if(this._removePrompt(),e!==t){this._parentPane.node().setAttributeValue(this._attribute.name,e)}}_editingCancelled(){this._removePrompt(),this._populateListItem()}_editingValueKeyDown(e,t){if(!t.handled){if("Enter"===t.key){const a=t.target;return this._editingCommitted(a.textContent||"",e),void t.consume()}return isEscKey(t)?(this._editingCancelled(),void t.consume()):void 0}}}class H extends u.TextPrompt{constructor(e,t){super(),this.initialize(this._buildPropertyCompletions.bind(this)),this._ariaCompletions=e,this._treeElement=t}async _buildPropertyCompletions(e,t,a){return(t=t.toLowerCase())||a||!e?this._ariaCompletions.filter((e=>e.startsWith(t))).map((e=>({text:e,title:void 0,subtitle:void 0,iconType:void 0,priority:void 0,isSecondary:void 0,subtitleRenderer:void 0,selectionRange:void 0,hideGhostText:void 0,iconElement:void 0}))):[]}}const j=new Set(["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"]);var K=Object.freeze({__proto__:null,ARIAAttributesPane:W,ARIAAttributesTreeElement:z,ARIAAttributePrompt:H});class U extends A{constructor(e){super(a`Accessibility Tree`),this.element.classList.add("ax-subpane"),m.markAsTree(this.element),this.element.tabIndex=-1,this._axSidebarView=e,this._preselectedBreadcrumb=null,this._inspectedNodeBreadcrumb=null,this._collapsingBreadcrumbId=-1,this._hoveredBreadcrumb=null,this._rootElement=this.element.createChild("div","ax-breadcrumbs"),this._rootElement.addEventListener("keydown",this._onKeyDown.bind(this),!0),this._rootElement.addEventListener("mousemove",this._onMouseMove.bind(this),!1),this._rootElement.addEventListener("mouseleave",this._onMouseLeave.bind(this),!1),this._rootElement.addEventListener("click",this._onClick.bind(this),!1),this._rootElement.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),!1),this._rootElement.addEventListener("focusout",this._onFocusOut.bind(this),!1),this.registerRequiredCSS("accessibility/axBreadcrumbs.css",{enableLegacyPatching:!1})}focus(){this._inspectedNodeBreadcrumb?this._inspectedNodeBreadcrumb.nodeElement().focus():this.element.focus()}setAXNode(e){const t=this.element.hasFocus();if(super.setAXNode(e),this._rootElement.removeChildren(),!e)return;const a=[];let i=e;for(;i;)a.push(i),i=i.parentNode();a.reverse();let s=0,r=null,n=null;for(i of a)r=new J(i,s,i===e),n?n.appendChild(r):this._rootElement.appendChild(r.element()),n=r,s++;function o(e,t,a){const i=new J(t,a,!1);e.appendChild(i);for(const e of t.children())o(i,e,a+1)}if(this._inspectedNodeBreadcrumb=r,this._inspectedNodeBreadcrumb&&this._inspectedNodeBreadcrumb.setPreselected(!0,t),this._setPreselectedBreadcrumb(this._inspectedNodeBreadcrumb),this._inspectedNodeBreadcrumb)for(const t of e.children())o(this._inspectedNodeBreadcrumb,t,s),t.backendDOMNodeId()===this._collapsingBreadcrumbId&&this._setPreselectedBreadcrumb(this._inspectedNodeBreadcrumb.lastChild());this._collapsingBreadcrumbId=-1}willHide(){this._setPreselectedBreadcrumb(null)}_onKeyDown(e){const t=this._preselectedBreadcrumb;if(!t)return;const a=e;if(!a.composedPath().some((e=>e===t.element())))return;if(a.shiftKey||a.metaKey||a.ctrlKey)return;let i=!1;"ArrowUp"!==a.key||a.altKey?"ArrowDown"!==a.key||a.altKey?"ArrowLeft"!==a.key||a.altKey?("Enter"===a.key||"ArrowRight"===a.key&&!a.altKey&&t.axNode().hasOnlyUnloadedChildren())&&(i=this._inspectDOMNode(t.axNode())):t.hasExpandedChildren()?this._collapseBreadcrumb(t):i=this._preselectParent():i=this._preselectNext():i=this._preselectPrevious(),i&&a.consume(!0)}_preselectPrevious(){if(!this._preselectedBreadcrumb)return!1;const e=this._preselectedBreadcrumb.previousBreadcrumb();return!!e&&(this._setPreselectedBreadcrumb(e),!0)}_preselectNext(){if(!this._preselectedBreadcrumb)return!1;const e=this._preselectedBreadcrumb.nextBreadcrumb();return!!e&&(this._setPreselectedBreadcrumb(e),!0)}_preselectParent(){if(!this._preselectedBreadcrumb)return!1;const e=this._preselectedBreadcrumb.parentBreadcrumb();return!!e&&(this._setPreselectedBreadcrumb(e),!0)}_setPreselectedBreadcrumb(e){if(e===this._preselectedBreadcrumb)return;const t=this.element.hasFocus();this._preselectedBreadcrumb&&this._preselectedBreadcrumb.setPreselected(!1,t),this._preselectedBreadcrumb=e||this._inspectedNodeBreadcrumb,this._preselectedBreadcrumb&&this._preselectedBreadcrumb.setPreselected(!0,t),!e&&t&&r.OverlayModel.hideDOMNodeHighlight()}_collapseBreadcrumb(e){if(!e.parentBreadcrumb())return;const t=e.axNode().backendDOMNodeId();null!==t&&(this._collapsingBreadcrumbId=t);const a=e.parentBreadcrumb();a&&this._inspectDOMNode(a.axNode())}_onMouseLeave(e){this._setHoveredBreadcrumb(null)}_onMouseMove(e){const t=e.target;if(!t)return;const a=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!a)return void this._setHoveredBreadcrumb(null);const i=G.get(a);i&&i.isDOMNode()&&this._setHoveredBreadcrumb(i)}_onFocusOut(e){this._preselectedBreadcrumb&&e.target===this._preselectedBreadcrumb.nodeElement()&&this._setPreselectedBreadcrumb(null)}_onClick(e){const t=e.target;if(!t)return;const a=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!a)return void this._setHoveredBreadcrumb(null);const i=G.get(a);return i?i.inspected()?(this._collapseBreadcrumb(i),void i.nodeElement().focus()):void(i.isDOMNode()&&this._inspectDOMNode(i.axNode())):void 0}_setHoveredBreadcrumb(e){if(e===this._hoveredBreadcrumb)return;this._hoveredBreadcrumb&&this._hoveredBreadcrumb.setHovered(!1);const t=this.node();e?e.setHovered(!0):t&&t.id&&t.domModel().overlayModel().nodeHighlightRequested({nodeId:t.id}),this._hoveredBreadcrumb=e}_inspectDOMNode(e){if(!e.isDOMNode())return!1;const a=e.deferredDOMNode();return a&&a.resolve((e=>{this._axSidebarView.setNode(e,!0),t.reveal(e,!0)})),!0}_contextMenuEventFired(e){const t=e.target;if(!t)return;const i=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!i)return;const s=G.get(i);if(!s)return;const r=s.axNode();if(!r.isDOMNode()||!r.deferredDOMNode())return;const n=new h.ContextMenu(e);n.viewSection().appendItem(a`Scroll into view`,(()=>{const e=r.deferredDOMNode();e&&e.resolvePromise().then((e=>{e&&e.scrollIntoView()}))}));const o=r.deferredDOMNode();o&&n.appendApplicableItems(o),n.show()}}const G=new WeakMap;class J{constructor(e,t,a){if(this._axNode=e,this._element=document.createElement("div"),this._element.classList.add("ax-breadcrumb"),G.set(this._element,this),this._nodeElement=document.createElement("div"),this._nodeElement.classList.add("ax-node"),m.markAsTreeitem(this._nodeElement),this._nodeElement.tabIndex=-1,this._element.appendChild(this._nodeElement),this._nodeWrapper=document.createElement("div"),this._nodeWrapper.classList.add("wrapper"),this._nodeElement.appendChild(this._nodeWrapper),this._selectionElement=document.createElement("div"),this._selectionElement.classList.add("selection"),this._selectionElement.classList.add("fill"),this._nodeElement.appendChild(this._selectionElement),this._childrenGroupElement=document.createElement("div"),this._childrenGroupElement.classList.add("children"),m.markAsGroup(this._childrenGroupElement),this._element.appendChild(this._childrenGroupElement),this._children=[],this._hovered=!1,this._preselected=!1,this._parent=null,this._inspected=a,this._nodeElement.classList.toggle("inspected",a),this._nodeElement.style.paddingLeft=16*t+4+"px",this._axNode.ignored())this._appendIgnoredNodeElement();else{this._appendRoleElement(this._axNode.role());const e=this._axNode.name();e&&e.value&&(this._nodeWrapper.createChild("span","separator").textContent=" ",this._appendNameElement(e.value))}this._axNode.hasOnlyUnloadedChildren()&&(this._nodeElement.classList.add("children-unloaded"),m.setExpanded(this._nodeElement,!1)),this._axNode.isDOMNode()||this._nodeElement.classList.add("no-dom-node")}element(){return this._element}nodeElement(){return this._nodeElement}appendChild(e){this._children.push(e),e.setParent(this),this._nodeElement.classList.add("parent"),m.setExpanded(this._nodeElement,!0),this._childrenGroupElement.appendChild(e.element())}hasExpandedChildren(){return this._children.length}setParent(e){this._parent=e}preselected(){return this._preselected}setPreselected(e,t){this._preselected!==e&&(this._preselected=e,this._nodeElement.classList.toggle("preselected",e),this._nodeElement.tabIndex=e?0:-1,this._preselected&&(t&&this._nodeElement.focus(),this._inspected?r.OverlayModel.hideDOMNodeHighlight():this._axNode.highlightDOMNode()))}setHovered(e){this._hovered!==e&&(this._hovered=e,this._nodeElement.classList.toggle("hovered",e),this._hovered&&(this._nodeElement.classList.toggle("hovered",!0),this._axNode.highlightDOMNode()))}axNode(){return this._axNode}inspected(){return this._inspected}isDOMNode(){return this._axNode.isDOMNode()}nextBreadcrumb(){if(this._children.length)return this._children[0];const e=this.element().nextSibling;return e&&G.get(e)||null}previousBreadcrumb(){const e=this.element().previousSibling;return e?G.get(e)||null:this._parent}parentBreadcrumb(){return this._parent}lastChild(){return this._children[this._children.length-1]}_appendNameElement(e){const t=document.createElement("span");t.textContent='"'+e+'"',t.classList.add("ax-readable-string"),this._nodeWrapper.appendChild(t)}_appendRoleElement(e){if(!e)return;const t=document.createElement("span");t.classList.add("monospace"),t.classList.add(Q[e.type]),t.setTextContentTruncatedIfNeeded(e.value||""),this._nodeWrapper.appendChild(t)}_appendIgnoredNodeElement(){const e=document.createElement("span");e.classList.add("monospace"),e.textContent=a`Ignored`,e.classList.add("ax-breadcrumbs-ignored-node"),this._nodeWrapper.appendChild(e)}}const Q={internalRole:"ax-internal-role",role:"ax-role"};var Y=Object.freeze({__proto__:null,AXBreadcrumbsPane:U,AXBreadcrumb:J,RoleStyles:Q});class Z extends A{constructor(){super(a`Source Order Viewer`),this._noNodeInfo=this.createInfo(a`No source order information available`),this._warning=this.createInfo(a`There may be a delay in displaying source order for elements with many children`),this._warning.id="source-order-warning",this._checked=!1,this._checkboxLabel=c.CheckboxLabel.create(a`Show source order`,!1),this._checkboxElement=this._checkboxLabel.checkboxElement,this._checkboxLabel.classList.add("source-order-checkbox"),this._checkboxElement.addEventListener("click",this._checkboxClicked.bind(this),!1),this.element.appendChild(this._checkboxLabel),this._node=null,this._overlayModel=null}async setNodeAsync(e){if(this._checkboxLabel.classList.contains("hidden")||(this._checked=this._checkboxElement.checked),this._checkboxElement.checked=!1,this._checkboxClicked(),super.setNode(e),!this._node)return void(this._overlayModel=null);let t=!1;const a=this._node.childNodeCount();if(a>0){this._node.children()||await this._node.getSubtree(1,!1);t=this._node.children().some((e=>e.nodeType()===Node.ELEMENT_NODE))}this._noNodeInfo.classList.toggle("hidden",t),this._warning.classList.toggle("hidden",a<300),this._checkboxLabel.classList.toggle("hidden",!t),t?(this._overlayModel=this._node.domModel().overlayModel(),this._checkboxElement.checked=this._checked,this._checkboxClicked()):this._overlayModel=null}_checkboxClicked(){this._node&&this._overlayModel&&(this._checkboxElement.checked?(g.actionTaken(v.Action.SourceOrderViewActivated),this._overlayModel.highlightSourceOrderInOverlay(this._node)):this._overlayModel.hideSourceOrderInOverlay())}}let $;class ee extends p.ThrottledWidget{constructor(){super(),this._sourceOrderViewerExperimentEnabled=f.experiments.isEnabled("sourceOrderViewer"),this._node=null,this._axNode=null,this._skipNextPullNode=!1,this._sidebarPaneStack=b.ViewManager.instance().createStackLocation(),this._breadcrumbsSubPane=new U(this),this._sidebarPaneStack.showView(this._breadcrumbsSubPane),this._ariaSubPane=new W,this._sidebarPaneStack.showView(this._ariaSubPane),this._axNodeSubPane=new C,this._sidebarPaneStack.showView(this._axNodeSubPane),this._sourceOrderViewerExperimentEnabled&&(this._sourceOrderSubPane=new Z,this._sidebarPaneStack.showView(this._sourceOrderSubPane)),this._sidebarPaneStack.widget().show(this.element),_.Context.instance().addFlavorChangeListener(s.DOMNode,this._pullNode,this),this._pullNode()}static instance(){return $||($=new ee),$}node(){return this._node}axNode(){return this._axNode}setNode(e,t){this._skipNextPullNode=Boolean(t),this._node=e,this.update()}accessibilityNodeCallback(e){e&&(this._axNode=e,e.isDOMNode()?this._sidebarPaneStack.showView(this._ariaSubPane,this._axNodeSubPane):this._sidebarPaneStack.removeView(this._ariaSubPane),this._axNodeSubPane&&this._axNodeSubPane.setAXNode(e),this._breadcrumbsSubPane&&this._breadcrumbsSubPane.setAXNode(e))}async doUpdate(){const e=this.node();if(this._axNodeSubPane.setNode(e),this._ariaSubPane.setNode(e),this._breadcrumbsSubPane.setNode(e),this._sourceOrderViewerExperimentEnabled&&this._sourceOrderSubPane&&this._sourceOrderSubPane.setNodeAsync(e),!e)return;const t=e.domModel().target().model(i.AccessibilityModel);t&&(t.clear(),await t.requestPartialAXTree(e),this.accessibilityNodeCallback(t.axNodeForDOMNode(e)))}wasShown(){super.wasShown(),this.doUpdate(),n.TargetManager.instance().addModelListener(s.DOMModel,s.Events.AttrModified,this._onAttrChange,this),n.TargetManager.instance().addModelListener(s.DOMModel,s.Events.AttrRemoved,this._onAttrChange,this),n.TargetManager.instance().addModelListener(s.DOMModel,s.Events.CharacterDataModified,this._onNodeChange,this),n.TargetManager.instance().addModelListener(s.DOMModel,s.Events.ChildNodeCountUpdated,this._onNodeChange,this)}willHide(){n.TargetManager.instance().removeModelListener(s.DOMModel,s.Events.AttrModified,this._onAttrChange,this),n.TargetManager.instance().removeModelListener(s.DOMModel,s.Events.AttrRemoved,this._onAttrChange,this),n.TargetManager.instance().removeModelListener(s.DOMModel,s.Events.CharacterDataModified,this._onNodeChange,this),n.TargetManager.instance().removeModelListener(s.DOMModel,s.Events.ChildNodeCountUpdated,this._onNodeChange,this)}_pullNode(){this._skipNextPullNode?this._skipNextPullNode=!1:this.setNode(_.Context.instance().flavor(s.DOMNode))}_onAttrChange(e){if(!this.node())return;const t=e.data.node;this.node()===t&&this.update()}_onNodeChange(e){if(!this.node())return;const t=e.data;this.node()===t&&this.update()}}var te=Object.freeze({__proto__:null,AccessibilitySidebarView:ee});export{K as ARIAAttributesView,X as ARIAMetadata,Y as AXBreadcrumbsPane,V as AccessibilityNodeView,te as AccessibilitySidebarView,N as AccessibilityStrings,w as AccessibilitySubPane};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("accessibility/accessibilityNode.css","/*\n * Copyright 2017 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.widget.ax-subpane {\n overflow-x: hidden;\n user-select: text;\n}\n\n.ax-ignored-info {\n padding: 6px;\n}\n\n.ax-ignored-node-pane {\n flex: none;\n}\n\n.invalid {\n text-decoration: line-through;\n}\n\nspan.ax-value-undefined {\n font-style: italic;\n}\n\n.ax-value-source-unused {\n opacity: 70%;\n}\n\n.ax-value-source-superseded,\n.ax-value-source-invalid {\n text-decoration: line-through;\n}\n\n.tree-outline span[is=dt-icon-label] {\n position: relative;\n left: -11px;\n}\n\n.tree-outline li {\n display: block;\n overflow-x: hidden;\n align-items: baseline;\n}\n\n.tree-outline li::before {\n content: \"\";\n width: 14px;\n display: inline-block;\n}\n\n.tree-outline li.property {\n color: var(--color-text-primary);\n}\n\n.tree-outline li.invalid {\n position: relative;\n left: -2px;\n}\n\n.tree-outline span[is=dt-icon-label] + .ax-name {\n margin-left: -11px;\n}\n\n.tree-outline li span {\n flex-shrink: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (forced-colors: active) {\n .ax-value-source-unused {\n opacity: 100%;\n }\n\n .tree-outline-disclosure:hover li.parent::before {\n background-color: ButtonText;\n }\n}\n\n/*# sourceURL=accessibility/accessibilityNode.css */");RootModule.Runtime.cachedResources.set("accessibility/accessibilityProperties.css","/*\n * Copyright 2015 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.ax-name {\n color: var(--color-syntax-4);\n flex-shrink: 0;\n}\n\n.ax-readable-name {\n flex-shrink: 0;\n}\n\n.ax-readable-string {\n font-style: italic;\n}\n\n.ax-value-string {\n color: var(--color-syntax-1);\n}\n\nspan.ax-internal-role {\n font-style: italic;\n}\n\n#source-order-warning {\n padding-bottom: 0;\n text-align: left;\n}\n\n.source-order-checkbox {\n margin: 5px;\n}\n\n/*# sourceURL=accessibility/accessibilityProperties.css */");RootModule.Runtime.cachedResources.set("accessibility/axBreadcrumbs.css","/*\n * Copyright 2017 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.ax-breadcrumbs-ignored-node {\n font-style: italic;\n opacity: 70%;\n}\n\n.ax-breadcrumbs {\n padding-top: 1px;\n margin: 0;\n position: relative;\n}\n\n.ax-breadcrumbs .ax-node {\n align-items: center;\n margin-top: 1px;\n min-height: 16px;\n overflow-x: hidden;\n padding-left: 4px;\n padding-right: 4px;\n padding-top: 1px;\n position: relative;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ax-breadcrumbs .ax-node span {\n flex-shrink: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ax-breadcrumbs .ax-node .wrapper {\n padding-left: 12px;\n overflow-x: hidden;\n}\n\n.ax-breadcrumbs .ax-node::before {\n -webkit-mask-image: url(Images/chevrons.svg);\n -webkit-mask-position: 0 0;\n -webkit-mask-size: 30px 10px;\n -webkit-mask-repeat: no-repeat;\n background-color: var(--color-syntax-7);\n content: '';\n text-shadow: none;\n margin-right: -2px;\n height: 12px;\n width: 14px;\n position: absolute;\n display: inline-block;\n}\n\n.ax-breadcrumbs .ax-node:not(.parent):not(.children-unloaded)::before {\n background-color: transparent;\n}\n\n.ax-breadcrumbs .ax-node.parent::before {\n -webkit-mask-position: -20px 1px;\n}\n\n.ax-breadcrumbs .ax-node.no-dom-node {\n opacity: 70%;\n}\n\n.ax-breadcrumbs .ax-node.children-unloaded::before {\n -webkit-mask-position: 0 1px;\n width: 13px;\n opacity: 40%;\n}\n\n.ax-breadcrumbs .ax-node .selection {\n display: none;\n z-index: -1;\n}\n\n.ax-breadcrumbs .ax-node.inspected .selection {\n display: block;\n background-color: var(--color-background-elevation-2);\n}\n\n.ax-breadcrumbs .ax-node.inspected:focus .selection {\n background-color: var(--selection-bg-color);\n}\n\n.ax-breadcrumbs .ax-node.parent.inspected:focus::before {\n background-color: var(--color-background);\n}\n\n.ax-breadcrumbs .ax-node.inspected:focus {\n color: var(--color-background);\n}\n\n.ax-breadcrumbs .ax-node.inspected:focus * {\n color: inherit;\n}\n\n.ax-breadcrumbs .ax-node.preselected:not(.inspected) .selection,\n.ax-breadcrumbs .ax-node.hovered:not(.inspected) .selection {\n display: block;\n left: 2px;\n right: 2px;\n background-color: var(--item-hover-color);\n border-radius: 5px;\n}\n\n.ax-breadcrumbs .ax-node.preselected:not(.inspected):focus .selection {\n border: 1px solid var(--color-primary-variant);\n}\n\n@media (forced-colors: active) {\n .ax-value-source-unused,\n .ax-breadcrumbs .ax-node.children-unloaded::before {\n opacity: 100%;\n }\n\n .ax-breadcrumbs .ax-node.parent::before,\n .ax-breadcrumbs .ax-node.children-unloaded::before {\n forced-color-adjust: none;\n background-color: ButtonText;\n }\n\n .ax-breadcrumbs .ax-node.parent.inspected::before,\n .ax-breadcrumbs .ax-node.parent.inspected:focus::before {\n background-color: HighlightText;\n }\n\n .ax-breadcrumbs .ax-node.inspected .selection {\n forced-color-adjust: none;\n background: Highlight !important;\n }\n\n .ax-breadcrumbs .ax-node.inspected .wrapper {\n forced-color-adjust: none;\n color: HighlightText;\n }\n\n .ax-breadcrumbs .ax-node.preselected:not(.inspected) .selection,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected) .selection,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected) .wrapper,\n .ax-breadcrumbs .ax-node:focus-visible:not(.inspected) .wrapper {\n forced-color-adjust: none;\n background-color: Highlight;\n color: HighlightText;\n border-radius: 0;\n }\n\n .ax-breadcrumbs .ax-node.parent.hovered:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.parent:focus-visible:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.children-unloaded:focus-visible:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected).children-unloaded::before {\n background-color: HighlightText;\n }\n}\n\n/*# sourceURL=accessibility/axBreadcrumbs.css */");
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
|
|
9
|
+
self.AccessibilityTestRunner = self.AccessibilityTestRunner || {};
|
|
10
|
+
|
|
11
|
+
AccessibilityTestRunner.accessibilitySidebarPane = function() {
|
|
12
|
+
return self.runtime.sharedInstance(Accessibility.AccessibilitySidebarView);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
AccessibilityTestRunner.selectNodeAndWaitForAccessibility = function(idValue) {
|
|
16
|
+
return new Promise(resolve => {
|
|
17
|
+
ElementsTestRunner.selectNodeWithId(idValue, function() {
|
|
18
|
+
self.runtime.sharedInstance(Accessibility.AccessibilitySidebarView).doUpdate().then(resolve);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
AccessibilityTestRunner.dumpSelectedElementAccessibilityNode = function() {
|
|
24
|
+
const sidebarPane = AccessibilityTestRunner.accessibilitySidebarPane();
|
|
25
|
+
|
|
26
|
+
if (!sidebarPane) {
|
|
27
|
+
TestRunner.addResult('No sidebarPane in dumpSelectedElementAccessibilityNode');
|
|
28
|
+
TestRunner.completeTest();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
AccessibilityTestRunner.dumpAccessibilityNode(sidebarPane._axNodeSubPane._axNode);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
AccessibilityTestRunner.dumpAccessibilityNode = function(accessibilityNode) {
|
|
36
|
+
if (!accessibilityNode) {
|
|
37
|
+
TestRunner.addResult('<null>');
|
|
38
|
+
TestRunner.completeTest();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const builder = [];
|
|
43
|
+
builder.push(accessibilityNode.role().value);
|
|
44
|
+
builder.push((accessibilityNode.name() ? '"' + accessibilityNode.name().value + '"' : '<undefined>'));
|
|
45
|
+
|
|
46
|
+
if (accessibilityNode.properties()) {
|
|
47
|
+
for (const property of accessibilityNode.properties()) {
|
|
48
|
+
if ('value' in property) {
|
|
49
|
+
builder.push(property.name + '="' + property.value.value + '"');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
TestRunner.addResult(builder.join(' '));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
AccessibilityTestRunner.findARIAAttributeTreeElement = function(attribute) {
|
|
58
|
+
const sidebarPane = AccessibilityTestRunner.accessibilitySidebarPane();
|
|
59
|
+
|
|
60
|
+
if (!sidebarPane) {
|
|
61
|
+
TestRunner.addResult('Could not get Accessibility sidebar pane.');
|
|
62
|
+
TestRunner.completeTest();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const ariaSubPane = sidebarPane._ariaSubPane;
|
|
67
|
+
const treeOutline = ariaSubPane._treeOutline;
|
|
68
|
+
const childNodes = treeOutline._rootElement._children;
|
|
69
|
+
|
|
70
|
+
for (const treeElement of childNodes) {
|
|
71
|
+
if (treeElement._attribute.name === attribute) {
|
|
72
|
+
return treeElement;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return null;
|
|
77
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AnimationModel as n,AnimationTimeline as i,AnimationUI as o}from"./animation.js";self.Animation=self.Animation||{},Animation=Animation||{},Animation.AnimationModel=n.AnimationModel,Animation.AnimationModel.Events=n.Events,Animation.AnimationModel.Animation=n.AnimationImpl,Animation.AnimationModel.AnimationGroup=n.AnimationGroup,Animation.AnimationModel.ScreenshotCapture=n.ScreenshotCapture,Animation.AnimationTimeline=i.AnimationTimeline,Animation.AnimationUI=o.AnimationUI,Animation.AnimationUI.Events=o.Events;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i18n as i}from"../i18n/i18n.js";import{Runtime as n}from"../root/root.js";import{ViewManager as o}from"../ui/ui.js";let t;const a={animations:"Animations",showAnimations:"Show Animations"},e=i.registerUIStrings("animation/animation-meta.ts",a),m=i.getLazilyComputedLocalizedString.bind(void 0,e);o.registerViewExtension({location:"drawer-view",id:"animations",title:m(a.animations),commandPrompt:m(a.showAnimations),persistence:"closeable",order:0,loadView:async()=>(await async function(){return t||(await n.Runtime.instance().loadModulePromise("animation"),t=await import("./animation.js")),t}()).AnimationTimeline.AnimationTimeline.instance()});export{a as UIStrings};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Widget as e,UIUtils as t,Context as i,Toolbar as n,ARIAUtils as s,Tooltip as a,PopoverHelper as r,Geometry as o,ContextMenu as h}from"../ui/ui.js";import{Linkifier as l,Color as d,Revealer as _}from"../common/common.js";import{i18n as m}from"../i18n/i18n.js";import{BezierUI as c}from"../inline_editor/inline_editor.js";import{ArrayUtilities as u,StringUtilities as p}from"../platform/platform.js";import{userMetrics as f,UserMetrics as g}from"../host/host.js";import{SDKModel as b,RuntimeModel as y,ResourceTreeModel as v,ScreenCaptureModel as w,DOMModel as M}from"../sdk/sdk.js";class A extends b.SDKModel{constructor(e){super(e),this._runtimeModel=e.model(y.RuntimeModel),this._agent=e.animationAgent(),e.registerAnimationDispatcher(new R(this)),this._animationsById=new Map,this._animationGroups=new Map,this._pendingAnimations=new Set,this._playbackRate=1;e.model(v.ResourceTreeModel).addEventListener(v.Events.MainFrameNavigated,this._reset,this);const t=e.model(w.ScreenCaptureModel);t&&(this._screenshotCapture=new E(this,t))}_reset(){this._animationsById.clear(),this._animationGroups.clear(),this._pendingAnimations.clear(),this.dispatchEventToListeners(k.ModelReset)}animationCreated(e){this._pendingAnimations.add(e)}_animationCanceled(e){this._pendingAnimations.delete(e),this._flushPendingAnimationsIfNeeded()}animationStarted(e){if(!e.source||!e.source.backendNodeId)return;const t=S.parsePayload(this,e);if(!t)return;const i=t.source().keyframesRule();"WebAnimation"===t.type()&&i&&0===i.keyframes().length?this._pendingAnimations.delete(t.id()):(this._animationsById.set(t.id(),t),this._pendingAnimations.add(t.id())),this._flushPendingAnimationsIfNeeded()}_flushPendingAnimationsIfNeeded(){for(const e of this._pendingAnimations)if(!this._animationsById.get(e))return;for(;this._pendingAnimations.size;)this._matchExistingGroups(this._createGroupFromPendingAnimations())}_matchExistingGroups(e){let t=null;for(const i of this._animationGroups.values())if(i._matches(e)){t=i,i._update(e);break}return t||(this._animationGroups.set(e.id(),e),this._screenshotCapture&&this._screenshotCapture.captureScreenshots(e.finiteDuration(),e._screenshots)),this.dispatchEventToListeners(k.AnimationGroupStarted,t||e),Boolean(t)}_createGroupFromPendingAnimations(){console.assert(this._pendingAnimations.size>0);const e=this._pendingAnimations.values().next().value;this._pendingAnimations.delete(e);const t=this._animationsById.get(e);if(!t)throw new Error("Unable to locate first animation");const i=[t],n=t.startTime(),s=new Set;for(const e of this._pendingAnimations){const t=this._animationsById.get(e);t.startTime()===n?i.push(t):s.add(e)}return this._pendingAnimations=s,new x(this,e,i)}setPlaybackRate(e){this._playbackRate=e,this._agent.invoke_setPlaybackRate({playbackRate:e})}_releaseAnimations(e){this._agent.invoke_releaseAnimations({animations:e})}async suspendModel(){this._reset(),await this._agent.invoke_disable()}async resumeModel(){this._enabled&&await this._agent.invoke_enable()}async ensureEnabled(){this._enabled||(await this._agent.invoke_enable(),this._enabled=!0)}}var k;!function(e){e.AnimationGroupStarted="AnimationGroupStarted",e.ModelReset="ModelReset"}(k||(k={}));class S{constructor(e,t){this._animationModel=e,this._payload=t,this._source=new C(e,this._payload.source)}static parsePayload(e,t){return new S(e,t)}payload(){return this._payload}id(){return this._payload.id}name(){return this._payload.name}paused(){return this._payload.pausedState}playState(){return this._playState||this._payload.playState}setPlayState(e){this._playState=e}playbackRate(){return this._payload.playbackRate}startTime(){return this._payload.startTime}endTime(){return this.source().iterations?this.startTime()+this.source().delay()+this.source().duration()*this.source().iterations()+this.source().endDelay():1/0}_finiteDuration(){const e=Math.min(this.source().iterations(),3);return this.source().delay()+this.source().duration()*e}currentTime(){return this._payload.currentTime}source(){return this._source}type(){return this._payload.type}overlaps(e){if(!this.source().iterations()||!e.source().iterations())return!0;const t=this.startTime()<e.startTime()?this:e,i=t===this?e:this;return t.endTime()>=i.startTime()}setTiming(e,t){this._source.node().then((i=>{if(!i)throw new Error("Unable to find node");this._updateNodeStyle(e,t,i)})),this._source._duration=e,this._source._delay=t,this._animationModel._agent.invoke_setTiming({animationId:this.id(),duration:e,delay:t})}_updateNodeStyle(e,t,i){let n;if(this.type()===Protocol.Animation.AnimationType.CSSTransition)n="transition-";else{if(this.type()!==Protocol.Animation.AnimationType.CSSAnimation)return;n="animation-"}if(!i.id)throw new Error("Node has no id");const s=i.domModel().cssModel();s.setEffectivePropertyValueForNode(i.id,n+"duration",e+"ms"),s.setEffectivePropertyValueForNode(i.id,n+"delay",t+"ms")}async remoteObjectPromise(){const e=await this._animationModel._agent.invoke_resolveAnimation({animationId:this.id()});return e?this._animationModel._runtimeModel.createRemoteObject(e.remoteObject):null}_cssId(){return this._payload.cssId||""}}class C{constructor(e,t){this._animationModel=e,this._payload=t,t.keyframesRule&&(this._keyframesRule=new T(t.keyframesRule)),this._delay=this._payload.delay,this._duration=this._payload.duration}delay(){return this._delay}endDelay(){return this._payload.endDelay}iterationStart(){return this._payload.iterationStart}iterations(){return this.delay()||this.endDelay()||this.duration()?this._payload.iterations||1/0:0}duration(){return this._duration}direction(){return this._payload.direction}fill(){return this._payload.fill}node(){return this._deferredNode||(this._deferredNode=new M.DeferredDOMNode(this._animationModel.target(),this.backendNodeId())),this._deferredNode.resolvePromise()}deferredNode(){return new M.DeferredDOMNode(this._animationModel.target(),this.backendNodeId())}backendNodeId(){return this._payload.backendNodeId}keyframesRule(){return this._keyframesRule||null}easing(){return this._payload.easing}}class T{constructor(e){this._payload=e,this._keyframes=this._payload.keyframes.map((function(e){return new P(e)}))}_setKeyframesPayload(e){this._keyframes=e.map((function(e){return new P(e)}))}name(){return this._payload.name}keyframes(){return this._keyframes}}class P{constructor(e){this._payload=e,this._offset=this._payload.offset}offset(){return this._offset}setOffset(e){this._offset=100*e+"%"}offsetAsNumber(){return parseFloat(this._offset)/100}easing(){return this._payload.easing}}class x{constructor(e,t,i){this._animationModel=e,this._id=t,this._animations=i,this._paused=!1,this._screenshots=[],this._screenshotImages=[]}id(){return this._id}animations(){return this._animations}release(){this._animationModel._animationGroups.delete(this.id()),this._animationModel._releaseAnimations(this._animationIds())}_animationIds(){return this._animations.map((function(e){return e.id()}))}startTime(){return this._animations[0].startTime()}finiteDuration(){let e=0;for(let t=0;t<this._animations.length;++t)e=Math.max(e,this._animations[t]._finiteDuration());return e}seekTo(e){this._animationModel._agent.invoke_seekAnimations({animations:this._animationIds(),currentTime:e})}paused(){return this._paused}togglePause(e){e!==this._paused&&(this._paused=e,this._animationModel._agent.invoke_setPaused({animations:this._animationIds(),paused:e}))}currentTimePromise(){let e=null;for(const t of this._animations)(!e||t.endTime()>e.endTime())&&(e=t);if(!e)throw new Error("No longest animation found");return this._animationModel._agent.invoke_getCurrentTime({id:e.id()}).then((({currentTime:e})=>e||0))}_matches(e){function t(e){return e.type()===Protocol.Animation.AnimationType.WebAnimation?e.type()+e.id():e._cssId()}if(this._animations.length!==e._animations.length)return!1;const i=this._animations.map(t).sort(),n=e._animations.map(t).sort();for(let e=0;e<i.length;e++)if(i[e]!==n[e])return!1;return!0}_update(e){this._animationModel._releaseAnimations(this._animationIds()),this._animations=e._animations}screenshots(){for(let e=0;e<this._screenshots.length;++e){const t=new Image;t.src="data:image/jpeg;base64,"+this._screenshots[e],this._screenshotImages.push(t)}return this._screenshots=[],this._screenshotImages}}class R{constructor(e){this._animationModel=e}animationCreated({id:e}){this._animationModel.animationCreated(e)}animationCanceled({id:e}){this._animationModel._animationCanceled(e)}animationStarted({animation:e}){this._animationModel.animationStarted(e)}}class E{constructor(e,t){this._requests=[],this._screenCaptureModel=t,this._animationModel=e,this._animationModel.addEventListener(k.ModelReset,this._stopScreencast,this)}captureScreenshots(e,t){const i=Math.min(e/this._animationModel._playbackRate,3e3),n=i+window.performance.now();this._requests.push({endTime:n,screenshots:t}),(!this._endTime||n>this._endTime)&&(clearTimeout(this._stopTimer),this._stopTimer=window.setTimeout(this._stopScreencast.bind(this),i),this._endTime=n),this._capturing||(this._capturing=!0,this._screenCaptureModel.startScreencast(Protocol.Page.StartScreencastRequestFormat.Jpeg,80,void 0,300,2,this._screencastFrame.bind(this),(e=>{})))}_screencastFrame(e,t){if(!this._capturing)return;const i=window.performance.now();this._requests=this._requests.filter((function(e){return e.endTime>=i}));for(const t of this._requests)t.screenshots.push(e)}_stopScreencast(){this._capturing&&(delete this._stopTimer,delete this._endTime,this._requests=[],this._capturing=!1,this._screenCaptureModel.stopScreencast())}}b.SDKModel.register(A,b.Capability.DOM,!1);var B=Object.freeze({__proto__:null,AnimationModel:A,get Events(){return k},AnimationImpl:S,AnimationEffect:C,KeyframesRule:T,KeyframeStyle:P,AnimationGroup:x,AnimationDispatcher:R,ScreenshotCapture:E});class G extends e.VBox{constructor(e){super(!0),console.assert(e.length>0),this.registerRequiredCSS("animation/animationScreenshotPopover.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("animation-screenshot-popover"),this._frames=e;for(const t of e)this.contentElement.appendChild(t),t.style.display="none";this._rafId=0,this._currentFrame=0,this._frames[0].style.display="block",this._progressBar=this.contentElement.createChild("div","animation-progress")}wasShown(){this._rafId=this.contentElement.window().requestAnimationFrame(this._changeFrame.bind(this))}willHide(){this.contentElement.window().cancelAnimationFrame(this._rafId),delete this._endDelay}_changeFrame(){if(this._rafId=this.contentElement.window().requestAnimationFrame(this._changeFrame.bind(this)),this._endDelay)return void this._endDelay--;if(this._showFrame=!this._showFrame,!this._showFrame)return;const e=this._frames.length;this._frames[this._currentFrame%e].style.display="none",this._currentFrame++,this._frames[this._currentFrame%e].style.display="block",this._currentFrame%e==e-1&&(this._endDelay=50),this._progressBar.style.width=(this._currentFrame%e+1)/e*100+"%"}}var L=Object.freeze({__proto__:null,AnimationScreenshotPopover:G});const I={selectAnEffectAboveToInspectAnd:"Select an effect above to inspect and modify.",clearAll:"Clear all",pauseAll:"Pause all",playbackRates:"Playback rates",playbackRatePlaceholder:"{PH1}%",pause:"Pause",setSpeedToS:"Set speed to {PH1}",animationPreviews:"Animation previews",listeningForAnimations:"Listening for animations...",replayTimeline:"Replay timeline",resumeAll:"Resume all",playTimeline:"Play timeline",pauseTimeline:"Pause timeline",animationPreviewS:"Animation Preview {PH1}"},D=m.registerUIStrings("animation/AnimationTimeline.ts",I),F=m.getLocalizedString.bind(void 0,D),N=new WeakMap,H=new WeakMap;let O;class K extends e.VBox{constructor(){super(!0),this.registerRequiredCSS("animation/animationTimeline.css",{enableLegacyPatching:!1}),this.element.classList.add("animations-timeline"),this._gridWrapper=this.contentElement.createChild("div","grid-overflow-wrapper"),this._grid=t.createSVGChild(this._gridWrapper,"svg","animation-timeline-grid"),this._playbackRate=1,this._allPaused=!1,this._createHeader(),this._animationsContainer=this.contentElement.createChild("div","animation-timeline-rows");this.contentElement.createChild("div","animation-timeline-rows-hint").textContent=F(I.selectAnEffectAboveToInspectAnd),this._defaultDuration=100,this._duration=this._defaultDuration,this._timelineControlsWidth=150,this._nodesMap=new Map,this._uiAnimations=[],this._groupBuffer=[],this._previewMap=new Map,this._symbol=Symbol("animationTimeline"),this._animationsMap=new Map,b.TargetManager.instance().addModelListener(M.DOMModel,M.Events.NodeRemoved,this._nodeRemoved,this),b.TargetManager.instance().observeModels(A,this),i.Context.instance().addFlavorChangeListener(M.DOMNode,this._nodeChanged,this)}static instance(){return O||(O=new K),O}wasShown(){for(const e of b.TargetManager.instance().models(A))this._addEventListeners(e)}willHide(){for(const e of b.TargetManager.instance().models(A))this._removeEventListeners(e);this._popoverHelper&&this._popoverHelper.hidePopover()}modelAdded(e){this.isShowing()&&this._addEventListeners(e)}modelRemoved(e){this._removeEventListeners(e)}_addEventListeners(e){e.ensureEnabled(),e.addEventListener(k.AnimationGroupStarted,this._animationGroupStarted,this),e.addEventListener(k.ModelReset,this._reset,this)}_removeEventListeners(e){e.removeEventListener(k.AnimationGroupStarted,this._animationGroupStarted,this),e.removeEventListener(k.ModelReset,this._reset,this)}_nodeChanged(){for(const e of this._nodesMap.values())e._nodeChanged()}_createScrubber(){return this._timelineScrubber=document.createElement("div"),this._timelineScrubber.classList.add("animation-scrubber"),this._timelineScrubber.classList.add("hidden"),this._timelineScrubberLine=this._timelineScrubber.createChild("div","animation-scrubber-line"),this._timelineScrubberLine.createChild("div","animation-scrubber-head"),this._timelineScrubber.createChild("div","animation-time-overlay"),this._timelineScrubber}_createHeader(){const e=this.contentElement.createChild("div","animation-timeline-toolbar-container"),i=new n.Toolbar("animation-timeline-toolbar",e);this._clearButton=new n.ToolbarButton(F(I.clearAll),"largeicon-clear"),this._clearButton.addEventListener(n.ToolbarButton.Events.Click,this._reset.bind(this)),i.appendToolbarItem(this._clearButton),i.appendSeparator(),this._pauseButton=new n.ToolbarToggle(F(I.pauseAll),"largeicon-pause","largeicon-resume"),this._pauseButton.addEventListener(n.ToolbarButton.Events.Click,this._togglePauseAll.bind(this)),i.appendToolbarItem(this._pauseButton);const o=e.createChild("div","animation-playback-rate-control");o.addEventListener("keydown",this._handlePlaybackRateControlKeyDown.bind(this)),s.markAsListBox(o),s.setAccessibleName(o,F(I.playbackRates)),this._playbackRateButtons=[];for(const e of U){const t=o.createChild("button","animation-playback-rate-button");t.textContent=e?F(I.playbackRatePlaceholder,{PH1:100*e}):F(I.pause),H.set(t,e),t.addEventListener("click",this._setPlaybackRate.bind(this,e)),s.markAsOption(t),a.Tooltip.install(t,F(I.setSpeedToS,{PH1:t.textContent})),t.tabIndex=-1,this._playbackRateButtons.push(t)}this._updatePlaybackControls(),this._previewContainer=this.contentElement.createChild("div","animation-timeline-buffer"),s.markAsListBox(this._previewContainer),s.setAccessibleName(this._previewContainer,F(I.animationPreviews)),this._popoverHelper=new r.PopoverHelper(this._previewContainer,this._getPopoverRequest.bind(this)),this._popoverHelper.setDisableOnClick(!0),this._popoverHelper.setTimeout(0);this.contentElement.createChild("div","animation-timeline-buffer-hint").textContent=F(I.listeningForAnimations);const h=this.contentElement.createChild("div","animation-timeline-header"),l=h.createChild("div","animation-controls");this._currentTime=l.createChild("div","animation-timeline-current-time monospace");const d=new n.Toolbar("animation-controls-toolbar",l);this._controlButton=new n.ToolbarToggle(F(I.replayTimeline),"largeicon-replay-animation"),this._controlState="replay-outline",this._controlButton.setToggled(!0),this._controlButton.addEventListener(n.ToolbarButton.Events.Click,this._controlButtonToggle.bind(this)),d.appendToolbarItem(this._controlButton);const _=h.createChild("div","animation-grid-header");return t.installDragHandle(_,this._repositionScrubber.bind(this),this._scrubberDragMove.bind(this),this._scrubberDragEnd.bind(this),"text"),this._gridWrapper.appendChild(this._createScrubber()),this._timelineScrubberLine&&t.installDragHandle(this._timelineScrubberLine,this._scrubberDragStart.bind(this),this._scrubberDragMove.bind(this),this._scrubberDragEnd.bind(this),"col-resize"),this._currentTime.textContent="",h}_handlePlaybackRateControlKeyDown(e){switch(e.key){case"ArrowLeft":case"ArrowUp":this._focusNextPlaybackRateButton(e.target,!0);break;case"ArrowRight":case"ArrowDown":this._focusNextPlaybackRateButton(e.target)}}_focusNextPlaybackRateButton(e,t){const i=e,n=this._playbackRateButtons.indexOf(i),s=t?n-1:n+1;if(s<0||s>=this._playbackRateButtons.length)return;const a=this._playbackRateButtons[s];a.tabIndex=0,a.focus(),e&&(e.tabIndex=-1)}_getPopoverRequest(e){const t=e.target;return t&&t.isDescendant(this._previewContainer)?{box:t.boxInWindow(),show:e=>{let i;for(const[e,n]of this._previewMap)n.element===t.parentElement&&(i=e);if(console.assert(void 0!==i),!i)return Promise.resolve(!1);const n=i.screenshots();if(!n.length)return Promise.resolve(!1);let s;const a=new Promise((e=>{s=e}));return n[0].complete?r(n):n[0].onload=r.bind(null,n),a;function r(t){new G(t).show(e.contentElement),s(!0)}},hide:void 0}:null}_togglePauseAll(){this._allPaused=!this._allPaused,this._pauseButton&&this._pauseButton.setToggled(this._allPaused),this._setPlaybackRate(this._playbackRate),this._pauseButton&&this._pauseButton.setTitle(this._allPaused?F(I.resumeAll):F(I.pauseAll))}_setPlaybackRate(e){this._playbackRate=e;for(const e of b.TargetManager.instance().models(A))e.setPlaybackRate(this._allPaused?0:this._playbackRate);f.actionTaken(g.Action.AnimationsPlaybackRateChanged),this._scrubberPlayer&&(this._scrubberPlayer.playbackRate=this._effectivePlaybackRate()),this._updatePlaybackControls()}_updatePlaybackControls(){for(const e of this._playbackRateButtons){const t=this._playbackRate===H.get(e);e.classList.toggle("selected",t),e.tabIndex=t?0:-1}}_controlButtonToggle(){"play-outline"===this._controlState?this._togglePause(!1):"replay-outline"===this._controlState?this._replay():this._togglePause(!0)}_updateControlButton(){this._controlButton&&(this._controlButton.setEnabled(Boolean(this._selectedGroup)),this._selectedGroup&&this._selectedGroup.paused()?(this._controlState="play-outline",this._controlButton.setToggled(!0),this._controlButton.setTitle(F(I.playTimeline)),this._controlButton.setGlyph("largeicon-play-animation")):!this._scrubberPlayer||!this._scrubberPlayer.currentTime||this._scrubberPlayer.currentTime>=this.duration()?(this._controlState="replay-outline",this._controlButton.setToggled(!0),this._controlButton.setTitle(F(I.replayTimeline)),this._controlButton.setGlyph("largeicon-replay-animation")):(this._controlState="pause-outline",this._controlButton.setToggled(!1),this._controlButton.setTitle(F(I.pauseTimeline)),this._controlButton.setGlyph("largeicon-pause-animation")))}_effectivePlaybackRate(){return this._allPaused||this._selectedGroup&&this._selectedGroup.paused()?0:this._playbackRate}_togglePause(e){if(this._scrubberPlayer&&(this._scrubberPlayer.playbackRate=this._effectivePlaybackRate()),this._selectedGroup){this._selectedGroup.togglePause(e);const t=this._previewMap.get(this._selectedGroup);t&&t.element.classList.toggle("paused",e)}this._updateControlButton()}_replay(){this._selectedGroup&&(this._selectedGroup.seekTo(0),this._animateTime(0),this._updateControlButton())}duration(){return this._duration}setDuration(e){this._duration=e,this.scheduleRedraw()}_clearTimeline(){this._uiAnimations=[],this._nodesMap.clear(),this._animationsMap.clear(),this._animationsContainer.removeChildren(),this._duration=this._defaultDuration,this._timelineScrubber.classList.add("hidden"),this._selectedGroup=null,this._scrubberPlayer&&this._scrubberPlayer.cancel(),delete this._scrubberPlayer,this._currentTime.textContent="",this._updateControlButton()}_reset(){this._clearTimeline(),this._allPaused?this._togglePauseAll():this._setPlaybackRate(this._playbackRate);for(const e of this._groupBuffer)e.release();this._groupBuffer=[],this._previewMap.clear(),this._previewContainer.removeChildren(),this._popoverHelper.hidePopover(),this._renderGrid()}_animationGroupStarted(e){this._addAnimationGroup(e.data)}_addAnimationGroup(e){const t=this._previewMap.get(e);if(t)return void(this._selectedGroup===e?this._syncScrubber():t.replay());this._groupBuffer.sort((function(e,t){return e.startTime()===t.startTime()?0:e.startTime()>t.startTime()?1:-1}));const i=[],n=this.width()/50;for(;this._groupBuffer.length>n;){const e=this._groupBuffer.splice(this._groupBuffer[0]===this._selectedGroup?1:0,1);i.push(e[0])}for(const e of i){const t=this._previewMap.get(e);t&&(t.element.remove(),this._previewMap.delete(e),e.release())}const a=new Y(e);if(this._groupBuffer.push(e),this._previewMap.set(e,a),this._previewContainer.appendChild(a.element),a.removeButton().addEventListener("click",this._removeAnimationGroup.bind(this,e)),a.element.addEventListener("click",this._selectAnimationGroup.bind(this,e)),a.element.addEventListener("keydown",this._handleAnimationGroupKeyDown.bind(this,e)),s.setAccessibleName(a.element,F(I.animationPreviewS,{PH1:this._groupBuffer.indexOf(e)+1})),s.markAsOption(a.element),1===this._previewMap.size){const e=this._previewMap.get(this._groupBuffer[0]);e&&(e.element.tabIndex=0)}}_handleAnimationGroupKeyDown(e,t){switch(t.key){case" ":case"Enter":this._selectAnimationGroup(e);break;case"Backspace":case"Delete":this._removeAnimationGroup(e,t);break;case"ArrowLeft":case"ArrowUp":this._focusNextGroup(e,t.target,!0);break;case"ArrowRight":case"ArrowDown":this._focusNextGroup(e,t.target)}}_focusNextGroup(e,t,i){const n=this._groupBuffer.indexOf(e),s=i?n-1:n+1;if(s<0||s>=this._groupBuffer.length)return;const a=this._previewMap.get(this._groupBuffer[s]);a&&(a.element.tabIndex=0,a.element.focus()),t&&(t.tabIndex=-1)}_removeAnimationGroup(e,t){const i=this._groupBuffer.indexOf(e);u.removeElement(this._groupBuffer,e);const n=this._previewMap.get(e);n&&n.element.remove(),this._previewMap.delete(e),e.release(),t.consume(!0),this._selectedGroup===e&&(this._clearTimeline(),this._renderGrid());if(0===this._groupBuffer.length)return void this._clearButton.element.focus();const s=i>=this._groupBuffer.length?this._previewMap.get(this._groupBuffer[this._groupBuffer.length-1]):this._previewMap.get(this._groupBuffer[i]);s&&(s.element.tabIndex=0,s.element.focus())}_selectAnimationGroup(e){if(this._selectedGroup===e)return this._togglePause(!1),void this._replay();this._clearTimeline(),this._selectedGroup=e,this._previewMap.forEach((function(e,t){e.element.classList.toggle("selected",this._selectedGroup===t)}),this),this.setDuration(Math.max(500,e.finiteDuration()+100));for(const t of e.animations())this._addAnimation(t);this.scheduleRedraw(),this._timelineScrubber.classList.remove("hidden"),this._togglePause(!1),this._replay()}_addAnimation(e){let t=this._nodesMap.get(e.source().backendNodeId());t||(t=new V(e.source()),this._animationsContainer.appendChild(t.element),this._nodesMap.set(e.source().backendNodeId(),t));const i=t.createNewRow(),n=new Q(e,this,i);e.source().deferredNode().resolve(function(e){n.setNode(e),e&&t&&(t.nodeResolved(e),N.set(e,t))}.bind(this)),this._uiAnimations.push(n),this._animationsMap.set(e.id(),e)}_nodeRemoved(e){const t=e.data.node,i=N.get(t);i&&i.nodeRemoved()}_renderGrid(){const e=(this.width()+10).toString(),i=((this._cachedTimelineHeight||0)+30).toString();this._gridWrapper.style.width=e+"px",this._gridWrapper.style.height=i.toString()+"px",this._grid.setAttribute("width",e),this._grid.setAttribute("height",i.toString()),this._grid.setAttribute("shape-rendering","crispEdges"),this._grid.removeChildren();let n=void 0;for(let e=0;e<this.duration();e+=250){const i=t.createSVGChild(this._grid,"rect","animation-timeline-grid-line");i.setAttribute("x",(e*this.pixelMsRatio()+10).toString()),i.setAttribute("y","23"),i.setAttribute("height","100%"),i.setAttribute("width","1")}for(let e=0;e<this.duration();e+=250){const i=e*this.pixelMsRatio();if(void 0===n||i-n>50){n=i;const s=t.createSVGChild(this._grid,"text","animation-timeline-grid-label");s.textContent=Number.millisToString(e),s.setAttribute("x",(i+10).toString()),s.setAttribute("y","16")}}}scheduleRedraw(){this._renderQueue=[];for(const e of this._uiAnimations)this._renderQueue.push(e);this._redrawing||(this._redrawing=!0,this._renderGrid(),this._animationsContainer.window().requestAnimationFrame(this._render.bind(this)))}_render(e){for(;this._renderQueue.length&&(!e||window.performance.now()-e<50);){const e=this._renderQueue.shift();e&&e.redraw()}this._renderQueue.length?this._animationsContainer.window().requestAnimationFrame(this._render.bind(this)):delete this._redrawing}onResize(){this._cachedTimelineWidth=Math.max(0,this._animationsContainer.offsetWidth-this._timelineControlsWidth)||0,this._cachedTimelineHeight=this._animationsContainer.offsetHeight,this.scheduleRedraw(),this._scrubberPlayer&&this._syncScrubber(),delete this._gridOffsetLeft}width(){return this._cachedTimelineWidth||0}_resizeWindow(e){let t=!1;const i=e.source().duration()*Math.min(2,e.source().iterations()),n=e.source().delay()+i+e.source().endDelay();return n>this._duration&&(t=!0,this._duration=n+200),t}_syncScrubber(){this._selectedGroup&&this._selectedGroup.currentTimePromise().then(this._animateTime.bind(this)).then(this._updateControlButton.bind(this))}_animateTime(e){this._scrubberPlayer&&this._scrubberPlayer.cancel(),this._scrubberPlayer=this._timelineScrubber.animate([{transform:"translateX(0px)"},{transform:"translateX("+this.width()+"px)"}],{duration:this.duration(),fill:"forwards"}),this._scrubberPlayer.playbackRate=this._effectivePlaybackRate(),this._scrubberPlayer.onfinish=this._updateControlButton.bind(this),this._scrubberPlayer.currentTime=e,this.element.window().requestAnimationFrame(this._updateScrubber.bind(this))}pixelMsRatio(){return this.width()/this.duration()||0}_updateScrubber(e){this._scrubberPlayer&&(this._currentTime.textContent=Number.millisToString(this._scrubberPlayer.currentTime||0),"pending"===this._scrubberPlayer.playState.toString()||"running"===this._scrubberPlayer.playState?this.element.window().requestAnimationFrame(this._updateScrubber.bind(this)):"finished"===this._scrubberPlayer.playState&&(this._currentTime.textContent=""))}_repositionScrubber(e){if(!this._selectedGroup)return!1;this._gridOffsetLeft||(this._gridOffsetLeft=this._grid.totalOffsetLeft()+10);const{x:t}=e,i=Math.max(0,t-this._gridOffsetLeft)/this.pixelMsRatio();return this._selectedGroup.seekTo(i),this._togglePause(!0),this._animateTime(i),this._originalScrubberTime=i,this._originalMousePosition=t,!0}_scrubberDragStart(e){if(!this._scrubberPlayer||!this._selectedGroup)return!1;this._originalScrubberTime=this._scrubberPlayer.currentTime,this._timelineScrubber.classList.remove("animation-timeline-end"),this._scrubberPlayer.pause();const{x:t}=e;return this._originalMousePosition=t,this._togglePause(!0),!0}_scrubberDragMove(e){const{x:t}=e,i=t-(this._originalMousePosition||0),n=Math.max(0,Math.min((this._originalScrubberTime||0)+i/this.pixelMsRatio(),this.duration()));this._scrubberPlayer&&(this._scrubberPlayer.currentTime=n),this._currentTime.textContent=Number.millisToString(Math.round(n)),this._selectedGroup&&this._selectedGroup.seekTo(n)}_scrubberDragEnd(e){if(this._scrubberPlayer){const e=Math.max(0,this._scrubberPlayer.currentTime||0);this._scrubberPlayer.play(),this._scrubberPlayer.currentTime=e}this._currentTime.window().requestAnimationFrame(this._updateScrubber.bind(this))}}const U=[1,.25,.1];class V{constructor(e){this.element=document.createElement("div"),this.element.classList.add("animation-node-row"),this._description=this.element.createChild("div","animation-node-description"),this._description.tabIndex=0,this._timelineElement=this.element.createChild("div","animation-node-timeline"),s.markAsApplication(this._timelineElement)}nodeResolved(e){e?(this._node=e,this._nodeChanged(),l.Linkifier.linkify(e).then((e=>this._description.appendChild(e))),e.ownerDocument||this.nodeRemoved()):t.createTextChild(this._description,"<node>")}createNewRow(){return this._timelineElement.createChild("div","animation-timeline-row")}nodeRemoved(){this.element.classList.add("animation-node-removed"),this._node=null}_nodeChanged(){let e=!1;this._node&&(e=this._node===i.Context.instance().flavor(M.DOMNode)),this.element.classList.toggle("animation-node-selected",e)}}class j{constructor(e,t){this.steps=e,this.stepAtPosition=t}static parse(e){let t=e.match(/^steps\((\d+), (start|middle)\)$/);return t?new j(parseInt(t[1],10),t[2]):(t=e.match(/^steps\((\d+)\)$/),t?new j(parseInt(t[1],10),"end"):null)}}var q=Object.freeze({__proto__:null,UIStrings:I,AnimationTimeline:K,GlobalPlaybackRates:U,NodeUI:V,StepTimingFunction:j});const z={animationEndpointSlider:"Animation Endpoint slider",animationKeyframeSlider:"Animation Keyframe slider",sSlider:"{PH1} slider"},W=m.registerUIStrings("animation/AnimationUI.ts",z),X=m.getLocalizedString.bind(void 0,W);class Q{constructor(e,i,n){this._animation=e,this._timeline=i,this._parentElement=n;const s=this._animation.source().keyframesRule();s&&(this._keyframes=s.keyframes()),this._nameElement=n.createChild("div","animation-name"),this._nameElement.textContent=this._animation.name(),this._svg=t.createSVGChild(n,"svg","animation-ui"),this._svg.setAttribute("height",$.AnimationSVGHeight.toString()),this._svg.style.marginLeft="-"+$.AnimationMargin+"px",this._svg.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._activeIntervalGroup=t.createSVGChild(this._svg,"g"),t.installDragHandle(this._activeIntervalGroup,this._mouseDown.bind(this,"AnimationDrag",null),this._mouseMove.bind(this),this._mouseUp.bind(this),"-webkit-grabbing","-webkit-grab"),Q.installDragHandleKeyboard(this._activeIntervalGroup,this._keydownMove.bind(this,"AnimationDrag",null)),this._cachedElements=[],this._movementInMs=0,this._keyboardMovementRateMs=50,this._color=Q.Color(this._animation)}static Color(e){const t=Array.from(J.keys()),i=t[p.hashCode(e.name()||e.id())%t.length],n=J.get(i);if(!n)throw new Error("Unable to locate color");return n.asString(d.Format.RGB)||""}static installDragHandleKeyboard(e,t){e.addEventListener("keydown",t,!1)}animation(){return this._animation}setNode(e){this._node=e}_createLine(e,i){const n=t.createSVGChild(e,"line",i);return n.setAttribute("x1",$.AnimationMargin.toString()),n.setAttribute("y1",$.AnimationHeight.toString()),n.setAttribute("y2",$.AnimationHeight.toString()),n.style.stroke=this._color,n}_drawAnimationLine(e,t){const i=this._cachedElements[e];i.animationLine||(i.animationLine=this._createLine(t,"animation-line")),i.animationLine&&i.animationLine.setAttribute("x2",(this._duration()*this._timeline.pixelMsRatio()+$.AnimationMargin).toFixed(2))}_drawDelayLine(e){this._delayLine&&this._endDelayLine||(this._delayLine=this._createLine(e,"animation-delay-line"),this._endDelayLine=this._createLine(e,"animation-delay-line"));const t=this._animation.source().fill();this._delayLine.classList.toggle("animation-fill","backwards"===t||"both"===t);const i=$.AnimationMargin;this._delayLine.setAttribute("x1",i.toString()),this._delayLine.setAttribute("x2",(this._delay()*this._timeline.pixelMsRatio()+i).toFixed(2));const n="forwards"===t||"both"===t;this._endDelayLine.classList.toggle("animation-fill",n);const s=Math.min(this._timeline.width(),(this._delay()+this._duration()*this._animation.source().iterations())*this._timeline.pixelMsRatio());this._endDelayLine.style.transform="translateX("+s.toFixed(2)+"px)",this._endDelayLine.setAttribute("x1",i.toString()),this._endDelayLine.setAttribute("x2",n?(this._timeline.width()-s+i).toFixed(2):(this._animation.source().endDelay()*this._timeline.pixelMsRatio()+i).toFixed(2))}_drawPoint(e,i,n,a,r){if(this._cachedElements[e].keyframePoints[a])return void this._cachedElements[e].keyframePoints[a].setAttribute("cx",n.toFixed(2));const o=t.createSVGChild(i,"circle",a<=0?"animation-endpoint":"animation-keyframe-point");if(o.setAttribute("cx",n.toFixed(2)),o.setAttribute("cy",$.AnimationHeight.toString()),o.style.stroke=this._color,o.setAttribute("r",($.AnimationMargin/2).toString()),o.tabIndex=0,s.setAccessibleName(o,X(a<=0?z.animationEndpointSlider:z.animationKeyframeSlider)),a<=0&&(o.style.fill=this._color),this._cachedElements[e].keyframePoints[a]=o,!r)return;let h;h=0===a?"StartEndpointMove":-1===a?"FinishEndpointMove":"KeyframeMove",t.installDragHandle(o,this._mouseDown.bind(this,h,a),this._mouseMove.bind(this),this._mouseUp.bind(this),"ew-resize"),Q.installDragHandleKeyboard(o,this._keydownMove.bind(this,h,a))}_renderKeyframe(e,i,n,a,r,h){function l(e,i,n){const s=t.createSVGChild(e,"line");s.setAttribute("x1",i.toString()),s.setAttribute("x2",i.toString()),s.setAttribute("y1",$.AnimationMargin.toString()),s.setAttribute("y2",$.AnimationHeight.toString()),s.style.stroke=n}const d=o.CubicBezier.parse(h),_=this._cachedElements[e].keyframeRender;if(!_[i]){const e=d?t.createSVGChild(n,"path","animation-keyframe"):t.createSVGChild(n,"g","animation-keyframe-step");_[i]=e}const m=_[i];if(m.tabIndex=0,s.setAccessibleName(m,X(z.sSlider,{PH1:this._animation.name()})),m.style.transform="translateX("+a.toFixed(2)+"px)","linear"===h){m.style.fill=this._color;const e=c.Height;m.setAttribute("d",["M",0,e,"L",0,5,"L",r.toFixed(2),5,"L",r.toFixed(2),e,"Z"].join(" "))}else if(d)m.style.fill=this._color,c.BezierUI.drawVelocityChart(d,m,r);else{const e=j.parse(h);m.removeChildren();const t={start:0,middle:.5,end:1};if(e){const i=t[e.stepAtPosition];for(let t=0;t<e.steps;t++)l(m,(t+i)*r/e.steps,this._color)}}}redraw(){const e=this._timeline.width()-$.AnimationMargin;if(this._svg.setAttribute("width",(e+2*$.AnimationMargin).toFixed(2)),this._activeIntervalGroup.style.transform="translateX("+(this._delay()*this._timeline.pixelMsRatio()).toFixed(2)+"px)",this._nameElement.style.transform="translateX("+(this._delay()*this._timeline.pixelMsRatio()+$.AnimationMargin).toFixed(2)+"px)",this._nameElement.style.width=(this._duration()*this._timeline.pixelMsRatio()).toFixed(2)+"px",this._drawDelayLine(this._svg),"CSSTransition"===this._animation.type())return void this._renderTransition();this._renderIteration(this._activeIntervalGroup,0),this._tailGroup||(this._tailGroup=t.createSVGChild(this._activeIntervalGroup,"g","animation-tail-iterations"));const i=this._duration()*this._timeline.pixelMsRatio();let n;for(n=1;n<this._animation.source().iterations()&&i*(n-1)<this._timeline.width();n++)this._renderIteration(this._tailGroup,n);for(;n<this._cachedElements.length;){const e=this._cachedElements.pop();e&&e.group&&e.group.remove()}}_renderTransition(){const e=this._activeIntervalGroup;this._cachedElements[0]||(this._cachedElements[0]={animationLine:null,keyframePoints:{},keyframeRender:{},group:null}),this._drawAnimationLine(0,e),this._renderKeyframe(0,0,e,$.AnimationMargin,this._duration()*this._timeline.pixelMsRatio(),this._animation.source().easing()),this._drawPoint(0,e,$.AnimationMargin,0,!0),this._drawPoint(0,e,this._duration()*this._timeline.pixelMsRatio()+$.AnimationMargin,-1,!0)}_renderIteration(e,i){this._cachedElements[i]||(this._cachedElements[i]={animationLine:null,keyframePoints:{},keyframeRender:{},group:t.createSVGChild(e,"g")});const n=this._cachedElements[i].group;if(n){if(n.style.transform="translateX("+(i*this._duration()*this._timeline.pixelMsRatio()).toFixed(2)+"px)",this._drawAnimationLine(i,n),this._keyframes&&this._keyframes.length>1)for(let e=0;e<this._keyframes.length-1;e++){const t=this._offset(e)*this._duration()*this._timeline.pixelMsRatio()+$.AnimationMargin,s=this._duration()*(this._offset(e+1)-this._offset(e))*this._timeline.pixelMsRatio();this._renderKeyframe(i,e,n,t,s,this._keyframes[e].easing()),(e||!e&&0===i)&&this._drawPoint(i,n,t,e,0===i)}this._drawPoint(i,n,this._duration()*this._timeline.pixelMsRatio()+$.AnimationMargin,-1,0===i)}}_delay(){let e=this._animation.source().delay();return"AnimationDrag"!==this._mouseEventType&&"StartEndpointMove"!==this._mouseEventType||(e+=this._movementInMs),Math.max(0,e)}_duration(){let e=this._animation.source().duration();return"FinishEndpointMove"===this._mouseEventType?e+=this._movementInMs:"StartEndpointMove"===this._mouseEventType&&(e-=Math.max(this._movementInMs,-this._animation.source().delay())),Math.max(0,e)}_offset(e){if(!this._keyframes)throw new Error("Unable to calculate offset; keyframes do not exist");let t=this._keyframes[e].offsetAsNumber();return"KeyframeMove"===this._mouseEventType&&e===this._keyframeMoved&&(console.assert(e>0&&e<this._keyframes.length-1,"First and last keyframe cannot be moved"),t+=this._movementInMs/this._animation.source().duration(),t=Math.max(t,this._keyframes[e-1].offsetAsNumber()),t=Math.min(t,this._keyframes[e+1].offsetAsNumber())),t}_mouseDown(e,t,i){const n=i;return 2!==n.buttons&&(!this._svg.enclosingNodeOrSelfWithClass("animation-node-removed")&&(this._mouseEventType=e,this._keyframeMoved=t,this._downMouseX=n.clientX,i.consume(!0),this._node&&_.reveal(this._node),!0))}_mouseMove(e){const t=e;this._setMovementAndRedraw((t.clientX-(this._downMouseX||0))/this._timeline.pixelMsRatio())}_setMovementAndRedraw(e){this._movementInMs=e,this._delay()+this._duration()>.8*this._timeline.duration()&&this._timeline.setDuration(1.2*this._timeline.duration()),this.redraw()}_mouseUp(e){const t=e;this._movementInMs=(t.clientX-(this._downMouseX||0))/this._timeline.pixelMsRatio(),"KeyframeMove"===this._mouseEventType?this._keyframes&&null!==this._keyframeMoved&&void 0!==this._keyframeMoved&&this._keyframes[this._keyframeMoved].setOffset(this._offset(this._keyframeMoved)):this._animation.setTiming(this._duration(),this._delay()),this._movementInMs=0,this.redraw(),delete this._mouseEventType,delete this._downMouseX,delete this._keyframeMoved}_keydownMove(e,t,i){const n=i;switch(this._mouseEventType=e,this._keyframeMoved=t,n.key){case"ArrowLeft":case"ArrowUp":this._movementInMs=-this._keyboardMovementRateMs;break;case"ArrowRight":case"ArrowDown":this._movementInMs=this._keyboardMovementRateMs;break;default:return}"KeyframeMove"===this._mouseEventType?this._keyframes&&null!==this._keyframeMoved&&this._keyframes[this._keyframeMoved].setOffset(this._offset(this._keyframeMoved)):this._animation.setTiming(this._duration(),this._delay()),this._setMovementAndRedraw(0),delete this._mouseEventType,delete this._keyframeMoved,i.consume(!0)}_onContextMenu(e){this._animation.remoteObjectPromise().then((function(t){if(!t)return;const i=new h.ContextMenu(e);i.appendApplicableItems(t),i.show()})),e.consume(!0)}}const $={AnimationHeight:26,AnimationSVGHeight:50,AnimationMargin:7,EndpointsClickRegionSize:10,GridCanvasHeight:40},J=new Map([["Purple",d.Color.parse("#9C27B0")],["Light Blue",d.Color.parse("#03A9F4")],["Deep Orange",d.Color.parse("#FF5722")],["Blue",d.Color.parse("#5677FC")],["Lime",d.Color.parse("#CDDC39")],["Blue Grey",d.Color.parse("#607D8B")],["Pink",d.Color.parse("#E91E63")],["Green",d.Color.parse("#0F9D58")],["Brown",d.Color.parse("#795548")],["Cyan",d.Color.parse("#00BCD4")]]);var Z=Object.freeze({__proto__:null,UIStrings:z,AnimationUI:Q,Options:$,Colors:J});class Y{constructor(e){this._model=e,this.element=document.createElement("div"),this.element.classList.add("animation-buffer-preview"),this.element.createChild("div","animation-paused fill"),this._removeButton=this.element.createChild("div","animation-remove-button"),this._removeButton.textContent="✕",this._replayOverlayElement=this.element.createChild("div","animation-buffer-preview-animation"),this._svg=t.createSVGChild(this.element,"svg"),this._svg.setAttribute("width","100%"),this._svg.setAttribute("preserveAspectRatio","none"),this._svg.setAttribute("height","100%"),this._viewBoxHeight=32,this._svg.setAttribute("viewBox","0 0 100 "+this._viewBoxHeight),this._svg.setAttribute("shape-rendering","crispEdges"),this._render()}_groupDuration(){let e=0;for(const t of this._model.animations()){const i=t.source().delay()+t.source().duration();i>e&&(e=i)}return e}removeButton(){return this._removeButton}replay(){this._replayOverlayElement.animate([{offset:0,width:"0%",opacity:1},{offset:.9,width:"100%",opacity:1},{offset:1,width:"100%",opacity:0}],{duration:200,easing:"cubic-bezier(0, 0, 0.2, 1)"})}_render(){this._svg.removeChildren();const e=Math.min(this._model.animations().length,10),i=100/Math.max(this._groupDuration(),750);for(let n=0;n<e;n++){const s=this._model.animations()[n].source(),a=t.createSVGChild(this._svg,"line");a.setAttribute("x1",String(s.delay()*i)),a.setAttribute("x2",String((s.delay()+s.duration())*i));const r=String(Math.floor(this._viewBoxHeight/Math.max(6,e)*n+1));a.setAttribute("y1",r),a.setAttribute("y2",r),a.style.stroke=Q.Color(this._model.animations()[n])}}}var ee=Object.freeze({__proto__:null,AnimationGroupPreviewUI:Y});export{ee as AnimationGroupPreviewUI,B as AnimationModel,L as AnimationScreenshotPopover,q as AnimationTimeline,Z as AnimationUI};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("animation/animationScreenshotPopover.css","/*\n * Copyright (c) 2015 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\nimg {\n max-height: 300px;\n border-radius: 2px;\n}\n\n.animation-progress {\n position: absolute;\n height: 2px;\n bottom: 0;\n left: 0;\n background: var(--selection-bg-color);\n}\n\n/*# sourceURL=animation/animationScreenshotPopover.css */");RootModule.Runtime.cachedResources.set("animation/animationTimeline.css","/*\n * Copyright (c) 2015 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.animation-node-row {\n width: 100%;\n display: flex;\n border-bottom: 1px dashed var(--color-details-hairline);\n}\n\n.animation-node-description {\n width: 150px;\n padding-left: 8px;\n overflow: hidden;\n position: relative;\n transform-style: preserve-3d;\n border-bottom: 1px solid var(--color-details-hairline);\n margin-bottom: -1px;\n background-color: var(--color-background-elevation-1);\n display: flex;\n align-items: center;\n flex: 0 0 150px;\n}\n\n.animation-node-description > * {\n flex: 0 0 auto;\n}\n\n.animation-timeline-row {\n height: 32px;\n position: relative;\n}\n\npath.animation-keyframe {\n fill-opacity: 0.2;\n}\n\n.animation-node-selected path.animation-keyframe,\nsvg.animation-ui g:first-child:hover path.animation-keyframe {\n fill-opacity: 0.4;\n}\n\nline.animation-line {\n stroke-width: 2px;\n stroke-linecap: round;\n fill: none;\n}\n\nline.animation-delay-line {\n stroke-width: 2px;\n stroke-dasharray: 6, 4;\n}\n\nline.animation-delay-line.animation-fill {\n stroke-dasharray: none;\n}\n\ncircle.animation-keyframe-point {\n fill: var(--color-background);\n}\n\ncircle.animation-endpoint,\ncircle.animation-keyframe-point {\n stroke-width: 2px;\n transition: transform 100ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale(1);\n transform-box: fill-box;\n transform-origin: 50% 50%;\n}\n\ncircle.animation-endpoint:active,\ncircle.animation-keyframe-point:active {\n transform: scale(1);\n}\n\n.animation-ui circle.animation-endpoint:hover,\n.animation-ui circle.animation-keyframe-point:hover {\n transform: scale(1.2);\n}\n\n.animation-name {\n position: absolute;\n top: 8px;\n color: var(--color-text-primary);\n text-align: center;\n margin-left: -8px;\n white-space: nowrap;\n}\n\n.animation-timeline-toolbar-container {\n display: flex;\n background-color: var(--toolbar-bg-color);\n border-bottom: var(--divider-border);\n flex: 0 0 auto;\n}\n\n.animation-timeline-toolbar {\n display: inline-block;\n}\n\n.animation-timeline-header {\n height: 28px;\n border-bottom: 1px solid var(--color-details-hairline);\n flex-shrink: 0;\n display: flex;\n}\n\n.animation-timeline-header::after {\n content: '';\n height: calc(100% - 48px - 28px);\n position: absolute;\n width: 150px;\n left: 0;\n margin-top: 28px;\n background-color: var(--color-background-elevation-1);\n z-index: 0;\n border-right: 1px solid var(--color-details-hairline);\n}\n\n.animation-controls {\n flex: 0 0 150px;\n position: relative;\n display: flex;\n justify-content: flex-end;\n padding-right: 8px;\n}\n\n.animation-timeline-current-time {\n flex: 0 0 auto;\n line-height: 28px;\n margin-right: 5px;\n}\n\n.animation-grid-header {\n flex: 1 0 auto;\n cursor: text;\n}\n\n.animation-timeline-buffer,\n.animation-timeline-buffer-hint {\n height: 48px;\n flex: 0 0 auto;\n border-bottom: 1px solid var(--color-details-hairline);\n display: flex;\n padding: 0 2px;\n}\n\n.animation-timeline-buffer:empty,\n.animation-timeline-buffer-hint {\n display: none;\n}\n\n.animation-timeline-buffer:empty ~ .animation-timeline-buffer-hint {\n align-items: center;\n justify-content: center;\n font-size: 14px;\n z-index: 101;\n display: flex;\n}\n\n.animation-time-overlay {\n background-color: var(--color-text-primary);\n opacity: 5%;\n position: absolute;\n height: 100%;\n width: 100%;\n z-index: -1;\n}\n\n.animation-timeline-end > .animation-time-overlay {\n visibility: hidden;\n}\n\n.animation-scrubber {\n opacity: 100%;\n position: absolute;\n left: 10px;\n height: 100%;\n width: 100%;\n top: 28px;\n border-left: 1px solid var(--color-syntax-1);\n z-index: 2;\n cursor: col-resize;\n}\n\n.animation-scrubber-line {\n width: 11px;\n background: linear-gradient(to right, transparent 5px, var(--color-syntax-1) 5px, var(--color-syntax-1) 6px, transparent 6px);\n position: absolute;\n top: -28px;\n height: 28px;\n left: -6px;\n padding: 0 5px;\n z-index: 3;\n}\n\n.animation-scrubber-head {\n width: 7px;\n height: 7px;\n transform: rotate(45deg);\n background: var(--color-syntax-1);\n position: absolute;\n left: 2px;\n top: 1px;\n z-index: 4;\n}\n\n.grid-overflow-wrapper {\n position: absolute;\n left: 140px;\n top: 76px;\n z-index: 1;\n overflow: hidden;\n}\n\nsvg.animation-timeline-grid {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n}\n\nrect.animation-timeline-grid-line {\n fill: var(--color-background-elevation-2);\n}\n\n.animation-timeline-row > svg.animation-ui {\n position: absolute;\n}\n\n.animation-node-timeline {\n flex-grow: 1;\n}\n\n.animation-node-description > div {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n max-height: 100%;\n}\n\n.animation-node-removed {\n filter: saturate(0);\n cursor: not-allowed;\n}\n\nsvg.animation-ui g:first-child {\n opacity: 100%;\n}\n\nsvg.animation-ui circle:focus-visible,\nsvg.animation-ui path:focus-visible {\n outline: 2px solid -webkit-focus-ring-color;\n}\n\n.animation-tail-iterations {\n opacity: 50%;\n}\n\n.animation-keyframe-step line {\n stroke-width: 2;\n stroke-opacity: 0.3;\n}\n\ntext.animation-timeline-grid-label {\n font-size: 10px;\n fill: var(--color-text-secondary);\n text-anchor: middle;\n}\n\n.animation-timeline-rows,\n.animation-timeline-rows-hint {\n flex-grow: 1;\n overflow-y: auto;\n z-index: 1;\n overflow-x: hidden;\n}\n\n.animation-timeline-rows-hint {\n display: none;\n}\n\n.animation-timeline-buffer:not(:empty) ~ .animation-timeline-rows:empty {\n flex-grow: 0;\n}\n\n.animation-timeline-buffer:not(:empty) ~ .animation-timeline-rows:empty ~ .animation-timeline-rows-hint {\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 150px;\n padding: 10px;\n}\n\n.toolbar.animation-controls-toolbar {\n flex: 0 0 auto;\n}\n\n.animation-node-row.animation-node-selected {\n background-color: var(--color-background-elevation-1);\n}\n\n.animation-node-selected > .animation-node-description {\n background-color: var(--color-background-elevation-2);\n}\n\n.animation-buffer-preview {\n height: 40px;\n margin: 4px 2px;\n background-color: var(--toolbar-bg-color);\n border: 1px solid transparent;\n border-radius: 2px;\n flex: 1 1;\n padding: 4px;\n max-width: 100px;\n animation: newGroupAnim 200ms;\n position: relative;\n}\n\n.animation-buffer-preview-animation {\n width: 100%;\n height: 100%;\n border-radius: 2px 0 0 2px;\n position: absolute;\n top: 0;\n left: 0;\n background: var(--color-background-elevation-2);\n opacity: 0%;\n border-right: 1px solid var(--color-details-hairline);\n cursor: pointer;\n}\n\n.animation-buffer-preview:focus-visible {\n outline: -webkit-focus-ring-color auto 5px;\n}\n\n.animation-buffer-preview:not(.selected):focus-visible,\n.animation-buffer-preview:not(.selected):hover {\n background-color: var(--color-background-elevation-2);\n}\n\n.animation-buffer-preview.selected {\n background-color: var(--selection-bg-color);\n}\n\n.animation-paused {\n align-items: center;\n justify-content: center;\n background-color: hsl(0deg 0% 70% / 50%);\n display: none;\n}\n\n.animation-paused::before,\n.animation-paused::after {\n content: '';\n background: var(--color-background);\n width: 7px;\n height: 20px;\n border-radius: 2px;\n margin: 2px;\n border: 1px solid var(--color-details-hairline);\n}\n\n.animation-buffer-preview.paused .animation-paused {\n display: flex;\n}\n\n.animation-buffer-preview > svg > line {\n stroke-width: 1px;\n}\n\n.animation-buffer-preview.selected > svg > line {\n stroke: var(--color-background) !important;\n}\n\n@keyframes newGroupAnim {\n from {\n clip-path: polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%);\n }\n\n to {\n clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%);\n }\n}\n\n.animation-playback-rate-control {\n margin: 4px 0 4px 2px;\n display: flex;\n width: 120px;\n}\n\n.animation-playback-rate-button {\n border: 1px solid var(--color-details-hairline);\n color: var(--color-text-primary);\n display: inline-block;\n margin-right: -1px;\n padding: 1px 4px;\n background: var(--color-background);\n flex: 1 0 auto;\n text-align: center;\n cursor: pointer;\n}\n\n.animation-playback-rate-button:first-child {\n border-radius: 4px 0 0 4px;\n}\n\n.animation-playback-rate-button:last-child {\n border-radius: 0 4px 4px 0;\n}\n\n.animation-playback-rate-button.selected {\n color: var(--color-background);\n background-color: var(--selection-bg-color);\n border-color: var(--selection-bg-color);\n z-index: 1;\n}\n\n.animation-playback-rate-button.selected:first-child {\n color: var(--selection-bg-color);\n background-color: var(--color-background);\n}\n\n.animation-playback-rate-button.selected:focus-visible {\n color: var(--color-text-primary);\n}\n\n.animation-playback-rate-button.selected:first-child:focus-visible,\n.animation-playback-rate-button:focus-visible {\n background-color: var(--focus-bg-color);\n}\n\n.animation-playback-rate-button:not(.selected):hover {\n background: var(--color-background-elevation-2);\n}\n\n.animation-remove-button {\n position: absolute;\n top: -3px;\n right: -3px;\n background: var(--color-text-secondary);\n border-radius: 12px;\n height: 16px;\n width: 16px;\n align-items: center;\n font-size: 10px;\n justify-content: center;\n box-shadow: 0 1px 4px 0 var(--color-background-highlight);\n z-index: 100;\n display: none;\n cursor: pointer;\n font-weight: 700;\n color: var(--color-background);\n}\n\n.animation-remove-button:hover {\n background: var(--color-text-primary);\n}\n\n.animation-buffer-preview:hover .animation-remove-button {\n display: flex;\n}\n\n@media (forced-colors: active) {\n .animation-playback-rate-button.selected,\n .animation-playback-rate-button.selected:first-child,\n .animation-playback-rate-button.selected:first-child:focus-visible,\n .animation-playback-rate-button:focus-visible {\n forced-color-adjust: none;\n color: HighlightText;\n background-color: Highlight;\n }\n\n .animation-node-description:focus-visible {\n background-color: var(--color-background);\n forced-color-adjust: none;\n }\n\n .monospace {\n forced-color-adjust: auto;\n }\n}\n\n/*# sourceURL=animation/animationTimeline.css */");
|
|
@@ -0,0 +1,220 @@
|
|
|
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
|
+
|
|
9
|
+
self.ApplicationTestRunner = self.ApplicationTestRunner || {};
|
|
10
|
+
|
|
11
|
+
ApplicationTestRunner.createAndNavigateIFrame = function(url, callback) {
|
|
12
|
+
TestRunner.addSniffer(SDK.ResourceTreeModel.prototype, '_frameNavigated', frameNavigated);
|
|
13
|
+
TestRunner.evaluateInPageAnonymously('createAndNavigateIFrame(unescape(\'' + escape(url) + '\'))');
|
|
14
|
+
|
|
15
|
+
function frameNavigated(frame) {
|
|
16
|
+
callback(frame.id);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
ApplicationTestRunner.navigateIFrame = function(frameId, url, callback) {
|
|
21
|
+
const frame = TestRunner.resourceTreeModel.frameForId(frameId);
|
|
22
|
+
TestRunner.evaluateInPageAnonymously(
|
|
23
|
+
'navigateIFrame(unescape(\'' + escape(frame.name) + '\'), unescape(\'' + escape(url) + '\'))');
|
|
24
|
+
TestRunner.addSniffer(SDK.ResourceTreeModel.prototype, '_frameNavigated', frameNavigated);
|
|
25
|
+
|
|
26
|
+
function frameNavigated(frame) {
|
|
27
|
+
callback(frame.id);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
ApplicationTestRunner.removeIFrame = function(frameId, callback) {
|
|
32
|
+
const frame = TestRunner.resourceTreeModel.frameForId(frameId);
|
|
33
|
+
TestRunner.evaluateInPageAnonymously('removeIFrame(unescape(\'' + escape(frame.name) + '\'))');
|
|
34
|
+
TestRunner.addSniffer(SDK.ResourceTreeModel.prototype, '_frameDetached', frameDetached);
|
|
35
|
+
|
|
36
|
+
function frameDetached(frame) {
|
|
37
|
+
callback(frame.id);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
ApplicationTestRunner.swapFrameCache = function(frameId) {
|
|
42
|
+
const frame = TestRunner.resourceTreeModel.frameForId(frameId);
|
|
43
|
+
TestRunner.evaluateInPageAnonymously('swapFrameCache(unescape(\'' + escape(frame.name) + '\'))');
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
ApplicationTestRunner.dumpApplicationCache = function() {
|
|
47
|
+
ApplicationTestRunner.dumpApplicationCacheTree();
|
|
48
|
+
ApplicationTestRunner.dumpApplicationCacheModel();
|
|
49
|
+
TestRunner.addResult('');
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
ApplicationTestRunner.dumpApplicationCacheTree = function() {
|
|
53
|
+
TestRunner.addResult('Dumping application cache tree:');
|
|
54
|
+
const applicationCacheTreeElement = UI.panels.resources._sidebar.applicationCacheListTreeElement;
|
|
55
|
+
|
|
56
|
+
if (!applicationCacheTreeElement.childCount()) {
|
|
57
|
+
TestRunner.addResult(' (empty)');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
for (let i = 0; i < applicationCacheTreeElement.childCount(); ++i) {
|
|
62
|
+
const manifestTreeElement = applicationCacheTreeElement.childAt(i);
|
|
63
|
+
TestRunner.addResult(' Manifest URL: ' + manifestTreeElement.manifestURL);
|
|
64
|
+
|
|
65
|
+
if (!manifestTreeElement.childCount()) {
|
|
66
|
+
TestRunner.addResult(' (no frames)');
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
for (let j = 0; j < manifestTreeElement.childCount(); ++j) {
|
|
71
|
+
const frameTreeElement = manifestTreeElement.childAt(j);
|
|
72
|
+
TestRunner.addResult(' Frame: ' + frameTreeElement.title);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
ApplicationTestRunner.frameIdToString = function(frameId) {
|
|
78
|
+
if (!ApplicationTestRunner.framesByFrameId) {
|
|
79
|
+
ApplicationTestRunner.framesByFrameId = {};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
let frame = TestRunner.resourceTreeModel.frameForId(frameId);
|
|
83
|
+
|
|
84
|
+
if (!frame) {
|
|
85
|
+
frame = ApplicationTestRunner.framesByFrameId[frameId];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
ApplicationTestRunner.framesByFrameId[frameId] = frame;
|
|
89
|
+
return frame.name;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
ApplicationTestRunner.applicationCacheStatusToString = function(status) {
|
|
93
|
+
const statusInformation = {};
|
|
94
|
+
statusInformation[applicationCache.UNCACHED] = 'UNCACHED';
|
|
95
|
+
statusInformation[applicationCache.IDLE] = 'IDLE';
|
|
96
|
+
statusInformation[applicationCache.CHECKING] = 'CHECKING';
|
|
97
|
+
statusInformation[applicationCache.DOWNLOADING] = 'DOWNLOADING';
|
|
98
|
+
statusInformation[applicationCache.UPDATEREADY] = 'UPDATEREADY';
|
|
99
|
+
statusInformation[applicationCache.OBSOLETE] = 'OBSOLETE';
|
|
100
|
+
return statusInformation[status] || statusInformation[applicationCache.UNCACHED];
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
ApplicationTestRunner.dumpApplicationCacheModel = function() {
|
|
104
|
+
TestRunner.addResult('Dumping application cache model:');
|
|
105
|
+
const model = UI.panels.resources._sidebar._applicationCacheModel;
|
|
106
|
+
const frameIds = [];
|
|
107
|
+
|
|
108
|
+
for (const frameId in model._manifestURLsByFrame) {
|
|
109
|
+
frameIds.push(frameId);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function compareFunc(a, b) {
|
|
113
|
+
return ApplicationTestRunner.frameIdToString(a).localeCompare(ApplicationTestRunner.frameIdToString(b));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
frameIds.sort(compareFunc);
|
|
117
|
+
|
|
118
|
+
if (!frameIds.length) {
|
|
119
|
+
TestRunner.addResult(' (empty)');
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
for (let i = 0; i < frameIds.length; ++i) {
|
|
124
|
+
const frameId = frameIds[i];
|
|
125
|
+
const manifestURL = model.frameManifestURL(frameId);
|
|
126
|
+
const status = model.frameManifestStatus(frameId);
|
|
127
|
+
TestRunner.addResult(' Frame: ' + ApplicationTestRunner.frameIdToString(frameId));
|
|
128
|
+
TestRunner.addResult(' manifest url: ' + manifestURL);
|
|
129
|
+
TestRunner.addResult(' status: ' + ApplicationTestRunner.applicationCacheStatusToString(status));
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
ApplicationTestRunner.waitForFrameManifestURLAndStatus = function(frameId, manifestURL, status, callback) {
|
|
134
|
+
const frameManifestStatus = UI.panels.resources._sidebar._applicationCacheModel.frameManifestStatus(frameId);
|
|
135
|
+
const frameManifestURL = UI.panels.resources._sidebar._applicationCacheModel.frameManifestURL(frameId);
|
|
136
|
+
|
|
137
|
+
if (frameManifestStatus === status && frameManifestURL.indexOf(manifestURL) !== -1) {
|
|
138
|
+
callback();
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const handler =
|
|
143
|
+
ApplicationTestRunner.waitForFrameManifestURLAndStatus.bind(this, frameId, manifestURL, status, callback);
|
|
144
|
+
TestRunner.addSniffer(Resources.ApplicationCacheModel.prototype, '_frameManifestUpdated', handler);
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
ApplicationTestRunner.startApplicationCacheStatusesRecording = function() {
|
|
148
|
+
if (ApplicationTestRunner.applicationCacheStatusesRecords) {
|
|
149
|
+
ApplicationTestRunner.applicationCacheStatusesRecords = {};
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
ApplicationTestRunner.applicationCacheStatusesRecords = {};
|
|
154
|
+
|
|
155
|
+
function addRecord(frameId, manifestURL, status) {
|
|
156
|
+
const record = {};
|
|
157
|
+
record.manifestURL = manifestURL;
|
|
158
|
+
record.status = status;
|
|
159
|
+
|
|
160
|
+
if (!ApplicationTestRunner.applicationCacheStatusesRecords[frameId]) {
|
|
161
|
+
ApplicationTestRunner.applicationCacheStatusesRecords[frameId] = [];
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
ApplicationTestRunner.applicationCacheStatusesRecords[frameId].push(record);
|
|
165
|
+
|
|
166
|
+
if (ApplicationTestRunner.awaitedFrameStatusEventsCount &&
|
|
167
|
+
ApplicationTestRunner.awaitedFrameStatusEventsCount[frameId]) {
|
|
168
|
+
ApplicationTestRunner.awaitedFrameStatusEventsCount[frameId].count--;
|
|
169
|
+
|
|
170
|
+
if (!ApplicationTestRunner.awaitedFrameStatusEventsCount[frameId].count) {
|
|
171
|
+
ApplicationTestRunner.awaitedFrameStatusEventsCount[frameId].callback();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
TestRunner.addSniffer(Resources.ApplicationCacheModel.prototype, '_frameManifestUpdated', addRecord, true);
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
ApplicationTestRunner.ensureFrameStatusEventsReceived = function(frameId, count, callback) {
|
|
180
|
+
const records = ApplicationTestRunner.applicationCacheStatusesRecords[frameId] || [];
|
|
181
|
+
const eventsLeft = count - records.length;
|
|
182
|
+
|
|
183
|
+
if (!eventsLeft) {
|
|
184
|
+
callback();
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (!ApplicationTestRunner.awaitedFrameStatusEventsCount) {
|
|
189
|
+
ApplicationTestRunner.awaitedFrameStatusEventsCount = {};
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
ApplicationTestRunner.awaitedFrameStatusEventsCount[frameId] = {count: eventsLeft, callback: callback};
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
TestRunner.deprecatedInitAsync(`
|
|
196
|
+
let framesCount = 0;
|
|
197
|
+
|
|
198
|
+
function createAndNavigateIFrame(url) {
|
|
199
|
+
let iframe = document.createElement('iframe');
|
|
200
|
+
iframe.src = url;
|
|
201
|
+
iframe.name = 'frame' + ++framesCount;
|
|
202
|
+
iframe.id = iframe.name;
|
|
203
|
+
document.body.appendChild(iframe);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function removeIFrame(name) {
|
|
207
|
+
let iframe = document.querySelector('#' + name);
|
|
208
|
+
iframe.parentElement.removeChild(iframe);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function navigateIFrame(name, url) {
|
|
212
|
+
let iframe = document.querySelector('#' + name);
|
|
213
|
+
iframe.src = url;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
function swapFrameCache(name) {
|
|
217
|
+
let iframe = document.querySelector('#' + name);
|
|
218
|
+
iframe.contentWindow.applicationCache.swapCache();
|
|
219
|
+
}
|
|
220
|
+
`);
|