chrome-devtools-frontend 1.0.1669021 → 1.0.1672557
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/.agents/skills/fixing-skipped-tests/SKILL.md +6 -6
- package/.agents/skills/gerrit-cli/SKILL.md +4 -10
- package/.agents/skills/gerrit-cli/references/commands.md +45 -2
- package/.agents/skills/gerrit-cli/references/workflows.md +7 -0
- package/.agents/skills/gerrit-cli/scripts/import_upstream.py +34 -152
- package/config/typescript/tsconfig.eslint.json +1 -1
- package/docs/contributing/settings-experiments-features.md +2 -8
- package/docs/ecosystem/automatic_workspace_folders.md +0 -19
- package/eslint.config.mjs +5 -5
- package/front_end/core/common/Lazy.ts +3 -3
- package/front_end/core/common/SettingRegistration.ts +0 -7
- package/front_end/core/common/Settings.ts +0 -38
- package/front_end/core/host/UserMetrics.ts +187 -953
- package/front_end/core/host/UserMetricsEnums.ts +949 -0
- package/front_end/core/root/Runtime.ts +21 -138
- package/front_end/core/sdk/CSSMetadata.ts +70 -65
- package/front_end/core/sdk/CategorizedBreakpoint.ts +0 -1
- package/front_end/core/sdk/ChildTargetManager.ts +0 -2
- package/front_end/core/sdk/EmulationModel.ts +0 -2
- package/front_end/core/sdk/EventBreakpointsModel.ts +0 -4
- package/front_end/core/sdk/NetworkManager.ts +0 -3
- package/front_end/core/sdk/PageResourceLoader.ts +9 -9
- package/front_end/core/sdk/RehydratingConnection.ts +52 -4
- package/front_end/core/sdk/Target.ts +0 -4
- package/front_end/devtools_compatibility.js +886 -0
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +7 -6
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +0 -1
- package/front_end/entrypoints/main/MainImpl.ts +18 -22
- package/front_end/foundation/Universe.ts +7 -2
- package/front_end/generated/InspectorBackendCommands.ts +3 -10
- package/front_end/generated/{SupportedCSSProperties.js → SupportedCSSProperties.ts} +16 -0
- package/front_end/generated/protocol-mapping.d.ts +0 -42
- package/front_end/generated/protocol-proxy-api.d.ts +0 -38
- package/front_end/generated/protocol.ts +9 -169
- package/front_end/models/ai_assistance/AiAgent2.ts +11 -3
- package/front_end/models/ai_assistance/AiConversation.ts +1 -0
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +8 -5
- package/front_end/models/ai_assistance/AiSetting.ts +108 -0
- package/front_end/models/ai_assistance/AiUtils.ts +47 -0
- package/front_end/models/ai_assistance/ChangeManager.ts +1 -0
- package/front_end/models/ai_assistance/ExtensionScope.ts +3 -12
- package/front_end/models/ai_assistance/agents/AiAgent.ts +11 -18
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -0
- package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +42 -17
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +3 -2
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +253 -155
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +12 -6
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +3 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +4 -3
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -0
- package/front_end/models/ai_assistance/injected.ts +1 -0
- package/front_end/models/ai_assistance/performance/AICallTree.ts +1 -0
- package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
- package/front_end/models/ai_assistance/skills/SkillRegistry.ts +2 -0
- package/front_end/models/ai_assistance/skills/performance.md +10 -0
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +52 -5
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +4 -4
- package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +4 -4
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +5 -4
- package/front_end/models/ai_assistance/tools/GetStyles.ts +5 -4
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +5 -4
- package/front_end/models/ai_assistance/tools/README.md +1 -1
- package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +63 -0
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +5 -5
- package/front_end/models/ai_assistance/tools/Tool.ts +118 -24
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +2 -0
- package/front_end/models/badges/UserBadges.ts +2 -0
- package/front_end/models/bindings/NetworkProject.ts +5 -0
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -0
- package/front_end/models/bindings/ResourceUtils.ts +3 -0
- package/front_end/models/crux-manager/CrUXManager.ts +1 -0
- package/front_end/models/emulation/DeviceModeModel.ts +140 -7
- package/front_end/models/emulation/EmulatedDevices.ts +246 -793
- package/front_end/models/issues_manager/IssuesManager.ts +10 -2
- package/front_end/models/live-metrics/LiveMetrics.ts +41 -9
- package/front_end/models/logs/LogManager.ts +8 -5
- package/front_end/models/logs/NetworkLog.ts +1 -0
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +21 -3
- package/front_end/models/persistence/NetworkPersistenceManager.ts +6 -0
- package/front_end/models/project_settings/ProjectSettingsModel.ts +8 -12
- package/front_end/models/trace/Processor.ts +42 -10
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +12 -19
- package/front_end/models/trace/handlers/MetaHandler.ts +38 -5
- package/front_end/models/trace/insights/CLSCulprits.ts +1 -2
- package/front_end/models/trace/insights/CharacterSet.ts +1 -1
- package/front_end/models/trace/insights/Common.ts +21 -2
- package/front_end/models/trace/insights/DocumentLatency.ts +1 -1
- package/front_end/models/trace/insights/LCPBreakdown.ts +7 -6
- package/front_end/models/trace/insights/LCPDiscovery.ts +1 -1
- package/front_end/models/trace/insights/ModernHTTP.ts +7 -3
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
- package/front_end/models/trace/insights/ThirdParties.ts +5 -2
- package/front_end/models/trace/insights/types.ts +11 -6
- package/front_end/models/trace/types/Configuration.ts +5 -0
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +3 -1
- package/front_end/models/workspace/IgnoreListManager.ts +2 -0
- package/front_end/models/workspace/UISourceCode.ts +2 -0
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +4 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +22 -22
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +0 -7
- package/front_end/panels/ai_assistance/components/ChatInput.ts +4 -0
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +79 -34
- package/front_end/panels/ai_assistance/components/WalkthroughView.ts +1 -2
- package/front_end/panels/ai_assistance/components/walkthroughView.css +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +9 -106
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
- package/front_end/panels/application/application.ts +0 -10
- package/front_end/panels/application/components/components.ts +0 -4
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +0 -5
- package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +6 -12
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +5 -3
- package/front_end/panels/console/ConsoleFormat.ts +2 -62
- package/front_end/panels/console/ConsoleViewMessage.ts +14 -7
- package/front_end/panels/elements/ElementsTreeElement.ts +1 -2
- package/front_end/panels/emulation/AdvancedApp.ts +1 -2
- package/front_end/panels/emulation/DeviceModeToolbar.ts +83 -69
- package/front_end/panels/emulation/DeviceModeView.ts +4 -134
- package/front_end/panels/emulation/DeviceModeWrapper.ts +52 -69
- package/front_end/panels/emulation/MediaQueryInspector.ts +2 -2
- package/front_end/panels/emulation/emulation-meta.ts +12 -12
- package/front_end/panels/issues/IssuesPane.ts +3 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +6 -0
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +17 -21
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +206 -126
- package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +1 -1
- package/front_end/panels/mobile_throttling/CalibrationController.ts +1 -1
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +3 -3
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +6 -6
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +14 -12
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +13 -13
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +10 -10
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +28 -28
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +6 -6
- package/front_end/panels/network/RequestHeadersView.ts +1 -1
- package/front_end/panels/network/ResourceChunkView.ts +243 -144
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +52 -29
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +21 -35
- package/front_end/panels/network/resourceChunkView.css +41 -36
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +21 -12
- package/front_end/panels/profiler/profiler.ts +4 -0
- package/front_end/panels/recorder/RecorderPanel.ts +6 -14
- package/front_end/panels/sensors/LocationsSettingsTab.ts +7 -7
- package/front_end/panels/settings/AISettingsTab.ts +75 -31
- package/front_end/panels/settings/SettingsScreen.ts +8 -13
- package/front_end/panels/settings/components/SyncSection.ts +3 -4
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +650 -18
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +18 -0
- package/front_end/panels/settings/settings-meta.ts +0 -1
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +0 -2
- package/front_end/panels/sources/DebuggerPausedMessage.ts +11 -5
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +12 -9
- package/front_end/panels/sources/SourcesPanel.ts +19 -17
- package/front_end/panels/sources/SourcesView.ts +191 -96
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +2 -5
- package/front_end/panels/timeline/TimelinePanel.ts +2 -0
- package/front_end/panels/timeline/TimelineUIUtils.ts +15 -0
- package/front_end/panels/timeline/components/CWVMetrics.ts +16 -3
- package/front_end/panels/timeline/components/cwvMetrics.css +4 -0
- package/front_end/panels/timeline/components/liveMetricsView.css +0 -17
- package/front_end/panels/timeline/components/metricValueStyles.css +17 -0
- package/front_end/panels/timeline/timeline-meta.ts +3 -5
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1332 -193
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +64 -15
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +65 -16
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +50 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js +8 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +16 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js +11 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.js +5 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js +10 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +4 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +27 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +12 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +5 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +64 -15
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +50 -7
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +9 -6
- package/front_end/third_party/puppeteer/package/src/bidi/Dialog.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +24 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +11 -6
- package/front_end/third_party/puppeteer/package/src/cdp/Dialog.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/common/Debug.ts +30 -5
- package/front_end/third_party/puppeteer/package/src/common/util.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +6 -4
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/tsconfig.compatibility.json +2 -1
- package/front_end/tsconfig.json +1 -1
- package/front_end/ui/components/icon_button/IconButton.ts +1 -1
- package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
- package/front_end/ui/components/settings/SettingCheckbox.ts +4 -7
- package/front_end/ui/components/settings/settings.ts +1 -2
- package/front_end/ui/legacy/Treeoutline.ts +52 -30
- package/front_end/ui/legacy/components/object_ui/CSSStyleSanitizer.ts +74 -0
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +6 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +47 -54
- package/front_end/ui/legacy/components/object_ui/object_ui.ts +2 -0
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -27
- package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +10 -12
- package/front_end/ui/settings/SettingUIRegistration.ts +0 -8
- package/front_end/ui/visual_logging/KnownContextValues.ts +37 -0
- package/inspector_overlay/tsconfig.json +8 -2
- package/package.json +3 -2
- package/.agents/skills/gerrit-cli/scripts/gerrit_client_wrapper.py +0 -47
- package/front_end/core/sdk/CSSModel.test.api.ts +0 -102
- package/front_end/core/sdk/DOMModel.test.api.ts +0 -104
- package/front_end/foundation/Universe.test.api.ts +0 -73
- package/front_end/panels/application/SharedStorageEventsView.ts +0 -128
- package/front_end/panels/application/SharedStorageItemsView.ts +0 -179
- package/front_end/panels/application/SharedStorageListTreeElement.ts +0 -65
- package/front_end/panels/application/SharedStorageModel.ts +0 -249
- package/front_end/panels/application/SharedStorageTreeElement.ts +0 -40
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +0 -191
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +0 -133
- package/front_end/panels/application/components/sharedStorageAccessGrid.css +0 -29
- package/front_end/panels/application/components/sharedStorageMetadataView.css +0 -29
- package/front_end/panels/application/sharedStorageEventsView.css +0 -9
- package/front_end/panels/network/OriginalResourceChunkView.ts +0 -340
- package/front_end/panels/network/originalResourceChunkView.css +0 -49
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +0 -47
- package/front_end/ui/components/settings/settingDeprecationWarning.css +0 -14
- /package/front_end/generated/{ARIAProperties.js → ARIAProperties.ts} +0 -0
|
@@ -80,13 +80,6 @@ import type {ResourcesPanel} from './ResourcesPanel.js';
|
|
|
80
80
|
import resourcesSidebarStyles from './resourcesSidebar.css.js';
|
|
81
81
|
import {ServiceWorkerCacheTreeElement} from './ServiceWorkerCacheTreeElement.js';
|
|
82
82
|
import {ServiceWorkersView} from './ServiceWorkersView.js';
|
|
83
|
-
import {SharedStorageListTreeElement} from './SharedStorageListTreeElement.js';
|
|
84
|
-
import {
|
|
85
|
-
Events as SharedStorageModelEvents,
|
|
86
|
-
type SharedStorageForOrigin,
|
|
87
|
-
SharedStorageModel,
|
|
88
|
-
} from './SharedStorageModel.js';
|
|
89
|
-
import {SharedStorageTreeElement} from './SharedStorageTreeElement.js';
|
|
90
83
|
import {StorageBucketsTreeParentElement} from './StorageBucketsTreeElement.js';
|
|
91
84
|
import {StorageView} from './StorageView.js';
|
|
92
85
|
import {TrustTokensTreeElement} from './TrustTokensTreeElement.js';
|
|
@@ -322,20 +315,6 @@ function nameForExtensionStorageArea(storageArea: Protocol.Extensions.StorageAre
|
|
|
322
315
|
}
|
|
323
316
|
}
|
|
324
317
|
|
|
325
|
-
export namespace SharedStorageTreeElementDispatcher {
|
|
326
|
-
export const enum Events {
|
|
327
|
-
SHARED_STORAGE_TREE_ELEMENT_ADDED = 'SharedStorageTreeElementAdded',
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
export interface SharedStorageTreeElementAddedEvent {
|
|
331
|
-
origin: string;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
export interface EventTypes {
|
|
335
|
-
[Events.SHARED_STORAGE_TREE_ELEMENT_ADDED]: SharedStorageTreeElementAddedEvent;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
318
|
export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.TargetManager.Observer {
|
|
340
319
|
panel: ResourcesPanel;
|
|
341
320
|
private readonly sidebarTree: UI.TreeOutline.TreeOutlineInShadow;
|
|
@@ -348,7 +327,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
348
327
|
cookieListTreeElement: ExpandableApplicationPanelTreeElement;
|
|
349
328
|
trustTokensTreeElement: TrustTokensTreeElement;
|
|
350
329
|
cacheStorageListTreeElement: ServiceWorkerCacheTreeElement;
|
|
351
|
-
sharedStorageListTreeElement: SharedStorageListTreeElement;
|
|
352
330
|
storageBucketsTreeElement: StorageBucketsTreeParentElement|undefined;
|
|
353
331
|
private backForwardCacheListTreeElement?: BackForwardCacheTreeElement;
|
|
354
332
|
backgroundFetchTreeElement: BackgroundServiceTreeElement;
|
|
@@ -369,13 +347,10 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
369
347
|
private extensionIdToStorageTreeParentElement: Map<string, ExtensionStorageTreeParentElement>;
|
|
370
348
|
private extensionStorageModels: ExtensionStorageModel[];
|
|
371
349
|
private extensionStorageTreeElements: Map<string, ExtensionStorageTreeElement>;
|
|
372
|
-
private sharedStorageTreeElements: Map<string, SharedStorageTreeElement>;
|
|
373
350
|
private domains: Record<string, boolean>;
|
|
374
351
|
// Holds main frame target.
|
|
375
352
|
private target?: SDK.Target.Target;
|
|
376
353
|
private previousHoveredElement?: FrameTreeElement;
|
|
377
|
-
readonly sharedStorageTreeElementDispatcher:
|
|
378
|
-
Common.ObjectWrapper.ObjectWrapper<SharedStorageTreeElementDispatcher.EventTypes>;
|
|
379
354
|
|
|
380
355
|
constructor(panel: ResourcesPanel) {
|
|
381
356
|
super();
|
|
@@ -481,9 +456,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
481
456
|
this.trustTokensTreeElement = new TrustTokensTreeElement(panel);
|
|
482
457
|
storageTreeElement.appendChild(this.trustTokensTreeElement);
|
|
483
458
|
|
|
484
|
-
this.sharedStorageListTreeElement = new SharedStorageListTreeElement(panel);
|
|
485
|
-
storageTreeElement.appendChild(this.sharedStorageListTreeElement);
|
|
486
|
-
|
|
487
459
|
this.cacheStorageListTreeElement = new ServiceWorkerCacheTreeElement(panel);
|
|
488
460
|
storageTreeElement.appendChild(this.cacheStorageListTreeElement);
|
|
489
461
|
|
|
@@ -540,7 +512,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
540
512
|
this.extensionIdToStorageTreeParentElement = new Map();
|
|
541
513
|
this.extensionStorageTreeElements = new Map();
|
|
542
514
|
this.extensionStorageModels = [];
|
|
543
|
-
this.sharedStorageTreeElements = new Map();
|
|
544
515
|
this.domains = {};
|
|
545
516
|
|
|
546
517
|
this.sidebarTree.contentElement.addEventListener('mousemove', this.onmousemove.bind(this), false);
|
|
@@ -576,24 +547,12 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
576
547
|
modelRemoved: (model: IndexedDBModel) => this.indexedDBModelRemoved(model),
|
|
577
548
|
},
|
|
578
549
|
{scoped: true});
|
|
579
|
-
SDK.TargetManager.TargetManager.instance().observeModels(
|
|
580
|
-
SharedStorageModel, {
|
|
581
|
-
modelAdded: (model: SharedStorageModel) => this.sharedStorageModelAdded(model).catch(err => {
|
|
582
|
-
console.error(err);
|
|
583
|
-
}),
|
|
584
|
-
modelRemoved: (model: SharedStorageModel) => this.sharedStorageModelRemoved(model),
|
|
585
|
-
},
|
|
586
|
-
{scoped: true});
|
|
587
550
|
SDK.TargetManager.TargetManager.instance().observeModels(
|
|
588
551
|
SDK.StorageBucketsModel.StorageBucketsModel, {
|
|
589
552
|
modelAdded: (model: SDK.StorageBucketsModel.StorageBucketsModel) => this.storageBucketsModelAdded(model),
|
|
590
553
|
modelRemoved: (model: SDK.StorageBucketsModel.StorageBucketsModel) => this.storageBucketsModelRemoved(model),
|
|
591
554
|
},
|
|
592
555
|
{scoped: true});
|
|
593
|
-
|
|
594
|
-
this.sharedStorageTreeElementDispatcher =
|
|
595
|
-
new Common.ObjectWrapper.ObjectWrapper<SharedStorageTreeElementDispatcher.EventTypes>();
|
|
596
|
-
|
|
597
556
|
this.contentElement.style.contain = 'layout style';
|
|
598
557
|
}
|
|
599
558
|
|
|
@@ -708,27 +667,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
708
667
|
private indexedDBModelRemoved(model: IndexedDBModel): void {
|
|
709
668
|
this.indexedDBListTreeElement.removeIndexedDBForModel(model);
|
|
710
669
|
}
|
|
711
|
-
|
|
712
|
-
private async sharedStorageModelAdded(model: SharedStorageModel): Promise<void> {
|
|
713
|
-
await model.enable();
|
|
714
|
-
for (const storage of model.storages()) {
|
|
715
|
-
await this.addSharedStorage(storage);
|
|
716
|
-
}
|
|
717
|
-
model.addEventListener(SharedStorageModelEvents.SHARED_STORAGE_ADDED, this.sharedStorageAdded, this);
|
|
718
|
-
model.addEventListener(SharedStorageModelEvents.SHARED_STORAGE_REMOVED, this.sharedStorageRemoved, this);
|
|
719
|
-
model.addEventListener(SharedStorageModelEvents.SHARED_STORAGE_ACCESS, this.sharedStorageAccess, this);
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
private sharedStorageModelRemoved(model: SharedStorageModel): void {
|
|
723
|
-
model.disable();
|
|
724
|
-
for (const storage of model.storages()) {
|
|
725
|
-
this.removeSharedStorage(storage);
|
|
726
|
-
}
|
|
727
|
-
model.removeEventListener(SharedStorageModelEvents.SHARED_STORAGE_ADDED, this.sharedStorageAdded, this);
|
|
728
|
-
model.removeEventListener(SharedStorageModelEvents.SHARED_STORAGE_REMOVED, this.sharedStorageRemoved, this);
|
|
729
|
-
model.removeEventListener(SharedStorageModelEvents.SHARED_STORAGE_ACCESS, this.sharedStorageAccess, this);
|
|
730
|
-
}
|
|
731
|
-
|
|
732
670
|
private storageBucketsModelAdded(model: SDK.StorageBucketsModel.StorageBucketsModel): void {
|
|
733
671
|
model.enable();
|
|
734
672
|
}
|
|
@@ -787,6 +725,15 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
787
725
|
|
|
788
726
|
if (frame.isOutermostFrame()) {
|
|
789
727
|
this.reset();
|
|
728
|
+
const selectedElement = this.sidebarTree.selectedTreeElement;
|
|
729
|
+
if (selectedElement instanceof ExpandableApplicationPanelTreeElement) {
|
|
730
|
+
// Only update AI Assistance storage context for expandable category headers,
|
|
731
|
+
// as all other tree elements are re-rendered on reset.
|
|
732
|
+
const item = selectedElement.createGenericStorageAiContext();
|
|
733
|
+
if (item) {
|
|
734
|
+
UI.Context.Context.instance().setFlavor(AiAssistance.StorageItem.StorageItem, item);
|
|
735
|
+
}
|
|
736
|
+
}
|
|
790
737
|
}
|
|
791
738
|
this.addCookieDocument(frame);
|
|
792
739
|
}
|
|
@@ -962,50 +909,6 @@ export class ApplicationPanelSidebar extends UI.Widget.VBox implements SDK.Targe
|
|
|
962
909
|
this.extensionStorageTreeElements.delete(extensionStorage.key);
|
|
963
910
|
}
|
|
964
911
|
|
|
965
|
-
private async sharedStorageAdded(event: Common.EventTarget.EventTargetEvent<SharedStorageForOrigin>): Promise<void> {
|
|
966
|
-
await this.addSharedStorage(event.data);
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
private async addSharedStorage(sharedStorage: SharedStorageForOrigin): Promise<void> {
|
|
970
|
-
const sharedStorageTreeElement = await SharedStorageTreeElement.createElement(this.panel, sharedStorage);
|
|
971
|
-
|
|
972
|
-
// A tree element for `sharedStorage.securityOrigin` may have been added while we were waiting for `sharedStorageTreeElement` to be created.
|
|
973
|
-
if (this.sharedStorageTreeElements.has(sharedStorage.securityOrigin)) {
|
|
974
|
-
return;
|
|
975
|
-
}
|
|
976
|
-
this.sharedStorageTreeElements.set(sharedStorage.securityOrigin, sharedStorageTreeElement);
|
|
977
|
-
this.sharedStorageListTreeElement.appendChild(sharedStorageTreeElement);
|
|
978
|
-
this.sharedStorageTreeElementDispatcher.dispatchEventToListeners(
|
|
979
|
-
SharedStorageTreeElementDispatcher.Events.SHARED_STORAGE_TREE_ELEMENT_ADDED,
|
|
980
|
-
{origin: sharedStorage.securityOrigin});
|
|
981
|
-
}
|
|
982
|
-
|
|
983
|
-
private sharedStorageRemoved(event: Common.EventTarget.EventTargetEvent<SharedStorageForOrigin>): void {
|
|
984
|
-
this.removeSharedStorage(event.data);
|
|
985
|
-
}
|
|
986
|
-
|
|
987
|
-
private removeSharedStorage(sharedStorage: SharedStorageForOrigin): void {
|
|
988
|
-
const treeElement = this.sharedStorageTreeElements.get(sharedStorage.securityOrigin);
|
|
989
|
-
if (!treeElement) {
|
|
990
|
-
return;
|
|
991
|
-
}
|
|
992
|
-
const wasSelected = treeElement.selected;
|
|
993
|
-
const parentListTreeElement = treeElement.parent;
|
|
994
|
-
if (parentListTreeElement) {
|
|
995
|
-
parentListTreeElement.removeChild(treeElement);
|
|
996
|
-
parentListTreeElement.setExpandable(parentListTreeElement.childCount() > 0);
|
|
997
|
-
if (wasSelected) {
|
|
998
|
-
parentListTreeElement.select();
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
this.sharedStorageTreeElements.delete(sharedStorage.securityOrigin);
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
|
-
private sharedStorageAccess(event: Common.EventTarget.EventTargetEvent<Protocol.Storage.SharedStorageAccessedEvent>):
|
|
1005
|
-
void {
|
|
1006
|
-
this.sharedStorageListTreeElement.addEvent(event.data);
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
912
|
async showResource(resource: SDK.Resource.Resource, line?: number, column?: number): Promise<void> {
|
|
1010
913
|
await this.resourcesSection.revealResource(resource, line, column);
|
|
1011
914
|
}
|
|
@@ -133,7 +133,7 @@ export class ExpandableApplicationPanelTreeElement extends ApplicationPanelTreeE
|
|
|
133
133
|
this.categoryDescription = categoryDescription;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
createGenericStorageAiContext(): AiAssistance.StorageItem.StorageItem|null {
|
|
137
137
|
const target = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
|
|
138
138
|
const mainPageOrigin =
|
|
139
139
|
target?.inspectedURL() ? Common.ParsedURL.ParsedURL.extractOrigin(target.inspectedURL()) : '';
|
|
@@ -31,11 +31,6 @@ import * as ServiceWorkerCacheTreeElement from './ServiceWorkerCacheTreeElement.
|
|
|
31
31
|
import * as ServiceWorkerCacheViews from './ServiceWorkerCacheViews.js';
|
|
32
32
|
import * as ServiceWorkersView from './ServiceWorkersView.js';
|
|
33
33
|
import * as ServiceWorkerUpdateCycleView from './ServiceWorkerUpdateCycleView.js';
|
|
34
|
-
import * as SharedStorageEventsView from './SharedStorageEventsView.js';
|
|
35
|
-
import * as SharedStorageItemsView from './SharedStorageItemsView.js';
|
|
36
|
-
import * as SharedStorageListTreeElement from './SharedStorageListTreeElement.js';
|
|
37
|
-
import * as SharedStorageModel from './SharedStorageModel.js';
|
|
38
|
-
import * as SharedStorageTreeElement from './SharedStorageTreeElement.js';
|
|
39
34
|
import * as StorageBucketsTreeElement from './StorageBucketsTreeElement.js';
|
|
40
35
|
import * as StorageItemsToolbar from './StorageItemsToolbar.js';
|
|
41
36
|
import * as StorageView from './StorageView.js';
|
|
@@ -74,11 +69,6 @@ export {
|
|
|
74
69
|
ServiceWorkerCacheViews,
|
|
75
70
|
ServiceWorkersView,
|
|
76
71
|
ServiceWorkerUpdateCycleView,
|
|
77
|
-
SharedStorageEventsView,
|
|
78
|
-
SharedStorageItemsView,
|
|
79
|
-
SharedStorageListTreeElement,
|
|
80
|
-
SharedStorageModel,
|
|
81
|
-
SharedStorageTreeElement,
|
|
82
72
|
StorageBucketsTreeElement,
|
|
83
73
|
StorageItemsToolbar,
|
|
84
74
|
StorageView,
|
|
@@ -11,8 +11,6 @@ import * as PermissionsPolicySection from './PermissionsPolicySection.js';
|
|
|
11
11
|
import * as ProtocolHandlersView from './ProtocolHandlersView.js';
|
|
12
12
|
import * as ReportsGrid from './ReportsGrid.js';
|
|
13
13
|
import * as ServiceWorkerRouterView from './ServiceWorkerRouterView.js';
|
|
14
|
-
import * as SharedStorageAccessGrid from './SharedStorageAccessGrid.js';
|
|
15
|
-
import * as SharedStorageMetadataView from './SharedStorageMetadataView.js';
|
|
16
14
|
import * as StorageMetadataView from './StorageMetadataView.js';
|
|
17
15
|
import * as TrustTokensView from './TrustTokensView.js';
|
|
18
16
|
|
|
@@ -26,8 +24,6 @@ export {
|
|
|
26
24
|
ProtocolHandlersView,
|
|
27
25
|
ReportsGrid,
|
|
28
26
|
ServiceWorkerRouterView,
|
|
29
|
-
SharedStorageAccessGrid,
|
|
30
|
-
SharedStorageMetadataView,
|
|
31
27
|
StorageMetadataView,
|
|
32
28
|
TrustTokensView,
|
|
33
29
|
};
|
|
@@ -89,10 +89,6 @@ const UIStrings = {
|
|
|
89
89
|
* @description Category of event listener breakpoints for script events.
|
|
90
90
|
*/
|
|
91
91
|
script: 'Script',
|
|
92
|
-
/**
|
|
93
|
-
* @description Category of event listener breakpoints for shared storage worklet events.
|
|
94
|
-
*/
|
|
95
|
-
sharedStorageWorklet: 'Shared storage worklet',
|
|
96
92
|
/**
|
|
97
93
|
* @description Category of event listener breakpoints for timer events.
|
|
98
94
|
*/
|
|
@@ -386,7 +382,6 @@ const LOCALIZED_CATEGORIES: Record<SDK.CategorizedBreakpoint.Category, () => Pla
|
|
|
386
382
|
[SDK.CategorizedBreakpoint.Category.PICTURE_IN_PICTURE]: i18nLazyString(UIStrings.pictureinpicture),
|
|
387
383
|
[SDK.CategorizedBreakpoint.Category.POINTER]: i18nLazyString(UIStrings.pointer),
|
|
388
384
|
[SDK.CategorizedBreakpoint.Category.SCRIPT]: i18nLazyString(UIStrings.script),
|
|
389
|
-
[SDK.CategorizedBreakpoint.Category.SHARED_STORAGE_WORKLET]: i18nLazyString(UIStrings.sharedStorageWorklet),
|
|
390
385
|
[SDK.CategorizedBreakpoint.Category.TIMER]: i18nLazyString(UIStrings.timer),
|
|
391
386
|
[SDK.CategorizedBreakpoint.Category.TOUCH]: i18nLazyString(UIStrings.touch),
|
|
392
387
|
[SDK.CategorizedBreakpoint.Category.TRUSTED_TYPE_VIOLATION]: i18nLazyString(UIStrings.trustedTypeViolations),
|
|
@@ -7,25 +7,19 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
|
7
7
|
|
|
8
8
|
import {CategorizedBreakpointsSidebarPane} from './CategorizedBreakpointsSidebarPane.js';
|
|
9
9
|
|
|
10
|
-
let eventListenerBreakpointsSidebarPaneInstance: EventListenerBreakpointsSidebarPane;
|
|
11
|
-
|
|
12
10
|
export class EventListenerBreakpointsSidebarPane extends CategorizedBreakpointsSidebarPane {
|
|
13
|
-
|
|
11
|
+
readonly #eventBreakpointsManager: SDK.EventBreakpointsModel.EventBreakpointsManager;
|
|
12
|
+
|
|
13
|
+
constructor(eventBreakpointsManager: SDK.EventBreakpointsModel.EventBreakpointsManager) {
|
|
14
14
|
let breakpoints: SDK.CategorizedBreakpoint.CategorizedBreakpoint[] =
|
|
15
15
|
SDK.DOMDebuggerModel.DOMDebuggerManager.instance().eventListenerBreakpoints();
|
|
16
|
-
const nonDomBreakpoints =
|
|
16
|
+
const nonDomBreakpoints = eventBreakpointsManager.eventListenerBreakpoints();
|
|
17
17
|
breakpoints = breakpoints.concat(nonDomBreakpoints);
|
|
18
18
|
|
|
19
19
|
super(
|
|
20
20
|
breakpoints, `${VisualLogging.section('sources.event-listener-breakpoints')}`,
|
|
21
21
|
'sources.event-listener-breakpoints');
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
static instance(): EventListenerBreakpointsSidebarPane {
|
|
25
|
-
if (!eventListenerBreakpointsSidebarPaneInstance) {
|
|
26
|
-
eventListenerBreakpointsSidebarPaneInstance = new EventListenerBreakpointsSidebarPane();
|
|
27
|
-
}
|
|
28
|
-
return eventListenerBreakpointsSidebarPaneInstance;
|
|
22
|
+
this.#eventBreakpointsManager = eventBreakpointsManager;
|
|
29
23
|
}
|
|
30
24
|
|
|
31
25
|
override getBreakpointFromPausedDetails(details: SDK.DebuggerModel.DebuggerPausedDetails):
|
|
@@ -39,6 +33,6 @@ export class EventListenerBreakpointsSidebarPane extends CategorizedBreakpointsS
|
|
|
39
33
|
if (domBreakpoint) {
|
|
40
34
|
return domBreakpoint;
|
|
41
35
|
}
|
|
42
|
-
return
|
|
36
|
+
return this.#eventBreakpointsManager.resolveEventListenerBreakpoint(auxData);
|
|
43
37
|
}
|
|
44
38
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import * as Common from '../../core/common/common.js';
|
|
5
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
7
|
import * as Root from '../../core/root/root.js';
|
|
7
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
@@ -116,10 +117,11 @@ async function loadSourcesModule(): Promise<typeof Sources> {
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
UI.ViewManager.registerViewExtension({
|
|
119
|
-
|
|
120
|
+
loadView: Common.Lazy.lazy(async universe => {
|
|
120
121
|
const BrowserDebugger = await loadBrowserDebuggerModule();
|
|
121
|
-
return BrowserDebugger.EventListenerBreakpointsSidebarPane.EventListenerBreakpointsSidebarPane
|
|
122
|
-
|
|
122
|
+
return new BrowserDebugger.EventListenerBreakpointsSidebarPane.EventListenerBreakpointsSidebarPane(
|
|
123
|
+
universe.eventBreakpointsManager);
|
|
124
|
+
}),
|
|
123
125
|
id: 'sources.event-listener-breakpoints',
|
|
124
126
|
location: UI.ViewManager.ViewLocationValues.SOURCES_SIDEBAR_BOTTOM,
|
|
125
127
|
commandPrompt: i18nLazyString(UIStrings.showEventListenerBreakpoints),
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
import * as Common from '../../core/common/common.js';
|
|
6
|
-
import type * as Platform from '../../core/platform/platform.js';
|
|
7
5
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
6
|
+
import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
|
8
7
|
|
|
9
8
|
// VGA color palette
|
|
10
9
|
const ANSI_COLORS = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'gray'];
|
|
@@ -199,65 +198,6 @@ export const format = (fmt: string, args: SDK.RemoteObject.RemoteObject[]): {
|
|
|
199
198
|
return {tokens, args: args.slice(argIndex)};
|
|
200
199
|
};
|
|
201
200
|
|
|
202
|
-
/**
|
|
203
|
-
* This function converts a string into a partial regex string that
|
|
204
|
-
* case-insensitively matches it in CSS, even if CSS escapes are used.
|
|
205
|
-
*
|
|
206
|
-
* @param cssString the target string.
|
|
207
|
-
* @returns a partial regex matching the string in CSS.
|
|
208
|
-
*/
|
|
209
|
-
const cssEscapeRegex = (cssString: string): string => {
|
|
210
|
-
return [...cssString]
|
|
211
|
-
.map(char => {
|
|
212
|
-
const charCodes = new Set([char.toLowerCase(), char.toUpperCase()].map(c => c.charCodeAt(0).toString(16)));
|
|
213
|
-
const charCodeRegex =
|
|
214
|
-
[...charCodes].map(charCode => `\\\\0{0,${6 - charCode.length}}${charCode}[ \\n\\t]?`).join('|');
|
|
215
|
-
return `\\\\?(?:${charCodeRegex}|${char})`;
|
|
216
|
-
})
|
|
217
|
-
.join('');
|
|
218
|
-
};
|
|
219
|
-
|
|
220
201
|
export const updateStyle = (currentStyle: Map<string, {value: string, priority: string}>, styleToAdd: string): void => {
|
|
221
|
-
|
|
222
|
-
// We only allow data URLs with the `url()` CSS function.
|
|
223
|
-
// The capture group is not intended to grab the whole URL exactly, just enough so we can check the scheme.
|
|
224
|
-
// The regex also covers CSS hex-escaped variations of `url()`.
|
|
225
|
-
const URL_REGEX = new RegExp(`(?=${cssEscapeRegex('url')}\\(['"]?([^\\)]*))`, 'gi');
|
|
226
|
-
// We greedily capture all `image-set()`s to make sure that all of
|
|
227
|
-
// them properly use `url()`s to enforce the data URL check later.
|
|
228
|
-
const IMAGESET_REGEX = new RegExp(`(?=(${cssEscapeRegex('image-set')}\\(.*))`, 'gi');
|
|
229
|
-
const GOOD_IMAGESET_REGEX = /^image-set\((?:(?:(?:url|type)\("[^\\"]*"\)|[\d.]+(?:x|dpi|dpcm|dppx)),?\s*)+\)/i;
|
|
230
|
-
|
|
231
|
-
currentStyle.clear();
|
|
232
|
-
/* eslint-disable-next-line @devtools/no-imperative-dom-api --
|
|
233
|
-
* We're not mutating the DOM here, but just need a temporary
|
|
234
|
-
* `<span>` to parse `styleToAdd` into a `CSSStyleDeclaration`.
|
|
235
|
-
**/
|
|
236
|
-
const buffer = document.createElement('span');
|
|
237
|
-
buffer.setAttribute('style', styleToAdd);
|
|
238
|
-
for (const property of buffer.style) {
|
|
239
|
-
if (!ALLOWED_PROPERTY_PREFIXES.some(
|
|
240
|
-
prefix => property.startsWith(prefix) || property.startsWith(`-webkit-${prefix}`))) {
|
|
241
|
-
continue;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
const value = buffer.style.getPropertyValue(property);
|
|
245
|
-
// We make sure every `image-set()` only uses `url()`s for its images.
|
|
246
|
-
// If any of them seem malformed, we skip the whole property.
|
|
247
|
-
const imageSets = [...value.matchAll(IMAGESET_REGEX)];
|
|
248
|
-
if (imageSets.some(match => !GOOD_IMAGESET_REGEX.test(match[1]))) {
|
|
249
|
-
continue;
|
|
250
|
-
}
|
|
251
|
-
// There could be multiple `url()` functions, so we check them all.
|
|
252
|
-
// If any of them is not a `data` URL, we skip the whole property.
|
|
253
|
-
const potentialUrls = [...value.matchAll(URL_REGEX)].map(match => match[1]);
|
|
254
|
-
if (potentialUrls.some(
|
|
255
|
-
potentialUrl => !Common.ParsedURL.schemeIs(potentialUrl as Platform.DevToolsPath.UrlString, 'data:'))) {
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
currentStyle.set(property, {
|
|
259
|
-
value,
|
|
260
|
-
priority: buffer.style.getPropertyPriority(property),
|
|
261
|
-
});
|
|
262
|
-
}
|
|
202
|
+
ObjectUI.CSSStyleSanitizer.sanitizeStyle(currentStyle, styleToAdd);
|
|
263
203
|
};
|
|
@@ -880,9 +880,13 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
880
880
|
if (includePreview && obj.preview) {
|
|
881
881
|
renderPreview(true);
|
|
882
882
|
} else if (obj.type === 'function') {
|
|
883
|
-
const functionElement = titleElement.createChild('span');
|
|
884
|
-
void ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(obj, functionElement, false);
|
|
885
883
|
titleElement.classList.add('object-value-function');
|
|
884
|
+
void ObjectUI.ObjectPropertiesSection.formatObjectAsFunction(obj, false).then(t => {
|
|
885
|
+
const fragment = document.createDocumentFragment();
|
|
886
|
+
|
|
887
|
+
render(t, fragment, {host: this});
|
|
888
|
+
titleElement.insertBefore(fragment, titleElement.firstChild);
|
|
889
|
+
});
|
|
886
890
|
} else if (obj.subtype === 'trustedtype') {
|
|
887
891
|
titleElement.appendChild(this.formatParameterAsTrustedType(obj));
|
|
888
892
|
} else {
|
|
@@ -923,16 +927,19 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
923
927
|
return result;
|
|
924
928
|
|
|
925
929
|
function formatTargetFunction(this: ConsoleViewMessage, targetFunction: SDK.RemoteObject.RemoteObject): void {
|
|
926
|
-
const
|
|
927
|
-
const promise = ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(
|
|
928
|
-
targetFunction, functionElement, true, includePreview);
|
|
929
|
-
result.appendChild(functionElement);
|
|
930
|
+
const promise = ObjectUI.ObjectPropertiesSection.formatObjectAsFunction(targetFunction, true, includePreview);
|
|
930
931
|
if (targetFunction !== originalFunction) {
|
|
931
932
|
const note = result.createChild('span', 'object-state-note info-note');
|
|
932
933
|
UI.Tooltip.Tooltip.install(note, i18nString(UIStrings.functionWasResolvedFromBound));
|
|
933
934
|
}
|
|
934
935
|
result.addEventListener('contextmenu', this.contextMenuEventFired.bind(this, originalFunction), false);
|
|
935
|
-
void promise.then(
|
|
936
|
+
void promise.then(t => {
|
|
937
|
+
const fragment = document.createDocumentFragment();
|
|
938
|
+
|
|
939
|
+
render(t, fragment, {host: this});
|
|
940
|
+
result.insertBefore(fragment, result.firstChild);
|
|
941
|
+
this.formattedParameterAsFunctionForTest();
|
|
942
|
+
});
|
|
936
943
|
}
|
|
937
944
|
}
|
|
938
945
|
|
|
@@ -40,7 +40,6 @@ import * as Common from '../../core/common/common.js';
|
|
|
40
40
|
import * as Host from '../../core/host/host.js';
|
|
41
41
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
42
42
|
import * as Platform from '../../core/platform/platform.js';
|
|
43
|
-
import * as Root from '../../core/root/root.js';
|
|
44
43
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
45
44
|
import * as TextUtils from '../../core/text_utils/text_utils.js';
|
|
46
45
|
import * as Protocol from '../../generated/protocol.js';
|
|
@@ -1388,7 +1387,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1388
1387
|
showGridAdorner: Boolean(this.#layout?.isGrid) && !this.isClosingTag(),
|
|
1389
1388
|
showGridLanesAdorner: Boolean(this.#layout?.isGridLanes) && !this.isClosingTag(),
|
|
1390
1389
|
showMediaAdorner: this.node().isMediaNode() && !this.isClosingTag(),
|
|
1391
|
-
showPopoverAdorner:
|
|
1390
|
+
showPopoverAdorner:
|
|
1392
1391
|
Boolean(this.node().attributes().find(attr => attr.name === 'popover')) && !this.isClosingTag(),
|
|
1393
1392
|
showTopLayerAdorner: this.node().topLayerIndex() !== -1 && !this.isClosingTag(),
|
|
1394
1393
|
gridAdornerActive: this.#gridAdornerActive,
|
|
@@ -58,8 +58,7 @@ export class AdvancedApp implements UI.App.App {
|
|
|
58
58
|
|
|
59
59
|
this.inspectedPagePlaceholder = InspectedPagePlaceholder.instance();
|
|
60
60
|
this.inspectedPagePlaceholder.addEventListener(Events.UPDATE, this.onSetInspectedPageBounds.bind(this), this);
|
|
61
|
-
this.deviceModeView =
|
|
62
|
-
DeviceModeWrapper.instance({inspectedPagePlaceholder: this.inspectedPagePlaceholder, forceNew: false});
|
|
61
|
+
this.deviceModeView = new DeviceModeWrapper();
|
|
63
62
|
|
|
64
63
|
UI.DockController.DockController.instance().addEventListener(
|
|
65
64
|
UI.DockController.Events.BEFORE_DOCK_SIDE_CHANGED, this.onBeforeDockSideChange, this);
|