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
@@ -128,7 +128,7 @@ type View = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
128
128
|
|
129
129
|
export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
130
130
|
#selectorLocations: Map<string, Protocol.CSS.SourceRange[]>;
|
131
|
-
#parsedTrace: Trace.
|
131
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace|null = null;
|
132
132
|
/**
|
133
133
|
* We store the last event (or array of events) that we renderered. We do
|
134
134
|
* this because as the user zooms around the panel this view is updated,
|
@@ -141,7 +141,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
141
141
|
#view: View;
|
142
142
|
#timings: SelectorTiming[] = [];
|
143
143
|
|
144
|
-
constructor(parsedTrace: Trace.
|
144
|
+
constructor(parsedTrace: Trace.TraceModel.ParsedTrace|null, view: View = (input, _, target) => {
|
145
145
|
render(
|
146
146
|
html`
|
147
147
|
<devtools-data-grid striped name=${i18nString(UIStrings.selectorStats)}
|
@@ -297,7 +297,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
297
297
|
return;
|
298
298
|
}
|
299
299
|
|
300
|
-
const invalidatedNodes = this.#parsedTrace.SelectorStats.invalidatedNodeList;
|
300
|
+
const invalidatedNodes = this.#parsedTrace.data.SelectorStats.invalidatedNodeList;
|
301
301
|
const invalidatedNodeMap = new Map<string, {subtree: boolean, nodeList: Array<SDK.DOMModel.DOMNode|null>}>();
|
302
302
|
|
303
303
|
const frameIdBackendNodeIdsMap = new Map<String, Set<Protocol.DOM.BackendNodeId>>();
|
@@ -334,7 +334,8 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
334
334
|
}
|
335
335
|
|
336
336
|
for (const event of events) {
|
337
|
-
const selectorStats =
|
337
|
+
const selectorStats =
|
338
|
+
event ? this.#parsedTrace.data.SelectorStats.dataForUpdateLayoutEvent.get(event) : undefined;
|
338
339
|
if (!selectorStats) {
|
339
340
|
continue;
|
340
341
|
}
|
@@ -399,7 +400,8 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
399
400
|
await this.updateInvalidationCount(events);
|
400
401
|
for (let i = 0; i < events.length; i++) {
|
401
402
|
const event = events[i];
|
402
|
-
const selectorStats =
|
403
|
+
const selectorStats =
|
404
|
+
event ? this.#parsedTrace.data.SelectorStats.dataForUpdateLayoutEvent.get(event) : undefined;
|
403
405
|
if (!selectorStats) {
|
404
406
|
continue;
|
405
407
|
}
|
@@ -192,7 +192,7 @@ export class TimelineTreeView extends
|
|
192
192
|
private caseSensitiveButton: UI.Toolbar.ToolbarToggle|undefined;
|
193
193
|
private regexButton: UI.Toolbar.ToolbarToggle|undefined;
|
194
194
|
private matchWholeWord: UI.Toolbar.ToolbarToggle|undefined;
|
195
|
-
#parsedTrace: Trace.
|
195
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace|null = null;
|
196
196
|
#entityMapper: Utils.EntityMapper.EntityMapper|null = null;
|
197
197
|
#lastHighlightedEvent: HTMLElement|null = null;
|
198
198
|
eventToTreeNode = new WeakMap<Trace.Types.Events.Event, Trace.Extras.TraceTree.Node>();
|
@@ -217,7 +217,7 @@ export class TimelineTreeView extends
|
|
217
217
|
if (!this.#parsedTrace) {
|
218
218
|
return name;
|
219
219
|
}
|
220
|
-
return name + ':@' + Trace.Handlers.Helpers.getNonResolvedURL(event, this.#parsedTrace);
|
220
|
+
return name + ':@' + Trace.Handlers.Helpers.getNonResolvedURL(event, this.#parsedTrace.data);
|
221
221
|
}
|
222
222
|
|
223
223
|
setSearchableView(searchableView: UI.SearchableView.SearchableView): void {
|
@@ -226,7 +226,7 @@ export class TimelineTreeView extends
|
|
226
226
|
|
227
227
|
setModelWithEvents(
|
228
228
|
selectedEvents: Trace.Types.Events.Event[]|null,
|
229
|
-
parsedTrace: Trace.
|
229
|
+
parsedTrace: Trace.TraceModel.ParsedTrace|null = null,
|
230
230
|
entityMappings: Utils.EntityMapper.EntityMapper|null = null,
|
231
231
|
): void {
|
232
232
|
this.#parsedTrace = parsedTrace;
|
@@ -238,7 +238,7 @@ export class TimelineTreeView extends
|
|
238
238
|
entityMapper(): Utils.EntityMapper.EntityMapper|null {
|
239
239
|
return this.#entityMapper;
|
240
240
|
}
|
241
|
-
parsedTrace(): Trace.
|
241
|
+
parsedTrace(): Trace.TraceModel.ParsedTrace|null {
|
242
242
|
return this.#parsedTrace;
|
243
243
|
}
|
244
244
|
|
@@ -677,7 +677,7 @@ export class TimelineTreeView extends
|
|
677
677
|
}
|
678
678
|
const searchRegex = searchConfig.toSearchRegex();
|
679
679
|
this.searchResults = this.root.searchTree(
|
680
|
-
event => TimelineUIUtils.testContentMatching(event, searchRegex.regex, this.#parsedTrace || undefined));
|
680
|
+
event => TimelineUIUtils.testContentMatching(event, searchRegex.regex, this.#parsedTrace?.data || undefined));
|
681
681
|
this.searchableView.updateSearchMatchesCount(this.searchResults.length);
|
682
682
|
}
|
683
683
|
|
@@ -829,7 +829,7 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
|
|
829
829
|
}
|
830
830
|
const timings = event && Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
|
831
831
|
const startTime = timings?.startTime ?? 0;
|
832
|
-
value = startTime - Trace.Helpers.Timing.microToMilli(parsedTrace.Meta.traceBounds.min);
|
832
|
+
value = startTime - Trace.Helpers.Timing.microToMilli(parsedTrace.data.Meta.traceBounds.min);
|
833
833
|
} break;
|
834
834
|
case 'self':
|
835
835
|
value = this.profileNode.selfTime;
|
@@ -1017,7 +1017,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
1017
1017
|
break;
|
1018
1018
|
|
1019
1019
|
case AggregatedTimelineTreeView.GroupBy.Frame: {
|
1020
|
-
const frame = id ? this.parsedTrace()?.PageFrames.frames.get(id) : undefined;
|
1020
|
+
const frame = id ? this.parsedTrace()?.data.PageFrames.frames.get(id) : undefined;
|
1021
1021
|
const frameName = frame ? TimelineUIUtils.displayNameForFrame(frame) : i18nString(UIStrings.page);
|
1022
1022
|
return {name: frameName, color, icon: undefined};
|
1023
1023
|
}
|
@@ -1100,12 +1100,12 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
1100
1100
|
case GroupBy.URL:
|
1101
1101
|
return (event: Trace.Types.Events.Event) => {
|
1102
1102
|
const parsedTrace = this.parsedTrace();
|
1103
|
-
return parsedTrace ? Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace) ?? '' : '';
|
1103
|
+
return parsedTrace ? Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data) ?? '' : '';
|
1104
1104
|
};
|
1105
1105
|
case GroupBy.Frame:
|
1106
1106
|
return (event: Trace.Types.Events.Event) => {
|
1107
1107
|
const frameId = Trace.Helpers.Trace.frameIDForEvent(event);
|
1108
|
-
return frameId || this.parsedTrace()?.Meta.mainFrameId || '';
|
1108
|
+
return frameId || this.parsedTrace()?.data.Meta.mainFrameId || '';
|
1109
1109
|
};
|
1110
1110
|
default:
|
1111
1111
|
console.assert(false, `Unexpected aggregation setting: ${groupBy}`);
|
@@ -1121,7 +1121,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
1121
1121
|
if (!parsedTrace) {
|
1122
1122
|
return '';
|
1123
1123
|
}
|
1124
|
-
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace);
|
1124
|
+
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
|
1125
1125
|
if (!url) {
|
1126
1126
|
// We could have receiveDataEvents (that don't have a url), but that have been
|
1127
1127
|
// attributed to an entity, let's check for these. This is used for ThirdParty grouping.
|
@@ -527,7 +527,7 @@ export class TimelineUIUtils {
|
|
527
527
|
}
|
528
528
|
|
529
529
|
static testContentMatching(
|
530
|
-
traceEvent: Trace.Types.Events.Event, regExp: RegExp,
|
530
|
+
traceEvent: Trace.Types.Events.Event, regExp: RegExp, handlerData?: Trace.Handlers.Types.HandlerData): boolean {
|
531
531
|
const title = TimelineUIUtils.eventStyle(traceEvent).title;
|
532
532
|
const tokens = [title];
|
533
533
|
|
@@ -538,14 +538,14 @@ export class TimelineUIUtils {
|
|
538
538
|
// legacy model which does not have a reference to the new engine's data.
|
539
539
|
// So if we are missing the data, we just fallback to the name from the
|
540
540
|
// callFrame.
|
541
|
-
if (!
|
541
|
+
if (!handlerData?.Samples) {
|
542
542
|
tokens.push(traceEvent.callFrame.functionName);
|
543
543
|
} else {
|
544
|
-
tokens.push(Trace.Handlers.ModelHandlers.Samples.getProfileCallFunctionName(
|
544
|
+
tokens.push(Trace.Handlers.ModelHandlers.Samples.getProfileCallFunctionName(handlerData.Samples, traceEvent));
|
545
545
|
}
|
546
546
|
}
|
547
|
-
if (
|
548
|
-
const url = Trace.Handlers.Helpers.getNonResolvedURL(traceEvent,
|
547
|
+
if (handlerData) {
|
548
|
+
const url = Trace.Handlers.Helpers.getNonResolvedURL(traceEvent, handlerData);
|
549
549
|
if (url) {
|
550
550
|
tokens.push(url);
|
551
551
|
}
|
@@ -651,7 +651,7 @@ export class TimelineUIUtils {
|
|
651
651
|
|
652
652
|
static async buildDetailsNodeForTraceEvent(
|
653
653
|
event: Trace.Types.Events.Event, target: SDK.Target.Target|null, linkifier: LegacyComponents.Linkifier.Linkifier,
|
654
|
-
isFreshRecording = false, parsedTrace: Trace.
|
654
|
+
isFreshRecording = false, parsedTrace: Trace.TraceModel.ParsedTrace): Promise<Node|null> {
|
655
655
|
let details: HTMLElement|HTMLSpanElement|(Element | null)|Text|null = null;
|
656
656
|
let detailsText;
|
657
657
|
// TODO(40287735): update this code with type-safe data checks.
|
@@ -672,7 +672,7 @@ export class TimelineUIUtils {
|
|
672
672
|
case Trace.Types.Events.Name.RESOURCE_RECEIVE_DATA:
|
673
673
|
case Trace.Types.Events.Name.RESOURCE_RECEIVE_RESPONSE:
|
674
674
|
case Trace.Types.Events.Name.RESOURCE_FINISH: {
|
675
|
-
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace);
|
675
|
+
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
|
676
676
|
if (url) {
|
677
677
|
const options = {
|
678
678
|
tabStop: true,
|
@@ -914,7 +914,7 @@ export class TimelineUIUtils {
|
|
914
914
|
}
|
915
915
|
|
916
916
|
static async buildTraceEventDetails(
|
917
|
-
parsedTrace: Trace.
|
917
|
+
parsedTrace: Trace.TraceModel.ParsedTrace,
|
918
918
|
event: Trace.Types.Events.Event,
|
919
919
|
linkifier: LegacyComponents.Linkifier.Linkifier,
|
920
920
|
canShowPieChart: boolean,
|
@@ -933,7 +933,7 @@ export class TimelineUIUtils {
|
|
933
933
|
// @ts-expect-error TODO(crbug.com/1011811): Remove symbol usage.
|
934
934
|
if (typeof event[previewElementSymbol] === 'undefined') {
|
935
935
|
let previewElement: (Element|null)|null = null;
|
936
|
-
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace);
|
936
|
+
const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
|
937
937
|
if (url) {
|
938
938
|
previewElement = await LegacyComponents.ImagePreview.ImagePreview.build(url, false, {
|
939
939
|
imageAltText: LegacyComponents.ImagePreview.ImagePreview.defaultAltTextForImageURL(url),
|
@@ -965,8 +965,8 @@ export class TimelineUIUtils {
|
|
965
965
|
const unsafeEventArgs = event.args as Record<string, any>;
|
966
966
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
967
967
|
const unsafeEventData = event.args?.data as Record<string, any>;
|
968
|
-
const initiator = parsedTrace.Initiators.eventToInitiator.get(event) ?? null;
|
969
|
-
const initiatorFor = parsedTrace.Initiators.initiatorToEvents.get(event) ?? null;
|
968
|
+
const initiator = parsedTrace.data.Initiators.eventToInitiator.get(event) ?? null;
|
969
|
+
const initiatorFor = parsedTrace.data.Initiators.initiatorToEvents.get(event) ?? null;
|
970
970
|
|
971
971
|
let url: Platform.DevToolsPath.UrlString|null = null;
|
972
972
|
|
@@ -1003,7 +1003,7 @@ export class TimelineUIUtils {
|
|
1003
1003
|
contentHelper.appendElementRow(i18nString(UIStrings.details), detailContainer);
|
1004
1004
|
}
|
1005
1005
|
|
1006
|
-
if (parsedTrace.Meta.traceIsGeneric) {
|
1006
|
+
if (parsedTrace.data.Meta.traceIsGeneric) {
|
1007
1007
|
TimelineUIUtils.renderEventJson(event, contentHelper);
|
1008
1008
|
return contentHelper.fragment;
|
1009
1009
|
}
|
@@ -1223,7 +1223,7 @@ export class TimelineUIUtils {
|
|
1223
1223
|
case Trace.Types.Events.Name.DECODE_IMAGE:
|
1224
1224
|
case Trace.Types.Events.Name.DRAW_LAZY_PIXEL_REF: {
|
1225
1225
|
relatedNodeLabel = i18nString(UIStrings.ownerElement);
|
1226
|
-
url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace);
|
1226
|
+
url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
|
1227
1227
|
if (url) {
|
1228
1228
|
const options = {
|
1229
1229
|
tabStop: true,
|
@@ -1513,7 +1513,7 @@ export class TimelineUIUtils {
|
|
1513
1513
|
const stackTrace = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(event);
|
1514
1514
|
if (Trace.Types.Events.isUserTiming(event) || Trace.Types.Extensions.isSyntheticExtensionEntry(event) ||
|
1515
1515
|
Trace.Types.Events.isProfileCall(event) || initiator || initiatorFor || stackTrace ||
|
1516
|
-
parsedTrace?.Invalidations.invalidationsForEvent.get(event)) {
|
1516
|
+
parsedTrace?.data.Invalidations.invalidationsForEvent.get(event)) {
|
1517
1517
|
await TimelineUIUtils.generateCauses(event, contentHelper, parsedTrace);
|
1518
1518
|
}
|
1519
1519
|
|
@@ -1699,11 +1699,11 @@ export class TimelineUIUtils {
|
|
1699
1699
|
|
1700
1700
|
static async generateCauses(
|
1701
1701
|
event: Trace.Types.Events.Event, contentHelper: TimelineDetailsContentHelper,
|
1702
|
-
parsedTrace: Trace.
|
1702
|
+
parsedTrace: Trace.TraceModel.ParsedTrace): Promise<void> {
|
1703
1703
|
const {startTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
|
1704
1704
|
let initiatorStackLabel = i18nString(UIStrings.initiatorStackTrace);
|
1705
1705
|
let stackLabel = i18nString(UIStrings.stackTrace);
|
1706
|
-
const stackTraceForEvent = Trace.Extras.StackTraceForEvent.get(event, parsedTrace);
|
1706
|
+
const stackTraceForEvent = Trace.Extras.StackTraceForEvent.get(event, parsedTrace.data);
|
1707
1707
|
if (stackTraceForEvent?.callFrames.length || stackTraceForEvent?.description || stackTraceForEvent?.parent) {
|
1708
1708
|
contentHelper.addSection(i18nString(UIStrings.stackTrace));
|
1709
1709
|
contentHelper.createChildStackTraceElement(stackTraceForEvent);
|
@@ -1736,9 +1736,9 @@ export class TimelineUIUtils {
|
|
1736
1736
|
break;
|
1737
1737
|
}
|
1738
1738
|
|
1739
|
-
const initiator = parsedTrace.Initiators.eventToInitiator.get(event);
|
1740
|
-
const initiatorFor = parsedTrace.Initiators.initiatorToEvents.get(event);
|
1741
|
-
const invalidations = parsedTrace.Invalidations.invalidationsForEvent.get(event);
|
1739
|
+
const initiator = parsedTrace.data.Initiators.eventToInitiator.get(event);
|
1740
|
+
const initiatorFor = parsedTrace.data.Initiators.initiatorToEvents.get(event);
|
1741
|
+
const invalidations = parsedTrace.data.Invalidations.invalidationsForEvent.get(event);
|
1742
1742
|
|
1743
1743
|
if (initiator) {
|
1744
1744
|
// If we have an initiator for the event, we can show its stack trace, a link to reveal the initiator,
|
@@ -1776,7 +1776,7 @@ export class TimelineUIUtils {
|
|
1776
1776
|
}
|
1777
1777
|
|
1778
1778
|
if (invalidations?.length) {
|
1779
|
-
const totalInvalidations = parsedTrace.Invalidations.invalidationCountForEvent.get(event) ??
|
1779
|
+
const totalInvalidations = parsedTrace.data.Invalidations.invalidationCountForEvent.get(event) ??
|
1780
1780
|
0; // Won't be 0, but saves us dealing with undefined.
|
1781
1781
|
contentHelper.addSection(i18nString(UIStrings.invalidations, {PH1: totalInvalidations}));
|
1782
1782
|
await TimelineUIUtils.generateInvalidationsList(invalidations, contentHelper);
|
@@ -1908,9 +1908,9 @@ export class TimelineUIUtils {
|
|
1908
1908
|
|
1909
1909
|
/** Populates the passed object then returns true/false if it makes sense to show the pie chart */
|
1910
1910
|
private static aggregatedStatsForTraceEvent(
|
1911
|
-
total: TimeRangeCategoryStats, parsedTrace: Trace.
|
1911
|
+
total: TimeRangeCategoryStats, parsedTrace: Trace.TraceModel.ParsedTrace,
|
1912
1912
|
event: Trace.Types.Events.Event): boolean {
|
1913
|
-
const node = parsedTrace.Renderer.entryToNode.get(event);
|
1913
|
+
const node = parsedTrace.data.Renderer.entryToNode.get(event);
|
1914
1914
|
if (!node) {
|
1915
1915
|
return false;
|
1916
1916
|
}
|
@@ -1959,9 +1959,9 @@ export class TimelineUIUtils {
|
|
1959
1959
|
}
|
1960
1960
|
|
1961
1961
|
static async buildPicturePreviewContent(
|
1962
|
-
parsedTrace: Trace.
|
1962
|
+
parsedTrace: Trace.TraceModel.ParsedTrace, event: Trace.Types.Events.Paint,
|
1963
1963
|
target: SDK.Target.Target): Promise<Element|null> {
|
1964
|
-
const snapshotEvent = parsedTrace.LayerTree.paintsToSnapshots.get(event);
|
1964
|
+
const snapshotEvent = parsedTrace.data.LayerTree.paintsToSnapshots.get(event);
|
1965
1965
|
if (!snapshotEvent) {
|
1966
1966
|
return null;
|
1967
1967
|
}
|
@@ -2308,7 +2308,7 @@ export class TimelineUIUtils {
|
|
2308
2308
|
}
|
2309
2309
|
|
2310
2310
|
static getOriginWithEntity(
|
2311
|
-
entityMapper: Utils.EntityMapper.EntityMapper|null, parsedTrace: Trace.
|
2311
|
+
entityMapper: Utils.EntityMapper.EntityMapper|null, parsedTrace: Trace.TraceModel.ParsedTrace,
|
2312
2312
|
event: Trace.Types.Events.Event): string|null {
|
2313
2313
|
const resolvedURL = Utils.SourceMapsResolver.SourceMapsResolver.resolvedURLForEntry(parsedTrace, event);
|
2314
2314
|
if (!resolvedURL) {
|
@@ -2347,7 +2347,7 @@ export class EventDispatchTypeDescriptor {
|
|
2347
2347
|
|
2348
2348
|
export class TimelineDetailsContentHelper {
|
2349
2349
|
fragment: DocumentFragment;
|
2350
|
-
|
2350
|
+
#linkifier: LegacyComponents.Linkifier.Linkifier|null;
|
2351
2351
|
private target: SDK.Target.Target|null;
|
2352
2352
|
element: HTMLDivElement;
|
2353
2353
|
private tableElement: HTMLElement;
|
@@ -2355,7 +2355,7 @@ export class TimelineDetailsContentHelper {
|
|
2355
2355
|
constructor(target: SDK.Target.Target|null, linkifier: LegacyComponents.Linkifier.Linkifier|null) {
|
2356
2356
|
this.fragment = document.createDocumentFragment();
|
2357
2357
|
|
2358
|
-
this
|
2358
|
+
this.#linkifier = linkifier;
|
2359
2359
|
this.target = target;
|
2360
2360
|
|
2361
2361
|
this.element = document.createElement('div');
|
@@ -2386,7 +2386,7 @@ export class TimelineDetailsContentHelper {
|
|
2386
2386
|
}
|
2387
2387
|
|
2388
2388
|
linkifier(): LegacyComponents.Linkifier.Linkifier|null {
|
2389
|
-
return this
|
2389
|
+
return this.#linkifier;
|
2390
2390
|
}
|
2391
2391
|
|
2392
2392
|
appendTextRow(title: string, value: string|number|boolean): void {
|
@@ -2416,7 +2416,7 @@ export class TimelineDetailsContentHelper {
|
|
2416
2416
|
|
2417
2417
|
appendLocationRow(
|
2418
2418
|
title: string, url: string, startLine: number, startColumn?: number, text?: string, omitOrigin?: boolean): void {
|
2419
|
-
if (!this
|
2419
|
+
if (!this.#linkifier) {
|
2420
2420
|
return;
|
2421
2421
|
}
|
2422
2422
|
|
@@ -2428,7 +2428,7 @@ export class TimelineDetailsContentHelper {
|
|
2428
2428
|
text,
|
2429
2429
|
omitOrigin,
|
2430
2430
|
};
|
2431
|
-
const link = this.
|
2431
|
+
const link = this.#linkifier.maybeLinkifyScriptLocation(
|
2432
2432
|
this.target, null, url as Platform.DevToolsPath.UrlString, startLine, options);
|
2433
2433
|
if (!link) {
|
2434
2434
|
return;
|
@@ -2437,11 +2437,11 @@ export class TimelineDetailsContentHelper {
|
|
2437
2437
|
}
|
2438
2438
|
|
2439
2439
|
appendLocationRange(title: string, url: Platform.DevToolsPath.UrlString, startLine: number, endLine?: number): void {
|
2440
|
-
if (!this
|
2440
|
+
if (!this.#linkifier || !this.target) {
|
2441
2441
|
return;
|
2442
2442
|
}
|
2443
2443
|
const locationContent = document.createElement('span');
|
2444
|
-
const link = this.
|
2444
|
+
const link = this.#linkifier.maybeLinkifyScriptLocation(
|
2445
2445
|
this.target, null, url, startLine, {tabStop: true, inlineFrameIndex: 0});
|
2446
2446
|
if (!link) {
|
2447
2447
|
return;
|
@@ -2453,7 +2453,7 @@ export class TimelineDetailsContentHelper {
|
|
2453
2453
|
}
|
2454
2454
|
|
2455
2455
|
createChildStackTraceElement(stackTrace: Protocol.Runtime.StackTrace): void {
|
2456
|
-
if (!this
|
2456
|
+
if (!this.#linkifier) {
|
2457
2457
|
return;
|
2458
2458
|
}
|
2459
2459
|
const resolvedStackTrace: Protocol.Runtime.StackTrace = structuredClone(stackTrace);
|
@@ -2471,7 +2471,7 @@ export class TimelineDetailsContentHelper {
|
|
2471
2471
|
const stackTraceElement =
|
2472
2472
|
this.tableElement.createChild('div', 'timeline-details-view-row timeline-details-stack-values');
|
2473
2473
|
const callFrameContents = new LegacyComponents.JSPresentationUtils.StackTracePreviewContent(
|
2474
|
-
undefined, this.target ?? undefined, this
|
2474
|
+
undefined, this.target ?? undefined, this.#linkifier,
|
2475
2475
|
{stackTrace: resolvedStackTrace, tabStops: true, showColumnNumber: true});
|
2476
2476
|
callFrameContents.markAsRoot();
|
2477
2477
|
callFrameContents.show(stackTraceElement);
|
@@ -2495,7 +2495,7 @@ export interface TimelineMarkerStyle {
|
|
2495
2495
|
* the LCP (for example) relative to the last navigation.
|
2496
2496
|
**/
|
2497
2497
|
export function timeStampForEventAdjustedForClosestNavigationIfPossible(
|
2498
|
-
event: Trace.Types.Events.Event, parsedTrace: Trace.
|
2498
|
+
event: Trace.Types.Events.Event, parsedTrace: Trace.TraceModel.ParsedTrace|null): Trace.Types.Timing.Milli {
|
2499
2499
|
if (!parsedTrace) {
|
2500
2500
|
const {startTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
|
2501
2501
|
return startTime;
|
@@ -2503,9 +2503,9 @@ export function timeStampForEventAdjustedForClosestNavigationIfPossible(
|
|
2503
2503
|
|
2504
2504
|
const time = Trace.Helpers.Timing.timeStampForEventAdjustedByClosestNavigation(
|
2505
2505
|
event,
|
2506
|
-
parsedTrace.Meta.traceBounds,
|
2507
|
-
parsedTrace.Meta.navigationsByNavigationId,
|
2508
|
-
parsedTrace.Meta.navigationsByFrameId,
|
2506
|
+
parsedTrace.data.Meta.traceBounds,
|
2507
|
+
parsedTrace.data.Meta.navigationsByNavigationId,
|
2508
|
+
parsedTrace.data.Meta.navigationsByFrameId,
|
2509
2509
|
);
|
2510
2510
|
return Trace.Helpers.Timing.microToMilli(time);
|
2511
2511
|
}
|
@@ -2516,7 +2516,7 @@ export function timeStampForEventAdjustedForClosestNavigationIfPossible(
|
|
2516
2516
|
* the LCP time. This method does not filter out events: for example, it treats
|
2517
2517
|
* every LCP Candidate event as a potential marker event.
|
2518
2518
|
**/
|
2519
|
-
export function isMarkerEvent(parsedTrace: Trace.
|
2519
|
+
export function isMarkerEvent(parsedTrace: Trace.TraceModel.ParsedTrace, event: Trace.Types.Events.Event): boolean {
|
2520
2520
|
const {Name} = Trace.Types.Events;
|
2521
2521
|
|
2522
2522
|
if (event.name === Name.TIME_STAMP || event.name === Name.NAVIGATION_START) {
|
@@ -2524,7 +2524,7 @@ export function isMarkerEvent(parsedTrace: Trace.Handlers.Types.ParsedTrace, eve
|
|
2524
2524
|
}
|
2525
2525
|
|
2526
2526
|
if (Trace.Types.Events.isFirstContentfulPaint(event) || Trace.Types.Events.isFirstPaint(event)) {
|
2527
|
-
return event.args.frame === parsedTrace.Meta.mainFrameId;
|
2527
|
+
return event.args.frame === parsedTrace.data.Meta.mainFrameId;
|
2528
2528
|
}
|
2529
2529
|
|
2530
2530
|
if (Trace.Types.Events.isMarkDOMContent(event) || Trace.Types.Events.isMarkLoad(event) ||
|
@@ -2548,10 +2548,10 @@ export function isMarkerEvent(parsedTrace: Trace.Handlers.Types.ParsedTrace, eve
|
|
2548
2548
|
}
|
2549
2549
|
|
2550
2550
|
function getEventSelfTime(
|
2551
|
-
event: Trace.Types.Events.Event, parsedTrace: Trace.
|
2551
|
+
event: Trace.Types.Events.Event, parsedTrace: Trace.TraceModel.ParsedTrace): Trace.Types.Timing.Micro {
|
2552
2552
|
const mapToUse = Trace.Types.Extensions.isSyntheticExtensionEntry(event) ?
|
2553
|
-
parsedTrace.ExtensionTraceData.entryToNode :
|
2554
|
-
parsedTrace.Renderer.entryToNode;
|
2553
|
+
parsedTrace.data.ExtensionTraceData.entryToNode :
|
2554
|
+
parsedTrace.data.Renderer.entryToNode;
|
2555
2555
|
const selfTime = mapToUse.get(event)?.selfTime;
|
2556
2556
|
return selfTime ? selfTime : Trace.Types.Timing.Micro(0);
|
2557
2557
|
}
|
@@ -48,16 +48,16 @@ export class TimingsTrackAppender implements TrackAppender {
|
|
48
48
|
|
49
49
|
#colorGenerator: Common.Color.Generator;
|
50
50
|
#compatibilityBuilder: CompatibilityTracksAppender;
|
51
|
-
#parsedTrace: Readonly<Trace.
|
51
|
+
#parsedTrace: Readonly<Trace.TraceModel.ParsedTrace>;
|
52
52
|
#extensionMarkers: readonly Trace.Types.Extensions.SyntheticExtensionMarker[];
|
53
53
|
constructor(
|
54
|
-
compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.
|
54
|
+
compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.TraceModel.ParsedTrace,
|
55
55
|
colorGenerator: Common.Color.Generator) {
|
56
56
|
this.#compatibilityBuilder = compatibilityBuilder;
|
57
57
|
this.#colorGenerator = colorGenerator;
|
58
58
|
this.#parsedTrace = parsedTrace;
|
59
59
|
const extensionDataEnabled = TimelinePanel.extensionDataVisibilitySetting().get();
|
60
|
-
this.#extensionMarkers = extensionDataEnabled ? this.#parsedTrace.ExtensionTraceData.extensionMarkers : [];
|
60
|
+
this.#extensionMarkers = extensionDataEnabled ? this.#parsedTrace.data.ExtensionTraceData.extensionMarkers : [];
|
61
61
|
}
|
62
62
|
|
63
63
|
/**
|
@@ -71,14 +71,14 @@ export class TimingsTrackAppender implements TrackAppender {
|
|
71
71
|
*/
|
72
72
|
appendTrackAtLevel(trackStartLevel: number, expanded?: boolean): number {
|
73
73
|
const extensionMarkersAreEmpty = this.#extensionMarkers.length === 0;
|
74
|
-
const performanceMarks = this.#parsedTrace.UserTimings.performanceMarks.filter(
|
74
|
+
const performanceMarks = this.#parsedTrace.data.UserTimings.performanceMarks.filter(
|
75
75
|
m => !Trace.Handlers.ModelHandlers.ExtensionTraceData.extensionDataInPerformanceTiming(m).devtoolsObj);
|
76
|
-
const performanceMeasures = this.#parsedTrace.UserTimings.performanceMeasures.filter(
|
76
|
+
const performanceMeasures = this.#parsedTrace.data.UserTimings.performanceMeasures.filter(
|
77
77
|
m => !Trace.Handlers.ModelHandlers.ExtensionTraceData.extensionDataInPerformanceTiming(m).devtoolsObj);
|
78
|
-
const timestampEvents = this.#parsedTrace.UserTimings.timestampEvents.filter(
|
78
|
+
const timestampEvents = this.#parsedTrace.data.UserTimings.timestampEvents.filter(
|
79
79
|
timeStamp =>
|
80
80
|
!Trace.Handlers.ModelHandlers.ExtensionTraceData.extensionDataInConsoleTimeStamp(timeStamp).devtoolsObj);
|
81
|
-
const consoleTimings = this.#parsedTrace.UserTimings.consoleTimings;
|
81
|
+
const consoleTimings = this.#parsedTrace.data.UserTimings.consoleTimings;
|
82
82
|
if (extensionMarkersAreEmpty && performanceMarks.length === 0 && performanceMeasures.length === 0 &&
|
83
83
|
timestampEvents.length === 0 && consoleTimings.length === 0) {
|
84
84
|
return trackStartLevel;
|
@@ -101,7 +101,7 @@ export class TimingsTrackAppender implements TrackAppender {
|
|
101
101
|
* appended.
|
102
102
|
*/
|
103
103
|
#appendTrackHeaderAtLevel(currentLevel: number, expanded?: boolean): void {
|
104
|
-
const trackIsCollapsible = this.#parsedTrace.UserTimings.performanceMeasures.length > 0;
|
104
|
+
const trackIsCollapsible = this.#parsedTrace.data.UserTimings.performanceMeasures.length > 0;
|
105
105
|
const style = buildGroupStyle({useFirstLineForOverview: true, collapsible: trackIsCollapsible});
|
106
106
|
const group = buildTrackHeader(
|
107
107
|
VisualLoggingTrackName.TIMINGS, currentLevel, i18nString(UIStrings.timings), style, /* selectable= */ true,
|
@@ -127,7 +127,7 @@ export class TimingsTrackAppender implements TrackAppender {
|
|
127
127
|
this.#compatibilityBuilder.getFlameChartTimelineData().entryTotalTimes[index] = Number.NaN;
|
128
128
|
}
|
129
129
|
|
130
|
-
const minTimeMs = Trace.Helpers.Timing.microToMilli(this.#parsedTrace.Meta.traceBounds.min);
|
130
|
+
const minTimeMs = Trace.Helpers.Timing.microToMilli(this.#parsedTrace.data.Meta.traceBounds.min);
|
131
131
|
const flameChartMarkers = markers.map(marker => {
|
132
132
|
// The timestamp for user timing trace events is set to the
|
133
133
|
// start time passed by the user at the call site of the timing
|
@@ -272,9 +272,9 @@ export class TimingsTrackAppender implements TrackAppender {
|
|
272
272
|
Trace.Types.Events.isConsoleTimeStamp(event) || isExtensibilityMarker) {
|
273
273
|
const timeOfEvent = Trace.Helpers.Timing.timeStampForEventAdjustedByClosestNavigation(
|
274
274
|
event,
|
275
|
-
this.#parsedTrace.Meta.traceBounds,
|
276
|
-
this.#parsedTrace.Meta.navigationsByNavigationId,
|
277
|
-
this.#parsedTrace.Meta.navigationsByFrameId,
|
275
|
+
this.#parsedTrace.data.Meta.traceBounds,
|
276
|
+
this.#parsedTrace.data.Meta.navigationsByNavigationId,
|
277
|
+
this.#parsedTrace.data.Meta.navigationsByFrameId,
|
278
278
|
);
|
279
279
|
info.formattedTime = getDurationString(timeOfEvent);
|
280
280
|
}
|