@react-native/debugger-frontend 0.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILD_INFO +10 -0
- package/README.md +22 -0
- package/dist/third-party/LICENSE +28 -0
- package/dist/third-party/front_end/Images/3d-center.svg +1 -0
- package/dist/third-party/front_end/Images/3d-pan.svg +1 -0
- package/dist/third-party/front_end/Images/3d-rotate.svg +1 -0
- package/dist/third-party/front_end/Images/Images.js +223 -0
- package/dist/third-party/front_end/Images/accelerometer-back.svg +1 -0
- package/dist/third-party/front_end/Images/accelerometer-bottom.png +0 -0
- package/dist/third-party/front_end/Images/accelerometer-front.svg +1 -0
- package/dist/third-party/front_end/Images/accelerometer-left.png +0 -0
- package/dist/third-party/front_end/Images/accelerometer-right.png +0 -0
- package/dist/third-party/front_end/Images/accelerometer-top.png +0 -0
- package/dist/third-party/front_end/Images/align-content-center.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-end.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-space-around.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-space-between.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-space-evenly.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-start.svg +1 -0
- package/dist/third-party/front_end/Images/align-content-stretch.svg +1 -0
- package/dist/third-party/front_end/Images/align-items-baseline.svg +1 -0
- package/dist/third-party/front_end/Images/align-items-center.svg +1 -0
- package/dist/third-party/front_end/Images/align-items-end.svg +1 -0
- package/dist/third-party/front_end/Images/align-items-start.svg +1 -0
- package/dist/third-party/front_end/Images/align-items-stretch.svg +1 -0
- package/dist/third-party/front_end/Images/align-self-center.svg +1 -0
- package/dist/third-party/front_end/Images/align-self-end.svg +1 -0
- package/dist/third-party/front_end/Images/align-self-start.svg +1 -0
- package/dist/third-party/front_end/Images/align-self-stretch.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-down.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-drop-down-dark.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-drop-down-light.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-up-down-circle.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-up-down.svg +1 -0
- package/dist/third-party/front_end/Images/arrow-up.svg +1 -0
- package/dist/third-party/front_end/Images/bell.svg +1 -0
- package/dist/third-party/front_end/Images/bezier-curve-filled.svg +1 -0
- package/dist/third-party/front_end/Images/bin.svg +1 -0
- package/dist/third-party/front_end/Images/bottom-panel-close.svg +1 -0
- package/dist/third-party/front_end/Images/bottom-panel-open.svg +1 -0
- package/dist/third-party/front_end/Images/brackets.svg +1 -0
- package/dist/third-party/front_end/Images/breakpoint-circle.svg +1 -0
- package/dist/third-party/front_end/Images/breakpoint-crossed-filled.svg +1 -0
- package/dist/third-party/front_end/Images/breakpoint-crossed.svg +1 -0
- package/dist/third-party/front_end/Images/brush-filled.svg +1 -0
- package/dist/third-party/front_end/Images/brush.svg +1 -0
- package/dist/third-party/front_end/Images/bug.svg +1 -0
- package/dist/third-party/front_end/Images/bundle.svg +1 -0
- package/dist/third-party/front_end/Images/check-circle.svg +1 -0
- package/dist/third-party/front_end/Images/check-double.svg +1 -0
- package/dist/third-party/front_end/Images/checker.svg +1 -0
- package/dist/third-party/front_end/Images/checkmark.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-double-right.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-down.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-left-dot.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-left.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-right.svg +1 -0
- package/dist/third-party/front_end/Images/chevron-up.svg +1 -0
- package/dist/third-party/front_end/Images/chromeLeft.avif +0 -0
- package/dist/third-party/front_end/Images/chromeMiddle.avif +0 -0
- package/dist/third-party/front_end/Images/chromeRight.avif +0 -0
- package/dist/third-party/front_end/Images/clear-list.svg +1 -0
- package/dist/third-party/front_end/Images/clear.svg +1 -0
- package/dist/third-party/front_end/Images/cloud.svg +1 -0
- package/dist/third-party/front_end/Images/code-circle.svg +1 -0
- package/dist/third-party/front_end/Images/code.svg +1 -0
- package/dist/third-party/front_end/Images/colon.svg +1 -0
- package/dist/third-party/front_end/Images/color-picker-filled.svg +1 -0
- package/dist/third-party/front_end/Images/color-picker.svg +1 -0
- package/dist/third-party/front_end/Images/console-conditional-breakpoint.svg +1 -0
- package/dist/third-party/front_end/Images/console-logpoint.svg +1 -0
- package/dist/third-party/front_end/Images/cookie.svg +1 -0
- package/dist/third-party/front_end/Images/copy.svg +1 -0
- package/dist/third-party/front_end/Images/credit-card.svg +1 -0
- package/dist/third-party/front_end/Images/cross-circle-filled.svg +1 -0
- package/dist/third-party/front_end/Images/cross-circle.svg +1 -0
- package/dist/third-party/front_end/Images/cross.svg +1 -0
- package/dist/third-party/front_end/Images/cssoverview_icons_2x.avif +0 -0
- package/dist/third-party/front_end/Images/custom-typography.svg +1 -0
- package/dist/third-party/front_end/Images/database.svg +1 -0
- package/dist/third-party/front_end/Images/deployed.svg +1 -0
- package/dist/third-party/front_end/Images/device-fold.svg +1 -0
- package/dist/third-party/front_end/Images/devices.svg +1 -0
- package/dist/third-party/front_end/Images/dock-bottom.svg +1 -0
- package/dist/third-party/front_end/Images/dock-left.svg +1 -0
- package/dist/third-party/front_end/Images/dock-right.svg +1 -0
- package/dist/third-party/front_end/Images/dock-window.svg +1 -0
- package/dist/third-party/front_end/Images/document.svg +1 -0
- package/dist/third-party/front_end/Images/dots-horizontal.svg +1 -0
- package/dist/third-party/front_end/Images/dots-vertical.svg +1 -0
- package/dist/third-party/front_end/Images/download.svg +1 -0
- package/dist/third-party/front_end/Images/edit.svg +1 -0
- package/dist/third-party/front_end/Images/empty.svg +1 -0
- package/dist/third-party/front_end/Images/errorWave.svg +1 -0
- package/dist/third-party/front_end/Images/exclamation.svg +1 -0
- package/dist/third-party/front_end/Images/experiment-check.svg +1 -0
- package/dist/third-party/front_end/Images/experiment.svg +1 -0
- package/dist/third-party/front_end/Images/eye.svg +1 -0
- package/dist/third-party/front_end/Images/file-document.svg +1 -0
- package/dist/third-party/front_end/Images/file-font.svg +1 -0
- package/dist/third-party/front_end/Images/file-generic.svg +1 -0
- package/dist/third-party/front_end/Images/file-image.svg +1 -0
- package/dist/third-party/front_end/Images/file-script.svg +1 -0
- package/dist/third-party/front_end/Images/file-snippet.svg +1 -0
- package/dist/third-party/front_end/Images/file-stylesheet.svg +1 -0
- package/dist/third-party/front_end/Images/filter-clear.svg +1 -0
- package/dist/third-party/front_end/Images/filter-filled.svg +1 -0
- package/dist/third-party/front_end/Images/filter.svg +1 -0
- package/dist/third-party/front_end/Images/flex-direction.svg +1 -0
- package/dist/third-party/front_end/Images/flex-no-wrap.svg +1 -0
- package/dist/third-party/front_end/Images/flex-wrap.svg +1 -0
- package/dist/third-party/front_end/Images/flow.svg +1 -0
- package/dist/third-party/front_end/Images/fold-more.svg +1 -0
- package/dist/third-party/front_end/Images/folder.svg +1 -0
- package/dist/third-party/front_end/Images/frame-crossed.svg +1 -0
- package/dist/third-party/front_end/Images/frame-icon.svg +1 -0
- package/dist/third-party/front_end/Images/frame.svg +1 -0
- package/dist/third-party/front_end/Images/gear-filled.svg +1 -0
- package/dist/third-party/front_end/Images/gear.svg +1 -0
- package/dist/third-party/front_end/Images/gears.svg +1 -0
- package/dist/third-party/front_end/Images/heap-snapshot.svg +1 -0
- package/dist/third-party/front_end/Images/heap-snapshots.svg +1 -0
- package/dist/third-party/front_end/Images/help.svg +1 -0
- package/dist/third-party/front_end/Images/iframe-crossed.svg +1 -0
- package/dist/third-party/front_end/Images/iframe.svg +1 -0
- package/dist/third-party/front_end/Images/import.svg +1 -0
- package/dist/third-party/front_end/Images/info-filled.svg +1 -0
- package/dist/third-party/front_end/Images/info.svg +1 -0
- package/dist/third-party/front_end/Images/issue-cross-filled.svg +1 -0
- package/dist/third-party/front_end/Images/issue-exclamation-filled.svg +1 -0
- package/dist/third-party/front_end/Images/issue-questionmark-filled.svg +1 -0
- package/dist/third-party/front_end/Images/issue-text-filled.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-center.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-end.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-space-around.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-space-between.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-space-evenly.svg +1 -0
- package/dist/third-party/front_end/Images/justify-content-start.svg +1 -0
- package/dist/third-party/front_end/Images/justify-items-center.svg +1 -0
- package/dist/third-party/front_end/Images/justify-items-end.svg +1 -0
- package/dist/third-party/front_end/Images/justify-items-start.svg +1 -0
- package/dist/third-party/front_end/Images/justify-items-stretch.svg +1 -0
- package/dist/third-party/front_end/Images/keyboard-pen.svg +1 -0
- package/dist/third-party/front_end/Images/large-arrow-right-filled.svg +1 -0
- package/dist/third-party/front_end/Images/largeIcons.svg +2 -0
- package/dist/third-party/front_end/Images/layers-filled.svg +1 -0
- package/dist/third-party/front_end/Images/layers.svg +1 -0
- package/dist/third-party/front_end/Images/left-panel-close.svg +1 -0
- package/dist/third-party/front_end/Images/left-panel-open.svg +1 -0
- package/dist/third-party/front_end/Images/lighthouse_logo.svg +1 -0
- package/dist/third-party/front_end/Images/list.svg +1 -0
- package/dist/third-party/front_end/Images/mediumIcons.svg +1 -0
- package/dist/third-party/front_end/Images/memory.svg +1 -0
- package/dist/third-party/front_end/Images/minus.svg +1 -0
- package/dist/third-party/front_end/Images/minus_icon.svg +1 -0
- package/dist/third-party/front_end/Images/navigationControls.png +0 -0
- package/dist/third-party/front_end/Images/navigationControls_2x.png +0 -0
- package/dist/third-party/front_end/Images/network-settings.svg +1 -0
- package/dist/third-party/front_end/Images/nodeIcon.avif +0 -0
- package/dist/third-party/front_end/Images/node_search_icon.svg +1 -0
- package/dist/third-party/front_end/Images/open-externally.svg +1 -0
- package/dist/third-party/front_end/Images/pause.svg +1 -0
- package/dist/third-party/front_end/Images/performance.svg +1 -0
- package/dist/third-party/front_end/Images/person.svg +1 -0
- package/dist/third-party/front_end/Images/play.svg +1 -0
- package/dist/third-party/front_end/Images/plus.svg +1 -0
- package/dist/third-party/front_end/Images/popoverArrows.png +0 -0
- package/dist/third-party/front_end/Images/popup.svg +1 -0
- package/dist/third-party/front_end/Images/preview_feature_video_thumbnail.svg +1 -0
- package/dist/third-party/front_end/Images/profile.svg +1 -0
- package/dist/third-party/front_end/Images/react_native/welcomeIcon.png +0 -0
- package/dist/third-party/front_end/Images/record-start.svg +1 -0
- package/dist/third-party/front_end/Images/record-stop.svg +1 -0
- package/dist/third-party/front_end/Images/redo.svg +1 -0
- package/dist/third-party/front_end/Images/refresh.svg +1 -0
- package/dist/third-party/front_end/Images/replace.svg +1 -0
- package/dist/third-party/front_end/Images/replay.svg +1 -0
- package/dist/third-party/front_end/Images/resizeDiagonal.svg +1 -0
- package/dist/third-party/front_end/Images/resizeHorizontal.svg +1 -0
- package/dist/third-party/front_end/Images/resizeVertical.svg +1 -0
- package/dist/third-party/front_end/Images/resume.svg +1 -0
- package/dist/third-party/front_end/Images/review.svg +1 -0
- package/dist/third-party/front_end/Images/right-panel-close.svg +1 -0
- package/dist/third-party/front_end/Images/right-panel-open.svg +1 -0
- package/dist/third-party/front_end/Images/screen-rotation.svg +1 -0
- package/dist/third-party/front_end/Images/search.svg +1 -0
- package/dist/third-party/front_end/Images/securityIcons.svg +1 -0
- package/dist/third-party/front_end/Images/select-element.svg +1 -0
- package/dist/third-party/front_end/Images/settings_14x14_icon.svg +1 -0
- package/dist/third-party/front_end/Images/shadow.svg +1 -0
- package/dist/third-party/front_end/Images/smallIcons.svg +1 -0
- package/dist/third-party/front_end/Images/snippet.svg +1 -0
- package/dist/third-party/front_end/Images/star.svg +1 -0
- package/dist/third-party/front_end/Images/step-into.svg +1 -0
- package/dist/third-party/front_end/Images/step-out.svg +1 -0
- package/dist/third-party/front_end/Images/step-over.svg +1 -0
- package/dist/third-party/front_end/Images/step.svg +1 -0
- package/dist/third-party/front_end/Images/stop.svg +1 -0
- package/dist/third-party/front_end/Images/symbol.svg +1 -0
- package/dist/third-party/front_end/Images/sync.svg +1 -0
- package/dist/third-party/front_end/Images/table.svg +1 -0
- package/dist/third-party/front_end/Images/toolbarResizerVertical.png +0 -0
- package/dist/third-party/front_end/Images/top-panel-close.svg +1 -0
- package/dist/third-party/front_end/Images/top-panel-open.svg +1 -0
- package/dist/third-party/front_end/Images/touchCursor.png +0 -0
- package/dist/third-party/front_end/Images/touchCursor_2x.png +0 -0
- package/dist/third-party/front_end/Images/triangle-bottom-right.svg +1 -0
- package/dist/third-party/front_end/Images/triangle-down.svg +1 -0
- package/dist/third-party/front_end/Images/triangle-left.svg +1 -0
- package/dist/third-party/front_end/Images/triangle-right.svg +1 -0
- package/dist/third-party/front_end/Images/triangle-up.svg +1 -0
- package/dist/third-party/front_end/Images/undo.svg +1 -0
- package/dist/third-party/front_end/Images/warning-filled.svg +1 -0
- package/dist/third-party/front_end/Images/warning.svg +1 -0
- package/dist/third-party/front_end/Images/warning_icon.svg +1 -0
- package/dist/third-party/front_end/Images/watch.svg +1 -0
- package/dist/third-party/front_end/Images/whatsnew.avif +0 -0
- package/dist/third-party/front_end/Images/width.svg +1 -0
- package/dist/third-party/front_end/Tests.js +1662 -0
- package/dist/third-party/front_end/core/common/common-legacy.js +1 -0
- package/dist/third-party/front_end/core/common/common.js +1 -0
- package/dist/third-party/front_end/core/dom_extension/dom_extension.js +1 -0
- package/dist/third-party/front_end/core/host/host-legacy.js +1 -0
- package/dist/third-party/front_end/core/host/host.js +1 -0
- package/dist/third-party/front_end/core/i18n/i18n.js +1 -0
- package/dist/third-party/front_end/core/i18n/locales/en-US.json +1 -0
- package/dist/third-party/front_end/core/i18n/locales/zh.json +1 -0
- package/dist/third-party/front_end/core/platform/platform.js +1 -0
- package/dist/third-party/front_end/core/protocol_client/protocol_client-legacy.js +1 -0
- package/dist/third-party/front_end/core/protocol_client/protocol_client.js +1 -0
- package/dist/third-party/front_end/core/root/root-legacy.js +1 -0
- package/dist/third-party/front_end/core/root/root.js +1 -0
- package/dist/third-party/front_end/core/sdk/sdk-legacy.js +1 -0
- package/dist/third-party/front_end/core/sdk/sdk-meta.js +1 -0
- package/dist/third-party/front_end/core/sdk/sdk.js +1 -0
- package/dist/third-party/front_end/device_mode_emulation_frame.html +20 -0
- package/dist/third-party/front_end/devtools_app.html +20 -0
- package/dist/third-party/front_end/devtools_compatibility.js +1595 -0
- package/dist/third-party/front_end/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/dist/third-party/front_end/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/dist/third-party/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
- package/dist/third-party/front_end/entrypoints/devtools_app/devtools_app.js +1 -0
- package/dist/third-party/front_end/entrypoints/formatter_worker/FormatterActions.js +1 -0
- package/dist/third-party/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
- package/dist/third-party/front_end/entrypoints/formatter_worker/formatter_worker.js +1 -0
- package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
- package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
- package/dist/third-party/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
- package/dist/third-party/front_end/entrypoints/inspector/inspector.js +1 -0
- package/dist/third-party/front_end/entrypoints/inspector_main/inspector_main-meta.js +1 -0
- package/dist/third-party/front_end/entrypoints/inspector_main/inspector_main.js +1 -0
- package/dist/third-party/front_end/entrypoints/js_app/js_app.js +1 -0
- package/dist/third-party/front_end/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
- package/dist/third-party/front_end/entrypoints/main/main-legacy.js +1 -0
- package/dist/third-party/front_end/entrypoints/main/main-meta.js +1 -0
- package/dist/third-party/front_end/entrypoints/main/main.js +1 -0
- package/dist/third-party/front_end/entrypoints/ndb_app/ndb_app.js +1 -0
- package/dist/third-party/front_end/entrypoints/node_app/node_app.js +1 -0
- package/dist/third-party/front_end/entrypoints/rn_inspector/rn_inspector.js +1 -0
- package/dist/third-party/front_end/entrypoints/shell/shell.js +1 -0
- package/dist/third-party/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
- package/dist/third-party/front_end/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
- package/dist/third-party/front_end/entrypoints/worker_app/worker_app.js +1 -0
- package/dist/third-party/front_end/inspector.html +20 -0
- package/dist/third-party/front_end/integration_test_runner.html +40 -0
- package/dist/third-party/front_end/js_app.html +20 -0
- package/dist/third-party/front_end/legacy_test_runner/legacy_test_runner.js +36 -0
- package/dist/third-party/front_end/legacy_test_runner/test_runner/test_runner.js +1 -0
- package/dist/third-party/front_end/models/bindings/bindings-legacy.js +1 -0
- package/dist/third-party/front_end/models/bindings/bindings.js +1 -0
- package/dist/third-party/front_end/models/breakpoints/breakpoints-legacy.js +1 -0
- package/dist/third-party/front_end/models/breakpoints/breakpoints.js +1 -0
- package/dist/third-party/front_end/models/emulation/emulation.js +1 -0
- package/dist/third-party/front_end/models/extensions/extensions-legacy.js +1 -0
- package/dist/third-party/front_end/models/extensions/extensions.js +1 -0
- package/dist/third-party/front_end/models/formatter/formatter-legacy.js +1 -0
- package/dist/third-party/front_end/models/formatter/formatter.js +1 -0
- package/dist/third-party/front_end/models/har/har.js +1 -0
- package/dist/third-party/front_end/models/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
- package/dist/third-party/front_end/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedTreatedAsLaxRead.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedTreatedAsLaxSet.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinFirstPartySet.md +4 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericCrossOriginPortalPostMessageError.md +3 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
- package/dist/third-party/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
- package/dist/third-party/front_end/models/issues_manager/issues_manager.js +1 -0
- package/dist/third-party/front_end/models/javascript_metadata/javascript_metadata.js +1 -0
- package/dist/third-party/front_end/models/logs/logs-meta.js +1 -0
- package/dist/third-party/front_end/models/logs/logs.js +1 -0
- package/dist/third-party/front_end/models/persistence/persistence-legacy.js +1 -0
- package/dist/third-party/front_end/models/persistence/persistence-meta.js +1 -0
- package/dist/third-party/front_end/models/persistence/persistence.js +1 -0
- package/dist/third-party/front_end/models/source_map_scopes/source_map_scopes.js +1 -0
- package/dist/third-party/front_end/models/text_utils/text_utils-legacy.js +1 -0
- package/dist/third-party/front_end/models/text_utils/text_utils.js +1 -0
- package/dist/third-party/front_end/models/timeline_model/timeline_model-legacy.js +1 -0
- package/dist/third-party/front_end/models/timeline_model/timeline_model.js +1 -0
- package/dist/third-party/front_end/models/trace/extras/extras.js +1 -0
- package/dist/third-party/front_end/models/trace/handlers/handlers.js +1 -0
- package/dist/third-party/front_end/models/trace/helpers/helpers.js +1 -0
- package/dist/third-party/front_end/models/trace/trace.js +1 -0
- package/dist/third-party/front_end/models/trace/types/types.js +1 -0
- package/dist/third-party/front_end/models/workspace/workspace-legacy.js +1 -0
- package/dist/third-party/front_end/models/workspace/workspace.js +1 -0
- package/dist/third-party/front_end/models/workspace_diff/workspace_diff-legacy.js +1 -0
- package/dist/third-party/front_end/models/workspace_diff/workspace_diff.js +1 -0
- package/dist/third-party/front_end/ndb_app.html +20 -0
- package/dist/third-party/front_end/node_app.html +20 -0
- package/dist/third-party/front_end/panels/accessibility/accessibility-legacy.js +1 -0
- package/dist/third-party/front_end/panels/accessibility/accessibility-meta.js +1 -0
- package/dist/third-party/front_end/panels/accessibility/accessibility.js +1 -0
- package/dist/third-party/front_end/panels/animation/animation-legacy.js +1 -0
- package/dist/third-party/front_end/panels/animation/animation-meta.js +1 -0
- package/dist/third-party/front_end/panels/animation/animation.js +1 -0
- package/dist/third-party/front_end/panels/application/application-legacy.js +1 -0
- package/dist/third-party/front_end/panels/application/application-meta.js +1 -0
- package/dist/third-party/front_end/panels/application/application.js +1 -0
- package/dist/third-party/front_end/panels/application/components/components.js +1 -0
- package/dist/third-party/front_end/panels/application/preloading/components/components.js +1 -0
- package/dist/third-party/front_end/panels/browser_debugger/browser_debugger-legacy.js +1 -0
- package/dist/third-party/front_end/panels/browser_debugger/browser_debugger-meta.js +1 -0
- package/dist/third-party/front_end/panels/browser_debugger/browser_debugger.js +1 -0
- package/dist/third-party/front_end/panels/changes/changes-legacy.js +1 -0
- package/dist/third-party/front_end/panels/changes/changes-meta.js +1 -0
- package/dist/third-party/front_end/panels/changes/changes.js +1 -0
- package/dist/third-party/front_end/panels/console/console-legacy.js +1 -0
- package/dist/third-party/front_end/panels/console/console-meta.js +1 -0
- package/dist/third-party/front_end/panels/console/console.js +6 -0
- package/dist/third-party/front_end/panels/console_counters/console_counters-meta.js +1 -0
- package/dist/third-party/front_end/panels/console_counters/console_counters.js +1 -0
- package/dist/third-party/front_end/panels/coverage/coverage-legacy.js +1 -0
- package/dist/third-party/front_end/panels/coverage/coverage-meta.js +1 -0
- package/dist/third-party/front_end/panels/coverage/coverage.js +1 -0
- package/dist/third-party/front_end/panels/css_overview/components/components.js +1 -0
- package/dist/third-party/front_end/panels/css_overview/css_overview-meta.js +1 -0
- package/dist/third-party/front_end/panels/css_overview/css_overview.js +144 -0
- package/dist/third-party/front_end/panels/developer_resources/developer_resources-meta.js +1 -0
- package/dist/third-party/front_end/panels/developer_resources/developer_resources.js +1 -0
- package/dist/third-party/front_end/panels/elements/components/components.js +1 -0
- package/dist/third-party/front_end/panels/elements/elements-legacy.js +1 -0
- package/dist/third-party/front_end/panels/elements/elements-meta.js +1 -0
- package/dist/third-party/front_end/panels/elements/elements.js +1 -0
- package/dist/third-party/front_end/panels/emulation/components/components.js +22 -0
- package/dist/third-party/front_end/panels/emulation/emulation-legacy.js +1 -0
- package/dist/third-party/front_end/panels/emulation/emulation-meta.js +1 -0
- package/dist/third-party/front_end/panels/emulation/emulation.js +1 -0
- package/dist/third-party/front_end/panels/event_listeners/event_listeners.js +1 -0
- package/dist/third-party/front_end/panels/issues/components/components.js +1 -0
- package/dist/third-party/front_end/panels/issues/issues-meta.js +1 -0
- package/dist/third-party/front_end/panels/issues/issues.js +1 -0
- package/dist/third-party/front_end/panels/js_profiler/js_profiler-meta.js +1 -0
- package/dist/third-party/front_end/panels/js_profiler/js_profiler.js +1 -0
- package/dist/third-party/front_end/panels/layer_viewer/layer_viewer-legacy.js +1 -0
- package/dist/third-party/front_end/panels/layer_viewer/layer_viewer-meta.js +1 -0
- package/dist/third-party/front_end/panels/layer_viewer/layer_viewer.js +1 -0
- package/dist/third-party/front_end/panels/layers/layers-meta.js +1 -0
- package/dist/third-party/front_end/panels/layers/layers.js +1 -0
- package/dist/third-party/front_end/panels/lighthouse/lighthouse-legacy.js +1 -0
- package/dist/third-party/front_end/panels/lighthouse/lighthouse-meta.js +1 -0
- package/dist/third-party/front_end/panels/lighthouse/lighthouse.js +66 -0
- package/dist/third-party/front_end/panels/media/media-meta.js +1 -0
- package/dist/third-party/front_end/panels/media/media.js +25 -0
- package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling-legacy.js +1 -0
- package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
- package/dist/third-party/front_end/panels/mobile_throttling/mobile_throttling.js +1 -0
- package/dist/third-party/front_end/panels/network/components/components.js +1 -0
- package/dist/third-party/front_end/panels/network/forward/forward.js +1 -0
- package/dist/third-party/front_end/panels/network/network-legacy.js +1 -0
- package/dist/third-party/front_end/panels/network/network-meta.js +1 -0
- package/dist/third-party/front_end/panels/network/network.js +1 -0
- package/dist/third-party/front_end/panels/performance_monitor/performance_monitor-meta.js +1 -0
- package/dist/third-party/front_end/panels/performance_monitor/performance_monitor.js +1 -0
- package/dist/third-party/front_end/panels/profiler/profiler-legacy.js +1 -0
- package/dist/third-party/front_end/panels/profiler/profiler-meta.js +1 -0
- package/dist/third-party/front_end/panels/profiler/profiler.js +7 -0
- package/dist/third-party/front_end/panels/protocol_monitor/components/components.js +1 -0
- package/dist/third-party/front_end/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
- package/dist/third-party/front_end/panels/protocol_monitor/protocol_monitor.js +1 -0
- package/dist/third-party/front_end/panels/recorder/components/components.js +1 -0
- package/dist/third-party/front_end/panels/recorder/controllers/controllers.js +1 -0
- package/dist/third-party/front_end/panels/recorder/converters/converters.js +1 -0
- package/dist/third-party/front_end/panels/recorder/extensions/extensions.js +1 -0
- package/dist/third-party/front_end/panels/recorder/injected/injected.generated.js +1 -0
- package/dist/third-party/front_end/panels/recorder/injected/injected.js +1 -0
- package/dist/third-party/front_end/panels/recorder/models/models.js +1 -0
- package/dist/third-party/front_end/panels/recorder/recorder-actions.js +1 -0
- package/dist/third-party/front_end/panels/recorder/recorder-meta.js +1 -0
- package/dist/third-party/front_end/panels/recorder/recorder.js +1 -0
- package/dist/third-party/front_end/panels/recorder/util/util.js +1 -0
- package/dist/third-party/front_end/panels/rn_welcome/rn_welcome-meta.js +1 -0
- package/dist/third-party/front_end/panels/rn_welcome/rn_welcome.js +1 -0
- package/dist/third-party/front_end/panels/screencast/screencast-meta.js +1 -0
- package/dist/third-party/front_end/panels/screencast/screencast.js +1 -0
- package/dist/third-party/front_end/panels/search/search-legacy.js +1 -0
- package/dist/third-party/front_end/panels/search/search.js +1 -0
- package/dist/third-party/front_end/panels/security/security-legacy.js +1 -0
- package/dist/third-party/front_end/panels/security/security-meta.js +1 -0
- package/dist/third-party/front_end/panels/security/security.js +1 -0
- package/dist/third-party/front_end/panels/sensors/sensors-meta.js +1 -0
- package/dist/third-party/front_end/panels/sensors/sensors.js +1 -0
- package/dist/third-party/front_end/panels/settings/components/components.js +1 -0
- package/dist/third-party/front_end/panels/settings/emulation/components/components.js +1 -0
- package/dist/third-party/front_end/panels/settings/emulation/emulation-meta.js +1 -0
- package/dist/third-party/front_end/panels/settings/emulation/emulation.js +1 -0
- package/dist/third-party/front_end/panels/settings/emulation/utils/utils.js +1 -0
- package/dist/third-party/front_end/panels/settings/settings-legacy.js +1 -0
- package/dist/third-party/front_end/panels/settings/settings-meta.js +1 -0
- package/dist/third-party/front_end/panels/settings/settings.js +1 -0
- package/dist/third-party/front_end/panels/snippets/snippets-legacy.js +1 -0
- package/dist/third-party/front_end/panels/snippets/snippets.js +1 -0
- package/dist/third-party/front_end/panels/sources/components/components.js +1 -0
- package/dist/third-party/front_end/panels/sources/sources-legacy.js +1 -0
- package/dist/third-party/front_end/panels/sources/sources-meta.js +1 -0
- package/dist/third-party/front_end/panels/sources/sources.js +1 -0
- package/dist/third-party/front_end/panels/timeline/timeline-legacy.js +1 -0
- package/dist/third-party/front_end/panels/timeline/timeline-meta.js +1 -0
- package/dist/third-party/front_end/panels/timeline/timeline.js +1 -0
- package/dist/third-party/front_end/panels/utils/utils.js +1 -0
- package/dist/third-party/front_end/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
- package/dist/third-party/front_end/panels/web_audio/web_audio-legacy.js +1 -0
- package/dist/third-party/front_end/panels/web_audio/web_audio-meta.js +1 -0
- package/dist/third-party/front_end/panels/web_audio/web_audio.js +1 -0
- package/dist/third-party/front_end/panels/webauthn/webauthn-meta.js +1 -0
- package/dist/third-party/front_end/panels/webauthn/webauthn.js +1 -0
- package/dist/third-party/front_end/rn_inspector.html +20 -0
- package/dist/third-party/front_end/services/puppeteer/puppeteer.js +1 -0
- package/dist/third-party/front_end/services/tracing/tracing.js +1 -0
- package/dist/third-party/front_end/services/window_bounds/window_bounds.js +1 -0
- package/dist/third-party/front_end/third_party/acorn/acorn.js +1 -0
- package/dist/third-party/front_end/third_party/chromium/client-variations/client-variations.js +1 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/angular.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/codemirror.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/cpp.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/java.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/json.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/legacy.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/less.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/markdown.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/php.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/python.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/sass.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/svelte.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/vue.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/wast.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/chunk/xml.js +2 -0
- package/dist/third-party/front_end/third_party/codemirror.next/codemirror.next.js +2 -0
- package/dist/third-party/front_end/third_party/diff/diff-legacy.js +1 -0
- package/dist/third-party/front_end/third_party/diff/diff.js +1 -0
- package/dist/third-party/front_end/third_party/i18n/i18n.js +1 -0
- package/dist/third-party/front_end/third_party/intl-messageformat/intl-messageformat.js +15 -0
- package/dist/third-party/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1297 -0
- package/dist/third-party/front_end/third_party/lighthouse/report/report.js +222 -0
- package/dist/third-party/front_end/third_party/lit/lit.js +98 -0
- package/dist/third-party/front_end/third_party/marked/marked.js +1 -0
- package/dist/third-party/front_end/third_party/puppeteer/puppeteer.js +1 -0
- package/dist/third-party/front_end/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
- package/dist/third-party/front_end/third_party/wasmparser/wasmparser.js +1 -0
- package/dist/third-party/front_end/ui/components/adorners/adorners.js +1 -0
- package/dist/third-party/front_end/ui/components/buttons/buttons.js +1 -0
- package/dist/third-party/front_end/ui/components/chrome_link/chrome_link.js +1 -0
- package/dist/third-party/front_end/ui/components/code_highlighter/code_highlighter.js +1 -0
- package/dist/third-party/front_end/ui/components/data_grid/data_grid.js +1 -0
- package/dist/third-party/front_end/ui/components/dialogs/dialogs.js +1 -0
- package/dist/third-party/front_end/ui/components/diff_view/diff_view.js +1 -0
- package/dist/third-party/front_end/ui/components/expandable_list/expandable_list.js +1 -0
- package/dist/third-party/front_end/ui/components/helpers/helpers.js +1 -0
- package/dist/third-party/front_end/ui/components/icon_button/icon_button.js +1 -0
- package/dist/third-party/front_end/ui/components/input/input.js +1 -0
- package/dist/third-party/front_end/ui/components/issue_counter/issue_counter.js +1 -0
- package/dist/third-party/front_end/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
- package/dist/third-party/front_end/ui/components/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
- package/dist/third-party/front_end/ui/components/linear_memory_inspector/linear_memory_inspector.js +1 -0
- package/dist/third-party/front_end/ui/components/linkifier/linkifier.js +1 -0
- package/dist/third-party/front_end/ui/components/markdown_view/markdown_view.js +1 -0
- package/dist/third-party/front_end/ui/components/menus/menus.js +1 -0
- package/dist/third-party/front_end/ui/components/node_text/node_text.js +1 -0
- package/dist/third-party/front_end/ui/components/panel_feedback/panel_feedback.js +1 -0
- package/dist/third-party/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.js +1 -0
- package/dist/third-party/front_end/ui/components/render_coordinator/render_coordinator.js +1 -0
- package/dist/third-party/front_end/ui/components/report_view/report_view.js +1 -0
- package/dist/third-party/front_end/ui/components/request_link_icon/request_link_icon.js +1 -0
- package/dist/third-party/front_end/ui/components/settings/settings.js +1 -0
- package/dist/third-party/front_end/ui/components/srgb_overlay/srgb_overlay.js +1 -0
- package/dist/third-party/front_end/ui/components/survey_link/survey_link.js +1 -0
- package/dist/third-party/front_end/ui/components/text_editor/text_editor.js +1 -0
- package/dist/third-party/front_end/ui/components/text_prompt/text_prompt.js +1 -0
- package/dist/third-party/front_end/ui/components/tree_outline/tree_outline.js +1 -0
- package/dist/third-party/front_end/ui/components/two_states_counter/two_states_counter.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/color_picker/color_picker-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/color_picker/color_picker.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/cookie_table/cookie_table-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/cookie_table/cookie_table.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/data_grid/data_grid-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/data_grid/data_grid.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/inline_editor/inline_editor-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/inline_editor/inline_editor.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/object_ui/object_ui.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/perf_ui/perf_ui.js +12 -0
- package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/quick_open/quick_open.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/source_frame/source_frame.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/utils/utils-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/components/utils/utils.js +1 -0
- package/dist/third-party/front_end/ui/legacy/legacy-legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/legacy.js +1 -0
- package/dist/third-party/front_end/ui/legacy/theme_support/theme_support.js +1 -0
- package/dist/third-party/front_end/ui/legacy/utils/utils.js +1 -0
- package/dist/third-party/front_end/ui/lit-html/lit-html.js +1 -0
- package/dist/third-party/front_end/worker_app.html +20 -0
- package/index.js +15 -0
- package/package.json +25 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import*as e from"../../../models/emulation/emulation.js";import*as t from"../../../ui/components/helpers/helpers.js";import*as i from"../../../ui/lit-html/lit-html.js";import*as s from"../../../ui/legacy/legacy.js";class a extends Event{size;static eventName="sizechanged";constructor(e){super(a.eventName),this.size=e}}function n(e){return Number(e.target.value)}class l extends HTMLElement{#e=this.attachShadow({mode:"open"});#t=!1;#i="0";#s="";#a;static litTagName=i.literal`device-mode-emulation-size-input`;constructor(e){super(),this.#a=e}connectedCallback(){this.render()}set disabled(e){this.#t=e,this.render()}set size(e){this.#i=e,this.render()}set placeholder(e){this.#s=e,this.render()}render(){i.render(i.html` <style> input {
|
|
2
|
+
/*
|
|
3
|
+
* 4 characters for the maximum size of the value,
|
|
4
|
+
* 2 characters for the width of the step-buttons,
|
|
5
|
+
* 2 pixels padding between the characters and the
|
|
6
|
+
* step-buttons.
|
|
7
|
+
*/
|
|
8
|
+
width: calc(4ch + 2ch + 2px);
|
|
9
|
+
max-height: 18px;
|
|
10
|
+
margin: 0 2px;
|
|
11
|
+
text-align: center;
|
|
12
|
+
font-size: inherit;
|
|
13
|
+
font-family: inherit;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
input:disabled {
|
|
17
|
+
user-select: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
input:focus::-webkit-input-placeholder {
|
|
21
|
+
color: transparent;
|
|
22
|
+
} </style> <input type="number" max="${e.DeviceModeModel.MaxDeviceSize}" min="${e.DeviceModeModel.MinDeviceSize}" maxlength="4" title="${this.#a}" placeholder="${this.#s}" ?disabled="${this.#t}" .value="${this.#i}" @change="${this.#n}" @keydown="${this.#l}"> `,this.#e,{host:this})}#n(e){this.dispatchEvent(new a(n(e)))}#l(t){let i=s.UIUtils.modifiedFloatNumber(n(t),t);null!==i&&(i=Math.min(i,e.DeviceModeModel.MaxDeviceSize),i=Math.max(i,e.DeviceModeModel.MinDeviceSize),t.preventDefault(),t.target.value=String(i),this.dispatchEvent(new a(i)))}}t.CustomElements.defineComponent("device-mode-emulation-size-input",l);var r=Object.freeze({__proto__:null,SizeInputElement:l});export{r as DeviceSizeInputElement};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../models/emulation/emulation.js";import*as a from"./emulation.js";self.Emulation=self.Emulation||{},Emulation=Emulation||{},Emulation.AdvancedApp=a.AdvancedApp.AdvancedApp,Emulation.AdvancedAppProvider=a.AdvancedApp.AdvancedAppProvider,Emulation.DeviceModeModel=e.DeviceModeModel.DeviceModeModel,Emulation.DeviceModeModel.Type=e.DeviceModeModel.Type,Emulation.DeviceModeView=a.DeviceModeView.DeviceModeView,Emulation.DeviceModeWrapper=a.DeviceModeWrapper.DeviceModeWrapper,Emulation.DeviceModeWrapper.ActionDelegate=a.DeviceModeWrapper.ActionDelegate,Emulation.EmulatedDevice=e.EmulatedDevices.EmulatedDevice,Emulation.EmulatedDevicesList=e.EmulatedDevices.EmulatedDevicesList,Emulation.InspectedPagePlaceholder=a.InspectedPagePlaceholder.InspectedPagePlaceholder,Emulation.InspectedPagePlaceholder.instance=a.InspectedPagePlaceholder.InspectedPagePlaceholder.instance,Emulation.MediaQueryInspector=a.MediaQueryInspector.MediaQueryInspector;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../core/common/common.js";import*as t from"../../core/root/root.js";import*as i from"../../ui/legacy/legacy.js";import*as o from"../../core/i18n/i18n.js";const n={toggleDeviceToolbar:"Toggle device toolbar",captureScreenshot:"Capture screenshot",captureFullSizeScreenshot:"Capture full size screenshot",captureNodeScreenshot:"Capture node screenshot",showMediaQueries:"Show media queries",device:"device",hideMediaQueries:"Hide media queries",showRulers:"Show rulers in the Device Mode toolbar",hideRulers:"Hide rulers in the Device Mode toolbar",showDeviceFrame:"Show device frame",hideDeviceFrame:"Hide device frame"},a=o.i18n.registerUIStrings("panels/emulation/emulation-meta.ts",n),r=o.i18n.getLazilyComputedLocalizedString.bind(void 0,a);let c;async function s(){return c||(c=await import("./emulation.js")),c}i.ActionRegistration.registerActionExtension({category:i.ActionRegistration.ActionCategory.MOBILE,actionId:"emulation.toggle-device-mode",toggleable:!0,loadActionDelegate:async()=>(await s()).DeviceModeWrapper.ActionDelegate.instance(),condition:t.Runtime.ConditionName.CAN_DOCK,title:r(n.toggleDeviceToolbar),iconClass:"devices",bindings:[{platform:"windows,linux",shortcut:"Shift+Ctrl+M"},{platform:"mac",shortcut:"Shift+Meta+M"}]}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-screenshot",category:i.ActionRegistration.ActionCategory.SCREENSHOT,loadActionDelegate:async()=>(await s()).DeviceModeWrapper.ActionDelegate.instance(),condition:t.Runtime.ConditionName.CAN_DOCK,title:r(n.captureScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-full-height-screenshot",category:i.ActionRegistration.ActionCategory.SCREENSHOT,loadActionDelegate:async()=>(await s()).DeviceModeWrapper.ActionDelegate.instance(),condition:t.Runtime.ConditionName.CAN_DOCK,title:r(n.captureFullSizeScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-node-screenshot",category:i.ActionRegistration.ActionCategory.SCREENSHOT,loadActionDelegate:async()=>(await s()).DeviceModeWrapper.ActionDelegate.instance(),condition:t.Runtime.ConditionName.CAN_DOCK,title:r(n.captureNodeScreenshot)}),e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.MOBILE,settingName:"showMediaQueryInspector",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!1,options:[{value:!0,title:r(n.showMediaQueries)},{value:!1,title:r(n.hideMediaQueries)}],tags:[r(n.device)]}),e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.MOBILE,settingName:"emulation.showRulers",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!1,options:[{value:!0,title:r(n.showRulers)},{value:!1,title:r(n.hideRulers)}],tags:[r(n.device)]}),e.Settings.registerSettingExtension({category:e.Settings.SettingCategory.MOBILE,settingName:"emulation.showDeviceOutline",settingType:e.Settings.SettingType.BOOLEAN,defaultValue:!1,options:[{value:!0,title:r(n.showDeviceFrame)},{value:!1,title:r(n.hideDeviceFrame)}],tags:[r(n.device)]}),i.Toolbar.registerToolbarItem({actionId:"emulation.toggle-device-mode",condition:t.Runtime.ConditionName.CAN_DOCK,location:i.Toolbar.ToolbarItemLocation.MAIN_TOOLBAR_LEFT,order:1,showLabel:void 0,loadItem:void 0,separator:void 0}),e.AppProvider.registerAppProvider({loadAppProvider:async()=>(await s()).AdvancedApp.AdvancedAppProvider.instance(),condition:t.Runtime.ConditionName.CAN_DOCK,order:0}),i.ContextMenu.registerItem({location:i.ContextMenu.ItemLocation.DEVICE_MODE_MENU_SAVE,order:12,actionId:"emulation.capture-screenshot"}),i.ContextMenu.registerItem({location:i.ContextMenu.ItemLocation.DEVICE_MODE_MENU_SAVE,order:13,actionId:"emulation.capture-full-height-screenshot"});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../core/host/host.js";import*as t from"../../ui/legacy/legacy.js";import*as i from"../../ui/legacy/theme_support/theme_support.js";import*as o from"../../core/root/root.js";import*as s from"../../core/sdk/sdk.js";import*as r from"../../models/emulation/emulation.js";import*as n from"../../core/common/common.js";import*as a from"../../core/i18n/i18n.js";import*as d from"../../core/platform/platform.js";import*as l from"../mobile_throttling/mobile_throttling.js";import*as c from"./components/components.js";import*as h from"../../models/bindings/bindings.js";var m={cssContent:".device-mode-x{margin:0 1px;font-size:16px}.device-mode-empty-toolbar-element{width:0}"};const p={dimensions:"Dimensions",width:"Width",heightLeaveEmptyForFull:"Height (leave empty for full)",zoom:"Zoom",devicePixelRatio:"Device pixel ratio",deviceType:"Device type",experimentalWebPlatformFeature:'"`Experimental Web Platform Feature`" flag is enabled. Click to disable it.',experimentalWebPlatformFeatureFlag:'"`Experimental Web Platform Feature`" flag is disabled. Click to enable it.',moreOptions:"More options",fitToWindowF:"Fit to window ({PH1}%)",autoadjustZoom:"Auto-adjust zoom",defaultF:"Default: {PH1}",hideDeviceFrame:"Hide device frame",showDeviceFrame:"Show device frame",hideMediaQueries:"Hide media queries",showMediaQueries:"Show media queries",hideRulers:"Hide rulers",showRulers:"Show rulers",removeDevicePixelRatio:"Remove device pixel ratio",addDevicePixelRatio:"Add device pixel ratio",removeDeviceType:"Remove device type",addDeviceType:"Add device type",resetToDefaults:"Reset to defaults",closeDevtools:"Close DevTools",responsive:"Responsive",edit:"Edit…",portrait:"Portrait",landscape:"Landscape",rotate:"Rotate",none:"None",screenOrientationOptions:"Screen orientation options",toggleDualscreenMode:"Toggle dual-screen mode"},u=a.i18n.registerUIStrings("panels/emulation/DeviceModeToolbar.ts",p),g=a.i18n.getLocalizedString.bind(void 0,u);function v(e,t){e.setTitle(t),e.element.title=t}class b{model;showMediaInspectorSetting;showRulersSetting;experimentDualScreenSupport;deviceOutlineSetting;showDeviceScaleFactorSetting;showUserAgentTypeSetting;autoAdjustScaleSetting;lastMode;elementInternal;emulatedDevicesList;persistenceSetting;spanButton;modeButton;widthInput;heightInput;deviceScaleItem;deviceSelectItem;scaleItem;uaItem;experimentalButton;cachedDeviceScale;cachedUaType;xItem;throttlingConditionsItem;cachedModelType;cachedScale;cachedModelDevice;cachedModelMode;constructor(e,i,s){this.model=e,this.showMediaInspectorSetting=i,this.showRulersSetting=s,this.experimentDualScreenSupport=o.Runtime.experiments.isEnabled("dualScreenSupport"),this.deviceOutlineSetting=this.model.deviceOutlineSetting(),this.showDeviceScaleFactorSetting=n.Settings.Settings.instance().createSetting("emulation.showDeviceScaleFactor",!1),this.showDeviceScaleFactorSetting.addChangeListener(this.updateDeviceScaleFactorVisibility,this),this.showUserAgentTypeSetting=n.Settings.Settings.instance().createSetting("emulation.showUserAgentType",!1),this.showUserAgentTypeSetting.addChangeListener(this.updateUserAgentTypeVisibility,this),this.autoAdjustScaleSetting=n.Settings.Settings.instance().createSetting("emulation.autoAdjustScale",!0),this.lastMode=new Map,this.elementInternal=document.createElement("div"),this.elementInternal.classList.add("device-mode-toolbar");const a=this.elementInternal.createChild("div","device-mode-toolbar-spacer");a.createChild("div","device-mode-toolbar-spacer");const d=new t.Toolbar.Toolbar("",a);this.fillLeftToolbar(d);const l=new t.Toolbar.Toolbar("",this.elementInternal);l.makeWrappable(),this.widthInput=new c.DeviceSizeInputElement.SizeInputElement(g(p.width)),this.widthInput.addEventListener("sizechanged",(({size:e})=>{this.model.setWidthAndScaleToFit(e)})),this.heightInput=new c.DeviceSizeInputElement.SizeInputElement(g(p.heightLeaveEmptyForFull)),this.heightInput.addEventListener("sizechanged",(({size:e})=>{this.model.setHeightAndScaleToFit(e)})),this.fillMainToolbar(l);const h=this.elementInternal.createChild("div","device-mode-toolbar-spacer"),m=new t.Toolbar.Toolbar("device-mode-toolbar-fixed-size",h);m.makeWrappable(),this.fillRightToolbar(m);const u=new t.Toolbar.Toolbar("device-mode-toolbar-fixed-size",h);u.makeWrappable(),this.fillModeToolbar(u),h.createChild("div","device-mode-toolbar-spacer");const v=new t.Toolbar.Toolbar("device-mode-toolbar-options",h);function b(){const t=e.toolbarControlsEnabledSetting().get();d.setEnabled(t),l.setEnabled(t),m.setEnabled(t),u.setEnabled(t),v.setEnabled(t)}v.makeWrappable(),this.fillOptionsToolbar(v),this.emulatedDevicesList=r.EmulatedDevices.EmulatedDevicesList.instance(),this.emulatedDevicesList.addEventListener("CustomDevicesUpdated",this.deviceListChanged,this),this.emulatedDevicesList.addEventListener("StandardDevicesUpdated",this.deviceListChanged,this),this.persistenceSetting=n.Settings.Settings.instance().createSetting("emulation.deviceModeValue",{device:"",orientation:"",mode:""}),this.model.toolbarControlsEnabledSetting().addChangeListener(b),b()}createEmptyToolbarElement(){const e=document.createElement("div");return e.classList.add("device-mode-empty-toolbar-element"),e}fillLeftToolbar(e){e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement())),this.deviceSelectItem=new t.Toolbar.ToolbarMenuButton(this.appendDeviceMenuItems.bind(this)),this.deviceSelectItem.setGlyph(""),this.deviceSelectItem.turnIntoSelect(!0),this.deviceSelectItem.setDarkText(),e.appendToolbarItem(this.deviceSelectItem)}fillMainToolbar(e){e.appendToolbarItem(new t.Toolbar.ToolbarItem(this.widthInput));const i=document.createElement("div");i.classList.add("device-mode-x"),i.textContent="×",this.xItem=this.wrapToolbarItem(i),e.appendToolbarItem(this.xItem),e.appendToolbarItem(new t.Toolbar.ToolbarItem(this.heightInput))}fillRightToolbar(e){e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement())),this.scaleItem=new t.Toolbar.ToolbarMenuButton(this.appendScaleMenuItems.bind(this)),v(this.scaleItem,g(p.zoom)),this.scaleItem.setGlyph(""),this.scaleItem.turnIntoSelect(),this.scaleItem.setDarkText(),e.appendToolbarItem(this.scaleItem),e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement())),this.deviceScaleItem=new t.Toolbar.ToolbarMenuButton(this.appendDeviceScaleMenuItems.bind(this)),this.deviceScaleItem.setVisible(this.showDeviceScaleFactorSetting.get()),v(this.deviceScaleItem,g(p.devicePixelRatio)),this.deviceScaleItem.setGlyph(""),this.deviceScaleItem.turnIntoSelect(),this.deviceScaleItem.setDarkText(),e.appendToolbarItem(this.deviceScaleItem),e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement())),this.uaItem=new t.Toolbar.ToolbarMenuButton(this.appendUserAgentMenuItems.bind(this)),this.uaItem.setVisible(this.showUserAgentTypeSetting.get()),v(this.uaItem,g(p.deviceType)),this.uaItem.setGlyph(""),this.uaItem.turnIntoSelect(),this.uaItem.setDarkText(),e.appendToolbarItem(this.uaItem),this.throttlingConditionsItem=l.ThrottlingManager.throttlingManager().createMobileThrottlingButton(),e.appendToolbarItem(this.throttlingConditionsItem)}fillModeToolbar(e){e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement())),this.modeButton=new t.Toolbar.ToolbarButton("","screen-rotation"),this.modeButton.addEventListener(t.Toolbar.ToolbarButton.Events.Click,this.modeMenuClicked,this),e.appendToolbarItem(this.modeButton),this.experimentDualScreenSupport&&(this.spanButton=new t.Toolbar.ToolbarButton("","device-fold"),this.spanButton.addEventListener(t.Toolbar.ToolbarButton.Events.Click,this.spanClicked,this),e.appendToolbarItem(this.spanButton),this.createExperimentalButton(e))}createExperimentalButton(e){e.appendToolbarItem(new t.Toolbar.ToolbarSeparator(!0));const i=this.model.webPlatformExperimentalFeaturesEnabled()?g(p.experimentalWebPlatformFeature):g(p.experimentalWebPlatformFeatureFlag);this.experimentalButton=new t.Toolbar.ToolbarToggle(i,"experiment-check"),this.experimentalButton.setToggled(this.model.webPlatformExperimentalFeaturesEnabled()),this.experimentalButton.setEnabled(!0),this.experimentalButton.addEventListener(t.Toolbar.ToolbarButton.Events.Click,this.experimentalClicked,this),e.appendToolbarItem(this.experimentalButton)}experimentalClicked(){e.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab("chrome://flags/#enable-experimental-web-platform-features")}fillOptionsToolbar(e){e.appendToolbarItem(this.wrapToolbarItem(this.createEmptyToolbarElement()));const i=new t.Toolbar.ToolbarMenuButton(this.appendOptionsMenuItems.bind(this));v(i,g(p.moreOptions)),e.appendToolbarItem(i)}appendScaleMenuItems(e){this.model.type()===r.DeviceModeModel.Type.Device&&e.footerSection().appendItem(g(p.fitToWindowF,{PH1:this.getPrettyFitZoomPercentage()}),this.onScaleMenuChanged.bind(this,this.model.fitScale()),!1),e.footerSection().appendCheckboxItem(g(p.autoadjustZoom),this.onAutoAdjustScaleChanged.bind(this),this.autoAdjustScaleSetting.get());const t=function(t,i){e.defaultSection().appendCheckboxItem(t,this.onScaleMenuChanged.bind(this,i),this.model.scaleSetting().get()===i,!1)}.bind(this);t("50%",.5),t("75%",.75),t("100%",1),t("125%",1.25),t("150%",1.5),t("200%",2)}onScaleMenuChanged(e){this.model.scaleSetting().set(e)}onAutoAdjustScaleChanged(){this.autoAdjustScaleSetting.set(!this.autoAdjustScaleSetting.get())}appendDeviceScaleMenuItems(e){const t=this.model.deviceScaleFactorSetting(),i=this.model.uaSetting().get()===r.DeviceModeModel.UA.Mobile||this.model.uaSetting().get()===r.DeviceModeModel.UA.MobileNoTouch?r.DeviceModeModel.defaultMobileScaleFactor:window.devicePixelRatio;function o(e,i,o){e.appendCheckboxItem(i,t.set.bind(t,o),t.get()===o)}o(e.headerSection(),g(p.defaultF,{PH1:i}),0),o(e.defaultSection(),"1",1),o(e.defaultSection(),"2",2),o(e.defaultSection(),"3",3)}appendUserAgentMenuItems(e){const t=this.model.uaSetting();function i(i,o){e.defaultSection().appendCheckboxItem(i,t.set.bind(t,o),t.get()===o)}i(r.DeviceModeModel.UA.Mobile,r.DeviceModeModel.UA.Mobile),i(r.DeviceModeModel.UA.MobileNoTouch,r.DeviceModeModel.UA.MobileNoTouch),i(r.DeviceModeModel.UA.Desktop,r.DeviceModeModel.UA.Desktop),i(r.DeviceModeModel.UA.DesktopTouch,r.DeviceModeModel.UA.DesktopTouch)}appendOptionsMenuItems(t){const i=this.model;function o(e,t,o,s,n){void 0===n&&(n=i.type()===r.DeviceModeModel.Type.None),e.appendItem(t.get()?o:s,t.set.bind(t,!t.get()),n)}o(t.headerSection(),this.deviceOutlineSetting,g(p.hideDeviceFrame),g(p.showDeviceFrame),i.type()!==r.DeviceModeModel.Type.Device),o(t.headerSection(),this.showMediaInspectorSetting,g(p.hideMediaQueries),g(p.showMediaQueries)),o(t.headerSection(),this.showRulersSetting,g(p.hideRulers),g(p.showRulers)),o(t.defaultSection(),this.showDeviceScaleFactorSetting,g(p.removeDevicePixelRatio),g(p.addDevicePixelRatio)),o(t.defaultSection(),this.showUserAgentTypeSetting,g(p.removeDeviceType),g(p.addDeviceType)),t.appendItemsAtLocation("deviceModeMenu"),t.footerSection().appendItem(g(p.resetToDefaults),this.reset.bind(this)),t.footerSection().appendItem(g(p.closeDevtools),e.InspectorFrontendHost.InspectorFrontendHostInstance.closeWindow.bind(e.InspectorFrontendHost.InspectorFrontendHostInstance))}reset(){this.deviceOutlineSetting.set(!1),this.showDeviceScaleFactorSetting.set(!1),this.showUserAgentTypeSetting.set(!1),this.showMediaInspectorSetting.set(!1),this.showRulersSetting.set(!1),this.model.reset()}wrapToolbarItem(e){const i=document.createElement("div");return t.Utils.createShadowRootWithCoreStyles(i,{cssFile:m,delegatesFocus:void 0}).appendChild(e),new t.Toolbar.ToolbarItem(i)}emulateDevice(e){const t=this.autoAdjustScaleSetting.get()?void 0:this.model.scaleSetting().get();this.model.emulate(r.DeviceModeModel.Type.Device,e,this.lastMode.get(e)||e.modes[0],t)}switchToResponsive(){this.model.emulate(r.DeviceModeModel.Type.Responsive,null,null)}filterDevices(e){return(e=e.filter((function(e){return e.show()}))).sort(r.EmulatedDevices.EmulatedDevice.deviceComparator),e}standardDevices(){return this.filterDevices(this.emulatedDevicesList.standard())}customDevices(){return this.filterDevices(this.emulatedDevicesList.custom())}allDevices(){return this.standardDevices().concat(this.customDevices())}appendDeviceMenuItems(e){function t(t){if(!t.length)return;const i=e.section();for(const e of t)i.appendCheckboxItem(e.title,this.emulateDevice.bind(this,e),this.model.device()===e,!1)}e.headerSection().appendCheckboxItem(g(p.responsive),this.switchToResponsive.bind(this),this.model.type()===r.DeviceModeModel.Type.Responsive,!1),t.call(this,this.standardDevices()),t.call(this,this.customDevices()),e.footerSection().appendItem(g(p.edit),this.emulatedDevicesList.revealCustomSetting.bind(this.emulatedDevicesList),!1)}deviceListChanged(){const e=this.model.device();if(!e)return;const t=this.allDevices();-1===t.indexOf(e)?t.length?this.emulateDevice(t[0]):this.model.emulate(r.DeviceModeModel.Type.Responsive,null,null):this.emulateDevice(e)}updateDeviceScaleFactorVisibility(){this.deviceScaleItem&&this.deviceScaleItem.setVisible(this.showDeviceScaleFactorSetting.get())}updateUserAgentTypeVisibility(){this.uaItem&&this.uaItem.setVisible(this.showUserAgentTypeSetting.get())}spanClicked(){const e=this.model.device();if(!e||!e.isDualScreen)return;const t=this.autoAdjustScaleSetting.get()?void 0:this.model.scaleSetting().get(),i=this.model.mode();if(!i)return;const o=e.getSpanPartner(i);o&&this.model.emulate(this.model.type(),e,o,t)}modeMenuClicked(e){const i=this.model.device(),o=this.model,s=this.autoAdjustScaleSetting;if(o.type()===r.DeviceModeModel.Type.Responsive){const e=o.appliedDeviceSize();return void(s.get()?o.setSizeAndScaleToFit(e.height,e.width):(o.setWidth(e.height),o.setHeight(e.width)))}if(!i)return;if((i.isDualScreen||2===i.modes.length)&&i.modes[0].orientation!==i.modes[1].orientation){const e=s.get()?void 0:o.scaleSetting().get(),t=o.mode();if(!t)return;const r=i.getRotationPartner(t);if(!r)return;return void o.emulate(o.type(),o.device(),r,e)}if(!this.modeButton)return;const n=new t.ContextMenu.ContextMenu(e.data,{useSoftMenu:!1,x:this.modeButton.element.getBoundingClientRect().left,y:this.modeButton.element.getBoundingClientRect().top+this.modeButton.element.offsetHeight});function a(e,t){if(!i)return;const o=i.modesForOrientation(e);if(o.length)if(1===o.length)d(o[0],t);else for(let e=0;e<o.length;e++)d(o[e],t+" – "+o[e].title)}function d(e,t){n.defaultSection().appendCheckboxItem(t,l.bind(null,e),o.mode()===e,!1)}function l(e){const t=s.get()?void 0:o.scaleSetting().get();o.emulate(o.type(),o.device(),e,t)}a(r.EmulatedDevices.Vertical,g(p.portrait)),a(r.EmulatedDevices.Horizontal,g(p.landscape)),n.show()}getPrettyFitZoomPercentage(){return`${(100*this.model.fitScale()).toFixed(0)}`}getPrettyZoomPercentage(){return`${(100*this.model.scale()).toFixed(0)}`}element(){return this.elementInternal}update(){this.model.type()!==this.cachedModelType&&(this.cachedModelType=this.model.type(),this.widthInput.disabled=this.model.type()!==r.DeviceModeModel.Type.Responsive,this.heightInput.disabled=this.model.type()!==r.DeviceModeModel.Type.Responsive,this.deviceScaleItem.setEnabled(this.model.type()===r.DeviceModeModel.Type.Responsive),this.uaItem.setEnabled(this.model.type()===r.DeviceModeModel.Type.Responsive),this.model.type()===r.DeviceModeModel.Type.Responsive?(this.modeButton.setEnabled(!0),v(this.modeButton,g(p.rotate))):this.modeButton.setEnabled(!1));const e=this.model.appliedDeviceSize();this.widthInput.size=String(e.width),this.heightInput.size=this.model.type()===r.DeviceModeModel.Type.Responsive&&this.model.isFullHeight()?"":String(e.height),this.heightInput.placeholder=String(e.height),this.model.scale()!==this.cachedScale&&(this.scaleItem.setText(`${this.getPrettyZoomPercentage()}%`),this.cachedScale=this.model.scale());const t=this.model.appliedDeviceScaleFactor();t!==this.cachedDeviceScale&&(this.deviceScaleItem.setText(`DPR: ${t.toFixed(1)}`),this.cachedDeviceScale=t);const i=this.model.appliedUserAgentType();i!==this.cachedUaType&&(this.uaItem.setText(i),this.cachedUaType=i);let o=g(p.none);this.model.type()===r.DeviceModeModel.Type.Responsive&&(o=g(p.responsive));const s=this.model.device();if(this.model.type()===r.DeviceModeModel.Type.Device&&s&&(o=s.title),this.deviceSelectItem.setText(`${g(p.dimensions)}: ${o}`),this.model.device()!==this.cachedModelDevice){const e=this.model.device();if(e){const t=e?e.modes.length:0;this.modeButton.setEnabled(t>=2),v(this.modeButton,g(2===t?p.rotate:p.screenOrientationOptions))}this.cachedModelDevice=e}if(this.experimentDualScreenSupport&&this.experimentalButton){const e=this.model.device();e&&e.isDualScreen?(this.spanButton.setVisible(!0),this.experimentalButton.setVisible(!0)):(this.spanButton.setVisible(!1),this.experimentalButton.setVisible(!1)),v(this.spanButton,g(p.toggleDualscreenMode))}if(this.model.type()===r.DeviceModeModel.Type.Device&&this.lastMode.set(this.model.device(),this.model.mode()),this.model.mode()!==this.cachedModelMode&&this.model.type()!==r.DeviceModeModel.Type.None){this.cachedModelMode=this.model.mode();const e=this.persistenceSetting.get(),t=this.model.device();if(t){e.device=t.title;const i=this.model.mode();e.orientation=i?i.orientation:"",e.mode=i?i.title:""}else e.device="",e.orientation="",e.mode="";this.persistenceSetting.set(e)}}restore(){for(const e of this.allDevices())if(e.title===this.persistenceSetting.get().device)for(const t of e.modes)if(t.orientation===this.persistenceSetting.get().orientation&&t.title===this.persistenceSetting.get().mode)return this.lastMode.set(e,t),void this.emulateDevice(e);this.model.emulate(r.DeviceModeModel.Type.Responsive,null,null)}}var S=Object.freeze({__proto__:null,DeviceModeToolbar:b}),w={cssContent:".media-inspector-view{height:50px;--override-min-width-media-query-selector-background-color:rgb(255 204 128);--override-min-width-media-query-selector-background-color-inactive:rgb(255 243 224);--override-min-width-media-query-selector-marker-color:rgb(245 122 0);--override-min-and-max-width-media-query-selector-background-color:rgb(196 224 163);--override-min-and-max-width-media-query-selector-background-color-inactive:rgb(234 246 235);--override-min-and-max-width-media-query-selector-marker-color:rgb(104 159 56);--override-max-width-media-query-selector-background-color:rgb(144 202 249);--override-max-width-media-query-selector-background-color-inactive:rgb(225 245 254);--override-max-width-media-query-selector-marker-color:rgb(66 165 245)}.-theme-with-dark-background .media-inspector-view,\n:host-context(.-theme-with-dark-background) .media-inspector-view{--override-min-width-media-query-selector-background-color:rgb(127 76 0);--override-min-width-media-query-selector-background-color-inactive:rgb(31 19 0);--override-min-width-media-query-selector-marker-color:rgb(255 132 10);--override-min-and-max-width-media-query-selector-background-color:rgb(64 92 31);--override-min-and-max-width-media-query-selector-background-color-inactive:rgb(9 21 10);--override-min-and-max-width-media-query-selector-marker-color:rgb(144 199 96);--override-max-width-media-query-selector-background-color:rgb(6 64 111);--override-max-width-media-query-selector-background-color-inactive:rgb(1 21 30);--override-max-width-media-query-selector-marker-color:rgb(10 109 189)}.media-inspector-marker-container{height:14px;margin:2px 0;position:relative}.media-inspector-bar{display:flex;flex-direction:row;align-items:stretch;pointer-events:none;position:absolute;left:0;right:0;top:0;bottom:0}.media-inspector-marker{flex:none;pointer-events:auto;margin:1px 0;white-space:nowrap;z-index:auto;position:relative}.media-inspector-marker-spacer{flex:auto}.media-inspector-marker:hover{margin:-1px 0;opacity:100%}.media-inspector-marker-min-width{flex:auto;background-color:var(--override-min-width-media-query-selector-background-color);border-right:2px solid var(--override-min-width-media-query-selector-marker-color);border-left:2px solid var(--override-min-width-media-query-selector-marker-color)}.media-inspector-marker-min-width-right{border-left:2px solid var(--override-min-width-media-query-selector-marker-color)}.media-inspector-marker-min-width-left{border-right:2px solid var(--override-min-width-media-query-selector-marker-color)}.media-inspector-marker-min-max-width{background-color:var(--override-min-and-max-width-media-query-selector-background-color);border-left:2px solid var(--override-min-and-max-width-media-query-selector-marker-color);border-right:2px solid var(--override-min-and-max-width-media-query-selector-marker-color)}.media-inspector-marker-min-max-width:hover{z-index:1}.media-inspector-marker-max-width{background-color:var(--override-max-width-media-query-selector-background-color);border-right:2px solid var(--override-max-width-media-query-selector-marker-color);border-left:2px solid var(--override-max-width-media-query-selector-marker-color)}.media-inspector-marker-inactive .media-inspector-marker-min-width:not(:hover){background-color:var(--override-min-width-media-query-selector-background-color-inactive)}.media-inspector-marker-inactive .media-inspector-marker-min-max-width:not(:hover){background-color:var(--override-min-and-max-width-media-query-selector-background-color-inactive)}.media-inspector-marker-inactive .media-inspector-marker-max-width:not(:hover){background-color:var(--override-max-width-media-query-selector-background-color-inactive)}.media-inspector-marker-label-container{position:absolute;z-index:1}.media-inspector-marker:not(:hover) .media-inspector-marker-label-container{display:none}.media-inspector-marker-label-container-left{left:-2px}.media-inspector-marker-label-container-right{right:-2px}.media-inspector-marker-label{color:var(--color-text-primary);position:absolute;top:1px;bottom:0;font-size:12px;pointer-events:none}.media-inspector-label-right{right:4px}.media-inspector-label-left{left:4px}"};const M={revealInSourceCode:"Reveal in source code"},f=a.i18n.registerUIStrings("panels/emulation/MediaQueryInspector.ts",M),x=a.i18n.getLocalizedString.bind(void 0,f);class I extends t.Widget.Widget{mediaThrottler;getWidthCallback;setWidthCallback;scale;elementsToMediaQueryModel;elementsToCSSLocations;cssModel;cachedQueryModels;constructor(e,i,o){super(!0),this.registerRequiredCSS(w),this.contentElement.classList.add("media-inspector-view"),this.contentElement.addEventListener("click",this.onMediaQueryClicked.bind(this),!1),this.contentElement.addEventListener("contextmenu",this.onContextMenu.bind(this),!1),this.mediaThrottler=o,this.getWidthCallback=e,this.setWidthCallback=i,this.scale=1,this.elementsToMediaQueryModel=new WeakMap,this.elementsToCSSLocations=new WeakMap,s.TargetManager.TargetManager.instance().observeModels(s.CSSModel.CSSModel,this),t.ZoomManager.ZoomManager.instance().addEventListener("ZoomChanged",this.renderMediaQueries.bind(this),this)}modelAdded(e){e.target()===s.TargetManager.TargetManager.instance().primaryPageTarget()&&(this.cssModel=e,this.cssModel.addEventListener(s.CSSModel.Events.StyleSheetAdded,this.scheduleMediaQueriesUpdate,this),this.cssModel.addEventListener(s.CSSModel.Events.StyleSheetRemoved,this.scheduleMediaQueriesUpdate,this),this.cssModel.addEventListener(s.CSSModel.Events.StyleSheetChanged,this.scheduleMediaQueriesUpdate,this),this.cssModel.addEventListener(s.CSSModel.Events.MediaQueryResultChanged,this.scheduleMediaQueriesUpdate,this))}modelRemoved(e){e===this.cssModel&&(this.cssModel.removeEventListener(s.CSSModel.Events.StyleSheetAdded,this.scheduleMediaQueriesUpdate,this),this.cssModel.removeEventListener(s.CSSModel.Events.StyleSheetRemoved,this.scheduleMediaQueriesUpdate,this),this.cssModel.removeEventListener(s.CSSModel.Events.StyleSheetChanged,this.scheduleMediaQueriesUpdate,this),this.cssModel.removeEventListener(s.CSSModel.Events.MediaQueryResultChanged,this.scheduleMediaQueriesUpdate,this),delete this.cssModel)}setAxisTransform(e){Math.abs(this.scale-e)<1e-8||(this.scale=e,this.renderMediaQueries())}onMediaQueryClicked(e){const t=e.target.enclosingNodeOrSelfWithClass("media-inspector-bar");if(!t)return;const i=this.elementsToMediaQueryModel.get(t);if(!i)return;const o=i.maxWidthExpression(),s=i.minWidthExpression();if(0===i.section())return void this.setWidthCallback(o&&o.computedLength()||0);if(2===i.section())return void this.setWidthCallback(s&&s.computedLength()||0);const r=this.getWidthCallback();s&&r!==s.computedLength()?this.setWidthCallback(s.computedLength()||0):this.setWidthCallback(o&&o.computedLength()||0)}onContextMenu(e){if(!this.cssModel||!this.cssModel.isEnabled())return;const i=e.target.enclosingNodeOrSelfWithClass("media-inspector-bar");if(!i)return;const o=this.elementsToCSSLocations.get(i)||[],s=new Map;for(let e=0;e<o.length;++e){const t=h.CSSWorkspaceBinding.CSSWorkspaceBinding.instance().rawLocationToUILocation(o[e]);if(!t)continue;const i="number"==typeof t.columnNumber?d.StringUtilities.sprintf("%s:%d:%d",t.uiSourceCode.url(),t.lineNumber+1,t.columnNumber+1):d.StringUtilities.sprintf("%s:%d",t.uiSourceCode.url(),t.lineNumber+1);s.set(i,t)}const r=[...s.keys()].sort(),n=new t.ContextMenu.ContextMenu(e),a=n.defaultSection().appendSubMenuItem(x(M.revealInSourceCode));for(let e=0;e<r.length;++e){const t=r[e];a.defaultSection().appendItem(t,this.revealSourceLocation.bind(this,s.get(t)))}n.show()}revealSourceLocation(e){n.Revealer.reveal(e)}scheduleMediaQueriesUpdate(){this.isShowing()&&this.mediaThrottler.schedule(this.refetchMediaQueries.bind(this))}refetchMediaQueries(){return this.isShowing()&&this.cssModel?this.cssModel.getMediaQueries().then(this.rebuildMediaQueries.bind(this)):Promise.resolve()}squashAdjacentEqual(e){const t=[];for(let i=0;i<e.length;++i){const o=t[t.length-1];o&&o.equals(e[i])||t.push(e[i])}return t}rebuildMediaQueries(e){let t=[];for(let i=0;i<e.length;++i){const o=e[i];if(o.mediaList)for(let e=0;e<o.mediaList.length;++e){const i=o.mediaList[e],s=k.createFromMediaQuery(o,i);s&&t.push(s)}}t.sort((function(e,t){return e.compareTo(t)})),t=this.squashAdjacentEqual(t);let i=this.cachedQueryModels&&this.cachedQueryModels.length===t.length;for(let e=0;i&&e<t.length;++e)i=i&&this.cachedQueryModels&&this.cachedQueryModels[e].equals(t[e]);i||(this.cachedQueryModels=t,this.renderMediaQueries())}renderMediaQueries(){if(!this.cachedQueryModels||!this.isShowing())return;const e=[];let t=null;for(let i=0;i<this.cachedQueryModels.length;++i){const o=this.cachedQueryModels[i];t&&t.model.dimensionsEqual(o)?t.active=t.active||o.active():(t={active:o.active(),model:o,locations:[]},e.push(t));const s=o.rawLocation();s&&t.locations.push(s)}this.contentElement.removeChildren();let i=null;for(let t=0;t<e.length;++t){t&&e[t].model.section()===e[t-1].model.section()||(i=this.contentElement.createChild("div","media-inspector-marker-container"));const o=e[t],s=this.createElementFromMediaQueryModel(o.model);if(this.elementsToMediaQueryModel.set(s,o.model),this.elementsToCSSLocations.set(s,o.locations),s.classList.toggle("media-inspector-marker-inactive",!o.active),!i)throw new Error("Could not find container to render media queries into.");i.appendChild(s)}}zoomFactor(){return t.ZoomManager.ZoomManager.instance().zoomFactor()/this.scale}wasShown(){super.wasShown(),this.scheduleMediaQueriesUpdate()}createElementFromMediaQueryModel(e){const i=this.zoomFactor(),o=e.minWidthExpression(),s=e.maxWidthExpression(),r=o?(o.computedLength()||0)/i:0,n=s?(s.computedLength()||0)/i:0,a=document.createElement("div");if(a.classList.add("media-inspector-bar"),0===e.section()){a.createChild("div","media-inspector-marker-spacer");const i=a.createChild("div","media-inspector-marker media-inspector-marker-max-width");i.style.width=n+"px",t.Tooltip.Tooltip.install(i,e.mediaText()),d(i,e.maxWidthExpression(),!1,!1),d(i,e.maxWidthExpression(),!0,!0),a.createChild("div","media-inspector-marker-spacer")}if(1===e.section()){a.createChild("div","media-inspector-marker-spacer");const i=a.createChild("div","media-inspector-marker media-inspector-marker-min-max-width");i.style.width=.5*(n-r)+"px",t.Tooltip.Tooltip.install(i,e.mediaText()),d(i,e.maxWidthExpression(),!0,!1),d(i,e.minWidthExpression(),!1,!0),a.createChild("div","media-inspector-marker-spacer").style.flex="0 0 "+r+"px";const o=a.createChild("div","media-inspector-marker media-inspector-marker-min-max-width");o.style.width=.5*(n-r)+"px",t.Tooltip.Tooltip.install(o,e.mediaText()),d(o,e.minWidthExpression(),!0,!1),d(o,e.maxWidthExpression(),!1,!0),a.createChild("div","media-inspector-marker-spacer")}if(2===e.section()){const i=a.createChild("div","media-inspector-marker media-inspector-marker-min-width media-inspector-marker-min-width-left");t.Tooltip.Tooltip.install(i,e.mediaText()),d(i,e.minWidthExpression(),!1,!1),a.createChild("div","media-inspector-marker-spacer").style.flex="0 0 "+r+"px";const o=a.createChild("div","media-inspector-marker media-inspector-marker-min-width media-inspector-marker-min-width-right");t.Tooltip.Tooltip.install(o,e.mediaText()),d(o,e.minWidthExpression(),!0,!0)}function d(e,t,i,o){t&&(e.createChild("div","media-inspector-marker-label-container "+(i?"media-inspector-marker-label-container-left":"media-inspector-marker-label-container-right")).createChild("span","media-inspector-marker-label "+(o?"media-inspector-label-left":"media-inspector-label-right")).textContent=t.value()+t.unit())}return a}}class k{cssMedia;minWidthExpressionInternal;maxWidthExpressionInternal;activeInternal;sectionInternal;rawLocationInternal;constructor(e,t,i,o){this.cssMedia=e,this.minWidthExpressionInternal=t,this.maxWidthExpressionInternal=i,this.activeInternal=o,this.sectionInternal=i&&!t?0:t&&i?1:2}static createFromMediaQuery(e,t){let i=null,o=Number.MAX_VALUE,s=null,r=Number.MIN_VALUE;const n=t.expressions();if(!n)return null;for(let e=0;e<n.length;++e){const t=n[e],a=t.feature();if(-1===a.indexOf("width"))continue;const d=t.computedLength();a.startsWith("max-")&&d&&d<o?(i=t,o=d):a.startsWith("min-")&&d&&d>r&&(s=t,r=d)}return r>o||!i&&!s?null:new k(e,s,i,t.active())}equals(e){return 0===this.compareTo(e)}dimensionsEqual(e){const t=this.minWidthExpression(),i=e.minWidthExpression(),o=this.maxWidthExpression(),s=e.maxWidthExpression(),r=this.section()===e.section(),n=!t||t.computedLength()===i?.computedLength(),a=!o||o.computedLength()===s?.computedLength();return r&&n&&a}compareTo(e){if(this.section()!==e.section())return this.section()-e.section();if(this.dimensionsEqual(e)){const t=this.rawLocation(),i=e.rawLocation();return t||i?t&&!i?1:!t&&i?-1:this.active()!==e.active()?this.active()?-1:1:t&&i?d.StringUtilities.compare(t.url,i.url)||t.lineNumber-i.lineNumber||t.columnNumber-i.columnNumber:0:d.StringUtilities.compare(this.mediaText(),e.mediaText())}const t=this.maxWidthExpression(),i=e.maxWidthExpression(),o=t&&t.computedLength()||0,s=i&&i.computedLength()||0,r=this.minWidthExpression(),n=e.minWidthExpression(),a=r&&r.computedLength()||0,l=n&&n.computedLength()||0;return 0===this.section()?s-o:2===this.section()?a-l:a-l||s-o}section(){return this.sectionInternal}mediaText(){return this.cssMedia.text||""}rawLocation(){return this.rawLocationInternal||(this.rawLocationInternal=this.cssMedia.rawLocation()),this.rawLocationInternal}minWidthExpression(){return this.minWidthExpressionInternal}maxWidthExpression(){return this.maxWidthExpressionInternal}active(){return this.activeInternal}}var y=Object.freeze({__proto__:null,MediaQueryInspector:I,MediaQueryUIModel:k}),T={cssContent:":host{overflow:hidden;align-items:stretch;flex:auto;background-color:var(--color-background-elevation-0)}.device-mode-toolbar{flex:none;background-color:var(--color-background-elevation-0);border-bottom:1px solid var(--color-details-hairline);display:flex;flex-direction:row;align-items:stretch}.device-mode-toolbar .toolbar{overflow:hidden;flex:0 100000 auto;padding:0 5px}.device-mode-toolbar .toolbar.device-mode-toolbar-fixed-size{flex:0 1 auto}.device-mode-toolbar-options.toolbar{position:sticky;right:0;flex:none}.device-mode-toolbar-spacer{flex:1 1 0;display:flex;flex-direction:row;overflow:hidden}.device-mode-content-clip{overflow:hidden;flex:auto}.device-mode-media-container{flex:none;overflow:hidden;box-shadow:inset 0 -1px var(--color-details-hairline)}.device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-media-container{margin-bottom:20px}.device-mode-presets-container{flex:0 0 20px;display:flex}.device-mode-presets-container-inner{flex:auto;justify-content:center;position:relative;background-color:var(--color-background-elevation-2);border:2px solid var(--color-background-elevation-0);border-bottom:2px solid var(--color-background-elevation-0)}.device-mode-presets-container:hover{transition:opacity 0.1s;transition-delay:50ms;opacity:100%}.device-mode-preset-bar-outer{pointer-events:none;display:flex;justify-content:center}.device-mode-preset-bar{border-left:2px solid var(--color-background-elevation-0);border-right:2px solid var(--color-background-elevation-0);pointer-events:auto;text-align:center;flex:none;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;white-space:nowrap;margin-bottom:1px}.device-mode-preset-bar:hover{transition:background-color 0.1s;transition-delay:50ms;background-color:var(--color-background-highlight)}.device-mode-preset-bar > span{visibility:hidden}.device-mode-preset-bar:hover > span{transition:visibility 0.1s;transition-delay:50ms;visibility:visible}.device-mode-content-area{flex:auto;position:relative;margin:0}.device-mode-screen-area{position:absolute;left:0;right:0;width:0;height:0;background-color:var(--color-background-inverted)}.device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area{--override-screen-area-box-shadow:hsl(240deg 3% 84%) 0 0 0 0.5px,hsl(0deg 0% 80%/40%) 0 0 20px;box-shadow:var(--override-screen-area-box-shadow)}.-theme-with-dark-background .device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area,\n:host-context(.-theme-with-dark-background) .device-mode-content-clip:not(.device-mode-outline-visible) .device-mode-screen-area{--override-screen-area-box-shadow:rgb(40 40 42) 0 0 0 0.5px,rgb(51 51 51/40%) 0 0 20px}.device-mode-screen-image{position:absolute;left:0;top:0;width:100%;height:100%}.device-mode-resizer{position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:background-color 0.1s ease,opacity 0.1s ease}.device-mode-resizer:hover{background-color:var(--color-background-elevation-2);opacity:100%}.device-mode-resizer > div{pointer-events:none}.device-mode-right-resizer{top:0;bottom:-1px;right:-20px;width:20px}.device-mode-left-resizer{top:0;bottom:-1px;left:-20px;width:20px;opacity:0%}.device-mode-bottom-resizer{left:0;right:-1px;bottom:-20px;height:20px}.device-mode-bottom-right-resizer{left:0;top:0;right:-20px;bottom:-20px;background-color:var(--color-background-elevation-1)}.device-mode-bottom-left-resizer{left:-20px;top:0;right:0;bottom:-20px;opacity:0%}.device-mode-right-resizer > div{content:var(--image-file-resizeHorizontal);width:6px;height:26px}.device-mode-left-resizer > div{content:var(--image-file-resizeHorizontal);width:6px;height:26px}.device-mode-bottom-resizer > div{content:var(--image-file-resizeVertical);margin-bottom:-2px;width:26px;height:6px}.device-mode-bottom-right-resizer > div{position:absolute;bottom:3px;right:3px;width:13px;height:13px;content:var(--image-file-resizeDiagonal)}.device-mode-bottom-left-resizer > div{position:absolute;bottom:3px;left:3px;width:13px;height:13px;content:var(--image-file-resizeDiagonal);transform:rotate(90deg)}.device-mode-page-area{position:absolute;left:0;right:0;width:0;height:0;display:flex;background-color:var(--color-background-elevation-0)}.device-mode-ruler{position:absolute;overflow:visible}.device-mode-ruler-top{height:20px;right:0}.device-mode-ruler-left{width:20px;bottom:0}.device-mode-ruler-content{pointer-events:none;position:absolute;left:-20px;top:-20px;--override-device-ruler-border-color:hsl(0deg 0% 50%)}.device-mode-ruler-top .device-mode-ruler-content{border-top:1px solid transparent;right:0;bottom:20px;background-color:var(--color-background-opacity-80)}.device-mode-ruler-left .device-mode-ruler-content{border-left:1px solid transparent;border-top:1px solid transparent;right:20px;bottom:0}.-theme-with-dark-background .device-mode-ruler-content,\n:host-context(.-theme-with-dark-background) .device-mode-ruler-content{--override-device-ruler-border-color:rgb(127 127 127)}.device-mode-content-clip.device-mode-outline-visible .device-mode-ruler-top .device-mode-ruler-content{border-top:1px solid var(--override-device-ruler-border-color)}.device-mode-content-clip.device-mode-outline-visible .device-mode-ruler-left .device-mode-ruler-content{border-left:1px solid var(--override-device-ruler-border-color);border-top:1px solid var(--override-device-ruler-border-color)}.device-mode-ruler-inner{position:absolute}.device-mode-ruler-top .device-mode-ruler-inner{top:0;bottom:0;left:20px;right:0;border-bottom:1px solid var(--override-device-ruler-border-color)}.device-mode-ruler-left .device-mode-ruler-inner{left:0;right:0;top:19px;bottom:0;border-right:1px solid var(--override-device-ruler-border-color);background-color:var(--color-background-opacity-80)}.device-mode-ruler-marker{position:absolute}.device-mode-ruler-top .device-mode-ruler-marker{width:0;height:5px;bottom:0;border-right:1px solid var(--override-device-ruler-border-color);margin-right:-1px}.device-mode-ruler-top .device-mode-ruler-marker.device-mode-ruler-marker-medium{height:10px}.device-mode-ruler-top .device-mode-ruler-marker.device-mode-ruler-marker-large{height:15px}.device-mode-ruler-left .device-mode-ruler-marker{height:0;width:5px;right:0;border-bottom:1px solid var(--override-device-ruler-border-color);margin-bottom:-1px}.device-mode-ruler-left .device-mode-ruler-marker.device-mode-ruler-marker-medium{width:10px}.device-mode-ruler-left .device-mode-ruler-marker.device-mode-ruler-marker-large{width:15px}.device-mode-ruler-text{color:var(--color-text-secondary);position:relative;pointer-events:auto}.device-mode-ruler-text:hover{color:var(--color-text-primary)}.device-mode-ruler-top .device-mode-ruler-text{left:2px;top:-2px}.device-mode-ruler-left .device-mode-ruler-text{left:-4px;top:-15px;transform:rotate(270deg)}"};const C={doubleclickForFullHeight:"Double-click for full height",mobileS:"Mobile S",mobileM:"Mobile M",mobileL:"Mobile L",tablet:"Tablet",laptop:"Laptop",laptopL:"Laptop L"},E=a.i18n.registerUIStrings("panels/emulation/DeviceModeView.ts",C),D=a.i18n.getLocalizedString.bind(void 0,E);class R extends t.Widget.VBox{wrapperInstance;blockElementToWidth;model;mediaInspector;showMediaInspectorSetting;showRulersSetting;topRuler;leftRuler;presetBlocks;responsivePresetsContainer;screenArea;pageArea;outlineImage;contentClip;contentArea;rightResizerElement;leftResizerElement;bottomResizerElement;bottomRightResizerElement;bottomLeftResizerElement;cachedResizable;mediaInspectorContainer;screenImage;toolbar;slowPositionStart;resizeStart;cachedCssScreenRect;cachedCssVisiblePageRect;cachedOutlineRect;cachedMediaInspectorVisible;cachedShowRulers;cachedScale;handleWidth;handleHeight;constructor(){super(!0),this.blockElementToWidth=new WeakMap,this.setMinimumSize(150,150),this.element.classList.add("device-mode-view"),this.registerRequiredCSS(T),this.model=r.DeviceModeModel.DeviceModeModel.instance(),this.model.addEventListener("Updated",this.updateUI,this),this.mediaInspector=new I((()=>this.model.appliedDeviceSize().width),this.model.setWidth.bind(this.model),new n.Throttler.Throttler(0)),this.showMediaInspectorSetting=n.Settings.Settings.instance().moduleSetting("showMediaQueryInspector"),this.showMediaInspectorSetting.addChangeListener(this.updateUI,this),this.showRulersSetting=n.Settings.Settings.instance().moduleSetting("emulation.showRulers"),this.showRulersSetting.addChangeListener(this.updateUI,this),this.topRuler=new z(!0,this.model.setWidthAndScaleToFit.bind(this.model)),this.topRuler.element.classList.add("device-mode-ruler-top"),this.leftRuler=new z(!1,this.model.setHeightAndScaleToFit.bind(this.model)),this.leftRuler.element.classList.add("device-mode-ruler-left"),this.createUI(),t.ZoomManager.ZoomManager.instance().addEventListener("ZoomChanged",this.zoomChanged,this)}createUI(){this.toolbar=new b(this.model,this.showMediaInspectorSetting,this.showRulersSetting),this.contentElement.appendChild(this.toolbar.element()),this.contentClip=this.contentElement.createChild("div","device-mode-content-clip vbox"),this.responsivePresetsContainer=this.contentClip.createChild("div","device-mode-presets-container"),this.populatePresetsContainer(),this.mediaInspectorContainer=this.contentClip.createChild("div","device-mode-media-container"),this.contentArea=this.contentClip.createChild("div","device-mode-content-area"),this.outlineImage=this.contentArea.createChild("img","device-mode-outline-image hidden fill"),this.outlineImage.addEventListener("load",this.onImageLoaded.bind(this,this.outlineImage,!0),!1),this.outlineImage.addEventListener("error",this.onImageLoaded.bind(this,this.outlineImage,!1),!1),this.screenArea=this.contentArea.createChild("div","device-mode-screen-area"),this.screenImage=this.screenArea.createChild("img","device-mode-screen-image hidden"),this.screenImage.addEventListener("load",this.onImageLoaded.bind(this,this.screenImage,!0),!1),this.screenImage.addEventListener("error",this.onImageLoaded.bind(this,this.screenImage,!1),!1),this.bottomRightResizerElement=this.screenArea.createChild("div","device-mode-resizer device-mode-bottom-right-resizer"),this.bottomRightResizerElement.createChild("div",""),this.createResizer(this.bottomRightResizerElement,2,1),this.bottomLeftResizerElement=this.screenArea.createChild("div","device-mode-resizer device-mode-bottom-left-resizer"),this.bottomLeftResizerElement.createChild("div",""),this.createResizer(this.bottomLeftResizerElement,-2,1),this.rightResizerElement=this.screenArea.createChild("div","device-mode-resizer device-mode-right-resizer"),this.rightResizerElement.createChild("div",""),this.createResizer(this.rightResizerElement,2,0),this.leftResizerElement=this.screenArea.createChild("div","device-mode-resizer device-mode-left-resizer"),this.leftResizerElement.createChild("div",""),this.createResizer(this.leftResizerElement,-2,0),this.bottomResizerElement=this.screenArea.createChild("div","device-mode-resizer device-mode-bottom-resizer"),this.bottomResizerElement.createChild("div",""),this.createResizer(this.bottomResizerElement,0,1),this.bottomResizerElement.addEventListener("dblclick",this.model.setHeight.bind(this.model,0),!1),t.Tooltip.Tooltip.install(this.bottomResizerElement,D(C.doubleclickForFullHeight)),this.pageArea=this.screenArea.createChild("div","device-mode-page-area"),this.pageArea.createChild("slot")}populatePresetsContainer(){const e=[320,375,425,768,1024,1440,2560],t=[D(C.mobileS),D(C.mobileM),D(C.mobileL),D(C.tablet),D(C.laptop),D(C.laptopL),"4K"];this.presetBlocks=[];const i=this.responsivePresetsContainer.createChild("div","device-mode-presets-container-inner");for(let s=e.length-1;s>=0;--s){const r=i.createChild("div","fill device-mode-preset-bar-outer").createChild("div","device-mode-preset-bar");r.createChild("span").textContent=t[s]+" – "+e[s]+"px",r.addEventListener("click",o.bind(this,e[s]),!1),this.blockElementToWidth.set(r,e[s]),this.presetBlocks.push(r)}function o(e,t){this.model.emulate(r.DeviceModeModel.Type.Responsive,null,null),this.model.setWidthAndScaleToFit(e),t.consume()}}createResizer(e,i,o){const s=new t.ResizerWidget.ResizerWidget;s.addElement(e);let r=i?"ew-resize":"ns-resize";return i*o>0&&(r="nwse-resize"),i*o<0&&(r="nesw-resize"),s.setCursor(r),s.addEventListener(t.ResizerWidget.Events.ResizeStart,this.onResizeStart,this),s.addEventListener(t.ResizerWidget.Events.ResizeUpdateXY,this.onResizeUpdate.bind(this,i,o)),s.addEventListener(t.ResizerWidget.Events.ResizeEnd,this.onResizeEnd,this),s}onResizeStart(){this.slowPositionStart=null;const e=this.model.screenRect();this.resizeStart=new t.Geometry.Size(e.width,e.height)}onResizeUpdate(e,i,o){o.data.shiftKey!==Boolean(this.slowPositionStart)&&(this.slowPositionStart=o.data.shiftKey?{x:o.data.currentX,y:o.data.currentY}:null);let s=o.data.currentX-o.data.startX,n=o.data.currentY-o.data.startY;if(this.slowPositionStart&&(s=(o.data.currentX-this.slowPositionStart.x)/10+this.slowPositionStart.x-o.data.startX,n=(o.data.currentY-this.slowPositionStart.y)/10+this.slowPositionStart.y-o.data.startY),e&&this.resizeStart){const i=s*t.ZoomManager.ZoomManager.instance().zoomFactor();let o=this.resizeStart.width+i*e;o=Math.round(o/this.model.scale()),o>=r.DeviceModeModel.MinDeviceSize&&o<=r.DeviceModeModel.MaxDeviceSize&&this.model.setWidth(o)}if(i&&this.resizeStart){const e=n*t.ZoomManager.ZoomManager.instance().zoomFactor();let o=this.resizeStart.height+e*i;o=Math.round(o/this.model.scale()),o>=r.DeviceModeModel.MinDeviceSize&&o<=r.DeviceModeModel.MaxDeviceSize&&this.model.setHeight(o)}}exitHingeMode(){this.model&&this.model.exitHingeMode()}onResizeEnd(){delete this.resizeStart,e.userMetrics.actionTaken(e.UserMetrics.Action.ResizedViewInResponsiveMode)}updateUI(){function e(e,t){e.style.left=t.left+"px",e.style.top=t.top+"px",e.style.width=t.width+"px",e.style.height=t.height+"px"}if(!this.isShowing())return;const i=t.ZoomManager.ZoomManager.instance().zoomFactor();let o=!1;const s=this.showRulersSetting.get()&&this.model.type()!==r.DeviceModeModel.Type.None;let n=!1,a=!1;const d=this.model.screenRect().scale(1/i);this.cachedCssScreenRect&&d.isEqual(this.cachedCssScreenRect)||(e(this.screenArea,d),a=!0,o=!0,this.cachedCssScreenRect=d);const l=this.model.visiblePageRect().scale(1/i);this.cachedCssVisiblePageRect&&l.isEqual(this.cachedCssVisiblePageRect)||(e(this.pageArea,l),o=!0,this.cachedCssVisiblePageRect=l);const c=this.model.outlineRect();if(c){const t=c.scale(1/i);this.cachedOutlineRect&&t.isEqual(this.cachedOutlineRect)||(e(this.outlineImage,t),o=!0,this.cachedOutlineRect=t)}this.contentClip.classList.toggle("device-mode-outline-visible",Boolean(this.model.outlineImage()));const h=this.model.type()===r.DeviceModeModel.Type.Responsive;h!==this.cachedResizable&&(this.rightResizerElement.classList.toggle("hidden",!h),this.leftResizerElement.classList.toggle("hidden",!h),this.bottomResizerElement.classList.toggle("hidden",!h),this.bottomRightResizerElement.classList.toggle("hidden",!h),this.bottomLeftResizerElement.classList.toggle("hidden",!h),this.cachedResizable=h);const m=this.showMediaInspectorSetting.get()&&this.model.type()!==r.DeviceModeModel.Type.None;if(m!==this.cachedMediaInspectorVisible&&(m?this.mediaInspector.show(this.mediaInspectorContainer):this.mediaInspector.detach(),n=!0,o=!0,this.cachedMediaInspectorVisible=m),s!==this.cachedShowRulers&&(this.contentClip.classList.toggle("device-mode-rulers-visible",s),s?(this.topRuler.show(this.contentArea),this.leftRuler.show(this.contentArea)):(this.topRuler.detach(),this.leftRuler.detach()),n=!0,o=!0,this.cachedShowRulers=s),this.model.scale()!==this.cachedScale){a=!0,o=!0;for(const e of this.presetBlocks){const t=this.blockElementToWidth.get(e);if(!t)throw new Error("Could not get width for block.");e.style.width=t*this.model.scale()+"px"}this.cachedScale=this.model.scale()}this.toolbar.update(),this.loadImage(this.screenImage,this.model.screenImage()),this.loadImage(this.outlineImage,this.model.outlineImage()),this.mediaInspector.setAxisTransform(this.model.scale()),o&&this.doResize(),a&&(this.topRuler.render(this.model.scale()),this.leftRuler.render(this.model.scale()),this.topRuler.element.positionAt(this.cachedCssScreenRect?this.cachedCssScreenRect.left:0,this.cachedCssScreenRect?this.cachedCssScreenRect.top:0),this.leftRuler.element.positionAt(this.cachedCssScreenRect?this.cachedCssScreenRect.left:0,this.cachedCssScreenRect?this.cachedCssScreenRect.top:0)),n&&this.contentAreaResized()}loadImage(e,t){e.getAttribute("srcset")!==t&&(e.setAttribute("srcset",t),t||e.classList.toggle("hidden",!0))}onImageLoaded(e,t){e.classList.toggle("hidden",!t)}setNonEmulatedAvailableSize(e){if(this.model.type()!==r.DeviceModeModel.Type.None)return;const i=t.ZoomManager.ZoomManager.instance().zoomFactor(),o=e.getBoundingClientRect(),s=new t.Geometry.Size(Math.max(o.width*i,1),Math.max(o.height*i,1));this.model.setAvailableSize(s,s)}contentAreaResized(){const e=t.ZoomManager.ZoomManager.instance().zoomFactor(),i=this.contentArea.getBoundingClientRect(),o=new t.Geometry.Size(Math.max(i.width*e,1),Math.max(i.height*e,1)),s=new t.Geometry.Size(Math.max((i.width-2*(this.handleWidth||0))*e,1),Math.max((i.height-(this.handleHeight||0))*e,1));this.model.setAvailableSize(o,s)}measureHandles(){const e=this.rightResizerElement.classList.contains("hidden");this.rightResizerElement.classList.toggle("hidden",!1),this.bottomResizerElement.classList.toggle("hidden",!1),this.handleWidth=this.rightResizerElement.offsetWidth,this.handleHeight=this.bottomResizerElement.offsetHeight,this.rightResizerElement.classList.toggle("hidden",e),this.bottomResizerElement.classList.toggle("hidden",e)}zoomChanged(){delete this.handleWidth,delete this.handleHeight,this.isShowing()&&(this.measureHandles(),this.contentAreaResized())}onResize(){this.isShowing()&&this.contentAreaResized()}wasShown(){this.measureHandles(),this.toolbar.restore()}willHide(){this.model.emulate(r.DeviceModeModel.Type.None,null,null)}async captureScreenshot(){const e=await this.model.captureScreenshot(!1);if(null===e)return;const t=new Image;t.src="data:image/png;base64,"+e,t.onload=async()=>{const e=t.naturalWidth/this.model.screenRect().width,i=this.model.outlineRect();if(!i)throw new Error("Unable to take screenshot: no outlineRect available.");const o=i.scale(e),s=this.model.screenRect().scale(e),r=this.model.visiblePageRect().scale(e),n=s.left+r.left-o.left,a=s.top+r.top-o.top,d=document.createElement("canvas");d.width=Math.floor(o.width),d.height=Math.min(16384,Math.floor(o.height));const l=d.getContext("2d");if(!l)throw new Error("Could not get 2d context from canvas.");l.imageSmoothingEnabled=!1,this.model.outlineImage()&&await this.paintImage(l,this.model.outlineImage(),o.relativeTo(o)),this.model.screenImage()&&await this.paintImage(l,this.model.screenImage(),s.relativeTo(o)),l.drawImage(t,Math.floor(n),Math.floor(a)),this.saveScreenshot(d)}}async captureFullSizeScreenshot(){const e=await this.model.captureScreenshot(!0);if(null!==e)return this.saveScreenshotBase64(e)}async captureAreaScreenshot(e){const t=await this.model.captureScreenshot(!1,e);if(null!==t)return this.saveScreenshotBase64(t)}saveScreenshotBase64(e){const t=new Image;t.src="data:image/png;base64,"+e,t.onload=()=>{const e=document.createElement("canvas");e.width=t.naturalWidth,e.height=Math.min(16384,Math.floor(t.naturalHeight));const i=e.getContext("2d");if(!i)throw new Error("Could not get 2d context for base64 screenshot.");i.imageSmoothingEnabled=!1,i.drawImage(t,0,0),this.saveScreenshot(e)}}paintImage(e,t,i){return new Promise((o=>{const s=new Image;s.crossOrigin="Anonymous",s.srcset=t,s.onerror=()=>o(),s.onload=()=>{e.drawImage(s,i.left,i.top,i.width,i.height),o()}}))}saveScreenshot(e){const t=this.model.inspectedURL();let i="";if(t){const e=d.StringUtilities.removeURLFragment(t);i=d.StringUtilities.trimURL(e)}const o=this.model.device();o&&this.model.type()===r.DeviceModeModel.Type.Device&&(i+=`(${o.title})`);const s=document.createElement("a");s.download=i+".png",e.toBlob((e=>{null!==e&&(s.href=URL.createObjectURL(e),s.click())}))}}class z extends t.Widget.VBox{contentElementInternal;horizontal;scale;count;throttler;applyCallback;renderedScale;renderedZoomFactor;constructor(e,t){super(),this.element.classList.add("device-mode-ruler"),this.contentElementInternal=this.element.createChild("div","device-mode-ruler-content").createChild("div","device-mode-ruler-inner"),this.horizontal=e,this.scale=1,this.count=0,this.throttler=new n.Throttler.Throttler(0),this.applyCallback=t}render(e){this.scale=e,this.throttler.schedule(this.update.bind(this))}onResize(){this.throttler.schedule(this.update.bind(this))}update(){const e=t.ZoomManager.ZoomManager.instance().zoomFactor(),i=this.horizontal?this.contentElementInternal.offsetWidth:this.contentElementInternal.offsetHeight;this.scale===this.renderedScale&&e===this.renderedZoomFactor||(this.contentElementInternal.removeChildren(),this.count=0,this.renderedScale=this.scale,this.renderedZoomFactor=e);const o=i*e/this.scale,s=Math.ceil(o/5);let r=1;this.scale<.8&&(r=2),this.scale<.6&&(r=4),this.scale<.4&&(r=8),this.scale<.2&&(r=16),this.scale<.1&&(r=32);for(let e=s;e<this.count;e++)if(!(e%r)){const e=this.contentElementInternal.lastChild;e&&e.remove()}for(let t=this.count;t<s;t++){if(t%r)continue;const i=this.contentElementInternal.createChild("div","device-mode-ruler-marker");if(t&&(this.horizontal?i.style.left=5*t*this.scale/e+"px":i.style.top=5*t*this.scale/e+"px",!(t%20))){const e=i.createChild("div","device-mode-ruler-text");e.textContent=String(5*t),e.addEventListener("click",this.onMarkerClick.bind(this,5*t),!1)}t%10?t%5||i.classList.add("device-mode-ruler-marker-medium"):i.classList.add("device-mode-ruler-marker-large")}return this.count=s,Promise.resolve()}onMarkerClick(e){this.applyCallback.call(null,e)}}var L=Object.freeze({__proto__:null,DeviceModeView:R,Ruler:z});let W,A;class P extends t.Widget.VBox{inspectedPagePlaceholder;deviceModeView;toggleDeviceModeAction;showDeviceModeSetting;constructor(e){super(),this.inspectedPagePlaceholder=e,this.deviceModeView=null,this.toggleDeviceModeAction=t.ActionRegistry.ActionRegistry.instance().action("emulation.toggle-device-mode");const i=r.DeviceModeModel.DeviceModeModel.instance();this.showDeviceModeSetting=i.enabledSetting(),this.showDeviceModeSetting.setRequiresUserAction(Boolean(o.Runtime.Runtime.queryParam("hasOtherClients"))),this.showDeviceModeSetting.addChangeListener(this.update.bind(this,!1)),s.TargetManager.TargetManager.instance().addModelListener(s.OverlayModel.OverlayModel,s.OverlayModel.Events.ScreenshotRequested,this.screenshotRequestedFromOverlay,this),this.update(!0)}static instance(e={forceNew:null,inspectedPagePlaceholder:null}){const{forceNew:t,inspectedPagePlaceholder:i}=e;if(!W||t){if(!i)throw new Error(`Unable to create DeviceModeWrapper: inspectedPagePlaceholder must be provided: ${(new Error).stack}`);W=new P(i)}return W}toggleDeviceMode(){this.showDeviceModeSetting.set(!this.showDeviceModeSetting.get())}isDeviceModeOn(){return this.showDeviceModeSetting.get()}captureScreenshot(e,t){return this.deviceModeView||(this.deviceModeView=new R),this.deviceModeView.setNonEmulatedAvailableSize(this.inspectedPagePlaceholder.element),e?this.deviceModeView.captureFullSizeScreenshot():t?this.deviceModeView.captureAreaScreenshot(t):this.deviceModeView.captureScreenshot(),!0}screenshotRequestedFromOverlay(e){const t=e.data;this.captureScreenshot(!1,t)}update(e){if(this.toggleDeviceModeAction&&this.toggleDeviceModeAction.setToggled(this.showDeviceModeSetting.get()),!e){const e=this.deviceModeView&&this.deviceModeView.isShowing();if(this.showDeviceModeSetting.get()===e)return}this.showDeviceModeSetting.get()?(this.deviceModeView||(this.deviceModeView=new R),this.deviceModeView.show(this.element),this.inspectedPagePlaceholder.clearMinimumSize(),this.inspectedPagePlaceholder.show(this.deviceModeView.element)):(this.deviceModeView&&(this.deviceModeView.exitHingeMode(),this.deviceModeView.detach()),this.inspectedPagePlaceholder.restoreMinimumSize(),this.inspectedPagePlaceholder.show(this.element))}}class F{handleAction(e,i){if(P.instance())switch(i){case"emulation.capture-screenshot":return P.instance().captureScreenshot();case"emulation.capture-node-screenshot":{const e=t.Context.Context.instance().flavor(s.DOMModel.DOMNode);if(!e)return!0;async function i(){if(!e)return;const t=await e.resolveToObject();if(!t)return;const i=await t.callFunction((function(){const e=this.getBoundingClientRect(),t=this.ownerDocument.documentElement.getBoundingClientRect();return JSON.stringify({x:e.left-t.left,y:e.top-t.top,width:e.width,height:e.height,scale:1})}));if(!i.object)throw new Error("Clipping error: could not get object data.");const o=JSON.parse(i.object.value),s=await e.domModel().target().pageAgent().invoke_getLayoutMetrics(),r=!s.getError()&&s.visualViewport.zoom||1;o.x*=r,o.y*=r,o.width*=r,o.height*=r,P.instance().captureScreenshot(!1,o)}return i(),!0}case"emulation.capture-full-height-screenshot":return P.instance().captureScreenshot(!0);case"emulation.toggle-device-mode":return P.instance().toggleDeviceMode(),!0}return!1}static instance(e={forceNew:null}){const{forceNew:t}=e;return A&&!t||(A=new F),A}}var U=Object.freeze({__proto__:null,DeviceModeWrapper:P,ActionDelegate:F}),V={cssContent:":host{background-color:var(--color-background)}"};let B;class q extends(n.ObjectWrapper.eventMixin(t.Widget.Widget)){updateId;constructor(){super(!0),this.registerRequiredCSS(V),t.ZoomManager.ZoomManager.instance().addEventListener("ZoomChanged",this.onResize,this),this.restoreMinimumSize()}static instance(e={forceNew:null}){const{forceNew:t}=e;return B&&!t||(B=new q),B}onResize(){this.updateId&&this.element.window().cancelAnimationFrame(this.updateId),this.updateId=this.element.window().requestAnimationFrame(this.update.bind(this,!1))}restoreMinimumSize(){this.setMinimumSize(150,150)}clearMinimumSize(){this.setMinimumSize(1,1)}dipPageRect(){const e=t.ZoomManager.ZoomManager.instance().zoomFactor(),i=this.element.getBoundingClientRect(),o=this.element.ownerDocument.body.getBoundingClientRect(),s=Math.max(i.left*e,o.left*e),r=Math.max(i.top*e,o.top*e),n=Math.min(i.bottom*e,o.bottom*e);return{x:s,y:r,width:Math.min(i.right*e,o.right*e)-s,height:n-r}}update(e){delete this.updateId;const t=this.dipPageRect(),i={x:Math.round(t.x),y:Math.round(t.y),height:Math.max(1,Math.round(t.height)),width:Math.max(1,Math.round(t.width))};e&&(--i.height,this.dispatchEventToListeners("Update",i),++i.height),this.dispatchEventToListeners("Update",i)}}var Q=Object.freeze({__proto__:null,InspectedPagePlaceholder:q});let O,j;class H{rootSplitWidget;deviceModeView;inspectedPagePlaceholder;toolboxWindow;toolboxRootView;changingDockSide;constructor(){t.DockController.DockController.instance().addEventListener("BeforeDockSideChanged",this.openToolboxWindow,this)}static instance(){return O||(O=new H),O}presentUI(e){const i=new t.RootView.RootView;this.rootSplitWidget=new t.SplitWidget.SplitWidget(!1,!0,"InspectorView.splitViewState",555,300,!0),this.rootSplitWidget.show(i.element),this.rootSplitWidget.setSidebarWidget(t.InspectorView.InspectorView.instance()),this.rootSplitWidget.setDefaultFocusedChild(t.InspectorView.InspectorView.instance()),t.InspectorView.InspectorView.instance().setOwnerSplit(this.rootSplitWidget),this.inspectedPagePlaceholder=q.instance(),this.inspectedPagePlaceholder.addEventListener("Update",this.onSetInspectedPageBounds.bind(this),this),this.deviceModeView=P.instance({inspectedPagePlaceholder:this.inspectedPagePlaceholder,forceNew:!1}),t.DockController.DockController.instance().addEventListener("BeforeDockSideChanged",this.onBeforeDockSideChange,this),t.DockController.DockController.instance().addEventListener("DockSideChanged",this.onDockSideChange,this),t.DockController.DockController.instance().addEventListener("AfterDockSideChanged",this.onAfterDockSideChange,this),this.onDockSideChange(),console.timeStamp("AdvancedApp.attachToBody"),i.attachToDocument(e),i.focus(),this.inspectedPagePlaceholder.update()}openToolboxWindow(e){if("undocked"!==e.data.to)return;if(this.toolboxWindow)return;const t=window.location.href.replace("devtools_app.html","device_mode_emulation_frame.html");this.toolboxWindow=window.open(t,void 0)}deviceModeEmulationFrameLoaded(e){i.ThemeSupport.instance().applyTheme(e),i.ThemeSupport.instance().addEventListener(i.ThemeChangeEvent.eventName,(()=>{i.ThemeSupport.instance().applyTheme(e)})),t.UIUtils.initializeUIUtils(e),t.UIUtils.installComponentRootStyles(e.body),t.ContextMenu.ContextMenu.installHandler(e),this.toolboxRootView=new t.RootView.RootView,this.toolboxRootView.attachToDocument(e),this.updateDeviceModeView()}updateDeviceModeView(){this.isDocked()?this.rootSplitWidget.setMainWidget(this.deviceModeView):this.toolboxRootView&&this.deviceModeView.show(this.toolboxRootView.element)}onBeforeDockSideChange(e){"undocked"===e.data.to&&this.toolboxRootView&&(this.rootSplitWidget.hideSidebar(),this.inspectedPagePlaceholder.update()),this.changingDockSide=!0}onDockSideChange(e){this.updateDeviceModeView();const i=e?e.data.to:t.DockController.DockController.instance().dockSide();if(void 0===i)throw new Error("Got onDockSideChange event with unexpected undefined for dockSide()");"undocked"===i?this.updateForUndocked():this.toolboxRootView&&e&&"undocked"===e.data.from?this.rootSplitWidget.hideSidebar():this.updateForDocked(i)}onAfterDockSideChange(e){this.changingDockSide&&(e.data.from&&"undocked"===e.data.from&&this.updateForDocked(e.data.to),this.changingDockSide=!1,this.inspectedPagePlaceholder.update())}updateForDocked(e){this.rootSplitWidget.resizerElement().style.transform="right"===e?"translateX(2px)":"left"===e?"translateX(-2px)":"",this.rootSplitWidget.setVertical("right"===e||"left"===e),this.rootSplitWidget.setSecondIsSidebar("right"===e||"bottom"===e),this.rootSplitWidget.toggleResizer(this.rootSplitWidget.resizerElement(),!0),this.rootSplitWidget.toggleResizer(t.InspectorView.InspectorView.instance().topResizerElement(),"bottom"===e),this.rootSplitWidget.showBoth()}updateForUndocked(){this.rootSplitWidget.toggleResizer(this.rootSplitWidget.resizerElement(),!1),this.rootSplitWidget.toggleResizer(t.InspectorView.InspectorView.instance().topResizerElement(),!1),this.rootSplitWidget.hideMain()}isDocked(){return"undocked"!==t.DockController.DockController.instance().dockSide()}onSetInspectedPageBounds(t){if(this.changingDockSide)return;const i=this.inspectedPagePlaceholder.element.window();if(!i.innerWidth||!i.innerHeight)return;if(!this.inspectedPagePlaceholder.isShowing())return;const o=t.data;console.timeStamp("AdvancedApp.setInspectedPageBounds"),e.InspectorFrontendHost.InspectorFrontendHostInstance.setInspectedPageBounds(o)}}globalThis.Emulation=globalThis.Emulation||{},globalThis.Emulation.AdvancedApp=H;class N{static instance(e={forceNew:null}){const{forceNew:t}=e;return j&&!t||(j=new N),j}createApp(){return H.instance()}}var Z=Object.freeze({__proto__:null,AdvancedApp:H,AdvancedAppProvider:N});export{Z as AdvancedApp,S as DeviceModeToolbar,L as DeviceModeView,U as DeviceModeWrapper,Q as InspectedPagePlaceholder,y as MediaQueryInspector};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../core/common/common.js";import*as t from"../../core/sdk/sdk.js";import*as n from"../../core/i18n/i18n.js";import*as r from"../../ui/legacy/components/object_ui/object_ui.js";import*as o from"../../ui/legacy/components/utils/utils.js";import*as i from"../../ui/legacy/legacy.js";async function s(n){const r=n.runtimeModel().target().model(t.DOMDebuggerModel.DOMDebuggerModel);if(!r)return{eventListeners:[],internalHandlers:null};const o={internalHandlers:null,eventListeners:[]};return n.callFunction((function(){const e=[];let t=[],n=[],r=[function(e){if(!(e&&e instanceof Node))return{eventListeners:[]};const t=window.jQuery;if(!t||!t.fn)return{eventListeners:[]};const n=t,r=t._data||t.data,o=[],i=[];if("function"==typeof r){const t=r(e,"events");for(const n in t)for(const r in t[n]){const i=t[n][r];if("object"==typeof i||"function"==typeof i){const t={handler:i.handler||i,useCapture:!0,passive:!1,once:!1,type:n,remove:u.bind(e,i.selector)};o.push(t)}}const n=r(e);n&&"function"==typeof n.handle&&i.push(n.handle)}const s=n(e)[0];if(s){const e=s.$events;for(const t in e){const n=e[t];for(const e in n)if("function"==typeof n[e]){const r={handler:n[e],useCapture:!0,passive:!1,once:!1,type:t};o.push(r)}}s&&s.$handle&&i.push(s.$handle)}return{eventListeners:o,internalHandlers:i}}];try{self.devtoolsFrameworkEventListeners&&i(self.devtoolsFrameworkEventListeners)&&(r=r.concat(self.devtoolsFrameworkEventListeners))}catch(t){e.push("devtoolsFrameworkEventListeners call produced error: "+a(t))}for(let o=0;o<r.length;++o)try{const e=r[o](this);if(e.eventListeners&&i(e.eventListeners)){const n=e.eventListeners.map((e=>s(e))).filter(c);t=t.concat(n)}if(e.internalHandlers&&i(e.internalHandlers)){const t=e.internalHandlers.map((e=>l(e))).filter(c);n=n.concat(t)}}catch(t){e.push("fetcher call produced error: "+a(t))}const o={eventListeners:t,internalHandlers:n.length?n:void 0,errorString:void 0};o.internalHandlers||delete o.internalHandlers;if(e.length){let t="Framework Event Listeners API Errors:\n\t"+e.join("\n\t");t=t.substr(0,t.length-1),o.errorString=t}""!==o.errorString&&void 0!==o.errorString||delete o.errorString;return o;function i(e){if(!e||"object"!=typeof e)return!1;try{if("function"==typeof e.splice){const t=e.length;return"number"==typeof t&&t>>>0===t&&(t>0||1/t>0)}}catch(e){}return!1}function s(t){try{let n="";if(t){const e=t.type;e&&"string"==typeof e||(n+="event listener's type isn't string or empty, ");const r=t.useCapture;"boolean"!=typeof r&&(n+="event listener's useCapture isn't boolean or undefined, ");const o=t.passive;"boolean"!=typeof o&&(n+="event listener's passive isn't boolean or undefined, ");const i=t.once;"boolean"!=typeof i&&(n+="event listener's once isn't boolean or undefined, ");const s=t.handler;s&&"function"==typeof s||(n+="event listener's handler isn't a function or empty, ");const l=t.remove;if(l&&"function"!=typeof l&&(n+="event listener's remove isn't a function, "),!n)return{type:e,useCapture:r,passive:o,once:i,handler:s,remove:l}}else n+="empty event listener, ";return e.push(n.substr(0,n.length-2)),null}catch(t){return e.push(a(t)),null}}function l(t){return t&&"function"==typeof t?t:(e.push("internal handler isn't a function or empty"),null)}function a(e){try{return String(e)}catch(e){return"<error>"}}function c(e){return Boolean(e)}function u(e,t,n){if(!(this&&this instanceof Node))return;const r=window.jQuery;if(!r||!r.fn)return;r(this).off(t,e,n)}}),void 0).then(c).then((function(e){return e.getOwnProperties(!1)})).then((async function(n){if(!n.properties)throw new Error("Object properties is empty");const r=[];for(const u of n.properties)"eventListeners"===u.name&&u.value&&r.push(i(u.value).then(l)),"internalHandlers"===u.name&&u.value&&r.push((c=u.value,t.RemoteObject.RemoteArray.objectAsArray(c).map(s).then(t.RemoteObject.RemoteArray.createFromRemoteObjects.bind(null))).then(a)),"errorString"===u.name&&u.value&&(o=u.value,e.Console.Console.instance().error(String(o.value)));var o;var c;await Promise.all(r)})).then((function(){return o})).catch((e=>(console.error(e),o)));function i(e){return t.RemoteObject.RemoteArray.objectAsArray(e).map((function(e){let o,i,l,a,u=null,d=null,h=null,v=null;const p=[];function f(e){h=e?e.location:null}return p.push(e.callFunctionJSON((function(){return{type:this.type,useCapture:this.useCapture,passive:this.passive,once:this.once}}),void 0).then((function(e){void 0!==e.type&&(o=e.type);void 0!==e.useCapture&&(i=e.useCapture);void 0!==e.passive&&(l=e.passive);void 0!==e.once&&(a=e.once)}))),p.push(e.callFunction((function(){return this.handler||null})).then(c).then((function(e){return d=e,d})).then(s).then((function(e){return u=e,e.debuggerModel().functionDetailsPromise(e).then(f)}))),p.push(e.callFunction((function(){return this.remove||null})).then(c).then((function(e){if("function"!==e.type)return;v=e}))),Promise.all(p).then((function(){if(!h)throw new Error("Empty event listener's location");return new t.DOMDebuggerModel.EventListener(r,n,o,i,l,a,u,d,h,v,t.DOMDebuggerModel.EventListener.Origin.FrameworkUser)})).catch((e=>(console.error(e),null)))})).then(u)}function s(e){return t.RemoteObject.RemoteFunction.objectAsFunction(e).targetFunction()}function l(e){o.eventListeners=e}function a(e){o.internalHandlers=e}function c(e){if(e.wasThrown||!e.object)throw new Error("Exception in callFunction or empty result");return e.object}function u(e){return e.filter((function(e){return Boolean(e)}))}}var l=Object.freeze({__proto__:null,frameworkEventListeners:s});const a=new CSSStyleSheet;a.replaceSync(".value.object-value-node:hover{background-color:var(--item-hover-color)}.object-value-function-prefix,\n.object-value-boolean{color:var(--color-syntax-3)}.object-value-function{font-style:italic}.object-value-function.linkified:hover{--override-linkified-hover-background:rgb(0 0 0/10%);background-color:var(--override-linkified-hover-background);cursor:pointer}.-theme-with-dark-background .object-value-function.linkified:hover,\n:host-context(.-theme-with-dark-background) .object-value-function.linkified:hover{--override-linkified-hover-background:rgb(230 230 230/10%)}.object-value-number{color:var(--color-syntax-3)}.object-value-bigint{color:var(--color-syntax-6)}.object-value-string,\n.object-value-regexp,\n.object-value-symbol{white-space:pre;unicode-bidi:-webkit-isolate;color:var(--color-syntax-1)}.object-value-node{position:relative;vertical-align:baseline;color:var(--color-syntax-7);white-space:nowrap}.object-value-null,\n.object-value-undefined{color:var(--color-text-disabled)}.object-value-unavailable{color:var(--color-syntax-2)}.object-value-calculate-value-button:hover{text-decoration:underline}.object-properties-section-custom-section{display:inline-flex;flex-direction:column}.-theme-with-dark-background .object-value-number,\n:host-context(.-theme-with-dark-background) .object-value-number,\n.-theme-with-dark-background .object-value-boolean,\n:host-context(.-theme-with-dark-background) .object-value-boolean{--override-primitive-dark-mode-color:hsl(252deg 100% 75%);color:var(--override-primitive-dark-mode-color)}.object-properties-section .object-description{color:var(--color-text-secondary)}.value .object-properties-preview{white-space:nowrap}.name{color:var(--color-syntax-2);flex-shrink:0}.object-properties-preview .name{color:var(--color-text-secondary)}@media (forced-colors: active){.object-value-calculate-value-button:hover{forced-color-adjust:none;color:Highlight}}\n/*# sourceURL=objectValue.css */\n");const c=new CSSStyleSheet;c.replaceSync(".tree-outline-disclosure li{padding:2px 0 0 5px;overflow:hidden;display:flex;min-height:17px;align-items:baseline}.tree-outline-disclosure > li{border-top:1px solid var(--color-background-elevation-0)}.tree-outline-disclosure > li:first-of-type{border-top:none}.tree-outline-disclosure{padding-left:0!important;padding-right:3px}.tree-outline-disclosure li.parent::before{top:0!important}.tree-outline-disclosure .name{color:var(--color-syntax-2)}.tree-outline-disclosure .object-value-node,\n.tree-outline-disclosure .object-value-object{overflow:hidden;text-overflow:ellipsis}.event-listener-details{display:flex}.event-listener-tree-subtitle{float:right;margin-left:5px;flex-shrink:0}.event-listener-button{padding:0 3px;background-color:var(--color-background-elevation-1);border-radius:3px;border:1px solid var(--color-details-hairline);margin-left:5px;display:block;opacity:80%;flex-shrink:0}.event-listener-button:hover{background-color:var(--color-background-elevation-2);opacity:100%}.tree-outline-disclosure li:hover .event-listener-button{display:inline}@media (forced-colors: active){.event-listener-details .event-listener-button{forced-color-adjust:none;opacity:100%;background:ButtonFace;color:ButtonText;border-color:ButtonText}.event-listener-button:hover{background-color:Highlight!important;color:HighlightText;border-color:ButtonText}.tree-outline.hide-selection-when-blurred .selected:focus-visible .event-listener-button,\n .tree-outline-disclosure li:focus-visible .gray-info-message{background-color:Highlight;color:HighlightText;border-color:HighlightText}}\n/*# sourceURL=eventListenersView.css */\n");const u={noEventListeners:"No event listeners",remove:"Remove",deleteEventListener:"Delete event listener",togglePassive:"Toggle Passive",toggleWhetherEventListenerIs:"Toggle whether event listener is passive or blocking",revealInElementsPanel:"Reveal in Elements panel",passive:"Passive"},d=n.i18n.registerUIStrings("panels/event_listeners/EventListenersView.ts",u),h=n.i18n.getLocalizedString.bind(void 0,d);class v extends i.Widget.VBox{changeCallback;enableDefaultTreeFocus;treeOutline;emptyHolder;linkifier;treeItemMap;constructor(e,t=!1){super(),this.changeCallback=e,this.enableDefaultTreeFocus=t,this.treeOutline=new i.TreeOutline.TreeOutlineInShadow,this.treeOutline.setComparator(p.comparator),this.treeOutline.element.classList.add("monospace"),this.treeOutline.setShowSelectionOnKeyboardFocus(!0),this.treeOutline.setFocusable(!0),this.element.appendChild(this.treeOutline.element),this.emptyHolder=document.createElement("div"),this.emptyHolder.classList.add("gray-info-message"),this.emptyHolder.textContent=h(u.noEventListeners),this.emptyHolder.tabIndex=-1,this.linkifier=new o.Linkifier.Linkifier,this.treeItemMap=new Map}focus(){this.enableDefaultTreeFocus&&(this.emptyHolder.parentNode?this.emptyHolder.focus():this.treeOutline.forceSelect())}async addObjects(e){this.reset(),await Promise.all(e.map((e=>e?this.addObject(e):Promise.resolve()))),this.addEmptyHolderIfNeeded(),this.eventListenersArrivedForTest()}addObject(e){let n,r=null;const o=[],i=e.runtimeModel().target().model(t.DOMDebuggerModel.DOMDebuggerModel);return i&&o.push(i.eventListeners(e).then((function(e){n=e}))),o.push(s(e).then((function(e){r=e}))),Promise.all(o).then((async function(){if(!r)return;if(!r.internalHandlers)return;return r.internalHandlers.object().callFunctionJSON((function(){const e=[],t=new Set(this);for(const n of arguments)e.push(t.has(n));return e}),n.map((function(e){return t.RemoteObject.RemoteObject.toCallArgument(e.handler())}))).then((function(e){for(let t=0;t<n.length;++t)e[t]&&n[t].markAsFramework()}))})).then(function(){this.addObjectEventListeners(e,n),r&&this.addObjectEventListeners(e,r.eventListeners)}.bind(this))}addObjectEventListeners(e,t){if(t)for(const n of t){this.getOrCreateTreeElementForType(n.type()).addObjectEventListener(n,e)}}showFrameworkListeners(e,n,r){const o=this.treeOutline.rootElement().children();for(const i of o){let o=!0;for(const s of i.children()){const i=s,l=i.eventListener().origin();let a=!1;l!==t.DOMDebuggerModel.EventListener.Origin.FrameworkUser||e||(a=!0),l===t.DOMDebuggerModel.EventListener.Origin.Framework&&e&&(a=!0),!n&&i.eventListener().passive()&&(a=!0),r||i.eventListener().passive()||(a=!0),i.hidden=a,o=o&&a}i.hidden=o}}getOrCreateTreeElementForType(e){let t=this.treeItemMap.get(e);return t||(t=new p(e,this.linkifier,this.changeCallback),this.treeItemMap.set(e,t),t.hidden=!0,this.treeOutline.appendChild(t)),this.emptyHolder.remove(),t}addEmptyHolderIfNeeded(){let e=!0,t=null;for(const n of this.treeOutline.rootElement().children())n.hidden=!n.firstChild(),e=e&&n.hidden,t||n.hidden||(t=n);e&&!this.emptyHolder.parentNode&&this.element.appendChild(this.emptyHolder),t&&t.select(!0),this.treeOutline.setFocusable(Boolean(t))}reset(){const e=this.treeOutline.rootElement().children();for(const t of e)t.removeChildren();this.linkifier.reset()}eventListenersArrivedForTest(){}wasShown(){super.wasShown(),this.treeOutline.registerCSSFiles([c,a])}}class p extends i.TreeOutline.TreeElement{toggleOnClick;linkifier;changeCallback;constructor(e,t,n){super(e),this.toggleOnClick=!0,this.linkifier=t,this.changeCallback=n,i.ARIAUtils.setLabel(this.listItemElement,`${e}, event listener`)}static comparator(e,t){return e.title===t.title?0:e.title>t.title?1:-1}addObjectEventListener(e,t){const n=new f(e,t,this.linkifier,this.changeCallback);this.appendChild(n)}}class f extends i.TreeOutline.TreeElement{eventListenerInternal;editable;changeCallback;valueTitle;constructor(e,t,n,r){super("",!0),this.eventListenerInternal=e,this.editable=!1,this.setTitle(t,n),this.changeCallback=r}async onpopulate(){const e=[],n=this.eventListenerInternal,o=n.domDebuggerModel().runtimeModel();e.push(o.createRemotePropertyFromPrimitiveValue("useCapture",n.useCapture())),e.push(o.createRemotePropertyFromPrimitiveValue("passive",n.passive())),e.push(o.createRemotePropertyFromPrimitiveValue("once",n.once())),void 0!==n.handler()&&e.push(new t.RemoteObject.RemoteObjectProperty("handler",n.handler())),r.ObjectPropertiesSection.ObjectPropertyTreeElement.populateWithProperties(this,e,[],!0,!0,null)}setTitle(t,n){const o=this.listItemElement.createChild("span","event-listener-details"),s=r.ObjectPropertiesSection.ObjectPropertiesSection.createPropertyValue(t,!1,!1);if(this.valueTitle=s.element,o.appendChild(this.valueTitle),this.eventListenerInternal.canRemove()){const e=o.createChild("span","event-listener-button");e.textContent=h(u.remove),i.Tooltip.Tooltip.install(e,h(u.deleteEventListener)),e.addEventListener("click",(e=>{this.removeListener(),e.consume()}),!1),o.appendChild(e)}if(this.eventListenerInternal.isScrollBlockingType()&&this.eventListenerInternal.canTogglePassive()){const e=o.createChild("span","event-listener-button");e.textContent=h(u.togglePassive),i.Tooltip.Tooltip.install(e,h(u.toggleWhetherEventListenerIs)),e.addEventListener("click",(e=>{this.togglePassiveListener(),e.consume()}),!1),o.appendChild(e)}const l=o.createChild("span","event-listener-tree-subtitle"),a=n.linkifyRawLocation(this.eventListenerInternal.location(),this.eventListenerInternal.sourceURL());l.appendChild(a),this.listItemElement.addEventListener("contextmenu",(n=>{const r=new i.ContextMenu.ContextMenu(n);n.target!==a&&r.appendApplicableItems(a),"node"===t.subtype&&r.defaultSection().appendItem(h(u.revealInElementsPanel),(()=>e.Revealer.reveal(t))),r.defaultSection().appendItem(h(u.deleteEventListener),this.removeListener.bind(this),!this.eventListenerInternal.canRemove()),r.defaultSection().appendCheckboxItem(h(u.passive),this.togglePassiveListener.bind(this),this.eventListenerInternal.passive(),!this.eventListenerInternal.canTogglePassive()),r.show()}))}removeListener(){this.removeListenerBar(),this.eventListenerInternal.remove()}togglePassiveListener(){this.eventListenerInternal.togglePassive().then((()=>this.changeCallback()))}removeListenerBar(){const e=this.parent;if(!e)return;e.removeChild(this),e.childCount()||e.collapse();let t=!0;for(const n of e.children())n.hidden||(t=!1);e.hidden=t}eventListener(){return this.eventListenerInternal}onenter(){return!!this.valueTitle&&(this.valueTitle.click(),!0)}ondelete(){return!!this.eventListenerInternal.canRemove()&&(this.removeListener(),!0)}}var m=Object.freeze({__proto__:null,EventListenersView:v,EventListenersTreeElement:p,ObjectEventListenerBar:f});export{l as EventListenersUtils,m as EventListenersView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../../ui/components/helpers/helpers.js";import*as n from"../../../ui/lit-html/lit-html.js";import*as t from"../../../core/common/common.js";import*as o from"../../../core/i18n/i18n.js";import*as s from"../../../ui/components/icon_button/icon_button.js";import*as i from"../../../ui/legacy/legacy.js";const l=new CSSStyleSheet;l.replaceSync(".element-reveal-icon{--override-element-reveal-icon-background:rgb(110 110 110);display:inline-block;width:20px;height:20px;-webkit-mask-image:var(--image-file-select-element);background-color:var(--icon-default)}\n/*# sourceURL=./elementsPanelLink.css */\n");class a extends HTMLElement{static litTagName=n.literal`devtools-elements-panel-link`;#e=this.attachShadow({mode:"open"});#n=()=>{};#t=()=>{};#o=()=>{};set data(e){this.#n=e.onElementRevealIconClick,this.#t=e.onElementRevealIconMouseEnter,this.#o=e.onElementRevealIconMouseLeave,this.#s()}#s(){this.#i()}connectedCallback(){this.#e.adoptedStyleSheets=[l]}#i(){n.render(n.html` <span class="element-reveal-icon" @click="${this.#n}" @mouseenter="${this.#t}" @mouseleave="${this.#o}"></span> `,this.#e,{host:this})}}e.CustomElements.defineComponent("devtools-elements-panel-link",a);var c=Object.freeze({__proto__:null,ElementsPanelLink:a});const m=new CSSStyleSheet;m.replaceSync(".hide-issues-menu-btn{position:relative;display:flex;background-color:transparent;flex:none;align-items:center;justify-content:center;padding:0;margin:0 -2px 0 4px;overflow:hidden;border-radius:0;border:none;--icon-color:var(--icon-default)}.hide-issues-menu-btn:hover{--icon-color:var(--icon-default-hover)}\n/*# sourceURL=./hideIssuesMenu.css */\n");const r={tooltipTitle:"Hide issues"},d=o.i18n.registerUIStrings("panels/issues/components/HideIssuesMenu.ts",r),u=o.i18n.getLocalizedString.bind(void 0,d);class h extends HTMLElement{static litTagName=n.literal`devtools-hide-issues-menu`;#e=this.attachShadow({mode:"open"});#l=t.UIString.LocalizedEmptyString;#a=()=>{};set data(e){this.#l=e.menuItemLabel,this.#a=e.menuItemAction,this.#i()}connectedCallback(){this.#e.adoptedStyleSheets=[m]}onMenuOpen(e){e.stopPropagation();const n=new i.ContextMenu.ContextMenu(e,{useSoftMenu:!0,onSoftMenuClosed:()=>{this.classList.toggle("has-context-menu-opened",!1)}});n.headerSection().appendItem(this.#l,(()=>this.#a())),n.show(),this.classList.toggle("has-context-menu-opened",!0)}#i(){n.render(n.html` <button class="hide-issues-menu-btn" @click="${this.onMenuOpen.bind(this)}" title="${u(r.tooltipTitle)}"> <${s.Icon.Icon.litTagName} .data="${{color:"var(--icon-color)",iconName:"dots-vertical",height:"20px",width:"20px"}}"></${s.Icon.Icon.litTagName}> </button> `,this.#e,{host:this})}}e.CustomElements.defineComponent("devtools-hide-issues-menu",h);var p=Object.freeze({__proto__:null,HideIssuesMenu:h});export{c as ElementsPanelLink,p as HideIssuesMenu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../core/common/common.js";import*as s from"../../core/root/root.js";import*as i from"../../models/issues_manager/issues_manager.js";import*as o from"../../ui/legacy/legacy.js";import*as a from"../../core/i18n/i18n.js";const n={issues:"Issues",showIssues:"Show Issues",cspViolations:"CSP Violations",showCspViolations:"Show CSP Violations"},t=a.i18n.registerUIStrings("panels/issues/issues-meta.ts",n),r=a.i18n.getLazilyComputedLocalizedString.bind(void 0,t);let l;async function m(){return l||(l=await import("./issues.js")),l}o.ViewManager.registerViewExtension({location:"drawer-view",id:"issues-pane",title:r(n.issues),commandPrompt:r(n.showIssues),order:100,persistence:"closeable",loadView:async()=>(await m()).IssuesPane.IssuesPane.instance()}),o.ViewManager.registerViewExtension({location:"drawer-view",id:"csp-violations-pane",title:r(n.cspViolations),commandPrompt:r(n.showCspViolations),order:100,persistence:"closeable",loadView:async()=>(await m()).CSPViolationsView.CSPViolationsView.instance(),experiment:s.Runtime.ExperimentName.CSP_VIOLATIONS_VIEW}),e.Revealer.registerRevealer({contextTypes:()=>[i.Issue.Issue],destination:e.Revealer.RevealerDestination.ISSUES_VIEW,loadRevealer:async()=>(await m()).IssueRevealer.IssueRevealer.instance()});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../models/issues_manager/issues_manager.js";import*as t from"../../core/i18n/i18n.js";import*as s from"../../ui/legacy/legacy.js";import*as i from"../../ui/components/data_grid/data_grid.js";import*as n from"../../ui/components/linkifier/linkifier.js";import*as a from"../../ui/lit-html/lit-html.js";import*as r from"../../core/common/common.js";import*as o from"../../ui/components/issue_counter/issue_counter.js";import*as d from"../../ui/components/adorners/adorners.js";import*as l from"../../core/host/host.js";import*as u from"../../ui/components/icon_button/icon_button.js";import*as c from"../../ui/components/markdown_view/markdown_view.js";import*as p from"../network/forward/forward.js";import*as h from"./components/components.js";import*as g from"../../core/root/root.js";import*as f from"../../core/platform/platform.js";import*as m from"../../core/sdk/sdk.js";import*as C from"../../models/logs/logs.js";import*as I from"../../ui/legacy/components/utils/utils.js";import*as w from"../../ui/components/request_link_icon/request_link_icon.js";const y=new CSSStyleSheet;y.replaceSync(".csp-violations-pane{overflow:hidden}.csp-violations-toolbar{border-bottom:var(--color-details-hairline)}\n/*# sourceURL=cspViolationsView.css */\n");const b={genericMenuLabel:"Menu"},v=t.i18n.registerUIStrings("panels/issues/ComboBoxOfCheckBoxes.ts",b),R=t.i18n.getLocalizedString.bind(void 0,v);class k extends s.Toolbar.ToolbarButton{#e=new Array;#t=new Array;#s=()=>{};constructor(e){super(e),this.turnIntoSelect(),this.addEventListener(s.Toolbar.ToolbarButton.Events.Click,this.#i.bind(this)),s.ARIAUtils.markAsMenuButton(this.element)}addOption(e,t,s){this.#e.push({title:e,value:t,default:s,enabled:s})}setOptionEnabled(e,t){const s=this.#e[e];s&&(s.enabled=t,this.#s())}addHeader(e,t){this.#t.push({title:e,callback:t})}setOnOptionClicked(e){this.#s=e}getOptions(){return this.#e}async#i({data:e}){const t=new s.ContextMenu.ContextMenu(e,{useSoftMenu:!0,x:this.element.getBoundingClientRect().left,y:this.element.getBoundingClientRect().top+this.element.offsetHeight});for(const{title:e,callback:s}of this.#t)t.headerSection().appendItem(e,(()=>s()));for(const[e,{title:s,enabled:i}]of this.#e.entries())t.defaultSection().appendCheckboxItem(s,(()=>{this.setOptionEnabled(e,!i)}),i);t.setContextMenuLabel(this.title??R(b.genericMenuLabel)),await t.show(),t.markAsMenuItemCheckBox()}}const x=new CSSStyleSheet;x.replaceSync("\n/*# sourceURL=cspViolationsListView.css */\n");class S extends s.Widget.VBox{#n=new i.DataGridController.DataGridController;#a=new Set;#r=new Map;constructor(){super(!0),this.#n.data={columns:[{id:"sourceCode",title:"Source Code",sortable:!1,widthWeighting:1,visible:!0,hideable:!1},{id:"violatedDirective",title:"Violated Directive",sortable:!1,widthWeighting:1,visible:!0,hideable:!1},{id:"category",title:"Category",sortable:!1,widthWeighting:1,visible:!0,hideable:!1},{id:"status",title:"Status",sortable:!1,widthWeighting:1,visible:!0,hideable:!1}],rows:[]},this.contentElement.appendChild(this.#n)}updateTextFilter(e){0===e.length?this.#n.data={...this.#n.data,filters:[]}:this.#n.data={...this.#n.data,filters:[{text:e,key:void 0,regex:void 0,negative:!1}]}}updateCategoryFilter(e){this.#a=e;const t=[];for(const[e,s]of this.#r.entries())this.#o(e)&&t.push(s);this.#n.data={...this.#n.data,rows:t}}#o(e){return this.#a.has(e.code())||0===this.#a.size}addIssue(t){const s=e.Issue.toZeroBasedLocation(t.details().sourceCodeLocation);if(!s)return;const i=t.details().isReportOnly?"report-only":"blocked",r=this.#d(t.code()),o={cells:[{columnId:"sourceCode",value:s.url,renderer:()=>a.html`<${n.Linkifier.Linkifier.litTagName} .data="${s}"></${n.Linkifier.Linkifier.litTagName}>`},{columnId:"violatedDirective",value:t.details().violatedDirective},{columnId:"category",value:r},{columnId:"status",value:i}]};this.#r.set(t,o),this.#o(t)&&(this.#n.data.rows.push(o),this.#n.data={...this.#n.data})}clearIssues(){this.#r.clear(),this.#n.data={...this.#n.data,rows:[]}}#d(t){return t===e.ContentSecurityPolicyIssue.inlineViolationCode?"Inline Violation":t===e.ContentSecurityPolicyIssue.urlViolationCode?"URL Violation":t===e.ContentSecurityPolicyIssue.evalViolationCode?"Eval Violation":t===e.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode?"Sink Violation":t===e.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode?"Policy Violation":"unknown"}wasShown(){super.wasShown(),this.registerCSSFiles([x])}}const T={filter:"Filter"},A=t.i18n.registerUIStrings("panels/issues/CSPViolationsView.ts",T),E=t.i18n.getLocalizedString.bind(void 0,A);let L;class M extends s.Widget.VBox{#l=new S;#u=e.IssuesManager.IssuesManager.instance();constructor(){super(!0),this.contentElement.classList.add("csp-violations-pane");const t=new s.Toolbar.Toolbar("csp-violations-toolbar",this.contentElement),i=new s.Toolbar.ToolbarInput(E(T.filter),"",1,.2,"");i.addEventListener(s.Toolbar.ToolbarInput.Event.TextChanged,(()=>{this.#l.updateTextFilter(i.value())})),t.appendToolbarItem(i);const n=new k("Categories");n.setText("Categories"),n.addOption("Trusted Type Policy",e.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode,!0),n.addOption("Trusted Type Sink",e.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode,!0),n.addOption("CSP Inline",e.ContentSecurityPolicyIssue.inlineViolationCode,!0),n.addOption("CSP Eval",e.ContentSecurityPolicyIssue.evalViolationCode,!0),n.addOption("CSP URL",e.ContentSecurityPolicyIssue.urlViolationCode,!0),n.addHeader("Reset",(()=>{n.getOptions().forEach(((e,t)=>n.setOptionEnabled(t,e.default)))})),n.setOnOptionClicked((()=>{const e=new Set(n.getOptions().filter((e=>e.enabled)).map((e=>e.value)));this.#l.updateCategoryFilter(e)})),t.appendToolbarItem(n),this.#l.show(this.contentElement),this.#u.addEventListener("IssueAdded",this.#c,this),this.#u.addEventListener("FullUpdateRequired",this.#p,this),this.#h()}static instance(e={forceNew:null}){const{forceNew:t}=e;return L&&!t||(L=new M),L}#c(t){const{issue:s}=t.data;s instanceof e.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#l.addIssue(s)}#p(){this.#l.clearIssues(),this.#h()}#h(){for(const t of this.#u.issues())t instanceof e.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#l.addIssue(t)}wasShown(){super.wasShown(),this.registerCSSFiles([y])}}var P=Object.freeze({__proto__:null,CSPViolationsView:M});class D extends e.Issue.Issue{#g=new Map;#f=new Map;#m=new Map;#C=new Map;#I=new Set;#w=new Map;#y=new Set;#b=new Set;#v=new Set;#R=new Set;#k=e.Issue.IssueKind.Improvement;#x=new Set;#S=new Set;#T=new Set;#A=new Set;#E=new Set;#L=new Set;#M;#P=0;#D;constructor(e,t){super(e),this.#D=t}primaryKey(){throw new Error("This should never be called")}aggregationKey(){return this.#D}getBlockedByResponseDetails(){return this.#w.values()}cookies(){return Array.from(this.#g.values()).map((e=>e.cookie))}getRawCookieLines(){return this.#f.values()}sources(){return this.#C.values()}getBounceTrackingSites(){return this.#y.values()}cookiesWithRequestIndicator(){return this.#g.values()}getHeavyAdIssues(){return this.#I}getMixedContentIssues(){return this.#S}getCorsIssues(){return this.#b}getCspIssues(){return this.#v}getDeprecationIssues(){return this.#R}getLowContrastIssues(){return this.#x}requests(){return this.#m.values()}getSharedArrayBufferIssues(){return this.#T}getQuirksModeIssues(){return this.#A}getAttributionReportingIssues(){return this.#E}getGenericIssues(){return this.#L}getDescription(){return this.#M?this.#M.getDescription():null}getCategory(){return this.#M?this.#M.getCategory():e.Issue.IssueCategory.Other}getAggregatedIssuesCount(){return this.#P}#q(e){const{domain:t,path:s,name:i}=e;return`${t};${s};${i}`}addInstance(t){this.#P++,this.#M||(this.#M=t),this.#k=e.Issue.unionIssueKind(this.#k,t.getKind());let s=!1;for(const e of t.requests())s=!0,this.#m.has(e.requestId)||this.#m.set(e.requestId,e);for(const e of t.cookies()){const t=this.#q(e);this.#g.has(t)||this.#g.set(t,{cookie:e,hasRequest:s})}for(const e of t.rawCookieLines())this.#f.has(e)||this.#f.set(e,{rawCookieLine:e,hasRequest:s});for(const e of t.trackingSites())this.#y.has(e)||this.#y.add(e);for(const e of t.sources()){const t=JSON.stringify(e);this.#C.has(t)||this.#C.set(t,e)}t instanceof e.MixedContentIssue.MixedContentIssue&&this.#S.add(t),t instanceof e.HeavyAdIssue.HeavyAdIssue&&this.#I.add(t);for(const e of t.getBlockedByResponseDetails()){const t=JSON.stringify(e,["parentFrame","blockedFrame","requestId","frameId","reason","request"]);this.#w.set(t,e)}t instanceof e.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#v.add(t),t instanceof e.DeprecationIssue.DeprecationIssue&&this.#R.add(t),t instanceof e.SharedArrayBufferIssue.SharedArrayBufferIssue&&this.#T.add(t),t instanceof e.LowTextContrastIssue.LowTextContrastIssue&&this.#x.add(t),t instanceof e.CorsIssue.CorsIssue&&this.#b.add(t),t instanceof e.QuirksModeIssue.QuirksModeIssue&&this.#A.add(t),t instanceof e.AttributionReportingIssue.AttributionReportingIssue&&this.#E.add(t),t instanceof e.GenericIssue.GenericIssue&&this.#L.add(t)}getKind(){return this.#k}isHidden(){return this.#M?.isHidden()||!1}setHidden(e){throw new Error("Should not call setHidden on aggregatedIssue")}}class q extends r.ObjectWrapper.ObjectWrapper{issuesManager;#V=new Map;#O=new Map;constructor(e){super(),this.issuesManager=e,this.issuesManager.addEventListener("IssueAdded",this.#c,this),this.issuesManager.addEventListener("FullUpdateRequired",this.#p,this);for(const e of this.issuesManager.issues())this.#U(e)}#c(e){this.#U(e.data.issue)}#p(){this.#V.clear(),this.#O.clear();for(const e of this.issuesManager.issues())this.#U(e);this.dispatchEventToListeners("FullUpdateRequired")}#U(e){const t=e.isHidden()?this.#O:this.#V,s=this.#H(t,e);return this.dispatchEventToListeners("AggregatedIssueUpdated",s),s}#H(e,t){const s=t.code();let i=e.get(s);return i||(i=new D(t.code(),s),e.set(s,i)),i.addInstance(t),i}aggregatedIssues(){return[...this.#V.values(),...this.#O.values()]}hiddenAggregatedIssues(){return this.#O.values()}aggregatedIssueCodes(){return new Set([...this.#V.keys(),...this.#O.keys()])}aggregatedIssueCategories(){const e=new Set;for(const t of this.#V.values())e.add(t.getCategory());return e}aggregatedIssueKinds(){const e=new Set;for(const t of this.#V.values())e.add(t.getKind());return e}numberOfAggregatedIssues(){return this.#V.size}numberOfHiddenAggregatedIssues(){return this.#O.size}keyForIssue(e){return e.code()}}var V=Object.freeze({__proto__:null,AggregatedIssue:D,IssueAggregator:q});const O={hiddenIssues:"Hidden issues",unhideAll:"Unhide all"},U=t.i18n.registerUIStrings("panels/issues/HiddenIssuesRow.ts",O),H=t.i18n.getLocalizedString.bind(void 0,U);class F extends s.TreeOutline.TreeElement{#F;constructor(){super(void 0,!0),this.#F=document.createElement("span"),this.toggleOnClick=!0,this.listItemElement.classList.add("issue-category","hidden-issues"),this.childrenListElement.classList.add("hidden-issues-body"),this.#N()}#N(){const t=s.UIUtils.createTextButton(H(O.unhideAll),(()=>e.IssuesManager.IssuesManager.instance().unhideAllIssues()),"unhide-all-issues-button"),i=new d.Adorner.Adorner;i.data={name:"countWrapper",content:this.#F},i.classList.add("aggregated-issues-count"),this.#F.textContent="0";const n=document.createElement("div"),a=document.createElement("div");n.classList.add("header"),a.classList.add("title"),a.textContent=H(O.hiddenIssues),n.appendChild(i),n.appendChild(a),n.appendChild(t),this.listItemElement.appendChild(n)}update(e){this.#F.textContent=`${e}`}}const N=new CSSStyleSheet;N.replaceSync(".issues-pane{overflow:hidden}.issues-pane-no-issues{align-items:center;background-color:var(--color-background);display:flex;flex:1 1 auto;font-size:18px;justify-content:center;padding:30px}.issues-toolbar-container{display:flex;flex:none}.issues-toolbar-container > .toolbar{background-color:var(--color-background-elevation-1);border-bottom:1px solid var(--color-details-hairline)}.issues-toolbar-left{flex:1 1 auto}.issues-toolbar-right{padding-right:6px}\n/*# sourceURL=issuesPane.css */\n");const B=new CSSStyleSheet;B.replaceSync(':host,\n.issues{padding:0;overflow:auto}.issues{--issue-indent:8px}.issues li{white-space:normal;align-items:flex-start}.issues .always-parent::before{display:none}.issues li.parent::before{margin-top:8px}.issues .affected-resources li.parent::before{margin-top:3px;margin-right:0}.issue-category,\n.issue-kind,\n.issue{padding:0 8px;padding-left:var(--issue-indent);overflow:hidden;flex:none;transition:background-color 200ms;border:1px solid var(--color-details-hairline-light);border-width:0 0 1px}.issue-category.hidden-issues.parent.expanded,\n.issue-kind.parent.expanded{border-width:0 0 1px;background-color:var(--color-background-elevation-1)}.issue-category + .children .issue,\n.issue.expanded{background:var(--color-background)}.issue.expanded{border-width:0}.issue.selected,\n.issue.expanded.selected{background-color:var(--legacy-focus-bg-color)}.unhide-all-issues-button{margin:0;height:20px}p{margin-block-start:2px;margin-block-end:2px}.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue-category.selected:focus-visible,\n.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue-kind.selected:focus-visible,\n.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue.selected:focus-visible{width:auto;padding-right:8px}.header{display:flex;flex-direction:row;align-items:flex-start;padding:4px 0;cursor:pointer;width:100%}.header devtools-hide-issues-menu{visibility:hidden}.header:hover devtools-hide-issues-menu{visibility:visible}.header devtools-hide-issues-menu.has-context-menu-opened{visibility:visible}.title{flex:1;font-size:14px;color:var(--color-text-primary);font-weight:normal;user-select:text;padding-top:2px}.issue.expanded .title{font-weight:450}.body.children{border-bottom:1px solid var(--color-details-hairline-light);padding:6px 0;position:relative;padding-left:calc(var(--issue-indent) + 43px);padding-bottom:26px;padding-right:8px}.issue-category + .children,\n.issue-kind + .children{--issue-indent:24px;padding-left:0}.body::before{content:"";display:block;position:absolute;left:calc(var(--issue-indent) + 23px);top:0;bottom:20px;width:2px}.issue-kind-breaking-change.body::before{border-left:2px solid var(--issue-color-yellow)}.issue-kind-page-error.body::before{border-left:2px solid var(--issue-color-red)}.issue-kind-improvement.body::before{border-left:2px solid var(--issue-color-blue)}devtools-icon.leading-issue-icon{margin:1px 0 -1px 7px}.message{line-height:20px;font-size:14px;color:var(--color-text-secondary);margin-bottom:4px;user-select:text}.message p{margin-bottom:16px}.message li{margin-top:8px}.message code{color:var(--color-text-primary);font-size:12px;user-select:text;cursor:text;background:var(--color-background-elevation-1)}.separator::before{content:"·";padding-left:1ex;padding-right:1ex}.link{font-size:14px;color:var(--color-link)}.link-wrapper{margin-top:15px;user-select:text}.affected-resources-label,\n.resolutions-label{margin-top:5px;font-size:10px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--color-text-primary);display:inline-block}.link-list{list-style-type:none;list-style-position:inside;padding-inline-start:0}.resolutions-list{list-style-type:none;list-style-position:inside;padding-inline-start:0}.link-list li::before{content:none;-webkit-mask-image:none}.resolutions-list li::before{content:"→";-webkit-mask-image:none;padding-right:5px;position:relative;top:-1px}.resolutions-list li{display:list-item}ul > li.plain-enum{display:list-item}ul > li.plain-enum::before{content:"";padding:0;margin:0;max-width:0}.affected-resources-label + .affected-resources{padding:3px 0 0;position:relative;user-select:text}.affected-resource-label{font-size:14px;line-height:20px;color:var(--color-text-primary);position:relative;cursor:pointer}.affected-resource-cookie{font-size:14px;line-height:20px;border:0;border-collapse:collapse}.affected-resource-element{font-size:14px;line-height:20px;color:var(--color-link);border:0;border-collapse:collapse}.affected-resource-row{font-size:14px;line-height:20px;border:0;border-collapse:collapse;vertical-align:top}.affected-resource-mixed-content{font-size:14px;line-height:20px;border:0;border-collapse:collapse}.affected-resource-heavy-ad{font-size:14px;line-height:20px;border:0;border-collapse:collapse}.affected-resource-request{font-size:14px;line-height:20px;border:0;border-collapse:collapse}.affected-resource-source{font-size:14px;line-height:20px;color:var(--color-link);border:0;border-collapse:collapse}.affected-resource-list{border-spacing:10px 0;margin-left:-12px}.affected-resource-header{font-size:12px;color:var(--color-text-primary);padding-left:2px}.code-example{font-family:var(--monospace-font-family);font-size:var(--monospace-font-size)}.affected-resource-blocked-status{color:var(--issue-color-red)}.affected-resource-report-only-status{color:var(--issue-color-yellow)}.affected-resource-cookie-info{color:var(--color-text-secondary);padding:2px;text-align:right}.affected-resource-cookie-info-header{text-align:right}.affected-resource-mixed-content-info{color:var(--color-text-secondary);padding:2px}.affected-resource-heavy-ad-info{color:var(--color-text-secondary);padding:2px}.affected-resource-heavy-ad-info-frame{display:flex;align-items:center;color:var(--color-text-secondary);padding:2px}.affected-resource-cell{color:var(--color-text-secondary);padding:2px}.affected-resource-cell.link{color:var(--color-link)}.affected-resource-cell span.icon{margin-right:0.5ex;vertical-align:sub}.affected-resources > .parent{margin-top:0;padding:2px 5px 0}.affected-resources > .parent.expanded{background:var(--color-background-elevation-0)}.affected-resources > .children.expanded{background:var(--color-background-elevation-0);padding:6px 0 9px 5px;margin-bottom:10px}.aggregated-issues-count{padding:3px 7px 0}.affected-resource-directive-info-header{text-align:left}.affected-resource-directive{font-size:14px;line-height:20px;border:0;border-collapse:collapse}.affected-resource-directive-info{color:var(--color-text-secondary);padding:2px;text-align:left}.devtools-link{padding-top:4px}devtools-icon.link-icon{vertical-align:sub;margin-right:0.5ch}devtools-icon.elements-panel,\ndevtools-icon.network-panel{margin-right:0.5ex;vertical-align:baseline;height:14px}@media (forced-colors: active){.title{color:ButtonText}.tree-outline:not(.hide-selection-when-blurred) .selected .header .title,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .header .title{color:HighlightText}}\n/*# sourceURL=issuesTree.css */\n');const K={unknown:"unknown",clickToRevealTheFramesDomNodeIn:"Click to reveal the frame's DOM node in the Elements panel",unavailable:"unavailable"},W=t.i18n.registerUIStrings("panels/issues/AffectedResourcesView.ts",K),z=t.i18n.getLocalizedString.bind(void 0,W);class _ extends s.TreeOutline.TreeElement{#B;issue;affectedResourcesCountElement;affectedResources;#K;#W;#z;requestResolver;constructor(e,t){super(),this.#B=e,this.issue=t,this.toggleOnClick=!0,this.affectedResourcesCountElement=this.createAffectedResourcesCounter(),this.affectedResources=this.createAffectedResources(),this.#K=0,this.requestResolver=new C.RequestResolver.RequestResolver,this.#W=[],this.#z=new Set}setIssue(e){this.issue=e}createAffectedResourcesCounter(){const e=document.createElement("div");return e.classList.add("affected-resource-label"),this.listItemElement.appendChild(e),e}createAffectedResources(){const e=new s.TreeOutline.TreeElement,t=document.createElement("table");return t.classList.add("affected-resource-list"),e.listItemElement.appendChild(t),this.appendChild(e),t}updateAffectedResourceCount(e){this.#K=e,this.affectedResourcesCountElement.textContent=this.getResourceNameWithCount(e),this.hidden=0===this.#K,this.#B.updateAffectedResourceVisibility()}isEmpty(){return 0===this.#K}clear(){this.affectedResources.textContent="",this.requestResolver.clear()}expandIfOneResource(){1===this.#K&&this.expand()}#_(e){const t=m.FrameManager.FrameManager.instance().getFrame(e);if(!(t&&t.url||(this.#z.add(e),this.#W.length))){const e=m.FrameManager.FrameManager.instance().addEventListener(m.FrameManager.Events.FrameAddedToTarget,this.#j,this),t=m.FrameManager.FrameManager.instance().addEventListener(m.FrameManager.Events.FrameNavigated,this.#j,this);this.#W=[e,t]}return t}#j(e){const t=e.data.frame;if(!t.url)return;const s=this.#z.delete(t.id);0===this.#z.size&&this.#W.length&&(r.EventTarget.removeEventListeners(this.#W),this.#W=[]),s&&this.update()}createFrameCell(e,t){const s=this.#_(e),i=s&&(s.unreachableUrl()||s.url)||z(K.unknown),n=document.createElement("td");if(n.classList.add("affected-resource-cell"),s){const s=new u.Icon.Icon;s.data={iconName:"code-circle",color:"var(--icon-link)",width:"16px",height:"16px"},s.classList.add("link","elements-panel"),s.onclick=async()=>{l.userMetrics.issuesPanelResourceOpened(t,"Element");const s=m.FrameManager.FrameManager.instance().getFrame(e);if(s){const e=await s.getOwnerDOMNodeOrDocument();e&&r.Revealer.reveal(e)}},s.title=z(K.clickToRevealTheFramesDomNodeIn),n.appendChild(s)}return n.appendChild(document.createTextNode(i)),n.onmouseenter=()=>{const t=m.FrameManager.FrameManager.instance().getFrame(e);t&&t.highlight()},n.onmouseleave=()=>m.OverlayModel.OverlayModel.hideDOMNodeHighlight(),n}createRequestCell(e,t={}){const s=document.createElement("td");s.classList.add("affected-resource-cell");const i=new w.RequestLinkIcon.RequestLinkIcon;return i.data={...t,affectedRequest:e,requestResolver:this.requestResolver,displayURL:!0},s.appendChild(i),s}async createElementCell({backendNodeId:e,nodeName:t,target:s},i){if(!s){const e=document.createElement("td");return e.textContent=t||z(K.unavailable),e}function n(){l.userMetrics.issuesPanelResourceOpened(i,"Element")}const a=new m.DOMModel.DeferredDOMNode(s,e),o=await r.Linkifier.Linkifier.linkify(a);o.textContent=t,o.addEventListener("click",(()=>n())),o.addEventListener("keydown",(e=>{"Enter"===e.key&&n()}));const d=document.createElement("td");return d.classList.add("affected-resource-element","devtools-link"),d.appendChild(o),d}appendSourceLocation(e,t,s){const i=document.createElement("td");if(i.classList.add("affected-source-location"),t){const e=40,n=new I.Linkifier.Linkifier(e).linkifyScriptLocation(s||null,t.scriptId||null,t.url,t.lineNumber,{columnNumber:t.columnNumber,inlineFrameIndex:0});i.appendChild(n)}e.appendChild(i)}appendColumnTitle(e,t,s=null){const i=document.createElement("td");i.classList.add("affected-resource-header"),s&&i.classList.add(s),i.textContent=t,e.appendChild(i)}createIssueDetailCell(e,t=null){const s=document.createElement("td");return s.textContent=e,t&&s.classList.add(t),s}appendIssueDetailCell(e,t,s=null){const i=this.createIssueDetailCell(t,s);return e.appendChild(i),i}}const j={nDirectives:"{n, plural, =1 {# directive} other {# directives}}",reportonly:"report-only",blocked:"blocked",clickToRevealTheViolatingDomNode:"Click to reveal the violating DOM node in the Elements panel",directiveC:"Directive",element:"Element",sourceLocation:"Source Location",status:"Status",resourceC:"Resource"},G=t.i18n.registerUIStrings("panels/issues/AffectedDirectivesView.ts",j),$=t.i18n.getLocalizedString.bind(void 0,G);class Q extends _{#G(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=$(j.reportonly)):(s.classList.add("affected-resource-blocked-status"),s.textContent=$(j.blocked)),e.appendChild(s)}getResourceNameWithCount(e){return $(j.nDirectives,{n:e})}#$(e,t){const s=document.createElement("td");s.textContent=t,e.appendChild(s)}#Q(e,t){const s=document.createElement("td");s.classList.add("affected-resource-directive-info"),s.textContent=t,e.appendChild(s)}#Z(e,t,s){const i=new h.ElementsPanelLink.ElementsPanelLink;if(t){const e=t;i.title=$(j.clickToRevealTheViolatingDomNode);const n=()=>{const t=s.getTargetIfNotDisposed();if(t){l.userMetrics.issuesPanelResourceOpened(this.issue.getCategory(),"Element");const s=new m.DOMModel.DeferredDOMNode(t,e);r.Revealer.reveal(s)}},a=()=>{const t=s.getTargetIfNotDisposed();if(t){const s=new m.DOMModel.DeferredDOMNode(t,e);s&&s.highlight()}},o=()=>{m.OverlayModel.OverlayModel.hideDOMNodeHighlight()};i.data={onElementRevealIconClick:n,onElementRevealIconMouseEnter:a,onElementRevealIconMouseLeave:o}}const n=document.createElement("td");n.classList.add("affected-resource-csp-info-node"),n.appendChild(i),e.appendChild(n)}#J(t){const s=document.createElement("tr");if(this.issue.code()===e.ContentSecurityPolicyIssue.inlineViolationCode)this.appendColumnTitle(s,$(j.directiveC)),this.appendColumnTitle(s,$(j.element)),this.appendColumnTitle(s,$(j.sourceLocation)),this.appendColumnTitle(s,$(j.status));else if(this.issue.code()===e.ContentSecurityPolicyIssue.urlViolationCode)this.appendColumnTitle(s,$(j.resourceC),"affected-resource-directive-info-header"),this.appendColumnTitle(s,$(j.status)),this.appendColumnTitle(s,$(j.directiveC)),this.appendColumnTitle(s,$(j.sourceLocation));else if(this.issue.code()===e.ContentSecurityPolicyIssue.evalViolationCode)this.appendColumnTitle(s,$(j.sourceLocation)),this.appendColumnTitle(s,$(j.directiveC)),this.appendColumnTitle(s,$(j.status));else if(this.issue.code()===e.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendColumnTitle(s,$(j.sourceLocation)),this.appendColumnTitle(s,$(j.status));else{if(this.issue.code()!==e.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return void this.updateAffectedResourceCount(0);this.appendColumnTitle(s,$(j.sourceLocation)),this.appendColumnTitle(s,$(j.directiveC)),this.appendColumnTitle(s,$(j.status))}this.affectedResources.appendChild(s);let i=0;for(const e of t)i++,this.#X(e);this.updateAffectedResourceCount(i)}#X(t){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=t.details(),n=e.Issue.toZeroBasedLocation(i.sourceCodeLocation),a=t.model(),r=t.model()?.getTargetIfNotDisposed();if(this.issue.code()===e.ContentSecurityPolicyIssue.inlineViolationCode&&a)this.#$(s,i.violatedDirective),this.#Z(s,i.violatingNodeId,a),this.appendSourceLocation(s,n,r),this.#G(s,i.isReportOnly);else if(this.issue.code()===e.ContentSecurityPolicyIssue.urlViolationCode){const e=i.blockedURL?i.blockedURL:f.DevToolsPath.EmptyUrlString;this.#Q(s,e),this.#G(s,i.isReportOnly),this.#$(s,i.violatedDirective),this.appendSourceLocation(s,n,r)}else if(this.issue.code()===e.ContentSecurityPolicyIssue.evalViolationCode)this.appendSourceLocation(s,n,r),this.#$(s,i.violatedDirective),this.#G(s,i.isReportOnly);else if(this.issue.code()===e.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendSourceLocation(s,n,r),this.#G(s,i.isReportOnly);else{if(this.issue.code()!==e.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return;this.appendSourceLocation(s,n,r),this.#$(s,i.violatedDirective),this.#G(s,i.isReportOnly)}this.affectedResources.appendChild(s)}update(){this.clear(),this.#J(this.issue.getCspIssues())}}const Z={nRequests:"{n, plural, =1 {# request} other {# requests}}",requestC:"Request",parentFrame:"Parent Frame",blockedResource:"Blocked Resource"},J=t.i18n.registerUIStrings("panels/issues/AffectedBlockedByResponseView.ts",Z),X=t.i18n.getLocalizedString.bind(void 0,J);class Y extends _{#Y(e){const t=document.createElement("tr");this.appendColumnTitle(t,X(Z.requestC)),this.appendColumnTitle(t,X(Z.parentFrame)),this.appendColumnTitle(t,X(Z.blockedResource)),this.affectedResources.appendChild(t);let s=0;for(const t of e)this.#ee(t),s++;this.updateAffectedResourceCount(s)}getResourceNameWithCount(e){return X(Z.nRequests,{n:e})}#ee(t){const s=document.createElement("tr");s.classList.add("affected-resource-row");const i=this.createRequestCell(t.request,{additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened(e.Issue.IssueCategory.CrossOriginEmbedderPolicy,"Request")}});if(s.appendChild(i),t.parentFrame){const e=this.createFrameCell(t.parentFrame.frameId,this.issue.getCategory());s.appendChild(e)}else s.appendChild(document.createElement("td"));if(t.blockedFrame){const e=this.createFrameCell(t.blockedFrame.frameId,this.issue.getCategory());s.appendChild(e)}else s.appendChild(document.createElement("td"));this.affectedResources.appendChild(s)}update(){this.clear(),this.#Y(this.issue.getBlockedByResponseDetails())}}const ee={nCookies:"{n, plural, =1 {# cookie} other {# cookies}}",name:"Name",domain:"Domain",path:"Path",nRawCookieLines:"{n, plural, =1 {1 Raw `Set-Cookie` header} other {# Raw `Set-Cookie` headers}}",filterSetCookieTitle:"Show network requests that include this `Set-Cookie` header in the network panel"},te=t.i18n.registerUIStrings("panels/issues/AffectedCookiesView.ts",ee),se=t.i18n.getLocalizedString.bind(void 0,te);class ie extends _{getResourceNameWithCount(e){return se(ee.nCookies,{n:e})}#te(e){const t=document.createElement("tr");this.appendColumnTitle(t,se(ee.name)),this.appendColumnTitle(t,se(ee.domain)+" & "+se(ee.path),"affected-resource-cookie-info-header"),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,this.#se(t.cookie,t.hasRequest);this.updateAffectedResourceCount(s)}#se(e,t){const i=document.createElement("tr");i.classList.add("affected-resource-cookie");const n=document.createElement("td");t?n.appendChild(s.UIUtils.createTextButton(e.name,(()=>{l.userMetrics.issuesPanelResourceOpened(this.issue.getCategory(),"Cookie"),r.Revealer.reveal(p.UIFilter.UIRequestFilter.filters([{filterType:p.UIFilter.FilterType.CookieDomain,filterValue:e.domain},{filterType:p.UIFilter.FilterType.CookieName,filterValue:e.name},{filterType:p.UIFilter.FilterType.CookiePath,filterValue:e.path}]))}),"link-style devtools-link")):n.textContent=e.name,i.appendChild(n),this.appendIssueDetailCell(i,`${e.domain}${e.path}`,"affected-resource-cookie-info"),this.affectedResources.appendChild(i)}update(){this.clear(),this.#te(this.issue.cookiesWithRequestIndicator())}}class ne extends _{getResourceNameWithCount(e){return se(ee.nRawCookieLines,{n:e})}update(){this.clear();const e=this.issue.getRawCookieLines();let t=0;for(const i of e){const e=document.createElement("tr");if(e.classList.add("affected-resource-directive"),i.hasRequest){const t=document.createElement("td"),n=s.UIUtils.createTextButton(i.rawCookieLine,(()=>{r.Revealer.reveal(p.UIFilter.UIRequestFilter.filters([{filterType:p.UIFilter.FilterType.ResponseHeaderValueSetCookie,filterValue:i.rawCookieLine}]))}),"link-style devtools-link");n.title=se(ee.filterSetCookieTitle),t.appendChild(n),e.appendChild(t)}else this.appendIssueDetailCell(e,i.rawCookieLine);this.affectedResources.appendChild(e),t++}this.updateAffectedResourceCount(t)}}const ae={nElements:"{n, plural, =1 {# element} other {# elements}}"},re=t.i18n.registerUIStrings("panels/issues/AffectedElementsView.ts",ae),oe=t.i18n.getLocalizedString.bind(void 0,re);class de extends _{async#ie(e){let t=0;for(const s of e)await this.#ne(s),t++;this.updateAffectedResourceCount(t)}getResourceNameWithCount(e){return oe(ae.nElements,{n:e})}async#ne(e){const t=await this.createElementCell(e,this.issue.getCategory()),s=document.createElement("tr");s.appendChild(t),this.affectedResources.appendChild(s)}update(){this.clear(),this.#ie(this.issue.elements())}}const le={nDocuments:"{n, plural, =1 { document} other { documents}}",documentInTheDOMTree:"Document in the DOM tree",url:"URL",mode:"Mode"},ue=t.i18n.registerUIStrings("panels/issues/AffectedDocumentsInQuirksModeView.ts",le),ce=t.i18n.getLocalizedString.bind(void 0,ue);class pe extends de{#ae=Promise.resolve();update(){this.#ae=this.#ae.then(this.#re.bind(this))}getResourceName(e){return ce(le.nDocuments,{n:e})}async#re(){this.clear(),await this.#oe(this.issue.getQuirksModeIssues())}async#de(e){const t=document.createElement("tr");t.classList.add("affected-resource-quirks-mode");const s=e.details(),i=m.FrameManager.FrameManager.instance().getFrame(s.frameId)?.resourceTreeModel().target()||null;t.appendChild(await this.createElementCell({nodeName:"document",backendNodeId:s.documentNodeId,target:i},e.getCategory())),this.appendIssueDetailCell(t,s.isLimitedQuirksMode?"Limited Quirks Mode":"Quirks Mode"),this.appendIssueDetailCell(t,s.url),this.affectedResources.appendChild(t)}async#oe(e){const t=document.createElement("tr");this.appendColumnTitle(t,ce(le.documentInTheDOMTree)),this.appendColumnTitle(t,ce(le.mode)),this.appendColumnTitle(t,ce(le.url)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,await this.#de(t);this.updateAffectedResourceCount(s)}}class he extends de{#ae=Promise.resolve();update(){this.#ae=this.#ae.then(this.#re.bind(this))}async#re(){this.clear(),await this.#le(this.issue.getLowContrastIssues())}async#ue(e){const t=document.createElement("tr");t.classList.add("affected-resource-low-contrast");const s=e.details(),i=e.model()?.target()||null;t.appendChild(await this.createElementCell({nodeName:s.violatingNodeSelector,backendNodeId:s.violatingNodeId,target:i},e.getCategory())),this.appendIssueDetailCell(t,String(f.NumberUtilities.floor(s.contrastRatio,2))),this.appendIssueDetailCell(t,String(s.thresholdAA)),this.appendIssueDetailCell(t,String(s.thresholdAAA)),this.appendIssueDetailCell(t,s.fontSize),this.appendIssueDetailCell(t,s.fontWeight),this.affectedResources.appendChild(t)}async#le(e){const t=document.createElement("tr");this.appendColumnTitle(t,me(ge.element)),this.appendColumnTitle(t,me(ge.contrastRatio)),this.appendColumnTitle(t,me(ge.minimumAA)),this.appendColumnTitle(t,me(ge.minimumAAA)),this.appendColumnTitle(t,me(ge.textSize)),this.appendColumnTitle(t,me(ge.textWeight)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,await this.#ue(t);this.updateAffectedResourceCount(s)}}const ge={element:"Element",contrastRatio:"Contrast ratio",minimumAA:"Minimum AA ratio",minimumAAA:"Minimum AAA ratio",textSize:"Text size",textWeight:"Text weight"},fe=t.i18n.registerUIStrings("panels/issues/AffectedElementsWithLowContrastView.ts",ge),me=t.i18n.getLocalizedString.bind(void 0,fe),Ce={nResources:"{n, plural, =1 {# resource} other {# resources}}",limitExceeded:"Limit exceeded",resolutionStatus:"Resolution Status",frameUrl:"Frame URL",removed:"Removed",warned:"Warned",cpuPeakLimit:"CPU peak limit",cpuTotalLimit:"CPU total limit",networkLimit:"Network limit"},Ie=t.i18n.registerUIStrings("panels/issues/AffectedHeavyAdView.ts",Ce),we=t.i18n.getLocalizedString.bind(void 0,Ie);class ye extends _{#ce(e){const t=document.createElement("tr");this.appendColumnTitle(t,we(Ce.limitExceeded)),this.appendColumnTitle(t,we(Ce.resolutionStatus)),this.appendColumnTitle(t,we(Ce.frameUrl)),this.affectedResources.appendChild(t);let s=0;for(const t of e)this.#pe(t.details()),s++;this.updateAffectedResourceCount(s)}getResourceNameWithCount(e){return we(Ce.nResources,{n:e})}#he(e){switch(e){case"HeavyAdBlocked":return we(Ce.removed);case"HeavyAdWarning":return we(Ce.warned)}return""}#ge(e){switch(e){case"CpuPeakLimit":return we(Ce.cpuPeakLimit);case"CpuTotalLimit":return we(Ce.cpuTotalLimit);case"NetworkTotalLimit":return we(Ce.networkLimit)}return""}#pe(e){const t=document.createElement("tr");t.classList.add("affected-resource-heavy-ad");const s=document.createElement("td");s.classList.add("affected-resource-heavy-ad-info"),s.textContent=this.#ge(e.reason),t.appendChild(s);const i=document.createElement("td");i.classList.add("affected-resource-heavy-ad-info"),i.textContent=this.#he(e.resolution),t.appendChild(i);const n=e.frame.frameId,a=this.createFrameCell(n,this.issue.getCategory());t.appendChild(a),this.affectedResources.appendChild(t)}update(){this.clear(),this.#ce(this.issue.getHeavyAdIssues())}}const be={nViolations:"{n, plural, =1 {# violation} other {# violations}}",warning:"warning",blocked:"blocked",instantiation:"Instantiation",aSharedarraybufferWas:"A `SharedArrayBuffer` was instantiated in a context that is not cross-origin isolated",transfer:"Transfer",sharedarraybufferWasTransferedTo:"`SharedArrayBuffer` was transfered to a context that is not cross-origin isolated",sourceLocation:"Source Location",trigger:"Trigger",status:"Status"},ve=t.i18n.registerUIStrings("panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts",be),Re=t.i18n.getLocalizedString.bind(void 0,ve);class ke extends _{getResourceNameWithCount(e){return Re(be.nViolations,{n:e})}#G(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=Re(be.warning)):(s.classList.add("affected-resource-blocked-status"),s.textContent=Re(be.blocked)),e.appendChild(s)}#fe(e,t){const s=document.createElement("td");switch(t){case"CreationIssue":s.textContent=Re(be.instantiation),s.title=Re(be.aSharedarraybufferWas);break;case"TransferIssue":s.textContent=Re(be.transfer),s.title=Re(be.sharedarraybufferWasTransferedTo)}e.appendChild(s)}#Y(e){const t=document.createElement("tr");this.appendColumnTitle(t,Re(be.sourceLocation)),this.appendColumnTitle(t,Re(be.trigger)),this.appendColumnTitle(t,Re(be.status)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,this.#ee(t);this.updateAffectedResourceCount(s)}#ee(t){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=t.details(),n=e.Issue.toZeroBasedLocation(i.sourceCodeLocation);this.appendSourceLocation(s,n,t.model()?.getTargetIfNotDisposed()),this.#fe(s,i.type),this.#G(s,i.isWarning),this.affectedResources.appendChild(s)}update(){this.clear(),this.#Y(this.issue.getSharedArrayBufferIssues())}}const xe={nSources:"{n, plural, =1 {# source} other {# sources}}"},Se=t.i18n.registerUIStrings("panels/issues/AffectedSourcesView.ts",xe),Te=t.i18n.getLocalizedString.bind(void 0,Se);class Ae extends _{#me(e){let t=0;for(const s of e)this.#Ce(s),t++;this.updateAffectedResourceCount(t)}getResourceNameWithCount(e){return Te(xe.nSources,{n:e})}#Ce({url:e,lineNumber:t,columnNumber:s}){const i=document.createElement("td"),n={columnNumber:s,lineNumber:t,tabStop:!0,showColumnNumber:!1,inlineFrameIndex:0},a=I.Linkifier.Linkifier.linkifyURL(e,n);i.appendChild(a);const r=document.createElement("tr");r.classList.add("affected-resource-source"),r.appendChild(i),this.affectedResources.appendChild(r)}update(){this.clear(),this.#me(this.issue.sources())}}const Ee={nTrackingSites:"{n, plural, =1 {1 potentially tracking website} other {# potentially tracking websites}}"},Le=t.i18n.registerUIStrings("panels/issues/AffectedTrackingSitesView.ts",Ee),Me=t.i18n.getLocalizedString.bind(void 0,Le);class Pe extends _{getResourceNameWithCount(e){return Me(Ee.nTrackingSites,{n:e})}update(){this.clear();const e=this.issue.getBounceTrackingSites();let t=0;for(const s of e){const e=document.createElement("tr");e.classList.add("affected-resource-directive"),this.appendIssueDetailCell(e,s),this.affectedResources.appendChild(e),t++}this.updateAffectedResourceCount(t)}}const De={nRequests:"{n, plural, =1 {# request} other {# requests}}",warning:"warning",blocked:"blocked",status:"Status",request:"Request",resourceAddressSpace:"Resource Address",initiatorAddressSpace:"Initiator Address",secure:"secure",insecure:"insecure",initiatorContext:"Initiator Context",preflightRequestIfProblematic:"Preflight Request (if problematic)",preflightRequest:"Preflight Request",header:"Header",problem:"Problem",invalidValue:"Invalid Value (if available)",problemMissingHeader:"Missing Header",problemMultipleValues:"Multiple Values",problemInvalidValue:"Invalid Value",preflightDisallowedRedirect:"Response to preflight was a redirect",preflightInvalidStatus:"HTTP status of preflight request didn't indicate success",allowedOrigin:"Allowed Origin (from header)",allowCredentialsValueFromHeader:"`Access-Control-Allow-Credentials` Header Value",disallowedRequestMethod:"Disallowed Request Method",disallowedRequestHeader:"Disallowed Request Header",sourceLocation:"Source Location",unsupportedScheme:"Unsupported Scheme",failedRequest:"Failed Request"},qe=t.i18n.registerUIStrings("panels/issues/CorsIssueDetailsView.ts",De),Ve=t.i18n.getLocalizedString.bind(void 0,qe);class Oe extends _{constructor(e,t){super(e,t),this.affectedResourcesCountElement.classList.add("cors-issue-affected-resource-label")}#G(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=Ve(De.warning)):(s.classList.add("affected-resource-blocked-status"),s.textContent=Ve(De.blocked)),e.appendChild(s)}getResourceNameWithCount(e){return Ve(De.nRequests,{n:e})}#Y(t,s){const i=document.createElement("tr");switch(this.appendColumnTitle(i,Ve(De.request)),this.appendColumnTitle(i,Ve(De.status)),t){case e.CorsIssue.IssueCode.InvalidHeaderValues:this.appendColumnTitle(i,Ve(De.preflightRequestIfProblematic)),this.appendColumnTitle(i,Ve(De.header)),this.appendColumnTitle(i,Ve(De.problem)),this.appendColumnTitle(i,Ve(De.invalidValue));break;case e.CorsIssue.IssueCode.WildcardOriginNotAllowed:this.appendColumnTitle(i,Ve(De.preflightRequestIfProblematic));break;case e.CorsIssue.IssueCode.PreflightResponseInvalid:this.appendColumnTitle(i,Ve(De.preflightRequest)),this.appendColumnTitle(i,Ve(De.problem));break;case e.CorsIssue.IssueCode.OriginMismatch:this.appendColumnTitle(i,Ve(De.preflightRequestIfProblematic)),this.appendColumnTitle(i,Ve(De.initiatorContext)),this.appendColumnTitle(i,Ve(De.allowedOrigin));break;case e.CorsIssue.IssueCode.AllowCredentialsRequired:this.appendColumnTitle(i,Ve(De.preflightRequestIfProblematic)),this.appendColumnTitle(i,Ve(De.allowCredentialsValueFromHeader));break;case e.CorsIssue.IssueCode.InsecurePrivateNetwork:this.appendColumnTitle(i,Ve(De.resourceAddressSpace)),this.appendColumnTitle(i,Ve(De.initiatorAddressSpace)),this.appendColumnTitle(i,Ve(De.initiatorContext));break;case e.CorsIssue.IssueCode.PreflightAllowPrivateNetworkError:this.appendColumnTitle(i,Ve(De.preflightRequest)),this.appendColumnTitle(i,Ve(De.invalidValue)),this.appendColumnTitle(i,Ve(De.initiatorAddressSpace)),this.appendColumnTitle(i,Ve(De.initiatorContext));break;case e.CorsIssue.IssueCode.MethodDisallowedByPreflightResponse:this.appendColumnTitle(i,Ve(De.preflightRequest)),this.appendColumnTitle(i,Ve(De.disallowedRequestMethod));break;case e.CorsIssue.IssueCode.HeaderDisallowedByPreflightResponse:this.appendColumnTitle(i,Ve(De.preflightRequest)),this.appendColumnTitle(i,Ve(De.disallowedRequestHeader));break;case e.CorsIssue.IssueCode.RedirectContainsCredentials:break;case e.CorsIssue.IssueCode.DisallowedByMode:this.appendColumnTitle(i,Ve(De.initiatorContext)),this.appendColumnTitle(i,Ve(De.sourceLocation));break;case e.CorsIssue.IssueCode.CorsDisabledScheme:this.appendColumnTitle(i,Ve(De.initiatorContext)),this.appendColumnTitle(i,Ve(De.sourceLocation)),this.appendColumnTitle(i,Ve(De.unsupportedScheme));break;case e.CorsIssue.IssueCode.NoCorsRedirectModeNotFollow:this.appendColumnTitle(i,Ve(De.sourceLocation));break;default:f.assertUnhandled(t)}this.affectedResources.appendChild(i);let n=0;for(const e of s)n++,this.#ee(t,e);this.updateAffectedResourceCount(n)}#Ie(e,t){void 0!==t?this.appendIssueDetailCell(e,Ve(t?De.secure:De.insecure)):this.appendIssueDetailCell(e,"")}static getHeaderFromError(e){switch(e){case"InvalidAllowHeadersPreflightResponse":return"Access-Control-Allow-Headers";case"InvalidAllowMethodsPreflightResponse":case"MethodDisallowedByPreflightResponse":return"Access-Control-Allow-Methods";case"PreflightMissingAllowOriginHeader":case"PreflightMultipleAllowOriginValues":case"PreflightInvalidAllowOriginValue":case"MissingAllowOriginHeader":case"MultipleAllowOriginValues":case"InvalidAllowOriginValue":case"WildcardOriginNotAllowed":case"PreflightWildcardOriginNotAllowed":case"AllowOriginMismatch":case"PreflightAllowOriginMismatch":return"Access-Control-Allow-Origin";case"InvalidAllowCredentials":case"PreflightInvalidAllowCredentials":return"Access-Control-Allow-Credentials";case"PreflightMissingAllowPrivateNetwork":case"PreflightInvalidAllowPrivateNetwork":return"Access-Control-Allow-Private-Network";case"RedirectContainsCredentials":case"PreflightDisallowedRedirect":return"Location";case"PreflightInvalidStatus":return"Status-Code"}return""}static getProblemFromError(e){switch(e.corsError){case"InvalidAllowHeadersPreflightResponse":case"InvalidAllowMethodsPreflightResponse":case"PreflightInvalidAllowOriginValue":case"InvalidAllowOriginValue":return Ve(De.problemInvalidValue);case"PreflightMultipleAllowOriginValues":case"MultipleAllowOriginValues":return Ve(De.problemMultipleValues);case"MissingAllowOriginHeader":case"PreflightMissingAllowOriginHeader":return Ve(De.problemMissingHeader);case"PreflightInvalidStatus":return Ve(De.preflightInvalidStatus);case"PreflightDisallowedRedirect":return Ve(De.preflightDisallowedRedirect);case"InvalidResponse":return Ve(De.failedRequest)}throw new Error("Invalid Argument")}#ee(t,s){const i=document.createElement("tr");i.classList.add("affected-resource-directive");const n=s.details(),a=n.corsErrorStatus,r=n.corsErrorStatus.corsError,o={section:p.UIRequestLocation.UIHeaderSection.Response,name:Oe.getHeaderFromError(r)},d={additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened(e.Issue.IssueCategory.Cors,"Request")}};switch(t){case e.CorsIssue.IssueCode.InvalidHeaderValues:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),r.includes("Preflight")?i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})):this.appendIssueDetailCell(i,""),this.appendIssueDetailCell(i,Oe.getHeaderFromError(r),"code-example"),this.appendIssueDetailCell(i,Oe.getProblemFromError(n.corsErrorStatus)),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example");break;case e.CorsIssue.IssueCode.WildcardOriginNotAllowed:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),r.includes("Preflight")?i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})):this.appendIssueDetailCell(i,"");break;case e.CorsIssue.IssueCode.PreflightResponseInvalid:{i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning);const e="PreflightInvalidStatus"===r?{section:p.UIRequestLocation.UIHeaderSection.General,name:"Status-Code"}:o;i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:e})),this.appendIssueDetailCell(i,Oe.getProblemFromError(n.corsErrorStatus));break}case e.CorsIssue.IssueCode.OriginMismatch:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),r.includes("Preflight")?i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})):this.appendIssueDetailCell(i,""),this.appendIssueDetailCell(i,n.initiatorOrigin??"","code-example"),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example");break;case e.CorsIssue.IssueCode.AllowCredentialsRequired:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),r.includes("Preflight")?i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})):this.appendIssueDetailCell(i,""),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example");break;case e.CorsIssue.IssueCode.InsecurePrivateNetwork:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),this.appendIssueDetailCell(i,n.resourceIPAddressSpace??""),this.appendIssueDetailCell(i,n.clientSecurityState?.initiatorIPAddressSpace??""),this.#Ie(i,n.clientSecurityState?.initiatorIsSecureContext);break;case e.CorsIssue.IssueCode.PreflightAllowPrivateNetworkError:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example"),this.appendIssueDetailCell(i,n.clientSecurityState?.initiatorIPAddressSpace??""),this.#Ie(i,n.clientSecurityState?.initiatorIsSecureContext);break;case e.CorsIssue.IssueCode.MethodDisallowedByPreflightResponse:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:o})),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example");break;case e.CorsIssue.IssueCode.HeaderDisallowedByPreflightResponse:i.appendChild(this.createRequestCell(n.request,{...d,highlightHeader:{section:p.UIRequestLocation.UIHeaderSection.Request,name:a.failedParameter}})),this.#G(i,n.isWarning),i.appendChild(this.createRequestCell(n.request,{...d,linkToPreflight:!0,highlightHeader:{section:p.UIRequestLocation.UIHeaderSection.Response,name:"Access-Control-Allow-Headers"}})),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter,"code-example");break;case e.CorsIssue.IssueCode.RedirectContainsCredentials:i.appendChild(this.createRequestCell(n.request,{...d,highlightHeader:{section:p.UIRequestLocation.UIHeaderSection.Response,name:Oe.getHeaderFromError(r)}})),this.#G(i,n.isWarning);break;case e.CorsIssue.IssueCode.DisallowedByMode:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),this.appendIssueDetailCell(i,n.initiatorOrigin??"","code-example"),this.appendSourceLocation(i,n.location,s.model()?.getTargetIfNotDisposed());break;case e.CorsIssue.IssueCode.CorsDisabledScheme:i.appendChild(this.createRequestCell(n.request,{...d,highlightHeader:{section:p.UIRequestLocation.UIHeaderSection.Response,name:Oe.getHeaderFromError(r)}})),this.#G(i,n.isWarning),this.appendIssueDetailCell(i,n.initiatorOrigin??"","code-example"),this.appendSourceLocation(i,n.location,s.model()?.getTargetIfNotDisposed()),this.appendIssueDetailCell(i,n.corsErrorStatus.failedParameter??"","code-example");break;case e.CorsIssue.IssueCode.NoCorsRedirectModeNotFollow:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),this.appendSourceLocation(i,n.location,s.model()?.getTargetIfNotDisposed());break;default:i.appendChild(this.createRequestCell(n.request,d)),this.#G(i,n.isWarning),f.assertUnhandled(t)}this.affectedResources.appendChild(i)}update(){this.clear();const e=this.issue.getCorsIssues();e.size>0?this.#Y(e.values().next().value.code(),e):this.updateAffectedResourceCount(0)}}const Ue={nResources:"{n, plural, =1 {# resource} other {# resources}}",frameId:"Frame",violatingNode:"Violating node"},He=t.i18n.registerUIStrings("panels/issues/GenericIssueDetailsView.ts",Ue),Fe=t.i18n.getLocalizedString.bind(void 0,He);class Ne extends _{getResourceNameWithCount(e){return Fe(Ue.nResources,{n:e})}#Y(e){const t=document.createElement("tr");e.values().next().value.details().frameId&&this.appendColumnTitle(t,Fe(Ue.frameId)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,this.#ee(t);this.updateAffectedResourceCount(s)}async#ee(e){const t=document.createElement("tr");t.classList.add("affected-resource-directive");const s=e.details();if(s.frameId&&t.appendChild(this.createFrameCell(s.frameId,e.getCategory())),s.violatingNodeId){const i=e.model()?.target()||null;t.appendChild(await this.createElementCell({backendNodeId:s.violatingNodeId,nodeName:this.violatingNodeIdName(s.errorType),target:i},e.getCategory()))}this.affectedResources.appendChild(t)}violatingNodeIdName(e){return"FormLabelForNameError"===e?t.i18n.lockedString("Label"):Fe(Ue.violatingNode)}update(){this.clear();const e=this.issue.getGenericIssues();e.size>0?this.#Y(e):this.updateAffectedResourceCount(0)}}const Be={nViolations:"{n, plural, =1 {# violation} other {# violations}}",element:"Element",invalidHeaderValue:"Invalid Header Value",request:"Request",untrustworthyOrigin:"Untrustworthy origin"},Ke=t.i18n.registerUIStrings("panels/issues/AttributionReportingIssueDetailsView.ts",Be),We=t.i18n.getLocalizedString.bind(void 0,Ke);class ze extends _{getResourceNameWithCount(e){return We(Be.nViolations,{n:e})}update(){this.clear();const e=this.issue.getAttributionReportingIssues();e.size>0?this.#Y(e.values().next().value.code(),e):this.updateAffectedResourceCount(0)}#Y(e,t){const s=document.createElement("tr");switch(e){case"AttributionReportingIssue::InvalidRegisterSourceHeader":case"AttributionReportingIssue::InvalidRegisterTriggerHeader":case"AttributionReportingIssue::InvalidRegisterOsSourceHeader":case"AttributionReportingIssue::InvalidRegisterOsTriggerHeader":case"AttributionReportingIssue::OsSourceIgnored":case"AttributionReportingIssue::OsTriggerIgnored":case"AttributionReportingIssue::SourceIgnored":case"AttributionReportingIssue::TriggerIgnored":this.appendColumnTitle(s,We(Be.request)),this.appendColumnTitle(s,We(Be.invalidHeaderValue));break;case"AttributionReportingIssue::InsecureContext":case"AttributionReportingIssue::UntrustworthyReportingOrigin":this.appendColumnTitle(s,We(Be.element)),this.appendColumnTitle(s,We(Be.request)),this.appendColumnTitle(s,We(Be.untrustworthyOrigin));break;case"AttributionReportingIssue::PermissionPolicyDisabled":this.appendColumnTitle(s,We(Be.element)),this.appendColumnTitle(s,We(Be.request));break;case"AttributionReportingIssue::SourceAndTriggerHeaders":case"AttributionReportingIssue::WebAndOsHeaders":this.appendColumnTitle(s,We(Be.request))}this.affectedResources.appendChild(s);let i=0;for(const s of t)i++,this.#ee(e,s);this.updateAffectedResourceCount(i)}async#ee(e,t){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=t.issueDetails;switch(e){case"AttributionReportingIssue::InvalidRegisterSourceHeader":case"AttributionReportingIssue::InvalidRegisterTriggerHeader":case"AttributionReportingIssue::SourceIgnored":case"AttributionReportingIssue::TriggerIgnored":this.#we(s,i.request),this.appendIssueDetailCell(s,i.invalidParameter||"");break;case"AttributionReportingIssue::InsecureContext":case"AttributionReportingIssue::UntrustworthyReportingOrigin":await this.#ye(s,t),this.#we(s,i.request),this.appendIssueDetailCell(s,i.invalidParameter||"");break;case"AttributionReportingIssue::PermissionPolicyDisabled":await this.#ye(s,t),this.#we(s,i.request);break;case"AttributionReportingIssue::SourceAndTriggerHeaders":this.#we(s,i.request)}this.affectedResources.appendChild(s)}async#ye(e,t){const s=t.issueDetails;if(void 0!==s.violatingNodeId){const i=t.model()?.target()||null;e.appendChild(await this.createElementCell({backendNodeId:s.violatingNodeId,target:i,nodeName:"Attribution source element"},t.getCategory()))}else this.appendIssueDetailCell(e,"")}#we(t,s){if(!s)return void this.appendIssueDetailCell(t,"");const i={additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened(e.Issue.IssueCategory.AttributionReporting,"Request")}};t.appendChild(this.createRequestCell(s,i))}}const _e={name:"Name",blocked:"blocked",nRequests:"{n, plural, =1 {# request} other {# requests}}",nResources:"{n, plural, =1 {# resource} other {# resources}}",restrictionStatus:"Restriction Status",warned:"Warned",affectedResources:"Affected Resources",learnMoreS:"Learn more: {PH1}",automaticallyUpgraded:"automatically upgraded",hideIssuesLikeThis:"Hide issues like this",unhideIssuesLikeThis:"Unhide issues like this"},je=t.i18n.registerUIStrings("panels/issues/IssueView.ts",_e),Ge=t.i18n.getLocalizedString.bind(void 0,je);class $e extends _{#be(e){let t=0;for(const s of e){const e=document.createElement("tr");e.classList.add("affected-resource-request");const i=this.issue.getCategory();let n=Qe.get(i)||p.UIRequestLocation.UIRequestTabs.Headers;n===p.UIRequestLocation.UIRequestTabs.Headers&&g.Runtime.experiments.isEnabled(g.Runtime.ExperimentName.HEADER_OVERRIDES)&&(n=p.UIRequestLocation.UIRequestTabs.HeadersComponent),e.appendChild(this.createRequestCell(s,{networkTab:n,additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened(i,"Request")}})),this.affectedResources.appendChild(e),t++}this.updateAffectedResourceCount(t)}getResourceNameWithCount(e){return Ge(_e.nRequests,{n:e})}update(){this.clear();for(const e of this.issue.getBlockedByResponseDetails())return void this.updateAffectedResourceCount(0);this.issue.getCategory()!==e.Issue.IssueCategory.MixedContent?this.#be(this.issue.requests()):this.updateAffectedResourceCount(0)}}const Qe=new Map([[e.Issue.IssueCategory.Cookie,p.UIRequestLocation.UIRequestTabs.Cookies],[e.Issue.IssueCategory.CrossOriginEmbedderPolicy,p.UIRequestLocation.UIRequestTabs.Headers],[e.Issue.IssueCategory.MixedContent,p.UIRequestLocation.UIRequestTabs.Headers]]);class Ze extends _{#ve(e){const t=document.createElement("tr");this.appendColumnTitle(t,Ge(_e.name)),this.appendColumnTitle(t,Ge(_e.restrictionStatus)),this.affectedResources.appendChild(t);let s=0;for(const t of e){const e=t.getDetails();this.appendAffectedMixedContent(e),s++}this.updateAffectedResourceCount(s)}getResourceNameWithCount(e){return Ge(_e.nResources,{n:e})}appendAffectedMixedContent(t){const s=document.createElement("tr");if(s.classList.add("affected-resource-mixed-content"),t.request){let i=Qe.get(this.issue.getCategory())||p.UIRequestLocation.UIRequestTabs.Headers;i===p.UIRequestLocation.UIRequestTabs.Headers&&g.Runtime.experiments.isEnabled(g.Runtime.ExperimentName.HEADER_OVERRIDES)&&(i=p.UIRequestLocation.UIRequestTabs.HeadersComponent),s.appendChild(this.createRequestCell(t.request,{networkTab:i,additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened(e.Issue.IssueCategory.MixedContent,"Request")}}))}else{const e=(i=t.insecureURL,(/[^/]+$/.exec(i)||/[^/]+\/$/.exec(i)||[""])[0]);this.appendIssueDetailCell(s,e,"affected-resource-mixed-content-info").title=t.insecureURL}var i;this.appendIssueDetailCell(s,Ze.translateStatus(t.resolutionStatus),"affected-resource-mixed-content-info"),this.affectedResources.appendChild(s)}static translateStatus(e){switch(e){case"MixedContentBlocked":return Ge(_e.blocked);case"MixedContentAutomaticallyUpgraded":return Ge(_e.automaticallyUpgraded);case"MixedContentWarning":return Ge(_e.warned)}}update(){this.clear(),this.#ve(this.issue.getMixedContentIssues())}}class Je extends s.TreeOutline.TreeElement{#Re;#ke;toggleOnClick;affectedResources;#xe;#P;#Se=null;#Te;#Ae;#Ee=!0;#Le;#Me=!1;constructor(e,t){super(),this.#Re=e,this.#ke=t,this.#Ae=new r.Throttler.Throttler(250),this.toggleOnClick=!0,this.listItemElement.classList.add("issue"),this.childrenListElement.classList.add("body"),this.childrenListElement.classList.add(Je.getBodyCSSClass(this.#Re.getKind())),this.affectedResources=this.#Pe(),this.#xe=[new ie(this,this.#Re),new de(this,this.#Re),new $e(this,this.#Re),new Ze(this,this.#Re),new Ae(this,this.#Re),new ye(this,this.#Re),new Q(this,this.#Re),new Y(this,this.#Re),new ke(this,this.#Re),new he(this,this.#Re),new Oe(this,this.#Re),new Ne(this,this.#Re),new pe(this,this.#Re),new ze(this,this.#Re),new ne(this,this.#Re),new Pe(this,this.#Re)],this.#Le=new h.HideIssuesMenu.HideIssuesMenu,this.#P=null,this.#Te=!1}setIssue(e){this.#Re!==e&&(this.#Ee=!0),this.#Re=e,this.#xe.forEach((t=>t.setIssue(e)))}static getBodyCSSClass(t){switch(t){case e.Issue.IssueKind.BreakingChange:return"issue-kind-breaking-change";case e.Issue.IssueKind.PageError:return"issue-kind-page-error";case e.Issue.IssueKind.Improvement:return"issue-kind-improvement"}}getIssueTitle(){return this.#ke.title}onattach(){this.#Me?this.update():this.createContent()}createContent(){this.#N(),this.#De(),this.appendChild(this.affectedResources);for(const e of this.#xe)this.appendAffectedResource(e),e.update();this.#qe(),this.updateAffectedResourceVisibility(),this.#Me=!0}appendAffectedResource(e){this.affectedResources.appendChild(e)}#N(){const e=document.createElement("div");e.classList.add("header"),this.#Se=new u.Icon.Icon,this.#Se.classList.add("leading-issue-icon"),this.#P=document.createElement("span");const t=new d.Adorner.Adorner;t.data={name:"countWrapper",content:this.#P},t.classList.add("aggregated-issues-count"),e.appendChild(this.#Se),e.appendChild(t);const s=document.createElement("div");s.classList.add("title"),s.textContent=this.#ke.title,e.appendChild(s),this.#Le&&e.appendChild(this.#Le),this.#Ve(),this.listItemElement.appendChild(e)}onexpand(){if(l.userMetrics.issuesPanelIssueExpanded(this.#Re.getCategory()),this.#Ee&&this.#re(),!this.#Te){this.#Te=!0;for(const e of this.#xe)e.expandIfOneResource()}}#Ve(){if(this.#Se){const t=this.#Re.getKind();this.#Se.data=o.IssueCounter.getIssueKindIconData(t),this.#Se.title=e.Issue.getIssueKindDescription(t)}if(this.#P&&(this.#P.textContent=`${this.#Re.getAggregatedIssuesCount()}`),this.listItemElement.classList.toggle("hidden-issue",this.#Re.isHidden()),this.#Le){const t={menuItemLabel:this.#Re.isHidden()?Ge(_e.unhideIssuesLikeThis):Ge(_e.hideIssuesLikeThis),menuItemAction:()=>{const t=e.IssuesManager.getHideIssueByCodeSetting(),s=t.get();s[this.#Re.code()]=this.#Re.isHidden()?"Unhidden":"Hidden",t.set(s)}};this.#Le.data=t}}updateAffectedResourceVisibility(){const e=this.#xe.every((e=>e.isEmpty()));this.affectedResources.hidden=e}#Pe(){const e=new s.TreeOutline.TreeElement;return e.setCollapsible(!1),e.setExpandable(!0),e.expand(),e.selectable=!1,e.listItemElement.classList.add("affected-resources-label"),e.listItemElement.textContent=Ge(_e.affectedResources),e.childrenListElement.classList.add("affected-resources"),e}#De(){const e=new s.TreeOutline.TreeElement;e.setCollapsible(!1),e.selectable=!1;const t=new c.MarkdownView.MarkdownView;t.data={tokens:this.#ke.markdown},e.listItemElement.appendChild(t),this.appendChild(e)}#qe(){if(0===this.#ke.links.length)return;const e=new s.TreeOutline.TreeElement;e.setCollapsible(!1),e.listItemElement.classList.add("link-wrapper");const t=e.listItemElement.createChild("ul","link-list");for(const e of this.#ke.links){const i=s.Fragment.html`<x-link class="link devtools-link" tabindex="0" href="${e.link}">${Ge(_e.learnMoreS,{PH1:e.linkTitle})}</x-link>`,n=new u.Icon.Icon;n.data={iconName:"open-externally",color:"var(--icon-link)",width:"16px",height:"16px"},n.classList.add("link-icon"),i.prepend(n),i.addEventListener("x-link-invoke",(()=>{l.userMetrics.issuesPanelResourceOpened(this.#Re.getCategory(),"LearnMore")}));t.createChild("li").appendChild(i)}this.appendChild(e)}#re(){this.expanded&&(this.#xe.forEach((e=>e.update())),this.updateAffectedResourceVisibility()),this.#Ee=!this.expanded,this.#Ve()}update(){this.#Ae.schedule((async()=>this.#re()))}clear(){this.#xe.forEach((e=>e.clear()))}getIssueKind(){return this.#Re.getKind()}isForHiddenIssue(){return this.#Re.isHidden()}toggle(e){e||void 0===e&&!this.expanded?this.expand():this.collapse()}}var Xe=Object.freeze({__proto__:null,IssueView:Je});const Ye={hideAllCurrentPageErrors:"Hide all current Page Errors",hideAllCurrentBreakingChanges:"Hide all current Breaking Changes",hideAllCurrentImprovements:"Hide all current Improvements"},et=t.i18n.registerUIStrings("panels/issues/IssueKindView.ts",Ye),tt=t.i18n.getLocalizedString.bind(void 0,et);function st(){return r.Settings.Settings.instance().createSetting("groupIssuesByKind",!1)}class it extends s.TreeOutline.TreeElement{#Oe;#Ue;constructor(t){super(void 0,!0),this.#Oe=t,this.#Ue=document.createElement("span"),this.toggleOnClick=!0,this.listItemElement.classList.add("issue-kind"),this.listItemElement.classList.add(function(t){switch(t){case e.Issue.IssueKind.BreakingChange:return"breaking-changes";case e.Issue.IssueKind.Improvement:return"improvements";case e.Issue.IssueKind.PageError:return"page-errors"}}(t)),this.childrenListElement.classList.add("issue-kind-body")}getKind(){return this.#Oe}getHideAllCurrentKindString(){switch(this.#Oe){case e.Issue.IssueKind.PageError:return tt(Ye.hideAllCurrentPageErrors);case e.Issue.IssueKind.Improvement:return tt(Ye.hideAllCurrentImprovements);case e.Issue.IssueKind.BreakingChange:return tt(Ye.hideAllCurrentBreakingChanges)}}#N(){const t=document.createElement("div");t.classList.add("header");const s=new u.Icon.Icon;s.data=o.IssueCounter.getIssueKindIconData(this.#Oe),s.classList.add("leading-issue-icon");const i=new d.Adorner.Adorner;i.data={name:"countWrapper",content:this.#Ue},i.classList.add("aggregated-issues-count"),this.#Ue.textContent="0";const n=document.createElement("div");n.classList.add("title"),n.textContent=e.Issue.getIssueKindName(this.#Oe);const a=new h.HideIssuesMenu.HideIssuesMenu;a.classList.add("hide-available-issues"),a.data={menuItemLabel:this.getHideAllCurrentKindString(),menuItemAction:()=>{const t=e.IssuesManager.getHideIssueByCodeSetting(),s=t.get();for(const t of e.IssuesManager.IssuesManager.instance().issues())t.getKind()===this.#Oe&&(s[t.code()]="Hidden");t.set(s)}},t.appendChild(s),t.appendChild(i),t.appendChild(n),t.appendChild(a),this.listItemElement.appendChild(t)}onattach(){this.#N(),this.expand()}update(e){this.#Ue.textContent=`${e}`}}const nt={crossOriginEmbedderPolicy:"Cross Origin Embedder Policy",mixedContent:"Mixed Content",samesiteCookie:"SameSite Cookie",heavyAds:"Heavy Ads",contentSecurityPolicy:"Content Security Policy",other:"Other",lowTextContrast:"Low Text Contrast",cors:"Cross Origin Resource Sharing",groupDisplayedIssuesUnder:"Group displayed issues under associated categories",groupByCategory:"Group by category",groupDisplayedIssuesUnderKind:"Group displayed issues as Page errors, Breaking changes and Improvements",groupByKind:"Group by kind",includeCookieIssuesCausedBy:"Include cookie Issues caused by third-party sites",includeThirdpartyCookieIssues:"Include third-party cookie issues",onlyThirdpartyCookieIssues:"Only third-party cookie issues detected so far",noIssuesDetectedSoFar:"No issues detected so far",attributionReporting:"Attribution Reporting `API`",quirksMode:"Quirks Mode",generic:"Generic"},at=t.i18n.registerUIStrings("panels/issues/IssuesPane.ts",nt),rt=t.i18n.getLocalizedString.bind(void 0,at);class ot extends s.TreeOutline.TreeElement{#He;constructor(e){super(),this.#He=e,this.toggleOnClick=!0,this.listItemElement.classList.add("issue-category"),this.childrenListElement.classList.add("issue-category-body")}getCategoryName(){switch(this.#He){case e.Issue.IssueCategory.CrossOriginEmbedderPolicy:return rt(nt.crossOriginEmbedderPolicy);case e.Issue.IssueCategory.MixedContent:return rt(nt.mixedContent);case e.Issue.IssueCategory.Cookie:return rt(nt.samesiteCookie);case e.Issue.IssueCategory.HeavyAd:return rt(nt.heavyAds);case e.Issue.IssueCategory.ContentSecurityPolicy:return rt(nt.contentSecurityPolicy);case e.Issue.IssueCategory.LowTextContrast:return rt(nt.lowTextContrast);case e.Issue.IssueCategory.Cors:return rt(nt.cors);case e.Issue.IssueCategory.AttributionReporting:return rt(nt.attributionReporting);case e.Issue.IssueCategory.QuirksMode:return rt(nt.quirksMode);case e.Issue.IssueCategory.Generic:return rt(nt.generic);case e.Issue.IssueCategory.Other:return rt(nt.other)}}onattach(){this.#N()}#N(){const e=document.createElement("div");e.classList.add("header");const t=document.createElement("div");t.classList.add("title"),t.textContent=this.getCategoryName(),e.appendChild(t),this.listItemElement.appendChild(e)}}function dt(){return r.Settings.Settings.instance().createSetting("groupIssuesByCategory",!1)}let lt;class ut extends s.Widget.VBox{#Fe;#Ne;#Be;#Ke;#We;#ze;#_e;#u;#je;#Ge=Promise.resolve();constructor(){super(!0),this.contentElement.classList.add("issues-pane"),this.#Fe=new Map,this.#Be=new Map,this.#Ne=new Map,this.#Ke=null,this.#$e(),this.#We=new s.TreeOutline.TreeOutlineInShadow,this.#We.setShowSelectionOnKeyboardFocus(!0),this.#We.contentElement.classList.add("issues"),this.contentElement.appendChild(this.#We.element),this.#ze=new F,this.#We.appendChild(this.#ze),this.#_e=document.createElement("div"),this.#_e.classList.add("issues-pane-no-issues"),this.contentElement.appendChild(this.#_e),this.#u=e.IssuesManager.IssuesManager.instance(),this.#je=new q(this.#u),this.#je.addEventListener("AggregatedIssueUpdated",this.#Qe,this),this.#je.addEventListener("FullUpdateRequired",this.#Ze,this),this.#ze.hidden=0===this.#u.numberOfHiddenIssues(),this.#Ze(),this.#u.addEventListener("IssuesCountUpdated",this.#Je,this)}static instance(e={forceNew:null}){const{forceNew:t}=e;return lt&&!t||(lt=new ut),lt}elementsToRestoreScrollPositionsFor(){return[this.#We.element]}#$e(){const t=this.contentElement.createChild("div","issues-toolbar-container");new s.Toolbar.Toolbar("issues-toolbar-left",t);const i=new s.Toolbar.Toolbar("issues-toolbar-right",t),n=dt(),a=new s.Toolbar.ToolbarSettingCheckbox(n,rt(nt.groupDisplayedIssuesUnder),rt(nt.groupByCategory));a.setVisible(!1),i.appendToolbarItem(a),n.addChangeListener((()=>{this.#Xe(!0)}));const r=st(),d=new s.Toolbar.ToolbarSettingCheckbox(r,rt(nt.groupDisplayedIssuesUnderKind),rt(nt.groupByKind));i.appendToolbarItem(d),r.addChangeListener((()=>{this.#Xe(!0)})),d.setVisible(!0);const l=e.Issue.getShowThirdPartyIssuesSetting();this.#Ke=new s.Toolbar.ToolbarSettingCheckbox(l,rt(nt.includeCookieIssuesCausedBy),rt(nt.includeThirdpartyCookieIssues)),i.appendToolbarItem(this.#Ke),this.setDefaultFocusedElement(this.#Ke.inputElement),i.appendSeparator();const u=new o.IssueCounter.IssueCounter;u.data={tooltipCallback:()=>{const t=o.IssueCounter.getIssueCountsEnumeration(e.IssuesManager.IssuesManager.instance(),!1);u.title=t},displayMode:"ShowAlways",issuesManager:e.IssuesManager.IssuesManager.instance()},u.id="console-issues-counter";const c=new s.Toolbar.ToolbarItem(u);return i.appendToolbarItem(c),{toolbarContainer:t}}#Qe(e){this.#Ye(e.data)}#Ye(e){this.#Ge=this.#Ge.then((()=>this.#et(e)))}async#et(t){let i=this.#Ne.get(t.aggregationKey());if(i){i.setIssue(t);const e=this.#tt(t);i.parent===e||e instanceof s.TreeOutline.TreeOutline&&i.parent===e.rootElement()||(i.parent?.removeChild(i),this.appendIssueViewToParent(i,e))}else{const s=t.getDescription();if(!s)return void console.warn("Could not find description for issue code:",t.code());const n=await e.MarkdownIssueDescription.createIssueDescriptionFromMarkdown(s);i=new Je(t,n),this.#Ne.set(t.aggregationKey(),i);const a=this.#tt(t);this.appendIssueViewToParent(i,a)}i.update(),this.#Je()}appendIssueViewToParent(e,t){t.appendChild(e,((e,t)=>e instanceof F?1:t instanceof F?-1:e instanceof Je&&t instanceof Je?e.getIssueTitle().localeCompare(t.getIssueTitle()):(console.error("The issues tree should only contain IssueView objects as direct children"),0)))}#tt(t){if(t.isHidden())return this.#ze;if(st().get()){const s=t.getKind(),i=this.#Be.get(s);if(i)return i;const n=new it(s);return this.#We.appendChild(n,((t,s)=>t instanceof it&&s instanceof it?function(t,s){return t.getKind()===s.getKind()?0:t.getKind()===e.Issue.IssueKind.PageError||t.getKind()===e.Issue.IssueKind.BreakingChange&&s.getKind()===e.Issue.IssueKind.Improvement?-1:1}(t,s):0)),this.#Be.set(s,n),n}if(dt().get()){const e=t.getCategory(),s=this.#Fe.get(e);if(s)return s;const i=new ot(e);return this.#We.appendChild(i,((e,t)=>e instanceof ot&&t instanceof ot?e.getCategoryName().localeCompare(t.getCategoryName()):0)),this.#Fe.set(e,i),i}return this.#We}#st(e,t){for(const[s,i]of Array.from(e.entries()))t?.has(s)||(i.parent&&i.parent.removeChild(i),e.delete(s))}#Ze(){this.#Xe(!1)}#Xe(e){if(this.#st(this.#Fe,e?void 0:this.#je.aggregatedIssueCategories()),this.#st(this.#Be,e?void 0:this.#je.aggregatedIssueKinds()),this.#st(this.#Ne,e?void 0:this.#je.aggregatedIssueCodes()),this.#je)for(const e of this.#je.aggregatedIssues())this.#Ye(e);this.#Je()}#it(){for(const e of this.#Be.values()){const t=this.#u.numberOfIssues(e.getKind());e.update(t)}}#Je(){this.#nt(this.#u.numberOfIssues(),this.#u.numberOfHiddenIssues()),st().get()&&this.#it()}#nt(e,t){if(e>0||t>0){this.#ze.hidden=0===t,this.#ze.update(t),this.#We.element.hidden=!1,this.#_e.style.display="none";const e=this.#We.firstChild();e&&(e.select(!0),this.setDefaultFocusedElement(e.listItemElement))}else{this.#We.element.hidden=!0,this.#Ke&&this.setDefaultFocusedElement(this.#Ke.inputElement);const e=this.#u.numberOfAllStoredIssues()>0;this.#_e.textContent=rt(e?nt.onlyThirdpartyCookieIssues:nt.noIssuesDetectedSoFar),this.#_e.style.display="flex"}}async reveal(e){await this.#Ge;const t=this.#je.keyForIssue(e),s=this.#Ne.get(t);if(s){if(s.isForHiddenIssue()&&(this.#ze.expand(),this.#ze.reveal()),st().get()&&!s.isForHiddenIssue()){const e=this.#Be.get(s.getIssueKind());e?.expand(),e?.reveal()}s.expand(),s.reveal(),s.select(!1,!0)}}wasShown(){super.wasShown(),this.#We.registerCSSFiles([B]),this.registerCSSFiles([N])}}var ct=Object.freeze({__proto__:null,getGroupIssuesByCategorySetting:dt,IssuesPane:ut});let pt;class ht{static instance(e={forceNew:null}){const{forceNew:t}=e;return pt&&!t||(pt=new ht),pt}async reveal(t){if(!(t instanceof e.Issue.Issue))throw new Error("Internal error: not a issue");await s.ViewManager.ViewManager.instance().showView("issues-pane");const i=s.ViewManager.ViewManager.instance().view("issues-pane");if(i){const e=await i.widget();if(!(e instanceof ut))throw new Error("Expected issues pane to be an instance of IssuesPane");await e.reveal(t)}}}var gt=Object.freeze({__proto__:null,IssueRevealer:ht});export{P as CSPViolationsView,V as IssueAggregator,gt as IssueRevealer,Xe as IssueView,ct as IssuesPane};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"../../core/i18n/i18n.js";import*as t from"../../core/root/root.js";import*as i from"../../ui/legacy/legacy.js";const o={profiler:"Profiler",showProfiler:"Show Profiler",performance:"Performance",showPerformance:"Show Performance",startStopRecording:"Start/stop recording",showRecentTimelineSessions:"Show recent timeline sessions",record:"Record",stop:"Stop",startProfilingAndReloadPage:"Start profiling and reload page"},n=e.i18n.registerUIStrings("panels/js_profiler/js_profiler-meta.ts",o),r=e.i18n.getLazilyComputedLocalizedString.bind(void 0,n);let a,l;async function s(){return l||(l=await import("../profiler/profiler.js")),l}async function c(){return a||(a=await import("../timeline/timeline.js")),a}function g(e){return void 0===a?[]:e(a)}i.ViewManager.registerViewExtension({location:"panel",id:"js_profiler",title:r(o.profiler),commandPrompt:r(o.showProfiler),order:65,persistence:"closeable",experiment:t.Runtime.ExperimentName.JS_PROFILER_TEMP_ENABLE,loadView:async()=>(await s()).ProfilesPanel.JSProfilerPanel.instance()}),i.ViewManager.registerViewExtension({location:"panel",id:"timeline",title:r(o.performance),commandPrompt:r(o.showPerformance),order:66,hasToolbar:!1,isPreviewFeature:!0,loadView:async()=>(await c()).TimelinePanel.TimelinePanel.instance({forceNew:null,isNode:!0})}),i.ActionRegistration.registerActionExtension({actionId:"profiler.js-toggle-recording",category:i.ActionRegistration.ActionCategory.JAVASCRIPT_PROFILER,title:r(o.startStopRecording),iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes(){return e=e=>[e.ProfilesPanel.JSProfilerPanel],void 0===l?[]:e(l);var e},loadActionDelegate:async()=>(await s()).ProfilesPanel.JSProfilerPanel.instance(),bindings:[{platform:"windows,linux",shortcut:"Ctrl+E"},{platform:"mac",shortcut:"Meta+E"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.show-history",loadActionDelegate:async()=>(await c()).TimelinePanel.ActionDelegate.instance(),category:i.ActionRegistration.ActionCategory.PERFORMANCE,title:r(o.showRecentTimelineSessions),contextTypes:()=>g((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Ctrl+H"},{platform:"mac",shortcut:"Meta+Y"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.toggle-recording",category:i.ActionRegistration.ActionCategory.PERFORMANCE,iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes:()=>g((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>(await c()).TimelinePanel.ActionDelegate.instance(),options:[{value:!0,title:r(o.record)},{value:!1,title:r(o.stop)}],bindings:[{platform:"windows,linux",shortcut:"Ctrl+E"},{platform:"mac",shortcut:"Meta+E"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.record-reload",iconClass:"refresh",contextTypes:()=>g((e=>[e.TimelinePanel.TimelinePanel])),category:i.ActionRegistration.ActionCategory.PERFORMANCE,title:r(o.startProfilingAndReloadPage),loadActionDelegate:async()=>(await c()).TimelinePanel.ActionDelegate.instance(),bindings:[{platform:"windows,linux",shortcut:"Ctrl+Shift+E"},{platform:"mac",shortcut:"Meta+Shift+E"}]});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as e from"./layer_viewer.js";self.LayerViewer=self.LayerViewer||{},LayerViewer=LayerViewer||{},LayerViewer.LayerDetailsView=e.LayerDetailsView.LayerDetailsView,LayerViewer.LayerDetailsView.Events=e.LayerDetailsView.Events,LayerViewer.LayerDetailsView._slowScrollRectNames=e.LayerDetailsView.slowScrollRectNames,LayerViewer.LayerTreeOutline=e.LayerTreeOutline.LayerTreeOutline,LayerViewer.LayerTreeOutline.Events=e.LayerTreeOutline.Events,LayerViewer.LayerTreeElement=e.LayerTreeOutline.LayerTreeElement,LayerViewer.LayerTreeElement.layerToTreeElement=e.LayerTreeOutline.layerToTreeElement,LayerViewer.LayerView=e.LayerViewHost.LayerView,LayerViewer.LayerView.Selection=e.LayerViewHost.Selection,LayerViewer.LayerView.Selection.Type=e.LayerViewHost.Type,LayerViewer.LayerView.LayerSelection=e.LayerViewHost.LayerSelection,LayerViewer.LayerView.ScrollRectSelection=e.LayerViewHost.ScrollRectSelection,LayerViewer.LayerView.SnapshotSelection=e.LayerViewHost.SnapshotSelection,LayerViewer.LayerViewHost=e.LayerViewHost.LayerViewHost,LayerViewer.Layers3DView=e.Layers3DView.Layers3DView,LayerViewer.Layers3DView.OutlineType=e.Layers3DView.OutlineType,LayerViewer.Layers3DView.Events=e.Layers3DView.Events,LayerViewer.Layers3DView.ChromeTexture=e.Layers3DView.ChromeTexture,LayerViewer.Layers3DView.FragmentShader=e.Layers3DView.FragmentShader,LayerViewer.Layers3DView.VertexShader=e.Layers3DView.VertexShader,LayerViewer.Layers3DView.HoveredBorderColor=e.Layers3DView.HoveredBorderColor,LayerViewer.Layers3DView.SelectedBorderColor=e.Layers3DView.SelectedBorderColor,LayerViewer.Layers3DView.BorderColor=e.Layers3DView.BorderColor,LayerViewer.Layers3DView.ViewportBorderColor=e.Layers3DView.ViewportBorderColor,LayerViewer.Layers3DView.ScrollRectBackgroundColor=e.Layers3DView.ScrollRectBackgroundColor,LayerViewer.Layers3DView.HoveredImageMaskColor=e.Layers3DView.HoveredImageMaskColor,LayerViewer.Layers3DView.BorderWidth=e.Layers3DView.BorderWidth,LayerViewer.Layers3DView.SelectedBorderWidth=e.Layers3DView.SelectedBorderWidth,LayerViewer.Layers3DView.ViewportBorderWidth=e.Layers3DView.ViewportBorderWidth,LayerViewer.Layers3DView.LayerSpacing=e.Layers3DView.LayerSpacing,LayerViewer.Layers3DView.ScrollRectSpacing=e.Layers3DView.ScrollRectSpacing,LayerViewer.Layers3DView.Rectangle=e.Layers3DView.Rectangle,LayerViewer.LayerTextureManager=e.Layers3DView.LayerTextureManager,LayerViewer.LayerTextureManager.Tile=e.Layers3DView.Tile,LayerViewer.PaintProfilerView=e.PaintProfilerView.PaintProfilerView,LayerViewer.PaintProfilerView.Events=e.PaintProfilerView.Events,LayerViewer.PaintProfilerCommandLogView=e.PaintProfilerView.PaintProfilerCommandLogView,LayerViewer.LogTreeElement=e.PaintProfilerView.LogTreeElement,LayerViewer.LogPropertyTreeElement=e.PaintProfilerView.LogPropertyTreeElement,LayerViewer.PaintProfilerCategory=e.PaintProfilerView.PaintProfilerCategory,LayerViewer.TransformController=e.TransformController.TransformController,LayerViewer.TransformController.Events=e.TransformController.Events,LayerViewer.TransformController.Modes=e.TransformController.Modes;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"../../core/i18n/i18n.js";import*as o from"../../ui/legacy/legacy.js";const i={resetView:"Reset view",switchToPanMode:"Switch to pan mode",switchToRotateMode:"Switch to rotate mode",zoomIn:"Zoom in",zoomOut:"Zoom out",panOrRotateUp:"Pan or rotate up",panOrRotateDown:"Pan or rotate down",panOrRotateLeft:"Pan or rotate left",panOrRotateRight:"Pan or rotate right"},e=t.i18n.registerUIStrings("panels/layer_viewer/layer_viewer-meta.ts",i),n=t.i18n.getLazilyComputedLocalizedString.bind(void 0,e);o.ActionRegistration.registerActionExtension({actionId:"layers.reset-view",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.resetView),bindings:[{shortcut:"0"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.pan-mode",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.switchToPanMode),bindings:[{shortcut:"x"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.rotate-mode",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.switchToRotateMode),bindings:[{shortcut:"v"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.zoom-in",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.zoomIn),bindings:[{shortcut:"Shift+Plus"},{shortcut:"NumpadPlus"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.zoom-out",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.zoomOut),bindings:[{shortcut:"Shift+Minus"},{shortcut:"NumpadMinus"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.up",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.panOrRotateUp),bindings:[{shortcut:"Up"},{shortcut:"w"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.down",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.panOrRotateDown),bindings:[{shortcut:"Down"},{shortcut:"s"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.left",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.panOrRotateLeft),bindings:[{shortcut:"Left"},{shortcut:"a"}]}),o.ActionRegistration.registerActionExtension({actionId:"layers.right",category:o.ActionRegistration.ActionCategory.LAYERS,title:n(i.panOrRotateRight),bindings:[{shortcut:"Right"},{shortcut:"d"}]});
|