ember-native-devtools 1.0.3 → 3.0.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/README.md +190 -0
- package/package.json +32 -14
- package/src/README.md +207 -0
- package/src/example-usage.js +199 -0
- package/src/inspector-server.mjs +206 -0
- package/src/setup-inspector.js +147 -0
- package/bin/devtools.js +0 -97
- package/download/chrome-devtools-frontend.appspot.com/robots.txt/index.html +0 -4
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-pan.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-rotate.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/Images.js +0 -259
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-back.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-bottom.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-front.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-left.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-right.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-top.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/account-box.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-end.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-around.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-between.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-evenly.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-stretch.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-baseline.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-end.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-stretch.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-end.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-stretch.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-back.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-down.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-drop-down-dark.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-drop-down-light.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-forward.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up-down-circle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up-down.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bell.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bezier-curve-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bin.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bottom-panel-close.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bottom-panel-open.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brackets.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-circle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-crossed-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-crossed.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brush-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brush.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bug.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bundle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/calendar-today.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/check-circle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/check-double.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/checker.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/checkmark.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-double-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-down.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-left-dot.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-left.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-up.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeLeft.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeMiddle.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeRight.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/class.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/clear-list.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/clear.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cloud.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/code-circle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/code.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/colon.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/color-picker-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/color-picker.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/console-conditional-breakpoint.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/console-logpoint.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cookie.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/copy.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/corporate-fare.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/credit-card.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross-circle-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross-circle.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cssoverview_icons_2x.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/custom-typography.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/database.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/deployed.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/device-fold.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/devices.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/devtools.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-bottom.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-left.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-window.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/document.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dog-paw.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dots-horizontal.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dots-vertical.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/download.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/edit.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/empty.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/errorWave.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/exclamation.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/experiment-check.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/experiment.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/extension.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/eye.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-document.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-fetch-xhr.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-font.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-generic.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-image.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-json.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-manifest.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-media.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-script.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-snippet.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-stylesheet.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-wasm.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-websocket.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter-clear.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-direction.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-no-wrap.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-wrap.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flow.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/fold-more.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/folder.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame-crossed.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame-icon.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gear-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gear.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gears.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/globe.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/google.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/goto-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/heap-snapshot.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/heap-snapshots.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/help.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/hover.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/iframe-crossed.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/iframe.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/import.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/indeterminate-question-box.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/info-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/info.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-cross-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-exclamation-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-questionmark-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-text-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-end.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-around.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-between.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-evenly.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-center.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-end.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-stretch.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard-arrow-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard-pen.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/large-arrow-right-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/layers-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/layers.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/left-panel-close.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/left-panel-open.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lightbulb-spark.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lightbulb.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lighthouse_logo.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/list.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/location-on.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lock.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/match-case.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/match-whole-word.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/memory.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/minus.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/mop.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/mouse.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/navigationControls.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/navigationControls_2x.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/network-settings.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/nodeIcon.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/open-externally.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/pause.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/pen-spark.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/performance.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/person.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/play.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/plus.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/policy.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/popoverArrows.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/popup.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/preview_feature_video_thumbnail.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/profile.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/psychiatry.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/record-start.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/record-stop.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/redo.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/refresh.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/regular-expression.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/replace.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/replay.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/report.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeDiagonal.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeHorizontal.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeVertical.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resume.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/review.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/right-panel-close.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/right-panel-open.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/scissors.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/screen-rotation.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/search.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/select-element.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/send.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/shadow.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/small-status-dot.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/snippet.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/spark-info.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/spark.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/star.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-into.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-out.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-over.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/stop.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/symbol.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/sync.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/table.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/thumb-down.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/thumb-up.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/toolbarResizerVertical.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/top-panel-close.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/top-panel-open.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touch-app.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touchCursor.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touchCursor_2x.png +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-bottom-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-down.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-left.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-right.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-up.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/tune.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/undo.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/warning-filled.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/warning.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/watch.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/whatsnew.avif +0 -0
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/width.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/zoom-in.svg +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/common/common.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/dom_extension/dom_extension.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/host/host.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/i18n/i18n.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/i18n/locales/en-US.json +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/platform/platform.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/protocol_client/protocol_client.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/root/root.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/sdk/sdk.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/devtools_app.html +0 -18
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/devtools_compatibility.js +0 -1774
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ember_app.html +0 -26
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/devtools_app/devtools_app.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/formatter_worker/formatter_worker-entrypoint.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/formatter_worker/formatter_worker.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/inspector/inspector.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/inspector_main/inspector_main.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/lighthouse_worker/lighthouse_worker.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/main/main.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/shell/shell.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/wasmparser_worker/wasmparser_worker.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/inspector.html +0 -18
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/autofill_manager/autofill_manager.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/bindings/bindings.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/breakpoints/breakpoints.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/cpu_profile/cpu_profile.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/crux-manager/crux-manager.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/emulation/emulation.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/extensions/extensions.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/formatter/formatter.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/har/har.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/heap_snapshot_model/heap_snapshot_model.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/issues_manager/issues_manager.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/javascript_metadata/javascript_metadata.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/live-metrics.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/web-vitals-injected/spec/spec.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/logs/logs.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/persistence/persistence.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/source_map_scopes/source_map_scopes.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/text_utils/text_utils.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/timeline_model/timeline_model.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/extras/extras.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/handlers/handlers.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/helpers/helpers.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/insights/insights.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/core/core.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/graph/graph.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/lantern.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/metrics/metrics.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/simulation/simulation.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/types/types.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/root-causes/root-causes.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/trace.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/types/types.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/workspace/workspace.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/workspace_diff/workspace_diff.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/accessibility/accessibility.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/animation/animation.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/application.js +0 -41
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/components/components.js +0 -614
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/preloading/components/components.js +0 -292
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/preloading/helper/helper.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/autofill/autofill.js +0 -88
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/browser_debugger/browser_debugger.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/changes/changes.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/console/console.js +0 -6
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/console_counters/console_counters.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/coverage/coverage.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/css_overview/components/components.js +0 -23
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/css_overview/css_overview.js +0 -147
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/developer_resources/developer_resources.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/elements/components/components.js +0 -272
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/elements/elements.js +0 -8
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/emulation/components/components.js +0 -39
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/emulation/emulation.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/event_listeners/event_listeners.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/explain/explain.js +0 -203
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/freestyler/freestyler.js +0 -177
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/issues/components/components.js +0 -14
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/issues/issues.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/layer_viewer/layer_viewer.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/layers/layers.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/lighthouse/lighthouse.js +0 -64
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/linear_memory_inspector/components/components.js +0 -177
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/linear_memory_inspector/linear_memory_inspector.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/media/media.js +0 -25
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/mobile_throttling/mobile_throttling.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/components/components.js +0 -315
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/forward/forward.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/network.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/performance_monitor/performance_monitor.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/profiler/profiler.js +0 -8
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/protocol_monitor/components/components.js +0 -180
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/protocol_monitor/protocol_monitor.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/components/components.js +0 -714
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/controllers/controllers.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/converters/converters.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/extensions/extensions.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/injected/injected.generated.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/models/models.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/recorder.js +0 -120
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/util/util.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/screencast/screencast.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/search/search.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/security/security.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sensors/sensors.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/components/components.js +0 -23
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/components/components.js +0 -222
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/emulation.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/utils/utils.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/settings.js +0 -130
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/snippets/snippets.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sources/components/components.js +0 -162
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sources/sources.js +0 -14
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/components/components.js +0 -623
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/components/insights/insights.js +0 -85
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/extensions/extensions.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/overlays/components/components.js +0 -52
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/overlays/overlays.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/timeline.js +0 -4
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/utils/utils.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/utils/utils.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/web_audio/graph_visualizer/graph_visualizer.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/web_audio/web_audio.js +0 -23
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/webauthn/webauthn.js +0 -6
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/puppeteer/puppeteer.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/trace_bounds/trace_bounds.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/tracing/tracing.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/window_bounds/window_bounds.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/setup-ember-extension.js +0 -160
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/acorn/acorn.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/chromium/client-variations/client-variations.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/angular.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/codemirror.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/cpp.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/java.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/legacy.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/less.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/markdown.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/php.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/python.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/sass.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/svelte.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/vue.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/wast.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/xml.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/codemirror.next.js +0 -2
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/csp_evaluator/csp_evaluator.js +0 -194
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/diff/diff.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/i18n/i18n.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/intl-messageformat/intl-messageformat.js +0 -15
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lighthouse/lighthouse-dt-bundle.js +0 -2137
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lighthouse/report/report.js +0 -39
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lit/lit.js +0 -110
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/marked/marked.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer/debug/index.html +0 -4
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer/puppeteer.js +0 -378
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/lighthouse/index.html +0 -4
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/puppeteer/index.html +0 -4
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/puppeteer-replay.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/wasmparser/wasmparser.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/adorners/adorners.js +0 -3
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/buttons/buttons.js +0 -11
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/chrome_link/chrome_link.js +0 -5
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/code_highlighter/code_highlighter.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/data_grid/data_grid.js +0 -69
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/dialogs/dialogs.js +0 -81
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/diff_view/diff_view.js +0 -8
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/expandable_list/expandable_list.js +0 -17
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/helpers/helpers.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/highlighting/highlighting.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/icon_button/icon_button.js +0 -12
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/input/input.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/issue_counter/issue_counter.js +0 -9
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/legacy_wrapper/legacy_wrapper.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/linkifier/linkifier.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/markdown_view/markdown_view.js +0 -41
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/menus/menus.js +0 -73
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/node_text/node_text.js +0 -3
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/panel_feedback/panel_feedback.js +0 -37
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/panel_introduction_steps/panel_introduction_steps.js +0 -9
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/render_coordinator/render_coordinator.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/report_view/report_view.js +0 -21
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/request_link_icon/request_link_icon.js +0 -8
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/settings/settings.js +0 -16
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/split_view/split_view.js +0 -9
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/srgb_overlay/srgb_overlay.js +0 -6
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/suggestion_input/suggestion_input.js +0 -29
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/switch/switch.js +0 -10
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/text_editor/text_editor.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/text_prompt/text_prompt.js +0 -3
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/tree_outline/tree_outline.js +0 -30
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/color_picker/color_picker.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/cookie_table/cookie_table.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/data_grid/data_grid.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/inline_editor/inline_editor.js +0 -46
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/object_ui/object_ui.js +0 -9
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/perf_ui/perf_ui.js +0 -59
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/quick_open/quick_open.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/source_frame/source_frame.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/utils/utils.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/legacy.js +0 -3
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/theme_support/theme_support.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/lit-html/lit-html.js +0 -1
- package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/visual_logging/visual_logging.js +0 -1
- package/download/googlechrome.github.io/lighthouse/scorecalc/calc.js +0 -838
- package/download/googlechrome.github.io/lighthouse/scorecalc/index.html +0 -78
- package/download/googlechrome.github.io/lighthouse/scorecalc/style.css +0 -554
- package/download/wicg.github.io/attribution-reporting-api/validate-headers/index.html +0 -104
- package/download/wicg.github.io/attribution-reporting-api/validate-headers.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as t from"../../../core/platform/platform.js";import*as e from"../../../core/common/common.js";import*as n from"../types/types.js";const r=[],i=new Map;let s=null;class o{#t=[];#e=[];static initAndActivate(t){const e=i.get(t);if(e)s=e;else{const e=new o(t);i.set(t,e),s=e}return s}static getActiveManager(){if(!s)throw new Error("Attempted to get a SyntheticEventsManager without initializing");return s}static reset(){r.length=0,s=null}static registerSyntheticBasedEvent(t){try{return o.getActiveManager().registerSyntheticBasedEvent(t)}catch(e){return t}}static registerServerTiming(t){return t}constructor(t){this.#e=t}registerSyntheticBasedEvent(t){const e=this.#e.indexOf(t.rawSourceEvent);if(e<0)throw new Error("Attempted to register a synthetic event paired to an unknown raw event.");const n=t;return this.#t[e]=n,n}syntheticEventForRawEventIndex(t){const e=this.#t.at(t);if(!e)throw new Error(`Attempted to get a synthetic event from an unknown raw event index: ${t}`);return e}getSyntheticTraceEvents(){return this.#t}getRawTraceEvents(){return this.#e}}var a=Object.freeze({__proto__:null,SyntheticEventsManager:o});const c=t=>n.Timing.MicroSeconds(1e3*t),l=t=>n.Timing.MilliSeconds(1e3*t),u=t=>n.Timing.MilliSeconds(t/1e3),d=t=>n.Timing.Seconds(t/1e3/1e3);function m(t){return{startTime:t.ts,endTime:n.Timing.MicroSeconds(t.ts+(t.dur||n.Timing.MicroSeconds(0))),duration:n.Timing.MicroSeconds(t.dur||0)}}var h=Object.freeze({__proto__:null,millisecondsToMicroseconds:c,secondsToMilliseconds:l,secondsToMicroseconds:t=>c(l(t)),microSecondsToMilliseconds:u,microSecondsToSeconds:d,timeStampForEventAdjustedByClosestNavigation:function(t,e,r,i){let s=t.ts-e.min;if(t.args?.data?.navigationId){const e=r.get(t.args.data.navigationId);e&&(s=t.ts-e.ts)}else if(t.args?.data?.frame){const e=v(t,t.args.data.frame,i);e&&(s=t.ts-e.ts)}return n.Timing.MicroSeconds(s)},eventTimingsMicroSeconds:m,eventTimingsMilliSeconds:function(t){const e=m(t);return{startTime:u(e.startTime),endTime:u(e.endTime),duration:u(e.duration)}},eventTimingsSeconds:function(t){const e=m(t);return{startTime:d(e.startTime),endTime:d(e.endTime),duration:d(e.duration)}},traceWindowMilliSeconds:function(t){return{min:u(t.min),max:u(t.max),range:u(t.range)}},traceWindowMillisecondsToMicroSeconds:function(t){return{min:c(t.min),max:c(t.max),range:c(t.range)}},traceWindowFromMilliSeconds:function(t,e){return{min:c(t),max:c(e),range:n.Timing.MicroSeconds(c(e)-c(t))}},traceWindowFromMicroSeconds:function(t,e){return{min:t,max:e,range:n.Timing.MicroSeconds(e-t)}},boundsIncludeTimeRange:function(t){const{min:e,max:n}=t.bounds,{min:r,max:i}=t.timeRange;return e<=i&&n>=r},timestampIsInBounds:function(t,e){return e>=t.min&&e<=t.max}});function f(t){return t.args?.data?.stackTrace?t.args.data.stackTrace:t.args?.stackTrace?t.args.stackTrace:n.TraceEvents.isTraceEventUpdateLayoutTree(t)?t.args.beginData?.stackTrace||null:n.Extensions.isSyntheticExtensionEntry(t)||n.TraceEvents.isSyntheticUserTiming(t)?f(t.rawSourceEvent):null}function g(t,e){const n=t.ts,r=e.ts;if(n<r)return-1;if(n>r)return 1;const i=n+(t.dur??0),s=r+(e.dur??0);return i>s?-1:i<s?1:0}function p(t){t.sort(g)}function S(t,e){const n=[];let r=0,i=0;for(;r<t.length&&i<e.length;){const s=t[r],o=e[i],a=g(s,o);a<=0&&(n.push(s),r++),1===a&&(n.push(o),i++)}for(;r<t.length;)n.push(t[r++]);for(;i<e.length;)n.push(e[i++]);return n}function v(e,n,r){const i=r.get(n);if(!i||""===n)return null;const s=t.ArrayUtilities.nearestIndexFromEnd(i,(t=>t.ts<=e.ts));return null===s?null:i[s]}function T(t){return t.id??t.id2?.global??t.id2?.local}function E(t,e,r,i,s,o){return{cat:"",name:"ProfileCall",nodeId:t.id,args:{},ph:"X",pid:s,tid:o,ts:i,dur:n.Timing.MicroSeconds(0),callFrame:t.callFrame,sampleIndex:r,profileId:e}}function k(e){const n=new Map;for(const r of e){const e=y(r);if(void 0===e)continue;const i=t.MapUtilities.getWithDefault(n,e,(()=>({begin:null,end:null,instant:[]}))),s="b"===r.ph,o="e"===r.ph,a="n"===r.ph;s?i.begin=r:o?i.end=r:a&&(i.instant||(i.instant=[]),i.instant.push(r))}return n}function y(t){const e=T(t);return e&&`${t.cat}:${e}:${t.name}`}function M(t,e){const r=[];for(const[s,a]of t.entries()){const c=a.begin,l=a.end,u=a.instant;if(!c||!l&&!u)continue;const d={beginEvent:c,endEvent:l,instantEvents:u};function i(t){const e=!!t.instantEvents&&t.instantEvents.some((t=>s===y(t))),n=!!t.endEvent&&s===y(t.endEvent);return Boolean(s)&&(e||n)}if(!i(d))continue;const m=l||c,h=o.registerSyntheticBasedEvent({rawSourceEvent:c,cat:m.cat,ph:m.ph,pid:m.pid,tid:m.tid,id:s,name:c.name,dur:n.Timing.MicroSeconds(m.ts-c.ts),ts:c.ts,args:{data:d}});h.dur<0||(e?.(h),r.push(h))}return r.sort(((t,e)=>t.ts-e.ts))}function b(t){const e={...t};return e.lineNumber=t.lineNumber&&t.lineNumber-1,e.columnNumber=t.columnNumber&&t.columnNumber-1,e}const I="disabled-by-default-devtools.timeline";function w(t){return"JSRoot"===t.name&&"toplevel"===t.cat||t.cat.includes(I)&&"RunTask"===t.name}function N(e,n){let r=t.ArrayUtilities.upperBound(e,n,((t,e)=>t-e.ts))-1;for(;r>0&&!w(e[r]);)r--;return Math.max(r,0)}const x=new Map;var J=Object.freeze({__proto__:null,extractOriginFromTrace:function(t){const n=e.ParsedURL.ParsedURL.fromString(t);return n?n.host.startsWith("www.")?n.host.slice(4):n.host:null},addEventToProcessThread:function(t,e){const{tid:n,pid:r}=t;let i=e.get(r);i||(i=new Map);let s=i.get(n);s||(s=[]),s.push(t),i.set(t.tid,s),e.set(t.pid,i)},eventTimeComparator:g,sortTraceEventsInPlace:p,mergeEventsInOrder:S,getNavigationForTraceEvent:v,extractId:T,activeURLForFrameAtTime:function(t,e,n){const r=n.get(t);if(!r)return null;for(const t of r.values())for(const n of t)if(!(n.window.min>e||n.window.max<e))return n.frame.url;return null},makeProfileCall:E,matchEvents:k,createSortedSyntheticEvents:M,createMatchedSortedSyntheticEvents:function(t,e){return M(k(t),e)},getZeroIndexedLineAndColumnForEvent:function(t){const e=function(t){if(!t.args?.data)return{lineNumber:void 0,columnNumber:void 0};let e,n;"lineNumber"in t.args.data&&"number"==typeof t.args.data.lineNumber&&(e=t.args.data.lineNumber);"columnNumber"in t.args.data&&"number"==typeof t.args.data.columnNumber&&(n=t.args.data.columnNumber);return{lineNumber:e,columnNumber:n}}(t),{lineNumber:n,columnNumber:r}=e;switch(t.name){case"FunctionCall":case"EvaluateScript":case"v8.compile":case"v8.produceCache":return{lineNumber:"number"==typeof n?n-1:void 0,columnNumber:"number"==typeof r?r-1:void 0};default:return e}},getZeroIndexedStackTraceForEvent:function(t){const e=f(t);return e?e.map((e=>{switch(t.name){case"ScheduleStyleRecalculation":case"InvalidateLayout":case"UpdateLayoutTree":return b(e);default:if(n.TraceEvents.isTraceEventUserTiming(t)||n.Extensions.isSyntheticExtensionEntry(t))return b(e)}return e})):null},makeZeroBasedCallFrame:b,frameIDForEvent:function(t){return t.args&&"beginData"in t.args&&"object"==typeof t.args.beginData&&null!==t.args.beginData&&"frame"in t.args.beginData&&"string"==typeof t.args.beginData.frame?t.args.beginData.frame:t.args?.data?.frame?t.args.data.frame:null},isTopLevelEvent:w,findUpdateLayoutTreeEvents:function(t,e,r){const i=[];for(let s=N(t,e);s<t.length;s++){const e=t[s];n.TraceEvents.isTraceEventUpdateLayoutTree(e)&&(e.ts>=(r||1/0)||i.push(e))}return i},forEachEvent:function(t,e){const r=e.startTime||n.Timing.MicroSeconds(0),i=e.endTime||n.Timing.MicroSeconds(1/0),s=!1!==e.ignoreAsyncEvents,o=[];for(let a=N(t,r);a<t.length;a++){const c=t[a],l=m(c);if(l.endTime<r)continue;if(l.startTime>i)break;if(s&&n.TraceEvents.isAsyncPhase(c.ph)||n.TraceEvents.isFlowPhase(c.ph))continue;let u=o.at(-1),d=u?m(u).endTime:null;for(;u&&d&&d<=l.startTime;)o.pop(),e.onEndEvent(u),u=o.at(-1),d=u?m(u).endTime:null;e.eventFilter&&!e.eventFilter(c)||(l.duration?(e.onStartEvent(c),o.push(c)):e.onInstantEvent&&e.onInstantEvent(c))}for(;o.length;){const t=o.pop();t&&e.onEndEvent(t)}},eventHasCategory:function(t,e){let n=x.get(t.cat);return n||(n=new Set(t.cat.split(",")||[])),n.has(e)},nodeIdForInvalidationEvent:function(t){return t.args.data.nodeId??null}});let F=0;const C=()=>++F,_=()=>({roots:new Set,maxDepth:0}),D=(t,e)=>({entry:t,id:e,parent:null,children:[],depth:0});function P(t,e){const r=new Map,i=[];F=-1;const s=_();for(let o=0;o<t.length;o++){const a=t[o];if(e&&!e.filter.has(a.name))continue;const c=a.dur||0,l=C(),u=D(a,l);if(0===i.length){s.roots.add(u),u.selfTime=n.Timing.MicroSeconds(c),i.push(u),s.maxDepth=Math.max(s.maxDepth,i.length),r.set(a,u);continue}const d=i.at(-1);if(void 0===d)throw new Error("Impossible: no parent node found in the stack");const m=d.entry,h=a.ts,f=m.ts,g=h+c,p=f+(m.dur||0);if(h<f)throw new Error("Impossible: current event starts before the parent event");if(h>=p){i.pop(),o--,F--;continue}g>p||(u.depth=i.length,u.parent=d,d.children.push(u),u.selfTime=n.Timing.MicroSeconds(c),void 0!==d.selfTime&&(d.selfTime=n.Timing.MicroSeconds(d.selfTime-(a.dur||0))),i.push(u),s.maxDepth=Math.max(s.maxDepth,i.length),r.set(a,u))}return{tree:s,entryToNode:r}}function B(t,e,r,i,s,o){if(!s||function(t,e){const n=t.entry.ts,r=t.entry.ts+(t.entry.dur||0);if(n>=e.min&&n<e.max)return!0;if(r>e.min&&r<=e.max)return!0;if(n<=e.min&&r>=e.max)return!0;return!1}(e,s)){if(void 0!==o){if(n.Timing.MicroSeconds(e.entry.ts+n.Timing.MicroSeconds(e.entry.dur||0))<o)return}r(e.entry);for(const n of e.children)B(t,n,r,i,s,o);i(e.entry)}}function R(t){const e=[];for(const n of t){const t=n.ts,r=n.ts+(n.dur||0);let i=e.at(-1);if(void 0===i){e.push(n);continue}let s=i.ts+(i.dur||0);for(;e.length&&t>=s&&(e.pop(),i=e.at(-1),void 0!==i);)s=i.ts+(i.dur||0);if(e.length&&r>s)return!1;e.push(n)}return!0}var A=Object.freeze({__proto__:null,makeTraceEntryNodeId:C,makeEmptyTraceEntryTree:_,makeEmptyTraceEntryNode:D,treify:P,walkTreeFromEntry:function(t,e,n,r){const i=t.get(e);i&&B(t,i,n,r)},walkEntireTree:function(t,e,n,r,i,s){for(const o of e.roots)B(t,o,n,r,i,s)},canBuildTreesFromEvents:R});var j=Object.freeze({__proto__:null,buildTrackDataFromExtensionEntries:function(e,n,r){const i=new Map;for(const n of e){const e=n.args.trackGroup||`track-name-${n.args.track}`,r=t.MapUtilities.getWithDefault(i,e,(()=>({name:n.args.trackGroup||n.args.track,isTrackGroup:Boolean(n.args.trackGroup),entriesByTrack:{[n.args.track]:[]}})));r.entriesByTrack[n.args.track]||(r.entriesByTrack[n.args.track]=[]);r.entriesByTrack[n.args.track].push(n)}for(const t of i.values()){for(const e of Object.values(t.entriesByTrack))if(p(e),R(e))for(const[t,n]of P(e).entryToNode)r.set(t,n);n.push(t)}return{extensionTrackData:n,entryToNode:r}}});var U=Object.freeze({__proto__:null,isSyntheticNetworkRequestEventRenderBlocking:function(t){return"non_blocking"!==t.args.data.renderBlocking}});class O{#n=[];#r=[];#i;#s;#o=[];#a=!1;#c;#l=new Map;#u;#d;jsSampleEvents=[];constructor(t,e,r,i,s){this.#c=t,this.#s=i,this.#i=r,this.#u=s||n.Configuration.defaults(),this.#d=e}buildProfileCalls(t){const e=S(t,this.callsFromProfileSamples()),r=[];for(let t=0;t<e.length;t++){const i=e[t];if("I"===i.ph)continue;if(0===r.length){if(n.TraceEvents.isProfileCall(i)){this.#m(i);continue}r.push(i),this.#h(i);continue}const s=r.at(-1);if(void 0===s)continue;i.ts>=s.ts+(s.dur||0)?(this.#f(s),r.pop(),t--):n.TraceEvents.isProfileCall(i)?this.#m(i,s):(this.#h(i),r.push(i))}for(;r.length;){const t=r.pop();t&&this.#f(t)}return this.#n}#h(t){"RunMicrotasks"!==t.name&&"RunTask"!==t.name||(this.#o=[],this.#g(0,t.ts),this.#a=!1),this.#a&&(this.#g(this.#o.pop()||0,t.ts),this.#a=!1),this.#p(t),this.#o.push(this.#r.length)}#m(t,e){if(e&&n.TraceEvents.isJSInvocationEvent(e)||this.#a)this.#p(t);else if(n.TraceEvents.isProfileCall(t)&&0===this.#r.length){this.#a=!0;const e=this.#r.length;this.#p(t),this.#o.push(e)}}#f(t){const e=n.Timing.MicroSeconds(t.ts+(t.dur||0));this.#g(this.#o.pop()||0,e)}callsFromProfileSamples(){const t=this.#c.samples,e=this.#c.timestamps,r=this.#u.debugMode;if(!t)return[];const i=[];let s;for(let o=0;o<t.length;o++){const t=this.#c.nodeByIndex(o),a=c(n.Timing.MilliSeconds(e[o]));if(!t)continue;const l=E(t,this.#d,o,a,this.#i,this.#s);i.push(l),r&&this.jsSampleEvents.push(this.#S(l,a)),t.id===this.#c.gcNode?.id&&s?this.#l.set(l,s):s=t}return i}#v(t){let e=this.#c.nodeById(t.nodeId);const n=e?.id===this.#c.gcNode?.id;if(n&&(e=this.#l.get(t)||null),!e)return[];const r=new Array(e.depth+1+Number(n));let i=r.length-1;for(n&&(r[i--]=t);e;)r[i--]=E(e,t.profileId,t.sampleIndex,t.ts,this.#i,this.#s),e=e.parent;return r}#p(t){const e=n.TraceEvents.isProfileCall(t)?this.#v(t):this.#r;O.filterStackFrames(e,this.#u);const r=t.ts+(t.dur||0),i=Math.min(e.length,this.#r.length);let s;for(s=this.#o.at(-1)||0;s<i;++s){const t=e[s].callFrame,i=this.#r[s].callFrame;if(!O.framesAreEqual(t,i))break;this.#r[s].dur=n.Timing.MicroSeconds(Math.max(this.#r[s].dur||0,r-this.#r[s].ts))}for(this.#g(s,t.ts);s<e.length;++s){const t=e[s];t.nodeId!==this.#c.programNode?.id&&t.nodeId!==this.#c.root?.id&&t.nodeId!==this.#c.idleNode?.id&&t.nodeId!==this.#c.gcNode?.id&&(this.#r.push(t),this.#n.push(t))}}#g(t,e){if(this.#o.length){const n=this.#o.at(-1);n&&t<n&&(console.error(`Child stack is shallower (${t}) than the parent stack (${n}) at ${e}`),t=n)}this.#r.length<t&&(console.error(`Trying to truncate higher than the current stack size at ${e}`),t=this.#r.length);for(let t=0;t<this.#r.length;++t)this.#r[t].dur=n.Timing.MicroSeconds(Math.max(e-this.#r[t].ts,0));this.#r.length=t}#S(t,e){return{name:"JSSample",cat:"devtools.timeline",args:{data:{stackTrace:this.#v(t).map((t=>t.callFrame))}},ph:"I",ts:e,dur:n.Timing.MicroSeconds(0),pid:this.#i,tid:this.#s}}static framesAreEqual(t,e){return t.scriptId===e.scriptId&&t.functionName===e.functionName&&t.lineNumber===e.lineNumber}static showNativeName(t,e){return e&&Boolean(O.nativeGroup(t))}static nativeGroup(t){return t.startsWith("Parse")?"Parse":t.startsWith("Compile")||t.startsWith("Recompile")?"Compile":null}static isNativeRuntimeFrame(t){return"native V8Runtime"===t.url}static filterStackFrames(t,e){if(e.showAllEvents)return;let n=null,r=0;for(let i=0;i<t.length;++i){const s=t[i].callFrame,o=O.isNativeRuntimeFrame(s);if(o&&!O.showNativeName(s.functionName,e.includeRuntimeCallStats))continue;const a=o?O.nativeGroup(s.functionName):null;n&&n===a||(n=a,t[r++]=t[i])}t.length=r}}var G=Object.freeze({__proto__:null,SamplesIntegrator:O});export{j as Extensions,U as Network,G as SamplesIntegrator,a as SyntheticEvents,h as Timing,J as Trace,A as TreeHelpers};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as t from"../../../core/platform/platform.js";import*as e from"../helpers/helpers.js";import*as n from"../types/types.js";import"../handlers/handlers.js";const r=[{flag:8192,failure:"UNSUPPORTED_CSS_PROPERTY"},{flag:2048,failure:"TRANSFROM_BOX_SIZE_DEPENDENT"},{flag:4096,failure:"FILTER_MAY_MOVE_PIXELS"},{flag:16,failure:"NON_REPLACE_COMPOSITE_MODE"},{flag:64,failure:"INCOMPATIBLE_ANIMATIONS"},{flag:8,failure:"UNSUPPORTED_TIMING_PARAMS"}],i=e.Timing.secondsToMicroseconds(n.Timing.Seconds(.5));function a(t,e){const n=t.dur?t.ts+t.dur:t.ts;return n<e.ts&&n>=e.ts-i}function o(e,n){const r=t.ArrayUtilities.nearestIndexFromBeginning(e,(t=>t.ts>n.ts+(n.dur||0)));if(null!==r)return e[r]}var s=Object.freeze({__proto__:null,deps:function(){return["Meta","Animations","LayoutShifts","NetworkRequests"]},generateInsight:function(n,i){const s=t=>{const r=e.Trace.getNavigationForTraceEvent(t,i.frameId,n.Meta.navigationsByFrameId);return r?.args.data?.navigationId===i.navigationId},c=function(t){const e=[];for(const n of t){const t=n.args.data.beginEvent,i=n.args.data.instantEvents||[];for(const n of i){const i=n.args.data.compositeFailed,a=n.args.data.unsupportedProperties;if(!i||!a)continue;const o=r.filter((t=>i&t.flag)).map((t=>t.failure)),s={name:t.args.data.displayName,failureReasons:o,unsupportedProperties:a};e.push(s)}}return e}(n.Animations.animations.filter(s)),d=n.LayoutShifts.renderFrameImplCreateChildFrameEvents.filter(s),g=n.NetworkRequests.byTime.filter(s),u=n.LayoutShifts.clusters.flatMap((t=>s(t.events[0])?t.events:[])),f=n.LayoutShifts.prePaintEvents.filter(s),l=new Map,m=function(e,n){const r=new Map;for(const i of n){const n=t.ArrayUtilities.nearestIndexFromBeginning(e,(t=>t.ts>=i.ts));if(null!==n)for(let a=n;a<e.length;a++){const n=e[a];if(n.ts>=i.ts&&n.ts<=i.ts+i.dur&&t.MapUtilities.getWithDefault(r,i,(()=>[])).push(n),n.ts>i.ts+i.dur)break}}return r}(u,f);for(const t of u)l.set(t,{iframes:[],fontRequests:[]});return function(e,n,r,i){for(const a of e){const e=o(n,a);if(!e)continue;const s=r.get(e);if(s)for(const e of s)t.MapUtilities.getWithDefault(i,e,(()=>({iframes:[],fontRequests:[]}))).iframes.push(a)}}(d,f,m,l),function(e,n,r,i){const s=e.filter((t=>"Font"===t.args.data.resourceType&&t.args.data.mimeType.startsWith("font")));for(const e of s){const s=o(n,e);if(!s)continue;if(!a(e,s))continue;const c=r.get(s);if(c)for(const n of c)t.MapUtilities.getWithDefault(i,n,(()=>({iframes:[],fontRequests:[]}))).fontRequests.push(e)}}(g,f,m,l),{animationFailures:c,shifts:l}}});var c=Object.freeze({__proto__:null,deps:function(){return["Meta","NetworkRequests"]},generateInsight:function(t,e){const r=t.NetworkRequests.byTime.find((t=>t.args.data.requestId===e.navigationId));if(!r)throw new Error("missing document request");const i=function(t){const e=t.args.data.timing;return e?n.Timing.MilliSeconds(Math.round(e.receiveHeadersStart-e.sendEnd)):null}(r);if(null===i)throw new Error("missing document request timing");let a=0;i>600&&(a=Math.max(i-100,0));const o=Math.round(r.args.data.syntheticData.redirectionDuration/1e3);a+=o;const s={FCP:a,LCP:a};return{serverResponseTime:i,redirectDuration:n.Timing.MilliSeconds(o),metricSavings:s}}});var d,g=Object.freeze({__proto__:null,deps:function(){return["UserInteractions"]},generateInsight:function(t,e){const n=t.UserInteractions.interactionEvents.filter((t=>t.args.data.navigationId===e.navigationId));if(!n.length)return{};const r=new Map;for(const t of n){const e=t.interactionId,n=r.get(e);(!n||t.dur>n.dur)&&r.set(e,t)}const i=[...r.values()];i.sort(((t,e)=>e.dur-t.dur));const a=Math.min(9,Math.floor(i.length/50));return{longestInteractionEvent:i[0],highPercentileInteractionEvent:i[a]}}});function u(t,n,r){const i=r.args.data?.nodeId;if(!i)throw new Error("no lcp node id");const a=t.LargestImagePaint.get(i);if(!a)return null;const o=a.args.data?.imageUrl;if(!o)throw new Error("no lcp url");const s=function(t,n,r){return t.NetworkRequests.byTime.find((i=>{if(i.args.data.url!==r&&!i.args.data.redirects.some((t=>t.url===r)))return!1;const a=e.Trace.getNavigationForTraceEvent(i,n.frameId,t.Meta.navigationsByFrameId);return a?.args.data?.navigationId===n.navigationId}))??null}(t,n,o);if(!s)throw new Error("no lcp request found");return s}!function(t){t.NO_FP="NO_FP",t.NO_LCP="NO_LCP",t.NO_DOCUMENT_REQUEST="NO_DOCUMENT_REQUEST",t.NO_LAYOUT="NO_LAYOUT"}(d||(d={}));var f=Object.freeze({__proto__:null,get InsightWarning(){return d}});function l(t,r,i,a){const o=r.args.data.timing;if(!o)throw new Error("no timing for main resource");const s=e.Timing.secondsToMicroseconds(o.requestTime)+e.Timing.millisecondsToMicroseconds(o.receiveHeadersStart),c=n.Timing.MicroSeconds(s-t.ts),d=e.Timing.microSecondsToMilliseconds(c);let g=n.Timing.MilliSeconds(i-d);if(!a)return{ttfb:d,renderDelay:g};const u=n.Timing.MicroSeconds(a.ts-t.ts),f=e.Timing.microSecondsToMilliseconds(u),l=n.Timing.MicroSeconds(a.args.data.syntheticData.finishTime-t.ts),m=e.Timing.microSecondsToMilliseconds(l),T=n.Timing.MilliSeconds(f-d),p=n.Timing.MilliSeconds(m-f);return g=n.Timing.MilliSeconds(i-m),{ttfb:d,loadDelay:T,loadTime:p,renderDelay:g}}var m=Object.freeze({__proto__:null,deps:function(){return["NetworkRequests","PageLoadMetrics","LargestImagePaint","Meta"]},generateInsight:function(t,r){const i=t.NetworkRequests,a=t.Meta.navigationsByNavigationId.get(r.navigationId);if(!a)throw new Error("no trace navigation");const o=t.PageLoadMetrics.metricScoresByFrameId.get(r.frameId);if(!o)throw new Error("no frame metrics");const s=o.get(r.navigationId);if(!s)throw new Error("no navigation metrics");const c=s.get("LCP"),g=c?.event;if(!g||!n.TraceEvents.isTraceEventLargestContentfulPaintCandidate(g))return{warnings:[d.NO_LCP]};const f=e.Timing.microSecondsToMilliseconds(c.timing),m=c.event?.ts?e.Timing.microSecondsToMilliseconds(c.event?.ts):void 0,T=u(t,r,g),p=i.byTime.find((t=>t.args.data.requestId===r.navigationId));if(!p)return{lcpMs:f,lcpTs:m,warnings:[d.NO_DOCUMENT_REQUEST]};if(!T)return{lcpMs:f,lcpTs:m,phases:l(a,p,f,T)};const I=g.args.data?.loadingAttr,v=T?.args.data.isLinkPreload||"preload"===T?.args.data.initiator?.type,h=T?.args.data.fetchPriorityHint,M=p&&p.args.data.timing?e.Timing.secondsToMicroseconds(p.args.data.timing.requestTime)+e.Timing.millisecondsToMicroseconds(p.args.data.timing.receiveHeadersStart):void 0;return{lcpMs:f,lcpTs:m,phases:l(a,p,f,T),shouldRemoveLazyLoading:"lazy"===I,shouldIncreasePriorityHint:"high"!==h,shouldPreloadImage:!v,lcpResource:T,earliestDiscoveryTimeTs:M?n.Timing.MicroSeconds(M):void 0}}});const T=50;function p(t,e,r){if(!e.lantern)return;const i=function(t){const e=new Map;for(const[n,r]of t)"network"===n.type&&e.set(n.request.requestId,{node:n,nodeTiming:r});return e}(e.lantern.metrics.firstContentfulPaint.optimisticEstimate.nodeTimings),a={FCP:0,LCP:0},o=new Map,s=new Set;for(const t of r){const e=i.get(t.args.data.requestId);if(!e)continue;const{node:n,nodeTiming:r}=e;n.traverse((t=>s.add(t.id)));const a=Math.round(r.duration);a<T||o.set(n.id,a)}return o.size&&(a.FCP=function(t,e){const n=e.simulator,r=e.metrics.firstContentfulPaint.optimisticGraph,{nodeTimings:i}=e.simulator.simulate(r),a=new Map(i),o=r.cloneWithRelationships((e=>!t.has(e.id)));if("network"!==o.type)throw new Error("minimalFCPGraph not a NetworkNode");const s=Math.max(...Array.from(Array.from(a).map((t=>t[1].endTime)))),c=o.request.transferSize,d=c||0;o.request.transferSize=d+0;const g=n.simulate(o).timeInMs;return o.request.transferSize=c,Math.round(Math.max(s-g,0))}(s,e.lantern),function(t,e){if(!t.Meta.navigationsByNavigationId.get(e.navigationId))throw new Error("no trace navigation");const r=t.PageLoadMetrics.metricScoresByFrameId.get(e.frameId);if(!r)throw new Error("no frame metrics");const i=r.get(e.navigationId);if(!i)throw new Error("no navigation metrics");const a=i.get("LCP"),o=a?.event;return!(!o||!n.TraceEvents.isTraceEventLargestContentfulPaintCandidate(o))&&null!==u(t,e,o)}(t,e)||(a.LCP=a.FCP)),{metricSavings:a,requestIdToWastedMs:o}}var I=Object.freeze({__proto__:null,deps:function(){return["NetworkRequests","PageLoadMetrics","LargestImagePaint"]},generateInsight:function(t,n){const r=t.PageLoadMetrics.metricScoresByFrameId.get(n.frameId)?.get(n.navigationId)?.get("FP")?.event?.ts;if(!r)return{renderBlockingRequests:[],warnings:[d.NO_FP]};const i=[];for(const a of t.NetworkRequests.byTime){if(a.args.data.frame!==n.frameId)continue;if("blocking"!==a.args.data.renderBlocking&&"in_body_parser_blocking"!==a.args.data.renderBlocking)continue;if(a.args.data.syntheticData.finishTime>r)continue;if("in_body_parser_blocking"===a.args.data.renderBlocking){const t=a.args.data.priority,e="Script"===a.args.data.resourceType;if("VeryHigh"!==t&&!(e&&"High"===t))continue}const o=e.Trace.getNavigationForTraceEvent(a,n.frameId,t.Meta.navigationsByFrameId);o?.args.data?.navigationId===n.navigationId&&i.push(a)}return{renderBlockingRequests:i,...p(t,n,i)}}});var v=Object.freeze({__proto__:null,deps:function(){return["Meta","UserInteractions"]},generateInsight:function(t,n){const r=t.UserInteractions.beginCommitCompositorFrameEvents.filter((r=>{if(r.args.frame!==n.frameId)return!1;const i=e.Trace.getNavigationForTraceEvent(r,n.frameId,t.Meta.navigationsByFrameId);return i?.args.data?.navigationId===n.navigationId}));if(!r.length)return{mobileOptimized:null,warnings:[d.NO_LAYOUT]};const i=t.UserInteractions.parseMetaViewportEvents.find((r=>{if(r.args.data.frame!==n.frameId)return!1;const i=e.Trace.getNavigationForTraceEvent(r,n.frameId,t.Meta.navigationsByFrameId);return i?.args.data?.navigationId===n.navigationId})),a=i?.args.data.content,o=i?.args.data.node_id;for(const t of r)if(!t.args.is_mobile_optimized)return{mobileOptimized:!1,content:a,nodeId:o};return{mobileOptimized:!0,content:a,nodeId:o}}}),h=Object.freeze({__proto__:null,CumulativeLayoutShift:s,DocumentLatency:c,InteractionToNextPaint:g,LargestContentfulPaint:m,RenderBlocking:I,Viewport:v});export{h as InsightRunners,f as Types};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
class e extends Error{}class t{static rewriteChromeInternalUrl(e){return e&&e.startsWith("chrome://")?(e.endsWith("/")&&(e=e.replace(/\/$/,"")),e.replace(/^chrome:\/\/chrome\//,"chrome://")):e}static equalWithExcludedFragments(e,t){[e,t]=[e,t].map(this.rewriteChromeInternalUrl);try{const n=new URL(e);n.hash="";const r=new URL(t);return r.hash="",n.href===r.href}catch(e){return!1}}}const n={Document:.9,XHR:.9,Fetch:.9};class r{static get summary(){return"__SUMMARY__"}static groupByOrigin(e){const t=new Map;return e.forEach((e=>{const n=e.parsedURL.securityOrigin,r=t.get(n)||[];r.push(e),t.set(n,r)})),t}static getSummary(e){let t;if(e.sort(((e,t)=>e-t)),0===e.length)t=e[0];else if(e.length%2==0){t=(e[Math.floor((e.length-1)/2)]+e[Math.floor((e.length-1)/2)+1])/2}else t=e[Math.floor((e.length-1)/2)];return{min:e[0],max:e[e.length-1],avg:e.reduce(((e,t)=>e+t),0)/e.length,median:t}}static summarize(e){const t=new Map,n=[];for(const[i,s]of e)t.set(i,r.getSummary(s)),n.push(...s);return t.set(r.summary,r.getSummary(n)),t}static _estimateValueByOrigin(e,t){const n=r.estimateIfConnectionWasReused(e),i=r.groupByOrigin(e),s=new Map;for(const[e,r]of i.entries()){let i=[];for(const e of r){const r=e.timing;if(!r)continue;const s=t({request:e,timing:r,connectionReused:n.get(e.requestId)});void 0!==s&&(i=i.concat(s))}i.length&&s.set(e,i)}return s}static _estimateRTTViaConnectionTiming(e){const{timing:t,connectionReused:n,request:r}=e;if(n)return;const{connectStart:i,sslStart:s,sslEnd:o,connectEnd:a}=t;return a>=0&&i>=0&&r.protocol.startsWith("h3")?a-i:s>=0&&o>=0&&s!==i?[a-s,s-i]:i>=0&&a>=0?a-i:void 0}static _estimateRTTViaDownloadTiming(e){const{timing:t,connectionReused:n,request:r}=e;if(n)return;if(r.transferSize<=14336)return;if(!Number.isFinite(t.receiveHeadersEnd)||t.receiveHeadersEnd<0)return;const i=r.networkEndTime-r.networkRequestTime-t.receiveHeadersEnd,s=Math.log2(r.transferSize/14336);return s>5?void 0:i/s}static _estimateRTTViaSendStartTiming(e){const{timing:t,connectionReused:n,request:r}=e;if(n)return;if(!Number.isFinite(t.sendStart)||t.sendStart<0)return;let i=1;return r.protocol.startsWith("h3")||(i+=1),"https"===r.parsedURL.scheme&&(i+=1),t.sendStart/i}static _estimateRTTViaHeadersEndTiming(e){const{timing:t,connectionReused:r,request:i}=e;if(!Number.isFinite(t.receiveHeadersEnd)||t.receiveHeadersEnd<0)return;if(!i.resourceType)return;const s=n[i.resourceType]||.4,o=t.receiveHeadersEnd*s;let a=1;return r||(a+=1,i.protocol.startsWith("h3")||(a+=1),"https"===i.parsedURL.scheme&&(a+=1)),Math.max((t.receiveHeadersEnd-o)/a,3)}static _estimateResponseTimeByOrigin(e,t){return r._estimateValueByOrigin(e,(({request:e,timing:n})=>{if(void 0!==e.serverResponseTime)return e.serverResponseTime;if(!Number.isFinite(n.receiveHeadersEnd)||n.receiveHeadersEnd<0)return;if(!Number.isFinite(n.sendEnd)||n.sendEnd<0)return;const i=n.receiveHeadersEnd-n.sendEnd,s=e.parsedURL.securityOrigin,o=t.get(s)||t.get(r.summary)||0;return Math.max(i-o,0)}))}static canTrustConnectionInformation(e){const t=new Map;for(const n of e){const e=t.get(n.connectionId)||!n.connectionReused;t.set(n.connectionId,e)}return!(t.size<=1)&&Array.from(t.values()).every((e=>e))}static estimateIfConnectionWasReused(e,t){const{forceCoarseEstimates:n=!1}=t||{};if(!n&&r.canTrustConnectionInformation(e))return new Map(e.map((e=>[e.requestId,Boolean(e.connectionReused)])));const i=new Map,s=r.groupByOrigin(e);for(const e of s.values()){const t=e.map((e=>e.networkEndTime)).reduce(((e,t)=>Math.min(e,t)),1/0);for(const n of e)i.set(n.requestId,n.networkRequestTime>=t||"h2"===n.protocol);const n=e.reduce(((e,t)=>e.networkRequestTime>t.networkRequestTime?t:e));i.set(n.requestId,!1)}return i}static estimateRTTByOrigin(t,n){const{forceCoarseEstimates:i=!1,coarseEstimateMultiplier:s=.3,useDownloadEstimates:o=!0,useSendStartEstimates:a=!0,useHeadersEndEstimates:c=!0}=n||{},u=r.estimateIfConnectionWasReused(t),m=r.groupByOrigin(t),d=new Map;for(const[h,g]of m.entries()){const f=[];function l(e,t=1){for(const n of g){const r=n.timing;if(!r)continue;const i=e({request:n,timing:r,connectionReused:u.get(n.requestId)});void 0!==i&&(Array.isArray(i)?f.push(...i.map((e=>e*t))):f.push(i*t))}}i||l(this._estimateRTTViaConnectionTiming),f.length||(o&&l(this._estimateRTTViaDownloadTiming,s),a&&l(this._estimateRTTViaSendStartTiming,s),c&&l(this._estimateRTTViaHeadersEndTiming,s)),f.length&&d.set(h,f)}if(!d.size)throw new e("No timing information available");return r.summarize(d)}static estimateServerResponseTimeByOrigin(e,t){let n=(t||{}).rttByOrigin;if(!n){n=new Map;const i=r.estimateRTTByOrigin(e,t);for(const[e,t]of i.entries())n.set(e,t.min)}const i=r._estimateResponseTimeByOrigin(e,n);return r.summarize(i)}static estimateThroughput(e){let t=0;const n=e.reduce(((e,n)=>{const r=n.parsedURL?.scheme;return"data"===r||n.failed||!n.finished||n.statusCode>300||!n.transferSize||(t+=n.transferSize,e.push({time:n.responseHeadersEndTime/1e3,isStart:!0}),e.push({time:n.networkEndTime/1e3,isStart:!1})),e}),[]).sort(((e,t)=>e.time-t.time));if(!n.length)return 1/0;let r=0,i=0,s=0;return n.forEach((e=>{e.isStart?(0===r&&(i=e.time),r++):(r--,0===r&&(s+=e.time-i))})),8*t/s}static computeRTTAndServerResponseTime(e){const t=new Map;for(const[n,i]of r.estimateRTTByOrigin(e).entries())t.set(n,i.min);const n=Math.min(...Array.from(t.values())),i=r.estimateServerResponseTimeByOrigin(e,{rttByOrigin:t}),s=new Map,o=new Map;for(const[e,r]of i.entries()){const i=t.get(e)||n;s.set(e,i-n),o.set(e,r.median)}return{rtt:n,additionalRttByOrigin:s,serverResponseTimeByOrigin:o}}static analyze(e){return{throughput:r.estimateThroughput(e),...r.computeRTTAndServerResponseTime(e)}}static findResourceForUrl(e,n){return e.find((e=>n.startsWith(e.url)&&t.equalWithExcludedFragments(e.url,n)))}static findLastDocumentForUrl(e,n){const r=e.filter((e=>"Document"===e.resourceType&&n.startsWith(e.url)&&t.equalWithExcludedFragments(e.url,n)));return r[r.length-1]}static resolveRedirects(e){for(;e.redirectDestination;)e=e.redirectDestination;return e}}export{e as LanternError,r as NetworkAnalyzer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as e from"../core/core.js";class t{static types={NETWORK:"network",CPU:"cpu"};_id;_isMainDocument;_dependents;_dependencies;constructor(e){this._id=e,this._isMainDocument=!1,this._dependents=[],this._dependencies=[]}get id(){return this._id}get type(){throw new e.LanternError("Unimplemented")}get startTime(){throw new e.LanternError("Unimplemented")}get endTime(){throw new e.LanternError("Unimplemented")}setIsMainDocument(e){this._isMainDocument=e}isMainDocument(){return this._isMainDocument}getDependents(){return this._dependents.slice()}getNumberOfDependents(){return this._dependents.length}getDependencies(){return this._dependencies.slice()}getNumberOfDependencies(){return this._dependencies.length}getRootNode(){let e=this;for(;e._dependencies.length;)e=e._dependencies[0];return e}addDependent(e){e.addDependency(this)}addDependency(t){if(t===this)throw new e.LanternError("Cannot add dependency on itself");this._dependencies.includes(t)||(t._dependents.push(this),this._dependencies.push(t))}removeDependent(e){e.removeDependency(this)}removeDependency(e){if(!this._dependencies.includes(e))return;const t=e._dependents.indexOf(this);e._dependents.splice(t,1),this._dependencies.splice(this._dependencies.indexOf(e),1)}removeAllDependencies(){for(const e of this._dependencies.slice())this.removeDependency(e)}isDependentOn(e){let t=!1;return this.traverse((r=>{t||(t=r===e)}),(e=>t?[]:e.getDependencies())),t}cloneWithoutRelationships(){const e=new t(this.id);return e.setIsMainDocument(this._isMainDocument),e}cloneWithRelationships(t){const r=this.getRootNode(),n=new Map;r.traverse((e=>{n.has(e.id)||(void 0!==t?t(e)&&e.traverse((e=>n.set(e.id,e.cloneWithoutRelationships())),(e=>e._dependencies.filter((e=>!n.has(e.id))))):n.set(e.id,e.cloneWithoutRelationships()))})),r.traverse((t=>{const r=n.get(t.id);if(r)for(const s of t._dependencies){const t=n.get(s.id);if(!t)throw new e.LanternError("Dependency somehow not cloned");r.addDependency(t)}}));const s=n.get(this.id);if(!s)throw new e.LanternError("Cloned graph missing node");return s}traverse(e,t){for(const{node:r,traversalPath:n}of this.traverseGenerator(t))e(r,n)}*traverseGenerator(e){e||(e=e=>e.getDependents());const t=[[this]],r=new Set([this.id]);for(;t.length;){const n=t.shift(),s=n[0];yield{node:s,traversalPath:n};for(const i of e(s))r.has(i.id)||(r.add(i.id),t.push([i,...n]))}}static hasCycle(e,r="both"){if("both"===r)return t.hasCycle(e,"dependents")||t.hasCycle(e,"dependencies");const n=new Set,s=[],i=[e],o=new Map([[e,0]]);for(;i.length;){const e=i.pop();if(s.includes(e))return!0;if(n.has(e))continue;for(;s.length>o.get(e);)s.pop();n.add(e),s.push(e);const t="dependents"===r?e._dependents:e._dependencies;for(const e of t)i.includes(e)||(i.push(e),o.set(e,s.length))}return!1}canDependOn(e){return e.startTime<=this.startTime}}class r extends t{_event;_childEvents;_correctedEndTs;constructor(e,t=[],r){super(`${e.tid}.${e.ts}`),this._event=e,this._childEvents=t,this._correctedEndTs=r}get type(){return t.types.CPU}get startTime(){return this._event.ts}get endTime(){return this._correctedEndTs?this._correctedEndTs:this._event.ts+this._event.dur}get duration(){return this.endTime-this.startTime}get event(){return this._event}get childEvents(){return this._childEvents}didPerformLayout(){return this._childEvents.some((e=>"Layout"===e.name))}getEvaluateScriptURLs(){const e=new Set;for(const t of this._childEvents)"EvaluateScript"===t.name&&t.args.data&&t.args.data.url&&e.add(t.args.data.url);return e}cloneWithoutRelationships(){return new r(this._event,this._childEvents,this._correctedEndTs)}}const n=["blob","data","intent","file","filesystem","chrome-extension"];function s(e){const t=e.includes(":")?e.slice(0,e.indexOf(":")):e;return n.includes(t)}class i extends t{_request;constructor(e){super(e.requestId),this._request=e}get type(){return t.types.NETWORK}get startTime(){return 1e3*this._request.rendererStartTime}get endTime(){return 1e3*this._request.networkEndTime}get rawRequest(){return this._request.rawRequest}get request(){return this._request}get initiatorType(){return this._request.initiator&&this._request.initiator.type}get fromDiskCache(){return Boolean(this._request.fromDiskCache)}get isNonNetworkProtocol(){return s(this.request.protocol)||s(this.request.parsedURL.scheme)}get isConnectionless(){return this.fromDiskCache||this.isNonNetworkProtocol}hasRenderBlockingPriority(){const e=this._request.priority,t="Script"===this._request.resourceType,r="Document"===this._request.resourceType;return"VeryHigh"===e||"High"===e&&t||"High"===e&&r}cloneWithoutRelationships(){const e=new i(this._request);return e.setIsMainDocument(this._isMainDocument),e}}const o=/^video/;class d{static getNetworkInitiators(e){if(!e.initiator)return[];if(e.initiator.url)return[e.initiator.url];if("script"===e.initiator.type){const t=new Set;let r=e.initiator.stack;for(;r;){const e=r.callFrames||[];for(const r of e)r.url&&t.add(r.url);r=r.parent}return Array.from(t)}return[]}static getNetworkNodeOutput(e){const t=[],r=new Map,n=new Map,s=new Map;return e.forEach((e=>{if(o.test(e.mimeType))return;if(e.fromWorker)return;for(;r.has(e.requestId);)e.requestId+=":duplicate";const d=new i(e);t.push(d);const a=n.get(e.url)||[];if(a.push(d),r.set(e.requestId,d),n.set(e.url,a),e.frameId&&"Document"===e.resourceType&&e.documentURL===e.url){const t=s.has(e.frameId)?null:d;s.set(e.frameId,t)}})),{nodes:t,idToNodeMap:r,urlToNodeMap:n,frameIdToNodeMap:s}}static isScheduleableTask(e){return"RunTask"===e.name||"ThreadControllerImpl::RunTask"===e.name||"ThreadControllerImpl::DoWork"===e.name||"TaskQueueManager::ProcessTaskFromWorkQueue"===e.name}static assertHasToplevelEvents(t){if(!t.some(this.isScheduleableTask))throw new e.LanternError("Could not find any top level events")}static getCPUNodes(e){const t=[];let n=0;for(d.assertHasToplevelEvents(e);n<e.length;){const s=e[n];if(n++,!d.isScheduleableTask(s)||!s.dur)continue;let i;const o=[];for(const t=s.ts+s.dur;n<e.length&&e[n].ts<t;n++){const t=e[n];if(d.isScheduleableTask(t)&&t.dur){i=t.ts-1;break}o.push(t)}t.push(new r(s,o,i))}return t}static linkNetworkNodes(e,t){t.nodes.forEach((r=>{const n=r.request.initiatorRequest||e.request,s=t.idToNodeMap.get(n.requestId)||e,i=!s.isDependentOn(r)&&r.canDependOn(s),o=d.getNetworkInitiators(r.request);if(o.length?o.forEach((e=>{const n=t.urlToNodeMap.get(e)||[];1===n.length&&n[0].startTime<=r.startTime&&!n[0].isDependentOn(r)?r.addDependency(n[0]):i&&s.addDependent(r)})):i&&s.addDependent(r),r!==e&&0===r.getDependencies().length&&r.canDependOn(e)&&r.addDependency(e),!r.request.redirects)return;const a=[...r.request.redirects,r.request];for(let e=1;e<a.length;e++){const r=t.idToNodeMap.get(a[e-1].requestId),n=t.idToNodeMap.get(a[e].requestId);n&&r&&n.addDependency(r)}}))}static linkCPUNodes(e,t,r){const n=new Set(["XHR","Fetch","Script"]);function s(e,r){const s=t.idToNodeMap.get(r);if(!s||s.startTime<=e.startTime)return;const{request:i}=s,o=i.resourceType||i.redirectDestination?.resourceType;n.has(o)&&e.addDependent(s)}function i(e,r){if(!r)return;const n=t.frameIdToNodeMap.get(r);n&&(n.startTime>=e.startTime||e.addDependency(n))}function o(e,r){if(!r)return;const n=t.urlToNodeMap.get(r)||[];let s=null,i=1/0;for(const t of n){if(e.startTime<=t.startTime)return;const r=e.startTime-t.endTime;r>=-1e5&&r<i&&(s=t,i=r)}s&&e.addDependency(s)}const a=new Map;for(const t of r){for(const e of t.childEvents){if(!e.args.data)continue;const r=e.args.data.url,n=(e.args.data.stackTrace||[]).map((e=>e.url)).filter(Boolean);switch(e.name){case"TimerInstall":a.set(e.args.data.timerId,t),n.forEach((e=>o(t,e)));break;case"TimerFire":{const r=a.get(e.args.data.timerId);if(!r||r.endTime>t.startTime)break;r.addDependent(t);break}case"InvalidateLayout":case"ScheduleStyleRecalculation":i(t,e.args.data.frame),n.forEach((e=>o(t,e)));break;case"EvaluateScript":i(t,e.args.data.frame),o(t,r),n.forEach((e=>o(t,e)));break;case"XHRReadyStateChange":if(4!==e.args.data.readyState)break;o(t,r),n.forEach((e=>o(t,e)));break;case"FunctionCall":case"v8.compile":i(t,e.args.data.frame),o(t,r);break;case"ParseAuthorStyleSheet":i(t,e.args.data.frame),o(t,e.args.data.styleSheetUrl);break;case"ResourceSendRequest":i(t,e.args.data.frame),s(t,e.args.data.requestId),n.forEach((e=>o(t,e)))}}0===t.getNumberOfDependencies()&&t.canDependOn(e)&&t.addDependency(e)}let c=!1,u=!1,h=!1;for(const e of r){let t=!1;!c&&e.childEvents.some((e=>"Layout"===e.name))&&(t=c=!0),!u&&e.childEvents.some((e=>"Paint"===e.name))&&(t=u=!0),!h&&e.childEvents.some((e=>"ParseHTML"===e.name))&&(t=h=!0),t||e.duration>=1e4||(1===e.getNumberOfDependencies()||e.getNumberOfDependents()<=1)&&d._pruneNode(e)}}static _pruneNode(e){const t=e.getDependencies(),r=e.getDependents();for(const n of t){e.removeDependency(n);for(const e of r)n.addDependent(e)}for(const t of r)e.removeDependent(t)}static _debugNormalizeRequests(e){for(const t of e)t.rendererStartTime=Math.round(1e3*t.rendererStartTime)/1e3,t.networkRequestTime=Math.round(1e3*t.networkRequestTime)/1e3,t.responseHeadersEndTime=Math.round(1e3*t.responseHeadersEndTime)/1e3,t.networkEndTime=Math.round(1e3*t.networkEndTime)/1e3;for(const t of e)delete t.rawRequest,t.initiatorRequest&&(t.initiatorRequest={id:t.initiatorRequest.requestId}),t.redirectDestination&&(t.redirectDestination={id:t.redirectDestination.requestId}),t.redirectSource&&(t.redirectSource={id:t.redirectSource.requestId}),t.redirects&&(t.redirects=t.redirects.map((e=>e.requestId)));const t=e.map((e=>({requestId:e.requestId,connectionId:e.connectionId,connectionReused:e.connectionReused,url:e.url,protocol:e.protocol,parsedURL:e.parsedURL,documentURL:e.documentURL,rendererStartTime:e.rendererStartTime,networkRequestTime:e.networkRequestTime,responseHeadersEndTime:e.responseHeadersEndTime,networkEndTime:e.networkEndTime,transferSize:e.transferSize,resourceSize:e.resourceSize,fromDiskCache:e.fromDiskCache,fromMemoryCache:e.fromMemoryCache,finished:e.finished,statusCode:e.statusCode,redirectSource:e.redirectSource,redirectDestination:e.redirectDestination,redirects:e.redirects,failed:e.failed,initiator:e.initiator,timing:e.timing?{requestTime:e.timing.requestTime,proxyStart:e.timing.proxyStart,proxyEnd:e.timing.proxyEnd,dnsStart:e.timing.dnsStart,dnsEnd:e.timing.dnsEnd,connectStart:e.timing.connectStart,connectEnd:e.timing.connectEnd,sslStart:e.timing.sslStart,sslEnd:e.timing.sslEnd,workerStart:e.timing.workerStart,workerReady:e.timing.workerReady,workerFetchStart:e.timing.workerFetchStart,workerRespondWithSettled:e.timing.workerRespondWithSettled,sendStart:e.timing.sendStart,sendEnd:e.timing.sendEnd,pushStart:e.timing.pushStart,pushEnd:e.timing.pushEnd,receiveHeadersStart:e.timing.receiveHeadersStart,receiveHeadersEnd:e.timing.receiveHeadersEnd}:e.timing,resourceType:e.resourceType,mimeType:e.mimeType,priority:e.priority,initiatorRequest:e.initiatorRequest,frameId:e.frameId,fromWorker:e.fromWorker,isLinkPreload:e.isLinkPreload,serverResponseTime:e.serverResponseTime}))).filter((e=>!e.fromWorker));console.log(t)}static createGraph(t,r,n){const s=d.getNetworkNodeOutput(r),o=d.getCPUNodes(t),{requestedUrl:a,mainDocumentUrl:c}=n;if(!a)throw new e.LanternError("requestedUrl is required to get the root request");if(!c)throw new e.LanternError("mainDocumentUrl is required to get the main resource");const u=e.NetworkAnalyzer.findResourceForUrl(r,a);if(!u)throw new e.LanternError("rootRequest not found");const h=s.idToNodeMap.get(u.requestId);if(!h)throw new e.LanternError("rootNode not found");const p=e.NetworkAnalyzer.findLastDocumentForUrl(r,c);if(!p)throw new e.LanternError("mainDocumentRequest not found");const m=s.idToNodeMap.get(p.requestId);if(!m)throw new e.LanternError("mainDocumentNode not found");if(d.linkNetworkNodes(h,s),d.linkCPUNodes(h,s,o),m.setIsMainDocument(!0),i.hasCycle(h))throw new e.LanternError("Invalid dependency graph created, cycle detected");return h}static printGraph(e,t=100){function r(e,t,r=" "){return e+r.repeat(Math.max(t-e.length,0))}const n=[];e.traverse((e=>n.push(e))),n.sort(((e,t)=>e.startTime-t.startTime));const s=n[0].startTime,i=(n.reduce(((e,t)=>Math.max(e,t.endTime)),0)-s)/t;n.forEach((e=>{const n=Math.round((e.startTime-s)/i),o=Math.ceil((e.endTime-e.startTime)/i),d=r("",n)+r("",o,"="),a=e.request?e.request.url:e.type;console.log(r(d,t),`| ${a.slice(0,30)}`)}))}}export{t as BaseNode,r as CPUNode,i as NetworkNode,d as PageDependencyGraph};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as r from"./core/core.js";export{r as Core};import*as s from"./graph/graph.js";export{s as Graph};import*as o from"./metrics/metrics.js";export{o as Metrics};import*as t from"./simulation/simulation.js";export{t as Simulation};import*as a from"./types/types.js";export{a as Types};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as t from"../graph/graph.js";import*as e from"../core/core.js";class i{static getScriptUrls(e,i){const s=new Set;return e.traverse((e=>{e.type===t.BaseNode.types.NETWORK&&"Script"===e.request.resourceType&&i?.(e)&&s.add(e.request.url)})),s}static get coefficients(){throw new e.LanternError("coefficients unimplemented!")}static getScaledCoefficients(t){return this.coefficients}static getOptimisticGraph(t,i){throw new e.LanternError("Optimistic graph unimplemented!")}static getPessimisticGraph(t,i){throw new e.LanternError("Pessmistic graph unimplemented!")}static getEstimateFromSimulation(t,e){return t}static compute(t,e){const{simulator:i,graph:s,processedNavigation:r}=t,n=this.name.replace("Lantern",""),a=this.getOptimisticGraph(s,r),o=this.getPessimisticGraph(s,r);let c={label:`optimistic${n}`};const m=i.simulate(a,c);c={label:`pessimistic${n}`};const p=i.simulate(o,c),u=this.getEstimateFromSimulation(m,{...e,optimistic:!0}),d=this.getEstimateFromSimulation(p,{...e,optimistic:!1}),l=this.getScaledCoefficients(i.rtt),g=l.intercept>0?Math.min(1,u.timeInMs/1e3):1;return{timing:l.intercept*g+l.optimistic*u.timeInMs+l.pessimistic*d.timeInMs,optimisticEstimate:u,pessimisticEstimate:d,optimisticGraph:a,pessimisticGraph:o}}}class s extends i{static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getRenderBlockingNodeData(e,{cutoffTimestamp:s,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:n}){const a=new Map,o=[];e.traverse((e=>{if(e.type===t.BaseNode.types.CPU){e.startTime<=s&&o.push(e);const t=e.getEvaluateScriptURLs();for(const i of t){const t=a.get(i)||e;a.set(i,e.startTime<t.startTime?e:t)}}})),o.sort(((t,e)=>t.startTime-e.startTime));const c=i.getScriptUrls(e,(t=>t.endTime<=s&&r(t))),m=new Set,p=new Set;for(const t of c){const e=a.get(t);e&&(o.includes(e)?p.add(e.id):m.add(t))}const u=o.find((t=>t.didPerformLayout()));u&&p.add(u.id);const d=o.find((t=>t.childEvents.some((t=>"Paint"===t.name))));d&&p.add(d.id);const l=o.find((t=>t.childEvents.some((t=>"ParseHTML"===t.name))));return l&&p.add(l.id),n&&o.filter(n).forEach((t=>p.add(t.id))),{definitelyNotRenderBlockingScriptUrls:m,renderBlockingCpuNodeIds:p}}static getFirstPaintBasedGraph(e,{cutoffTimestamp:i,treatNodeAsRenderBlocking:s,additionalCpuNodesToTreatAsRenderBlocking:r}){const n=this.getRenderBlockingNodeData(e,{cutoffTimestamp:i,treatNodeAsRenderBlocking:s,additionalCpuNodesToTreatAsRenderBlocking:r}),{definitelyNotRenderBlockingScriptUrls:a,renderBlockingCpuNodeIds:o}=n;return e.cloneWithRelationships((e=>{if(e.type===t.BaseNode.types.NETWORK){if((e.endTime>i||e.startTime>i)&&!e.isMainDocument())return!1;const t=e.request.url;return!a.has(t)&&s(e)}return o.has(e.id)}))}static getOptimisticGraph(t,e){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:e.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:t=>t.hasRenderBlockingPriority()&&"script"!==t.initiatorType})}static getPessimisticGraph(t,e){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:e.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:t=>t.hasRenderBlockingPriority()})}}class r extends i{static get coefficients(){return{intercept:0,optimistic:.45,pessimistic:.55}}static getOptimisticGraph(e){return e.cloneWithRelationships((e=>{if(e.type===t.BaseNode.types.CPU)return e.duration>2e4;const i="Image"===e.request.resourceType,s="Script"===e.request.resourceType;return!i&&(s||"High"===e.request.priority||"VeryHigh"===e.request.priority)}))}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,i){if(!i.lcpResult)throw new e.LanternError("missing lcpResult");const s=r.getLastLongTaskEndTime(t.nodeTimings),n=i.optimistic?i.lcpResult.optimisticEstimate.timeInMs:i.lcpResult.pessimisticEstimate.timeInMs;return{timeInMs:Math.max(n,s),nodeTimings:t.nodeTimings}}static compute(t,i){const s=i?.lcpResult;if(!s)throw new e.LanternError("LCP is required to calculate the Interactive metric");const r=super.compute(t,i);return r.timing=Math.max(r.timing,s.timing),r}static getLastLongTaskEndTime(e,i=50){return Array.from(e.entries()).filter((([e,s])=>e.type===t.BaseNode.types.CPU&&s.duration>i)).map((([t,e])=>e.endTime)).reduce(((t,e)=>Math.max(t||0,e||0)),0)}}class n extends i{static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static isNotLowPriorityImageNode(t){if("network"!==t.type)return!0;const e="Image"===t.request.resourceType,i="Low"===t.request.priority||"VeryLow"===t.request.priority;return!e||!i}static getOptimisticGraph(t,i){const r=i.timestamps.largestContentfulPaint;if(!r)throw new e.LanternError("NO_LCP");return s.getFirstPaintBasedGraph(t,{cutoffTimestamp:r,treatNodeAsRenderBlocking:n.isNotLowPriorityImageNode})}static getPessimisticGraph(t,i){const r=i.timestamps.largestContentfulPaint;if(!r)throw new e.LanternError("NO_LCP");return s.getFirstPaintBasedGraph(t,{cutoffTimestamp:r,treatNodeAsRenderBlocking:t=>!0,additionalCpuNodesToTreatAsRenderBlocking:t=>t.didPerformLayout()})}static getEstimateFromSimulation(t){const e=Array.from(t.nodeTimings.entries()).filter((t=>n.isNotLowPriorityImageNode(t[0]))).map((t=>t[1].endTime));return{timeInMs:Math.max(...e),nodeTimings:t.nodeTimings}}static compute(t,i){const s=i?.fcpResult;if(!s)throw new e.LanternError("FCP is required to calculate the LCP metric");const r=super.compute(t,i);return r.timing=Math.max(r.timing,s.timing),r}}class a extends i{static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,i){if(!i.fcpResult)throw new e.LanternError("missing fcpResult");const s=i.optimistic?i.fcpResult.pessimisticEstimate.timeInMs:i.fcpResult.optimisticEstimate.timeInMs,r=a.getTimingsAfterFCP(t.nodeTimings,s);return{timeInMs:Math.max(...r.map((t=>t.duration)),16),nodeTimings:t.nodeTimings}}static compute(t,i){const s=i?.fcpResult;if(!s)throw new e.LanternError("FCP is required to calculate the Max Potential FID metric");return super.compute(t,i)}static getTimingsAfterFCP(e,i){return Array.from(e.entries()).filter((([e,s])=>e.type===t.BaseNode.types.CPU&&s.endTime>i)).map((([t,e])=>e))}}class o extends i{static get coefficients(){return{intercept:0,optimistic:1.4,pessimistic:.4}}static getScaledCoefficients(t){const e=this.coefficients,i=Math.max((t-30)/120,0);return{intercept:e.intercept*i,optimistic:.5+(e.optimistic-.5)*i,pessimistic:.5+(e.pessimistic-.5)*i}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,i){if(!i.fcpResult)throw new e.LanternError("missing fcpResult");if(void 0===i.observedSpeedIndex)throw new e.LanternError("missing observedSpeedIndex");const s=i.fcpResult.pessimisticEstimate.timeInMs;return{timeInMs:i.optimistic?i.observedSpeedIndex:o.computeLayoutBasedSpeedIndex(t.nodeTimings,s),nodeTimings:t.nodeTimings}}static compute(t,i){const s=i?.fcpResult;if(!s)throw new e.LanternError("FCP is required to calculate the SpeedIndex metric");const r=super.compute(t,i);return r.timing=Math.max(r.timing,s.timing),r}static computeLayoutBasedSpeedIndex(e,i){const s=[];for(const[i,r]of e.entries())if(i.type===t.BaseNode.types.CPU&&i.childEvents.some((t=>"Layout"===t.name))){const t=Math.max(Math.log2(r.endTime-r.startTime),0);s.push({time:r.endTime,weight:t})}const r=s.map((t=>t.weight*Math.max(t.time,i))).reduce(((t,e)=>t+e),0),n=s.map((t=>t.weight)).reduce(((t,e)=>t+e),0);return n?r/n:i}}const c=50;function m(t,e,i,s){let r=c;if(s&&(r*=t.duration/s.duration),t.duration<r)return 0;if(t.end<e)return 0;if(t.start>i)return 0;const n=Math.max(t.start,e),a=Math.min(t.end,i)-n;return a<r?0:a-r}function p(t,e,i){if(i<=e)return 0;let s=0;for(const r of t)s+=m(r,e,i);return s}var u=Object.freeze({__proto__:null,BLOCKING_TIME_THRESHOLD:c,calculateSumOfBlockingTime:p,calculateTbtImpactForEvent:m});class d extends i{static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,i){if(!i.fcpResult)throw new e.LanternError("missing fcpResult");if(!i.interactiveResult)throw new e.LanternError("missing interactiveResult");const s=i.optimistic?i.fcpResult.pessimisticEstimate.timeInMs:i.fcpResult.optimisticEstimate.timeInMs,r=i.optimistic?i.interactiveResult.optimisticEstimate.timeInMs:i.interactiveResult.pessimisticEstimate.timeInMs,n=c;return{timeInMs:p(d.getTopLevelEvents(t.nodeTimings,n),s,r),nodeTimings:t.nodeTimings}}static compute(t,i){const s=i?.fcpResult;if(!s)throw new e.LanternError("FCP is required to calculate the TBT metric");const r=i?.fcpResult;if(!r)throw new e.LanternError("Interactive is required to calculate the TBT metric");return super.compute(t,i)}static getTopLevelEvents(e,i){const s=[];for(const[r,n]of e.entries())r.type===t.BaseNode.types.CPU&&(n.duration<i||s.push({start:n.startTime,end:n.endTime,duration:n.duration}));return s}}export{s as FirstContentfulPaint,r as Interactive,n as LargestContentfulPaint,a as MaxPotentialFID,i as Metric,o as SpeedIndex,u as TBTUtils,d as TotalBlockingTime};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as t from"../core/core.js";import*as e from"../graph/graph.js";const i=1460;class o{_warmed;_ssl;_h2;_rtt;_throughput;_serverLatency;_congestionWindow;_h2OverflowBytesDownloaded;constructor(t,e,i=0,o=!0,s=!1){this._warmed=!1,this._ssl=o,this._h2=s,this._rtt=t,this._throughput=e,this._serverLatency=i,this._congestionWindow=10,this._h2OverflowBytesDownloaded=0}static maximumSaturatedConnections(t,e){const i=8*(1460*(1e3/t));return Math.floor(e/i)}_computeMaximumCongestionWindowInSegments(){const t=this._throughput/8*(this._rtt/1e3);return Math.floor(t/i)}setThroughput(t){this._throughput=t}setCongestionWindow(t){this._congestionWindow=t}setWarmed(t){this._warmed=t}isWarm(){return this._warmed}isH2(){return this._h2}get congestionWindow(){return this._congestionWindow}setH2OverflowBytesDownloaded(t){this._h2&&(this._h2OverflowBytesDownloaded=t)}clone(){return Object.assign(new o(this._rtt,this._throughput),this)}simulateDownloadUntil(t,e){const{timeAlreadyElapsed:o=0,maximumTimeToElapse:s=1/0,dnsResolutionTime:n=0}=e||{};this._warmed&&this._h2&&(t-=this._h2OverflowBytesDownloaded);const r=this._rtt,a=r/2,d=this._computeMaximumCongestionWindowInSegments();let h=a;this._warmed||(h=n+a+a+a+(this._ssl?r:0));let u=Math.ceil(h/r),l=h+this._serverLatency+a;this._warmed&&this._h2&&(l=0);const m=Math.max(l-o,0),c=s-m;let p=Math.min(this._congestionWindow,d),_=0;m>0?_=p*i:u=0;let g=0,w=t-_;for(;w>0&&g<=c;){u++,g+=r,p=Math.max(Math.min(d,2*p),1);const t=p*i;_+=t,w-=t}const T=m+g,y=this._h2?Math.max(_-t,0):0,N=Math.max(Math.min(_,t),0);let f;return f=this._warmed?this._h2?{timeToFirstByte:l}:{connectionTime:h,timeToFirstByte:l}:{dnsResolutionTime:n,connectionTime:h-n,sslTime:this._ssl?r:void 0,timeToFirstByte:l},{roundTrips:u,timeElapsed:T,bytesDownloaded:N,extraBytesDownloaded:y,congestionWindow:p,connectionTiming:f}}}const s=["https","wss"];class n{_options;_records;_connectionsByOrigin;_connectionsByRequest;_connectionsInUse;_connectionReusedByRequestId;constructor(e,i){this._options=i,this._records=e,this._connectionsByOrigin=new Map,this._connectionsByRequest=new Map,this._connectionsInUse=new Set,this._connectionReusedByRequestId=t.NetworkAnalyzer.estimateIfConnectionWasReused(e,{forceCoarseEstimates:!0}),this._initializeConnections()}connectionsInUse(){return Array.from(this._connectionsInUse)}_initializeConnections(){const e=this._connectionReusedByRequestId,i=this._options.additionalRttByOrigin,n=this._options.serverResponseTimeByOrigin,r=t.NetworkAnalyzer.groupByOrigin(this._records);for(const[a,d]of r.entries()){const r=[],h=i.get(a)||0,u=n.get(a)||30;for(const t of d){if(e.get(t.requestId))continue;const i=s.includes(t.parsedURL.scheme),n="h2"===t.protocol,a=new o(this._options.rtt+h,this._options.throughput,u,i,n);r.push(a)}if(!r.length)throw new t.LanternError(`Could not find a connection for origin: ${a}`);const l=r[0].isH2()?1:6;for(;r.length<l;)r.push(r[0].clone());this._connectionsByOrigin.set(a,r)}}_findAvailableConnectionWithLargestCongestionWindow(t){let e=null;for(let i=0;i<t.length;i++){const o=t[i];if(this._connectionsInUse.has(o))continue;const s=e?.congestionWindow||-1/0;o.congestionWindow>s&&(e=o)}return e}acquire(e){if(this._connectionsByRequest.has(e))throw new t.LanternError("Record already has a connection");const i=e.parsedURL.securityOrigin,o=this._connectionsByOrigin.get(i)||[],s=this._findAvailableConnectionWithLargestCongestionWindow(o);return s?(this._connectionsInUse.add(s),this._connectionsByRequest.set(e,s),s):null}acquireActiveConnectionFromRequest(e){const i=this._connectionsByRequest.get(e);if(!i)throw new t.LanternError("Could not find an active connection for request");return i}release(t){const e=this._connectionsByRequest.get(t);this._connectionsByRequest.delete(t),e&&this._connectionsInUse.delete(e)}}const r=3.75,a=.9,d={throttling:{DEVTOOLS_RTT_ADJUSTMENT_FACTOR:r,DEVTOOLS_THROUGHPUT_ADJUSTMENT_FACTOR:a,mobileSlow4G:{rttMs:150,throughputKbps:1638.4,requestLatencyMs:562.5,downloadThroughputKbps:1474.5600000000002,uploadThroughputKbps:675,cpuSlowdownMultiplier:4},mobileRegular3G:{rttMs:300,throughputKbps:700,requestLatencyMs:1125,downloadThroughputKbps:630,uploadThroughputKbps:630,cpuSlowdownMultiplier:4},desktopDense4G:{rttMs:40,throughputKbps:10240,cpuSlowdownMultiplier:1,requestLatencyMs:0,downloadThroughputKbps:0,uploadThroughputKbps:0}}};class h{static rttMultiplier=2;_rtt;_resolvedDomainNames;constructor({rtt:t}){this._rtt=t,this._resolvedDomainNames=new Map}getTimeUntilResolution(t,e){const{requestedAt:i=0,shouldUpdateCache:o=!1}=e||{},s=t.parsedURL.host,n=this._resolvedDomainNames.get(s);let r=this._rtt*h.rttMultiplier;if(n){const t=Math.max(n.resolvedAt-i,0);r=Math.min(t,r)}const a=i+r;return o&&this._updateCacheResolvedAtIfNeeded(t,a),r}_updateCacheResolvedAtIfNeeded(t,e){const i=t.parsedURL.host,o=this._resolvedDomainNames.get(i)||{resolvedAt:e};o.resolvedAt=Math.min(o.resolvedAt,e),this._resolvedDomainNames.set(i,o)}setResolvedAt(t,e){this._resolvedDomainNames.set(t,{resolvedAt:e})}}class u{_nodeTimings;constructor(){this._nodeTimings=new Map}getNodes(){return Array.from(this._nodeTimings.keys())}setReadyToStart(t,e){this._nodeTimings.set(t,e)}setInProgress(t,i){const o={...this.getQueued(t),startTime:i.startTime,timeElapsed:0};this._nodeTimings.set(t,t.type===e.BaseNode.types.NETWORK?{...o,timeElapsedOvershoot:0,bytesDownloaded:0}:o)}setCompleted(t,e){const i={...this.getInProgress(t),endTime:e.endTime,connectionTiming:e.connectionTiming};this._nodeTimings.set(t,i)}setCpu(t,e){const i={...this.getCpuStarted(t),timeElapsed:e.timeElapsed};this._nodeTimings.set(t,i)}setCpuEstimated(t,e){const i={...this.getCpuStarted(t),estimatedTimeElapsed:e.estimatedTimeElapsed};this._nodeTimings.set(t,i)}setNetwork(t,e){const i={...this.getNetworkStarted(t),timeElapsed:e.timeElapsed,timeElapsedOvershoot:e.timeElapsedOvershoot,bytesDownloaded:e.bytesDownloaded};this._nodeTimings.set(t,i)}setNetworkEstimated(t,e){const i={...this.getNetworkStarted(t),estimatedTimeElapsed:e.estimatedTimeElapsed};this._nodeTimings.set(t,i)}getQueued(e){const i=this._nodeTimings.get(e);if(!i)throw new t.LanternError(`Node ${e.id} not yet queued`);return i}getCpuStarted(e){const i=this._nodeTimings.get(e);if(!i)throw new t.LanternError(`Node ${e.id} not yet queued`);if(!("startTime"in i))throw new t.LanternError(`Node ${e.id} not yet started`);if("bytesDownloaded"in i)throw new t.LanternError(`Node ${e.id} timing not valid`);return i}getNetworkStarted(e){const i=this._nodeTimings.get(e);if(!i)throw new t.LanternError(`Node ${e.id} not yet queued`);if(!("startTime"in i))throw new t.LanternError(`Node ${e.id} not yet started`);if(!("bytesDownloaded"in i))throw new t.LanternError(`Node ${e.id} timing not valid`);return i}getInProgress(e){const i=this._nodeTimings.get(e);if(!i)throw new t.LanternError(`Node ${e.id} not yet queued`);if(!("startTime"in i))throw new t.LanternError(`Node ${e.id} not yet started`);if(!("estimatedTimeElapsed"in i))throw new t.LanternError(`Node ${e.id} not yet in progress`);return i}getCompleted(e){const i=this._nodeTimings.get(e);if(!i)throw new t.LanternError(`Node ${e.id} not yet queued`);if(!("startTime"in i))throw new t.LanternError(`Node ${e.id} not yet started`);if(!("estimatedTimeElapsed"in i))throw new t.LanternError(`Node ${e.id} not yet in progress`);if(!("endTime"in i))throw new t.LanternError(`Node ${e.id} not yet completed`);return i}}const l=d.throttling.mobileSlow4G,m={NotReadyToStart:0,ReadyToStart:1,InProgress:2,Complete:3},c={VeryHigh:0,High:.25,Medium:.5,Low:1,VeryLow:2},p=new Map;class _{static createSimulator(t){const{throttlingMethod:e,throttling:i,precomputedLanternData:o,networkAnalysis:s}=t,n={additionalRttByOrigin:s.additionalRttByOrigin,serverResponseTimeByOrigin:s.serverResponseTimeByOrigin,observedThroughput:s.throughput};switch(o&&(n.additionalRttByOrigin=new Map(Object.entries(o.additionalRttByOrigin)),n.serverResponseTimeByOrigin=new Map(Object.entries(o.serverResponseTimeByOrigin))),e){case"provided":n.rtt=s.rtt,n.throughput=s.throughput,n.cpuSlowdownMultiplier=1,n.layoutTaskMultiplier=1;break;case"devtools":i&&(n.rtt=i.requestLatencyMs/d.throttling.DEVTOOLS_RTT_ADJUSTMENT_FACTOR,n.throughput=1024*i.downloadThroughputKbps/d.throttling.DEVTOOLS_THROUGHPUT_ADJUSTMENT_FACTOR),n.cpuSlowdownMultiplier=1,n.layoutTaskMultiplier=1;break;case"simulate":i&&(n.rtt=i.rttMs,n.throughput=1024*i.throughputKbps,n.cpuSlowdownMultiplier=i.cpuSlowdownMultiplier)}return new _(n)}_options;_rtt;_throughput;_maximumConcurrentRequests;_cpuSlowdownMultiplier;_layoutTaskMultiplier;_cachedNodeListByStartPosition;_nodeTimings;_numberInProgressByType;_nodes;_dns;_connectionPool;constructor(e){if(this._options=Object.assign({rtt:l.rttMs,throughput:1024*l.throughputKbps,maximumConcurrentRequests:10,cpuSlowdownMultiplier:l.cpuSlowdownMultiplier,layoutTaskMultiplier:.5,additionalRttByOrigin:new Map,serverResponseTimeByOrigin:new Map},e),this._rtt=this._options.rtt,this._throughput=this._options.throughput,this._maximumConcurrentRequests=Math.max(Math.min(o.maximumSaturatedConnections(this._rtt,this._throughput),this._options.maximumConcurrentRequests),1),this._cpuSlowdownMultiplier=this._options.cpuSlowdownMultiplier,this._layoutTaskMultiplier=this._cpuSlowdownMultiplier*this._options.layoutTaskMultiplier,this._cachedNodeListByStartPosition=[],this._nodeTimings=new u,this._numberInProgressByType=new Map,this._nodes={},this._dns=new h({rtt:this._rtt}),this._connectionPool=null,!Number.isFinite(this._rtt))throw new t.LanternError(`Invalid rtt ${this._rtt}`);if(!Number.isFinite(this._throughput))throw new t.LanternError(`Invalid rtt ${this._throughput}`)}get rtt(){return this._rtt}_initializeConnectionPool(t){const i=[];t.getRootNode().traverse((t=>{t.type===e.BaseNode.types.NETWORK&&i.push(t.request)})),this._connectionPool=new n(i,this._options)}_initializeAuxiliaryData(){this._nodeTimings=new u,this._numberInProgressByType=new Map,this._nodes={},this._cachedNodeListByStartPosition=[];for(const t of Object.values(m))this._nodes[t]=new Set}_numberInProgress(t){return this._numberInProgressByType.get(t)||0}_markNodeAsReadyToStart(t,e){const i=_._computeNodeStartPosition(t),o=this._cachedNodeListByStartPosition.findIndex((t=>_._computeNodeStartPosition(t)>i)),s=-1===o?this._cachedNodeListByStartPosition.length:o;this._cachedNodeListByStartPosition.splice(s,0,t),this._nodes[m.ReadyToStart].add(t),this._nodes[m.NotReadyToStart].delete(t),this._nodeTimings.setReadyToStart(t,{queuedTime:e})}_markNodeAsInProgress(t,e){const i=this._cachedNodeListByStartPosition.indexOf(t);this._cachedNodeListByStartPosition.splice(i,1),this._nodes[m.InProgress].add(t),this._nodes[m.ReadyToStart].delete(t),this._numberInProgressByType.set(t.type,this._numberInProgress(t.type)+1),this._nodeTimings.setInProgress(t,{startTime:e})}_markNodeAsComplete(t,e,i){this._nodes[m.Complete].add(t),this._nodes[m.InProgress].delete(t),this._numberInProgressByType.set(t.type,this._numberInProgress(t.type)-1),this._nodeTimings.setCompleted(t,{endTime:e,connectionTiming:i});for(const i of t.getDependents()){i.getDependencies().some((t=>!this._nodes[m.Complete].has(t)))||this._markNodeAsReadyToStart(i,e)}}_acquireConnection(t){return this._connectionPool.acquire(t)}_getNodesSortedByStartPosition(){return Array.from(this._cachedNodeListByStartPosition)}_startNodeIfPossible(i,o){if(i.type!==e.BaseNode.types.CPU){if(i.type!==e.BaseNode.types.NETWORK)throw new t.LanternError("Unsupported");if(!i.isConnectionless){if(this._numberInProgress(i.type)>=this._maximumConcurrentRequests)return;if(!this._acquireConnection(i.request))return}this._markNodeAsInProgress(i,o)}else 0===this._numberInProgress(i.type)&&this._markNodeAsInProgress(i,o)}_updateNetworkCapacity(){const t=this._numberInProgress(e.BaseNode.types.NETWORK);if(0!==t)for(const e of this._connectionPool.connectionsInUse())e.setThroughput(this._throughput/t)}_estimateTimeRemaining(i){if(i.type===e.BaseNode.types.CPU)return this._estimateCPUTimeRemaining(i);if(i.type===e.BaseNode.types.NETWORK)return this._estimateNetworkTimeRemaining(i);throw new t.LanternError("Unsupported")}_estimateCPUTimeRemaining(t){const e=this._nodeTimings.getCpuStarted(t),i=t.didPerformLayout()?this._layoutTaskMultiplier:this._cpuSlowdownMultiplier,o=Math.min(Math.round(t.duration/1e3*i),1e4)-e.timeElapsed;return this._nodeTimings.setCpuEstimated(t,{estimatedTimeElapsed:o}),o}_estimateNetworkTimeRemaining(t){const e=t.request,i=this._nodeTimings.getNetworkStarted(t);let o=0;if(t.fromDiskCache){o=8+20*((e.resourceSize||0)/1024/1024)-i.timeElapsed}else if(t.isNonNetworkProtocol){o=2+10*((e.resourceSize||0)/1024/1024)-i.timeElapsed}else{const t=this._connectionPool.acquireActiveConnectionFromRequest(e),s=this._dns.getTimeUntilResolution(e,{requestedAt:i.startTime,shouldUpdateCache:!0}),n=i.timeElapsed;o=t.simulateDownloadUntil(e.transferSize-i.bytesDownloaded,{timeAlreadyElapsed:n,dnsResolutionTime:s,maximumTimeToElapse:1/0}).timeElapsed}const s=o+i.timeElapsedOvershoot;return this._nodeTimings.setNetworkEstimated(t,{estimatedTimeElapsed:s}),s}_findNextNodeCompletionTime(){let t=1/0;for(const e of this._nodes[m.InProgress])t=Math.min(t,this._estimateTimeRemaining(e));return t}_updateProgressMadeInTimePeriod(i,o,s){const n=this._nodeTimings.getInProgress(i),r=n.estimatedTimeElapsed===o;if(i.type===e.BaseNode.types.CPU||i.isConnectionless)return void(r?this._markNodeAsComplete(i,s):n.timeElapsed+=o);if(i.type!==e.BaseNode.types.NETWORK)throw new t.LanternError("Unsupported");if(!("bytesDownloaded"in n))throw new t.LanternError("Invalid timing data");const a=i.request,d=this._connectionPool.acquireActiveConnectionFromRequest(a),h=this._dns.getTimeUntilResolution(a,{requestedAt:n.startTime,shouldUpdateCache:!0}),u=d.simulateDownloadUntil(a.transferSize-n.bytesDownloaded,{dnsResolutionTime:h,timeAlreadyElapsed:n.timeElapsed,maximumTimeToElapse:o-n.timeElapsedOvershoot});d.setCongestionWindow(u.congestionWindow),d.setH2OverflowBytesDownloaded(u.extraBytesDownloaded),r?(d.setWarmed(!0),this._connectionPool.release(a),this._markNodeAsComplete(i,s,u.connectionTiming)):(n.timeElapsed+=u.timeElapsed,n.timeElapsedOvershoot+=u.timeElapsed-o,n.bytesDownloaded+=u.bytesDownloaded)}_computeFinalNodeTimings(){const t=this._nodeTimings.getNodes().map((t=>[t,this._nodeTimings.getCompleted(t)]));t.sort(((t,e)=>t[1].startTime-e[1].startTime));const e=t.map((([t,e])=>[t,{startTime:e.startTime,endTime:e.endTime,duration:e.endTime-e.startTime}]));return{nodeTimings:new Map(e),completeNodeTimings:new Map(t)}}getOptions(){return this._options}simulate(i,o){if(e.BaseNode.hasCycle(i))throw new t.LanternError("Cannot simulate graph with cycle");o=Object.assign({label:void 0},o),this._dns=new h({rtt:this._rtt}),this._initializeConnectionPool(i),this._initializeAuxiliaryData();const s=this._nodes[m.NotReadyToStart],n=this._nodes[m.ReadyToStart],r=this._nodes[m.InProgress],a=i.getRootNode();a.traverse((t=>s.add(t)));let d=0,u=0;for(this._markNodeAsReadyToStart(a,d);n.size||r.size;){for(const t of this._getNodesSortedByStartPosition())this._startNodeIfPossible(t,d);if(!r.size)throw new t.LanternError("Failed to start a node");this._updateNetworkCapacity();const e=this._findNextNodeCompletionTime();if(d+=e,!Number.isFinite(e)||u>1e5)throw new t.LanternError("Simulation failed, depth exceeded");u++;for(const t of r)this._updateProgressMadeInTimePeriod(t,e,d)}const{nodeTimings:l,completeNodeTimings:c}=this._computeFinalNodeTimings();return p.set(o.label||"unlabeled",c),{timeInMs:d,nodeTimings:l}}computeWastedMsFromWastedBytes(t){const{throughput:e,observedThroughput:i}=this._options,o=0===e?i:e;if(0===o)return 0;const s=8*t/o*1e3;return 10*Math.round(s/10)}static get allNodeTimings(){return p}static _computeNodeStartPosition(t){return"cpu"===t.type?t.startTime:t.startTime+(1e3*c[t.request.priority]*1e3||0)}}export{n as ConnectionPool,d as Constants,h as DNSCache,_ as Simulator,u as SimulatorTimingMap,o as TCPConnection};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={XHR:"XHR",Fetch:"Fetch",EventSource:"EventSource",Script:"Script",Stylesheet:"Stylesheet",Image:"Image",Media:"Media",Font:"Font",Document:"Document",TextTrack:"TextTrack",WebSocket:"WebSocket",Other:"Other",Manifest:"Manifest",SignedExchange:"SignedExchange",Ping:"Ping",Preflight:"Preflight",CSPViolationReport:"CSPViolationReport",Prefetch:"Prefetch"};export{e as NetworkRequestTypes};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as t from"../../../core/platform/platform.js";import*as e from"../helpers/helpers.js";import*as n from"../types/types.js";const o=new Map,s=new Map;const a=new Set(["non_blocking","potentially_blocking"]);function i(t,e){return!a.has(t.args.data.renderBlocking)&&t.args.data.frame===e}class r{#t;#e=new Map;#n=new Map;#o;constructor(t,e){this.#t=t,this.#o=e?.enableIframeRootCauses??!1}async rootCausesForEvent(e,n){const o=this.#e.get(n);if(o)return o;const s=e.LayoutShifts.clusters.flatMap((t=>t.events));s.forEach((e=>function(e,n){t.MapUtilities.getWithDefault(e,n,(()=>({unsizedMedia:[],iframes:[],fontChanges:[],renderBlockingRequests:[],scriptStackTrace:[]})))}(this.#e,e))),await this.blameShifts(s,e);const a=this.#e.get(n);return a||null}async blameShifts(t,e){await this.linkShiftsToLayoutInvalidations(t,e),this.linkShiftsToLayoutEvents(t,e)}async linkShiftsToLayoutInvalidations(e,o){const{prePaintEvents:s,layoutInvalidationEvents:a,scheduleStyleInvalidationEvents:i,backendNodeIds:r}=o.LayoutShifts,u=[...a,...i],c=await this.#t.pushNodesByBackendIdsToFrontend(r),l=new Map;for(let t=0;t<r.length;t++)l.set(r[t],c[t]);const f=d(e,s);for(const e of u){const a=t.ArrayUtilities.nearestIndexFromBeginning(s,(t=>t.ts>e.ts));if(null===a)continue;const i=s[a],r=f.get(i);if(!r)continue;const u=this.getFontChangeRootCause(e,i,o),c=this.getRenderBlockRootCause(e,i,o),d=l.get(e.args.data.nodeId);let h=null,g=null;if(void 0!==d&&n.TraceEvents.isTraceEventLayoutInvalidationTracking(e)&&(h=await this.getUnsizedMediaRootCause(e,d),g=await this.getIframeRootCause(e,d)),h||g||u||c)for(const n of r){const o=t.MapUtilities.getWithDefault(this.#e,n,(()=>({unsizedMedia:[],iframes:[],fontChanges:[],renderBlockingRequests:[],scriptStackTrace:[]})));h&&!o.unsizedMedia.some((t=>t.node.nodeId===h?.node.nodeId))&&n.args.frame===e.args.data.frame&&o.unsizedMedia.push(h),g&&!o.iframes.some((t=>t.iframe.nodeId===g?.iframe.nodeId))&&o.iframes.push(g),u&&(o.fontChanges=u),c&&(o.renderBlockingRequests=c)}}}linkShiftsToLayoutEvents(e,n){const{prePaintEvents:o}=n.LayoutShifts,s=d(e,o),a=n.Renderer.allTraceEntries.filter((({name:t})=>"Layout"===t));for(const e of a){const a=t.ArrayUtilities.nearestIndexFromBeginning(o,(t=>t.ts>e.ts+(e.dur||0)));if(null===a)continue;const i=o[a],r=s.get(i);if(!r)continue;const u=n.Renderer.entryToNode.get(e),c=u?n.Initiators.eventToInitiator.get(u.entry):null,l=c?.args?.data?.stackTrace;if(l)for(const e of r){const n=t.MapUtilities.getWithDefault(this.#e,e,(()=>({unsizedMedia:[],iframes:[],fontChanges:[],renderBlockingRequests:[],scriptStackTrace:[]})));0===n.scriptStackTrace.length&&(n.scriptStackTrace=l)}}}async getUnsizedMediaRootCause(t,e){if("Size changed"!==t.args.data.reason)return null;const n=await this.getNodeDetails(e);if(!n)return null;const o=await this.#t.getComputedStyleForNode(n.nodeId),s=new Map(o.map((t=>[t.name,t.value])));if(s&&!await async function(t,e){const n=t.localName,o=function(t){const e=/^url\("([^"]+)"\)$/,n=t.get("background-image");if(!n)return!1;return e.test(n)}(e);if("img"!==n&&"video"!==n&&!o)return!1;return!function(t){const e=t.get("position");if(!e)return!1;return"fixed"===e||"absolute"===e}(e)}(n,s))return null;const a=await this.getNodeAuthoredDimensions(n);if(function(t){const{height:e,width:n,aspectRatio:o}=t,s=Boolean(e&&c(e)),a=Boolean(n&&c(n)),i=Boolean(o&&c(o)),r=(s||a)&&i;return s&&a||r}(a))return null;return{node:n,authoredDimensions:a,computedDimensions:s?function(t){const e={};return e.height=t.get("height"),e.width=t.get("width"),e.aspectRatio=t.get("aspect-ratio"),e}(s):{}}}async getIframeRootCause(t,e){if(!this.#o)return null;if(!t.args.data.nodeName?.startsWith("IFRAME")&&"Style changed"!==t.args.data.reason&&"Added to layout"!==t.args.data.reason)return null;const n=await this.getNodeDetails(e);if(!n)return null;const o=u(n);return o?{iframe:o}:null}async getNodeDetails(t){let e=this.#n.get(t);return void 0!==e||(e=await this.#t.getNode(t),this.#n.set(t,e)),e}requestsInInvalidationWindow(o,s){const a=s.NetworkRequests.byTime.sort(((t,e)=>t.ts+t.dur-(e.ts+e.dur))),i=t.ArrayUtilities.nearestIndexFromEnd(a,(t=>t.ts+t.dur<o.ts));if(null===i)return[];const r=e.Timing.secondsToMicroseconds(n.Timing.Seconds(.5)),u=[];for(let t=i;t>-1;t--){const e=a[t],n=e.ts+e.dur;if(!(o.ts-n<r))break;{const t={request:e},n=this.#t.getInitiatorForRequest(e.args.data.url);t.initiator=n||void 0,u.push(t)}}return u}getFontChangeRootCause(t,e,n){if("Fonts changed"!==t.args.data.reason)return null;const s=o.get(e);if(void 0!==s)return s;const a=this.getFontRequestsInInvalidationWindow(this.requestsInInvalidationWindow(t,n));return o.set(e,a),a}getFontRequestsInInvalidationWindow(t){const e=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o.request.args.data.mimeType.startsWith("font"))continue;const s=this.#t.fontFaceForSource(o.request.args.data.url);s&&"optional"!==s.fontDisplay&&(o.fontFace=s,e.push(o))}return e}getRenderBlockRootCause(t,e,n){const o=s.get(e);if(void 0!==o)return o;const a=function(t){const e=[];for(let n=0;n<t.length;n++){const o=t[n].request.args.data.frame;i(t[n].request,o)&&e.push(t[n])}return e}(this.requestsInInvalidationWindow(t,n));return s.set(e,a),a}async nodeMatchedStylesPropertyGetter(t){const e=await this.#t.getMatchedStylesForNode(t.nodeId);return function(t){let n=e.inlineStyle?.cssProperties.find((e=>e.name===t));if(n)return n.value;for(const{rule:n}of e.matchedCSSRules||[]){const e=n.style.cssProperties.find((e=>e.name===t));if(e)return e.value}return n=e.attributesStyle?.cssProperties.find((e=>e.name===t)),n?n.value:null}}async getNodeAuthoredDimensions(t){const e={},n=await this.nodeMatchedStylesPropertyGetter(t);if(!n)return e;const o=t.attributes||[],s=[];for(let t=0;t<o.length;t+=2)s.push({name:o[t],value:o[t+1]});const a=s.find((t=>"height"===t.name&&l(t))),i=s.find((t=>"width"===t.name&&l(t))),r=n("aspect-ratio")||void 0;if(a&&i&&r)return{height:a.value,width:i.value,aspectRatio:r};return{height:n("height")||void 0,width:n("width")||void 0,aspectRatio:r}}}function u(t){if("IFRAME"===t.nodeName)return t;const e=t.children;if(!e)return null;for(const t of e){const e=u(t);if(e)return e}return null}function c(t){return!["auto","initial","unset","inherit"].includes(t)}function l(t){return parseInt(t.value,10)>=0}function d(e,n){const o=new Map;for(const s of n){const n=t.ArrayUtilities.nearestIndexFromBeginning(e,(t=>t.ts>=s.ts));if(null!==n)for(let a=n;a<e.length;a++){const n=e[a];if(n.ts>=s.ts&&n.ts<=s.ts+s.dur){t.MapUtilities.getWithDefault(o,s,(()=>[])).push(n)}if(n.ts>s.ts+s.dur)break}}return o}var f=Object.freeze({__proto__:null,RootCauses:class{layoutShifts;constructor(t){this.layoutShifts=new r(t)}},LayoutShiftRootCauses:r});export{f as RootCauses};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as e from"./extras/extras.js";export{e as Extras};import*as t from"./handlers/handlers.js";export{t as Handlers};import*as r from"./helpers/helpers.js";export{r as Helpers};import*as s from"./insights/insights.js";export{s as Insights};import*as n from"./lantern/lantern.js";export{n as Lantern};import*as a from"../../core/platform/platform.js";import*as i from"./types/types.js";export{i as Types};import*as o from"./root-causes/root-causes.js";export{o as RootCauses};import*as c from"../../core/sdk/sdk.js";function d(e,t,r){const s=e.PageLoadMetrics.metricScoresByFrameId.get(t);if(!s)throw new n.Core.LanternError("missing metric scores for frame");const a=s.get(r);if(!a)throw new n.Core.LanternError("missing metric scores for specified navigation");return{timestamps:{firstContentfulPaint:(e=>{const t=a.get(e);if(!t?.event)throw new n.Core.LanternError(`missing metric: ${e}`);return t.event.ts})("FCP"),largestContentfulPaint:(e=>{const t=a.get(e);if(t?.event)return t.event.ts})("LCP")}}}function l(e){return"string"==typeof e&&(e=new URL(e)),{scheme:e.protocol.split(":")[0],host:e.hostname,securityOrigin:e.origin}}function h(e,t,r){if(void 0===r.args.data.connectionId||void 0===r.args.data.connectionReused)throw new n.Core.LanternError("Trace is too old");let s;try{s=new URL(r.args.data.url)}catch(e){return}const a=r.args.data.timing?{workerFetchStart:-1,workerRespondWithSettled:-1,...r.args.data.timing}:void 0,i=a?1e3*a.requestTime:r.args.data.syntheticData.downloadStart/1e3;let o=!1;const c=t.get(r.pid);c?.includes(r.tid)&&(o=!0),e.Workers.workerIdByThread.has(r.tid)&&(o=!0);const d=r.args.data.initiator??{type:"other"};if(r.args.data.stackTrace){const e=r.args.data.stackTrace.map((e=>({scriptId:String(e.scriptId),url:e.url,lineNumber:e.lineNumber-1,columnNumber:e.columnNumber-1,functionName:e.functionName})));d.stack={callFrames:e}}let h=r.args.data.resourceType;"xmlhttprequest"===r.args.data.initiator?.fetchType?h="XHR":"fetch"===r.args.data.initiator?.fetchType&&(h="Fetch");let u=r.args.data.decodedBodyLength??0;if("data:"===s.protocol&&0===u){const e="base64,",t=s.pathname.indexOf(e);-1!==t&&(u=atob(s.pathname.substring(t+e.length)).length)}return{rawRequest:r,requestId:r.args.data.requestId,connectionId:r.args.data.connectionId,connectionReused:r.args.data.connectionReused,url:r.args.data.url,protocol:r.args.data.protocol,parsedURL:l(s),documentURL:r.args.data.requestingFrameUrl,rendererStartTime:r.ts/1e3,networkRequestTime:i,responseHeadersEndTime:r.args.data.syntheticData.downloadStart/1e3,networkEndTime:r.args.data.syntheticData.finishTime/1e3,transferSize:r.args.data.encodedDataLength,resourceSize:u,fromDiskCache:r.args.data.syntheticData.isDiskCached,fromMemoryCache:r.args.data.syntheticData.isMemoryCached,isLinkPreload:r.args.data.isLinkPreload,finished:r.args.data.finished,failed:r.args.data.failed,statusCode:r.args.data.statusCode,initiator:d,timing:a,resourceType:h,mimeType:r.args.data.mimeType,priority:r.args.data.priority,frameId:r.args.data.frame,fromWorker:o,redirects:void 0,redirectSource:void 0,redirectDestination:void 0,initiatorRequest:void 0}}function u(e,t){if(e.redirectSource)return e.redirectSource;const r=n.Graph.PageDependencyGraph.getNetworkInitiators(e)[0];let s=t.get(r)||[];if(s=s.filter((t=>t.responseHeadersEndTime<=e.rendererStartTime&&t.finished&&!t.failed)),s.length>1){const e=s.filter((e=>e.resourceType!==n.Types.NetworkRequestTypes.Other));e.length&&(s=e)}if(s.length>1){const t=s.filter((t=>t.frameId===e.frameId));t.length&&(s=t)}if(s.length>1&&"parser"===e.initiator.type){const e=s.filter((e=>e.resourceType===n.Types.NetworkRequestTypes.Document));e.length&&(s=e)}if(s.length>1){const e=s.filter((e=>e.isLinkPreload));if(e.length){const t=s.filter((e=>!e.isLinkPreload)),r=t.every((e=>e.fromDiskCache||e.fromMemoryCache));t.length&&r&&(s=e)}}return 1===s.length?s[0]:null}function g(e,t,r=0,s=Number.POSITIVE_INFINITY){const n=function(e){const t=new Map,r=["ServiceWorker thread","DedicatedWorker thread"];for(const s of e.traceEvents){if("thread_name"!==s.name||!s.args.name)continue;if(!r.includes(s.args.name))continue;const e=t.get(s.pid);e?e.push(s.tid):t.set(s.pid,[s.tid])}return t}(e),a=[];for(const e of t.NetworkRequests.byTime)if(e.ts>=r&&e.ts<s){const r=h(t,n,e);r&&a.push(r)}for(const e of[...a]){if(!e.rawRequest)continue;const t=e.rawRequest.args.data.redirects;if(!t.length)continue;const r=[];for(const s of t){const t=structuredClone(e);t.networkRequestTime=s.ts/1e3,t.rendererStartTime=t.networkRequestTime,t.networkEndTime=(s.ts+s.dur)/1e3,t.responseHeadersEndTime=t.networkEndTime,t.timing={requestTime:t.networkRequestTime/1e3,receiveHeadersStart:t.responseHeadersEndTime,receiveHeadersEnd:t.responseHeadersEndTime,proxyStart:-1,proxyEnd:-1,dnsStart:-1,dnsEnd:-1,connectStart:-1,connectEnd:-1,sslStart:-1,sslEnd:-1,sendStart:-1,sendEnd:-1,workerStart:-1,workerReady:-1,workerFetchStart:-1,workerRespondWithSettled:-1,pushStart:-1,pushEnd:-1},t.url=s.url,t.parsedURL=l(s.url),t.statusCode=302,t.resourceType=void 0,t.transferSize=400,r.push(t),a.push(t)}r.push(e);for(let e=0;e<r.length;e++){const t=r[e];e>0&&(t.redirectSource=r[e-1],t.redirects=r.slice(0,e)),e!==r.length-1&&(t.redirectDestination=r[e+1])}for(let e=1;e<r.length;e++)r[e].requestId=`${r[e-1].requestId}:redirect`}return function(e){const t=new Map;for(const r of e){const e=t.get(r.url)||[];e.push(r),t.set(r.url,e)}for(const r of e){const e=u(r,t);e&&(r.initiatorRequest=e)}}(a),a.sort(((e,t)=>e.rendererStartTime-t.rendererStartTime))}function f(e,t,r,s){const a=function(e,t){const r=t.Meta,s=r.mainFrameNavigations.length?new Set(r.mainFrameNavigations.map((e=>e.pid))):r.topLevelRendererIds,n=new Map;for(const e of s){const t=r.threadsInProcess.get(e)??[];let s=!1;for(const[r,a]of t)if("CrRendererMain"===a.args.name){n.set(e,r),s=!0;break}if(!s)for(const[r,a]of t)if("CrBrowserMain"===a.args.name){n.set(e,r),s=!0;break}}return e.traceEvents.filter((e=>n.get(e.pid)===e.tid))}(t,r);if(!s){s={requestedUrl:e[0].url,mainDocumentUrl:""};let t=e[0];for(;t.redirectDestination;)t=t.redirectDestination;s.mainDocumentUrl=t.url}return n.Graph.PageDependencyGraph.createGraph(a,e,s)}var m=Object.freeze({__proto__:null,createProcessedNavigation:d,createNetworkRequests:g,createGraph:f});class p extends Event{data;static eventName="traceparseprogress";constructor(e,t={bubbles:!0}){super(p.eventName,t),this.data=e}}class v extends EventTarget{#e;#t="IDLE";#r=i.Configuration.defaults();#s=null;#n=null;static createWithAllHandlers(){return new v(t.ModelHandlers,i.Configuration.defaults())}static getEnabledInsightRunners(e){const t={};for(const[r,n]of Object.entries(s.InsightRunners)){n.deps().some((t=>!e[t]))||Object.assign(t,{[r]:n})}return t}constructor(e,r){super(),this.#a(e),this.#e={Meta:t.ModelHandlers.Meta,...e},r&&(this.#r=r),this.#i()}#i(){for(const e of Object.values(this.#e))"handleUserConfig"in e&&e.handleUserConfig&&e.handleUserConfig(this.#r)}#a(e){if(Object.keys(e).length===Object.keys(t.ModelHandlers).length)return;const r=new Set;for(const[t,s]of Object.entries(e)){r.add(t);const e="deps"in s?s.deps():[];for(const t of e)r.add(t)}const s=new Set(Object.keys(e));r.delete("Meta");for(const e of r)if(!s.has(e))throw new Error(`Required handler ${e} not provided.`)}reset(){if("PARSING"===this.#t)throw new Error("Trace processor can't reset while parsing.");const e=Object.values(this.#e);for(const t of e)t.reset();this.#s=null,this.#n=null,this.#t="IDLE"}async parse(e,t=!1){if("IDLE"!==this.#t)throw new Error(`Trace processor can't start parsing when not idle. Current state: ${this.#t}`);try{this.#t="PARSING",await this.#o(e,t),this.#s&&this.#c(this.#s,e),this.#t="FINISHED_PARSING"}catch(e){throw this.#t="ERRORED_WHILE_PARSING",e}}async#o(e,t){const r=[...w(this.#e).values()];for(const e of r)e.reset();for(const e of r)e.initialize?.(t);for(let t=0;t<e.length;++t){t%5e4==0&&t&&(this.dispatchEvent(new p({index:t,total:e.length})),await new Promise((e=>setTimeout(e,0))));const s=e[t];for(let e=0;e<r.length;++e)r[e].handleEvent(s)}for(const e of r)e.finalize&&(await new Promise((e=>setTimeout(e,0))),await e.finalize());const s=(e,t=!0)=>{if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return[...e];if("object"==typeof e&&e&&t){const t={};for(const[r,n]of Object.entries(e))t[r]=s(n,!1);return t}return e},n={};for(const[e,t]of Object.entries(this.#e)){const r=s(t.data());Object.assign(n,{[e]:r})}this.#s=n}get traceParsedData(){return"FINISHED_PARSING"!==this.#t?null:this.#s}get insights(){return"FINISHED_PARSING"!==this.#t?null:this.#n}#d(e,t,r,s){if(!e.NetworkRequests||!e.Workers||!e.PageLoadMetrics)return;if(!e.NetworkRequests.byTime.length)throw new n.Core.LanternError("No network requests found in trace");const a=e.Meta.navigationsByFrameId.get(r),i=a?.findIndex((e=>e.args.data?.navigationId===s));if(!a||void 0===i||-1===i)throw new n.Core.LanternError("Could not find navigation start");const o=a[i].ts,c=i+1<a.length?a[i+1].ts:Number.POSITIVE_INFINITY,l={traceEvents:t.filter((e=>e.ts>=o&&e.ts<c))},h=g(l,e,o,c),u=f(h,l,e),m=d(e,r,s),p=n.Core.NetworkAnalyzer.analyze(h),v=n.Simulation.Simulator.createSimulator({networkAnalysis:p,throttlingMethod:"simulate"}),w={graph:u,simulator:v,processedNavigation:m},y=n.Metrics.FirstContentfulPaint.compute(w),T=n.Metrics.LargestContentfulPaint.compute(w,{fcpResult:y}),E=n.Metrics.Interactive.compute(w,{lcpResult:T});return{graph:u,simulator:v,metrics:{firstContentfulPaint:y,interactive:E,largestContentfulPaint:T,totalBlockingTime:n.Metrics.TotalBlockingTime.compute(w,{fcpResult:y,interactiveResult:E})}}}#c(e,t){this.#n=new Map;const r=v.getEnabledInsightRunners(e);for(const s of e.Meta.mainFrameNavigations){const a=s.args.frame,i=s.args.data?.navigationId;if(!a||!i)continue;let o;try{o=this.#d(e,t,a,i)}catch(e){const t=["mainDocumentRequest not found","missing metric scores for main frame","missing metric: FCP","missing metric: LCP","No network requests found in trace","Trace is too old"];e instanceof n.Core.LanternError?t.some((t=>e.message===t))||console.error(e.message):console.error(e)}const c={frameId:a,navigationId:i,lantern:o},d={};for(const[t,s]of Object.entries(r)){let r;try{r=s.generateInsight(e,c)}catch(e){r=e}Object.assign(d,{[t]:r})}this.#n.set(c.navigationId,d)}}}function w(e){const t=new Map,r=new Set,s=n=>{if(t.has(n))return;if(r.has(n)){let e="";for(const t of r)(e||t===n)&&(e+=`${t}->`);throw e+=n,new Error(`Found dependency cycle in trace event handlers: ${e}`)}r.add(n);const a=e[n];if(!a)return;const i=a.deps?.();i&&i.forEach(s),t.set(n,a)};for(const t of Object.keys(e))s(t);return t}var y=Object.freeze({__proto__:null,TraceParseProgressEvent:p,TraceProcessor:v,sortHandlers:w});class T extends EventTarget{#l=[];#h=[];#u=new Map;#g=[];#f=0;#m;#p=i.Configuration.defaults();static createWithAllHandlers(e){return new T(t.ModelHandlers,e)}static createWithSubsetOfHandlers(e,t){return new T(e,t)}constructor(e,t){super(),t&&(this.#p=t),this.#m=new v(e,this.#p)}async parse(e,t){const s=t?.metadata||{},n=t?.isFreshRecording||!1,a=e=>{const{data:t}=e;this.dispatchEvent(new E({type:"PROGRESS_UPDATE",data:t}))};this.#m.addEventListener(p.eventName,a);const i={traceEvents:e,metadata:s,traceParsedData:null,traceInsights:null};try{const t=r.SyntheticEvents.SyntheticEventsManager.initAndActivate(e);await this.#m.parse(e,n),this.#v(i,this.#m.traceParsedData,this.#m.insights),this.#l.push(i),this.#h.push(t)}catch(e){throw e}finally{this.#m.removeEventListener(p.eventName,a),this.dispatchEvent(new E({type:"COMPLETE",data:"done"}))}}#v(e,t,s){e.traceParsedData=t,e.traceInsights=s,this.#f++;let n=`Trace ${this.#f}`,i=null;if(e.traceParsedData&&(i=r.Trace.extractOriginFromTrace(e.traceParsedData.Meta.mainFrameURL),i)){const e=a.MapUtilities.getWithDefault(this.#u,i,(()=>1));n=`${i} (${e})`,this.#u.set(i,e+1)}this.#g.push(n)}lastTraceIndex(){return this.size()-1}traceParsedData(e=this.#l.length-1){return this.#l[e]?this.#l[e].traceParsedData:null}traceInsights(e=this.#l.length-1){return this.#l[e]?this.#l[e].traceInsights:null}metadata(e=this.#l.length-1){return this.#l[e]?this.#l[e].metadata:null}overrideModifications(e,t){this.#l[e]&&(this.#l[e].metadata.modifications=t)}rawTraceEvents(e=this.#l.length-1){return this.#l[e]?this.#l[e].traceEvents:null}syntheticTraceEventsManager(e=this.#l.length-1){return this.#h[e]?this.#h[e]:null}size(){return this.#l.length}deleteTraceByIndex(e){this.#l.splice(e,1),this.#g.splice(e,1)}getRecordingsAvailable(){return this.#g}resetProcessor(){this.#m.reset()}}class E extends Event{data;static eventName="modelupdate";constructor(e){super(E.eventName),this.data=e}}var C=Object.freeze({__proto__:null,Model:T,ModelUpdateEvent:E,isModelUpdateDataComplete:function(e){return"COMPLETE"===e.type},isModelUpdateDataProgress:function(e){return"PROGRESS_UPDATE"===e.type}});class R extends c.SDKModel.SDKModel{#w;#y;#T;#E;#C;constructor(e){super(e),this.#w=e.tracingAgent(),e.registerTracingDispatcher(new S(this)),this.#y=null,this.#T=0,this.#E=0}bufferUsage(e,t,r){this.#T=void 0===t?null:t,this.#y&&this.#y.tracingBufferUsage(e||r||0)}eventsCollected(e){this.#y&&(this.#y.traceEventsCollected(e),this.#E+=e.length,this.#T?(this.#E>this.#T&&(this.#E=this.#T),this.#y.eventsRetrievalProgress(this.#E/this.#T)):this.#y.eventsRetrievalProgress(0))}tracingComplete(){this.#T=0,this.#E=0,this.#y&&(this.#y.tracingComplete(),this.#y=null),this.#C=!1}async reset(){this.#y&&await this.#w.invoke_end(),this.#T=0,this.#E=0,this.#y=null,this.#C=!1}async start(e,t,r){if(this.#y)throw new Error("Tracing is already started");this.#y=e;const s={bufferUsageReportingInterval:500,categories:t,options:r,transferMode:"ReportEvents"},n=await this.#w.invoke_start(s);return n.getError()&&(this.#y=null),n}stop(){if(!this.#y)throw new Error("Tracing is not started");if(this.#C)throw new Error("Tracing is already being stopped");this.#C=!0,this.#w.invoke_end()}}class S{#R;constructor(e){this.#R=e}bufferUsage({value:e,eventCount:t,percentFull:r}){this.#R.bufferUsage(e,t,r)}dataCollected({value:e}){this.#R.eventsCollected(e)}tracingComplete(){this.#R.tracingComplete()}}c.SDKModel.SDKModel.register(R,{capabilities:128,autostart:!1});var I=Object.freeze({__proto__:null,TracingManager:R});export{m as LanternComputationData,y as Processor,C as TraceModel,I as TracingManager};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.freeze({__proto__:null,defaults:()=>({includeRuntimeCallStats:!1,showAllEvents:!1,debugMode:!1,maxInvalidationEventsPerEvent:20}),configToCacheKey:function(e){return JSON.stringify(e)}});const n=["primary","primary-light","primary-dark","secondary","secondary-light","secondary-dark","tertiary","tertiary-light","tertiary-dark","error"];function t(e){return"marker"===e.dataType}function r(e){const n="track"in e&&Boolean(e.track);return("track-entry"===e.dataType||void 0===e.dataType)&&n}var a=Object.freeze({__proto__:null,colorIsValid:function(e){return n.includes(e)},isExtensionPayloadMarker:t,isExtensionPayloadTrackEntry:r,isValidExtensionPayload:function(e){return t(e)||r(e)},isSyntheticExtensionEntry:function(e){return"devtools.extension"===e.cat}});var i=Object.freeze({__proto__:null,isTimeRangeAnnotation:function(e){return"TIME_RANGE"===e.type},isEntryLabelAnnotation:function(e){return"ENTRY_LABEL"===e.type},isEntriesLinkAnnotation:function(e){return"ENTRIES_LINK"===e.type},traceEventKeyToValues:function(e){const n=e.split("-");switch(n[0]){case"p":if(5!==n.length||!n.every(((e,n)=>0===n||"number"==typeof e||!isNaN(parseInt(e,10)))))throw new Error(`Invalid ProfileCallKey: ${e}`);return{type:n[0],processID:parseInt(n[1],10),threadID:parseInt(n[2],10),sampleIndex:parseInt(n[3],10),protocol:parseInt(n[4],10)};case"r":if(2!==n.length||"number"!=typeof n[1]&&isNaN(parseInt(n[1],10)))throw new Error(`Invalid RawEvent Key: ${e}`);return{type:n[0],rawIndex:parseInt(n[1],10)};case"s":if(2!==n.length||"number"!=typeof n[1]&&isNaN(parseInt(n[1],10)))throw new Error(`Invalid SyntheticEvent Key: ${e}`);return{type:n[0],rawIndex:parseInt(n[1],10)};default:throw new Error(`Unknown trace event key: ${e}`)}}});var o=Object.freeze({__proto__:null,MicroSeconds:function(e){return e},MilliSeconds:function(e){return e},Seconds:function(e){return e}});function c(e){return"b"===e||"e"===e||"n"===e}const u=[I,S,h,g,y,T];const s=[...u,k];function m(e){return"ScheduleStyleInvalidationTracking"===e.name}function f(e){return"StyleRecalcInvalidationTracking"===e.name}function l(e){return"StyleInvalidatorInvalidationTracking"===e.name}function v(e){return"X"===e.ph}function d(e){return"I"===e.ph}function T(e){return"navigationStart"===e.name}function E(e){return"LayoutShift"===e.name}function p(e){return"LayoutInvalidationTracking"===e.name}function g(e){return"firstContentfulPaint"===e.name}function y(e){return"largestContentfulPaint::Candidate"===e.name}function S(e){return"MarkLoad"===e.name}function h(e){return"firstPaint"===e.name}function I(e){return"MarkDOMContent"===e.name}function k(e){return"InteractiveTime"===e.name}function R(e){return"EventTiming"===e.name}function C(e){return"SyntheticNetworkRequest"===e.name}function P(e){return"SyntheticWebSocketConnectionEvent"===e.name}function b(e){return"blink.user_timing"===e.cat}const L=new Set(["b","n","e","T","S","F","p"]);function F(e){return L.has(e.ph)}function w(e){return"WebSocketCreate"===e.name}function W(e){return"WebSocketSendHandshakeRequest"===e.name||"WebSocketReceiveHandshakeResponse"===e.name||"WebSocketDestroy"===e.name}function M(e){return"WebSocketSend"===e.name||"WebSocketReceive"===e.name}function D(e){return w(e)||W(e)||M(e)}var N=Object.freeze({__proto__:null,isNestableAsyncPhase:c,isAsyncPhase:function(e){return c(e)||"S"===e||"T"===e||"F"===e||"p"===e},isFlowPhase:function(e){return"s"===e||"t"===e||"f"===e},objectIsTraceEventCallFrame:function(e){return"functionName"in e&&"string"==typeof e.functionName&&"scriptId"in e&&("string"==typeof e.scriptId||"number"==typeof e.scriptId)&&"columnNumber"in e&&"number"==typeof e.columnNumber&&"lineNumber"in e&&"number"==typeof e.lineNumber&&"url"in e&&"string"==typeof e.url},isTraceEventRunTask:function(e){return"RunTask"===e.name},isTraceEventAuctionWorkletRunningInProcess:function(e){return"AuctionWorkletRunningInProcess"===e.name},isTraceEventAuctionWorkletDoneWithProcess:function(e){return"AuctionWorkletDoneWithProcess"===e.name},isTraceEventScreenshot:function(e){return"Screenshot"===e.name},MarkerName:["MarkDOMContent","MarkLoad","firstPaint","firstContentfulPaint","largestContentfulPaint::Candidate"],isTraceEventMarkerEvent:function(e){return u.some((n=>n(e)))},eventIsPageLoadEvent:function(e){return s.some((n=>n(e)))},isTraceEventTracingSessionIdForWorker:function(e){return"TracingSessionIdForWorker"===e.name},isTraceEventScheduleStyleInvalidationTracking:m,isTraceEventStyleRecalcInvalidationTracking:f,isTraceEventStyleInvalidatorInvalidationTracking:l,isTraceEventBeginCommitCompositorFrame:function(e){return"BeginCommitCompositorFrame"===e.name},isTraceEventParseMetaViewport:function(e){return"ParseMetaViewport"===e.name},isTraceEventScheduleStyleRecalculation:function(e){return"ScheduleStyleRecalculation"===e.name},isTraceEventRenderFrameImplCreateChildFrame:function(e){return"RenderFrameImpl::createChildFrame"===e.name},isTraceEventTargetRundown:function(e){if("disabled-by-default-devtools.target-rundown"!==e.cat)return!1;const n=e.args?.data;return!!n&&("frame"in n&&"frameType"in n&&"url"in n&&"isolate"in n&&"v8context"in n&&"scriptId"in n)},isTraceEventScriptRundown:function(e){if("disabled-by-default-devtools.v8-source-rundown"!==e.cat)return!1;const n=e.args?.data;return!!n&&("isolate"in n&&"executionContextId"in n&&"scriptId"in n&&"startLine"in n&&"startColumn"in n&&"endLine"in n&&"endColumn"in n&&"hash"in n&&"isModule"in n&&"hasSourceUrl"in n)},isTraceEventScriptRundownSource:function(e){if("disabled-by-default-devtools.v8-source-rundown-sources"!==e.cat)return!1;const n=e.args?.data;return!!n&&("isolate"in n&&"scriptId"in n&&"sourceText"in n)},isTraceEventPipelineReporter:function(e){return"PipelineReporter"===e.name},isSyntheticBasedEvent:function(e){return"rawSourceEvent"in e},isSyntheticInteractionEvent:function(e){return Boolean("interactionId"in e&&e.args?.data&&"beginEvent"in e.args.data&&"endEvent"in e.args.data)},isTraceEventDrawFrame:function(e){return"DrawFrame"===e.name&&"I"===e.ph},isLegacyTraceEventDrawFrameBegin:function(e){return"DrawFrame"===e.name&&"b"===e.ph},isTraceEventBeginFrame:function(e){return Boolean("BeginFrame"===e.name&&e.args&&"frameSeqId"in e.args)},isTraceEventDroppedFrame:function(e){return Boolean("DroppedFrame"===e.name&&e.args&&"frameSeqId"in e.args)},isTraceEventRequestMainThreadFrame:function(e){return"RequestMainThreadFrame"===e.name},isTraceEventBeginMainThreadFrame:function(e){return"BeginMainThreadFrame"===e.name},isTraceEventNeedsBeginFrameChanged:function(e){return"NeedsBeginFrameChanged"===e.name},isTraceEventCommit:function(e){return Boolean("Commit"===e.name&&e.args&&"frameSeqId"in e.args)},isTraceEventRasterTask:function(e){return"RasterTask"===e.name},isTraceEventCompositeLayers:function(e){return"CompositeLayers"===e.name},isTraceEventActivateLayerTree:function(e){return"ActivateLayerTree"===e.name},isTraceEventInvalidationTracking:function(e){return m(e)||f(e)||l(e)||p(e)},isTraceEventDrawLazyPixelRef:function(e){return"Draw LazyPixelRef"===e.name},isTraceEventDecodeLazyPixelRef:function(e){return"Decode LazyPixelRef"===e.name},isTraceEventDecodeImage:function(e){return"Decode Image"===e.name},isTraceEventSelectorStats:function(e){return"SelectorStats"===e.name},isTraceEventUpdateLayoutTree:function(e){return"UpdateLayoutTree"===e.name},isTraceEventLayout:function(e){return"Layout"===e.name},isTraceEventInvalidateLayout:function(e){return"InvalidateLayout"===e.name},ProfileID:function(e){return e},CallFrameID:function(e){return e},SampleIndex:function(e){return e},ProcessID:function(e){return e},ThreadID:function(e){return e},WorkerId:function(e){return e},isTraceEventComplete:v,isTraceEventBegin:function(e){return"B"===e.ph},isTraceEventEnd:function(e){return"E"===e.ph},isTraceEventDispatch:function(e){return"EventDispatch"===e.name},isTraceEventInstant:d,isTraceEventRendererEvent:function(e){return d(e)||v(e)},isTraceEventFireIdleCallback:function(e){return"FireIdleCallback"===e.name},isTraceEventSchedulePostMessage:function(e){return"SchedulePostMessage"===e.name},isTraceEventHandlePostMessage:function(e){return"HandlePostMessage"===e.name},isTraceEventUpdateCounters:function(e){return"UpdateCounters"===e.name},isThreadName:function(e){return"thread_name"===e.name},isProcessName:function(e){return"process_name"===e.name},isTraceEventTracingStartedInBrowser:function(e){return"TracingStartedInBrowser"===e.name},isTraceEventFrameCommittedInBrowser:function(e){return"FrameCommittedInBrowser"===e.name},isTraceEventCommitLoad:function(e){return"CommitLoad"===e.name},isTraceEventNavigationStart:T,isTraceEventAnimation:function(e){return"Animation"===e.name&&e.cat.includes("devtools.timeline")},isTraceEventLayoutShift:E,isTraceEventLayoutInvalidationTracking:p,isTraceEventFirstContentfulPaint:g,isTraceEventLargestContentfulPaintCandidate:y,isTraceEventLargestImagePaintCandidate:function(e){return"LargestImagePaint::Candidate"===e.name},isTraceEventLargestTextPaintCandidate:function(e){return"LargestTextPaint::Candidate"===e.name},isTraceEventMarkLoad:S,isTraceEventFirstPaint:h,isTraceEventMarkDOMContent:I,isTraceEventInteractiveTime:k,isTraceEventEventTiming:R,isTraceEventEventTimingEnd:function(e){return R(e)&&"e"===e.ph},isTraceEventEventTimingStart:function(e){return R(e)&&"b"===e.ph},isTraceEventGPUTask:function(e){return"GPUTask"===e.name},isTraceEventProfile:function(e){return"Profile"===e.name},isSyntheticCpuProfile:function(e){return"CpuProfile"===e.name},isTraceEventProfileChunk:function(e){return"ProfileChunk"===e.name},isTraceEventResourceChangePriority:function(e){return"ResourceChangePriority"===e.name},isTraceEventResourceSendRequest:function(e){return"ResourceSendRequest"===e.name},isTraceEventResourceReceiveResponse:function(e){return"ResourceReceiveResponse"===e.name},isTraceEventResourceMarkAsCached:function(e){return"ResourceMarkAsCached"===e.name},isTraceEventResourceFinish:function(e){return"ResourceFinish"===e.name},isTraceEventResourceWillSendRequest:function(e){return"ResourceWillSendRequest"===e.name},isTraceEventResourceReceivedData:function(e){return"ResourceReceivedData"===e.name},isSyntheticNetworkRequestEvent:C,isSyntheticWebSocketConnectionEvent:P,isNetworkTrackEntry:function(e){return C(e)||P(e)||D(e)},isTraceEventPrePaint:function(e){return"PrePaint"===e.name},isTraceEventNavigationStartWithURL:function(e){return Boolean(T(e)&&e.args.data&&""!==e.args.data.documentLoaderURL)},isTraceEventMainFrameViewport:function(e){return"PaintTimingVisualizer::Viewport"===e.name},isSyntheticUserTiming:function(e){if("blink.user_timing"!==e.cat)return!1;const n=e.args?.data;return!!n&&("beginEvent"in n&&"endEvent"in n)},isSyntheticConsoleTiming:function(e){if("blink.console"!==e.cat)return!1;const n=e.args?.data;return!!n&&("beginEvent"in n&&"endEvent"in n)},isTraceEventUserTiming:b,isTraceEventPerformanceMeasure:function(e){return b(e)&&F(e)},isTraceEventPerformanceMark:function(e){return b(e)&&("R"===e.ph||"I"===e.ph)},isTraceEventConsoleTime:function(e){return"blink.console"===e.cat&&F(e)},isTraceEventTimeStamp:function(e){return"I"===e.ph&&"TimeStamp"===e.name},isTraceEventParseHTML:function(e){return"ParseHTML"===e.name},isTraceEventAsyncPhase:F,isSyntheticLayoutShift:function(e){return!(!E(e)||!e.args.data)&&"rawEvent"in e.args.data},isProfileCall:function(e){return"callFrame"in e},isTraceEventPaint:function(e){return"Paint"===e.name},isTraceEventPaintImage:function(e){return"PaintImage"===e.name},isTraceEventScrollLayer:function(e){return"ScrollLayer"===e.name},isTraceEventSetLayerId:function(e){return"SetLayerTreeId"===e.name},isTraceEventUpdateLayer:function(e){return"UpdateLayer"===e.name},isTraceEventDisplayListItemListSnapshot:function(e){return"cc::DisplayItemList"===e.name},isTraceEventLayerTreeHostImplSnapshot:function(e){return"cc::LayerTreeHostImpl"===e.name},isTraceEventFireAnimationFrame:function(e){return"FireAnimationFrame"===e.name},isTraceEventRequestAnimationFrame:function(e){return"RequestAnimationFrame"===e.name},isTraceEventTimerInstall:function(e){return"TimerInstall"===e.name},isTraceEventTimerFire:function(e){return"TimerFire"===e.name},isTraceEventRequestIdleCallback:function(e){return"RequestIdleCallback"===e.name},isTraceEventWebSocketCreate:w,isTraceEventWebSocketInfo:W,isTraceEventWebSocketTransfer:M,isTraceEventWebSocketSend:function(e){return"WebSocketSend"===e.name},isTraceEventWebSocketReceive:function(e){return"WebSocketReceive"===e.name},isTraceEventWebSocketSendHandshakeRequest:function(e){return"WebSocketSendHandshakeRequest"===e.name},isTraceEventWebSocketReceiveHandshakeResponse:function(e){return"WebSocketReceiveHandshakeResponse"===e.name},isTraceEventWebSocketDestroy:function(e){return"WebSocketDestroy"===e.name},isWebSocketTraceEvent:D,isWebSocketEvent:function(e){return D(e)||P(e)},isTraceEventV8Compile:function(e){return"v8.compile"===e.name},isTraceEventFunctionCall:function(e){return"FunctionCall"===e.name},isSyntheticServerTiming:function(e){return"devtools.server-timing"===e.cat},isJSInvocationEvent:function(e){switch(e.name){case"RunMicrotasks":case"FunctionCall":case"EvaluateScript":case"v8.evaluateModule":case"EventDispatch":case"V8.Execute":return!0}return!(!e.name.startsWith("v8")&&!e.name.startsWith("V8"))},Categories:{Console:"blink.console",UserTiming:"blink.user_timing",Loading:"loading"}});export{e as Configuration,a as Extensions,i as File,o as Timing,N as TraceEvents};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as n from"../../core/platform/platform.js";import*as r from"../../core/i18n/i18n.js";import*as o from"../text_utils/text_utils.js";let s;class i extends e.ObjectWrapper.ObjectWrapper{saveCallbacks;constructor(){super(),this.saveCallbacks=new Map,t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.SavedURL,this.savedURL,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.CanceledSaveURL,this.canceledSavedURL,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.AppendedToURL,this.appendedToURL,this)}static instance(e={forceNew:null}){const{forceNew:t}=e;return s&&!t||(s=new i),s}save(e,n,r,o){const s=new Promise((t=>this.saveCallbacks.set(e,t)));return t.InspectorFrontendHost.InspectorFrontendHostInstance.save(e,n,r,o),s}savedURL(e){const{url:t,fileSystemPath:n}=e.data,r=this.saveCallbacks.get(t);this.saveCallbacks.delete(t),r&&r({fileSystemPath:n})}canceledSavedURL({data:e}){const t=this.saveCallbacks.get(e);this.saveCallbacks.delete(e),t&&t(null)}append(e,n){t.InspectorFrontendHost.InspectorFrontendHostInstance.append(e,n)}close(e){t.InspectorFrontendHost.InspectorFrontendHostInstance.close(e)}appendedToURL({data:e}){this.dispatchEventToListeners("AppendedToURL",e)}}var a=Object.freeze({__proto__:null,FileManager:i});class c{#e;#t;#n;#r;#o;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n;const{queries:r,fileRegexQueries:o}=c.#s(e,t,n);this.#r=r,this.#o=o}static fromPlainObject(e){return new c(e.query,e.ignoreCase,e.isRegex)}filePathMatchesFileQuery(e){return this.#o.every((({regex:t,shouldMatch:n})=>Boolean(e.match(t))===n))}queries(){return this.#r}query(){return this.#e}ignoreCase(){return this.#t}isRegex(){return this.#n}toPlainObject(){return{query:this.query(),ignoreCase:this.ignoreCase(),isRegex:this.isRegex()}}static#s(e,t,n){const r=/(\s*(?!-?f(ile)?:)[^\\ ]|\\.)+/,o=r.source+"(\\s+"+r.source+")*",s=["(\\s*"+l.source+"\\s*)","("+/"([^\\"]|\\.)+"/.source+")","("+o+")"].join("|"),i=new RegExp(s,"g"),a=e.match(i)||[],h=[],u=[];for(const e of a){if(!e)continue;const r=c.#i(e);if(r){const e=new RegExp(r.text,t?"i":"");u.push({regex:e,shouldMatch:r.shouldMatch})}else n?h.push(e):e.startsWith('"')&&e.endsWith('"')?h.push(c.#a(e)):h.push(c.#c(e))}return{queries:h,fileRegexQueries:u}}static#c(e){return e.replace(/\\(.)/g,"$1")}static#a(e){return e.substring(1,e.length-1).replace(/\\(.)/g,"$1")}static#i(e){const t=e.match(l);if(!t)return null;e=t[3];let r="";for(let t=0;t<e.length;++t){const o=e[t];if("*"===o)r+=".*";else if("\\"===o){++t;" "===e[t]&&(r+=" ")}else-1!==n.StringUtilities.regexSpecialCharacters().indexOf(e.charAt(t))&&(r+="\\"),r+=e.charAt(t)}return{text:r,shouldMatch:!Boolean(t[1])}}}const l=/(-)?f(ile)?:((?:[^\\ ]|\\.)+)/;var h,u=Object.freeze({__proto__:null,SearchConfig:c});!function(e){e.Debugger="debugger",e.Formatter="formatter",e.Network="network",e.FileSystem="filesystem",e.ContentScripts="contentscripts",e.Service="service"}(h||(h={}));let d;class p extends e.ObjectWrapper.ObjectWrapper{projectsInternal;hasResourceContentTrackingExtensionsInternal;constructor(){super(),this.projectsInternal=new Map,this.hasResourceContentTrackingExtensionsInternal=!1}static instance(e={forceNew:null}){const{forceNew:t}=e;return d&&!t||(d=new p),d}static removeInstance(){d=void 0}uiSourceCode(e,t){const n=this.projectsInternal.get(e);return n?n.uiSourceCodeForURL(t):null}uiSourceCodeForURL(e){for(const t of this.projectsInternal.values()){const n=t.uiSourceCodeForURL(e);if(n)return n}return null}findCompatibleUISourceCodes(e){const t=e.url(),n=e.contentType(),r=[];for(const o of this.projectsInternal.values()){if(e.project().type()!==o.type())continue;const s=o.uiSourceCodeForURL(t);s&&s.url()===t&&s.contentType()===n&&r.push(s)}return r}uiSourceCodesForProjectType(e){const t=[];for(const n of this.projectsInternal.values())if(n.type()===e)for(const e of n.uiSourceCodes())t.push(e);return t}addProject(e){console.assert(!this.projectsInternal.has(e.id()),`A project with id ${e.id()} already exists!`),this.projectsInternal.set(e.id(),e),this.dispatchEventToListeners(C.ProjectAdded,e)}removeProject(e){this.projectsInternal.delete(e.id()),this.dispatchEventToListeners(C.ProjectRemoved,e)}project(e){return this.projectsInternal.get(e)||null}projects(){return[...this.projectsInternal.values()]}projectsForType(e){return this.projects().filter((function(t){return t.type()===e}))}uiSourceCodes(){const e=[];for(const t of this.projectsInternal.values())for(const n of t.uiSourceCodes())e.push(n);return e}setHasResourceContentTrackingExtensions(e){this.hasResourceContentTrackingExtensionsInternal=e}hasResourceContentTrackingExtensions(){return this.hasResourceContentTrackingExtensionsInternal}}var C;!function(e){e.UISourceCodeAdded="UISourceCodeAdded",e.UISourceCodeRemoved="UISourceCodeRemoved",e.UISourceCodeRenamed="UISourceCodeRenamed",e.WorkingCopyChanged="WorkingCopyChanged",e.WorkingCopyCommitted="WorkingCopyCommitted",e.WorkingCopyCommittedByUser="WorkingCopyCommittedByUser",e.ProjectAdded="ProjectAdded",e.ProjectRemoved="ProjectRemoved"}(C||(C={}));var m=Object.freeze({__proto__:null,get projectTypes(){return h},ProjectStore:class{workspaceInternal;idInternal;typeInternal;displayNameInternal;#l;constructor(e,t,n,r){this.workspaceInternal=e,this.idInternal=t,this.typeInternal=n,this.displayNameInternal=r,this.#l=new Map}id(){return this.idInternal}type(){return this.typeInternal}displayName(){return this.displayNameInternal}workspace(){return this.workspaceInternal}createUISourceCode(e,t){return new k(this,e,t)}addUISourceCode(e){const t=e.url();return!this.uiSourceCodeForURL(t)&&(this.#l.set(t,e),this.workspaceInternal.dispatchEventToListeners(C.UISourceCodeAdded,e),!0)}removeUISourceCode(e){const t=this.#l.get(e);void 0!==t&&(this.#l.delete(e),this.workspaceInternal.dispatchEventToListeners(C.UISourceCodeRemoved,t))}removeProject(){this.workspaceInternal.removeProject(this),this.#l.clear()}uiSourceCodeForURL(e){return this.#l.get(e)??null}uiSourceCodes(){return this.#l.values()}renameUISourceCode(t,n){const r=t.url(),o=t.parentURL()?e.ParsedURL.ParsedURL.urlFromParentUrlAndName(t.parentURL(),n):e.ParsedURL.ParsedURL.preEncodeSpecialCharactersInPath(n);this.#l.set(o,t),this.#l.delete(r)}rename(e,t,n){}excludeFolder(e){}deleteFile(e){}deleteDirectoryRecursively(e){return Promise.resolve(!1)}remove(){}indexContent(e){}},WorkspaceImpl:p,get Events(){return C}});const I={index:"(index)",thisFileWasChangedExternally:"This file was changed externally. Would you like to reload it?"},g=r.i18n.registerUIStrings("models/workspace/UISourceCode.ts",I),y=r.i18n.getLocalizedString.bind(void 0,g);class k extends e.ObjectWrapper.ObjectWrapper{projectInternal;urlInternal;originInternal;parentURLInternal;nameInternal;contentTypeInternal;requestContentPromise;decorations=new Map;hasCommitsInternal;messagesInternal;contentInternal;forceLoadOnCheckContentInternal;checkingContent;lastAcceptedContent;workingCopyInternal;workingCopyGetter;disableEditInternal;contentEncodedInternal;isKnownThirdPartyInternal;isUnconditionallyIgnoreListedInternal;constructor(t,r,o){super(),this.projectInternal=t,this.urlInternal=r;const s=e.ParsedURL.ParsedURL.fromString(r);s?(this.originInternal=s.securityOrigin(),this.parentURLInternal=e.ParsedURL.ParsedURL.concatenate(this.originInternal,s.folderPathComponents),!s.queryParams||s.lastPathComponent&&o.isFromSourceMap()?this.nameInternal=decodeURIComponent(s.lastPathComponent):this.nameInternal=s.lastPathComponent+"?"+s.queryParams):(this.originInternal=n.DevToolsPath.EmptyUrlString,this.parentURLInternal=n.DevToolsPath.EmptyUrlString,this.nameInternal=r),this.contentTypeInternal=o,this.requestContentPromise=null,this.hasCommitsInternal=!1,this.messagesInternal=null,this.contentInternal=null,this.forceLoadOnCheckContentInternal=!1,this.checkingContent=!1,this.lastAcceptedContent=null,this.workingCopyInternal=null,this.workingCopyGetter=null,this.disableEditInternal=!1,this.isKnownThirdPartyInternal=!1,this.isUnconditionallyIgnoreListedInternal=!1}requestMetadata(){return this.projectInternal.requestMetadata(this)}name(){return this.nameInternal}mimeType(){return this.projectInternal.mimeType(this)}url(){return this.urlInternal}canononicalScriptId(){return`${this.contentTypeInternal.name()},${this.urlInternal}`}parentURL(){return this.parentURLInternal}origin(){return this.originInternal}fullDisplayName(){return this.projectInternal.fullDisplayName(this)}displayName(e){if(!this.nameInternal)return y(I.index);const t=this.nameInternal;return e?t:n.StringUtilities.trimEndWithMaxLength(t,100)}canRename(){return this.projectInternal.canRename()}rename(e){let t;const n=new Promise((e=>{t=e}));return this.projectInternal.rename(this,e,function(e,n,r,o){e&&this.updateName(n,r,o);t(e)}.bind(this)),n}remove(){this.projectInternal.deleteFile(this)}updateName(t,n,r){const o=this.urlInternal;this.nameInternal=t,this.urlInternal=n||e.ParsedURL.ParsedURL.relativePathToUrlString(t,o),r&&(this.contentTypeInternal=r),this.dispatchEventToListeners(v.TitleChanged,this),this.project().workspace().dispatchEventToListeners(C.UISourceCodeRenamed,{oldURL:o,uiSourceCode:this})}contentURL(){return this.url()}contentType(){return this.contentTypeInternal}project(){return this.projectInternal}requestContentData({cachedWasmOnly:e}={}){return this.requestContentPromise?this.requestContentPromise:this.contentInternal?Promise.resolve(this.contentInternal):e&&"application/wasm"===this.mimeType()?Promise.resolve(new o.WasmDisassembly.WasmDisassembly([],[],[])):(this.requestContentPromise=this.requestContentImpl(),this.requestContentPromise)}async requestContent(e={}){return o.ContentData.ContentData.asDeferredContent(await this.requestContentData(e))}async requestContentImpl(){if(this.contentInternal)throw new Error("Called UISourceCode#requestContentImpl even though content is available for "+this.urlInternal);try{this.contentInternal=await this.projectInternal.requestFileContent(this)}catch(e){this.contentInternal={error:e?String(e):""}}return this.contentInternal}#h(e){return e?e.isEncoded&&e.content?window.atob(e.content):e.content:null}#u(e){return!e||o.ContentData.ContentData.isError(e)?null:e.createdFromBase64?window.atob(e.base64):e.text}async checkContentUpdated(){if(!this.contentInternal&&!this.forceLoadOnCheckContentInternal)return;if(!this.projectInternal.canSetFileContent()||this.checkingContent)return;this.checkingContent=!0;const t=o.ContentData.ContentData.asDeferredContent(await this.projectInternal.requestFileContent(this));if("error"in t)return;if(this.checkingContent=!1,null===t.content){const e=this.workingCopy();return this.contentCommitted("",!1),void this.setWorkingCopy(e)}if(this.lastAcceptedContent===t.content)return;if(this.#u(this.contentInternal)===this.#h(t))return void(this.lastAcceptedContent=null);if(!this.isDirty()||this.workingCopyInternal===t.content)return void this.contentCommitted(t.content,!1);await e.Revealer.reveal(this),await new Promise((e=>window.setTimeout(e,0)));window.confirm(y(I.thisFileWasChangedExternally))?this.contentCommitted(t.content,!1):this.lastAcceptedContent=t.content}forceLoadOnCheckContent(){this.forceLoadOnCheckContentInternal=!0}commitContent(e){this.projectInternal.canSetFileContent()&&this.projectInternal.setFileContent(this,e,!1),this.contentCommitted(e,!0)}contentCommitted(e,t){this.lastAcceptedContent=null,this.contentInternal=new o.ContentData.ContentData(e,Boolean(this.contentEncodedInternal),this.mimeType()),this.requestContentPromise=null,this.hasCommitsInternal=!0,this.innerResetWorkingCopy();const n={uiSourceCode:this,content:e,encoded:this.contentEncodedInternal};this.dispatchEventToListeners(v.WorkingCopyCommitted,n),this.projectInternal.workspace().dispatchEventToListeners(C.WorkingCopyCommitted,n),t&&this.projectInternal.workspace().dispatchEventToListeners(C.WorkingCopyCommittedByUser,n)}addRevision(e){this.commitContent(e)}hasCommits(){return this.hasCommitsInternal}workingCopy(){return this.workingCopyContent().content||""}workingCopyContent(){return this.workingCopyContentData().asDeferedContent()}workingCopyContentData(){this.workingCopyGetter&&(this.workingCopyInternal=this.workingCopyGetter(),this.workingCopyGetter=null);const e=this.contentInternal?o.ContentData.ContentData.contentDataOrEmpty(this.contentInternal):o.ContentData.EMPTY_TEXT_CONTENT_DATA;return null!==this.workingCopyInternal?new o.ContentData.ContentData(this.workingCopyInternal,!1,e.mimeType):e}resetWorkingCopy(){this.innerResetWorkingCopy(),this.workingCopyChanged()}innerResetWorkingCopy(){this.workingCopyInternal=null,this.workingCopyGetter=null}setWorkingCopy(e){this.workingCopyInternal=e,this.workingCopyGetter=null,this.workingCopyChanged()}setContent(e,t){this.contentEncodedInternal=t,this.projectInternal.canSetFileContent()&&this.projectInternal.setFileContent(this,e,t),this.contentCommitted(e,!0)}setWorkingCopyGetter(e){this.workingCopyGetter=e,this.workingCopyChanged()}workingCopyChanged(){this.removeAllMessages(),this.dispatchEventToListeners(v.WorkingCopyChanged,this),this.projectInternal.workspace().dispatchEventToListeners(C.WorkingCopyChanged,{uiSourceCode:this})}removeWorkingCopyGetter(){this.workingCopyGetter&&(this.workingCopyInternal=this.workingCopyGetter(),this.workingCopyGetter=null)}commitWorkingCopy(){this.isDirty()&&this.commitContent(this.workingCopy())}isDirty(){return null!==this.workingCopyInternal||null!==this.workingCopyGetter}isKnownThirdParty(){return this.isKnownThirdPartyInternal}markKnownThirdParty(){this.isKnownThirdPartyInternal=!0}isUnconditionallyIgnoreListed(){return this.isUnconditionallyIgnoreListedInternal}isFetchXHR(){return[e.ResourceType.resourceTypes.XHR,e.ResourceType.resourceTypes.Fetch].includes(this.contentType())}markAsUnconditionallyIgnoreListed(){this.isUnconditionallyIgnoreListedInternal=!0}extension(){return e.ParsedURL.ParsedURL.extractExtension(this.nameInternal)}content(){return!this.contentInternal||"error"in this.contentInternal?"":this.contentInternal.text}loadError(){return this.contentInternal&&"error"in this.contentInternal&&this.contentInternal.error||null}searchInContent(e,t,n){return!this.contentInternal||"error"in this.contentInternal?this.projectInternal.searchInFileContent(this,e,t,n):Promise.resolve(o.TextUtils.performSearchInContentData(this.contentInternal,e,t,n))}contentLoaded(){return Boolean(this.contentInternal)}uiLocation(e,t){return new f(this,e,t)}messages(){return this.messagesInternal?new Set(this.messagesInternal):new Set}addLineMessage(e,t,n,r,s){const i=o.TextRange.TextRange.createFromLocation(n,r||0),a=new w(e,t,s,i);return this.addMessage(a),a}addMessage(e){this.messagesInternal||(this.messagesInternal=new Set),this.messagesInternal.add(e),this.dispatchEventToListeners(v.MessageAdded,e)}removeMessage(e){this.messagesInternal?.delete(e)&&this.dispatchEventToListeners(v.MessageRemoved,e)}removeAllMessages(){if(this.messagesInternal){for(const e of this.messagesInternal)this.dispatchEventToListeners(v.MessageRemoved,e);this.messagesInternal=null}}setDecorationData(e,t){t!==this.decorations.get(e)&&(this.decorations.set(e,t),this.dispatchEventToListeners(v.DecorationChanged,e))}getDecorationData(e){return this.decorations.get(e)}disableEdit(){this.disableEditInternal=!0}editDisabled(){return this.disableEditInternal}}var v;!function(e){e.WorkingCopyChanged="WorkingCopyChanged",e.WorkingCopyCommitted="WorkingCopyCommitted",e.TitleChanged="TitleChanged",e.MessageAdded="MessageAdded",e.MessageRemoved="MessageRemoved",e.DecorationChanged="DecorationChanged"}(v||(v={}));class f{uiSourceCode;lineNumber;columnNumber;constructor(e,t,n){this.uiSourceCode=e,this.lineNumber=t,this.columnNumber=n}linkText(e=!1,t=!1){const n=this.uiSourceCode.displayName(e),r=this.lineAndColumnText(t);return r?n+":"+r:n}lineAndColumnText(e=!1){let t;return"application/wasm"===this.uiSourceCode.mimeType()?"number"==typeof this.columnNumber&&(t=`0x${this.columnNumber.toString(16)}`):(t=`${this.lineNumber+1}`,e&&"number"==typeof this.columnNumber&&(t+=":"+(this.columnNumber+1))),t}id(){return"number"==typeof this.columnNumber?this.uiSourceCode.project().id()+":"+this.uiSourceCode.url()+":"+this.lineNumber+":"+this.columnNumber:this.lineId()}lineId(){return this.uiSourceCode.project().id()+":"+this.uiSourceCode.url()+":"+this.lineNumber}toUIString(){return this.uiSourceCode.url()+":"+(this.lineNumber+1)}static comparator(e,t){return e.compareTo(t)}compareTo(e){return this.uiSourceCode.url()!==e.uiSourceCode.url()?this.uiSourceCode.url()>e.uiSourceCode.url()?1:-1:this.lineNumber!==e.lineNumber?this.lineNumber-e.lineNumber:this.columnNumber===e.columnNumber?0:"number"!=typeof this.columnNumber?-1:"number"!=typeof e.columnNumber?1:this.columnNumber-e.columnNumber}}class w{levelInternal;textInternal;range;clickHandlerInternal;constructor(e,t,n,r){this.levelInternal=e,this.textInternal=t,this.range=r??new o.TextRange.TextRange(0,0,0,0),this.clickHandlerInternal=n}level(){return this.levelInternal}text(){return this.textInternal}clickHandler(){return this.clickHandlerInternal}lineNumber(){return this.range.startLine}columnNumber(){return this.range.startColumn}isEqual(e){return this.text()===e.text()&&this.level()===e.level()&&this.range.equal(e.range)}}var S=Object.freeze({__proto__:null,UISourceCode:k,get Events(){return v},UILocation:f,UILocationRange:class{uiSourceCode;range;constructor(e,t){this.uiSourceCode=e,this.range=t}},Message:w,LineMarker:class{rangeInternal;typeInternal;dataInternal;constructor(e,t,n){this.rangeInternal=e,this.typeInternal=t,this.dataInternal=n}range(){return this.rangeInternal}type(){return this.typeInternal}data(){return this.dataInternal}},UISourceCodeMetadata:class{modificationTime;contentSize;constructor(e,t){this.modificationTime=e,this.contentSize=t}}});export{a as FileManager,u as SearchConfig,S as UISourceCode,m as Workspace};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as i from"../../third_party/diff/diff.js";import*as o from"../formatter/formatter.js";import*as r from"../persistence/persistence.js";import*as s from"../text_utils/text_utils.js";import*as n from"../workspace/workspace.js";class d extends e.ObjectWrapper.ObjectWrapper{uiSourceCodeDiffs;loadingUISourceCodes;modifiedUISourceCodesInternal;constructor(e){super(),this.uiSourceCodeDiffs=new WeakMap,this.loadingUISourceCodes=new Map,this.modifiedUISourceCodesInternal=new Set,e.addEventListener(n.Workspace.Events.WorkingCopyChanged,this.uiSourceCodeChanged,this),e.addEventListener(n.Workspace.Events.WorkingCopyCommitted,this.uiSourceCodeChanged,this),e.addEventListener(n.Workspace.Events.UISourceCodeAdded,this.uiSourceCodeAdded,this),e.addEventListener(n.Workspace.Events.UISourceCodeRemoved,this.uiSourceCodeRemoved,this),e.addEventListener(n.Workspace.Events.ProjectRemoved,this.projectRemoved,this),e.uiSourceCodes().forEach(this.updateModifiedState.bind(this))}requestDiff(e,t){return this.uiSourceCodeDiff(e).requestDiff(t)}subscribeToDiffChange(e,t,i){this.uiSourceCodeDiff(e).addEventListener("DiffChanged",t,i)}unsubscribeFromDiffChange(e,t,i){this.uiSourceCodeDiff(e).removeEventListener("DiffChanged",t,i)}modifiedUISourceCodes(){return Array.from(this.modifiedUISourceCodesInternal)}isUISourceCodeModified(e){return this.modifiedUISourceCodesInternal.has(e)||this.loadingUISourceCodes.has(e)}uiSourceCodeDiff(e){let t=this.uiSourceCodeDiffs.get(e);return t||(t=new u(e),this.uiSourceCodeDiffs.set(e,t)),t}uiSourceCodeChanged(e){const t=e.data.uiSourceCode;this.updateModifiedState(t)}uiSourceCodeAdded(e){const t=e.data;this.updateModifiedState(t)}uiSourceCodeRemoved(e){const t=e.data;this.removeUISourceCode(t)}projectRemoved(e){const t=e.data;for(const e of t.uiSourceCodes())this.removeUISourceCode(e)}removeUISourceCode(e){this.loadingUISourceCodes.delete(e);const t=this.uiSourceCodeDiffs.get(e);t&&(t.dispose=!0),this.markAsUnmodified(e)}markAsUnmodified(e){this.uiSourceCodeProcessedForTest(),this.modifiedUISourceCodesInternal.delete(e)&&this.dispatchEventToListeners("ModifiedStatusChanged",{uiSourceCode:e,isModified:!1})}markAsModified(e){this.uiSourceCodeProcessedForTest(),this.modifiedUISourceCodesInternal.has(e)||(this.modifiedUISourceCodesInternal.add(e),this.dispatchEventToListeners("ModifiedStatusChanged",{uiSourceCode:e,isModified:!0}))}uiSourceCodeProcessedForTest(){}async updateModifiedState(e){if(this.loadingUISourceCodes.delete(e),e.project().type()!==n.Workspace.projectTypes.Network)return void this.markAsUnmodified(e);if(e.isDirty())return void this.markAsModified(e);if(!e.hasCommits())return void this.markAsUnmodified(e);const t=Promise.all([this.requestOriginalContentForUISourceCode(e),e.requestContent().then((e=>e.content))]);this.loadingUISourceCodes.set(e,t);const i=await t;this.loadingUISourceCodes.get(e)===t&&(this.loadingUISourceCodes.delete(e),null!==i[0]&&null!==i[1]&&i[0]!==i[1]?this.markAsModified(e):this.markAsUnmodified(e))}requestOriginalContentForUISourceCode(e){return this.uiSourceCodeDiff(e).originalContent()}revertToOriginal(e){return t.userMetrics.actionTaken(t.UserMetrics.Action.RevisionApplied),this.requestOriginalContentForUISourceCode(e).then((function(t){"string"==typeof t&&e.addRevision(t)}))}}class u extends e.ObjectWrapper.ObjectWrapper{uiSourceCode;requestDiffPromise;pendingChanges;dispose;constructor(e){super(),this.uiSourceCode=e,e.addEventListener(n.UISourceCode.Events.WorkingCopyChanged,this.uiSourceCodeChanged,this),e.addEventListener(n.UISourceCode.Events.WorkingCopyCommitted,this.uiSourceCodeChanged,this),this.requestDiffPromise=null,this.pendingChanges=null,this.dispose=!1}uiSourceCodeChanged(){this.pendingChanges&&(clearTimeout(this.pendingChanges),this.pendingChanges=null),this.requestDiffPromise=null;const e=this.uiSourceCode.content(),t=!e||e.length<65536?0:c;this.pendingChanges=window.setTimeout(function(){if(this.dispose)return;this.dispatchEventToListeners("DiffChanged"),this.pendingChanges=null}.bind(this),t)}requestDiff(e){return this.requestDiffPromise||(this.requestDiffPromise=this.innerRequestDiff(e)),this.requestDiffPromise}async originalContent(){const e=r.NetworkPersistenceManager.NetworkPersistenceManager.instance().originalContentForUISourceCode(this.uiSourceCode);if(e)return e;const t=await this.uiSourceCode.project().requestFileContent(this.uiSourceCode);return s.ContentData.ContentData.isError(t)?t.error:t.asDeferedContent().content}async innerRequestDiff({shouldFormatDiff:e}){if(this.dispose)return null;let t=await this.originalContent();if(null===t)return null;if(t.length>1048576)return null;if(this.dispose)return null;let r,s=this.uiSourceCode.workingCopy();if(s||this.uiSourceCode.contentLoaded()||(s=(await this.uiSourceCode.requestContent()).content),s.length>1048576)return null;if(this.dispose)return null;if(null===s||null===t)return null;if(e){t=(await o.ScriptFormatter.format(this.uiSourceCode.contentType(),this.uiSourceCode.mimeType(),t)).formattedContent;const e=await o.ScriptFormatter.format(this.uiSourceCode.contentType(),this.uiSourceCode.mimeType(),s);s=e.formattedContent,r=e.formattedMapping}const n=/\r\n?|\n/;return{diff:i.Diff.DiffWrapper.lineDiff(t.split(n),s.split(n)),formattedCurrentMapping:r}}}let a=null;const c=200;var f=Object.freeze({__proto__:null,WorkspaceDiffImpl:d,UISourceCodeDiff:u,workspaceDiff:function(){return a||(a=new d(n.Workspace.WorkspaceImpl.instance())),a},UpdateTimeout:c});export{f as WorkspaceDiff};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i18n.js";import*as a from"../../core/sdk/sdk.js";import*as r from"../../ui/legacy/legacy.js";import*as n from"../../ui/visual_logging/visual_logging.js";import*as i from"../../core/root/root.js";import*as s from"../../core/platform/platform.js";import*as o from"../../core/host/host.js";import*as l from"../../ui/components/panel_feedback/panel_feedback.js";const d=new CSSStyleSheet;d.replaceSync('.widget.ax-subpane{overflow-x:hidden;user-select:text}.ax-ignored-info{padding:6px}.ax-ignored-node-pane{flex:none}.invalid{text-decoration:line-through}span.ax-value-undefined{font-style:italic}.ax-value-source-unused{opacity:70%}.ax-value-source-superseded,\n.ax-value-source-invalid{text-decoration:line-through}.tree-outline span[is="dt-icon-label"]{position:relative;left:-11px}.tree-outline li{display:block;overflow-x:hidden;align-items:baseline}.tree-outline li::before{content:"";width:14px;display:inline-block;margin-bottom:-2px;margin-right:3px}.tree-outline li.property{color:var(--sys-color-on-surface)}.tree-outline li.invalid{position:relative;left:-2px}.tree-outline span[is="dt-icon-label"] + .ax-name{margin-left:-11px}.tree-outline li span{flex-shrink:0;text-overflow:ellipsis;white-space:nowrap}@media (forced-colors: active){.ax-value-source-unused{opacity:100%}.tree-outline-disclosure:hover li.parent::before{background-color:ButtonText}}\n/*# sourceURL=accessibilityNode.css */\n');const c={disabled:"Disabled",ifTrueThisElementCurrentlyCannot:"If true, this element currently cannot be interacted with.",invalidUserEntry:"Invalid user entry",ifTrueThisElementsUserentered:"If true, this element's user-entered value does not conform to validation requirement.",editable:"Editable",ifAndHowThisElementCanBeEdited:"If and how this element can be edited.",focusable:"Focusable",ifTrueThisElementCanReceiveFocus:"If true, this element can receive focus.",focused:"Focused",ifTrueThisElementCurrentlyHas:"If `true`, this element currently has focus.",canSetValue:"Can set value",whetherTheValueOfThisElementCan:"Whether the value of this element can be set.",liveRegion:"Live region",whetherAndWhatPriorityOfLive:"Whether and what priority of live updates may be expected for this element.",atomicLiveRegions:"Atomic (live regions)",ifThisElementMayReceiveLive:"If this element may receive live updates, whether the entire live region should be presented to the user on changes, or only changed nodes.",relevantLiveRegions:"Relevant (live regions)",ifThisElementMayReceiveLiveUpdates:"If this element may receive live updates, what type of updates should trigger a notification.",busyLiveRegions:"`Busy` (live regions)",whetherThisElementOrItsSubtree:"Whether this element or its subtree are currently being updated (and thus may be in an inconsistent state).",liveRegionRoot:"Live region root",ifThisElementMayReceiveLiveUpdatesThe:"If this element may receive live updates, the root element of the containing live region.",hasAutocomplete:"Has autocomplete",whetherAndWhatTypeOfAutocomplete:"Whether and what type of autocomplete suggestions are currently provided by this element.",hasPopup:"Has popup",whetherThisElementHasCausedSome:"Whether this element has caused some kind of pop-up (such as a menu) to appear.",level:"Level",theHierarchicalLevelOfThis:"The hierarchical level of this element.",multiselectable:"Multi-selectable",whetherAUserMaySelectMoreThanOne:"Whether a user may select more than one option from this widget.",orientation:"Orientation",whetherThisLinearElements:"Whether this linear element's orientation is horizontal or vertical.",multiline:"Multi-line",whetherThisTextBoxMayHaveMore:"Whether this text box may have more than one line.",readonlyString:"Read-only",ifTrueThisElementMayBeInteracted:"If true, this element may be interacted with, but its value cannot be changed.",requiredString:"Required",whetherThisElementIsARequired:"Whether this element is a required field in a form.",minimumValue:"Minimum value",forARangeWidgetTheMinimumAllowed:"For a range widget, the minimum allowed value.",maximumValue:"Maximum value",forARangeWidgetTheMaximumAllowed:"For a range widget, the maximum allowed value.",valueDescription:"Value description",aHumanreadableVersionOfTheValue:"A human-readable version of the value of a range widget (where necessary).",checked:"Checked",whetherThisCheckboxRadioButtonOr:"Whether this checkbox, radio button or tree item is checked, unchecked, or mixed (e.g. has both checked and un-checked children).",expanded:"Expanded",whetherThisElementOrAnother:"Whether this element, or another grouping element it controls, is expanded.",pressed:"Pressed",whetherThisToggleButtonIs:"Whether this toggle button is currently in a pressed state.",selectedString:"Selected",whetherTheOptionRepresentedBy:"Whether the option represented by this element is currently selected.",activeDescendant:"Active descendant",theDescendantOfThisElementWhich:"The descendant of this element which is active; i.e. the element to which focus should be delegated.",elementToWhichTheUserMayChooseTo:"Element to which the user may choose to navigate after this one, instead of the next element in the DOM order.",controls:"Controls",elementOrElementsWhoseContentOr:"Element or elements whose content or presence is/are controlled by this widget.",describedBy:"Described by",elementOrElementsWhichFormThe:"Element or elements which form the description of this element.",labeledBy:"Labeled by",elementOrElementsWhichMayFormThe:"Element or elements which may form the name of this element.",elementOrElementsWhichShouldBe:"Element or elements which should be considered descendants of this element, despite not being descendants in the DOM.",theComputedNameOfThisElement:"The computed name of this element.",role:"Role",indicatesThePurposeOfThisElement:"Indicates the purpose of this element, such as a user interface idiom for a widget, or structural role within a document.",value:"Value",theValueOfThisElementThisMayBe:"The value of this element; this may be user-provided or developer-provided, depending on the element.",help:"Help",theComputedHelpTextForThis:"The computed help text for this element.",description:"Description",theAccessibleDescriptionForThis:"The accessible description for this element.",fromAttribute:"From attribute",valueFromAttribute:"Value from attribute.",implicit:"Implicit",implicitValue:"Implicit value.",fromStyle:"From style",valueFromStyle:"Value from style.",contents:"Contents",valueFromElementContents:"Value from element contents.",fromPlaceholderAttribute:"From placeholder attribute",valueFromPlaceholderAttribute:"Value from placeholder attribute.",relatedElement:"Related element",valueFromRelatedElement:"Value from related element.",fromCaption:"From `caption`",valueFromFigcaptionElement:"Value from `figcaption` element.",fromDescription:"From `description`",valueFromDescriptionElement:"Value from `description` element.",fromLabel:"From `label`",valueFromLabelElement:"Value from `label` element.",fromLabelFor:"From `label` (`for=` attribute)",valueFromLabelElementWithFor:"Value from `label` element with `for=` attribute.",fromLabelWrapped:"From `label` (wrapped)",valueFromLabelElementWrapped:"Value from a wrapping `label` element.",fromLegend:"From `legend`",valueFromLegendElement:"Value from `legend` element.",fromRubyAnnotation:"From ruby annotation",valueFromNativeHtmlRuby:"Value from plain HTML ruby annotation.",valueFromTableCaption:"Value from `table` `caption`.",fromTitle:"From title",valueFromTitleAttribute:"Value from title attribute.",fromNativeHtml:"From native HTML",valueFromNativeHtmlUnknownSource:"Value from native HTML (unknown source)."},u=t.i18n.registerUIStrings("panels/accessibility/AccessibilityStrings.ts",c),m=t.i18n.getLazilyComputedLocalizedString.bind(void 0,u),h={disabled:{name:m(c.disabled),description:m(c.ifTrueThisElementCurrentlyCannot),group:"AXGlobalStates"},invalid:{name:m(c.invalidUserEntry),description:m(c.ifTrueThisElementsUserentered),group:"AXGlobalStates"},editable:{name:m(c.editable),description:m(c.ifAndHowThisElementCanBeEdited)},focusable:{name:m(c.focusable),description:m(c.ifTrueThisElementCanReceiveFocus)},focused:{name:m(c.focused),description:m(c.ifTrueThisElementCurrentlyHas)},settable:{name:m(c.canSetValue),description:m(c.whetherTheValueOfThisElementCan)},live:{name:m(c.liveRegion),description:m(c.whetherAndWhatPriorityOfLive),group:"AXLiveRegionAttributes"},atomic:{name:m(c.atomicLiveRegions),description:m(c.ifThisElementMayReceiveLive),group:"AXLiveRegionAttributes"},relevant:{name:m(c.relevantLiveRegions),description:m(c.ifThisElementMayReceiveLiveUpdates),group:"AXLiveRegionAttributes"},busy:{name:m(c.busyLiveRegions),description:m(c.whetherThisElementOrItsSubtree),group:"AXLiveRegionAttributes"},root:{name:m(c.liveRegionRoot),description:m(c.ifThisElementMayReceiveLiveUpdatesThe),group:"AXLiveRegionAttributes"},autocomplete:{name:m(c.hasAutocomplete),description:m(c.whetherAndWhatTypeOfAutocomplete),group:"AXWidgetAttributes"},haspopup:{name:m(c.hasPopup),description:m(c.whetherThisElementHasCausedSome),group:"AXWidgetAttributes"},level:{name:m(c.level),description:m(c.theHierarchicalLevelOfThis),group:"AXWidgetAttributes"},multiselectable:{name:m(c.multiselectable),description:m(c.whetherAUserMaySelectMoreThanOne),group:"AXWidgetAttributes"},orientation:{name:m(c.orientation),description:m(c.whetherThisLinearElements),group:"AXWidgetAttributes"},multiline:{name:m(c.multiline),description:m(c.whetherThisTextBoxMayHaveMore),group:"AXWidgetAttributes"},readonly:{name:m(c.readonlyString),description:m(c.ifTrueThisElementMayBeInteracted),group:"AXWidgetAttributes"},required:{name:m(c.requiredString),description:m(c.whetherThisElementIsARequired),group:"AXWidgetAttributes"},valuemin:{name:m(c.minimumValue),description:m(c.forARangeWidgetTheMinimumAllowed),group:"AXWidgetAttributes"},valuemax:{name:m(c.maximumValue),description:m(c.forARangeWidgetTheMaximumAllowed),group:"AXWidgetAttributes"},valuetext:{name:m(c.valueDescription),description:m(c.aHumanreadableVersionOfTheValue),group:"AXWidgetAttributes"},checked:{name:m(c.checked),description:m(c.whetherThisCheckboxRadioButtonOr),group:"AXWidgetStates"},expanded:{name:m(c.expanded),description:m(c.whetherThisElementOrAnother),group:"AXWidgetStates"},pressed:{name:m(c.pressed),description:m(c.whetherThisToggleButtonIs),group:"AXWidgetStates"},selected:{name:m(c.selectedString),description:m(c.whetherTheOptionRepresentedBy),group:"AXWidgetStates"},activedescendant:{name:m(c.activeDescendant),description:m(c.theDescendantOfThisElementWhich),group:"AXRelationshipAttributes"},flowto:{name:t.i18n.lockedLazyString("Flows to"),description:m(c.elementToWhichTheUserMayChooseTo),group:"AXRelationshipAttributes"},controls:{name:m(c.controls),description:m(c.elementOrElementsWhoseContentOr),group:"AXRelationshipAttributes"},describedby:{name:m(c.describedBy),description:m(c.elementOrElementsWhichFormThe),group:"AXRelationshipAttributes"},labelledby:{name:m(c.labeledBy),description:m(c.elementOrElementsWhichMayFormThe),group:"AXRelationshipAttributes"},owns:{name:t.i18n.lockedLazyString("Owns"),description:m(c.elementOrElementsWhichShouldBe),group:"AXRelationshipAttributes"},name:{name:t.i18n.lockedLazyString("Name"),description:m(c.theComputedNameOfThisElement),group:"Default"},role:{name:m(c.role),description:m(c.indicatesThePurposeOfThisElement),group:"Default"},value:{name:m(c.value),description:m(c.theValueOfThisElementThisMayBe),group:"Default"},help:{name:m(c.help),description:m(c.theComputedHelpTextForThis),group:"Default"},description:{name:m(c.description),description:m(c.theAccessibleDescriptionForThis),group:"Default"}},p={attribute:{name:m(c.fromAttribute),description:m(c.valueFromAttribute)},implicit:{name:m(c.implicit),description:m(c.implicitValue)},style:{name:m(c.fromStyle),description:m(c.valueFromStyle)},contents:{name:m(c.contents),description:m(c.valueFromElementContents)},placeholder:{name:m(c.fromPlaceholderAttribute),description:m(c.valueFromPlaceholderAttribute)},relatedElement:{name:m(c.relatedElement),description:m(c.valueFromRelatedElement)}},b={description:{name:m(c.fromDescription),description:m(c.valueFromDescriptionElement)},figcaption:{name:m(c.fromCaption),description:m(c.valueFromFigcaptionElement)},label:{name:m(c.fromLabel),description:m(c.valueFromLabelElement)},labelfor:{name:m(c.fromLabelFor),description:m(c.valueFromLabelElementWithFor)},labelwrapped:{name:m(c.fromLabelWrapped),description:m(c.valueFromLabelElementWrapped)},legend:{name:m(c.fromLegend),description:m(c.valueFromLegendElement)},rubyannotation:{name:m(c.fromRubyAnnotation),description:m(c.valueFromNativeHtmlRuby)},tablecaption:{name:m(c.fromCaption),description:m(c.valueFromTableCaption)},title:{name:m(c.fromTitle),description:m(c.valueFromTitleAttribute)},other:{name:m(c.fromNativeHtml),description:m(c.valueFromNativeHtmlUnknownSource)}};var g=Object.freeze({__proto__:null,AXAttributes:h,AXSourceTypes:p,AXNativeSourceTypes:b});const v=new CSSStyleSheet;v.replaceSync(".ax-name{color:var(--sys-color-token-attribute);flex-shrink:0}.ax-readable-name{flex-shrink:0}.ax-readable-string{font-style:italic}.ax-value-string{color:var(--sys-color-token-property-special)}span.ax-internal-role{font-style:italic}#source-order-warning{padding-bottom:0;text-align:left}.source-order-checkbox{margin:2px 2px 2px 5px}\n/*# sourceURL=accessibilityProperties.css */\n");const f=new CSSStyleSheet;f.replaceSync(".value.object-value-node:hover{background-color:var(--sys-color-state-hover-on-subtle)}.object-value-function-prefix,\n.object-value-boolean{color:var(--sys-color-token-attribute-value)}.object-value-function{font-style:italic}.object-value-function.linkified:hover{--override-linkified-hover-background:rgb(0 0 0/10%);background-color:var(--override-linkified-hover-background);cursor:pointer}.theme-with-dark-background .object-value-function.linkified:hover,\n:host-context(.theme-with-dark-background) .object-value-function.linkified:hover{--override-linkified-hover-background:rgb(230 230 230/10%)}.object-value-number{color:var(--sys-color-token-attribute-value)}.object-value-bigint{color:var(--sys-color-token-comment)}.object-value-string,\n.object-value-regexp,\n.object-value-symbol{white-space:pre;unicode-bidi:-webkit-isolate;color:var(--sys-color-token-property-special)}.object-value-node{position:relative;vertical-align:baseline;color:var(--sys-color-token-variable);white-space:nowrap}.object-value-null,\n.object-value-undefined{color:var(--sys-color-state-disabled)}.object-value-unavailable{color:var(--sys-color-token-tag)}.object-value-calculate-value-button:hover{text-decoration:underline}.object-properties-section-custom-section{display:inline-flex;flex-direction:column}.theme-with-dark-background .object-value-number,\n:host-context(.theme-with-dark-background) .object-value-number,\n.theme-with-dark-background .object-value-boolean,\n:host-context(.theme-with-dark-background) .object-value-boolean{--override-primitive-dark-mode-color:hsl(252deg 100% 75%);color:var(--override-primitive-dark-mode-color)}.object-properties-section .object-description{color:var(--sys-color-token-subtle)}.value .object-properties-preview{white-space:nowrap}.name{color:var(--sys-color-token-tag);flex-shrink:0}.object-properties-preview .name{color:var(--sys-color-token-subtle)}@media (forced-colors: active){.object-value-calculate-value-button:hover{forced-color-adjust:none;color:Highlight}}\n/*# sourceURL=objectValue.css */\n");class x extends r.View.SimpleView{axNode;nodeInternal;constructor(e){super(e),this.axNode=null}setAXNode(e){}node(){return this.nodeInternal||null}setNode(e){this.nodeInternal=e}createInfo(e,t){const a=t||"gray-info-message",r=this.element.createChild("div",a);return r.textContent=e,r}createTreeOutline(){const e=new r.TreeOutline.TreeOutlineInShadow;return e.registerCSSFiles([d,v,f]),e.element.classList.add("hidden"),e.hideOverflow(),this.element.appendChild(e.element),e}wasShown(){super.wasShown(),this.registerCSSFiles([v])}}var y=Object.freeze({__proto__:null,AccessibilitySubPane:x});const E={computedProperties:"Computed Properties",noAccessibilityNode:"No accessibility node",accessibilityNodeNotExposed:"Accessibility node not exposed",invalidSource:"Invalid source.",notSpecified:"Not specified",noNodeWithThisId:"No node with this ID.",elementIsHiddenBy:"Element is hidden by active modal dialog: ",elementIsHiddenByChildTree:"Element is hidden by child tree: ",ancestorChildrenAreAll:"Ancestor's children are all presentational: ",elementIsPlaceholder:"Element is {PH1}.",placeholderIsPlaceholderOnAncestor:"{PH1} is {PH2} on ancestor: ",elementHasEmptyAltText:"Element has empty alt text.",noTextContent:"No text content.",elementIsInert:"Element is `inert`.",elementIsInAnInertSubTree:"Element is in an `inert` subtree from ",elementsInheritsPresentational:"Element inherits presentational role from ",partOfLabelElement:"Part of label element: ",labelFor:"Label for ",elementIsNotRendered:"Element is not rendered.",elementIsNotVisible:"Element is not visible.",elementHasPlaceholder:"Element has {PH1}.",elementIsPresentational:"Element is presentational.",elementNotInteresting:"Element not interesting for accessibility."},w=t.i18n.registerUIStrings("panels/accessibility/AccessibilityNodeView.ts",E),A=t.i18n.getLocalizedString.bind(void 0,w);class I extends x{axNode;noNodeInfo;ignoredInfo;treeOutline;ignoredReasonsTree;constructor(){super(A(E.computedProperties)),this.axNode=null,this.contentElement.classList.add("ax-subpane"),this.contentElement.setAttribute("jslog",`${n.section("computed-properties")}`),this.noNodeInfo=this.createInfo(A(E.noAccessibilityNode)),this.ignoredInfo=this.createInfo(A(E.accessibilityNodeNotExposed),"ax-ignored-info hidden"),this.treeOutline=this.createTreeOutline(),this.ignoredReasonsTree=this.createTreeOutline(),this.element.classList.add("accessibility-computed"),this.treeOutline.setFocusable(!0)}setAXNode(e){if(this.axNode===e)return;this.axNode=e;const t=this.treeOutline;t.removeChildren();const a=this.ignoredReasonsTree;if(a.removeChildren(),!e)return t.element.classList.add("hidden"),this.ignoredInfo.classList.add("hidden"),a.element.classList.add("hidden"),this.noNodeInfo.classList.remove("hidden"),void this.element.classList.add("ax-ignored-node-pane");if(e.ignored()){this.noNodeInfo.classList.add("hidden"),t.element.classList.add("hidden"),this.element.classList.add("ax-ignored-node-pane"),this.ignoredInfo.classList.remove("hidden"),a.element.classList.remove("hidden");const n=e.ignoredReasons();for(const t of n)r=t,a.appendChild(new F(r,e));return void(a.firstChild()||a.element.classList.add("hidden"))}var r;function n(a){t.appendChild(new C(a,e))}this.element.classList.remove("ax-ignored-node-pane"),this.ignoredInfo.classList.add("hidden"),a.element.classList.add("hidden"),this.noNodeInfo.classList.add("hidden"),t.element.classList.remove("hidden");for(const t of e.coreProperties())n(t);const i=e.role();if(i){n({name:"role",value:i})}for(const t of e.properties())n(t);const s=t.firstChild();s&&s.select(!0,!1)}setNode(e){super.setNode(e),this.axNode=null}wasShown(){super.wasShown(),this.registerCSSFiles([d])}}class N extends r.TreeOutline.TreeElement{axNode;constructor(e){super(""),this.axNode=e}static createSimpleValueElement(e,t){let a,n;e&&"valueUndefined"!==e&&"computedString"!==e?(a=document.createElement("span"),a.classList.add("monospace")):a=document.createElement("span");return n=e&&T.has(e)?'"'+t.replace(/\n/g,"↵")+'"':String(t),e&&e in k&&a.classList.add(k[e]),a.setTextContentTruncatedIfNeeded(n||""),r.Tooltip.Tooltip.install(a,String(t)||""),a}static createExclamationMark(e){const t=r.UIUtils.createIconLabel({iconName:"warning-filled",color:"var(--icon-warning)"});return r.Tooltip.Tooltip.install(t,e),t}appendNameElement(e){const t=document.createElement("span");if(e in h){const a=h[e];t.textContent=a.name(),r.Tooltip.Tooltip.install(t,a.description()),t.classList.add("ax-readable-name")}else t.textContent=e,t.classList.add("ax-name"),t.classList.add("monospace");this.listItemElement.appendChild(t)}appendValueElement(e){if("idref"===e.type||"node"===e.type||"idrefList"===e.type||"nodeList"===e.type)return void this.appendRelatedNodeListValueElement(e);if(e.sources){const t=e.sources;for(let e=0;e<t.length;e++){const a=t[e],r=new M(a,this.axNode);this.appendChild(r)}this.expand()}const t=N.createSimpleValueElement(e.type,String(e.value));this.listItemElement.appendChild(t)}appendRelatedNode(e,t){const r=new a.DOMModel.DeferredDOMNode(this.axNode.accessibilityModel().target(),e.backendDOMNodeId),n=new L({deferredNode:r,idref:void 0},e);this.appendChild(n)}appendRelatedNodeInline(e){const t=new a.DOMModel.DeferredDOMNode(this.axNode.accessibilityModel().target(),e.backendDOMNodeId),r=new S({deferredNode:t,idref:void 0},e);this.listItemElement.appendChild(r.render())}appendRelatedNodeListValueElement(e){!e.relatedNodes||1!==e.relatedNodes.length||e.value?(e.relatedNodes&&e.relatedNodes.forEach(this.appendRelatedNode,this),e.relatedNodes&&e.relatedNodes.length<=3?this.expand():this.collapse()):this.appendRelatedNodeInline(e.relatedNodes[0])}}const k={attribute:"ax-value-string",boolean:"object-value-boolean",booleanOrUndefined:"object-value-boolean",computedString:"ax-readable-string",idref:"ax-value-string",idrefList:"ax-value-string",integer:"object-value-number",internalRole:"ax-internal-role",number:"ax-value-number",role:"ax-role",string:"ax-value-string",tristate:"object-value-boolean",valueUndefined:"ax-value-undefined"},T=new Set(["string","computedString","idrefList","idref"]);class C extends N{property;toggleOnClick;constructor(e,t){super(t),this.property=e,this.toggleOnClick=!0,this.listItemElement.classList.add("property")}onattach(){this.update()}update(){this.listItemElement.removeChildren(),this.appendNameElement(this.property.name),this.listItemElement.createChild("span","separator").textContent=": ",this.appendValueElement(this.property.value)}}class M extends N{source;constructor(e,t){super(t),this.source=e}onattach(){this.update()}appendRelatedNodeWithIdref(e,t){const r=new a.DOMModel.DeferredDOMNode(this.axNode.accessibilityModel().target(),e.backendDOMNodeId),n=new L({deferredNode:r,idref:t},e);this.appendChild(n)}appendIDRefValueElement(e){if(null===e.value)return;const t=e.relatedNodes||[];if(""===e.value){for(const e of t){const t=e.idref||"";this.appendRelatedNodeWithIdref(e,t)}return}const a=e.value.trim().split(/\s+/);for(const e of a){const r=t.find((t=>t.idref===e));r?this.appendRelatedNodeWithIdref(r,e):1===a.length?this.listItemElement.appendChild(new S({deferredNode:void 0,idref:e}).render()):this.appendChild(new L({deferredNode:void 0,idref:e}))}}appendRelatedNodeListValueElement(e){const t=e.relatedNodes,a=t?t.length:0;"idrefList"===e.type||"idref"===e.type?this.appendIDRefValueElement(e):super.appendRelatedNodeListValueElement(e),a<=3?this.expand():this.collapse()}appendSourceNameElement(e){const t=document.createElement("span"),a=e.type;switch(a){case"attribute":case"placeholder":case"relatedElement":if(e.nativeSource){const a=e.nativeSource;t.textContent=b[a].name(),r.Tooltip.Tooltip.install(t,b[a].description()),t.classList.add("ax-readable-name");break}t.textContent=e.attribute||null,t.classList.add("ax-name"),t.classList.add("monospace");break;default:a in p?(t.textContent=p[a].name(),r.Tooltip.Tooltip.install(t,p[a].description()),t.classList.add("ax-readable-name")):(console.warn(a,"not in AXSourceTypes"),t.textContent=a)}this.listItemElement.appendChild(t)}update(){if(this.listItemElement.removeChildren(),this.source.invalid){const e=N.createExclamationMark(A(E.invalidSource));this.listItemElement.appendChild(e),this.listItemElement.classList.add("ax-value-source-invalid")}else this.source.superseded&&this.listItemElement.classList.add("ax-value-source-unused");if(this.appendSourceNameElement(this.source),this.listItemElement.createChild("span","separator").textContent=": ",this.source.attributeValue)this.appendValueElement(this.source.attributeValue),r.UIUtils.createTextChild(this.listItemElement," ");else if(this.source.nativeSourceValue)this.appendValueElement(this.source.nativeSourceValue),r.UIUtils.createTextChild(this.listItemElement," "),this.source.value&&this.appendValueElement(this.source.value);else if(this.source.value)this.appendValueElement(this.source.value);else{const e=N.createSimpleValueElement("valueUndefined",A(E.notSpecified));this.listItemElement.appendChild(e),this.listItemElement.classList.add("ax-value-source-unused")}this.source.value&&this.source.superseded&&this.listItemElement.classList.add("ax-value-source-superseded")}}class L extends r.TreeOutline.TreeElement{value;axRelatedNodeElement;constructor(e,t){super(""),this.value=t,this.axRelatedNodeElement=new S(e,t),this.selectable=!0}onattach(){this.listItemElement.appendChild(this.axRelatedNodeElement.render()),this.value&&this.value.text&&this.listItemElement.appendChild(N.createSimpleValueElement("computedString",this.value.text))}onenter(){return this.axRelatedNodeElement.revealNode(),!0}}class S{deferredNode;idref;value;constructor(e,t){this.deferredNode=e.deferredNode,this.idref=e.idref,this.value=t}render(){const t=document.createElement("span");if(this.deferredNode){const a=document.createElement("span");t.appendChild(a),this.deferredNode.resolvePromise().then((t=>{e.Linkifier.Linkifier.linkify(t,{tooltip:void 0,preventKeyboardFocus:!0}).then((e=>a.appendChild(e)))}))}else if(this.idref){t.classList.add("invalid");const e=N.createExclamationMark(A(E.noNodeWithThisId));r.UIUtils.createTextChild(e,this.idref),t.appendChild(e)}return t}revealNode(){this.deferredNode&&this.deferredNode.resolvePromise().then((t=>e.Revealer.reveal(t)))}}class F extends N{property;toggleOnClick;reasonElement;constructor(e,t){super(t),this.property=e,this.axNode=t,this.toggleOnClick=!0,this.selectable=!1}static createReasonElement(e,a){let r=null;switch(e){case"activeModalDialog":r=t.i18n.getFormatLocalizedString(w,E.elementIsHiddenBy,{});break;case"hiddenByChildTree":r=t.i18n.getFormatLocalizedString(w,E.elementIsHiddenByChildTree,{});break;case"ancestorIsLeafNode":r=t.i18n.getFormatLocalizedString(w,E.ancestorChildrenAreAll,{});break;case"ariaHiddenElement":{const e=document.createElement("span",{is:"source-code"}).textContent="aria-hidden";r=t.i18n.getFormatLocalizedString(w,E.elementIsPlaceholder,{PH1:e});break}case"ariaHiddenSubtree":{const e=document.createElement("span",{is:"source-code"}).textContent="aria-hidden",a=document.createElement("span",{is:"source-code"}).textContent="true";r=t.i18n.getFormatLocalizedString(w,E.placeholderIsPlaceholderOnAncestor,{PH1:e,PH2:a});break}case"emptyAlt":r=t.i18n.getFormatLocalizedString(w,E.elementHasEmptyAltText,{});break;case"emptyText":r=t.i18n.getFormatLocalizedString(w,E.noTextContent,{});break;case"inertElement":r=t.i18n.getFormatLocalizedString(w,E.elementIsInert,{});break;case"inertSubtree":r=t.i18n.getFormatLocalizedString(w,E.elementIsInAnInertSubTree,{});break;case"inheritsPresentation":r=t.i18n.getFormatLocalizedString(w,E.elementsInheritsPresentational,{});break;case"labelContainer":r=t.i18n.getFormatLocalizedString(w,E.partOfLabelElement,{});break;case"labelFor":r=t.i18n.getFormatLocalizedString(w,E.labelFor,{});break;case"notRendered":r=t.i18n.getFormatLocalizedString(w,E.elementIsNotRendered,{});break;case"notVisible":r=t.i18n.getFormatLocalizedString(w,E.elementIsNotVisible,{});break;case"presentationalRole":{const e=a&&a.role()?.value||"",n=document.createElement("span",{is:"source-code"}).textContent="role="+e;r=t.i18n.getFormatLocalizedString(w,E.elementHasPlaceholder,{PH1:n});break}case"probablyPresentational":r=t.i18n.getFormatLocalizedString(w,E.elementIsPresentational,{});break;case"uninteresting":r=t.i18n.getFormatLocalizedString(w,E.elementNotInteresting,{})}return r&&r.classList.add("ax-reason"),r}onattach(){this.listItemElement.removeChildren(),this.reasonElement=F.createReasonElement(this.property.name,this.axNode),this.reasonElement&&this.listItemElement.appendChild(this.reasonElement);const e=this.property.value;"idref"===e.type&&this.appendRelatedNodeListValueElement(e)}}var R=Object.freeze({__proto__:null,AXNodeSubPane:I,AXNodePropertyTreeElement:N,TypeStyles:k,StringProperties:T,AXNodePropertyTreePropertyElement:C,AXValueSourceTreeElement:M,AXRelatedNodeSourceTreeElement:L,AXRelatedNodeElement:S,AXNodeIgnoredReasonTreeElement:F});const O={attributes:[{name:"aria-activedescendant",type:"IDREF"},{default:"false",name:"aria-atomic",type:"boolean"},{default:"none",enum:["inline","list","both","none"],name:"aria-autocomplete",type:"token"},{name:"aria-braillelabel",type:"string"},{name:"aria-brailleroledescription",type:"string"},{default:"false",name:"aria-busy",type:"boolean"},{default:"undefined",enum:["true","false","mixed","undefined"],name:"aria-checked",type:"token"},{name:"aria-colcount",type:"integer"},{name:"aria-colindex",type:"integer"},{name:"aria-colindextext",type:"string"},{name:"aria-colspan",type:"integer"},{name:"aria-controls",type:"IDREF_list"},{default:"false",enum:["page","step","location","date","time","true","false"],name:"aria-current",type:"token"},{name:"aria-describedby",type:"IDREF_list"},{name:"aria-description",type:"string"},{name:"aria-details",type:"IDREF"},{default:"false",name:"aria-disabled",type:"boolean"},{name:"aria-errormessage",type:"IDREF"},{default:"undefined",enum:["true","false","undefined"],name:"aria-expanded",type:"token"},{name:"aria-flowto",type:"IDREF_list"},{default:"false",enum:["false","true","menu","listbox","tree","grid","dialog"],name:"aria-haspopup",type:"token"},{default:"undefined",enum:["true","false","undefined"],name:"aria-hidden",type:"token"},{default:"false",enum:["grammar","false","spelling","true"],name:"aria-invalid",type:"token"},{name:"aria-keyshortcuts",type:"string"},{name:"aria-label",type:"string"},{name:"aria-labelledby",type:"IDREF_list"},{name:"aria-labeledby",type:"IDREF_list"},{name:"aria-level",type:"integer"},{default:"off",enum:["off","polite","assertive"],name:"aria-live",type:"token"},{default:"false",name:"aria-modal",type:"boolean"},{default:"false",name:"aria-multiline",type:"boolean"},{default:"false",name:"aria-multiselectable",type:"boolean"},{default:"undefined",enum:["horizontal","undefined","vertical"],name:"aria-orientation",type:"token"},{name:"aria-owns",type:"IDREF_list"},{name:"aria-placeholder",type:"string"},{name:"aria-posinset",type:"integer"},{default:"undefined",enum:["true","false","mixed","undefined"],name:"aria-pressed",type:"token"},{default:"false",name:"aria-readonly",type:"boolean"},{default:"additions text",enum:["additions","removals","text","all"],name:"aria-relevant",type:"token_list"},{default:"false",name:"aria-required",type:"boolean"},{name:"aria-roledescription",type:"string"},{name:"aria-rowcount",type:"integer"},{name:"aria-rowindex",type:"integer"},{name:"aria-rowindextext",type:"string"},{name:"aria-rowspan",type:"integer"},{default:"undefined",enum:["true","false","undefined"],name:"aria-selected",type:"token"},{name:"aria-setsize",type:"integer"},{default:"none",enum:["ascending","descending","none","other"],name:"aria-sort",type:"token"},{name:"aria-valuemax",type:"decimal"},{name:"aria-valuemin",type:"decimal"},{name:"aria-valuenow",type:"decimal"},{name:"aria-valuetext",type:"string"},{name:"aria-virtualcontent",type:"string"}],metadata:{attrsNullNamespace:!0,export:"CORE_EXPORT",namespace:"HTML",namespacePrefix:"xhtml",namespaceURI:"http://www.w3.org/1999/xhtml"},roles:[{implicitValues:{"aria-atomic":"true","aria-live":"assertive"},name:"alert",nameFrom:["author"],superclasses:["section"]},{name:"alertdialog",nameFrom:["author"],nameRequired:!0,superclasses:["alert","dialog"]},{name:"application",nameFrom:["author"],nameRequired:!0,superclasses:["structure"]},{name:"article",nameFrom:["author"],superclasses:["document"],supportedAttributes:["aria-posinset","aria-setsize"]},{name:"banner",nameFrom:["author"],superclasses:["landmark"]},{childrenPresentational:!0,name:"button",nameFrom:["contents","author"],nameRequired:!0,superclasses:["command"],supportedAttributes:["aria-expanded","aria-pressed"]},{name:"cell",namefrom:["contents","author"],scope:"row",superclasses:["section"],supportedAttributes:["aria-colindex","aria-colspan","aria-rowindex","aria-rowspan"]},{implicitValues:{"aria-checked":!1},name:"checkbox",nameFrom:["contents","author"],nameRequired:!0,requiredAttributes:["aria-checked"],superclasses:["input"],supportedAttributes:["aria-readonly"]},{name:"columnheader",nameFrom:["contents","author"],nameRequired:!0,scope:["row"],superclasses:["gridcell","sectionhead","widget"],supportedAttributes:["aria-sort"]},{implicitValues:{"aria-expanded":"false","aria-haspopup":"listbox"},mustContain:["textbox"],name:"combobox",nameFrom:["author"],nameRequired:!0,requiredAttributes:["aria-controls","aria-expanded"],superclasses:["select"],supportedAttributes:["aria-autocomplete","aria-readonly","aria-required"]},{abstract:!0,name:"command",nameFrom:["author"],superclasses:["widget"]},{name:"complementary",nameFrom:["author"],superclasses:["landmark"]},{abstract:!0,name:"composite",nameFrom:["author"],superclasses:["widget"],supportedAttributes:["aria-activedescendant"]},{name:"contentinfo",nameFrom:["author"],superclasses:["landmark"]},{name:"definition",nameFrom:["author"],superclasses:["section"]},{name:"dialog",nameFrom:["author"],nameRequired:!0,superclasses:["window"]},{name:"directory",nameFrom:["author"],superclasses:["list"]},{name:"document",nameFrom:["author"],nameRequired:!1,superclasses:["structure"],supportedAttributes:["aria-expanded"]},{mustContain:["article"],name:"feed",nameFrom:["author"],nameRequired:!1,superclasses:["list"]},{name:"figure",nameRequired:!1,namefrom:["author"],superclasses:["section"]},{name:"form",nameFrom:["author"],superclasses:["landmark"]},{mustContain:["row"],name:"grid",nameFrom:["author"],nameRequired:!0,superclasses:["composite","table"],supportedAttributes:["aria-level","aria-multiselectable","aria-readonly"]},{name:"gridcell",nameFrom:["contents","author"],nameRequired:!0,scope:["row"],superclasses:["cell","widget"],supportedAttributes:["aria-readonly","aria-required","aria-selected"]},{name:"group",nameFrom:["author"],superclasses:["section"],supportedAttributes:["aria-activedescendant"]},{implicitValues:{"aria-level":"2"},name:"heading",nameRequired:!0,namefrom:["contents","author"],superclasses:["sectionhead"],supportedAttributes:["aria-level"]},{childrenPresentational:!0,name:"img",nameFrom:["author"],nameRequired:!0,superclasses:["section"]},{abstract:!0,name:"input",nameFrom:["author"],superclasses:["widget"]},{abstract:!0,name:"landmark",nameFrom:["author"],nameRequired:!1,superclasses:["section"]},{name:"link",nameFrom:["contents","author"],nameRequired:!0,superclasses:["command"],supportedAttributes:["aria-expanded"]},{implicitValues:{"aria-orientation":"vertical"},mustContain:["listitem"],name:"list",nameFrom:["author"],superclasses:["section"]},{implicitValues:{"aria-orientation":"vertical"},mustContain:["option"],name:"listbox",nameFrom:["author"],nameRequired:!0,superclasses:["select"],supportedAttributes:["aria-multiselectable","aria-readonly","aria-required"]},{name:"listitem",nameFrom:["author"],scope:["group","list"],superclasses:["section"],supportedAttributes:["aria-level","aria-posinset","aria-setsize"]},{implicitValues:{"aria-live":"polite"},name:"log",nameFrom:["author"],nameRequired:!0,superclasses:["section"]},{name:"main",nameFrom:["author"],superclasses:["landmark"]},{name:"marquee",nameFrom:["author"],nameRequired:!0,superclasses:["section"]},{childrenPresentational:!0,name:"math",nameFrom:["author"],nameRequired:!0,superclasses:["section"]},{implicitValues:{"aria-orientation":"vertical"},mustContain:["group","menuitemradio","menuitem","menuitemcheckbox","menuitemradio"],name:"menu",nameFrom:["author"],superclasses:["select"]},{implicitValues:{"aria-orientation":"horizontal"},mustContain:["menuitem","menuitemradio","menuitemcheckbox"],name:"menubar",nameFrom:["author"],superclasses:["menu"]},{name:"menuitem",nameFrom:["contents","author"],nameRequired:!0,scope:["group","menu","menubar"],superclasses:["command"]},{childrenPresentational:!0,implicitValues:{"aria-checked":!1},name:"menuitemcheckbox",nameFrom:["contents","author"],nameRequired:!0,scope:["menu","menubar"],superclasses:["checkbox","menuitem"]},{childrenPresentational:!0,implicitValues:{"aria-checked":!1},name:"menuitemradio",nameFrom:["contents","author"],nameRequired:!0,scope:["menu","menubar","group"],superclasses:["menuitemcheckbox","radio"]},{name:"navigation",nameFrom:["author"],superclasses:["landmark"]},{name:"none",superclasses:["structure"]},{name:"note",nameFrom:["author"],superclasses:["section"]},{childrenPresentational:!0,implicitValues:{"aria-selected":"false"},name:"option",nameFrom:["contents","author"],nameRequired:!0,requiredAttributes:["aria-selected"],scope:["listbox"],superclasses:["input"],supportedAttributes:["aria-checked","aria-posinset","aria-setsize"]},{name:"presentation",superclasses:["structure"]},{childrenPresentational:!0,name:"progressbar",nameFrom:["author"],nameRequired:!0,superclasses:["range"]},{childrenPresentational:!0,implicitValues:{"aria-checked":"false"},name:"radio",nameFrom:["contents","author"],nameRequired:!0,requiredAttributes:["aria-checked"],superclasses:["input"],supportedAttributes:["aria-posinset","aria-setsize"]},{mustContain:["radio"],name:"radiogroup",nameFrom:["author"],nameRequired:!0,superclasses:["select"],supportedAttributes:["aria-readonly","aria-required"]},{abstract:!0,name:"range",nameFrom:["author"],superclasses:["widget"],supportedAttributes:["aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"]},{name:"region",nameFrom:["author"],nameRequired:!0,superclasses:["landmark"]},{abstract:!0,name:"roletype",supportedAttributes:["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"]},{mustContain:["cell","columnheader","gridcell","rowheader"],name:"row",nameFrom:["contents","author"],scope:["grid","rowgroup","table","treegrid"],superclasses:["group","widget"],supportedAttributes:["aria-colindex","aria-level","aria-rowindex","aria-selected","aria-setsize","aria-posinset"]},{mustContain:["row"],name:"rowgroup",nameFrom:["contents","author"],scope:["grid","table","treegrid"],superclasses:["structure"]},{name:"rowheader",nameFrom:["contents","author"],nameRequired:!0,scope:["row"],superclasses:["cell","gridcell","sectionhead"],supportedAttributes:["aria-sort"]},{childrenPresentational:!0,implicitValues:{"aria-orientation":"vertical","aria-valuemax":"100","aria-valuemin":"0"},name:"scrollbar",nameFrom:["author"],nameRequired:!1,requiredAttributes:["aria-controls","aria-orientation","aria-valuemax","aria-valuemin","aria-valuenow"],superclasses:["range"]},{name:"search",nameFrom:["author"],superclasses:["landmark"]},{name:"searchbox",nameFrom:["author"],nameRequired:!0,superclasses:["textbox"]},{abstract:!0,name:"section",superclasses:["structure"],supportedAttributes:["aria-expanded"]},{abstract:!0,name:"sectionhead",nameFrom:["contents","author"],superclasses:["structure"],supportedAttributes:["aria-expanded"]},{abstract:!0,name:"select",nameFrom:["author"],superclasses:["composite","group"]},{name:"separator",nameFrom:["author"],superclasses:["structure"],supportedAttributes:["aria-orientation","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext"]},{childrenPresentational:!0,implicitValues:{"aria-orientation":"horizontal","aria-valuemax":"100","aria-valuemin":"0"},name:"slider",nameFrom:["author"],nameRequired:!0,requiredAttributes:["aria-valuemax","aria-valuemin","aria-valuenow"],superclasses:["input","range"],supportedAttributes:["aria-orientation"]},{implicitValues:{"aria-valuenow":"0"},name:"spinbutton",nameFrom:["author"],nameRequired:!0,requiredAttributes:["aria-valuemax","aria-valuemin","aria-valuenow"],superclasses:["composite","input","range"],supportedAttributes:["aria-required","aria-readonly"]},{implicitValues:{"aria-atomic":"true","aria-live":"polite"},name:"status",nameFrom:["author"],superclasses:["section"]},{abstract:!0,name:"structure",superclasses:["roletype"]},{childrenPresentational:!0,implicitValues:{"aria-checked":"false"},name:"switch",nameFrom:["contents","author"],nameRequired:!0,requiredAttributes:["aria-checked"],superclasses:["checkbox"]},{childrenPresentational:!0,implicitValues:{"aria-selected":"false"},name:"tab",nameFrom:["contents","author"],scope:["tablist"],superclasses:["sectionhead","widget"],supportedAttributes:["aria-selected"]},{mustContain:["row"],name:"table",nameFrom:["author"],nameRequired:!0,superclasses:["section"],supportedAttributes:["aria-colcount","aria-rowcount"]},{implicitValues:{"aria-orientation":"horizontal"},mustContain:["tab"],name:"tablist",nameFrom:["author"],superclasses:["composite"],supportedAttributes:["aria-level","aria-multiselectable","aria-orientation"]},{name:"tabpanel",nameFrom:["author"],nameRequired:!0,superclasses:["section"]},{name:"term",nameFrom:["author"],superclasses:["section"]},{name:"textbox",nameFrom:["author"],nameRequired:!0,superclasses:["input"],supportedAttributes:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-placeholder","aria-readonly","aria-required"]},{name:"timer",nameFrom:["author"],superclasses:["status"]},{implicitValues:{"aria-orientation":"horizontal"},name:"toolbar",nameFrom:["author"],superclasses:["group"],supportedAttributes:["aria-orientation"]},{name:"tooltip",nameFrom:["contents","author"],nameRequired:!0,superclasses:["section"]},{implicitValues:{"aria-orientation":"vertical"},mustContain:["group","treeitem"],name:"tree",nameFrom:["author"],nameRequired:!0,superclasses:["select"],supportedAttributes:["aria-multiselectable","aria-required"]},{mustContain:["row"],name:"treegrid",nameFrom:["author"],nameRequired:!0,superclasses:["grid","tree"]},{name:"treeitem",nameFrom:["contents","author"],nameRequired:!0,scope:["group","tree"],superclasses:["listitem","option"]},{abstract:!0,name:"widget",superclasses:["roletype"]},{abstract:!0,name:"window",nameFrom:["author"],superclasses:["roletype"],supportedAttributes:["aria-expanded","aria-modal"]}]};class P{attributes;roleNames;constructor(e){this.attributes=new Map,this.roleNames=[],e&&this.initialize(e)}initialize(e){const t=e.attributes,a=["true","false"];for(const e of t)"boolean"===e.type&&(e.enum=a),this.attributes.set(e.name,new B(e));this.roleNames=e.roles.map((e=>e.name))}valuesForProperty(e){const t=this.attributes.get(e);return t?t.getEnum():"role"===e?this.roleNames:[]}}let D;function V(){return D||(D=new P(O||null)),D}class B{enum;constructor(e){this.enum=[],e.enum&&(this.enum=e.enum)}getEnum(){return this.enum}}var W=Object.freeze({__proto__:null,ARIAMetadata:P,ariaMetadata:V,Attribute:B});const q={ariaAttributes:"ARIA Attributes",noAriaAttributes:"No ARIA attributes"},H=t.i18n.registerUIStrings("panels/accessibility/ARIAAttributesView.ts",q),j=t.i18n.getLocalizedString.bind(void 0,H);class U extends x{noPropertiesInfo;treeOutline;constructor(){super(j(q.ariaAttributes)),this.noPropertiesInfo=this.createInfo(j(q.noAriaAttributes)),this.treeOutline=this.createTreeOutline(),this.element.setAttribute("jslog",`${n.section("aria-attributes")}`)}setNode(e){if(super.setNode(e),this.treeOutline.removeChildren(),!e)return;const t=e.domModel().target(),a=e.attributes();for(let e=0;e<a.length;++e){const r=a[e];this.isARIAAttribute(r)&&this.treeOutline.appendChild(new X(this,r,t))}const r=0!==this.treeOutline.rootElement().childCount();this.noPropertiesInfo.classList.toggle("hidden",r),this.treeOutline.element.classList.toggle("hidden",!r)}isARIAAttribute(e){return _.has(e.name)}}class X extends r.TreeOutline.TreeElement{parentPane;attribute;nameElement;valueElement;prompt;constructor(e,t,a){super(""),this.parentPane=e,this.attribute=t,this.selectable=!1}static createARIAValueElement(e){const t=document.createElement("span");return t.classList.add("monospace"),t.setTextContentTruncatedIfNeeded(e||""),t}onattach(){this.populateListItem(),this.listItemElement.addEventListener("click",this.mouseClick.bind(this))}populateListItem(){this.listItemElement.removeChildren(),this.appendNameElement(this.attribute.name),this.listItemElement.createChild("span","separator").textContent=": ",this.appendAttributeValueElement(this.attribute.value)}appendNameElement(e){this.nameElement=document.createElement("span"),this.nameElement.textContent=e,this.nameElement.classList.add("ax-name"),this.nameElement.classList.add("monospace"),this.listItemElement.appendChild(this.nameElement)}appendAttributeValueElement(e){this.valueElement=X.createARIAValueElement(e),this.listItemElement.appendChild(this.valueElement)}mouseClick(e){e.target!==this.listItemElement&&(e.consume(!0),this.startEditing())}startEditing(){const e=this.valueElement;if(!e||r.UIUtils.isBeingEdited(e))return;const t=e.textContent||"";const a=this.nameElement.textContent||"";this.prompt=new z(V().valuesForProperty(a),this),this.prompt.setAutocompletionTimeout(0);const n=this.prompt.attachAndStartEditing(e,function(e,t){const a=t.target.textContent||"";this.editingCommitted(a,e)}.bind(this,t));n.addEventListener("keydown",(e=>this.editingValueKeyDown(t,e)),!1);const i=e.getComponentSelection();i&&i.selectAllChildren(e)}removePrompt(){this.prompt&&(this.prompt.detach(),delete this.prompt)}editingCommitted(e,t){if(this.removePrompt(),e!==t){this.parentPane.node().setAttributeValue(this.attribute.name,e)}}editingCancelled(){this.removePrompt(),this.populateListItem()}editingValueKeyDown(e,t){if(!t.handled){if("Enter"===t.key){const a=t.target;return this.editingCommitted(a.textContent||"",e),void t.consume()}return s.KeyboardUtilities.isEscKey(t)?(this.editingCancelled(),void t.consume()):void 0}}}class z extends r.TextPrompt.TextPrompt{ariaCompletions;treeElement;constructor(e,t){super(),this.initialize(this.buildPropertyCompletions.bind(this)),this.ariaCompletions=e,this.treeElement=t}async buildPropertyCompletions(e,t,a){return(t=t.toLowerCase())||a||!e?this.ariaCompletions.filter((e=>e.startsWith(t))).map((e=>({text:e,title:void 0,subtitle:void 0,priority:void 0,isSecondary:void 0,subtitleRenderer:void 0,selectionRange:void 0,hideGhostText:void 0,iconElement:void 0}))):[]}}const _=new Set(["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"]);var K=Object.freeze({__proto__:null,ARIAAttributesPane:U,ARIAAttributesTreeElement:X,ARIAAttributePrompt:z});const G=new CSSStyleSheet;G.replaceSync('.ax-breadcrumbs-ignored-node{font-style:italic;opacity:70%}.ax-breadcrumbs{padding-top:1px;margin:0;position:relative}.ax-breadcrumbs .ax-node{align-items:center;margin-top:1px;min-height:16px;overflow-x:hidden;padding-left:4px;padding-right:4px;padding-top:1px;position:relative;text-overflow:ellipsis;white-space:nowrap}.ax-breadcrumbs .ax-node span{flex-shrink:0;text-overflow:ellipsis;white-space:nowrap}.ax-breadcrumbs .ax-node .wrapper{padding-left:12px;overflow-x:hidden}.ax-breadcrumbs .ax-node::before{mask-image:var(--image-file-chevron-right);mask-repeat:no-repeat;background-color:var(--icon-default);transform:scale(0.7);content:"";text-shadow:none;margin-left:-4px;margin-top:-2px;height:16px;width:16px;position:absolute;display:inline-block}.ax-breadcrumbs .ax-node:not(.parent):not(.children-unloaded)::before{background-color:transparent}.ax-breadcrumbs .ax-node.parent::before{mask-image:var(--image-file-chevron-down)}.ax-breadcrumbs .ax-node.no-dom-node{opacity:70%}.ax-breadcrumbs .ax-node.children-unloaded::before{mask-position:0 1px;width:13px;opacity:40%}.ax-breadcrumbs .ax-node .selection{display:none;z-index:-1}.ax-breadcrumbs .ax-node.inspected .selection{display:block;background-color:var(--sys-color-neutral-container)}.ax-breadcrumbs .ax-node.inspected:focus .selection{background-color:var(--sys-color-tonal-container)}.ax-breadcrumbs .ax-node.parent.inspected:focus::before{background-color:var(--sys-color-on-tonal-container)}.ax-breadcrumbs .ax-node.inspected:focus{background-color:var(--sys-color-tonal-container);color:var(--sys-color-on-tonal-container)}.ax-breadcrumbs .ax-node:not(.inspected):hover{background-color:var(--sys-color-state-hover-on-subtle)}.ax-breadcrumbs .ax-node:not(.inspected):focus{background-color:var(--sys-color-state-focus-highlight)}.ax-breadcrumbs .ax-node.inspected:focus *{color:inherit}.ax-breadcrumbs .ax-node.preselected:not(.inspected) .selection,\n.ax-breadcrumbs .ax-node.hovered:not(.inspected) .selection{display:block;left:2px;right:2px;background-color:var(--sys-color-state-hover-on-subtle);border-radius:5px}.ax-breadcrumbs .ax-node.preselected:not(.inspected):focus .selection{border:1px solid var(--sys-color-primary)}@media (forced-colors: active){.ax-value-source-unused,\n .ax-breadcrumbs .ax-node.children-unloaded::before{opacity:100%}.ax-breadcrumbs .ax-node.parent::before,\n .ax-breadcrumbs .ax-node.children-unloaded::before{forced-color-adjust:none;background-color:ButtonText}.ax-breadcrumbs .ax-node.parent.inspected::before,\n .ax-breadcrumbs .ax-node.parent.inspected:focus::before{background-color:HighlightText}.ax-breadcrumbs .ax-node.inspected .selection{forced-color-adjust:none;background:Highlight!important}.ax-breadcrumbs .ax-node.inspected .wrapper{forced-color-adjust:none;color:HighlightText}.ax-breadcrumbs .ax-node.preselected:not(.inspected) .selection,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected) .selection,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected) .wrapper,\n .ax-breadcrumbs .ax-node:focus-visible:not(.inspected) .wrapper{forced-color-adjust:none;background-color:Highlight;color:HighlightText;border-radius:0}.ax-breadcrumbs .ax-node.parent.hovered:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.parent:focus-visible:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.children-unloaded:focus-visible:not(.inspected)::before,\n .ax-breadcrumbs .ax-node.hovered:not(.inspected).children-unloaded::before{background-color:HighlightText}}\n/*# sourceURL=axBreadcrumbs.css */\n');const $={accessibilityTree:"Accessibility Tree",scrollIntoView:"Scroll into view",ignored:"Ignored",fullTreeExperimentName:"Enable full-page accessibility tree",fullTreeExperimentDescription:"The accessibility tree moved to the top right corner of the DOM tree.",reloadRequired:"Reload required before the change takes effect."},J=t.i18n.registerUIStrings("panels/accessibility/AXBreadcrumbsPane.ts",$),Q=t.i18n.getLocalizedString.bind(void 0,J);class Y extends x{axSidebarView;preselectedBreadcrumb;inspectedNodeBreadcrumb;collapsingBreadcrumbId;hoveredBreadcrumb;rootElement;#e=!1;constructor(e){super(Q($.accessibilityTree)),this.element.classList.add("ax-subpane"),this.element.tabIndex=-1,this.element.setAttribute("jslog",`${n.section("accessibility-tree")}`),this.axSidebarView=e,this.preselectedBreadcrumb=null,this.inspectedNodeBreadcrumb=null,this.collapsingBreadcrumbId=-1,this.rootElement=this.element.createChild("div","ax-breadcrumbs"),this.hoveredBreadcrumb=null;const t=new l.PreviewToggle.PreviewToggle;t.setAttribute("jslog",`${n.toggle("full-accessibility-tree")}`);const a=Q($.fullTreeExperimentName),s="full-accessibility-tree",d=e=>{o.userMetrics.experimentChanged(s,e),r.InspectorView.InspectorView.instance().displayReloadRequiredWarning(Q($.reloadRequired))};if(i.Runtime.experiments.isEnabled(s)){this.#e=!0;const e="https://g.co/devtools/a11y-tree-feedback";return t.data={name:a,helperText:Q($.fullTreeExperimentDescription),feedbackURL:e,experiment:s,onChangeCallback:d},void this.element.appendChild(t)}t.data={name:a,helperText:null,feedbackURL:null,experiment:s,onChangeCallback:d},this.element.prepend(t),r.ARIAUtils.markAsTree(this.rootElement),this.rootElement.addEventListener("keydown",this.onKeyDown.bind(this),!0),this.rootElement.addEventListener("mousemove",this.onMouseMove.bind(this),!1),this.rootElement.addEventListener("mouseleave",this.onMouseLeave.bind(this),!1),this.rootElement.addEventListener("click",this.onClick.bind(this),!1),this.rootElement.addEventListener("contextmenu",this.contextMenuEventFired.bind(this),!1),this.rootElement.addEventListener("focusout",this.onFocusOut.bind(this),!1)}focus(){this.inspectedNodeBreadcrumb?this.inspectedNodeBreadcrumb.nodeElement().focus():this.element.focus()}setAXNode(e){if(this.#e)return;const t=this.element.hasFocus();if(super.setAXNode(e),this.rootElement.removeChildren(),!e)return;const a=[];let r=e;for(;r;)a.push(r),r=r.parentNode();a.reverse();let n=0,i=null;for(r of(this.inspectedNodeBreadcrumb=null,a)){if(r!==e&&r.ignored()&&r.parentNode())continue;const t=new ee(r,n,r===e);i?i.appendChild(t):this.rootElement.appendChild(t.element()),i=t,n++,this.inspectedNodeBreadcrumb=t}function s(e,t,a){if(t.ignored())return void t.children().map((t=>s(e,t,a)));const r=new ee(t,a,!1);e.appendChild(r);for(const e of t.children())s(r,e,a+1)}if(this.inspectedNodeBreadcrumb&&this.inspectedNodeBreadcrumb.setPreselected(!0,t),this.setPreselectedBreadcrumb(this.inspectedNodeBreadcrumb),this.inspectedNodeBreadcrumb&&!e.ignored())for(const t of e.children())s(this.inspectedNodeBreadcrumb,t,n),t.backendDOMNodeId()===this.collapsingBreadcrumbId&&this.setPreselectedBreadcrumb(this.inspectedNodeBreadcrumb.lastChild());this.collapsingBreadcrumbId=-1}willHide(){this.setPreselectedBreadcrumb(null)}onKeyDown(e){const t=this.preselectedBreadcrumb;if(!t)return;const a=e;if(!a.composedPath().some((e=>e===t.element())))return;if(a.shiftKey||a.metaKey||a.ctrlKey)return;let r=!1;"ArrowUp"!==a.key||a.altKey?"ArrowDown"!==a.key||a.altKey?"ArrowLeft"!==a.key||a.altKey?("Enter"===a.key||"ArrowRight"===a.key&&!a.altKey&&t.axNode().hasOnlyUnloadedChildren())&&(r=this.inspectDOMNode(t.axNode())):t.hasExpandedChildren()?this.collapseBreadcrumb(t):r=this.preselectParent():r=this.preselectNext():r=this.preselectPrevious(),r&&a.consume(!0)}preselectPrevious(){if(!this.preselectedBreadcrumb)return!1;const e=this.preselectedBreadcrumb.previousBreadcrumb();return!!e&&(this.setPreselectedBreadcrumb(e),!0)}preselectNext(){if(!this.preselectedBreadcrumb)return!1;const e=this.preselectedBreadcrumb.nextBreadcrumb();return!!e&&(this.setPreselectedBreadcrumb(e),!0)}preselectParent(){if(!this.preselectedBreadcrumb)return!1;const e=this.preselectedBreadcrumb.parentBreadcrumb();return!!e&&(this.setPreselectedBreadcrumb(e),!0)}setPreselectedBreadcrumb(e){if(e===this.preselectedBreadcrumb)return;const t=this.element.hasFocus();this.preselectedBreadcrumb&&this.preselectedBreadcrumb.setPreselected(!1,t),this.preselectedBreadcrumb=e||this.inspectedNodeBreadcrumb,this.preselectedBreadcrumb&&this.preselectedBreadcrumb.setPreselected(!0,t),!e&&t&&a.OverlayModel.OverlayModel.hideDOMNodeHighlight()}collapseBreadcrumb(e){if(!e.parentBreadcrumb())return;const t=e.axNode().backendDOMNodeId();null!==t&&(this.collapsingBreadcrumbId=t);const a=e.parentBreadcrumb();a&&this.inspectDOMNode(a.axNode())}onMouseLeave(e){this.setHoveredBreadcrumb(null)}onMouseMove(e){const t=e.target;if(!t)return;const a=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!a)return void this.setHoveredBreadcrumb(null);const r=Z.get(a);r&&r.isDOMNode()&&this.setHoveredBreadcrumb(r)}onFocusOut(e){this.preselectedBreadcrumb&&e.target===this.preselectedBreadcrumb.nodeElement()&&this.setPreselectedBreadcrumb(null)}onClick(e){const t=e.target;if(!t)return;const a=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!a)return void this.setHoveredBreadcrumb(null);const r=Z.get(a);return r?r.inspected()?(this.collapseBreadcrumb(r),r.nodeElement().focus(),void n.logClick(r.expandLoggable,e)):void(r.isDOMNode()&&(this.inspectDOMNode(r.axNode()),n.logClick(r.expandLoggable,e))):void 0}setHoveredBreadcrumb(e){if(e===this.hoveredBreadcrumb)return;this.hoveredBreadcrumb&&this.hoveredBreadcrumb.setHovered(!1);const t=this.node();e?e.setHovered(!0):t&&t.id&&t.domModel().overlayModel().nodeHighlightRequested({nodeId:t.id}),this.hoveredBreadcrumb=e}inspectDOMNode(t){if(!t.isDOMNode())return!1;const a=t.deferredDOMNode();return a&&a.resolve((t=>{this.axSidebarView.setNode(t,!0),e.Revealer.reveal(t,!0)})),!0}contextMenuEventFired(e){const t=e.target;if(!t)return;const a=t.enclosingNodeOrSelfWithClass("ax-breadcrumb");if(!a)return;const n=Z.get(a);if(!n)return;const i=n.axNode();if(!i.isDOMNode()||!i.deferredDOMNode())return;const s=new r.ContextMenu.ContextMenu(e);s.viewSection().appendItem(Q($.scrollIntoView),(()=>{const e=i.deferredDOMNode();e&&e.resolvePromise().then((e=>{e&&e.scrollIntoView()}))}),{jslogContext:"scroll-into-view"});const o=i.deferredDOMNode();o&&s.appendApplicableItems(o),s.show()}wasShown(){super.wasShown(),this.registerCSSFiles([G])}}const Z=new WeakMap;class ee{axNodeInternal;elementInternal;nodeElementInternal;nodeWrapper;selectionElement;childrenGroupElement;children;hovered;preselectedInternal;parent;inspectedInternal;expandLoggable={};constructor(e,t,a){if(this.axNodeInternal=e,this.elementInternal=document.createElement("div"),this.elementInternal.classList.add("ax-breadcrumb"),this.elementInternal.setAttribute("jslog",`${n.treeItem().track({click:!0,keydown:"ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter"})}`),Z.set(this.elementInternal,this),this.nodeElementInternal=document.createElement("div"),this.nodeElementInternal.classList.add("ax-node"),r.ARIAUtils.markAsTreeitem(this.nodeElementInternal),this.nodeElementInternal.tabIndex=-1,this.elementInternal.appendChild(this.nodeElementInternal),this.nodeWrapper=document.createElement("div"),this.nodeWrapper.classList.add("wrapper"),this.nodeElementInternal.appendChild(this.nodeWrapper),this.selectionElement=document.createElement("div"),this.selectionElement.classList.add("selection"),this.selectionElement.classList.add("fill"),this.nodeElementInternal.appendChild(this.selectionElement),this.childrenGroupElement=document.createElement("div"),this.childrenGroupElement.classList.add("children"),r.ARIAUtils.markAsGroup(this.childrenGroupElement),this.elementInternal.appendChild(this.childrenGroupElement),this.children=[],this.hovered=!1,this.preselectedInternal=!1,this.parent=null,this.inspectedInternal=a,this.nodeElementInternal.classList.toggle("inspected",a),this.nodeElementInternal.style.paddingLeft=16*t+4+"px",this.axNodeInternal.ignored())this.appendIgnoredNodeElement();else{this.appendRoleElement(this.axNodeInternal.role());const e=this.axNodeInternal.name();e&&e.value&&(this.nodeWrapper.createChild("span","separator").textContent=" ",this.appendNameElement(e.value))}!this.axNodeInternal.ignored()&&this.axNodeInternal.hasOnlyUnloadedChildren()&&(this.nodeElementInternal.classList.add("children-unloaded"),r.ARIAUtils.setExpanded(this.nodeElementInternal,!1),n.registerLoggable(this.expandLoggable,`${n.expand()}`,this.elementInternal)),this.axNodeInternal.isDOMNode()||this.nodeElementInternal.classList.add("no-dom-node")}element(){return this.elementInternal}nodeElement(){return this.nodeElementInternal}appendChild(e){this.children.push(e),e.setParent(this),this.nodeElementInternal.classList.add("parent"),r.ARIAUtils.setExpanded(this.nodeElementInternal,!0),this.childrenGroupElement.appendChild(e.element()),n.registerLoggable(this.expandLoggable,`${n.expand()}`,this.elementInternal)}hasExpandedChildren(){return this.children.length}setParent(e){this.parent=e}preselected(){return this.preselectedInternal}setPreselected(e,t){this.preselectedInternal!==e&&(this.preselectedInternal=e,this.nodeElementInternal.classList.toggle("preselected",e),this.nodeElementInternal.tabIndex=e?0:-1,this.preselectedInternal&&(t&&this.nodeElementInternal.focus(),this.inspectedInternal?a.OverlayModel.OverlayModel.hideDOMNodeHighlight():this.axNodeInternal.highlightDOMNode()))}setHovered(e){this.hovered!==e&&(this.hovered=e,this.nodeElementInternal.classList.toggle("hovered",e),this.hovered&&(this.nodeElementInternal.classList.toggle("hovered",!0),this.axNodeInternal.highlightDOMNode()))}axNode(){return this.axNodeInternal}inspected(){return this.inspectedInternal}isDOMNode(){return this.axNodeInternal.isDOMNode()}nextBreadcrumb(){if(this.children.length)return this.children[0];const e=this.element().nextSibling;return e&&Z.get(e)||null}previousBreadcrumb(){const e=this.element().previousSibling;return e?Z.get(e)||null:this.parent}parentBreadcrumb(){return this.parent}lastChild(){return this.children[this.children.length-1]}appendNameElement(e){const t=document.createElement("span");t.textContent='"'+e+'"',t.classList.add("ax-readable-string"),this.nodeWrapper.appendChild(t)}appendRoleElement(e){if(!e)return;const t=document.createElement("span");t.classList.add("monospace"),t.classList.add(te[e.type]),t.setTextContentTruncatedIfNeeded(e.value||""),this.nodeWrapper.appendChild(t)}appendIgnoredNodeElement(){const e=document.createElement("span");e.classList.add("monospace"),e.textContent=Q($.ignored),e.classList.add("ax-breadcrumbs-ignored-node"),this.nodeWrapper.appendChild(e)}}const te={internalRole:"ax-internal-role",role:"ax-role"};var ae=Object.freeze({__proto__:null,AXBreadcrumbsPane:Y,AXBreadcrumb:ee,RoleStyles:te});const re={sourceOrderViewer:"Source Order Viewer",noSourceOrderInformation:"No source order information available",thereMayBeADelayInDisplaying:"There may be a delay in displaying source order for elements with many children",showSourceOrder:"Show source order"},ne=t.i18n.registerUIStrings("panels/accessibility/SourceOrderView.ts",re),ie=t.i18n.getLocalizedString.bind(void 0,ne);class se extends x{noNodeInfo;warning;checked;checkboxLabel;checkboxElement;overlayModel;constructor(){super(ie(re.sourceOrderViewer)),this.element.setAttribute("jslog",`${n.section("source-order-viewer")}`),this.noNodeInfo=this.createInfo(ie(re.noSourceOrderInformation)),this.warning=this.createInfo(ie(re.thereMayBeADelayInDisplaying)),this.warning.id="source-order-warning",this.checked=!1,this.checkboxLabel=r.UIUtils.CheckboxLabel.create(ie(re.showSourceOrder),!1),this.checkboxElement=this.checkboxLabel.checkboxElement,this.checkboxLabel.classList.add("source-order-checkbox"),this.checkboxLabel.setAttribute("jslog",`${n.toggle().track({click:!0})}`),this.checkboxElement.addEventListener("click",this.checkboxClicked.bind(this),!1),this.element.appendChild(this.checkboxLabel),this.nodeInternal=null,this.overlayModel=null}async setNodeAsync(e){if(this.checkboxLabel.classList.contains("hidden")||(this.checked=this.checkboxElement.checked),this.checkboxElement.checked=!1,this.checkboxClicked(),super.setNode(e),!this.nodeInternal)return void(this.overlayModel=null);let t=!1;const a=this.nodeInternal.childNodeCount();if(a>0){this.nodeInternal.children()||await this.nodeInternal.getSubtree(1,!1);t=this.nodeInternal.children().some((e=>e.nodeType()===Node.ELEMENT_NODE))}this.noNodeInfo.classList.toggle("hidden",t),this.warning.classList.toggle("hidden",a<300),this.checkboxLabel.classList.toggle("hidden",!t),t?(this.overlayModel=this.nodeInternal.domModel().overlayModel(),this.checkboxElement.checked=this.checked,this.checkboxClicked()):this.overlayModel=null}checkboxClicked(){this.nodeInternal&&this.overlayModel&&(this.checkboxElement.checked?(o.userMetrics.actionTaken(o.UserMetrics.Action.SourceOrderViewActivated),this.overlayModel.highlightSourceOrderInOverlay(this.nodeInternal)):this.overlayModel.hideSourceOrderInOverlay())}}let oe;class le extends r.ThrottledWidget.ThrottledWidget{nodeInternal;axNodeInternal;skipNextPullNode;sidebarPaneStack;breadcrumbsSubPane=null;ariaSubPane;axNodeSubPane;sourceOrderSubPane;constructor(e){super(!1,e),this.nodeInternal=null,this.axNodeInternal=null,this.skipNextPullNode=!1,this.sidebarPaneStack=r.ViewManager.ViewManager.instance().createStackLocation(),this.breadcrumbsSubPane=new Y(this),this.sidebarPaneStack.showView(this.breadcrumbsSubPane),this.ariaSubPane=new U,this.sidebarPaneStack.showView(this.ariaSubPane),this.axNodeSubPane=new I,this.sidebarPaneStack.showView(this.axNodeSubPane),this.sourceOrderSubPane=new se,this.sidebarPaneStack.showView(this.sourceOrderSubPane),this.sidebarPaneStack.widget().show(this.element),r.Context.Context.instance().addFlavorChangeListener(a.DOMModel.DOMNode,this.pullNode,this),this.pullNode()}static instance(e){return oe&&!e?.forceNew||(oe=new le(e?.throttlingTimeout)),oe}node(){return this.nodeInternal}axNode(){return this.axNodeInternal}setNode(e,t){this.skipNextPullNode=Boolean(t),this.nodeInternal=e,this.update()}accessibilityNodeCallback(e){e&&(this.axNodeInternal=e,e.isDOMNode()?this.sidebarPaneStack.showView(this.ariaSubPane,this.axNodeSubPane):this.sidebarPaneStack.removeView(this.ariaSubPane),this.axNodeSubPane&&this.axNodeSubPane.setAXNode(e),this.breadcrumbsSubPane&&this.breadcrumbsSubPane.setAXNode(e))}async doUpdate(){const e=this.node();if(this.axNodeSubPane.setNode(e),this.ariaSubPane.setNode(e),this.breadcrumbsSubPane&&this.breadcrumbsSubPane.setNode(e),this.sourceOrderSubPane.setNodeAsync(e),!e)return;const t=e.domModel().target().model(a.AccessibilityModel.AccessibilityModel);t&&(i.Runtime.experiments.isEnabled("full-accessibility-tree")||t.clear(),await t.requestPartialAXTree(e),this.accessibilityNodeCallback(t.axNodeForDOMNode(e)))}wasShown(){super.wasShown(),this.doUpdate(),a.TargetManager.TargetManager.instance().addModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.AttrModified,this.onNodeChange,this,{scoped:!0}),a.TargetManager.TargetManager.instance().addModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.AttrRemoved,this.onNodeChange,this,{scoped:!0}),a.TargetManager.TargetManager.instance().addModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.CharacterDataModified,this.onNodeChange,this,{scoped:!0}),a.TargetManager.TargetManager.instance().addModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.ChildNodeCountUpdated,this.onNodeChange,this,{scoped:!0})}willHide(){a.TargetManager.TargetManager.instance().removeModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.AttrModified,this.onNodeChange,this),a.TargetManager.TargetManager.instance().removeModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.AttrRemoved,this.onNodeChange,this),a.TargetManager.TargetManager.instance().removeModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.CharacterDataModified,this.onNodeChange,this),a.TargetManager.TargetManager.instance().removeModelListener(a.DOMModel.DOMModel,a.DOMModel.Events.ChildNodeCountUpdated,this.onNodeChange,this)}pullNode(){this.skipNextPullNode?this.skipNextPullNode=!1:this.setNode(r.Context.Context.instance().flavor(a.DOMModel.DOMNode))}onNodeChange(e){if(!this.node())return;const t=e.data,r=t instanceof a.DOMModel.DOMNode?t:t.node;this.node()===r&&this.update()}}var de=Object.freeze({__proto__:null,AccessibilitySidebarView:le});export{K as ARIAAttributesView,W as ARIAMetadata,ae as AXBreadcrumbsPane,R as AccessibilityNodeView,de as AccessibilitySidebarView,g as AccessibilityStrings,y as AccessibilitySubPane};
|