chrome-devtools-frontend 1.0.1512349 → 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/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 +38 -0
- 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/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 +15 -16
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +127 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +149 -26
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +9 -10
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +3 -5
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +4 -3
- package/front_end/models/badges/SpeedsterBadge.ts +6 -4
- package/front_end/models/badges/StarterBadge.ts +4 -3
- package/front_end/models/badges/UserBadges.ts +29 -3
- 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 -41
- 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 +24 -4
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +26 -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 +18 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +41 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +4 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +49 -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 -12
- package/front_end/panels/settings/components/SyncSection.ts +20 -6
- 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 +52 -59
- 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 +43 -43
- 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/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
@@ -11,8 +11,8 @@ import {ComputedStyleWidget} from './ComputedStyleWidget.js';
|
|
11
11
|
import {StylesSidebarPane} from './StylesSidebarPane.js';
|
12
12
|
|
13
13
|
export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
|
14
|
-
|
15
|
-
|
14
|
+
#node: SDK.DOMModel.DOMNode|null;
|
15
|
+
#cssModel: SDK.CSSModel.CSSModel|null;
|
16
16
|
private eventListeners: Common.EventTarget.EventDescriptor[];
|
17
17
|
private frameResizedTimer?: number;
|
18
18
|
private computedStylePromise?: Promise<ComputedStyle|null>;
|
@@ -20,9 +20,9 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
20
20
|
|
21
21
|
constructor() {
|
22
22
|
super();
|
23
|
-
this
|
23
|
+
this.#cssModel = null;
|
24
24
|
this.eventListeners = [];
|
25
|
-
this
|
25
|
+
this.#node = UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
|
26
26
|
|
27
27
|
UI.Context.Context.instance().addFlavorChangeListener(SDK.DOMModel.DOMNode, this.onNodeChanged, this);
|
28
28
|
UI.Context.Context.instance().addFlavorChangeListener(
|
@@ -40,17 +40,17 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
40
40
|
}
|
41
41
|
|
42
42
|
node(): SDK.DOMModel.DOMNode|null {
|
43
|
-
return this
|
43
|
+
return this.#node;
|
44
44
|
}
|
45
45
|
|
46
46
|
cssModel(): SDK.CSSModel.CSSModel|null {
|
47
|
-
return this
|
47
|
+
return this.#cssModel?.isEnabled() ? this.#cssModel : null;
|
48
48
|
}
|
49
49
|
|
50
50
|
// This is a debounced method because the user might be navigated from Styles tab to Computed Style tab and vice versa.
|
51
51
|
// For that case, we want to only run this function once.
|
52
52
|
private evaluateTrackingComputedStyleUpdatesForNode = Common.Debouncer.debounce((): void => {
|
53
|
-
if (!this
|
53
|
+
if (!this.#node) {
|
54
54
|
// There isn't a node selected now, so let's stop tracking computed style updates for the previously tracked node.
|
55
55
|
if (this.currentTrackedNodeId) {
|
56
56
|
void this.cssModel()?.trackComputedStyleUpdatesForNode(undefined);
|
@@ -76,25 +76,25 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
76
76
|
// Either computed style widget or styles tab is visible
|
77
77
|
// if the currently tracked node id is not the same as the selected node
|
78
78
|
// let's start tracking the currently selected node.
|
79
|
-
if (this.currentTrackedNodeId !== this.
|
80
|
-
void this.cssModel()?.trackComputedStyleUpdatesForNode(this.
|
81
|
-
this.currentTrackedNodeId = this.
|
79
|
+
if (this.currentTrackedNodeId !== this.#node.id) {
|
80
|
+
void this.cssModel()?.trackComputedStyleUpdatesForNode(this.#node.id);
|
81
|
+
this.currentTrackedNodeId = this.#node.id;
|
82
82
|
}
|
83
83
|
}, 100);
|
84
84
|
|
85
85
|
private onNodeChanged(event: Common.EventTarget.EventTargetEvent<SDK.DOMModel.DOMNode|null>): void {
|
86
|
-
this
|
87
|
-
this.updateModel(this
|
86
|
+
this.#node = event.data;
|
87
|
+
this.updateModel(this.#node ? this.#node.domModel().cssModel() : null);
|
88
88
|
this.onCSSModelChanged(null);
|
89
89
|
this.evaluateTrackingComputedStyleUpdatesForNode();
|
90
90
|
}
|
91
91
|
|
92
92
|
private updateModel(cssModel: SDK.CSSModel.CSSModel|null): void {
|
93
|
-
if (this
|
93
|
+
if (this.#cssModel === cssModel) {
|
94
94
|
return;
|
95
95
|
}
|
96
96
|
Common.EventTarget.removeEventListeners(this.eventListeners);
|
97
|
-
this
|
97
|
+
this.#cssModel = cssModel;
|
98
98
|
const domModel = cssModel ? cssModel.domModel() : null;
|
99
99
|
const resourceTreeModel = cssModel ? cssModel.target().model(SDK.ResourceTreeModel.ResourceTreeModel) : null;
|
100
100
|
if (cssModel && domModel && resourceTreeModel) {
|
@@ -123,7 +123,7 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
123
123
|
delete this.computedStylePromise;
|
124
124
|
// If the event contains `nodeId` and that's not the same as this node's id
|
125
125
|
// we don't emit the COMPUTED_STYLE_CHANGED event.
|
126
|
-
if (event?.data && 'nodeId' in event.data && event.data.nodeId !== this
|
126
|
+
if (event?.data && 'nodeId' in event.data && event.data.nodeId !== this.#node?.id) {
|
127
127
|
return;
|
128
128
|
}
|
129
129
|
|
@@ -133,9 +133,8 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
133
133
|
private onDOMModelChanged(event: Common.EventTarget.EventTargetEvent<SDK.DOMModel.DOMNode>): void {
|
134
134
|
// Any attribute removal or modification can affect the styles of "related" nodes.
|
135
135
|
const node = event.data;
|
136
|
-
if (!this
|
137
|
-
this
|
138
|
-
!node.isAncestor(this.nodeInternal)) {
|
136
|
+
if (!this.#node ||
|
137
|
+
this.#node !== node && node.parentNode !== this.#node.parentNode && !node.isAncestor(this.#node)) {
|
139
138
|
return;
|
140
139
|
}
|
141
140
|
this.onCSSModelChanged(null);
|
@@ -17,7 +17,7 @@ export const cssPath = function(node: SDK.DOMModel.DOMNode, optimized?: boolean)
|
|
17
17
|
}
|
18
18
|
|
19
19
|
const steps = [];
|
20
|
-
let contextNode:
|
20
|
+
let contextNode: SDK.DOMModel.DOMNode|null = node;
|
21
21
|
while (contextNode) {
|
22
22
|
const step = cssPathStep(contextNode, Boolean(optimized), contextNode === node);
|
23
23
|
if (!step) {
|
@@ -176,7 +176,7 @@ export const xPath = function(node: SDK.DOMModel.DOMNode, optimized?: boolean):
|
|
176
176
|
}
|
177
177
|
|
178
178
|
const steps = [];
|
179
|
-
let contextNode:
|
179
|
+
let contextNode: SDK.DOMModel.DOMNode|null = node;
|
180
180
|
while (contextNode) {
|
181
181
|
const step = xPathValue(contextNode, optimized);
|
182
182
|
if (!step) {
|
@@ -201,7 +201,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
201
201
|
SDK.TargetManager.SDKModelObserver<SDK.DOMModel.DOMModel>,
|
202
202
|
UI.View.ViewLocationResolver {
|
203
203
|
private splitWidget: UI.SplitWidget.SplitWidget;
|
204
|
-
|
204
|
+
readonly #searchableView: UI.SearchableView.SearchableView;
|
205
205
|
private mainContainer: HTMLDivElement;
|
206
206
|
private domTreeContainer: HTMLDivElement;
|
207
207
|
private splitMode: SplitMode|null;
|
@@ -252,11 +252,11 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
252
252
|
UI.SplitWidget.Events.SIDEBAR_SIZE_CHANGED, this.updateTreeOutlineVisibleWidth.bind(this));
|
253
253
|
this.splitWidget.show(this.element);
|
254
254
|
|
255
|
-
this
|
256
|
-
this.
|
257
|
-
this.
|
258
|
-
this.
|
259
|
-
const stackElement = this.
|
255
|
+
this.#searchableView = new UI.SearchableView.SearchableView(this, null);
|
256
|
+
this.#searchableView.setMinimalSearchQuerySize(0);
|
257
|
+
this.#searchableView.setMinimumSize(25, 28);
|
258
|
+
this.#searchableView.setPlaceholder(i18nString(UIStrings.findByStringSelectorOrXpath));
|
259
|
+
const stackElement = this.#searchableView.element;
|
260
260
|
|
261
261
|
this.mainContainer = document.createElement('div');
|
262
262
|
this.domTreeContainer = document.createElement('div');
|
@@ -271,7 +271,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
271
271
|
UI.ARIAUtils.markAsMain(this.domTreeContainer);
|
272
272
|
UI.ARIAUtils.setLabel(this.domTreeContainer, i18nString(UIStrings.domTreeExplorer));
|
273
273
|
|
274
|
-
this.splitWidget.setMainWidget(this
|
274
|
+
this.splitWidget.setMainWidget(this.#searchableView);
|
275
275
|
this.splitMode = null;
|
276
276
|
|
277
277
|
this.mainContainer.id = 'main-content';
|
@@ -351,7 +351,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
351
351
|
}
|
352
352
|
|
353
353
|
private showDOMTree(): void {
|
354
|
-
this.splitWidget.setMainWidget(this
|
354
|
+
this.splitWidget.setMainWidget(this.#searchableView);
|
355
355
|
const selectedNode = this.selectedDOMNode();
|
356
356
|
if (!selectedNode) {
|
357
357
|
return;
|
@@ -477,7 +477,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
477
477
|
}
|
478
478
|
|
479
479
|
override searchableView(): UI.SearchableView.SearchableView {
|
480
|
-
return this
|
480
|
+
return this.#searchableView;
|
481
481
|
}
|
482
482
|
|
483
483
|
override wasShown(): void {
|
@@ -560,7 +560,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
560
560
|
}
|
561
561
|
|
562
562
|
private documentUpdated(domModel: SDK.DOMModel.DOMModel): void {
|
563
|
-
this.
|
563
|
+
this.#searchableView.cancelSearch();
|
564
564
|
|
565
565
|
if (!domModel.existingDocument()) {
|
566
566
|
if (this.isShowing()) {
|
@@ -625,7 +625,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
625
625
|
this.searchConfig = undefined;
|
626
626
|
this.hideSearchHighlights();
|
627
627
|
|
628
|
-
this.
|
628
|
+
this.#searchableView.updateSearchMatchesCount(0);
|
629
629
|
|
630
630
|
this.currentSearchResultIndex = -1;
|
631
631
|
delete this.searchResults;
|
@@ -660,7 +660,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
660
660
|
this.searchResults.push({domModel: domModels[i], index: j, node: undefined});
|
661
661
|
}
|
662
662
|
}
|
663
|
-
this.
|
663
|
+
this.#searchableView.updateSearchMatchesCount(this.searchResults.length);
|
664
664
|
if (!this.searchResults.length) {
|
665
665
|
return;
|
666
666
|
}
|
@@ -725,7 +725,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
|
|
725
725
|
}
|
726
726
|
const searchResult = searchResults[index];
|
727
727
|
|
728
|
-
this.
|
728
|
+
this.#searchableView.updateCurrentMatchIndex(index);
|
729
729
|
if (searchResult.node === null) {
|
730
730
|
return;
|
731
731
|
}
|
@@ -349,10 +349,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
349
349
|
private gutterContainer: HTMLElement;
|
350
350
|
private readonly decorationsElement: HTMLElement;
|
351
351
|
private searchQuery: string|null;
|
352
|
-
|
352
|
+
#expandedChildrenLimit: number;
|
353
353
|
private readonly decorationsThrottler: Common.Throttler.Throttler;
|
354
354
|
private inClipboard: boolean;
|
355
|
-
|
355
|
+
#hovered: boolean;
|
356
356
|
private editing: EditorHandles|null;
|
357
357
|
private htmlEditElement?: HTMLElement;
|
358
358
|
expandAllButtonElement: UI.TreeOutline.TreeElement|null;
|
@@ -386,11 +386,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
386
386
|
this.decorationsElement = this.gutterContainer.createChild('div', 'hidden');
|
387
387
|
|
388
388
|
this.searchQuery = null;
|
389
|
-
this
|
389
|
+
this.#expandedChildrenLimit = InitialChildrenLimit;
|
390
390
|
this.decorationsThrottler = new Common.Throttler.Throttler(100);
|
391
391
|
|
392
392
|
this.inClipboard = false;
|
393
|
-
this
|
393
|
+
this.#hovered = false;
|
394
394
|
|
395
395
|
this.editing = null;
|
396
396
|
|
@@ -503,7 +503,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
503
503
|
highlightSearchResults(searchQuery: string): void {
|
504
504
|
this.searchQuery = searchQuery;
|
505
505
|
if (!this.editing) {
|
506
|
-
this
|
506
|
+
this.#highlightSearchResults();
|
507
507
|
}
|
508
508
|
}
|
509
509
|
|
@@ -521,11 +521,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
521
521
|
}
|
522
522
|
|
523
523
|
get hovered(): boolean {
|
524
|
-
return this
|
524
|
+
return this.#hovered;
|
525
525
|
}
|
526
526
|
|
527
527
|
set hovered(isHovered: boolean) {
|
528
|
-
if (this
|
528
|
+
if (this.#hovered === isHovered) {
|
529
529
|
return;
|
530
530
|
}
|
531
531
|
|
@@ -536,7 +536,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
536
536
|
delete this.aiButtonContainer;
|
537
537
|
}
|
538
538
|
|
539
|
-
this
|
539
|
+
this.#hovered = isHovered;
|
540
540
|
|
541
541
|
if (this.listItemElement) {
|
542
542
|
if (isHovered) {
|
@@ -603,11 +603,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
603
603
|
}
|
604
604
|
|
605
605
|
expandedChildrenLimit(): number {
|
606
|
-
return this
|
606
|
+
return this.#expandedChildrenLimit;
|
607
607
|
}
|
608
608
|
|
609
609
|
setExpandedChildrenLimit(expandedChildrenLimit: number): void {
|
610
|
-
this
|
610
|
+
this.#expandedChildrenLimit = expandedChildrenLimit;
|
611
611
|
}
|
612
612
|
|
613
613
|
createSlotLink(nodeShortcut: SDK.DOMModel.DOMNodeShortcut|null): void {
|
@@ -691,7 +691,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
691
691
|
}
|
692
692
|
|
693
693
|
override onattach(): void {
|
694
|
-
if (this
|
694
|
+
if (this.#hovered) {
|
695
695
|
this.createSelection();
|
696
696
|
this.listItemElement.classList.add('hovered');
|
697
697
|
}
|
@@ -1752,7 +1752,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1752
1752
|
this.#applyIssueStyleAndTooltip(issue);
|
1753
1753
|
}
|
1754
1754
|
|
1755
|
-
this
|
1755
|
+
this.#highlightSearchResults();
|
1756
1756
|
}
|
1757
1757
|
|
1758
1758
|
private computeLeftIndent(): number {
|
@@ -1780,10 +1780,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
1780
1780
|
return;
|
1781
1781
|
}
|
1782
1782
|
|
1783
|
-
void this.decorationsThrottler.schedule(this.
|
1783
|
+
void this.decorationsThrottler.schedule(this.#updateDecorations.bind(this));
|
1784
1784
|
}
|
1785
1785
|
|
1786
|
-
|
1786
|
+
#updateDecorations(): Promise<void> {
|
1787
1787
|
if (!this.treeOutline) {
|
1788
1788
|
return Promise.resolve();
|
1789
1789
|
}
|
@@ -2121,7 +2121,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2121
2121
|
const node = this.nodeInternal;
|
2122
2122
|
const titleDOM = document.createDocumentFragment();
|
2123
2123
|
const updateSearchHighlight = (): void => {
|
2124
|
-
this
|
2124
|
+
this.#highlightSearchResults();
|
2125
2125
|
};
|
2126
2126
|
|
2127
2127
|
switch (node.nodeType()) {
|
@@ -2387,7 +2387,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2387
2387
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(lines.join('\n'));
|
2388
2388
|
}
|
2389
2389
|
|
2390
|
-
|
2390
|
+
#highlightSearchResults(): void {
|
2391
2391
|
this.hideSearchHighlights();
|
2392
2392
|
|
2393
2393
|
if (!this.searchQuery) {
|
@@ -2509,10 +2509,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
2509
2509
|
}
|
2510
2510
|
|
2511
2511
|
private updateAdorners(context: OpeningTagContext): void {
|
2512
|
-
void context.adornersThrottler.schedule(this.
|
2512
|
+
void context.adornersThrottler.schedule(this.#updateAdorners.bind(null, context));
|
2513
2513
|
}
|
2514
2514
|
|
2515
|
-
|
2515
|
+
#updateAdorners(context: OpeningTagContext): Promise<void> {
|
2516
2516
|
const adornerContainer = context.adornerContainer;
|
2517
2517
|
if (!adornerContainer) {
|
2518
2518
|
return Promise.resolve();
|
@@ -36,7 +36,6 @@
|
|
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';
|
41
40
|
import * as Badges from '../../models/badges/badges.js';
|
42
41
|
import * as Elements from '../../models/elements/elements.js';
|
@@ -466,10 +465,8 @@ export class ElementsTreeOutline extends
|
|
466
465
|
constructor(omitRootDOMNode?: boolean, selectEnabled?: boolean, hideGutter?: boolean) {
|
467
466
|
super();
|
468
467
|
|
469
|
-
|
470
|
-
|
471
|
-
this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
|
472
|
-
}
|
468
|
+
this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
|
469
|
+
this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
|
473
470
|
|
474
471
|
this.treeElementByNode = new WeakMap();
|
475
472
|
const shadowContainer = document.createElement('div');
|
@@ -541,48 +538,46 @@ export class ElementsTreeOutline extends
|
|
541
538
|
this.showHTMLCommentsSetting = Common.Settings.Settings.instance().moduleSetting('show-html-comments');
|
542
539
|
this.showHTMLCommentsSetting.addChangeListener(this.onShowHTMLCommentsChange.bind(this));
|
543
540
|
this.setUseLightSelectionColor(true);
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
}
|
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
|
+
}
|
551
547
|
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
548
|
+
const issues = this.#nodeElementToIssues.get(hoveredNode);
|
549
|
+
if (!issues) {
|
550
|
+
return null;
|
551
|
+
}
|
556
552
|
|
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
|
-
|
585
|
-
}
|
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);
|
586
581
|
}
|
587
582
|
|
588
583
|
static forDOMModel(domModel: SDK.DOMModel.DOMModel): ElementsTreeOutline|null {
|
@@ -1527,9 +1522,7 @@ export class ElementsTreeOutline extends
|
|
1527
1522
|
this.reset();
|
1528
1523
|
if (domModel.existingDocument()) {
|
1529
1524
|
this.rootDOMNode = domModel.existingDocument();
|
1530
|
-
|
1531
|
-
this.#addAllElementIssues();
|
1532
|
-
}
|
1525
|
+
this.#addAllElementIssues();
|
1533
1526
|
}
|
1534
1527
|
}
|
1535
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
|
|
@@ -148,7 +148,7 @@ export class StylePropertiesSection {
|
|
148
148
|
navigable: boolean|null|undefined;
|
149
149
|
protected readonly selectorRefElement: HTMLElement;
|
150
150
|
private hoverableSelectorsMode: boolean;
|
151
|
-
|
151
|
+
#isHidden: boolean;
|
152
152
|
protected customPopulateCallback: () => void;
|
153
153
|
|
154
154
|
nestingLevel = 0;
|
@@ -317,7 +317,7 @@ export class StylePropertiesSection {
|
|
317
317
|
this.propertiesTreeOutline.element.classList.add('read-only');
|
318
318
|
}
|
319
319
|
this.hoverableSelectorsMode = false;
|
320
|
-
this
|
320
|
+
this.#isHidden = false;
|
321
321
|
this.markSelectorMatches();
|
322
322
|
this.onpopulate();
|
323
323
|
}
|
@@ -1132,7 +1132,7 @@ export class StylePropertiesSection {
|
|
1132
1132
|
|
1133
1133
|
const regex = this.parentPane.filterRegex();
|
1134
1134
|
const hideRule = !hasMatchingChild && regex !== null && !regex.test(this.element.deepTextContent());
|
1135
|
-
this
|
1135
|
+
this.#isHidden = hideRule;
|
1136
1136
|
this.element.classList.toggle('hidden', hideRule);
|
1137
1137
|
if (!hideRule && this.styleInternal.parentRule) {
|
1138
1138
|
this.markSelectorHighlights();
|
@@ -1141,7 +1141,7 @@ export class StylePropertiesSection {
|
|
1141
1141
|
}
|
1142
1142
|
|
1143
1143
|
isHidden(): boolean {
|
1144
|
-
return this
|
1144
|
+
return this.#isHidden;
|
1145
1145
|
}
|
1146
1146
|
|
1147
1147
|
markSelectorMatches(): void {
|