@browserless.io/browserless 2.2.0-beta-8 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -2
- package/bin/browserless.js +1 -1
- package/bin/scaffold/README.md +8 -7
- package/build/browserless.js +7 -6
- package/build/browsers/chrome.cdp.d.ts +6 -0
- package/build/browsers/chrome.cdp.js +6 -0
- package/build/browsers/chrome.playwright.d.ts +6 -0
- package/build/browsers/chrome.playwright.js +6 -0
- package/build/browsers/{cdp-chromium.d.ts → chromium.cdp.d.ts} +3 -2
- package/build/browsers/{cdp-chromium.js → chromium.cdp.js} +16 -10
- package/build/browsers/{playwright-chromium.d.ts → chromium.playwright.d.ts} +3 -2
- package/build/browsers/{playwright-chromium.js → chromium.playwright.js} +6 -5
- package/build/browsers/{playwright-firefox.d.ts → firefox.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-firefox.js → firefox.playwright.js} +4 -4
- package/build/browsers/index.d.ts +20 -10
- package/build/browsers/index.js +110 -11
- package/build/browsers/{playwright-webkit.d.ts → webkit.playwright.d.ts} +2 -2
- package/build/browsers/{playwright-webkit.js → webkit.playwright.js} +4 -4
- package/build/data/selectors.json +1 -1
- package/build/exports.d.ts +6 -4
- package/build/exports.js +6 -4
- package/build/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/chrome/http/download.post.d.ts +7 -0
- package/build/routes/chrome/http/download.post.js +6 -0
- package/build/routes/chrome/http/function.post.d.ts +7 -0
- package/build/routes/chrome/http/function.post.js +6 -0
- package/build/routes/chrome/http/json-list.get.d.ts +1 -0
- package/build/routes/chrome/http/json-list.get.js +1 -0
- package/build/routes/chrome/http/json-new.put.d.ts +1 -0
- package/build/routes/chrome/http/json-new.put.js +1 -0
- package/build/routes/chrome/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chrome/http/json-protocol.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.d.ts +1 -0
- package/build/routes/chrome/http/json-version.get.js +1 -0
- package/build/routes/chrome/http/json-version.get.response.json +44 -0
- package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +8 -8
- package/build/routes/chrome/http/pdf.post.d.ts +7 -0
- package/build/routes/chrome/http/pdf.post.js +6 -0
- package/build/routes/chrome/http/performance.post.d.ts +7 -0
- package/build/routes/chrome/http/performance.post.js +6 -0
- package/build/routes/{chromium/http/scrape-post.body.json → chrome/http/scrape.post.body.json} +8 -8
- package/build/routes/chrome/http/scrape.post.d.ts +7 -0
- package/build/routes/chrome/http/scrape.post.js +6 -0
- package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/screenshot.post.body.json} +8 -8
- package/build/routes/chrome/http/screenshot.post.d.ts +7 -0
- package/build/routes/chrome/http/screenshot.post.js +6 -0
- package/build/routes/chrome/tests/content.spec.js +311 -0
- package/build/routes/chrome/tests/download.spec.js +67 -0
- package/build/routes/chrome/tests/function.spec.d.ts +1 -0
- package/build/routes/chrome/tests/function.spec.js +245 -0
- package/build/routes/chrome/tests/json-version.spec.d.ts +1 -0
- package/build/routes/chrome/tests/json-version.spec.js +37 -0
- package/build/routes/chrome/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/page-websocket.spec.js +97 -0
- package/build/routes/chrome/tests/pdf.spec.d.ts +1 -0
- package/build/routes/chrome/tests/pdf.spec.js +333 -0
- package/build/routes/chrome/tests/performance.spec.d.ts +1 -0
- package/build/routes/chrome/tests/performance.spec.js +124 -0
- package/build/routes/chrome/tests/scrape.spec.d.ts +1 -0
- package/build/routes/chrome/tests/scrape.spec.js +354 -0
- package/build/routes/chrome/tests/screenshot.spec.d.ts +1 -0
- package/build/routes/chrome/tests/screenshot.spec.js +339 -0
- package/build/routes/chrome/tests/websocket.spec.d.ts +1 -0
- package/build/routes/chrome/tests/websocket.spec.js +371 -0
- package/build/routes/chrome/ws/browser.d.ts +6 -0
- package/build/routes/chrome/ws/browser.js +5 -0
- package/build/routes/chrome/ws/cdp.d.ts +7 -0
- package/build/routes/chrome/ws/cdp.js +6 -0
- package/build/routes/chrome/ws/cdp.query.json +120 -0
- package/build/routes/chrome/ws/page.d.ts +6 -0
- package/build/routes/chrome/ws/page.js +5 -0
- package/build/routes/chrome/ws/page.query.json +120 -0
- package/build/routes/chrome/ws/playwright.d.ts +7 -0
- package/build/routes/chrome/ws/playwright.js +6 -0
- package/build/routes/chromium/http/content.post.body.json +510 -0
- package/build/routes/chromium/http/content.post.d.ts +1 -0
- package/build/routes/chromium/http/content.post.js +1 -0
- package/build/routes/chromium/http/content.post.query.json +183 -0
- package/build/routes/chromium/http/content.post.response.json +5 -0
- package/build/routes/chromium/http/download.post.body.json +32 -0
- package/build/routes/chromium/http/download.post.d.ts +1 -0
- package/build/routes/chromium/http/download.post.js +1 -0
- package/build/routes/chromium/http/download.post.query.json +120 -0
- package/build/routes/chromium/http/download.post.response.json +4 -0
- package/build/routes/chromium/http/function.post.body.json +32 -0
- package/build/routes/chromium/http/function.post.d.ts +1 -0
- package/build/routes/chromium/http/function.post.js +1 -0
- package/build/routes/chromium/http/function.post.query.json +120 -0
- package/build/routes/chromium/http/function.post.response.json +4 -0
- package/build/routes/chromium/http/json-list.get.d.ts +1 -0
- package/build/routes/chromium/http/json-list.get.js +1 -0
- package/build/routes/chromium/http/json-list.get.response.json +52 -0
- package/build/routes/chromium/http/json-new.put.d.ts +1 -0
- package/build/routes/chromium/http/json-new.put.js +1 -0
- package/build/routes/chromium/http/json-new.put.response.json +44 -0
- package/build/routes/chromium/http/json-protocol.get.d.ts +1 -0
- package/build/routes/chromium/http/json-protocol.get.js +1 -0
- package/build/routes/chromium/http/json-protocol.get.response.json +6 -0
- package/build/routes/chromium/http/json-version.get.d.ts +1 -0
- package/build/routes/chromium/http/json-version.get.js +1 -0
- package/build/routes/chromium/http/json-version.get.response.json +44 -0
- package/build/routes/chromium/http/pdf.post.body.json +654 -0
- package/build/routes/chromium/http/pdf.post.d.ts +1 -0
- package/build/routes/chromium/http/pdf.post.js +1 -0
- package/build/routes/chromium/http/pdf.post.query.json +120 -0
- package/build/routes/chromium/http/pdf.post.response.json +5 -0
- package/build/routes/chromium/http/performance.post.body.json +26 -0
- package/build/routes/chromium/http/performance.post.d.ts +1 -0
- package/build/routes/chromium/http/performance.post.js +1 -0
- package/build/routes/chromium/http/performance.post.query.json +120 -0
- package/build/routes/chromium/http/performance.post.response.json +7 -0
- package/build/routes/chromium/http/scrape.post.body.json +557 -0
- package/build/routes/chromium/http/scrape.post.d.ts +1 -0
- package/build/routes/chromium/http/scrape.post.js +1 -0
- package/build/routes/chromium/http/scrape.post.query.json +183 -0
- package/build/routes/chromium/http/scrape.post.response.json +309 -0
- package/build/routes/chromium/http/screenshot.post.body.json +600 -0
- package/build/routes/chromium/http/screenshot.post.d.ts +1 -0
- package/build/routes/chromium/http/screenshot.post.js +1 -0
- package/build/routes/chromium/http/screenshot.post.query.json +120 -0
- package/build/routes/chromium/http/screenshot.post.response.json +5 -0
- package/build/routes/chromium/tests/content.spec.js +16 -16
- package/build/routes/chromium/tests/download.spec.js +3 -3
- package/build/routes/chromium/tests/function.spec.js +10 -10
- package/build/routes/chromium/tests/page-websocket.spec.d.ts +1 -0
- package/build/routes/chromium/tests/page-websocket.spec.js +97 -0
- package/build/routes/chromium/tests/pdf.spec.js +16 -16
- package/build/routes/chromium/tests/performance.spec.js +7 -7
- package/build/routes/chromium/tests/scrape.spec.js +15 -15
- package/build/routes/chromium/tests/screenshot.spec.js +17 -17
- package/build/routes/chromium/tests/websocket.spec.js +31 -37
- package/build/routes/chromium/ws/browser.d.ts +1 -16
- package/build/routes/chromium/ws/browser.js +1 -10
- package/build/routes/chromium/ws/cdp.d.ts +1 -0
- package/build/routes/chromium/ws/cdp.js +1 -0
- package/build/routes/chromium/ws/cdp.query.json +120 -0
- package/build/routes/chromium/ws/page.d.ts +1 -16
- package/build/routes/chromium/ws/page.js +1 -10
- package/build/routes/chromium/ws/playwright.d.ts +1 -0
- package/build/routes/chromium/ws/playwright.js +1 -0
- package/build/routes/firefox/ws/{playwright-firefox.d.ts → playwright.d.ts} +5 -5
- package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
- package/build/routes/management/http/{sessions-get.response.json → sessions.get.response.json} +11 -1
- package/build/routes/management/http/{static-get.js → static.get.js} +2 -2
- package/build/routes/webkit/ws/{playwright-webkit.d.ts → playwright.d.ts} +5 -5
- package/build/routes/webkit/ws/{playwright-webkit.js → playwright.js} +4 -4
- package/build/routes/webkit/ws/playwright.query.json +100 -0
- package/build/{routes/chromium/ws/cdp-chromium.d.ts → shared/browser.ws.d.ts} +4 -4
- package/build/shared/browser.ws.js +12 -0
- package/build/{routes/chromium/ws/playwright-chromium.d.ts → shared/chromium.playwright.ws.d.ts} +4 -4
- package/build/{routes/chromium/ws/playwright-chromium.js → shared/chromium.playwright.ws.js} +6 -3
- package/build/shared/chromium.ws.d.ts +16 -0
- package/build/shared/chromium.ws.js +10 -0
- package/build/{routes/chromium/http/content-post.d.ts → shared/content.http.d.ts} +3 -3
- package/build/{routes/chromium/http/content-post.js → shared/content.http.js} +3 -3
- package/build/{routes/chromium/http/download-post.d.ts → shared/download.http.d.ts} +3 -3
- package/build/{routes/chromium/http/download-post.js → shared/download.http.js} +4 -4
- package/build/{routes/chromium/http/function-post.d.ts → shared/function.http.d.ts} +3 -3
- package/build/{routes/chromium/http/function-post.js → shared/function.http.js} +4 -4
- package/build/{routes/chromium/http/json-new.d.ts → shared/json-list.http.d.ts} +2 -3
- package/build/{routes/chromium/http/json-list.js → shared/json-list.http.js} +5 -8
- package/build/{routes/chromium/http/json-list.d.ts → shared/json-new.http.d.ts} +2 -3
- package/build/shared/json-new.http.js +34 -0
- package/build/{routes/chromium/http/json-protocol-get.js → shared/json-protocol.http.js} +2 -2
- package/build/{routes/chromium/http/json-version-get.js → shared/json-version.http.js} +3 -3
- package/build/shared/page.ws.d.ts +16 -0
- package/build/shared/page.ws.js +13 -0
- package/build/{routes/chromium/http/pdf-post.d.ts → shared/pdf.http.d.ts} +3 -3
- package/build/{routes/chromium/http/pdf-post.js → shared/pdf.http.js} +3 -3
- package/build/{routes/chromium/http/performance.d.ts → shared/performance.http.d.ts} +3 -3
- package/build/{routes/chromium/http/performance.js → shared/performance.http.js} +4 -4
- package/build/{routes/chromium/http/scrape-post.d.ts → shared/scrape.http.d.ts} +3 -3
- package/build/{routes/chromium/http/scrape-post.js → shared/scrape.http.js} +3 -3
- package/build/{routes/chromium/http/screenshot-post.d.ts → shared/screenshot.http.d.ts} +3 -3
- package/build/{routes/chromium/http/screenshot-post.js → shared/screenshot.http.js} +3 -3
- package/build/shared/utils/performance/child.d.ts +1 -0
- package/build/{routes/chromium → shared}/utils/performance/main.js +1 -1
- package/build/shared/utils/performance/types.js +1 -0
- package/build/shim.js +2 -1
- package/build/types.d.ts +10 -8
- package/build/utils.d.ts +8 -3
- package/build/utils.js +24 -11
- package/docker/base/Dockerfile +1 -1
- package/docker/chrome/Dockerfile +4 -4
- package/docker/chromium/.dockerignore +16 -0
- package/docker/chromium/Dockerfile +40 -0
- package/docker/firefox/Dockerfile +1 -1
- package/docker/multi/Dockerfile +13 -1
- package/docker/webkit/Dockerfile +1 -1
- package/extensions/ublock/3p-filters.html +1 -1
- package/extensions/ublock/_locales/ar/messages.json +4 -0
- package/extensions/ublock/_locales/az/messages.json +4 -0
- package/extensions/ublock/_locales/be/messages.json +4 -0
- package/extensions/ublock/_locales/bg/messages.json +5 -1
- package/extensions/ublock/_locales/bn/messages.json +4 -0
- package/extensions/ublock/_locales/br_FR/messages.json +6 -2
- package/extensions/ublock/_locales/bs/messages.json +4 -0
- package/extensions/ublock/_locales/ca/messages.json +4 -0
- package/extensions/ublock/_locales/cs/messages.json +4 -0
- package/extensions/ublock/_locales/cv/messages.json +4 -0
- package/extensions/ublock/_locales/cy/messages.json +1294 -0
- package/extensions/ublock/_locales/da/messages.json +4 -0
- package/extensions/ublock/_locales/de/messages.json +5 -1
- package/extensions/ublock/_locales/el/messages.json +4 -0
- package/extensions/ublock/_locales/en/messages.json +4 -0
- package/extensions/ublock/_locales/en_GB/messages.json +4 -0
- package/extensions/ublock/_locales/eo/messages.json +9 -5
- package/extensions/ublock/_locales/es/messages.json +4 -0
- package/extensions/ublock/_locales/et/messages.json +4 -0
- package/extensions/ublock/_locales/eu/messages.json +8 -4
- package/extensions/ublock/_locales/fa/messages.json +4 -0
- package/extensions/ublock/_locales/fi/messages.json +4 -0
- package/extensions/ublock/_locales/fil/messages.json +4 -0
- package/extensions/ublock/_locales/fr/messages.json +4 -0
- package/extensions/ublock/_locales/fy/messages.json +4 -0
- package/extensions/ublock/_locales/gl/messages.json +4 -0
- package/extensions/ublock/_locales/gu/messages.json +4 -0
- package/extensions/ublock/_locales/he/messages.json +4 -0
- package/extensions/ublock/_locales/hi/messages.json +4 -0
- package/extensions/ublock/_locales/hr/messages.json +4 -0
- package/extensions/ublock/_locales/hu/messages.json +4 -0
- package/extensions/ublock/_locales/hy/messages.json +4 -0
- package/extensions/ublock/_locales/id/messages.json +5 -1
- package/extensions/ublock/_locales/it/messages.json +4 -0
- package/extensions/ublock/_locales/ja/messages.json +4 -0
- package/extensions/ublock/_locales/ka/messages.json +34 -30
- package/extensions/ublock/_locales/kk/messages.json +4 -0
- package/extensions/ublock/_locales/kn/messages.json +4 -0
- package/extensions/ublock/_locales/ko/messages.json +4 -0
- package/extensions/ublock/_locales/ku/messages.json +4 -0
- package/extensions/ublock/_locales/lt/messages.json +4 -0
- package/extensions/ublock/_locales/lv/messages.json +4 -0
- package/extensions/ublock/_locales/mk/messages.json +4 -0
- package/extensions/ublock/_locales/ml/messages.json +4 -0
- package/extensions/ublock/_locales/mr/messages.json +4 -0
- package/extensions/ublock/_locales/ms/messages.json +13 -9
- package/extensions/ublock/_locales/nb/messages.json +4 -0
- package/extensions/ublock/_locales/nl/messages.json +4 -0
- package/extensions/ublock/_locales/no/messages.json +4 -0
- package/extensions/ublock/_locales/oc/messages.json +4 -0
- package/extensions/ublock/_locales/pa/messages.json +4 -0
- package/extensions/ublock/_locales/pl/messages.json +5 -1
- package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
- package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
- package/extensions/ublock/_locales/ro/messages.json +5 -1
- package/extensions/ublock/_locales/ru/messages.json +4 -0
- package/extensions/ublock/_locales/si/messages.json +4 -0
- package/extensions/ublock/_locales/sk/messages.json +4 -0
- package/extensions/ublock/_locales/sl/messages.json +4 -0
- package/extensions/ublock/_locales/so/messages.json +4 -0
- package/extensions/ublock/_locales/sq/messages.json +4 -0
- package/extensions/ublock/_locales/sr/messages.json +4 -0
- package/extensions/ublock/_locales/sv/messages.json +4 -0
- package/extensions/ublock/_locales/sw/messages.json +4 -0
- package/extensions/ublock/_locales/ta/messages.json +4 -0
- package/extensions/ublock/_locales/te/messages.json +4 -0
- package/extensions/ublock/_locales/th/messages.json +12 -8
- package/extensions/ublock/_locales/tr/messages.json +4 -0
- package/extensions/ublock/_locales/uk/messages.json +4 -0
- package/extensions/ublock/_locales/ur/messages.json +4 -0
- package/extensions/ublock/_locales/vi/messages.json +4 -0
- package/extensions/ublock/_locales/zh_CN/messages.json +6 -2
- package/extensions/ublock/_locales/zh_TW/messages.json +6 -2
- package/extensions/ublock/assets/assets.json +11 -11
- package/extensions/ublock/assets/resources/scriptlets.js +660 -378
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +7173 -3455
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +18829 -1918
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +21 -26
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +118 -46
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +710 -1117
- package/extensions/ublock/assets/ublock/badlists.txt +0 -4
- package/extensions/ublock/assets/ublock/badware.min.txt +116 -105
- package/extensions/ublock/assets/ublock/filters.min.txt +1443 -1097
- package/extensions/ublock/assets/ublock/privacy.min.txt +50 -31
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +97 -108
- package/extensions/ublock/assets/ublock/unbreak.min.txt +64 -21
- package/extensions/ublock/css/1p-filters.css +4 -0
- package/extensions/ublock/css/3p-filters.css +6 -4
- package/extensions/ublock/css/common.css +1 -1
- package/extensions/ublock/css/fa-icons.css +1 -0
- package/extensions/ublock/css/logger-ui.css +72 -52
- package/extensions/ublock/css/popup-fenix.css +1 -1
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/3p-filters.js +3 -3
- package/extensions/ublock/js/assets.js +7 -4
- package/extensions/ublock/js/background.js +1 -3
- package/extensions/ublock/js/benchmarks.js +1 -0
- package/extensions/ublock/js/broadcast.js +12 -0
- package/extensions/ublock/js/click2load.js +2 -3
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1 -0
- package/extensions/ublock/js/commands.js +10 -0
- package/extensions/ublock/js/contentscript-extra.js +13 -11
- package/extensions/ublock/js/contentscript.js +0 -31
- package/extensions/ublock/js/contextmenu.js +5 -1
- package/extensions/ublock/js/dyna-rules.js +83 -52
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/filtering-context.js +0 -2
- package/extensions/ublock/js/i18n.js +1 -5
- package/extensions/ublock/js/logger-ui.js +71 -38
- package/extensions/ublock/js/logger.js +18 -14
- package/extensions/ublock/js/messaging.js +17 -5
- package/extensions/ublock/js/popup-fenix.js +6 -6
- package/extensions/ublock/js/scriptlet-filtering-core.js +14 -12
- package/extensions/ublock/js/scriptlet-filtering.js +149 -53
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-1.js +49 -0
- package/extensions/ublock/js/scriptlets/scriptlet-loglevel-2.js +49 -0
- package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -1
- package/extensions/ublock/js/static-dnr-filtering.js +4 -2
- package/extensions/ublock/js/static-filtering-parser.js +14 -8
- package/extensions/ublock/js/static-net-filtering.js +32 -30
- package/extensions/ublock/js/storage.js +18 -4
- package/extensions/ublock/js/traffic.js +3 -3
- package/extensions/ublock/js/ublock.js +1 -1
- package/extensions/ublock/js/vapi-background.js +15 -7
- package/extensions/ublock/logger-ui.html +18 -10
- package/extensions/ublock/manifest.json +4 -1
- package/extensions/ublock/web_accessible_resources/chartbeat.js +3 -0
- package/package.json +12 -11
- package/scripts/build-function.js +1 -1
- package/scripts/build-open-api.js +3 -2
- package/scripts/clean.js +6 -1
- package/scripts/install-debugger.js +20 -0
- package/scripts/install-devtools.js +40 -0
- package/src/browserless.ts +11 -9
- package/src/browsers/chrome.cdp.ts +10 -0
- package/src/browsers/chrome.playwright.ts +10 -0
- package/src/browsers/{cdp-chromium.ts → chromium.cdp.ts} +20 -13
- package/src/browsers/{playwright-chromium.ts → chromium.playwright.ts} +7 -6
- package/src/browsers/{playwright-firefox.ts → firefox.playwright.ts} +5 -5
- package/src/browsers/index.ts +160 -23
- package/src/browsers/{playwright-webkit.ts → webkit.playwright.ts} +5 -5
- package/src/exports.ts +6 -4
- package/src/hooks.ts +4 -12
- package/src/http.ts +21 -0
- package/src/router.ts +21 -5
- package/src/routes/chrome/http/content.post.ts +14 -0
- package/src/routes/chrome/http/download.post.ts +14 -0
- package/src/routes/chrome/http/function.post.ts +14 -0
- package/src/routes/chrome/http/json-list.get.ts +1 -0
- package/src/routes/chrome/http/json-new.put.ts +1 -0
- package/src/routes/chrome/http/json-protocol.get.ts +1 -0
- package/src/routes/chrome/http/json-version.get.ts +1 -0
- package/src/routes/chrome/http/pdf.post.ts +14 -0
- package/src/routes/chrome/http/performance.post.ts +14 -0
- package/src/routes/chrome/http/scrape.post.ts +14 -0
- package/src/routes/chrome/http/screenshot.post.ts +14 -0
- package/src/routes/chrome/tests/content.spec.ts +375 -0
- package/src/routes/chrome/tests/download.spec.ts +77 -0
- package/src/routes/chrome/tests/function.spec.ts +282 -0
- package/src/routes/chrome/tests/json-version.spec.ts +52 -0
- package/src/routes/chrome/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chrome/tests/pdf.spec.ts +380 -0
- package/src/routes/chrome/tests/performance.spec.ts +155 -0
- package/src/routes/chrome/tests/scrape.spec.ts +417 -0
- package/src/routes/chrome/tests/screenshot.spec.ts +387 -0
- package/src/routes/chrome/tests/websocket.spec.ts +491 -0
- package/src/routes/chrome/ws/browser.ts +8 -0
- package/src/routes/chrome/ws/cdp.ts +12 -0
- package/src/routes/chrome/ws/page.ts +8 -0
- package/src/routes/chrome/ws/playwright.ts +12 -0
- package/src/routes/chromium/http/content.post.ts +6 -0
- package/src/routes/chromium/http/download.post.ts +6 -0
- package/src/routes/chromium/http/function.post.ts +6 -0
- package/src/routes/chromium/http/json-list.get.ts +1 -0
- package/src/routes/chromium/http/json-new.put.ts +1 -0
- package/src/routes/chromium/http/json-protocol.get.ts +1 -0
- package/src/routes/chromium/http/json-version.get.ts +1 -0
- package/src/routes/chromium/http/pdf.post.ts +6 -0
- package/src/routes/chromium/http/performance.post.ts +6 -0
- package/src/routes/chromium/http/scrape.post.ts +6 -0
- package/src/routes/chromium/http/screenshot.post.ts +6 -0
- package/src/routes/chromium/tests/content.spec.ts +36 -28
- package/src/routes/chromium/tests/download.spec.ts +3 -3
- package/src/routes/chromium/tests/function.spec.ts +18 -15
- package/src/routes/chromium/tests/page-websocket.spec.ts +129 -0
- package/src/routes/chromium/tests/pdf.spec.ts +31 -26
- package/src/routes/chromium/tests/performance.spec.ts +46 -34
- package/src/routes/chromium/tests/scrape.spec.ts +23 -20
- package/src/routes/chromium/tests/screenshot.spec.ts +24 -24
- package/src/routes/chromium/tests/websocket.spec.ts +31 -40
- package/src/routes/chromium/ws/browser.ts +1 -29
- package/src/routes/chromium/ws/cdp.ts +1 -0
- package/src/routes/chromium/ws/page.ts +1 -29
- package/src/routes/chromium/ws/playwright.ts +4 -0
- package/src/routes/firefox/ws/{playwright-firefox.ts → playwright.ts} +5 -5
- package/src/routes/management/http/{static-get.ts → static.get.ts} +2 -2
- package/src/routes/webkit/ws/{playwright-webkit.ts → playwright.ts} +5 -5
- package/src/shared/browser.ws.ts +34 -0
- package/src/{routes/chromium/ws/playwright-chromium.ts → shared/chromium.playwright.ws.ts} +7 -4
- package/src/{routes/chromium/ws/cdp-chromium.ts → shared/chromium.ws.ts} +6 -6
- package/src/{routes/chromium/http/content-post.ts → shared/content.http.ts} +4 -4
- package/src/{routes/chromium/http/download-post.ts → shared/download.http.ts} +4 -4
- package/src/{routes/chromium/http/function-post.ts → shared/function.http.ts} +4 -4
- package/src/shared/json-list.http.ts +35 -0
- package/src/{routes/chromium/http/json-new.ts → shared/json-new.http.ts} +23 -7
- package/src/{routes/chromium/http/json-protocol-get.ts → shared/json-protocol.http.ts} +3 -5
- package/src/{routes/chromium/http/json-version-get.ts → shared/json-version.http.ts} +4 -5
- package/src/shared/page.ws.ts +35 -0
- package/src/{routes/chromium/http/pdf-post.ts → shared/pdf.http.ts} +4 -4
- package/src/{routes/chromium/http/performance.ts → shared/performance.http.ts} +4 -4
- package/src/{routes/chromium/http/scrape-post.ts → shared/scrape.http.ts} +4 -4
- package/src/{routes/chromium/http/screenshot-post.ts → shared/screenshot.http.ts} +4 -4
- package/src/{routes/chromium → shared}/utils/function/handler.ts +2 -2
- package/src/{routes/chromium → shared}/utils/performance/main.ts +1 -2
- package/src/shim.ts +2 -1
- package/src/types.ts +27 -20
- package/src/utils.ts +32 -14
- package/static/devtools/Images/accelerometer-back.svg +1 -0
- package/static/devtools/Images/accelerometer-bottom.png +0 -0
- package/static/devtools/Images/accelerometer-front.svg +1 -0
- package/static/devtools/Images/accelerometer-left.png +0 -0
- package/static/devtools/Images/accelerometer-right.png +0 -0
- package/static/devtools/Images/accelerometer-top.png +0 -0
- package/static/devtools/Images/baseline-icon.svg +1 -0
- package/static/devtools/Images/breaking_change_icon.svg +1 -0
- package/static/devtools/Images/checkboxCheckmark.svg +1 -0
- package/static/devtools/Images/checker.png +0 -0
- package/static/devtools/Images/chevrons.svg +1 -0
- package/static/devtools/Images/chromeDisabledSelect.png +0 -0
- package/static/devtools/Images/chromeDisabledSelect_2x.png +0 -0
- package/static/devtools/Images/chromeLeft.avif +0 -0
- package/static/devtools/Images/chromeMiddle.avif +0 -0
- package/static/devtools/Images/chromeRight.avif +0 -0
- package/static/devtools/Images/chromeSelect.svg +1 -0
- package/static/devtools/Images/chromeSelectDark.svg +1 -0
- package/static/devtools/Images/cssoverview_icons_2x.avif +0 -0
- package/static/devtools/Images/dropdown_7x6_icon.svg +1 -0
- package/static/devtools/Images/elements_panel_icon.svg +1 -0
- package/static/devtools/Images/errorWave.svg +1 -0
- package/static/devtools/Images/error_icon.svg +1 -0
- package/static/devtools/Images/feedback_thin_16x16_icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-content-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-items-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-center-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-align-self-stretch-icon.svg +1 -0
- package/static/devtools/Images/flex-direction-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-center-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-end-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-flex-start-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-around-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-between-icon.svg +1 -0
- package/static/devtools/Images/flex-justify-content-space-evenly-icon.svg +1 -0
- package/static/devtools/Images/ic_checkmark_16x16.svg +3 -0
- package/static/devtools/Images/ic_delete_filter.svg +1 -0
- package/static/devtools/Images/ic_delete_list.svg +1 -0
- package/static/devtools/Images/ic_info_black_18dp.svg +1 -0
- package/static/devtools/Images/ic_page_next_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_page_prev_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_redo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_show_node_16x16.svg +4 -0
- package/static/devtools/Images/ic_suggest_color.svg +6 -0
- package/static/devtools/Images/ic_undo_16x16_icon.svg +1 -0
- package/static/devtools/Images/ic_warning_black_18dp.svg +1 -0
- package/static/devtools/Images/issue-text-icon.svg +1 -0
- package/static/devtools/Images/largeIcons.svg +1 -0
- package/static/devtools/Images/lighthouse_logo.svg +1 -0
- package/static/devtools/Images/link_icon.svg +1 -0
- package/static/devtools/Images/mediumIcons.svg +1 -0
- package/static/devtools/Images/navigationControls.png +0 -0
- package/static/devtools/Images/navigationControls_2x.png +0 -0
- package/static/devtools/Images/network_panel_icon.svg +1 -0
- package/static/devtools/Images/nodeIcon.avif +0 -0
- package/static/devtools/Images/node_search_icon.svg +1 -0
- package/static/devtools/Images/popoverArrows.png +0 -0
- package/static/devtools/Images/profileGroupIcon.png +0 -0
- package/static/devtools/Images/profileIcon.png +0 -0
- package/static/devtools/Images/profileSmallIcon.png +0 -0
- package/static/devtools/Images/radioDot-dark-theme.png +0 -0
- package/static/devtools/Images/radioDot.png +0 -0
- package/static/devtools/Images/refresh_12x12_icon.svg +1 -0
- package/static/devtools/Images/resizeDiagonal.svg +1 -0
- package/static/devtools/Images/resizeHorizontal.svg +1 -0
- package/static/devtools/Images/resizeVertical.svg +1 -0
- package/static/devtools/Images/resourceCSSIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIcon.png +0 -0
- package/static/devtools/Images/resourceDocumentIconSmall.png +0 -0
- package/static/devtools/Images/resourceJSIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIcon.png +0 -0
- package/static/devtools/Images/resourcePlainIconSmall.png +0 -0
- package/static/devtools/Images/resourcesTimeGraphIcon.avif +0 -0
- package/static/devtools/Images/searchNext.png +0 -0
- package/static/devtools/Images/searchPrev.png +0 -0
- package/static/devtools/Images/securityIcons.svg +1 -0
- package/static/devtools/Images/settings_14x14_icon.svg +1 -0
- package/static/devtools/Images/smallIcons.svg +1 -0
- package/static/devtools/Images/sources_panel_icon.svg +1 -0
- package/static/devtools/Images/speech.png +0 -0
- package/static/devtools/Images/toolbarResizerVertical.png +0 -0
- package/static/devtools/Images/touchCursor.png +0 -0
- package/static/devtools/Images/touchCursor_2x.png +0 -0
- package/static/devtools/Images/treeoutlineTriangles.svg +1 -0
- package/static/devtools/Images/warning_icon.svg +1 -0
- package/static/devtools/Images/whatsnew.avif +0 -0
- package/static/devtools/Tests.js +1654 -0
- package/static/devtools/accessibility/accessibility-legacy.js +1 -0
- package/static/devtools/accessibility/accessibility-meta.js +1 -0
- package/static/devtools/accessibility/accessibility.js +1 -0
- package/static/devtools/accessibility/accessibility_module.js +1 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner.js +77 -0
- package/static/devtools/accessibility_test_runner/accessibility_test_runner_module.js +0 -0
- package/static/devtools/animation/animation-legacy.js +1 -0
- package/static/devtools/animation/animation-meta.js +1 -0
- package/static/devtools/animation/animation.js +1 -0
- package/static/devtools/animation/animation_module.js +1 -0
- package/static/devtools/application_test_runner/AppcacheTestRunner.js +220 -0
- package/static/devtools/application_test_runner/CacheStorageTestRunner.js +286 -0
- package/static/devtools/application_test_runner/IndexedDBTestRunner.js +476 -0
- package/static/devtools/application_test_runner/ResourceTreeTestRunner.js +99 -0
- package/static/devtools/application_test_runner/ResourcesTestRunner.js +167 -0
- package/static/devtools/application_test_runner/ServiceWorkersTestRunner.js +131 -0
- package/static/devtools/application_test_runner/application_test_runner.js +10 -0
- package/static/devtools/application_test_runner/application_test_runner_module.js +0 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner.js +174 -0
- package/static/devtools/axe_core_test_runner/axe_core_test_runner_module.js +0 -0
- package/static/devtools/bindings/bindings-legacy.js +1 -0
- package/static/devtools/bindings/bindings.js +1 -0
- package/static/devtools/bindings_test_runner/AutomappingTestRunner.js +130 -0
- package/static/devtools/bindings_test_runner/BindingsTestRunner.js +238 -0
- package/static/devtools/bindings_test_runner/IsolatedFilesystemTestRunner.js +287 -0
- package/static/devtools/bindings_test_runner/OverridesTestRunner.js +26 -0
- package/static/devtools/bindings_test_runner/PersistenceTestRunner.js +109 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner.js +9 -0
- package/static/devtools/bindings_test_runner/bindings_test_runner_module.js +0 -0
- package/static/devtools/browser_debugger/browser_debugger-legacy.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger-meta.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger.js +1 -0
- package/static/devtools/browser_debugger/browser_debugger_module.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk-meta.js +1 -0
- package/static/devtools/browser_sdk/browser_sdk.js +1 -0
- package/static/devtools/changes/changes-legacy.js +1 -0
- package/static/devtools/changes/changes-meta.js +1 -0
- package/static/devtools/changes/changes.js +1 -0
- package/static/devtools/changes/changes_module.js +1 -0
- package/static/devtools/client_variations/client_variations.js +1 -0
- package/static/devtools/client_variations/client_variations_module.js +0 -0
- package/static/devtools/cm/cm.js +1 -0
- package/static/devtools/cm/cm_module.js +1 -0
- package/static/devtools/cm_headless/cm_headless.js +1 -0
- package/static/devtools/color_picker/color_picker-legacy.js +1 -0
- package/static/devtools/color_picker/color_picker.js +1 -0
- package/static/devtools/color_picker/color_picker_module.js +1 -0
- package/static/devtools/common/common-legacy.js +1 -0
- package/static/devtools/common/common.js +1 -0
- package/static/devtools/component_helpers/component_helpers.js +1 -0
- package/static/devtools/components/components-legacy.js +1 -0
- package/static/devtools/components/components.js +1 -0
- package/static/devtools/console/console-legacy.js +1 -0
- package/static/devtools/console/console-meta.js +1 -0
- package/static/devtools/console/console.js +6 -0
- package/static/devtools/console/console_module.js +1 -0
- package/static/devtools/console_counters/console_counters-legacy.js +1 -0
- package/static/devtools/console_counters/console_counters.js +1 -0
- package/static/devtools/console_test_runner/console_test_runner.js +696 -0
- package/static/devtools/console_test_runner/console_test_runner_module.js +0 -0
- package/static/devtools/cookie_table/cookie_table-legacy.js +1 -0
- package/static/devtools/cookie_table/cookie_table.js +1 -0
- package/static/devtools/cookie_table/cookie_table_module.js +1 -0
- package/static/devtools/coverage/coverage-legacy.js +1 -0
- package/static/devtools/coverage/coverage-meta.js +1 -0
- package/static/devtools/coverage/coverage.js +1 -0
- package/static/devtools/coverage/coverage_module.js +1 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner.js +151 -0
- package/static/devtools/coverage_test_runner/coverage_test_runner_module.js +0 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner.js +72 -0
- package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js +0 -0
- package/static/devtools/css_overview/css_overview-meta.js +1 -0
- package/static/devtools/css_overview/css_overview.js +146 -0
- package/static/devtools/css_overview/css_overview_module.js +1 -0
- package/static/devtools/data_grid/data_grid-legacy.js +1 -0
- package/static/devtools/data_grid/data_grid.js +1 -0
- package/static/devtools/data_grid/data_grid_module.js +1 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner.js +78 -0
- package/static/devtools/data_grid_test_runner/data_grid_test_runner_module.js +0 -0
- package/static/devtools/developer_resources/developer_resources-legacy.js +1 -0
- package/static/devtools/developer_resources/developer_resources-meta.js +1 -0
- package/static/devtools/developer_resources/developer_resources.js +1 -0
- package/static/devtools/developer_resources/developer_resources_module.js +1 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner.js +45 -0
- package/static/devtools/device_mode_test_runner/device_mode_test_runner_module.js +0 -0
- package/static/devtools/devtools_app.html +20 -0
- package/static/devtools/devtools_app.js +1 -0
- package/static/devtools/devtools_compatibility.js +1546 -0
- package/static/devtools/diff/diff-legacy.js +1 -0
- package/static/devtools/diff/diff.js +1 -0
- package/static/devtools/diff/diff_module.js +0 -0
- package/static/devtools/dom_extension/dom_extension.js +1 -0
- package/static/devtools/elements/elements-legacy.js +1 -0
- package/static/devtools/elements/elements-meta.js +1 -0
- package/static/devtools/elements/elements.js +469 -0
- package/static/devtools/elements/elements_module.js +1 -0
- package/static/devtools/elements_test_runner/EditDOMTestRunner.js +78 -0
- package/static/devtools/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +39 -0
- package/static/devtools/elements_test_runner/ElementsTestRunner.js +1280 -0
- package/static/devtools/elements_test_runner/SetOuterHTMLTestRunner.js +115 -0
- package/static/devtools/elements_test_runner/StylesUpdateLinksTestRunner.js +134 -0
- package/static/devtools/elements_test_runner/elements_test_runner.js +9 -0
- package/static/devtools/elements_test_runner/elements_test_runner_module.js +0 -0
- package/static/devtools/emulated_devices/emulated_devices_module.js +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/static/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/static/devtools/emulation/emulation-legacy.js +1 -0
- package/static/devtools/emulation/emulation-meta.js +1 -0
- package/static/devtools/emulation/emulation.js +1 -0
- package/static/devtools/event_listeners/event_listeners-legacy.js +1 -0
- package/static/devtools/event_listeners/event_listeners.js +1 -0
- package/static/devtools/event_listeners/event_listeners_module.js +1 -0
- package/static/devtools/extensions/extensions-legacy.js +1 -0
- package/static/devtools/extensions/extensions.js +1 -0
- package/static/devtools/extensions_test_runner/ExtensionsNetworkTestRunner.js +27 -0
- package/static/devtools/extensions_test_runner/ExtensionsTestRunner.js +68 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner.js +6 -0
- package/static/devtools/extensions_test_runner/extensions_test_runner_module.js +0 -0
- package/static/devtools/formatter/formatter-legacy.js +1 -0
- package/static/devtools/formatter/formatter.js +1 -0
- package/static/devtools/formatter/formatter_module.js +0 -0
- package/static/devtools/formatter_worker/FormatterActions.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/static/devtools/formatter_worker/formatter_worker.js +1 -0
- package/static/devtools/har_importer/har_importer-legacy.js +1 -0
- package/static/devtools/har_importer/har_importer.js +1 -0
- package/static/devtools/har_importer/har_importer_module.js +0 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner.js +740 -0
- package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner_module.js +0 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/static/devtools/heap_snapshot_model/heap_snapshot_model_module.js +0 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/static/devtools/heap_snapshot_worker/heap_snapshot_worker_module.js +0 -0
- package/static/devtools/help/help-legacy.js +1 -0
- package/static/devtools/help/help-meta.js +1 -0
- package/static/devtools/help/help.js +1 -0
- package/static/devtools/help/help_module.js +1 -0
- package/static/devtools/host/host-legacy.js +1 -0
- package/static/devtools/host/host.js +1 -0
- package/static/devtools/i18n/i18n.js +1 -0
- package/static/devtools/i18n/i18n_locales-tsconfig.json +8 -0
- package/static/devtools/i18n/locales/en-US.json +3566 -0
- package/static/devtools/inline_editor/inline_editor-legacy.js +1 -0
- package/static/devtools/inline_editor/inline_editor.js +203 -0
- package/static/devtools/inline_editor/inline_editor_module.js +1 -0
- package/static/devtools/input/input-legacy.js +1 -0
- package/static/devtools/input/input-meta.js +1 -0
- package/static/devtools/input/input.js +1 -0
- package/static/devtools/input/input_module.js +1 -0
- package/static/devtools/inspector.html +20 -0
- package/static/devtools/inspector.js +1 -0
- package/static/devtools/inspector_main/inspector_main-legacy.js +1 -0
- package/static/devtools/inspector_main/inspector_main-meta.js +1 -0
- package/static/devtools/inspector_main/inspector_main.js +1 -0
- package/static/devtools/integration_test_runner.html +14 -0
- package/static/devtools/integration_test_runner.js +2 -0
- package/static/devtools/issues/issues-legacy.js +1 -0
- package/static/devtools/issues/issues-meta.js +1 -0
- package/static/devtools/issues/issues.js +67 -0
- package/static/devtools/issues/issues_module.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata-legacy.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata.js +1 -0
- package/static/devtools/javascript_metadata/javascript_metadata_module.js +0 -0
- package/static/devtools/js_app.html +20 -0
- package/static/devtools/js_app.js +1 -0
- package/static/devtools/js_main/js_main-legacy.js +1 -0
- package/static/devtools/js_main/js_main.js +1 -0
- package/static/devtools/js_profiler/js_profiler-meta.js +1 -0
- package/static/devtools/js_profiler/js_profiler.js +1 -0
- package/static/devtools/js_profiler/js_profiler_module.js +0 -0
- package/static/devtools/layer_viewer/layer_viewer-legacy.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer.js +1 -0
- package/static/devtools/layer_viewer/layer_viewer_module.js +1 -0
- package/static/devtools/layers/layers-legacy.js +1 -0
- package/static/devtools/layers/layers-meta.js +1 -0
- package/static/devtools/layers/layers.js +1 -0
- package/static/devtools/layers/layers_module.js +0 -0
- package/static/devtools/layers_test_runner/layers_test_runner.js +156 -0
- package/static/devtools/layers_test_runner/layers_test_runner_module.js +0 -0
- package/static/devtools/lighthouse/lighthouse-legacy.js +1 -0
- package/static/devtools/lighthouse/lighthouse-meta.js +1 -0
- package/static/devtools/lighthouse/lighthouse.js +70 -0
- package/static/devtools/lighthouse/lighthouse_module.js +1 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner.js +136 -0
- package/static/devtools/lighthouse_test_runner/lighthouse_test_runner_module.js +0 -0
- package/static/devtools/lighthouse_worker/LighthouseService.js +195 -0
- package/static/devtools/lighthouse_worker/lighthouse_worker.js +6 -0
- package/static/devtools/lighthouse_worker.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-legacy.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector.js +399 -0
- package/static/devtools/linear_memory_inspector/linear_memory_inspector_module.js +0 -0
- package/static/devtools/main/main-legacy.js +1 -0
- package/static/devtools/main/main.js +1 -0
- package/static/devtools/media/media-legacy.js +1 -0
- package/static/devtools/media/media-meta.js +1 -0
- package/static/devtools/media/media.js +1 -0
- package/static/devtools/media/media_module.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-legacy.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/static/devtools/mobile_throttling/mobile_throttling.js +1 -0
- package/static/devtools/ndb_app.html +20 -0
- package/static/devtools/ndb_app.js +1 -0
- package/static/devtools/network/network-legacy.js +1 -0
- package/static/devtools/network/network-meta.js +1 -0
- package/static/devtools/network/network.js +72 -0
- package/static/devtools/network/network_module.js +1 -0
- package/static/devtools/network_test_runner/network_test_runner.js +280 -0
- package/static/devtools/network_test_runner/network_test_runner_module.js +0 -0
- package/static/devtools/node_app.html +20 -0
- package/static/devtools/node_app.js +1 -0
- package/static/devtools/node_debugger/node_debugger-meta.js +1 -0
- package/static/devtools/node_debugger/node_debugger.js +1 -0
- package/static/devtools/node_debugger/node_debugger_module.js +0 -0
- package/static/devtools/node_main/node_main-legacy.js +1 -0
- package/static/devtools/node_main/node_main-meta.js +1 -0
- package/static/devtools/node_main/node_main.js +1 -0
- package/static/devtools/object_ui/object_ui-legacy.js +1 -0
- package/static/devtools/object_ui/object_ui.js +3 -0
- package/static/devtools/object_ui/object_ui_module.js +1 -0
- package/static/devtools/perf_ui/perf_ui-legacy.js +1 -0
- package/static/devtools/perf_ui/perf_ui.js +152 -0
- package/static/devtools/perf_ui/perf_ui_module.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-legacy.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor-meta.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor.js +1 -0
- package/static/devtools/performance_monitor/performance_monitor_module.js +1 -0
- package/static/devtools/performance_test_runner/TimelineDataTestRunner.js +5375 -0
- package/static/devtools/performance_test_runner/TimelineTestRunner.js +446 -0
- package/static/devtools/performance_test_runner/performance_test_runner.js +6 -0
- package/static/devtools/performance_test_runner/performance_test_runner_module.js +0 -0
- package/static/devtools/persistence/persistence-legacy.js +1 -0
- package/static/devtools/persistence/persistence-meta.js +1 -0
- package/static/devtools/persistence/persistence.js +1 -0
- package/static/devtools/platform/platform.js +1 -0
- package/static/devtools/profiler/profiler-legacy.js +1 -0
- package/static/devtools/profiler/profiler-meta.js +1 -0
- package/static/devtools/profiler/profiler.js +8 -0
- package/static/devtools/profiler/profiler_module.js +1 -0
- package/static/devtools/protocol_client/protocol_client-legacy.js +1 -0
- package/static/devtools/protocol_client/protocol_client.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-legacy.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor.js +1 -0
- package/static/devtools/protocol_monitor/protocol_monitor_module.js +1 -0
- package/static/devtools/quick_open/quick_open-legacy.js +1 -0
- package/static/devtools/quick_open/quick_open.js +1 -0
- package/static/devtools/quick_open/quick_open_module.js +1 -0
- package/static/devtools/recorder/recorder.js +1 -0
- package/static/devtools/resources/resources-legacy.js +1 -0
- package/static/devtools/resources/resources-meta.js +1 -0
- package/static/devtools/resources/resources.js +28 -0
- package/static/devtools/resources/resources_module.js +1 -0
- package/static/devtools/root/root-legacy.js +1 -0
- package/static/devtools/root/root.js +1 -0
- package/static/devtools/screencast/screencast-legacy.js +1 -0
- package/static/devtools/screencast/screencast.js +1 -0
- package/static/devtools/sdk/sdk-legacy.js +1 -0
- package/static/devtools/sdk/sdk.js +2 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner.js +297 -0
- package/static/devtools/sdk_test_runner/sdk_test_runner_module.js +0 -0
- package/static/devtools/search/search-legacy.js +1 -0
- package/static/devtools/search/search.js +1 -0
- package/static/devtools/search/search_module.js +1 -0
- package/static/devtools/security/security-legacy.js +1 -0
- package/static/devtools/security/security-meta.js +1 -0
- package/static/devtools/security/security.js +1 -0
- package/static/devtools/security/security_module.js +1 -0
- package/static/devtools/security_test_runner/security_test_runner.js +32 -0
- package/static/devtools/security_test_runner/security_test_runner_module.js +0 -0
- package/static/devtools/services/services-legacy.js +1 -0
- package/static/devtools/services/services.js +1 -0
- package/static/devtools/settings/settings-legacy.js +1 -0
- package/static/devtools/settings/settings-meta.js +1 -0
- package/static/devtools/settings/settings.js +1 -0
- package/static/devtools/settings/settings_module.js +1 -0
- package/static/devtools/shell.js +1 -0
- package/static/devtools/snippets/snippets-legacy.js +1 -0
- package/static/devtools/snippets/snippets.js +1 -0
- package/static/devtools/snippets/snippets_module.js +0 -0
- package/static/devtools/source_frame/source_frame-legacy.js +1 -0
- package/static/devtools/source_frame/source_frame.js +1 -0
- package/static/devtools/source_frame/source_frame_module.js +1 -0
- package/static/devtools/sources/sources-legacy.js +1 -0
- package/static/devtools/sources/sources-meta.js +1 -0
- package/static/devtools/sources/sources.js +13 -0
- package/static/devtools/sources/sources_module.js +1 -0
- package/static/devtools/sources_test_runner/AutocompleteTestRunner.js +46 -0
- package/static/devtools/sources_test_runner/DebuggerTestRunner.js +895 -0
- package/static/devtools/sources_test_runner/EditorTestRunner.js +237 -0
- package/static/devtools/sources_test_runner/LiveEditTestRunner.js +33 -0
- package/static/devtools/sources_test_runner/SearchTestRunner.js +158 -0
- package/static/devtools/sources_test_runner/SourcesTestRunner.js +173 -0
- package/static/devtools/sources_test_runner/sources_test_runner.js +10 -0
- package/static/devtools/sources_test_runner/sources_test_runner_module.js +0 -0
- package/static/devtools/startup/startup.js +1 -0
- package/static/devtools/test_runner/test_runner.js +1 -0
- package/static/devtools/text_editor/text_editor-legacy.js +1 -0
- package/static/devtools/text_editor/text_editor.js +1 -0
- package/static/devtools/text_editor/text_editor_module.js +1 -0
- package/static/devtools/text_utils/text_utils-legacy.js +1 -0
- package/static/devtools/text_utils/text_utils.js +1 -0
- package/static/devtools/theme_support/theme_support.js +1 -0
- package/static/devtools/third_party/acorn/acorn-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn/acorn.js +1 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.d.ts +209 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs +5261 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.d.ts +2 -0
- package/static/devtools/third_party/acorn/package/dist/acorn.mjs.map +1 -0
- package/static/devtools/third_party/acorn-loose/acorn-loose-tsconfig.json +8 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.d.ts +16 -0
- package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.mjs +1418 -0
- package/static/devtools/third_party/axe-core/axe.js +16423 -0
- package/static/devtools/third_party/chromium/chromium-tsconfig.json +8 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.d.ts +13 -0
- package/static/devtools/third_party/chromium/client-variations/ClientVariations.js +27 -0
- package/static/devtools/third_party/codemirror/codemirror-tsconfig.json +72 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/addon/comment/comment.js +211 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.js +201 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.js +158 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.js +105 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.js +157 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.js +163 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.js +131 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/overlay.js +90 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/mode/simple.js +216 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.js +333 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/active-line.js +72 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.js +119 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/lib/codemirror.js +9800 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clike/clike.js +935 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.js +292 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.js +359 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/css/css.js +864 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.js +37 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.js +153 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.js +942 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.js +148 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.d.ts +4 -0
- package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.js +280 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.js +886 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/php/php.js +234 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/python/python.js +399 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/shell/shell.js +168 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/wast/wast.js +41 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.d.ts +1 -0
- package/static/devtools/third_party/codemirror/package/mode/xml/xml.js +413 -0
- package/static/devtools/third_party/i18n/bundle-tsconfig.json +8 -0
- package/static/devtools/third_party/i18n/i18n.d.ts +108 -0
- package/static/devtools/third_party/i18n/i18n.js +4336 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.js +1140 -0
- package/static/devtools/third_party/lighthouse/lighthouse-tsconfig.json +10 -0
- package/static/devtools/third_party/lighthouse/locales/ar-XB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ar.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/bg.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ca.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/cs.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/da.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/de.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/el.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-GB.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-US.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/en-XA.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/en-XL.json +2297 -0
- package/static/devtools/third_party/lighthouse/locales/es-419.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/es.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fil.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/fr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/he.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/hu.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/id.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/it.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ja.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ko.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/lv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/nl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/no.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt-PT.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/pt.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ro.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ru.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sl.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr-Latn.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/sv.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/ta.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/te.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/th.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/tr.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/uk.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/vi.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-HK.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh-TW.json +2066 -0
- package/static/devtools/third_party/lighthouse/locales/zh.json +2066 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report-generator.js +167 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.d.ts +1 -0
- package/static/devtools/third_party/lighthouse/report-assets/report.js +5032 -0
- package/static/devtools/third_party/lit-html/lit-html-tsconfig.json +22 -0
- package/static/devtools/third_party/lit-html/lit-html.js +120 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.d.ts +28 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js +101 -0
- package/static/devtools/third_party/lit-html/package/directives/class-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.d.ts +22 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js +37 -0
- package/static/devtools/third_party/lit-html/package/directives/if-defined.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/live.d.ts +38 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js +73 -0
- package/static/devtools/third_party/lit-html/package/directives/live.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.d.ts +37 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js +415 -0
- package/static/devtools/third_party/lit-html/package/directives/repeat.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.d.ts +36 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js +78 -0
- package/static/devtools/third_party/lit-html/package/directives/style-map.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.d.ts +39 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js +52 -0
- package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.d.ts +59 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js +63 -0
- package/static/devtools/third_party/lit-html/package/lib/directive.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.d.ts +29 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js +44 -0
- package/static/devtools/third_party/lit-html/package/lib/dom.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/part.d.ts +46 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js +23 -0
- package/static/devtools/third_party/lit-html/package/lib/part.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.d.ts +148 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js +476 -0
- package/static/devtools/third_party/lit-html/package/lib/parts.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/render.d.ts +33 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js +43 -0
- package/static/devtools/third_party/lit-html/package/lib/render.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.d.ts +57 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js +48 -0
- package/static/devtools/third_party/lit-html/package/lib/template-factory.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.d.ts +30 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js +134 -0
- package/static/devtools/third_party/lit-html/package/lib/template-instance.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js +131 -0
- package/static/devtools/third_party/lit-html/package/lib/template-result.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lib/template.d.ts +92 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js +215 -0
- package/static/devtools/third_party/lit-html/package/lib/template.js.map +1 -0
- package/static/devtools/third_party/lit-html/package/lit-html.d.ts +42 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js +59 -0
- package/static/devtools/third_party/lit-html/package/lit-html.js.map +1 -0
- package/static/devtools/third_party/marked/marked-tsconfig.json +8 -0
- package/static/devtools/third_party/marked/marked.js +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.d.ts +1 -0
- package/static/devtools/third_party/marked/package/lib/marked.esm.js +2584 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js +64 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +176 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +356 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +423 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +516 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +26 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +120 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +266 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +181 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +316 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +174 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +647 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +53 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +77 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +873 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +76 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +92 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +25 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +33 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +37 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +59 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts +89 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +82 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +83 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +189 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +313 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +60 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +735 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +962 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +276 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +421 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +128 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +150 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +322 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +463 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +439 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +724 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +62 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +80 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +262 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +152 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +910 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1343 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts +21 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.js +15 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +135 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +133 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +157 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +72 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +98 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +137 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +28 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +43 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +47 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +94 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +102 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +109 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +24 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +20 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +66 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +288 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +17 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +39 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +132 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +468 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +197 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +42 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +0 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +16 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +469 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +29 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +34 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +31 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +61 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +156 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +183 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +151 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +23 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +19 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +18 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.js +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +22 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +1 -0
- package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +53 -0
- package/static/devtools/third_party/puppeteer/puppeteer-tsconfig.json +58 -0
- package/static/devtools/third_party/puppeteer/puppeteer.js +1 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmDis.js +1595 -0
- package/static/devtools/third_party/wasmparser/package/dist/esm/WasmParser.js +3120 -0
- package/static/devtools/third_party/wasmparser/wasmparser-tsconfig.json +9 -0
- package/static/devtools/timeline/timeline-legacy.js +1 -0
- package/static/devtools/timeline/timeline-meta.js +1 -0
- package/static/devtools/timeline/timeline.js +1 -0
- package/static/devtools/timeline/timeline_module.js +1 -0
- package/static/devtools/timeline_model/timeline_model-legacy.js +1 -0
- package/static/devtools/timeline_model/timeline_model.js +1 -0
- package/static/devtools/timeline_model/timeline_model_module.js +0 -0
- package/static/devtools/toolbox.html +20 -0
- package/static/devtools/toolbox.js +1 -0
- package/static/devtools/toolbox_bootstrap/toolbox_bootstrap.js +1 -0
- package/static/devtools/ui/components/components.js +378 -0
- package/static/devtools/ui/ui-legacy.js +1 -0
- package/static/devtools/ui/ui.js +3 -0
- package/static/devtools/ui/utils/utils.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/static/devtools/wasmparser_worker/wasmparser_worker.js +1 -0
- package/static/devtools/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/static/devtools/web_audio/web_audio-legacy.js +1 -0
- package/static/devtools/web_audio/web_audio-meta.js +1 -0
- package/static/devtools/web_audio/web_audio.js +23 -0
- package/static/devtools/web_audio/web_audio_module.js +1 -0
- package/static/devtools/webauthn/webauthn-legacy.js +1 -0
- package/static/devtools/webauthn/webauthn-meta.js +1 -0
- package/static/devtools/webauthn/webauthn.js +6 -0
- package/static/devtools/webauthn/webauthn_module.js +1 -0
- package/static/devtools/worker_app.html +20 -0
- package/static/devtools/worker_app.js +1 -0
- package/static/devtools/worker_main/worker_main-legacy.js +1 -0
- package/static/devtools/worker_main/worker_main.js +1 -0
- package/static/devtools/worker_service/worker_service.js +1 -0
- package/static/devtools/workspace/workspace-legacy.js +1 -0
- package/static/devtools/workspace/workspace.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff-legacy.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff.js +1 -0
- package/static/devtools/workspace_diff/workspace_diff_module.js +0 -0
- package/static/docs/swagger.json +2337 -279
- package/static/function/client.js +1037 -992
- package/build/routes/chromium/http/json-new.js +0 -23
- package/build/routes/chromium/http/json-version-get.response.json +0 -37
- package/build/routes/chromium/utils/cdp.d.ts +0 -2
- package/build/routes/chromium/utils/cdp.js +0 -14
- package/build/routes/chromium/ws/cdp-chromium.js +0 -10
- package/src/routes/chromium/http/json-list.ts +0 -50
- package/src/routes/chromium/utils/cdp.ts +0 -19
- package/build/routes/{chromium/http/content-post.query.json → chrome/http/content.post.query.json} +0 -0
- package/build/routes/{chromium/http/content-post.response.json → chrome/http/content.post.response.json} +0 -0
- package/build/routes/{chromium/http/download-post.body.json → chrome/http/download.post.body.json} +0 -0
- package/build/routes/{chromium/http/download-post.query.json → chrome/http/download.post.query.json} +0 -0
- package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +0 -0
- package/build/routes/{chromium/http/function-post.body.json → chrome/http/function.post.body.json} +0 -0
- package/build/routes/{chromium/http/function-post.query.json → chrome/http/function.post.query.json} +0 -0
- package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +0 -0
- package/build/routes/{chromium/http/json-list.response.json → chrome/http/json-list.get.response.json} +0 -0
- package/build/routes/{chromium/http/json-new.response.json → chrome/http/json-new.put.response.json} +0 -0
- package/build/routes/{chromium/http/json-protocol-get.response.json → chrome/http/json-protocol.get.response.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.query.json → chrome/http/pdf.post.query.json} +0 -0
- package/build/routes/{chromium/http/pdf-post.response.json → chrome/http/pdf.post.response.json} +0 -0
- package/build/routes/{chromium/http/performance.body.json → chrome/http/performance.post.body.json} +0 -0
- package/build/routes/{chromium/http/performance.query.json → chrome/http/performance.post.query.json} +0 -0
- package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.query.json → chrome/http/scrape.post.query.json} +0 -0
- package/build/routes/{chromium/http/scrape-post.response.json → chrome/http/scrape.post.response.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.query.json → chrome/http/screenshot.post.query.json} +0 -0
- package/build/routes/{chromium/http/screenshot-post.response.json → chrome/http/screenshot.post.response.json} +0 -0
- package/build/routes/{chromium/utils/performance/child.d.ts → chrome/tests/content.spec.d.ts} +0 -0
- package/build/routes/{chromium/utils/performance/types.js → chrome/tests/download.spec.d.ts} +0 -0
- package/build/routes/{chromium/ws/cdp-chromium.query.json → chrome/ws/browser.query.json} +0 -0
- package/build/routes/{chromium/ws/playwright-chromium.query.json → chrome/ws/playwright.query.json} +0 -0
- package/build/routes/{firefox/ws/playwright-firefox.query.json → chromium/ws/playwright.query.json} +0 -0
- package/build/routes/{webkit/ws/playwright-webkit.query.json → firefox/ws/playwright.query.json} +0 -0
- package/build/routes/management/http/{config-get.d.ts → config.get.d.ts} +0 -0
- package/build/routes/management/http/{config-get.js → config.get.js} +0 -0
- package/build/routes/management/http/{config-get.response.json → config.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-total-get.d.ts → metrics-total.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-total-get.js → metrics-total.get.js} +0 -0
- package/build/routes/management/http/{metrics-total-get.response.json → metrics-total.get.response.json} +0 -0
- package/build/routes/management/http/{metrics-get.d.ts → metrics.get.d.ts} +0 -0
- package/build/routes/management/http/{metrics-get.js → metrics.get.js} +0 -0
- package/build/routes/management/http/{metrics-get.response.json → metrics.get.response.json} +0 -0
- package/build/routes/management/http/{sessions-get.d.ts → sessions.get.d.ts} +0 -0
- package/build/routes/management/http/{sessions-get.js → sessions.get.js} +0 -0
- package/build/routes/management/http/{static-get.d.ts → static.get.d.ts} +0 -0
- package/build/{routes/chromium/http/json-protocol-get.d.ts → shared/json-protocol.http.d.ts} +1 -1
- package/build/{routes/chromium/http/json-version-get.d.ts → shared/json-version.http.d.ts} +1 -1
- /package/build/{routes/chromium → shared}/utils/function/client.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/client.js +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/function/handler.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/child.js +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/main.d.ts +0 -0
- /package/build/{routes/chromium → shared}/utils/performance/types.d.ts +0 -0
- /package/src/routes/management/http/{config-get.ts → config.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-total-get.ts → metrics-total.get.ts} +0 -0
- /package/src/routes/management/http/{metrics-get.ts → metrics.get.ts} +0 -0
- /package/src/routes/management/http/{sessions-get.ts → sessions.get.ts} +0 -0
- /package/src/{routes/chromium → shared}/utils/function/client.ts +0 -0
- /package/src/{routes/chromium → shared}/utils/performance/child.ts +0 -0
- /package/src/{routes/chromium → shared}/utils/performance/types.ts +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import{UIString as e,Settings as t,Throttler as i,ParsedURL as s,ResourceType as r,EventTarget as a,Color as n,ObjectWrapper as o,Revealer as d,Console as l}from"../common/common.js";import{DataGrid as c,SortableDataGrid as h}from"../data_grid/data_grid.js";import{ls as u,NumberUtilities as _,StringUtilities as p,DateUtilities as m,ArrayUtilities as g}from"../platform/platform.js";import{View as v,Toolbar as b,EmptyWidget as w,TreeOutline as S,ARIAUtils as f,SplitWidget as y,Widget as C,Tooltip as k,TabbedPane as I,Icon as E,ContextMenu as T,ReportView as L,UIUtils as x,XLink as R,ActionRegistry as D,ShortcutRegistry as M,ThrottledWidget as O,SettingsUI as F,Fragment as B,TextPrompt as V,Utils as P,ViewManager as U,InspectorView as N,Context as A,Panel as W}from"../ui/ui.js";import{SDKModel as q,ResourceTreeModel as j,ServiceWorkerCacheModel as G,NetworkRequest as z,ServiceWorkerManager as $,SecurityOriginManager as H,RuntimeModel as K,CookieModel as Q,NetworkManager as X,FrameManager as Y,OverlayModel as J,NetworkLog as Z,ChildTargetManager as ee,Cookie as te,Resource as ie}from"../sdk/sdk.js";import{userMetrics as se,UserMetrics as re,InspectorFrontendHost as ae}from"../host/host.js";import{Runtime as ne}from"../root/root.js";import{PreviewFactory as oe,ResourceSourceFrame as de,ImageView as le,FontView as ce}from"../source_frame/source_frame.js";import{RequestHeadersView as he,RequestPreviewView as ue,NetworkPanel as _e,NetworkItemView as pe,NetworkLogView as me}from"../network/network.js";import{Linkifier as ge}from"../components/components.js";import{ColorSwatch as ve}from"../inline_editor/inline_editor.js";import{FileUtils as be,NetworkProject as we}from"../bindings/bindings.js";import{i18n as Se}from"../i18n/i18n.js";import{PieChart as fe}from"../perf_ui/perf_ui.js";import{Workspace as ye}from"../workspace/workspace.js";import{ObjectPropertiesSection as Ce}from"../object_ui/object_ui.js";import{ThrottlingManager as ke}from"../mobile_throttling/mobile_throttling.js";import{render as Ie,html as Ee}from"../third_party/lit-html/lit-html.js";import{RelatedIssue as Te}from"../browser_sdk/browser_sdk.js";import{CookiesTable as Le}from"../cookie_table/cookie_table.js";import{StaticContentProvider as xe}from"../text_utils/text_utils.js";class Re extends q.SDKModel{constructor(e){super(e),e.registerApplicationCacheDispatcher(new Me(this)),this._agent=e.applicationCacheAgent(),this._agent.invoke_enable();const t=e.model(j.ResourceTreeModel);if(!t)throw new Error("Target must provide an ResourceTreeModel");t.addEventListener(j.Events.FrameNavigated,this._frameNavigatedCallback,this),t.addEventListener(j.Events.FrameDetached,this._frameDetached,this),this._statuses=new Map,this._manifestURLsByFrame=new Map,this._mainFrameNavigated(),this._onLine=!0}_frameNavigatedCallback(e){this._frameNavigated(e)}async _frameNavigated(e){const t=e.data;if(t.isMainFrame())return void this._mainFrameNavigated();const i=t.id,s=await this._agent.invoke_getManifestForFrame({frameId:i});null===s||s||this._frameManifestRemoved(i)}_frameDetached(e){const t=e.data;this._frameManifestRemoved(t.id)}reset(){this._statuses.clear(),this._manifestURLsByFrame.clear(),this.dispatchEventToListeners(De.FrameManifestsReset)}async _mainFrameNavigated(){const e=await this._agent.invoke_getFramesWithManifests();if(!e.getError())for(const t of e.frameIds)this._frameManifestUpdated(t.frameId,t.manifestURL,t.status)}_frameManifestUpdated(e,t,i){if(i===Oe)return void this._frameManifestRemoved(e);if(!t)return;const s=this._manifestURLsByFrame.get(e);s&&t!==s&&this._frameManifestRemoved(e);const r=this._statuses.get(e)!==i;this._statuses.set(e,i),this._manifestURLsByFrame.has(e)||(this._manifestURLsByFrame.set(e,t),this.dispatchEventToListeners(De.FrameManifestAdded,e)),r&&this.dispatchEventToListeners(De.FrameManifestStatusUpdated,e)}_frameManifestRemoved(e){const t=this._manifestURLsByFrame.delete(e);this._statuses.delete(e),t&&this.dispatchEventToListeners(De.FrameManifestRemoved,e)}frameManifestURL(e){return this._manifestURLsByFrame.get(e)||""}frameManifestStatus(e){return this._statuses.get(e)||Oe}get onLine(){return this._onLine}_statusUpdated(e,t,i){this._frameManifestUpdated(e,t,i)}async requestApplicationCache(e){const t=await this._agent.invoke_getApplicationCacheForFrame({frameId:e});return t.getError()?null:t.applicationCache}_networkStateUpdated(e){this._onLine=e,this.dispatchEventToListeners(De.NetworkStateChanged,e)}}q.SDKModel.register(Re,q.Capability.DOM,!1);const De={FrameManifestStatusUpdated:Symbol("FrameManifestStatusUpdated"),FrameManifestAdded:Symbol("FrameManifestAdded"),FrameManifestRemoved:Symbol("FrameManifestRemoved"),FrameManifestsReset:Symbol("FrameManifestsReset"),NetworkStateChanged:Symbol("NetworkStateChanged")};class Me{constructor(e){this._applicationCacheModel=e}applicationCacheStatusUpdated({frameId:e,manifestURL:t,status:i}){this._applicationCacheModel._statusUpdated(e,t,i)}networkStateUpdated({isNowOnline:e}){this._applicationCacheModel._networkStateUpdated(e)}}const Oe=0;var Fe=Object.freeze({__proto__:null,ApplicationCacheModel:Re,Events:De,ApplicationCacheDispatcher:Me,UNCACHED:Oe,IDLE:1,CHECKING:2,DOWNLOADING:3,UPDATEREADY:4,OBSOLETE:5});class Be extends v.SimpleView{constructor(t,i){super(e.UIString("AppCache")),this._model=t,this.element.classList.add("storage-view","table"),this._deleteButton=new b.ToolbarButton(e.UIString("Delete"),"largeicon-delete"),this._deleteButton.setVisible(!1),this._deleteButton.addEventListener(b.ToolbarButton.Events.Click,this._deleteButtonClicked,this),this._connectivityIcon=document.createElement("span",{is:"dt-icon-label"}),this._connectivityIcon.style.margin="0 2px 0 5px",this._statusIcon=document.createElement("span",{is:"dt-icon-label"}),this._statusIcon.style.margin="0 2px 0 5px",this._frameId=i,this._emptyWidget=new w.EmptyWidget(e.UIString("No Application Cache information available.")),this._emptyWidget.show(this.element),this._markDirty();const s=this._model.frameManifestStatus(i);this.updateStatus(s),this.updateNetworkState(this._model.onLine),this._deleteButton.element.style.display="none",this._nodeResources=new WeakMap}async toolbarItems(){return[this._deleteButton,new b.ToolbarItem(this._connectivityIcon),new b.ToolbarSeparator,new b.ToolbarItem(this._statusIcon)]}wasShown(){this._maybeUpdate()}willHide(){this._deleteButton.setVisible(!1)}_maybeUpdate(){this.isShowing()&&this._viewDirty&&(this._update(),this._viewDirty=!1)}_markDirty(){this._viewDirty=!0}updateStatus(e){const t=this._status;this._status=e;const i=new Map([[Oe,{type:"smallicon-red-ball",text:"UNCACHED"}],[1,{type:"smallicon-green-ball",text:"IDLE"}],[2,{type:"smallicon-orange-ball",text:"CHECKING"}],[3,{type:"smallicon-orange-ball",text:"DOWNLOADING"}],[4,{type:"smallicon-green-ball",text:"UPDATEREADY"}],[5,{type:"smallicon-red-ball",text:"OBSOLETE"}]]),s=i.get(e)||i.get(Oe);s&&(this._statusIcon.type=s.type,this._statusIcon.textContent=s.text),!this.isShowing()||1!==this._status||4!==t&&this._resources||this._markDirty(),this._maybeUpdate()}updateNetworkState(t){t?(this._connectivityIcon.type="smallicon-green-ball",this._connectivityIcon.textContent=e.UIString("Online")):(this._connectivityIcon.type="smallicon-red-ball",this._connectivityIcon.textContent=e.UIString("Offline"))}async _update(){const e=await this._model.requestApplicationCache(this._frameId);if(!e||!e.manifestURL)return delete this._manifest,delete this._creationTime,delete this._updateTime,delete this._size,delete this._resources,this._emptyWidget.show(this.element),this._deleteButton.setVisible(!1),void(this._dataGrid&&this._dataGrid.element.classList.add("hidden"));this._manifest=e.manifestURL,this._creationTime=e.creationTime,this._updateTime=e.updateTime,this._size=e.size,this._resources=e.resources,this._dataGrid||this._createDataGrid(),this._populateDataGrid(),this._dataGrid&&(this._dataGrid.autoSizeColumns(20,80),this._dataGrid.element.classList.remove("hidden")),this._emptyWidget.detach(),this._deleteButton.setVisible(!0)}_createDataGrid(){const t=[{id:"resource",title:e.UIString("Resource"),sort:c.Order.Ascending,sortable:!0},{id:"type",title:e.UIString("Type"),sortable:!0},{id:"size",title:e.UIString("Size"),align:c.Align.Right,sortable:!0}],i={displayName:u`Application Cache`,columns:t,editCallback:void 0,deleteCallback:void 0,refreshCallback:void 0};this._dataGrid=new c.DataGridImpl(i),this._dataGrid.setStriped(!0),this._dataGrid.asWidget().show(this.element),this._dataGrid.addEventListener(c.Events.SortingChanged,this._populateDataGrid,this)}_populateDataGrid(){if(!this._dataGrid)return;const e=(this._dataGrid.selectedNode?this._nodeResources.get(this._dataGrid.selectedNode):null)||null,t=this._dataGrid.isSortOrderAscending()?1:-1;function i(e,i,s){return t*String(i[e]).localeCompare(String(s[e]))}let s,r;switch(this._dataGrid.sortColumnId()){case"resource":s=i.bind(null,"url");break;case"type":s=i.bind(null,"type");break;case"size":s=function(e,i,s){return t*(i[e]-s[e])}.bind(null,"size");break;default:i.bind(null,"resource")}if(this._dataGrid.rootNode().removeChildren(),this._resources){this._resources.sort(s);for(let t=0;t<this._resources.length;++t){const i={},s=this._resources[t];i.resource=s.url,i.type=s.type,i.size=_.bytesToString(s.size);const a=new c.DataGridNode(i);this._nodeResources.set(a,s),a.selectable=!0,this._dataGrid.rootNode().appendChild(a),s===e&&(r=a,r.selected=!0)}!r&&this._dataGrid.rootNode().children.length&&(this._dataGrid.rootNode().children[0].selected=!0)}}_deleteButtonClicked(e){this._dataGrid&&this._dataGrid.selectedNode&&this._deleteCallback(this._dataGrid.selectedNode)}_deleteCallback(e){}}var Ve=Object.freeze({__proto__:null,ApplicationCacheItemsView:Be});class Pe extends S.TreeElement{constructor(e,t,i){super(t,i),this.resourcesPanel=e,f.setAccessibleName(this.listItemElement,t)}get itemURL(){throw new Error("Unimplemented Method")}onselect(e){if(!e)return!1;const t=[];for(let e=this;e;e=e.parent){const i=e instanceof Pe&&e.itemURL;if(!i)break;t.push(i)}return this.resourcesPanel.setLastSelectedItemPath(t),!1}showView(e){this.resourcesPanel.showView(e)}}class Ue extends Pe{constructor(e,i,s,r=!1){super(e,i,!1),this.expandedSetting=t.Settings.instance().createSetting("resources"+s+"Expanded",r),this.categoryName=i,this.categoryLink=null}get itemURL(){return"category://"+this.categoryName}setLink(e){this.categoryLink=e}onselect(e){return super.onselect(e),this.resourcesPanel.showCategoryView(this.categoryName,this.categoryLink),!1}onattach(){super.onattach(),this.expandedSetting.get()&&this.expand()}onexpand(){this.expandedSetting.set(!0)}oncollapse(){this.expandedSetting.set(!1)}}class Ne extends v.SimpleView{constructor(t,s){super(e.UIString("Cache")),this.registerRequiredCSS("resources/serviceWorkerCacheViews.css",{enableLegacyPatching:!0}),this._model=t,this._entriesForTest=null,this.element.classList.add("service-worker-cache-data-view"),this.element.classList.add("storage-view");const r=new b.Toolbar("data-view-toolbar",this.element);this._splitWidget=new y.SplitWidget(!1,!1),this._splitWidget.show(this.element),this._previewPanel=new C.VBox;const a=this._previewPanel.element.createChild("div","cache-preview-panel-resizer");this._splitWidget.setMainWidget(this._previewPanel),this._splitWidget.installResizer(a),this._preview=null,this._cache=s,this._dataGrid=null,this._refreshThrottler=new i.Throttler(300),this._refreshButton=new b.ToolbarButton(e.UIString("Refresh"),"largeicon-refresh"),this._refreshButton.addEventListener(b.ToolbarButton.Events.Click,this._refreshButtonClicked,this),r.appendToolbarItem(this._refreshButton),this._deleteSelectedButton=new b.ToolbarButton(e.UIString("Delete Selected"),"largeicon-delete"),this._deleteSelectedButton.addEventListener(b.ToolbarButton.Events.Click,(e=>{this._deleteButtonClicked(null)})),r.appendToolbarItem(this._deleteSelectedButton);const n=new b.ToolbarInput(u`Filter by Path`,"",1);r.appendToolbarItem(n);const o=new i.Throttler(300);this._entryPathFilter="",n.addEventListener(b.ToolbarInput.Event.TextChanged,(()=>{o.schedule((()=>(this._entryPathFilter=n.value(),this._updateData(!0))))})),this._returnCount=null,this._summaryBarElement=null,this._loadingPromise=null,this.update(s)}_resetDataGrid(){this._dataGrid&&this._dataGrid.asWidget().detach(),this._dataGrid=this._createDataGrid();const e=this._dataGrid.asWidget();this._splitWidget.setSidebarWidget(e),e.setMinimumSize(0,250)}wasShown(){this._model.addEventListener(G.Events.CacheStorageContentUpdated,this._cacheContentUpdated,this),this._updateData(!0)}willHide(){this._model.removeEventListener(G.Events.CacheStorageContentUpdated,this._cacheContentUpdated,this)}_showPreview(t){t&&this._preview===t||(this._preview&&this._preview.detach(),t||(t=new w.EmptyWidget(e.UIString("Select a cache entry above to preview"))),this._preview=t,this._preview.show(this._previewPanel.element))}_createDataGrid(){const t=[{id:"number",title:"#",sortable:!1,width:"3px"},{id:"name",title:e.UIString("Name"),weight:4,sortable:!0},{id:"responseType",title:u`Response-Type`,weight:1,align:c.Align.Right,sortable:!0},{id:"contentType",title:e.UIString("Content-Type"),weight:1,sortable:!0},{id:"contentLength",title:e.UIString("Content-Length"),weight:1,align:c.Align.Right,sortable:!0},{id:"responseTime",title:e.UIString("Time Cached"),width:"12em",weight:1,align:c.Align.Right,sortable:!0}],i=new c.DataGridImpl({displayName:u`Service Worker Cache`,columns:t,deleteCallback:this._deleteButtonClicked.bind(this),refreshCallback:this._updateData.bind(this,!0),editCallback:void 0});return i.addEventListener(c.Events.SortingChanged,this._sortingChanged,this),i.addEventListener(c.Events.SelectedNode,(e=>{this._previewCachedResponse(e.data.data)}),this),i.setStriped(!0),i}_sortingChanged(){if(!this._dataGrid)return;const e=this._dataGrid,t=e.isSortOrderAscending(),i=e.sortColumnId();let s;"name"===i?s=(e,t)=>e._name.localeCompare(t._name):"contentType"===i?s=(e,t)=>e.data.mimeType.localeCompare(t.data.mimeType):"contentLength"===i?s=(e,t)=>e.data.resourceSize-t.data.resourceSize:"responseTime"===i?s=(e,t)=>e.data.endTime-t.data.endTime:"responseType"===i&&(s=(e,t)=>e._responseType.localeCompare(t._responseType));const r=e.rootNode().children.slice();e.rootNode().removeChildren(),r.sort(((e,i)=>{const r=s(e,i);return t?r:-r})),r.forEach((t=>e.rootNode().appendChild(t)))}async _deleteButtonClicked(e){(e||(e=this._dataGrid&&this._dataGrid.selectedNode))&&(await this._model.deleteCacheEntry(this._cache,e.data.url()),e.remove())}update(e){this._cache=e,this._resetDataGrid(),this._updateData(!0)}_updateSummaryBar(){this._summaryBarElement||(this._summaryBarElement=this.element.createChild("div","cache-storage-summary-bar")),this._summaryBarElement.removeChildren();const e=this._summaryBarElement.createChild("span");this._entryPathFilter?e.textContent=u`Matching entries: ${this._returnCount}`:e.textContent=u`Total entries: ${this._returnCount}`}_updateDataCallback(e,t,i){if(!this._dataGrid)return;const s=this._dataGrid.selectedNode&&this._dataGrid.selectedNode.data.url();this._refreshButton.setEnabled(!0),this._entriesForTest=t,this._returnCount=i,this._updateSummaryBar();const r=new Map,a=this._dataGrid.rootNode();for(const e of a.children)r.set(e.data.url,e);a.removeChildren();let n=null;for(let e=0;e<t.length;++e){const i=t[e];let o=r.get(i.requestURL);o&&o.data.responseTime===i.responseTime?o.data.number=e:(o=new We(e,this._createRequest(i),i.responseType),o.selectable=!0),a.appendChild(o),i.requestURL===s&&(n=o)}n?n.revealAndSelect():this._showPreview(null),this._updatedForTest()}async _updateData(e){if(!e&&this._loadingPromise)return this._loadingPromise;if(this._refreshButton.setEnabled(!1),this._loadingPromise)return this._loadingPromise;this._loadingPromise=new Promise((e=>{this._model.loadAllCacheData(this._cache,this._entryPathFilter,((t,i)=>{e({entries:t,returnCount:i})}))}));const{entries:t,returnCount:i}=await this._loadingPromise;this._updateDataCallback(0,t,i),this._loadingPromise=null}_refreshButtonClicked(e){this._updateData(!0)}_cacheContentUpdated(e){const t=e.data;this._cache.securityOrigin===t.origin&&this._cache.cacheName===t.cacheName&&this._refreshThrottler.schedule((()=>Promise.resolve(this._updateData(!0))),!0)}async _previewCachedResponse(e){let t=Ae.get(e);t||(t=new qe(e),Ae.set(e,t)),this._dataGrid&&this._dataGrid.selectedNode&&e===this._dataGrid.selectedNode.data&&this._showPreview(t)}_createRequest(e){const t=new z.NetworkRequest("cache-storage-"+e.requestURL,e.requestURL,"","","",null);t.requestMethod=e.requestMethod,t.setRequestHeaders(e.requestHeaders),t.statusCode=e.responseStatus,t.statusText=e.responseStatusText,t.protocol=new s.ParsedURL(e.requestURL).scheme,t.responseHeaders=e.responseHeaders,t.setRequestHeadersText(""),t.endTime=e.responseTime;let i=e.responseHeaders.find((e=>"content-type"===e.name.toLowerCase()));const a=i?i.value:z.MIME_TYPE.PLAIN;t.mimeType=a,i=e.responseHeaders.find((e=>"content-length"===e.name.toLowerCase())),t.resourceSize=i&&Number(i.value)||0;let n=r.ResourceType.fromMimeType(a);return n||(n=r.ResourceType.fromURL(e.requestURL)||r.resourceTypes.Other),t.setResourceType(n),t.setContentDataProvider(this._requestContent.bind(this,t)),t}async _requestContent(e){const t=e.resourceType().isTextType(),i={error:null,content:null,encoded:!t},s=await this._cache.requestCachedResponse(e.url(),e.requestHeaders());return s&&(i.content=t?window.atob(s.body):s.body),i}_updatedForTest(){}}const Ae=new WeakMap;Ne._previewSymbol=Symbol("preview");class We extends c.DataGridNode{constructor(e,t,i){super(t),this._number=e;const r=new s.ParsedURL(t.url());r.isValid?this._name=p.trimURL(t.url(),r.domain()):this._name=t.url(),this._request=t,this._responseType=i}createCell(e){const t=this.createTD(e);let i;return"number"===e?i=String(this._number):"name"===e?i=this._name:"responseType"===e?i="opaqueResponse"===this._responseType?"opaque":"opaqueRedirect"===this._responseType?"opaqueredirect":this._responseType:"contentType"===e?i=this._request.mimeType:"contentLength"===e?i=(0|this._request.resourceSize).toLocaleString("en-US"):"responseTime"===e&&(i=new Date(1e3*this._request.endTime).toLocaleString()),c.DataGridImpl.setElementText(t,i||"",!0),k.Tooltip.install(t,this._request.url()),t}}class qe extends C.VBox{constructor(i){super(),this._tabbedPane=new I.TabbedPane,this._tabbedPane.addEventListener(I.Events.TabSelected,this._tabSelected,this),this._resourceViewTabSetting=t.Settings.instance().createSetting("cacheStorageViewTab","preview"),this._tabbedPane.appendTab("headers",e.UIString("Headers"),new he.RequestHeadersView(i)),this._tabbedPane.appendTab("preview",e.UIString("Preview"),new ue.RequestPreviewView(i)),this._tabbedPane.show(this.element)}wasShown(){super.wasShown(),this._selectTab()}_selectTab(e){e||(e=this._resourceViewTabSetting.get()),e&&!this._tabbedPane.selectTab(e)&&this._tabbedPane.selectTab("headers")}_tabSelected(e){e.data.isUserGesture&&this._resourceViewTabSetting.set(e.data.tabId)}}var je=Object.freeze({__proto__:null,ServiceWorkerCacheView:Ne,DataGridNode:We,RequestView:qe});class Ge extends Pe{constructor(e,t){super(e,new s.ParsedURL(t).displayName,!1),this.tooltip=t,this.manifestURL=t}get itemURL(){return"appcache://"+this.manifestURL}onselect(e){return super.onselect(e),this.resourcesPanel.showCategoryView(this.manifestURL,null),!1}}class ze extends Ue{constructor(e){super(e,u`Cache Storage`,"CacheStorage");const t=E.Icon.create("mediumicon-database","resource-tree-item");this.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/cache?utm_source=devtools"),this.setLeadingIcons([t]),this.swCacheModel=null,this.swCacheTreeElements=new Set}initialize(e){if(this.swCacheTreeElements.clear(),this.swCacheModel=e,e)for(const t of e.caches())this.addCache(e,t);q.TargetManager.instance().addModelListener(G.ServiceWorkerCacheModel,G.Events.CacheAdded,this.cacheAdded,this),q.TargetManager.instance().addModelListener(G.ServiceWorkerCacheModel,G.Events.CacheRemoved,this.cacheRemoved,this)}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this.handleContextMenuEvent.bind(this),!0)}handleContextMenuEvent(e){const t=new T.ContextMenu(e);t.defaultSection().appendItem(u`Refresh Caches`,this.refreshCaches.bind(this)),t.show()}refreshCaches(){this.swCacheModel&&this.swCacheModel.refreshCacheNames()}cacheAdded(e){const t=e.data.cache,i=e.data.model;this.addCache(i,t)}addCache(e,t){const i=new $e(this.resourcesPanel,e,t);this.swCacheTreeElements.add(i),this.appendChild(i)}cacheRemoved(e){const t=e.data.cache,i=e.data.model,s=this.cacheTreeElement(i,t);s&&(this.removeChild(s),this.swCacheTreeElements.delete(s),this.setExpandable(this.childCount()>0))}cacheTreeElement(e,t){for(const i of this.swCacheTreeElements)if(i.hasModelAndCache(e,t))return i;return null}}class $e extends Pe{constructor(e,t,i){super(e,i.cacheName+" - "+i.securityOrigin,!1),this.model=t,this.cache=i,this.view=null;const s=E.Icon.create("mediumicon-table","resource-tree-item");this.setLeadingIcons([s])}get itemURL(){return"cache://"+this.cache.cacheId}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this.handleContextMenuEvent.bind(this),!0)}handleContextMenuEvent(e){const t=new T.ContextMenu(e);t.defaultSection().appendItem(u`Delete`,this.clearCache.bind(this)),t.show()}clearCache(){this.model.deleteCache(this.cache)}update(e){this.cache=e,this.view&&this.view.update(e)}onselect(e){return super.onselect(e),this.view||(this.view=new Ne(this.model,this.cache)),this.showView(this.view),!1}hasModelAndCache(e,t){return this.cache.equals(t)&&this.model===e}}class He extends Pe{constructor(e,t,i){super(e._panel,"",!1),this.sidebar=e,this.frameId=t.id,this.manifestURL=i,this.refreshTitles(t);const s=E.Icon.create("mediumicon-frame-top","navigator-folder-tree-item");this.setLeadingIcons([s])}get itemURL(){return"appcache://"+this.manifestURL+"/"+encodeURI(this.titleAsText())}refreshTitles(e){this.title=e.displayName()}frameNavigated(e){this.refreshTitles(e)}onselect(e){return super.onselect(e),this.sidebar._showApplicationCache(this.frameId),!1}}class Ke extends C.VBox{constructor(){super(!0),this.registerRequiredCSS("resources/appManifestView.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("manifest-container"),t.Settings.instance().moduleSetting("colorFormat").addChangeListener(this._updateManifest.bind(this,!0)),this._emptyView=new w.EmptyWidget(e.UIString("No manifest detected")),this._emptyView.appendLink("https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/?utm_source=devtools"),this._emptyView.show(this.contentElement),this._emptyView.hideWidget(),this._reportView=new L.ReportView(e.UIString("App Manifest")),this._reportView.registerRequiredCSS("resources/appManifestView.css",{enableLegacyPatching:!1}),this._reportView.element.classList.add("manifest-view-header"),this._reportView.show(this.contentElement),this._reportView.hideWidget(),this._errorsSection=this._reportView.appendSection(e.UIString("Errors and warnings")),this._installabilitySection=this._reportView.appendSection(e.UIString("Installability")),this._identitySection=this._reportView.appendSection(e.UIString("Identity")),this._presentationSection=this._reportView.appendSection(e.UIString("Presentation")),this._iconsSection=this._reportView.appendSection(e.UIString("Icons"),"report-section-icons"),this._shortcutSections=[],this._screenshotsSections=[],this._nameField=this._identitySection.appendField(e.UIString("Name")),this._shortNameField=this._identitySection.appendField(e.UIString("Short name")),this._descriptionField=this._identitySection.appendField(e.UIString("Description")),this._categoriesField=this._identitySection.appendField(e.UIString("Categories")),this._startURLField=this._presentationSection.appendField(e.UIString("Start URL"));const s=this._presentationSection.appendField(e.UIString("Theme color"));this._themeColorSwatch=new ve.ColorSwatch,s.appendChild(this._themeColorSwatch);const r=this._presentationSection.appendField(e.UIString("Background color"));this._backgroundColorSwatch=new ve.ColorSwatch,r.appendChild(this._backgroundColorSwatch),this._orientationField=this._presentationSection.appendField(e.UIString("Orientation")),this._displayField=this._presentationSection.appendField(e.UIString("Display")),this._throttler=new i.Throttler(1e3),q.TargetManager.instance().observeTargets(this),this._registeredListeners=[]}targetAdded(e){this._target||(this._target=e,this._resourceTreeModel=e.model(j.ResourceTreeModel),this._serviceWorkerManager=e.model($.ServiceWorkerManager),this._resourceTreeModel&&this._serviceWorkerManager&&(this._updateManifest(!0),this._registeredListeners=[this._resourceTreeModel.addEventListener(j.Events.DOMContentLoaded,(e=>{this._updateManifest(!0)})),this._serviceWorkerManager.addEventListener($.Events.RegistrationUpdated,(e=>{this._updateManifest(!1)}))]))}targetRemoved(e){this._target===e&&this._resourceTreeModel&&this._serviceWorkerManager&&(delete this._resourceTreeModel,delete this._serviceWorkerManager,a.EventTarget.removeEventListeners(this._registeredListeners))}async _updateManifest(e){if(!this._resourceTreeModel)return;const{url:t,data:i,errors:s}=await this._resourceTreeModel.fetchAppManifest(),r=await this._resourceTreeModel.getInstallabilityErrors(),a=await this._resourceTreeModel.getManifestIcons();this._throttler.schedule((()=>this._renderManifest(t,i,s,r,a)),e)}async _renderManifest(t,i,r,a,o){if(!i&&!r.length)return this._emptyView.showWidget(),void this._reportView.hideWidget();this._emptyView.hideWidget(),this._reportView.showWidget();const d=ge.Linkifier.linkifyURL(t);d.tabIndex=0,this._reportView.setURL(d),this._errorsSection.clearContent(),this._errorsSection.element.classList.toggle("hidden",!r.length);for(const e of r)this._errorsSection.appendRow().appendChild(x.createIconLabel(e.message,e.critical?"smallicon-error":"smallicon-warning"));if(!i)return;65279===i.charCodeAt(0)&&(i=i.slice(1));const l=JSON.parse(i);this._nameField.textContent=I("name"),this._shortNameField.textContent=I("short_name"),this._descriptionField.textContent=I("description");const c=l.categories||[];this._categoriesField.textContent=c.join(", "),this._startURLField.removeChildren();const h=I("start_url");if(h){const e=s.ParsedURL.completeURL(t,h),i=ge.Linkifier.linkifyURL(e,{text:h});i.tabIndex=0,this._startURLField.appendChild(i)}this._themeColorSwatch.classList.toggle("hidden",!I("theme_color"));const _=n.Color.parse(I("theme_color")||"white")||n.Color.parse("white");_&&this._themeColorSwatch.renderColor(_,!0),this._backgroundColorSwatch.classList.toggle("hidden",!I("background_color"));const p=n.Color.parse(I("background_color")||"white")||n.Color.parse("white");p&&this._backgroundColorSwatch.renderColor(p,!0),this._orientationField.textContent=I("orientation");const m=I("display");this._displayField.textContent=m;const g=l.icons||[];this._iconsSection.clearContent();const v=l.shortcuts||[];for(const e of this._shortcutSections)e.detach(!0);const b=l.screenshots||[];for(const e of this._screenshotsSections)e.detach(!0);const w=[],S=x.CheckboxLabel.create(e.UIString("Show only the minimum safe area for maskable icons"));S.classList.add("mask-checkbox"),S.addEventListener("click",(()=>{this._iconsSection.setIconMasked(S.checkboxElement.checked)})),this._iconsSection.appendRow().appendChild(S);const f=R.XLink.create("https://web.dev/maskable-icon/",u`documentation on maskable icons`);if(this._iconsSection.appendRow().appendChild(x.formatLocalized("Need help? Read our %s.",[f])),o&&o.primaryIcon){const e=document.createElement("div");e.classList.add("image-wrapper");const i=document.createElement("img");i.style.maxWidth="200px",i.style.maxHeight="200px",i.src="data:image/png;base64,"+o.primaryIcon,i.alt=u`Primary manifest icon from ${t}`;const s=u`Primary icon\nas used by Chrome`,r=this._iconsSection.appendFlexedField(s);e.appendChild(i),r.appendChild(e)}for(const e of g){const i=await this._appendImageResourceToSection(t,e,this._iconsSection,!1);w.push(...i)}let y=1;for(const e of v){const i=this._reportView.appendSection(u`Shortcut #${y}`);this._shortcutSections.push(i),i.appendFlexedField("Name",e.name),e.short_name&&i.appendFlexedField("Short name",e.short_name),e.description&&i.appendFlexedField("Description",e.description);const r=i.appendFlexedField("URL"),a=s.ParsedURL.completeURL(t,e.url),n=ge.Linkifier.linkifyURL(a,{text:e.url});n.tabIndex=0,r.appendChild(n);const o=e.icons||[];let d=!1;for(const e of o){const s=await this._appendImageResourceToSection(t,e,i,!1);if(w.push(...s),!d&&e.sizes){const t=e.sizes.match(/^(\d+)x(\d+)$/);t&&t[1]>=96&&t[2]>=96&&(d=!0)}}d||w.push(u`Shortcut #${y} should include a 96x96 pixel icon`),y++}let C=1;for(const e of b){const i=this._reportView.appendSection(u`Screenshot #${C}`);this._screenshotsSections.push(i);const s=await this._appendImageResourceToSection(t,e,i,!0);w.push(...s),C++}this._installabilitySection.clearContent(),this._installabilitySection.element.classList.toggle("hidden",!a.length);const k=this.getInstallabilityErrorMessages(a);for(const e of k)this._installabilitySection.appendRow().appendChild(x.createIconLabel(e,"smallicon-warning"));this._errorsSection.element.classList.toggle("hidden",!r.length&&!w.length);for(const e of w)this._errorsSection.appendRow().appendChild(x.createIconLabel(e,"smallicon-warning"));function I(e){const t=l[e];return"string"!=typeof t?"":t}}getInstallabilityErrorMessages(e){const t=[];for(const i of e){let e;switch(i.errorId){case"not-in-main-frame":e=u`Page is not loaded in the main frame`;break;case"not-from-secure-origin":e=u`Page is not served from a secure origin`;break;case"no-manifest":e=u`Page has no manifest <link> URL`;break;case"manifest-empty":e=u`Manifest could not be fetched, is empty, or could not be parsed`;break;case"start-url-not-valid":e=u`Manifest start URL is not valid`;break;case"manifest-missing-name-or-short-name":e=u`Manifest does not contain a 'name' or 'short_name' field`;break;case"manifest-display-not-supported":e=u`Manifest 'display' property must be one of 'standalone', 'fullscreen', or 'minimal-ui'`;break;case"manifest-missing-suitable-icon":if(1!==i.errorArguments.length||"minimum-icon-size-in-pixels"!==i.errorArguments[0].name){console.error("Installability error does not have the correct errorArguments");break}e=u`Manifest does not contain a suitable icon - PNG, SVG or WebP format of at least ${i.errorArguments[0].value}px is required, the sizes attribute must be set, and the purpose attribute, if set, must include "any" and should not include "maskable".`;break;case"no-matching-service-worker":e=u`No matching service worker detected. You may need to reload the page, or check that the scope of the service worker for the current page encloses the scope and start URL from the manifest.`;break;case"no-acceptable-icon":if(1!==i.errorArguments.length||"minimum-icon-size-in-pixels"!==i.errorArguments[0].name){console.error("Installability error does not have the correct errorArguments");break}e=u`No supplied icon is at least ${i.errorArguments[0].value}px square in PNG, SVG or WebP format, with the purpose attribute unset or set to "any".`;break;case"cannot-download-icon":e=u`Could not download a required icon from the manifest`;break;case"no-icon-available":e=u`Downloaded icon was empty or corrupted`;break;case"platform-not-supported-on-android":e=u`The specified application platform is not supported on Android`;break;case"no-id-specified":e=u`No Play store ID provided`;break;case"ids-do-not-match":e=u`The Play Store app URL and Play Store ID do not match`;break;case"already-installed":e=u`The app is already installed`;break;case"url-not-supported-for-webapk":e=u`A URL in the manifest contains a username, password, or port`;break;case"in-incognito":e=u`Page is loaded in an incognito window`;break;case"not-offline-capable":e=u`Page does not work offline`;break;case"no-url-for-service-worker":e=u`Could not check service worker without a 'start_url' field in the manifest`;break;case"prefer-related-applications":e=u`Manifest specifies prefer_related_applications: true`;break;case"prefer-related-applications-only-beta-stable":e=u`prefer_related_applications is only supported on Chrome Beta and Stable channels on Android.`;break;case"manifest-display-override-not-supported":e=u`Manifest contains 'display_override' field, and the first supported display mode must be one of 'standalone', 'fullscreen', or 'minimal-ui'`;break;case"warn-not-offline-capable":e=u`Page does not work offline. The page will not be regarded as installable after Chrome 93, stable release August 2021.`;break;default:console.error(`Installability error id '${i.errorId}' is not recognized`)}e&&t.push(e)}return t}async _loadImage(e){const t=document.createElement("div");t.classList.add("image-wrapper");const i=document.createElement("img"),s=new Promise(((e,t)=>{i.onload=e,i.onerror=t}));i.src=e,i.alt=u`Image from ${e}`,t.appendChild(i);try{return await s,{wrapper:t,image:i}}catch(e){}return null}async _appendImageResourceToSection(e,t,i,r){const a=[],n=r?u`Screenshot`:u`Icon`;if(!t.src)return a.push(u`${n} src is not set`),a;const o=s.ParsedURL.completeURL(e,t.src);if(!o)return a.push(u`${n} URL '${t.src}' failed to parse`),a;const d=await this._loadImage(o);if(!d)return a.push(u`${n} ${o} failed to load`),a;const{wrapper:l,image:c}=d,h=(t.sizes?t.sizes.replace("x","×")+"px":"")+"\n"+(t.type||""),_=i.appendFlexedField(h);if(t.sizes)if(/^\d+x\d+$/.test(t.sizes)){const[e,i]=t.sizes.split("x").map((e=>parseInt(e,10)));r||e===i?c.naturalWidth!==e&&c.naturalHeight!==i?a.push(u`Actual size (${c.naturalWidth}×${c.naturalHeight})px of ${n} ${o} does not match specified size (${e}×${i}px)`):c.naturalWidth!==e?a.push(u`Actual width (${c.naturalWidth}px) of ${n} ${o} does not match specified width (${e}px)`):c.naturalHeight!==i?a.push(u`Actual height (${c.naturalHeight}px) of ${n} ${o} does not match specified height (${i}px)`):r&&(e<320||i<320)&&a.push(u`${n} ${o} size should be at least 320x320`):a.push(u`${n} ${o} dimensions should be square`)}else a.push(u`${n} ${o} should specify its size as \`{width}x{height}\``);else a.push(u`${n} ${o} does not specify its size in the manifest`);return _.appendChild(l),a}}var Qe=Object.freeze({__proto__:null,AppManifestView:Ke});class Xe extends q.SDKModel{constructor(e){super(e),this._backgroundServiceAgent=e.backgroundServiceAgent(),e.registerBackgroundServiceDispatcher(this),this._events=new Map}enable(e){this._events.set(e,[]),this._backgroundServiceAgent.invoke_startObserving({service:e})}setRecording(e,t){this._backgroundServiceAgent.invoke_setRecording({shouldRecord:e,service:t})}clearEvents(e){this._events.set(e,[]),this._backgroundServiceAgent.invoke_clearEvents({service:e})}getEvents(e){return this._events.get(e)||[]}recordingStateChanged({isRecording:e,service:t}){this.dispatchEventToListeners(Ye.RecordingStateChanged,{isRecording:e,serviceName:t})}backgroundServiceEventReceived({backgroundServiceEvent:e}){this._events.get(e.service).push(e),this.dispatchEventToListeners(Ye.BackgroundServiceEventReceived,e)}}q.SDKModel.register(Xe,q.Capability.Browser,!1);const Ye={RecordingStateChanged:Symbol("RecordingStateChanged"),BackgroundServiceEventReceived:Symbol("BackgroundServiceEventReceived")};var Je=Object.freeze({__proto__:null,BackgroundServiceModel:Xe,Events:Ye});class Ze extends C.VBox{static getUIString(e){switch(e){case Protocol.BackgroundService.ServiceName.BackgroundFetch:return u`Background Fetch`;case Protocol.BackgroundService.ServiceName.BackgroundSync:return u`Background Sync`;case Protocol.BackgroundService.ServiceName.PushMessaging:return u`Push Messaging`;case Protocol.BackgroundService.ServiceName.Notifications:return u`Notifications`;case Protocol.BackgroundService.ServiceName.PaymentHandler:return u`Payment Handler`;case Protocol.BackgroundService.ServiceName.PeriodicBackgroundSync:return u`Periodic Background Sync`;default:return""}}constructor(e,t){if(super(!0),this.registerRequiredCSS("resources/backgroundServiceView.css",{enableLegacyPatching:!0}),this.registerRequiredCSS("ui/emptyWidget.css",{enableLegacyPatching:!1}),this._serviceName=e,this._model=t,this._model.addEventListener(Ye.RecordingStateChanged,this._onRecordingStateChanged,this),this._model.addEventListener(Ye.BackgroundServiceEventReceived,this._onEventReceived,this),this._model.enable(this._serviceName),this._serviceWorkerManager=this._model.target().model($.ServiceWorkerManager),this._securityOriginManager=this._model.target().model(H.SecurityOriginManager),!this._securityOriginManager)throw new Error("SecurityOriginManager instance is missing");this._securityOriginManager.addEventListener(H.Events.MainSecurityOriginChanged,(()=>this._onOriginChanged())),this._recordAction=D.ActionRegistry.instance().action("background-service.toggle-recording"),this._recordButton,this._originCheckbox,this._saveButton,this._toolbar=new b.Toolbar("background-service-toolbar",this.contentElement),this._setupToolbar(),this._splitWidget=new y.SplitWidget(!1,!0),this._splitWidget.show(this.contentElement),this._dataGrid=this._createDataGrid(),this._previewPanel=new C.VBox,this._selectedEventNode=null,this._preview=null,this._splitWidget.setMainWidget(this._dataGrid.asWidget()),this._splitWidget.setSidebarWidget(this._previewPanel),this._showPreview(null)}async _setupToolbar(){this._recordButton=b.Toolbar.createActionButton(this._recordAction),this._toolbar.appendToolbarItem(this._recordButton);const e=new b.ToolbarButton(u`Clear`,"largeicon-clear");e.addEventListener(b.ToolbarButton.Events.Click,(()=>this._clearEvents())),this._toolbar.appendToolbarItem(e),this._toolbar.appendSeparator(),this._saveButton=new b.ToolbarButton(u`Save events`,"largeicon-download"),this._saveButton.addEventListener(b.ToolbarButton.Events.Click,(e=>{this._saveToFile()})),this._saveButton.setEnabled(!1),this._toolbar.appendToolbarItem(this._saveButton),this._toolbar.appendSeparator(),this._originCheckbox=new b.ToolbarCheckbox(u`Show events from other domains`,u`Show events from other domains`,(()=>this._refreshView())),this._toolbar.appendToolbarItem(this._originCheckbox)}_refreshView(){this._clearView();const e=this._model.getEvents(this._serviceName).filter((e=>this._acceptEvent(e)));for(const t of e)this._addEvent(t)}_clearView(){this._selectedEventNode=null,this._dataGrid.rootNode().removeChildren(),this._saveButton.setEnabled(!1),this._showPreview(null)}_toggleRecording(){this._model.setRecording(!this._recordButton.toggled(),this._serviceName)}_clearEvents(){this._model.clearEvents(this._serviceName),this._clearView()}_onRecordingStateChanged(e){const t=e.data;t.serviceName===this._serviceName&&t.isRecording!==this._recordButton.toggled()&&(this._recordButton.setToggled(t.isRecording),this._updateRecordButtonTooltip(),this._showPreview(this._selectedEventNode))}_updateRecordButtonTooltip(){const e=this._recordButton.toggled()?u`Stop recording events`:u`Start recording events`;this._recordButton.setTitle(e,"background-service.toggle-recording")}_onEventReceived(e){const t=e.data;this._acceptEvent(t)&&this._addEvent(t)}_onOriginChanged(){this._originCheckbox.checked()||this._refreshView()}_addEvent(e){const t=this._createEventData(e),i=new et(t,e.eventMetadata);this._dataGrid.rootNode().appendChild(i),1===this._dataGrid.rootNode().children.length&&(this._saveButton.setEnabled(!0),this._showPreview(this._selectedEventNode))}_createDataGrid(){const e=[{id:"id",title:u`#`,weight:1},{id:"timestamp",title:u`Timestamp`,weight:8},{id:"eventName",title:u`Event`,weight:10},{id:"origin",title:u`Origin`,weight:10},{id:"swScope",title:u`SW Scope`,weight:2},{id:"instanceId",title:u`Instance ID`,weight:10}],t=new c.DataGridImpl({displayName:u`Background Services`,columns:e,editCallback:void 0,refreshCallback:void 0,deleteCallback:void 0});return t.setStriped(!0),t.addEventListener(c.Events.SelectedNode,(e=>this._showPreview(e.data))),t}_createEventData(e){let t="";const i=this._serviceWorkerManager?this._serviceWorkerManager.registrations().get(e.serviceWorkerRegistrationId):void 0;return i&&(t=i.scopeURL.substr(i.securityOrigin.length)),{id:this._dataGrid.rootNode().children.length+1,timestamp:x.formatTimestamp(1e3*e.timestamp,!0),origin:e.origin,swScope:t,eventName:e.eventName,instanceId:e.instanceId}}_acceptEvent(e){if(e.service!==this._serviceName)return!1;if(this._originCheckbox.checked())return!0;const t=e.origin.substr(0,e.origin.length-1);return this._securityOriginManager.securityOrigins().includes(t)}_createLearnMoreLink(){let e="https://developers.google.com/web/tools/chrome-devtools/javascript/background-services?utm_source=devtools";switch(this._serviceName){case Protocol.BackgroundService.ServiceName.BackgroundFetch:e+="#fetch";break;case Protocol.BackgroundService.ServiceName.BackgroundSync:e+="#sync";break;case Protocol.BackgroundService.ServiceName.PushMessaging:e+="#push";break;case Protocol.BackgroundService.ServiceName.Notifications:e+="#notifications"}return R.XLink.create(e,u`Learn more`)}_showPreview(e){if(this._selectedEventNode&&this._selectedEventNode===e)return;if(this._selectedEventNode=e,this._preview&&this._preview.detach(),this._selectedEventNode)return this._preview=this._selectedEventNode.createPreview(),void this._preview.show(this._previewPanel.contentElement);this._preview=new C.VBox,this._preview.contentElement.classList.add("background-service-preview","fill");const t=this._preview.contentElement.createChild("div");if(this._dataGrid.rootNode().children.length)t.createChild("p").textContent=u`Select an entry to view metadata`;else if(this._recordButton.toggled()){const e=Ze.getUIString(this._serviceName);t.createChild("p").textContent=u`Recording ${e} activity...`,t.createChild("p").textContent=u`DevTools will record all ${e} activity for up to 3 days, even when closed.`}else{const e=b.Toolbar.createActionButton(this._recordAction),i=document.createElement("b");i.classList.add("background-service-shortcut"),i.textContent=M.ShortcutRegistry.instance().shortcutsForAction("background-service.toggle-recording")[0].title();const s=x.createInlineButton(e);s.classList.add("background-service-record-inline-button"),t.createChild("p").appendChild(x.formatLocalized("Click the record button %s or hit %s to start recording.",[s,i])),t.appendChild(this._createLearnMoreLink())}this._preview.show(this._previewPanel.contentElement)}async _saveToFile(){const e=`${this._serviceName}-${m.toISO8601Compact(new Date)}.json`,t=new be.FileOutputStream;if(!await t.open(e))return;const i=this._model.getEvents(this._serviceName).filter((e=>this._acceptEvent(e)));await t.write(JSON.stringify(i,void 0,2)),t.close()}}class et extends c.DataGridNode{constructor(e,t){super(e),this._eventMetadata=t.sort(((e,t)=>p.compare(e.key,t.key)))}createPreview(){const e=new C.VBox;e.element.classList.add("background-service-metadata");for(const t of this._eventMetadata){const i=document.createElement("div");i.classList.add("background-service-metadata-entry"),i.createChild("div","background-service-metadata-name").textContent=t.key+": ",t.value?i.createChild("div","background-service-metadata-value source-code").textContent=t.value:i.createChild("div","background-service-metadata-value background-service-empty-value").textContent=u`empty`,e.element.appendChild(i)}if(!e.element.children.length){const t=document.createElement("div");t.classList.add("background-service-metadata-entry"),t.createChild("div","background-service-metadata-name").textContent=u`No metadata for this event`,e.element.appendChild(t)}return e}}var tt=Object.freeze({__proto__:null,BackgroundServiceView:Ze,EventDataNode:et,ActionDelegate:class{handleAction(e,t){const i=e.flavor(Ze);switch(t){case"background-service.toggle-recording":if(!i)throw new Error("BackgroundServiceView instance is missing");return i._toggleRecording(),!0}return!1}},RecordingState:undefined,EventData:undefined});class it{constructor(e,t,i,s,r){this._model=e,this._id=t,this._domain=i,this._name=s,this._version=r}get id(){return this._id}get name(){return this._name}set name(e){this._name=e}get version(){return this._version}set version(e){this._version=e}get domain(){return this._domain}set domain(e){this._domain=e}async tableNames(){const{tableNames:e}=await this._model._agent.invoke_getDatabaseTableNames({databaseId:this._id})||[];return e.sort()}async executeSql(t,i,s){const r=await this._model._agent.invoke_executeSQL({databaseId:this._id,query:t}),a=r.getError()||null;if(a)return void s(a);const n=r.sqlError;if(!n)return void i(r.columnNames||[],r.values||[]);let o;o=n.message?n.message:2===n.code?e.UIString("Database no longer has expected version."):e.UIString("An unexpected error %s occurred.",n.code),s(o)}}class st extends q.SDKModel{constructor(e){super(e),this._databases=[],this._agent=e.databaseAgent(),this.target().registerDatabaseDispatcher(new at(this))}enable(){this._enabled||(this._agent.invoke_enable(),this._enabled=!0)}disable(){this._enabled&&(this._enabled=!1,this._databases=[],this._agent.invoke_disable(),this.dispatchEventToListeners(rt.DatabasesRemoved))}databases(){const e=[];for(const t of this._databases)e.push(t);return e}_addDatabase(e){this._databases.push(e),this.dispatchEventToListeners(rt.DatabaseAdded,e)}}q.SDKModel.register(st,q.Capability.DOM,!1);const rt={DatabaseAdded:Symbol("DatabaseAdded"),DatabasesRemoved:Symbol("DatabasesRemoved")};class at{constructor(e){this._model=e}addDatabase({database:e}){this._model._addDatabase(new it(this._model,e.id,e.domain,e.name,e.version))}}var nt=Object.freeze({__proto__:null,Database:it,DatabaseModel:st,Events:rt,DatabaseDispatcher:at});class ot extends o.ObjectWrapper{constructor(e,t,i){super(),this._model=e,this._securityOrigin=t,this._isLocalStorage=i}static storageId(e,t){return{securityOrigin:e,isLocalStorage:t}}get id(){return ot.storageId(this._securityOrigin,this._isLocalStorage)}get securityOrigin(){return this._securityOrigin}get isLocalStorage(){return this._isLocalStorage}getItems(){return this._model._agent.invoke_getDOMStorageItems({storageId:this.id}).then((({entries:e})=>e))}setItem(e,t){this._model._agent.invoke_setDOMStorageItem({storageId:this.id,key:e,value:t})}removeItem(e){this._model._agent.invoke_removeDOMStorageItem({storageId:this.id,key:e})}clear(){this._model._agent.invoke_clear({storageId:this.id})}}ot.Events={DOMStorageItemsCleared:Symbol("DOMStorageItemsCleared"),DOMStorageItemRemoved:Symbol("DOMStorageItemRemoved"),DOMStorageItemAdded:Symbol("DOMStorageItemAdded"),DOMStorageItemUpdated:Symbol("DOMStorageItemUpdated")};class dt extends q.SDKModel{constructor(e){super(e),this._securityOriginManager=e.model(H.SecurityOriginManager),this._storages={},this._agent=e.domstorageAgent()}enable(){if(!this._enabled){if(this.target().registerDOMStorageDispatcher(new ct(this)),this._securityOriginManager){this._securityOriginManager.addEventListener(H.Events.SecurityOriginAdded,this._securityOriginAdded,this),this._securityOriginManager.addEventListener(H.Events.SecurityOriginRemoved,this._securityOriginRemoved,this);for(const e of this._securityOriginManager.securityOrigins())this._addOrigin(e)}this._agent.invoke_enable(),this._enabled=!0}}clearForOrigin(e){if(this._enabled){for(const t of[!0,!1]){const i=this._storageKey(e,t),s=this._storages[i];if(!s)return;s.clear()}this._removeOrigin(e),this._addOrigin(e)}}_securityOriginAdded(e){this._addOrigin(e.data)}_addOrigin(e){const t=new s.ParsedURL(e);if(t.isValid&&"data"!==t.scheme&&"about"!==t.scheme&&"javascript"!==t.scheme)for(const t of[!0,!1]){const i=this._storageKey(e,t);console.assert(!this._storages[i]);const s=new ot(this,e,t);this._storages[i]=s,this.dispatchEventToListeners(lt.DOMStorageAdded,s)}}_securityOriginRemoved(e){this._removeOrigin(e.data)}_removeOrigin(e){for(const t of[!0,!1]){const i=this._storageKey(e,t),s=this._storages[i];s&&(delete this._storages[i],this.dispatchEventToListeners(lt.DOMStorageRemoved,s))}}_storageKey(e,t){return JSON.stringify(ot.storageId(e,t))}_domStorageItemsCleared(e){const t=this.storageForId(e);if(!t)return;t.dispatchEventToListeners(ot.Events.DOMStorageItemsCleared,{})}_domStorageItemRemoved(e,t){const i=this.storageForId(e);if(!i)return;const s={key:t};i.dispatchEventToListeners(ot.Events.DOMStorageItemRemoved,s)}_domStorageItemAdded(e,t,i){const s=this.storageForId(e);if(!s)return;const r={key:t,value:i};s.dispatchEventToListeners(ot.Events.DOMStorageItemAdded,r)}_domStorageItemUpdated(e,t,i,s){const r=this.storageForId(e);if(!r)return;const a={key:t,oldValue:i,value:s};r.dispatchEventToListeners(ot.Events.DOMStorageItemUpdated,a)}storageForId(e){return this._storages[JSON.stringify(e)]}storages(){const e=[];for(const t in this._storages)e.push(this._storages[t]);return e}}q.SDKModel.register(dt,q.Capability.DOM,!1);const lt={DOMStorageAdded:Symbol("DOMStorageAdded"),DOMStorageRemoved:Symbol("DOMStorageRemoved")};class ct{constructor(e){this._model=e}domStorageItemsCleared({storageId:e}){this._model._domStorageItemsCleared(e)}domStorageItemRemoved({storageId:e,key:t}){this._model._domStorageItemRemoved(e,t)}domStorageItemAdded({storageId:e,key:t,newValue:i}){this._model._domStorageItemAdded(e,t,i)}domStorageItemUpdated({storageId:e,key:t,oldValue:i,newValue:s}){this._model._domStorageItemUpdated(e,t,i,s)}}var ht=Object.freeze({__proto__:null,DOMStorage:ot,DOMStorageModel:dt,Events:lt,DOMStorageDispatcher:ct});class ut extends q.SDKModel{constructor(e){super(e),e.registerStorageDispatcher(this),this._securityOriginManager=e.model(H.SecurityOriginManager),this._indexedDBAgent=e.indexedDBAgent(),this._storageAgent=e.storageAgent(),this._databases=new Map,this._databaseNamesBySecurityOrigin={},this._originsUpdated=new Set,this._throttler=new i.Throttler(1e3)}static keyFromIDBKey(e){if(null==e)return;let t;switch(typeof e){case"number":t={type:Protocol.IndexedDB.KeyType.Number,number:e};break;case"string":t={type:Protocol.IndexedDB.KeyType.String,string:e};break;case"object":if(e instanceof Date)t={type:Protocol.IndexedDB.KeyType.Date,date:e.getTime()};else{if(!Array.isArray(e))return;{const i=[];for(let t=0;t<e.length;++t){const s=ut.keyFromIDBKey(e[t]);s&&i.push(s)}t={type:Protocol.IndexedDB.KeyType.Array,array:i}}}break;default:return}return t}static _keyRangeFromIDBKeyRange(e){const t={};return t.lower=ut.keyFromIDBKey(e.lower),t.upper=ut.keyFromIDBKey(e.upper),t.lowerOpen=Boolean(e.lowerOpen),t.upperOpen=Boolean(e.upperOpen),t}static idbKeyPathFromKeyPath(e){let t;switch(e.type){case Protocol.IndexedDB.KeyPathType.Null:t=null;break;case Protocol.IndexedDB.KeyPathType.String:t=e.string;break;case Protocol.IndexedDB.KeyPathType.Array:t=e.array}return t}static keyPathStringFromIDBKeyPath(e){return"string"==typeof e?'"'+e+'"':e instanceof Array?'["'+e.join('", "')+'"]':null}enable(){if(!this._enabled){if(this._indexedDBAgent.invoke_enable(),this._securityOriginManager){this._securityOriginManager.addEventListener(H.Events.SecurityOriginAdded,this._securityOriginAdded,this),this._securityOriginManager.addEventListener(H.Events.SecurityOriginRemoved,this._securityOriginRemoved,this);for(const e of this._securityOriginManager.securityOrigins())this._addOrigin(e)}this._enabled=!0}}clearForOrigin(e){this._enabled&&this._databaseNamesBySecurityOrigin[e]&&(this._removeOrigin(e),this._addOrigin(e))}async deleteDatabase(e){this._enabled&&(await this._indexedDBAgent.invoke_deleteDatabase({securityOrigin:e.securityOrigin,databaseName:e.name}),this._loadDatabaseNames(e.securityOrigin))}async refreshDatabaseNames(){for(const e in this._databaseNamesBySecurityOrigin)await this._loadDatabaseNames(e);this.dispatchEventToListeners(_t.DatabaseNamesRefreshed)}refreshDatabase(e){this._loadDatabase(e,!0)}async clearObjectStore(e,t){await this._indexedDBAgent.invoke_clearObjectStore({securityOrigin:e.securityOrigin,databaseName:e.name,objectStoreName:t})}async deleteEntries(e,t,i){const s=ut._keyRangeFromIDBKeyRange(i);await this._indexedDBAgent.invoke_deleteObjectStoreEntries({securityOrigin:e.securityOrigin,databaseName:e.name,objectStoreName:t,keyRange:s})}_securityOriginAdded(e){const t=e.data;this._addOrigin(t)}_securityOriginRemoved(e){const t=e.data;this._removeOrigin(t)}_addOrigin(e){console.assert(!this._databaseNamesBySecurityOrigin[e]),this._databaseNamesBySecurityOrigin[e]=[],this._loadDatabaseNames(e),this._isValidSecurityOrigin(e)&&this._storageAgent.invoke_trackIndexedDBForOrigin({origin:e})}_removeOrigin(e){console.assert(Boolean(this._databaseNamesBySecurityOrigin[e]));for(let t=0;t<this._databaseNamesBySecurityOrigin[e].length;++t)this._databaseRemoved(e,this._databaseNamesBySecurityOrigin[e][t]);delete this._databaseNamesBySecurityOrigin[e],this._isValidSecurityOrigin(e)&&this._storageAgent.invoke_untrackIndexedDBForOrigin({origin:e})}_isValidSecurityOrigin(e){const t=s.ParsedURL.fromString(e);return null!==t&&t.scheme.startsWith("http")}_updateOriginDatabaseNames(e,t){const i=new Set(t),s=new Set(this._databaseNamesBySecurityOrigin[e]);this._databaseNamesBySecurityOrigin[e]=t;for(const t of s)i.has(t)||this._databaseRemoved(e,t);for(const t of i)s.has(t)||this._databaseAdded(e,t)}databases(){const e=[];for(const t in this._databaseNamesBySecurityOrigin){const i=this._databaseNamesBySecurityOrigin[t];for(let s=0;s<i.length;++s)e.push(new mt(t,i[s]))}return e}_databaseAdded(e,t){const i=new mt(e,t);this.dispatchEventToListeners(_t.DatabaseAdded,{model:this,databaseId:i})}_databaseRemoved(e,t){const i=new mt(e,t);this.dispatchEventToListeners(_t.DatabaseRemoved,{model:this,databaseId:i})}async _loadDatabaseNames(e){const{databaseNames:t}=await this._indexedDBAgent.invoke_requestDatabaseNames({securityOrigin:e});return t&&this._databaseNamesBySecurityOrigin[e]?(this._updateOriginDatabaseNames(e,t),t):[]}async _loadDatabase(e,t){const{databaseWithObjectStores:i}=await this._indexedDBAgent.invoke_requestDatabase({securityOrigin:e.securityOrigin,databaseName:e.name});if(!i)return;if(!this._databaseNamesBySecurityOrigin[e.securityOrigin])return;const s=new gt(e,i.version);this._databases.set(e,s);for(const e of i.objectStores){const t=ut.idbKeyPathFromKeyPath(e.keyPath),i=new vt(e.name,t,e.autoIncrement);for(let t=0;t<e.indexes.length;++t){const s=e.indexes[t],r=ut.idbKeyPathFromKeyPath(s.keyPath),a=new bt(s.name,r,s.unique,s.multiEntry);i.indexes.set(a.name,a)}s.objectStores.set(i.name,i)}this.dispatchEventToListeners(_t.DatabaseLoaded,{model:this,database:s,entriesUpdated:t})}loadObjectStoreData(e,t,i,s,r,a){this._requestData(e,e.name,t,"",i,s,r,a)}loadIndexData(e,t,i,s,r,a,n){this._requestData(e,e.name,t,i,s,r,a,n)}async _requestData(e,t,i,s,r,a,n,o){const d=r?ut._keyRangeFromIDBKeyRange(r):void 0,l=await this._indexedDBAgent.invoke_requestData({securityOrigin:e.securityOrigin,databaseName:t,objectStoreName:i,indexName:s,skipCount:a,pageSize:n,keyRange:d});if(l.getError())return void console.error("IndexedDBAgent error: "+l.getError());const c=this.target().model(K.RuntimeModel);if(!c||!this._databaseNamesBySecurityOrigin[e.securityOrigin])return;const h=l.objectStoreDataEntries,u=[];for(const e of h){const t=c.createRemoteObject(e.key),i=c.createRemoteObject(e.primaryKey),s=c.createRemoteObject(e.value);u.push(new pt(t,i,s))}o(u,l.hasMore)}async getMetadata(e,t){const i=e.securityOrigin,s=e.name,r=t.name,a=await this._indexedDBAgent.invoke_getMetadata({securityOrigin:i,databaseName:s,objectStoreName:r});return a.getError()?(console.error("IndexedDBAgent error: "+a.getError()),null):{entriesCount:a.entriesCount,keyGeneratorValue:a.keyGeneratorValue}}async _refreshDatabaseList(e){const t=await this._loadDatabaseNames(e);for(const i of t)this._loadDatabase(new mt(e,i),!1)}indexedDBListUpdated({origin:e}){this._originsUpdated.add(e),this._throttler.schedule((()=>{const e=Array.from(this._originsUpdated,(e=>{this._refreshDatabaseList(e)}));return this._originsUpdated.clear(),Promise.all(e)}))}indexedDBContentUpdated({origin:e,databaseName:t,objectStoreName:i}){const s=new mt(e,t);this.dispatchEventToListeners(_t.IndexedDBContentUpdated,{databaseId:s,objectStoreName:i,model:this})}cacheStorageListUpdated(e){}cacheStorageContentUpdated(e){}}q.SDKModel.register(ut,q.Capability.Storage,!1);const _t={DatabaseAdded:Symbol("DatabaseAdded"),DatabaseRemoved:Symbol("DatabaseRemoved"),DatabaseLoaded:Symbol("DatabaseLoaded"),DatabaseNamesRefreshed:Symbol("DatabaseNamesRefreshed"),IndexedDBContentUpdated:Symbol("IndexedDBContentUpdated")};class pt{constructor(e,t,i){this.key=e,this.primaryKey=t,this.value=i}}class mt{constructor(e,t){this.securityOrigin=e,this.name=t}equals(e){return this.name===e.name&&this.securityOrigin===e.securityOrigin}}class gt{constructor(e,t){this.databaseId=e,this.version=t,this.objectStores=new Map}}class vt{constructor(e,t,i){this.name=e,this.keyPath=t,this.autoIncrement=i,this.indexes=new Map}get keyPathString(){return ut.keyPathStringFromIDBKeyPath(this.keyPath)}}class bt{constructor(e,t,i,s){this.name=e,this.keyPath=t,this.unique=i,this.multiEntry=s}get keyPathString(){return ut.keyPathStringFromIDBKeyPath(this.keyPath)}}var wt=Object.freeze({__proto__:null,IndexedDBModel:ut,Events:_t,Entry:pt,DatabaseId:mt,Database:gt,ObjectStore:vt,Index:bt,ObjectStoreMetadata:undefined});const St={storageQuotaUsed:"{PH1} used out of {PH2} storage quota",storageQuotaUsedWithBytes:"{PH1} bytes used out of {PH2} bytes storage quota",storageWithCustomMarker:"{PH1} (custom)"},ft=Se.registerUIStrings("resources/ClearStorageView.js",St),yt=Se.getLocalizedString.bind(void 0,ft);class Ct extends O.ThrottledWidget{constructor(){super(!0,1e3),this.registerRequiredCSS("resources/clearStorageView.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("clear-storage-container");const i=Protocol.Storage.StorageType;this._pieColors=new Map([[i.Appcache,"rgb(110, 161, 226)"],[i.Cache_storage,"rgb(229, 113, 113)"],[i.Cookies,"rgb(239, 196, 87)"],[i.Indexeddb,"rgb(155, 127, 230)"],[i.Local_storage,"rgb(116, 178, 102)"],[i.Service_workers,"rgb(255, 167, 36)"],[i.Websql,"rgb(203, 220, 56)"]]),this._reportView=new L.ReportView(e.UIString("Storage")),this._reportView.registerRequiredCSS("resources/clearStorageView.css",{enableLegacyPatching:!1}),this._reportView.element.classList.add("clear-storage-header"),this._reportView.show(this.contentElement),this._target=null,this._securityOrigin=null,this._settings=new Map;for(const e of kt)this._settings.set(e,t.Settings.instance().createSetting("clear-storage-"+e,!0));this._includeThirdPartyCookiesSetting=t.Settings.instance().createSetting("clear-storage-include-third-party-cookies",!1);const s=this._reportView.appendSection(e.UIString("Usage"));this._quotaRow=s.appendSelectableRow(),this._quotaRow.classList.add("quota-usage-row");const r=s.appendRow(),a=R.XLink.create("https://developers.google.com/web/tools/chrome-devtools/progressive-web-apps#opaque-responses",u`Learn more`);r.appendChild(a),this._quotaUsage=null,this._pieChart=new fe.PieChart,this._populatePieChart(0,[]);const n=s.appendRow();n.classList.add("usage-breakdown-row"),n.appendChild(this._pieChart),this._previousOverrideFieldValue="";const o=s.appendRow();this._quotaOverrideCheckbox=x.CheckboxLabel.create("Simulate custom storage quota",!1,""),o.appendChild(this._quotaOverrideCheckbox),this._quotaOverrideCheckbox.checkboxElement.addEventListener("click",this._onClickCheckbox.bind(this),!1),this._quotaOverrideControlRow=s.appendRow(),this._quotaOverrideEditor=this._quotaOverrideControlRow.createChild("input","quota-override-notification-editor"),this._quotaOverrideControlRow.appendChild(x.createLabel(e.UIString("MB"))),this._quotaOverrideControlRow.classList.add("hidden"),this._quotaOverrideEditor.addEventListener("keyup",(e=>{"Enter"===e.key&&(this._applyQuotaOverrideFromInputField(),e.consume(!0))})),this._quotaOverrideEditor.addEventListener("focusout",(e=>{this._applyQuotaOverrideFromInputField(),e.consume(!0)}));const d=s.appendRow();this._quotaOverrideErrorMessage=d.createChild("div","quota-override-error");const l=this._reportView.appendSection("","clear-storage-button").appendRow();this._clearButton=x.createTextButton(u`Clear site data`,this._clear.bind(this)),this._clearButton.id="storage-view-clear-button",l.appendChild(this._clearButton),this._includeThirdPartyCookiesCheckbox=F.createSettingCheckbox(u`including third-party cookies`,this._includeThirdPartyCookiesSetting,!0),this._includeThirdPartyCookiesCheckbox.classList.add("include-third-party-cookies"),l.appendChild(this._includeThirdPartyCookiesCheckbox);const c=this._reportView.appendSection(e.UIString("Application"));this._appendItem(c,e.UIString("Unregister service workers"),"service_workers"),c.markFieldListAsGroup();const h=this._reportView.appendSection(e.UIString("Storage"));this._appendItem(h,e.UIString("Local and session storage"),"local_storage"),this._appendItem(h,e.UIString("IndexedDB"),"indexeddb"),this._appendItem(h,e.UIString("Web SQL"),"websql"),this._appendItem(h,e.UIString("Cookies"),"cookies"),h.markFieldListAsGroup();const _=this._reportView.appendSection(e.UIString("Cache"));this._appendItem(_,e.UIString("Cache storage"),"cache_storage"),this._appendItem(_,e.UIString("Application cache"),"appcache"),_.markFieldListAsGroup(),q.TargetManager.instance().observeTargets(this)}_appendItem(e,t,i){e.appendRow().appendChild(F.createSettingCheckbox(t,this._settings.get(i),!0))}targetAdded(e){if(this._target)return;this._target=e;const t=e.model(H.SecurityOriginManager);this._updateOrigin(t.mainSecurityOrigin(),t.unreachableMainSecurityOrigin()),t.addEventListener(H.Events.MainSecurityOriginChanged,this._originChanged,this)}targetRemoved(e){if(this._target!==e)return;e.model(H.SecurityOriginManager).removeEventListener(H.Events.MainSecurityOriginChanged,this._originChanged,this)}_originChanged(e){const t=e.data.mainSecurityOrigin,i=e.data.unreachableMainSecurityOrigin;this._updateOrigin(t,i)}async _updateOrigin(e,t){const i=this._securityOrigin;t?(this._securityOrigin=t,this._reportView.setSubtitle(u`${t} (failed to load)`)):(this._securityOrigin=e,this._reportView.setSubtitle(e)),i!==this._securityOrigin&&(this._quotaOverrideControlRow.classList.add("hidden"),this._quotaOverrideCheckbox.checkboxElement.checked=!1,this._quotaOverrideErrorMessage.textContent=""),this.doUpdate()}async _applyQuotaOverrideFromInputField(){if(!this._target||!this._securityOrigin)return void(this._quotaOverrideErrorMessage.textContent=u`Internal error`);this._quotaOverrideErrorMessage.textContent="";const e=this._quotaOverrideEditor.value;if(""===e)return await this._clearQuotaForOrigin(this._target,this._securityOrigin),void(this._previousOverrideFieldValue="");const t=parseFloat(e);if(!Number.isFinite(t))return void(this._quotaOverrideErrorMessage.textContent=u`Please enter a number`);if(t<0)return void(this._quotaOverrideErrorMessage.textContent=u`Number must be non-negative`);const i=1e6,s=Math.round(t*i),r=""+s/i;this._quotaOverrideEditor.value=r,this._previousOverrideFieldValue=r,await this._target.storageAgent().invoke_overrideQuotaForOrigin({origin:this._securityOrigin,quotaSize:s})}async _clearQuotaForOrigin(e,t){await e.storageAgent().invoke_overrideQuotaForOrigin({origin:t})}async _onClickCheckbox(){this._quotaOverrideControlRow.classList.contains("hidden")?(this._quotaOverrideControlRow.classList.remove("hidden"),this._quotaOverrideCheckbox.checkboxElement.checked=!0,this._quotaOverrideEditor.value=this._previousOverrideFieldValue,this._quotaOverrideEditor.focus()):this._target&&this._securityOrigin&&(this._quotaOverrideControlRow.classList.add("hidden"),this._quotaOverrideCheckbox.checkboxElement.checked=!1,await this._clearQuotaForOrigin(this._target,this._securityOrigin),this._quotaOverrideErrorMessage.textContent="")}_clear(){if(!this._securityOrigin)return;const t=[];for(const e of this._settings.keys())this._settings.get(e).get()&&t.push(e);if(this._target){const e=this._includeThirdPartyCookiesSetting.get();Ct.clear(this._target,this._securityOrigin,t,e)}this._clearButton.disabled=!0;const i=this._clearButton.textContent;this._clearButton.textContent=e.UIString("Clearing..."),setTimeout((()=>{this._clearButton.disabled=!1,this._clearButton.textContent=i,this._clearButton.focus()}),500)}static clear(e,t,i,s){e.storageAgent().invoke_clearDataForOrigin({origin:t,storageTypes:i.join(",")});const r=new Set(i),a=r.has(Protocol.Storage.StorageType.All);if(r.has(Protocol.Storage.StorageType.Cookies)||a){const i=e.model(Q.CookieModel);i&&i.clear(void 0,s?void 0:t)}if(r.has(Protocol.Storage.StorageType.Indexeddb)||a)for(const e of q.TargetManager.instance().targets()){const i=e.model(ut);i&&i.clearForOrigin(t)}if(r.has(Protocol.Storage.StorageType.Local_storage)||a){const i=e.model(dt);i&&i.clearForOrigin(t)}if(r.has(Protocol.Storage.StorageType.Websql)||a){const t=e.model(st);t&&(t.disable(),t.enable())}if(r.has(Protocol.Storage.StorageType.Cache_storage)||a){const e=q.TargetManager.instance().mainTarget(),i=e&&e.model(G.ServiceWorkerCacheModel);i&&i.clearForOrigin(t)}if(r.has(Protocol.Storage.StorageType.Appcache)||a){const t=e.model(Re);t&&t.reset()}}async doUpdate(){if(!this._securityOrigin||!this._target)return this._quotaRow.textContent="",void this._populatePieChart(0,[]);const e=this._securityOrigin,t=await this._target.storageAgent().invoke_getUsageAndQuota({origin:e});if(this._quotaRow.textContent="",t.getError())return void this._populatePieChart(0,[]);const i=t.overrideActive,s=_.bytesToString(t.quota),r=_.bytesToString(t.usage),a=yt(St.storageWithCustomMarker,{PH1:s}),n=i?B.Fragment.build`<b>${a}</b>`.element():s,o=Se.getFormatLocalizedString(ft,St.storageQuotaUsed,{PH1:r,PH2:n});if(this._quotaRow.appendChild(o),k.Tooltip.install(this._quotaRow,yt(St.storageQuotaUsedWithBytes,{PH1:t.usage.toLocaleString(),PH2:t.quota.toLocaleString()})),!t.overrideActive&&t.quota<125829120&&(k.Tooltip.install(this._quotaRow,u`Storage quota is limited in Incognito mode`),this._quotaRow.appendChild(E.Icon.create("smallicon-info"))),null===this._quotaUsage||this._quotaUsage!==t.usage){this._quotaUsage=t.usage;const e=[];for(const i of t.usageBreakdown.sort(((e,t)=>t.usage-e.usage))){const t=i.usage;if(!t)continue;const s=this._getStorageTypeName(i.storageType),r=this._pieColors.get(i.storageType)||"#ccc";e.push({value:t,color:r,title:s})}this._populatePieChart(t.usage,e)}this._usageUpdatedForTest(t.usage,t.quota,t.usageBreakdown),this.update()}_populatePieChart(e,t){this._pieChart.data={chartName:u`Storage usage`,size:110,formatter:_.bytesToString,showLegend:!0,total:e,slices:t}}_getStorageTypeName(t){switch(t){case Protocol.Storage.StorageType.File_systems:return e.UIString("File System");case Protocol.Storage.StorageType.Websql:return e.UIString("Web SQL");case Protocol.Storage.StorageType.Appcache:return e.UIString("Application Cache");case Protocol.Storage.StorageType.Indexeddb:return e.UIString("IndexedDB");case Protocol.Storage.StorageType.Cache_storage:return e.UIString("Cache Storage");case Protocol.Storage.StorageType.Service_workers:return e.UIString("Service Workers");default:return e.UIString("Other")}}_usageUpdatedForTest(e,t,i){}}const kt=[Protocol.Storage.StorageType.Appcache,Protocol.Storage.StorageType.Cache_storage,Protocol.Storage.StorageType.Cookies,Protocol.Storage.StorageType.Indexeddb,Protocol.Storage.StorageType.Local_storage,Protocol.Storage.StorageType.Service_workers,Protocol.Storage.StorageType.Websql];var It=Object.freeze({__proto__:null,UIStrings:St,ClearStorageView:Ct,AllStorageTypes:kt,ActionDelegate:class{handleAction(e,t){switch(t){case"resources.clear":return this._handleClear(!1);case"resources.clear-incl-third-party-cookies":return this._handleClear(!0)}return!1}_handleClear(e){const t=q.TargetManager.instance().mainTarget();if(!t)return!1;const i=t.model(j.ResourceTreeModel);if(!i)return!1;const s=i.getMainSecurityOrigin();return!!s&&(Ct.clear(t,s,kt,e),!0)}}});class Et extends C.VBox{constructor(e){super(),this.database=e,this.element.classList.add("storage-view","query","monospace"),this.element.addEventListener("selectstart",this._selectStart.bind(this),!1),this._queryWrapper=this.element.createChild("div","database-query-group-messages"),this._queryWrapper.addEventListener("focusin",this._onFocusIn.bind(this)),this._queryWrapper.addEventListener("focusout",this._onFocusOut.bind(this)),this._queryWrapper.addEventListener("keydown",this._onKeyDown.bind(this)),this._queryWrapper.tabIndex=-1,this._promptContainer=this.element.createChild("div","database-query-prompt-container"),this._promptContainer.appendChild(E.Icon.create("smallicon-text-prompt","prompt-icon")),this._promptElement=this._promptContainer.createChild("div"),this._promptElement.className="database-query-prompt",this._promptElement.addEventListener("keydown",this._promptKeyDown.bind(this)),this._prompt=new V.TextPrompt,this._prompt.initialize(this.completions.bind(this)," "),this._proxyElement=this._prompt.attach(this._promptElement),this.element.addEventListener("click",this._messagesClicked.bind(this),!0),this._queryResults=[],this._virtualSelectedIndex=-1,this._lastSelectedElement,this._selectionTimeout=0}_messagesClicked(){this._prompt.focus(),this._prompt.isCaretInsidePrompt()||this.element.hasSelection()||this._prompt.moveCaretToEndOfPrompt()}_onKeyDown(e){if(!x.isEditing()&&this._queryResults.length&&!e.shiftKey){switch(e.key){case"ArrowUp":if(!(this._virtualSelectedIndex>0))return;this._virtualSelectedIndex--;break;case"ArrowDown":if(!(this._virtualSelectedIndex<this._queryResults.length-1))return;this._virtualSelectedIndex++;break;case"Home":this._virtualSelectedIndex=0;break;case"End":this._virtualSelectedIndex=this._queryResults.length-1;break;default:return}e.consume(!0),this._updateFocusedItem()}}_onFocusIn(e){-1===this._virtualSelectedIndex&&this._isOutsideViewport(e.relatedTarget)&&e.target===this._queryWrapper&&this._queryResults.length&&(this._virtualSelectedIndex=this._queryResults.length-1),this._updateFocusedItem()}_onFocusOut(e){this._isOutsideViewport(e.relatedTarget)&&(this._virtualSelectedIndex=-1),this._updateFocusedItem(),this._queryWrapper.scrollTop=1e7}_isOutsideViewport(e){return null!==e&&!e.isSelfOrDescendant(this._queryWrapper)}_updateFocusedItem(){let e=this._virtualSelectedIndex;this._queryResults.length&&this._virtualSelectedIndex<0&&(e=this._queryResults.length-1);const t=e>=0?this._queryResults[e]:null,i=this._lastSelectedElement!==t,s=this._queryWrapper===this.element.ownerDocument.deepActiveElement();t&&(i||s)&&this.element.hasFocus()&&(t.hasFocus()||t.focus()),this._queryResults.length&&!this._queryWrapper.hasFocus()?this._queryWrapper.tabIndex=0:this._queryWrapper.tabIndex=-1,this._lastSelectedElement=t}async completions(e,t,i){if(!t)return[];t=t.toLowerCase();return(await this.database.tableNames()).map((e=>e+" ")).concat(Lt).filter((e=>e.toLowerCase().startsWith(t))).map((e=>({text:e})))}_selectStart(e){this._selectionTimeout&&clearTimeout(this._selectionTimeout),this._prompt.clearAutocomplete(),this._selectionTimeout=window.setTimeout(function(){this._selectionTimeout=0,this._prompt.isCaretInsidePrompt()||this.element.hasSelection()||this._prompt.moveCaretToEndOfPrompt(),this._prompt.autoCompleteSoon()}.bind(this),100)}_promptKeyDown(e){"Enter"!==e.key||this._enterKeyPressed(e)}async _enterKeyPressed(e){e.consume(!0);const t=this._prompt.textWithCurrentSuggestion();if(this._prompt.clearAutocomplete(),t.length){this._prompt.setEnabled(!1);try{const e=await new Promise(((e,i)=>{this.database.executeSql(t,((t,i)=>e({columnNames:t,values:i})),(e=>i(e)))}));this._queryFinished(t,e.columnNames,e.values)}catch(e){this._appendErrorQueryResult(t,e)}this._prompt.setEnabled(!0),this._prompt.setText(""),this._prompt.focus()}}_queryFinished(e,t,i){const s=h.SortableDataGrid.create(t,i,u`Database Query`),r=e.trim();let a=null;s&&(s.setStriped(!0),s.renderInline(),s.autoSizeColumns(5),a=s.asWidget(),s.setFocusable(!1)),this._appendViewQueryResult(r,a),(r.match(/^create /i)||r.match(/^drop table /i))&&this.dispatchEventToListeners(Tt.SchemaUpdated,this.database)}_appendViewQueryResult(e,t){const i=this._appendQueryResult(e);t?t.show(i):i.remove(),this._scrollResultIntoView()}_appendErrorQueryResult(e,t){const i=this._appendQueryResult(e);i.classList.add("error"),i.appendChild(E.Icon.create("smallicon-error","prompt-icon")),x.createTextChild(i,t),this._scrollResultIntoView()}_scrollResultIntoView(){this._queryResults[this._queryResults.length-1].scrollIntoView(!1),this._promptElement.scrollIntoView(!1)}_appendQueryResult(e){const t=document.createElement("div");t.className="database-user-query",t.tabIndex=-1,f.setAccessibleName(t,u`Query: ${e}`),this._queryResults.push(t),this._updateFocusedItem(),t.appendChild(E.Icon.create("smallicon-user-command","prompt-icon"));const i=document.createElement("span");i.className="database-query-text",i.textContent=e,t.appendChild(i);const s=document.createElement("div");return s.className="database-query-result",t.appendChild(s),this._queryWrapper.appendChild(t),s}}const Tt={SchemaUpdated:Symbol("SchemaUpdated")},Lt=["SELECT ","FROM ","WHERE ","LIMIT ","DELETE FROM ","CREATE ","DROP ","TABLE ","INDEX ","UPDATE ","INSERT INTO ","VALUES ("];var xt=Object.freeze({__proto__:null,DatabaseQueryView:Et,Events:Tt,SQL_BUILT_INS:Lt});class Rt extends v.SimpleView{constructor(i,s){super(e.UIString("Database")),this.database=i,this.tableName=s,this._lastVisibleColumns="",this._columnsMap=new Map,this.element.classList.add("storage-view","table"),this._visibleColumnsSetting=t.Settings.instance().createSetting("databaseTableViewVisibleColumns",{}),this.refreshButton=new b.ToolbarButton(e.UIString("Refresh"),"largeicon-refresh"),this.refreshButton.addEventListener(b.ToolbarButton.Events.Click,this._refreshButtonClicked,this),this._visibleColumnsInput=new b.ToolbarInput(e.UIString("Visible columns"),"",1),this._visibleColumnsInput.addEventListener(b.ToolbarInput.Event.TextChanged,this._onVisibleColumnsChanged,this),this._dataGrid=null}wasShown(){this.update()}async toolbarItems(){return[this.refreshButton,this._visibleColumnsInput]}_escapeTableName(e){return e.replace(/\"/g,'""')}update(){this.database.executeSql('SELECT rowid, * FROM "'+this._escapeTableName(this.tableName)+'"',this._queryFinished.bind(this),this._queryError.bind(this))}_queryFinished(e,t){if(this.detachChildWidgets(),this.element.removeChildren(),this._dataGrid=h.SortableDataGrid.create(e,t,u`Database`),this._visibleColumnsInput.setVisible(Boolean(this._dataGrid)),!this._dataGrid)return this._emptyWidget=new w.EmptyWidget(u`The "${this.tableName}"\ntable is empty.`),void this._emptyWidget.show(this.element);this._dataGrid.setStriped(!0),this._dataGrid.asWidget().show(this.element),this._dataGrid.autoSizeColumns(5),this._columnsMap.clear();for(let t=1;t<e.length;++t)this._columnsMap.set(e[t],String(t));this._lastVisibleColumns="";const i=this._visibleColumnsSetting.get()[this.tableName]||"";this._visibleColumnsInput.setValue(i),this._onVisibleColumnsChanged()}_onVisibleColumnsChanged(){if(!this._dataGrid)return;const e=this._visibleColumnsInput.value(),t=e.split(/[\s,]+/),i=new Set,s=new Set;s.add("0");for(const e of t){const t=this._columnsMap.get(e);void 0!==t&&(i.add(e),s.add(t))}const r=[...i].sort().join(", ");if(0===r.length)for(const e of this._columnsMap.values())s.add(e);if(r===this._lastVisibleColumns)return;const a=this._visibleColumnsSetting.get();a[this.tableName]=e,this._visibleColumnsSetting.set(a),this._dataGrid.setColumnsVisiblity(s),this._lastVisibleColumns=r}_queryError(){this.detachChildWidgets(),this.element.removeChildren();const e=document.createElement("div");e.className="storage-table-error",e.textContent=u`An error occurred trying to\nread the "${this.tableName}" table.`,this.element.appendChild(e)}_refreshButtonClicked(e){this.update()}}var Dt=Object.freeze({__proto__:null,DatabaseTableView:Rt});const Mt=e=>e?u`Yes`:u`No`;class Ot extends O.ThrottledWidget{constructor(e){super(),this._protocolMonitorExperimentEnabled=ne.experiments.isEnabled("protocolMonitor"),this.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this._frame=e,this.contentElement.classList.add("frame-details-container"),this._reportView=new L.ReportView(e.displayName()),this._reportView.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this._reportView.show(this.contentElement),this._reportView.element.classList.add("frame-details-report-container"),this._generalSection=this._reportView.appendSection(u`Document`),this._urlFieldValue=this._generalSection.appendField(u`URL`),this._urlStringElement=this._urlFieldValue.createChild("div","text-ellipsis"),this._unreachableURL=this._generalSection.appendField(u`Unreachable URL`);const t=this._generalSection.appendField(u`Origin`);this._originStringElement=t.createChild("div","text-ellipsis"),this._ownerFieldValue=this._generalSection.appendField(u`Owner Element`),this._adStatus=this._generalSection.appendField(u`Ad Status`),this._isolationSection=this._reportView.appendSection(u`Security & Isolation`),this._secureContext=this._isolationSection.appendField(u`Secure Context`),this._crossOriginIsolatedContext=this._isolationSection.appendField(u`Cross-Origin Isolated`),this._coepPolicy=this._isolationSection.appendField(u`Cross-Origin Embedder Policy`),this._coopPolicy=this._isolationSection.appendField(u`Cross-Origin Opener Policy`),this._apiAvailability=this._reportView.appendSection(u`API availablity`);const i=this._apiAvailability.appendRow(),s=u`Availability of certain APIs depends on the document being cross-origin isolated.`;if(i.appendChild(B.html`<div>${s} ${R.XLink.create("https://web.dev/why-coop-coep/",u`Learn more`)}</div>`),this._apiSharedArrayBuffer=this._apiAvailability.appendField(u`Shared Array Buffers`),this._apiMeasureMemory=this._apiAvailability.appendField(u`Measure Memory`),this._protocolMonitorExperimentEnabled){this._additionalInfo=this._reportView.appendSection(u`Additional Information`),this._additionalInfo.setTitle(u`Additional Information`,u`This additional (debugging) information is shown because the 'Protocol Monitor' experiment is enabled.`);this._additionalInfo.appendField(u`Frame ID`).textContent=e.id}this.update()}async doUpdate(){if(this._urlFieldValue.removeChildren(),this._urlStringElement.textContent=this._frame.url,k.Tooltip.install(this._urlStringElement,this._frame.url),this._urlFieldValue.appendChild(this._urlStringElement),!this._frame.unreachableUrl()){const e=this.uiSourceCodeForFrame(this._frame),t=Ft("mediumicon-sources-panel",u`Click to reveal in Sources panel`,(()=>d.reveal(e)));this._urlFieldValue.appendChild(t)}Ot.maybeAppendLinkToRequest(this._urlFieldValue,this._frame.resourceForURL(this._frame.url)),this._maybeAppendLinkForUnreachableUrl(),this._frame.securityOrigin&&"://"!==this._frame.securityOrigin?(this._originStringElement.textContent=this._frame.securityOrigin,k.Tooltip.install(this._originStringElement,this._frame.securityOrigin),this._generalSection.setFieldVisible(u`Origin`,!0)):this._generalSection.setFieldVisible(u`Origin`,!1),this._updateAdStatus(),this._ownerFieldValue.removeChildren();const e=await async function(e){let t=null;e instanceof j.ResourceTreeFrame?t=e:e&&(t=Y.FrameManager.instance().getFrame(e));if(!t)return null;const i=await t.getOwnerDOMNodeOrDocument();if(!i)return null;const s=Ft("mediumicon-elements-panel",u`Click to reveal in Elements panel`,(()=>d.reveal(i))),r=document.createElement("span");return r.textContent=`<${i.nodeName().toLocaleLowerCase()}>`,s.insertBefore(r,s.firstChild),s.addEventListener("mouseenter",(()=>{t&&t.highlight()})),s.addEventListener("mouseleave",(()=>{J.OverlayModel.hideDOMNodeHighlight()})),s}(this._frame);e&&this._ownerFieldValue.appendChild(e),await this._updateCoopCoepStatus(),this._updateContextStatus(),this._updateApiAvailability()}uiSourceCodeForFrame(e){for(const t of ye.WorkspaceImpl.instance().projects()){const i=we.NetworkProject.getTargetForProject(t);if(i&&i===e.resourceTreeModel().target()){const i=t.uiSourceCodeForURL(e.url);if(i)return i}}return null}static fillCrossOriginPolicy(e,t,i){if(!i)return void(e.textContent="");const s=t(i.value);if(e.textContent=s?i.value:i.reportOnlyValue,!s&&t(i.reportOnlyValue)){const t=document.createElement("span");t.classList.add("inline-comment"),t.textContent="report-only",e.appendChild(t)}const r=s?i.reportingEndpoint:i.reportOnlyReportingEndpoint;if(r){e.createChild("span","inline-name").textContent=u`reporting to`;e.createChild("span").textContent=r}}async _updateCoopCoepStatus(){const e=this._frame.resourceTreeModel().target().model(X.NetworkManager),t=e&&await e.getSecurityIsolationStatus(this._frame.id);if(!t)return;Ot.fillCrossOriginPolicy(this._coepPolicy,(e=>e!==Protocol.Network.CrossOriginEmbedderPolicyValue.None),t.coep),this._isolationSection.setFieldVisible(u`Cross-Origin Embedder Policy`,Boolean(t.coep));Ot.fillCrossOriginPolicy(this._coopPolicy,(e=>e!==Protocol.Network.CrossOriginOpenerPolicyValue.UnsafeNone),t.coop),this._isolationSection.setFieldVisible(u`Cross-Origin Opener Policy`,Boolean(t.coop))}_explanationFromSecureContextType(e){switch(e){case Protocol.Page.SecureContextType.Secure:return null;case Protocol.Page.SecureContextType.SecureLocalhost:return u`Localhost is always a secure context`;case Protocol.Page.SecureContextType.InsecureAncestor:return u`A frame ancestor is an insecure context`;case Protocol.Page.SecureContextType.InsecureScheme:return u`The frame's scheme is insecure`}return null}_updateContextStatus(){if(this._frame.unreachableUrl())return this._isolationSection.setFieldVisible(u`Secure Context`,!1),void this._isolationSection.setFieldVisible(u`Cross-Origin Isolated`,!1);this._isolationSection.setFieldVisible(u`Secure Context`,!0),this._isolationSection.setFieldVisible(u`Cross-Origin Isolated`,!0),this._secureContext.textContent=Mt(this._frame.isSecureContext());const e=this._explanationFromSecureContextType(this._frame.getSecureContextType());if(e){this._secureContext.createChild("span","inline-comment").textContent=e}this._crossOriginIsolatedContext.textContent=Mt(this._frame.isCrossOriginIsolated())}_updateApiAvailability(){const e=this._frame.getGatedAPIFeatures();if(this._apiAvailability.setFieldVisible(u`Shared Array Buffers`,Boolean(e)),!e)return;if(e.includes(Protocol.Page.GatedAPIFeatures.SharedArrayBuffers)){const t=e.includes(Protocol.Page.GatedAPIFeatures.SharedArrayBuffersTransferAllowed);if(this._apiSharedArrayBuffer.textContent=t?u`available, transferable`:u`available, not transferable`,k.Tooltip.install(this._apiSharedArrayBuffer,t?u`SharedArrayBuffer constructor is available and SABs can be transferred via postMessage`:u`SharedArrayBuffer constructor is available but SABs cannot be transferred via postMessage`),!this._frame.isCrossOriginIsolated()){this._apiSharedArrayBuffer.createChild("span","inline-span").textContent=u`⚠️ will require cross-origin isolated context in the future`}}else if(this._apiSharedArrayBuffer.textContent=u`unavailable`,!this._frame.isCrossOriginIsolated()){this._apiSharedArrayBuffer.createChild("span","inline-comment").textContent=u`requires cross-origin isolated context`}const t=this._frame.isCrossOriginIsolated();k.Tooltip.install(this._apiMeasureMemory,t?u`The performance.measureUserAgentSpecificMemory() API is available`:u`The performance.measureUserAgentSpecificMemory() API is not available`),this._apiMeasureMemory.textContent="";const i=t?u`available`:u`unavailable`;this._apiMeasureMemory.appendChild(B.html`<div>${i} ${R.XLink.create("https://web.dev/monitor-total-page-memory-usage/",u`Learn more`)}</div>`)}static maybeAppendLinkToRequest(e,t){if(t&&t.request){const i=t.request,s=Ft("mediumicon-network-panel",u`Click to reveal in Network panel`,(()=>_e.NetworkPanel.selectAndShowRequest(i,pe.Tabs.Headers)));e.appendChild(s)}}_maybeAppendLinkForUnreachableUrl(){if(!this._frame.unreachableUrl())return void this._generalSection.setFieldVisible(u`Unreachable URL`,!1);this._generalSection.setFieldVisible(u`Unreachable URL`,!0),this._unreachableURL.textContent=this._frame.unreachableUrl();const e=s.ParsedURL.fromString(this._frame.unreachableUrl());if(!e)return;const t=Ft("mediumicon-network-panel",u`Click to reveal in Network panel (might require page reload)`,(()=>{_e.NetworkPanel.revealAndFilter([{filterType:"domain",filterValue:e.domain()},{filterType:null,filterValue:e.path}])}));this._unreachableURL.appendChild(t)}_updateAdStatus(){switch(this._frame.adFrameType()){case Protocol.Page.AdFrameType.Root:this._generalSection.setFieldVisible(u`Ad Status`,!0),this._adStatus.textContent=u`root`,k.Tooltip.install(this._adStatus,u`This frame has been identified as the root frame of an ad`);break;case Protocol.Page.AdFrameType.Child:this._generalSection.setFieldVisible(u`Ad Status`,!0),this._adStatus.textContent=u`child`,k.Tooltip.install(this._adStatus,u`This frame has been identified as the a child frame of an ad`);break;default:this._generalSection.setFieldVisible(u`Ad Status`,!1)}}}function Ft(e,t,i){const s=E.Icon.create(e,"icon-link devtools-link"),r=document.createElement("span");return k.Tooltip.install(r,t),r.classList.add("devtools-link"),r.tabIndex=0,r.appendChild(s),r.addEventListener("click",(e=>{e.consume(!0),i()})),r.addEventListener("keydown",(e=>{"Enter"===e.key&&(e.consume(!0),i())})),r}var Bt=Object.freeze({__proto__:null,FrameDetailsView:Ot});class Vt extends C.VBox{constructor(e,t){super(),this._model=e;const i=t?t.databaseId.name:u`Loading…`;this._database,this.registerRequiredCSS("resources/indexedDBViews.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("indexed-db-container"),this._reportView=new L.ReportView(i),this._reportView.show(this.contentElement),this._reportView.registerRequiredCSS("resources/indexedDBViews.css",{enableLegacyPatching:!1}),this._reportView.element.classList.add("indexed-db-header");const s=this._reportView.appendSection("");this._securityOriginElement=s.appendField(u`Security origin`),this._versionElement=s.appendField(u`Version`),this._objectStoreCountElement=s.appendField(u`Object stores`);const r=this._reportView.appendSection("").appendRow();this._clearButton=x.createTextButton(u`Delete database`,(()=>this._deleteDatabase()),u`Delete database`),r.appendChild(this._clearButton),this._refreshButton=x.createTextButton(u`Refresh database`,(()=>this._refreshDatabaseButtonClicked()),u`Refresh database`),r.appendChild(this._refreshButton),t&&this.update(t)}_refreshDatabase(){this._securityOriginElement.textContent=this._database.databaseId.securityOrigin,this._versionElement&&(this._versionElement.textContent=this._database.version.toString()),this._objectStoreCountElement.textContent=this._database.objectStores.size.toString()}_refreshDatabaseButtonClicked(){this._model.refreshDatabase(this._database.databaseId)}update(e){this._database=e,this._reportView.setTitle(this._database.databaseId.name),this._refreshDatabase(),this._updatedForTests()}_updatedForTests(){}async _deleteDatabase(){await x.ConfirmDialog.show(e.UIString('Please confirm delete of "%s" database.',this._database.databaseId.name),this.element)&&this._model.deleteDatabase(this._database.databaseId)}}class Pt extends v.SimpleView{constructor(t,i,s,r,a){super(e.UIString("IDB")),this.registerRequiredCSS("resources/indexedDBViews.css",{enableLegacyPatching:!1}),this._model=t,this._databaseId=i,this._isIndex=Boolean(r),this._refreshObjectStoreCallback=a,this.element.classList.add("indexed-db-data-view","storage-view"),this._refreshButton=new b.ToolbarButton(e.UIString("Refresh"),"largeicon-refresh"),this._refreshButton.addEventListener(b.ToolbarButton.Events.Click,this._refreshButtonClicked,this),this._deleteSelectedButton=new b.ToolbarButton(e.UIString("Delete selected"),"largeicon-delete"),this._deleteSelectedButton.addEventListener(b.ToolbarButton.Events.Click,(e=>{this._deleteButtonClicked(null)})),this._clearButton=new b.ToolbarButton(e.UIString("Clear object store"),"largeicon-clear"),this._clearButton.addEventListener(b.ToolbarButton.Events.Click,(e=>{this._clearButtonClicked(e)}),this),this._needsRefresh=new b.ToolbarItem(x.createIconLabel(e.UIString("Data may be stale"),"smallicon-warning")),this._needsRefresh.setVisible(!1),this._needsRefresh.setTitle(e.UIString("Some entries may have been modified")),this._clearingObjectStore=!1,this._createEditorToolbar(),this._pageSize=50,this._skipCount=0,this.update(s,r),this._entries=[],this._objectStore,this._index,this._keyInput,this._dataGrid,this._lastPageSize,this._lastSkipCount,this._pageBackButton,this._pageForwardButton}_createDataGrid(){const e=this._isIndex&&this._index?this._index.keyPath:this._objectStore.keyPath,t=[],i={title:void 0,titleDOMFragment:void 0,sortable:!1,sort:void 0,align:void 0,width:void 0,fixedWidth:void 0,editable:void 0,nonSelectable:void 0,longText:void 0,disclosure:void 0,weight:void 0,allowInSortByEvenWhenHidden:void 0,dataType:void 0,defaultWeight:void 0};t.push({...i,id:"number",title:u`#`,sortable:!1,width:"50px"}),t.push({...i,id:"key",titleDOMFragment:this._keyColumnHeaderFragment(u`Key`,e),sortable:!1}),this._isIndex&&t.push({...i,id:"primaryKey",titleDOMFragment:this._keyColumnHeaderFragment(u`Primary key`,this._objectStore.keyPath),sortable:!1});const s=u`Value`;t.push({...i,id:"value",title:s,sortable:!1});const r=new c.DataGridImpl({displayName:u`Indexed DB`,columns:t,deleteCallback:this._deleteButtonClicked.bind(this),refreshCallback:this._updateData.bind(this,!0),editCallback:void 0});return r.setStriped(!0),r.addEventListener(c.Events.SelectedNode,(e=>this._updateToolbarEnablement()),this),r}_keyColumnHeaderFragment(t,i){const s=document.createDocumentFragment();if(x.createTextChild(s,t),null===i)return s;if(x.createTextChild(s," ("+e.UIString("Key path: ")),Array.isArray(i)){x.createTextChild(s,"[");for(let e=0;e<i.length;++e)0!==e&&x.createTextChild(s,", "),s.appendChild(this._keyPathStringFragment(i[e]));x.createTextChild(s,"]")}else{const e=i;s.appendChild(this._keyPathStringFragment(e))}return x.createTextChild(s,")"),s}_keyPathStringFragment(e){const t=document.createDocumentFragment();x.createTextChild(t,'"');return t.createChild("span","source-code indexed-db-key-path").textContent=e,x.createTextChild(t,'"'),t}_createEditorToolbar(){const t=new b.Toolbar("data-view-toolbar",this.element);t.appendToolbarItem(this._refreshButton),t.appendToolbarItem(new b.ToolbarSeparator),this._pageBackButton=new b.ToolbarButton(e.UIString("Show previous page"),"largeicon-play-back"),this._pageBackButton.addEventListener(b.ToolbarButton.Events.Click,this._pageBackButtonClicked,this),t.appendToolbarItem(this._pageBackButton),this._pageForwardButton=new b.ToolbarButton(e.UIString("Show next page"),"largeicon-play"),this._pageForwardButton.setEnabled(!1),this._pageForwardButton.addEventListener(b.ToolbarButton.Events.Click,this._pageForwardButtonClicked,this),t.appendToolbarItem(this._pageForwardButton),this._keyInput=new b.ToolbarInput(u`Start from key`,"",.5),this._keyInput.addEventListener(b.ToolbarInput.Event.TextChanged,this._updateData.bind(this,!1)),t.appendToolbarItem(this._keyInput),t.appendToolbarItem(new b.ToolbarSeparator),t.appendToolbarItem(this._clearButton),t.appendToolbarItem(this._deleteSelectedButton),t.appendToolbarItem(this._needsRefresh)}_pageBackButtonClicked(e){this._skipCount=Math.max(0,this._skipCount-this._pageSize),this._updateData(!1)}_pageForwardButtonClicked(e){this._skipCount=this._skipCount+this._pageSize,this._updateData(!1)}_populateContextMenu(e,t){const i=t;i.valueObjectPresentation&&(e.revealSection().appendItem(u`Expand Recursively`,(()=>{i.valueObjectPresentation&&i.valueObjectPresentation.objectTreeElement().expandRecursively()})),e.revealSection().appendItem(u`Collapse`,(()=>{i.valueObjectPresentation&&i.valueObjectPresentation.objectTreeElement().collapse()})))}refreshData(){this._updateData(!0)}update(e,t){this._objectStore=e,this._index=t,this._dataGrid&&this._dataGrid.asWidget().detach(),this._dataGrid=this._createDataGrid(),this._dataGrid.setRowContextMenuCallback(this._populateContextMenu.bind(this)),this._dataGrid.asWidget().show(this.element),this._skipCount=0,this._updateData(!0)}_parseKey(e){let t;try{t=JSON.parse(e)}catch(i){t=e}return t}_updateData(e){const t=this._parseKey(this._keyInput.value()),i=this._pageSize;let s=this._skipCount,r=this._dataGrid.selectedNode?this._dataGrid.selectedNode.data.number:0;if(r=Math.max(r,this._skipCount),this._clearButton.setEnabled(!this._isIndex),!e&&this._lastKey===t&&this._lastPageSize===i&&this._lastSkipCount===s)return;function a(e,t){this.clear(),this._entries=e;let i=null;for(let t=0;t<e.length;++t){const a={};a.number=t+s,a.key=e[t].key,a.primaryKey=e[t].primaryKey,a.value=e[t].value;const n=new Ut(a);this._dataGrid.rootNode().appendChild(n),a.number<=r&&(i=n)}i&&i.select(),this._pageBackButton.setEnabled(Boolean(s)),this._pageForwardButton.setEnabled(t),this._needsRefresh.setVisible(!1),this._updateToolbarEnablement(),this._updatedDataForTests()}this._lastKey===t&&this._lastPageSize===i||(s=0,this._skipCount=0),this._lastKey=t,this._lastPageSize=i,this._lastSkipCount=s;const n=t?window.IDBKeyRange.lowerBound(t):null;this._isIndex&&this._index?this._model.loadIndexData(this._databaseId,this._objectStore.name,this._index.name,n,s,i,a.bind(this)):this._model.loadObjectStoreData(this._databaseId,this._objectStore.name,n,s,i,a.bind(this)),this._model.getMetadata(this._databaseId,this._objectStore).then(this._updateSummaryBar.bind(this))}_updateSummaryBar(e){if(this._summaryBarElement||(this._summaryBarElement=this.element.createChild("div","object-store-summary-bar")),this._summaryBarElement.removeChildren(),!e)return;const t=this._summaryBarElement.createChild("span");t.textContent=u`Total entries: ${String(e.entriesCount)}`,this._objectStore.autoIncrement&&(t.textContent+=" ❘ ",t.textContent+=u`Key generator value: ${String(e.keyGeneratorValue)}`)}_updatedDataForTests(){}_refreshButtonClicked(e){this._updateData(!0)}async _clearButtonClicked(e){this._clearButton.setEnabled(!1),this._clearingObjectStore=!0,await this._model.clearObjectStore(this._databaseId,this._objectStore.name),this._clearingObjectStore=!1,this._clearButton.setEnabled(!0),this._updateData(!0)}markNeedsRefresh(){this._clearingObjectStore||this._needsRefresh.setVisible(!0)}async _deleteButtonClicked(e){if(!e&&!(e=this._dataGrid.selectedNode))return;const t=(this._isIndex?e.data.primaryKey:e.data.key).value;await this._model.deleteEntries(this._databaseId,this._objectStore.name,window.IDBKeyRange.only(t)),this._refreshObjectStoreCallback()}clear(){this._dataGrid.rootNode().removeChildren(),this._entries=[]}_updateToolbarEnablement(){const e=!this._dataGrid||0===this._dataGrid.rootNode().children.length;this._deleteSelectedButton.setEnabled(!e&&null!==this._dataGrid.selectedNode)}}class Ut extends c.DataGridNode{constructor(e){super(e,!1),this.selectable=!0,this.valueObjectPresentation=null}createCell(e){const t=super.createCell(e),i=this.data[e];switch(e){case"value":{t.removeChildren();const e=Ce.ObjectPropertiesSection.defaultObjectPropertiesSection(i,void 0,!0,!0);t.appendChild(e.element),this.valueObjectPresentation=e;break}case"key":case"primaryKey":{t.removeChildren();const e=Ce.ObjectPropertiesSection.defaultObjectPresentation(i,void 0,!0,!0);t.appendChild(e);break}}return t}}var Nt=Object.freeze({__proto__:null,IDBDatabaseView:Vt,IDBDataView:Pt,IDBDataGridNode:Ut});async function At(e){let t=null;if(e instanceof j.ResourceTreeFrame?t=e:e&&(t=Y.FrameManager.instance().getFrame(e)),!t)return null;const i=await t.getOwnerDOMNodeOrDocument();if(!i)return null;const s=function(e,t,i){const s=E.Icon.create(e,"icon-link devtools-link"),r=document.createElement("span");return k.Tooltip.install(r,t),r.classList.add("devtools-link"),r.tabIndex=0,r.appendChild(s),r.addEventListener("click",(e=>{e.consume(!0),i()})),r.addEventListener("keydown",(e=>{"Enter"===e.key&&(e.consume(!0),i())})),r}("mediumicon-elements-panel",u`Click to reveal in Elements panel`,(()=>d.reveal(i))),r=document.createElement("span");return r.textContent=`<${i.nodeName().toLocaleLowerCase()}>`,s.insertBefore(r,s.firstChild),s.addEventListener("mouseenter",(()=>{t&&t.highlight()})),s.addEventListener("mouseleave",(()=>{J.OverlayModel.hideDOMNodeHighlight()})),s}class Wt extends O.ThrottledWidget{constructor(e,t){super(),this._targetInfo=e,this._isWindowClosed=t,this.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("frame-details-container"),this._reportView=new L.ReportView(this.buildTitle()),this._reportView.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this._reportView.show(this.contentElement),this._reportView.element.classList.add("frame-details-report-container"),this._documentSection=this._reportView.appendSection(u`Document`),this._URLFieldValue=this._documentSection.appendField(u`URL`),this._securitySection=this._reportView.appendSection(u`Security`),this._openerElementField=this._securitySection.appendField(u`Opener Frame`),this._securitySection.setFieldVisible(u`Opener Frame`,!1),this._hasDOMAccessValue=this._securitySection.appendField(u`Access to opener`),k.Tooltip.install(this._hasDOMAccessValue,u`Shows whether the opened window is able to access its opener and vice versa`),this.update()}async doUpdate(){this._reportView.setTitle(this.buildTitle()),this._URLFieldValue.textContent=this._targetInfo.url,this._hasDOMAccessValue.textContent=this._targetInfo.canAccessOpener?u`Yes`:u`No`,this.maybeDisplayOpenerFrame()}async maybeDisplayOpenerFrame(){this._openerElementField.removeChildren();const e=await At(this._targetInfo.openerFrameId);if(e)return this._openerElementField.append(e),void this._securitySection.setFieldVisible(u`Opener Frame`,!0);this._securitySection.setFieldVisible(u`Opener Frame`,!1)}buildTitle(){let e=this._targetInfo.title||u`Window without title`;return this._isWindowClosed&&(e+=` (${u`closed`})`),e}setIsWindowClosed(e){this._isWindowClosed=e}setTargetInfo(e){this._targetInfo=e}}class qt extends O.ThrottledWidget{constructor(e){super(),this._targetInfo=e,this.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this.contentElement.classList.add("frame-details-container"),this._reportView=new L.ReportView(this._targetInfo.title||this._targetInfo.url||u`worker`),this._reportView.registerRequiredCSS("resources/frameDetailsReportView.css",{enableLegacyPatching:!1}),this._reportView.show(this.contentElement),this._reportView.element.classList.add("frame-details-report-container"),this._documentSection=this._reportView.appendSection(u`Document`),this._URLFieldValue=this._documentSection.appendField(u`URL`),this._URLFieldValue.textContent=this._targetInfo.url;this._documentSection.appendField(u`Type`).textContent=this.workerTypeToString(this._targetInfo.type),this._isolationSection=this._reportView.appendSection(u`Security & Isolation`),this._coepPolicy=this._isolationSection.appendField(u`Cross-Origin Embedder Policy`),this.update()}workerTypeToString(e){return"worker"===e?u`Web Worker`:"service_worker"===e?u`Service Worker`:u`Unknown`}async _updateCoopCoepStatus(){const e=q.TargetManager.instance().targetById(this._targetInfo.targetId);if(!e)return;const t=e.model(X.NetworkManager),i=t&&await t.getSecurityIsolationStatus("");if(!i)return;this._fillCrossOriginPolicy(this._coepPolicy,(e=>e!==Protocol.Network.CrossOriginEmbedderPolicyValue.None),i.coep)}_fillCrossOriginPolicy(e,t,i){if(!i)return void(e.textContent="");const s=t(i.value);if(e.textContent=s?i.value:i.reportOnlyValue,!s&&t(i.reportOnlyValue)){const t=document.createElement("span");t.classList.add("inline-comment"),t.textContent="report-only",e.appendChild(t)}const r=s?i.reportingEndpoint:i.reportOnlyReportingEndpoint;if(r){e.createChild("span","inline-name").textContent=u`reporting to`;e.createChild("span").textContent=r}}async doUpdate(){await this._updateCoopCoepStatus()}}var jt=Object.freeze({__proto__:null,OpenedWindowDetailsView:Wt,WorkerDetailsView:qt});class Gt{static calculateServiceWorkerUpdateRanges(e){function t(e,t){t.start<Number.MAX_VALUE&&t.start<=t.end&&e.push(t)}function i(e){let i=e.currentState,s=0,r=0,a=0,n=0;const o=i.status;if(o===Protocol.ServiceWorker.ServiceWorkerVersionStatus.New)return[];for(;i;)i.status===Protocol.ServiceWorker.ServiceWorkerVersionStatus.Activated?s=i.last_updated_timestamp:i.status===Protocol.ServiceWorker.ServiceWorkerVersionStatus.Activating?(0===s&&(s=i.last_updated_timestamp),r=i.last_updated_timestamp):i.status===Protocol.ServiceWorker.ServiceWorkerVersionStatus.Installed?a=i.last_updated_timestamp:i.status===Protocol.ServiceWorker.ServiceWorkerVersionStatus.Installing&&(0===a&&(a=i.last_updated_timestamp),n=i.last_updated_timestamp),i=i.previousState;const d=[];return function(e,i,s,r,a,n,o){t(e,{id:i,phase:"Install",start:s,end:r}),o!==Protocol.ServiceWorker.ServiceWorkerVersionStatus.Activating&&o!==Protocol.ServiceWorker.ServiceWorkerVersionStatus.Activated&&o!==Protocol.ServiceWorker.ServiceWorkerVersionStatus.Redundant||(t(e,{id:i,phase:"Wait",start:r,end:a}),t(e,{id:i,phase:"Activate",start:a,end:n}))}(d,e.id,n,a,r,s,o),d}const s=e.versionsByMode(),r=[$.ServiceWorkerVersion.Modes.Active,$.ServiceWorkerVersion.Modes.Waiting,$.ServiceWorkerVersion.Modes.Installing,$.ServiceWorkerVersion.Modes.Redundant];for(const e of r){const t=s.get(e);if(t){return i(t)}}return[]}static createTimingTable(e){const t=document.createElement("table");t.classList.add("service-worker-update-timing-table"),P.appendStyle(t,"resources/serviceWorkerUpdateCycleView.css");const i=this.calculateServiceWorkerUpdateRanges(e);return this.updateTimingTable(t,i),t}static createTimingTableHead(e){const t=e.createChild("tr","service-worker-update-timing-table-header");x.createTextChild(t.createChild("td"),u`Version`),x.createTextChild(t.createChild("td"),u`Update Activity`),x.createTextChild(t.createChild("td"),u`Timeline`)}static removeRows(e){const t=e.getElementsByTagName("tr");for(;t[0];)t[0].parentNode&&t[0].parentNode.removeChild(t[0])}static updateTimingTable(e,t){this.removeRows(e),this.createTimingTableHead(e);const i=t;if(0===i.length)return;const s=i.map((e=>e.start)),r=i.map((e=>e.end)),a=s.reduce(((e,t)=>Math.min(e,t))),n=r.reduce(((e,t)=>Math.max(e,t))),o=100/(n-a);for(const t of i){const i=t.phase,s=o*(t.start-a),r=o*(n-t.end),d=e.createChild("tr"),l=d.createChild("td");x.createTextChild(l,"#"+t.id),l.classList.add("service-worker-update-timing-bar-clickable"),l.setAttribute("tabindex","0");const c=d.createChild("td");x.createTextChild(c,i),c.setAttribute("role","switch"),f.setChecked(c,!1),this.constructUpdateDetails(e,d,t);const h=d.createChild("td").createChild("div","service-worker-update-timing-row").createChild("span","service-worker-update-timing-bar "+i.toLowerCase());h.style.left=s+"%",h.style.right=r+"%",h.textContent=""}}static constructUpdateDetails(e,t,i){const s=e.createChild("tr","service-worker-update-timing-bar-details");s.classList.add("service-worker-update-timing-bar-details-collapsed"),self.onInvokeElement(t,(e=>this.onToggleUpdateDetails(s,e)));const r=new S.TreeOutlineInShadow;s.appendChild(r.element);const a=document.createElementWithClass("div","service-worker-update-details-treeitem"),n=new Date(i.start).toISOString();a.textContent=u`Start time: ${n}`;const o=new S.TreeElement(a);r.appendChild(o);const d=document.createElementWithClass("div","service-worker-update-details-treeitem"),l=new Date(i.end).toISOString();d.textContent=u`End time: ${l}`;const c=new S.TreeElement(d);r.appendChild(c)}static onToggleUpdateDetails(e,t){if(!t.target)return;const i=t.target;if(i.classList.contains("service-worker-update-timing-bar-clickable")){e.classList.toggle("service-worker-update-timing-bar-details-collapsed"),e.classList.toggle("service-worker-update-timing-bar-details-expanded");const t="true"===i.getAttribute("aria-checked");f.setChecked(i,!t)}}static refresh(e,t){const i=this.calculateServiceWorkerUpdateRanges(t);this.updateTimingTable(e,i)}}var zt=Object.freeze({__proto__:null,ServiceWorkerUpdateCycleHelper:Gt});let $t=!1;class Ht extends C.VBox{constructor(){super(!0),this.registerRequiredCSS("resources/serviceWorkersView.css",{enableLegacyPatching:!1}),this._currentWorkersView=new L.ReportView(e.UIString("Service Workers")),this._currentWorkersView.setBodyScrollable(!1),this.contentElement.classList.add("service-worker-list"),this._currentWorkersView.show(this.contentElement),this._currentWorkersView.element.classList.add("service-workers-this-origin"),this._toolbar=this._currentWorkersView.createToolbar(),this._toolbar.makeWrappable(!0),this._sections=new Map,this._manager=null,this._securityOriginManager=null,this._sectionToRegistration=new WeakMap;const i=this.contentElement.createChild("div","service-workers-other-origin"),s=new L.ReportView;s.setHeaderVisible(!1),s.show(i);const r=s.appendSection(e.UIString("Service workers from other origins")).appendRow(),a=B.html`<a class="devtools-link" role="link" tabindex="0" href="chrome://serviceworker-internals" target="_blank" style="display: inline; cursor: pointer;">See all registrations</a>`;self.onInvokeElement(a,(e=>{const t=q.TargetManager.instance().mainTarget();t&&t.targetAgent().invoke_createTarget({url:"chrome://serviceworker-internals?devtools"}),e.consume(!0)})),r.appendChild(a),this._toolbar.appendToolbarItem(ke.throttlingManager().createOfflineToolbarCheckbox());const n=t.Settings.instance().createSetting("serviceWorkerUpdateOnReload",!1);n.setTitle(e.UIString("Update on reload"));const o=new b.ToolbarSettingCheckbox(n,u`On page reload, force the service worker to update, and activate it`);this._toolbar.appendToolbarItem(o);const d=t.Settings.instance().createSetting("bypassServiceWorker",!1);d.setTitle(e.UIString("Bypass for network"));const l=new b.ToolbarSettingCheckbox(d,u`Bypass the service worker and load resources from the network`);this._toolbar.appendToolbarItem(l),this._eventListeners=new Map,q.TargetManager.instance().observeModels($.ServiceWorkerManager,this),this._updateListVisibility();document.body.addEventListener(N.Events.DrawerChange,(e=>{const t=e.detail&&e.detail.isDrawerOpen;if(this._manager&&!t){const{serviceWorkerNetworkRequestsPanelStatus:{isOpen:e,openedAt:t}}=this._manager;if(e){const e=U.ViewManager.instance().locationNameForViewId("network");U.ViewManager.instance().showViewInLocation("network",e,!1),_e.NetworkPanel.revealAndFilter([]);Date.now()-t<2e3&&se.actionTaken(re.Action.ServiceWorkerNetworkRequestClosedQuickly),this._manager.serviceWorkerNetworkRequestsPanelStatus={isOpen:!1,openedAt:0}}}}))}modelAdded(e){if(!this._manager){this._manager=e,this._securityOriginManager=e.target().model(H.SecurityOriginManager);for(const e of this._manager.registrations().values())this._updateRegistration(e);this._eventListeners.set(e,[this._manager.addEventListener($.Events.RegistrationUpdated,this._registrationUpdated,this),this._manager.addEventListener($.Events.RegistrationDeleted,this._registrationDeleted,this),this._securityOriginManager.addEventListener(H.Events.SecurityOriginAdded,this._updateSectionVisibility,this),this._securityOriginManager.addEventListener(H.Events.SecurityOriginRemoved,this._updateSectionVisibility,this)])}}modelRemoved(e){this._manager&&this._manager===e&&(a.EventTarget.removeEventListeners(this._eventListeners.get(e)||[]),this._eventListeners.delete(e),this._manager=null,this._securityOriginManager=null)}_getTimeStamp(e){const t=e.versionsByMode();let i=0;const s=t.get($.ServiceWorkerVersion.Modes.Active),r=t.get($.ServiceWorkerVersion.Modes.Installing),a=t.get($.ServiceWorkerVersion.Modes.Waiting),n=t.get($.ServiceWorkerVersion.Modes.Redundant);return s?i=s.scriptResponseTime:a?i=a.scriptResponseTime:r?i=r.scriptResponseTime:n&&(i=n.scriptResponseTime),i||0}_updateSectionVisibility(){let e=!1;const t=[];for(const i of this._sections.values()){const s=this._getReportViewForOrigin(i._registration.securityOrigin);e=e||s===this._currentWorkersView,i._section.parentWidget()!==s&&t.push(i)}for(const e of t){const t=e._registration;this._removeRegistrationFromList(t),this._updateRegistration(t,!0)}this._currentWorkersView.sortSections(((e,t)=>{const i=this._sectionToRegistration.get(e),s=this._sectionToRegistration.get(t),r=i?this._getTimeStamp(i):0;return(s?this._getTimeStamp(s):0)-r}));for(const e of this._sections.values())e._section.parentWidget()===this._currentWorkersView||this._isRegistrationVisible(e._registration)?e._section.showWidget():e._section.hideWidget();this.contentElement.classList.toggle("service-worker-has-current",Boolean(e)),this._updateListVisibility()}_registrationUpdated(e){const t=e.data;this._updateRegistration(t),this._gcRegistrations()}_gcRegistrations(){if(!this._manager||!this._securityOriginManager)return;let e=!1;const t=new Set(this._securityOriginManager.securityOrigins());for(const i of this._manager.registrations().values())if((t.has(i.securityOrigin)||this._isRegistrationVisible(i))&&!i.canBeRemoved()){e=!0;break}if(e)for(const e of this._manager.registrations().values()){!(t.has(e.securityOrigin)||this._isRegistrationVisible(e))&&e.canBeRemoved()&&this._removeRegistrationFromList(e)}}_getReportViewForOrigin(e){return this._securityOriginManager&&(this._securityOriginManager.securityOrigins().includes(e)||this._securityOriginManager.unreachableMainSecurityOrigin()===e)?this._currentWorkersView:null}_updateRegistration(e,t){let i=this._sections.get(e);if(!i){const t=e.scopeURL,s=this._getReportViewForOrigin(e.securityOrigin);if(!s)return;const r=s.appendSection(t);r.setUiGroupTitle(u`Service worker for ${t}`),this._sectionToRegistration.set(r,e),i=new Kt(this._manager,r,e),this._sections.set(e,i)}t||(this._updateSectionVisibility(),i._scheduleUpdate())}_registrationDeleted(e){const t=e.data;this._removeRegistrationFromList(t)}_removeRegistrationFromList(e){const t=this._sections.get(e);t&&t._section.detach(),this._sections.delete(e),this._updateSectionVisibility()}_isRegistrationVisible(e){return!e.scopeURL}_updateListVisibility(){this.contentElement.classList.toggle("service-worker-list-empty",0===this._sections.size)}}class Kt{constructor(s,r,a){this._manager=s,this._section=r,this._registration=a,this._fingerprint=null,this._pushNotificationDataSetting=t.Settings.instance().createLocalSetting("pushData",e.UIString("Test push message from DevTools.")),this._syncTagNameSetting=t.Settings.instance().createLocalSetting("syncTagName","test-tag-from-devtools"),this._periodicSyncTagNameSetting=t.Settings.instance().createLocalSetting("periodicSyncTagName","test-tag-from-devtools"),this._toolbar=r.createToolbar(),this._toolbar.renderAsLinks(),this._updateCycleElement=Gt.createTimingTable(a),this._networkRequests=new b.ToolbarButton(e.UIString("Network requests"),void 0,e.UIString("Network requests")),this._networkRequests.addEventListener(b.ToolbarButton.Events.Click,this._networkRequestsClicked,this),this._toolbar.appendToolbarItem(this._networkRequests),this._updateButton=new b.ToolbarButton(e.UIString("Update"),void 0,e.UIString("Update")),this._updateButton.addEventListener(b.ToolbarButton.Events.Click,this._updateButtonClicked,this),this._toolbar.appendToolbarItem(this._updateButton),this._deleteButton=new b.ToolbarButton(e.UIString("Unregister service worker"),void 0,e.UIString("Unregister")),this._deleteButton.addEventListener(b.ToolbarButton.Events.Click,this._unregisterButtonClicked,this),this._toolbar.appendToolbarItem(this._deleteButton),this._sourceField=this._wrapWidget(this._section.appendField(e.UIString("Source"))),this._statusField=this._wrapWidget(this._section.appendField(e.UIString("Status"))),this._clientsField=this._wrapWidget(this._section.appendField(e.UIString("Clients"))),this._createSyncNotificationField(e.UIString("Push"),this._pushNotificationDataSetting.get(),e.UIString("Push data"),this._push.bind(this)),this._createSyncNotificationField(e.UIString("Sync"),this._syncTagNameSetting.get(),e.UIString("Sync tag"),this._sync.bind(this)),this._createSyncNotificationField(u`Periodic Sync`,this._periodicSyncTagNameSetting.get(),u`Periodic Sync tag`,(e=>this._periodicSync(e))),this._createUpdateCycleField(),this._linkifier=new ge.Linkifier,this._clientInfoCache=new Map,this._throttler=new i.Throttler(500)}_createSyncNotificationField(e,t,i,s){const r=this._wrapWidget(this._section.appendField(e)).createChild("form","service-worker-editor-with-button"),a=x.createInput("source-code service-worker-notification-editor");r.appendChild(a);const n=x.createTextButton(e);n.type="submit",r.appendChild(n),a.value=t,a.placeholder=i,f.setAccessibleName(a,e),r.addEventListener("submit",(e=>{s(a.value||""),e.consume(!0)}))}_scheduleUpdate(){$t?this._update():this._throttler.schedule(this._update.bind(this))}_targetForVersionId(e){const t=this._manager.findVersion(e);return t&&t.targetId?q.TargetManager.instance().targetById(t.targetId):null}_addVersion(e,t,i){const s=e.createChild("div","service-worker-version");s.createChild("div",t);const r=s.createChild("span","service-worker-version-string");return r.textContent=i,f.markAsAlert(r),s}_updateClientsField(t){this._clientsField.removeChildren(),this._section.setFieldVisible(e.UIString("Clients"),Boolean(t.controlledClients.length));for(const e of t.controlledClients){const t=this._clientsField.createChild("div","service-worker-client");this._clientInfoCache.has(e)&&this._updateClientInfo(t,this._clientInfoCache.get(e)),this._manager.target().targetAgent().invoke_getTargetInfo({targetId:e}).then(this._onClientInfo.bind(this,t))}}_updateSourceField(t){this._sourceField.removeChildren();const i=s.ParsedURL.extractName(t.scriptURL),r=this._sourceField.createChild("div","report-field-value-filename"),a=ge.Linkifier.linkifyURL(t.scriptURL,{text:i});if(a.tabIndex=0,r.appendChild(a),this._registration.errors.length){const e=x.createIconLabel(String(this._registration.errors.length),"smallicon-error");e.classList.add("devtools-link","link"),e.tabIndex=0,f.setAccessibleName(e,u`${this._registration.errors.length} registration errors`),self.onInvokeElement(e,(()=>l.Console.instance().show())),r.appendChild(e)}void 0!==t.scriptResponseTime&&(this._sourceField.createChild("div","report-field-value-subtitle").textContent=e.UIString("Received %s",new Date(1e3*t.scriptResponseTime).toLocaleString()))}_update(){const t=this._registration.fingerprint();if(t===this._fingerprint)return Promise.resolve();this._fingerprint=t,this._toolbar.setEnabled(!this._registration.isDeleted);const i=this._registration.versionsByMode(),s=this._registration.scopeURL,r=this._registration.isDeleted?e.UIString("%s - deleted",s):s;this._section.setTitle(r);const a=i.get($.ServiceWorkerVersion.Modes.Active),n=i.get($.ServiceWorkerVersion.Modes.Waiting),o=i.get($.ServiceWorkerVersion.Modes.Installing),d=i.get($.ServiceWorkerVersion.Modes.Redundant);this._statusField.removeChildren();const l=this._statusField.createChild("div","service-worker-version-stack");if(l.createChild("div","service-worker-version-stack-bar"),a){this._updateSourceField(a);const t=$.ServiceWorkerVersion.RunningStatus[a.currentState.runningStatus],i=this._addVersion(l,"service-worker-active-circle",u`#${a.id} activated and is ${t}`);a.isRunning()||a.isStarting()?(this._createLink(i,e.UIString("stop"),this._stopButtonClicked.bind(this,a.id)),this._targetForVersionId(a.id)||this._createLink(i,e.UIString("inspect"),this._inspectButtonClicked.bind(this,a.id))):a.isStartable()&&this._createLink(i,e.UIString("start"),this._startButtonClicked.bind(this)),this._updateClientsField(a)}else d&&(this._updateSourceField(d),this._addVersion(l,"service-worker-redundant-circle",e.UIString("#%s is redundant",d.id)),this._updateClientsField(d));if(n){const t=this._addVersion(l,"service-worker-waiting-circle",e.UIString("#%s waiting to activate",n.id));this._createLink(t,e.UIString("skipWaiting"),this._skipButtonClicked.bind(this)),void 0!==n.scriptResponseTime&&(t.createChild("div","service-worker-subtitle").textContent=e.UIString("Received %s",new Date(1e3*n.scriptResponseTime).toLocaleString())),this._targetForVersionId(n.id)||!n.isRunning()&&!n.isStarting()||this._createLink(t,e.UIString("inspect"),this._inspectButtonClicked.bind(this,n.id))}if(o){const t=this._addVersion(l,"service-worker-installing-circle",e.UIString("#%s trying to install",o.id));void 0!==o.scriptResponseTime&&(t.createChild("div","service-worker-subtitle").textContent=e.UIString("Received %s",new Date(1e3*o.scriptResponseTime).toLocaleString())),this._targetForVersionId(o.id)||!o.isRunning()&&!o.isStarting()||this._createLink(t,e.UIString("inspect"),this._inspectButtonClicked.bind(this,o.id))}return Gt.refresh(this._updateCycleElement,this._registration),Promise.resolve()}_createLink(e,t,i,s,r){const a=document.createElement("button");return s&&(a.className=s),a.classList.add("link","devtools-link"),a.textContent=t,a.tabIndex=0,a.addEventListener("click",i,r),e.appendChild(a),a}_unregisterButtonClicked(e){this._manager.deleteRegistration(this._registration.id)}_createUpdateCycleField(){this._updateCycleForm=this._wrapWidget(this._section.appendField(u`Update Cycle`)).createChild("form"),this._updateCycleForm.appendChild(this._updateCycleElement)}_updateButtonClicked(e){this._manager.updateRegistration(this._registration.id)}_networkRequestsClicked(e){const t="drawer-view"===U.ViewManager.instance().locationNameForViewId("resources")?"panel":"drawer-view";U.ViewManager.instance().showViewInLocation("network",t),_e.NetworkPanel.revealAndFilter([{filterType:me.FilterType.Is,filterValue:me.IsFilterType.ServiceWorkerIntercepted}]);const i=Z.NetworkLog.instance().requests();let s=null;if(Array.isArray(i))for(const e of i)!s&&e.fetchedViaServiceWorker&&(s=e),e.fetchedViaServiceWorker&&s&&s.responseReceivedTime<e.responseReceivedTime&&(s=e);s&&_e.NetworkPanel.selectAndShowRequest(s,pe.Tabs.Timing,{clearFilter:!1}),this._manager.serviceWorkerNetworkRequestsPanelStatus={isOpen:!0,openedAt:Date.now()},se.actionTaken(re.Action.ServiceWorkerNetworkRequestClicked)}_push(e){this._pushNotificationDataSetting.set(e),this._manager.deliverPushMessage(this._registration.id,e)}_sync(e){this._syncTagNameSetting.set(e),this._manager.dispatchSyncEvent(this._registration.id,e,!0)}_periodicSync(e){this._periodicSyncTagNameSetting.set(e),this._manager.dispatchPeriodicSyncEvent(this._registration.id,e)}_onClientInfo(e,t){const i=t.targetInfo;i&&(this._clientInfoCache.set(i.targetId,i),this._updateClientInfo(e,i))}_updateClientInfo(e,t){if("page"!==t.type&&"iframe"===t.type){const i=e.createChild("span","service-worker-client-string");return void x.createTextChild(i,u`Worker: ${t.url}`)}e.removeChildren();const i=e.createChild("span","service-worker-client-string");x.createTextChild(i,t.url),this._createLink(e,u`focus`,this._activateTarget.bind(this,t.targetId),"service-worker-client-focus-link")}_activateTarget(e){this._manager.target().targetAgent().invoke_activateTarget({targetId:e})}_startButtonClicked(){this._manager.startWorker(this._registration.scopeURL)}_skipButtonClicked(){this._manager.skipWaiting(this._registration.scopeURL)}_stopButtonClicked(e){this._manager.stopWorker(e)}_inspectButtonClicked(e){this._manager.inspectWorker(e)}_wrapWidget(e){const t=P.createShadowRootWithCoreStyles(e,{cssFile:void 0,enableLegacyPatching:!0,delegatesFocus:void 0});P.appendStyle(t,"resources/serviceWorkersView.css",{enableLegacyPatching:!1});const i=document.createElement("div");return t.appendChild(i),i}}var Qt=Object.freeze({__proto__:null,setThrottleDisabledForDebugging:e=>{$t=e},ServiceWorkersView:Ht,Section:Kt});class Xt extends Pe{constructor(t){super(t,e.UIString("Trust Tokens"),!1);const i=E.Icon.create("mediumicon-database","resource-tree-item");this.setLeadingIcons([i])}get itemURL(){return"trustTokens://"}onselect(e){return super.onselect(e),this.view||(this.view=new Yt),this.showView(this.view),!1}}class Yt extends C.VBox{constructor(){super(),this.trustTokensView=new Jt,this.contentElement.appendChild(this.trustTokensView)}async wasShown(){const e=q.TargetManager.instance().mainTarget();if(!e)return;const{tokens:t}=await e.storageAgent().invoke_getTrustTokens();this.trustTokensView.data={tokens:t}}}class Jt extends HTMLElement{constructor(){super(...arguments),this.shadow=this.attachShadow({mode:"open"}),this.tokens=[]}connectedCallback(){this.render()}set data(e){this.tokens=e.tokens,this.render()}render(){const e={columns:[{id:"issuer",title:u`Issuer`,widthWeighting:2,hideable:!1,visible:!0},{id:"count",title:u`Stored token count`,widthWeighting:1,hideable:!1,visible:!0}],rows:this.buildRowsFromTokens(),activeSort:null};Ie(Ee`
|
|
2
|
+
<style>
|
|
3
|
+
:host {
|
|
4
|
+
padding: 20px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.heading {
|
|
8
|
+
font-size: 15px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
devtools-data-grid {
|
|
12
|
+
border: 1px solid var(--color-details-hairline);
|
|
13
|
+
margin-top: 20px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.info-icon {
|
|
17
|
+
vertical-align: text-bottom;
|
|
18
|
+
height: 14px;
|
|
19
|
+
}
|
|
20
|
+
</style>
|
|
21
|
+
<div>
|
|
22
|
+
<span class="heading">Trust Tokens</span>
|
|
23
|
+
<devtools-icon class="info-icon" title=${u`All stored Trust Tokens available in this browser instance.`}
|
|
24
|
+
.data=${{iconName:"ic_info_black_18dp",color:"var(--color-link)",width:"14px"}}>
|
|
25
|
+
</devtools-icon>
|
|
26
|
+
<devtools-data-grid .data=${e}></devtools-data-grid>
|
|
27
|
+
</div>
|
|
28
|
+
`,this.shadow)}buildRowsFromTokens(){return this.tokens.filter((e=>e.count>0)).map((e=>({cells:[{columnId:"issuer",value:e.issuerOrigin},{columnId:"count",value:e.count}]})))}}customElements.define("devtools-trust-tokens-storage-view",Jt);var Zt=Object.freeze({__proto__:null,TrustTokensTreeElement:Xt,TrustTokensView:Jt});class ei extends C.VBox{constructor(t){super(),this._panel=t,this._applicationCacheViews=new Map,this._applicationCacheFrameElements=new Map,this._applicationCacheManifestElements=new Map,this._sidebarTree=new S.TreeOutlineInShadow,this._sidebarTree.element.classList.add("resources-sidebar"),this._sidebarTree.registerRequiredCSS("resources/resourcesSidebar.css",{enableLegacyPatching:!0}),this._sidebarTree.element.classList.add("filter-all"),this._sidebarTree.addEventListener(S.Events.ElementAttached,this._treeElementAdded,this),this.contentElement.appendChild(this._sidebarTree.element);const i=u`Application`;this._applicationTreeElement=this._addSidebarSection(i);const s=new ai(t);this._applicationTreeElement.appendChild(s),this.serviceWorkersTreeElement=new ri(t),this._applicationTreeElement.appendChild(this.serviceWorkersTreeElement);const r=new ni(t);this._applicationTreeElement.appendChild(r);const a=u`Storage`,n=this._addSidebarSection(a);this.localStorageListTreeElement=new Ue(t,e.UIString("Local Storage"),"LocalStorage"),this.localStorageListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/localstorage?utm_source=devtools");const o=E.Icon.create("mediumicon-table","resource-tree-item");this.localStorageListTreeElement.setLeadingIcons([o]),n.appendChild(this.localStorageListTreeElement),this.sessionStorageListTreeElement=new Ue(t,e.UIString("Session Storage"),"SessionStorage"),this.sessionStorageListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/sessionstorage?utm_source=devtools");const d=E.Icon.create("mediumicon-table","resource-tree-item");this.sessionStorageListTreeElement.setLeadingIcons([d]),n.appendChild(this.sessionStorageListTreeElement),this.indexedDBListTreeElement=new oi(t),this.indexedDBListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/indexeddb?utm_source=devtools"),n.appendChild(this.indexedDBListTreeElement),this.databasesListTreeElement=new Ue(t,e.UIString("Web SQL"),"Databases"),this.databasesListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/websql?utm_source=devtools");const l=E.Icon.create("mediumicon-database","resource-tree-item");this.databasesListTreeElement.setLeadingIcons([l]),n.appendChild(this.databasesListTreeElement),this.cookieListTreeElement=new Ue(t,e.UIString("Cookies"),"Cookies"),this.cookieListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/cookies?utm_source=devtools");const c=E.Icon.create("mediumicon-cookie","resource-tree-item");this.cookieListTreeElement.setLeadingIcons([c]),n.appendChild(this.cookieListTreeElement),this.trustTokensTreeElement=new Xt(t),n.appendChild(this.trustTokensTreeElement);const h=u`Cache`,_=this._addSidebarSection(h);this.cacheStorageListTreeElement=new ze(t),_.appendChild(this.cacheStorageListTreeElement),this.applicationCacheListTreeElement=new Ue(t,e.UIString("Application Cache"),"ApplicationCache"),this.applicationCacheListTreeElement.setLink("https://developers.google.com/web/tools/chrome-devtools/storage/applicationcache?utm_source=devtools");const p=E.Icon.create("mediumicon-table","resource-tree-item");if(this.applicationCacheListTreeElement.setLeadingIcons([p]),_.appendChild(this.applicationCacheListTreeElement),ne.experiments.isEnabled("backgroundServices")){const e=u`Background Services`,i=this._addSidebarSection(e);this.backgroundFetchTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.BackgroundFetch),i.appendChild(this.backgroundFetchTreeElement),this.backgroundSyncTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.BackgroundSync),i.appendChild(this.backgroundSyncTreeElement),ne.experiments.isEnabled("backgroundServicesNotifications")&&(this.notificationsTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.Notifications),i.appendChild(this.notificationsTreeElement)),ne.experiments.isEnabled("backgroundServicesPaymentHandler")&&(this.paymentHandlerTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.PaymentHandler),i.appendChild(this.paymentHandlerTreeElement)),this.periodicBackgroundSyncTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.PeriodicBackgroundSync),i.appendChild(this.periodicBackgroundSyncTreeElement),ne.experiments.isEnabled("backgroundServicesPushMessaging")&&(this.pushMessagingTreeElement=new ti(t,Protocol.BackgroundService.ServiceName.PushMessaging),i.appendChild(this.pushMessagingTreeElement))}const m=u`Frames`,g=this._addSidebarSection(m);this._resourcesSection=new pi(t,g),this._databaseTableViews=new Map,this._databaseQueryViews=new Map,this._databaseTreeElements=new Map,this._domStorageTreeElements=new Map,this._domains={},this._sidebarTree.contentElement.addEventListener("mousemove",this._onmousemove.bind(this),!1),this._sidebarTree.contentElement.addEventListener("mouseleave",this._onmouseleave.bind(this),!1),q.TargetManager.instance().observeTargets(this),q.TargetManager.instance().addModelListener(j.ResourceTreeModel,j.Events.FrameNavigated,this._frameNavigated,this);this._panel.lastSelectedItemPath().length||s.select()}_addSidebarSection(e){const t=new S.TreeElement(e,!0);return t.listItemElement.classList.add("storage-group-list-item"),t.setCollapsible(!1),t.selectable=!1,this._sidebarTree.appendChild(t),f.setAccessibleName(t.childrenListElement,e),t}targetAdded(e){if(this._target)return;this._target=e,this._databaseModel=e.model(st),this._databaseModel&&(this._databaseModel.addEventListener(rt.DatabaseAdded,this._databaseAdded,this),this._databaseModel.addEventListener(rt.DatabasesRemoved,this._resetWebSQL,this));const t=e.model(j.ResourceTreeModel);t&&(t.cachedResourcesLoaded()&&this._initialize(),t.addEventListener(j.Events.CachedResourcesLoaded,this._initialize,this),t.addEventListener(j.Events.WillLoadCachedResources,this._resetWithFrames,this))}targetRemoved(e){if(e!==this._target)return;delete this._target;const t=e.model(j.ResourceTreeModel);t&&(t.removeEventListener(j.Events.CachedResourcesLoaded,this._initialize,this),t.removeEventListener(j.Events.WillLoadCachedResources,this._resetWithFrames,this)),this._databaseModel&&(this._databaseModel.removeEventListener(rt.DatabaseAdded,this._databaseAdded,this),this._databaseModel.removeEventListener(rt.DatabasesRemoved,this._resetWebSQL,this),this._databaseModel=null),this._resetWithFrames()}focus(){this._sidebarTree.focus()}_initialize(){for(const e of j.ResourceTreeModel.frames())this._addCookieDocument(e);this._databaseModel&&this._databaseModel.enable();const e=this._target&&this._target.model(G.ServiceWorkerCacheModel);e&&e.enable();const t=this._target&&this._target.model(j.ResourceTreeModel);t&&this._populateApplicationCacheTree(t),q.TargetManager.instance().observeModels(dt,{modelAdded:e=>this._domStorageModelAdded(e),modelRemoved:e=>this._domStorageModelRemoved(e)}),this.indexedDBListTreeElement._initialize(),q.TargetManager.instance().observeModels(ut,{modelAdded:e=>e.enable(),modelRemoved:e=>this.indexedDBListTreeElement.removeIndexedDBForModel(e)});const i=this._target&&this._target.model(G.ServiceWorkerCacheModel)||null;this.cacheStorageListTreeElement.initialize(i);const s=this._target&&this._target.model(Xe)||null;ne.experiments.isEnabled("backgroundServices")&&(this.backgroundFetchTreeElement&&this.backgroundFetchTreeElement._initialize(s),this.backgroundSyncTreeElement&&this.backgroundSyncTreeElement._initialize(s),ne.experiments.isEnabled("backgroundServicesNotifications")&&this.notificationsTreeElement&&this.notificationsTreeElement._initialize(s),ne.experiments.isEnabled("backgroundServicesPaymentHandler")&&this.paymentHandlerTreeElement&&this.paymentHandlerTreeElement._initialize(s),this.periodicBackgroundSyncTreeElement&&this.periodicBackgroundSyncTreeElement._initialize(s),ne.experiments.isEnabled("backgroundServicesPushMessaging")&&this.pushMessagingTreeElement&&this.pushMessagingTreeElement._initialize(s))}_domStorageModelAdded(e){e.enable(),e.storages().forEach(this._addDOMStorage.bind(this)),e.addEventListener(lt.DOMStorageAdded,this._domStorageAdded,this),e.addEventListener(lt.DOMStorageRemoved,this._domStorageRemoved,this)}_domStorageModelRemoved(e){e.storages().forEach(this._removeDOMStorage.bind(this)),e.removeEventListener(lt.DOMStorageAdded,this._domStorageAdded,this),e.removeEventListener(lt.DOMStorageRemoved,this._domStorageRemoved,this)}_resetWithFrames(){this._resourcesSection.reset(),this._reset()}_resetWebSQL(){for(const e of this._databaseQueryViews.values())e.removeEventListener(Tt.SchemaUpdated,(e=>{this._updateDatabaseTables(e)}),this);this._databaseTableViews.clear(),this._databaseQueryViews.clear(),this._databaseTreeElements.clear(),this.databasesListTreeElement.removeChildren(),this.databasesListTreeElement.setExpandable(!1)}_resetAppCache(){for(const e of this._applicationCacheFrameElements.keys())this._applicationCacheFrameManifestRemoved({data:e});this.applicationCacheListTreeElement.setExpandable(!1)}_treeElementAdded(e){const t=this._panel.lastSelectedItemPath();if(!t.length)return;const i=e.data,s=[i];for(let e=i.parent;e&&e.itemURL;e=e.parent)s.push(e);let r=t.length-1,a=s.length-1;for(;r>=0&&a>=0&&t[r]===s[a].itemURL;)s[a].expanded||(r>0&&s[a].expand(),s[a].selected||s[a].select()),r--,a--}_reset(){this._domains={},this._resetWebSQL(),this.cookieListTreeElement.removeChildren()}_frameNavigated(e){const t=e.data;t.isTopFrame()&&this._reset();const i=this._applicationCacheFrameElements.get(t.id);i&&i.frameNavigated(t),this._addCookieDocument(t)}_databaseAdded(e){const t=e.data,i=new ii(this,t);this._databaseTreeElements.set(t,i),this.databasesListTreeElement.appendChild(i)}_addCookieDocument(e){const t=e.unreachableUrl()||e.url,i=s.ParsedURL.fromString(t);if(!i||"http"!==i.scheme&&"https"!==i.scheme&&"file"!==i.scheme)return;const r=i.securityOrigin();if(!this._domains[r]){this._domains[r]=!0;const t=new ui(this._panel,e,r);this.cookieListTreeElement.appendChild(t)}}_domStorageAdded(e){const t=e.data;this._addDOMStorage(t)}_addDOMStorage(e){console.assert(!this._domStorageTreeElements.get(e));const t=new hi(this._panel,e);this._domStorageTreeElements.set(e,t),e.isLocalStorage?this.localStorageListTreeElement.appendChild(t):this.sessionStorageListTreeElement.appendChild(t)}_domStorageRemoved(e){const t=e.data;this._removeDOMStorage(t)}_removeDOMStorage(e){const t=this._domStorageTreeElements.get(e);if(!t)return;const i=t.selected,s=t.parent;s&&(s.removeChild(t),i&&s.select()),this._domStorageTreeElements.delete(e)}selectDatabase(e){if(e){this._showDatabase(e);const t=this._databaseTreeElements.get(e);t&&t.select()}}async showResource(e,t,i){await this._resourcesSection.revealResource(e,t,i)}_showDatabase(e,t){if(!e)return;let i;if(t){let s=this._databaseTableViews.get(e);s||(s={},this._databaseTableViews.set(e,s)),i=s[t],i||(i=new Rt(e,t),s[t]=i)}else i=this._databaseQueryViews.get(e),i||(i=new Et(e),this._databaseQueryViews.set(e,i),i.addEventListener(Tt.SchemaUpdated,(e=>{this._updateDatabaseTables(e)}),this));this._innerShowView(i)}_showApplicationCache(e){if(!this._applicationCacheModel)return;let t=this._applicationCacheViews.get(e);t||(t=new Be(this._applicationCacheModel,e),this._applicationCacheViews.set(e,t)),this._innerShowView(t)}showFileSystem(e){this._innerShowView(e)}_innerShowView(e){this._panel.showView(e)}async _updateDatabaseTables(e){const t=e.data;if(!t)return;const i=this._databaseTreeElements.get(t);if(!i)return;i.invalidateChildren();const s=this._databaseTableViews.get(t);if(!s)return;const r=new Set,a=this._panel,n=await t.tableNames();for(const e of n)r.add(e);for(const e in s)r.has(e)||(a.visibleView===s[e]&&a.showView(null),delete s[e]);await i.updateChildren()}_populateApplicationCacheTree(e){this._target&&(this._applicationCacheModel=this._target.model(Re),this._applicationCacheModel&&(this._applicationCacheModel.addEventListener(De.FrameManifestAdded,this._applicationCacheFrameManifestAdded,this),this._applicationCacheModel.addEventListener(De.FrameManifestRemoved,this._applicationCacheFrameManifestRemoved,this),this._applicationCacheModel.addEventListener(De.FrameManifestsReset,this._resetAppCache,this),this._applicationCacheModel.addEventListener(De.FrameManifestStatusUpdated,this._applicationCacheFrameManifestStatusChanged,this),this._applicationCacheModel.addEventListener(De.NetworkStateChanged,this._applicationCacheNetworkStateChanged,this)))}_applicationCacheFrameManifestAdded(e){const t=e.data;if(!this._applicationCacheModel||!this._target||"string"!==t)return;const i=this._applicationCacheModel.frameManifestURL(t);let s=this._applicationCacheManifestElements.get(i);s||(s=new Ge(this._panel,i),this.applicationCacheListTreeElement.appendChild(s),this._applicationCacheManifestElements.set(i,s));const r=this._target.model(j.ResourceTreeModel),a=r&&r.frameForId(t);if(r&&a){const e=new He(this,a,i);s.appendChild(e),s.expand(),this._applicationCacheFrameElements.set(t,e)}}_applicationCacheFrameManifestRemoved(e){const t=e.data,i=this._applicationCacheFrameElements.get(t);if(!i)return;const s=i.manifestURL;this._applicationCacheFrameElements.delete(t),this._applicationCacheViews.delete(t),i.parent&&i.parent.removeChild(i);const r=this._applicationCacheManifestElements.get(s);r&&!r.childCount()&&(this._applicationCacheManifestElements.delete(s),r.parent&&r.parent.removeChild(r))}_applicationCacheFrameManifestStatusChanged(e){if(!this._applicationCacheModel)return;const t=e.data,i=this._applicationCacheModel.frameManifestStatus(t),s=this._applicationCacheViews.get(t);s&&s.updateStatus(i)}_applicationCacheNetworkStateChanged(e){const t=e.data;for(const e of this._applicationCacheViews.values())e.updateNetworkState(t)}_onmousemove(e){const t=e.target;if(!t)return;const i=x.enclosingNodeOrSelfWithNodeName(t,"li");if(!i)return;const s=S.TreeElement.getTreeElementBylistItemNode(i);this._previousHoveredElement!==s&&(this._previousHoveredElement&&(this._previousHoveredElement.hovered=!1,delete this._previousHoveredElement),s instanceof mi&&(this._previousHoveredElement=s,s.hovered=!0))}_onmouseleave(e){this._previousHoveredElement&&(this._previousHoveredElement.hovered=!1,delete this._previousHoveredElement)}}class ti extends Pe{constructor(e,t){super(e,Ze.getUIString(t),!1),this._serviceName=t,this._selected=!1,this._view=null,this._model=null;const i=E.Icon.create(this._getIconType(),"resource-tree-item");this.setLeadingIcons([i])}_getIconType(){switch(this._serviceName){case Protocol.BackgroundService.ServiceName.BackgroundFetch:return"mediumicon-fetch";case Protocol.BackgroundService.ServiceName.BackgroundSync:return"mediumicon-sync";case Protocol.BackgroundService.ServiceName.PushMessaging:return"mediumicon-cloud";case Protocol.BackgroundService.ServiceName.Notifications:return"mediumicon-bell";case Protocol.BackgroundService.ServiceName.PaymentHandler:return"mediumicon-payment";case Protocol.BackgroundService.ServiceName.PeriodicBackgroundSync:return"mediumicon-schedule";default:return console.error(`Service ${this._serviceName} does not have a dedicated icon`),"mediumicon-table"}}_initialize(e){this._model=e,this._selected&&!this._view&&this.onselect(!1)}get itemURL(){return"background-service://"+this._serviceName}onselect(e){return super.onselect(e),this._selected=!0,!!this._model&&(this._view||(this._view=new Ze(this._serviceName,this._model)),this.showView(this._view),A.Context.instance().setFlavor(Ze,this._view),!1)}}class ii extends Pe{constructor(e,t){super(e._panel,t.name,!0),this._sidebar=e,this._database=t;const i=E.Icon.create("mediumicon-database","resource-tree-item");this.setLeadingIcons([i])}get itemURL(){return"database://"+encodeURI(this._database.name)}onselect(e){return super.onselect(e),this._sidebar._showDatabase(this._database),!1}onexpand(){this.updateChildren()}async updateChildren(){this.removeChildren();const e=await this._database.tableNames();for(const t of e)this.appendChild(new si(this._sidebar,this._database,t))}}class si extends Pe{constructor(e,t,i){super(e._panel,i,!1),this._sidebar=e,this._database=t,this._tableName=i;const s=E.Icon.create("mediumicon-table","resource-tree-item");this.setLeadingIcons([s])}get itemURL(){return"database://"+encodeURI(this._database.name)+"/"+encodeURI(this._tableName)}onselect(e){return super.onselect(e),this._sidebar._showDatabase(this._database,this._tableName),!1}}class ri extends Pe{constructor(t){super(t,e.UIString("Service Workers"),!1);const i=E.Icon.create("mediumicon-service-worker","resource-tree-item");this.setLeadingIcons([i])}get itemURL(){return"service-workers://"}onselect(e){return super.onselect(e),this._view||(this._view=new Ht),this.showView(this._view),!1}}class ai extends Pe{constructor(t){super(t,e.UIString("Manifest"),!1);const i=E.Icon.create("mediumicon-manifest","resource-tree-item");this.setLeadingIcons([i])}get itemURL(){return"manifest://"}onselect(e){return super.onselect(e),this._view||(this._view=new Ke),this.showView(this._view),!1}}class ni extends Pe{constructor(t){super(t,e.UIString("Storage"),!1);const i=E.Icon.create("mediumicon-database","resource-tree-item");this.setLeadingIcons([i])}get itemURL(){return"clear-storage://"}onselect(e){return super.onselect(e),this._view||(this._view=new Ct),this.showView(this._view),!1}}class oi extends Ue{constructor(t){super(t,e.UIString("IndexedDB"),"IndexedDB");const i=E.Icon.create("mediumicon-database","resource-tree-item");this.setLeadingIcons([i]),this._idbDatabaseTreeElements=[]}_initialize(){q.TargetManager.instance().addModelListener(ut,_t.DatabaseAdded,this._indexedDBAdded,this),q.TargetManager.instance().addModelListener(ut,_t.DatabaseRemoved,this._indexedDBRemoved,this),q.TargetManager.instance().addModelListener(ut,_t.DatabaseLoaded,this._indexedDBLoaded,this),q.TargetManager.instance().addModelListener(ut,_t.IndexedDBContentUpdated,this._indexedDBContentUpdated,this),this._idbDatabaseTreeElements=[];for(const e of q.TargetManager.instance().models(ut)){const t=e.databases();for(let i=0;i<t.length;++i)this._addIndexedDB(e,t[i])}}removeIndexedDBForModel(e){const t=this._idbDatabaseTreeElements.filter((t=>t._model===e));for(const e of t)this._removeIDBDatabaseTreeElement(e)}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}_handleContextMenuEvent(t){const i=new T.ContextMenu(t);i.defaultSection().appendItem(e.UIString("Refresh IndexedDB"),this.refreshIndexedDB.bind(this)),i.show()}refreshIndexedDB(){for(const e of q.TargetManager.instance().models(ut))e.refreshDatabaseNames()}_indexedDBAdded(e){const t=e.data.databaseId,i=e.data.model;this._addIndexedDB(i,t)}_addIndexedDB(e,t){const i=new di(this.resourcesPanel,e,t);this._idbDatabaseTreeElements.push(i),this.appendChild(i),e.refreshDatabase(t)}_indexedDBRemoved(e){const t=e.data.databaseId,i=e.data.model,s=this._idbDatabaseTreeElement(i,t);s&&this._removeIDBDatabaseTreeElement(s)}_removeIDBDatabaseTreeElement(e){e.clear(),this.removeChild(e),g.removeElement(this._idbDatabaseTreeElements,e),this.setExpandable(this.childCount()>0)}_indexedDBLoaded(e){const t=e.data.database,i=e.data.model,s=e.data.entriesUpdated,r=this._idbDatabaseTreeElement(i,t.databaseId);r&&(r.update(t,s),this._indexedDBLoadedForTest())}_indexedDBLoadedForTest(){}_indexedDBContentUpdated(e){const t=e.data.databaseId,i=e.data.objectStoreName,s=e.data.model,r=this._idbDatabaseTreeElement(s,t);r&&r.indexedDBContentUpdated(i)}_idbDatabaseTreeElement(e,t){return this._idbDatabaseTreeElements.find((i=>i._databaseId.equals(t)&&i._model===e))||null}}class di extends Pe{constructor(e,t,i){super(e,i.name+" - "+i.securityOrigin,!1),this._model=t,this._databaseId=i,this._idbObjectStoreTreeElements=new Map;const s=E.Icon.create("mediumicon-database","resource-tree-item");this.setLeadingIcons([s]),this._model.addEventListener(_t.DatabaseNamesRefreshed,this._refreshIndexedDB,this)}get itemURL(){return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}_handleContextMenuEvent(t){const i=new T.ContextMenu(t);i.defaultSection().appendItem(e.UIString("Refresh IndexedDB"),this._refreshIndexedDB.bind(this)),i.show()}_refreshIndexedDB(){this._model.refreshDatabase(this._databaseId)}indexedDBContentUpdated(e){const t=this._idbObjectStoreTreeElements.get(e);t&&t.markNeedsRefresh()}update(e,t){this._database=e;const i=new Set;for(const e of[...this._database.objectStores.keys()].sort()){const s=this._database.objectStores.get(e);if(!s)continue;i.add(s.name);let r=this._idbObjectStoreTreeElements.get(s.name);r||(r=new li(this.resourcesPanel,this._model,this._databaseId,s),this._idbObjectStoreTreeElements.set(s.name,r),this.appendChild(r)),r.update(s,t)}for(const e of this._idbObjectStoreTreeElements.keys())i.has(e)||this._objectStoreRemoved(e);this._view&&this._view.update(e),this._updateTooltip()}_updateTooltip(){const e=this._database?this._database.version:"-";0===Object.keys(this._idbObjectStoreTreeElements).length?this.tooltip=u`Version: ${e} (empty)`:this.tooltip=u`Version: ${e}`}onselect(e){return super.onselect(e),!!this._database&&(this._view||(this._view=new Vt(this._model,this._database)),this.showView(this._view),!1)}_objectStoreRemoved(e){const t=this._idbObjectStoreTreeElements.get(e);t&&(t.clear(),this.removeChild(t)),this._idbObjectStoreTreeElements.delete(e),this._updateTooltip()}clear(){for(const e of this._idbObjectStoreTreeElements.keys())this._objectStoreRemoved(e)}}class li extends Pe{constructor(e,t,i,s){super(e,s.name,!1),this._model=t,this._databaseId=i,this._idbIndexTreeElements=new Map,this._objectStore=s,this._view=null;const r=E.Icon.create("mediumicon-table","resource-tree-item");this.setLeadingIcons([r])}get itemURL(){return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name+"/"+this._objectStore.name}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}markNeedsRefresh(){this._view&&this._view.markNeedsRefresh();for(const e of this._idbIndexTreeElements.values())e.markNeedsRefresh()}_handleContextMenuEvent(t){const i=new T.ContextMenu(t);i.defaultSection().appendItem(e.UIString("Clear"),this._clearObjectStore.bind(this)),i.show()}_refreshObjectStore(){this._view&&this._view.refreshData();for(const e of this._idbIndexTreeElements.values())e.refreshIndex()}async _clearObjectStore(){await this._model.clearObjectStore(this._databaseId,this._objectStore.name),this.update(this._objectStore,!0)}update(e,t){this._objectStore=e;const i=new Set;for(const e of this._objectStore.indexes.values()){i.add(e.name);let s=this._idbIndexTreeElements.get(e.name);s||(s=new ci(this.resourcesPanel,this._model,this._databaseId,this._objectStore,e,this._refreshObjectStore.bind(this)),this._idbIndexTreeElements.set(e.name,s),this.appendChild(s)),s.update(this._objectStore,e,t)}for(const e of this._idbIndexTreeElements.keys())i.has(e)||this._indexRemoved(e);for(const[e,t]of this._idbIndexTreeElements.entries())i.has(e)||(this.removeChild(t),this._idbIndexTreeElements.delete(e));this.childCount()&&this.expand(),this._view&&t&&this._view.update(this._objectStore,null),this._updateTooltip()}_updateTooltip(){const t=this._objectStore.keyPathString;let i=null!==t?u`Key path: ${t}`:"";this._objectStore.autoIncrement&&(i+="\n"+e.UIString("autoIncrement")),this.tooltip=i}onselect(e){return super.onselect(e),this._view||(this._view=new Pt(this._model,this._databaseId,this._objectStore,null,this._refreshObjectStore.bind(this))),this.showView(this._view),!1}_indexRemoved(e){const t=this._idbIndexTreeElements.get(e);t&&(t.clear(),this.removeChild(t)),this._idbIndexTreeElements.delete(e)}clear(){for(const e of this._idbIndexTreeElements.keys())this._indexRemoved(e);this._view&&this._view.clear()}}class ci extends Pe{constructor(e,t,i,s,r,a){super(e,r.name,!1),this._model=t,this._databaseId=i,this._objectStore=s,this._index=r,this._refreshObjectStore=a}get itemURL(){return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name+"/"+this._objectStore.name+"/"+this._index.name}markNeedsRefresh(){this._view&&this._view.markNeedsRefresh()}refreshIndex(){this._view&&this._view.refreshData()}update(e,t,i){this._objectStore=e,this._index=t,this._view&&i&&this._view.update(this._objectStore,this._index),this._updateTooltip()}_updateTooltip(){const t=[],i=this._index.keyPathString;t.push(u`Key path: ${i}`),this._index.unique&&t.push(e.UIString("unique")),this._index.multiEntry&&t.push(e.UIString("multiEntry")),this.tooltip=t.join("\n")}onselect(e){return super.onselect(e),this._view||(this._view=new Pt(this._model,this._databaseId,this._objectStore,this._index,this._refreshObjectStore)),this.showView(this._view),!1}clear(){this._view&&this._view.clear()}}class hi extends Pe{constructor(t,i){super(t,i.securityOrigin?i.securityOrigin:e.UIString("Local Files"),!1),this._domStorage=i;const s=E.Icon.create("mediumicon-table","resource-tree-item");this.setLeadingIcons([s])}get itemURL(){return"storage://"+this._domStorage.securityOrigin+"/"+(this._domStorage.isLocalStorage?"local":"session")}onselect(e){return super.onselect(e),this.resourcesPanel.showDOMStorage(this._domStorage),!1}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}_handleContextMenuEvent(t){const i=new T.ContextMenu(t);i.defaultSection().appendItem(e.UIString("Clear"),(()=>this._domStorage.clear())),i.show()}}class ui extends Pe{constructor(t,i,s){super(t,s||e.UIString("Local Files"),!1),this._target=i.resourceTreeModel().target(),this._cookieDomain=s,this.tooltip=u`Cookies used by frames from ${s}`;const r=E.Icon.create("mediumicon-cookie","resource-tree-item");this.setLeadingIcons([r])}get itemURL(){return"cookies://"+this._cookieDomain}cookieDomain(){return this._cookieDomain}onattach(){super.onattach(),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}_handleContextMenuEvent(t){const i=new T.ContextMenu(t);i.defaultSection().appendItem(e.UIString("Clear"),(()=>this.resourcesPanel.clearCookies(this._target,this._cookieDomain))),i.show()}onselect(e){return super.onselect(e),this.resourcesPanel.showCookies(this._target,this._cookieDomain),!1}}class _i extends C.VBox{constructor(){super(),this.element.classList.add("storage-view"),this._emptyWidget=new w.EmptyWidget(""),this._linkElement=null,this._emptyWidget.show(this.element)}setText(e){this._emptyWidget.text=e}setLink(e){e&&!this._linkElement&&(this._linkElement=this._emptyWidget.appendLink(e)),!e&&this._linkElement&&this._linkElement.classList.add("hidden"),e&&this._linkElement&&(this._linkElement.setAttribute("href",e),this._linkElement.classList.remove("hidden"))}}class pi{constructor(e,t){this._panel=e,this._treeElement=t,this._treeElementForFrameId=new Map,this._treeElementForTargetId=new Map;const i=Y.FrameManager.instance();i.addEventListener(Y.Events.FrameAddedToTarget,(e=>this._frameAdded(e.data.frame)),this),i.addEventListener(Y.Events.FrameRemoved,(e=>this._frameDetached(e.data.frameId)),this),i.addEventListener(Y.Events.FrameNavigated,(e=>this._frameNavigated(e.data.frame)),this),i.addEventListener(Y.Events.ResourceAdded,(e=>this._resourceAdded(e.data.resource)),this),q.TargetManager.instance().addModelListener(ee.ChildTargetManager,ee.Events.TargetCreated,this._windowOpened,this),q.TargetManager.instance().addModelListener(ee.ChildTargetManager,ee.Events.TargetInfoChanged,this._windowChanged,this),q.TargetManager.instance().addModelListener(ee.ChildTargetManager,ee.Events.TargetDestroyed,this._windowDestroyed,this),q.TargetManager.instance().observeTargets(this);for(const e of i.getAllFrames()){this._treeElementForFrameId.get(e.id)||this._addFrameAndParents(e);const t=e.resourceTreeModel().target().model(ee.ChildTargetManager);if(t)for(const e of t.targetInfos())this._windowOpened({data:{targetInfo:e}})}}targetAdded(e){e.type()!==q.Type.Worker&&e.type()!==q.Type.ServiceWorker||this._workerAdded(e)}async _workerAdded(e){const t=e.parentTarget();if(!t)return;const i=t.id(),s=this._treeElementForTargetId.get(i),{targetInfo:r}=await t.targetAgent().invoke_getTargetInfo({targetId:e.id()});s&&r&&s.workerCreated(r)}targetRemoved(e){}_addFrameAndParents(e){const t=e.parentFrame();t&&!this._treeElementForFrameId.get(t.id)&&this._addFrameAndParents(t),this._frameAdded(e)}_expandFrame(e){if(!e)return!1;let t=this._treeElementForFrameId.get(e.id);return!(!t&&!this._expandFrame(e.parentFrame()))&&(t=this._treeElementForFrameId.get(e.id),!!t&&(t.expand(),!0))}async revealResource(e,t,i){if(!this._expandFrame(e.frame()))return;const s=vi.forResource(e);s&&await s.revealResource(t,i)}_frameAdded(e){const t=e.parentFrame(),i=t?this._treeElementForFrameId.get(t.id):this._treeElement;if(!i)return;const s=this._treeElementForFrameId.get(e.id);s&&(this._treeElementForFrameId.delete(e.id),s.parent&&s.parent.removeChild(s));const r=new mi(this,e);this._treeElementForFrameId.set(e.id,r);const a=e.resourceTreeModel().target().id();this._treeElementForTargetId.get(a)||this._treeElementForTargetId.set(a,r),i.appendChild(r);for(const t of e.resources())this._resourceAdded(t)}_frameDetached(e){const t=this._treeElementForFrameId.get(e);t&&(this._treeElementForFrameId.delete(e),t.parent&&t.parent.removeChild(t))}_frameNavigated(e){const t=this._treeElementForFrameId.get(e.id);t&&t.frameNavigated(e)}_resourceAdded(e){const t=this._treeElementForFrameId.get(e.frameId);t&&t.appendResource(e)}_windowOpened(e){const t=e.data;if(t.openerId&&"page"===t.type){const e=this._treeElementForFrameId.get(t.openerId);e&&(this._treeElementForTargetId.set(t.targetId,e),e.windowOpened(t))}}_windowDestroyed(e){const t=e.data,i=this._treeElementForTargetId.get(t);i&&(i.windowDestroyed(t),this._treeElementForTargetId.delete(t))}_windowChanged(e){const t=e.data;if(t.openerId&&"page"===t.type){const e=this._treeElementForFrameId.get(t.openerId);e&&e.windowChanged(t)}}reset(){this._treeElement.removeChildren(),this._treeElementForFrameId.clear(),this._treeElementForTargetId.clear()}}class mi extends Pe{constructor(e,t){super(e._panel,"",!1),this._section=e,this._frame=t,this._frameId=t.id,this._categoryElements=new Map,this._treeElementForResource=new Map,this._treeElementForWindow=new Map,this._treeElementForWorker=new Map,this.setExpandable(!0),this.frameNavigated(t),this._view=null}getIconTypeForFrame(e){return e.isTopFrame()?e.unreachableUrl()?"mediumicon-frame-blocked":"mediumicon-frame":e.unreachableUrl()?"mediumicon-frame-embedded-blocked":"mediumicon-frame-embedded"}async frameNavigated(e){const t=E.Icon.create(this.getIconTypeForFrame(e));if(e.unreachableUrl()&&t.classList.add("red-icon"),this.setLeadingIcons([t]),this.invalidateChildren(),this._frameId=e.id,this.title!==e.displayName()&&(this.title=e.displayName(),f.setAccessibleName(this.listItemElement,this.title),this.parent)){const e=this.parent;e.removeChild(this),e.appendChild(this)}if(this._categoryElements.clear(),this._treeElementForResource.clear(),this._treeElementForWorker.clear(),this.selected?(this._view=new Ot(this._frame),this.showView(this._view)):this._view=null,e.isTopFrame()){const t=q.TargetManager.instance().targets();for(const i of t)if(i.type()===q.Type.ServiceWorker){const t=e.resourceTreeModel().target().targetAgent(),s=(await t.invoke_getTargetInfo({targetId:i.id()})).targetInfo;this.workerCreated(s)}}}get itemURL(){return this._frame.isTopFrame()?"frame://":"frame://"+encodeURI(this._frame.url)}onselect(e){return super.onselect(e),this._view?this._view.update():this._view=new Ot(this._frame),this.showView(this._view),this.listItemElement.classList.remove("hovered"),J.OverlayModel.hideDOMNodeHighlight(),!1}set hovered(e){e?(this.listItemElement.classList.add("hovered"),this._frame.highlight()):(this.listItemElement.classList.remove("hovered"),J.OverlayModel.hideDOMNodeHighlight())}appendResource(e){const t=e.statusCode();if(t>=301&&t<=303)return;const i=e.resourceType(),s=i.name();let a=i===r.resourceTypes.Document?this:this._categoryElements.get(s);a||(a=new Ue(this._section._panel,e.resourceType().category().title,s,"Frames"===s),this._categoryElements.set(i.name(),a),this.appendChild(a,mi._presentationOrderCompare));const n=new vi(this._section._panel,e);a.appendChild(n,mi._presentationOrderCompare),this._treeElementForResource.set(e.url,n),this._view&&this._view.update()}windowOpened(e){const t="OpenedWindows";let i=this._categoryElements.get(t);if(i||(i=new Ue(this._section._panel,u`Opened Windows`,t),this._categoryElements.set(t,i),this.appendChild(i,mi._presentationOrderCompare)),!this._treeElementForWindow.get(e.targetId)){const t=new bi(this._section._panel,e);i.appendChild(t),this._treeElementForWindow.set(e.targetId,t)}}workerCreated(e){const t="service_worker"===e.type?"Service Workers":"Web Workers",i="service_worker"===e.type?u`Service Workers`:u`Web Workers`;let s=this._categoryElements.get(t);if(s||(s=new Ue(this._section._panel,i,t),this._categoryElements.set(t,s),this.appendChild(s,mi._presentationOrderCompare)),!this._treeElementForWorker.get(e.targetId)){const t=new wi(this._section._panel,e);s.appendChild(t),this._treeElementForWorker.set(e.targetId,t)}}windowChanged(e){const t=this._treeElementForWindow.get(e.targetId);t&&(t.title!==e.title&&(t.title=e.title),t.update(e))}windowDestroyed(e){const t=this._treeElementForWindow.get(e);t&&t.windowClosed()}resourceByURL(e){const t=this._treeElementForResource.get(e);return t?t._resource:null}appendChild(e,t=mi._presentationOrderCompare){super.appendChild(e,t)}static _presentationOrderCompare(e,t){function i(e){return e instanceof Ue?2:e instanceof mi?1:3}return i(e)-i(t)||e.titleAsText().localeCompare(t.titleAsText())}}const gi=new WeakMap;class vi extends Pe{constructor(e,t){super(e,t.displayName,!1),this._panel=e,this._resource=t,this._previewPromise=null,this.tooltip=t.url,gi.set(this._resource,this);const i=E.Icon.create("mediumicon-manifest","navigator-file-tree-item");i.classList.add("navigator-"+t.resourceType().name()+"-tree-item"),this.setLeadingIcons([i])}static forResource(e){return gi.get(e)}get itemURL(){return this._resource.url}_preparePreview(){if(this._previewPromise)return this._previewPromise;const e=oe.PreviewFactory.createPreview(this._resource,this._resource.mimeType);return this._previewPromise=e.then((e=>e||new w.EmptyWidget(this._resource.url))),this._previewPromise}onselect(e){return super.onselect(e),this._panel.scheduleShowView(this._preparePreview()),!1}ondblclick(e){return ae.InspectorFrontendHostInstance.openInNewTab(this._resource.url),!1}onattach(){super.onattach(),this.listItemElement.draggable=!0,this.listItemElement.addEventListener("dragstart",this._ondragstart.bind(this),!1),this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),!0)}_ondragstart(e){return!!e.dataTransfer&&(e.dataTransfer.setData("text/plain",this._resource.content||""),e.dataTransfer.effectAllowed="copy",!0)}_handleContextMenuEvent(e){const t=new T.ContextMenu(e);t.appendApplicableItems(this._resource),t.show()}async revealResource(e,t){this.revealAndSelect(!0);const i=await this._panel.scheduleShowView(this._preparePreview());i instanceof de.ResourceSourceFrame&&"number"==typeof e&&i.revealPosition(e,t,!0)}}class bi extends Pe{constructor(e,t){super(e,t.title||u`Window without title`,!1),this._targetInfo=t,this._isWindowClosed=!1,this._view=null,this.updateIcon(t.canAccessOpener)}updateIcon(e){const t=e?"mediumicon-frame-opened":"mediumicon-frame",i=E.Icon.create(t);this.setLeadingIcons([i])}update(e){e.canAccessOpener!==this._targetInfo.canAccessOpener&&this.updateIcon(e.canAccessOpener),this._targetInfo=e,this._view&&(this._view.setTargetInfo(e),this._view.update())}windowClosed(){this.listItemElement.classList.add("window-closed"),this._isWindowClosed=!0,this._view&&(this._view.setIsWindowClosed(!0),this._view.update())}onselect(e){return super.onselect(e),this._view?this._view.update():this._view=new Wt(this._targetInfo,this._isWindowClosed),this.showView(this._view),!1}get itemURL(){return this._targetInfo.url}}class wi extends Pe{constructor(e,t){super(e,t.title||t.url||u`worker`,!1),this._targetInfo=t,this._view=null;const i=E.Icon.create("mediumicon-service-worker","navigator-file-tree-item");this.setLeadingIcons([i])}onselect(e){return super.onselect(e),this._view?this._view.update():this._view=new qt(this._targetInfo),this.showView(this._view),!1}get itemURL(){return this._targetInfo.url}}var Si=Object.freeze({__proto__:null,ApplicationPanelSidebar:ei,BackgroundServiceTreeElement:ti,DatabaseTreeElement:ii,DatabaseTableTreeElement:si,ServiceWorkersTreeElement:ri,AppManifestTreeElement:ai,ClearStorageTreeElement:ni,IndexedDBTreeElement:oi,IDBDatabaseTreeElement:di,IDBObjectStoreTreeElement:li,IDBIndexTreeElement:ci,DOMStorageTreeElement:hi,CookieTreeElement:ui,StorageCategoryView:_i,ResourcesSection:pi,FrameTreeElement:mi,FrameResourceTreeElement:vi});class fi extends C.VBox{constructor(t,i){super(!1),this._filterRegex=null,this._refreshButton=this._addButton(e.UIString("Refresh"),"largeicon-refresh",this.refreshItems),this._mainToolbar=new b.Toolbar("top-resources-toolbar",this.element),this._filterItem=new b.ToolbarInput(e.UIString("Filter"),"",.4),this._filterItem.addEventListener(b.ToolbarInput.Event.TextChanged,this._filterChanged,this);const s=new b.ToolbarSeparator;this._deleteAllButton=this._addButton(e.UIString("Clear All"),"largeicon-clear",this.deleteAllItems),this._deleteSelectedButton=this._addButton(e.UIString("Delete Selected"),"largeicon-delete",this.deleteSelectedItem),this._deleteAllButton.element.id="storage-items-delete-all";const r=[this._refreshButton,this._filterItem,s,this._deleteAllButton,this._deleteSelectedButton];for(const e of r)this._mainToolbar.appendToolbarItem(e)}setDeleteAllTitle(e){this._deleteAllButton.setTitle(e)}setDeleteAllGlyph(e){this._deleteAllButton.setGlyph(e)}appendToolbarItem(e){this._mainToolbar.appendToolbarItem(e)}_addButton(e,t,i){const s=new b.ToolbarButton(e,t);return s.addEventListener(b.ToolbarButton.Events.Click,i,this),s}_filterChanged(e){const t=e.data;this._filterRegex=t?new RegExp(p.escapeForRegExp(t),"i"):null,this.refreshItems()}filter(e,t){if(this._filterRegex){const i=this._filterRegex;return e.filter((e=>i.test(t(e))))}return e}hasFilter(){return Boolean(this._filterRegex)}wasShown(){this.refreshItems()}setCanDeleteAll(e){this._deleteAllButton.setEnabled(e)}setCanDeleteSelected(e){this._deleteSelectedButton.setEnabled(e)}setCanRefresh(e){this._refreshButton.setEnabled(e)}setCanFilter(e){this._filterItem.setEnabled(e)}deleteAllItems(){}deleteSelectedItem(){}refreshItems(){}}var yi=Object.freeze({__proto__:null,StorageItemsView:fi});class Ci extends C.VBox{constructor(){super(),this.setMinimumSize(230,45),this._cookie=null,this._showDecodedSetting=t.Settings.instance().createSetting("cookieViewShowDecoded",!1);const e=document.createElement("div");e.classList.add("cookie-preview-widget-header");const i=document.createElement("span");i.classList.add("cookie-preview-widget-header-label"),i.textContent="Cookie Value",e.appendChild(i),this.contentElement.appendChild(e);const s=x.CheckboxLabel.create(u`Show URL decoded`,this._showDecodedSetting.get());s.classList.add("cookie-preview-widget-toggle"),s.checkboxElement.addEventListener("click",(()=>this.showDecoded(!this._showDecodedSetting.get()))),e.appendChild(s),this._toggle=s;const r=document.createElement("div");r.classList.add("cookie-preview-widget-cookie-value"),r.textContent="",r.addEventListener("dblclick",this.handleDblClickOnCookieValue.bind(this)),this._value=r,this.contentElement.classList.add("cookie-preview-widget"),this.contentElement.appendChild(r)}showDecoded(e){this._cookie&&(this._showDecodedSetting.set(e),this._toggle.checkboxElement.checked=e,this._updatePreview())}_updatePreview(){this._cookie?this._value.textContent=this._showDecodedSetting.get()?decodeURIComponent(this._cookie.value()):this._cookie.value():this._value.textContent=""}setCookie(e){this._cookie=e,this._updatePreview()}handleDblClickOnCookieValue(e){e.preventDefault();const t=document.createRange();t.selectNode(this._value);const i=window.getSelection();i&&(i.removeAllRanges(),i.addRange(t))}}class ki extends fi{constructor(t,s){super(e.UIString("Cookies"),"cookiesPanel"),this.registerRequiredCSS("resources/cookieItemsView.css",{enableLegacyPatching:!1}),this.element.classList.add("storage-view"),this._model=t,this._cookieDomain=s,this._totalSize=0,this._cookiesTable=new Le.CookiesTable(!1,this._saveCookie.bind(this),this.refreshItems.bind(this),this._handleCookieSelected.bind(this),this._deleteCookie.bind(this)),this._cookiesTable.setMinimumSize(0,50),this._splitWidget=new y.SplitWidget(!1,!0,"cookieItemsSplitViewState"),this._splitWidget.show(this.element),this._previewPanel=new C.VBox;const r=this._previewPanel.element.createChild("div","preview-panel-resizer");this._splitWidget.setMainWidget(this._cookiesTable),this._splitWidget.setSidebarWidget(this._previewPanel),this._splitWidget.installResizer(r),this._previewWidget=new Ci,this._emptyWidget=new w.EmptyWidget(u`Select a cookie to preview its value`),this._emptyWidget.show(this._previewPanel.contentElement),this._onlyIssuesFilterUI=new b.ToolbarCheckbox(u`Only show cookies with an issue`,u`Only show cookies which have an associated issue`,(()=>{this._updateWithCookies(this._allCookies)})),this.appendToolbarItem(this._onlyIssuesFilterUI),this._refreshThrottler=new i.Throttler(300),this._eventDescriptors=[],this._allCookies=[],this._shownCookies=[],this._selectedCookie=null,this.setCookiesDomain(t,s)}setCookiesDomain(e,t){this._model=e,this._cookieDomain=t,this.refreshItems(),a.EventTarget.removeEventListeners(this._eventDescriptors);const i=e.target().model(X.NetworkManager);i&&(this._eventDescriptors=[i.addEventListener(X.Events.ResponseReceived,this._onResponseReceived,this),i.addEventListener(X.Events.LoadingFinished,this._onLoadingFinished,this)])}_showPreview(e){e!==this._selectedCookie&&(this._selectedCookie=e,e?(this._emptyWidget.detach(),this._previewWidget.setCookie(e),this._previewWidget.show(this._previewPanel.contentElement)):(this._previewWidget.detach(),this._emptyWidget.show(this._previewPanel.contentElement)))}_handleCookieSelected(){const e=this._cookiesTable.selectedCookie();this.setCanDeleteSelected(Boolean(e)),this._showPreview(e)}async _saveCookie(e,t){return t&&e.key()!==t.key()&&await this._model.deleteCookie(t),this._model.saveCookie(e)}_deleteCookie(e,t){this._model.deleteCookie(e).then(t)}_updateWithCookies(e){this._allCookies=e,this._totalSize=e.reduce(((e,t)=>e+t.size()),0);const t=s.ParsedURL.fromString(this._cookieDomain),i=t?t.host:"";this._cookiesTable.setCookieDomain(i),this._shownCookies=this.filter(e,(e=>`${e.name()} ${e.value()} ${e.domain()}`)),this.hasFilter()?(this.setDeleteAllTitle(u`Clear filtered cookies`),this.setDeleteAllGlyph("largeicon-delete-filter")):(this.setDeleteAllTitle(u`Clear all cookies`),this.setDeleteAllGlyph("largeicon-delete-list")),this._cookiesTable.setCookies(this._shownCookies,this._model.getCookieToBlockedReasonsMap()),f.alert(u`Number of cookies shown in table: ${this._shownCookies.length}`,this.element),this.setCanFilter(!0),this.setCanDeleteAll(this._shownCookies.length>0),this.setCanDeleteSelected(Boolean(this._cookiesTable.selectedCookie())),this._cookiesTable.selectedCookie()||this._showPreview(null)}filter(e,t){return super.filter(e,t).filter((e=>!this._onlyIssuesFilterUI.checked()||e instanceof te.Cookie&&Te.hasIssues(e)))}deleteAllItems(){this._showPreview(null),this._model.deleteCookies(this._shownCookies).then((()=>this.refreshItems()))}deleteSelectedItem(){const e=this._cookiesTable.selectedCookie();e&&(this._showPreview(null),this._model.deleteCookie(e).then((()=>this.refreshItems())))}refreshItems(){this._model.getCookiesForDomain(this._cookieDomain).then(this._updateWithCookies.bind(this))}refreshItemsThrottled(){this._refreshThrottler.schedule((()=>Promise.resolve(this.refreshItems())))}_onResponseReceived(){this.refreshItemsThrottled()}_onLoadingFinished(){this.refreshItemsThrottled()}}var Ii=Object.freeze({__proto__:null,CookieItemsView:ki});class Ei extends fi{constructor(t){super(e.UIString("DOM Storage"),"domStoragePanel"),this._domStorage=t,this.element.classList.add("storage-view","table");const i=[{id:"key",title:e.UIString("Key"),sortable:!1,editable:!0,longText:!0,weight:50},{id:"value",title:e.UIString("Value"),sortable:!1,editable:!0,longText:!0,weight:50}];this._dataGrid=new c.DataGridImpl({displayName:u`DOM Storage Items`,columns:i,editCallback:this._editingCallback.bind(this),deleteCallback:this._deleteCallback.bind(this),refreshCallback:this.refreshItems.bind(this)}),this._dataGrid.addEventListener(c.Events.SelectedNode,(e=>{this._previewEntry(e.data)})),this._dataGrid.addEventListener(c.Events.DeselectedNode,(e=>{this._previewEntry(null)})),this._dataGrid.setStriped(!0),this._dataGrid.setName("DOMStorageItemsView"),this._splitWidget=new y.SplitWidget(!1,!0,"domStorageSplitViewState"),this._splitWidget.show(this.element),this._previewPanel=new C.VBox,this._previewPanel.setMinimumSize(0,50);const s=this._previewPanel.element.createChild("div","preview-panel-resizer"),r=this._dataGrid.asWidget();r.setMinimumSize(0,50),this._splitWidget.setMainWidget(r),this._splitWidget.setSidebarWidget(this._previewPanel),this._splitWidget.installResizer(s),this._preview=null,this._previewValue=null,this._showPreview(null,null),this._eventListeners=[],this.setStorage(t)}setStorage(e){a.EventTarget.removeEventListeners(this._eventListeners),this._domStorage=e,this._eventListeners=[this._domStorage.addEventListener(ot.Events.DOMStorageItemsCleared,this._domStorageItemsCleared,this),this._domStorage.addEventListener(ot.Events.DOMStorageItemRemoved,this._domStorageItemRemoved,this),this._domStorage.addEventListener(ot.Events.DOMStorageItemAdded,this._domStorageItemAdded,this),this._domStorage.addEventListener(ot.Events.DOMStorageItemUpdated,this._domStorageItemUpdated,this)],this.refreshItems()}_domStorageItemsCleared(){this.isShowing()&&this._dataGrid&&(this._dataGrid.rootNode().removeChildren(),this._dataGrid.addCreationNode(!1),this.setCanDeleteSelected(!1))}_domStorageItemRemoved(e){if(!this.isShowing()||!this._dataGrid)return;const t=e.data,i=this._dataGrid.rootNode(),s=i.children;for(let e=0;e<s.length;++e){const r=s[e];if(r.data.key===t.key)return i.removeChild(r),void this.setCanDeleteSelected(s.length>1)}}_domStorageItemAdded(e){if(!this.isShowing()||!this._dataGrid)return;const t=e.data,i=this._dataGrid.rootNode(),s=i.children;for(let e=0;e<s.length;++e)if(s[e].data.key===t.key)return;const r=new c.DataGridNode({key:t.key,value:t.value},!1);i.insertChild(r,s.length-1)}_domStorageItemUpdated(e){if(!this.isShowing()||!this._dataGrid)return;const t=e.data,i=this._dataGrid.rootNode().children.find((e=>e.data.key===t.key));i&&i.data.value!==t.value&&(i.data.value=t.value,i.refresh(),i.selected&&(this._previewEntry(i),this.setCanDeleteSelected(!0)))}_showDOMStorageItems(e){const t=this._dataGrid.rootNode();let i=null;for(const e of t.children)if(e.selected){i=e.data.key;break}t.removeChildren();let s=null;const r=e=>`${e[0]} ${e[1]}`;for(const a of this.filter(e,r)){const e=a[0],r=a[1],n=new c.DataGridNode({key:e,value:r},!1);n.selectable=!0,t.appendChild(n),s&&e!==i||(s=n)}s&&(s.selected=!0),this._dataGrid.addCreationNode(!1),this.setCanDeleteSelected(Boolean(s))}deleteSelectedItem(){this._dataGrid&&this._dataGrid.selectedNode&&this._deleteCallback(this._dataGrid.selectedNode)}refreshItems(){this._domStorage.getItems().then((e=>e&&this._showDOMStorageItems(e)))}deleteAllItems(){this._domStorage.clear(),this._domStorageItemsCleared()}_editingCallback(e,t,i,s){const r=this._domStorage;"key"===t?("string"==typeof i&&r.removeItem(i),r.setItem(s,e.data.value||""),this._removeDupes(e)):r.setItem(e.data.key||"",s)}_removeDupes(e){const t=this._dataGrid.rootNode(),i=t.children;for(let s=i.length-1;s>=0;--s){const r=i[s];r.data.key===e.data.key&&e!==r&&t.removeChild(r)}}_deleteCallback(e){e&&!e.isCreationNode&&this._domStorage&&this._domStorage.removeItem(e.data.key)}_showPreview(t,i){this._preview&&this._previewValue===i||(this._preview&&this._preview.detach(),t||(t=new w.EmptyWidget(e.UIString("Select a value to preview"))),this._previewValue=i,this._preview=t,t.show(this._previewPanel.contentElement))}async _previewEntry(e){const t=e&&e.data&&e.data.value;if(e&&e.data&&e.data.value){const i=`${this._domStorage.isLocalStorage?"localstorage":"sessionstorage"}://${e.key}`,s=xe.StaticContentProvider.fromString(i,r.resourceTypes.XHR,t),a=await oe.PreviewFactory.createPreview(s,"text/plain");e.selected&&this._showPreview(a,t)}else this._showPreview(null,t)}}var Ti=Object.freeze({__proto__:null,DOMStorageItemsView:Ei});let Li;class xi extends W.PanelWithSidebar{constructor(){super("resources"),this.registerRequiredCSS("resources/resourcesPanel.css",{enableLegacyPatching:!1}),this._resourcesLastSelectedItemSetting=t.Settings.instance().createSetting("resourcesLastSelectedElementPath",[]),this.visibleView=null,this._pendingViewPromise=null,this._categoryView=null;const e=new C.VBox;this.storageViews=e.element.createChild("div","vbox flex-auto"),this._storageViewToolbar=new b.Toolbar("resources-toolbar",e.element),this.splitWidget().setMainWidget(e),this._domStorageView=null,this._cookieView=null,this._emptyWidget=null,this._sidebar=new ei(this),this._sidebar.show(this.panelSidebarElement())}static instance(e={forceNew:null}){const{forceNew:t}=e;return Li&&!t||(Li=new xi),Li}static _instance(){return xi.instance()}static _shouldCloseOnReset(e){return[de.ResourceSourceFrame,le.ImageView,ce.FontView,fi,Et,Rt].some((t=>e instanceof t))}focus(){this._sidebar.focus()}lastSelectedItemPath(){return this._resourcesLastSelectedItemSetting.get()}setLastSelectedItemPath(e){this._resourcesLastSelectedItemSetting.set(e)}resetView(){this.visibleView&&xi._shouldCloseOnReset(this.visibleView)&&this.showView(null)}showView(e){this._pendingViewPromise=null,this.visibleView!==e&&(this.visibleView&&this.visibleView.detach(),e&&e.show(this.storageViews),this.visibleView=e,this._storageViewToolbar.removeToolbarItems(),e instanceof v.SimpleView&&e.toolbarItems().then((e=>{e.map((e=>this._storageViewToolbar.appendToolbarItem(e))),this._storageViewToolbar.element.classList.toggle("hidden",!e.length)})))}async scheduleShowView(e){this._pendingViewPromise=e;const t=await e;return this._pendingViewPromise!==e?null:(this.showView(t),t)}showCategoryView(e,t){this._categoryView||(this._categoryView=new _i),this._categoryView.setText(e),this._categoryView.setLink(t),this.showView(this._categoryView)}showDOMStorage(e){e&&(this._domStorageView?this._domStorageView.setStorage(e):this._domStorageView=new Ei(e),this.showView(this._domStorageView))}showCookies(e,t){const i=e.model(Q.CookieModel);i&&(this._cookieView?this._cookieView.setCookiesDomain(i,t):this._cookieView=new ki(i,t),this.showView(this._cookieView))}clearCookies(e,t){const i=e.model(Q.CookieModel);i&&i.clear(t).then((()=>{this._cookieView&&this._cookieView.refreshItems()}))}}var Ri=Object.freeze({__proto__:null,ResourcesPanel:xi,ResourceRevealer:class{async reveal(e){if(!(e instanceof ie.Resource))return Promise.reject(new Error("Internal error: not a resource"));const t=xi._instance()._sidebar;await U.ViewManager.instance().showView("resources"),await t.showResource(e)}},CookieReferenceRevealer:class{async reveal(e){if(!(e instanceof te.CookieReference))throw new Error("Internal error: not a cookie reference");const t=xi._instance()._sidebar;await U.ViewManager.instance().showView("resources"),await t.cookieListTreeElement.select();const i=e.contextUrl();i&&await this._revealByDomain(t,i)||this._revealByDomain(t,e.domain())}async _revealByDomain(e,t){const i=e.cookieListTreeElement.children().find((e=>e.cookieDomain().endsWith(t)));return!!i&&(await i.revealAndSelect(),!0)}}});export{Qe as AppManifestView,Ve as ApplicationCacheItemsView,Fe as ApplicationCacheModel,Si as ApplicationPanelSidebar,Je as BackgroundServiceModel,tt as BackgroundServiceView,It as ClearStorageView,Ii as CookieItemsView,Ti as DOMStorageItemsView,ht as DOMStorageModel,nt as DatabaseModel,xt as DatabaseQueryView,Dt as DatabaseTableView,Bt as FrameDetailsView,wt as IndexedDBModel,Nt as IndexedDBViews,jt as OpenedWindowDetailsView,Ri as ResourcesPanel,je as ServiceWorkerCacheViews,zt as ServiceWorkerUpdateCycleHelper,Qt as ServiceWorkersView,yi as StorageItemsView,Zt as TrustTokensView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as RootModule from'../root/root.js';RootModule.Runtime.cachedResources.set("resources/appManifestView.css","/*\n * Copyright 2016 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n.report-field-name {\n flex-basis: 152px;\n}\n\n.manifest-view-header {\n min-width: 600px;\n flex-shrink: 0;\n flex-grow: 0;\n}\n\n.manifest-container {\n overflow: auto;\n}\n\n/*# sourceURL=resources/appManifestView.css */");RootModule.Runtime.cachedResources.set("resources/backgroundServiceView.css",".background-service-toolbar {\n background-color: var(--toolbar-bg-color);\n border-bottom: var(--divider-border);\n}\n\n.data-grid {\n flex: auto;\n border: none;\n}\n\n.background-service-preview {\n position: absolute;\n background-color: var(--color-background);\n justify-content: center;\n align-items: center;\n overflow: auto;\n font-size: 13px;\n color: #777;\n}\n\n.background-service-preview > div {\n max-width: 450px;\n margin: 10px;\n text-align: center;\n}\n\n.background-service-preview > div > p {\n flex: none;\n white-space: pre-line;\n}\n\n.background-service-shortcut {\n color: hsl(0deg 0% 50% / 100%);\n}\n\n.background-service-metadata {\n padding-left: 5px;\n padding-top: 10px;\n}\n\n.background-service-metadata-entry {\n padding-left: 10px;\n padding-bottom: 5px;\n}\n\n.background-service-metadata-name {\n color: rgb(33% 33% 33%);\n display: inline-block;\n margin-right: 0.25em;\n font-weight: bold;\n}\n\n.background-service-metadata-value {\n display: inline;\n margin-right: 1em;\n white-space: pre-wrap;\n word-break: break-all;\n user-select: text;\n}\n\n.background-service-empty-value {\n color: #888;\n font-style: italic;\n}\n\n.background-service-record-inline-button {\n margin-bottom: 6px;\n}\n\n/*# sourceURL=resources/backgroundServiceView.css */");RootModule.Runtime.cachedResources.set("resources/clearStorageView.css","/*\n * Copyright 2016 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.report-row {\n display: flex;\n align-items: center;\n white-space: normal;\n}\n\n.clear-storage-button .report-row {\n margin: 0 0 0 17px;\n display: flex;\n}\n\n.link {\n margin-left: 10px;\n display: none;\n}\n\n.report-row:hover .link {\n display: inline;\n}\n\n.quota-override-editor-with-button {\n align-items: baseline;\n display: flex;\n}\n\n.quota-override-notification-editor {\n border: solid 1px var(--color-background-highlight);\n display: flex;\n flex: auto;\n margin-right: 4px;\n max-width: 200px;\n min-width: 50px;\n min-height: 24px;\n padding-left: 4px;\n}\n\n.quota-override-notification-editor:focus {\n border: solid 1px var(--color-primary-variant);\n}\n\n.quota-override-error {\n padding-top: 10px;\n color: red;\n}\n\n.usage-breakdown-row {\n min-width: fit-content;\n}\n\n.clear-storage-container {\n overflow: auto;\n}\n\n.clear-storage-header {\n min-width: 400px;\n}\n\n.report-content-box {\n overflow: initial;\n}\n\n.include-third-party-cookies {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-left: 16px;\n}\n\n/*# sourceURL=resources/clearStorageView.css */");RootModule.Runtime.cachedResources.set("resources/indexedDBViews.css","/*\n * Copyright (C) 2012 Google Inc. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following disclaimer\n * in the documentation and/or other materials provided with the\n * distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n.indexed-db-data-view .data-view-toolbar {\n position: relative;\n background-color: var(--color-background-elevation-1);\n border-bottom: 1px solid var(--color-details-hairline);\n}\n\n.indexed-db-data-view .data-grid {\n flex: auto;\n}\n\n.indexed-db-data-view .data-grid .data-container tr:nth-last-child(1) {\n background-color: var(--color-background);\n}\n\n.indexed-db-data-view .data-grid .data-container tr:nth-last-child(1) td {\n border: 0;\n}\n\n.indexed-db-data-view .data-grid .data-container tr:nth-last-child(2) td {\n border-bottom: 1px solid var(--color-details-hairline);\n}\n\n.indexed-db-data-view .data-grid:focus .data-container tr.selected {\n background-color: var(--color-background-highlight);\n color: inherit;\n}\n\n.indexed-db-data-view .section,\n.indexed-db-data-view .section > .header,\n.indexed-db-data-view .section > .header .title {\n margin: 0;\n min-height: inherit;\n line-height: inherit;\n}\n\n.indexed-db-data-view .data-grid .data-container td .section .header .title {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.indexed-db-key-path {\n color: var(--color-accent-red);\n white-space: pre-wrap;\n unicode-bidi: -webkit-isolate;\n}\n\n.indexed-db-container {\n overflow: auto;\n}\n\n.indexed-db-header {\n min-width: 400px;\n flex-shrink: 0;\n flex-grow: 0;\n}\n\n.source-code.indexed-db-key-path {\n font-size: unset !important;\n}\n\n.resources-toolbar {\n padding-right: 10px;\n}\n\n.object-store-summary-bar {\n flex: 0 0 27px;\n line-height: 27px;\n padding-left: 5px;\n background-color: var(--color-background-elevation-1);\n border-top: 1px solid var(--color-details-hairline);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n/*# sourceURL=resources/indexedDBViews.css */");RootModule.Runtime.cachedResources.set("resources/resourcesPanel.css","/*\n * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.\n * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * 3. Neither the name of Apple Computer, Inc. (\"Apple\") nor the names of\n * its contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n.resources-toolbar {\n border-top: 1px solid var(--color-details-hairline);\n background-color: var(--color-background-elevation-1);\n}\n\n.top-resources-toolbar {\n border-bottom: 1px solid var(--color-details-hairline);\n background-color: var(--color-background-elevation-1);\n}\n\n.resources.panel .status {\n float: right;\n height: 16px;\n margin-top: 1px;\n margin-left: 4px;\n line-height: 1em;\n}\n\n.storage-view {\n display: flex;\n overflow: hidden;\n}\n\n.storage-view .data-grid:not(.inline) {\n border: none;\n flex: auto;\n}\n\n.storage-view .storage-table-error {\n color: var(--color-accent-red);\n font-size: 24px;\n font-weight: bold;\n padding: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.storage-view.query {\n padding: 2px 0;\n overflow-y: overlay;\n overflow-x: hidden;\n}\n\n.storage-view .filter-bar {\n border-top: none;\n border-bottom: 1px solid var(--color-details-hairline);\n}\n\n.database-query-group-messages {\n overflow-y: auto;\n}\n\n.database-query-prompt-container {\n position: relative;\n padding: 1px 22px 1px 24px;\n min-height: 16px;\n}\n\n.database-query-prompt {\n white-space: pre-wrap;\n}\n\n.prompt-icon {\n position: absolute;\n display: block;\n left: 7px;\n top: 9px;\n margin-top: -7px;\n user-select: none;\n}\n\n.database-query-prompt-container .prompt-icon {\n top: 10px;\n}\n\n.database-user-query {\n position: relative;\n border-bottom: 1px solid var(--color-details-hairline);\n padding: 1px 22px 1px 24px;\n min-height: 16px;\n flex-shrink: 0;\n}\n\n.database-user-query:focus-visible {\n background-color: var(--color-background-elevation-2);\n}\n\n.database-query-text {\n color: var(--color-primary-variant);\n user-select: text;\n}\n\n.database-query-result {\n position: relative;\n padding: 1px 22px 1px 22px;\n min-height: 16px;\n margin-left: -22px;\n padding-right: 0;\n}\n\n.database-query-result.error {\n color: var(--color-syntax-1);\n user-select: text;\n}\n\n.resources-sidebar {\n padding: 0;\n overflow-x: auto;\n}\n\n/*# sourceURL=resources/resourcesPanel.css */");RootModule.Runtime.cachedResources.set("resources/resourcesSidebar.css","/*\n * Copyright 2016 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.tree-outline {\n padding-left: 0;\n color: rgb(90 90 90);\n}\n\n.tree-outline > ol {\n padding-bottom: 10px;\n}\n\n.tree-outline li {\n min-height: 20px;\n}\n\nli.storage-group-list-item {\n padding: 10px 8px 6px 8px;\n}\n\nli.storage-group-list-item:not(:first-child) {\n border-top: 1px solid rgb(230 230 230);\n}\n\nli.storage-group-list-item::before {\n display: none;\n}\n\n.icons-container .red-icon {\n background-color: rgb(235 57 65);\n}\n\n.navigator-file-tree-item {\n background: linear-gradient(45deg, hsl(0deg 0% 50%), hsl(0deg 0% 70%));\n}\n\n.navigator-folder-tree-item {\n background: linear-gradient(45deg, hsl(210deg 82% 65%), hsl(210deg 82% 80%));\n}\n\n.navigator-script-tree-item {\n background: linear-gradient(45deg, hsl(48deg 70% 50%), hsl(48deg 70% 70%));\n}\n\n.navigator-stylesheet-tree-item {\n background: linear-gradient(45deg, hsl(256deg 50% 50%), hsl(256deg 50% 70%));\n}\n\n.navigator-image-tree-item,\n.navigator-font-tree-item {\n background: linear-gradient(45deg, hsl(109deg 33% 50%), hsl(109deg 33% 70%));\n}\n\n.resource-tree-item {\n background: rgb(90 90 90 / 70%);\n}\n\n.window-closed .tree-element-title {\n text-decoration: line-through;\n}\n\n/*# sourceURL=resources/resourcesSidebar.css */");RootModule.Runtime.cachedResources.set("resources/serviceWorkerCacheViews.css","/*\n * Copyright 2014 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.service-worker-cache-data-view .data-view-toolbar {\n position: relative;\n background-color: #eee;\n border-bottom: 1px solid #ccc;\n padding-right: 10px;\n}\n\n.service-worker-cache-data-view .data-grid {\n flex: auto;\n}\n\n.service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(1) td {\n border: 0;\n}\n\n.service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(2) td {\n border-bottom: 1px solid #aaa;\n}\n\n.service-worker-cache-data-view .data-grid .data-container tr.selected {\n background-color: rgb(212 212 212);\n color: inherit;\n}\n\n.service-worker-cache-data-view .data-grid:focus .data-container tr.selected {\n background-color: var(--selection-bg-color);\n color: white;\n}\n\n.service-worker-cache-data-view .section,\n.service-worker-cache-data-view .section > .header,\n.service-worker-cache-data-view .section > .header .title {\n margin: 0;\n min-height: inherit;\n line-height: inherit;\n}\n\n.service-worker-cache-data-view .data-grid .data-container td .section .header .title {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.cache-preview-panel-resizer {\n background-color: #eee;\n height: 4px;\n border-bottom: 1px solid rgb(64% 64% 64%);\n}\n\n.cache-storage-summary-bar {\n flex: 0 0 27px;\n line-height: 27px;\n padding-left: 5px;\n background-color: #eee;\n border-top: 1px solid #ccc;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n/*# sourceURL=resources/serviceWorkerCacheViews.css */");RootModule.Runtime.cachedResources.set("resources/serviceWorkersView.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.service-worker-version {\n display: flex;\n}\n\n.service-worker-version-stack {\n position: relative;\n}\n\n.service-worker-version-stack-bar {\n position: absolute;\n top: 10px;\n bottom: 20px;\n left: 4px;\n content: \"\";\n border-left: 1px solid var(--color-details-hairline);\n z-index: 0;\n}\n\n.service-worker-version:not(:last-child) {\n margin-bottom: 7px;\n}\n\n.service-worker-version-string {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.service-worker-active-circle,\n.service-worker-redundant-circle,\n.service-worker-waiting-circle,\n.service-worker-installing-circle {\n position: relative;\n display: inline-block;\n width: 10px;\n height: 10px;\n z-index: 10;\n margin-right: 5px;\n border-radius: 50%;\n border: 1px solid var(--color-text-secondary);\n align-self: center;\n}\n\n/* The circle's color does not change for light/dark mode on purpose */\n.service-worker-active-circle {\n background-color: #50b04f;\n}\n\n.service-worker-waiting-circle {\n background-color: #f38e24;\n}\n\n.service-worker-installing-circle {\n background-color: var(--color-background);\n}\n\n.service-worker-redundant-circle {\n background-color: gray;\n}\n\n.service-worker-subtitle {\n padding-left: 14px;\n line-height: 14px;\n color: var(--color-text-disabled);\n}\n\n.link {\n margin-left: 7px;\n}\n\n.service-worker-editor-with-button {\n align-items: baseline;\n display: flex;\n}\n\n.service-worker-notification-editor {\n border: 1px solid var(--color-details-hairline);\n display: flex;\n flex: auto;\n margin-right: 4px;\n max-width: 400px;\n min-width: 80px;\n}\n\n.report-field-value-filename,\n.service-worker-client-string {\n max-width: 400px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.report-field-value-filename {\n /* hack to prevent focus-ring from being cut off on the left */\n padding-left: 2px;\n margin-left: -2px;\n}\n\n.report-field-value-subtitle {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.service-worker-client {\n display: flex;\n}\n\n.service-worker-client-focus-link {\n flex: none;\n margin-right: 2px;\n align-self: center;\n}\n\n.service-worker-notification-editor.source-code {\n /** Simulate CodeMirror that is shown above */\n padding: 4px;\n}\n\n.service-worker-list {\n background-color: var(--color-background-elevation-1);\n overflow: auto;\n}\n\n.service-workers-this-origin {\n flex-shrink: 0;\n flex-grow: 0;\n}\n\n.service-workers-this-origin,\n.service-workers-other-origin {\n min-width: 400px;\n}\n\n.service-worker-has-current .service-workers-other-origin {\n margin-top: 16px;\n border-top: 1px solid var(--color-details-hairline);\n}\n\n.devtools-link {\n line-height: 14px;\n align-self: center;\n padding: 1px;\n}\n\nbutton.link {\n padding: 1px;\n}\n\nbutton.link:focus-visible {\n background-color: inherit;\n}\n\n/*# sourceURL=resources/serviceWorkersView.css */");RootModule.Runtime.cachedResources.set("resources/serviceWorkerUpdateCycleView.css","/*\n * Copyright 2020 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.resource-service-worker-update-view {\n display: block;\n margin: 6px;\n color: rgb(30% 30% 30%);\n overflow: auto;\n}\n\n.service-worker-update-timing-table {\n width: 380px;\n border-spacing: 0;\n padding-left: 10px;\n padding-right: 10px;\n line-height: initial;\n table-layout: fixed;\n}\n\n.service-worker-update-timing-start {\n border-top: 5px solid transparent;\n}\n\n.service-worker-update-timing-start th span.service-worker-update-timing-hidden-header {\n height: 1px;\n width: 1px;\n position: absolute;\n overflow: hidden;\n}\n\n.service-worker-update-timing-row {\n position: relative;\n height: 20px;\n}\n\n.service-worker-update-timing-bar {\n position: absolute;\n min-width: 1px;\n top: 0;\n bottom: 0;\n}\n\n.service-worker-update-timing-bar-title {\n color: #222;\n white-space: nowrap;\n text-align: right;\n}\n\n.service-worker-update-timing-bar-clickable::before {\n user-select: none;\n -webkit-mask-image: url(Images/treeoutlineTriangles.svg);\n -webkit-mask-position: 0 0;\n -webkit-mask-size: 32px 24px;\n float: left;\n width: 8px;\n height: 12px;\n margin-right: 2px;\n content: \"\";\n position: relative;\n top: 3px;\n background-color: rgb(110 110 110);\n}\n\n.service-worker-update-timing-bar-clickable {\n position: relative;\n left: -12px;\n}\n\n.service-worker-update-timing-bar-clickable:focus-visible {\n background-color: var(--toolbar-bg-color);\n}\n\n.service-worker-update-timing-bar-clickable[aria-checked=\"true\"]::before {\n -webkit-mask-position: -16px 0;\n}\n\n.service-worker-update-timing-bar-details-collapsed {\n display: none;\n}\n\n.service-worker-update-timing-bar-details-expanded {\n display: block;\n}\n\n.service-worker-update-timing-bar-details {\n padding-left: 11px;\n width: fit-content;\n}\n\n.service-worker-update-timing-bar.activate {\n top: 5px;\n height: 10px;\n background-color: #ff9800;\n}\n\n.service-worker-update-timing-bar.wait {\n top: 5px;\n height: 10px;\n background-color: #9c27b0;\n}\n\n.service-worker-update-timing-bar.install {\n top: 5px;\n height: 10px;\n background-color: #009688;\n}\n\n.service-worker-update-details-treeitem {\n width: max-content;\n}\n\n.service-worker-update-timing-table-header td {\n border-top: 5px solid transparent;\n color: #737373;\n}\n\n.service-worker-update-timing-table td {\n padding: 4px 0;\n}\n\ntable.service-worker-update-timing-table > tr:not(.service-worker-update-timing-table-header) > td:first-child {\n padding-left: 12px;\n}\n\n/*# sourceURL=resources/serviceWorkerUpdateCycleView.css */");RootModule.Runtime.cachedResources.set("resources/cookieItemsView.css","/*\n * Copyright 2019 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n.cookie-preview-widget {\n padding: 2px 6px;\n}\n\n.cookie-preview-widget-header {\n color: var(--color-text-secondary);\n font-weight: bold;\n user-select: none;\n white-space: nowrap;\n margin-bottom: 4px;\n flex: 0 0 18px;\n display: flex;\n align-items: center;\n}\n\n.cookie-preview-widget-header-label {\n line-height: 18px;\n}\n\n.cookie-preview-widget-cookie-value {\n user-select: text;\n word-break: break-all;\n flex: 1;\n overflow: auto;\n}\n\n.cookie-preview-widget-toggle {\n margin-left: 12px;\n font-weight: normal;\n}\n\n/*# sourceURL=resources/cookieItemsView.css */");RootModule.Runtime.cachedResources.set("resources/frameDetailsReportView.css","/*\n * Copyright 2020 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.report-content-box {\n overflow: initial;\n}\n\n.report-field-name {\n flex: 0 0 200px;\n}\n\n.report-field-value {\n user-select: text;\n display: flex;\n}\n\n.report-field .inline-name {\n color: var(--color-text-disabled);\n padding-left: 2ex;\n user-select: none;\n white-space: pre-line;\n}\n\n.report-field .inline-name::after {\n content: \":\\A0\";\n}\n\n.report-field .inline-comment {\n color: var(--color-text-secondary);\n padding-left: 1ex;\n white-space: pre-line;\n}\n\n.report-field .inline-comment::before {\n content: \"(\";\n}\n\n.report-field .inline-comment::after {\n content: \")\";\n}\n\n.report-field .inline-span {\n color: var(--color-text-secondary);\n padding-left: 1ex;\n white-space: pre-line;\n}\n\n.report-field-value-link {\n display: inline-block;\n}\n\n.icon-link.devtools-link {\n background-color: var(--color-link);\n vertical-align: sub;\n}\n\n.frame-details-container {\n overflow: auto;\n}\n\n.frame-details-report-container {\n min-width: 550px;\n}\n\n.text-ellipsis {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/*# sourceURL=resources/frameDetailsReportView.css */");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Runtime as o}from"./root.js";self.Root=self.Root||{},Root=Root||{},Root.Runtime=o.Runtime,Root.Runtime.experiments=o.experiments,Root.Runtime.queryParam=o.Runtime.queryParam,Root.runtime,Root.Runtime.loadResourcePromise=o.loadResourcePromise,Root.Runtime.Extension=o.Extension,Root.Runtime.Module=o.Module;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=console,t=console.assert,s=new URLSearchParams(location.search);let n,i,r,o="";const a=new WeakMap;class l{constructor(e){this._modules=[],this._modulesMap={},this._extensions=[],this._cachedTypeClasses={},this._descriptorsMap={};for(const t of e)this._registerModule(t)}static instance(e={forceNew:null,moduleDescriptors:null}){const{forceNew:t,moduleDescriptors:s}=e;if(!r||t){if(!s)throw new Error("Unable to create runtime: moduleDescriptors must be provided: "+(new Error).stack);r=new l(s)}return r}static removeInstance(){r=void 0}static normalizePath(e){if(-1===e.indexOf("..")&&-1===e.indexOf("."))return e;const t=[],s=e.split("/");for(const e of s)"."!==e&&(".."===e?t.pop():e&&t.push(e));let n=t.join("/");return"/"===n[n.length-1]||("/"===e[0]&&n&&(n="/"+n),"/"!==e[e.length-1]&&"."!==s[s.length-1]&&".."!==s[s.length-1]||(n+="/")),n}static queryParam(e){return s.get(e)}static _experimentsSetting(){try{return JSON.parse(self.localStorage&&self.localStorage.experiments?self.localStorage.experiments:"{}")}catch(e){return console.error("Failed to parse localStorage['experiments']"),{}}}static _assert(s,n){s||t.call(e,s,n+" "+(new Error).stack)}static setPlatform(e){o=e}static isDescriptorEnabled(e){const t=e.experiment;if("*"===t)return!0;if(t&&t.startsWith("!")&&m.isEnabled(t.substring(1)))return!1;if(t&&!t.startsWith("!")&&!m.isEnabled(t))return!1;const s=e.condition;return!(s&&!s.startsWith("!")&&!l.queryParam(s))&&!(s&&s.startsWith("!")&&l.queryParam(s.substring(1)))}static resolveSourceURL(e){let t=self.location.href;return self.location.search&&(t=t.replace(self.location.search,"")),t=t.substring(0,t.lastIndexOf("/")+1)+e,"\n/*# sourceURL="+t+" */"}static setL10nCallback(e){i=e}module(e){return this._modulesMap[e]}_registerModule(e){const t=new c(this,e);this._modules.push(t),this._modulesMap[e.name]=t}loadModulePromise(e){return this._modulesMap[e]._loadPromise()}loadAutoStartModules(e){const t=[];for(const s of e)t.push(this.loadModulePromise(s));return Promise.all(t)}_checkExtensionApplicability(e,t){if(!t)return!1;const s=e.descriptor().contextTypes;if(!s)return!0;for(let e=0;e<s.length;++e){const n=this._resolve(s[e]);if(n&&t(n))return!0}return!1}isExtensionApplicableToContext(e,t){return!t||this._checkExtensionApplicability(e,(function(e){return t instanceof e}))}isExtensionApplicableToContextTypes(e,t){if(!e.descriptor().contextTypes)return!0;let s=null;return t&&(s=e=>t.has(e)),this._checkExtensionApplicability(e,s)}extensions(e,t,s){return this._extensions.filter((function(s){if(s._type!==e&&s._typeClass()!==e)return!1;if(!s.enabled())return!1;return!t||s.isApplicable(t)})).sort(s?function(e,t){const s=e.title()||"",n=t.title()||"";return s.localeCompare(n)}:function(e,t){const s=e.descriptor().order||0,n=t.descriptor().order||0;return s-n})}extension(e,t){return this.extensions(e,t)[0]||null}allInstances(e,t){return Promise.all(this.extensions(e,t).map((e=>e.instance())))}_resolve(e){if(!this._cachedTypeClasses[e]){const t=e.split(".");let s=self;for(let e=0;s&&e<t.length;++e)s=s[t[e]];s&&(this._cachedTypeClasses[e]=s)}return this._cachedTypeClasses[e]||null}sharedInstance(e){const t=Object.getOwnPropertyDescriptor(e,"instance");if(t){const e=t.value;if(e instanceof Function)return e.call(null)}let s=a.get(e);return s||(s=new e,a.set(e,s)),s}}class c{constructor(e,t){this._manager=e,this._descriptor=t,this._name=t.name,this._extensions=[],this._extensionsByClassName=new Map;const s=t.extensions;for(let e=0;s&&e<s.length;++e){const t=new h(this,s[e]);this._manager._extensions.push(t),this._extensions.push(t)}this._loadedForTest=!1}name(){return this._name}enabled(){return l.isDescriptorEnabled(this._descriptor)}resource(e){const t=this._name+"/"+e,s=_.get(t);if(!s)throw new Error(t+" not preloaded. Check module.json");return s}_loadPromise(){if(!this.enabled())return Promise.reject(new Error("Module "+this._name+" is not enabled"));if(this._pendingLoadPromise)return this._pendingLoadPromise;const e=this._descriptor.dependencies,t=[];for(let s=0;e&&s<e.length;++s)t.push(this._manager._modulesMap[e[s]]._loadPromise());return this._pendingLoadPromise=Promise.all(t).then(this._loadModules.bind(this)).then((()=>(this._loadedForTest=!0,this._loadedForTest))),this._pendingLoadPromise}async _loadModules(){const e=this._name+"-legacy.js",t=this._name+"_module.js",s=this._name+".js";this._descriptor.modules.includes(t)&&await import(`../${this._name}/${t}`);const n=this._descriptor.modules.includes(e)?e:s;await import(`../${this._name}/${n}`)}_modularizeURL(e){return l.normalizePath(this._name+"/"+e)}fetchResource(e){return p(function(e,t){const s=(t||n)+e,i=s.indexOf("://")+3;let r=s.indexOf("/",i);-1===r&&(r=s.length);return s.substring(0,r)+l.normalizePath(s.substring(r))}(this._modularizeURL(e)))}substituteURL(e){return e.replace(/@url\(([^\)]*?)\)/g,function(e,t){return n+this._modularizeURL(t)}.bind(this))}}class h{constructor(e,t){this._module=e,this._descriptor=t,this._type=t.type,this._hasTypeClass="@"===this._type.charAt(0),this._className=t.className||null,this._factoryName=t.factoryName||null}descriptor(){return this._descriptor}module(){return this._module}enabled(){return this._module.enabled()&&l.isDescriptorEnabled(this.descriptor())}_typeClass(){return this._hasTypeClass?this._module._manager._resolve(this._type.substring(1)):null}isApplicable(e){return this._module._manager.isExtensionApplicableToContext(this,e)}instance(){return this._module._loadPromise().then(this._createInstance.bind(this))}canInstantiate(){return Boolean(this._className||this._factoryName)}_createInstance(){const e=this._className||this._factoryName;if(!e)throw new Error("Could not instantiate extension with no class");const t=self.eval(e);if(!(t instanceof Function))throw new Error("Could not instantiate: "+e);return this._className?this._module._manager.sharedInstance(t):new t(this)}title(){const e=this._descriptor["title-"+o]||this._descriptor.title;return e&&i?i(e):e}hasContextType(e){const t=this.descriptor().contextTypes;if(!t)return!1;for(let s=0;s<t.length;++s)if(e===this._module._manager._resolve(t[s]))return!0;return!1}}class u{constructor(){this._experiments=[],this._experimentNames=new Set,this._enabledTransiently=new Set,this._enabledByDefault=new Set,this._serverEnabled=new Set}allConfigurableExperiments(){const e=[];for(const t of this._experiments)this._enabledTransiently.has(t.name)||e.push(t);return e}enabledExperiments(){return this._experiments.filter((e=>e.isEnabled()))}_setExperimentsSetting(e){self.localStorage&&(self.localStorage.experiments=JSON.stringify(e))}register(e,t,s){l._assert(!this._experimentNames.has(e),"Duplicate registration of experiment "+e),this._experimentNames.add(e),this._experiments.push(new d(this,e,t,Boolean(s)))}isEnabled(e){return this._checkExperiment(e),!1!==l._experimentsSetting()[e]&&(!(!this._enabledTransiently.has(e)&&!this._enabledByDefault.has(e))||(!!this._serverEnabled.has(e)||Boolean(l._experimentsSetting()[e])))}setEnabled(e,t){this._checkExperiment(e);const s=l._experimentsSetting();s[e]=t,this._setExperimentsSetting(s)}enableExperimentsTransiently(e){for(const t of e)this._checkExperiment(t),this._enabledTransiently.add(t)}enableExperimentsByDefault(e){for(const t of e)this._checkExperiment(t),this._enabledByDefault.add(t)}setServerEnabledExperiments(e){for(const t of e)this._checkExperiment(t),this._serverEnabled.add(t)}enableForTest(e){this._checkExperiment(e),this._enabledTransiently.add(e)}clearForTest(){this._experiments=[],this._experimentNames.clear(),this._enabledTransiently.clear(),this._enabledByDefault.clear(),this._serverEnabled.clear()}cleanUpStaleExperiments(){const e=l._experimentsSetting(),t={};for(const{name:s}of this._experiments)if(e.hasOwnProperty(s)){const n=e[s];(n||this._enabledByDefault.has(s))&&(t[s]=n)}this._setExperimentsSetting(t)}_checkExperiment(e){l._assert(this._experimentNames.has(e),"Unknown experiment "+e)}}class d{constructor(e,t,s,n){this.name=t,this.title=s,this.unstable=n,this._experiments=e}isEnabled(){return this._experiments.isEnabled(this.name)}setEnabled(e){this._experiments.setEnabled(this.name,e)}}function p(e){return new Promise((function(t,s){const n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(i){if(n.readyState!==XMLHttpRequest.DONE)return;const{response:r}=i.target,o=/^HTTP\/1.1 404/.test(r)?404:n.status;-1===[0,200,304].indexOf(o)?s(new Error("While loading from url "+e+" server responded with a status of "+o)):t(r)},n.send(null)}))}!function(){const e=self.location?self.location.origin+self.location.pathname:"";n=e.substring(0,e.lastIndexOf("/")+1)}();const m=new u,_=new Map;let f;globalThis.EXPORTED_CACHED_RESOURCES_ONLY_FOR_LIGHTHOUSE=_;const x=new Promise((e=>{f=e}));var E=Object.freeze({__proto__:null,getRemoteBase:function(e=self.location.toString()){const t=new URL(e),s=t.searchParams.get("remoteBase");if(!s)return null;const n=/\/serve_file\/(@[0-9a-zA-Z]+)\/?$/.exec(s);return n?{base:`${t.origin}/remote/serve_file/${n[1]}/`,version:n[1]}:null},Runtime:l,ModuleDescriptor:class{constructor(){this.name,this.extensions,this.dependencies,this.scripts,this.modules,this.resources,this.condition,this.experiment}},RuntimeExtensionDescriptor:class{constructor(){this.type,this.className,this.factoryName,this.contextTypes,this.bindings,this.order,this.extension,this.actionId,this.experiment,this.condition,this.settingName,this.settingType,this.defaultValue,this.storageType,this.userActionCondition,this.startPage,this.name,this.destination,this.color,this.prefix,this.decoratorType,this.category,this.tags,this.reloadRequired,this.id,this.location,this.title,this.options,this.settings,this.device,this.viewId,this.persistence,this.setting,this.name,this.fileName,this.mimeTypes,this.dependencies}},Option:undefined,Module:c,Extension:h,ExperimentsSupport:u,Experiment:d,loadResourcePromise:p,experiments:m,cachedResources:_,get appStartedPromiseCallback(){return f},appStarted:x,ExperimentName:{CAPTURE_NODE_CREATION_STACKS:"captureNodeCreationStacks",CSS_OVERVIEW:"cssOverview",LIVE_HEAP_PROFILE:"liveHeapProfile",DEVELOPER_RESOURCES_VIEW:"developerResourcesView",TIMELINE_REPLAY_EVENT:"timelineReplayEvent",CSP_VIOLATIONS_VIEW:"cspViolationsView",WASM_DWARF_DEBUGGING:"wasmDWARFDebugging",ALL:"*",PROTOCOL_MONITOR:"protocolMonitor",WEBAUTHN_PANE:"webauthnPane"},ConditionName:{CAN_DOCK:"can_dock"}});export{E as Runtime};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ScreencastApp as e,ScreencastView as c}from"./screencast.js";self.Screencast=self.Screencast||{},Screencast=Screencast||{},Screencast.ScreencastApp=e.ScreencastApp,Screencast.ScreencastApp.ToolbarButtonProvider=e.ToolbarButtonProvider,Screencast.ScreencastAppProvider=e.ScreencastAppProvider,Screencast.ScreencastView=c.ScreencastView;
|