simdeck 0.1.3 → 0.1.5
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 +41 -17
- package/build/simdeck-bin +0 -0
- package/client/dist/assets/index-D2-CFde1.css +1 -0
- package/client/dist/assets/index-E1gIgaOR.js +9 -0
- package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
- package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
- package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
- package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
- package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
- package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
- package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
- package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
- package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
- package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
- package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
- package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
- package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
- package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
- package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
- package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
- package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
- package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
- package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
- package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
- package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
- package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
- package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
- package/client/dist/chrome-devtools-ui/inspector.html +24 -0
- package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
- package/client/dist/chrome-devtools-ui/js_app.html +24 -0
- package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
- package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
- package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
- package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
- package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
- package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
- package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
- package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
- package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
- package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
- package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
- package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
- package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
- package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
- package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
- package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
- package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
- package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
- package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
- package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
- package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
- package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
- package/client/dist/chrome-devtools-ui/node_app.html +24 -0
- package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
- package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
- package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
- package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
- package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
- package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
- package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
- package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
- package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
- package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
- package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
- package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
- package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
- package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
- package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
- package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
- package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
- package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
- package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
- package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
- package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
- package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
- package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
- package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
- package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
- package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
- package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
- package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
- package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
- package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
- package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
- package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
- package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
- package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
- package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
- package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
- package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
- package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
- package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
- package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
- package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
- package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
- package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
- package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
- package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
- package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
- package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
- package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
- package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
- package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
- package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
- package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
- package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
- package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
- package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
- package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
- package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
- package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
- package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
- package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
- package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
- package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
- package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
- package/client/dist/index.html +3 -3
- package/package.json +4 -1
- package/packages/simdeck-test/dist/index.d.ts +7 -1
- package/client/dist/assets/index-ICWevBP_.js +0 -9
- package/client/dist/assets/index-Y_Zqbt1r.css +0 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import"../../../../ui/components/markdown_view/markdown_view.js";import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/i18n/i18n.js";import*as s from"../../../../core/root/root.js";import*as i from"../../../../models/trace/trace.js";import"../../../../ui/components/buttons/buttons.js";import*as r from"../../../../ui/components/helpers/helpers.js";import*as n from"../../../../ui/legacy/legacy.js";import*as o from"../../../../ui/lit/lit.js";import*as a from"../../../../ui/visual_logging/visual_logging.js";import*as l from"../../../../core/platform/platform.js";import*as d from"../../../../core/sdk/sdk.js";import*as c from"../../../../models/crux-manager/crux-manager.js";import*as h from"../../../../third_party/marked/marked.js";import*as m from"../../../mobile_throttling/mobile_throttling.js";import*as u from"../../utils/utils.js";import"../../../../ui/components/icon_button/icon_button.js";import*as v from"../../../../ui/legacy/components/utils/utils.js";import"../../../../ui/components/linkifier/linkifier.js";const{html:p}=o;var g={cssText:`.insight{display:block;position:relative;width:auto;height:auto;margin:var(--sys-size-5) 0;border-radius:var(--sys-shape-corner-extra-small);overflow:hidden;border:var(--sys-size-1) solid var(--sys-color-divider);background-color:var(--sys-color-base);&.closed{background-color:var(--sys-color-surface3);border:none;&:focus-within{outline:var(--sys-size-1) solid var(--sys-color-primary)}}header{padding:var(--sys-size-5) var(--sys-size-4);h3{font:var(--sys-typescale-body4-medium)}}&:not(.closed){header{padding-bottom:var(--sys-size-2)}}}.insight-hover-icon{position:absolute;top:var(--sys-size-5);right:var(--sys-size-5);border:none;width:var(--sys-size-9);user-select:none;height:var(--sys-size-9);box-shadow:var(--sys-elevation-level1);border-radius:var(--sys-shape-corner-full);background:var(--sys-color-cdt-base-container);opacity:0%;.insight:hover &,\n header:focus-within &{opacity:100%}&.active devtools-button{transform:rotate(180deg)}}.insight-description,\n.insight-body,\n.insight-title{user-select:text}.insight-body{padding:0 var(--sys-size-4) var(--sys-size-5);.list-title{margin-top:var(--sys-size-4);margin-bottom:var(--sys-size-3)}ul{padding:0 0 0 var(--sys-size-9);margin:0}}.insight-section{padding-top:var(--sys-size-5);margin-top:var(--sys-size-5)}.insight-description:not(:empty){margin-bottom:var(--sys-size-5)}.insight-section:not(:empty){border-top:var(--sys-size-1) solid var(--sys-color-divider)}.insight-title{color:var(--sys-color-on-base);margin-block:3px}.link{color:var(--sys-color-primary)}.dl-title{font-weight:bold}dd.dl-title{text-align:right}.dl-value{font-weight:bold}.image-ref{display:inline-flex;align-items:center;&:not(:empty){padding-top:var(--sys-size-5)}}.element-img{width:var(--sys-size-13);height:var(--sys-size-13);object-fit:cover;border:var(--sys-size-1) solid var(--sys-color-divider);background:var(--sys-color-divider) -0.054px -12px /100.239% 148.936% no-repeat;margin-right:var(--sys-size-5)}.element-img-details{font:var(--sys-typescale-body4-regular);display:flex;flex-direction:column;word-break:break-all;.element-img-details-size{color:var(--color-text-secondary)}}::slotted(*){font:var(--sys-typescale-body4-regular)}.insight-savings{font:var(--sys-typescale-body4-medium);color:var(--sys-color-green)}.timeline-link{cursor:pointer;text-decoration:var(--override-timeline-link-text-decoration,underline);color:var(--override-timeline-link-text-color,var(--sys-color-primary));background:none;border:none;padding:0;font:inherit;text-align:left}.timeline-link.invalid-link{color:var(--sys-color-state-disabled)}.ask-ai-btn-wrap{border-top:var(--sys-size-1) solid var(--sys-color-divider);padding-top:var(--sys-size-5);margin-top:var(--sys-size-5);text-align:center}\n/*# sourceURL=${import.meta.resolve("./baseInsightComponent.css")} */\n`};class y extends Event{model;insightSetKey;static eventName="insightactivated";constructor(e,t){super(y.eventName,{bubbles:!0,composed:!0}),this.model=e,this.insightSetKey=t}}class f extends Event{static eventName="insightdeactivated";constructor(){super(f.eventName,{bubbles:!0,composed:!0})}}class T extends Event{bounds;static eventName="insightsethovered";constructor(e){super(T.eventName,{bubbles:!0,composed:!0}),this.bounds=e}}class b extends Event{bounds;static eventName="insightsetzoom";constructor(e){super(b.eventName,{bubbles:!0,composed:!0}),this.bounds=e}}class S extends Event{overlays;options;static eventName="insightprovideoverlays";constructor(e,t){super(S.eventName,{bubbles:!0,composed:!0}),this.overlays=e,this.options=t}}var R=Object.freeze({__proto__:null,InsightActivated:y,InsightDeactivated:f,InsightProvideOverlays:S,InsightSetHovered:T,InsightSetZoom:b});const w=new CSSStyleSheet;w.replaceSync(g.cssText);const{html:E}=o,k={estimatedSavings:"Est savings: {PH1}",estimatedSavingsTimingAndBytes:"Est savings: {PH1} & {PH2}",viewDetails:"View details for {PH1}"},I=t.i18n.registerUIStrings("panels/timeline/components/insights/BaseInsightComponent.ts",k),N=t.i18n.getLocalizedString.bind(void 0,I);class _ extends HTMLElement{static litTagName=o.StaticHtml.literal``;shadow=this.attachShadow({mode:"open"});hasAskAISupport=!1;#e=!1;#t=!1;#s=null;#i=null;#r=null;get model(){return this.#s}data={bounds:null,insightSetKey:null};#n=this.#o.bind(this);sharedTableState={selectedRowEl:null,selectionIsSticky:!1};#a=null;scheduleRender(){r.ScheduledRender.scheduleRender(this,this.#n)}connectedCallback(){this.shadow.adoptedStyleSheets.push(w),this.setAttribute("jslog",`${a.section(`timeline.insights.${this.internalName}`)}`),this.dataset.insightName=this.internalName;const{devToolsAiAssistancePerformanceAgent:e}=s.Runtime.hostConfig;this.#e=Boolean(e?.enabled&&e?.insightsEnabled)}set selected(e){!this.#t&&e&&this.dispatchEvent(new S(this.getInitialOverlays(),{updateTraceWindow:!0})),this.#t=e,r.ScheduledRender.scheduleRender(this,this.#n)}get selected(){return this.#t}set model(e){this.#s=e,r.ScheduledRender.scheduleRender(this,this.#n)}set insightSetKey(e){this.data.insightSetKey=e,r.ScheduledRender.scheduleRender(this,this.#n)}get bounds(){return this.data.bounds}set bounds(e){this.data.bounds=e,r.ScheduledRender.scheduleRender(this,this.#n)}set parsedTrace(e){this.#i=e}set fieldMetrics(e){this.#r=e}get fieldMetrics(){return this.#r}#l(){if(this.#t)return this.dispatchEvent(new f),void n.Context.Context.instance().setFlavor(u.InsightAIContext.ActiveInsight,null);this.data.insightSetKey&&this.model&&(this.sharedTableState.selectedRowEl?.classList.remove("selected"),this.sharedTableState.selectedRowEl=null,this.sharedTableState.selectionIsSticky=!1,this.dispatchEvent(new y(this.model,this.data.insightSetKey)))}#d(e){const t=o.Directives.classMap({"insight-hover-icon":!0,active:e});return E`
|
|
2
|
+
<div class=${t} inert>
|
|
3
|
+
<devtools-button .data=${{variant:"icon",iconName:"chevron-down",size:"SMALL"}}
|
|
4
|
+
></devtools-button>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
`}#c(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.stopPropagation(),this.#l())}toggleTemporaryOverlays(e,t){this.#t&&this.dispatchEvent(new S(e??this.getInitialOverlays(),t))}getInitialOverlays(){return this.#a||(this.#a=this.createOverlays()),this.#a}#o(){this.model&&this.#h()}getEstimatedSavingsTime(){return null}getEstimatedSavingsBytes(){return null}#m(){const e=this.getEstimatedSavingsTime(),s=this.getEstimatedSavingsBytes();let i,r;return e&&(i=t.TimeUtilities.millisToString(e)),s&&(r=t.ByteUtilities.bytesToString(s)),i&&r?N(k.estimatedSavingsTimingAndBytes,{PH1:i,PH2:r}):i?N(k.estimatedSavings,{PH1:i}):r?N(k.estimatedSavings,{PH1:r}):null}renderNode(t,s){const r=s??o.nothing;if(!this.#i)return E`${r}`;const n=i.Extras.FetchNodes.domNodeForBackendNodeID(this.#i,t).then((t=>t?e.Linkifier.Linkifier.linkify(t):r));return E`${o.Directives.until(n,r)}`}#u(){if(!this.#s||!this.#i)return;const e="drjones.performance-insight-context";if(!n.ActionRegistry.ActionRegistry.instance().hasAction(e))return;const t=new u.InsightAIContext.ActiveInsight(this.#s,this.#i);n.Context.Context.instance().setFlavor(u.InsightAIContext.ActiveInsight,t);n.ActionRegistry.ActionRegistry.instance().getAction(e).execute()}#v(){return this.#e&&this.hasAskAISupport}#p(e){if(!this.#t)return o.nothing;const t=this.renderContent();return E`
|
|
8
|
+
<div class="insight-body">
|
|
9
|
+
<div class="insight-description">${function(e){const t=h.Marked.lexer(e);return p`<devtools-markdown-view .data=${{tokens:t}}></devtools-markdown-view>`}(e.description)}</div>
|
|
10
|
+
<div class="insight-content">${t}</div>
|
|
11
|
+
${this.#v()?E`
|
|
12
|
+
<div class="ask-ai-btn-wrap">
|
|
13
|
+
<devtools-button class="ask-ai"
|
|
14
|
+
.variant=${"outlined"}
|
|
15
|
+
.iconName=${"smart-assistant"}
|
|
16
|
+
data-insights-ask-ai
|
|
17
|
+
jslog=${a.action(`timeline.insight-ask-ai.${this.internalName}`).track({click:!0})}
|
|
18
|
+
@click=${this.#u}
|
|
19
|
+
>Ask AI</devtools-button>
|
|
20
|
+
</div>
|
|
21
|
+
`:o.nothing}
|
|
22
|
+
</div>`}#h(){if(!this.#s)return void o.render(o.nothing,this.shadow,{host:this});const e=o.Directives.classMap({insight:!0,closed:!this.#t}),t=this.#m(),s=E`
|
|
23
|
+
<div class=${e}>
|
|
24
|
+
<header @click=${this.#l}
|
|
25
|
+
@keydown=${this.#c}
|
|
26
|
+
jslog=${a.action(`timeline.toggle-insight.${this.internalName}`).track({click:!0})}
|
|
27
|
+
tabIndex="0"
|
|
28
|
+
role="button"
|
|
29
|
+
aria-expanded=${this.#t}
|
|
30
|
+
aria-label=${N(k.viewDetails,{PH1:this.#s.title})}
|
|
31
|
+
>
|
|
32
|
+
${this.#d(this.#t)}
|
|
33
|
+
<h3 class="insight-title">${this.#s?.title}</h3>
|
|
34
|
+
${t?E`
|
|
35
|
+
<slot name="insight-savings" class="insight-savings">
|
|
36
|
+
${t}
|
|
37
|
+
</slot>
|
|
38
|
+
</div>`:o.nothing}
|
|
39
|
+
</header>
|
|
40
|
+
${this.#p(this.#s)}
|
|
41
|
+
</div>
|
|
42
|
+
`;o.render(s,this.shadow,{host:this}),this.#t&&requestAnimationFrame((()=>requestAnimationFrame((()=>this.scrollIntoViewIfNeeded()))))}}var $=Object.freeze({__proto__:null,BaseInsightComponent:_});const O=new CSSStyleSheet;O.replaceSync(g.cssText);const{html:M}=o;class D extends Event{event;static eventName="eventreferenceclick";constructor(e){super(D.eventName,{bubbles:!0,composed:!0}),this.event=e}}class x extends HTMLElement{#g=this.attachShadow({mode:"open"});#n=this.#o.bind(this);#y=null;#f=null;connectedCallback(){this.#g.adoptedStyleSheets=[O]}set text(e){this.#y=e,r.ScheduledRender.scheduleRender(this,this.#n)}set event(e){this.#f=e,r.ScheduledRender.scheduleRender(this,this.#n)}#o(){this.#y&&this.#f&&o.render(M`
|
|
43
|
+
<button type="button" class="timeline-link" @click=${e=>{e.stopPropagation(),this.#f&&this.dispatchEvent(new D(this.#f))}}>${this.#y}</button>
|
|
44
|
+
`,this.#g,{host:this})}}function C(e,t){let s=t?.title,r=t?.text;return i.Types.Events.isSyntheticNetworkRequest(e)?(r=r??u.Helpers.shortenUrl(new URL(e.args.data.url)),s=s??e.args.data.url):l.TypeScriptUtilities.assertNever(e,`unsupported event in eventRef: ${e.name}`),M`<devtools-performance-event-ref
|
|
45
|
+
.event=${e}
|
|
46
|
+
.text=${r}
|
|
47
|
+
title=${s}
|
|
48
|
+
></devtools-performance-event-ref>`}class L extends HTMLElement{#g=this.attachShadow({mode:"open"});#n=this.#o.bind(this);#T;connectedCallback(){this.#g.adoptedStyleSheets=[O]}set request(e){this.#T=e,r.ScheduledRender.scheduleRender(this,this.#n)}#o(){this.#T&&o.render(M`
|
|
49
|
+
<div class="image-ref">
|
|
50
|
+
${this.#T.args.data.mimeType.includes("image")?M`
|
|
51
|
+
<img
|
|
52
|
+
class="element-img"
|
|
53
|
+
src=${this.#T.args.data.url}
|
|
54
|
+
@error=${q}/>
|
|
55
|
+
`:o.nothing}
|
|
56
|
+
<span class="element-img-details">
|
|
57
|
+
${C(this.#T)}
|
|
58
|
+
<span class="element-img-details-size">${t.ByteUtilities.bytesToString(this.#T.args.data.decodedBodyLength??0)}</span>
|
|
59
|
+
</span>
|
|
60
|
+
</div>
|
|
61
|
+
`,this.#g,{host:this})}}function q(e){e.target.style.display="none"}function F(e){return M`
|
|
62
|
+
<devtools-performance-image-ref
|
|
63
|
+
.request=${e}
|
|
64
|
+
></devtools-performance-image-ref>
|
|
65
|
+
`}customElements.define("devtools-performance-event-ref",x),customElements.define("devtools-performance-image-ref",L);var H=Object.freeze({__proto__:null,EventReferenceClick:D,eventRef:C,imageRef:F}),A={cssText:`table{width:100%;padding:5px 0;border-collapse:collapse}thead{white-space:nowrap}table tr > *{text-align:right}table tr > *:first-child{text-align:left}table.interactive tbody tr{cursor:pointer}table.interactive tbody tr:hover,\ntable.interactive tbody tr.selected{background-color:var(--sys-color-state-hover-on-subtle)}table thead th{font:var(--sys-typescale-body4-medium)}table tbody th{font-weight:normal}table th[scope='row']{padding:3px 0;word-break:normal;overflow-wrap:anywhere}\n/*# sourceURL=${import.meta.resolve("./table.css")} */\n`};const z={others:"{PH1} others"},U=t.i18n.registerUIStrings("panels/timeline/components/insights/Table.ts",z),P=t.i18n.getLocalizedString.bind(void 0,U),B=new CSSStyleSheet;B.replaceSync(A.cssText);const{html:j}=o;function W(e){return P(z.others,{PH1:e})}function Y(e,t,s=10){if(0===e.length||0===s)return[];const i=s-1,r=e.slice(0,i).map(t.mapToRow.bind(t));return e.length>s?r.push(t.createAggregatedTableRow(e.slice(i))):e.length===s&&r.push(t.mapToRow(e[i])),r}class K extends HTMLElement{#g=this.attachShadow({mode:"open"});#n=this.#o.bind(this);#b;#S;#R;#w;#E;#k=!1;#I=null;set data(e){this.#b=e.insight,this.#S=e.insight.sharedTableState,this.#R=e.headers,this.#w=e.rows,this.#k=this.#w.some((e=>e.overlays)),r.ScheduledRender.scheduleRender(this,this.#n)}connectedCallback(){this.#g.adoptedStyleSheets.push(B),n.UIUtils.injectCoreStyles(this.#g),r.ScheduledRender.scheduleRender(this,this.#n)}#N(e){if(!(e.target instanceof HTMLElement))return;const t=e.target.closest("tr");if(!t?.parentElement)return;const s=[...t.parentElement.children].indexOf(t);-1!==s&&s!==this.#I&&(this.#I=s,this.#_(t,s,{isHover:!0}))}#$(e){if(!(e.target instanceof HTMLElement))return;const t=e.target.closest("tr");if(!t?.parentElement)return;const s=[...t.parentElement.children].indexOf(t);if(-1===s)return;const i=this.#E?.[s]?.overlays;1!==i?.length||"ENTRY_OUTLINE"!==i[0].type?this.#_(t,s,{sticky:!0}):this.dispatchEvent(new D(i[0].entry))}#O(){this.#I=null,this.#_(null,null)}#_(e,t,s={}){if(this.#E&&this.#S&&this.#b&&(!this.#S.selectionIsSticky||s.sticky)){if(this.#S.selectionIsSticky&&e===this.#S.selectedRowEl&&(e=null,s.sticky=!1),e&&null!==t){const e=this.#E[t].overlays;e&&this.#b.toggleTemporaryOverlays(e,{updateTraceWindow:!s.isHover})}else this.#b.toggleTemporaryOverlays(null,{updateTraceWindow:!1});this.#S.selectedRowEl?.classList.remove("selected"),e?.classList.add("selected"),this.#S.selectedRowEl=e,this.#S.selectionIsSticky=s.sticky??!1}}async#o(){if(!this.#R||!this.#w)return;const e=this.#R.length,t=[],s=[];function i(r,n=0){const a=o.Directives.styleMap({paddingLeft:`calc(${n} * var(--sys-size-5))`,borderLeft:n?"var(--sys-size-1) solid var(--sys-color-divider)":""}),l=o.Directives.styleMap({color:n?"var(--sys-color-on-surface-subtle)":""}),d=r.values.map(((t,s)=>0===s?j`<th
|
|
66
|
+
scope="row"
|
|
67
|
+
colspan=${s===r.values.length-1?e-s:1}
|
|
68
|
+
style=${a}>${t}
|
|
69
|
+
</th>`:j`<td>${t}</td>`));s.push(j`<tr style=${l}>${d}</tr>`),t.push(r);for(const e of r.subRows??[])i(e,n+1)}for(const e of this.#w)i(e);this.#E=t,o.render(j`<table
|
|
70
|
+
class=${o.Directives.classMap({interactive:this.#k})}
|
|
71
|
+
@mouseleave=${this.#k?this.#O:null}>
|
|
72
|
+
<thead>
|
|
73
|
+
<tr>
|
|
74
|
+
${this.#R.map((e=>j`<th scope="col">${e}</th>`))}
|
|
75
|
+
</tr>
|
|
76
|
+
</thead>
|
|
77
|
+
<tbody
|
|
78
|
+
@mouseover=${this.#k?this.#N:null}
|
|
79
|
+
@click=${this.#k?this.#$:null}
|
|
80
|
+
>${s}</tbody>
|
|
81
|
+
</table>`,this.#g,{host:this})}}customElements.define("devtools-performance-table",K);var J=Object.freeze({__proto__:null,Table:K,createLimitedRows:Y,i18nString:P,renderOthersLabel:W});const{UIStrings:V,i18nString:G}=i.Insights.Models.Cache,{html:Z}=o;class Q extends _{static litTagName=o.StaticHtml.literal`devtools-performance-cache`;mapToRow(e){return{values:[C(e.request),t.TimeUtilities.secondsToString(e.ttl)],overlays:[this.#M(e.request)]}}createAggregatedTableRow(e){return{values:[W(e.length),""],overlays:e.flatMap((e=>this.#M(e.request)))}}internalName="cache";createOverlays(){return this.model?this.model.requests.map((e=>this.#M(e.request))):[]}getEstimatedSavingsBytes(){return this.model?.totalWastedBytes??null}renderContent(){if(!this.model)return o.nothing;const e=Y([...this.model.requests].sort(((e,t)=>t.request.args.data.decodedBodyLength-e.request.args.data.decodedBodyLength)),this);return e.length?Z`
|
|
82
|
+
<div class="insight-section">
|
|
83
|
+
<devtools-performance-table
|
|
84
|
+
.data=${{insight:this,headers:[G(V.requestColumn),G(V.cacheTTL)],rows:e}}>
|
|
85
|
+
</devtools-performance-table>
|
|
86
|
+
</div>`:Z`<div class="insight-section">${G(V.noRequestsToCache)}</div>`}#M(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}}customElements.define("devtools-performance-cache",Q);var X=Object.freeze({__proto__:null,Cache:Q}),ee={cssText:`ul{list-style:none;margin:0;padding:0;li{display:flex;align-items:center;justify-content:flex-start;gap:var(--sys-size-3);font:var(--sys-typescale-body4-medium);padding-block:var(--sys-size-3);span{padding-top:2px}}}.check-failed{color:var(--app-color-performance-bad)}.check-passed{color:var(--app-color-performance-good)}\n/*# sourceURL=${import.meta.resolve("./checklist.css")} */\n`};const te={successAriaLabel:"Insight check passed: {PH1}",failedAriaLabel:"Insight check failed: {PH1}"},se=t.i18n.registerUIStrings("panels/timeline/components/insights/Checklist.ts",te),ie=t.i18n.getLocalizedString.bind(void 0,se),re=new CSSStyleSheet;re.replaceSync(ee.cssText);const{html:ne}=o;class oe extends HTMLElement{#g=this.attachShadow({mode:"open"});#n=this.#o.bind(this);#D;set checklist(e){this.#D=e,r.ScheduledRender.scheduleRender(this,this.#n)}connectedCallback(){this.#g.adoptedStyleSheets.push(re),n.UIUtils.injectCoreStyles(this.#g),r.ScheduledRender.scheduleRender(this,this.#n)}#x(e){const t=e.value?"check-circle":"clear",s=e.value?ie(te.successAriaLabel,{PH1:e.label}):ie(te.failedAriaLabel,{PH1:e.label});return ne`
|
|
87
|
+
<devtools-icon
|
|
88
|
+
aria-label=${s}
|
|
89
|
+
name=${t}
|
|
90
|
+
class=${e.value?"check-passed":"check-failed"}
|
|
91
|
+
></devtools-icon>
|
|
92
|
+
`}async#o(){this.#D&&o.render(ne`
|
|
93
|
+
<ul>
|
|
94
|
+
${Object.values(this.#D).map((e=>ne`<li>
|
|
95
|
+
${this.#x(e)}
|
|
96
|
+
<span data-checklist-label>${e.label}</span>
|
|
97
|
+
</li>`))}
|
|
98
|
+
</ul>`,this.#g,{host:this})}}customElements.define("devtools-performance-checklist",oe);var ae=Object.freeze({__proto__:null,Checklist:oe});const{UIStrings:le,i18nString:de}=i.Insights.Models.CLSCulprits,{html:ce}=o;class he extends _{static litTagName=o.StaticHtml.literal`devtools-performance-cls-culprits`;internalName="cls-culprits";createOverlays(){const e=(this.model?.clusters.toSorted(((e,t)=>t.clusterCumulativeScore-e.clusterCumulativeScore))??[])[0];if(!e)return[];const t=i.Types.Timing.Micro(e.dur??0),s=i.Types.Timing.Micro(e.ts+t),r=ce`<div>${de(le.worstLayoutShiftCluster)}</div>`;return[{type:"TIMESPAN_BREAKDOWN",sections:[{bounds:{min:e.ts,range:t,max:s},label:r,showDuration:!1}],entry:e.events[0],renderLocation:"ABOVE_EVENT"}]}#C(e){this.dispatchEvent(new D(e))}#L(e){return 0===e.length?ce`<div class="insight-section">${de(le.noCulprits)}</div>`:ce`
|
|
99
|
+
<div class="insight-section">
|
|
100
|
+
<p class="list-title">${de(le.topCulprits)}:</p>
|
|
101
|
+
<ul class="worst-culprits">
|
|
102
|
+
${e.map((e=>ce`
|
|
103
|
+
<li>${e}</li>
|
|
104
|
+
`))}
|
|
105
|
+
</ul>
|
|
106
|
+
</div>`}renderContent(){if(!this.model||!this.bounds)return o.nothing;if(!this.model.clusters.length||!this.model.worstCluster)return ce`<div class="insight-section">${de(le.noLayoutShifts)}</div>`;const e=this.model.worstCluster,s=this.model.topCulpritsByCluster.get(e)??[],r=i.Types.Timing.Micro(e.ts-this.bounds.min),n=t.TimeUtilities.formatMicroSecondsTime(r);return ce`
|
|
107
|
+
<div class="insight-section">
|
|
108
|
+
<span class="worst-cluster">${de(le.worstCluster)}: <button type="button" class="timeline-link" @click=${()=>this.#C(e)}>${de(le.layoutShiftCluster,{PH1:n})}</button></span>
|
|
109
|
+
</div>
|
|
110
|
+
${this.#L(s)}
|
|
111
|
+
`}}customElements.define("devtools-performance-cls-culprits",he);var me=Object.freeze({__proto__:null,CLSCulprits:he});const{UIStrings:ue,i18nString:ve}=i.Insights.Models.DocumentLatency,{html:pe}=o;class ge extends _{static litTagName=o.StaticHtml.literal`devtools-performance-document-latency`;internalName="document-latency";hasAskAISupport=!0;createOverlays(){if(!this.model?.data?.documentRequest)return[];const e=[],t=this.model.data.documentRequest,s=i.Helpers.Timing.milliToMicro(this.model.data.redirectDuration),r=[];if(this.model.data.redirectDuration){const n=i.Helpers.Timing.traceWindowFromMicroSeconds(t.ts,t.ts+s);r.push({bounds:n,label:ve(ue.redirectsLabel),showDuration:!0}),e.push({type:"CANDY_STRIPED_TIME_RANGE",bounds:n,entry:t})}if(!this.model.data.checklist.serverResponseIsFast.value){const e=i.Helpers.Timing.milliToMicro(this.model.data.serverResponseTime),s=t.args.data.timing?.sendEnd??i.Types.Timing.Milli(0),n=i.Helpers.Timing.milliToMicro(s),o=i.Helpers.Timing.traceWindowFromMicroSeconds(n,n+e);r.push({bounds:o,label:ve(ue.serverResponseTimeLabel),showDuration:!0})}if(this.model.data.uncompressedResponseBytes){const s=i.Helpers.Timing.traceWindowFromMicroSeconds(t.args.data.syntheticData.downloadStart,t.args.data.syntheticData.downloadStart+t.args.data.syntheticData.download);r.push({bounds:s,label:ve(ue.uncompressedDownload),showDuration:!0}),e.push({type:"CANDY_STRIPED_TIME_RANGE",bounds:s,entry:t})}return r.length&&e.push({type:"TIMESPAN_BREAKDOWN",sections:r,entry:this.model.data.documentRequest,renderLocation:"BELOW_EVENT"}),e.push({type:"ENTRY_SELECTED",entry:this.model.data.documentRequest}),e}getEstimatedSavingsTime(){return this.model?.metricSavings?.FCP??null}getEstimatedSavingsBytes(){return this.model?.data?.uncompressedResponseBytes??null}renderContent(){return this.model?.data?pe`<devtools-performance-checklist .checklist=${this.model.data.checklist}></devtools-performance-checklist>`:o.nothing}}customElements.define("devtools-performance-document-latency",ge);var ye=Object.freeze({__proto__:null,DocumentLatency:ge});const{html:fe}=o;class Te extends HTMLElement{#g=this.attachShadow({mode:"open"});#n=this.#o.bind(this);#q;#F;#H;#A;#z;set data(e){this.#q=e.backendNodeId,this.#F=e.frame,this.#H=e.options,this.#A=e.fallbackHtmlSnippet,this.#z=e.fallbackText,r.ScheduledRender.scheduleRender(this,this.#n)}async#U(){if(void 0===this.#q)return;const t=(await i.Extras.FetchNodes.domNodesForMultipleBackendNodeIds(this,[this.#q])).get(this.#q);return t&&t.frameId()===this.#F?await e.Linkifier.Linkifier.linkify(t,this.#H):void 0}async#o(){const e=await this.#U();let t;t=e?fe`<div class='node-link'>${e}</div>`:this.#A?fe`<pre style='text-wrap: auto'>${this.#A}</pre>`:this.#z?fe`<span>${this.#z}</span>`:o.nothing,o.render(t,this.#g,{host:this})}}customElements.define("devtools-performance-node-link",Te);var be=Object.freeze({__proto__:null,NodeLink:Te});const{UIStrings:Se,i18nString:Re}=i.Insights.Models.DOMSize,{html:we}=o;class Ee extends _{static litTagName=o.StaticHtml.literal`devtools-performance-dom-size`;internalName="dom-size";createOverlays(){if(!this.model)return[];return[...this.model.largeStyleRecalcs,...this.model.largeLayoutUpdates].map((e=>({type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"})))}#P(e){const t=[];if(e.maxDepth){const{nodeId:s,nodeName:i}=e.maxDepth,r=we`
|
|
112
|
+
<devtools-performance-node-link
|
|
113
|
+
.data=${{backendNodeId:s,frame:e.frame,fallbackText:i}}>
|
|
114
|
+
</devtools-performance-node-link>
|
|
115
|
+
`;t.push({values:[Re(Se.maxDOMDepth),r]})}if(e.maxChildren){const{nodeId:s,nodeName:i}=e.maxChildren,r=we`
|
|
116
|
+
<devtools-performance-node-link
|
|
117
|
+
.data=${{backendNodeId:s,frame:e.frame,fallbackText:i}}>
|
|
118
|
+
</devtools-performance-node-link>
|
|
119
|
+
`;t.push({values:[Re(Se.maxChildren),r]})}return t.length?we`<div class="insight-section">
|
|
120
|
+
<devtools-performance-table
|
|
121
|
+
.data=${{insight:this,headers:[Re(Se.statistic),Re(Se.element)],rows:t}}>
|
|
122
|
+
</devtools-performance-table>
|
|
123
|
+
</div>`:o.nothing}renderContent(){if(!this.model)return o.nothing;const e=this.model.maxDOMStats?.args.data;return e?we`<div class="insight-section">
|
|
124
|
+
<devtools-performance-table
|
|
125
|
+
.data=${{insight:this,headers:[Re(Se.statistic),Re(Se.value)],rows:[{values:[Re(Se.totalElements),e.totalElements]},{values:[Re(Se.maxDOMDepth),e.maxDepth?.depth??0]},{values:[Re(Se.maxChildren),e.maxChildren?.numChildren??0]}]}}>
|
|
126
|
+
</devtools-performance-table>
|
|
127
|
+
</div>
|
|
128
|
+
${this.#P(e)}
|
|
129
|
+
`:o.nothing}}customElements.define("devtools-performance-dom-size",Ee);var ke=Object.freeze({__proto__:null,DOMSize:Ee});function Ie(e){if(e.request)return e.inline?C(e.request,{text:`(inline) ${l.StringUtilities.trimEndWithMaxLength(e.content??"",15)}`}):C(e.request);if(e.url)try{const t=new URL(e.url);return u.Helpers.shortenUrl(t)}catch{}return e.inline?`(inline) ${l.StringUtilities.trimEndWithMaxLength(e.content??"",15)}`:`script id: ${e.scriptId}`}const{UIStrings:Ne,i18nString:_e}=i.Insights.Models.DuplicatedJavaScript,{html:$e}=o;class Oe extends _{static litTagName=o.StaticHtml.literal`devtools-performance-duplicated-javascript`;internalName="duplicated-javascript";#B=null;#j(){return!!this.model&&this.model.scripts.some((e=>!!e.url))}#W(){if(!this.model)return;this.#B||(this.#B=u.Treemap.createTreemapData({scripts:this.model.scripts},this.model.duplication));const e=this.insightSetKey??"devtools";u.Treemap.openTreemap(this.#B,this.model.mainDocumentUrl,e)}getEstimatedSavingsTime(){return this.model?.metricSavings?.FCP??null}getEstimatedSavingsBytes(){if(!this.model)return null;let e=0;for(const t of this.model.duplicationGroupedByNodeModules.values())e+=t.estimatedDuplicateBytes;return e}createOverlays(){if(!this.model)return[];return this.model.scriptsWithDuplication.map((e=>e.request)).filter((e=>!!e)).map((e=>({type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"})))}renderContent(){if(!this.model)return o.nothing;const e=[...this.model.duplicationGroupedByNodeModules.entries()].slice(0,10).map((([e,s])=>{const i=new Map;for(const{script:e}of s.duplicates)i.set(e,{type:"ENTRY_OUTLINE",entry:e.request,outlineReason:"ERROR"});return{values:[e,t.ByteUtilities.bytesToString(s.estimatedDuplicateBytes)],overlays:[...i.values()],subRows:s.duplicates.map((({script:e,attributedSize:s},r)=>{let n;const o=i.get(e);return o&&(n=[o]),{values:[Ie(e),0===r?"--":t.ByteUtilities.bytesToString(s)],overlays:n}}))}}));let s;return this.#j()&&(s=$e`<devtools-button
|
|
130
|
+
.variant=${"outlined"}
|
|
131
|
+
jslog=${a.action(`timeline.treemap.${this.internalName}-insight`).track({click:!0})}
|
|
132
|
+
@click=${this.#W}
|
|
133
|
+
>View Treemap</devtools-button>`),$e`
|
|
134
|
+
${s}
|
|
135
|
+
<div class="insight-section">
|
|
136
|
+
<devtools-performance-table
|
|
137
|
+
.data=${{insight:this,headers:[_e(Ne.columnSource),_e(Ne.columnDuplicatedBytes)],rows:e}}>
|
|
138
|
+
</devtools-performance-table>
|
|
139
|
+
</div>
|
|
140
|
+
`}}customElements.define("devtools-performance-duplicated-javascript",Oe);var Me=Object.freeze({__proto__:null,DuplicatedJavaScript:Oe});const{UIStrings:De,i18nString:xe}=i.Insights.Models.FontDisplay,{html:Ce}=o;class Le extends _{static litTagName=o.StaticHtml.literal`devtools-performance-font-display`;internalName="font-display";mapToRow(e){const s=this.#Y.get(e.request);return{values:[C(e.request,{text:e.name}),t.TimeUtilities.millisToString(e.wastedTime)],overlays:s?[s]:[]}}createAggregatedTableRow(e){return{values:[W(e.length),""],overlays:e.map((e=>this.#Y.get(e.request))).filter((e=>!!e))}}#Y=new Map;createOverlays(){if(this.#Y.clear(),!this.model)return[];for(const e of this.model.fonts)this.#Y.set(e.request,{type:"ENTRY_OUTLINE",entry:e.request,outlineReason:e.wastedTime?"ERROR":"INFO"});return[...this.#Y.values()]}getEstimatedSavingsTime(){return this.model?.metricSavings?.FCP??null}renderContent(){if(!this.model)return o.nothing;const e=Y(this.model.fonts,this);return Ce`
|
|
141
|
+
<div class="insight-section">
|
|
142
|
+
${Ce`<devtools-performance-table
|
|
143
|
+
.data=${{insight:this,headers:[xe(De.fontColumn),xe(De.wastedTimeColumn)],rows:e}}>
|
|
144
|
+
</devtools-performance-table>`}
|
|
145
|
+
</div>`}}customElements.define("devtools-performance-font-display",Le);var qe=Object.freeze({__proto__:null,FontDisplay:Le});const{UIStrings:Fe,i18nString:He}=i.Insights.Models.ForcedReflow,{html:Ae,nothing:ze}=o;class Ue extends _{static litTagName=o.StaticHtml.literal`devtools-performance-forced-reflow`;mapToRow(e){return{values:[this.#K(e.bottomUpData)],overlays:this.#J(e.relatedEvents)}}createAggregatedTableRow(e){return{values:[W(e.length)],overlays:e.flatMap((e=>this.#J(e.relatedEvents)))}}internalName="forced-reflow";#K(e){if(!e)return Ae`<div style="margin: 4px 10px; font-style: italic">${He(Fe.unattributed)}</div>`;const t=new v.Linkifier.Linkifier,s={callFrames:[{functionName:e.functionName,scriptId:e.scriptId,url:e.url,lineNumber:e.lineNumber,columnNumber:e.columnNumber}]},i=d.TargetManager.TargetManager.instance().primaryPageTarget(),r=v.JSPresentationUtils.buildStackTracePreviewContents(i,t,{stackTrace:s,tabStops:!0,showColumnNumber:!0});return Ae`${r.element}`}renderContent(){if(!this.model)return o.nothing;const e=this.model.topLevelFunctionCallData,s=Y(this.model.aggregatedBottomUpData,this);return Ae`
|
|
146
|
+
${e?Ae`
|
|
147
|
+
<div class="insight-section">
|
|
148
|
+
<devtools-performance-table
|
|
149
|
+
.data=${{insight:this,headers:[He(Fe.topTimeConsumingFunctionCall),He(Fe.totalReflowTime)],rows:[{values:[this.#K(e.topLevelFunctionCall),(r=i.Types.Timing.Micro(e.totalReflowTime),t.TimeUtilities.millisToString(l.Timing.microSecondsToMilliSeconds(r)))],overlays:this.#J(e.topLevelFunctionCallEvents,"INFO")}]}}>
|
|
150
|
+
</devtools-performance-table>
|
|
151
|
+
</div>
|
|
152
|
+
`:ze}
|
|
153
|
+
<div class="insight-section">
|
|
154
|
+
<devtools-performance-table
|
|
155
|
+
.data=${{insight:this,headers:[He(Fe.relatedStackTrace)],rows:s}}>
|
|
156
|
+
</devtools-performance-table>
|
|
157
|
+
</div>`;var r}createOverlays(){if(!this.model||!this.model.topLevelFunctionCallData)return[];const e=[...this.model.aggregatedBottomUpData.values().flatMap((e=>e.relatedEvents))];return[...this.#J(this.model.topLevelFunctionCallData.topLevelFunctionCallEvents,"INFO"),...this.#J(e)]}#J(e,t="ERROR"){return e.map((e=>({type:"ENTRY_OUTLINE",entry:e,outlineReason:t})))}}customElements.define("devtools-performance-forced-reflow",Ue);var Pe=Object.freeze({__proto__:null,ForcedReflow:Ue});var Be=Object.freeze({__proto__:null,shouldRenderForCategory:function(e){return e.activeCategory===i.Insights.Types.InsightCategory.ALL||e.activeCategory===e.insightCategory}});const{UIStrings:je,i18nString:We}=i.Insights.Models.ImageDelivery,{html:Ye}=o;class Ke extends _{static litTagName=o.StaticHtml.literal`devtools-performance-image-delivery`;internalName="image-delivery";createOverlays(){if(!this.model)return[];const{optimizableImages:e}=this.model;return e.map((e=>this.#M(e.request)))}#M(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}mapToRow(e){return{values:[F(e.request)],overlays:[this.#M(e.request)]}}createAggregatedTableRow(e){return{values:[W(e.length)],overlays:e.map((e=>this.#M(e.request)))}}getEstimatedSavingsBytes(){return this.model?.totalByteSavings??null}renderContent(){if(!this.model)return o.nothing;const e=Y([...this.model.optimizableImages].sort(((e,t)=>t.request.args.data.decodedBodyLength-e.request.args.data.decodedBodyLength)),this);return e.length?Ye`
|
|
158
|
+
<div class="insight-section">
|
|
159
|
+
<devtools-performance-table
|
|
160
|
+
.data=${{insight:this,headers:[We(je.optimizeFile)],rows:e}}>
|
|
161
|
+
</devtools-performance-table>
|
|
162
|
+
</div>
|
|
163
|
+
`:Ye`<div class="insight-section">${We(je.noOptimizableImages)}</div>`}}customElements.define("devtools-performance-image-delivery",Ke);var Je=Object.freeze({__proto__:null,ImageDelivery:Ke});const{UIStrings:Ve,i18nString:Ge}=i.Insights.Models.InteractionToNextPaint,{html:Ze}=o;class Qe extends _{static litTagName=o.StaticHtml.literal`devtools-performance-inp`;internalName="inp";hasAskAISupport=!0;createOverlays(){if(!this.model)return[];const e=this.model.longestInteractionEvent;return e?this.#V(e):[]}#V(e,t=-1){const s=i.Helpers.Timing.traceWindowFromMicroSeconds(e.ts,e.ts+e.inputDelay),r=i.Helpers.Timing.traceWindowFromMicroSeconds(s.max,s.max+e.mainThreadHandling),n=i.Helpers.Timing.traceWindowFromMicroSeconds(r.max,r.max+e.presentationDelay);let o=[{bounds:s,label:Ge(Ve.inputDelay),showDuration:!0},{bounds:r,label:Ge(Ve.processingDuration),showDuration:!0},{bounds:n,label:Ge(Ve.presentationDelay),showDuration:!0}];return-1!==t&&(o=[o[t]]),[{type:"TIMESPAN_BREAKDOWN",sections:o,renderLocation:"BELOW_EVENT",entry:e}]}renderContent(){const e=this.model?.longestInteractionEvent;if(!e)return Ze`<div class="insight-section">${Ge(Ve.noInteractions)}</div>`;const s=e=>t.TimeUtilities.millisToString(l.Timing.microSecondsToMilliSeconds(e));return Ze`
|
|
164
|
+
<div class="insight-section">
|
|
165
|
+
${Ze`<devtools-performance-table
|
|
166
|
+
.data=${{insight:this,headers:[Ge(Ve.phase),Ge(Ve.duration)],rows:[{values:[Ge(Ve.inputDelay),s(e.inputDelay)],overlays:this.#V(e,0)},{values:[Ge(Ve.processingDuration),s(e.mainThreadHandling)],overlays:this.#V(e,1)},{values:[Ge(Ve.presentationDelay),s(e.presentationDelay)],overlays:this.#V(e,2)}]}}>
|
|
167
|
+
</devtools-performance-table>`}
|
|
168
|
+
</div>`}}customElements.define("devtools-performance-inp",Qe);var Xe=Object.freeze({__proto__:null,InteractionToNextPaint:Qe});const{UIStrings:et,i18nString:tt}=i.Insights.Models.LCPDiscovery,{html:st}=o,it=t.i18n.registerUIStrings("models/trace/insights/LCPDiscovery.ts",et);function rt(e){if(!e.lcpRequest||!e.checklist)return null;const t=!e.checklist.priorityHinted.value,s=!e.checklist.requestDiscoverable.value,r=!e.checklist.eagerlyLoaded.value;if(!(void 0!==t&&void 0!==s&&void 0!==r))return null;const n={checklist:e.checklist,request:e.lcpRequest,discoveryDelay:null,estimatedSavings:e.metricSavings?.LCP??null};if(e.earliestDiscoveryTimeTs&&e.lcpRequest){const t=e.lcpRequest.ts-e.earliestDiscoveryTimeTs;n.discoveryDelay=i.Types.Timing.Micro(t)}return n}class nt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-lcp-discovery`;internalName="lcp-discovery";hasAskAISupport=!0;#G(e){const s=document.createElement("span");return s.classList.add("discovery-time-ms"),s.innerText=t.TimeUtilities.formatMicroSecondsTime(e),t.i18n.getFormatLocalizedString(it,et.lcpLoadDelay,{PH1:s})}createOverlays(){if(!this.model)return[];const e=rt(this.model);if(!e||!e.discoveryDelay)return[];const t=i.Helpers.Timing.traceWindowFromMicroSeconds(i.Types.Timing.Micro(e.request.ts-e.discoveryDelay),e.request.ts),s=st`<div class="discovery-delay"> ${this.#G(t.range)}</div>`;return[{type:"ENTRY_OUTLINE",entry:e.request,outlineReason:"ERROR"},{type:"CANDY_STRIPED_TIME_RANGE",bounds:t,entry:e.request},{type:"TIMESPAN_BREAKDOWN",sections:[{bounds:t,label:s,showDuration:!1}],entry:e.request,renderLocation:"ABOVE_EVENT"}]}getEstimatedSavingsTime(){return this.model?rt(this.model)?.estimatedSavings??null:null}renderContent(){if(!this.model)return o.nothing;const e=rt(this.model);return e?st`
|
|
169
|
+
<div class="insight-section">
|
|
170
|
+
<devtools-performance-checklist class="insight-section" .checklist=${e.checklist}></devtools-performance-checklist>
|
|
171
|
+
<div class="insight-section">${F(e.request)}</div>
|
|
172
|
+
</div>`:this.model.lcpEvent?st`<div class="insight-section">${tt(et.noLcpResource)}</div>`:st`<div class="insight-section">${tt(et.noLcp)}</div>`}}customElements.define("devtools-performance-lcp-discovery",nt);var ot=Object.freeze({__proto__:null,LCPDiscovery:nt});const{UIStrings:at,i18nString:lt}=i.Insights.Models.LCPPhases,{html:dt}=o;class ct extends _{static litTagName=o.StaticHtml.literal`devtools-performance-lcp-by-phases`;internalName="lcp-by-phase";hasAskAISupport=!0;#Z=null;#Q(){if(!this.model)return[];const e=this.model.lcpMs,t=this.model.phases;if(!e||!t)return[];const{ttfb:s,loadDelay:i,loadTime:r,renderDelay:n}=t;if(i&&r){return[{phase:lt(at.timeToFirstByte),timing:s},{phase:lt(at.resourceLoadDelay),timing:i},{phase:lt(at.resourceLoadDuration),timing:r},{phase:lt(at.elementRenderDelay),timing:n}]}return[{phase:lt(at.timeToFirstByte),timing:s},{phase:lt(at.elementRenderDelay),timing:n}]}createOverlays(){if(this.#Z=null,!this.model)return[];const e=this.model.phases,t=this.model.lcpTs;if(!e||!t)return[];const s=i.Types.Timing.Micro(i.Helpers.Timing.milliToMicro(t)),r=[];this.model.lcpRequest&&r.push({type:"ENTRY_OUTLINE",entry:this.model.lcpRequest,outlineReason:"INFO"});const n=[];if(e?.loadDelay||e?.loadTime){if(e?.loadDelay&&e?.loadTime){const t=i.Types.Timing.Micro(s-i.Helpers.Timing.milliToMicro(e.renderDelay)),r=i.Helpers.Timing.traceWindowFromMicroSeconds(t,s),o=i.Types.Timing.Micro(t-i.Helpers.Timing.milliToMicro(e.loadTime)),a=i.Helpers.Timing.traceWindowFromMicroSeconds(o,t),l=i.Types.Timing.Micro(o-i.Helpers.Timing.milliToMicro(e.loadDelay)),d=i.Helpers.Timing.traceWindowFromMicroSeconds(l,o),c=i.Types.Timing.Micro(l-i.Helpers.Timing.milliToMicro(e.ttfb)),h=i.Helpers.Timing.traceWindowFromMicroSeconds(c,l);n.push({bounds:h,label:lt(at.timeToFirstByte),showDuration:!0},{bounds:d,label:lt(at.resourceLoadDelay),showDuration:!0},{bounds:a,label:lt(at.resourceLoadDuration),showDuration:!0},{bounds:r,label:lt(at.elementRenderDelay),showDuration:!0})}}else{const t=i.Types.Timing.Micro(s-i.Helpers.Timing.milliToMicro(e.renderDelay)),r=i.Helpers.Timing.traceWindowFromMicroSeconds(t,s),o=i.Types.Timing.Micro(t-i.Helpers.Timing.milliToMicro(e.ttfb)),a=i.Helpers.Timing.traceWindowFromMicroSeconds(o,t);n.push({bounds:a,label:lt(at.timeToFirstByte),showDuration:!0},{bounds:r,label:lt(at.elementRenderDelay),showDuration:!0})}return this.#Z={type:"TIMESPAN_BREAKDOWN",sections:n},r.push(this.#Z),r}#X(){if(!this.fieldMetrics)return null;const{ttfb:e,loadDelay:s,loadDuration:r,renderDelay:n}=this.fieldMetrics.lcpPhases;if(!(e&&s&&r&&n))return null;const o=t.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microToMilli(e.value)),a=t.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microToMilli(s.value)),l=t.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microToMilli(r.value)),d=t.TimeUtilities.preciseMillisToString(i.Helpers.Timing.microToMilli(n.value)),c=[{values:[lt(at.timeToFirstByte),o]},{values:[lt(at.resourceLoadDelay),a]},{values:[lt(at.resourceLoadDuration),l]},{values:[lt(at.elementRenderDelay),d]}];return dt`
|
|
173
|
+
<div class="insight-section">
|
|
174
|
+
<devtools-performance-table
|
|
175
|
+
.data=${{insight:this,headers:[lt(at.phase),lt(at.fieldDuration)],rows:c}}>
|
|
176
|
+
</devtools-performance-table>
|
|
177
|
+
</div>
|
|
178
|
+
`}renderContent(){if(!this.model)return o.nothing;const e=this.#Q();if(!e.length)return dt`<div class="insight-section">${lt(at.noLcp)}</div>`;const s=e.map((({phase:e,timing:s})=>{const i=this.#Z?.sections.find((t=>e===t.label));return{values:[e,t.TimeUtilities.preciseMillisToString(s)],overlays:i&&[{type:"TIMESPAN_BREAKDOWN",sections:[i]}]}})),i=[dt`
|
|
179
|
+
<div class="insight-section">
|
|
180
|
+
<devtools-performance-table
|
|
181
|
+
.data=${{insight:this,headers:[lt(at.phase),lt(at.duration)],rows:s}}>
|
|
182
|
+
</devtools-performance-table>
|
|
183
|
+
</div>`],r=this.#X();return r&&i.push(r),dt`${i}`}}customElements.define("devtools-performance-lcp-by-phases",ct);var ht=Object.freeze({__proto__:null,LCPPhases:ct});const{UIStrings:mt,i18nString:ut}=i.Insights.Models.LegacyJavaScript,{html:vt}=o;class pt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-legacy-javascript`;internalName="legacy-javascript";getEstimatedSavingsTime(){return this.model?.metricSavings?.FCP??null}getEstimatedSavingsBytes(){if(!this.model)return null;let e=0;for(const t of this.model.legacyJavaScriptResults.values())e+=t.estimatedByteSavings;return e}createOverlays(){if(!this.model)return[];return[...this.model.legacyJavaScriptResults.keys()].map((e=>e.request)).filter((e=>!!e)).map((e=>({type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"})))}renderContent(){if(!this.model)return o.nothing;const e=[...this.model.legacyJavaScriptResults.entries()].slice(0,10).map((([e,s])=>{const i=[];return e.request&&i.push({type:"ENTRY_OUTLINE",entry:e.request,outlineReason:"ERROR"}),{values:[Ie(e),t.ByteUtilities.bytesToString(s.estimatedByteSavings)],overlays:i,subRows:s.matches.map((t=>({values:[vt`<span title=${`${e.url}:${t.line}:${t.column}`}>${t.name}</span>`]})))}}));return vt`
|
|
184
|
+
<div class="insight-section">
|
|
185
|
+
<devtools-performance-table
|
|
186
|
+
.data=${{insight:this,headers:[ut(mt.columnScript),ut(mt.columnWastedBytes)],rows:e}}>
|
|
187
|
+
</devtools-performance-table>
|
|
188
|
+
</div>
|
|
189
|
+
`}}customElements.define("devtools-performance-legacy-javascript",pt);var gt=Object.freeze({__proto__:null,LegacyJavaScript:pt});const{UIStrings:yt,i18nString:ft}=i.Insights.Models.ModernHTTP,{html:Tt}=o;class bt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-modern-http`;internalName="modern-http";mapToRow(e){return{values:[C(e),e.args.data.protocol],overlays:[this.#M(e)]}}createAggregatedTableRow(e){return{values:[W(e.length),""],overlays:e.map((e=>this.#M(e)))}}getEstimatedSavingsTime(){return this.model?.metricSavings?.LCP??null}createOverlays(){return this.model?.requests.map((e=>this.#M(e)))??[]}renderContent(){if(!this.model)return o.nothing;const e=Y(this.model.requests,this);return e.length?Tt`
|
|
190
|
+
<div class="insight-section">
|
|
191
|
+
<devtools-performance-table
|
|
192
|
+
.data=${{insight:this,headers:[ft(yt.request),ft(yt.protocol)],rows:e}}>
|
|
193
|
+
</devtools-performance-table>
|
|
194
|
+
</div>`:Tt`<div class="insight-section">${ft(yt.noOldProtocolRequests)}</div>`}#M(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}}customElements.define("devtools-performance-modern-http",bt);var St=Object.freeze({__proto__:null,ModernHTTP:bt}),Rt={cssText:`.insight-body{--override-timeline-link-text-decoration:none;--override-timeline-link-text-color:var(--sys-color-on-surface);.max-time{text-align:center;.longest{color:var(--sys-color-error)}}.tree-view{border-top:var(--sys-size-1) solid var(--sys-color-divider);padding-top:var(--sys-size-5);margin-top:var(--sys-size-5);ul:first-child{padding-left:0}ul:not(:first-child){border-left:var(--sys-size-1) solid var(--sys-color-tonal-outline);list-style:none;padding-left:var(--sys-size-5)}li{border-left:var(--sys-size-1) solid var(--sys-color-tonal-outline);list-style:none;min-height:var(--sys-size-8);padding:var(--sys-size-2) 0 var(--sys-size-2) var(--sys-size-5);.request{display:flex;&.longest{--override-timeline-link-text-color:var(--sys-color-error);color:var(--sys-color-error)}&.highlighted{background-color:var(--sys-color-state-hover-on-subtle)}.url{flex:auto}}}}}\n/*# sourceURL=${import.meta.resolve("./networkDependencyTreeInsight.css")} */\n`};const{UIStrings:wt,i18nString:Et}=i.Insights.Models.NetworkDependencyTree,{html:kt}=o,It=new CSSStyleSheet;It.replaceSync(Rt.cssText);class Nt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-long-critical-network-tree`;internalName="long-critical-network-tree";#ee=null;connectedCallback(){super.connectedCallback(),this.shadow.adoptedStyleSheets.push(It)}createOverlays(){if(!this.model)return[];const e=[];return _t(this.model.rootNodes,e),e}#te(e){const t=[];return e.forEach((e=>t.push({type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}))),t}#se(e){this.#ee=e;const t=this.#te(this.#ee);this.toggleTemporaryOverlays(t,{updateTraceWindow:!1}),this.scheduleRender()}#ie(){this.#ee=null,this.toggleTemporaryOverlays(null,{updateTraceWindow:!1}),this.scheduleRender()}renderTree(e){return 0===e.length?null:kt`
|
|
195
|
+
<ul>
|
|
196
|
+
${e.map((({request:e,timeFromInitialRequest:s,children:r,isLongest:n,relatedRequests:a})=>{const l=r.length>0,d=o.Directives.classMap({request:!0,longest:Boolean(n),highlighted:this.#ee?.has(e)??!1});return kt`
|
|
197
|
+
<li>
|
|
198
|
+
<div class=${d}
|
|
199
|
+
@mouseover=${this.#se.bind(this,a)}
|
|
200
|
+
@mouseout=${this.#ie.bind(this)}>
|
|
201
|
+
<span class="url">${C(e)}</span>
|
|
202
|
+
<span class="chain-time">
|
|
203
|
+
${t.TimeUtilities.formatMicroSecondsTime(i.Types.Timing.Micro(s))}
|
|
204
|
+
</span>
|
|
205
|
+
</div>
|
|
206
|
+
</li>
|
|
207
|
+
${l?kt`${this.renderTree(r)}`:o.nothing}
|
|
208
|
+
`}))}
|
|
209
|
+
</ul>`}renderContent(){return this.model?this.model.rootNodes.length?kt`
|
|
210
|
+
<div class="insight-section">
|
|
211
|
+
<div class="max-time">
|
|
212
|
+
${Et(wt.maxCriticalPathLatency)}
|
|
213
|
+
<br>
|
|
214
|
+
<span class='longest'> ${t.TimeUtilities.formatMicroSecondsTime(this.model.maxTime)}</span>
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<!-- a divider is added here, through |tree-view| element's border-top -->
|
|
218
|
+
<div class="tree-view">${this.renderTree(this.model.rootNodes)} </div>
|
|
219
|
+
</div>
|
|
220
|
+
`:kt`<div class="insight-section">${Et(wt.noNetworkDependencyTree)}</div>`:o.nothing}}function _t(e,t){e.forEach((e=>{t.push({type:"ENTRY_OUTLINE",entry:e.request,outlineReason:"ERROR"}),_t(e.children,t)}))}customElements.define("devtools-performance-long-critical-network-tree",Nt);var $t=Object.freeze({__proto__:null,NetworkDependencyTree:Nt});const{UIStrings:Ot,i18nString:Mt}=i.Insights.Models.RenderBlocking,{html:Dt}=o;class xt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-render-blocking-requests`;mapToRow(e){return{values:[C(e),t.TimeUtilities.formatMicroSecondsTime(e.dur)],overlays:[this.#M(e)]}}createAggregatedTableRow(e){return{values:[W(e.length),""],overlays:e.map((e=>this.#M(e)))}}hasAskAISupport=!0;internalName="render-blocking-requests";createOverlays(){return this.model?this.model.renderBlockingRequests.map((e=>this.#M(e))):[]}#M(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}getEstimatedSavingsTime(){return this.model?.metricSavings?.FCP??null}renderContent(){if(!this.model)return o.nothing;const e=this.model.renderBlockingRequests;if(!e.length)return Dt`<div class="insight-section">${Mt(Ot.noRenderBlocking)}</div>`;const t=Y(e,this);return Dt`
|
|
221
|
+
<div class="insight-section">
|
|
222
|
+
<devtools-performance-table
|
|
223
|
+
.data=${{insight:this,headers:[Mt(Ot.renderBlockingRequest),Mt(Ot.duration)],rows:t}}>
|
|
224
|
+
</devtools-performance-table>
|
|
225
|
+
</div>
|
|
226
|
+
`}}customElements.define("devtools-performance-render-blocking-requests",xt);var Ct=Object.freeze({__proto__:null,RenderBlocking:xt});const{UIStrings:Lt,i18nString:qt}=i.Insights.Models.SlowCSSSelector,{html:Ft}=o;class Ht extends _{static litTagName=o.StaticHtml.literal`devtools-performance-slow-css-selector`;internalName="slow-css-selector";#re=new Map;createOverlays(){return[]}async toSourceFileLocation(e,t){if(!e)return;const s=e.styleSheetHeaderForId(t.style_sheet_id);if(!s||!s.resourceURL())return;const i=JSON.stringify({selectorText:t.selector,styleSheetId:t.style_sheet_id});let r=this.#re.get(i);if(!r){const s=await e.agent.invoke_getLocationForSelector({selectorText:t.selector,styleSheetId:t.style_sheet_id});if(s.getError()||!s.ranges)return;r=s.ranges,this.#re.set(i,r)}return r.map(((e,t)=>({url:s.resourceURL(),lineNumber:e.startLine,columnNumber:e.startColumn,linkText:`[${t+1}]`,title:`${s.id} line ${e.startLine+1}:${e.startColumn+1}`})))}async getSelectorLinks(e,t){if(!e)return o.nothing;if(!t.style_sheet_id)return o.nothing;const s=await this.toSourceFileLocation(e,t);if(!s)return o.nothing;return Ft`
|
|
227
|
+
${s.map(((e,t)=>{const i=t!==s.length-1?", ":"";return Ft`<devtools-linkifier .data=${e}></devtools-linkifier>${i}`}))}`}renderContent(){if(!this.model)return o.nothing;const e=d.TargetManager.TargetManager.instance().primaryPageTarget(),s=e?.model(d.CSSModel.CSSModel);if(!this.model.topMatchAttempts.length&&!this.model.topElapsedMs.length)return Ft`<div class="insight-section">${qt(Lt.enableSelectorData)}</div>`;const r=[Ft`
|
|
228
|
+
<div class="insight-section">
|
|
229
|
+
<devtools-performance-table
|
|
230
|
+
.data=${{insight:this,headers:[qt(Lt.total),""],rows:[{values:[qt(Lt.elapsed),t.TimeUtilities.millisToString(this.model.totalElapsedMs)]},{values:[qt(Lt.matchAttempts),this.model.totalMatchAttempts]},{values:[qt(Lt.matchCount),this.model.totalMatchCount]}]}}>
|
|
231
|
+
</devtools-performance-table>
|
|
232
|
+
</div>
|
|
233
|
+
`];return this.model.topElapsedMs.length&&r.push(Ft`
|
|
234
|
+
<div class="insight-section">
|
|
235
|
+
<devtools-performance-table
|
|
236
|
+
.data=${{insight:this,headers:[qt(Lt.topSelectors),qt(Lt.elapsed)],rows:this.model.topElapsedMs.map((e=>{return{values:[Ft`${e.selector} ${o.Directives.until(this.getSelectorLinks(s,e))}`,(r=i.Types.Timing.Micro(e["elapsed (us)"]),t.TimeUtilities.millisToString(l.Timing.microSecondsToMilliSeconds(r)))]};var r}))}}>
|
|
237
|
+
</devtools-performance-table>
|
|
238
|
+
</div>
|
|
239
|
+
`),this.model.topMatchAttempts.length&&r.push(Ft`
|
|
240
|
+
<div class="insight-section">
|
|
241
|
+
<devtools-performance-table
|
|
242
|
+
.data=${{insight:this,headers:[qt(Lt.topSelectors),qt(Lt.matchAttempts)],rows:this.model.topMatchAttempts.map((e=>({values:[Ft`${e.selector} ${o.Directives.until(this.getSelectorLinks(s,e))}`,e.match_attempts]})))}}>
|
|
243
|
+
</devtools-performance-table>
|
|
244
|
+
</div>
|
|
245
|
+
`),Ft`${r}`}}customElements.define("devtools-performance-slow-css-selector",Ht);var At=Object.freeze({__proto__:null,SlowCSSSelector:Ht});const{UIStrings:zt,i18nString:Ut}=i.Insights.Models.ThirdParties,{html:Pt}=o;class Bt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-third-parties`;internalName="third-parties";createOverlays(){if(!this.model)return[];const e=[],t=this.model.summaries??[];for(const s of t){if(s.entity===this.model.firstPartyEntity)continue;const t=this.#ne(s);e.push(...t)}return e}#ne(e){const t=[],s=e.relatedEvents??[];for(const e of s){if(void 0===e.dur||e.dur<1e3)continue;const s={type:"ENTRY_OUTLINE",entry:e,outlineReason:"INFO"};t.push(s)}return t}#oe={mapToRow:e=>({values:[e.entity.name,t.TimeUtilities.millisToString(e.mainThreadTime)],overlays:this.#ne(e)}),createAggregatedTableRow:e=>{const s=e.reduce(((e,t)=>i.Types.Timing.Milli(e+t.mainThreadTime)),i.Types.Timing.Milli(0));return{values:[W(e.length),t.TimeUtilities.millisToString(s)],overlays:e.flatMap((e=>this.#ne(e)??[]))}}};#ae={mapToRow:e=>({values:[e.entity.name,t.ByteUtilities.formatBytesToKb(e.transferSize)],overlays:this.#ne(e)}),createAggregatedTableRow:e=>{const s=e.reduce(((e,t)=>e+t.transferSize),0);return{values:[W(e.length),t.ByteUtilities.formatBytesToKb(s)],overlays:e.flatMap((e=>this.#ne(e)??[]))}}};renderContent(){if(!this.model)return o.nothing;let e=this.model.summaries??[];if(this.model.firstPartyEntity&&(e=e.filter((e=>e.entity!==this.model?.firstPartyEntity||null))),!e.length)return Pt`<div class="insight-section">${Ut(zt.noThirdParties)}</div>`;const t=e.toSorted(((e,t)=>t.transferSize-e.transferSize)),s=e.toSorted(((e,t)=>t.mainThreadTime-e.mainThreadTime)),i=[];if(t.length){const e=Y(t,this.#ae,5);i.push(Pt`
|
|
246
|
+
<div class="insight-section">
|
|
247
|
+
<devtools-performance-table
|
|
248
|
+
.data=${{insight:this,headers:[Ut(zt.columnThirdParty),Ut(zt.columnTransferSize)],rows:e}}>
|
|
249
|
+
</devtools-performance-table>
|
|
250
|
+
</div>
|
|
251
|
+
`)}if(s.length){const e=Y(s,this.#oe,5);i.push(Pt`
|
|
252
|
+
<div class="insight-section">
|
|
253
|
+
<devtools-performance-table
|
|
254
|
+
.data=${{insight:this,headers:[Ut(zt.columnThirdParty),Ut(zt.columnMainThreadTime)],rows:e}}>
|
|
255
|
+
</devtools-performance-table>
|
|
256
|
+
</div>
|
|
257
|
+
`)}return Pt`${i}`}}customElements.define("devtools-performance-third-parties",Bt);var jt=Object.freeze({__proto__:null,ThirdParties:Bt}),Wt=Object.freeze({__proto__:null});const{html:Yt}=o;class Kt extends _{static litTagName=o.StaticHtml.literal`devtools-performance-viewport`;internalName="viewport";createOverlays(){return[]}getEstimatedSavingsTime(){return this.model?.metricSavings?.INP??null}renderContent(){if(!this.model||!this.model.viewportEvent)return o.nothing;const e=this.model.viewportEvent.args.data.node_id;return void 0===e?o.nothing:Yt`
|
|
258
|
+
<div>
|
|
259
|
+
<devtools-performance-node-link
|
|
260
|
+
.data=${{backendNodeId:e,frame:this.model.viewportEvent.args.data.frame??"",options:{tooltip:this.model.viewportEvent.args.data.content},fallbackHtmlSnippet:`<meta name=viewport content="${this.model.viewportEvent.args.data.content}">`}}>
|
|
261
|
+
</devtools-performance-node-link>
|
|
262
|
+
</div>`}}customElements.define("devtools-performance-viewport",Kt);var Jt=Object.freeze({__proto__:null,Viewport:Kt});export{$ as BaseInsightComponent,me as CLSCulprits,X as Cache,ae as Checklist,ke as DOMSize,ye as DocumentLatency,Me as DuplicatedJavaScript,H as EventRef,qe as FontDisplay,Pe as ForcedReflow,Be as Helpers,Je as ImageDelivery,Xe as InteractionToNextPaint,ot as LCPDiscovery,ht as LCPPhases,gt as LegacyJavaScript,St as ModernHTTP,$t as NetworkDependencyTree,be as NodeLink,Ct as RenderBlocking,R as SidebarInsight,At as SlowCSSSelector,J as Table,jt as ThirdParties,Wt as Types,Jt as Viewport};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../../ui/legacy/theme_support/theme_support.js";var r=Object.freeze({__proto__:null,extensionEntryColor:function(r){let a="--ref-palette-blue70";switch(r.args.color){case"primary":a="--ref-palette-blue70";break;case"primary-light":a="--ref-palette-blue80";break;case"primary-dark":a="--ref-palette-blue60";break;case"secondary":a="--ref-palette-purple80";break;case"secondary-light":a="--ref-palette-purple90";break;case"secondary-dark":a="--ref-palette-purple70";break;case"tertiary":a="--ref-palette-green70";break;case"tertiary-light":a="--ref-palette-green80";break;case"tertiary-dark":a="--ref-palette-green60";break;case"warning":a="--ref-palette-yellow70";break;case"error":a="--ref-palette-error60"}return e.ThemeSupport.instance().getComputedValue(a)}});export{r as ExtensionUI};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import"../../../../ui/components/icon_button/icon_button.js";import*as e from"../../../../core/i18n/i18n.js";import"../../../../models/trace/trace.js";import*as t from"../../../../ui/legacy/theme_support/theme_support.js";import*as i from"../../../../ui/lit/lit.js";import{render as n,html as o}from"../../../../ui/lit/lit.js";import*as s from"../../../../ui/visual_logging/visual_logging.js";import"../../../../ui/components/tooltips/tooltips.js";import"../../../../ui/components/spinners/spinners.js";import*as r from"../../../../core/common/common.js";import*as a from"../../../../core/host/host.js";import*as l from"../../../../core/platform/platform.js";import*as c from"../../../../core/root/root.js";import*as h from"../../../../models/ai_assistance/ai_assistance.js";import"../../../../ui/components/buttons/buttons.js";import*as d from"../../../../ui/components/helpers/helpers.js";import*as b from"../../../../ui/legacy/legacy.js";import*as p from"../../../common/common.js";var u={cssText:`.connectorContainer{display:flex;width:100%;height:100%}.entry-wrapper{pointer-events:none;position:absolute;display:block;border:2px solid var(--color-text-primary);box-sizing:border-box;&.cut-off-top{border-top:none}&.cut-off-bottom{border-bottom:none}&.cut-off-right{border-right:none}&.cut-off-left{border-left:none}}.entry-is-not-source{border:2px dashed var(--color-text-primary)}.create-link-icon{pointer-events:auto;cursor:pointer;color:var(--sys-color-on-surface);width:16px;height:16px;position:absolute}\n/*# sourceURL=${import.meta.resolve("./entriesLinkOverlay.css")} */\n`};const y={diagram:"Links bteween entries"},g=e.i18n.registerUIStrings("panels/timeline/overlays/components/EntriesLinkOverlay.ts",y),m=e.i18n.getLocalizedString.bind(void 0,g),v=new CSSStyleSheet;v.replaceSync(u.cssText);class f extends Event{static eventName="entrylinkstartcreating";constructor(){super(f.eventName,{bubbles:!0,composed:!0})}}let w=class extends HTMLElement{#e=this.attachShadow({mode:"open"});#t;#i;#n;#o=null;#s=null;#r=null;#a=null;#l=null;#c=null;#h=null;#d=!0;#b=!0;#p=null;#u=!0;#y=!0;#g=!1;#m;constructor(e,t){super(),this.#v(),this.#t={x:e.x,y:e.y},this.#i={width:e.width,height:e.height},this.#n={x:e.x,y:e.y},this.#s=this.#e.querySelector(".connectorContainer")??null,this.#r=this.#s?.querySelector("line")??null,this.#a=this.#e.querySelector(".from-highlight-wrapper")??null,this.#l=this.#e.querySelector(".to-highlight-wrapper")??null,this.#c=this.#s?.querySelector(".entryFromConnector")??null,this.#h=this.#s?.querySelector(".entryToConnector")??null,this.#m=t,this.#v()}set canvasRect(e){null!==e&&(this.#p&&this.#p.width===e.width&&this.#p.height===e.height||(this.#p=e,this.#v()))}entryFromWrapper(){return this.#a}entryToWrapper(){return this.#l}connectedCallback(){this.#e.adoptedStyleSheets=[v]}set hideArrow(e){this.#g=e,this.#r&&(this.#r.style.display=e?"none":"block")}set fromEntryCoordinateAndDimensions(e){this.#t={x:e.x,y:e.y},this.#i={width:e.length,height:e.height},this.#f(),this.#w()}set entriesVisibility(e){this.#d=e.fromEntryVisibility,this.#b=e.toEntryVisibility,this.#w()}set toEntryCoordinateAndDimensions(e){this.#n={x:e.x,y:e.y},e.length&&e.height?this.#o={width:e.length,height:e.height}:this.#o=null,this.#f(),this.#w()}set fromEntryIsSource(e){e!==this.#u&&(this.#u=e,this.#v())}set toEntryIsSource(e){e!==this.#y&&(this.#y=e,this.#v())}#w(){if(!(this.#r&&this.#a&&this.#l&&this.#c&&this.#h))return void console.error("`connector` element is missing.");if("creation_not_started"===this.#m)return this.#c.setAttribute("visibility","hidden"),void this.#h.setAttribute("visibility","hidden");const e=this.#d&&!this.#g&&this.#u&&this.#i.width>=8,i=this.#o?.width??0,n=!this.#g&&this.#b&&this.#y&&i>=8&&!this.#g;this.#c.setAttribute("visibility",e?"visible":"hidden"),this.#h.setAttribute("visibility",n?"visible":"hidden");const o=this.#i.height/2;if(this.#d){const e=String(this.#t.x+this.#i.width),t=String(this.#t.y+o);this.#r.setAttribute("x1",e),this.#r.setAttribute("y1",t),this.#c.setAttribute("cx",e),this.#c.setAttribute("cy",t),this.#a.style.visibility="visible"}else this.#r.setAttribute("x1",(this.#t.x+this.#i.width).toString()),this.#r.setAttribute("y1",String(this.#t.y+o)),this.#a.style.visibility="hidden";if(this.#o&&this.#b){const e=String(this.#n.x),t=String(this.#n.y+this.#o.height/2);this.#r.setAttribute("x2",e),this.#r.setAttribute("y2",t),this.#h.setAttribute("cx",e),this.#h.setAttribute("cy",t),this.#l.style.visibility="visible"}else if(this.#l.style.visibility="hidden",this.#r.setAttribute("x2",this.#n.x.toString()),this.#o){const e=this.#o.height/2;this.#r.setAttribute("y2",String(this.#n.y+e))}else this.#r.setAttribute("y2",this.#n.y.toString());if(this.#r.setAttribute("stroke-width","2"),this.#o&&this.#d&&!this.#b)this.#r.setAttribute("stroke","url(#fromVisibleLineGradient)");else if(this.#o&&this.#b&&!this.#d)this.#r.setAttribute("stroke","url(#toVisibleLineGradient)");else{const e=t.ThemeSupport.instance().getComputedValue("--color-text-primary");this.#r.setAttribute("stroke",e)}this.#v()}#x(){if(!this.#p)return 100;const e=this.#n.x-(this.#t.x+this.#i.width);let t=0;this.#d&&!this.#b?t=this.#p.width-(this.#t.x+this.#i.width):!this.#d&&this.#b&&(t=this.#n.x);const i=100*t/e;return i<100?i:100}#f(){const e=this.#e.querySelector(".create-link-box"),t=e?.querySelector(".create-link-icon")??null;e&&t?"creation_not_started"===this.#m?(t.style.left=`${this.#t.x+this.#i.width}px`,t.style.top=`${this.#t.y}px`):t.style.display="none":console.error("creating element is missing.")}#L(){this.#m="pending_to_event",this.dispatchEvent(new f)}#v(){const e=t.ThemeSupport.instance().getComputedValue("--color-text-primary");n(o`
|
|
2
|
+
<svg class="connectorContainer" width="100%" height="100%" role="region" aria-label=${m(y.diagram)}>
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient
|
|
5
|
+
id="fromVisibleLineGradient"
|
|
6
|
+
x1="0%" y1="0%" x2="100%" y2="0%">
|
|
7
|
+
<stop
|
|
8
|
+
offset="0%"
|
|
9
|
+
stop-color=${e}
|
|
10
|
+
stop-opacity="1" />
|
|
11
|
+
<stop
|
|
12
|
+
offset="${this.#x()}%"
|
|
13
|
+
stop-color=${e}
|
|
14
|
+
stop-opacity="0" />
|
|
15
|
+
</linearGradient>
|
|
16
|
+
|
|
17
|
+
<linearGradient
|
|
18
|
+
id="toVisibleLineGradient"
|
|
19
|
+
x1="0%" y1="0%" x2="100%" y2="0%">
|
|
20
|
+
<stop
|
|
21
|
+
offset="${100-this.#x()}%"
|
|
22
|
+
stop-color=${e}
|
|
23
|
+
stop-opacity="0" />
|
|
24
|
+
<stop
|
|
25
|
+
offset="100%"
|
|
26
|
+
stop-color=${e}
|
|
27
|
+
stop-opacity="1" />
|
|
28
|
+
</linearGradient>
|
|
29
|
+
<marker
|
|
30
|
+
id="arrow"
|
|
31
|
+
orient="auto"
|
|
32
|
+
markerWidth="3"
|
|
33
|
+
markerHeight="4"
|
|
34
|
+
fill-opacity="1"
|
|
35
|
+
refX="4"
|
|
36
|
+
refY="2"
|
|
37
|
+
visibility=${this.#b||!this.#o?"visible":"hidden"}>
|
|
38
|
+
<path d="M0,0 V4 L4,2 Z" fill=${e} />
|
|
39
|
+
</marker>
|
|
40
|
+
</defs>
|
|
41
|
+
<line
|
|
42
|
+
marker-end="url(#arrow)"
|
|
43
|
+
stroke-dasharray=${this.#u&&this.#y?"none":E}
|
|
44
|
+
visibility=${this.#d||this.#b?"visible":"hidden"}
|
|
45
|
+
/>
|
|
46
|
+
<circle class="entryFromConnector" fill="none" stroke=${e} stroke-width=${L} r=${x} />
|
|
47
|
+
<circle class="entryToConnector" fill="none" stroke=${e} stroke-width=${L} r=${x} />
|
|
48
|
+
</svg>
|
|
49
|
+
<div class="entry-wrapper from-highlight-wrapper ${this.#u?"":"entry-is-not-source"}"></div>
|
|
50
|
+
<div class="entry-wrapper to-highlight-wrapper ${this.#y?"":"entry-is-not-source"}"></div>
|
|
51
|
+
<div class="create-link-box ${this.#m?"visible":"hidden"}">
|
|
52
|
+
<devtools-icon
|
|
53
|
+
class='create-link-icon'
|
|
54
|
+
jslog=${s.action("timeline.annotations.create-entry-link").track({click:!0})}
|
|
55
|
+
@click=${this.#L}
|
|
56
|
+
name='arrow-right-circle'>
|
|
57
|
+
</devtools-icon>
|
|
58
|
+
</div>
|
|
59
|
+
`,this.#e,{host:this})}};const x=2,L=1,E=4;customElements.define("devtools-entries-link-overlay",w);var A=Object.freeze({__proto__:null,EntriesLinkOverlay:w,EntryLinkStartCreating:f}),C={cssText:`.label-parts-wrapper{display:flex;flex-direction:column;align-items:center}.label-button-input-wrapper{display:flex;position:relative;overflow:visible}.ai-label-button-wrapper,\n.ai-label-disabled-button-wrapper,\n.ai-label-loading,\n.ai-label-error{position:absolute;left:100%;display:flex;transform:translateY(-3px);flex-flow:row nowrap;border:none;border-radius:var(--sys-shape-corner-large);background:var(--sys-color-surface3);box-shadow:var(--drop-shadow);align-items:center;gap:var(--sys-size-4);pointer-events:auto;transition:all var(--sys-motion-duration-medium2) var(--sys-motion-easing-emphasized);&.only-pen-wrapper{overflow:hidden;width:var(--sys-size-12);height:var(--sys-size-12)}*{transform:translateX(-2px)}}.ai-label-loading,\n.ai-label-error{gap:var(--sys-size-6);padding:var(--sys-size-5) var(--sys-size-8)}.ai-label-button-wrapper:focus,\n.ai-label-button-wrapper:focus-within,\n.ai-label-button-wrapper:hover{width:auto;height:var(--sys-size-13);padding:var(--sys-size-3) var(--sys-size-5);transform:translateY(-9px);*{transform:translateX(0)}}.ai-label-button{display:flex;align-items:center;gap:var(--sys-size-4);padding:var(--sys-size-3) var(--sys-size-5);border:1px solid var(--color-primary);border-radius:var(--sys-shape-corner-large);&.enabled{background:var(--sys-color-surface3)}&.disabled{background:var(--sys-color-surface5)}&:hover{background:var(--sys-color-state-hover-on-subtle)}}.generate-label-text{white-space:nowrap;color:var(--color-primary)}.input-field{background-color:var(--color-background-inverted);color:var(--color-background);pointer-events:auto;border-radius:var(--sys-shape-corner-extra-small);white-space:nowrap;padding:var(--sys-size-3) var(--sys-size-4);font-family:var(--default-font-family);font-size:var(--sys-typescale-body2-size);font-weight:var(--ref-typeface-weight-medium)}.input-field:focus,\n.label-parts-wrapper:focus-within .input-field,\n.input-field.fake-focus-state{background-color:var(--color-background);color:var(--color-background-inverted);outline:2px solid var(--color-background-inverted)}.connectorContainer{overflow:visible}.entry-highlight-wrapper{box-sizing:border-box;border:2px solid var(--sys-color-on-surface);&.cut-off-top{border-top:none}&.cut-off-bottom{border-bottom:none}&.cut-off-right{border-right:none}&.cut-off-left{border-left:none}}.info-tooltip-container{max-width:var(--sys-size-28);button.link{cursor:pointer;text-decoration:underline;border:none;padding:0;background:none;font:inherit;font-weight:var(--ref-typeface-weight-medium);display:block;margin-top:var(--sys-size-4);color:var(--sys-color-primary)}}\n/*# sourceURL=${import.meta.resolve("./entryLabelOverlay.css")} */\n`};const{html:k,Directives:T}=i,S=new CSSStyleSheet;S.replaceSync(C.cssText);const R={entryLabel:"Entry label",inputTextPrompt:"Enter an annotation label",generateLabelButton:"Generate label",freDialog:"Get AI-powered annotation suggestions dialog",learnMoreAriaLabel:"Learn more about auto annotations in settings",moreInfoAriaLabel:"More info"},I="Learn more in settings",_="The selected call stack is sent to Google. The content you submit and that is generated by this feature will be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",$="The selected call stack is sent to Google. The content you submit and that is generated by this feature will not be used to improve Google’s AI models. This is an experimental AI feature and won’t always get it right.",B="Auto annotations are not available.",F="Auto annotations are not available because you are offline.",N="Get AI-powered annotation suggestions",D="Generating label",H="Generation failed",O="This feature uses AI and won’t always get it right",V="Performance trace is sent to Google to generate annotation suggestions",G="You can control this feature in the",z="settings panel",P="Learn more about auto annotations",j=e.i18n.registerUIStrings("panels/timeline/overlays/components/EntryLabelOverlay.ts",R),M=e.i18n.getLocalizedString.bind(void 0,j),W=e.i18n.lockedString;function U(){return!c.Runtime.hostConfig.aidaAvailability?.disallowLogging}class q extends Event{static eventName="emptyentrylabelremoveevent";constructor(){super(q.eventName)}}class K extends Event{newLabel;static eventName="entrylabelchangeevent";constructor(e){super(K.eventName),this.newLabel=e}}class Y extends Event{isVisible;static eventName="labelannotationsconsentdialogvisiblitychange";constructor(e){super(Y.eventName,{bubbles:!0,composed:!0}),this.isVisible=e}}let X=class e extends HTMLElement{static LABEL_AND_CONNECTOR_SHIFT_LENGTH=8;static LABEL_CONNECTOR_HEIGHT=7;static LABEL_HEIGHT=17;static LABEL_PADDING=4;static LABEL_AND_CONNECTOR_HEIGHT=e.LABEL_HEIGHT+2*e.LABEL_PADDING+e.LABEL_CONNECTOR_HEIGHT;static MAX_LABEL_LENGTH=100;#e=this.attachShadow({mode:"open"});#E=this.#v.bind(this);#A=!1;#C=!0;#k=null;#T=null;#S=null;#R=null;#s=null;#I;#_;#$=T.createRef();#B=null;#F=r.Settings.Settings.instance().createSetting("ai-annotations-enabled",!1);#N=new h.PerformanceAnnotationsAgent({aidaClient:new a.AidaClient.AidaClient,serverSideLoggingEnabled:U()});#D=!1;#H=!1;#O=!1;constructor(e,t=!1){super(),this.#v(),this.#_=t,this.#T=this.#e.querySelector(".label-parts-wrapper"),this.#R=this.#T?.querySelector(".input-field")??null,this.#s=this.#T?.querySelector(".connectorContainer")??null,this.#S=this.#T?.querySelector(".entry-highlight-wrapper")??null,this.#I=e,this.#V(e),""!==e&&this.setLabelEditabilityAndRemoveEmptyLabel(!1);const i=""===e?M(R.inputTextPrompt):e;this.#R?.setAttribute("aria-label",i),this.#G()}overrideAIAgentForTest(e){this.#N=e}connectedCallback(){this.#e.adoptedStyleSheets=[S]}entryHighlightWrapper(){return this.#S}#z(){const e=this.#R?.textContent?.trim()??"";e!==this.#I&&(this.#I=e,this.dispatchEvent(new K(this.#I)),this.#R?.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))),this.#R?.setAttribute("aria-label",e)}#P(t){if(!this.#R)return!1;return t.key!==l.KeyboardUtilities.ENTER_KEY&&t.key!==l.KeyboardUtilities.ESCAPE_KEY||!this.#C?null!==this.#R.textContent&&this.#R.textContent.length<=e.MAX_LABEL_LENGTH||(!!["Backspace","Delete","ArrowLeft","ArrowRight"].includes(t.key)||(!(1!==t.key.length||!t.ctrlKey)||(t.preventDefault(),!1))):(this.#R.blur(),this.setLabelEditabilityAndRemoveEmptyLabel(!1),!1)}#j(t){t.preventDefault();const i=t.clipboardData;if(!i||!this.#R)return;const n=i.getData("text"),o=(this.#R.textContent+n).slice(0,e.MAX_LABEL_LENGTH+1);this.#R.textContent=o,this.#M()}set entryLabelVisibleHeight(e){e!==this.#k?(this.#k=e,d.ScheduledRender.scheduleRender(this,this.#E),this.#C&&this.#W(),this.#V(),this.#G()):this.#G()}#G(){if(!this.#s)return void console.error("`connectorLineContainer` element is missing.");if(this.#_&&this.#k){const t=this.#k+e.LABEL_CONNECTOR_HEIGHT;this.#s.style.transform=`translateY(${t}px) rotate(180deg)`}const i=this.#s.querySelector("line"),n=this.#s.querySelector("circle");if(!i||!n)return void console.error("Some entry label elements are missing.");this.#s.setAttribute("width",(2*e.LABEL_AND_CONNECTOR_SHIFT_LENGTH).toString()),this.#s.setAttribute("height",e.LABEL_CONNECTOR_HEIGHT.toString()),i.setAttribute("x1","0"),i.setAttribute("y1","0"),i.setAttribute("x2",e.LABEL_AND_CONNECTOR_SHIFT_LENGTH.toString()),i.setAttribute("y2",e.LABEL_CONNECTOR_HEIGHT.toString());const o=t.ThemeSupport.instance().getComputedValue("--color-text-primary");i.setAttribute("stroke",o),i.setAttribute("stroke-width","2"),n.setAttribute("cx",e.LABEL_AND_CONNECTOR_SHIFT_LENGTH.toString()),n.setAttribute("cy",e.LABEL_CONNECTOR_HEIGHT.toString()),n.setAttribute("r","3"),n.setAttribute("fill",o)}#V(t){if(!this.#R)return void console.error("`labelBox`element is missing.");"string"==typeof t&&(this.#R.innerText=t);let i=null,n=null;if(i=this.#_?e.LABEL_AND_CONNECTOR_SHIFT_LENGTH:-1*e.LABEL_AND_CONNECTOR_SHIFT_LENGTH,this.#_&&this.#k){n=this.#k+e.LABEL_HEIGHT+2*e.LABEL_PADDING+2*e.LABEL_CONNECTOR_HEIGHT}let o="";i&&(o+=`translateX(${i}px) `),n&&(o+=`translateY(${n}px)`),o.length&&(this.#R.style.transform=o)}#W(){this.#R?this.#R.focus():console.error("`labelBox` element is missing.")}setLabelEditabilityAndRemoveEmptyLabel(e){if(this.#D&&!1===e)return;e?this.setAttribute("data-user-editing-label","true"):this.removeAttribute("data-user-editing-label"),this.#C=e,this.#v(),e&&this.#R&&(this.#M(),this.#W());const t=this.#R?.textContent?.trim()??"";e||0!==t.length||this.#A||(this.#A=!0,this.dispatchEvent(new q))}#M(){if(!this.#R)return;const e=window.getSelection(),t=document.createRange();t.selectNodeContents(this.#R),t.collapse(!1),e?.removeAllRanges(),e?.addRange(t)}set callTree(e){this.#B=e}async#U(){if(this.#F.get()){if(!this.#B||!this.#R)return;try{this.#H=!0,b.ARIAUtils.alert(D),this.#v(),this.#W(),d.ScheduledRender.scheduleRender(this,this.#E),this.#I=await this.#N.generateAIEntryLabel(this.#B),this.dispatchEvent(new K(this.#I)),this.#R.innerText=this.#I,this.#H=!1,this.#v()}catch{this.#H=!1,this.#O=!0,d.ScheduledRender.scheduleRender(this,this.#E)}}else{this.#H=!1,this.#D=!0,this.#v();const e=await this.#q();this.#D=!1,this.setLabelEditabilityAndRemoveEmptyLabel(!0),e&&await this.#U()}}async#q(){this.dispatchEvent(new Y(!0));const e=await p.FreDialog.show({ariaLabel:M(R.freDialog),header:{iconName:"pen-spark",text:W(N)},reminderItems:[{iconName:"psychiatry",content:W(O)},{iconName:"google",content:W(V)},{iconName:"gear",content:k`
|
|
60
|
+
${W(G)}
|
|
61
|
+
<button
|
|
62
|
+
@click=${()=>{b.ViewManager.ViewManager.instance().showView("chrome-ai")}}
|
|
63
|
+
class="link"
|
|
64
|
+
role="link"
|
|
65
|
+
jslog=${s.link("open-ai-settings").track({click:!0})}
|
|
66
|
+
tabindex="0"
|
|
67
|
+
>${W(z)}</button>`}],onLearnMoreClick:()=>{b.UIUtils.openInNewTab("https://developer.chrome.com/docs/devtools/performance/reference#auto-annotations")},learnMoreButtonTitle:P});return this.dispatchEvent(new Y(!1)),e&&this.#F.set(!0),this.#F.get()}#K(){const e=Boolean(c.Runtime.hostConfig.devToolsAiGeneratedTimelineLabels?.enabled),t=c.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===c.Runtime.GenAiEnterprisePolicyValue.DISABLE,i=null!==this.#B,n=this.#I?.length<=0;if(!e||t||!i||!n)return"hidden";const o=!c.Runtime.hostConfig.aidaAvailability?.blockedByAge&&!c.Runtime.hostConfig.aidaAvailability?.blockedByGeo&&!1==!navigator.onLine;return o?"enabled":o?(console.error("'Generate label' button is hidden for an unknown reason"),"hidden"):"disabled"}#Y(e){return k`<devtools-tooltip
|
|
68
|
+
variant="rich"
|
|
69
|
+
id="info-tooltip"
|
|
70
|
+
${T.ref(this.#$)}>
|
|
71
|
+
<div class="info-tooltip-container">
|
|
72
|
+
${e.textContent}
|
|
73
|
+
${e.includeSettingsButton?k`
|
|
74
|
+
<button
|
|
75
|
+
class="link tooltip-link"
|
|
76
|
+
role="link"
|
|
77
|
+
jslog=${s.link("open-ai-settings").track({click:!0})}
|
|
78
|
+
@click=${this.#X}
|
|
79
|
+
aria-label=${M(R.learnMoreAriaLabel)}
|
|
80
|
+
>${W(I)}</button>
|
|
81
|
+
`:i.nothing}
|
|
82
|
+
</div>
|
|
83
|
+
</devtools-tooltip>`}#Z(){const e=c.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue===c.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;return this.#H?k`
|
|
84
|
+
<span
|
|
85
|
+
class="ai-label-loading">
|
|
86
|
+
<devtools-spinner></devtools-spinner>
|
|
87
|
+
<span class="generate-label-text">${W(D)}</span>
|
|
88
|
+
</span>
|
|
89
|
+
`:this.#O?(this.#O=!1,k`
|
|
90
|
+
<span
|
|
91
|
+
class="ai-label-error">
|
|
92
|
+
<devtools-icon
|
|
93
|
+
class="warning"
|
|
94
|
+
.name=${"warning"}
|
|
95
|
+
.data=${{iconName:"warning",color:"var(--ref-palette-error50)",width:"20px"}}>
|
|
96
|
+
</devtools-icon>
|
|
97
|
+
<span class="generate-label-text">${W(H)}</span>
|
|
98
|
+
</span>
|
|
99
|
+
`):k`
|
|
100
|
+
<!-- 'preventDefault' on the AI label button to prevent the label removal on blur -->
|
|
101
|
+
<span
|
|
102
|
+
class="ai-label-button-wrapper only-pen-wrapper"
|
|
103
|
+
@mousedown=${e=>e.preventDefault()}>
|
|
104
|
+
<button
|
|
105
|
+
class="ai-label-button enabled"
|
|
106
|
+
@click=${this.#U}>
|
|
107
|
+
<devtools-icon
|
|
108
|
+
class="pen-icon"
|
|
109
|
+
.name=${"pen-spark"}
|
|
110
|
+
.data=${{iconName:"pen-spark",color:"var(--color-primary)",width:"20px"}}>
|
|
111
|
+
</devtools-icon>
|
|
112
|
+
<span class="generate-label-text">${M(R.generateLabelButton)}</span>
|
|
113
|
+
</button>
|
|
114
|
+
<devtools-button
|
|
115
|
+
aria-details="info-tooltip"
|
|
116
|
+
aria-label=${M(R.moreInfoAriaLabel)}
|
|
117
|
+
class="pen-icon"
|
|
118
|
+
.iconName=${"info"}
|
|
119
|
+
.variant=${"icon"}
|
|
120
|
+
></devtools-button>
|
|
121
|
+
${this.#Y({textContent:W(e?$:_),includeSettingsButton:!0})}
|
|
122
|
+
</span>
|
|
123
|
+
`}#X(){this.#$?.value?.hidePopover(),b.ViewManager.ViewManager.instance().showView("chrome-ai")}#J(){const e=!1===navigator.onLine;return k`
|
|
124
|
+
<!-- 'preventDefault' on the AI label button to prevent the label removal on blur -->
|
|
125
|
+
<span
|
|
126
|
+
class="ai-label-disabled-button-wrapper only-pen-wrapper"
|
|
127
|
+
@mousedown=${e=>e.preventDefault()}>
|
|
128
|
+
<button
|
|
129
|
+
class="ai-label-button disabled"
|
|
130
|
+
?disabled=${!0}
|
|
131
|
+
@click=${this.#U}>
|
|
132
|
+
<devtools-icon
|
|
133
|
+
aria-details="info-tooltip"
|
|
134
|
+
class="pen-icon"
|
|
135
|
+
.name=${"pen-spark"}
|
|
136
|
+
.data=${{iconName:"pen-spark",color:"var(--sys-color-state-disabled)",width:"20px"}}>
|
|
137
|
+
</devtools-icon>
|
|
138
|
+
</button>
|
|
139
|
+
${this.#Y({textContent:W(e?F:B),includeSettingsButton:!e})}
|
|
140
|
+
</span>
|
|
141
|
+
`}#Q(){requestAnimationFrame((()=>{this.hasFocus()||this.setLabelEditabilityAndRemoveEmptyLabel(!1)}))}#v(){const e=i.Directives.classMap({"input-field":!0,"fake-focus-state":this.#D});i.render(k`
|
|
142
|
+
<span class="label-parts-wrapper" role="region" aria-label=${M(R.entryLabel)}
|
|
143
|
+
@focusout=${this.#Q}
|
|
144
|
+
>
|
|
145
|
+
<span
|
|
146
|
+
class="label-button-input-wrapper">
|
|
147
|
+
<span
|
|
148
|
+
class=${e}
|
|
149
|
+
role="textbox"
|
|
150
|
+
@focus=${()=>{this.setLabelEditabilityAndRemoveEmptyLabel(!0)}}
|
|
151
|
+
@dblclick=${()=>{this.setLabelEditabilityAndRemoveEmptyLabel(!0)}}
|
|
152
|
+
@keydown=${this.#P}
|
|
153
|
+
@paste=${this.#j}
|
|
154
|
+
@keyup=${()=>{this.#z(),this.#v()}}
|
|
155
|
+
contenteditable=${!!this.#C&&"plaintext-only"}
|
|
156
|
+
jslog=${s.textField("timeline.annotations.entry-label-input").track({keydown:!0,click:!0,change:!0})}
|
|
157
|
+
tabindex="0"
|
|
158
|
+
></span>
|
|
159
|
+
${(()=>{switch(this.#K()){case"hidden":return i.nothing;case"enabled":return this.#Z();case"disabled":return this.#J()}})()}
|
|
160
|
+
</span>
|
|
161
|
+
<svg class="connectorContainer">
|
|
162
|
+
<line/>
|
|
163
|
+
<circle/>
|
|
164
|
+
</svg>
|
|
165
|
+
<div class="entry-highlight-wrapper"></div>
|
|
166
|
+
</span>`,this.#e,{host:this})}};customElements.define("devtools-entry-label-overlay",X);var Z=Object.freeze({__proto__:null,EmptyEntryLabelRemoveEvent:q,EntryLabelChangeEvent:K,EntryLabelOverlay:X,LabelAnnotationsConsentDialogVisiblityChange:Y}),J={cssText:`:host{display:flex;overflow:hidden;flex-direction:column;justify-content:flex-end;width:100%;height:100%;box-sizing:border-box;padding-bottom:5px;background:linear-gradient(180deg,rgb(255 125 210/0%) 0%,rgb(255 125 210/15%) 85%);border-color:var(--ref-palette-pink55);border-width:0 1px 5px;border-style:solid;pointer-events:none}.range-container{display:flex;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;pointer-events:all;user-select:none;color:var(--sys-color-pink);&.labelHidden{user-select:none;pointer-events:none;visibility:hidden}&.offScreenLeft{align-items:flex-start;text-align:left}&.offScreenRight{align-items:flex-end;text-align:right}}.label-text{width:100%;max-width:70px;min-width:fit-content;text-overflow:ellipsis;overflow:hidden;word-break:normal;overflow-wrap:anywhere;margin-bottom:3px;display:-webkit-box;white-space:break-spaces;-webkit-line-clamp:2;-webkit-box-orient:vertical}.label-text[contenteditable='true']{outline:none;box-shadow:0 0 0 1px var(--ref-palette-pink55)}\n/*# sourceURL=${import.meta.resolve("./timeRangeOverlay.css")} */\n`};const Q=new CSSStyleSheet;Q.replaceSync(J.cssText);const ee={timeRange:"Time range"},te=e.i18n.registerUIStrings("panels/timeline/overlays/components/TimeRangeOverlay.ts",ee),ie=e.i18n.getLocalizedString.bind(void 0,te);class ne extends Event{newLabel;static eventName="timerangelabelchange";constructor(e){super(ne.eventName),this.newLabel=e}}class oe extends Event{static eventName="timerangeremoveevent";constructor(){super(oe.eventName)}}let se=class extends HTMLElement{#e=this.attachShadow({mode:"open"});#ee=null;#p=null;#I;#C=!0;#te=null;#ie=null;connectedCallback(){this.#e.adoptedStyleSheets=[Q]}constructor(e){super(),this.#v(),this.#te=this.#e.querySelector(".range-container"),this.#ie=this.#te?.querySelector(".label-text")??null,this.#I=e,this.#ie?(this.#ie.innerText=e,e&&(this.#ie?.setAttribute("aria-label",e),this.#ne(!1))):console.error("`labelBox` element is missing.")}set canvasRect(e){null!==e&&(this.#p&&this.#p.width===e.width&&this.#p.height===e.height||(this.#p=e,this.#v()))}set duration(e){e!==this.#ee&&(this.#ee=e,this.#v())}#oe(e){if(!this.#p)return 0;const{x:t,width:i}=e,n=t+i,o=this.#p.x,s=this.#p.x+this.#p.width,r=Math.max(o,t);return Math.min(s,n)-r}updateLabelPositioning(){if(!this.#te)return;if(!this.#p||!this.#ie)return;const e=this.getBoundingClientRect(),t=this.#e.activeElement===this.#ie,i=this.#te.getBoundingClientRect(),n=this.#oe(e)-9,o=this.#te.querySelector(".duration")??null,s=o?.getBoundingClientRect().width;if(!s)return;const r=n<=s&&!t&&this.#I.length>0;if(this.#te.classList.toggle("labelHidden",r),r)return;const a=(e.width-i.width)/2,l=e.x+a<this.#p.x;this.#te.classList.toggle("offScreenLeft",l);const c=this.#p.x+this.#p.width,h=e.x+a+i.width>c;this.#te.classList.toggle("offScreenRight",h),l?this.#te.style.marginLeft=`${Math.abs(this.#p.x-e.x)+9}px`:h?this.#te.style.marginRight=e.right-this.#p.right+9+"px":this.#te.style.margin="0px",""===this.#ie?.innerText&&this.#ne(!0)}#W(){this.#ie?this.#ie.focus():console.error("`labelBox` element is missing.")}#ne(e){""!==this.#ie?.innerText?(this.#C=e,this.#v(),e&&this.#W()):this.#W()}#z(){const e=this.#ie?.textContent??"";e!==this.#I&&(this.#I=e,this.dispatchEvent(new ne(this.#I)),this.#ie?.setAttribute("aria-label",e))}#P(e){return e.key!==l.KeyboardUtilities.ENTER_KEY&&e.key!==l.KeyboardUtilities.ESCAPE_KEY||(e.stopPropagation(),""===this.#I&&this.dispatchEvent(new oe),this.#ie?.blur(),!1)}#v(){const t=this.#ee?e.TimeUtilities.formatMicroSecondsTime(this.#ee):"";n(o`
|
|
167
|
+
<span class="range-container" role="region" aria-label=${ie(ee.timeRange)}>
|
|
168
|
+
<span
|
|
169
|
+
class="label-text"
|
|
170
|
+
role="textbox"
|
|
171
|
+
@focusout=${()=>this.#ne(!1)}
|
|
172
|
+
@dblclick=${()=>this.#ne(!0)}
|
|
173
|
+
@keydown=${this.#P}
|
|
174
|
+
@keyup=${this.#z}
|
|
175
|
+
contenteditable=${!!this.#C&&"plaintext-only"}
|
|
176
|
+
jslog=${s.textField("timeline.annotations.time-range-label-input").track({keydown:!0,click:!0})}
|
|
177
|
+
></span>
|
|
178
|
+
<span class="duration">${t}</span>
|
|
179
|
+
</span>
|
|
180
|
+
`,this.#e,{host:this}),this.updateLabelPositioning()}};customElements.define("devtools-time-range-overlay",se);var re=Object.freeze({__proto__:null,TimeRangeLabelChangeEvent:ne,TimeRangeOverlay:se,TimeRangeRemoveEvent:oe}),ae={cssText:`.timespan-breakdown-overlay-section{border:solid;border-color:var(--sys-color-on-surface);border-width:4px 1px 0;align-content:flex-start;text-align:center;overflow:hidden;text-overflow:ellipsis;background-image:linear-gradient(180deg,var(--sys-color-on-primary),transparent);height:90%;box-sizing:border-box;padding-top:var(--sys-size-2);:host(.is-below) &{border-top-width:0;border-bottom-width:4px;align-content:flex-end;padding-bottom:var(--sys-size-2);padding-top:0;.timespan-breakdown-overlay-label{display:flex;flex-direction:column-reverse}}}:host{display:flex;overflow:hidden;flex-direction:row;justify-content:flex-end;align-items:flex-end;width:100%;box-sizing:border-box;height:100%;max-height:100px;.timespan-breakdown-overlay-section:first-child{border-left-width:1px!important}.timespan-breakdown-overlay-section:last-child{border-right-width:1px!important}}:host(.is-below){align-items:flex-start}:host(.odd-number-of-sections){.timespan-breakdown-overlay-section:nth-child(even){height:100%}.timespan-breakdown-overlay-section:nth-child(odd){border-left-width:0;border-right-width:0}}:host(.even-number-of-sections){.timespan-breakdown-overlay-section:nth-child(odd){height:100%}.timespan-breakdown-overlay-section:nth-child(even){border-left-width:0;border-right-width:0}}.timespan-breakdown-overlay-label{font-family:var(--default-font-family);font-size:var(--sys-typescale-body2-size);line-height:var(--sys-typescale-body4-line-height);font-weight:var(--ref-typeface-weight-medium);color:var(--sys-color-on-surface);text-align:center;box-sizing:border-box;width:max-content;padding:0 3px;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;.duration-text{font-size:var(--sys-typescale-body4-size);text-overflow:ellipsis;overflow:hidden;text-wrap:nowrap;display:block}.discovery-time-ms{font-weight:var(--ref-typeface-weight-bold)}&.labelHidden{user-select:none;pointer-events:none;visibility:hidden}&.labelTruncated{max-width:100%}&.offScreenLeft{text-align:left}&.offScreenRight{text-align:right}}\n/*# sourceURL=${import.meta.resolve("./timespanBreakdownOverlay.css")} */\n`};const le=new CSSStyleSheet;le.replaceSync(ae.cssText);const{html:ce}=i;let he=class extends HTMLElement{#e=this.attachShadow({mode:"open"});#p=null;#se=null;connectedCallback(){this.#e.adoptedStyleSheets=[le]}set isBelowEntry(e){this.classList.toggle("is-below",e)}set canvasRect(e){this.#p&&e&&this.#p.width===e.width&&this.#p.height===e.height||(this.#p=e,this.#v())}set sections(e){e!==this.#se&&(this.#se=e,this.#v())}checkSectionLabelPositioning(){const e=this.#e.querySelectorAll(".timespan-breakdown-overlay-section");if(!e)return;if(!this.#p)return;const t=new Map;for(const i of e){const e=i.querySelector(".timespan-breakdown-overlay-label");if(!e)continue;const n=i.getBoundingClientRect(),o=e.getBoundingClientRect();t.set(i,{sectionRect:n,labelRect:o,label:e})}for(const i of e){const e=t.get(i);if(!e)break;const{labelRect:n,sectionRect:o,label:s}=e,r=o.width<30,a=o.width-5<=n.width;if(s.classList.toggle("labelHidden",r),s.classList.toggle("labelTruncated",a),r||a)continue;const l=(o.width-n.width)/2,c=o.x+l<this.#p.x;s.classList.toggle("offScreenLeft",c);const h=this.#p.x+this.#p.width,d=o.x+l+n.width>h;if(s.classList.toggle("offScreenRight",d),c)s.style.marginLeft=`${Math.abs(this.#p.x-o.x)+9}px`;else if(d){const e=h-n.width-o.x;s.style.marginLeft=`${e}px`}else s.style.marginLeft=`${l}px`}}renderedSections(){return Array.from(this.#e.querySelectorAll(".timespan-breakdown-overlay-section"))}#re(t){return ce`
|
|
181
|
+
<div class="timespan-breakdown-overlay-section">
|
|
182
|
+
<div class="timespan-breakdown-overlay-label">
|
|
183
|
+
${t.showDuration?ce`
|
|
184
|
+
<span class="duration-text">${e.TimeUtilities.formatMicroSecondsAsMillisFixed(t.bounds.range)}</span>
|
|
185
|
+
`:i.nothing}
|
|
186
|
+
<span class="section-label-text">
|
|
187
|
+
${t.label}
|
|
188
|
+
</span>
|
|
189
|
+
</div>
|
|
190
|
+
</div>`}#v(){this.#se&&(this.classList.toggle("odd-number-of-sections",this.#se.length%2==1),this.classList.toggle("even-number-of-sections",this.#se.length%2==0)),i.render(ce`${this.#se?.map(this.#re)}`,this.#e,{host:this}),this.checkSectionLabelPositioning()}};customElements.define("devtools-timespan-breakdown-overlay",he);var de=Object.freeze({__proto__:null,TimespanBreakdownOverlay:he});export{A as EntriesLinkOverlay,Z as EntryLabelOverlay,re as TimeRangeOverlay,de as TimespanBreakdownOverlay};
|