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,4 +0,0 @@
|
|
|
1
|
-
import*as e from"../../core/i18n/i18n.js";import*as t from"../../ui/legacy/theme_support/theme_support.js";import*as i from"../../models/trace/trace.js";import*as n from"../../core/sdk/sdk.js";import*as r from"../../core/common/common.js";import*as a from"../../core/root/root.js";import*as s from"./components/components.js";import{Utils as o}from"./components/components.js";import*as l from"../../core/host/host.js";import*as c from"../../core/platform/platform.js";import*as d from"../../models/workspace/workspace.js";import*as h from"../../services/trace_bounds/trace_bounds.js";import*as m from"../../ui/components/adorners/adorners.js";import*as p from"../../ui/legacy/components/perf_ui/perf_ui.js";import*as u from"../../ui/legacy/legacy.js";import*as g from"../../ui/visual_logging/visual_logging.js";import*as v from"../mobile_throttling/mobile_throttling.js";import*as T from"./components/insights/insights.js";import*as f from"../../ui/components/menus/menus.js";import*as y from"./overlays/overlays.js";import*as b from"../../models/source_map_scopes/source_map_scopes.js";import*as w from"../../models/extensions/extensions.js";import*as S from"../../models/bindings/bindings.js";import*as E from"../../models/timeline_model/timeline_model.js";import*as C from"../../ui/legacy/components/utils/utils.js";import*as k from"../../ui/legacy/components/data_grid/data_grid.js";import*as x from"../../ui/components/code_highlighter/code_highlighter.js";import*as P from"./extensions/extensions.js";import*as I from"../layer_viewer/layer_viewer.js";import*as M from"../../ui/components/data_grid/data_grid.js";import*as L from"../../ui/components/linkifier/linkifier.js";import*as R from"../../ui/lit-html/lit-html.js";import*as F from"./utils/utils.js";import*as D from"../../models/crux-manager/crux-manager.js";import*as A from"../../ui/components/icon_button/icon_button.js";import*as N from"../../ui/components/legacy_wrapper/legacy_wrapper.js";const B={sSelfS:"{PH1} (self {PH2})"},H=e.i18n.registerUIStrings("panels/timeline/AppenderUtils.ts",B),U=e.i18n.getLocalizedString.bind(void 0,H);function W(e){const i={padding:4,height:17,collapsible:!0,color:t.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),backgroundColor:t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"),nestingLevel:0,shareHeaderLine:!0};return Object.assign(i,e)}function O(e,t,i,n,r,a,s,o){const l={startLevel:t,name:i,style:n,selectable:r,expanded:a,showStackContextMenu:s,legends:o};return null!==e&&(l.jslogContext=e),l}function _(t,n){const r=i.Helpers.Timing.microSecondsToMilliseconds(t||0);if(r===i.Types.Timing.MilliSeconds(0))return"";const a=i.Helpers.Timing.microSecondsToMilliseconds(n||0),s=1e-6;return Math.abs(r-a)>s&&a>s?U(B.sSelfS,{PH1:e.TimeUtilities.millisToString(r,!0),PH2:e.TimeUtilities.millisToString(a,!0)}):e.TimeUtilities.millisToString(r,!0)}function V(e,t){let i=0;const n=e.ts,r=e.ts+(e.dur||0);for(;i<t.length&&n<t[i];)++i;return t[i]=r,i}function G(e,t,i){const n=e.entryDecorations[t]||[];n.push(i),e.entryDecorations[t]=n}var z=Object.freeze({__proto__:null,buildGroupStyle:W,buildTrackHeader:O,getFormattedTime:_,getEventLevel:V,addDecorationToEvent:G});const j={animations:"Animations"},q=e.i18n.registerUIStrings("panels/timeline/AnimationsTrackAppender.ts",j),$=e.i18n.getLocalizedString.bind(void 0,q);class J{appenderName="Animations";#e;#t;constructor(e,t){this.#e=e,this.#t=t}appendTrackAtLevel(e,t){const i=this.#t.Animations.animations;return 0===i.length?e:(this.#i(e,t),this.#e.appendEventsAtLevel(i,e,this))}#i(e,t){const i=W({useFirstLineForOverview:!1}),n=O("animations",e,$(j.animations),i,!0,t);this.#e.registerTrackForGroup(n,this)}colorForEvent(){return t.ThemeSupport.instance().getComputedValue("--app-color-rendering")}titleForEvent(e){return e.name}highlightedEntryInfo(e){return{title:this.titleForEvent(e),formattedTime:_(e.dur)}}}var K=Object.freeze({__proto__:null,AnimationsTrackAppender:J});class Y extends Event{duration;static eventName="traceload";constructor(e){super(Y.eventName,{bubbles:!0,composed:!0}),this.duration=e}}var X=Object.freeze({__proto__:null,TraceLoadEvent:Y});class Z{x;y;width;height;color;outlineColor;constructor([e,t,i,n]){this.x=e,this.y=t,this.width=i,this.height=n,this.color={r:238,g:111,b:99,a:.4},this.outlineColor={r:238,g:111,b:99,a:.7}}}let Q;class ee{static instance(e={forceNew:null}){const{forceNew:t}=e;return Q&&!t||(Q=new ee),Q}linkify(e,t){const i=document.createElement("span"),r=e,{x:a,y:s,width:o,height:l}=r;return i.textContent=`Location: [${a},${s}], Size: [${o}x${l}]`,i.addEventListener("mouseover",(()=>n.OverlayModel.OverlayModel.highlightRect(r))),i.addEventListener("mouseleave",(()=>n.OverlayModel.OverlayModel.clearHighlight())),i}}var te=Object.freeze({__proto__:null,CLSRect:Z,Linkifier:ee});const ie={loading:"Loading",experience:"Experience",scripting:"Scripting",rendering:"Rendering",painting:"Painting",gpu:"GPU",async:"Async",system:"System",idle:"Idle",task:"Task",other:"Other",animation:"Animation",event:"Event",requestMainThreadFrame:"Request Main Thread Frame",frameStart:"Frame Start",onMessage:"On Message",schedulePostMessage:"Schedule postMessage",messaging:"Messaging",frameStartMainThread:"Frame Start (main thread)",drawFrame:"Draw Frame",profilingOverhead:"Profiling Overhead",hitTest:"Hit Test",scheduleStyleRecalculation:"Schedule Style Recalculation",recalculateStyle:"Recalculate Style",invalidateLayout:"Invalidate Layout",layerize:"Layerize",layout:"Layout",paintSetup:"Paint Setup",paintImage:"Paint Image",prePaint:"Pre-Paint",updateLayer:"Update Layer",updateLayerTree:"Update Layer Tree",paint:"Paint",rasterizePaint:"Rasterize Paint",scroll:"Scroll",commit:"Commit",compositeLayers:"Composite Layers",computeIntersections:"Compute Intersections",parseHtml:"Parse HTML",parseStylesheet:"Parse Stylesheet",installTimer:"Install Timer",removeTimer:"Remove Timer",timerFired:"Timer Fired",xhrReadyStateChange:"`XHR` Ready State Change",xhrLoad:"`XHR` Load",compileScript:"Compile Script",cacheScript:"Cache Script Code",compileCode:"Compile Code",optimizeCode:"Optimize Code",evaluateScript:"Evaluate Script",compileModule:"Compile Module",cacheModule:"Cache Module Code",evaluateModule:"Evaluate Module",streamingCompileTask:"Streaming Compile Task",waitingForNetwork:"Waiting for Network",parseAndCompile:"Parse and Compile",deserializeCodeCache:"Deserialize Code Cache",streamingWasmResponse:"Streaming Wasm Response",compiledWasmModule:"Compiled Wasm Module",cachedWasmModule:"Cached Wasm Module",wasmModuleCacheHit:"Wasm Module Cache Hit",wasmModuleCacheInvalid:"Wasm Module Cache Invalid",frameStartedLoading:"Frame Started Loading",onloadEvent:"Onload Event",domcontentloadedEvent:"DOMContentLoaded Event",firstPaint:"First Paint",firstContentfulPaint:"First Contentful Paint",largestContentfulPaint:"Largest Contentful Paint",timestamp:"Timestamp",consoleTime:"Console Time",userTiming:"User Timing",willSendRequest:"Will Send Request",sendRequest:"Send Request",receiveResponse:"Receive Response",finishLoading:"Finish Loading",receiveData:"Receive Data",runMicrotasks:"Run Microtasks",functionCall:"Function Call",gcEvent:"GC Event",majorGc:"Major GC",minorGc:"Minor GC",requestAnimationFrame:"Request Animation Frame",cancelAnimationFrame:"Cancel Animation Frame",animationFrameFired:"Animation Frame Fired",requestIdleCallback:"Request Idle Callback",cancelIdleCallback:"Cancel Idle Callback",fireIdleCallback:"Fire Idle Callback",createWebsocket:"Create WebSocket",sendWebsocketHandshake:"Send WebSocket Handshake",receiveWebsocketHandshake:"Receive WebSocket Handshake",wsMessageReceived:"Receive WebSocket Message",wsMessageSent:"Send WebSocket Message",destroyWebsocket:"Destroy WebSocket",embedderCallback:"Embedder Callback",imageDecode:"Image Decode",domGc:"DOM GC",cppGc:"CPP GC",encrypt:"Encrypt",encryptReply:"Encrypt Reply",decrypt:"Decrypt",decryptReply:"Decrypt Reply",digest:"Digest",digestReply:"Digest Reply",sign:"Sign",signReply:"Sign Reply",verify:"Verify",verifyReply:"Verify Reply",asyncTask:"Async Task",layoutShift:"Layout shift",eventTiming:"Event Timing",jsFrame:"JS Frame",rasterizing:"Rasterizing",drawing:"Drawing"};var ne;let re;!function(e){e.DRAWING="drawing",e.RASTERIZING="rasterizing",e.LAYOUT="layout",e.LOADING="loading",e.EXPERIENCE="experience",e.SCRIPTING="scripting",e.MESSAGING="messaging",e.RENDERING="rendering",e.PAINTING="painting",e.GPU="gpu",e.ASYNC="async",e.OTHER="other",e.IDLE="idle"}(ne||(ne={}));const ae=e.i18n.registerUIStrings("panels/timeline/EventUICategory.ts",ie),se=e.i18n.getLocalizedString.bind(void 0,ae);class oe{title;category;hidden;constructor(e,t,i=!1){this.title=e,this.category=t,this.hidden=i}}class le{name;title;visible;childColor;colorInternal;hiddenInternal;constructor(e,t,i,n,r){this.name=e,this.title=t,this.visible=i,this.childColor=n,this.colorInternal=r,this.hidden=!1}get hidden(){return Boolean(this.hiddenInternal)}get color(){return this.getComputedColorValue()}getCSSValue(){return`var(${this.colorInternal})`}getComputedColorValue(){return t.ThemeSupport.instance().getComputedValue(this.colorInternal)}set hidden(e){this.hiddenInternal=e}}let ce,de;function he(e){return ue()[e]}function me(e){return Object.values(ne).includes(e)}function pe(){return ce||(ce={loading:new le(ne.LOADING,se(ie.loading),!0,"--app-color-loading-children","--app-color-loading"),experience:new le(ne.EXPERIENCE,se(ie.experience),!1,"--app-color-rendering-children","--app-color-rendering"),messaging:new le(ne.MESSAGING,se(ie.messaging),!0,"--app-color-messaging-children","--app-color-messaging"),scripting:new le(ne.SCRIPTING,se(ie.scripting),!0,"--app-color-scripting-children","--app-color-scripting"),rendering:new le(ne.RENDERING,se(ie.rendering),!0,"--app-color-rendering-children","--app-color-rendering"),painting:new le(ne.PAINTING,se(ie.painting),!0,"--app-color-painting-children","--app-color-painting"),gpu:new le(ne.GPU,se(ie.gpu),!1,"--app-color-painting-children","--app-color-painting"),async:new le(ne.ASYNC,se(ie.async),!1,"--app-color-async-children","--app-color-async"),other:new le(ne.OTHER,se(ie.system),!1,"--app-color-system-children","--app-color-system"),idle:new le(ne.IDLE,se(ie.idle),!1,"--app-color-idle-children","--app-color-idle"),layout:new le(ne.LAYOUT,se(ie.layout),!1,"--app-color-loading-children","--app-color-loading"),rasterizing:new le(ne.RASTERIZING,se(ie.rasterizing),!1,"--app-color-children","--app-color-scripting"),drawing:new le(ne.DRAWING,se(ie.drawing),!1,"--app-color-rendering-children","--app-color-rendering")},ce)}function ue(){if(de)return de;const e=pe();return de={RunTask:new oe(se(ie.task),e.other),ProfileCall:new oe(se(ie.jsFrame),e.scripting),JSSample:new oe("JSSample",e.scripting),Program:new oe(se(ie.other),e.other),"CpuProfiler::StartProfiling":new oe(se(ie.profilingOverhead),e.other),Animation:new oe(se(ie.animation),e.rendering),EventDispatch:new oe(se(ie.event),e.scripting),RequestMainThreadFrame:new oe(se(ie.requestMainThreadFrame),e.rendering,!0),BeginFrame:new oe(se(ie.frameStart),e.rendering,!0),BeginMainThreadFrame:new oe(se(ie.frameStartMainThread),e.rendering,!0),DrawFrame:new oe(se(ie.drawFrame),e.rendering,!0),HitTest:new oe(se(ie.hitTest),e.rendering),ScheduleStyleRecalculation:new oe(se(ie.scheduleStyleRecalculation),e.rendering),UpdateLayoutTree:new oe(se(ie.recalculateStyle),e.rendering),InvalidateLayout:new oe(se(ie.invalidateLayout),e.rendering,!0),Layerize:new oe(se(ie.layerize),e.rendering),Layout:new oe(se(ie.layout),e.rendering),PaintSetup:new oe(se(ie.paintSetup),e.painting),PaintImage:new oe(se(ie.paintImage),e.painting,!0),UpdateLayer:new oe(se(ie.updateLayer),e.painting,!0),UpdateLayerTree:new oe(se(ie.updateLayerTree),e.rendering),Paint:new oe(se(ie.paint),e.painting),PrePaint:new oe(se(ie.prePaint),e.rendering),RasterTask:new oe(se(ie.rasterizePaint),e.painting),ScrollLayer:new oe(se(ie.scroll),e.rendering),Commit:new oe(se(ie.commit),e.painting),CompositeLayers:new oe(se(ie.compositeLayers),e.painting),ComputeIntersections:new oe(se(ie.computeIntersections),e.rendering),ParseHTML:new oe(se(ie.parseHtml),e.loading),ParseAuthorStyleSheet:new oe(se(ie.parseStylesheet),e.loading),TimerInstall:new oe(se(ie.installTimer),e.scripting),TimerRemove:new oe(se(ie.removeTimer),e.scripting),TimerFire:new oe(se(ie.timerFired),e.scripting),XHRReadyStateChange:new oe(se(ie.xhrReadyStateChange),e.scripting),XHRLoad:new oe(se(ie.xhrLoad),e.scripting),"v8.compile":new oe(se(ie.compileScript),e.scripting),"v8.produceCache":new oe(se(ie.cacheScript),e.scripting),"V8.CompileCode":new oe(se(ie.compileCode),e.scripting),"V8.OptimizeCode":new oe(se(ie.optimizeCode),e.scripting),EvaluateScript:new oe(se(ie.evaluateScript),e.scripting),"V8.CompileModule":new oe(se(ie.compileModule),e.scripting),"v8.produceModuleCache":new oe(se(ie.cacheModule),e.scripting),"v8.evaluateModule":new oe(se(ie.evaluateModule),e.scripting),"v8.parseOnBackground":new oe(se(ie.streamingCompileTask),e.other),"v8.parseOnBackgroundWaiting":new oe(se(ie.waitingForNetwork),e.idle),"v8.parseOnBackgroundParsing":new oe(se(ie.parseAndCompile),e.scripting),"v8.deserializeOnBackground":new oe(se(ie.deserializeCodeCache),e.scripting),"V8.FinalizeDeserialization":new oe(se(ie.profilingOverhead),e.other),"v8.wasm.streamFromResponseCallback":new oe(se(ie.streamingWasmResponse),e.scripting),"v8.wasm.compiledModule":new oe(se(ie.compiledWasmModule),e.scripting),"v8.wasm.cachedModule":new oe(se(ie.cachedWasmModule),e.scripting),"v8.wasm.moduleCacheHit":new oe(se(ie.wasmModuleCacheHit),e.scripting),"v8.wasm.moduleCacheInvalid":new oe(se(ie.wasmModuleCacheInvalid),e.scripting),FrameStartedLoading:new oe(se(ie.frameStartedLoading),e.loading,!0),MarkLoad:new oe(se(ie.onloadEvent),e.scripting,!0),MarkDOMContent:new oe(se(ie.domcontentloadedEvent),e.scripting,!0),firstPaint:new oe(se(ie.firstPaint),e.painting,!0),firstContentfulPaint:new oe(se(ie.firstContentfulPaint),e.rendering,!0),"largestContentfulPaint::Candidate":new oe(se(ie.largestContentfulPaint),e.rendering,!0),TimeStamp:new oe(se(ie.timestamp),e.scripting),ConsoleTime:new oe(se(ie.consoleTime),e.scripting),UserTiming:new oe(se(ie.userTiming),e.scripting),ResourceWillSendRequest:new oe(se(ie.willSendRequest),e.loading),ResourceSendRequest:new oe(se(ie.sendRequest),e.loading),ResourceReceiveResponse:new oe(se(ie.receiveResponse),e.loading),ResourceFinish:new oe(se(ie.finishLoading),e.loading),ResourceReceivedData:new oe(se(ie.receiveData),e.loading),RunMicrotasks:new oe(se(ie.runMicrotasks),e.scripting),FunctionCall:new oe(se(ie.functionCall),e.scripting),GCEvent:new oe(se(ie.gcEvent),e.scripting),MajorGC:new oe(se(ie.majorGc),e.scripting),MinorGC:new oe(se(ie.minorGc),e.scripting),"CppGC.IncrementalSweep":new oe(se(ie.cppGc),e.scripting),RequestAnimationFrame:new oe(se(ie.requestAnimationFrame),e.scripting),CancelAnimationFrame:new oe(se(ie.cancelAnimationFrame),e.scripting),FireAnimationFrame:new oe(se(ie.animationFrameFired),e.scripting),RequestIdleCallback:new oe(se(ie.requestIdleCallback),e.scripting),CancelIdleCallback:new oe(se(ie.cancelIdleCallback),e.scripting),FireIdleCallback:new oe(se(ie.fireIdleCallback),e.scripting),WebSocketCreate:new oe(se(ie.createWebsocket),e.scripting),WebSocketSendHandshakeRequest:new oe(se(ie.sendWebsocketHandshake),e.scripting),WebSocketReceiveHandshakeResponse:new oe(se(ie.receiveWebsocketHandshake),e.scripting),WebSocketDestroy:new oe(se(ie.destroyWebsocket),e.scripting),WebSocketSend:new oe(se(ie.wsMessageSent),e.scripting),WebSocketReceive:new oe(se(ie.wsMessageReceived),e.scripting),EmbedderCallback:new oe(se(ie.embedderCallback),e.scripting),"Decode Image":new oe(se(ie.imageDecode),e.painting),GPUTask:new oe(se(ie.gpu),e.gpu),"BlinkGC.AtomicPhase":new oe(se(ie.domGc),e.scripting),DoEncrypt:new oe(se(ie.encrypt),e.scripting),DoEncryptReply:new oe(se(ie.encryptReply),e.scripting),DoDecrypt:new oe(se(ie.decrypt),e.scripting),DoDecryptReply:new oe(se(ie.decryptReply),e.scripting),DoDigest:new oe(se(ie.digest),e.scripting),DoDigestReply:new oe(se(ie.digestReply),e.scripting),DoSign:new oe(se(ie.sign),e.scripting),DoSignReply:new oe(se(ie.signReply),e.scripting),DoVerify:new oe(se(ie.verify),e.scripting),DoVerifyReply:new oe(se(ie.verifyReply),e.scripting),AsyncTask:new oe(se(ie.asyncTask),e.async),LayoutShift:new oe(se(ie.layoutShift),e.experience),EventTiming:new oe(se(ie.eventTiming),e.experience),HandlePostMessage:new oe(se(ie.onMessage),e.messaging),SchedulePostMessage:new oe(se(ie.schedulePostMessage),e.messaging)},de}function ge(e){de=e}function ve(e){ce=e}function Te(){const e=ue(),t=[];for(const i in e){const n=i;e[n]?.hidden||t.push(i)}return t}function fe(){return re||(re=[ne.IDLE,ne.LOADING,ne.PAINTING,ne.RENDERING,ne.SCRIPTING,ne.OTHER],re)}function ye(e){re=e}var be=Object.freeze({__proto__:null,get EventCategory(){return ne},TimelineRecordStyle:oe,TimelineCategory:le,getEventStyle:he,stringIsEventCategory:me,getCategoryStyles:pe,maybeInitSylesMap:ue,setEventStylesMap:ge,setCategories:ve,visibleTypes:Te,getTimelineMainEventCategories:fe,setTimelineMainEventCategories:ye});let we=null;class Se{static instance(e={forceNew:null}){const t=Boolean(e.forceNew);return we&&!t||(we=new Se),we}static removeInstance(){we=null}#n=[];activeFilters(){return this.#n}setFilters(e){this.#n=e}isVisible(e){return this.#n.every((t=>t.accept(e)))}}let Ee=null;class Ce{#r=new WeakSet;static instance(e={forceNew:!1}){return Ee&&!e.forceNew||(Ee=new Ce),Ee}registerFreshRecording(e){this.#r.add(e)}recordingIsFresh(e){return this.#r.has(e)}}var ke=Object.freeze({__proto__:null,Tracker:Ce});const xe=new CSSStyleSheet;xe.replaceSync('.content{margin-left:5px}.history-dropdown-button{width:160px;height:26px;text-align:left;display:flex;border:1px solid transparent}.history-dropdown-button[disabled]{opacity:50%;border:1px solid transparent}.history-dropdown-button > .content{padding-right:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:35px;&::after{float:right;user-select:none;mask-image:var(--image-file-triangle-down);width:14px;height:14px;content:"";position:absolute;background-color:var(--icon-default);right:-3px}}.history-dropdown-button:focus-visible::before{content:"";position:absolute;top:2px;left:0;right:0;bottom:2px;border-radius:2px;background:var(--divider-line)}@media (forced-colors: active){.history-dropdown-button[disabled]{opacity:100%}.history-dropdown-button > .content::after{background-color:ButtonText}.history-dropdown-button[disabled] > .content::after{background-color:GrayText}}\n/*# sourceURL=historyToolbarButton.css */\n');const Pe={empty:"(empty)",selectJavascriptVmInstance:"Select JavaScript VM instance"},Ie=e.i18n.registerUIStrings("panels/timeline/IsolateSelector.ts",Pe),Me=e.i18n.getLocalizedString.bind(void 0,Ie);class Le extends u.Toolbar.ToolbarItem{menu;options;items;itemByIsolate=new Map;constructor(){const e=new f.SelectMenu.SelectMenu;super(e),this.menu=e,e.buttonTitle=Me(Pe.selectJavascriptVmInstance),e.showArrow=!0,e.style.whiteSpace="normal",e.addEventListener("selectmenuselected",this.#a.bind(this)),n.IsolateManager.IsolateManager.instance().observeIsolates(this),n.TargetManager.TargetManager.instance().addEventListener("NameChanged",this.targetChanged,this),n.TargetManager.TargetManager.instance().addEventListener("InspectedURLChanged",this.targetChanged,this)}#s(e,t){const i=new Map;for(const t of e.models()){const e=t.target(),a=n.TargetManager.TargetManager.instance().rootTarget()!==e?e.name():"",s=new r.ParsedURL.ParsedURL(e.inspectedURL()),o=s.isValid?s.domain():"",l=e.decorateLabel(o&&a?`${o}: ${a}`:a||o||Me(Pe.empty));i.set(l,(i.get(l)||0)+1)}t.removeChildren();for(const[e,n]of i){const i=n>1?`${e} (${n})`:e;t.createChild("div").textContent=i}}#a(e){this.itemByIsolate.forEach(((t,i)=>{if(t.selected=t.value===e.itemValue,t.selected){const e=t.textContent?.slice(0,29);this.menu.buttonTitle=e||Me(Pe.empty);const r=i.runtimeModel();u.Context.Context.instance().setFlavor(n.CPUProfilerModel.CPUProfilerModel,r&&r.target().model(n.CPUProfilerModel.CPUProfilerModel))}}))}isolateAdded(e){const t=new f.Menu.MenuItem;this.menu.appendChild(t),t.value=e.id(),this.itemByIsolate.set(e,t),this.#s(e,t)}isolateRemoved(e){const t=this.itemByIsolate.get(e);t&&(t.selected&&(this.menu.buttonTitle=Me(Pe.selectJavascriptVmInstance),u.Context.Context.instance().setFlavor(n.CPUProfilerModel.CPUProfilerModel,null)),this.menu.removeChild(t))}isolateChanged(e){const t=this.itemByIsolate.get(e);t&&this.#s(e,t)}targetChanged(e){const t=e.data.model(n.RuntimeModel.RuntimeModel);if(!t)return;const i=n.IsolateManager.IsolateManager.instance().isolateByModel(t);i&&this.isolateChanged(i)}}class Re{#o;#l=[];#c=[];#d=new Map;constructor(e){this.#o=e}findPossibleActions(e){const t=this.#o.get(e);if(!t)return{MERGE_FUNCTION:!1,COLLAPSE_FUNCTION:!1,COLLAPSE_REPEATING_DESCENDANTS:!1,RESET_CHILDREN:!1,UNDO_ALL_ACTIONS:!1};const i=t.parent,n=this.#h(t).filter((e=>!this.#l.includes(e))),r=this.#m(t).filter((e=>!this.#l.includes(e))),a=this.#h(t).filter((e=>this.#l.includes(e)));return{MERGE_FUNCTION:null!==i,COLLAPSE_FUNCTION:n.length>0,COLLAPSE_REPEATING_DESCENDANTS:r.length>0,RESET_CHILDREN:a.length>0,UNDO_ALL_ACTIONS:this.#l.length>0}}findHiddenDescendantsAmount(e){const t=this.#o.get(e);if(!t)return 0;return this.#h(t).filter((e=>this.invisibleEntries().includes(e))).length}invisibleEntries(){return this.#l}setHiddenAndExpandableEntries(e,t){this.#l.push(...e),this.#c.push(...t)}inEntryInvisible(e){return this.#l.includes(e)}expandableEntries(){return this.#c}applyFilterAction(e){const t=new Set;switch(e.type){case"MERGE_FUNCTION":{t.add(e.entry);const i=this.#o.get(e.entry)||null,n=i&&this.#p(i);n&&this.#u(n.entry);break}case"COLLAPSE_FUNCTION":{const i=this.#o.get(e.entry);if(!i)break;this.#h(i).forEach((e=>t.add(e))),this.#u(e.entry);break}case"COLLAPSE_REPEATING_DESCENDANTS":{const i=this.#o.get(e.entry);if(!i)break;this.#m(i).forEach((e=>t.add(e))),t.size>0&&this.#u(e.entry);break}case"UNDO_ALL_ACTIONS":this.#l=[],this.#c=[];break;case"RESET_CHILDREN":this.#g(e.entry);break;default:c.assertNever(e.type,`Unknown EntriesFilter action: ${e.type}`)}return this.#l.push(...t),this.#l}#u(e){this.#c.push(e);const t=this.#o.get(e);if(!t)return;const i=this.#h(t);i.length>0&&(this.#c=this.#c.filter((e=>!i.includes(e))))}#p(e){let t=e.parent;for(;t&&this.#l.includes(t.entry)||t&&!Or(t.entry);)t=t.parent;return t}#h(e){const t=this.#d.get(e);if(t)return t;const i=[],n=[...e.children];for(;n.length>0;){const e=n.shift();if(e){i.push(e.entry);const t=this.#d.get(e);t?i.push(...t):n.push(...e.children)}}return this.#d.set(e,i),i}#m(e){const t=[...e.children],n=[],r=i.Types.TraceEvents.isProfileCall(e.entry);for(;t.length>0;){const a=t.shift();if(a){const s=i.Types.TraceEvents.isProfileCall(a.entry);if(r&&s){const t=e.entry,r=a.entry;i.Helpers.SamplesIntegrator.SamplesIntegrator.framesAreEqual(t.callFrame,r.callFrame)&&n.push(a.entry)}else r||s||e.entry.name===a.entry.name&&n.push(a.entry);t.push(...a.children)}}return n}revealEntry(e){const t=this.#o.get(e);if(!t)return;let i=t;for(;i.parent&&!this.#c.includes(i.entry);)i=i.parent;this.#g(i.entry)}#g(e){const t=this.#o.get(e);if(!t)return;const i=this.#h(t);this.#l=this.#l.filter((e=>!i.includes(e))),this.#c=this.#c.filter((t=>!i.includes(t)&&t!==e))}isEntryExpandable(e){return this.#c.includes(e)}}var Fe=Object.freeze({__proto__:null,EntriesFilter:Re});class De{#v=new Map;keyForEvent(e){if(i.Types.TraceEvents.isProfileCall(e))return`p-${e.pid}-${e.tid}-${i.Types.TraceEvents.SampleIndex(e.sampleIndex)}-${e.nodeId}`;const t=i.Helpers.SyntheticEvents.SyntheticEventsManager.getActiveManager().getRawTraceEvents(),n=i.Types.TraceEvents.isSyntheticBasedEvent(e)?`s-${t.indexOf(e.rawSourceEvent)}`:`r-${t.indexOf(e)}`;return n.length<3?null:n}eventForKey(e,t){const n=i.Types.File.traceEventKeyToValues(e);if(De.isProfileCallKey(n))return this.#T(n,t);if(De.isSyntheticEventKey(n)){const e=i.Helpers.SyntheticEvents.SyntheticEventsManager.getActiveManager().getSyntheticTraceEvents().at(n.rawIndex);if(!e)throw new Error(`Attempted to get a synthetic event from an unknown raw event index: ${n.rawIndex}`);return e}if(De.isRawEventKey(n)){return i.Helpers.SyntheticEvents.SyntheticEventsManager.getActiveManager().getRawTraceEvents()[n.rawIndex]}throw new Error(`Unknown trace event serializable key values: ${n.join("-")}`)}static isProfileCallKey(e){return"p"===e.type}static isRawEventKey(e){return"r"===e.type}static isSyntheticEventKey(e){return"s"===e.type}#T(e,t){const i=this.#v.get(e);if(i)return i;const n=t.Renderer.processes.get(e.processID)?.threads.get(e.threadID)?.profileCalls;if(!n)throw new Error(`Unknown profile call serializable key: ${e}`);const r=c.ArrayUtilities.nearestIndexFromBeginning(n,(t=>t.sampleIndex>=e.sampleIndex&&t.nodeId>=e.protocol)),a=null!==r&&n.at(r);if(!a)throw new Error(`Unknown profile call serializable key: ${e}`);return this.#v.set(e,a),a}}var Ae=Object.freeze({__proto__:null,EventsSerializer:De});const Ne=[];let Be;class He extends Event{overlay;action;static eventName="annotationmodifiedevent";constructor(e,t){super(He.eventName),this.overlay=e,this.action=t}}class Ue extends EventTarget{#f;#y;#b=null;#t;#w;#S;static activeManager(){return Be}static initAndActivateModificationsManager(e,t){Ne[t]&&(Be=Ne[t],Ue.activeManager()?.applyModificationsIfPresent());const i=e.traceParsedData(t);if(!i)throw new Error("ModificationsManager was initialized without a corresponding trace data");const n=i.Meta.traceBounds,r=e.rawTraceEvents(t);if(!r)throw new Error("ModificationsManager was initialized without a corresponding raw trace events array");const a=e.syntheticTraceEventsManager(t);if(!a)throw new Error("ModificationsManager was initialized without a corresponding SyntheticEventsManager");const s=e.metadata(t),o=new Ue({traceParsedData:i,traceBounds:n,rawTraceEvents:r,modifications:s?.modifications,syntheticEvents:a.getSyntheticTraceEvents()});return Ne[t]=o,Be=o,Ue.activeManager()?.applyModificationsIfPresent(),this.activeManager()}constructor({traceParsedData:e,traceBounds:t,modifications:i}){super();const n=new Map([...e.Samples.entryToNode,...e.Renderer.entryToNode]);this.#f=new Re(n),this.#y=new s.Breadcrumbs.Breadcrumbs(t),this.#b=i||null,this.#t=e,this.#w=new De,this.#S=new Map}getEntriesFilter(){return this.#f}getTimelineBreadcrumbs(){return this.#y}createAnnotation(e){const t=this.#E(e);this.#S.set(e,t),this.dispatchEvent(new He(t,"Add"))}#E(e){switch(e.type){case"ENTRY_LABEL":return{type:"ENTRY_LABEL",entry:e.entry,label:e.label};case"TIME_RANGE":return{type:"TIME_RANGE",label:e.label,showDuration:!0,bounds:e.bounds};case"ENTRIES_LINK":return{type:"ENTRIES_LINK",entryFrom:e.entryFrom,entryTo:e.entryTo};default:c.assertNever(e,"Overlay for provided annotation cannot be created")}}removeAnnotation(e){const t=this.#S.get(e);t?(this.#S.delete(e),this.dispatchEvent(new He(t,"Remove"))):console.warn("Overlay for deleted Annotation does not exist")}removeAnnotationOverlay(e){const t=this.getAnnotationByOverlay(e);t?(this.#S.delete(t),this.dispatchEvent(new He(e,"Remove"))):console.warn("Annotation for deleted Overlay does not exist")}updateAnnotation(e){const t=this.#S.get(e);t&&y.Overlays.isTimeRangeLabel(t)&&i.Types.File.isTimeRangeAnnotation(e)?(t.label=e.label,t.bounds=e.bounds,this.dispatchEvent(new He(t,"UpdateTimeRange"))):t&&y.Overlays.isEntriesLink(t)&&i.Types.File.isEntriesLinkAnnotation(e)?(t.entryTo=e.entryTo,this.dispatchEvent(new He(t,"UpdateLinkToEntry"))):console.error("Annotation could not be updated")}updateAnnotationOverlay(e){const t=this.getAnnotationByOverlay(e);t?(("ENTRY_LABEL"===e.type&&"ENTRY_LABEL"===t.type||"TIME_RANGE"===e.type&&"TIME_RANGE"===t.type)&&(t.label=e.label),this.dispatchEvent(new He(e,"UpdateLabel"))):console.warn("Annotation for updated Overlay does not exist")}getAnnotationByOverlay(e){for(const[t,i]of this.#S.entries())if(i===e)return t;return null}getAnnotations(){return[...this.#S.keys()]}getOverlays(){return[...this.#S.values()]}toJSON(){const e=this.#f.invisibleEntries().map((e=>this.#w.keyForEvent(e))).filter((e=>null!==e)),t=this.#f.expandableEntries().map((e=>this.#w.keyForEvent(e))).filter((e=>null!==e));return this.#b={entriesModifications:{hiddenEntries:e,expandableEntries:t},initialBreadcrumb:this.#y.initialBreadcrumb,annotations:this.#C()},this.#b}#C(){const e=this.getAnnotations(),t=[],n=[];for(let r=0;r<e.length;r++){const a=e[r];if(i.Types.File.isEntryLabelAnnotation(a)){const e=this.#w.keyForEvent(a.entry);e&&t.push({entry:e,label:a.label})}else i.Types.File.isTimeRangeAnnotation(a)&&n.push({bounds:a.bounds,label:a.label})}return{entryLabels:t,labelledTimeRanges:n}}applyModificationsIfPresent(){const e=this.#b;if(!e||!e.annotations)return;const t=e.entriesModifications.hiddenEntries,i=e.entriesModifications.expandableEntries;this.#k(t,i),this.#y.setInitialBreadcrumbFromLoadedModifications(e.initialBreadcrumb);(e.annotations.entryLabels??[]).forEach((e=>{this.createAnnotation({type:"ENTRY_LABEL",entry:this.#w.eventForKey(e.entry,this.#t),label:e.label})}));(e.annotations.labelledTimeRanges??[]).forEach((e=>{this.createAnnotation({type:"TIME_RANGE",bounds:e.bounds,label:e.label})}))}#k(e,t){const i=e.map((e=>this.#w.eventForKey(e,this.#t))),n=t.map((e=>this.#w.eventForKey(e,this.#t)));this.#f.setHiddenAndExpandableEntries(i,n)}}var We=Object.freeze({__proto__:null,AnnotationModifiedEvent:He,ModificationsManager:Ue});function*Oe(e){if(yield"[\n",e.length>0){const t=e[Symbol.iterator](),i=t.next().value;yield` ${JSON.stringify(i)}`;let n=1e4,r="";for(const e of t)r+=`,\n ${JSON.stringify(e)}`,n--,0===n&&(yield r,n=1e4,r="");yield r}yield"\n]"}function*_e(e,t){yield`{"metadata": ${JSON.stringify(t||{},null,2)}`,yield',\n"traceEvents": ',yield*Oe(e),yield"}\n"}function Ve(e){return JSON.stringify(e)}var Ge=Object.freeze({__proto__:null,arrayOfObjectsJsonGenerator:Oe,traceJsonGenerator:_e,cpuprofileJsonGenerator:Ve});class ze extends Event{static eventName="nodenamesupdated";constructor(){super(ze.eventName,{composed:!0,bubbles:!0})}}const je=new Map;class qe extends EventTarget{#x;#P=!1;#I=new Set;constructor(e){super(),this.#x=e}static clearResolvedNodeNames(){je.clear()}static resolvedNodeNameForEntry(e){return je.get(e.pid)?.get(e.tid)?.get(e.nodeId)??null}static storeResolvedNodeNameForEntry(e,t,i,n){const r=je.get(e)||new Map,a=r.get(t)||new Map;a.set(i,n),r.set(t,a),je.set(e,r)}async install(){if(this.#x.Samples){for(const e of this.#x.Samples.profilesInProcess.values())for(const[t,i]of e){const e=i.parsedProfile.nodes();if(!e||0===e.length)continue;const r=this.#M(t),a=r?.model(n.DebuggerModel.DebuggerModel);if(a)for(const t of e){const e=a.scriptForId(String(t.callFrame.scriptId));(!e||e.sourceMapURL)&&this.#I.add(a)}}for(const e of this.#I)e.sourceMapManager().addEventListener(n.SourceMapManager.Events.SourceMapAttached,this.#L,this);await this.#R()}}uninstall(){for(const e of this.#I)e.sourceMapManager().removeEventListener(n.SourceMapManager.Events.SourceMapAttached,this.#L,this);this.#I.clear()}async#R(){if(this.#x.Samples){for(const[e,t]of this.#x.Samples.profilesInProcess)for(const[i,n]of t){const t=n.parsedProfile.nodes()??[],r=this.#M(i);if(r)for(const n of t){const t=await b.NamesResolver.resolveProfileFrameFunctionName(n.callFrame,r);n.setFunctionName(t),qe.storeResolvedNodeNameForEntry(e,i,n.id,t)}}this.dispatchEvent(new ze)}}#L(){this.#P||(this.#P=!0,setTimeout((async()=>{this.#P=!1,await this.#R()}),500))}#M(e){const t=this.#x.Workers.workerIdByThread.get(e);return t?n.TargetManager.TargetManager.instance().targetById(t):n.TargetManager.TargetManager.instance().primaryPageTarget()}}var $e=Object.freeze({__proto__:null,NodeNamesUpdated:ze,SourceMapsResolver:qe});const Je={tracingNotSupported:"Performance trace recording not supported for this type of target"},Ke=e.i18n.registerUIStrings("panels/timeline/TimelineController.ts",Je),Ye=e.i18n.getLocalizedString.bind(void 0,Ke);class Xe{primaryPageTarget;rootTarget;tracingManager;#F=[];#D=null;client;tracingCompleteCallback;constructor(e,t,n){this.primaryPageTarget=t,this.rootTarget=e,this.tracingManager=e.model(i.TracingManager.TracingManager),this.client=n}async dispose(){this.tracingManager&&await this.tracingManager.reset()}async startRecording(e){function t(e){return"disabled-by-default-"+e}const r=[a.Runtime.experiments.isEnabled("timeline-show-all-events")?"*":"-*",i.Types.TraceEvents.Categories.Console,i.Types.TraceEvents.Categories.Loading,i.Types.TraceEvents.Categories.UserTiming,"devtools.timeline",t("devtools.timeline"),t("devtools.timeline.frame"),t("devtools.timeline.stack"),t("v8.compile"),t("v8.cpu_profiler.hires"),t("lighthouse"),"v8.execute","v8","cppgc","navigation,rail"];a.Runtime.experiments.isEnabled("timeline-v8-runtime-call-stats")&&e.enableJSSampling&&r.push(t("v8.runtime_stats_sampling")),e.enableJSSampling&&r.push(t("v8.cpu_profiler")),a.Runtime.experiments.isEnabled("timeline-invalidation-tracking")&&r.push(t("devtools.timeline.invalidationTracking")),e.capturePictures&&r.push(t("devtools.timeline.layers"),t("devtools.timeline.picture"),t("blink.graphics_context_annotations")),e.captureFilmStrip&&r.push(t("devtools.screenshot")),e.captureSelectorStats&&r.push(t("blink.debug")),a.Runtime.experiments.isEnabled("timeline-enhanced-traces")&&(r.push(t("devtools.target-rundown")),r.push(t("devtools.v8-source-rundown"))),a.Runtime.experiments.isEnabled("timeline-compiled-sources")&&r.push(t("devtools.v8-source-rundown-sources")),this.#D=Date.now();const s=await this.startRecordingWithCategories(r.join(","));return s.getError()&&(await this.waitForTracingToStop(!1),await n.TargetManager.TargetManager.instance().resumeAllTargets()),s}async stopRecording(){this.tracingManager&&this.tracingManager.stop(),this.client.loadingStarted(),await this.waitForTracingToStop(!0),await this.allSourcesFinished()}async waitForTracingToStop(e){const t=[];this.tracingManager&&e&&t.push(new Promise((e=>{this.tracingCompleteCallback=e}))),await Promise.all(t)}async startRecordingWithCategories(e){if(!this.tracingManager)throw new Error(Ye(Je.tracingNotSupported));await n.TargetManager.TargetManager.instance().suspendAllTargets("performance-timeline");const t=await this.tracingManager.start(this,e,"");return await this.warmupJsProfiler(),w.ExtensionServer.ExtensionServer.instance().profilingStarted(),t}async warmupJsProfiler(){const e=this.primaryPageTarget.model(n.RuntimeModel.RuntimeModel);e&&await e.agent.invoke_evaluate({expression:"(async function(){ await 1; })()",throwOnSideEffect:!0})}traceEventsCollected(e){this.#F.push(...e)}tracingComplete(){this.tracingCompleteCallback&&(this.tracingCompleteCallback(void 0),this.tracingCompleteCallback=null)}async allSourcesFinished(){this.client.processingStarted(),await this.finalizeTrace()}async finalizeTrace(){await n.TargetManager.TargetManager.instance().resumeAllTargets(),w.ExtensionServer.ExtensionServer.instance().profilingStopped(),await this.client.loadingComplete(this.#F,null,!1,this.#D,null),this.client.loadingCompleteForTest()}tracingBufferUsage(e){this.client.recordingProgress(e)}eventsRetrievalProgress(e){this.client.loadingProgress(e)}}var Ze=Object.freeze({__proto__:null,TimelineController:Xe});const Qe={jsHeap:"JS Heap",documents:"Documents",nodes:"Nodes",listeners:"Listeners",gpuMemory:"GPU Memory",ss:"[{PH1} – {PH2}]",noEventsFound:"No memory usage data found within selected events."},et=e.i18n.registerUIStrings("panels/timeline/CountersGraph.ts",Qe),tt=e.i18n.getLocalizedString.bind(void 0,et);class it extends u.Widget.VBox{delegate;calculator;header;toolbar;graphsContainer;canvasContainer;canvas;timelineGrid;counters;counterUI;countersByName;gpuMemoryCounter;#A=null;currentValuesBar;markerXPosition;#N=this.#B.bind(this);#H=document.createElement("div");#U=!1;constructor(e){super(),this.element.id="memory-graphs-container",this.delegate=e,this.calculator=new at,this.header=new u.Widget.HBox,this.header.element.classList.add("timeline-memory-header"),this.header.show(this.element),this.toolbar=new u.Toolbar.Toolbar("timeline-memory-toolbar"),this.header.element.appendChild(this.toolbar.element),this.graphsContainer=new u.Widget.VBox,this.graphsContainer.show(this.element);const t=new u.Widget.VBoxWithResizeCallback(this.resize.bind(this));t.show(this.graphsContainer.element),this.createCurrentValuesBar(),this.canvasContainer=t.element,this.canvasContainer.id="memory-graphs-canvas-container",this.canvas=document.createElement("canvas"),this.canvasContainer.appendChild(this.canvas),this.canvas.id="memory-counters-graph";const i=document.createElement("p");i.innerText=tt(Qe.noEventsFound),this.#H.classList.add("no-events-found"),this.#H.setAttribute("hidden","hidden"),this.#H.appendChild(i),this.canvasContainer.appendChild(this.#H),this.canvasContainer.addEventListener("mouseover",this.onMouseMove.bind(this),!0),this.canvasContainer.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.canvasContainer.addEventListener("mouseleave",this.onMouseLeave.bind(this),!0),this.canvasContainer.addEventListener("click",this.onClick.bind(this),!0),this.timelineGrid=new p.TimelineGrid.TimelineGrid,this.canvasContainer.appendChild(this.timelineGrid.dividersElement),this.counters=[],this.counterUI=[],this.countersByName=new Map,this.countersByName.set("jsHeapSizeUsed",this.createCounter(tt(Qe.jsHeap),"js-heap-size-used","hsl(220, 90%, 43%)",c.NumberUtilities.bytesToString)),this.countersByName.set("documents",this.createCounter(tt(Qe.documents),"documents","hsl(0, 90%, 43%)")),this.countersByName.set("nodes",this.createCounter(tt(Qe.nodes),"nodes","hsl(120, 90%, 43%)")),this.countersByName.set("jsEventListeners",this.createCounter(tt(Qe.listeners),"js-event-listeners","hsl(38, 90%, 43%)")),this.gpuMemoryCounter=this.createCounter(tt(Qe.gpuMemory),"gpu-memory-used-kb","hsl(300, 90%, 43%)",c.NumberUtilities.bytesToString),this.countersByName.set("gpuMemoryUsedKB",this.gpuMemoryCounter),h.TraceBounds.onChange(this.#N)}#B(e){if("RESET"===e.updateType||"VISIBLE_WINDOW"===e.updateType){const t=e.state.milli.timelineTraceWindow;this.calculator.setWindow(t.min,t.max),this.#W()}}setModel(e,t){if(this.#A=t,!t||!e)return;const n=i.Helpers.Timing.traceWindowMilliSeconds(e.Meta.traceBounds).min;this.calculator.setZeroTime(n);for(let e=0;e<this.counters.length;++e)this.counters[e].reset(),this.counterUI[e].reset();this.#W();let r=0;for(let e=0;e<t.length;++e){const n=t[e];if(!i.Types.TraceEvents.isTraceEventUpdateCounters(n))continue;r++;const a=n.args.data;if(!a)return;for(const e in a){const t=this.countersByName.get(e);if(t){const{startTime:r}=i.Helpers.Timing.eventTimingsMilliSeconds(n);t.appendSample(r,a[e])}}void 0!==a.gpuMemoryLimitKB&&this.gpuMemoryCounter.setLimit(a.gpuMemoryLimitKB)}this.#U=0===r}createCurrentValuesBar(){this.currentValuesBar=this.graphsContainer.element.createChild("div"),this.currentValuesBar.id="counter-values-bar"}createCounter(e,t,i,n){const r=new nt;return this.counters.push(r),this.counterUI.push(new rt(this,e,t,i,r,n)),r}resizerElement(){return this.header.element}resize(){const e=this.canvas.parentElement;this.canvas.width=e.clientWidth*window.devicePixelRatio,this.canvas.height=e.clientHeight*window.devicePixelRatio,this.calculator.setDisplayWidth(this.canvas.width),this.refresh()}#W(){u.UIUtils.invokeOnceAfterBatchUpdate(this,this.refresh)}draw(){this.clear(),this.#U?this.#H.removeAttribute("hidden"):this.#H.setAttribute("hidden","hidden");for(const e of this.counters)e.calculateVisibleIndexes(this.calculator),e.calculateXValues(this.canvas.width);for(const e of this.counterUI)e.drawGraph(this.canvas)}onClick(e){const t=e.x-this.canvasContainer.getBoundingClientRect().left;let i,n=1/0;for(const e of this.counterUI){if(!e.counter.times.length)continue;const r=e.recordIndexAt(t),a=Math.abs(t*window.devicePixelRatio-e.counter.x[r]);a<n&&(n=a,i=e.counter.times[r])}void 0!==i&&this.#A&&this.delegate.selectEntryAtTime(this.#A,i)}onMouseLeave(e){delete this.markerXPosition,this.clearCurrentValueAndMarker()}clearCurrentValueAndMarker(){for(let e=0;e<this.counterUI.length;e++)this.counterUI[e].clearCurrentValueAndMarker()}onMouseMove(e){const t=e.x-this.canvasContainer.getBoundingClientRect().left;this.markerXPosition=t,this.refreshCurrentValues()}refreshCurrentValues(){if(void 0!==this.markerXPosition)for(let e=0;e<this.counterUI.length;++e)this.counterUI[e].updateCurrentValue(this.markerXPosition)}refresh(){this.timelineGrid.updateDividers(this.calculator),this.draw(),this.refreshCurrentValues()}clear(){const e=this.canvas.getContext("2d");if(!e)throw new Error("Unable to get canvas context");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}class nt{times;values;x;minimumIndex;maximumIndex;maxTime;minTime;limitValue;constructor(){this.times=[],this.values=[],this.x=[],this.minimumIndex=0,this.maximumIndex=0,this.maxTime=0,this.minTime=0}appendSample(e,t){this.values.length&&this.values[this.values.length-1]===t||(this.times.push(e),this.values.push(t))}reset(){this.times=[],this.values=[]}setLimit(e){this.limitValue=e}calculateBounds(){let e,t;for(let i=this.minimumIndex;i<=this.maximumIndex;i++){const n=this.values[i];(void 0===t||n<t)&&(t=n),(void 0===e||n>e)&&(e=n)}return t=t||0,e=e||1,this.limitValue&&(e>.5*this.limitValue&&(e=Math.max(e,this.limitValue)),t=Math.min(t,this.limitValue)),{min:t,max:e}}calculateVisibleIndexes(e){const t=e.minimumBoundary(),i=e.maximumBoundary();this.minimumIndex=c.NumberUtilities.clamp(c.ArrayUtilities.upperBound(this.times,t,c.ArrayUtilities.DEFAULT_COMPARATOR)-1,0,this.times.length-1),this.maximumIndex=c.NumberUtilities.clamp(c.ArrayUtilities.lowerBound(this.times,i,c.ArrayUtilities.DEFAULT_COMPARATOR),0,this.times.length-1),this.minTime=t,this.maxTime=i}calculateXValues(e){if(!this.values.length)return;const t=e/(this.maxTime-this.minTime);this.x=new Array(this.values.length);for(let e=this.minimumIndex+1;e<=this.maximumIndex;e++)this.x[e]=t*(this.times[e]-this.minTime)}}class rt{countersPane;counter;formatter;setting;filter;range;value;graphColor;limitColor;graphYValues;verticalPadding;currentValueLabel;marker;constructor(e,t,i,n,a,s){this.countersPane=e,this.counter=a,this.formatter=s||c.NumberUtilities.withThousandsSeparator,this.setting=r.Settings.Settings.instance().createSetting("timeline-counters-graph-"+i,!0),this.setting.setTitle(t),this.filter=new u.Toolbar.ToolbarSettingCheckbox(this.setting,t),this.filter.inputElement.classList.add("-theme-preserve-input");const o=r.Color.parse(n);if(o){const e=o.setAlpha(.5).asString("rgba"),t=this.filter.element;e&&(t.style.backgroundColor=e),t.style.borderColor="transparent"}this.filter.inputElement.addEventListener("click",this.toggleCounterGraph.bind(this)),e.toolbar.appendToolbarItem(this.filter),this.range=this.filter.element.createChild("span","range"),this.value=e.currentValuesBar.createChild("span","memory-counter-value"),this.value.style.color=n,this.graphColor=n,o&&(this.limitColor=o.setAlpha(.3).asString("rgba")),this.graphYValues=[],this.verticalPadding=10,this.currentValueLabel=t,this.marker=e.canvasContainer.createChild("div","memory-counter-marker"),this.marker.style.backgroundColor=n,this.clearCurrentValueAndMarker()}reset(){this.range.textContent=""}setRange(e,t){const i=this.formatter(e),n=this.formatter(t);this.range.textContent=tt(Qe.ss,{PH1:i,PH2:n})}toggleCounterGraph(){this.value.classList.toggle("hidden",!this.filter.checked()),this.countersPane.refresh()}recordIndexAt(e){return c.ArrayUtilities.upperBound(this.counter.x,e*window.devicePixelRatio,c.ArrayUtilities.DEFAULT_COMPARATOR,this.counter.minimumIndex+1,this.counter.maximumIndex+1)-1}updateCurrentValue(e){if(!this.visible()||!this.counter.values.length||!this.counter.x)return;const t=this.recordIndexAt(e),i=c.NumberUtilities.withThousandsSeparator(this.counter.values[t]);this.value.textContent=`${this.currentValueLabel}: ${i}`;const n=this.graphYValues[t]/window.devicePixelRatio;this.marker.style.left=e+"px",this.marker.style.top=n+"px",this.marker.classList.remove("hidden")}clearCurrentValueAndMarker(){this.value.textContent="",this.marker.classList.add("hidden")}drawGraph(e){const t=e.getContext("2d");if(!t)throw new Error("Unable to get canvas context");const i=e.width,n=e.height-2*this.verticalPadding;if(n<=0)return void(this.graphYValues=[]);const r=this.verticalPadding,a=this.counter,s=a.values;if(!s.length)return;const o=a.calculateBounds(),l=o.min,c=o.max;if(this.setRange(l,c),!this.visible())return;const d=this.graphYValues,h=c-l,m=h?n/h:1;t.save(),t.lineWidth=window.devicePixelRatio,t.lineWidth%2&&t.translate(.5,.5),t.beginPath();let p=s[a.minimumIndex],u=Math.round(r+n-(p-l)*m);t.moveTo(0,u);let g=a.minimumIndex;for(;g<=a.maximumIndex;g++){const e=Math.round(a.x[g]);t.lineTo(e,u);const i=s[g];void 0!==i&&(p=i),u=Math.round(r+n-(p-l)*m),t.lineTo(e,u),d[g]=u}if(d.length=g,t.lineTo(i,u),t.strokeStyle=this.graphColor,t.stroke(),a.limitValue){const e=Math.round(r+n-(a.limitValue-l)*m);t.moveTo(0,e),t.lineTo(i,e),this.limitColor&&(t.strokeStyle=this.limitColor),t.stroke()}t.closePath(),t.restore()}visible(){return this.filter.checked()}}class at{minimumBoundaryInternal;maximumBoundaryInternal;workingArea;zeroTimeInternal;constructor(){this.minimumBoundaryInternal=0,this.maximumBoundaryInternal=0,this.workingArea=0,this.zeroTimeInternal=0}setZeroTime(e){this.zeroTimeInternal=e}computePosition(e){return(e-this.minimumBoundaryInternal)/this.boundarySpan()*this.workingArea}setWindow(e,t){this.minimumBoundaryInternal=e,this.maximumBoundaryInternal=t}setDisplayWidth(e){this.workingArea=e}formatValue(t,i){return e.TimeUtilities.preciseMillisToString(t-this.zeroTime(),i)}maximumBoundary(){return this.maximumBoundaryInternal}minimumBoundary(){return this.minimumBoundaryInternal}zeroTime(){return this.zeroTimeInternal}boundarySpan(){return this.maximumBoundaryInternal-this.minimumBoundaryInternal}}var st=Object.freeze({__proto__:null,CountersGraph:it,Counter:nt,CounterUI:rt,Calculator:at});function ot(e,t){const i=n.TargetManager.TargetManager.instance(),r=e.Workers.workerIdByThread.get(t.tid);return r?i.targetById(r):i.primaryPageTarget()}var lt=Object.freeze({__proto__:null,targetForEvent:ot});const ct=new CSSStyleSheet;ct.replaceSync(".token-variable{color:var(--sys-color-token-variable)}.token-property{color:var(--sys-color-token-property)}.token-type{color:var(--sys-color-token-type)}.token-variable-special{color:var(--sys-color-token-variable-special)}.token-definition{color:var(--sys-color-token-definition)}.token-builtin{color:var(--sys-color-token-builtin)}.token-number{color:var(--sys-color-token-number)}.token-string{color:var(--sys-color-token-string)}.token-string-special{color:var(--sys-color-token-string-special)}.token-atom{color:var(--sys-color-token-atom)}.token-keyword{color:var(--sys-color-token-keyword)}.token-comment{color:var(--sys-color-token-comment)}.token-meta{color:var(--sys-color-token-meta)}.token-invalid{color:var(--sys-color-error)}.token-tag{color:var(--sys-color-token-tag)}.token-attribute{color:var(--sys-color-token-attribute)}.token-attribute-value{color:var(--sys-color-token-attribute-value)}.token-inserted{color:var(--sys-color-token-inserted)}.token-deleted{color:var(--sys-color-token-deleted)}.token-heading{color:var(--sys-color-token-variable-special);font-weight:bold}.token-link{color:var(--sys-color-token-variable-special);text-decoration:underline}.token-strikethrough{text-decoration:strike-through}.token-strong{font-weight:bold}.token-emphasis{font-style:italic}\n/*# sourceURL=codeHighlighter.css */\n");const dt=new CSSStyleSheet;dt.replaceSync(".image-preview-container{background:transparent;text-align:center;border-spacing:0}.image-preview-container img{margin:6px 0;max-width:100px;max-height:100px;background-image:var(--image-file-checker);user-select:text;vertical-align:top;-webkit-user-drag:auto}.image-container{padding:0}.image-container > div{min-height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer}.image-container > div.start{justify-content:start}.image-preview-container .row{line-height:1.2;vertical-align:baseline}.image-preview-container .title{padding-right:0.5em;color:var(--sys-color-token-subtle);white-space:nowrap;&.start{text-align:start}&.center{text-align:end}}.image-preview-container .description{white-space:nowrap;text-align:left;color:var(--sys-color-on-surface)}.image-preview-container .description-link{max-width:20em}.image-preview-container .source-link{white-space:normal;word-break:break-all;color:var(--sys-color-primary);cursor:pointer}\n/*# sourceURL=imagePreview.css */\n");const ht=new CSSStyleSheet;ht.replaceSync('*{box-sizing:border-box;min-width:0;min-height:0}:root{height:100%;overflow:hidden;--legacy-accent-color:#1a73e8;--legacy-accent-fg-color:#1a73e8;--legacy-accent-color-hover:#3b86e8;--legacy-accent-fg-color-hover:#1567d3;--legacy-active-control-bg-color:#5a5a5a;--legacy-focus-bg-color:hsl(214deg 40% 92%);--legacy-focus-ring-inactive-shadow-color:#e0e0e0;--legacy-input-validation-error:#db1600;--legacy-toolbar-hover-bg-color:#eaeaea;--legacy-selection-fg-color:#fff;--legacy-selection-bg-color:var(--legacy-accent-color);--legacy-selection-inactive-fg-color:#5a5a5a;--legacy-selection-inactive-bg-color:#dadada;--legacy-divider-border:1px solid var(--sys-color-divider);--legacy-focus-ring-inactive-shadow:0 0 0 1px var(--legacy-focus-ring-inactive-shadow-color);--legacy-focus-ring-active-shadow:0 0 0 1px var(--legacy-accent-color);--legacy-item-selection-bg-color:#cfe8fc;--legacy-item-selection-inactive-bg-color:#e0e0e0;--monospace-font-size:10px;--monospace-font-family:monospace;--source-code-font-size:11px;--source-code-font-family:monospace;--sys-motion-duration-short4:200ms;--sys-motion-duration-medium2:300ms;--sys-motion-duration-long2:500ms;--sys-motion-easing-emphasized:cubic-bezier(0.2,0,0,1);--sys-motion-easing-emphasized-decelerate:cubic-bezier(0.05,0.7,0.1,1);--sys-motion-easing-emphasized-accelerate:cubic-bezier(0.2,0,0,1);--default-font-family:".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande",sans-serif}.theme-with-dark-background{color-scheme:dark;--legacy-accent-color:#0e639c;--legacy-accent-fg-color:#ccc;--legacy-accent-fg-color-hover:#fff;--legacy-accent-color-hover:rgb(17 119 187);--legacy-active-control-bg-color:#cdcdcd;--legacy-focus-bg-color:hsl(214deg 19% 27%);--legacy-focus-ring-inactive-shadow-color:#5a5a5a;--legacy-toolbar-hover-bg-color:#202020;--legacy-selection-fg-color:#cdcdcd;--legacy-selection-inactive-fg-color:#cdcdcd;--legacy-selection-inactive-bg-color:hsl(0deg 0% 28%);--legacy-focus-ring-inactive-shadow:0 0 0 1px var(--legacy-focus-ring-inactive-shadow-color);--legacy-item-selection-bg-color:hsl(207deg 88% 22%);--legacy-item-selection-inactive-bg-color:#454545}body{height:100%;width:100%;position:relative;overflow:hidden;margin:0;cursor:default;font-family:var(--default-font-family);font-size:12px;tab-size:4;user-select:none;color:var(--sys-color-on-surface);background:var(--sys-color-cdt-base-container)}.platform-linux{--default-font-family:"Google Sans Text","Google Sans",system-ui,sans-serif}.platform-mac{--default-font-family:system-ui,sans-serif}.platform-windows{--default-font-family:system-ui,sans-serif}:focus{outline-width:0}.platform-mac,\n:host-context(.platform-mac){--monospace-font-size:11px;--monospace-font-family:monospace;--source-code-font-size:11px;--source-code-font-family:monospace}.platform-windows,\n:host-context(.platform-windows){--monospace-font-size:12px;--monospace-font-family:monospace;--source-code-font-size:12px;--source-code-font-family:monospace}.platform-linux,\n:host-context(.platform-linux){--monospace-font-size:11px;--monospace-font-family:"Noto Sans Mono","DejaVu Sans Mono",monospace;--source-code-font-size:11px;--source-code-font-family:"Noto Sans Mono","DejaVu Sans Mono",monospace}.monospace{font-family:var(--monospace-font-family);font-size:var(--monospace-font-size)!important}.source-code{font-family:var(--source-code-font-family);font-size:var(--source-code-font-size)!important;white-space:pre-wrap}.source-code .devtools-link.text-button{max-width:100%;overflow:hidden;text-overflow:ellipsis}img{-webkit-user-drag:none}iframe,\na img{border:none}.fill{position:absolute;top:0;left:0;right:0;bottom:0}iframe.fill{width:100%;height:100%}.widget{position:relative;flex:auto;contain:style}.hbox{display:flex;flex-direction:row!important;position:relative}.vbox{display:flex;flex-direction:column!important;position:relative}.view-container > .toolbar{border-bottom:1px solid var(--sys-color-divider)}.flex-auto{flex:auto}.flex-none{flex:none}.flex-centered{display:flex;align-items:center;justify-content:center}.overflow-auto{overflow:auto;background-color:var(--sys-color-cdt-base-container)}iframe.widget{position:absolute;width:100%;height:100%;left:0;right:0;top:0;bottom:0}.hidden{display:none!important}.highlighted-search-result{border-radius:1px;background-color:var(--sys-color-yellow-container);outline:1px solid var(--sys-color-yellow-container)}.link{cursor:pointer;text-decoration:underline;color:var(--sys-color-primary);outline-offset:2px}button,\ninput,\nselect{font-family:inherit;font-size:inherit}select option,\nselect optgroup,\ninput{background-color:var(--sys-color-cdt-base-container)}input{color:inherit;&[type="checkbox"]{position:relative;outline:none;display:flex;align-items:center;justify-content:center;&:hover::after,\n &:active::before{content:"";height:24px;width:24px;border-radius:var(--sys-shape-corner-full);position:absolute}&:not(.-theme-preserve){accent-color:var(--sys-color-primary-bright);color:var(--sys-color-on-primary)}&:not(:disabled):hover::after{background-color:var(--sys-color-state-hover-on-subtle)}&:not(:disabled):active::before{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:not(:disabled):focus-visible::before{content:"";height:15px;width:15px;border-radius:5px;position:absolute;border:2px solid var(--sys-color-state-focus-ring)}&.small:hover::after,\n &.small:active::before{height:12px;width:12px;border-radius:2px}}}input::placeholder{--override-input-placeholder-color:rgb(0 0 0/54%);color:var(--override-input-placeholder-color)}.theme-with-dark-background input::placeholder,\n:host-context(.theme-with-dark-background) input::placeholder{--override-input-placeholder-color:rgb(230 230 230/54%)}.harmony-input:not([type]),\n.harmony-input[type="number"],\n.harmony-input[type="text"]{padding:3px 6px;height:24px;border:1px solid var(--sys-color-neutral-outline);border-radius:4px;&.error-input,\n &:invalid{border-color:var(--sys-color-error)}&:not(.error-input):not(:invalid):focus{border-color:var(--sys-color-state-focus-ring)}&:not(.error-input):not(:invalid):hover:not(:focus){background:var(--sys-color-state-hover-on-subtle)}}.highlighted-search-result.current-search-result{--override-current-search-result-background-color:rgb(255 127 0/80%);border-radius:1px;padding:1px;margin:-1px;background-color:var(--override-current-search-result-background-color)}.dimmed{opacity:60%}.editing{box-shadow:var(--drop-shadow);background-color:var(--sys-color-cdt-base-container);text-overflow:clip!important;padding-left:2px;margin-left:-2px;padding-right:2px;margin-right:-2px;margin-bottom:-1px;padding-bottom:1px;opacity:100%!important}.editing,\n.editing *{color:var(--sys-color-on-surface)!important;text-decoration:none!important}.chrome-select{appearance:none;user-select:none;border:1px solid var(--sys-color-neutral-outline);border-radius:4px;color:var(--sys-color-on-surface);font:inherit;margin:0;outline:none;padding-right:20px;padding-left:6px;background-image:var(--image-file-arrow-drop-down-light);background-color:var(--sys-color-surface);background-position:right center;background-repeat:no-repeat;min-height:24px;min-width:80px}.chrome-select:disabled{opacity:38%}.theme-with-dark-background .chrome-select,\n:host-context(.theme-with-dark-background) .chrome-select{background-image:var(--image-file-arrow-drop-down-dark)}.chrome-select:enabled{&:hover{background-color:var(--sys-color-state-hover-on-subtle)}&:active{background-color:var(--sys-color-state-ripple-neutral-on-subtle)}&:focus{outline:2px solid var(--sys-color-state-focus-ring);outline-offset:2px}}@media (forced-colors: active) and (prefers-color-scheme: light){.chrome-select{background-image:var(--image-file-arrow-drop-down-light)}.theme-with-dark-background .chrome-select,\n :host-context(.theme-with-dark-background) .chrome-select{background-image:var(--image-file-arrow-drop-down-light)}}@media (forced-colors: active) and (prefers-color-scheme: dark){.chrome-select{background-image:var(--image-file-arrow-drop-down-dark)}.theme-with-dark-background .chrome-select,\n :host-context(.theme-with-dark-background) .chrome-select{background-image:var(--image-file-arrow-drop-down-dark)}}.chrome-select-label{margin:0 22px;flex:none}.chrome-select-label p p{margin-top:0;color:var(--sys-color-token-subtle)}.settings-select{margin:0}.chrome-select optgroup,\n.chrome-select option{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface)}.gray-info-message{text-align:center;font-style:italic;padding:6px;color:var(--sys-color-token-subtle);white-space:nowrap}span[is="dt-icon-label"]{flex:none}.full-widget-dimmed-banner a{color:inherit}.full-widget-dimmed-banner{color:var(--sys-color-token-subtle);background-color:var(--sys-color-cdt-base-container);display:flex;justify-content:center;align-items:center;text-align:center;padding:20px;position:absolute;top:0;right:0;bottom:0;left:0;font-size:13px;overflow:auto;z-index:500}.dot::before{content:var(--image-file-empty);width:6px;height:6px;border-radius:50%;outline:1px solid var(--icon-gap-default);left:9px;position:absolute;top:9px;z-index:1}.green::before{background-color:var(--sys-color-green-bright)}.purple::before{background-color:var(--sys-color-purple-bright)}.expandable-inline-button{background-color:var(--sys-color-cdt-base-container);color:var(--sys-color-on-surface);cursor:pointer;border-radius:3px}.undisplayable-text,\n.expandable-inline-button{border:none;padding:1px 3px;margin:0 2px;font-size:11px;font-family:sans-serif;white-space:nowrap;display:inline-block}.undisplayable-text::after,\n.expandable-inline-button::after{content:attr(data-text)}.undisplayable-text{color:var(--sys-color-state-disabled);font-style:italic}.expandable-inline-button:hover,\n.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-hover-on-subtle)}.expandable-inline-button:focus-visible{background-color:var(--sys-color-state-focus-highlight)}::selection{background-color:var(--sys-color-tonal-container)}.reload-warning{align-self:center;margin-left:10px}button.link{border:none;background:none;padding:3px}button.link:focus-visible{outline:2px solid var(--sys-color-state-focus-ring);outline-offset:2px;border-radius:var(--sys-shape-corner-full)}.theme-with-dark-background button.link:focus-visible,\n:host-context(.theme-with-dark-background) button.link:focus-visible{--override-link-focus-background-color:rgb(230 230 230/8%)}@media (forced-colors: active){.dimmed,\n .chrome-select:disabled{opacity:100%}.harmony-input:not([type]),\n .harmony-input[type="number"],\n .harmony-input[type="text"]{border:1px solid ButtonText}.harmony-input:not([type]):focus,\n .harmony-input[type="number"]:focus,\n .harmony-input[type="text"]:focus{border:1px solid Highlight}}input.custom-search-input::-webkit-search-cancel-button{appearance:none;width:16px;height:15px;margin-right:0;opacity:70%;mask-image:var(--image-file-cross-circle-filled);mask-position:center;mask-repeat:no-repeat;mask-size:99%;background-color:var(--icon-default)}input.custom-search-input::-webkit-search-cancel-button:hover{opacity:99%}.spinner::before{display:block;width:var(--dimension,24px);height:var(--dimension,24px);border:var(--override-spinner-size,3px) solid var(--override-spinner-color,var(--sys-color-token-subtle));border-radius:12px;clip:rect(0,var(--clip-size,15px),var(--clip-size,15px),0);content:"";position:absolute;animation:spinner-animation 1s linear infinite;box-sizing:border-box}@keyframes spinner-animation{from{transform:rotate(0)}to{transform:rotate(360deg)}}.adorner-container{display:inline-flex;vertical-align:middle}.adorner-container.hidden{display:none}.adorner-container devtools-adorner{margin-left:3px}:host-context(.theme-with-dark-background) devtools-adorner{--override-adorner-border-color:var(--sys-color-tonal-outline);--override-adorner-focus-border-color:var(--sys-color-state-focus-ring);--override-adorner-active-background-color:var(--sys-color-state-riple-neutral-on-subtle)}.panel{display:flex;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;background-color:var(--sys-color-cdt-base-container)}.panel-sidebar{overflow-x:hidden;background-color:var(--sys-color-cdt-base-container)}iframe.extension{flex:auto;width:100%;height:100%}iframe.panel.extension{display:block;height:100%}@media (forced-colors: active){:root{--legacy-accent-color:Highlight;--legacy-focus-ring-inactive-shadow-color:ButtonText}}\n/*# sourceURL=inspectorCommon.css */\n');const mt={interactions:"Interactions"},pt=e.i18n.registerUIStrings("panels/timeline/InteractionsTrackAppender.ts",mt),ut=e.i18n.getLocalizedString.bind(void 0,pt);class gt{appenderName="Interactions";#O;#e;#t;constructor(e,t,i){this.#e=e,this.#O=i,this.#t=t}appendTrackAtLevel(e,t){return 0===this.#t.UserInteractions.interactionEvents.length?e:(this.#i(e,t),this.#_(e))}#i(e,t){const i=W({collapsible:this.#t.UserInteractions.interactionEvents.length>0,useDecoratorsForOverview:!0}),n=O("interactions",e,ut(mt.interactions),i,!0,t);this.#e.registerTrackForGroup(n,this)}#_(e){const{interactionEventsWithNoNesting:t,interactionsOverThreshold:i}=this.#t.UserInteractions;return this.#e.appendEventsAtLevel(t,e,this,((e,t)=>{i.has(e)&&void 0!==t&&this.#V(e,t)}))}#V(e,t){const n=this.#e.getFlameChartTimelineData().entryDecorations[t]||[];n.push({type:"CANDY",startAtTime:i.Handlers.ModelHandlers.UserInteractions.LONG_INTERACTION_THRESHOLD,endAtTime:e.processingEnd},{type:"WARNING_TRIANGLE",customEndTime:e.processingEnd}),this.#e.getFlameChartTimelineData().entryDecorations[t]=n}colorForEvent(e){let t=this.titleForEvent(e);return i.Types.TraceEvents.isSyntheticInteractionEvent(e)&&(t+=e.interactionId),this.#O.colorForID(t)}titleForEvent(e){return i.Types.TraceEvents.isSyntheticInteractionEvent(e)?vt(e):e.name}highlightedEntryInfo(e){return{title:this.titleForEvent(e),formattedTime:_(e.dur)}}}function vt(e){const t=i.Handlers.ModelHandlers.UserInteractions.categoryOfInteraction(e);return"OTHER"===t?"Other":"KEYBOARD"===t?"Keyboard":"POINTER"===t?"Pointer":e.type}var Tt=Object.freeze({__proto__:null,InteractionsTrackAppender:gt,titleForInteractionEvent:vt});const ft=Symbol("SelectionRange");class yt{startTime;endTime;object;constructor(e,t,i){this.startTime=e,this.endTime=t,this.object=i}static isFrameObject(e){return e instanceof i.Handlers.ModelHandlers.Frames.TimelineFrame}static fromFrame(e){return new yt(i.Helpers.Timing.microSecondsToMilliseconds(e.startTime),i.Helpers.Timing.microSecondsToMilliseconds(e.endTime),e)}static isSyntheticNetworkRequestDetailsEventSelection(e){return!yt.isFrameObject(e)&&!yt.isRangeSelection(e)&&i.Types.TraceEvents.isSyntheticNetworkRequestEvent(e)}static isNetworkEventSelection(e){return!yt.isFrameObject(e)&&!yt.isRangeSelection(e)&&i.Types.TraceEvents.isNetworkTrackEntry(e)}static isTraceEventSelection(e){return!yt.isFrameObject(e)&&!yt.isRangeSelection(e)&&!i.Types.TraceEvents.isSyntheticNetworkRequestEvent(e)}static fromTraceEvent(e){const{startTime:t,endTime:n}=i.Helpers.Timing.eventTimingsMilliSeconds(e);return new yt(t,i.Types.Timing.MilliSeconds(n||t+1),e)}static isRangeSelection(e){return e===ft}static fromRange(e,t){return new yt(i.Types.Timing.MilliSeconds(e),i.Types.Timing.MilliSeconds(t),ft)}}var bt=Object.freeze({__proto__:null,TimelineSelection:yt});const wt={emptyPlaceholder:"{PH1}",timestamp:"Timestamp",interactionID:"ID",inputDelay:"Input delay",processingDuration:"Processing duration",presentationDelay:"Presentation delay",compile:"Compile",parse:"Parse",sS:"{PH1}: {PH2}",sCollected:"{PH1} collected",sSs:"{PH1} [{PH2}…{PH3}]",sSSquareBrackets:"{PH1} [{PH2}…]",learnMore:"Learn more",compilationCacheStatus:"Compilation cache status",compilationCacheSize:"Compilation cache size",compilationCacheKind:"Compilation cache kind",scriptLoadedFromCache:"script loaded from cache",failedToLoadScriptFromCache:"failed to load script from cache",scriptNotEligibleToBeLoadedFromCache:"script not eligible",totalTime:"Total Time",selfTime:"Self Time",collected:"Collected",function:"Function",timerId:"Timer ID",timeout:"Timeout",repeats:"Repeats",callbackId:"Callback ID",module:"Module",script:"Script",streamed:"Streamed",eagerCompile:"Compiling all functions eagerly",url:"Url",producedCacheSize:"Produced Cache Size",consumedCacheSize:"Consumed Cache Size",location:"Location",sSCurlyBrackets:"({PH1}, {PH2})",dimensions:"Dimensions",sSDimensions:"{PH1} × {PH2}",layerRoot:"Layer Root",ownerElement:"Owner Element",imageUrl:"Image URL",stylesheetUrl:"Stylesheet URL",elementsAffected:"Elements Affected",nodesThatNeedLayout:"Nodes That Need Layout",sOfS:"{PH1} of {PH2}",layoutRoot:"Layout root",message:"Message",callbackFunction:"Callback Function",state:"State",range:"Range",allottedTime:"Allotted Time",invokedByTimeout:"Invoked by Timeout",type:"Type",size:"Size",details:"Details",cumulativeLayoutShifts:"Cumulative Layout Shifts",evolvedClsLink:"evolved",sCLSInformation:"{PH1} can result in poor user experiences. It has recently {PH2}.",warning:"Warning",score:"Score",cumulativeScore:"Cumulative Score",currentClusterScore:"Current Cluster Score",currentClusterId:"Current Cluster ID",hadRecentInput:"Had recent input",yes:"Yes",no:"No",movedFrom:"Moved from",movedTo:"Moved to",relatedNode:"Related Node",preview:"Preview",aggregatedTime:"Aggregated Time",duration:"Duration",initiatorStackTrace:"Initiator Stack Trace",initiatedBy:"Initiated by",initiatorFor:"Initiator for",traceEvent:"Trace Event",timerInstalled:"Timer Installed",animationFrameRequested:"Animation Frame Requested",idleCallbackRequested:"Idle Callback Requested",recalculationForced:"Recalculation Forced",firstLayoutInvalidation:"First Layout Invalidation",layoutForced:"Layout Forced",stackTrace:"Stack Trace",invalidations:"Invalidations ({PH1} total)",pendingFor:"Pending for",firstInvalidated:"First Invalidated",paintProfiler:"Paint Profiler",sAtS:"{PH1} at {PH2}",sSelf:"{PH1} (self)",sChildren:"{PH1} (children)",timeSpentInRendering:"Time spent in rendering",frame:"Frame",sAtSParentheses:"{PH1} (at {PH2})",UnknownNode:"[ unknown node ]",invalidationWithCallFrame:"{PH1} at {PH2}",outsideBreadcrumbRange:"(outside of the breadcrumb range)",entryIsHidden:"(entry is hidden)",selectorStatsTitle:"Selector Stats",sSelectorStatsInfo:'Select "{PH1}" to collect detailed CSS selector matching statistics.',description:"Description"},St=e.i18n.registerUIStrings("panels/timeline/TimelineUIUtils.ts",wt),Et=e.i18n.getLocalizedString.bind(void 0,St);let Ct,kt;class xt{static frameDisplayName(e){if(!E.TimelineJSProfile.TimelineJSProfileProcessor.isNativeRuntimeFrame(e))return u.UIUtils.beautifyFunctionName(e.functionName);switch(E.TimelineJSProfile.TimelineJSProfileProcessor.nativeGroup(e.functionName)){case"Compile":return Et(wt.compile);case"Parse":return Et(wt.parse)}return e.functionName}static testContentMatching(e,t,n){const r=[xt.eventStyle(e).title];if(i.Types.TraceEvents.isProfileCall(e)&&(n&&n.Samples?r.push(i.Handlers.ModelHandlers.Samples.getProfileCallFunctionName(n.Samples,e)):r.push(e.callFrame.functionName)),n){const t=i.Extras.URLForEntry.get(n,e);t&&r.push(t)}!function e(t,i){if(!i)return;for(const n in t){const a=t[n];"string"==typeof a?r.push(a):"number"==typeof a?r.push(String(a)):"object"==typeof a&&null!==a&&e(a,i-1)}}(e.args,2);const a=r.join("|").match(t);return!!a&&a.length>0}static eventStyle(e){if(i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)||i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.UserTiming))return new oe(e.name,pe().scripting);if(i.Types.TraceEvents.isProfileCall(e)&&"(idle)"===e.callFrame.functionName)return new oe(e.name,pe().idle);const t=new oe(e.name,pe().other);return he(e.name)||t}static eventColor(e){if(i.Types.TraceEvents.isProfileCall(e)){const t=e.callFrame;if(xt.isUserFrame(t))return xt.colorForId(t.url)}if(i.Types.Extensions.isSyntheticExtensionEntry(e))return P.ExtensionUI.extensionEntryColor(e);let t=xt.eventStyle(e).category.getComputedColorValue();if("v8.parseOnBackgroundWaiting"===e.name&&(t=pe().scripting.getComputedColorValue(),!t))throw new Error("Unable to parse color from getCategoryStyles().scripting.color");return t}static eventTitle(e){if(i.Types.TraceEvents.isProfileCall(e)){return qe.resolvedNodeNameForEntry(e)||xt.frameDisplayName(e.callFrame)}if("EventTiming"===e.name&&i.Types.TraceEvents.isSyntheticInteractionEvent(e))return vt(e);const t=xt.eventStyle(e).title;return i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)?t:i.Types.TraceEvents.isTraceEventTimeStamp(e)?Et(wt.sS,{PH1:t,PH2:e.args.data.message}):i.Types.TraceEvents.isTraceEventAnimation(e)&&e.args.data.name?Et(wt.sS,{PH1:t,PH2:e.args.data.name}):i.Types.TraceEvents.isTraceEventDispatch(e)?Et(wt.sS,{PH1:t,PH2:e.args.data.type}):t}static isUserFrame(e){return"0"!==e.scriptId&&!(e.url&&e.url.startsWith("native "))}static async buildDetailsTextForTraceEvent(e,t){let n;const r=e.args,a=e.args?.data;switch(e.name){case"GCEvent":case"MajorGC":case"MinorGC":{const e=r.usedHeapSizeBefore-r.usedHeapSizeAfter;n=Et(wt.sCollected,{PH1:c.NumberUtilities.bytesToString(e)});break}case"FunctionCall":{const{lineNumber:t,columnNumber:r}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(e);void 0!==t&&void 0!==r&&(n=a.url+":"+(t+1)+":"+(r+1));break}case"EventDispatch":n=a?a.type:null;break;case"Paint":{const e=xt.quadWidth(a.clip),t=xt.quadHeight(a.clip);e&&t&&(n=Et(wt.sSDimensions,{PH1:e,PH2:t}));break}case"ParseHTML":{const e=r.beginData.startLine,t=r.endData&&r.endData.endLine,i=S.ResourceUtils.displayNameForURL(r.beginData.url);n=t>=0?Et(wt.sSs,{PH1:i,PH2:e+1,PH3:t+1}):Et(wt.sSSquareBrackets,{PH1:i,PH2:e+1});break}case"V8.CompileModule":case"v8.produceModuleCache":n=S.ResourceUtils.displayNameForURL(r.fileName);break;case"V8.CompileScript":case"v8.produceCache":case"EvaluateScript":{const{lineNumber:t}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(e),r=a&&a.url;r&&(n=S.ResourceUtils.displayNameForURL(r)+":"+((t||0)+1));break}case"v8.wasm.compiledModule":case"v8.wasm.moduleCacheHit":{const e=r.url;e&&(n=S.ResourceUtils.displayNameForURL(e));break}case"v8.parseOnBackground":case"v8.deserializeOnBackground":case"XHRReadyStateChange":case"XHRLoad":{const e=a.url;e&&(n=S.ResourceUtils.displayNameForURL(e));break}case"TimeStamp":n=a.message;break;case"WebSocketCreate":case"WebSocketSendHandshakeRequest":case"WebSocketReceiveHandshakeResponse":case"WebSocketSend":case"WebSocketReceive":case"WebSocketDestroy":case"ResourceWillSendRequest":case"ResourceSendRequest":case"ResourceReceivedData":case"ResourceReceiveResponse":case"ResourceFinish":case"PaintImage":case"Decode Image":case"Decode LazyPixelRef":{const r=i.Extras.URLForEntry.get(t,e);r&&(n=S.ResourceUtils.displayNameForURL(r));break}case"EmbedderCallback":n=a.callbackName;break;case"Animation":n=a&&a.name;break;case"AsyncTask":n=a?a.name:null;break;default:n=i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)?null:function(){const t=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(e)?.at(0)??null;if(!t)return null;return t.url+":"+(t.lineNumber+1)+":"+(t.columnNumber+1)}()}return n}static async buildDetailsNodeForTraceEvent(e,t,n,r=!1,a){let s,o=null;const l=e.args,c=e.args?.data;switch(e.name){case"GCEvent":case"MajorGC":case"MinorGC":case"EventDispatch":case"Paint":case"Animation":case"EmbedderCallback":case"ParseHTML":case"v8.wasm.streamFromResponseCallback":case"v8.wasm.compiledModule":case"v8.wasm.moduleCacheHit":case"v8.wasm.cachedModule":case"v8.wasm.moduleCacheInvalid":case"WebSocketCreate":case"WebSocketSendHandshakeRequest":case"WebSocketReceiveHandshakeResponse":case"WebSocketSend":case"WebSocketReceive":case"WebSocketDestroy":s=await xt.buildDetailsTextForTraceEvent(e,a);break;case"PaintImage":case"Decode Image":case"Decode LazyPixelRef":case"XHRReadyStateChange":case"XHRLoad":case"ResourceWillSendRequest":case"ResourceSendRequest":case"ResourceReceivedData":case"ResourceReceiveResponse":case"ResourceFinish":{const t=i.Extras.URLForEntry.get(a,e);if(t){const e={tabStop:!0,showColumnNumber:!1,inlineFrameIndex:0};o=C.Linkifier.Linkifier.linkifyURL(t,e)}break}case"FunctionCall":{o=document.createElement("span"),i.Types.TraceEvents.isTraceEventFunctionCall(e)&&e.args.data&&i.Types.TraceEvents.objectIsTraceEventCallFrame(e.args.data)&&u.UIUtils.createTextChild(o,xt.frameDisplayName({...e.args.data,scriptId:String(e.args.data.scriptId)}));const{lineNumber:a,columnNumber:s}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(e),l=this.linkifyLocation({scriptId:c.scriptId,url:c.url,lineNumber:a||0,columnNumber:s,target:t,isFreshRecording:r,linkifier:n});l&&(u.UIUtils.createTextChild(o," @ "),o.appendChild(l));break}case"V8.CompileModule":case"v8.produceModuleCache":o=this.linkifyLocation({scriptId:null,url:l.fileName,lineNumber:0,columnNumber:0,target:t,isFreshRecording:r,linkifier:n});break;case"V8.CompileScript":case"v8.produceCache":case"EvaluateScript":{const a=c.url;if(a){const{lineNumber:s}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(e);o=this.linkifyLocation({scriptId:null,url:a,lineNumber:s||0,columnNumber:0,target:t,isFreshRecording:r,linkifier:n})}break}case"v8.deserializeOnBackground":case"v8.parseOnBackground":{const e=c.url;e&&(o=this.linkifyLocation({scriptId:null,url:e,lineNumber:0,columnNumber:0,target:t,isFreshRecording:r,linkifier:n}));break}case"ProfileCall":{if(o=document.createElement("span"),!i.Types.TraceEvents.isProfileCall(e))break;const a=qe.resolvedNodeNameForEntry(e)||xt.frameDisplayName(e.callFrame);u.UIUtils.createTextChild(o,a);const s=this.linkifyLocation({scriptId:e.callFrame.scriptId,url:e.callFrame.url,lineNumber:e.callFrame.lineNumber,columnNumber:e.callFrame.columnNumber,target:t,isFreshRecording:r,linkifier:n});s&&(u.UIUtils.createTextChild(o," @ "),o.appendChild(s));break}default:i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)||i.Types.TraceEvents.isTraceEventUserTiming(e)||i.Types.Extensions.isSyntheticExtensionEntry(e)?s=null:o=this.linkifyTopCallFrame(e,t,n,r)??null}return!o&&s&&(o=document.createTextNode(s)),o}static linkifyLocation(e){const{scriptId:t,url:i,lineNumber:n,columnNumber:r,isFreshRecording:a,linkifier:s,target:o}=e,l={lineNumber:n,columnNumber:r,showColumnNumber:!0,inlineFrameIndex:0,className:"timeline-details",tabStop:!0};return a?s.linkifyScriptLocation(o,t,i,n,l):C.Linkifier.Linkifier.linkifyURL(i,l)}static linkifyTopCallFrame(e,t,n,r=!1){let a=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(e)?.[0];if(i.Types.TraceEvents.isProfileCall(e)&&(a=e.callFrame),!a)return null;const s={className:"timeline-details",tabStop:!0,inlineFrameIndex:0,showColumnNumber:!0,columnNumber:a.columnNumber,lineNumber:a.lineNumber};return r?n.maybeLinkifyConsoleCallFrame(t,a,{showColumnNumber:!0,inlineFrameIndex:0}):C.Linkifier.Linkifier.linkifyURL(a.url,s)}static buildDetailsNodeForMarkerEvents(e){let t="https://web.dev/user-centric-performance-metrics/",i="page performance metrics";switch(e.name){case"largestContentfulPaint::Candidate":t="https://web.dev/lcp/",i="largest contentful paint";break;case"firstContentfulPaint":t="https://web.dev/first-contentful-paint/",i="first contentful paint"}return u.Fragment.html`<div>${u.XLink.XLink.create(t,Et(wt.learnMore),void 0,void 0,"learn-more")} about ${i}.</div>`}static buildConsumeCacheDetails(e,t){if("number"==typeof e.consumedCacheSize){t.appendTextRow(Et(wt.compilationCacheStatus),Et(wt.scriptLoadedFromCache)),t.appendTextRow(Et(wt.compilationCacheSize),c.NumberUtilities.bytesToString(e.consumedCacheSize));const i=e.cacheKind;i&&t.appendTextRow(Et(wt.compilationCacheKind),i)}else"cacheRejected"in e&&e.cacheRejected?t.appendTextRow(Et(wt.compilationCacheStatus),Et(wt.failedToLoadScriptFromCache)):t.appendTextRow(Et(wt.compilationCacheStatus),Et(wt.scriptNotEligibleToBeLoadedFromCache))}static async buildTraceEventDetails(t,n,o,l){const d=ot(t,n),{duration:h}=i.Helpers.Timing.eventTimingsMilliSeconds(n),m=At(n,t),p=await i.Extras.FetchNodes.extractRelatedDOMNodesFromEvent(t,n);if(d&&void 0===n[It]){let e=null;const r=i.Extras.URLForEntry.get(t,n);r?e=await C.ImagePreview.ImagePreview.build(d,r,!1,{imageAltText:C.ImagePreview.ImagePreview.defaultAltTextForImageURL(r),precomputedFeatures:void 0,align:"start"}):i.Types.TraceEvents.isTraceEventPaint(n)&&(e=await xt.buildPicturePreviewContent(t,n,d)),n[It]=e}let g;i.Types.TraceEvents.isSyntheticLayoutShift(n)&&(l=!1);const v=new Lt(ot(t,n),o),T=this.eventColor(n),f=t&&Dt(t,n)?xt.markerStyleForEvent(n).color:T;v.addSection(xt.eventTitle(n),f);const y=n.args,b=n.args?.data,w=t.Initiators.eventToInitiator.get(n)??null,S=t.Initiators.initiatorToEvents.get(n)??null;let E=null;if(t){const e=s.DetailsView.buildWarningElementsForEvent(n,t);for(const t of e)v.appendElementRow(Et(wt.warning),t,!0)}if(i.Helpers.Trace.eventHasCategory(n,i.Types.TraceEvents.Categories.UserTiming)){const i=Ft(n,t);v.appendTextRow(Et(wt.timestamp),e.TimeUtilities.preciseMillisToString(i,1))}if(l&&!Number.isNaN(h||0)&&0!==h&&(v.appendTextRow(Et(wt.totalTime),e.TimeUtilities.millisToString(h||0,!0)),v.appendTextRow(Et(wt.selfTime),e.TimeUtilities.millisToString(m,!0))),i.Types.TraceEvents.isTraceEventPerformanceMark(n)&&n.args.data?.detail){const e=xt.renderObjectJson(JSON.parse(n.args.data?.detail));v.appendElementRow(Et(wt.details),e)}if(i.Types.TraceEvents.isSyntheticUserTiming(n)&&n.args?.data?.beginEvent.args.detail){const e=xt.renderObjectJson(JSON.parse(n.args?.data?.beginEvent.args.detail));v.appendElementRow(Et(wt.details),e)}if(t.Meta.traceIsGeneric)return xt.renderEventJson(n,v),v.fragment;if(i.Types.TraceEvents.isTraceEventV8Compile(n)){if(E=n.args.data?.url,E){const{lineNumber:e,columnNumber:t}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(n);v.appendLocationRow(Et(wt.script),E,e||0,t)}Boolean(n.args.data?.eager)&&v.appendTextRow(Et(wt.eagerCompile),!0);const e=Boolean(n.args.data?.streamed);v.appendTextRow(Et(wt.streamed),e+(e?"":`: ${n.args.data?.notStreamedReason||""}`)),n.args.data&&xt.buildConsumeCacheDetails(n.args.data,v)}if(i.Types.Extensions.isSyntheticExtensionEntry(n))for(const[e,t]of n.args.properties||[])v.appendTextRow(e,t);i.Types.TraceEvents.isSyntheticServerTiming(n)&&n.args.data.desc&&v.appendTextRow(Et(wt.description),n.args.data.desc);const k=Boolean(t&&Ce.instance().recordingIsFresh(t));switch(n.name){case"GCEvent":case"MajorGC":case"MinorGC":{const e=y.usedHeapSizeBefore-y.usedHeapSizeAfter;v.appendTextRow(Et(wt.collected),c.NumberUtilities.bytesToString(e));break}case"ProfileCall":case"FunctionCall":{const e=await xt.buildDetailsNodeForTraceEvent(n,ot(t,n),o,k,t);e&&v.appendElementRow(Et(wt.function),e);break}case"TimerFire":case"TimerInstall":case"TimerRemove":v.appendTextRow(Et(wt.timerId),b.timerId),"TimerInstall"===n.name&&(v.appendTextRow(Et(wt.timeout),e.TimeUtilities.millisToString(b.timeout)),v.appendTextRow(Et(wt.repeats),!b.singleShot));break;case"FireAnimationFrame":v.appendTextRow(Et(wt.callbackId),b.id);break;case"V8.CompileModule":v.appendLocationRow(Et(wt.module),y.fileName,0);break;case"V8.CompileScript":break;case"v8.produceModuleCache":E=b&&b.url,v.appendTextRow(Et(wt.compilationCacheSize),c.NumberUtilities.bytesToString(b.producedCacheSize));break;case"v8.produceCache":if(E=b&&b.url,E){const{lineNumber:e,columnNumber:t}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(n);v.appendLocationRow(Et(wt.script),E,e||0,t)}v.appendTextRow(Et(wt.compilationCacheSize),c.NumberUtilities.bytesToString(b.producedCacheSize));break;case"EvaluateScript":if(E=b&&b.url,E){const{lineNumber:e,columnNumber:t}=i.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(n);v.appendLocationRow(Et(wt.script),E,e||0,t)}break;case"v8.wasm.streamFromResponseCallback":case"v8.wasm.compiledModule":case"v8.wasm.cachedModule":case"v8.wasm.moduleCacheHit":case"v8.wasm.moduleCacheInvalid":if(b){E=y.url,E&&v.appendTextRow(Et(wt.url),E);const e=y.producedCachedSize;e&&v.appendTextRow(Et(wt.producedCacheSize),e);const t=y.consumedCachedSize;t&&v.appendTextRow(Et(wt.consumedCacheSize),t)}break;case"Paint":{const e=b.clip;v.appendTextRow(Et(wt.location),Et(wt.sSCurlyBrackets,{PH1:e[0],PH2:e[1]}));const t=xt.quadWidth(e),i=xt.quadHeight(e);v.appendTextRow(Et(wt.dimensions),Et(wt.sSDimensions,{PH1:t,PH2:i}))}case"PaintSetup":case"Rasterize":case"ScrollLayer":g=Et(wt.layerRoot);break;case"PaintImage":case"Decode LazyPixelRef":case"Decode Image":case"Draw LazyPixelRef":if(g=Et(wt.ownerElement),E=i.Extras.URLForEntry.get(t,n),E){const e={tabStop:!0,showColumnNumber:!1,inlineFrameIndex:0};v.appendElementRow(Et(wt.imageUrl),C.Linkifier.Linkifier.linkifyURL(E,e))}break;case"ParseAuthorStyleSheet":if(E=b.styleSheetUrl,E){const e={tabStop:!0,showColumnNumber:!1,inlineFrameIndex:0};v.appendElementRow(Et(wt.stylesheetUrl),C.Linkifier.Linkifier.linkifyURL(E,e))}break;case"UpdateLayoutTree":{v.appendTextRow(Et(wt.elementsAffected),y.elementCount);const e=r.Settings.Settings.instance().createSetting("timeline-capture-selector-stats",!1);if(!e.get()){const t=document.createElement("span");t.textContent=Et(wt.sSelectorStatsInfo,{PH1:e.title()}),v.appendElementRow(Et(wt.selectorStatsTitle),t)}break}case"Layout":{const e=y.beginData;v.appendTextRow(Et(wt.nodesThatNeedLayout),Et(wt.sOfS,{PH1:e.dirtyObjects,PH2:e.totalObjects})),g=Et(wt.layoutRoot);break}case"ConsoleTime":v.appendTextRow(Et(wt.message),n.name);break;case"WebSocketCreate":case"WebSocketSendHandshakeRequest":case"WebSocketReceiveHandshakeResponse":case"WebSocketSend":case"WebSocketReceive":case"WebSocketDestroy":if(i.Types.TraceEvents.isWebSocketTraceEvent(n)){const e=s.DetailsView.buildRowsForWebSocketEvent(n,t);for(const{key:t,value:i}of e)v.appendTextRow(t,i)}break;case"EmbedderCallback":v.appendTextRow(Et(wt.callbackFunction),b.callbackName);break;case"Animation":"n"===n.ph&&v.appendTextRow(Et(wt.state),b.state);break;case"ParseHTML":{const e=y.beginData,t=e.startLine-1,i=y.endData?y.endData.endLine-1:void 0;E=e.url,E&&v.appendLocationRange(Et(wt.range),E,t,i);break}case"FireIdleCallback":v.appendTextRow(Et(wt.allottedTime),e.TimeUtilities.millisToString(b.allottedMilliseconds)),v.appendTextRow(Et(wt.invokedByTimeout),b.timedOut);case"RequestIdleCallback":case"CancelIdleCallback":v.appendTextRow(Et(wt.callbackId),b.id);break;case"EventDispatch":v.appendTextRow(Et(wt.type),b.type);break;case"largestContentfulPaint::Candidate":v.appendTextRow(Et(wt.type),String(b.type)),v.appendTextRow(Et(wt.size),String(b.size));case"firstPaint":case"firstContentfulPaint":case"MarkLoad":case"MarkDOMContent":{const r=Ft(n,t);v.appendTextRow(Et(wt.timestamp),e.TimeUtilities.preciseMillisToString(r,1)),i.Types.TraceEvents.isTraceEventMarkerEvent(n)&&v.appendElementRow(Et(wt.details),xt.buildDetailsNodeForMarkerEvents(n));break}case"EventTiming":{const r=await xt.buildDetailsNodeForTraceEvent(n,ot(t,n),o,k,t);if(r&&v.appendElementRow(Et(wt.details),r),i.Types.TraceEvents.isSyntheticInteractionEvent(n)){const t=e.TimeUtilities.formatMicroSecondsTime(n.inputDelay),i=e.TimeUtilities.formatMicroSecondsTime(n.mainThreadHandling),r=e.TimeUtilities.formatMicroSecondsTime(n.presentationDelay);v.appendTextRow(Et(wt.interactionID),n.interactionId),v.appendTextRow(Et(wt.inputDelay),t),v.appendTextRow(Et(wt.processingDuration),i),v.appendTextRow(Et(wt.presentationDelay),r)}break}case"LayoutShift":{if(!i.Types.TraceEvents.isSyntheticLayoutShift(n)){console.error("Unexpected type for LayoutShift event");break}const t=n,a=t.args.data,s=document.createElement("span"),o=u.XLink.XLink.create("https://web.dev/cls/",Et(wt.cumulativeLayoutShifts),void 0,void 0,"cumulative-layout-shifts"),l=u.XLink.XLink.create("https://web.dev/evolving-cls/",Et(wt.evolvedClsLink),void 0,void 0,"evolved-cls");if(s.appendChild(e.i18n.getFormatLocalizedString(St,wt.sCLSInformation,{PH1:o,PH2:l})),v.appendElementRow(Et(wt.warning),s,!0),!a)break;v.appendTextRow(Et(wt.score),a.score.toPrecision(4)),v.appendTextRow(Et(wt.cumulativeScore),a.cumulative_score.toPrecision(4)),v.appendTextRow(Et(wt.currentClusterId),t.parsedData.sessionWindowData.id),v.appendTextRow(Et(wt.currentClusterScore),t.parsedData.sessionWindowData.cumulativeWindowScore.toPrecision(4)),v.appendTextRow(Et(wt.hadRecentInput),b.had_recent_input?Et(wt.yes):Et(wt.no));for(const e of b.impacted_nodes){const t=new Z(e.old_rect),i=new Z(e.new_rect),n=await r.Linkifier.Linkifier.linkify(t),a=await r.Linkifier.Linkifier.linkify(i);v.appendElementRow(Et(wt.movedFrom),n),v.appendElementRow(Et(wt.movedTo),a)}break}default:{const e=await xt.buildDetailsNodeForTraceEvent(n,ot(t,n),o,k,t);e&&v.appendElementRow(Et(wt.details),e);break}}const x=p?.values()||[];for(const e of x)if(e){const t=await r.Linkifier.Linkifier.linkify(e);v.appendElementRow(g||Et(wt.relatedNode),t)}n[It]&&(v.addSection(Et(wt.preview)),v.appendElementRow("",n[It]));const P=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(n);(w||S||P||t?.Invalidations.invalidationsForEvent.get(n))&&await xt.generateCauses(n,v,t),a.Runtime.experiments.isEnabled("timeline-debug-mode")&&xt.renderEventJson(n,v);const I={};if(l&&t&&xt.aggregatedStatsForTraceEvent(I,t,n)){v.addSection(Et(wt.aggregatedTime));const e=xt.generatePieChart(I,xt.eventStyle(n).category,m);v.appendElementRow("",e)}return v.fragment}static statsForTimeRange(e,t,n){if(!e.length)return{idle:n-t};!function(e){if(e[Rt])return;const t={},n=[];let r=0;function a(e,i){let n=t[e];if(n||(n={time:[],value:[]},t[e]=n),n.time.length&&n.time[n.time.length-1]===i||r>i)return;const a=n.value.length>0?n.value[n.value.length-1]:0;n.value.push(a+i-r),n.time.push(i)}function s(e,t,i){e&&a(e,i),r=i,t&&a(t,i)}i.Helpers.Trace.forEachEvent(e,{onStartEvent:function(e){const{startTime:t}=i.Helpers.Timing.eventTimingsMilliSeconds(e),r=he(e.name)?.category.name||pe().other.name,a=n.length?n[n.length-1]:null;r!==a&&s(a||null,r,t),n.push(r)},onEndEvent:function(e){const{endTime:t}=i.Helpers.Timing.eventTimingsMilliSeconds(e),r=n.pop(),a=n.length?n[n.length-1]:null;r!==a&&s(r||null,a||null,t||0)}});const o=e;o[Rt]=t}(e);const r=function(e,t){const i=Object.assign({},e);for(const e in t)i[e]-=t[e];return i}(s(n),s(t)),a=Object.values(r).reduce(((e,t)=>e+t),0);return r.idle=Math.max(0,n-t-a),r;function s(t){const i={},n=e[Rt];for(const e in n){const r=n[e],a=c.ArrayUtilities.upperBound(r.time,t,c.ArrayUtilities.DEFAULT_COMPARATOR);let s;if(0===a)s=0;else if(a===r.time.length)s=r.value[r.value.length-1];else{const e=r.time[a-1],i=r.time[a],n=r.value[a-1];s=n+(r.value[a]-n)*(t-e)/(i-e)}i[e]=s}return i}}static renderEventJson(e,t){t.addSection(Et(wt.traceEvent));const i={args:e.args,...e},n=xt.renderObjectJson(i);t.appendElementRow("",n)}static renderObjectJson(e){const t=r.Settings.Settings.instance().moduleSetting("text-editor-indent").get().length,i=JSON.stringify(e,null,t).slice(0,1e4).replace(/{\n /,"{ "),n=document.createElement("div"),a=n.attachShadow({mode:"open"});a.adoptedStyleSheets=[ht,ct];const s=a.createChild("div");return s.classList.add("monospace","source-code"),s.textContent=i,x.CodeHighlighter.highlightNode(s,"text/javascript"),n}static stackTraceFromCallFrames(e){return{callFrames:e}}static async generateCauses(t,n,r){const{startTime:a}=i.Helpers.Timing.eventTimingsMilliSeconds(t);let s=Et(wt.initiatorStackTrace),o=Et(wt.stackTrace);switch(t.name){case"TimerFire":s=Et(wt.timerInstalled);break;case"FireAnimationFrame":s=Et(wt.animationFrameRequested);break;case"FireIdleCallback":s=Et(wt.idleCallbackRequested);break;case"UpdateLayoutTree":s=Et(wt.firstInvalidated),o=Et(wt.recalculationForced);break;case"Layout":s=Et(wt.firstLayoutInvalidation),o=Et(wt.layoutForced)}const l=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(t);l&&l.length&&(n.addSection(o),n.createChildStackTraceElement(xt.stackTraceFromCallFrames(l)));const c=r.Initiators.eventToInitiator.get(t),d=r.Initiators.initiatorToEvents.get(t),h=r.Invalidations.invalidationsForEvent.get(t);if(c){const t=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(c);t&&(n.addSection(s),n.createChildStackTraceElement(xt.stackTraceFromCallFrames(t.map((e=>({...e,scriptId:String(e.scriptId)}))))));const r=this.createEntryLink(c);n.appendElementRow(Et(wt.initiatedBy),r);const{startTime:o}=i.Helpers.Timing.eventTimingsMilliSeconds(c),l=a-o;n.appendTextRow(Et(wt.pendingFor),e.TimeUtilities.preciseMillisToString(l,1))}if(d){const e=document.createElement("div");d.map(((t,i)=>{e.appendChild(this.createEntryLink(t)),i<d.length-1&&e.append(" ")})),n.appendElementRow(wt.initiatorFor,e)}if(h&&h.length){const e=r.Invalidations.invalidationCountForEvent.get(t)??0;n.addSection(Et(wt.invalidations,{PH1:e})),await xt.generateInvalidationsList(h,n)}}static createEntryLink(e){const t=document.createElement("span"),i=h.TraceBounds.BoundsManager.instance().state();if(!i)return console.error("Tried to link to an entry without any traceBoundsState. This should never happen."),t;const n=i.micro.minimapTraceBounds.min>e.ts+(e.dur||0)||i.micro.minimapTraceBounds.max<e.ts,r=Ue.activeManager()?.getEntriesFilter().inEntryInvisible(e);return n||(t.classList.add("devtools-link"),u.ARIAUtils.markAsLink(t),t.tabIndex=0,t.addEventListener("click",(()=>{ar.instance().select(yt.fromTraceEvent(e))})),t.addEventListener("keydown",(t=>{"Enter"===t.key&&(ar.instance().select(yt.fromTraceEvent(e)),t.consume(!0))}))),t.textContent=r?this.eventTitle(e)+" "+Et(wt.entryIsHidden):n?this.eventTitle(e)+" "+Et(wt.outsideBreadcrumbRange):this.eventTitle(e),t}static async generateInvalidationsList(e,t){const{groupedByReason:i,backendNodeIds:r}=s.DetailsView.generateInvalidationsList(e);let a=null;const o=n.TargetManager.TargetManager.instance().primaryPageTarget(),l=o?.model(n.DOMModel.DOMModel);l&&(a=await l.pushNodesByBackendIdsToFrontend(r)),Object.keys(i).forEach((e=>{xt.generateInvalidationsForReason(e,i[e],a,t)}))}static generateInvalidationsForReason(t,a,s,o){function l(e){const t=e.args.data.nodeId&&s?s.get(e.args.data.nodeId):null;if(t){const e=document.createElement("span");return r.Linkifier.Linkifier.linkify(t).then((t=>e.appendChild(t))),e}if(e.args.data.nodeName){const t=document.createElement("span");return t.textContent=e.args.data.nodeName,t}const i=document.createElement("span");return u.UIUtils.createTextChild(i,Et(wt.UnknownNode)),i}const c=new Set;for(const r of a){const a=i.Helpers.Trace.getZeroIndexedStackTraceForEvent(r);let s=null;const d=a?.at(0);d&&(s=o.linkifier()?.maybeLinkifyScriptLocation(n.TargetManager.TargetManager.instance().rootTarget(),d.scriptId,d.url,d.lineNumber)||null);const h=l(r),m=s?e.i18n.getFormatLocalizedString(St,wt.invalidationWithCallFrame,{PH1:h,PH2:s}):h,p="string"==typeof m?m:m.innerText;c.has(p)||(c.add(p),o.appendElementRow(t,m))}}static aggregatedStatsForTraceEvent(e,t,n){const r=t.Renderer?.allTraceEntries||[],{startTime:a,endTime:s}=i.Helpers.Timing.eventTimingsMilliSeconds(n);const o=c.ArrayUtilities.binaryIndexOf(r,a,(function(e,t){const{startTime:n}=i.Helpers.Timing.eventTimingsMilliSeconds(t);return e-n}));if(o<0)return!1;let l=!1;if(s)for(let a=o;a<r.length;a++){const c=r[a],{startTime:d}=i.Helpers.Timing.eventTimingsMilliSeconds(c);if(d>=s)break;const h=At(c,t);if(!h)continue;if(c.tid!==n.tid)continue;a>o&&(l=!0);const m=xt.eventStyle(c).category.name;e[m]=(e[m]||0)+h}if(i.Types.TraceEvents.isAsyncPhase(n.ph)){if(s){let t=0;for(const i in e)t+=e[i];e.idle=Math.max(0,s-a-t)}return!1}return l}static async buildPicturePreviewContent(e,t,i){const r=e.LayerTree.paintsToSnapshots.get(t);if(!r)return null;const a=i.model(n.PaintProfiler.PaintProfilerModel);if(!a)return null;const s=await a.loadSnapshot(r.args.snapshot.skp64);if(!s)return null;const o={snapshot:s,rect:r.args.snapshot.params?.layer_rect};if(!o)return null;const l=o.snapshot.replay();o.snapshot.release();const c=await l;if(!c)return null;const d=document.createElement("div"),h=d.attachShadow({mode:"open"});h.adoptedStyleSheets=[dt];const m=h.createChild("div");m.classList.add("image-preview-container","vbox","link");const p=m.createChild("img");p.src=c,p.alt=C.ImagePreview.ImagePreview.defaultAltTextForImageURL(c);return m.createChild("a").textContent=Et(wt.paintProfiler),u.ARIAUtils.markAsLink(m),m.tabIndex=0,m.addEventListener("click",(()=>ar.instance().select(yt.fromTraceEvent(t))),!1),m.addEventListener("keydown",(e=>{"Enter"===e.key&&(ar.instance().select(yt.fromTraceEvent(t)),e.consume(!0))})),d}static createEventDivider(t,n){const r=document.createElement("div");r.classList.add("resources-event-divider");const{startTime:a}=i.Helpers.Timing.eventTimingsMilliSeconds(t),s=e.TimeUtilities.millisToString(a-n);u.Tooltip.Tooltip.install(r,Et(wt.sAtS,{PH1:xt.eventTitle(t),PH2:s}));const o=xt.markerStyleForEvent(t);return o.tall&&(r.style.backgroundColor=o.color),r}static visibleEventsFilter(){return new E.TimelineModelFilter.TimelineVisibleEventsFilter(Te())}static categories(){return pe()}static generatePieChart(t,i,n){let r=0;for(const e in t)r+=t[e];const a=document.createElement("div");a.classList.add("timeline-details-view-pie-chart-wrapper"),a.classList.add("hbox");const s=new p.PieChart.PieChart,o=[];function l(e,t,i,n){i&&o.push({value:i,color:n,title:t})}if(i){n&&l(i.name,Et(wt.sSelf,{PH1:i.title}),n,i.getCSSValue());const e=t[i.name]-(n||0);e>0&&l(i.name,Et(wt.sChildren,{PH1:i.title}),e,i.getCSSValue())}for(const e in pe()){const n=pe()[e];e!==i?.name&&l(n.name,n.title,t[n.name],n.getCSSValue())}s.data={chartName:Et(wt.timeSpentInRendering),size:110,formatter:t=>e.TimeUtilities.preciseMillisToString(t),showLegend:!0,total:r,slices:o};return a.createChild("div","vbox").appendChild(s),a}static generateDetailsContentForFrame(e,t,i){const n=new Lt(null,null);n.addSection(Et(wt.frame));const r=xt.frameDuration(e);if(n.appendElementRow(Et(wt.duration),r),t&&i){const e=document.createElement("div");e.classList.add("timeline-filmstrip-preview"),u.UIUtils.loadImage(i.screenshotEvent.args.dataUri).then((t=>t&&e.appendChild(t))),n.appendElementRow("",e),e.addEventListener("click",function(e,t){p.FilmStripView.Dialog.fromFilmStrip(e,t.index)}.bind(null,t,i),!1)}return n.fragment}static frameDuration(t){const n=i.Helpers.Timing.microSecondsToMilliseconds(t.startTimeOffset),r=i.Helpers.Timing.microSecondsToMilliseconds(i.Types.Timing.MicroSeconds(t.endTime-t.startTime)),a=Et(wt.sAtSParentheses,{PH1:e.TimeUtilities.millisToString(r,!0),PH2:e.TimeUtilities.millisToString(n,!0)});return e.i18n.getFormatLocalizedString(St,wt.emptyPlaceholder,{PH1:a})}static quadWidth(e){return Math.round(Math.sqrt(Math.pow(e[0]-e[2],2)+Math.pow(e[1]-e[3],2)))}static quadHeight(e){return Math.round(Math.sqrt(Math.pow(e[0]-e[6],2)+Math.pow(e[1]-e[7],2)))}static eventDispatchDesciptors(){if(Ct)return Ct;const e="hsl(40,100%,80%)",t="hsl(40,100%,50%)";return Ct=[new Mt(1,e,["mousemove","mouseenter","mouseleave","mouseout","mouseover"]),new Mt(1,e,["pointerover","pointerout","pointerenter","pointerleave","pointermove"]),new Mt(2,"hsl(90,100%,40%)",["wheel"]),new Mt(3,t,["click","mousedown","mouseup"]),new Mt(3,t,["touchstart","touchend","touchmove","touchcancel"]),new Mt(3,t,["pointerdown","pointerup","pointercancel","gotpointercapture","lostpointercapture"]),new Mt(3,"hsl(256,100%,75%)",["keydown","keyup","keypress"])],Ct}static markerStyleForEvent(e){const t=[6,4],n=xt.eventTitle(e);if("navigationStart"!==e.name&&i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)||i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.UserTiming))return{title:n,dashStyle:t,lineWidth:.5,color:i.Helpers.Trace.eventHasCategory(e,i.Types.TraceEvents.Categories.Console)?"purple":"orange",tall:!1,lowPriority:!1};let r=!1,a="grey";switch(e.name){case"navigationStart":a="#FF9800",r=!0;break;case"FrameStartedLoading":a="green",r=!0;break;case"MarkDOMContent":a="#0867CB",r=!0;break;case"MarkLoad":a="#B31412",r=!0;break;case"firstPaint":a="#228847",r=!0;break;case"firstContentfulPaint":a="#1A6937",r=!0;break;case"largestContentfulPaint::Candidate":a="#1A3422",r=!0;break;case"TimeStamp":a="orange"}return{title:n,dashStyle:t,lineWidth:.5,color:a,tall:r,lowPriority:!1}}static colorForId(e){return kt||(kt=new r.Color.Generator({min:30,max:330,count:void 0},{min:50,max:80,count:3},85),kt.setColorForID("","#f2ecdc")),kt.colorForID(e)}static displayNameForFrame(e,t=80){const i=e.url;return r.ParsedURL.schemeIs(i,"about:")?`"${c.StringUtilities.trimMiddle(e.name,t)}"`:e.url.slice(0,t)}}const Pt=Symbol("aggregatedStats"),It=Symbol("previewElement");class Mt{priority;color;eventTypes;constructor(e,t,i){this.priority=e,this.color=t,this.eventTypes=i}}class Lt{fragment;linkifierInternal;target;element;tableElement;constructor(e,t){this.fragment=document.createDocumentFragment(),this.linkifierInternal=t,this.target=e,this.element=document.createElement("div"),this.element.classList.add("timeline-details-view-block"),this.tableElement=this.element.createChild("div","vbox timeline-details-chip-body"),this.fragment.appendChild(this.element)}addSection(e,t){if(this.tableElement.hasChildNodes()?(this.element=document.createElement("div"),this.element.classList.add("timeline-details-view-block"),this.fragment.appendChild(this.element)):this.element.removeChildren(),e){const i=this.element.createChild("div","timeline-details-chip-title");t&&(i.createChild("div").style.backgroundColor=t),u.UIUtils.createTextChild(i,e)}this.tableElement=this.element.createChild("div","vbox timeline-details-chip-body"),this.fragment.appendChild(this.element)}linkifier(){return this.linkifierInternal}appendTextRow(e,t){const i=this.tableElement.createChild("div","timeline-details-view-row");i.createChild("div","timeline-details-view-row-title").textContent=e,i.createChild("div","timeline-details-view-row-value").textContent=t.toString()}appendElementRow(e,t,i,n){const r=this.tableElement.createChild("div","timeline-details-view-row");r.setAttribute("data-row-title",e),i&&r.classList.add("timeline-details-warning"),n&&r.classList.add("timeline-details-stack-values");r.createChild("div","timeline-details-view-row-title").textContent=e;const a=r.createChild("div","timeline-details-view-row-value");t instanceof Node?a.appendChild(t):u.UIUtils.createTextChild(a,t||"")}appendLocationRow(e,t,i,n){if(!this.linkifierInternal)return;const r={tabStop:!0,columnNumber:n,showColumnNumber:!0,inlineFrameIndex:0},a=this.linkifierInternal.maybeLinkifyScriptLocation(this.target,null,t,i,r);a&&this.appendElementRow(e,a)}appendLocationRange(e,t,i,n){if(!this.linkifierInternal||!this.target)return;const r=document.createElement("span"),a=this.linkifierInternal.maybeLinkifyScriptLocation(this.target,null,t,i,{tabStop:!0,inlineFrameIndex:0});a&&(r.appendChild(a),u.UIUtils.createTextChild(r,c.StringUtilities.sprintf(" [%s…%s]",i+1,(n||0)+1||"")),this.appendElementRow(e,r))}createChildStackTraceElement(e){if(!this.linkifierInternal)return;const t=this.tableElement.createChild("div","timeline-details-view-row timeline-details-stack-values"),i=C.JSPresentationUtils.buildStackTracePreviewContents(this.target,this.linkifierInternal,{stackTrace:e,tabStops:!0,showColumnNumber:!0});t.appendChild(i.element)}}const Rt=Symbol("categoryBreakdownCache");function Ft(e,t){if(!t){const{startTime:t}=i.Helpers.Timing.eventTimingsMilliSeconds(e);return t}const n=i.Helpers.Timing.timeStampForEventAdjustedByClosestNavigation(e,t.Meta.traceBounds,t.Meta.navigationsByNavigationId,t.Meta.navigationsByFrameId);return i.Helpers.Timing.microSecondsToMilliseconds(n)}function Dt(e,t){const{KnownEventName:n}=i.Types.TraceEvents;if("TimeStamp"===t.name)return!0;if(i.Types.TraceEvents.isTraceEventFirstContentfulPaint(t)||i.Types.TraceEvents.isTraceEventFirstPaint(t))return t.args.frame===e.Meta.mainFrameId;if(i.Types.TraceEvents.isTraceEventMarkDOMContent(t)||i.Types.TraceEvents.isTraceEventMarkLoad(t)||i.Types.TraceEvents.isTraceEventLargestContentfulPaintCandidate(t)){if(!t.args.data)return!1;const{isOutermostMainFrame:e,isMainFrame:i}=t.args.data;return void 0!==e?e:Boolean(i)}return!1}function At(e,t){const n=i.Types.Extensions.isSyntheticExtensionEntry(e)?t.ExtensionTraceData.entryToNode:t.Renderer.entryToNode,r=n.get(e)?.selfTime;return r?i.Helpers.Timing.microSecondsToMilliseconds(r):i.Types.Timing.MilliSeconds(0)}var Nt=Object.freeze({__proto__:null,TimelineUIUtils:xt,aggregatedStatsKey:Pt,previewElementSymbol:It,EventDispatchTypeDescriptor:Mt,TimelineDetailsContentHelper:Lt,categoryBreakdownCacheSymbol:Rt,timeStampForEventAdjustedForClosestNavigationIfPossible:Ft,isMarkerEvent:Dt});class Bt extends E.TimelineModelFilter.TimelineModelFilter{#G=i.Types.Timing.MilliSeconds(0);constructor(){super()}setMinimumRecordDuration(e){this.#G=e}accept(e){const{duration:t}=i.Helpers.Timing.eventTimingsMilliSeconds(e);return t>=this.#G}}class Ht extends E.TimelineModelFilter.TimelineModelFilter{constructor(){super()}accept(e){return!xt.eventStyle(e).category.hidden}}class Ut extends E.TimelineModelFilter.TimelineModelFilter{regExpInternal;constructor(e){super(),this.setRegExp(e||null)}setRegExp(e){this.regExpInternal=e}regExp(){return this.regExpInternal}accept(e,t){return!this.regExpInternal||xt.testContentMatching(e,this.regExpInternal,t)}}var Wt=Object.freeze({__proto__:null,IsLong:Bt,Category:Ht,TimelineRegExp:Ut});const Ot={performance:"Performance",selfTime:"Self Time",totalTime:"Total Time",activity:"Activity",selectItemForDetails:"Select item for details.",fms:"{PH1} ms",percentPlaceholder:"{PH1} %",chromeExtensionsOverhead:"[`Chrome` extensions overhead]",vRuntime:"[`V8` Runtime]",unattributed:"[unattributed]",page:"Page",noGrouping:"No Grouping",groupByActivity:"Group by Activity",groupByCategory:"Group by Category",groupByDomain:"Group by Domain",groupByFrame:"Group by Frame",groupBySubdomain:"Group by Subdomain",groupByUrl:"Group by URL",groupBy:"Group by",heaviestStack:"Heaviest stack",showHeaviestStack:"Show Heaviest stack",hideHeaviestStack:"Hide Heaviest stack",heaviestStackShown:"Heaviest stack sidebar shown",heaviestStackHidden:"Heaviest stack sidebar hidden",timelineStack:"Timeline Stack",matchCase:"Match Case",useRegularExpression:"Use Regular Expression",matchWholeWord:"Match whole word"},_t=e.i18n.registerUIStrings("panels/timeline/TimelineTreeView.ts",Ot),Vt=e.i18n.getLocalizedString.bind(void 0,_t);class Gt extends u.Widget.VBox{#z;searchResults;linkifier;dataGrid;lastHoveredProfileNode;textFilterInternal;taskFilter;startTime;endTime;splitWidget;detailsView;searchableView;currentThreadSetting;lastSelectedNodeInternal;root;currentResult;textFilterUI;caseSensitiveButton;regexButton;matchWholeWord;#j=null;constructor(){super(),this.#z=null,this.element.classList.add("timeline-tree-view"),this.searchResults=[]}#q(e){const t=xt.eventTitle(e)||e.name;return this.#j?t+":@"+i.Extras.URLForEntry.get(this.#j,e):t}setSearchableView(e){this.searchableView=e}setModelWithEvents(e,t=null){this.#j=t,this.#z=e}traceParseData(){return this.#j}init(){this.linkifier=new C.Linkifier.Linkifier,this.taskFilter=new E.TimelineModelFilter.ExclusiveNameFilter(["RunTask"]),this.textFilterInternal=new Ut,this.currentThreadSetting=r.Settings.Settings.instance().createSetting("timeline-tree-current-thread",0),this.currentThreadSetting.addChangeListener(this.refreshTree,this);const e=[];this.populateColumns(e),this.splitWidget=new u.SplitWidget.SplitWidget(!0,!0,"timeline-tree-view-details-split-widget");const t=new u.Widget.VBox,i=new u.Toolbar.Toolbar("",t.element);i.element.setAttribute("jslog",`${g.toolbar()}`),i.makeWrappable(!0),this.populateToolbar(i),this.dataGrid=new k.SortableDataGrid.SortableDataGrid({displayName:Vt(Ot.performance),columns:e,refreshCallback:void 0,editCallback:void 0,deleteCallback:void 0}),this.dataGrid.addEventListener("SortingChanged",this.sortingChanged,this),this.dataGrid.element.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.dataGrid.setResizeMethod("last"),this.dataGrid.setRowContextMenuCallback(this.onContextMenu.bind(this)),this.dataGrid.asWidget().show(t.element),this.dataGrid.addEventListener("SelectedNode",this.updateDetailsForSelection,this),this.detailsView=new u.Widget.VBox,this.detailsView.element.classList.add("timeline-details-view","timeline-details-view-body"),this.splitWidget.setMainWidget(t),this.splitWidget.setSidebarWidget(this.detailsView),this.splitWidget.hideSidebar(),this.splitWidget.show(this.element),this.splitWidget.addEventListener("ShowModeChanged",this.onShowModeChanged,this),this.lastSelectedNodeInternal}lastSelectedNode(){return this.lastSelectedNodeInternal}updateContents(e){this.setRange(e.startTime,e.endTime)}setRange(e,t){this.startTime=e,this.endTime=t,this.refreshTree()}filters(){return[this.taskFilter,this.textFilterInternal,...Se.instance().activeFilters()]}filtersWithoutTextFilter(){return[this.taskFilter,...Se.instance().activeFilters()]}textFilter(){return this.textFilterInternal}exposePercentages(){return!1}populateToolbar(e){this.caseSensitiveButton=new u.Toolbar.ToolbarToggle(Vt(Ot.matchCase),"match-case",void 0,"match-case"),this.caseSensitiveButton.addEventListener("Click",(()=>{this.#$()}),this),e.appendToolbarItem(this.caseSensitiveButton),this.regexButton=new u.Toolbar.ToolbarToggle(Vt(Ot.useRegularExpression),"regular-expression",void 0,"regular-expression"),this.regexButton.addEventListener("Click",(()=>{this.#$()}),this),e.appendToolbarItem(this.regexButton),this.matchWholeWord=new u.Toolbar.ToolbarToggle(Vt(Ot.matchWholeWord),"match-whole-word",void 0,"match-whole-word"),this.matchWholeWord.addEventListener("Click",(()=>{this.#$()}),this),e.appendToolbarItem(this.matchWholeWord);const t=new u.Toolbar.ToolbarFilter;this.textFilterUI=t,t.addEventListener("TextChanged",this.#$,this),e.appendToolbarItem(t)}selectedEvents(){return this.#z||[]}onHover(e){}appendContextMenuItems(e,t){}selectProfileNode(e,t){const i=[];let n=e;for(;n;n=n.parent)i.push(n);for(let e=i.length-1;e>0;--e){const t=this.dataGridNodeForTreeNode(i[e]);t&&t.dataGrid&&t.expand()}const r=this.dataGridNodeForTreeNode(e);r&&r.dataGrid&&(r.reveal(),r.select(t))}refreshTree(){if(!this.element.parentElement)return;if(this.linkifier.reset(),this.dataGrid.rootNode().removeChildren(),!this.#j)return void this.updateDetailsForSelection();this.root=this.buildTree();const e=this.root.children();let t=0,i=0;const n=this.root.totalTime-this.root.selfTime;for(const n of e.values())t=Math.max(t,n.selfTime),i=Math.max(i,n.totalTime);for(const r of e.values()){const e=new jt(r,n,t,i,this);this.dataGrid.insertChild(e)}this.sortingChanged(),this.updateDetailsForSelection(),this.searchableView&&this.searchableView.refreshSearch();const r=this.dataGrid.rootNode();r.children.length>0&&r.children[0].select(!0)}buildTree(){throw new Error("Not Implemented")}buildTopDownTree(e,t){return new E.TimelineProfileTree.TopDownRootNode(this.selectedEvents(),this.filters(),this.startTime,this.endTime,e,t)}populateColumns(e){e.push({id:"self",title:Vt(Ot.selfTime),width:"120px",fixedWidth:!0,sortable:!0}),e.push({id:"total",title:Vt(Ot.totalTime),width:"120px",fixedWidth:!0,sortable:!0}),e.push({id:"activity",title:Vt(Ot.activity),disclosure:!0,sortable:!0})}sortingChanged(){const e=this.dataGrid.sortColumnId();if(!e)return;let t;const i=(e,t)=>{const i=t,n=e.profileNode.event,r=i.profileNode.event;if(!n||!r)return 0;if(!this.#j)return 0;const a=this.#q(n),s=this.#q(r);return a.localeCompare(s)};switch(e){case"start-time":t=function(e,t){const i=t,n=e.profileNode.event,r=i.profileNode.event;if(!n||!r)return 0;return n.ts-r.ts};break;case"self":t=function(e,t){const i=t;return e.profileNode.selfTime-i.profileNode.selfTime};break;case"total":t=function(e,t){const i=t;return e.profileNode.totalTime-i.profileNode.totalTime};break;case"activity":t=i;break;default:return void console.assert(!1,"Unknown sort field: "+e)}this.dataGrid.sortNodes(t,!this.dataGrid.isSortOrderAscending())}#$(){const e=this.textFilterUI&&this.textFilterUI.value(),t=void 0!==this.caseSensitiveButton&&this.caseSensitiveButton.isToggled(),i=void 0!==this.regexButton&&this.regexButton.isToggled(),n=void 0!==this.matchWholeWord&&this.matchWholeWord.isToggled();this.textFilterInternal.setRegExp(e?c.StringUtilities.createSearchRegex(e,t,i,n):null),this.refreshTree()}onShowModeChanged(){"OnlyMain"!==this.splitWidget.showMode()&&(this.lastSelectedNodeInternal=void 0,this.updateDetailsForSelection())}updateDetailsForSelection(){const e=this.dataGrid.selectedNode?this.dataGrid.selectedNode.profileNode:null;if(e===this.lastSelectedNodeInternal)return;if(this.lastSelectedNodeInternal=e,"OnlyMain"===this.splitWidget.showMode())return;if(this.detailsView.detachChildWidgets(),this.detailsView.element.removeChildren(),e&&this.showDetailsForNode(e))return;const t=this.detailsView.element.createChild("div","full-widget-dimmed-banner");u.UIUtils.createTextChild(t,Vt(Ot.selectItemForDetails))}showDetailsForNode(e){return!1}onMouseMove(e){const t=e.target&&e.target instanceof Node?this.dataGrid.dataGridNodeFromNode(e.target):null,i=t&&t._profileNode;i!==this.lastHoveredProfileNode&&(this.lastHoveredProfileNode=i,this.onHover(i))}onContextMenu(e,t){const i=t;i.linkElement&&e.appendApplicableItems(i.linkElement);const n=i.profileNode;n&&this.appendContextMenuItems(e,n)}dataGridNodeForTreeNode(e){return qt.get(e)||null}onSearchCanceled(){this.searchResults=[],this.currentResult=0}performSearch(e,t,i){if(this.searchResults=[],this.currentResult=0,!this.root)return;const n=e.toSearchRegex();this.searchResults=this.root.searchTree((e=>xt.testContentMatching(e,n.regex,this.#j||void 0))),this.searchableView.updateSearchMatchesCount(this.searchResults.length)}jumpToNextSearchResult(){this.searchResults.length&&void 0!==this.currentResult&&(this.selectProfileNode(this.searchResults[this.currentResult],!1),this.currentResult=c.NumberUtilities.mod(this.currentResult+1,this.searchResults.length))}jumpToPreviousSearchResult(){this.searchResults.length&&void 0!==this.currentResult&&(this.selectProfileNode(this.searchResults[this.currentResult],!1),this.currentResult=c.NumberUtilities.mod(this.currentResult-1,this.searchResults.length))}supportsCaseSensitiveSearch(){return!0}supportsRegexSearch(){return!0}}class zt extends k.SortableDataGrid.SortableDataGridNode{populated;profileNode;treeView;grandTotalTime;maxSelfTime;maxTotalTime;linkElement;constructor(e,t,i,n,r){super(null,!1),this.populated=!1,this.profileNode=e,this.treeView=r,this.grandTotalTime=t,this.maxSelfTime=i,this.maxTotalTime=n,this.linkElement=null}createCell(e){return"activity"===e?this.createNameCell(e):this.createValueCell(e)||super.createCell(e)}createNameCell(e){const t=this.createTD(e),n=t.createChild("div","name-container"),r=n.createChild("div","activity-icon-container"),a=r.createChild("div","activity-icon"),s=n.createChild("div","activity-name"),o=this.profileNode.event;if(this.profileNode.isGroupNode()){const e=this.treeView.displayInfoForGroupNode(this.profileNode);s.textContent=e.name,a.style.backgroundColor=e.color,e.icon&&r.insertBefore(e.icon,a)}else if(o){s.textContent=xt.eventTitle(o);const e=this.treeView.traceParseData(),t=e?ot(e,o):null,r=this.treeView.linkifier,l=Boolean(e&&Ce.instance().recordingIsFresh(e));this.linkElement=xt.linkifyTopCallFrame(o,t,r,l),this.linkElement&&n.createChild("div","activity-link").appendChild(this.linkElement);const c=xt.eventStyle(o).category;u.ARIAUtils.setLabel(a,c.title),a.style.backgroundColor=c.getComputedColorValue(),i.Types.Extensions.isSyntheticExtensionEntry(o)&&(a.style.backgroundColor=P.ExtensionUI.extensionEntryColor(o))}return t}createValueCell(e){if("self"!==e&&"total"!==e&&"start-time"!==e)return null;let t,n,r,a=!1;switch(e){case"start-time":{r=this.profileNode.event;const e=this.treeView.traceParseData();if(!e)throw new Error("Unable to load trace data for tree view");const n=r&&i.Helpers.Timing.eventTimingsMilliSeconds(r);t=(n?.startTime??0)-i.Helpers.Timing.microSecondsToMilliseconds(e.Meta.traceBounds.min)}break;case"self":t=this.profileNode.selfTime,n=this.maxSelfTime,a=!0;break;case"total":t=this.profileNode.totalTime,n=this.maxTotalTime,a=!0;break;default:return null}const s=this.createTD(e);s.className="numeric-column",s.setAttribute("title",Vt(Ot.fms,{PH1:t.toFixed(4)}));const o=s.createChild("div");return o.createChild("span").textContent=Vt(Ot.fms,{PH1:t.toFixed(1)}),a&&this.treeView.exposePercentages()&&(o.createChild("span","percent-column").textContent=Vt(Ot.percentPlaceholder,{PH1:(t/this.grandTotalTime*100).toFixed(1)})),n&&(o.classList.add("background-percent-bar"),s.createChild("div","background-bar-container").createChild("div","background-bar").style.width=(100*t/n).toFixed(1)+"%"),s}}class jt extends zt{constructor(e,t,i,n,r){super(e,t,i,n,r),this.setHasChildren(this.profileNode.hasChildren()),qt.set(e,this)}populate(){if(!this.populated&&(this.populated=!0,this.profileNode.children))for(const e of this.profileNode.children().values()){const t=new jt(e,this.grandTotalTime,this.maxSelfTime,this.maxTotalTime,this.treeView);this.insertChildOrdered(t)}}}const qt=new WeakMap;class $t extends Gt{groupBySetting;stackView;executionContextNamesByOrigin=new Map;constructor(){super(),this.groupBySetting=r.Settings.Settings.instance().createSetting("timeline-tree-group-by",$t.GroupBy.None),this.groupBySetting.addChangeListener(this.refreshTree.bind(this)),this.init(),this.stackView=new Yt(this),this.stackView.addEventListener("SelectionChanged",this.onStackViewSelectionChanged,this)}setGroupBySettingForTests(e){this.groupBySetting.set(e)}updateContents(e){this.updateExtensionResolver(),super.updateContents(e);const t=this.dataGrid.rootNode();t.children.length&&t.children[0].select(!0)}updateExtensionResolver(){this.executionContextNamesByOrigin=new Map;for(const e of n.TargetManager.TargetManager.instance().models(n.RuntimeModel.RuntimeModel))for(const t of e.executionContexts())this.executionContextNamesByOrigin.set(t.origin,t.name)}beautifyDomainName(e){return $t.isExtensionInternalURL(e)?e=Vt(Ot.chromeExtensionsOverhead):$t.isV8NativeURL(e)?e=Vt(Ot.vRuntime):e.startsWith("chrome-extension")&&(e=this.executionContextNamesByOrigin.get(e)||e),e}displayInfoForGroupNode(e){const t=pe(),i=e.id&&e.event?xt.eventColor(e.event):t.other.color,n=Vt(Ot.unattributed),r="symbol"==typeof e.id?void 0:e.id;switch(this.groupBySetting.get()){case $t.GroupBy.Category:{const e=r&&me(r)?t[r]||t.other:{title:n,color:n};return{name:e.title,color:e.color,icon:void 0}}case $t.GroupBy.Domain:case $t.GroupBy.Subdomain:return{name:(r?this.beautifyDomainName(r):void 0)||n,color:i,icon:void 0};case $t.GroupBy.EventName:if(!e.event)throw new Error("Unable to find event for group by operation");return{name:xt.eventTitle(e.event),color:i,icon:void 0};case $t.GroupBy.URL:break;case $t.GroupBy.Frame:{const e=r?this.traceParseData()?.PageFrames.frames.get(r):void 0;return{name:e?xt.displayNameForFrame(e):Vt(Ot.page),color:i,icon:void 0}}default:console.assert(!1,"Unexpected grouping type")}return{name:r||n,color:i,icon:void 0}}populateToolbar(e){super.populateToolbar(e);const t=$t.GroupBy,i=[{label:Vt(Ot.noGrouping),value:t.None},{label:Vt(Ot.groupByActivity),value:t.EventName},{label:Vt(Ot.groupByCategory),value:t.Category},{label:Vt(Ot.groupByDomain),value:t.Domain},{label:Vt(Ot.groupByFrame),value:t.Frame},{label:Vt(Ot.groupBySubdomain),value:t.Subdomain},{label:Vt(Ot.groupByUrl),value:t.URL}];e.appendToolbarItem(new u.Toolbar.ToolbarSettingComboBox(i,this.groupBySetting,Vt(Ot.groupBy))),e.appendSpacer(),e.appendToolbarItem(this.splitWidget.createShowHideSidebarButton(Vt(Ot.showHeaviestStack),Vt(Ot.hideHeaviestStack),Vt(Ot.heaviestStackShown),Vt(Ot.heaviestStackHidden)))}buildHeaviestStack(e){console.assert(Boolean(e.parent),"Attempt to build stack for tree root");let t=[];for(let i=e;i&&i.parent;i=i.parent)t.push(i);t=t.reverse();for(let i=e;i&&i.children()&&i.children().size;){const e=Array.from(i.children().values());i=e.reduce(((e,t)=>e.totalTime>t.totalTime?e:t)),t.push(i)}return t}exposePercentages(){return!0}onStackViewSelectionChanged(){const e=this.stackView.selectedTreeNode();e&&this.selectProfileNode(e,!0)}showDetailsForNode(e){const t=this.buildHeaviestStack(e);return this.stackView.setStack(t,e),this.stackView.show(this.detailsView.element),!0}groupingFunction(e){const t=$t.GroupBy;switch(e){case t.None:return null;case t.EventName:return e=>xt.eventStyle(e).title;case t.Category:return e=>xt.eventStyle(e).category.name;case t.Subdomain:return this.domainByEvent.bind(this,!1);case t.Domain:return this.domainByEvent.bind(this,!0);case t.URL:return e=>{const t=this.traceParseData();return t?i.Extras.URLForEntry.get(t,e)??"":""};case t.Frame:return e=>i.Helpers.Trace.frameIDForEvent(e)||this.traceParseData()?.Meta.mainFrameId||"";default:return console.assert(!1,`Unexpected aggregation setting: ${e}`),null}}domainByEvent(e,t){const n=this.traceParseData();if(!n)return"";const a=i.Extras.URLForEntry.get(n,t);if(!a)return"";if($t.isExtensionInternalURL(a))return $t.extensionInternalPrefix;if($t.isV8NativeURL(a))return $t.v8NativePrefix;const s=r.ParsedURL.ParsedURL.fromString(a);if(!s)return"";if("chrome-extension"===s.scheme)return s.scheme+"://"+s.host;if(!e)return s.host;if(/^[.0-9]+$/.test(s.host))return s.host;const o=/([^.]*\.)?[^.]*$/.exec(s.host);return o&&o[0]||""}static isExtensionInternalURL(e){return e.startsWith($t.extensionInternalPrefix)}static isV8NativeURL(e){return e.startsWith($t.v8NativePrefix)}static extensionInternalPrefix="extensions::";static v8NativePrefix="native "}!function(e){let t;!function(e){e.None="None",e.EventName="EventName",e.Category="Category",e.Domain="Domain",e.Subdomain="Subdomain",e.URL="URL",e.Frame="Frame"}(t=e.GroupBy||(e.GroupBy={}))}($t||($t={}));class Jt extends $t{constructor(){super(),this.element.setAttribute("jslog",`${g.pane("call-tree").track({resize:!0})}`),this.dataGrid.markColumnAsSortedBy("total",k.DataGrid.Order.Descending)}buildTree(){const e=this.groupBySetting.get();return this.buildTopDownTree(!1,this.groupingFunction(e))}}class Kt extends $t{constructor(){super(),this.element.setAttribute("jslog",`${g.pane("bottom-up").track({resize:!0})}`),this.dataGrid.markColumnAsSortedBy("self",k.DataGrid.Order.Descending)}buildTree(){return new E.TimelineProfileTree.BottomUpRootNode(this.selectedEvents(),this.textFilter(),this.filtersWithoutTextFilter(),this.startTime,this.endTime,this.groupingFunction(this.groupBySetting.get()))}}class Yt extends(r.ObjectWrapper.eventMixin(u.Widget.VBox)){treeView;dataGrid;constructor(e){super();this.element.createChild("div","timeline-stack-view-header").textContent=Vt(Ot.heaviestStack),this.treeView=e;const t=[{id:"total",title:Vt(Ot.totalTime),fixedWidth:!0,width:"110px"},{id:"activity",title:Vt(Ot.activity)}];this.dataGrid=new k.ViewportDataGrid.ViewportDataGrid({displayName:Vt(Ot.timelineStack),columns:t,deleteCallback:void 0,editCallback:void 0,refreshCallback:void 0}),this.dataGrid.setResizeMethod("last"),this.dataGrid.addEventListener("SelectedNode",this.onSelectionChanged,this),this.dataGrid.asWidget().show(this.element)}setStack(e,t){const i=this.dataGrid.rootNode();i.removeChildren();let n=null;const r=Math.max.apply(Math,e.map((e=>e.totalTime)));for(const a of e){const e=new zt(a,r,r,r,this.treeView);i.appendChild(e),a===t&&(n=e)}n&&n.revealAndSelect()}selectedTreeNode(){const e=this.dataGrid.selectedNode;return e&&e.profileNode}onSelectionChanged(){this.dispatchEventToListeners("SelectionChanged")}}var Xt=Object.freeze({__proto__:null,TimelineTreeView:Gt,GridNode:zt,TreeGridNode:jt,get AggregatedTimelineTreeView(){return $t},CallTreeTimelineTreeView:Jt,BottomUpTimelineTreeView:Kt,TimelineStackView:Yt});const Zt={startTime:"Start Time",durationFilter:"Duration filter",Dms:"{PH1} ms",all:"All"},Qt=e.i18n.registerUIStrings("panels/timeline/EventsTimelineTreeView.ts",Zt),ei=e.i18n.getLocalizedString.bind(void 0,Qt);class ti extends Gt{filtersControl;delegate;currentTree;constructor(e){super(),this.element.setAttribute("jslog",`${g.pane("event-log").track({resize:!0})}`),this.filtersControl=new ii,this.filtersControl.addEventListener("FilterChanged",this.onFilterChanged,this),this.init(),this.delegate=e,this.dataGrid.markColumnAsSortedBy("start-time",k.DataGrid.Order.Ascending),this.splitWidget.showBoth()}filters(){return[...super.filters(),...this.filtersControl.filters()]}updateContents(e){super.updateContents(e),yt.isTraceEventSelection(e.object)&&this.selectEvent(e.object,!0)}buildTree(){return this.currentTree=this.buildTopDownTree(!0,null),this.currentTree}onFilterChanged(){const e=this.lastSelectedNode(),t=e&&e.event;this.refreshTree(),t&&this.selectEvent(t,!1)}findNodeWithEvent(e){if("RunTask"===e.name)return null;const t=[this.currentTree.children().values()];for(;t.length;){const{done:i,value:n}=t[t.length-1].next();if(i)t.pop();else{if(n.event===e)return n;t.push(n.children().values())}}return null}selectEvent(e,t){const i=this.findNodeWithEvent(e);if(i&&(this.selectProfileNode(i,!1),t)){const e=this.dataGridNodeForTreeNode(i);e&&e.expand()}}populateColumns(e){e.push({id:"start-time",title:ei(Zt.startTime),width:"80px",fixedWidth:!0,sortable:!0}),super.populateColumns(e),e.filter((e=>e.fixedWidth)).forEach((e=>{e.width="80px"}))}populateToolbar(e){super.populateToolbar(e),this.filtersControl.populateToolbar(e)}showDetailsForNode(e){const t=this.traceParseData();if(!t)return!1;const i=e.event;return!!i&&(xt.buildTraceEventDetails(t,i,this.linkifier,!1).then((e=>this.detailsView.element.appendChild(e))),!0)}onHover(e){this.delegate.highlightEvent(e&&e.event)}}class ii extends r.ObjectWrapper.ObjectWrapper{categoryFilter;durationFilter;filtersInternal;constructor(){super(),this.categoryFilter=new Ht,this.durationFilter=new Bt,this.filtersInternal=[this.categoryFilter,this.durationFilter]}filters(){return this.filtersInternal}populateToolbar(e){const t=new u.Toolbar.ToolbarComboBox(function(){const e=t.selectedOption().value,n=parseInt(e,10);this.durationFilter.setMinimumRecordDuration(i.Types.Timing.MilliSeconds(n)),this.notifyFiltersChanged()}.bind(this),ei(Zt.durationFilter),void 0,"duration");for(const e of ii.durationFilterPresetsMs)t.addOption(t.createOption(e?`≥ ${ei(Zt.Dms,{PH1:e})}`:ei(Zt.all),String(e)));e.appendToolbarItem(t);const n=new Map,r=pe();for(const t in r){const i=r[t];if(!i.visible)continue;const s=new u.Toolbar.ToolbarCheckbox(i.title,void 0,a.bind(this,t),t);s.setChecked(!0),s.inputElement.style.backgroundColor=i.color,n.set(i.name,s),e.appendToolbarItem(s)}function a(e){const t=pe(),i=n.get(e);t[e].hidden=!i||!i.checked(),this.notifyFiltersChanged()}}notifyFiltersChanged(){this.dispatchEventToListeners("FilterChanged")}static durationFilterPresetsMs=[0,1,15]}var ni=Object.freeze({__proto__:null,EventsTimelineTreeView:ti,Filters:ii});class ri extends u.SplitWidget.SplitWidget{showPaintProfilerCallback;rightSplitWidget;layerViewHost;layers3DView;frameLayerTree;updateWhenVisible;constructor(e){super(!0,!1,"timeline-layers-view"),this.showPaintProfilerCallback=e,this.element.classList.add("timeline-layers-view"),this.rightSplitWidget=new u.SplitWidget.SplitWidget(!0,!0,"timeline-layers-view-details"),this.rightSplitWidget.element.classList.add("timeline-layers-view-properties"),this.setMainWidget(this.rightSplitWidget);const t=new u.Widget.VBox;this.setSidebarWidget(t),this.layerViewHost=new I.LayerViewHost.LayerViewHost;const i=new I.LayerTreeOutline.LayerTreeOutline(this.layerViewHost);t.element.appendChild(i.element),this.layers3DView=new I.Layers3DView.Layers3DView(this.layerViewHost),this.layers3DView.addEventListener("PaintProfilerRequested",this.onPaintProfilerRequested,this),this.rightSplitWidget.setMainWidget(this.layers3DView);const n=new I.LayerDetailsView.LayerDetailsView(this.layerViewHost);this.rightSplitWidget.setSidebarWidget(n),n.addEventListener("PaintProfilerRequested",this.onPaintProfilerRequested,this)}showLayerTree(e){this.frameLayerTree=e,this.isShowing()?this.update():this.updateWhenVisible=!0}wasShown(){this.updateWhenVisible&&(this.updateWhenVisible=!1,this.update())}async onPaintProfilerRequested(e){const t=e.data,i=await this.layers3DView.snapshotForSelection(t);i&&this.showPaintProfilerCallback(i.snapshot)}update(){this.frameLayerTree&&this.frameLayerTree.layerTreePromise().then((e=>this.layerViewHost.setLayerTree(e)))}}var ai=Object.freeze({__proto__:null,TimelineLayersView:ri});const si=new CSSStyleSheet;si.replaceSync(".paint-profiler-image-view{overflow:hidden}.paint-profiler-image-view .paint-profiler-image-container{transform-origin:0 0}.paint-profiler-image-view .paint-profiler-image-container div{border-color:1px solid var(--sys-color-divider);border-style:solid;z-index:100;position:absolute;top:0;left:0}.paint-profiler-image-view img{border:solid 1px var(--sys-color-inverse-surface)}\n/*# sourceURL=timelinePaintProfiler.css */\n");class oi extends u.SplitWidget.SplitWidget{logAndImageSplitWidget;imageView;paintProfilerView;logTreeView;needsUpdateWhenVisible;pendingSnapshot;event;paintProfilerModel;lastLoadedSnapshot;#J;constructor(e){super(!1,!1),this.element.classList.add("timeline-paint-profiler-view"),this.setSidebarSize(60),this.setResizable(!1),this.#J=e,this.logAndImageSplitWidget=new u.SplitWidget.SplitWidget(!0,!1),this.logAndImageSplitWidget.element.classList.add("timeline-paint-profiler-log-split"),this.setMainWidget(this.logAndImageSplitWidget),this.imageView=new li,this.logAndImageSplitWidget.setMainWidget(this.imageView),this.paintProfilerView=new I.PaintProfilerView.PaintProfilerView(this.imageView.showImage.bind(this.imageView)),this.paintProfilerView.addEventListener("WindowChanged",this.onWindowChanged,this),this.setSidebarWidget(this.paintProfilerView),this.logTreeView=new I.PaintProfilerView.PaintProfilerCommandLogView,this.logAndImageSplitWidget.setSidebarWidget(this.logTreeView),this.needsUpdateWhenVisible=!1,this.pendingSnapshot=null,this.event=null,this.paintProfilerModel=null,this.lastLoadedSnapshot=null}wasShown(){super.wasShown(),this.needsUpdateWhenVisible&&(this.needsUpdateWhenVisible=!1,this.update())}setSnapshot(e){this.releaseSnapshot(),this.pendingSnapshot=e,this.event=null,this.updateWhenVisible()}#K(e){const t=e.args.tileData;if(!t)return!1;const i=this.#J.Frames.framesById[t.sourceFrameNumber];return!(!i||!i.layerTree)}setEvent(e,t){if(this.releaseSnapshot(),this.paintProfilerModel=e,this.pendingSnapshot=null,this.event=t,this.updateWhenVisible(),i.Types.TraceEvents.isTraceEventPaint(t)){const e=this.#J.LayerTree.paintsToSnapshots.get(t);return Boolean(e)}return!!i.Types.TraceEvents.isTraceEventRasterTask(t)&&this.#K(t)}updateWhenVisible(){this.isShowing()?this.update():this.needsUpdateWhenVisible=!0}async#Y(e){const t=e.args.tileData;if(!t)return null;if(!t.tileId.id_ref)return null;const i=n.TargetManager.TargetManager.instance().rootTarget();if(!i)return null;const r=this.#J.Frames.framesById[t.sourceFrameNumber];if(!r||!r.layerTree)return null;const a=new E.TracingLayerTree.TracingFrameLayerTree(i,r.layerTree),s=await a.layerTreePromise();return s?s.pictureForRasterTile(t.tileId.id_ref):null}update(){let e;if(this.logTreeView.setCommandLog([]),this.paintProfilerView.setSnapshotAndLog(null,[],null),this.pendingSnapshot)e=Promise.resolve({rect:null,snapshot:this.pendingSnapshot});else if(this.event&&this.paintProfilerModel&&i.Types.TraceEvents.isTraceEventPaint(this.event)){const t=this.#J.LayerTree.paintsToSnapshots.get(this.event);if(t){const i=t.args.snapshot.skp64;e=this.paintProfilerModel.loadSnapshot(i).then((e=>e&&{rect:null,snapshot:e}))}else e=Promise.resolve(null)}else{if(!this.event||!i.Types.TraceEvents.isTraceEventRasterTask(this.event))return void console.assert(!1,"Unexpected event type or no snapshot");e=this.#Y(this.event)}function t(e,t,i){this.logTreeView.setCommandLog(i||[]),this.paintProfilerView.setSnapshotAndLog(e,i||[],t)}e.then((e=>{if(this.releaseSnapshot(),!e)return void this.imageView.showImage();const i=e.snapshot;this.lastLoadedSnapshot=i,this.imageView.setMask(e.rect),i.commandLog().then((n=>t.call(this,i,e.rect,n||[])))}))}releaseSnapshot(){this.lastLoadedSnapshot&&(this.lastLoadedSnapshot.release(),this.lastLoadedSnapshot=null)}onWindowChanged(){this.logTreeView.updateWindow(this.paintProfilerView.selectionWindow())}}class li extends u.Widget.Widget{imageContainer;imageElement;maskElement;transformController;maskRectangle;constructor(){super(!0),this.contentElement.classList.add("fill","paint-profiler-image-view"),this.imageContainer=this.contentElement.createChild("div","paint-profiler-image-container"),this.imageElement=this.imageContainer.createChild("img"),this.maskElement=this.imageContainer.createChild("div"),this.imageElement.addEventListener("load",this.updateImagePosition.bind(this),!1),this.transformController=new I.TransformController.TransformController(this.contentElement,!0),this.transformController.addEventListener("TransformChanged",this.updateImagePosition,this)}onResize(){this.imageElement.src&&this.updateImagePosition()}updateImagePosition(){const e=this.imageElement.naturalWidth,t=this.imageElement.naturalHeight,i=this.contentElement.clientWidth,n=this.contentElement.clientHeight,r=.1*i,a=.1*n,s=(i-r)/e,o=(n-a)/t,l=Math.min(s,o);if(this.maskRectangle){const i=this.maskElement.style;i.width=e+"px",i.height=t+"px",i.borderLeftWidth=this.maskRectangle.x+"px",i.borderTopWidth=this.maskRectangle.y+"px",i.borderRightWidth=e-this.maskRectangle.x-this.maskRectangle.width+"px",i.borderBottomWidth=t-this.maskRectangle.y-this.maskRectangle.height+"px"}this.transformController.setScaleConstraints(.5,10/l);let c=(new WebKitCSSMatrix).scale(this.transformController.scale(),this.transformController.scale()).translate(i/2,n/2).scale(l,l).translate(-e/2,-t/2);const d=u.Geometry.boundsForTransformedPoints(c,[0,0,0,e,t,0]);this.transformController.clampOffsets(r-d.maxX,i-r-d.minX,a-d.maxY,n-a-d.minY),c=(new WebKitCSSMatrix).translate(this.transformController.offsetX(),this.transformController.offsetY()).multiply(c),this.imageContainer.style.webkitTransform=c.toString()}showImage(e){this.imageContainer.classList.toggle("hidden",!e),e&&(this.imageElement.src=e)}setMask(e){this.maskRectangle=e,this.maskElement.classList.toggle("hidden",!e)}wasShown(){super.wasShown(),this.registerCSSFiles([si])}}var ci=Object.freeze({__proto__:null,TimelinePaintProfilerView:oi,TimelinePaintImageView:li});const di={selectorStats:"Selector Stats",elapsed:"Elapsed (ms)",rejectPercentage:"% of Slow-Path Non-Matches",rejectPercentageExplanation:"The percentage of non-matching nodes (Match Attempts - Match Count) that couldn't be quickly ruled out by the bloom filter. Lower is better.",matchAttempts:"Match Attempts",matchCount:"Match Count",selector:"Selector",styleSheetId:"Style Sheet",copyTable:"Copy Table",unableToLink:"Unable to link",unableToLinkViaStyleSheetId:"Unable to link via {PH1}",tableCopiedToClipboard:"Table copied to clipboard",totalForAllSelectors:"(Totals for all selectors)",lineNumber:"Line {PH1}:{PH2}"},hi=e.i18n.registerUIStrings("panels/timeline/TimelineSelectorStatsView.ts",di),mi=e.i18n.getLocalizedString.bind(void 0,hi);class pi extends u.Widget.VBox{#X;#Z;#t=null;#Q=null;constructor(e){super(),this.#X=new M.DataGridController.DataGridController,this.element.setAttribute("jslog",`${g.pane("selector-stats").track({resize:!0})}`),this.#Z=new Map,this.#t=e,this.#X.data={label:mi(di.selectorStats),showScrollbar:!0,autoScrollToBottom:!1,initialSort:{columnId:"elapsed (us)",direction:"DESC"},columns:[{id:"elapsed (us)",title:mi(di.elapsed),sortable:!0,widthWeighting:1,visible:!0,hideable:!0,styles:{"text-align":"right"}},{id:"match_attempts",title:mi(di.matchAttempts),sortable:!0,widthWeighting:1,visible:!0,hideable:!0,styles:{"text-align":"right"}},{id:"match_count",title:mi(di.matchCount),sortable:!0,widthWeighting:1,visible:!0,hideable:!0,styles:{"text-align":"right"}},{id:"reject_percentage",title:mi(di.rejectPercentage),titleElement:R.html`<span title=${mi(di.rejectPercentageExplanation)}>${mi(di.rejectPercentage)}</span>`,sortable:!0,widthWeighting:1,visible:!0,hideable:!0,styles:{"text-align":"right"}},{id:"selector",title:mi(di.selector),sortable:!0,widthWeighting:3,visible:!0,hideable:!0},{id:"style_sheet_id",title:mi(di.styleSheetId),sortable:!0,widthWeighting:1.5,visible:!0,hideable:!0}],rows:[],contextMenus:{bodyRow:(e,t,i,r)=>{e.defaultSection().appendItem(mi(di.copyTable),(()=>{const e=[],i=t.map((e=>e.title));e.push(i.join("\t"));for(const t of r){const i=t.cells.map((e=>{if("style_sheet_id"===e.columnId){const t=mi(di.unableToLink);let i="";const r=n.TargetManager.TargetManager.instance().primaryPageTarget(),a=r?.model(n.CSSModel.CSSModel);if(a){const t=a.styleSheetHeaderForId(e.value);t&&(i=t.resourceURL().toString())}return i?i.toString():t}return String(e.value)}));e.push(i.join("\t"))}const a=e.join("\n");navigator.clipboard.writeText(a),u.ARIAUtils.alert(mi(di.tableCopiedToClipboard))}))}}},this.contentElement.appendChild(this.#X)}setEvent(e){if(!this.#t)return!1;if(this.#Q===e)return!1;this.#Q=e;const t=this.#t.SelectorStats.dataForUpdateLayoutEvent.get(e);if(!t)return this.#X.data={...this.#X.data,rows:[]},!1;const i=t.timings;return this.createRowsForTable(i).then((e=>{this.#X.data={...this.#X.data,rows:e}})),!0}setAggregatedEvents(e){const t=[],i=new Map;if(!this.#t)return;const n={"elapsed (us)":0,match_attempts:0,match_count:0,fast_reject_count:0};if(!Array.isArray(this.#Q)||this.#Q.length!==e.length||!e.every(((e,t)=>e===this.#Q[t]))){this.#Q=e;for(let t=0;t<e.length;t++){const r=e[t],a=r?this.#t.SelectorStats.dataForUpdateLayoutEvent.get(r):void 0;if(a){const e=a.timings;for(const t of e){const e=t.selector+"_"+t.style_sheet_id,r=i.get(e);void 0!==r?(r["elapsed (us)"]+=t["elapsed (us)"],r.fast_reject_count+=t.fast_reject_count,r.match_attempts+=t.match_attempts,r.match_count+=t.match_count):i.set(e,structuredClone(t)),n["elapsed (us)"]+=t["elapsed (us)"],n.match_attempts+=t.match_attempts,n.match_count+=t.match_count,n.fast_reject_count+=t.fast_reject_count}}}i.size>0?(i.forEach((e=>{t.push(e)})),i.clear(),t.unshift({"elapsed (us)":n["elapsed (us)"],fast_reject_count:n.fast_reject_count,match_attempts:n.match_attempts,match_count:n.match_count,selector:mi(di.totalForAllSelectors),style_sheet_id:"n/a"}),this.createRowsForTable(t).then((e=>{this.#X.data={...this.#X.data,rows:e}}))):this.#X.data={...this.#X.data,rows:[]}}}async createRowsForTable(e){const t=n.TargetManager.TargetManager.instance().primaryPageTarget(),i=t?.model(n.CSSModel.CSSModel);if(!i)return[];const r=await Promise.all(e.map((async e=>{const t=e.style_sheet_id,n=e.selector.trim(),r=e["elapsed (us)"]/1e3,a=e.match_attempts-e.match_count,s=100*(a?e.fast_reject_count/a:1),o="n/a"===t?null:await async function(e,t,i,n){if(!e)return;const r=e.styleSheetHeaderForId(t);if(!r||!r.resourceURL())return;const a=JSON.stringify({selectorText:i,styleSheetId:t});let s=n.get(a);if(!s){const r=await e.agent.invoke_getLocationForSelector({styleSheetId:t,selectorText:i});if(r.getError()||!r.ranges)return;s=r.ranges,n.set(a,s)}return s.map((e=>({url:r.resourceURL(),lineNumber:e.startLine,columnNumber:e.startColumn,linkText:mi(di.lineNumber,{PH1:e.startLine+1,PH2:e.startColumn+1})})))}(i,t,n,this.#Z);return{cells:[{columnId:"elapsed (us)",value:r,renderer:()=>R.html`${r.toFixed(3)}`},{columnId:"match_attempts",value:e.match_attempts},{columnId:"match_count",value:e.match_count},{columnId:"reject_percentage",value:s,renderer:()=>R.html`${s.toFixed(1)}`},{columnId:"selector",title:e.selector,value:e.selector},{columnId:"style_sheet_id",value:e.style_sheet_id,renderer:()=>null===o?R.html`<span></span>`:void 0===o?R.html`<span title=${mi(di.unableToLinkViaStyleSheetId,{PH1:e.style_sheet_id})} aria-label=${mi(di.unableToLinkViaStyleSheetId,{PH1:e.style_sheet_id})}>${mi(di.unableToLink)}</span>`:R.html`
|
|
2
|
-
${o.map(((e,t)=>t!==o.length-1?R.html`<${L.Linkifier.Linkifier.litTagName} .data=${e}></${L.Linkifier.Linkifier.litTagName}>
|
|
3
|
-
<a>, </a>`:R.html`<${L.Linkifier.Linkifier.litTagName} .data=${e}></${L.Linkifier.Linkifier.litTagName}>`))}
|
|
4
|
-
`}]}})));return r}}const ui={summary:"Summary",bottomup:"Bottom-Up",callTree:"Call Tree",eventLog:"Event Log",paintProfiler:"Paint Profiler",layers:"Layers",rangeSS:"Range: {PH1} – {PH2}",selectorStats:"Selector Stats"},gi=e.i18n.registerUIStrings("panels/timeline/TimelineDetailsView.ts",ui),vi=e.i18n.getLocalizedString.bind(void 0,gi);class Ti extends u.Widget.VBox{detailsLinkifier;tabbedPane;defaultDetailsWidget;defaultDetailsContentElement;rangeDetailViews;#z;lazyPaintProfilerView;lazyLayersView;preferredTabId;selection;updateContentsScheduled;lazySelectorStatsView;#J=null;#ee=null;#te;#N=this.#B.bind(this);constructor(e){super(),this.element.classList.add("timeline-details"),this.detailsLinkifier=new C.Linkifier.Linkifier,this.tabbedPane=new u.TabbedPane.TabbedPane,this.tabbedPane.show(this.element),this.tabbedPane.headerElement().setAttribute("jslog",`${g.toolbar("sidebar").track({keydown:"ArrowUp|ArrowLeft|ArrowDown|ArrowRight|Enter|Space"})}`),this.defaultDetailsWidget=new u.Widget.VBox,this.defaultDetailsWidget.element.classList.add("timeline-details-view"),this.defaultDetailsWidget.element.setAttribute("jslog",`${g.pane("details").track({resize:!0})}`),this.defaultDetailsContentElement=this.defaultDetailsWidget.element.createChild("div","timeline-details-view-body vbox"),this.appendTab(fi.Details,vi(ui.summary),this.defaultDetailsWidget),this.setPreferredTab(fi.Details),this.rangeDetailViews=new Map,this.updateContentsScheduled=!1;const t=new Kt;this.appendTab(fi.BottomUp,vi(ui.bottomup),t),this.rangeDetailViews.set(fi.BottomUp,t);const i=new Jt;this.appendTab(fi.CallTree,vi(ui.callTree),i),this.rangeDetailViews.set(fi.CallTree,i);const n=new ti(e);this.appendTab(fi.EventLog,vi(ui.eventLog),n),this.rangeDetailViews.set(fi.EventLog,n),this.#te=new s.NetworkRequestDetails.NetworkRequestDetails(this.detailsLinkifier),this.tabbedPane.addEventListener(u.TabbedPane.Events.TabSelected,this.tabSelected,this),h.TraceBounds.onChange(this.#N),this.lazySelectorStatsView=null}selectorStatsView(){return this.lazySelectorStatsView||(this.lazySelectorStatsView=new pi(this.#J)),this.lazySelectorStatsView}getDetailsContentElementForTest(){return this.defaultDetailsContentElement}async#B(e){"MINIMAP_BOUNDS"===e.updateType&&this.selection&&await this.setSelection(this.selection),"RESET"!==e.updateType&&"VISIBLE_WINDOW"!==e.updateType||this.selection||this.scheduleUpdateContentsFromWindow()}async setModel(e,t){this.#J!==e&&(this.lazySelectorStatsView=null,this.#J=e),e&&(this.#ee=i.Extras.FilmStrip.fromTraceData(e)),this.#z=t,this.tabbedPane.closeTabs([fi.PaintProfiler,fi.LayerViewer],!1);for(const i of this.rangeDetailViews.values())i.setModelWithEvents(t,e);this.lazyPaintProfilerView=null,this.lazyLayersView=null,await this.setSelection(null)}setContent(e){const t=this.tabbedPane.otherTabs(fi.Details);for(let e=0;e<t.length;++e)this.rangeDetailViews.has(t[e])||this.tabbedPane.closeTab(t[e]);this.defaultDetailsContentElement.removeChildren(),this.defaultDetailsContentElement.appendChild(e)}updateContents(){const e=this.rangeDetailViews.get(this.tabbedPane.selectedTabId||"");if(e){const t=h.TraceBounds.BoundsManager.instance().state();if(!t)return;const i=t.milli.timelineTraceWindow;e.updateContents(this.selection||yt.fromRange(i.min,i.max))}}appendTab(e,t,i,n){this.tabbedPane.appendTab(e,t,i,void 0,void 0,n),this.preferredTabId!==this.tabbedPane.selectedTabId&&this.tabbedPane.selectTab(e)}headerElement(){return this.tabbedPane.headerElement()}setPreferredTab(e){this.preferredTabId=e}scheduleUpdateContentsFromWindow(e=!1){this.#J?e?this.updateContentsFromWindow():this.updateContentsScheduled||(this.updateContentsScheduled=!0,setTimeout((()=>{this.updateContentsScheduled=!1,this.updateContentsFromWindow()}),100)):this.setContent(u.Fragment.html`<div/>`)}updateContentsFromWindow(){const e=h.TraceBounds.BoundsManager.instance().state();if(!e)return;const t=e.milli.timelineTraceWindow;this.updateSelectedRangeStats(t.min,t.max),this.updateContents()}#ie(e){if(!this.#ee)return null;const t=e.idle?e.startTime:e.endTime,n=i.Extras.FilmStrip.frameClosestToTimestamp(this.#ee,t);if(!n)return null;return i.Helpers.Timing.microSecondsToMilliseconds(n.screenshotEvent.ts)-e.endTime<10?n:null}async setSelection(e){if(!this.#J)return;if(this.detailsLinkifier.reset(),this.selection=e,!this.selection)return void this.scheduleUpdateContentsFromWindow(!0);const t=this.selection.object;if(yt.isSyntheticNetworkRequestDetailsEventSelection(t)){const e=t,i=ot(this.#J,e);await this.#te.setData(e,i),this.setContent(this.#te)}else if(yt.isTraceEventSelection(t)){const e=t,i=await xt.buildTraceEventDetails(this.#J,e,this.detailsLinkifier,!0);this.appendDetailsTabsForTraceEventAndShowDetails(e,i)}else if(yt.isFrameObject(t)){const e=t,i=this.#ie(e);this.setContent(xt.generateDetailsContentForFrame(e,this.#ee,i));const r=n.TargetManager.TargetManager.instance().rootTarget();if(e.layerTree&&r){const t=new E.TracingLayerTree.TracingFrameLayerTree(r,e.layerTree),i=this.layersView();i.showLayerTree(t),this.tabbedPane.hasTab(fi.LayerViewer)||this.appendTab(fi.LayerViewer,vi(ui.layers),i)}}else yt.isRangeSelection(t)&&this.updateSelectedRangeStats(this.selection.startTime,this.selection.endTime);this.updateContents()}tabSelected(e){e.data.isUserGesture&&(this.setPreferredTab(e.data.tabId),this.updateContents())}layersView(){return this.lazyLayersView||(this.lazyLayersView=new ri(this.showSnapshotInPaintProfiler.bind(this))),this.lazyLayersView}paintProfilerView(){return this.lazyPaintProfilerView?this.lazyPaintProfilerView:this.#J?(this.lazyPaintProfilerView=new oi(this.#J),this.lazyPaintProfilerView):null}showSnapshotInPaintProfiler(e){const t=this.paintProfilerView();t&&(t.setSnapshot(e),this.tabbedPane.hasTab(fi.PaintProfiler)||this.appendTab(fi.PaintProfiler,vi(ui.paintProfiler),t,!0),this.tabbedPane.selectTab(fi.PaintProfiler,!0))}showSelectorStatsForIndividualEvent(e){this.showAggregatedSelectorStats([e])}showAggregatedSelectorStats(e){const t=this.selectorStatsView();t.setAggregatedEvents(e),this.tabbedPane.hasTab(fi.SelectorStats)||this.appendTab(fi.SelectorStats,vi(ui.selectorStats),t)}appendDetailsTabsForTraceEventAndShowDetails(e,t){this.setContent(t),(i.Types.TraceEvents.isTraceEventPaint(e)||i.Types.TraceEvents.isTraceEventRasterTask(e))&&this.showEventInPaintProfiler(e),i.Types.TraceEvents.isTraceEventUpdateLayoutTree(e)&&this.showSelectorStatsForIndividualEvent(e)}showEventInPaintProfiler(e){const t=n.TargetManager.TargetManager.instance().models(n.PaintProfiler.PaintProfilerModel)[0];if(!t)return;const i=this.paintProfilerView();if(!i)return;i.setEvent(t,e)&&(this.tabbedPane.hasTab(fi.PaintProfiler)||this.appendTab(fi.PaintProfiler,vi(ui.paintProfiler),i))}updateSelectedRangeStats(t,n){if(!this.#z||!this.#J)return;const a=i.Helpers.Timing.traceWindowMilliSeconds(this.#J.Meta.traceBounds).min,s=xt.statsForTimeRange(this.#z,t,n),o=t-a,l=n-a,c=new Lt(null,null);c.addSection(vi(ui.rangeSS,{PH1:e.TimeUtilities.millisToString(o),PH2:e.TimeUtilities.millisToString(l)}));const d=xt.generatePieChart(s);c.appendElementRow("",d),this.setContent(c.fragment);const h=r.Settings.Settings.instance().createSetting("timeline-capture-selector-stats",!1).get();if(this.#z&&h){const e=i.Helpers.Trace.findUpdateLayoutTreeEvents(this.#z,i.Helpers.Timing.millisecondsToMicroseconds(t),i.Helpers.Timing.millisecondsToMicroseconds(n));e.length>0&&this.showAggregatedSelectorStats(e)}}}var fi;!function(e){e.Details="details",e.EventLog="event-log",e.CallTree="call-tree",e.BottomUp="bottom-up",e.PaintProfiler="paint-profiler",e.LayerViewer="layer-viewer",e.SelectorStats="selector-stats"}(fi||(fi={}));var yi=Object.freeze({__proto__:null,TimelineDetailsView:Ti,get Tab(){return fi}});function bi(e,t,i,n){const r=[...Si(e,t,e.Initiators.eventToInitiator),...Ei(t,e.Initiators.initiatorToEvents)];return r.forEach((t=>function(e,t,i,n){if(i.includes(e.event)){let i=n.Renderer.entryToNode.get(e.event)?.parent;for(;i?.entry&&!t.includes(i?.entry);)i=i.parent??void 0;e.event=i?.entry??e.event,e.isEntryHidden=!0}if(i.includes(e.initiator)){let i=n.Renderer.entryToNode.get(e.initiator)?.parent;for(;i?.entry&&!t.includes(i?.entry);)i=i.parent??void 0;e.initiator=i?.entry??e.initiator,e.isInitiatorHidden=!0}return e}(t,n,i,e))),r}function wi(e,t){return Si(e,t,e.NetworkRequests.eventToInitiator)}function Si(e,t,i){const n=[];let r=t;const a=new Set;for(a.add(r);r;){const t=i.get(r);if(t){if(a.has(t))break;n.push({event:r,initiator:t}),r=t,a.add(r);continue}const s=e.Renderer.entryToNode.get(r);if(!s){r=null;break}r=s.parent?.entry||null}return n}function Ei(e,t){const i=[],n=t.get(e);return n&&n.forEach((t=>{i.push({event:t,initiator:e})})),i}var Ci=Object.freeze({__proto__:null,initiatorsDataToDraw:bi,initiatorsDataToDrawForNetwork:wi});const ki={onIgnoreList:"On ignore list",mainS:"Main — {PH1}",main:"Main",frameS:"Frame — {PH1}",workerS:"`Worker` — {PH1}",workerSS:"`Worker`: {PH1} — {PH2}",dedicatedWorker:"Dedicated `Worker`",anonymous:"(anonymous)",threadS:"Thread {PH1}",raster:"Raster",threadPool:"Thread Pool",rasterizerThreadS:"Rasterizer Thread {PH1}",threadPoolThreadS:"Thread Pool Worker {PH1}",bidderWorkletS:"Bidder Worklet — {PH1}",bidderWorklet:"Bidder Worklet",sellerWorklet:"Seller Worklet",unknownWorklet:"Auction Worklet",workletService:"Auction Worklet Service",sellerWorkletS:"Seller Worklet — {PH1}",unknownWorkletS:"Auction Worklet — {PH1}",workletServiceS:"Auction Worklet Service — {PH1}",eventDispatchS:"Event: {PH1}"},xi=e.i18n.registerUIStrings("panels/timeline/ThreadAppender.ts",ki),Pi=e.i18n.getLocalizedString.bind(void 0,xi);class Ii{appenderName="Thread";#O;#e;#t;#ne=[];#re;#ae;#se;#oe;#le=!1;#ce=!1;threadType="MAIN_THREAD";isOnMainFrame;#de=a.Runtime.experiments.isEnabled("timeline-show-all-events");#he="";#me=null;constructor(e,t,i,n,a,s){this.#e=e,this.#O=new r.Color.Generator({min:30,max:330,count:void 0},{min:50,max:80,count:3},85),this.#O.setColorForID("","#f2ecdc"),this.#t=t,this.#ae=i,this.#se=n;const o="CPU_PROFILE"===s?this.#t.Samples?.profilesInProcess.get(i)?.get(n)?.profileCalls:this.#t.Renderer?.processes.get(i)?.threads?.get(n)?.entries,l="CPU_PROFILE"===s?this.#t.Samples?.profilesInProcess.get(i)?.get(n)?.profileTree:this.#t.Renderer?.processes.get(i)?.threads?.get(n)?.tree;if(!o||!l)throw new Error(`Could not find data for thread with id ${n} in process with id ${i}`);this.#ne=o,this.#re=l,this.#oe=a||Pi(ki.threadS,{PH1:n}),this.isOnMainFrame=Boolean(this.#t.Renderer?.processes.get(i)?.isOnMainFrame),this.threadType=s,this.#t.AuctionWorklets.worklets.has(i)&&(this.appenderName="Thread_AuctionWorklet"),this.#he=this.#t.Renderer?.processes.get(this.#ae)?.url||""}processId(){return this.#ae}threadId(){return this.#se}appendTrackAtLevel(e,t=!1){return 0===this.#ne.length?e:(this.#le=t,this.#pe(e))}setHeaderNestingLevel(e){this.#me=e}#ue(e){this.#ce||("RASTERIZER"===this.threadType||"THREAD_POOL"===this.threadType?this.#ge(e,this.threadType):this.#i(e),this.#ce=!0)}setHeaderAppended(e){this.#ce=e}headerAppended(){return this.#ce}#i(e){const t=W({shareHeaderLine:!1,collapsible:this.#ne.length>0});null!==this.#me&&(t.nestingLevel=this.#me);const i=O(this.#ve(),e,this.trackName(),t,!0,this.#le,!0);this.#e.registerTrackForGroup(i,this)}#ve(){switch(this.threadType){case"MAIN_THREAD":return this.isOnMainFrame?"thread.main":"thread.frame";case"WORKER":return"thread.worker";case"RASTERIZER":return"thread.rasterizer";case"AUCTION_WORKLET":return"thread.auction-worklet";case"OTHER":return"thread.other";case"CPU_PROFILE":return"thread.cpu-profile";case"THREAD_POOL":return"thread.pool";default:return null}}#ge(e,t){const i=this.#e.getCurrentTrackCountForThreadType(t);if(0===i){const t=W({shareHeaderLine:!1,collapsible:this.#ne.length>0}),i=O(null,e,this.trackName(),t,!1,this.#le);this.#e.getFlameChartTimelineData().groups.push(i)}const n=W({padding:2,nestingLevel:1,collapsible:!1}),r="RASTERIZER"===this.threadType?Pi(ki.rasterizerThreadS,{PH1:i+1}):Pi(ki.threadPoolThreadS,{PH1:i+1}),a=O(this.#ve(),e,r,n,!0,this.#le);this.#e.registerTrackForGroup(a,this)}trackName(){let e=null;switch(this.threadType){case"MAIN_THREAD":e=this.isOnMainFrame?Pi(ki.mainS,{PH1:this.#he}):Pi(ki.frameS,{PH1:this.#he});break;case"CPU_PROFILE":e=Pi(ki.main);break;case"WORKER":e=this.#Te();break;case"RASTERIZER":e=Pi(ki.raster);break;case"THREAD_POOL":e=Pi(ki.threadPool);break;case"OTHER":break;case"AUCTION_WORKLET":e=this.#fe();break;default:return c.assertNever(this.threadType,`Unknown thread type: ${this.threadType}`)}let t="";return this.#t.Meta.traceIsGeneric&&(t+=` (${this.threadId()})`),(e||this.#oe)+t}getUrl(){return this.#he}getEntries(){return this.#ne}#fe(){const e=this.#t.AuctionWorklets.worklets.get(this.#ae);if(!e)return Pi(ki.unknownWorklet);const t=e.host?`https://${e.host}`:"",i=t.length>0,n=e.args.data.utilityThread.tid===this.#se,r=e.args.data.v8HelperThread.tid===this.#se;if(n)return i?Pi(ki.workletServiceS,{PH1:t}):Pi(ki.workletService);if(r)switch(e.type){case"seller":return i?Pi(ki.sellerWorkletS,{PH1:t}):Pi(ki.sellerWorklet);case"bidder":return i?Pi(ki.bidderWorkletS,{PH1:t}):Pi(ki.bidderWorklet);case"unknown":return i?Pi(ki.unknownWorkletS,{PH1:t}):Pi(ki.unknownWorklet);default:c.assertNever(e.type,`Unexpected Auction Worklet Type ${e.type}`)}return i?Pi(ki.unknownWorkletS,{PH1:t}):Pi(ki.unknownWorklet)}#Te(){const e=this.#t.Renderer?.processes.get(this.#ae)?.url||"",t=this.#t.Workers.workerIdByThread.get(this.#se),i=t?this.#t.Workers.workerURLById.get(t):e;let r=i?Pi(ki.workerS,{PH1:i}):Pi(ki.dedicatedWorker);const a=void 0!==t&&n.TargetManager.TargetManager.instance().targetById(t);return a&&(r=Pi(ki.workerSS,{PH1:a.name(),PH2:e})),r}#pe(e){return this.#ye(this.#re.roots,e)}#ye(e,t,i=!1){const n=Ue.activeManager()?.getEntriesFilter().invisibleEntries()??[];let r=t;for(const a of e){let e=t;const s=a.entry,o=this.isIgnoreListedEntry(s);!n.includes(s)&&(Or(s,this.#t)||this.#de)&&!(o&&i)&&(this.#be(s,t),e++);const l=this.#ye(a.children,e,o);r=Math.max(l,r)}return r}#be(e,t){this.#ue(t);const i=this.#e.appendEventAtLevel(e,t,this);this.#we(e,i)}#we(e,t){const n=this.#e.getFlameChartTimelineData();Ue.activeManager()?.getEntriesFilter().isEntryExpandable(e)&&G(n,t,{type:"HIDDEN_DESCENDANTS_ARROW"});const r=this.#t.Warnings.perEvent.get(e);r&&(G(n,t,{type:"WARNING_TRIANGLE"}),r.includes("LONG_TASK")&&G(n,t,{type:"CANDY",startAtTime:i.Handlers.ModelHandlers.Warnings.LONG_MAIN_THREAD_TASK_THRESHOLD}))}isIgnoreListedEntry(e){if(!i.Types.TraceEvents.isProfileCall(e))return!1;const t=e.callFrame.url;return t&&this.isIgnoreListedURL(t)}isIgnoreListedURL(e){return S.IgnoreListManager.IgnoreListManager.instance().isUserIgnoreListedURL(e)}colorForEvent(e){if(this.#t.Meta.traceIsGeneric)return e.name?`hsl(${c.StringUtilities.hashCode(e.name)%300+30}, 40%, 70%)`:"#ccc";if(i.Types.TraceEvents.isProfileCall(e))return"(idle)"===e.callFrame.functionName?pe().idle.getComputedColorValue():"0"===e.callFrame.scriptId?pe().scripting.getComputedColorValue():this.#O.colorForID(e.callFrame.url);const t=he(e.name)?.category.getComputedColorValue();return t||pe().other.getComputedColorValue()}titleForEvent(e){if(this.isIgnoreListedEntry(e))return Pi(ki.onIgnoreList);if(i.Types.TraceEvents.isProfileCall(e)){if(this.#t.Samples){const t=i.Handlers.ModelHandlers.Samples.getProfileCallFunctionName(this.#t.Samples,e);if(t)return t}return e.callFrame.functionName||Pi(ki.anonymous)}if(i.Types.TraceEvents.isTraceEventDispatch(e))return Pi(ki.eventDispatchS,{PH1:e.args.data.type});const t=he(e.name)?.title;return t||e.name}highlightedEntryInfo(e){let t=this.titleForEvent(e);if(i.Types.TraceEvents.isTraceEventParseHTML(e)){const i=e.args.beginData.startLine,n=e.args.endData&&e.args.endData.endLine,r=e.args.beginData.url;t+=` - ${S.ResourceUtils.displayNameForURL(r)} [${-1!==n||n===i?`${i}...${n}`:i}]`}const n=this.#t.Renderer.entryToNode.get(e)?.selfTime;return{title:t,formattedTime:_(e.dur,n)}}}var Mi=Object.freeze({__proto__:null,ThreadAppender:Ii});const Li=new CSSStyleSheet;Li.replaceSync(".timeline-flamechart-popover{overflow:hidden}.timeline-flamechart-popover devtools-interaction-breakdown{margin-top:10px}.timeline-flamechart-popover span{margin-right:5px}.timeline-flamechart-popover span.timeline-info-network-time{color:var(--sys-color-primary)}.timeline-flamechart-popover span.timeline-info-time{color:var(--sys-color-green)}.timeline-flamechart-popover span.timeline-info-warning{color:var(--sys-color-error)}.timeline-flamechart-popover span.timeline-info-warning *{color:inherit}\n/*# sourceURL=timelineFlamechartPopover.css */\n");const Ri={frames:"Frames",idleFrame:"Idle Frame",droppedFrame:"Dropped Frame",partiallyPresentedFrame:"Partially Presented Frame",frame:"Frame"},Fi=e.i18n.registerUIStrings("panels/timeline/TimelineFlameChartDataProvider.ts",Ri),Di=e.i18n.getLocalizedString.bind(void 0,Fi);class Ai extends r.ObjectWrapper.ObjectWrapper{droppedFramePatternCanvas;partialFramePatternCanvas;timelineDataInternal;currentLevel;compatibilityTracksAppender;traceEngineData;isCpuProfile=!1;minimumBoundaryInternal;timeSpan;headerLevel1;headerLevel2;staticHeader;framesHeader;screenshotsHeader;entryData;entryTypeByLevel;screenshotImageCache;entryIndexToTitle;lastInitiatorEntry;lastInitiatorsData=[];lastSelection;#Se;#Ee=new WeakMap;constructor(){super(),this.reset(),this.#Se=`${p.Font.DEFAULT_FONT_SIZE} ${p.Font.getFontFamilyForCanvas()}`,this.droppedFramePatternCanvas=document.createElement("canvas"),this.partialFramePatternCanvas=document.createElement("canvas"),this.preparePatternCanvas(),this.timelineDataInternal=null,this.currentLevel=0,this.compatibilityTracksAppender=null,this.traceEngineData=null,this.minimumBoundaryInternal=0,this.timeSpan=0,this.headerLevel1=this.buildGroupStyle({shareHeaderLine:!1}),this.headerLevel2=this.buildGroupStyle({padding:2,nestingLevel:1,collapsible:!1}),this.staticHeader=this.buildGroupStyle({collapsible:!1}),this.framesHeader=this.buildGroupStyle({useFirstLineForOverview:!0}),this.screenshotsHeader=this.buildGroupStyle({useFirstLineForOverview:!0,nestingLevel:1,collapsible:!1,itemsHeight:150}),t.ThemeSupport.instance().addEventListener(t.ThemeChangeEvent.eventName,(()=>{const e=[this.headerLevel1,this.headerLevel2,this.staticHeader,this.framesHeader,this.screenshotsHeader];for(const i of e)i.color=t.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),i.backgroundColor=t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container")}))}hasTrackConfigurationMode(){return!0}modifyTree(e,t){const i=this.entryData[e];Ue.activeManager()?.getEntriesFilter().applyFilterAction({type:t,entry:i})}findPossibleContextMenuActions(e){const t=this.entryData[e];return Ue.activeManager()?.getEntriesFilter().findPossibleActions(t)}buildGroupStyle(e){const i={padding:4,height:17,collapsible:!0,color:t.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),backgroundColor:t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"),nestingLevel:0,shareHeaderLine:!0};return Object.assign(i,e)}setModel(e,t=!1){if(this.reset(),this.traceEngineData=e,hr.instance().modelChanged(e),this.isCpuProfile=t,e){const{traceBounds:t}=e.Meta,n=i.Helpers.Timing.microSecondsToMilliseconds(t.min),r=i.Helpers.Timing.microSecondsToMilliseconds(t.max);this.minimumBoundaryInternal=n,this.timeSpan=n===r?1e3:r-this.minimumBoundaryInternal}}compatibilityTracksAppenderInstance(e=!1){if(!this.compatibilityTracksAppender||e){if(!this.traceEngineData)throw new Error("Attempted to instantiate a CompatibilityTracksAppender without having set the trace parse data first.");this.timelineDataInternal=this.#Ce(),this.compatibilityTracksAppender=new Vr(this.timelineDataInternal,this.traceEngineData,this.entryData,this.entryTypeByLevel)}return this.compatibilityTracksAppender}#Ce(){return this.timelineDataInternal||(this.timelineDataInternal=p.FlameChart.FlameChartTimelineData.createEmpty()),this.timelineDataInternal}buildFromTrackAppenders(e){if(!this.compatibilityTracksAppender)return;const t=this.compatibilityTracksAppender.allVisibleTrackAppenders();for(const i of t){if(i instanceof Ii&&!i.trackName().includes(e?.filterThreadsByName||""))continue;const t=Boolean(e?.expandedTracks?.has(i.appenderName));this.currentLevel=i.appendTrackAtLevel(this.currentLevel,t)}}groupTreeEvents(e){return this.compatibilityTracksAppender?.groupEventsForTreeView(e)??null}mainFrameNavigationStartEvents(){return this.traceEngineData?this.traceEngineData.Meta.mainFrameNavigations:[]}entryTitle(e){const t=this.#ke(e);if("Screenshot"===t)return"";if("TrackAppender"===t){const t=this.timelineDataInternal.entryLevels[e],i=this.entryData[e];return this.compatibilityTracksAppender?.titleForEvent(i,t)||null}let i=this.entryIndexToTitle[e];return i||(i=`Unexpected entryIndex ${e}`,console.error(i)),i}textColor(e){const t=this.entryData[e];return Ai.timelineEntryIsTraceEvent(t)&&this.isIgnoreListedEvent(t)?"#888":Qi.textColor}entryFont(e){return this.#Se}reset(e=!0){this.currentLevel=0,this.entryData=[],this.entryTypeByLevel=[],this.entryIndexToTitle=[],this.screenshotImageCache=new Map,this.#Ee=new Map,e?(this.compatibilityTracksAppender=null,this.timelineDataInternal=null):!e&&this.timelineDataInternal&&(this.compatibilityTracksAppender?.setFlameChartDataAndEntryData(this.timelineDataInternal,this.entryData,this.entryTypeByLevel),this.compatibilityTracksAppender?.threadAppenders().forEach((e=>e.setHeaderAppended(!1))))}maxStackDepth(){return this.currentLevel}timelineData(e=!1){return this.timelineDataInternal&&0!==this.timelineDataInternal.entryLevels.length&&!e||(this.timelineDataInternal=p.FlameChart.FlameChartTimelineData.createEmpty(),e&&this.reset(!1),this.currentLevel=0,this.traceEngineData&&(this.compatibilityTracksAppender=this.compatibilityTracksAppenderInstance(),this.traceEngineData.Meta.traceIsGeneric?this.#xe():this.#Pe())),this.timelineDataInternal}#xe(){if(!this.compatibilityTracksAppender)return;const e=this.compatibilityTracksAppender.allThreadAppendersByProcess();for(const[t,i]of e){const e=this.buildGroupStyle({shareHeaderLine:!1}),n=this.traceEngineData?.Meta.processNames.get(t)?.args.name||"Process";this.appendHeader(`${n} (${t})`,e,!0,!1);for(const e of i)e.setHeaderNestingLevel(1),this.currentLevel=e.appendTrackAtLevel(this.currentLevel)}}#Pe(){this.isCpuProfile||this.#Ie();const e=e=>{switch(e.appenderName){case"Animations":return 0;case"Timings":return 1;case"Interactions":return 2;case"LayoutShifts":return 3;case"Extension":return 4;case"Thread":return 5;case"ServerTimings":return 6;case"GPU":return 7;case"Thread_AuctionWorklet":return 8;default:return 9}},t=this.compatibilityTracksAppender?this.compatibilityTracksAppender.allVisibleTrackAppenders():[];t.sort(((t,i)=>e(t)-e(i)));for(const e of t)if(this.traceEngineData&&(this.currentLevel=e.appendTrackAtLevel(this.currentLevel),this.timelineDataInternal&&!this.timelineDataInternal.selectedGroup&&e instanceof Ii&&("MAIN_THREAD"===e.threadType||"CPU_PROFILE"===e.threadType))){const t=this.compatibilityTracksAppender?.groupForAppender(e);t&&(this.timelineDataInternal.selectedGroup=t)}this.timelineDataInternal&&this.timelineDataInternal.selectedGroup&&(this.timelineDataInternal.selectedGroup.expanded=!0)}minimumBoundary(){return this.minimumBoundaryInternal}totalTime(){return this.timeSpan}static timelineEntryIsTraceEvent(e){return e instanceof i.Handlers.ModelHandlers.Frames.TimelineFrame==!1}search(e,t,n){const r=[];this.timelineData();for(let a=0;a<this.entryData.length;++a){const s=this.entryData[a];if(!s)continue;if(!Ai.timelineEntryIsTraceEvent(s))continue;if(i.Types.TraceEvents.isTraceEventScreenshot(s))continue;const o=i.Helpers.Timing.eventTimingsMilliSeconds(s).startTime,l=i.Helpers.Timing.eventTimingsMilliSeconds(s).endTime;o>t||((l||o)<e||n.accept(s,this.traceEngineData||void 0)&&r.push({index:a,startTimeMilli:o,provider:"main"}))}return r}isIgnoreListedEvent(e){return!!i.Types.TraceEvents.isProfileCall(e)&&this.isIgnoreListedURL(e.callFrame.url)}isIgnoreListedURL(e){return S.IgnoreListManager.IgnoreListManager.instance().isUserIgnoreListedURL(e)}getEntryTypeForLevel(e){return this.entryTypeByLevel[e]}#Ie(){if(!this.traceEngineData)return;const e=i.Extras.FilmStrip.fromTraceData(this.traceEngineData),t=e.frames.length>0;this.framesHeader.collapsible=t;const n="frames"===a.Runtime.Runtime.queryParam("flamechart-force-expand");this.appendHeader(Di(Ri.frames),this.framesHeader,!1,n),this.entryTypeByLevel[this.currentLevel]="Frame";for(const e of this.traceEngineData.Frames.frames)this.#Me(e);++this.currentLevel,t&&this.#Le(e)}#Le(e){if(!this.timelineDataInternal||!this.traceEngineData)return;let t;this.appendHeader("",this.screenshotsHeader,!1),this.entryTypeByLevel[this.currentLevel]="Screenshot";for(const n of e.frames){const e=i.Helpers.Timing.microSecondsToMilliseconds(n.screenshotEvent.ts);this.entryData.push(n.screenshotEvent),this.timelineDataInternal.entryLevels.push(this.currentLevel),this.timelineDataInternal.entryStartTimes.push(e),t&&this.timelineDataInternal.entryTotalTimes.push(e-t),t=e}if(e.frames.length&&void 0!==t){const e=i.Helpers.Timing.traceWindowMilliSeconds(this.traceEngineData.Meta.traceBounds).max;this.timelineDataInternal.entryTotalTimes.push(e-t)}++this.currentLevel}#ke(e){const t=this.timelineData().entryLevels[e];return this.entryTypeByLevel[t]}prepareHighlightedEntryInfo(t){let n,r="",a=[],o="timeline-info-time";const l=[],c=this.#ke(t);if("TrackAppender"===c){if(!this.compatibilityTracksAppender)return null;const e=this.entryData[t],o=this.timelineDataInternal.entryLevels[t],c=this.compatibilityTracksAppender.highlightedEntryInfo(e,o);if(n=c.title,r=c.formattedTime,a=c.warningElements||a,i.Types.TraceEvents.isSyntheticInteractionEvent(e)){const t=new s.InteractionBreakdown.InteractionBreakdown;t.entry=e,l.push(t)}}else{if("Frame"!==c)return null;{const a=this.entryData[t];r=e.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microSecondsToMilliseconds(a.duration),1),a.idle?n=Di(Ri.idleFrame):a.dropped?(n=a.isPartial?Di(Ri.partiallyPresentedFrame):Di(Ri.droppedFrame),o="timeline-info-warning"):n=Di(Ri.frame)}}const d=document.createElement("div"),h=u.UIUtils.createShadowRootWithCoreStyles(d,{cssFile:[Li],delegatesFocus:void 0}).createChild("div","timeline-flamechart-popover");if(h.createChild("span",o).textContent=r,h.createChild("span","timeline-info-title").textContent=n,a)for(const e of a)e.classList.add("timeline-info-warning"),h.appendChild(e);for(const e of l)h.appendChild(e);return d}prepareHighlightedHiddenEntriesArrowInfo(e){const t=document.createElement("div"),i=u.UIUtils.createShadowRootWithCoreStyles(t,{cssFile:[Li],delegatesFocus:void 0}),n=this.entryData[e],r=Ue.activeManager()?.getEntriesFilter().findHiddenDescendantsAmount(n);if(!r)return null;return i.createChild("div","timeline-flamechart-popover").createChild("span","timeline-info-title").textContent=r+" hidden",t}entryColor(e){const t=this.#ke(e);if("Frame"===t)return"white";if("TrackAppender"===t){const t=this.timelineDataInternal.entryLevels[e],i=this.entryData[e];return this.compatibilityTracksAppender?.colorForEvent(i,t)||""}return""}preparePatternCanvas(){const e=17;this.droppedFramePatternCanvas.width=e,this.droppedFramePatternCanvas.height=e,this.partialFramePatternCanvas.width=e,this.partialFramePatternCanvas.height=e;const t=this.droppedFramePatternCanvas.getContext("2d");if(t){t.translate(8.5,8.5),t.rotate(.25*Math.PI),t.translate(-8.5,-8.5),t.fillStyle="rgb(255, 255, 255)";for(let e=-17;e<34;e+=3)t.fillRect(e,-17,1,51)}const i=this.partialFramePatternCanvas.getContext("2d");i&&(i.strokeStyle="rgb(255, 255, 255)",i.lineWidth=2,i.beginPath(),i.moveTo(17,0),i.lineTo(10,7),i.moveTo(8,9),i.lineTo(2,15),i.stroke())}drawFrame(t,n,r,a,s,o,l){const c=this.entryData[t];if(a+=1,o-=2,c.idle)n.fillStyle="white";else if(c.dropped)if(c.isPartial){n.fillStyle="#f0e442",n.fillRect(a,s,o,l);const e=n.createPattern(this.partialFramePatternCanvas,"repeat");n.fillStyle=e||n.fillStyle}else{n.fillStyle="#f08080",n.fillRect(a,s,o,l);const e=n.createPattern(this.droppedFramePatternCanvas,"repeat");n.fillStyle=e||n.fillStyle}else n.fillStyle="#d7f0d1";n.fillRect(a,s,o,l);const d=e.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microSecondsToMilliseconds(c.duration),1),h=n.measureText(d).width;h<=o&&(n.fillStyle=this.textColor(t),n.fillText(d,a+(o-h)/2,s+l-4))}async drawScreenshot(e,t,i,n,r,a){const s=this.entryData[e];if(!this.screenshotImageCache.has(s)){this.screenshotImageCache.set(s,null);const e=s.args.dataUri,t=await u.UIUtils.loadImage(e);return this.screenshotImageCache.set(s,t),void this.dispatchEventToListeners("DataChanged")}const o=this.screenshotImageCache.get(s);if(!o)return;const l=i+1,c=n+1,d=a-2,h=d/o.naturalHeight,m=Math.floor(o.naturalWidth*h);t.save(),t.beginPath(),t.rect(i,n,r,a),t.clip(),t.drawImage(o,l,c,m,d),t.strokeStyle="#ccc",t.strokeRect(l-.5,c-.5,Math.min(r-1,m+1),d),t.restore()}decorateEntry(e,t,n,r,a,s,o,l,c){const d=this.#ke(e);if("Frame"===d)return this.drawFrame(e,t,n,r,a,s,o),!0;if("Screenshot"===d)return this.drawScreenshot(e,t,r,a,s,o),!0;if("TrackAppender"===d){const d=this.entryData[e];if(i.Types.TraceEvents.isSyntheticInteractionEvent(d))return this.#Re(t,e,n,d,r,a,l,s,o,c),!0}return!1}#Re(e,n,r,a,s,o,l,c,d,h){const m=i.Helpers.Timing.microSecondsToMilliseconds(a.ts),p=s+c;function g(e){const t=i.Helpers.Timing.microSecondsToMilliseconds(e);return Math.floor(l+(t-m)*h)}e.save(),e.fillStyle=t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container");let v=g(a.processingStart);const T=g(a.processingEnd);function f(t,i,n){e.moveTo(t,n-3),e.lineTo(t,n+3),e.moveTo(t,n),e.lineTo(i,n)}a.processingEnd-a.processingStart==0&&(v-=1),e.fillRect(s,o-.5,v-s,d),e.fillRect(T,o-.5,p-T,d);const y=g(a.ts),b=g(i.Types.Timing.MicroSeconds(a.ts+a.dur));e.beginPath(),e.lineWidth=1,e.strokeStyle="#ccc";const w=Math.floor(o+d/2)+.5,S=b-.5;if(f(y+.5,v,w),f(S,T,w),e.stroke(),r){const t=v>0?v:s;e.font=this.#Se;const i=5,a=5;u.UIUtils.measureTextWidth(e,r)<=T-t+i&&(e.fillStyle=this.textColor(n),e.fillText(r,t+i,o+d-a))}e.restore()}forceDecoration(e){const t=this.#ke(e);if("Frame"===t)return!0;if("Screenshot"===t)return!0;const n=this.entryData[e];return!!i.Types.TraceEvents.isSyntheticInteractionEvent(n)||Boolean(this.traceEngineData?.Warnings.perEvent.get(n))}appendHeader(e,t,i,n){const r={startLevel:this.currentLevel,name:e,style:t,selectable:i,expanded:n};return this.timelineDataInternal.groups.push(r),r}#Me(t){const n=this.entryData.length;this.entryData.push(t);const r=i.Helpers.Timing.microSecondsToMilliseconds(t.duration);this.entryIndexToTitle[n]=e.TimeUtilities.millisToString(r,!0),this.timelineDataInternal&&(this.timelineDataInternal.entryLevels[n]=this.currentLevel,this.timelineDataInternal.entryTotalTimes[n]=r,this.timelineDataInternal.entryStartTimes[n]=i.Helpers.Timing.microSecondsToMilliseconds(t.startTime))}createSelection(e){const t=this.#ke(e);let i=null;const n=this.entryData[e];return n&&Ai.timelineEntryIsTraceEvent(n)?i=yt.fromTraceEvent(n):"Frame"===t&&(i=yt.fromFrame(this.entryData[e])),i&&(this.lastSelection=new Zi(i,e)),i}formatValue(t,i){return e.TimeUtilities.preciseMillisToString(t,i)}canJumpToEntry(e){return!1}entryIndexForSelection(e){if(!e||yt.isRangeSelection(e.object)||yt.isSyntheticNetworkRequestDetailsEventSelection(e.object))return-1;if(this.lastSelection&&this.lastSelection.timelineSelection.object===e.object)return this.lastSelection.entryIndex;-1===this.entryData.indexOf(e.object)&&yt.isTraceEventSelection(e.object)&&this.timelineDataInternal?.selectedGroup&&(Ue.activeManager()?.getEntriesFilter().revealEntry(e.object),this.timelineData(!0));const t=this.entryData.indexOf(e.object);return-1!==t&&(this.lastSelection=new Zi(e,t)),t}indexForEvent(e){const t=this.#Ee.get(e);if(t)return t;const i=this.entryData.indexOf(e),n=i>-1?i:null;return this.#Ee.set(e,n),n}buildFlowForInitiator(e){if(!this.traceEngineData)return!1;if(!this.timelineDataInternal)return!1;if(this.lastInitiatorEntry===e)return this.lastInitiatorsData&&(this.timelineDataInternal.initiatorsData=this.lastInitiatorsData),!1;if(!this.compatibilityTracksAppender)return!1;const t=this.timelineDataInternal.initiatorsData.length;if(-1===e)return this.lastInitiatorEntry=e,0!==t&&(this.timelineDataInternal.resetFlowData(),!0);if("TrackAppender"!==this.#ke(e))return!1;const i=this.entryData[e];this.timelineDataInternal.resetFlowData(),this.lastInitiatorEntry=e;const n=Ue.activeManager()?.getEntriesFilter().invisibleEntries()??[],r=Ue.activeManager()?.getEntriesFilter().expandableEntries()??[],a=bi(this.traceEngineData,i,n,r);if(0===t&&0===a.length)return!1;for(const e of a){const t=this.indexForEvent(e.event),i=this.indexForEvent(e.initiator);null!==t&&null!==i&&this.timelineDataInternal.initiatorsData.push({initiatorIndex:i,eventIndex:t,isInitiatorHidden:e.isInitiatorHidden,isEntryHidden:e.isEntryHidden})}return this.lastInitiatorsData=this.timelineDataInternal.initiatorsData,!0}eventByIndex(e){if(e<0)return null;const t=this.#ke(e);return"TrackAppender"===t||"Frame"===t?this.entryData[e]:null}}const Ni=i.Types.Timing.MilliSeconds(.001);var Bi,Hi=Object.freeze({__proto__:null,TimelineFlameChartDataProvider:Ai,InstantEventVisibleDurationMs:Ni});function Ui(e){let i="--app-color-system";switch(e){case Bi.Doc:i="--app-color-doc";break;case Bi.JS:i="--app-color-scripting";break;case Bi.CSS:i="--app-color-css";break;case Bi.Img:i="--app-color-image";break;case Bi.Media:i="--app-color-media";break;case Bi.Font:i="--app-color-font";break;case Bi.Wasm:i="--app-color-wasm";break;case Bi.Other:default:i="--app-color-system"}return t.ThemeSupport.instance().getComputedValue(i)}function Wi(e){const t=function(e){switch(e.args.data.mimeType){case"text/html":return Bi.Doc;case"application/javascript":case"application/x-javascript":case"text/javascript":return Bi.JS;case"text/css":return Bi.CSS;case"image/gif":case"image/jpeg":case"image/png":case"image/svg+xml":case"image/webp":case"image/x-icon":return Bi.Img;case"audio/aac":case"audio/midi":case"audio/x-midi":case"audio/mpeg":case"audio/ogg":case"audio/wav":case"audio/webm":return Bi.Media;case"font/opentype":case"font/woff2":case"font/ttf":case"application/font-woff":return Bi.Font;case"application/wasm":return Bi.Wasm;default:return Bi.Other}}(e);return Ui(t)}!function(e){e.Doc="Doc",e.CSS="CSS",e.JS="JS",e.Font="Font",e.Img="Img",e.Media="Media",e.Wasm="Wasm",e.Other="Other"}(Bi||(Bi={}));const Oi={network:"Network",wsConnectionOpened:"WebSocket opened",wsConnectionOpenedWithUrl:"WebSocket opened: {PH1}",wsConnectionClosed:"WebSocket closed"},_i=e.i18n.registerUIStrings("panels/timeline/NetworkTrackAppender.ts",Oi),Vi=e.i18n.getLocalizedString.bind(void 0,_i);class Gi{appenderName="Network";#Fe;webSocketIdToLevel=new Map;#A=[];#Se;#De;constructor(e,i){this.#Fe=e,this.#A=i,this.#Se=`${p.Font.DEFAULT_FONT_SIZE} ${p.Font.getFontFamilyForCanvas()}`,t.ThemeSupport.instance().addEventListener(t.ThemeChangeEvent.eventName,(()=>{this.#De&&(this.#De.style.color=t.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),this.#De.style.backgroundColor=t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"))}))}group(){return this.#De}font(){return this.#Se}appendTrackAtLevel(e,t){return 0===this.#A.length?e:(this.#i(e,t),this.#Ae(this.#A,e))}#i(e,t){const i=W({shareHeaderLine:!1,useFirstLineForOverview:!1,useDecoratorsForOverview:!0}),n=[];for(const e in Bi)n.push({color:o.colorForNetworkCategory(e),category:e});this.#De=O("network",0,Vi(Oi.network),i,!0,t,!1,n),this.#Fe.groups.push(this.#De)}#Ae(e,t){for(let n=0;n<e.length;++n){const r=e[n];this.#Ne(r,t),i.Types.TraceEvents.isSyntheticNetworkRequestEvent(r)&&i.Helpers.Network.isSyntheticNetworkRequestEventRenderBlocking(r)&&G(this.#Fe,n,{type:"WARNING_TRIANGLE",customEndTime:r.args.data.syntheticData.finishTime})}return this.relayoutEntriesWithinBounds(e,i.Types.Timing.MilliSeconds(-1/0),i.Types.Timing.MilliSeconds(1/0))}#Ne(e,t){const n=this.#Fe.entryLevels.length;this.#Fe.entryLevels[n]=t,this.#Fe.entryStartTimes[n]=i.Helpers.Timing.microSecondsToMilliseconds(e.ts);const r=e.dur||i.Helpers.Timing.millisecondsToMicroseconds(Ni);return this.#Fe.entryTotalTimes[n]=i.Helpers.Timing.microSecondsToMilliseconds(r),t}relayoutEntriesWithinBounds(e,t,n){if(!this.#Fe||0===e.length)return 0;const r=[];this.webSocketIdToLevel=new Map;let a=0;for(let s=0;s<e.length;++s){const o=e[s],l=i.Helpers.Timing.microSecondsToMilliseconds(o.ts),c=o.dur?i.Helpers.Timing.microSecondsToMilliseconds(o.dur):Ni;if(!(l<n&&l+c>t)){this.#Fe.entryLevels[s]=-1;continue}let d;d="identifier"in o.args.data&&i.Types.TraceEvents.isWebSocketEvent(o)?this.getWebSocketLevel(o,r):V(o,r),this.#Fe.entryLevels[s]=d,a=Math.max(a,r.length,d)}for(let t=0;t<e.length;++t)-1===this.#Fe.entryLevels[t]&&(this.#Fe.entryLevels[t]=a);return a}getWebSocketLevel(e,t){const i=e.args.data.identifier;let n;return this.webSocketIdToLevel.has(i)?n=this.webSocketIdToLevel.get(i)||0:(n=V(e,t),this.webSocketIdToLevel.set(i,n)),n}colorForEvent(e){if(i.Types.TraceEvents.isSyntheticWebSocketConnectionEvent(e))return"";if(i.Types.TraceEvents.isWebSocketTraceEvent(e))return Ui(Bi.JS);if(!i.Types.TraceEvents.isSyntheticNetworkRequestEvent(e))throw new Error(`Unexpected Network Request: The event's type is '${e.name}'`);return Wi(e)}titleForEvent(e){return e.name}highlightedEntryInfo(e){return{title:this.titleForEvent(e),formattedTime:_(e.dur)}}titleForWebSocketEvent(e){return i.Types.TraceEvents.isTraceEventWebSocketCreate(e)?e.args.data.url?Vi(Oi.wsConnectionOpenedWithUrl,{PH1:e.args.data.url}):Vi(Oi.wsConnectionOpened):i.Types.TraceEvents.isTraceEventWebSocketDestroy(e)?Vi(Oi.wsConnectionClosed):e.name}}var zi=Object.freeze({__proto__:null,NetworkTrackAppender:Gi});class ji{#Be;#He;#A;#Ue;#We;#Oe;#_e;#j;#Ee=new Map;#Ve=-1;#Ge=[];constructor(){this.#Be=0,this.#He=0,this.#A=[],this.#Ue=0,this.#We=null,this.#j=null}setModel(e){this.#Oe=null,this.#A=[],this.#j=e,this.#Ee.clear(),this.#j&&(this.setEvents(this.#j),this.#ze(this.#j))}setEvents(e){e.NetworkRequests.webSocket&&e.NetworkRequests.webSocket.forEach((e=>{e.syntheticConnectionEvent&&this.#A.push(e.syntheticConnectionEvent),this.#A.push(...e.events)})),e.NetworkRequests.byTime&&this.#A.push(...e.NetworkRequests.byTime)}isEmpty(){return this.timelineData(),!this.#A.length}maxStackDepth(){return this.#Ue}hasTrackConfigurationMode(){return!1}timelineData(){return this.#Oe&&0!==this.#Oe.entryLevels.length?this.#Oe:(this.#Oe=p.FlameChart.FlameChartTimelineData.createEmpty(),this.#j?(this.#A.length||this.setEvents(this.#j),this.#We=new Gi(this.#Oe,this.#A),this.#Ue=this.#We.appendTrackAtLevel(0),this.#Oe):this.#Oe)}minimumBoundary(){return this.#Be}totalTime(){return this.#He}setWindowTimes(e,t){this.#je(e,t)}createSelection(e){if(-1===e)return null;const t=this.#A[e];return this.#_e=new Zi(yt.fromTraceEvent(t),e),this.#_e.timelineSelection}customizedContextMenu(e,t){const n=this.eventByIndex(t);if(!n||!i.Types.TraceEvents.isSyntheticNetworkRequestEvent(n))return;const r=F.NetworkRequest.createTimelineNetworkRequest(n),a=new u.ContextMenu.ContextMenu(e,{useSoftMenu:!0});return a.appendApplicableItems(r),a}indexForEvent(e){if(e instanceof i.Handlers.ModelHandlers.Frames.TimelineFrame)return null;if(!i.Types.TraceEvents.isNetworkTrackEntry(e))return null;const t=this.#Ee.get(e);if(void 0!==t)return t;const n=this.#A.indexOf(e),r=n>-1?n:null;return this.#Ee.set(e,r),r}eventByIndex(e){return this.#A.at(e)??null}entryIndexForSelection(e){if(!e)return-1;if(this.#_e&&this.#_e.timelineSelection.object===e.object)return this.#_e.entryIndex;if(!yt.isNetworkEventSelection(e.object))return-1;const t=this.#A.indexOf(e.object);return-1!==t&&(this.#_e=new Zi(yt.fromTraceEvent(e.object),t)),t}entryColor(e){if(!this.#We)throw new Error("networkTrackAppender should not be empty");return this.#We.colorForEvent(this.#A[e])}textColor(e){return Qi.textColor}entryTitle(e){const t=this.#A[e];if(i.Types.TraceEvents.isWebSocketTraceEvent(t)||i.Types.TraceEvents.isSyntheticWebSocketConnectionEvent(t))return this.#We?.titleForWebSocketEvent(t)||"";const n=new r.ParsedURL.ParsedURL(t.args.data.url);return n.isValid?`${n.displayName} (${n.host})`:t.args.data.url||null}entryFont(e){return this.#We?.font()||null}getDecorationPixels(e,t,n){const r=i.Helpers.Timing.microSecondsToMilliseconds(e.ts),a=e=>t+(e-r)*n,s=i.Helpers.Timing.microSecondsToMilliseconds(e.ts),o=i.Helpers.Timing.microSecondsToMilliseconds(e.ts+e.dur),l=i.Helpers.Timing.microSecondsToMilliseconds(e.args.data.syntheticData.sendStartTime),c=i.Helpers.Timing.microSecondsToMilliseconds(e.args.data.syntheticData.downloadStart),d=Math.max(a(l),t),h=Math.max(a(c),d),m=Math.max(a(i.Helpers.Timing.microSecondsToMilliseconds(e.args.data.syntheticData.finishTime)),h);return{sendStart:d,headersEnd:h,finish:m,start:a(s),end:Math.max(a(o),m)}}decorateEntry(e,t,n,r,a,s,o,l,c){const d=this.#A[e];return i.Types.TraceEvents.isSyntheticWebSocketConnectionEvent(d)?this.#qe(e,t,a,o,l,c):!!i.Types.TraceEvents.isSyntheticNetworkRequestEvent(d)&&this.#$e(e,t,n,r,a,s,o,l,c)}#$e(e,n,r,a,s,o,l,c,d){const h=this.#A[e];if(!i.Types.TraceEvents.isSyntheticNetworkRequestEvent(h))return!1;const{sendStart:m,headersEnd:p,finish:g,start:v,end:T}=this.getDecorationPixels(h,c,d);function f(e,t,i){n.moveTo(e,i-3),n.lineTo(e,i+3),n.moveTo(e,i),n.lineTo(t,i)}n.fillStyle="hsla(0, 100%, 100%, 0.8)",n.fillRect(m+.5,s+.5,p-m-.5,l-2),n.fillStyle=t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container"),n.fillRect(a,s-.5,m-a,l),n.fillRect(g,s-.5,a+o-g,l),n.beginPath(),n.lineWidth=1,n.strokeStyle="#ccc";const y=Math.floor(s+l/2)+.5,b=T-.5;f(v+.5,m,y),f(b,g,y),n.stroke();const w=Math.max(m,0),S=g-w;if(S>=20){let t=this.entryTitle(e)||"";if(h.args.data.fromServiceWorker&&(t="⚙ "+t),t){const e=4,i=l-5,r=u.UIUtils.trimTextEnd(n,t,S-2*e);n.fillStyle="#333",n.fillText(r,w+e,s+i)}}return!0}#qe(e,n,r,a,s,o){n.save();const l=this.#A[e],c=i.Helpers.Timing.microSecondsToMilliseconds(l.ts),d=e=>Math.floor(s+(e-c)*o),h=i.Helpers.Timing.microSecondsToMilliseconds(l.ts+l.dur),m=d(c)+.5,p=d(h)-.5;n.strokeStyle=t.ThemeSupport.instance().getComputedValue("--app-color-rendering");const u=Math.floor(r+a/2)+.5;return n.setLineDash([3,2]),n.moveTo(m,u-1),n.lineTo(p,u-1),n.moveTo(m,u+1),n.lineTo(p,u+1),n.stroke(),n.restore(),!0}forceDecoration(e){return!0}forceDrawableLevel(e){return this.#We?.webSocketIdToLevel.has(e)||!1}prepareHighlightedEntryInfo(e){const t=this.#A[e];if(i.Types.TraceEvents.isSyntheticNetworkRequestEvent(t)){const e=document.createElement("div"),i=u.UIUtils.createShadowRootWithCoreStyles(e,{cssFile:[Li],delegatesFocus:void 0}).createChild("div","timeline-flamechart-popover"),n=new s.NetworkRequestTooltip.NetworkRequestTooltip;return n.networkRequest=t,i.appendChild(n),e}return null}#ze(e){const{traceBounds:t}=e.Meta,n=i.Helpers.Timing.microSecondsToMilliseconds(t.min),r=i.Helpers.Timing.microSecondsToMilliseconds(t.max);this.#Be=n,this.#He=n===r?1e3:r-this.#Be}#je(e,t){this.#We&&this.#Oe&&(this.#Ue=this.#We.relayoutEntriesWithinBounds(this.#A,e,t),this.#Oe=p.FlameChart.FlameChartTimelineData.create({entryLevels:this.#Oe?.entryLevels,entryTotalTimes:this.#Oe?.entryTotalTimes,entryStartTimes:this.#Oe?.entryStartTimes,groups:this.#Oe?.groups,initiatorsData:this.#Oe.initiatorsData,entryDecorations:this.#Oe.entryDecorations}))}preferredHeight(){if(!this.#We||0===this.#Ue)return 0;const e=this.#We.group();return e?e.style.height*(this.isExpanded()?c.NumberUtilities.clamp(this.#Ue+1,7,8.5):1):0}isExpanded(){return Boolean(this.#We?.group()?.expanded)}formatValue(t,i){return e.TimeUtilities.preciseMillisToString(t,i)}canJumpToEntry(e){return!1}search(e,t,n){const r=[];for(let a=0;a<this.#A.length;a++){const s=this.#A.at(a);if(!s)continue;const o=i.Helpers.Timing.eventTimingsMilliSeconds(s).startTime,l=i.Helpers.Timing.eventTimingsMilliSeconds(s).endTime;o>t||(l<e||n.accept(s,this.#j??void 0)&&r.push({startTimeMilli:o,index:a,provider:"network"}))}return r}mainFrameNavigationStartEvents(){return this.#j?this.#j.Meta.mainFrameNavigations:[]}buildFlowForInitiator(e){if(!this.#j)return!1;if(!this.#Oe)return!1;if(this.#Ve===e)return this.#Ge&&(this.#Oe.initiatorsData=this.#Ge),!0;if(!this.#We)return!1;const t=this.#Oe.initiatorsData.length;if(-1===e)return this.#Ve=e,0!==t&&(this.#Oe.resetFlowData(),!0);const i=this.#A[e];this.#Oe.resetFlowData(),this.#Ve=e;const n=wi(this.#j,i);if(0===t&&0===n.length)return!1;for(const e of n){const t=this.indexForEvent(e.event),i=this.indexForEvent(e.initiator);null!==t&&null!==i&&this.#Oe.initiatorsData.push({initiatorIndex:i,eventIndex:t})}return this.#Ge=this.#Oe.initiatorsData,!0}}var qi=Object.freeze({__proto__:null,TimelineFlameChartNetworkDataProvider:ji});const $i=new CSSStyleSheet;$i.replaceSync(".timeline-overlays-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:200;pointer-events:none}.overlay-item{position:absolute;top:0;left:0}.overlay-type-ENTRY_SELECTED,\n.overlay-type-ENTRY_OUTLINE{pointer-events:none;border:2px solid var(--sys-color-primary);background-color:var(--sys-color-state-ripple-primary);&.cut-off-top{border-top:none}&.cut-off-bottom{border-bottom:none}}.overlay-type-ENTRY_OUTLINE{background-color:transparent;&.outline-reason-ERROR{border-color:var(--sys-color-error-bright);border-radius:var(--sys-shape-corner-small)}}.overlay-type-CANDY_STRIPED_TIME_RANGE{--red-stripe-width:2px;--white-stripe-width:10px;background-image:repeating-linear-gradient(315deg,var(--sys-color-error-bright),var(--sys-color-error-bright) var(--red-stripe-width),transparent var(--red-stripe-width),transparent var(--white-stripe-width));border:2px solid var(--sys-color-error-bright);&.cut-off-bottom{border-bottom:none}&.cut-off-top{border-top:none}}.overlay-type-ENTRIES_LINK{height:100%;width:100%}.overlay-type-TIME_RANGE{background:linear-gradient(180deg,rgb(255 125 210/0%) 0%,rgb(255 125 210/15%) 85%);border-color:var(--ref-palette-pink80);border-width:1px;border-style:solid;pointer-events:none;top:0;bottom:0;border-bottom-width:5px;&.overlap-1{bottom:55px;border-color:var(--ref-palette-pink70)}&.overlap-2{bottom:105px;border-color:var(--ref-palette-pink60)}}.overlay-type-CURSOR_TIMESTAMP_MARKER{top:0;bottom:0;width:2px;background-color:var(--sys-color-primary);pointer-events:none}.timeline-entry-tooltip-element:not(:empty){z-index:2000;position:absolute;contain:content;background-color:var(--sys-color-cdt-base-container);pointer-events:none;padding:4px 8px;white-space:nowrap;max-width:80%;box-shadow:var(--drop-shadow)}.overlay-type-TIMESPAN_BREAKDOWN{top:unset;bottom:0}\n/*# sourceURL=timelineFlameChartView.css */\n");const Ji={sAtS:"{PH1} at {PH2}"},Ki=e.i18n.registerUIStrings("panels/timeline/TimelineFlameChartView.ts",Ji),Yi=e.i18n.getLocalizedString.bind(void 0,Ki);class Xi extends u.Widget.VBox{delegate;searchResults=void 0;eventListeners;networkSplitWidget;mainDataProvider;mainFlameChart;networkFlameChartGroupExpansionSetting;networkDataProvider;networkFlameChart;networkPane;splitResizer;chartSplitWidget;brickGame;countersView;detailsSplitWidget;detailsView;onMainAddEntryLabelAnnotation;onNetworkAddEntryLabelAnnotation;onMainEntriesLinkAnnotationChange;onNetworkEntriesLinkAnnotationChange;onMainEntrySelected;onNetworkEntrySelected;#Je;#z;groupBySetting;searchableView;needsResizeToPreferredHeights;selectedSearchResult;searchRegex;#J;#Ke=null;#Ye=null;#N=this.#B.bind(this);#Xe=0;#Ze=setTimeout((()=>({})),0);#Qe=document.createElement("div");#et;#tt=null;#it=null;#nt=[];#rt=null;#at=document.createElement("div");#st=new Map;constructor(e){super(),this.element.classList.add("timeline-flamechart"),this.delegate=e,this.eventListeners=[],this.#J=null;const t=new u.Widget.VBox;t.element.classList.add("flame-charts-container"),this.networkSplitWidget=new u.SplitWidget.SplitWidget(!1,!1,"timeline-flamechart-main-view",150),this.networkSplitWidget.show(t.element),this.#Qe.classList.add("timeline-overlays-container"),t.element.appendChild(this.#Qe),this.#at.classList.add("timeline-entry-tooltip-element"),t.element.appendChild(this.#at),this.networkSplitWidget.sidebarElement().style.zIndex="120";const i=r.Settings.Settings.instance().createSetting("timeline-flamechart-main-view-group-expansion",{});this.mainDataProvider=new Ai,this.mainDataProvider.addEventListener("DataChanged",(()=>this.mainFlameChart.scheduleUpdate())),this.mainFlameChart=new p.FlameChart.FlameChart(this.mainDataProvider,this,{groupExpansionSetting:i,selectedElementOutline:!1,tooltipElement:this.#at,useOverlaysForCursorRuler:!0}),this.mainFlameChart.alwaysShowVerticalScroll(),this.mainFlameChart.enableRuler(!1),this.mainFlameChart.addEventListener("LatestDrawDimensions",(e=>{this.#et.updateChartDimensions("main",e.data.chart),this.#et.updateVisibleWindow(e.data.traceWindow),this.#et.update()})),this.networkFlameChartGroupExpansionSetting=r.Settings.Settings.instance().createSetting("timeline-flamechart-network-view-group-expansion",{}),this.networkDataProvider=new ji,this.networkFlameChart=new p.FlameChart.FlameChart(this.networkDataProvider,this,{groupExpansionSetting:this.networkFlameChartGroupExpansionSetting,selectedElementOutline:!1,tooltipElement:this.#at,useOverlaysForCursorRuler:!0}),this.networkFlameChart.alwaysShowVerticalScroll(),this.networkFlameChart.addEventListener("LatestDrawDimensions",(e=>{this.#et.updateChartDimensions("network",e.data.chart),this.#et.updateVisibleWindow(e.data.traceWindow),this.#et.update(),this.mainFlameChart.setTooltipYPixelAdjustment(this.#et.networkChartOffsetHeight())})),this.mainFlameChart.addEventListener("MouseMove",(e=>{this.#ot(e.data)})),this.networkFlameChart.addEventListener("MouseMove",(e=>{this.#ot(e.data)})),this.#et=new y.Overlays.Overlays({container:this.#Qe,flameChartsContainer:t.element,charts:{mainChart:this.mainFlameChart,mainProvider:this.mainDataProvider,networkChart:this.networkFlameChart,networkProvider:this.networkDataProvider}}),this.#et.addEventListener(y.Overlays.AnnotationOverlayActionEvent.eventName,(e=>{const{overlay:t,action:i}=e;"Remove"===i?(Ue.activeManager()?.getAnnotationByOverlay(t)===this.#tt&&(this.#tt=null),Ue.activeManager()?.removeAnnotationOverlay(t)):"Update"===i&&Ue.activeManager()?.updateAnnotationOverlay(t)})),this.networkPane=new u.Widget.VBox,this.networkPane.setMinimumSize(23,23),this.networkFlameChart.show(this.networkPane.element),this.splitResizer=this.networkPane.element.createChild("div","timeline-flamechart-resizer"),this.networkSplitWidget.hideDefaultResizer(!0),this.networkSplitWidget.installResizer(this.splitResizer),this.networkSplitWidget.setMainWidget(this.mainFlameChart),this.networkSplitWidget.setSidebarWidget(this.networkPane),this.chartSplitWidget=new u.SplitWidget.SplitWidget(!1,!0,"timeline-counters-split-view-state"),this.countersView=new it(this.delegate),this.chartSplitWidget.setMainWidget(t),this.chartSplitWidget.setSidebarWidget(this.countersView),this.chartSplitWidget.hideDefaultResizer(),this.chartSplitWidget.installResizer(this.countersView.resizerElement()),this.detailsSplitWidget=new u.SplitWidget.SplitWidget(!1,!0,"timeline-panel-details-split-view-state"),this.detailsSplitWidget.element.classList.add("timeline-details-split"),this.detailsView=new Ti(e),this.detailsSplitWidget.installResizer(this.detailsView.headerElement()),this.detailsSplitWidget.setMainWidget(this.chartSplitWidget),this.detailsSplitWidget.setSidebarWidget(this.detailsView),this.detailsSplitWidget.show(this.element),this.onMainAddEntryLabelAnnotation=this.onAddEntryLabelAnnotation.bind(this,this.mainDataProvider),this.onNetworkAddEntryLabelAnnotation=this.onAddEntryLabelAnnotation.bind(this,this.networkDataProvider),this.onMainEntriesLinkAnnotationChange=this.onEntriesLinkAnnotationChange.bind(this,this.mainDataProvider),this.onNetworkEntriesLinkAnnotationChange=this.onEntriesLinkAnnotationChange.bind(this,this.networkDataProvider),a.Runtime.experiments.isEnabled("perf-panel-annotations")&&(this.mainFlameChart.addEventListener("EntryLabelAnnotationAdded",this.onMainAddEntryLabelAnnotation,this),this.networkFlameChart.addEventListener("EntryLabelAnnotationAdded",this.onNetworkAddEntryLabelAnnotation,this),this.mainFlameChart.addEventListener("EntriesLinkAnnotationChanged",this.onMainEntriesLinkAnnotationChange,this),this.networkFlameChart.addEventListener("EntriesLinkAnnotationChanged",this.onNetworkEntriesLinkAnnotationChange,this)),this.onMainEntrySelected=this.onEntrySelected.bind(this,this.mainDataProvider),this.onNetworkEntrySelected=this.onEntrySelected.bind(this,this.networkDataProvider),this.mainFlameChart.addEventListener("EntrySelected",this.onMainEntrySelected,this),this.mainFlameChart.addEventListener("EntryInvoked",this.onMainEntrySelected,this),this.networkFlameChart.addEventListener("EntrySelected",this.onNetworkEntrySelected,this),this.networkFlameChart.addEventListener("EntryInvoked",this.onNetworkEntrySelected,this),this.mainFlameChart.addEventListener("EntryHovered",this.onEntryHovered,this),this.element.addEventListener("keydown",this.#lt.bind(this)),this.#Je=this.#ct.bind(this),this.#z=null,this.groupBySetting=r.Settings.Settings.instance().createSetting("timeline-tree-group-by",$t.GroupBy.None),this.groupBySetting.addChangeListener(this.refreshMainFlameChart,this),this.refreshMainFlameChart(),h.TraceBounds.onChange(this.#N)}setActiveInsight(e){this.#rt=e;for(const e of this.#nt)this.removeOverlay(e);if(this.#rt&&e){const t=e.createOverlayFn();this.#nt=t;for(const e of this.#nt)this.addOverlay(e);const i=this.calculateZoom(this.#nt);h.TraceBounds.BoundsManager.instance().setTimelineVisibleWindow(i)}}calculateZoom(e){const t=[];for(const i of e)switch(i.type){case"ENTRY_OUTLINE":{const{startTime:e,endTime:n}=this.#et.timingsForOverlayEntry(i.entry);t.push(e,n);break}case"CANDY_STRIPED_TIME_RANGE":t.push(i.bounds.min,i.bounds.max);break;case"TIMESPAN_BREAKDOWN":if("TIMESPAN_BREAKDOWN"===i.type)for(const e of i.sections)t.push(e.bounds.min,e.bounds.max)}const n=Math.min(...t),r=Math.max(...t),a=r-n,s=a/2;return{min:i.Types.Timing.MicroSeconds(n-s),max:i.Types.Timing.MicroSeconds(r+s),range:i.Types.Timing.MicroSeconds(a)}}#ot(e){const{mouseEvent:t,timeInMicroSeconds:i}=e;if(!t.shiftKey){this.#et.removeOverlaysOfType("CURSOR_TIMESTAMP_MARKER")>0&&this.#et.update()}!t.metaKey&&t.shiftKey&&this.addOverlay({type:"CURSOR_TIMESTAMP_MARKER",timestamp:i})}#lt(e){const t="fixme";e.key===t[this.#Xe]?(this.#Xe++,clearTimeout(this.#Ze),this.#Ze=setTimeout((()=>{this.#Xe=0}),2e3)):(this.#Xe=0,clearTimeout(this.#Ze)),5===this.#Xe&&this.runBrickBreakerGame()}runBrickBreakerGame(){[...this.element.childNodes].find((e=>e instanceof p.BrickBreaker.BrickBreaker))||(this.brickGame=new p.BrickBreaker.BrickBreaker(this.mainFlameChart),this.brickGame.classList.add("brick-game"),this.element.append(this.brickGame))}#B(e){if("MINIMAP_BOUNDS"===e.updateType)return;const t=e.state.milli.timelineTraceWindow,i=Boolean(e.options.shouldAnimate);this.mainFlameChart.setWindowTimes(t.min,t.max,i),this.networkDataProvider.setWindowTimes(t.min,t.max),this.networkFlameChart.setWindowTimes(t.min,t.max,i),this.updateSearchResults(!1,!1)}isNetworkTrackShownForTests(){return"OnlyMain"!==this.networkSplitWidget.showMode()}getMainDataProvider(){return this.mainDataProvider}refreshMainFlameChart(){this.mainFlameChart.update()}extensionDataVisibilityChanged(){this.#dt(),this.mainDataProvider.reset(!0),this.mainDataProvider.timelineData(!0),this.refreshMainFlameChart()}windowChanged(e,t,n){h.TraceBounds.BoundsManager.instance().setTimelineVisibleWindow(i.Helpers.Timing.traceWindowFromMilliSeconds(i.Types.Timing.MilliSeconds(e),i.Types.Timing.MilliSeconds(t)),{shouldAnimate:n})}updateRangeSelection(e,t){if(this.delegate.select(yt.fromRange(e,t)),a.Runtime.experiments.isEnabled("perf-panel-annotations")){const n=i.Helpers.Timing.traceWindowFromMilliSeconds(i.Types.Timing.MilliSeconds(e),i.Types.Timing.MilliSeconds(t));this.#tt&&!this.#tt?.label?(this.#tt.bounds=n,Ue.activeManager()?.updateAnnotation(this.#tt)):(this.#tt={type:"TIME_RANGE",label:"",bounds:n},Ue.activeManager()?.createAnnotation(this.#tt))}}getMainFlameChart(){return this.mainFlameChart}getNetworkFlameChart(){return this.networkFlameChart}updateSelectedGroup(e,t){e===this.mainFlameChart&&this.#Ye!==t?.name&&(this.#Ye=t?.name||null,this.#z=t?this.mainDataProvider.groupTreeEvents(t):null,this.#ht())}setModel(e,t=!1){e!==this.#J&&(this.#Ye=null,this.#J=e,r.EventTarget.removeEventListeners(this.eventListeners),this.#z=null,this.mainDataProvider.setModel(e,t),this.networkDataProvider.setModel(e),this.#dt(),this.updateSearchResults(!1,!1),this.refreshMainFlameChart(),this.#mt())}setInsights(e){this.#Ke!==e&&(this.#Ke=e)}#dt(){this.networkDataProvider.isEmpty()?(this.mainFlameChart.enableRuler(!0),this.networkSplitWidget.hideSidebar()):(this.mainFlameChart.enableRuler(!1),this.networkSplitWidget.showBoth(),this.resizeToPreferredHeights()),this.#et.reset(),this.mainFlameChart.reset(),this.networkFlameChart.reset(),this.updateSearchResults(!1,!1);const e=h.TraceBounds.BoundsManager.instance().state();if(!e)throw new Error("TimelineFlameChartView could not set the window bounds.");const t=e.milli.timelineTraceWindow;this.mainFlameChart.setWindowTimes(t.min,t.max),this.networkDataProvider.setWindowTimes(t.min,t.max),this.networkFlameChart.setWindowTimes(t.min,t.max)}#ct(){this.mainDataProvider.timelineData(!0),this.mainFlameChart.scheduleUpdate()}#ht(){this.countersView.setModel(this.#J,this.#z),this.detailsView.setModel(this.#J,this.#z)}#mt(){this.mainFlameChart.scheduleUpdate(),this.networkFlameChart.scheduleUpdate(),this.#pt()}#pt(){const e=[...this.mainFlameChart.timelineData()?.groups??[],...this.networkFlameChart.timelineData()?.groups??[]];for(const t of e){if(!t.jslogContext)continue;const e=this.#st.get(t.jslogContext)??Symbol(t.jslogContext);this.#st.has(t.jslogContext)||(this.#st.set(t.jslogContext,e),g.registerLoggable(e,`${g.section().context(`timeline.${t.jslogContext}`)}`,this.delegate.element))}}onEntryHovered(e){n.OverlayModel.OverlayModel.hideDOMNodeHighlight();const t=e.data,r=this.mainDataProvider.eventByIndex(t);if(!r||!this.#J)return;if(r instanceof i.Handlers.ModelHandlers.Frames.TimelineFrame)return;const a=ot(this.#J,r);if(!a)return;const s=i.Extras.FetchNodes.nodeIdsForEvent(this.#J,r);for(const e of s)new n.DOMModel.DeferredDOMNode(a,e).highlight()}highlightEvent(e){const t=e?this.mainDataProvider.entryIndexForSelection(yt.fromTraceEvent(e)):-1;t>=0?this.mainFlameChart.highlightEntry(t):this.mainFlameChart.hideHighlight()}willHide(){this.networkFlameChartGroupExpansionSetting.removeChangeListener(this.resizeToPreferredHeights,this),S.IgnoreListManager.IgnoreListManager.instance().removeChangeListener(this.#Je)}wasShown(){this.registerCSSFiles([$i]),this.networkFlameChartGroupExpansionSetting.addChangeListener(this.resizeToPreferredHeights,this),S.IgnoreListManager.IgnoreListManager.instance().addChangeListener(this.#Je),this.needsResizeToPreferredHeights&&this.resizeToPreferredHeights(),this.#mt()}updateCountersGraphToggle(e){e?this.chartSplitWidget.showBoth():this.chartSplitWidget.hideSidebar()}setSelection(e){const t=this.mainDataProvider.entryIndexForSelection(e),i=this.networkDataProvider.entryIndexForSelection(e);this.mainFlameChart.setSelectedEntry(t),this.networkFlameChart.setSelectedEntry(i),this.#et.removeOverlaysOfType("ENTRY_SELECTED"),null!==e&&yt.isRangeSelection(e.object)||!this.#tt||this.#tt.label||(Ue.activeManager()?.removeAnnotation(this.#tt),this.#tt=null);let n=this.mainDataProvider.entryIndexForSelection(e);this.mainFlameChart.setSelectedEntry(n),n=this.networkDataProvider.entryIndexForSelection(e),this.networkFlameChart.setSelectedEntry(n),this.detailsView&&this.detailsView.setSelection(e),e&&(yt.isTraceEventSelection(e.object)||yt.isSyntheticNetworkRequestDetailsEventSelection(e.object)||yt.isFrameObject(e.object))&&this.addOverlay({type:"ENTRY_SELECTED",entry:e.object})}addOverlay(e){const t=this.#et.add(e);return this.#et.update(),t}removeOverlay(e){this.#et.remove(e),this.#et.update()}updateExistingOverlay(e,t){this.#et.updateExisting(e,t),this.#et.update()}onAddEntryLabelAnnotation(e,t){const i=e.createSelection(t.data);i&&(yt.isTraceEventSelection(i.object)||yt.isSyntheticNetworkRequestDetailsEventSelection(i.object))&&(this.setSelection(i),Ue.activeManager()?.createAnnotation({type:"ENTRY_LABEL",entry:i.object,label:""}))}onEntriesLinkAnnotationChange(e,t){const i=this.#ut(t.data.entryFromIndex,e),n=t.data.entryToIndex?this.#ut(t.data.entryToIndex,e):null;i&&(this.setSelection(e.createSelection(t.data.entryFromIndex)),this.#it?(n?this.#it.entryTo=n:delete this.#it.entryTo,Ue.activeManager()?.updateAnnotation(this.#it)):(this.#it={type:"ENTRIES_LINK",entryFrom:i,...null!==n&&{entryTo:n}},Ue.activeManager()?.createAnnotation(this.#it)))}#ut(e,t){const i=t.createSelection(e);return i&&(yt.isTraceEventSelection(i.object)||yt.isSyntheticNetworkRequestDetailsEventSelection(i.object))?i.object:null}onEntrySelected(e,t){const i=e.timelineData();if(!i)return;const n=t.data,r=i.entryLevels[n],a=tn(i.groups,r);if(a&&a.jslogContext){const e=this.#st.get(a.jslogContext)??null;e&&g.logClick(e,new MouseEvent("click"))}e.buildFlowForInitiator(n),this.delegate.select(e.createSelection(n)),this.#it&&-1===n&&Ue.activeManager()?.removeAnnotation(this.#it),this.#it=null}resizeToPreferredHeights(){this.isShowing()?(this.needsResizeToPreferredHeights=!1,this.networkPane.element.classList.toggle("timeline-network-resizer-disabled",!this.networkDataProvider.isExpanded()),this.networkSplitWidget.setSidebarSize(this.networkDataProvider.preferredHeight()+this.splitResizer.clientHeight+p.FlameChart.RulerHeight+2)):this.needsResizeToPreferredHeights=!0}setSearchableView(e){this.searchableView=e}searchResultIndexForEntryIndex(e){return this.searchResults?this.searchResults.findIndex((t=>t.index===e)):-1}jumpToNextSearchResult(){if(!this.searchResults||!this.searchResults.length)return;const e=void 0!==this.selectedSearchResult?this.searchResults.indexOf(this.selectedSearchResult):-1;this.#gt(c.NumberUtilities.mod(e+1,this.searchResults.length))}jumpToPreviousSearchResult(){if(!this.searchResults||!this.searchResults.length)return;const e=void 0!==this.selectedSearchResult?this.searchResults.indexOf(this.selectedSearchResult):0;this.#gt(c.NumberUtilities.mod(e-1,this.searchResults.length))}supportsCaseSensitiveSearch(){return!0}supportsRegexSearch(){return!0}#gt(e){this.searchableView.updateCurrentMatchIndex(e);const t=this.searchResults?.at(e)??null;if(t){switch(t.provider){case"main":this.delegate.select(this.mainDataProvider.createSelection(t.index)),this.mainFlameChart.showPopoverForSearchResult(t.index);break;case"network":this.delegate.select(this.networkDataProvider.createSelection(t.index)),this.networkFlameChart.showPopoverForSearchResult(t.index);break;case"other":break;default:c.assertNever(t.provider,`Unknown SearchResult[provider]: ${t.provider}`)}this.selectedSearchResult=t}}updateSearchResults(e,t){const i=h.TraceBounds.BoundsManager.instance().state();if(!i)return;const n=this.selectedSearchResult;if(delete this.selectedSearchResult,this.searchResults=[],this.mainFlameChart.removeSearchResultHighlights(),this.networkFlameChart.removeSearchResultHighlights(),!this.searchRegex)return;const r=new Ut(this.searchRegex),a=i.milli.timelineTraceWindow,s=this.mainDataProvider.search(a.min,a.max,r),o=this.networkDataProvider.search(a.min,a.max,r);if(this.searchResults=s.concat(o).sort(((e,t)=>e.startTimeMilli-t.startTimeMilli)),this.searchableView.updateSearchMatchesCount(this.searchResults.length),this.searchResults.length<=200&&(this.mainFlameChart.highlightAllEntries(s.map((e=>e.index))),this.networkFlameChart.highlightAllEntries(o.map((e=>e.index)))),!e||!this.searchResults.length)return;let l=this.#vt(n);-1===l&&(l=t?this.searchResults.length-1:0),this.#gt(l)}#vt(e){return e?this.searchResults?.findIndex((t=>t.provider===e.provider&&t.index===e.index))??-1:-1}getSearchResults(){return this.searchResults}onSearchCanceled(){void 0!==this.selectedSearchResult&&this.delegate.select(null),delete this.searchResults,delete this.selectedSearchResult,delete this.searchRegex,this.mainFlameChart.showPopoverForSearchResult(-1),this.mainFlameChart.removeSearchResultHighlights(),this.networkFlameChart.showPopoverForSearchResult(-1),this.networkFlameChart.removeSearchResultHighlights()}performSearch(e,t,i){this.searchRegex=e.toSearchRegex().regex,this.updateSearchResults(t,i)}}class Zi{timelineSelection;entryIndex;constructor(e,t){this.timelineSelection=e,this.entryIndex=t}}const Qi={textColor:"#333"};class en{startTimeInternal;startOffset;style;constructor(e,t,i){this.startTimeInternal=e,this.startOffset=t,this.style=i}startTime(){return this.startTimeInternal}color(){return this.style.color}title(){if(this.style.lowPriority)return null;const t=e.TimeUtilities.millisToString(this.startOffset);return Yi(Ji.sAtS,{PH1:this.style.title,PH2:t})}draw(e,t,i,n){this.style.lowPriority&&n<4||(e.save(),this.style.tall&&(e.strokeStyle=this.style.color,e.lineWidth=this.style.lineWidth,e.translate(this.style.lineWidth<1||1&this.style.lineWidth?.5:0,.5),e.beginPath(),e.moveTo(t,0),e.setLineDash(this.style.dashStyle),e.lineTo(t,e.canvas.height),e.stroke()),e.restore())}}function tn(e,t){return e.find(((i,n)=>{const r=e.at(n+1),a=r?r.startLevel-1:1/0;return i.startLevel<=t&&a>=t}))??null}var nn=Object.freeze({__proto__:null,TimelineFlameChartView:Xi,Selection:Zi,FlameChartStyle:Qi,TimelineFlameChartMarker:en,groupForLevel:tn});const rn={net:"NET",cpu:"CPU",heap:"HEAP",sSDash:"{PH1} – {PH2}"},an=e.i18n.registerUIStrings("panels/timeline/TimelineEventOverview.ts",rn),sn=e.i18n.getLocalizedString.bind(void 0,an);class on extends p.TimelineOverviewPane.TimelineOverviewBase{constructor(e,t){super(),this.element.id="timeline-overview-"+e,this.element.classList.add("overview-strip"),t&&(this.element.createChild("div","timeline-overview-strip-title").textContent=t)}renderBar(e,t,i,n,r){const a=e,s=t-e,o=this.context();o.fillStyle=r,o.fillRect(a,i,s,n)}}const ln=new Set(["VeryHigh","High","Medium"]);class cn extends on{#t;constructor(e){super("network",sn(rn.net)),this.#t=e}update(e,t){this.resetCanvas(),this.#Tt(e,t)}#Tt(e,t){if(!this.#t)return;const n=e&&t?{min:e,max:t,range:t-e}:i.Helpers.Timing.traceWindowMilliSeconds(this.#t.Meta.traceBounds),r=this.height()/2,a=this.width(),s=a/n.range,o=new Path2D,l=new Path2D;for(const e of this.#t.NetworkRequests.byTime){const t=ln.has(e.args.data.priority)?o:l,{startTime:c,endTime:d}=i.Helpers.Timing.eventTimingsMilliSeconds(e),h=Math.max(Math.floor((c-n.min)*s),0),m=Math.min(Math.ceil((d-n.min)*s+1),a);t.rect(h,0,m-h,r-1)}const c=this.context();c.save(),c.fillStyle="hsl(214, 60%, 60%)",c.fill(o),c.translate(0,r),c.fillStyle="hsl(214, 80%, 80%)",c.fill(l),c.restore()}}const dn=new WeakMap;class hn extends on{backgroundCanvas;#t;#ft=!1;#yt;#bt;constructor(e){super("cpu-activity",sn(rn.cpu)),this.#t=e,this.backgroundCanvas=this.element.createChild("canvas","fill background"),this.#yt=i.Helpers.Timing.traceWindowMilliSeconds(e.Meta.traceBounds).min,this.#bt=i.Helpers.Timing.traceWindowMilliSeconds(e.Meta.traceBounds).max}#wt(e){if(i.Types.TraceEvents.isProfileCall(e)&&"(idle)"===e.callFrame.functionName)return ne.IDLE;return(he(e.name)?.category||pe().other).name}resetCanvas(){super.resetCanvas(),this.#ft=!1,this.backgroundCanvas.width=this.element.clientWidth*window.devicePixelRatio,this.backgroundCanvas.height=this.element.clientHeight*window.devicePixelRatio}#St(e){const t=4*window.devicePixelRatio,n=this.width(),r=this.height(),a=r,s=this.#bt-this.#yt,o=t/(n/s),l=pe(),c=fe(),d=c.indexOf(ne.OTHER);console.assert(0===c.indexOf(ne.IDLE));for(let e=0;e<c.length;++e)dn.set(l[c[e]],e);const h=(e,h)=>{const m=new gn(this.#yt,o,(function(e){let i=a;for(let n=1;n<c.length;++n){i-=(e[n]||0)/o*r,g[n].bezierCurveTo(p,v[n],p,i,p+t/2,i),v[n]=i}p+=t}));let p=0;const u=[],g=[],v=[];for(let e=0;e<c.length;++e)g[e]=new Path2D,g[e].moveTo(0,r),v[e]=r;const T=i.Helpers.Timing.millisecondsToMicroseconds(this.#yt),f=i.Helpers.Timing.millisecondsToMicroseconds(this.#bt),y={min:T,max:f,range:i.Types.Timing.MicroSeconds(f-T)},b=i.Types.Timing.MicroSeconds(y.range>2e5?16e3:0);i.Helpers.TreeHelpers.walkEntireTree(h.entryToNode,h.tree,(e=>{const t=this.#wt(e);if(!t||"idle"===t)return;const n=i.Helpers.Timing.microSecondsToMilliseconds(e.ts),r=u.length?u[u.length-1]:0;m.appendInterval(n,r);const a=c.indexOf(t);u.push(a||d)}),(function(e){const t=i.Helpers.Timing.microSecondsToMilliseconds(e.ts)+i.Helpers.Timing.microSecondsToMilliseconds(i.Types.Timing.MicroSeconds(e.dur||0)),n=u.pop();void 0!==t&&n&&m.appendInterval(t,n)}),y,b),m.appendInterval(this.#yt+s+o,0);for(let t=c.length-1;t>0;--t){g[t].lineTo(n,r);const i=l[c[t]].getComputedColorValue();e.fillStyle=i,e.fill(g[t]),e.strokeStyle="white",e.lineWidth=1,e.stroke(g[t])}},m=this.backgroundCanvas.getContext("2d");if(!m)throw new Error("Could not find 2d canvas");const p=i.Handlers.Threads.threadsInTrace(e),u=this.context();for(const e of p){h("MAIN_THREAD"===e.type||"CPU_PROFILE"===e.type?u:m,e)}!function(e){const t=4*window.devicePixelRatio;e.save(),e.lineWidth=t/Math.sqrt(8);for(let i=.5;i<n+r;i+=t)e.moveTo(i,0),e.lineTo(i-r,r);e.globalCompositeOperation="destination-out",e.stroke(),e.restore()}(m)}update(){const e=h.TraceBounds.BoundsManager.instance().state(),t=e?.milli.minimapTraceBounds;t&&(t.min===this.#yt&&t.max===this.#bt&&this.#ft||(this.#yt=t.min,this.#bt=t.max,this.resetCanvas(),this.#ft=!0,this.#St(this.#t)))}}class mn extends on{#t;constructor(e){super("responsiveness",null),this.#t=e}#Et(){const{topLevelRendererIds:e}=this.#t.Meta,t=new Set(["LONG_TASK","FORCED_REFLOW","IDLE_CALLBACK_OVER_TIME"]),i=new Set;for(const n of t){const t=this.#t.Warnings.perWarning.get(n);if(t)for(const n of t)e.has(n.pid)&&i.add(n)}return i}update(e,t){this.resetCanvas();const n=this.height(),r=e&&t?{min:i.Helpers.Timing.millisecondsToMicroseconds(e),max:i.Helpers.Timing.millisecondsToMicroseconds(t),range:i.Helpers.Timing.millisecondsToMicroseconds(i.Types.Timing.MilliSeconds(t-e))}:this.#t.Meta.traceBounds,a=r.range,s=this.width()/a,o=this.context(),l=new Path2D,c=new Path2D,d=this.#Et();for(const e of d)h(e);function h(e){const{startTime:t,duration:a}=i.Helpers.Timing.eventTimingsMicroSeconds(e),o=Math.round(s*(t-r.min)),d=Math.round(s*a);l.rect(o,0,d,n),c.moveTo(o+d,0),c.lineTo(o+d,n)}o.fillStyle="hsl(0, 80%, 90%)",o.strokeStyle="red",o.lineWidth=2*window.devicePixelRatio,o.fill(l),o.stroke(c)}}class pn extends on{frameToImagePromise;lastFrame=null;lastElement;drawGeneration;emptyImage;#ee=null;constructor(e){super("filmstrip",null),this.element.setAttribute("jslog",`${g.section("film-strip")}`),this.frameToImagePromise=new Map,this.#ee=e,this.lastFrame=null,this.lastElement=null,this.reset()}update(e,t){this.resetCanvas();const i=this.#ee?this.#ee.frames:[];if(!i.length)return;if(0===this.height())return void console.warn("TimelineFilmStrip could not be drawn as its canvas height is 0");const n=Symbol("drawGeneration");this.drawGeneration=n,this.imageByFrame(i[0]).then((i=>{if(this.drawGeneration!==n)return;if(!i||!i.naturalWidth||!i.naturalHeight)return;const r=this.height()-2*pn.Padding,a=Math.ceil(r*i.naturalWidth/i.naturalHeight),s=Math.min(200/i.naturalWidth,1);this.emptyImage=new Image(i.naturalWidth*s,i.naturalHeight*s),this.drawFrames(a,r,e,t)}))}async imageByFrame(e){let t=this.frameToImagePromise.get(e);return t||(t=u.UIUtils.loadImage(e.screenshotEvent.args.dataUri),this.frameToImagePromise.set(e,t)),t}drawFrames(e,t,n,r){if(!e)return;if(!this.#ee||this.#ee.frames.length<1)return;const a=pn.Padding,s=this.width(),o=n??i.Helpers.Timing.microSecondsToMilliseconds(this.#ee.zeroTime),l=(r?r-o:i.Helpers.Timing.microSecondsToMilliseconds(this.#ee.spanTime))/s,c=this.context(),d=this.drawGeneration;c.beginPath();for(let n=a;n<s;n+=e+2*a){const r=i.Types.Timing.MilliSeconds(o+(n+e/2)*l),a=i.Helpers.Timing.millisecondsToMicroseconds(r),s=i.Extras.FilmStrip.frameClosestToTimestamp(this.#ee,a);s&&(c.rect(n-.5,.5,e+1,t+1),this.imageByFrame(s).then(h.bind(this,n)))}function h(i,n){this.drawGeneration===d&&n&&c.drawImage(n,i,1,e,t)}c.strokeStyle="#ddd",c.stroke()}async overviewInfoPromise(e){if(!this.#ee||0===this.#ee.frames.length)return null;const t=this.calculator();if(!t)return null;const n=i.Types.Timing.MilliSeconds(t.positionToTime(e)),r=i.Helpers.Timing.millisecondsToMicroseconds(n),a=i.Extras.FilmStrip.frameClosestToTimestamp(this.#ee,r);if(a===this.lastFrame)return this.lastElement;const s=a?this.imageByFrame(a):Promise.resolve(this.emptyImage),o=await s,l=document.createElement("div");return l.classList.add("frame"),o&&l.createChild("div","thumbnail").appendChild(o),this.lastFrame=a,this.lastElement=l,l}reset(){this.lastFrame=null,this.lastElement=null,this.frameToImagePromise=new Map}static Padding=2}class un extends on{heapSizeLabel;#t;constructor(e){super("memory",sn(rn.heap)),this.heapSizeLabel=this.element.createChild("div","memory-graph-label"),this.#t=e}resetHeapSizeLabels(){this.heapSizeLabel.textContent=""}update(e,t){this.resetCanvas();const n=window.devicePixelRatio;if(0===this.#t.Memory.updateCountersByProcess.size)return void this.resetHeapSizeLabels();const r=Array.from(this.#t.Meta.topLevelRendererIds).map((e=>this.#t.Memory.updateCountersByProcess.get(e)||[])).filter((e=>e.length>0)),a=3*n;let s=0,o=1e11;const l=e&&t?{min:e,max:t,range:t-e}:i.Helpers.Timing.traceWindowMilliSeconds(this.#t.Meta.traceBounds),d=l.min,h=l.max;function m(e){const t=e.args.data;t&&t.jsHeapSizeUsed&&(s=Math.max(s,t.jsHeapSizeUsed),o=Math.min(o,t.jsHeapSizeUsed))}for(let e=0;e<r.length;e++)r[e].forEach(m);o=Math.min(o,s);const p=this.width(),u=this.height()-a,g=p/(h-d),v=(u-1)/Math.max(s-o,1),T=new Array(p);function f(e){const t=e.args.data;if(!t||!t.jsHeapSizeUsed)return;const{startTime:n}=i.Helpers.Timing.eventTimingsMilliSeconds(e),r=Math.round((n-d)*g),a=Math.round((t.jsHeapSizeUsed-o)*v);T[r]=Math.max(T[r]||0,a)}for(let e=0;e<r.length;e++)r[e].forEach(f);const y=this.context(),b=u+a+1;y.translate(.5,.5),y.beginPath(),y.moveTo(-1,b);let w=0,S=!0,E=0;for(let e=0;e<T.length;e++){if(void 0===T[e])continue;S&&(S=!1,w=T[e],y.lineTo(-1,u-w));const t=T[e];Math.abs(t-w)>2&&Math.abs(e-E)>1&&y.lineTo(e,u-w),w=t,y.lineTo(e,u-w),E=e}y.lineTo(p+1,u-w),y.lineTo(p+1,b),y.closePath(),y.fillStyle="hsla(220, 90%, 70%, 0.2)",y.fill(),y.lineWidth=1,y.strokeStyle="hsl(220, 90%, 70%)",y.stroke(),this.heapSizeLabel.textContent=sn(rn.sSDash,{PH1:c.NumberUtilities.bytesToString(o),PH2:c.NumberUtilities.bytesToString(s)})}}class gn{lastTime;quantDuration;callback;counters;remainder;constructor(e,t,i){this.lastTime=e,this.quantDuration=t,this.callback=i,this.counters=[],this.remainder=t}appendInterval(e,t){let i=e-this.lastTime;if(i<=this.remainder)return this.counters[t]=(this.counters[t]||0)+i,this.remainder-=i,void(this.lastTime=e);for(this.counters[t]=(this.counters[t]||0)+this.remainder,this.callback(this.counters),i-=this.remainder;i>=this.quantDuration;){const e=[];e[t]=this.quantDuration,this.callback(e),i-=this.quantDuration}this.counters=[],this.counters[t]=i,this.lastTime=e,this.remainder=this.quantDuration-i}}var vn=Object.freeze({__proto__:null,TimelineEventOverview:on,TimelineEventOverviewNetwork:cn,TimelineEventOverviewCPUActivity:hn,TimelineEventOverviewResponsiveness:mn,TimelineFilmStripOverview:pn,TimelineEventOverviewMemory:un,Quantizer:gn});const Tn=new CSSStyleSheet;Tn.replaceSync('.drop-down{box-shadow:var(--drop-shadow);background:var(--sys-color-cdt-base-container)}.preview-item{border-bottom:1px solid var(--sys-color-divider);&:first-child{border-top:1px solid var(--sys-color-divider)}padding:6px 10px;position:relative;&.selected::before{content:" ";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:var(--sys-color-primary)}}.preview-item canvas{width:100%;height:100%}.text-details > span{flex:1 0;padding-left:var(--sys-size-5);padding-right:var(--sys-size-5)}.text-details .name{font:var(--sys-typescale-body4-medium)}.text-details span.time{color:var(--sys-color-token-subtle);font:var(--sys-typescale-body4-regular);text-align:right}.screenshot-thumb{display:flex;border:1px solid var(--sys-color-surface3);margin:2px 4px}.screenshot-thumb img{margin:auto;max-width:100%;max-height:100%}.landing-page-item{font:var(--sys-typescale-body4-regular);display:flex;align-items:center;gap:var(--sys-size-5)}\n/*# sourceURL=timelineHistoryManager.css */\n');const fn=1/0,yn={currentSessionSS:"Current Session: {PH1}. {PH2}",landingPageTitleLocalMetrics:"Local metrics",landingPageTitleLocalAndFieldMetrics:"Local and field metrics",noRecordings:"(no recordings)",sAgo:"({PH1} ago)",moments:"moments",sM:"{PH1} m",sH:"{PH1} h",sD:"{PH1} #{PH2}",selectTimelineSession:"Select Timeline Session"},bn=e.i18n.registerUIStrings("panels/timeline/TimelineHistoryManager.ts",yn),wn=e.i18n.getLocalizedString.bind(void 0,bn);class Sn{recordings;action;nextNumberByDomain;buttonInternal;allOverviews;totalHeight;enabled;lastActiveTrace=null;#Ct;constructor(e){this.recordings=[],this.#Ct=e,this.action=u.ActionRegistry.ActionRegistry.instance().getAction("timeline.show-history"),this.nextNumberByDomain=new Map,this.buttonInternal=new In(this.action),u.ARIAUtils.markAsMenuButton(this.buttonInternal.element),this.clear(),this.allOverviews=[{constructor:e=>{const t=this.#Ct?.getControls().find((e=>e instanceof mn));return t||new mn(e)},height:3},{constructor:e=>{const t=this.#Ct?.getControls().find((e=>e instanceof hn));return t||new hn(e)},height:20},{constructor:e=>{const t=this.#Ct?.getControls().find((e=>e instanceof cn));return t||new cn(e)},height:8}],this.totalHeight=this.allOverviews.reduce(((e,t)=>e+t.height),0),this.enabled=!0,D.CrUXManager.instance().addEventListener("field-data-changed",(()=>{this.#kt()}))}#kt(){if("LANDING_PAGE"===this.lastActiveTrace?.type){const e=this.title(this.lastActiveTrace);this.buttonInternal.setTitle(e),this.buttonInternal.setText(e)}}addRecording(e){const t=e.filmStripForPreview;this.lastActiveTrace=e.data,this.recordings.unshift(e.data),this.#xt(e.data.traceParseDataIndex,e.traceParsedData,t,e.startTime);const i=this.title(e.data);this.buttonInternal.setText(i);const n=this.action.title();if(u.ARIAUtils.setLabel(this.buttonInternal.element,wn(yn.currentSessionSS,{PH1:i,PH2:n})),this.updateState(),this.recordings.length<=En)return;const r=this.recordings.reduce(((e,t)=>a(e.traceParseDataIndex)<a(t.traceParseDataIndex)?e:t));function a(e){const t=Sn.dataForTraceIndex(e);if(!t)throw new Error("Unable to find data for model");return t.lastUsed}this.recordings.splice(this.recordings.indexOf(r),1)}setEnabled(e){this.enabled=e,this.updateState()}button(){return this.buttonInternal}clear(){this.recordings=[],this.lastActiveTrace=null,this.updateState(),this.buttonInternal.setText(wn(yn.noRecordings)),this.nextNumberByDomain.clear()}#Pt(){return a.Runtime.experiments.isEnabled("timeline-observations")?1:2}#It(){return this.lastActiveTrace?"LANDING_PAGE"===this.lastActiveTrace.type?fn:this.lastActiveTrace.traceParseDataIndex:-1}async showHistoryDropDown(){if(this.recordings.length<this.#Pt()||!this.enabled)return null;const e=await xn.show(this.recordings.map((e=>e.traceParseDataIndex)),this.#It(),this.buttonInternal.element);if(null===e)return null;if(e===fn)return this.#Mt({type:"LANDING_PAGE"}),{type:"LANDING_PAGE"};const t=this.recordings.findIndex((t=>t.traceParseDataIndex===e));return t<0?(console.assert(!1,"selected recording not found"),null):(this.#Mt(this.recordings[t]),this.recordings[t])}cancelIfShowing(){xn.cancelIfShowing()}navigate(e){if(!this.enabled||null===this.lastActiveTrace)return null;if(!this.lastActiveTrace||"LANDING_PAGE"===this.lastActiveTrace.type)return null;const t=this.recordings.findIndex((e=>"TRACE_INDEX"===this.lastActiveTrace?.type&&"TRACE_INDEX"===e.type&&e.traceParseDataIndex===this.lastActiveTrace.traceParseDataIndex));if(t<0)return null;const i=c.NumberUtilities.clamp(t+e,0,this.recordings.length-1);return this.#Mt(this.recordings[i]),this.recordings[i]}#Mt(e){if("TRACE_INDEX"===e.type){const t=Sn.dataForTraceIndex(e.traceParseDataIndex);if(!t)throw new Error("Unable to find data for model");t.lastUsed=Date.now()}this.lastActiveTrace=e;const t=this.title(e),i=this.action.title();this.buttonInternal.setText(t),u.ARIAUtils.setLabel(this.buttonInternal.element,wn(yn.currentSessionSS,{PH1:t,PH2:i}))}updateState(){this.action.setEnabled(this.recordings.length>=this.#Pt()&&this.enabled)}static previewElement(e){const t=Sn.dataForTraceIndex(e);if(!t)throw new Error("Unable to find data for model");const i=t.startTime;return t.time.textContent=i?wn(yn.sAgo,{PH1:Sn.coarseAge(i)}):"",t.preview}static coarseAge(e){const t=Math.round((Date.now()-e)/1e3);if(t<50)return wn(yn.moments);const i=Math.round(t/60);if(i<50)return wn(yn.sM,{PH1:i});const n=Math.round(i/60);return wn(yn.sH,{PH1:n})}title(e){if("LANDING_PAGE"===e.type)return Pn();const t=Sn.dataForTraceIndex(e.traceParseDataIndex);if(!t)throw new Error("Unable to find data for model");return t.title}#xt(e,t,i,n){const a=r.ParsedURL.ParsedURL.fromString(t.Meta.mainFrameURL),s=a?a.host:"",o=this.nextNumberByDomain.get(s)||1,l=wn(yn.sD,{PH1:s,PH2:o});this.nextNumberByDomain.set(s,o+1);const c=document.createElement("span"),d=document.createElement("div");d.classList.add("preview-item"),d.classList.add("vbox"),d.setAttribute("jslog",`${g.dropDown("timeline.history-item").track({click:!0})}`);const h={preview:d,title:l,time:c,lastUsed:Date.now(),startTime:n};kn.set(e,h),d.appendChild(this.#Lt(t,s,c));const m=d.createChild("div","hbox");return m.appendChild(this.#Rt(i)),m.appendChild(this.#Ft(t)),h.preview}#Lt(t,n,r){const a=document.createElement("div");a.classList.add("text-details"),a.classList.add("hbox");const s=a.createChild("span","name");s.textContent=n,u.ARIAUtils.setLabel(s,n);const o=i.Helpers.Timing.traceWindowMilliSeconds(t.Meta.traceBounds),l=e.TimeUtilities.millisToString(o.range,!1),c=a.createChild("span","time");return c.appendChild(document.createTextNode(l)),c.appendChild(r),a}#Rt(e){const t=document.createElement("div");t.classList.add("screenshot-thumb");if(t.style.width=1.5*this.totalHeight+"px",t.style.height=this.totalHeight+"px",!e)return t;const i=e.frames.at(-1);return i?(u.UIUtils.loadImage(i.screenshotEvent.args.dataUri).then((e=>{e&&t.appendChild(e)})),t):t}#Ft(e){const t=document.createElement("div"),i=window.devicePixelRatio;t.style.width=Cn+"px",t.style.height=this.totalHeight+"px";const n=t.createChild("canvas");n.width=i*Cn,n.height=i*this.totalHeight;const r=n.getContext("2d");let a=0;for(const t of this.allOverviews){const n=t.constructor(e);n.update(),r&&r.drawImage(n.context().canvas,0,a,i*Cn,t.height*i),a+=t.height*i}return t}static dataForTraceIndex(e){return kn.get(e)||null}}const En=5,Cn=450,kn=new Map;class xn{glassPane;listControl;focusRestorer;selectionDone;constructor(e){this.glassPane=new u.GlassPane.GlassPane,this.glassPane.setSizeBehavior("MeasureContent"),this.glassPane.setOutsideClickCallback((()=>this.close(null))),this.glassPane.setPointerEventsBehavior("BlockedByGlassPane"),this.glassPane.setAnchorBehavior("PreferBottom"),this.glassPane.element.addEventListener("blur",(()=>this.close(null)));const t=u.UIUtils.createShadowRootWithCoreStyles(this.glassPane.contentElement,{cssFile:[Tn],delegatesFocus:void 0}).createChild("div","drop-down"),i=new u.ListModel.ListModel;this.listControl=new u.ListControl.ListControl(i,this,u.ListControl.ListMode.NonViewport),this.listControl.element.addEventListener("mousemove",this.onMouseMove.bind(this),!1),i.replaceAll(e),u.ARIAUtils.markAsMenu(this.listControl.element),u.ARIAUtils.setLabel(this.listControl.element,wn(yn.selectTimelineSession)),t.appendChild(this.listControl.element),t.addEventListener("keydown",this.onKeyDown.bind(this),!1),t.addEventListener("click",this.onClick.bind(this),!1),this.focusRestorer=new u.UIUtils.ElementFocusRestorer(this.listControl.element),this.selectionDone=null}static show(e,t,i){if(xn.instance)return Promise.resolve(null);const n=[...e];a.Runtime.experiments.isEnabled("timeline-observations")&&n.unshift(fn);return new xn(n).show(i,t)}static cancelIfShowing(){xn.instance&&xn.instance.close(null)}show(e,t){return xn.instance=this,this.glassPane.setContentAnchorBox(e.boxInWindow()),this.glassPane.show(this.glassPane.contentElement.ownerDocument),this.listControl.element.focus(),this.listControl.selectItem(t),new Promise((e=>{this.selectionDone=e}))}onMouseMove(e){const t=e.target.enclosingNodeOrSelfWithClass("preview-item"),i=t&&this.listControl.itemForNode(t);null!==i&&this.listControl.selectItem(i)}onClick(e){e.target.enclosingNodeOrSelfWithClass("preview-item")&&this.close(this.listControl.selectedItem())}onKeyDown(e){switch(e.key){case"Tab":case"Escape":this.close(null);break;case"Enter":this.close(this.listControl.selectedItem());break;default:return}e.consume(!0)}close(e){this.selectionDone&&this.selectionDone(e),this.focusRestorer.restore(),this.glassPane.hide(),xn.instance=null}createElementForItem(e){if(e===fn)return this.#Dt();const t=Sn.previewElement(e);return u.ARIAUtils.markAsMenuItem(t),t.classList.remove("selected"),t}#Dt(){const e=document.createElement("div");u.ARIAUtils.markAsMenuItem(e),e.classList.remove("selected"),e.classList.add("preview-item"),e.classList.add("landing-page-item");const t=A.Icon.create("arrow-back");e.appendChild(t);const i=document.createElement("span");return i.innerText=Pn(),e.appendChild(i),e}heightForItem(e){return console.assert(!1,"Should not be called"),0}isItemSelectable(e){return!0}selectedItemChanged(e,t,i,n){i&&i.classList.remove("selected"),n&&n.classList.add("selected")}updateSelectedItemARIA(e,t){return!1}static instance=null}function Pn(){const e=D.CrUXManager.instance().isEnabled();return wn(e?yn.landingPageTitleLocalAndFieldMetrics:yn.landingPageTitleLocalMetrics)}class In extends u.Toolbar.ToolbarItem{contentElement;constructor(e){const t=document.createElement("button");t.classList.add("history-dropdown-button"),t.setAttribute("jslog",`${g.dropDown("history")}`),super(t),this.contentElement=this.element.createChild("span","content"),this.element.addEventListener("click",(()=>{e.execute()}),!1),this.setEnabled(e.enabled()),e.addEventListener("Enabled",(e=>this.setEnabled(e.data))),this.setTitle(e.title())}setText(e){this.contentElement.textContent=e}}var Mn=Object.freeze({__proto__:null,LANDING_PAGE_INDEX_DROPDOWN_CHOICE:fn,TimelineHistoryManager:Sn,maxRecordings:En,previewWidth:Cn,DropDown:xn,ToolbarButton:In});const Ln={learnmore:"Learn more",wasd:"WASD",clickTheRecordButtonSOrHitSTo:"Click the record button {PH1} or hit {PH2} to start a new recording.",clickTheReloadButtonSOrHitSTo:"Click the reload button {PH1} or hit {PH2} to record the page load.",afterRecordingSelectAnAreaOf:"After recording, select an area of interest in the overview by dragging. Then, zoom and pan the timeline with the mousewheel or {PH1} keys. {PH2}"},Rn=e.i18n.registerUIStrings("panels/timeline/TimelineLandingPage.ts",Ln),Fn=e.i18n.getLocalizedString.bind(void 0,Rn);class Dn extends u.Widget.VBox{toggleRecordAction;constructor(e,t){super(),this.toggleRecordAction=e;const i=!0===t?.isNode;this.contentElement.classList.add("timeline-landing-page","fill"),a.Runtime.experiments.isEnabled("timeline-observations")&&!i?this.renderLandingPage():this.renderLegacyLandingPage()}renderLandingPage(){N.LegacyWrapper.legacyWrapper(u.Widget.Widget,new s.LiveMetricsView.LiveMetricsView).show(this.contentElement)}renderLegacyLandingPage(){function t(e,t){const i=document.createElement(e);return i.textContent=t,i}const i=u.XLink.XLink.create("https://developer.chrome.com/docs/devtools/evaluate-performance/",Fn(Ln.learnmore),void 0,void 0,"learn-more"),n=t("b",u.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction("timeline.toggle-recording")[0].title()),r=t("b",u.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction("timeline.record-reload")[0].title()),a=t("b",Fn(Ln.wasd));this.contentElement.classList.add("legacy");const s=this.contentElement.createChild("div"),o=u.UIUtils.createInlineButton(u.Toolbar.Toolbar.createActionButton(this.toggleRecordAction,{showLabel:!1,ignoreToggleable:!0})),l=u.UIUtils.createInlineButton(u.Toolbar.Toolbar.createActionButtonForId("timeline.record-reload"));s.createChild("p").appendChild(e.i18n.getFormatLocalizedString(Rn,Ln.clickTheRecordButtonSOrHitSTo,{PH1:o,PH2:n})),s.createChild("p").appendChild(e.i18n.getFormatLocalizedString(Rn,Ln.clickTheReloadButtonSOrHitSTo,{PH1:l,PH2:r})),s.createChild("p").appendChild(e.i18n.getFormatLocalizedString(Rn,Ln.afterRecordingSelectAnAreaOf,{PH1:a,PH2:i}))}}const An={malformedTimelineDataS:"Malformed timeline data: {PH1}"},Nn=e.i18n.registerUIStrings("panels/timeline/TimelineLoader.ts",An),Bn=e.i18n.getLocalizedString.bind(void 0,Nn);class Hn{client;canceledCallback;buffer;firstRawChunk;totalSize;filter;#At;#F=[];#Nt;#Bt;#Ht;constructor(e){this.client=e,this.canceledCallback=null,this.buffer="",this.firstRawChunk=!0,this.filter=null,this.#At=!1,this.#Nt=null,this.#Ht=new Promise((e=>{this.#Bt=e}))}static async loadFromFile(e,t){const i=new Hn(t),n=new S.FileUtils.ChunkedFileReader(e);return i.canceledCallback=n.cancel.bind(n),i.totalSize=e.size,setTimeout((async()=>{!await n.read(i)&&n.error()&&i.reportErrorAndCancelLoading(n.error().message)})),i}static loadFromEvents(e,t){const i=new Hn(t);return window.setTimeout((async()=>{i.addEvents(e)})),i}static loadFromCpuProfile(e,t){const n=new Hn(t);n.#At=!0;try{const t=E.TimelineJSProfile.TimelineJSProfileProcessor.createFakeTraceFromCpuProfile(e,i.Types.TraceEvents.ThreadID(1));window.setTimeout((async()=>{n.addEvents(t)}))}catch(e){console.error(e.stack)}return n}static async loadFromURL(e,t){const i=new Hn(t),n=new r.StringOutputStream.StringOutputStream;await t.loadingStarted();const a=r.Settings.Settings.instance().moduleSetting("network.enable-remote-file-loading").get();return l.ResourceLoader.loadAsStream(e,null,n,(async function(e,t,r){if(!e)return i.reportErrorAndCancelLoading(r.message);try{const e=n.data(),t=JSON.parse(e);i.#Ut(t),await i.close()}catch(e){await i.close();const t=e instanceof Error?e.message:"";return i.reportErrorAndCancelLoading(Bn(An.malformedTimelineDataS,{PH1:t}))}}),a),i}#Ut(e){if("traceEvents"in e||Array.isArray(e)){const t=Array.isArray(e)?e:e.traceEvents;this.#Wt(t)}else{if(!e.nodes)return void this.reportErrorAndCancelLoading(Bn(An.malformedTimelineDataS));this.#Ot(e),this.#At=!0}"metadata"in e&&(this.#Nt=e.metadata)}async addEvents(e){await(this.client?.loadingStarted());const t=15e4;for(let i=0;i<e.length;i+=t){const n=e.slice(i,i+t);this.#Wt(n),await(this.client?.loadingProgress((i+n.length)/e.length)),await new Promise((e=>window.setTimeout(e,0)))}this.close()}async cancel(){this.client&&(await this.client.loadingComplete([],null,!1,null,null),this.client=null),this.canceledCallback&&this.canceledCallback()}async write(e,t){if(!this.client)return Promise.resolve();if(this.buffer+=e,this.firstRawChunk)await this.client.loadingStarted(),await new Promise((e=>requestAnimationFrame((()=>requestAnimationFrame(e))))),this.firstRawChunk=!1;else{let e;e=this.buffer.length/this.totalSize,e=e>1?e-Math.floor(e):e,await this.client.loadingProgress(e)}if(t){let e;try{return e=JSON.parse(this.buffer),this.#Ut(e),Promise.resolve()}catch(e){return void this.reportErrorAndCancelLoading(Bn(An.malformedTimelineDataS,{PH1:e.toString()}))}}}reportErrorAndCancelLoading(e){e&&r.Console.Console.instance().error(e),this.cancel()}async close(){this.client&&(await this.client.processingStarted(),await this.finalizeTrace())}isCpuProfile(){return this.#At}async finalizeTrace(){await this.client.loadingComplete(this.#F,this.filter,this.isCpuProfile(),null,this.#Nt),this.#Bt?.()}traceFinalizedForTest(){return this.#Ht}#Ot(e){const t=E.TimelineJSProfile.TimelineJSProfileProcessor.createFakeTraceFromCpuProfile(e,i.Types.TraceEvents.ThreadID(1));this.#Wt(t)}#Wt(e){this.#F=this.#F.concat(e)}}var Un=Object.freeze({__proto__:null,TimelineLoader:Hn});const Wn=new CSSStyleSheet;Wn.replaceSync('.timeline-minimap{position:relative}.timeline-sidebar-floating-icon{position:absolute;top:5px;left:10px;z-index:999;border:none;width:36px;height:36px;border-radius:50%;box-shadow:var(--drop-shadow-depth-1);background:var(--sys-color-cdt-base-container);&:hover{background:var(--sys-color-base-container-elevated)}}.timeline-minimap .overview-strip{margin-top:2px;justify-content:center}.timeline-minimap .overview-strip .timeline-overview-strip-title{color:var(--sys-color-token-subtle);font-size:10px;font-weight:bold;z-index:100;background-color:var(--sys-color-cdt-base-container);padding:0 4px;position:absolute;top:-2px;right:0}.timeline-minimap #timeline-overview-cpu-activity{flex-basis:20px}.timeline-minimap #timeline-overview-network{flex-basis:8px}.timeline-minimap #timeline-overview-filmstrip{flex-basis:30px}.timeline-minimap #timeline-overview-memory{flex-basis:20px}.timeline-minimap #timeline-overview-network::before,\n.timeline-minimap #timeline-overview-cpu-activity::before{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid var(--divider-line);z-index:-200}.timeline-minimap .overview-strip .background{z-index:-10}.timeline-minimap #timeline-overview-responsiveness{flex-basis:5px;margin-top:0!important}.timeline-minimap #timeline-overview-input{flex-basis:6px}.timeline-minimap #timeline-overview-pane{flex:auto;position:relative;overflow:hidden}.timeline-minimap #timeline-overview-container{display:flex;flex-direction:column;flex:none;position:relative;overflow:hidden}.timeline-minimap #timeline-overview-container canvas{width:100%;height:100%}.timeline-minimap .memory-graph-label{position:absolute;right:0;bottom:0;font-size:9px;color:var(--sys-color-token-subtle);white-space:nowrap;padding:0 4px;background-color:var(--sys-color-cdt-base-container)}\n/*# sourceURL=timelineMiniMap.css */\n');class On extends(r.ObjectWrapper.eventMixin(u.Widget.VBox)){breadcrumbsActivated=!1;#_t=new p.TimelineOverviewPane.TimelineOverviewPane("timeline");#Vt=[];breadcrumbs=null;#Gt;#zt=null;#N=this.#B.bind(this);constructor(){super(),this.element.classList.add("timeline-minimap"),this.#Gt=new s.BreadcrumbsUI.BreadcrumbsUI;const e=new A.Icon.Icon;e.setAttribute("name","left-panel-open"),e.setAttribute("jslog",`${g.action("timeline.sidebar-open").track({click:!0})}`),e.addEventListener("click",(()=>{this.dispatchEventToListeners("OpenSidebarButtonClicked",{})})),this.#_t.show(this.element),this.#_t.addEventListener("OverviewPaneWindowChanged",(e=>{this.#jt(e)})),this.#qt(),h.TraceBounds.onChange(this.#N)}#jt(e){const t=this.#zt?.traceParsedData;if(!t)return;const n=h.TraceBounds.BoundsManager.instance().state();if(!n)return;const r=e.data.startTime>0?e.data.startTime:n.milli.entireTraceBounds.min,a=Number.isFinite(e.data.endTime)?e.data.endTime:n.milli.entireTraceBounds.max;h.TraceBounds.BoundsManager.instance().setTimelineVisibleWindow(i.Helpers.Timing.traceWindowFromMilliSeconds(i.Types.Timing.MilliSeconds(r),i.Types.Timing.MilliSeconds(a)),{shouldAnimate:!0})}#B(e){"RESET"!==e.updateType&&"VISIBLE_WINDOW"!==e.updateType||this.#_t.setWindowTimes(e.state.milli.timelineTraceWindow.min,e.state.milli.timelineTraceWindow.max),"RESET"!==e.updateType&&"MINIMAP_BOUNDS"!==e.updateType||this.#_t.setBounds(e.state.milli.minimapTraceBounds.min,e.state.milli.minimapTraceBounds.max)}#qt(){this.breadcrumbsActivated=!0,this.element.prepend(this.#Gt),this.#_t.addEventListener("OverviewPaneBreadcrumbAdded",(e=>{this.addBreadcrumb(e.data)})),this.#Gt.addEventListener(s.BreadcrumbsUI.BreadcrumbRemovedEvent.eventName,(e=>{const t=e.breadcrumb;this.#$t(t)})),this.#_t.enableCreateBreadcrumbsButton()}addBreadcrumb({startTime:e,endTime:t}){const n=h.TraceBounds.BoundsManager.instance().state();if(!n)return;const r=n.milli.minimapTraceBounds,a={startTime:i.Types.Timing.MilliSeconds(Math.max(e,r.min)),endTime:i.Types.Timing.MilliSeconds(Math.min(t,r.max))},s=i.Helpers.Timing.traceWindowFromMilliSeconds(a.startTime,a.endTime);null===this.breadcrumbs?this.breadcrumbs=Ue.activeManager()?.getTimelineBreadcrumbs()??null:this.breadcrumbs.add(s),this.breadcrumbs?this.#Gt.data={breadcrumb:this.breadcrumbs.initialBreadcrumb}:console.warn("ModificationsManager has not been created, therefore Breadcrumbs can not be added")}#$t(e){this.breadcrumbs&&(this.breadcrumbs.setLastBreadcrumb(e),this.#Gt.data={breadcrumb:this.breadcrumbs.initialBreadcrumb})}wasShown(){super.wasShown(),this.registerCSSFiles([Wn])}reset(){this.#zt=null,this.#_t.reset()}#Jt(e){const t=new Map,{Meta:n,PageLoadMetrics:r}=e,a=n.mainFrameNavigations,s=i.Helpers.Timing.microSecondsToMilliseconds(n.traceBounds.min);for(const e of a){const{startTime:n}=i.Helpers.Timing.eventTimingsMilliSeconds(e);t.set(n,xt.createEventDivider(e,s))}for(const e of r.allMarkerEvents){const{startTime:n}=i.Helpers.Timing.eventTimingsMilliSeconds(e);t.set(n,xt.createEventDivider(e,s))}this.#_t.setMarkers(t)}#Kt(e){this.#_t.setNavStartTimes(e.Meta.mainFrameNavigations)}getControls(){return this.#Vt}setData(e){if(this.#zt?.traceParsedData!==e.traceParsedData){if(this.#zt=e,this.#Vt=[],this.#Jt(e.traceParsedData),this.#Kt(e.traceParsedData),this.#Vt.push(new mn(e.traceParsedData)),this.#Vt.push(new hn(e.traceParsedData)),this.#Vt.push(new cn(e.traceParsedData)),e.settings.showScreenshots){const t=i.Extras.FilmStrip.fromTraceData(e.traceParsedData);t.frames.length&&this.#Vt.push(new pn(t))}e.settings.showMemory&&this.#Vt.push(new un(e.traceParsedData)),this.#_t.setOverviewControls(this.#Vt),this.#_t.showingScreenshots=e.settings.showScreenshots}}addInitialBreadcrumb(){this.breadcrumbs=null;const e=h.TraceBounds.BoundsManager.instance().state();e&&this.addBreadcrumb({startTime:e.milli.entireTraceBounds.min,endTime:e.milli.entireTraceBounds.max})}}var _n=Object.freeze({__proto__:null,TimelineMiniMap:On});const Vn=new CSSStyleSheet;Vn.replaceSync('.timeline-toolbar-container{display:flex;flex:none}.timeline-toolbar-container > .toolbar{background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.timeline-main-toolbar{flex:1 1 auto}.timeline-settings-pane{flex:none;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}#timeline-overview-panel{flex:none;position:relative;border-bottom:1px solid var(--sys-color-divider)}#timeline-overview-grid{background-color:var(--sys-color-cdt-base-container)}#timeline-overview-grid .timeline-grid-header{height:12px}#timeline-overview-grid .resources-dividers-label-bar{pointer-events:auto;height:12px}#timeline-overview-grid .resources-divider-label{top:1px}.timeline-details-split{flex:auto}.timeline.panel .status-pane-container{z-index:1000;display:flex;align-items:center;pointer-events:none}.timeline.panel .status-pane-container.tinted{background-color:var(--sys-color-cdt-base-container);pointer-events:auto}.timeline-landing-page.legacy > div > p{flex:none;white-space:pre-line;line-height:18px}.popover ul{margin:0;padding:0;list-style-type:none}#memory-graphs-canvas-container{overflow:hidden;flex:auto;position:relative;.no-events-found{position:absolute;font:var(--sys-typescale-body4-regular);left:var(--sys-size-5);bottom:var(--sys-size-5);p{margin:0}}}#memory-counters-graph{flex:auto}#memory-graphs-canvas-container .memory-counter-marker{position:absolute;border-radius:3px;width:5px;height:5px;margin-left:-3px;margin-top:-2px}#memory-graphs-container .timeline-memory-header{flex:0 0 26px;background-color:var(--sys-color-surface2);border-bottom:1px solid var(--sys-color-divider);justify-content:space-between}#memory-graphs-container .timeline-memory-header::after{content:"";background-image:var(--image-file-toolbarResizerVertical);background-repeat:no-repeat;background-position:right center,center;flex:20px 0 0;margin:0 4px}.timeline-memory-toolbar{flex-shrink:1}.memory-counter-value{margin:8px}#counter-values-bar{flex:0 0 20px;border-top:solid 1px var(--sys-color-divider);width:100%;overflow:hidden;line-height:18px}.timeline-details{vertical-align:top}.timeline-details-view{color:var(--sys-color-on-surface);overflow:hidden}.timeline-details-view-body{flex:auto;overflow:auto;position:relative;background-color:var(--sys-color-cdt-base-container);user-select:text}.timeline-details-view-block{flex:none;display:flex;background-color:var(--sys-color-cdt-base-container);flex-direction:column;padding-bottom:5px;border-bottom:1px solid var(--sys-color-divider)}.timeline-details-view-row{padding-left:10px;min-height:20px}.timeline-details-view-block .timeline-details-stack-values{flex-direction:column!important}.timeline-details-chip-title{font-size:12px;padding:8px;display:flex;align-items:center}.timeline-details-view-block:first-child > .timeline-details-chip-title{font-size:13px}.timeline-details-view-row-title:not(:empty){color:var(--sys-color-token-subtle);overflow:hidden;padding-right:10px;display:inline-block;vertical-align:top}.timeline-details-warning{--override-details-warning-background-color:rgb(250 209 209/48%);background-color:var(--override-details-warning-background-color)}.theme-with-dark-background .timeline-details-warning,\n:host-context(.theme-with-dark-background) .timeline-details-warning{--override-details-warning-background-color:rgb(87 10 10/48%)}.timeline-details-warning .timeline-details-view-row-title{color:var(--sys-color-error)}.timeline-details-view-row-value{display:inline-block;user-select:text;text-overflow:ellipsis;overflow:hidden;padding:0 3px}.timeline-details-warning .timeline-details-view-row-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-details-view-pie-chart-wrapper{margin:4px 0}.timeline-details-view-pie-chart{margin-top:5px}.timeline-flamechart{overflow:hidden}.brick-game{background-color:var(--sys-color-neutral-container);position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999}.game-close-button{display:flex;align-items:center;justify-content:center;width:25px;height:25px;position:absolute;right:15px;top:15px;border-radius:50%;cursor:pointer}.scorePanel{display:flex;align-items:center;justify-content:center;flex-direction:column;white-space:pre-line;padding:15px;position:absolute;left:15px;bottom:15px;border:double 7px transparent;border-radius:20px;background-origin:border-box;background-clip:content-box,border-box;font-weight:200}.confetti-100{display:block;top:0;left:0;width:100%;height:100%}.confetti-100 > .confetti-100-particle{opacity:0%;position:fixed;animation:confetti-100-animation 1s none ease-out;font-size:30px}@keyframes confetti-100-animation{0%{opacity:100%;transform:translateY(0%) translateY(0%) rotate(0deg)}100%{opacity:0%;transform:translateY(var(--to-Y)) translateX(var(--to-X)) rotate(var(--rotation))}}@media (prefers-reduced-motion){.confetti-100 > .confetti-100-particle{animation-name:dissolve}}.timeline-flamechart-resizer{flex:8px 0 0;background-color:var(--sys-color-surface2);border:1px var(--sys-color-divider);border-style:solid none;display:flex;flex-direction:row;align-items:flex-end;justify-content:center}.timeline-network-resizer-disabled > .timeline-flamechart-resizer{display:none}.timeline-flamechart-resizer::after{content:"...";font-size:14px;margin-bottom:-1px}.timeline-layers-view-properties table{width:100%;border-collapse:collapse}.timeline-layers-view-properties td{border:1px solid var(--sys-color-divider);line-height:22px}.timeline-filmstrip-preview > img{margin-top:5px;max-width:500px;max-height:300px;cursor:pointer;border:1px solid var(--sys-color-divider)}.timeline-tree-view{display:flex;overflow:hidden}.timeline-tree-view .toolbar{background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.timeline-tree-view .data-grid{border:none;flex:auto}.timeline-tree-view .data-grid .data-container{overflow-y:scroll}.timeline-tree-view .data-grid.data-grid-fits-viewport .corner{display:table-cell}.timeline-tree-view .data-grid table.data{background:var(--sys-color-cdt-base-container)}.timeline-tree-view .data-grid .odd{background-color:var(--sys-color-surface1)}.timeline-tree-view .data-grid tr:hover td:not(.bottom-filler-td){background-color:var(--sys-color-state-hover-on-subtle)}.timeline-tree-view .data-grid td.numeric-column{text-align:right;position:relative}.timeline-tree-view .data-grid div.background-percent-bar{float:right;position:relative;z-index:1}.timeline-tree-view .data-grid span.percent-column{color:var(--sys-color-token-subtle);width:45px;display:inline-block}.timeline-tree-view .data-grid tr.selected span{color:inherit}.timeline-tree-view .data-grid tr.selected{background-color:var(--sys-color-tonal-container)}.timeline-tree-view .data-grid .name-container{display:flex;align-items:center;padding-left:2px}.timeline-tree-view .data-grid .name-container .activity-icon{width:12px;height:12px;border:1px solid var(--divider-line);margin:3px 0}.timeline-tree-view .data-grid .name-container .activity-icon-container{margin-right:3px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;width:18px;height:18px;overflow:hidden}.timeline-tree-view .data-grid .name-container .activity-warning::after{content:"[deopt]";margin:0 4px;line-height:12px;font-size:10px;color:var(--sys-color-state-disabled)}.timeline-tree-view .data-grid tr.selected .name-container .activity-warning::after{color:var(--sys-color-on-tonal-container)}.timeline-tree-view .data-grid .name-container .activity-link{flex:auto;text-align:right;overflow:hidden;text-overflow:ellipsis;margin-left:5px}.timeline-tree-view .data-grid .background-bar-container{position:absolute;left:3px;right:0}.timeline-tree-view .data-grid .background-bar{float:right;height:18px;background-color:var(--sys-color-surface-yellow);border-bottom:1px solid var(--sys-color-yellow-outline)}.timeline-tree-view .data-grid .selected .background-bar{background-color:var(--app-color-selected-progress-bar);border-bottom:1px solid var(--app-border-selected-progress-bar)}.timeline-tree-view .timeline-details-view-body .full-widget-dimmed-banner{background-color:inherit}.timeline-details .filter-input-field{width:120px}.timeline-tree-view .data-grid thead{height:21px;z-index:2}.timeline-stack-view-header{height:27px;background-color:var(--sys-color-cdt-base-container);padding:6px 10px;color:var(--sys-color-on-surface);white-space:nowrap;border-bottom:1px solid var(--sys-color-divider)}.timeline-landing-page{position:absolute;background-color:var(--sys-color-cdt-base-container)}.timeline-landing-page.legacy{justify-content:center;align-items:center;overflow:auto;font-size:13px;color:var(--sys-color-on-surface-subtle)}@media (forced-colors: active){.timeline-tree-view .data-grid .name-container .activity-icon{forced-color-adjust:none}.timeline-tree-view .data-grid tr.selected span.percent-column,\n .timeline-tree-view .data-grid tr.selected div.background-percent-bar span,\n .timeline-tree-view .data-grid tr.selected .name-container .activity-link .devtools-link{color:HighlightText}.timeline-tree-view .data-grid .background-bar,\n .timeline-tree-view .data-grid tr:hover td:not(.bottom-filler-td){background-color:transparent}.timeline-tree-view .data-grid tr.selected .background-bar{background-color:transparent;border-bottom-color:HighlightText}}.timeline-details-view-body > div{overflow-y:hidden;overflow-x:hidden}.timeline-details-chip-title > div{width:12px;height:12px;border:1px solid var(--sys-color-divider);display:inline-block;margin-right:4px;content:" "}.timeline-landing-page.legacy > div{max-width:450px;margin:10px}.timeline-paint-profiler-log-split > div:last-child{background-color:var(--color-background-elevation-1);z-index:0}.timeline-layers-view > div:last-child,\n.timeline-layers-view-properties > div:last-child{background-color:var(--color-background-elevation-1)}.timeline.panel .status-pane-container > div{pointer-events:auto}.timeline-tree-view .data-grid .name-container div{flex:none}.status-pane-container > .small-dialog{width:100%;height:100%}.timeline-concurrency-input{width:50px}.timeline-concurrency-hidden{visibility:hidden}devtools-feedback-button{float:right}\n/*# sourceURL=timelinePanel.css */\n');const Gn=new CSSStyleSheet;Gn.replaceSync(".timeline-status-dialog{display:flex;flex-direction:column;padding:16px 16px 12px;align-self:center;background-color:var(--sys-color-cdt-base-container);box-shadow:var(--drop-shadow);border-radius:10px}.status-dialog-line{margin:2px;height:14px;min-height:auto;display:flex;align-items:baseline}.status-dialog-line .label{display:inline-block;width:80px;text-align:right;color:var(--sys-color-on-surface);margin-right:10px}.timeline-status-dialog .progress .indicator-container{display:inline-block;width:200px;height:8px;background-color:var(--sys-color-surface5)}.timeline-status-dialog .progress .indicator{background-color:var(--sys-color-primary);height:100%;width:0;margin:0}.timeline-status-dialog .stop-button{margin-top:8px;height:100%;align-self:flex-end}.timeline-status-dialog .stop-button button{border-radius:12px}.timeline-status-dialog.small-dialog{width:inherit;justify-content:center}.small-dialog > .stop-button{align-self:center;margin-top:20px;height:initial}@media (forced-colors: active){.timeline-status-dialog{border:1px solid canvastext}.timeline-status-dialog .progress .indicator-container{border:1px solid ButtonText;background-color:ButtonFace}.timeline-status-dialog .progress .indicator{forced-color-adjust:none;background-color:ButtonText}}\n/*# sourceURL=timelineStatusDialog.css */\n");const zn={frameStart:"Frame Start",drawFrame:"Draw Frame",layout:"Layout",rasterizing:"Rasterizing",drawing:"Drawing",painting:"Painting",system:"System",idle:"Idle",loading:"Loading",experience:"Experience",scripting:"Scripting",rendering:"Rendering",gpu:"GPU",async:"Async",messaging:"Messaging"},jn=e.i18n.registerUIStrings("panels/timeline/UIDevtoolsUtils.ts",zn),qn=e.i18n.getLocalizedString.bind(void 0,jn);let $n=null,Jn=null;class Kn{static isUiDevTools(){return"true"===a.Runtime.Runtime.queryParam("uiDevTools")}static categorizeEvents(){if($n)return $n;const e=Yn,t=Kn.categories(),i=t.drawing,n=t.rasterizing,r=t.layout,a=t.painting,s=t.other,o={};return o[e.ViewPaint]=new oe("View::Paint",a),o[e.ViewOnPaint]=new oe("View::OnPaint",a),o[e.ViewPaintChildren]=new oe("View::PaintChildren",a),o[e.ViewOnPaintBackground]=new oe("View::OnPaintBackground",a),o[e.ViewOnPaintBorder]=new oe("View::OnPaintBorder",a),o[e.LayerPaintContentsToDisplayList]=new oe("Layer::PaintContentsToDisplayList",a),o[e.ViewLayout]=new oe("View::Layout",r),o[e.ViewLayoutBoundsChanged]=new oe("View::Layout(bounds_changed)",r),o[e.RasterTask]=new oe("RasterTask",n),o[e.RasterizerTaskImplRunOnWorkerThread]=new oe("RasterizerTaskImpl::RunOnWorkerThread",n),o[e.DirectRendererDrawFrame]=new oe("DirectRenderer::DrawFrame",i),o[e.BeginFrame]=new oe(qn(zn.frameStart),i,!0),o[e.DrawFrame]=new oe(qn(zn.drawFrame),i,!0),o[e.NeedsBeginFrameChanged]=new oe("NeedsBeginFrameChanged",i,!0),o[e.ThreadControllerImplRunTask]=new oe("ThreadControllerImpl::RunTask",s),$n=o,o}static categories(){return Jn||(Jn={layout:new le(ne.LAYOUT,qn(zn.layout),!0,"--app-color-loading-children","--app-color-loading"),rasterizing:new le(ne.RASTERIZING,qn(zn.rasterizing),!0,"--app-color-children","--app-color-scripting"),drawing:new le(ne.DRAWING,qn(zn.drawing),!0,"--app-color-rendering-children","--app-color-rendering"),painting:new le(ne.PAINTING,qn(zn.painting),!0,"--app-color-painting-children","--app-color-painting"),other:new le(ne.OTHER,qn(zn.system),!1,"--app-color-system-children","--app-color-system"),idle:new le(ne.IDLE,qn(zn.idle),!1,"--app-color-idle-children","--app-color-idle"),loading:new le(ne.LOADING,qn(zn.loading),!1,"--app-color-loading-children","--app-color-loading"),experience:new le(ne.EXPERIENCE,qn(zn.experience),!1,"--app-color-rendering-children","--pp-color-rendering"),messaging:new le(ne.MESSAGING,qn(zn.messaging),!1,"--app-color-messaging-children","--pp-color-messaging"),scripting:new le(ne.SCRIPTING,qn(zn.scripting),!1,"--app-color-scripting-children","--pp-color-scripting"),rendering:new le(ne.RENDERING,qn(zn.rendering),!1,"--app-color-rendering-children","--pp-color-rendering"),gpu:new le(ne.GPU,qn(zn.gpu),!1,"--app-color-painting-children","--app-color-painting"),async:new le(ne.ASYNC,qn(zn.async),!1,"--app-color-async-children","--app-color-async")},Jn)}static getMainCategoriesList(){return["idle","drawing","painting","rasterizing","layout","other"]}}var Yn;!function(e){e.ViewPaint="View::Paint",e.ViewOnPaint="View::OnPaint",e.ViewPaintChildren="View::PaintChildren",e.ViewOnPaintBackground="View::OnPaintBackground",e.ViewOnPaintBorder="View::OnPaintBorder",e.ViewLayout="View::Layout",e.ViewLayoutBoundsChanged="View::Layout(bounds_changed)",e.LayerPaintContentsToDisplayList="Layer::PaintContentsToDisplayList",e.DirectRendererDrawFrame="DirectRenderer::DrawFrame",e.RasterTask="RasterTask",e.RasterizerTaskImplRunOnWorkerThread="RasterizerTaskImpl::RunOnWorkerThread",e.BeginFrame="BeginFrame",e.DrawFrame="DrawFrame",e.NeedsBeginFrameChanged="NeedsBeginFrameChanged",e.ThreadControllerImplRunTask="ThreadControllerImpl::RunTask"}(Yn||(Yn={}));var Xn=Object.freeze({__proto__:null,UIDevtoolsUtils:Kn,get RecordType(){return Yn}});class Zn extends Xe{constructor(e,t,i){super(e,t,i),ge(Kn.categorizeEvents()),ve(Kn.categories()),ye(Kn.getMainCategoriesList().filter(me))}}var Qn=Object.freeze({__proto__:null,UIDevtoolsController:Zn});const er={dropTimelineFileOrUrlHere:"Drop timeline file or URL here",disableJavascriptSamples:"Disable JavaScript samples",enableAdvancedPaint:"Enable advanced paint instrumentation (slow)",enableSelectorStats:"Enable CSS selector stats (slow)",screenshots:"Screenshots",memory:"Memory",clear:"Clear",fixMe:"Fix me",loadProfile:"Load profile…",saveProfile:"Save profile…",captureScreenshots:"Capture screenshots",showMemoryTimeline:"Show memory timeline",captureSettings:"Capture settings",disablesJavascriptSampling:"Disables JavaScript sampling, reduces overhead when running against mobile devices",capturesAdvancedPaint:"Captures advanced paint instrumentation, introduces significant performance overhead",capturesSelectorStats:"Captures CSS selector statistics",network:"Network:",cpu:"CPU:",networkConditions:"Network conditions",failedToSaveTimelineSS:"Failed to save timeline: {PH1} ({PH2})",CpuThrottlingIsEnabled:"- CPU throttling is enabled",NetworkThrottlingIsEnabled:"- Network throttling is enabled",HardwareConcurrencyIsEnabled:"- Hardware concurrency override is enabled",SignificantOverheadDueToPaint:"- Significant overhead due to paint instrumentation",SelectorStatsEnabled:"- Selector stats is enabled",JavascriptSamplingIsDisabled:"- JavaScript sampling is disabled",stoppingTimeline:"Stopping timeline…",received:"Received",close:"Close",downloadAfterError:"Download raw trace events",recordingFailed:"Recording failed",profiling:"Profiling…",bufferUsage:"Buffer usage",loadingProfile:"Loading profile…",processingProfile:"Processing profile…",initializingProfiler:"Initializing profiler…",status:"Status",time:"Time",description:"Description",stop:"Stop",ssec:"{PH1} sec",exportNormalTraces:"Basic Performance Traces",exportEnhancedTraces:"Enhanced Performance Traces",showDataAddedByExtensions:"Show data added by extensions of the Performance panel",performanceExtension:"Extension data",showSidebar:"Show sidebar",hideSidebar:"Hide sole sidebar",sidebarShown:"Performance sidebar shown",sidebarHidden:"Performance sidebar hidden"},tr=e.i18n.registerUIStrings("panels/timeline/TimelinePanel.ts",er),ir=e.i18n.getLocalizedString.bind(void 0,tr);let nr,rr;class ar extends u.Panel.Panel{dropTarget;recordingOptionUIControls;state;recordingPageReload;millisecondsToRecordAfterLoadEvent;toggleRecordAction;recordReloadAction;#Yt;disableCaptureJSProfileSetting;captureLayersAndPicturesSetting;captureSelectorStatsSetting;#Xt;showScreenshotsSetting;showMemorySetting;panelToolbar;panelRightToolbar;timelinePane;#Ct=new On;#Zt={mode:"LANDING_PAGE"};#Qt=new Map;#ei=new u.SplitWidget.SplitWidget(!0,!1,void 0,240);statusPaneContainer;flameChart;searchableViewInternal;showSettingsPaneButton;showSettingsPaneSetting;settingsPane;controller;cpuProfiler;clearButton;brickBreakerToolbarButton;brickBreakerToolbarButtonAdded=!1;loadButton;saveButton;statusPane;landingPage;loader;showScreenshotsToolbarCheckbox;showMemoryToolbarCheckbox;networkThrottlingSelect;cpuThrottlingSelect;fileSelectorElement;selection;traceLoadStart;primaryPageTargetPromiseCallback=e=>{};primaryPageTargetPromise=new Promise((e=>{this.primaryPageTargetPromiseCallback=e}));#ti;#ii=null;#ni=this.#ri.bind(this);#ai;#si=this.#ei.createShowHideSidebarButton(ir(er.showSidebar),ir(er.hideSidebar),ir(er.sidebarShown),ir(er.sidebarHidden),"timeline.sidebar");#oi=new s.Sidebar.SidebarWidget;constructor(){super("timeline");const e=document.createElement("span");e.innerHTML='<div style="\n font-size: 12px;\n transform: scale(1.25);\n color: transparent;\n background: linear-gradient(90deg, rgb(255 0 0 / 100%) 0%, rgb(255 154 0 / 100%) 10%, rgb(208 222 33 / 100%) 20%, rgb(79 220 74 / 100%) 30%, rgb(63 218 216 / 100%) 40%, rgb(47 201 226 / 100%) 50%, rgb(28 127 238 / 100%) 60%, rgb(95 21 242 / 100%) 70%, rgb(186 12 248 / 100%) 80%, rgb(251 7 217 / 100%) 90%, rgb(255 0 0 / 100%) 100%);\n -webkit-background-clip: text;\n ">💫</div>';const t=new m.Adorner.Adorner;t.classList.add("fix-perf-icon"),t.data={name:ir(er.fixMe),content:e},this.brickBreakerToolbarButton=new u.Toolbar.ToolbarButton(ir(er.fixMe),t),this.brickBreakerToolbarButton.addEventListener("Click",(()=>this.#li()));const o=i.Types.Configuration.defaults();o.showAllEvents=a.Runtime.experiments.isEnabled("timeline-show-all-events"),o.includeRuntimeCallStats=a.Runtime.experiments.isEnabled("timeline-v8-runtime-call-stats"),o.debugMode=a.Runtime.experiments.isEnabled("timeline-debug-mode"),this.#ti=i.TraceModel.Model.createWithAllHandlers(o),this.element.addEventListener("contextmenu",this.contextMenu.bind(this),!1),this.dropTarget=new u.DropTarget.DropTarget(this.element,[u.DropTarget.Type.File,u.DropTarget.Type.URI],ir(er.dropTimelineFileOrUrlHere),this.handleDrop.bind(this)),this.recordingOptionUIControls=[],this.state="Idle",this.recordingPageReload=!1,this.millisecondsToRecordAfterLoadEvent=5e3,this.toggleRecordAction=u.ActionRegistry.ActionRegistry.instance().getAction("timeline.toggle-recording"),this.recordReloadAction=u.ActionRegistry.ActionRegistry.instance().getAction("timeline.record-reload"),this.#Yt=new Sn(this.#Ct),this.traceLoadStart=null,this.disableCaptureJSProfileSetting=r.Settings.Settings.instance().createSetting("timeline-disable-js-sampling",!1),this.disableCaptureJSProfileSetting.setTitle(ir(er.disableJavascriptSamples)),this.captureLayersAndPicturesSetting=r.Settings.Settings.instance().createSetting("timeline-capture-layers-and-pictures",!1,"Session"),this.captureLayersAndPicturesSetting.setTitle(ir(er.enableAdvancedPaint)),this.captureSelectorStatsSetting=r.Settings.Settings.instance().createSetting("timeline-capture-selector-stats",!1,"Session"),this.captureSelectorStatsSetting.setTitle(ir(er.enableSelectorStats)),this.showScreenshotsSetting=r.Settings.Settings.instance().createSetting("timeline-show-screenshots",!rr),this.showScreenshotsSetting.setTitle(ir(er.screenshots)),this.showScreenshotsSetting.addChangeListener(this.updateMiniMap,this),this.showMemorySetting=r.Settings.Settings.instance().createSetting("timeline-show-memory",!1),this.showMemorySetting.setTitle(ir(er.memory)),this.showMemorySetting.addChangeListener(this.onModeChanged,this),this.#Xt=ar.extensionDataVisibilitySetting(),this.#Xt.addChangeListener(this.#ci,this),this.#Xt.setTitle(ir(er.performanceExtension));const l=this.element.createChild("div","timeline-toolbar-container");l.setAttribute("jslog",`${g.toolbar()}`),this.panelToolbar=new u.Toolbar.Toolbar("timeline-main-toolbar",l),this.panelToolbar.makeWrappable(!0),this.panelRightToolbar=new u.Toolbar.Toolbar("",l),rr||(this.createSettingsPane(),this.updateShowSettingsToolbarButton()),this.timelinePane=new u.Widget.VBox;const c=this.timelinePane.element.createChild("div","hbox");c.id="timeline-overview-panel",this.#Ct.show(c),this.statusPaneContainer=this.timelinePane.element.createChild("div","status-pane-container fill"),this.createFileSelector(),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.Load,this.loadEventFired,this),this.flameChart=new Xi(this),this.#ai=this.#di.bind(this),this.flameChart.getMainFlameChart().addEventListener("ChartPlayableStateChange",this.#ai,this),this.searchableViewInternal=new u.SearchableView.SearchableView(this.flameChart,null),this.searchableViewInternal.setMinimumSize(0,100),this.searchableViewInternal.element.classList.add("searchable-view"),this.searchableViewInternal.show(this.timelinePane.element),this.flameChart.show(this.searchableViewInternal.element),this.flameChart.setSearchableView(this.searchableViewInternal),this.searchableViewInternal.hideWidget(),this.#ei.setMainWidget(this.timelinePane),this.#ei.show(this.element),this.#ei.setSidebarWidget(this.#oi),this.#oi.element.addEventListener(T.SidebarInsight.InsightDeactivated.eventName,(()=>{this.#hi(null)})),this.#oi.element.addEventListener(T.SidebarInsight.InsightActivated.eventName,(e=>{const{name:t,navigationId:i,createOverlayFn:n}=e;this.#hi({name:t,navigationId:i,createOverlayFn:n})})),this.#oi.contentElement.addEventListener(s.Sidebar.EventReferenceClick.eventName,(e=>{const{metricEvent:t}=e;this.flameChart.setSelection(yt.fromTraceEvent(t))})),this.#oi.element.addEventListener(s.Sidebar.RemoveAnnotation.eventName,(e=>{const{removedAnnotation:t}=e;Ue.activeManager()?.removeAnnotation(t)})),this.onModeChanged(),this.populateToolbar(),this.#mi(),this.updateTimelineControls(),n.TargetManager.TargetManager.instance().addEventListener("SuspendStateChanged",this.onSuspendStateChanged,this);const d=n.TargetManager.TargetManager.instance().models(n.CPUProfilerModel.CPUProfilerModel);for(const e of d)for(const t of e.registeredConsoleProfileMessages)this.consoleProfileFinished(t);n.TargetManager.TargetManager.instance().observeModels(n.CPUProfilerModel.CPUProfilerModel,{modelAdded:e=>{e.addEventListener("ConsoleProfileFinished",(e=>this.consoleProfileFinished(e.data)))},modelRemoved:e=>{}}),n.TargetManager.TargetManager.instance().observeTargets({targetAdded:e=>{e===n.TargetManager.TargetManager.instance().primaryPageTarget()&&this.primaryPageTargetPromiseCallback(e)},targetRemoved:e=>{}})}#hi(e){this.#oi.setActiveInsight(e),this.flameChart.setActiveInsight(e)}static instance(e={forceNew:null,isNode:!1}){const{forceNew:t,isNode:i}=e;return rr=i,nr&&!t||(nr=new ar),nr}static extensionDataVisibilitySetting(){return r.Settings.Settings.instance().createSetting("timeline-show-extension-data",!0)}searchableView(){return this.searchableViewInternal}wasShown(){super.wasShown(),u.Context.Context.instance().setFlavor(ar,this),this.registerCSSFiles([Vn]),l.userMetrics.panelLoaded("timeline","DevTools.Launch.Timeline"),this.#ei.hideSidebar()}willHide(){u.Context.Context.instance().setFlavor(ar,null),this.#Yt.cancelIfShowing()}loadFromEvents(e){"Idle"===this.state&&(this.prepareToLoadTimeline(),this.loader=Hn.loadFromEvents(e,this))}getFlameChart(){return this.flameChart}getMinimap(){return this.#Ct}#pi(e,t){return"LANDING_PAGE"===e.mode&&"LANDING_PAGE"===t.mode||("STATUS_PANE_OVERLAY"===e.mode&&"STATUS_PANE_OVERLAY"===t.mode||"VIEWING_TRACE"===e.mode&&"VIEWING_TRACE"===t.mode&&e.traceIndex===t.traceIndex)}#ui(){this.#ii&&(qe.clearResolvedNodeNames(),this.#ii.removeEventListener(ze.eventName,this.#ni),this.#ii.uninstall(),this.#ii=null)}#gi(){this.statusPane&&this.statusPane.remove(),this.statusPane=null}#vi(e){if(!this.#pi(this.#Zt,e))switch("VIEWING_TRACE"===this.#Zt.mode&&(this.#ui(),this.#Ti()),this.#Zt=e,e.mode){case"LANDING_PAGE":return this.#gi(),this.#mi(),this.searchableViewInternal.hideWidget(),this.brickBreakerToolbarButtonAdded=!1,void this.panelToolbar.removeToolbarItem(this.brickBreakerToolbarButton);case"VIEWING_TRACE":return this.#gi(),this.#fi(),void this.#yi();case"STATUS_PANE_OVERLAY":return this.#fi(),void this.#ei.hideSidebar();default:c.assertNever(e,"Unsupported TimelinePanel viewMode")}}#bi(){return"VIEWING_TRACE"===this.#Zt.mode?this.#Zt.traceIndex:null}getTraceEngineDataForLayoutTests(){const e=this.#bi();if(null===e)throw new Error("No trace index active.");const t=this.#ti.traceParsedData(e);if(null===t)throw new Error("No trace engine data found.");return t}getTraceEngineRawTraceEventsForLayoutTests(){const e=this.#bi();if(null===e)throw new Error("No trace index active.");const t=this.#ti.rawTraceEvents(e);if(null===t)throw new Error("No trace engine data found.");return t}#di(e){if(e.data){const e=new Date,t=e.getUTCMonth()+1,i=e.getUTCDate();4===t&&(1===i||2===i)&&!this.brickBreakerToolbarButtonAdded&&(this.brickBreakerToolbarButtonAdded=!0,this.panelToolbar.appendToolbarItem(this.brickBreakerToolbarButton))}else this.brickBreakerToolbarButtonAdded=!1,this.panelToolbar.removeToolbarItem(this.brickBreakerToolbarButton)}loadFromCpuProfile(e){"Idle"===this.state&&null!==e&&(this.prepareToLoadTimeline(),this.loader=Hn.loadFromCpuProfile(e,this))}setState(e){this.state=e,this.updateTimelineControls()}createSettingCheckbox(e,t){const i=new u.Toolbar.ToolbarSettingCheckbox(e,t);return this.recordingOptionUIControls.push(i),i}#wi(){return a.Runtime.experiments.isEnabled("timeline-rpp-sidebar")||a.Runtime.experiments.isEnabled("perf-panel-annotations")}#Si(){this.#wi()&&(this.panelToolbar.hasItem(this.#si)||this.panelToolbar.prependToolbarItem(this.#si))}#Ei(){this.panelToolbar.removeToolbarItem(this.#si)}populateToolbar(){this.panelToolbar.appendToolbarItem(u.Toolbar.Toolbar.createActionButton(this.toggleRecordAction)),this.panelToolbar.appendToolbarItem(u.Toolbar.Toolbar.createActionButton(this.recordReloadAction)),this.clearButton=new u.Toolbar.ToolbarButton(ir(er.clear),"clear",void 0,"timeline.clear"),this.clearButton.addEventListener("Click",(()=>this.onClearButton())),this.panelToolbar.appendToolbarItem(this.clearButton),this.loadButton=new u.Toolbar.ToolbarButton(ir(er.loadProfile),"import",void 0,"timeline.load-from-file"),this.loadButton.addEventListener("Click",(()=>{l.userMetrics.actionTaken(l.UserMetrics.Action.PerfPanelTraceImported),this.selectFileToLoad()})),this.saveButton=new u.Toolbar.ToolbarButton(ir(er.saveProfile),"download",void 0,"timeline.save-to-file"),this.saveButton.addEventListener("Click",(e=>{l.userMetrics.actionTaken(l.UserMetrics.Action.PerfPanelTraceExported),this.saveToFile()})),a.Runtime.experiments.isEnabled("timeline-enhanced-traces")&&this.saveButton.element.addEventListener("contextmenu",(e=>{if(e.preventDefault(),e.stopPropagation(),e.ctrlKey||2===e.button){const t=new u.ContextMenu.ContextMenu(e);t.saveSection().appendItem(ir(er.exportNormalTraces),(()=>{this.saveToFile()})),t.saveSection().appendItem(ir(er.exportEnhancedTraces),(()=>{this.saveToFile(!0)})),t.show()}else this.saveToFile()})),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(this.loadButton),this.panelToolbar.appendToolbarItem(this.saveButton),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(this.#Yt.button()),this.panelToolbar.registerCSSFiles([xe]),this.panelToolbar.appendSeparator(),this.panelToolbar.appendSeparator(),rr||(this.showScreenshotsToolbarCheckbox=this.createSettingCheckbox(this.showScreenshotsSetting,ir(er.captureScreenshots)),this.panelToolbar.appendToolbarItem(this.showScreenshotsToolbarCheckbox)),this.showMemoryToolbarCheckbox=this.createSettingCheckbox(this.showMemorySetting,ir(er.showMemoryTimeline)),this.panelToolbar.appendToolbarItem(this.showMemoryToolbarCheckbox),this.panelToolbar.appendToolbarItem(u.Toolbar.Toolbar.createActionButtonForId("components.collect-garbage"));const e=new Le;rr&&(this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(e)),rr||(this.panelRightToolbar.appendSeparator(),this.panelRightToolbar.appendToolbarItem(this.showSettingsPaneButton))}createSettingsPane(){this.showSettingsPaneSetting=r.Settings.Settings.instance().createSetting("timeline-show-settings-toolbar",!1),this.showSettingsPaneButton=new u.Toolbar.ToolbarSettingToggle(this.showSettingsPaneSetting,"gear",ir(er.captureSettings),"gear-filled","timeline-settings-toggle"),n.NetworkManager.MultitargetNetworkManager.instance().addEventListener("ConditionsChanged",this.updateShowSettingsToolbarButton,this),n.CPUThrottlingManager.CPUThrottlingManager.instance().addEventListener("RateChanged",this.updateShowSettingsToolbarButton,this),n.CPUThrottlingManager.CPUThrottlingManager.instance().addEventListener("HardwareConcurrencyChanged",this.updateShowSettingsToolbarButton,this),this.disableCaptureJSProfileSetting.addChangeListener(this.updateShowSettingsToolbarButton,this),this.captureLayersAndPicturesSetting.addChangeListener(this.updateShowSettingsToolbarButton,this),this.captureSelectorStatsSetting.addChangeListener(this.updateShowSettingsToolbarButton,this),this.settingsPane=new u.Widget.HBox,this.settingsPane.element.classList.add("timeline-settings-pane"),this.settingsPane.element.setAttribute("jslog",`${g.pane("timeline-settings-pane").track({resize:!0})}`),this.settingsPane.show(this.element);const e=new u.Toolbar.Toolbar("",this.settingsPane.element);e.element.classList.add("flex-auto"),e.makeVertical(),e.appendToolbarItem(this.createSettingCheckbox(this.disableCaptureJSProfileSetting,ir(er.disablesJavascriptSampling))),e.appendToolbarItem(this.createSettingCheckbox(this.captureLayersAndPicturesSetting,ir(er.capturesAdvancedPaint))),e.appendToolbarItem(this.createSettingCheckbox(this.captureSelectorStatsSetting,ir(er.capturesSelectorStats)));const t=new u.Widget.VBox;t.element.classList.add("flex-auto"),t.show(this.settingsPane.element);const i=new u.Toolbar.Toolbar("",t.element);i.appendText(ir(er.cpu)),this.cpuThrottlingSelect=v.ThrottlingManager.throttlingManager().createCPUThrottlingSelector(),i.appendToolbarItem(this.cpuThrottlingSelect);const a=new u.Toolbar.Toolbar("",t.element);a.appendText(ir(er.network)),this.networkThrottlingSelect=this.createNetworkConditionsSelect(),a.appendToolbarItem(this.networkThrottlingSelect);const s=new u.Widget.VBox;s.element.classList.add("flex-auto"),s.show(this.settingsPane.element);const o=new u.Toolbar.Toolbar("",this.settingsPane.element);o.element.classList.add("flex-auto"),o.makeVertical(),o.appendToolbarItem(this.createSettingCheckbox(this.#Xt,ir(er.showDataAddedByExtensions)));const{toggle:l,input:c,reset:d,warning:h}=v.ThrottlingManager.throttlingManager().createHardwareConcurrencySelector(),m=new u.Toolbar.Toolbar("",s.element);m.registerCSSFiles([Vn]),c.element.classList.add("timeline-concurrency-input"),m.appendToolbarItem(l),m.appendToolbarItem(c),m.appendToolbarItem(d),m.appendToolbarItem(h),this.showSettingsPaneSetting.addChangeListener(this.updateSettingsPaneVisibility.bind(this)),this.updateSettingsPaneVisibility()}createNetworkConditionsSelect(){const e=new u.Toolbar.ToolbarComboBox(null,ir(er.networkConditions));return e.setMaxWidth(140),v.ThrottlingManager.throttlingManager().decorateSelectWithNetworkThrottling(e.selectElement()),e}prepareToLoadTimeline(){console.assert("Idle"===this.state),this.setState("Loading")}createFileSelector(){this.fileSelectorElement&&this.fileSelectorElement.remove(),this.fileSelectorElement=u.UIUtils.createFileSelectorElement(this.loadFromFile.bind(this),".json,.gz,.gzip,.cpuprofile"),this.timelinePane.element.appendChild(this.fileSelectorElement)}contextMenu(e){const t=e;if(-1!==this.flameChart.getMainFlameChart().coordinatesToEntryIndex(t.offsetX,t.offsetY))return;const i=new u.ContextMenu.ContextMenu(e,{useSoftMenu:!0});i.appendItemsAtLocation("timelineMenu"),i.show()}async saveToFile(e=!1){if("Idle"!==this.state)return;if("VIEWING_TRACE"!==this.#Zt.mode)return;const t=this.#ti.rawTraceEvents(this.#Zt.traceIndex),n=this.#ti.metadata(this.#Zt.traceIndex);if(a.Runtime.experiments.isEnabled("perf-panel-annotations")&&n&&(n.modifications=Ue.activeManager()?.toJSON()),n&&e&&(n.enhancedTraceVersion=i.Handlers.ModelHandlers.EnhancedTraces.EnhancedTracesVersion),!t)return;const s=c.DateUtilities.toISO8601Compact(new Date);let o;o="CPUProfile"===n?.dataOrigin?`CPU-${s}.cpuprofile`:n&&n.enhancedTraceVersion?`EnhancedTraces-${s}.json`:`Trace-${s}.json`;try{let e;if("CPUProfile"===n?.dataOrigin){const i=t.find((e=>"CpuProfile"===e.name));if(!i||!i.args?.data)return;const n=i.args?.data;if(n.hasOwnProperty("cpuProfile")){e=Ve(n.cpuProfile)}}else{const i=_e(t,n);e=Array.from(i).join("")}if(!e)throw new Error("Trace content empty");await d.FileManager.FileManager.instance().save(o,e,!0,!1),d.FileManager.FileManager.instance().close(o)}catch(e){if(console.error(e.stack),"AbortError"===e.name)return;r.Console.Console.instance().error(ir(er.failedToSaveTimelineSS,{PH1:e.message,PH2:e.name}))}}async showHistoryDropdown(){const e=await this.#Yt.showHistoryDropDown();e&&("LANDING_PAGE"===e.type?this.#vi({mode:"LANDING_PAGE"}):this.#vi({mode:"VIEWING_TRACE",traceIndex:e.traceParseDataIndex}))}navigateHistory(e){const t=this.#Yt.navigate(e);return t&&"TRACE_INDEX"===t.type&&this.#vi({mode:"VIEWING_TRACE",traceIndex:t.traceParseDataIndex}),!0}#Ti(){if("VIEWING_TRACE"!==this.#Zt.mode)return;const e=Ue.activeManager()?.toJSON();e&&this.#ti.overrideModifications(this.#Zt.traceIndex,e)}selectFileToLoad(){this.fileSelectorElement&&this.fileSelectorElement.click()}async loadFromFile(e){"Idle"===this.state&&(this.prepareToLoadTimeline(),this.loader=await Hn.loadFromFile(e,this),this.createFileSelector())}async loadFromURL(e){"Idle"===this.state&&(this.prepareToLoadTimeline(),this.loader=await Hn.loadFromURL(e,this))}updateMiniMap(){if("VIEWING_TRACE"!==this.#Zt.mode)return;const e=this.#ti.traceParsedData(this.#Zt.traceIndex),t="CPUProfile"===this.#ti.metadata(this.#Zt.traceIndex)?.dataOrigin;e&&this.#Ct.setData({traceParsedData:e,isCpuProfile:t,settings:{showScreenshots:this.showScreenshotsSetting.get(),showMemory:this.showMemorySetting.get()}})}onModeChanged(){this.flameChart.updateCountersGraphToggle(this.showMemorySetting.get()),this.updateMiniMap(),this.doResize(),this.select(null)}#ci(){this.flameChart.extensionDataVisibilityChanged()}updateSettingsPaneVisibility(){rr||(this.showSettingsPaneSetting.get()?(this.showSettingsPaneButton.setToggled(!0),this.settingsPane.showWidget()):(this.showSettingsPaneButton.setToggled(!1),this.settingsPane.hideWidget()))}updateShowSettingsToolbarButton(){const e=[];if(1!==n.CPUThrottlingManager.CPUThrottlingManager.instance().cpuThrottlingRate()&&e.push(ir(er.CpuThrottlingIsEnabled)),v.ThrottlingManager.throttlingManager().hardwareConcurrencyOverrideEnabled&&e.push(ir(er.HardwareConcurrencyIsEnabled)),n.NetworkManager.MultitargetNetworkManager.instance().isThrottling()&&e.push(ir(er.NetworkThrottlingIsEnabled)),this.captureLayersAndPicturesSetting.get()&&e.push(ir(er.SignificantOverheadDueToPaint)),this.captureSelectorStatsSetting.get()&&e.push(ir(er.SelectorStatsEnabled)),this.disableCaptureJSProfileSetting.get()&&e.push(ir(er.JavascriptSamplingIsDisabled)),this.showSettingsPaneButton.setChecked(e.length>0),this.showSettingsPaneButton.element.style.setProperty("--dot-toggle-top","16px"),this.showSettingsPaneButton.element.style.setProperty("--dot-toggle-left","15px"),e.length){const t=document.createElement("div");e.forEach((e=>{t.createChild("div").textContent=e})),this.showSettingsPaneButton.setTitle(t.textContent||"")}else this.showSettingsPaneButton.setTitle(ir(er.captureSettings))}setUIControlsEnabled(e){this.recordingOptionUIControls.forEach((t=>t.setEnabled(e)))}async#Ci(){if(!this.controller)return c.DevToolsPath.EmptyUrlString;const e=this.controller.primaryPageTarget.inspectedURL(),t=this.controller.primaryPageTarget.model(n.ResourceTreeModel.ResourceTreeModel),i=t&&await t.navigationHistory();if(!t||!i)return e;const{currentIndex:r,entries:a}=i;return a[r].url}async#ki(){const e=new Promise((async(e,t)=>{if(!this.controller)return void t("Could not find TimelineController");const i=this.controller.primaryPageTarget.model(n.ResourceTreeModel.ResourceTreeModel);i?(i.addEventListener(n.ResourceTreeModel.Events.FrameNavigated,(function r(a){"about:blank"===a.data.url?e():t(`Unexpected navigation to ${a.data.url}`),i?.removeEventListener(n.ResourceTreeModel.Events.FrameNavigated,r)})),await i.navigate("about:blank")):t("Could not load resourceModel")}));await e}async#xi(){try{if(this.cpuProfiler=u.Context.Context.instance().flavor(n.CPUProfilerModel.CPUProfilerModel),!this.cpuProfiler){const e=n.TargetManager.TargetManager.instance().targets().find((e=>e.type()===n.Target.Type.Node));if(!e)throw new Error("Could not load any Node target.");e&&(this.cpuProfiler=e.model(n.CPUProfilerModel.CPUProfilerModel))}if(this.setUIControlsEnabled(!1),this.#vi({mode:"STATUS_PANE_OVERLAY"}),!this.cpuProfiler)throw new Error("No Node target is found.");await n.TargetManager.TargetManager.instance().suspendAllTargets("performance-timeline"),await this.cpuProfiler.startRecording(),this.recordingStarted()}catch(e){await this.recordingFailed(e.message)}}async#Pi(){try{const e=n.TargetManager.TargetManager.instance().rootTarget(),t=n.TargetManager.TargetManager.instance().primaryPageTarget();if(!t)throw new Error("Could not load primary page target.");if(!e)throw new Error("Could not load root target.");if(Kn.isUiDevTools()?this.controller=new Zn(e,t,this):this.controller=new Xe(e,t,this),this.setUIControlsEnabled(!1),this.#vi({mode:"STATUS_PANE_OVERLAY"}),!this.controller)throw new Error("Could not create Timeline controller");const i=await this.#Ci();this.recordingPageReload&&await this.#ki();const r={enableJSSampling:!this.disableCaptureJSProfileSetting.get(),capturePictures:this.captureLayersAndPicturesSetting.get(),captureFilmStrip:this.showScreenshotsSetting.get(),captureSelectorStats:this.captureSelectorStatsSetting.get()},a=await this.controller.startRecording(r);if(a.getError())throw new Error(a.getError());const s=this.recordingPageReload?{navigateToUrl:i}:void 0;this.recordingStarted(s)}catch(e){await this.recordingFailed(e.message)}}async startRecording(){console.assert(!this.statusPane,"Status pane is already opened."),this.setState("StartPending"),this.showRecordingStarted(),rr?await this.#xi():await this.#Pi()}async stopRecording(){if(this.statusPane&&(this.statusPane.finish(),this.statusPane.updateStatus(ir(er.stoppingTimeline)),this.statusPane.updateProgressBar(ir(er.received),0)),this.setState("StopPending"),this.controller)return await this.controller.stopRecording(),this.setUIControlsEnabled(!0),await this.controller.dispose(),void(this.controller=null);if(this.cpuProfiler){const e=await this.cpuProfiler.stopRecording();this.setState("Idle"),this.loadFromCpuProfile(e),this.setUIControlsEnabled(!0),this.cpuProfiler=null,await n.TargetManager.TargetManager.instance().resumeAllTargets()}}async recordingFailed(e,t){this.statusPane&&this.statusPane.remove(),this.statusPane=new sr({description:e,buttonText:ir(er.close),buttonDisabled:!1,showProgress:void 0,showTimer:void 0},(async()=>{this.statusPane?.remove(),await this.loadingComplete([],null,!1,null,null)})),this.statusPane.showPane(this.statusPaneContainer),this.statusPane.updateStatus(ir(er.recordingFailed)),t&&this.statusPane.enableDownloadOfEvents(t),this.setState("RecordingFailed"),this.traceLoadStart=null,this.setUIControlsEnabled(!0),this.controller&&(await this.controller.dispose(),this.controller=null),n.TargetManager.TargetManager.instance().resumeAllTargets()}onSuspendStateChanged(){this.updateTimelineControls()}consoleProfileFinished(e){this.loadFromCpuProfile(e.cpuProfile),u.InspectorView.InspectorView.instance().showPanel("timeline")}updateTimelineControls(){this.toggleRecordAction.setToggled("Recording"===this.state),this.toggleRecordAction.setEnabled("Recording"===this.state||"Idle"===this.state),this.recordReloadAction.setEnabled(!rr&&"Idle"===this.state),this.#Yt.setEnabled("Idle"===this.state),this.clearButton.setEnabled("Idle"===this.state),this.panelToolbar.setEnabled("Loading"!==this.state),this.panelRightToolbar.setEnabled("Loading"!==this.state),this.dropTarget.setEnabled("Idle"===this.state),this.loadButton.setEnabled("Idle"===this.state),this.saveButton.setEnabled("Idle"===this.state&&this.#Ii()),"VIEWING_TRACE"===this.#Zt.mode&&this.#Si()}async toggleRecording(){"Idle"===this.state?(this.recordingPageReload=!1,await this.startRecording(),l.userMetrics.actionTaken(l.UserMetrics.Action.TimelineStarted)):"Recording"===this.state&&await this.stopRecording()}recordReload(){"Idle"===this.state&&(this.recordingPageReload=!0,this.startRecording(),l.userMetrics.actionTaken(l.UserMetrics.Action.TimelinePageReloadStarted))}onClearButton(){this.#Yt.clear(),this.#vi({mode:"LANDING_PAGE"})}#Ii(){return"VIEWING_TRACE"===this.#Zt.mode}#li(){this.#Ii()&&this.flameChart.runBrickBreakerGame()}#Mi(e,t=null){if(e||a.Runtime.experiments.isEnabled("timeline-show-all-events"))return;const i=t?[t]:[xt.visibleEventsFilter()];Se.instance().setFilters(i)}#yi(){if("VIEWING_TRACE"!==this.#Zt.mode)return;const{traceIndex:e}=this.#Zt,t=this.#ti.traceParsedData(e);if(!t)return console.error(`setModelForActiveTrace was called with an invalid trace index: ${e}`),void this.#vi({mode:"LANDING_PAGE"});p.LineLevelProfile.Performance.instance().reset(),this.#Ct.reset(),h.TraceBounds.BoundsManager.instance().resetWithNewBounds(t.Meta.traceBounds);const r="CPUProfile"===this.#ti.metadata(e)?.dataOrigin;this.flameChart.setModel(t,r),this.flameChart.resizeToPreferredHeights(),this.flameChart.setSelection(null),this.#oi.setTraceParsedData(t),this.searchableViewInternal.showWidget();const a=this.#Qt.get(e)??null;this.#Mi(t.Meta.traceIsGeneric,a);const s=Ue.initAndActivateModificationsManager(this.#ti,e);s||console.error("ModificationsManager could not be created or activated."),s?.addEventListener(He.eventName,(e=>{const{overlay:t,action:i}=e;"Add"===i?this.flameChart.addOverlay(t):"Remove"===i?this.flameChart.removeOverlay(t):"UpdateTimeRange"===i&&y.Overlays.isTimeRangeLabel(t)?this.flameChart.updateExistingOverlay(t,{bounds:t.bounds}):"UpdateLinkToEntry"===i&&y.Overlays.isEntriesLink(t)&&this.flameChart.updateExistingOverlay(t,{entryTo:t.entryTo}),this.#oi.setAnnotations(s.getAnnotations())})),this.#Ct.breadcrumbsActivated&&this.#Ct.addInitialBreadcrumb();const o=this.flameChart.getMainDataProvider().compatibilityTracksAppenderInstance().threadAppenders().at(0);if(o){const e=i.Extras.MainThreadActivity.calculateWindow(t.Meta.traceBounds,o.getEntries());h.TraceBounds.BoundsManager.instance().setTimelineVisibleWindow(e)}const l=Ue.activeManager();if(l&&(l.getOverlays().forEach((e=>{this.flameChart.addOverlay(e)})),this.#oi.setAnnotations(l.getAnnotations())),p.LineLevelProfile.Performance.instance().reset(),t&&t.Samples.profilesInProcess.size){const e=n.TargetManager.TargetManager.instance().primaryPageTarget(),i=Array.from(t.Samples.profilesInProcess).flatMap((([e,t])=>Array.from(t.values()).map((e=>e.parsedProfile))));for(const t of i)p.LineLevelProfile.Performance.instance().appendCPUProfile(t,e)}this.#ii=new qe(t),this.#ii.addEventListener(ze.eventName,this.#ni),this.#ii.install(),this.updateMiniMap(),this.updateTimelineControls(),this.#hi(null);const c=this.#ti.traceInsights(e);c&&(this.flameChart.setInsights(c),this.#oi.setInsights(c));const d=null!==c&&c.size>0,m=(l?.getAnnotations().length??0)>0;this.#wi()&&(d||m)?this.#ei.showBoth():this.#ei.hideSidebar()}recordingStarted(e){if(e&&this.recordingPageReload&&this.controller){const t=this.controller?.primaryPageTarget.model(n.ResourceTreeModel.ResourceTreeModel);if(!t)return void this.recordingFailed("Could not navigate to original URL");t.navigate(e.navigateToUrl)}this.#vi({mode:"STATUS_PANE_OVERLAY"}),this.setState("Recording"),this.showRecordingStarted(),this.statusPane&&(this.statusPane.enableAndFocusButton(),this.statusPane.updateStatus(ir(er.profiling)),this.statusPane.updateProgressBar(ir(er.bufferUsage),0),this.statusPane.startTimer())}recordingProgress(e){this.statusPane&&this.statusPane.updateProgressBar(ir(er.bufferUsage),100*e)}#mi(){this.updateSettingsPaneVisibility(),this.#Ei(),this.#ei.hideSidebar(),this.landingPage||(this.landingPage=new Dn(this.toggleRecordAction,{isNode:rr})),this.landingPage.show(this.statusPaneContainer)}#fi(){this.landingPage.detach(),this.showSettingsPaneButton?.setToggled(!1),this.settingsPane?.hideWidget()}async loadingStarted(){this.#vi({mode:"STATUS_PANE_OVERLAY"}),this.statusPane&&this.statusPane.remove(),this.statusPane=new sr({showProgress:!0,showTimer:void 0,buttonDisabled:void 0,buttonText:void 0,description:void 0},(()=>this.cancelLoading())),this.statusPane.showPane(this.statusPaneContainer),this.statusPane.updateStatus(ir(er.loadingProfile)),this.loader||this.statusPane.finish(),this.traceLoadStart=i.Types.Timing.MilliSeconds(performance.now()),await this.loadingProgress(0)}async loadingProgress(e){"number"==typeof e&&this.statusPane&&this.statusPane.updateProgressBar(ir(er.received),100*e)}async processingStarted(){this.statusPane&&this.statusPane.updateStatus(ir(er.processingProfile))}#ri(){this.flameChart.refreshMainFlameChart()}async loadingComplete(e,t=null,n,r,a){this.#ti.resetProcessor(),delete this.loader;const s="StopPending"===this.state;if(this.setState("Idle"),0!==e.length){a=a||await i.Extras.Metadata.forNewRecording(n,r??void 0);try{await this.#Li(e,s,a);const n=this.#ti.lastTraceIndex();t&&this.#Qt.set(n,t),this.#vi({mode:"VIEWING_TRACE",traceIndex:n});const o=this.#ti.traceParsedData(n);if(!o)throw new Error(`Could not get trace data at index ${n}`);s&&Ce.instance().registerFreshRecording(o),this.#Yt.addRecording({data:{traceParseDataIndex:n,type:"TRACE_INDEX"},filmStripForPreview:i.Extras.FilmStrip.fromTraceData(o),traceParsedData:o,startTime:r??null})}catch(t){this.recordingFailed(t.message,e),console.error(t)}finally{this.recordTraceLoadMetric()}}else this.#ti.size()?this.#vi({mode:"VIEWING_TRACE",traceIndex:this.#ti.lastTraceIndex()}):this.#vi({mode:"LANDING_PAGE"})}recordTraceLoadMetric(){if(!this.traceLoadStart)return;const e=this.traceLoadStart;requestAnimationFrame((()=>{setTimeout((()=>{const t=i.Types.Timing.MilliSeconds(performance.now()),n=performance.measure("TraceLoad",{start:e,end:t}),r=i.Types.Timing.MilliSeconds(n.duration);this.element.dispatchEvent(new Y(r)),l.userMetrics.performanceTraceLoad(n)}),0)}))}async#Li(e,t,i){return this.#ti.parse(e,{metadata:i,isFreshRecording:t})}loadingCompleteForTest(){}showRecordingStarted(){this.#vi({mode:"STATUS_PANE_OVERLAY"}),this.statusPane&&this.statusPane.remove(),this.statusPane=new sr({showTimer:!0,showProgress:!0,buttonDisabled:!0,description:void 0,buttonText:void 0},(()=>this.stopRecording())),this.statusPane.showPane(this.statusPaneContainer),this.statusPane.updateStatus(ir(er.initializingProfiler))}cancelLoading(){this.loader&&this.loader.cancel()}async loadEventFired(e){if("Recording"!==this.state||!this.recordingPageReload||!this.controller||this.controller.primaryPageTarget!==e.data.resourceTreeModel.target())return;const t=this.controller;await new Promise((e=>window.setTimeout(e,this.millisecondsToRecordAfterLoadEvent))),t===this.controller&&"Recording"===this.state&&this.stopRecording()}frameForSelection(e){if("VIEWING_TRACE"!==this.#Zt.mode)return null;if(yt.isFrameObject(e.object))return e.object;if(yt.isRangeSelection(e.object)||yt.isSyntheticNetworkRequestDetailsEventSelection(e.object))return null;if(yt.isTraceEventSelection(e.object)){const t=this.#ti.traceParsedData(this.#Zt.traceIndex);if(!t)return null;const n=i.Helpers.Timing.millisecondsToMicroseconds(e.endTime);return i.Handlers.ModelHandlers.Frames.framesWithinWindow(t.Frames.frames,n,n).at(0)||null}return console.assert(!1,"Should never be reached"),null}jumpToFrame(e){if("VIEWING_TRACE"!==this.#Zt.mode)return;const t=this.selection&&this.frameForSelection(this.selection);if(!t)return;const n=this.#ti.traceParsedData(this.#Zt.traceIndex);if(!n)return;let r=n.Frames.frames.indexOf(t);console.assert(r>=0,"Can't find current frame in the frame list"),r=c.NumberUtilities.clamp(r+e,0,n.Frames.frames.length-1);const a=n.Frames.frames[r];return this.#Ri(i.Helpers.Timing.microSecondsToMilliseconds(a.startTime),i.Helpers.Timing.microSecondsToMilliseconds(a.endTime)),this.select(yt.fromFrame(a)),!0}select(e){this.selection=e,this.flameChart.setSelection(e)}selectEntryAtTime(e,t){if(e)if(0!==e.length){for(let n=c.ArrayUtilities.upperBound(e,t,((e,t)=>e-t.ts))-1;n>=0;--n){const r=e[n],{endTime:a}=i.Helpers.Timing.eventTimingsMilliSeconds(r);if(i.Helpers.Trace.isTopLevelEvent(r)&&a<t)break;if(Se.instance().isVisible(r)&&a>=t)return void this.select(yt.fromTraceEvent(r))}this.select(null)}else this.select(null)}highlightEvent(e){this.flameChart.highlightEvent(e)}#Ri(e,t){const n=h.TraceBounds.BoundsManager.instance().state();if(!n)return;const r=n.milli.timelineTraceWindow;let a=0;r.max<t?a=t-r.max:r.min>e&&(a=e-r.min),h.TraceBounds.BoundsManager.instance().setTimelineVisibleWindow(i.Helpers.Timing.traceWindowFromMilliSeconds(i.Types.Timing.MilliSeconds(r.min+a),i.Types.Timing.MilliSeconds(r.max+a)),{shouldAnimate:!0})}handleDrop(e){const t=e.items;if(!t.length)return;const i=t[0];if(l.userMetrics.actionTaken(l.UserMetrics.Action.PerfPanelTraceImported),"string"===i.kind){const t=e.getData("text/uri-list");new r.ParsedURL.ParsedURL(t).isValid&&this.loadFromURL(t)}else if("file"===i.kind){const e=t[0].getAsFile();if(!e)return;this.loadFromFile(e)}}}class sr extends u.Widget.VBox{status;time;progressLabel;progressBar;description;button;downloadTraceButton;startTime;timeUpdateTimer;#Fi;constructor(e,t){super(!0),this.contentElement.classList.add("timeline-status-dialog"),this.contentElement.setAttribute("jslog",`${g.dialog("timeline-status").track({resize:!0})}`);const i=this.contentElement.createChild("div","status-dialog-line status");if(i.createChild("div","label").textContent=ir(er.status),this.status=i.createChild("div","content"),u.ARIAUtils.markAsStatus(this.status),e.showTimer){const e=this.contentElement.createChild("div","status-dialog-line time");e.createChild("div","label").textContent=ir(er.time),this.time=e.createChild("div","content")}if(e.showProgress){const e=this.contentElement.createChild("div","status-dialog-line progress");this.progressLabel=e.createChild("div","label"),this.progressBar=e.createChild("div","indicator-container").createChild("div","indicator"),u.ARIAUtils.markAsProgressBar(this.progressBar)}if("string"==typeof e.description){const t=this.contentElement.createChild("div","status-dialog-line description");t.createChild("div","label").textContent=ir(er.description),this.description=t.createChild("div","content"),this.description.innerText=e.description}const n=this.contentElement.createChild("div","stop-button");this.downloadTraceButton=u.UIUtils.createTextButton(ir(er.downloadAfterError),(()=>{this.#Di()}),{jslogContext:"timeline.download-after-error"}),this.downloadTraceButton.disabled=!0,this.downloadTraceButton.style.visibility="hidden";const r=e.buttonText||ir(er.stop);this.button=u.UIUtils.createTextButton(r,t,{jslogContext:"timeline.stop-recording"}),this.button.disabled=!1==!e.buttonDisabled,n.append(this.downloadTraceButton),n.append(this.button)}finish(){this.stopTimer(),this.button.disabled=!0}async#Di(){if(!this.#Fi||0===this.#Fi.length)return;const e=`Trace-Load-Error-${c.DateUtilities.toISO8601Compact(new Date)}.json`,t=_e(this.#Fi,{}),i=Array.from(t).join("");await d.FileManager.FileManager.instance().save(e,i,!0,!1),d.FileManager.FileManager.instance().close(e)}enableDownloadOfEvents(e){this.#Fi=e,this.downloadTraceButton.disabled=!1,this.downloadTraceButton.style.visibility="visible"}remove(){this.element.parentNode&&(this.element.parentNode.classList.remove("tinted"),this.arrangeDialog(this.element.parentNode)),this.stopTimer(),this.element.remove()}showPane(e){this.arrangeDialog(e),this.show(e),e.classList.add("tinted")}enableAndFocusButton(){this.button.disabled=!1,this.button.focus()}updateStatus(e){this.status.textContent=e}updateProgressBar(e,t){this.progressLabel.textContent=e,this.progressBar.style.width=t.toFixed(1)+"%",u.ARIAUtils.setValueNow(this.progressBar,t),this.updateTimer()}startTimer(){this.startTime=Date.now(),this.timeUpdateTimer=window.setInterval(this.updateTimer.bind(this,!1),1e3),this.updateTimer()}stopTimer(){this.timeUpdateTimer&&(clearInterval(this.timeUpdateTimer),this.updateTimer(!0),delete this.timeUpdateTimer)}updateTimer(e){if(this.arrangeDialog(this.element.parentNode),!this.timeUpdateTimer||!this.time)return;const t=(Date.now()-this.startTime)/1e3;this.time.textContent=ir(er.ssec,{PH1:t.toFixed(e?1:0)})}arrangeDialog(e){const t=e.clientWidth<325;this.element.classList.toggle("small-dialog",t),this.contentElement.classList.toggle("small-dialog",t)}wasShown(){super.wasShown(),this.registerCSSFiles([Gn])}}let or;class lr{static instance(e={forceNew:null}){const{forceNew:t}=e;return or&&!t||(or=new lr),or}handleQueryParam(e){u.ViewManager.ViewManager.instance().showView("timeline").then((async()=>{await ar.instance().loadFromURL(window.decodeURIComponent(e))}))}}var cr=Object.freeze({__proto__:null,TimelinePanel:ar,rowHeight:18,headerHeight:20,StatusPane:sr,LoadTimelineHandler:lr,TraceRevealer:class{async reveal(e){await u.ViewManager.ViewManager.instance().showView("timeline"),ar.instance().loadFromEvents(e.traceEvents)}},ActionDelegate:class{handleAction(e,t){const i=e.flavor(ar);if(null===i)return!1;switch(t){case"timeline.toggle-recording":return i.toggleRecording(),!0;case"timeline.record-reload":return i.recordReload(),!0;case"timeline.save-to-file":return i.saveToFile(),!0;case"timeline.load-from-file":return i.selectFileToLoad(),!0;case"timeline.jump-to-previous-frame":return i.jumpToFrame(-1),!0;case"timeline.jump-to-next-frame":return i.jumpToFrame(1),!0;case"timeline.show-history":return i.showHistoryDropdown(),!0;case"timeline.previous-recording":return i.navigateHistory(1),!0;case"timeline.next-recording":return i.navigateHistory(-1),!0}return!1}}});let dr;class hr{#t=null;#Ai=new Map;static instance(){return dr||(dr=new hr,dr)}static removeInstance(){dr=void 0}getExtensionData(){if(!ar.extensionDataVisibilitySetting().get()||!this.#t||!this.#t.ExtensionTraceData)return{extensionMarkers:[],extensionTrackData:[],entryToNode:new Map};const e=this.#Ai.get(this.#t);return e||this.#t.ExtensionTraceData}saveCurrentModelData(){this.#t&&!this.#Ai.has(this.#t)&&this.#Ai.set(this.#t,this.getExtensionData())}modelChanged(e){e!==this.#t&&(null!==this.#t&&this.saveCurrentModelData(),this.#t=e)}}var mr=Object.freeze({__proto__:null,ExtensionDataGatherer:hr});const pr={customTrackDescription:"This is a custom track added by a third party.",customTrackName:"{PH1} — Custom Track"},ur=e.i18n.registerUIStrings("panels/timeline/ExtensionTrackAppender.ts",pr),gr=e.i18n.getLocalizedString.bind(void 0,ur);class vr{appenderName="Extension";#Ni;#e;constructor(e,t){this.#Ni=t,this.#e=e}appendTrackAtLevel(e,t){return 0===Object.values(this.#Ni.entriesByTrack).reduce(((e,t)=>t.length+e),0)?e:(this.#Bi(e,t),this.#Hi(e))}#Bi(e,t){const i=W({shareHeaderLine:!1,collapsible:!0}),n=O("extension",e,gr(pr.customTrackName,{PH1:this.#Ni.name}),i,!0,t);n.description=gr(pr.customTrackDescription),this.#e.registerTrackForGroup(n,this)}#Ui(e,t){const i=O("extension",e,t,W({shareHeaderLine:!1,padding:2,nestingLevel:1,collapsible:!0}),!0);this.#e.registerTrackForGroup(i,this)}#Hi(e){let t=e;for(const[e,i]of Object.entries(this.#Ni.entriesByTrack))this.#Ni.isTrackGroup&&this.#Ui(t,e),t=this.#e.appendEventsAtLevel(i,t,this);return t}colorForEvent(e){const n=t.ThemeSupport.instance().getComputedValue("--app-color-rendering");return i.Types.Extensions.isSyntheticExtensionEntry(e)?P.ExtensionUI.extensionEntryColor(e):n}titleForEvent(e){return e.name}highlightedEntryInfo(e){return{title:i.Types.Extensions.isSyntheticExtensionEntry(e)&&e.args.tooltipText?e.args.tooltipText:this.titleForEvent(e),formattedTime:_(e.dur)}}}var Tr=Object.freeze({__proto__:null,ExtensionTrackAppender:vr});const fr={gpu:"GPU"},yr=e.i18n.registerUIStrings("panels/timeline/GPUTrackAppender.ts",fr),br=e.i18n.getLocalizedString.bind(void 0,yr);class wr{appenderName="GPU";#e;#t;constructor(e,t){this.#e=e,this.#t=t}appendTrackAtLevel(e,t){const i=this.#t.GPU.mainGPUThreadTasks;return 0===i.length?e:(this.#i(e,t),this.#e.appendEventsAtLevel(i,e,this))}#i(e,t){const i=W({collapsible:!1}),n=O("gpu",e,br(fr.gpu),i,!0,t);this.#e.registerTrackForGroup(n,this)}colorForEvent(e){if(!i.Types.TraceEvents.isTraceEventGPUTask(e))throw new Error(`Unexpected GPU Task: The event's type is '${e.name}'`);return t.ThemeSupport.instance().getComputedValue("--app-color-painting")}titleForEvent(e){return i.Types.TraceEvents.isTraceEventGPUTask(e)?"GPU":e.name}highlightedEntryInfo(e){return{title:this.titleForEvent(e),formattedTime:_(e.dur)}}}var Sr=Object.freeze({__proto__:null,GPUTrackAppender:wr});const Er={layoutShifts:"Layout shifts"},Cr=e.i18n.registerUIStrings("panels/timeline/LayoutShiftsTrackAppender.ts",Er),kr=e.i18n.getLocalizedString.bind(void 0,Cr),xr=i.Types.Timing.MicroSeconds(5e3);class Pr{appenderName="LayoutShifts";#e;#t;constructor(e,t){this.#e=e,this.#t=t}appendTrackAtLevel(e,t){return 0===this.#t.LayoutShifts.clusters.length?e:(this.#i(e,t),this.#Wi(e))}#i(e,t){const i=W({collapsible:!1}),n=O("layout-shifts",e,kr(Er.layoutShifts),i,!0,t);this.#e.registerTrackForGroup(n,this)}#Wi(e){const t=this.#t.LayoutShifts.clusters.flatMap((e=>e.events));return this.#e.appendEventsAtLevel(t,e,this,((e,t)=>{this.#e.getFlameChartTimelineData().entryTotalTimes[t]=i.Helpers.Timing.microSecondsToMilliseconds(xr)}))}colorForEvent(e){return t.ThemeSupport.instance().getComputedValue("--app-color-rendering")}titleForEvent(e){return i.Types.TraceEvents.isTraceEventLayoutShift(e)?"Layout shift":e.name}highlightedEntryInfo(e){return{title:this.titleForEvent(e),formattedTime:_(e.dur)}}}var Ir=Object.freeze({__proto__:null,LAYOUT_SHIFT_SYNTHETIC_DURATION:xr,LayoutShiftsTrackAppender:Pr});const Mr={serverTimingTrack:"This track contains timings taken from Server-Timing network response headers. Their respective start times are only estimated and may not be accurate.",serverSideTrack:"Server Timings — {PH1}"},Lr=e.i18n.registerUIStrings("panels/timeline/ServerTimingsTrackAppender.ts",Mr),Rr=e.i18n.getLocalizedString.bind(void 0,Lr);class Fr{appenderName="ServerTimings";#t;#e;constructor(e,t){this.#t=t,this.#e=e}appendTrackAtLevel(e,t){if(!a.Runtime.experiments.isEnabled("timeline-server-timings"))return e;if(0===this.#t.ServerTimings.serverTimings.length)return e;let i=e;const n=Object.groupBy(this.#t.ServerTimings.serverTimings,(e=>e.args.data.origin));for(const[e,r]of Object.entries(n))r&&0!==r.length&&(this.#Bi(i,e,t),i=this.#Oi(i,r));return i}#Bi(e,t,i){const n=W({shareHeaderLine:!1,collapsible:!0}),r=O("server.timings",e,Rr(Mr.serverSideTrack,{PH1:t}),n,!0,i);r.description=Rr(Mr.serverTimingTrack),this.#e.registerTrackForGroup(r,this)}#Oi(e,t){let i=e;return i=this.#e.appendEventsAtLevel(t,i,this),i}colorForEvent(){return t.ThemeSupport.instance().getComputedValue("--ref-palette-primary70")}titleForEvent(e){return e.name}highlightedEntryInfo(e){return{title:e.name,formattedTime:_(e.dur)}}}var Dr=Object.freeze({__proto__:null,ServerTimingsTrackAppender:Fr});const Ar={timings:"Timings"},Nr=e.i18n.registerUIStrings("panels/timeline/TimingsTrackAppender.ts",Ar),Br=e.i18n.getLocalizedString.bind(void 0,Nr),Hr={navigationStart:0,MarkLoad:1,firstContentfulPaint:2,firstPaint:2,MarkDOMContent:3,"largestContentfulPaint::Candidate":4};class Ur{appenderName="Timings";#O;#e;#t;#_i=null;constructor(e,t,i){this.#e=e,this.#O=i,this.#t=t}appendTrackAtLevel(e,t){const n=hr.instance().getExtensionData().extensionMarkers,r=this.#t.PageLoadMetrics.allMarkerEvents,a=0===n.length,s=this.#t.UserTimings.performanceMarks.filter((e=>!i.Handlers.ModelHandlers.ExtensionTraceData.extensionDataInTiming(e))),o=this.#t.UserTimings.performanceMeasures.filter((e=>!i.Handlers.ModelHandlers.ExtensionTraceData.extensionDataInTiming(e))),l=this.#t.UserTimings.timestampEvents,c=this.#t.UserTimings.consoleTimings;if(a&&0===r.length&&0===s.length&&0===o.length&&0===l.length&&0===c.length)return e;this.#i(e,t);let d=this.#Vi(e);return d=this.#e.appendEventsAtLevel(s,d,this),d=this.#e.appendEventsAtLevel(o,d,this),d=this.#e.appendEventsAtLevel(l,d,this),this.#e.appendEventsAtLevel(c,d,this)}#i(e,t){const i=W({useFirstLineForOverview:!0,collapsible:this.#t.UserTimings.performanceMeasures.length>0}),n=O("timings",e,Br(Ar.timings),i,!0,t);this.#e.registerTrackForGroup(n,this)}#Gi(e){e.sort(((e,t)=>(Hr[e.name]??1/0)-(Hr[t.name]??1/0)))}#zi(e){if(this.#_i)return this.#_i;const t=new Map;e.forEach((e=>{const i=t.get(e.ts)||[];i.push(e),t.set(e.ts,i)}));for(const e of t.values())e.length>1&&this.#Gi(e);return this.#_i=t,this.#_i}#Vi(e){let t=this.#t.PageLoadMetrics.allMarkerEvents;if(t=t.concat(hr.instance().getExtensionData().extensionMarkers).sort(((e,t)=>e.ts-t.ts)),0===t.length)return e;const n=this.#zi(t);for(const t of n.values())for(const i of t){const t=this.#e.appendEventAtLevel(i,e,this);this.#e.getFlameChartTimelineData().entryTotalTimes[t]=Number.NaN}const r=i.Helpers.Timing.microSecondsToMilliseconds(this.#t.Meta.traceBounds.min),a=t.map((e=>{const t=i.Helpers.Timing.microSecondsToMilliseconds(e.ts),n=i.Types.Extensions.isSyntheticExtensionEntry(e)?this.markerStyleForExtensionMarker(e):this.markerStyleForPageLoadEvent(e);return new en(t,t-r,n)}));return this.#e.getFlameChartTimelineData().markers.push(...a),++e}markerStyleForPageLoadEvent(e){let t="",n="grey";return i.Types.TraceEvents.isTraceEventMarkDOMContent(e)&&(n="#0867CB",t="DCL"),i.Types.TraceEvents.isTraceEventMarkLoad(e)&&(n="#B31412",t="L"),i.Types.TraceEvents.isTraceEventFirstPaint(e)&&(n="#228847",t="FP"),i.Types.TraceEvents.isTraceEventFirstContentfulPaint(e)&&(n="#1A6937",t="FCP"),i.Types.TraceEvents.isTraceEventLargestContentfulPaintCandidate(e)&&(n="#1A3422",t="LCP"),i.Types.TraceEvents.isTraceEventNavigationStart(e)&&(n="#FF9800",t=""),{title:t,dashStyle:[6,4],lineWidth:.5,color:n,tall:!0,lowPriority:!1}}markerStyleForExtensionMarker(e){return{title:e.name,dashStyle:[6,4],lineWidth:.5,color:P.ExtensionUI.extensionEntryColor(e),tall:!0,lowPriority:!1}}colorForEvent(e){return i.Types.TraceEvents.eventIsPageLoadEvent(e)?this.markerStyleForPageLoadEvent(e).color:i.Types.Extensions.isSyntheticExtensionEntry(e)?P.ExtensionUI.extensionEntryColor(e):this.#O.colorForID(e.name)}titleForEvent(e){i.Handlers.ModelHandlers.PageLoadMetrics;if(i.Types.TraceEvents.eventIsPageLoadEvent(e))switch(e.name){case"MarkDOMContent":return"DCL";case"MarkLoad":return"L";case"firstContentfulPaint":return"FCP";case"firstPaint":return"FP";case"largestContentfulPaint::Candidate":return"LCP";case"navigationStart":return"";default:return e.name}return i.Types.TraceEvents.isTraceEventTimeStamp(e)?`${e.name}: ${e.args.data.message}`:i.Types.TraceEvents.isTraceEventPerformanceMark(e)?`[mark]: ${e.name}`:e.name}highlightedEntryInfo(e){const t=i.Types.Extensions.isSyntheticExtensionEntry(e)&&e.args.tooltipText?e.args.tooltipText:this.titleForEvent(e);if(i.Types.TraceEvents.isTraceEventMarkerEvent(e)||i.Types.TraceEvents.isTraceEventPerformanceMark(e)||i.Types.TraceEvents.isTraceEventTimeStamp(e)){return{title:t,formattedTime:_(i.Helpers.Timing.timeStampForEventAdjustedByClosestNavigation(e,this.#t.Meta.traceBounds,this.#t.Meta.navigationsByNavigationId,this.#t.Meta.navigationsByFrameId))}}return{title:t,formattedTime:_(e.dur)}}}var Wr=Object.freeze({__proto__:null,SORT_ORDER_PAGE_LOAD_MARKERS:Hr,TimingsTrackAppender:Ur});function Or(e,t){if(t&&t.Meta.traceIsGeneric)return!0;if(i.Types.TraceEvents.isTraceEventUpdateCounters(e))return!0;if(i.Types.TraceEvents.isTraceEventSchedulePostMessage(e)||i.Types.TraceEvents.isTraceEventHandlePostMessage(e))return a.Runtime.experiments.isEnabled("timeline-show-postmessage-events");if(i.Types.Extensions.isSyntheticExtensionEntry(e)||i.Types.TraceEvents.isSyntheticServerTiming(e))return!0;const n=he(e.name),r=i.Types.TraceEvents.isTraceEventConsoleTime(e)||i.Types.TraceEvents.isTraceEventPerformanceMeasure(e)||i.Types.TraceEvents.isTraceEventPerformanceMark(e);return n&&!n.hidden||r}const _r=["Animations","Timings","Interactions","GPU","LayoutShifts","Thread","Thread_AuctionWorklet","Extension","ServerTimings"];class Vr{#ji=new Map;#qi=new Map;#$i=new Map;#Ji=new Map;#Fe;#t;#Ki;#O;#Yi=[];#Xi=new Set([..._r]);#Zi;#Qi;#en;#tn;#in;#nn;#rn=[];#an;constructor(e,i,n,a){this.#Fe=e,this.#t=i,this.#Ki=n,this.#O=new r.Color.Generator({min:30,max:55,count:void 0},{min:70,max:100,count:6},50,.7),this.#Zi=a,this.#Qi=new Ur(this,this.#t,this.#O),this.#Yi.push(this.#Qi),this.#tn=new gt(this,this.#t,this.#O),this.#Yi.push(this.#tn),this.#en=new J(this,this.#t),this.#Yi.push(this.#en),this.#in=new wr(this,this.#t),this.#Yi.push(this.#in),this.#nn=new Pr(this,this.#t),this.#Yi.push(this.#nn),this.#an=new Fr(this,this.#t),this.#Yi.push(this.#an),this.#sn(),this.#on(),t.ThemeSupport.instance().addEventListener(t.ThemeChangeEvent.eventName,(()=>{for(const e of this.#Fe.groups)e.style.color=t.ThemeSupport.instance().getComputedValue("--sys-color-on-surface"),e.style.backgroundColor=t.ThemeSupport.instance().getComputedValue("--sys-color-cdt-base-container")}))}setFlameChartDataAndEntryData(e,t,i){this.#qi.clear(),this.#Fe=e,this.#Ki=t,this.#Zi=i}getFlameChartTimelineData(){return this.#Fe}#on(){const e=hr.instance().getExtensionData().extensionTrackData;for(const t of e)this.#Yi.push(new vr(this,t))}#sn(){const e=e=>{switch(e.threadType){case"MAIN_THREAD":if(e.isOnMainFrame){const t=e.getUrl();return t.startsWith("about:")||t.startsWith("chrome:")?2:0}return 1;case"WORKER":return 3;case"RASTERIZER":return 4;case"THREAD_POOL":return 5;case"AUCTION_WORKLET":return 6;case"OTHER":return 7;default:return 8}},t=i.Handlers.Threads.threadsInTrace(this.#t),n=new Set,r=a.Runtime.experiments.isEnabled("timeline-show-all-events");for(const{pid:e,tid:i,name:a,type:s}of t){if(this.#t.Meta.traceIsGeneric){this.#rn.push(new Ii(this,this.#t,e,i,a,"OTHER"));continue}if(("Chrome_ChildIOThread"===a||"Compositor"===a||"GpuMemoryThread"===a)&&!r)continue;const t=this.#t.AuctionWorklets.worklets.get(e);n.has(e)||(t?(n.add(e),this.#rn.push(new Ii(this,this.#t,e,t.args.data.utilityThread.tid,"auction-worket-utility","AUCTION_WORKLET")),this.#rn.push(new Ii(this,this.#t,e,t.args.data.v8HelperThread.tid,"auction-worklet-v8helper","AUCTION_WORKLET"))):this.#rn.push(new Ii(this,this.#t,e,i,a,s)))}this.#rn.sort(((t,i)=>e(t)-e(i)||i.getEntries().length-t.getEntries().length)),this.#Yi.push(...this.#rn)}timingsTrackAppender(){return this.#Qi}animationsTrackAppender(){return this.#en}interactionsTrackAppender(){return this.#tn}gpuTrackAppender(){return this.#in}layoutShiftsTrackAppender(){return this.#nn}threadAppenders(){return this.#rn}serverTimingsTrackAppender(){return this.#an}eventsInTrack(e){const t=this.#$i.get(e);if(t)return t;let i=null,n=null;for(const[t,r]of this.#ji)r===e&&(null===i&&(i=t),n=t);if(null===i||null===n)throw new Error(`Could not find events for track: ${e}`);const r=this.#Fe.entryLevels,a=[];for(let e=0;e<r.length;e++)i<=r[e]&&r[e]<=n&&a.push(this.#Ki[e]);return a.sort(((e,t)=>e.ts-t.ts)),this.#$i.set(e,a),a}eventsForTreeView(e){const t=this.#Ji.get(e);if(t)return t;let n=this.eventsInTrack(e);return i.Helpers.TreeHelpers.canBuildTreesFromEvents(n)||(n=n.filter((e=>!i.Types.TraceEvents.isAsyncPhase(e.ph)))),this.#Ji.set(e,n),n}registerTrackForGroup(e,t){this.#Fe.groups.push(e),this.#qi.set(e,t)}getCurrentTrackCountForThreadType(e){return this.#rn.filter((t=>t.threadType===e&&t.headerAppended())).length}groupForAppender(e){let t=null;for(const[i,n]of this.#qi)if(n===e){t=i;break}return t}groupEventsForTreeView(e){const t=this.#qi.get(e);return t?this.eventsForTreeView(t):null}registerTrackForLevel(e,t){this.#ji.set(e,t)}appendEventAtLevel(e,t,n){this.#ji.set(t,n);const r=this.#Ki.length;this.#Ki.push(e),this.#Zi[t]="TrackAppender",this.#Fe.entryLevels[r]=t,this.#Fe.entryStartTimes[r]=i.Helpers.Timing.microSecondsToMilliseconds(e.ts);const a=e.dur||i.Helpers.Timing.millisecondsToMicroseconds(Ni);return this.#Fe.entryTotalTimes[r]=i.Helpers.Timing.microSecondsToMilliseconds(a),r}appendEventsAtLevel(e,t,i,n){const r=[];for(let a=0;a<e.length;++a){const s=e[a];if(!Or(s,this.#t))continue;const o=V(s,r),l=this.appendEventAtLevel(s,t+o,i);n?.(s,l)}return this.#Zi.length=t+r.length,this.#Zi.fill("TrackAppender",t),t+r.length}allVisibleTrackAppenders(){return this.#Yi.filter((e=>this.#Xi.has(e.appenderName)))}allThreadAppendersByProcess(){const e=this.allVisibleTrackAppenders(),t=new Map;for(const i of e){if(!(i instanceof Ii))continue;const e=t.get(i.processId())??[];e.push(i),t.set(i.processId(),e)}return t}setVisibleTracks(e){this.#Xi=e||new Set([..._r])}colorForEvent(e,t){const i=this.#ji.get(t);if(!i)throw new Error("Track not found for level");return i.colorForEvent(e)}titleForEvent(e,t){const i=this.#ji.get(t);if(!i)throw new Error("Track not found for level");return i.titleForEvent(e)}highlightedEntryInfo(e,t){const i=this.#ji.get(t);if(!i)throw new Error("Track not found for level");const n=s.DetailsView.buildWarningElementsForEvent(e,this.#t),{title:r,formattedTime:a,warningElements:o}=i.highlightedEntryInfo(e);return{title:r,formattedTime:a,warningElements:n.concat(o||[])}}}var Gr=Object.freeze({__proto__:null,entryIsVisibleInTimeline:Or,TrackNames:_r,CompatibilityTracksAppender:Vr});export{K as AnimationsTrackAppender,z as AppenderUtils,X as BenchmarkEvents,te as CLSLinkifier,Gr as CompatibilityTracksAppender,st as CountersGraph,Fe as EntriesFilter,be as EventUICategory,Ae as EventsSerializer,ni as EventsTimelineTreeView,mr as ExtensionDataGatherer,Tr as ExtensionTrackAppender,ke as FreshRecording,Sr as GPUTrackAppender,Ci as Initiators,Tt as InteractionsTrackAppender,Ir as LayoutShiftsTrackAppender,We as ModificationsManager,zi as NetworkTrackAppender,Ge as SaveFileFormatter,Dr as ServerTimingsTrackAppender,$e as SourceMapsResolver,lt as TargetForEvent,Mi as ThreadAppender,Ze as TimelineController,yi as TimelineDetailsView,vn as TimelineEventOverview,Wt as TimelineFilters,Hi as TimelineFlameChartDataProvider,qi as TimelineFlameChartNetworkDataProvider,nn as TimelineFlameChartView,Mn as TimelineHistoryManager,ai as TimelineLayersView,Un as TimelineLoader,_n as TimelineMiniMap,ci as TimelinePaintProfilerView,cr as TimelinePanel,bt as TimelineSelection,Xt as TimelineTreeView,Nt as TimelineUIUtils,Wr as TimingsTrackAppender,Qn as UIDevtoolsController,Xn as UIDevtoolsUtils};
|