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
@@ -149,61 +149,61 @@ export class TracingFrameLayerTree {
|
|
149
149
|
|
150
150
|
export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
151
151
|
private parentLayerId: string|null;
|
152
|
-
|
152
|
+
parentInternal: SDK.LayerTreeBase.Layer|null;
|
153
153
|
private layerId: string;
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
154
|
+
#node: SDK.DOMModel.DOMNode|null;
|
155
|
+
#offsetX: number;
|
156
|
+
#offsetY: number;
|
157
|
+
#width: number;
|
158
|
+
#height: number;
|
159
|
+
#children: SDK.LayerTreeBase.Layer[];
|
160
|
+
#quad: number[];
|
161
|
+
#scrollRects: Protocol.LayerTree.ScrollRect[];
|
162
|
+
#gpuMemoryUsage: number;
|
163
163
|
private paints: Trace.Types.Events.LegacyLayerPaintEvent[];
|
164
164
|
private compositingReasons: string[];
|
165
165
|
private compositingReasonIds: string[];
|
166
|
-
|
166
|
+
#drawsContent: boolean;
|
167
167
|
private paintProfilerModel: SDK.PaintProfiler.PaintProfilerModel|null;
|
168
168
|
constructor(paintProfilerModel: SDK.PaintProfiler.PaintProfilerModel|null, payload: TracingLayerPayload) {
|
169
169
|
this.parentLayerId = null;
|
170
170
|
this.parentInternal = null;
|
171
171
|
this.layerId = '';
|
172
|
-
this
|
173
|
-
this
|
174
|
-
this
|
175
|
-
this
|
176
|
-
this
|
177
|
-
this
|
178
|
-
this
|
179
|
-
this
|
180
|
-
this
|
172
|
+
this.#node = null;
|
173
|
+
this.#offsetX = -1;
|
174
|
+
this.#offsetY = -1;
|
175
|
+
this.#width = -1;
|
176
|
+
this.#height = -1;
|
177
|
+
this.#children = [];
|
178
|
+
this.#quad = [];
|
179
|
+
this.#scrollRects = [];
|
180
|
+
this.#gpuMemoryUsage = -1;
|
181
181
|
this.paints = [];
|
182
182
|
this.compositingReasons = [];
|
183
183
|
this.compositingReasonIds = [];
|
184
|
-
this
|
184
|
+
this.#drawsContent = false;
|
185
185
|
|
186
186
|
this.paintProfilerModel = paintProfilerModel;
|
187
187
|
this.reset(payload);
|
188
188
|
}
|
189
189
|
|
190
190
|
reset(payload: TracingLayerPayload): void {
|
191
|
-
this
|
191
|
+
this.#node = null;
|
192
192
|
this.layerId = String(payload.layer_id);
|
193
|
-
this
|
194
|
-
this
|
195
|
-
this
|
196
|
-
this
|
197
|
-
this
|
193
|
+
this.#offsetX = payload.position[0];
|
194
|
+
this.#offsetY = payload.position[1];
|
195
|
+
this.#width = payload.bounds.width;
|
196
|
+
this.#height = payload.bounds.height;
|
197
|
+
this.#children = [];
|
198
198
|
this.parentLayerId = null;
|
199
199
|
this.parentInternal = null;
|
200
|
-
this
|
200
|
+
this.#quad = payload.layer_quad || [];
|
201
201
|
this.createScrollRects(payload);
|
202
202
|
|
203
203
|
this.compositingReasons = payload.compositing_reasons || [];
|
204
204
|
this.compositingReasonIds = payload.compositing_reason_ids || [];
|
205
|
-
this
|
206
|
-
this
|
205
|
+
this.#drawsContent = Boolean(payload.draws_content);
|
206
|
+
this.#gpuMemoryUsage = payload.gpu_memory_usage;
|
207
207
|
this.paints = [];
|
208
208
|
}
|
209
209
|
|
@@ -224,7 +224,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
224
224
|
}
|
225
225
|
|
226
226
|
children(): SDK.LayerTreeBase.Layer[] {
|
227
|
-
return this
|
227
|
+
return this.#children;
|
228
228
|
}
|
229
229
|
|
230
230
|
addChild(childParam: SDK.LayerTreeBase.Layer): void {
|
@@ -232,17 +232,17 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
232
232
|
if (child.parentInternal) {
|
233
233
|
console.assert(false, 'Child already has a parent');
|
234
234
|
}
|
235
|
-
this.
|
235
|
+
this.#children.push(child);
|
236
236
|
child.parentInternal = this;
|
237
237
|
child.parentLayerId = this.layerId;
|
238
238
|
}
|
239
239
|
|
240
240
|
setNode(node: SDK.DOMModel.DOMNode|null): void {
|
241
|
-
this
|
241
|
+
this.#node = node;
|
242
242
|
}
|
243
243
|
|
244
244
|
node(): SDK.DOMModel.DOMNode|null {
|
245
|
-
return this
|
245
|
+
return this.#node;
|
246
246
|
}
|
247
247
|
|
248
248
|
nodeForSelfOrAncestor(): SDK.DOMModel.DOMNode|null {
|
@@ -256,19 +256,19 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
256
256
|
}
|
257
257
|
|
258
258
|
offsetX(): number {
|
259
|
-
return this
|
259
|
+
return this.#offsetX;
|
260
260
|
}
|
261
261
|
|
262
262
|
offsetY(): number {
|
263
|
-
return this
|
263
|
+
return this.#offsetY;
|
264
264
|
}
|
265
265
|
|
266
266
|
width(): number {
|
267
|
-
return this
|
267
|
+
return this.#width;
|
268
268
|
}
|
269
269
|
|
270
270
|
height(): number {
|
271
|
-
return this
|
271
|
+
return this.#height;
|
272
272
|
}
|
273
273
|
|
274
274
|
transform(): number[]|null {
|
@@ -276,7 +276,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
276
276
|
}
|
277
277
|
|
278
278
|
quad(): number[] {
|
279
|
-
return this
|
279
|
+
return this.#quad;
|
280
280
|
}
|
281
281
|
|
282
282
|
anchorPoint(): number[] {
|
@@ -296,7 +296,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
296
296
|
}
|
297
297
|
|
298
298
|
scrollRects(): Protocol.LayerTree.ScrollRect[] {
|
299
|
-
return this
|
299
|
+
return this.#scrollRects;
|
300
300
|
}
|
301
301
|
|
302
302
|
stickyPositionConstraint(): SDK.LayerTreeBase.StickyPositionConstraint|null {
|
@@ -305,7 +305,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
305
305
|
}
|
306
306
|
|
307
307
|
gpuMemoryUsage(): number {
|
308
|
-
return this
|
308
|
+
return this.#gpuMemoryUsage;
|
309
309
|
}
|
310
310
|
|
311
311
|
snapshots(): Array<Promise<SDK.PaintProfiler.SnapshotWithRect|null>> {
|
@@ -385,7 +385,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
385
385
|
// SDK.LayerBaseTree.Layer.ScrollRectType and Protocol.LayerTree.ScrollRectType are the
|
386
386
|
// same type, but we need to use the indirection of the nonPayloadScrollRects since
|
387
387
|
// the ScrollRectType is defined as a string in SDK.LayerBaseTree.Layer.ScrollRectType.
|
388
|
-
this
|
388
|
+
this.#scrollRects = nonPayloadScrollRects;
|
389
389
|
}
|
390
390
|
|
391
391
|
addPaintEvent(paint: Trace.Types.Events.LegacyLayerPaintEvent): void {
|
@@ -401,7 +401,7 @@ export class TracingLayer implements SDK.LayerTreeBase.Layer {
|
|
401
401
|
}
|
402
402
|
|
403
403
|
drawsContent(): boolean {
|
404
|
-
return this
|
404
|
+
return this.#drawsContent;
|
405
405
|
}
|
406
406
|
}
|
407
407
|
|
@@ -35,12 +35,12 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
35
35
|
* is no entry for a trace in this map it is assumed to be a new trace and the
|
36
36
|
* banner will be shown if the user has any hidden track config.
|
37
37
|
*/
|
38
|
-
const
|
38
|
+
const hiddenTracksInfoBarByParsedTrace = new WeakMap<Trace.TraceModel.ParsedTrace, UI.Infobar.Infobar|'DISMISSED'>();
|
39
39
|
|
40
40
|
/**
|
41
41
|
* Creates an overlay for the timeline that will show a banner informing the user that at least one track is hidden.
|
42
42
|
*
|
43
|
-
* @param
|
43
|
+
* @param parsedTrace The trace parsed data.
|
44
44
|
* @param callbacks An object containing the callback functions to be executed
|
45
45
|
* when the user interacts with the banner.
|
46
46
|
* - `onShowAllTracks`: called when the user clicks the "Unhide all" button.
|
@@ -49,12 +49,12 @@ const hiddenTracksInfoBarPerTrace = new WeakMap<Trace.Handlers.Types.ParsedTrace
|
|
49
49
|
* @returns A `Trace.Types.Overlays.Overlay` object to be rendered, or `null` if
|
50
50
|
* no banner should be shown (because the user has already seen the banner)
|
51
51
|
*/
|
52
|
-
export function createHiddenTracksOverlay(
|
52
|
+
export function createHiddenTracksOverlay(parsedTrace: Trace.TraceModel.ParsedTrace, callbacks: {
|
53
53
|
onShowAllTracks: () => void,
|
54
54
|
onShowTrackConfigurationMode: () => void,
|
55
55
|
onClose: () => void,
|
56
56
|
}): Trace.Types.Overlays.BottomInfoBar|null {
|
57
|
-
const status =
|
57
|
+
const status = hiddenTracksInfoBarByParsedTrace.get(parsedTrace);
|
58
58
|
if (status === 'DISMISSED') {
|
59
59
|
// The user has already seen the banner + dismissed it for this trace, so
|
60
60
|
// we don't need to do anything.
|
@@ -89,9 +89,9 @@ export function createHiddenTracksOverlay(trace: Trace.Handlers.Types.ParsedTrac
|
|
89
89
|
);
|
90
90
|
infobarForTrace.setCloseCallback(() => {
|
91
91
|
callbacks.onClose();
|
92
|
-
|
92
|
+
hiddenTracksInfoBarByParsedTrace.set(parsedTrace, 'DISMISSED');
|
93
93
|
});
|
94
94
|
|
95
|
-
|
95
|
+
hiddenTracksInfoBarByParsedTrace.set(parsedTrace, infobarForTrace);
|
96
96
|
return {type: 'BOTTOM_INFO_BAR', infobar: infobarForTrace};
|
97
97
|
}
|
@@ -39,6 +39,6 @@ export function buildPersistedConfig(groups: readonly PerfUI.FlameChart.Group[],
|
|
39
39
|
* trace with the exact same start time is very unlikely.
|
40
40
|
* It's not impossible, but unlikely enough that we think the min trace bounds time is a good enough value to use as a uuid.
|
41
41
|
*/
|
42
|
-
export function keyForTraceConfig(trace: Trace.Handlers.Types.
|
42
|
+
export function keyForTraceConfig(trace: Trace.Handlers.Types.HandlerData): Trace.Types.Timing.Micro {
|
43
43
|
return trace.Meta.traceBounds.min;
|
44
44
|
}
|
@@ -72,8 +72,8 @@ const str_ = i18n.i18n.registerUIStrings('panels/timeline/components/DetailsView
|
|
72
72
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
73
73
|
|
74
74
|
export function buildWarningElementsForEvent(
|
75
|
-
event: Trace.Types.Events.Event, parsedTrace: Trace.
|
76
|
-
const warnings = parsedTrace.Warnings.perEvent.get(event);
|
75
|
+
event: Trace.Types.Events.Event, parsedTrace: Trace.TraceModel.ParsedTrace): HTMLSpanElement[] {
|
76
|
+
const warnings = parsedTrace.data.Warnings.perEvent.get(event);
|
77
77
|
const warningElements: HTMLSpanElement[] = [];
|
78
78
|
if (!warnings) {
|
79
79
|
return warningElements;
|
@@ -130,10 +130,10 @@ export interface DetailRow {
|
|
130
130
|
}
|
131
131
|
export function buildRowsForWebSocketEvent(
|
132
132
|
event: Trace.Types.Events.WebSocketCreate|Trace.Types.Events.WebSocketInfo|Trace.Types.Events.WebSocketTransfer,
|
133
|
-
parsedTrace: Trace.
|
133
|
+
parsedTrace: Trace.TraceModel.ParsedTrace): readonly DetailRow[] {
|
134
134
|
const rows: DetailRow[] = [];
|
135
135
|
|
136
|
-
const initiator = parsedTrace.Initiators.eventToInitiator.get(event);
|
136
|
+
const initiator = parsedTrace.data.Initiators.eventToInitiator.get(event);
|
137
137
|
if (initiator && Trace.Types.Events.isWebSocketCreate(initiator)) {
|
138
138
|
// The initiator will be a WebSocketCreate, but this check helps TypeScript to understand.
|
139
139
|
rows.push({key: i18n.i18n.lockedString('URL'), value: initiator.args.data.url});
|
@@ -83,8 +83,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
83
83
|
|
84
84
|
export interface ViewInput {
|
85
85
|
event: Trace.Types.Events.SyntheticLayoutShift|Trace.Types.Events.SyntheticLayoutShiftCluster|null;
|
86
|
-
|
87
|
-
parsedTrace: Trace.Handlers.Types.ParsedTrace|null;
|
86
|
+
parsedTrace: Trace.TraceModel.ParsedTrace|null;
|
88
87
|
isFreshRecording: boolean;
|
89
88
|
togglePopover: (e: MouseEvent) => void;
|
90
89
|
onEventClick: (event: Trace.Types.Events.Event) => void;
|
@@ -93,8 +92,7 @@ export interface ViewInput {
|
|
93
92
|
export class LayoutShiftDetails extends UI.Widget.Widget {
|
94
93
|
#view: typeof DEFAULT_VIEW;
|
95
94
|
#event: Trace.Types.Events.SyntheticLayoutShift|Trace.Types.Events.SyntheticLayoutShiftCluster|null = null;
|
96
|
-
#
|
97
|
-
#parsedTrace: Trace.Handlers.Types.ParsedTrace|null = null;
|
95
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace|null = null;
|
98
96
|
#isFreshRecording = false;
|
99
97
|
|
100
98
|
constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
|
@@ -107,12 +105,7 @@ export class LayoutShiftDetails extends UI.Widget.Widget {
|
|
107
105
|
void this.requestUpdate();
|
108
106
|
}
|
109
107
|
|
110
|
-
set
|
111
|
-
this.#traceInsightsSets = traceInsightsSets;
|
112
|
-
void this.requestUpdate();
|
113
|
-
}
|
114
|
-
|
115
|
-
set parsedTrace(parsedTrace: Trace.Handlers.Types.ParsedTrace|null) {
|
108
|
+
set parsedTrace(parsedTrace: Trace.TraceModel.ParsedTrace|null) {
|
116
109
|
this.#parsedTrace = parsedTrace;
|
117
110
|
void this.requestUpdate();
|
118
111
|
}
|
@@ -154,7 +147,6 @@ export class LayoutShiftDetails extends UI.Widget.Widget {
|
|
154
147
|
this.#view(
|
155
148
|
{
|
156
149
|
event: this.#event,
|
157
|
-
traceInsightsSets: this.#traceInsightsSets,
|
158
150
|
parsedTrace: this.#parsedTrace,
|
159
151
|
isFreshRecording: this.#isFreshRecording,
|
160
152
|
togglePopover: e => this.#togglePopover(e),
|
@@ -189,9 +181,9 @@ export const DEFAULT_VIEW: (input: ViewInput, output: object, target: HTMLElemen
|
|
189
181
|
</div>
|
190
182
|
${Trace.Types.Events.isSyntheticLayoutShift(input.event) ?
|
191
183
|
renderLayoutShiftDetails(
|
192
|
-
input.event, input.
|
184
|
+
input.event, input.parsedTrace.insights, input.parsedTrace, input.isFreshRecording, input.onEventClick,
|
193
185
|
) : renderLayoutShiftClusterDetails(
|
194
|
-
input.event, input.
|
186
|
+
input.event, input.parsedTrace.insights, input.parsedTrace, input.onEventClick,
|
195
187
|
)}
|
196
188
|
</div>
|
197
189
|
</div>
|
@@ -201,7 +193,7 @@ export const DEFAULT_VIEW: (input: ViewInput, output: object, target: HTMLElemen
|
|
201
193
|
|
202
194
|
function renderLayoutShiftDetails(
|
203
195
|
layoutShift: Trace.Types.Events.SyntheticLayoutShift, traceInsightsSets: Trace.Insights.Types.TraceInsightSets|null,
|
204
|
-
parsedTrace: Trace.
|
196
|
+
parsedTrace: Trace.TraceModel.ParsedTrace, isFreshRecording: boolean,
|
205
197
|
onEventClick: (e: Trace.Types.Events.Event) => void): Lit.LitTemplate {
|
206
198
|
if (!traceInsightsSets) {
|
207
199
|
return Lit.nothing;
|
@@ -252,7 +244,7 @@ function renderLayoutShiftDetails(
|
|
252
244
|
|
253
245
|
function renderLayoutShiftClusterDetails(
|
254
246
|
cluster: Trace.Types.Events.SyntheticLayoutShiftCluster,
|
255
|
-
traceInsightsSets: Trace.Insights.Types.TraceInsightSets|null, parsedTrace: Trace.
|
247
|
+
traceInsightsSets: Trace.Insights.Types.TraceInsightSets|null, parsedTrace: Trace.TraceModel.ParsedTrace,
|
256
248
|
onEventClick: (e: Trace.Types.Events.Event) => void): Lit.LitTemplate {
|
257
249
|
if (!traceInsightsSets) {
|
258
250
|
return Lit.nothing;
|
@@ -303,7 +295,7 @@ function renderLayoutShiftClusterDetails(
|
|
303
295
|
|
304
296
|
function renderShiftRow(
|
305
297
|
currentShift: Trace.Types.Events.SyntheticLayoutShift, userHasSingleShiftSelected: boolean,
|
306
|
-
parsedTrace: Trace.
|
298
|
+
parsedTrace: Trace.TraceModel.ParsedTrace, elementsShifted: Trace.Types.Events.TraceImpactedNode[],
|
307
299
|
onEventClick: (e: Trace.Types.Events.Event) => void,
|
308
300
|
rootCauses: Trace.Insights.Models.CLSCulprits.LayoutShiftRootCausesData|undefined): Lit.LitTemplate {
|
309
301
|
const score = currentShift.args.data?.weighted_score_delta;
|
@@ -340,10 +332,10 @@ function renderShiftRow(
|
|
340
332
|
function renderStartTime(
|
341
333
|
shift: Trace.Types.Events.SyntheticLayoutShift,
|
342
334
|
userHasSingleShiftSelected: boolean,
|
343
|
-
parsedTrace: Trace.
|
335
|
+
parsedTrace: Trace.TraceModel.ParsedTrace,
|
344
336
|
onEventClick: (e: Trace.Types.Events.Event) => void,
|
345
337
|
): Lit.TemplateResult {
|
346
|
-
const ts = Trace.Types.Timing.Micro(shift.ts - parsedTrace.Meta.traceBounds.min);
|
338
|
+
const ts = Trace.Types.Timing.Micro(shift.ts - parsedTrace.data.Meta.traceBounds.min);
|
347
339
|
if (userHasSingleShiftSelected) {
|
348
340
|
return html`${i18n.TimeUtilities.preciseMillisToString(Helpers.Timing.microToMilli(ts))}`;
|
349
341
|
}
|
@@ -356,12 +348,11 @@ function renderStartTime(
|
|
356
348
|
|
357
349
|
function renderParentCluster(
|
358
350
|
cluster: Trace.Types.Events.SyntheticLayoutShiftCluster|undefined,
|
359
|
-
onEventClick: (e: Trace.Types.Events.Event) => void,
|
360
|
-
parsedTrace: Trace.Handlers.Types.ParsedTrace): Lit.LitTemplate {
|
351
|
+
onEventClick: (e: Trace.Types.Events.Event) => void, parsedTrace: Trace.TraceModel.ParsedTrace): Lit.LitTemplate {
|
361
352
|
if (!cluster) {
|
362
353
|
return Lit.nothing;
|
363
354
|
}
|
364
|
-
const ts = Trace.Types.Timing.Micro(cluster.ts - (parsedTrace
|
355
|
+
const ts = Trace.Types.Timing.Micro(cluster.ts - (parsedTrace.data.Meta.traceBounds.min ?? 0));
|
365
356
|
const clusterTs = i18n.TimeUtilities.formatMicroSecondsTime(ts);
|
366
357
|
|
367
358
|
// clang-format off
|
@@ -28,8 +28,9 @@ import * as UI from '../../../ui/legacy/legacy.js';
|
|
28
28
|
import * as Lit from '../../../ui/lit/lit.js';
|
29
29
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
30
30
|
import * as MobileThrottling from '../../mobile_throttling/mobile_throttling.js';
|
31
|
-
import {getThrottlingRecommendations
|
31
|
+
import {getThrottlingRecommendations} from '../utils/Helpers.js';
|
32
32
|
|
33
|
+
import {md} from './insights/Helpers.js';
|
33
34
|
import liveMetricsViewStyles from './liveMetricsView.css.js';
|
34
35
|
import type {MetricCardData} from './MetricCard.js';
|
35
36
|
import metricValueStyles from './metricValueStyles.css.js';
|
@@ -124,7 +124,7 @@ export class NetworkRequestDetails extends UI.Widget.Widget {
|
|
124
124
|
#target: SDK.Target.Target|null = null;
|
125
125
|
#linkifier: LegacyComponents.Linkifier.Linkifier|null = null;
|
126
126
|
#serverTimings: SDK.ServerTiming.ServerTiming[]|null = null;
|
127
|
-
#parsedTrace: Trace.
|
127
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace|null = null;
|
128
128
|
|
129
129
|
constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
|
130
130
|
super(element);
|
@@ -137,7 +137,7 @@ export class NetworkRequestDetails extends UI.Widget.Widget {
|
|
137
137
|
this.requestUpdate();
|
138
138
|
}
|
139
139
|
|
140
|
-
set parsedTrace(parsedTrace: Trace.
|
140
|
+
set parsedTrace(parsedTrace: Trace.TraceModel.ParsedTrace|null) {
|
141
141
|
this.#parsedTrace = parsedTrace;
|
142
142
|
this.requestUpdate();
|
143
143
|
}
|
@@ -192,7 +192,7 @@ export interface ViewInput {
|
|
192
192
|
entityMapper: TimelineUtils.EntityMapper.EntityMapper|null;
|
193
193
|
serverTimings: SDK.ServerTiming.ServerTiming[]|null;
|
194
194
|
linkifier: LegacyComponents.Linkifier.Linkifier|null;
|
195
|
-
parsedTrace: Trace.
|
195
|
+
parsedTrace: Trace.TraceModel.ParsedTrace|null;
|
196
196
|
}
|
197
197
|
|
198
198
|
export const DEFAULT_VIEW: (
|
@@ -428,7 +428,7 @@ function renderServerTimings(timings: SDK.ServerTiming.ServerTiming[]|null): Lit
|
|
428
428
|
}
|
429
429
|
function renderInitiatedBy(
|
430
430
|
request: Trace.Types.Events.SyntheticNetworkRequest,
|
431
|
-
parsedTrace: Trace.
|
431
|
+
parsedTrace: Trace.TraceModel.ParsedTrace|null,
|
432
432
|
target: SDK.Target.Target|null,
|
433
433
|
linkifier: LegacyComponents.Linkifier.Linkifier|null,
|
434
434
|
): Lit.LitTemplate {
|
@@ -451,7 +451,7 @@ function renderInitiatedBy(
|
|
451
451
|
}
|
452
452
|
}
|
453
453
|
// If we do not, we can see if the network handler found an initiator and try to link by URL
|
454
|
-
const initiator = parsedTrace?.NetworkRequests.eventToInitiator.get(request);
|
454
|
+
const initiator = parsedTrace?.data.NetworkRequests.eventToInitiator.get(request);
|
455
455
|
if (initiator) {
|
456
456
|
link = linkifier.maybeLinkifyScriptLocation(
|
457
457
|
target,
|
@@ -134,16 +134,11 @@ export class SidebarWidget extends UI.Widget.VBox {
|
|
134
134
|
this.#tabbedPane.setBadge('annotations', annotations.length > 0 ? annotations.length.toString() : null);
|
135
135
|
}
|
136
136
|
|
137
|
-
setParsedTrace(parsedTrace: Trace.
|
138
|
-
this.#insightsView.setParsedTrace(parsedTrace
|
139
|
-
}
|
140
|
-
|
141
|
-
setInsights(insights: Trace.Insights.Types.TraceInsightSets|null): void {
|
142
|
-
this.#insightsView.setInsights(insights);
|
143
|
-
|
137
|
+
setParsedTrace(parsedTrace: Trace.TraceModel.ParsedTrace|null): void {
|
138
|
+
this.#insightsView.setParsedTrace(parsedTrace);
|
144
139
|
this.#tabbedPane.setTabEnabled(
|
145
140
|
SidebarTabs.INSIGHTS,
|
146
|
-
insights
|
141
|
+
Boolean(parsedTrace?.insights && parsedTrace.insights.size > 0),
|
147
142
|
);
|
148
143
|
}
|
149
144
|
|
@@ -167,13 +162,8 @@ class InsightsView extends UI.Widget.VBox {
|
|
167
162
|
this.element.appendChild(this.#component);
|
168
163
|
}
|
169
164
|
|
170
|
-
setParsedTrace(parsedTrace: Trace.
|
165
|
+
setParsedTrace(parsedTrace: Trace.TraceModel.ParsedTrace|null): void {
|
171
166
|
this.#component.parsedTrace = parsedTrace;
|
172
|
-
this.#component.traceMetadata = metadata;
|
173
|
-
}
|
174
|
-
|
175
|
-
setInsights(data: Trace.Insights.Types.TraceInsightSets|null): void {
|
176
|
-
this.#component.insights = data;
|
177
167
|
}
|
178
168
|
|
179
169
|
getActiveInsight(): ActiveInsight|null {
|
@@ -20,9 +20,7 @@ const {html} = Lit;
|
|
20
20
|
|
21
21
|
export class SidebarInsightsTab extends HTMLElement {
|
22
22
|
readonly #shadow = this.attachShadow({mode: 'open'});
|
23
|
-
#parsedTrace: Trace.
|
24
|
-
#traceMetadata: Trace.Types.File.MetaData|null = null;
|
25
|
-
#insights: Trace.Insights.Types.TraceInsightSets|null = null;
|
23
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace|null = null;
|
26
24
|
#activeInsight: ActiveInsight|null = null;
|
27
25
|
#selectedCategory = Trace.Insights.Types.InsightCategory.ALL;
|
28
26
|
/**
|
@@ -35,39 +33,19 @@ export class SidebarInsightsTab extends HTMLElement {
|
|
35
33
|
|
36
34
|
// TODO(paulirish): add back a disconnectedCallback() to avoid memory leaks that doesn't cause b/372943062
|
37
35
|
|
38
|
-
set parsedTrace(data: Trace.
|
36
|
+
set parsedTrace(data: Trace.TraceModel.ParsedTrace|null) {
|
39
37
|
if (data === this.#parsedTrace) {
|
40
38
|
return;
|
41
39
|
}
|
42
|
-
this.#parsedTrace = data;
|
43
|
-
this.#selectedInsightSetKey = null;
|
44
|
-
|
45
|
-
void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#render);
|
46
|
-
}
|
47
40
|
|
48
|
-
|
49
|
-
if (data === this.#traceMetadata) {
|
50
|
-
return;
|
51
|
-
}
|
52
|
-
this.#traceMetadata = data;
|
41
|
+
this.#parsedTrace = data;
|
53
42
|
this.#selectedInsightSetKey = null;
|
54
43
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
set insights(data: Trace.Insights.Types.TraceInsightSets|null) {
|
59
|
-
if (data === this.#insights) {
|
60
|
-
return;
|
61
|
-
}
|
62
|
-
|
63
|
-
this.#selectedInsightSetKey = null;
|
64
|
-
if (!data || !this.#parsedTrace) {
|
65
|
-
return;
|
44
|
+
if (this.#parsedTrace?.insights) {
|
45
|
+
/** Select the first set. Filtering out trivial sets was done back in {@link Trace.Processor.#computeInsightsForInitialTracePeriod} */
|
46
|
+
this.#selectedInsightSetKey = [...this.#parsedTrace.insights.keys()].at(0) ?? null;
|
66
47
|
}
|
67
48
|
|
68
|
-
this.#insights = new Map(data);
|
69
|
-
/** Select the first set. Filtering out trivial sets was done back in {@link Trace.Processor.#computeInsightsForInitialTracePeriod} */
|
70
|
-
this.#selectedInsightSetKey = [...this.#insights.keys()].at(0) ?? null;
|
71
49
|
void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#render);
|
72
50
|
}
|
73
51
|
|
@@ -102,7 +80,7 @@ export class SidebarInsightsTab extends HTMLElement {
|
|
102
80
|
}
|
103
81
|
|
104
82
|
#insightSetHovered(id: string): void {
|
105
|
-
const data = this.#insights?.get(id);
|
83
|
+
const data = this.#parsedTrace?.insights?.get(id);
|
106
84
|
data && this.dispatchEvent(new Insights.SidebarInsight.InsightSetHovered(data.bounds));
|
107
85
|
}
|
108
86
|
|
@@ -112,7 +90,7 @@ export class SidebarInsightsTab extends HTMLElement {
|
|
112
90
|
|
113
91
|
#onZoomClick(event: Event, id: string): void {
|
114
92
|
event.stopPropagation();
|
115
|
-
const data = this.#insights?.get(id);
|
93
|
+
const data = this.#parsedTrace?.insights?.get(id);
|
116
94
|
if (!data) {
|
117
95
|
return;
|
118
96
|
}
|
@@ -170,27 +148,26 @@ export class SidebarInsightsTab extends HTMLElement {
|
|
170
148
|
}
|
171
149
|
|
172
150
|
#render(): void {
|
173
|
-
if (!this.#parsedTrace
|
151
|
+
if (!this.#parsedTrace?.insights) {
|
174
152
|
Lit.render(Lit.nothing, this.#shadow, {host: this});
|
175
153
|
return;
|
176
154
|
}
|
177
155
|
|
178
|
-
const
|
179
|
-
const
|
156
|
+
const insights = this.#parsedTrace.insights;
|
157
|
+
const hasMultipleInsightSets = insights.size > 1;
|
158
|
+
const labels = Utils.Helpers.createUrlLabels([...insights.values()].map(({url}) => url));
|
180
159
|
|
181
160
|
const contents =
|
182
161
|
// clang-format off
|
183
162
|
html`
|
184
163
|
<style>${sidebarInsightsTabStyles}</style>
|
185
164
|
<div class="insight-sets-wrapper">
|
186
|
-
${[...
|
165
|
+
${[...insights.values()].map(({id, url}, index) => {
|
187
166
|
const data: SidebarSingleInsightSetData = {
|
188
|
-
insights: this.#insights,
|
189
167
|
insightSetKey: id,
|
190
168
|
activeCategory: this.#selectedCategory,
|
191
169
|
activeInsight: this.#activeInsight,
|
192
170
|
parsedTrace: this.#parsedTrace,
|
193
|
-
traceMetadata: this.#traceMetadata,
|
194
171
|
};
|
195
172
|
|
196
173
|
const contents = html`
|