chrome-devtools-frontend 1.0.1512147 → 1.0.1513662
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/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/front_end/Images/src/ai-explorer-badge.svg +114 -0
- package/front_end/Images/src/code-whisperer-badge.svg +166 -0
- package/front_end/Images/src/devtools-user-badge.svg +129 -0
- package/front_end/Images/src/dom-detective-badge.svg +136 -0
- package/front_end/Images/src/speedster-badge.svg +166 -0
- package/front_end/core/common/Color.ts +40 -44
- package/front_end/core/common/Console.ts +4 -4
- package/front_end/core/common/ParsedURL.ts +14 -14
- package/front_end/core/common/ResourceType.ts +20 -20
- package/front_end/core/common/SegmentedRange.ts +13 -14
- package/front_end/core/common/Settings.ts +4 -4
- package/front_end/core/common/StringOutputStream.ts +4 -4
- package/front_end/core/host/GdpClient.ts +76 -2
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
- package/front_end/core/host/ResourceLoader.ts +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -2
- package/front_end/core/i18n/NumberFormatter.ts +7 -0
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +5 -2
- package/front_end/core/sdk/AccessibilityModel.ts +48 -48
- package/front_end/core/sdk/AnimationModel.ts +78 -79
- package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
- package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
- package/front_end/core/sdk/CSSMedia.ts +22 -22
- package/front_end/core/sdk/CSSModel.ts +4 -4
- package/front_end/core/sdk/CSSProperty.ts +9 -9
- package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
- package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
- package/front_end/core/sdk/ChildTargetManager.ts +6 -6
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
- package/front_end/core/sdk/ConsoleModel.ts +24 -24
- package/front_end/core/sdk/Cookie.ts +16 -16
- package/front_end/core/sdk/CookieParser.ts +6 -6
- package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
- package/front_end/core/sdk/DOMModel.ts +113 -113
- package/front_end/core/sdk/DebuggerModel.ts +102 -103
- package/front_end/core/sdk/EmulationModel.ts +6 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
- package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
- package/front_end/core/sdk/IsolateManager.ts +26 -26
- package/front_end/core/sdk/LayerTreeBase.ts +29 -30
- package/front_end/core/sdk/OverlayModel.ts +6 -6
- package/front_end/core/sdk/Resource.ts +43 -43
- package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
- package/front_end/core/sdk/RuntimeModel.ts +12 -13
- package/front_end/core/sdk/SDKModel.ts +3 -3
- package/front_end/core/sdk/Script.ts +17 -17
- package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
- package/front_end/core/sdk/ServerTiming.ts +2 -2
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
- package/front_end/core/sdk/SourceMap.ts +10 -10
- package/front_end/core/sdk/StorageKeyManager.ts +12 -12
- package/front_end/core/sdk/Target.ts +33 -34
- package/front_end/core/sdk/TargetManager.ts +20 -20
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
- package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
- package/front_end/entrypoints/main/MainImpl.ts +16 -14
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +20 -0
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +20 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +10 -9
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
- package/front_end/models/badges/SpeedsterBadge.ts +7 -2
- package/front_end/models/badges/StarterBadge.ts +6 -1
- package/front_end/models/badges/UserBadges.ts +61 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
- package/front_end/models/bindings/FileUtils.ts +15 -15
- package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
- package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
- package/front_end/models/emulation/DeviceModeModel.ts +123 -131
- package/front_end/models/emulation/EmulatedDevices.ts +22 -22
- package/front_end/models/extensions/ExtensionPanel.ts +24 -24
- package/front_end/models/extensions/ExtensionServer.ts +4 -4
- package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
- package/front_end/models/trace/EventsSerializer.ts +5 -5
- package/front_end/models/trace/LanternComputationData.ts +10 -10
- package/front_end/models/trace/ModelImpl.ts +32 -54
- package/front_end/models/trace/Processor.ts +28 -30
- package/front_end/models/trace/extras/FilmStrip.ts +6 -6
- package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
- package/front_end/models/trace/extras/ThirdParties.ts +16 -17
- package/front_end/models/trace/extras/TraceFilter.ts +1 -1
- package/front_end/models/trace/handlers/Threads.ts +10 -10
- package/front_end/models/trace/handlers/helpers.ts +9 -9
- package/front_end/models/trace/handlers/types.ts +3 -3
- package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
- package/front_end/models/trace/insights/Cache.ts +8 -4
- package/front_end/models/trace/insights/DOMSize.ts +8 -5
- package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
- package/front_end/models/trace/insights/FontDisplay.ts +3 -4
- package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
- package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
- package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
- package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
- package/front_end/models/trace/insights/ThirdParties.ts +4 -5
- package/front_end/models/trace/insights/Viewport.ts +8 -5
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +5 -5
- package/front_end/panels/animation/AnimationUI.ts +22 -23
- package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
- package/front_end/panels/application/DOMStorageModel.ts +23 -23
- package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
- package/front_end/panels/application/IndexedDBModel.ts +1 -0
- package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
- package/front_end/panels/application/ServiceWorkersView.ts +0 -53
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
- package/front_end/panels/common/BadgeNotification.ts +140 -10
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +30 -9
- package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.ts +8 -5
- package/front_end/panels/console/ConsoleView.ts +13 -13
- package/front_end/panels/console/ConsoleViewport.ts +29 -29
- package/front_end/panels/coverage/CoverageModel.ts +22 -22
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
- package/front_end/panels/elements/DOMPath.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +13 -13
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
- package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
- package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
- package/front_end/panels/emulation/DeviceModeView.ts +6 -6
- package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
- package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
- package/front_end/panels/layer_viewer/TransformController.ts +34 -36
- package/front_end/panels/layers/LayerTreeModel.ts +41 -40
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
- package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
- package/front_end/panels/media/PlayerMessagesView.ts +5 -5
- package/front_end/panels/media/TickingFlameChart.ts +24 -24
- package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
- package/front_end/panels/network/NetworkItemView.ts +4 -4
- package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
- package/front_end/panels/network/NetworkPanel.ts +8 -5
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +25 -25
- package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
- package/front_end/panels/security/OriginTreeElement.ts +8 -8
- package/front_end/panels/security/SecurityPanel.ts +5 -5
- package/front_end/panels/settings/SettingsScreen.ts +18 -18
- package/front_end/panels/settings/components/SyncSection.ts +26 -8
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
- package/front_end/panels/sources/NavigatorView.ts +43 -46
- package/front_end/panels/sources/SourcesPanel.ts +35 -35
- package/front_end/panels/sources/SourcesView.ts +13 -13
- package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
- package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
- package/front_end/panels/timeline/CountersGraph.ts +16 -16
- package/front_end/panels/timeline/EntriesFilter.ts +4 -3
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
- package/front_end/panels/timeline/ModificationsManager.ts +8 -15
- package/front_end/panels/timeline/TargetForEvent.ts +2 -2
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
- package/front_end/panels/timeline/ThreadAppender.ts +13 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
- package/front_end/panels/timeline/TimelineFilters.ts +5 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
- package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
- package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
- package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
- package/front_end/panels/timeline/TimelinePanel.ts +73 -68
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
- package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
- package/front_end/panels/timeline/components/Sidebar.ts +4 -14
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
- package/front_end/panels/timeline/utils/AIContext.ts +17 -19
- package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
- package/front_end/panels/timeline/utils/EntryName.ts +2 -2
- package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
- package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
- package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
- package/front_end/panels/timeline/utils/Helpers.ts +0 -18
- package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
- 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/angular.js.map +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/legacy.js.map +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/vue.js.map +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.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +6 -7
- package/front_end/ui/legacy/ActionRegistration.ts +9 -9
- package/front_end/ui/legacy/DockController.ts +18 -18
- package/front_end/ui/legacy/FilterBar.ts +7 -7
- package/front_end/ui/legacy/Fragment.ts +4 -4
- package/front_end/ui/legacy/GlassPane.ts +12 -12
- package/front_end/ui/legacy/InspectorView.ts +5 -15
- package/front_end/ui/legacy/ListControl.ts +27 -27
- package/front_end/ui/legacy/ListWidget.ts +4 -4
- package/front_end/ui/legacy/PopoverHelper.ts +4 -4
- package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
- package/front_end/ui/legacy/TabbedPane.ts +74 -75
- package/front_end/ui/legacy/TextPrompt.ts +31 -31
- package/front_end/ui/legacy/Toolbar.ts +13 -14
- package/front_end/ui/legacy/ViewManager.ts +30 -31
- package/front_end/ui/legacy/Widget.ts +6 -6
- package/front_end/ui/legacy/XLink.ts +9 -9
- package/front_end/ui/legacy/ZoomManager.ts +9 -9
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -40,6 +40,7 @@ import * as Platform from '../../core/platform/platform.js';
|
|
40
40
|
import * as Root from '../../core/root/root.js';
|
41
41
|
import * as SDK from '../../core/sdk/sdk.js';
|
42
42
|
import * as Protocol from '../../generated/protocol.js';
|
43
|
+
import * as Badges from '../../models/badges/badges.js';
|
43
44
|
import type * as Elements from '../../models/elements/elements.js';
|
44
45
|
import type * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
45
46
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
@@ -348,10 +349,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
348
349
|
private gutterContainer: HTMLElement;
|
349
350
|
private readonly decorationsElement: HTMLElement;
|
350
351
|
private searchQuery: string|null;
|
351
|
-
|
352
|
+
#expandedChildrenLimit: number;
|
352
353
|
private readonly decorationsThrottler: Common.Throttler.Throttler;
|
353
354
|
private inClipboard: boolean;
|
354
|
-
|
355
|
+
#hovered: boolean;
|
355
356
|
private editing: EditorHandles|null;
|
356
357
|
private htmlEditElement?: HTMLElement;
|
357
358
|
expandAllButtonElement: UI.TreeOutline.TreeElement|null;
|
@@ -385,11 +386,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
385
386
|
this.decorationsElement = this.gutterContainer.createChild('div', 'hidden');
|
386
387
|
|
387
388
|
this.searchQuery = null;
|
388
|
-
this
|
389
|
+
this.#expandedChildrenLimit = InitialChildrenLimit;
|
389
390
|
this.decorationsThrottler = new Common.Throttler.Throttler(100);
|
390
391
|
|
391
392
|
this.inClipboard = false;
|
392
|
-
this
|
393
|
+
this.#hovered = false;
|
393
394
|
|
394
395
|
this.editing = null;
|
395
396
|
|
@@ -502,7 +503,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
502
503
|
highlightSearchResults(searchQuery: string): void {
|
503
504
|
this.searchQuery = searchQuery;
|
504
505
|
if (!this.editing) {
|
505
|
-
this
|
506
|
+
this.#highlightSearchResults();
|
506
507
|
}
|
507
508
|
}
|
508
509
|
|
@@ -520,11 +521,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
520
521
|
}
|
521
522
|
|
522
523
|
get hovered(): boolean {
|
523
|
-
return this
|
524
|
+
return this.#hovered;
|
524
525
|
}
|
525
526
|
|
526
527
|
set hovered(isHovered: boolean) {
|
527
|
-
if (this
|
528
|
+
if (this.#hovered === isHovered) {
|
528
529
|
return;
|
529
530
|
}
|
530
531
|
|
@@ -535,7 +536,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
535
536
|
delete this.aiButtonContainer;
|
536
537
|
}
|
537
538
|
|
538
|
-
this
|
539
|
+
this.#hovered = isHovered;
|
539
540
|
|
540
541
|
if (this.listItemElement) {
|
541
542
|
if (isHovered) {
|
@@ -602,11 +603,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
602
603
|
}
|
603
604
|
|
604
605
|
expandedChildrenLimit(): number {
|
605
|
-
return this
|
606
|
+
return this.#expandedChildrenLimit;
|
606
607
|
}
|
607
608
|
|
608
609
|
setExpandedChildrenLimit(expandedChildrenLimit: number): void {
|
609
|
-
this
|
610
|
+
this.#expandedChildrenLimit = expandedChildrenLimit;
|
610
611
|
}
|
611
612
|
|
612
613
|
createSlotLink(nodeShortcut: SDK.DOMModel.DOMNodeShortcut|null): void {
|
@@ -690,7 +691,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
690
691
|
}
|
691
692
|
|
692
693
|
override onattach(): void {
|
693
|
-
if (this
|
694
|
+
if (this.#hovered) {
|
694
695
|
this.createSelection();
|
695
696
|
this.listItemElement.classList.add('hovered');
|
696
697
|
}
|
@@ -1603,6 +1604,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1603
1604
|
|
1604
1605
|
if (attributeName !== null && (attributeName.trim() || newText.trim()) && oldText !== newText) {
|
1605
1606
|
this.nodeInternal.setAttribute(attributeName, newText, moveToNextAttributeIfNeeded.bind(this));
|
1607
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
|
1606
1608
|
return;
|
1607
1609
|
}
|
1608
1610
|
|
@@ -1661,6 +1663,8 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1661
1663
|
if (!treeOutline) {
|
1662
1664
|
return;
|
1663
1665
|
}
|
1666
|
+
|
1667
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
|
1664
1668
|
const newTreeItem = treeOutline.selectNodeAfterEdit(wasExpanded, error, newNode);
|
1665
1669
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
1666
1670
|
// @ts-expect-error
|
@@ -1748,7 +1752,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1748
1752
|
this.#applyIssueStyleAndTooltip(issue);
|
1749
1753
|
}
|
1750
1754
|
|
1751
|
-
this
|
1755
|
+
this.#highlightSearchResults();
|
1752
1756
|
}
|
1753
1757
|
|
1754
1758
|
private computeLeftIndent(): number {
|
@@ -1776,10 +1780,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1776
1780
|
return;
|
1777
1781
|
}
|
1778
1782
|
|
1779
|
-
void this.decorationsThrottler.schedule(this.
|
1783
|
+
void this.decorationsThrottler.schedule(this.#updateDecorations.bind(this));
|
1780
1784
|
}
|
1781
1785
|
|
1782
|
-
|
1786
|
+
#updateDecorations(): Promise<void> {
|
1783
1787
|
if (!this.treeOutline) {
|
1784
1788
|
return Promise.resolve();
|
1785
1789
|
}
|
@@ -2117,7 +2121,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2117
2121
|
const node = this.nodeInternal;
|
2118
2122
|
const titleDOM = document.createDocumentFragment();
|
2119
2123
|
const updateSearchHighlight = (): void => {
|
2120
|
-
this
|
2124
|
+
this.#highlightSearchResults();
|
2121
2125
|
};
|
2122
2126
|
|
2123
2127
|
switch (node.nodeType()) {
|
@@ -2383,7 +2387,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2383
2387
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(lines.join('\n'));
|
2384
2388
|
}
|
2385
2389
|
|
2386
|
-
|
2390
|
+
#highlightSearchResults(): void {
|
2387
2391
|
this.hideSearchHighlights();
|
2388
2392
|
|
2389
2393
|
if (!this.searchQuery) {
|
@@ -2505,10 +2509,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2505
2509
|
}
|
2506
2510
|
|
2507
2511
|
private updateAdorners(context: OpeningTagContext): void {
|
2508
|
-
void context.adornersThrottler.schedule(this.
|
2512
|
+
void context.adornersThrottler.schedule(this.#updateAdorners.bind(null, context));
|
2509
2513
|
}
|
2510
2514
|
|
2511
|
-
|
2515
|
+
#updateAdorners(context: OpeningTagContext): Promise<void> {
|
2512
2516
|
const adornerContainer = context.adornerContainer;
|
2513
2517
|
if (!adornerContainer) {
|
2514
2518
|
return Promise.resolve();
|
@@ -2581,6 +2585,9 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2581
2585
|
const adorner = this.adorn(config);
|
2582
2586
|
const onClick = async(): Promise<void> => {
|
2583
2587
|
const {nodeIds} = await node.domModel().agent.invoke_forceShowPopover({nodeId, enable: adorner.isActive()});
|
2588
|
+
if (adorner.isActive()) {
|
2589
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
|
2590
|
+
}
|
2584
2591
|
for (const closedPopoverNodeId of nodeIds) {
|
2585
2592
|
const node = this.node().domModel().nodeForId(closedPopoverNodeId);
|
2586
2593
|
const treeElement = node && this.treeOutline?.treeElementByNode.get(node);
|
@@ -2617,6 +2624,9 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2617
2624
|
const onClick = ((() => {
|
2618
2625
|
if (adorner.isActive()) {
|
2619
2626
|
node.domModel().overlayModel().highlightGridInPersistentOverlay(nodeId);
|
2627
|
+
if (isSubgrid) {
|
2628
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
|
2629
|
+
}
|
2620
2630
|
} else {
|
2621
2631
|
node.domModel().overlayModel().hideGridInPersistentOverlay(nodeId);
|
2622
2632
|
}
|
@@ -2658,6 +2668,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2658
2668
|
const onClick = ((() => {
|
2659
2669
|
if (adorner.isActive()) {
|
2660
2670
|
node.domModel().overlayModel().highlightGridInPersistentOverlay(nodeId);
|
2671
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
|
2661
2672
|
} else {
|
2662
2673
|
node.domModel().overlayModel().hideGridInPersistentOverlay(nodeId);
|
2663
2674
|
}
|
@@ -2786,6 +2797,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2786
2797
|
const model = node.domModel().overlayModel();
|
2787
2798
|
if (adorner.isActive()) {
|
2788
2799
|
model.highlightContainerQueryInPersistentOverlay(nodeId);
|
2800
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
|
2789
2801
|
} else {
|
2790
2802
|
model.hideContainerQueryInPersistentOverlay(nodeId);
|
2791
2803
|
}
|
@@ -36,8 +36,8 @@
|
|
36
36
|
|
37
37
|
import * as Common from '../../core/common/common.js';
|
38
38
|
import * as i18n from '../../core/i18n/i18n.js';
|
39
|
-
import * as Root from '../../core/root/root.js';
|
40
39
|
import * as SDK from '../../core/sdk/sdk.js';
|
40
|
+
import * as Badges from '../../models/badges/badges.js';
|
41
41
|
import * as Elements from '../../models/elements/elements.js';
|
42
42
|
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
43
43
|
import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
|
@@ -465,10 +465,8 @@ export class ElementsTreeOutline extends
|
|
465
465
|
constructor(omitRootDOMNode?: boolean, selectEnabled?: boolean, hideGutter?: boolean) {
|
466
466
|
super();
|
467
467
|
|
468
|
-
|
469
|
-
|
470
|
-
this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
|
471
|
-
}
|
468
|
+
this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
|
469
|
+
this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
|
472
470
|
|
473
471
|
this.treeElementByNode = new WeakMap();
|
474
472
|
const shadowContainer = document.createElement('div');
|
@@ -540,48 +538,46 @@ export class ElementsTreeOutline extends
|
|
540
538
|
this.showHTMLCommentsSetting = Common.Settings.Settings.instance().moduleSetting('show-html-comments');
|
541
539
|
this.showHTMLCommentsSetting.addChangeListener(this.onShowHTMLCommentsChange.bind(this));
|
542
540
|
this.setUseLightSelectionColor(true);
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
}
|
541
|
+
// TODO(changhaohan): refactor the popover to use tooltip component.
|
542
|
+
this.#popupHelper = new UI.PopoverHelper.PopoverHelper(this.elementInternal, event => {
|
543
|
+
const hoveredNode = event.composedPath()[0] as Element;
|
544
|
+
if (!hoveredNode?.matches('.violating-element')) {
|
545
|
+
return null;
|
546
|
+
}
|
550
547
|
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
548
|
+
const issues = this.#nodeElementToIssues.get(hoveredNode);
|
549
|
+
if (!issues) {
|
550
|
+
return null;
|
551
|
+
}
|
555
552
|
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
}
|
553
|
+
return {
|
554
|
+
box: hoveredNode.boxInWindow(),
|
555
|
+
show: async (popover: UI.GlassPane.GlassPane) => {
|
556
|
+
popover.setIgnoreLeftMargin(true);
|
557
|
+
// clang-format off
|
558
|
+
render(html`
|
559
|
+
<div class="squiggles-content">
|
560
|
+
${issues.map(issue => {
|
561
|
+
const elementIssueDetails = getElementIssueDetails(issue);
|
562
|
+
if (!elementIssueDetails) {
|
563
|
+
// This shouldn't happen, but add this if check to pass ts check.
|
564
|
+
return nothing;
|
565
|
+
}
|
566
|
+
const issueKindIconName = IssueCounter.IssueCounter.getIssueKindIconName(issue.getKind());
|
567
|
+
const openIssueEvent = (): Promise<void> => Common.Revealer.reveal(issue);
|
568
|
+
return html`
|
569
|
+
<div class="squiggles-content-item">
|
570
|
+
<devtools-icon .name=${issueKindIconName} @click=${openIssueEvent}></devtools-icon>
|
571
|
+
<x-link class="link" @click=${openIssueEvent}>${i18nString(UIStrings.viewIssue)}</x-link>
|
572
|
+
<span>${elementIssueDetails.tooltip}</span>
|
573
|
+
</div>`;})}
|
574
|
+
</div>`, popover.contentElement);
|
575
|
+
// clang-format on
|
576
|
+
return true;
|
577
|
+
},
|
578
|
+
};
|
579
|
+
}, 'elements.issue');
|
580
|
+
this.#popupHelper.setTimeout(300);
|
585
581
|
}
|
586
582
|
|
587
583
|
static forDOMModel(domModel: SDK.DOMModel.DOMModel): ElementsTreeOutline|null {
|
@@ -1332,6 +1328,8 @@ export class ElementsTreeOutline extends
|
|
1332
1328
|
return;
|
1333
1329
|
}
|
1334
1330
|
|
1331
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
|
1332
|
+
|
1335
1333
|
// Select it and expand if necessary. We force tree update so that it processes dom events and is up to date.
|
1336
1334
|
this.runPendingUpdates();
|
1337
1335
|
|
@@ -1524,9 +1522,7 @@ export class ElementsTreeOutline extends
|
|
1524
1522
|
this.reset();
|
1525
1523
|
if (domModel.existingDocument()) {
|
1526
1524
|
this.rootDOMNode = domModel.existingDocument();
|
1527
|
-
|
1528
|
-
this.#addAllElementIssues();
|
1529
|
-
}
|
1525
|
+
this.#addAllElementIssues();
|
1530
1526
|
}
|
1531
1527
|
}
|
1532
1528
|
|
@@ -56,7 +56,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
56
56
|
|
57
57
|
export class ShortcutTreeElement extends UI.TreeOutline.TreeElement {
|
58
58
|
private readonly nodeShortcut: SDK.DOMModel.DOMNodeShortcut;
|
59
|
-
|
59
|
+
#hovered?: boolean;
|
60
60
|
constructor(nodeShortcut: SDK.DOMModel.DOMNodeShortcut) {
|
61
61
|
super('');
|
62
62
|
this.listItemElement.createChild('div', 'selection fill');
|
@@ -107,14 +107,14 @@ export class ShortcutTreeElement extends UI.TreeOutline.TreeElement {
|
|
107
107
|
}
|
108
108
|
|
109
109
|
get hovered(): boolean {
|
110
|
-
return Boolean(this
|
110
|
+
return Boolean(this.#hovered);
|
111
111
|
}
|
112
112
|
|
113
113
|
set hovered(x: boolean) {
|
114
|
-
if (this
|
114
|
+
if (this.#hovered === x) {
|
115
115
|
return;
|
116
116
|
}
|
117
|
-
this
|
117
|
+
this.#hovered = x;
|
118
118
|
this.listItemElement.classList.toggle('hovered', x);
|
119
119
|
}
|
120
120
|
|
@@ -41,6 +41,7 @@ import * as Platform from '../../core/platform/platform.js';
|
|
41
41
|
import * as Root from '../../core/root/root.js';
|
42
42
|
import * as SDK from '../../core/sdk/sdk.js';
|
43
43
|
import * as Protocol from '../../generated/protocol.js';
|
44
|
+
import * as Badges from '../../models/badges/badges.js';
|
44
45
|
import * as Bindings from '../../models/bindings/bindings.js';
|
45
46
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
46
47
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
@@ -147,7 +148,7 @@ export class StylePropertiesSection {
|
|
147
148
|
navigable: boolean|null|undefined;
|
148
149
|
protected readonly selectorRefElement: HTMLElement;
|
149
150
|
private hoverableSelectorsMode: boolean;
|
150
|
-
|
151
|
+
#isHidden: boolean;
|
151
152
|
protected customPopulateCallback: () => void;
|
152
153
|
|
153
154
|
nestingLevel = 0;
|
@@ -316,7 +317,7 @@ export class StylePropertiesSection {
|
|
316
317
|
this.propertiesTreeOutline.element.classList.add('read-only');
|
317
318
|
}
|
318
319
|
this.hoverableSelectorsMode = false;
|
319
|
-
this
|
320
|
+
this.#isHidden = false;
|
320
321
|
this.markSelectorMatches();
|
321
322
|
this.onpopulate();
|
322
323
|
}
|
@@ -1131,7 +1132,7 @@ export class StylePropertiesSection {
|
|
1131
1132
|
|
1132
1133
|
const regex = this.parentPane.filterRegex();
|
1133
1134
|
const hideRule = !hasMatchingChild && regex !== null && !regex.test(this.element.deepTextContent());
|
1134
|
-
this
|
1135
|
+
this.#isHidden = hideRule;
|
1135
1136
|
this.element.classList.toggle('hidden', hideRule);
|
1136
1137
|
if (!hideRule && this.styleInternal.parentRule) {
|
1137
1138
|
this.markSelectorHighlights();
|
@@ -1140,7 +1141,7 @@ export class StylePropertiesSection {
|
|
1140
1141
|
}
|
1141
1142
|
|
1142
1143
|
isHidden(): boolean {
|
1143
|
-
return this
|
1144
|
+
return this.#isHidden;
|
1144
1145
|
}
|
1145
1146
|
|
1146
1147
|
markSelectorMatches(): void {
|
@@ -1546,6 +1547,8 @@ export class StylePropertiesSection {
|
|
1546
1547
|
if (!success) {
|
1547
1548
|
return Promise.resolve();
|
1548
1549
|
}
|
1550
|
+
|
1551
|
+
Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CSS_RULE_MODIFIED);
|
1549
1552
|
return this.matchedStyles.recomputeMatchingSelectors(rule).then(updateSourceRanges.bind(this, rule));
|
1550
1553
|
}
|
1551
1554
|
|