chrome-devtools-frontend 1.0.1512147 → 1.0.1513662
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/front_end/Images/src/ai-explorer-badge.svg +114 -0
- package/front_end/Images/src/code-whisperer-badge.svg +166 -0
- package/front_end/Images/src/devtools-user-badge.svg +129 -0
- package/front_end/Images/src/dom-detective-badge.svg +136 -0
- package/front_end/Images/src/speedster-badge.svg +166 -0
- package/front_end/core/common/Color.ts +40 -44
- package/front_end/core/common/Console.ts +4 -4
- package/front_end/core/common/ParsedURL.ts +14 -14
- package/front_end/core/common/ResourceType.ts +20 -20
- package/front_end/core/common/SegmentedRange.ts +13 -14
- package/front_end/core/common/Settings.ts +4 -4
- package/front_end/core/common/StringOutputStream.ts +4 -4
- package/front_end/core/host/GdpClient.ts +76 -2
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
- package/front_end/core/host/ResourceLoader.ts +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -2
- package/front_end/core/i18n/NumberFormatter.ts +7 -0
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +5 -2
- package/front_end/core/sdk/AccessibilityModel.ts +48 -48
- package/front_end/core/sdk/AnimationModel.ts +78 -79
- package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
- package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
- package/front_end/core/sdk/CSSMedia.ts +22 -22
- package/front_end/core/sdk/CSSModel.ts +4 -4
- package/front_end/core/sdk/CSSProperty.ts +9 -9
- package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
- package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
- package/front_end/core/sdk/ChildTargetManager.ts +6 -6
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
- package/front_end/core/sdk/ConsoleModel.ts +24 -24
- package/front_end/core/sdk/Cookie.ts +16 -16
- package/front_end/core/sdk/CookieParser.ts +6 -6
- package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
- package/front_end/core/sdk/DOMModel.ts +113 -113
- package/front_end/core/sdk/DebuggerModel.ts +102 -103
- package/front_end/core/sdk/EmulationModel.ts +6 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
- package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
- package/front_end/core/sdk/IsolateManager.ts +26 -26
- package/front_end/core/sdk/LayerTreeBase.ts +29 -30
- package/front_end/core/sdk/OverlayModel.ts +6 -6
- package/front_end/core/sdk/Resource.ts +43 -43
- package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
- package/front_end/core/sdk/RuntimeModel.ts +12 -13
- package/front_end/core/sdk/SDKModel.ts +3 -3
- package/front_end/core/sdk/Script.ts +17 -17
- package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
- package/front_end/core/sdk/ServerTiming.ts +2 -2
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
- package/front_end/core/sdk/SourceMap.ts +10 -10
- package/front_end/core/sdk/StorageKeyManager.ts +12 -12
- package/front_end/core/sdk/Target.ts +33 -34
- package/front_end/core/sdk/TargetManager.ts +20 -20
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
- package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
- package/front_end/entrypoints/main/MainImpl.ts +16 -14
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +20 -0
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +20 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +10 -9
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
- package/front_end/models/badges/SpeedsterBadge.ts +7 -2
- package/front_end/models/badges/StarterBadge.ts +6 -1
- package/front_end/models/badges/UserBadges.ts +61 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
- package/front_end/models/bindings/FileUtils.ts +15 -15
- package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
- package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
- package/front_end/models/emulation/DeviceModeModel.ts +123 -131
- package/front_end/models/emulation/EmulatedDevices.ts +22 -22
- package/front_end/models/extensions/ExtensionPanel.ts +24 -24
- package/front_end/models/extensions/ExtensionServer.ts +4 -4
- package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
- package/front_end/models/trace/EventsSerializer.ts +5 -5
- package/front_end/models/trace/LanternComputationData.ts +10 -10
- package/front_end/models/trace/ModelImpl.ts +32 -54
- package/front_end/models/trace/Processor.ts +28 -30
- package/front_end/models/trace/extras/FilmStrip.ts +6 -6
- package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
- package/front_end/models/trace/extras/ThirdParties.ts +16 -17
- package/front_end/models/trace/extras/TraceFilter.ts +1 -1
- package/front_end/models/trace/handlers/Threads.ts +10 -10
- package/front_end/models/trace/handlers/helpers.ts +9 -9
- package/front_end/models/trace/handlers/types.ts +3 -3
- package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
- package/front_end/models/trace/insights/Cache.ts +8 -4
- package/front_end/models/trace/insights/DOMSize.ts +8 -5
- package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
- package/front_end/models/trace/insights/FontDisplay.ts +3 -4
- package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
- package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
- package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
- package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
- package/front_end/models/trace/insights/ThirdParties.ts +4 -5
- package/front_end/models/trace/insights/Viewport.ts +8 -5
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +5 -5
- package/front_end/panels/animation/AnimationUI.ts +22 -23
- package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
- package/front_end/panels/application/DOMStorageModel.ts +23 -23
- package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
- package/front_end/panels/application/IndexedDBModel.ts +1 -0
- package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
- package/front_end/panels/application/ServiceWorkersView.ts +0 -53
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
- package/front_end/panels/common/BadgeNotification.ts +140 -10
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +30 -9
- package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.ts +8 -5
- package/front_end/panels/console/ConsoleView.ts +13 -13
- package/front_end/panels/console/ConsoleViewport.ts +29 -29
- package/front_end/panels/coverage/CoverageModel.ts +22 -22
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
- package/front_end/panels/elements/DOMPath.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +13 -13
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
- package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
- package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
- package/front_end/panels/emulation/DeviceModeView.ts +6 -6
- package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
- package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
- package/front_end/panels/layer_viewer/TransformController.ts +34 -36
- package/front_end/panels/layers/LayerTreeModel.ts +41 -40
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
- package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
- package/front_end/panels/media/PlayerMessagesView.ts +5 -5
- package/front_end/panels/media/TickingFlameChart.ts +24 -24
- package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
- package/front_end/panels/network/NetworkItemView.ts +4 -4
- package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
- package/front_end/panels/network/NetworkPanel.ts +8 -5
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +25 -25
- package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
- package/front_end/panels/security/OriginTreeElement.ts +8 -8
- package/front_end/panels/security/SecurityPanel.ts +5 -5
- package/front_end/panels/settings/SettingsScreen.ts +18 -18
- package/front_end/panels/settings/components/SyncSection.ts +26 -8
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
- package/front_end/panels/sources/NavigatorView.ts +43 -46
- package/front_end/panels/sources/SourcesPanel.ts +35 -35
- package/front_end/panels/sources/SourcesView.ts +13 -13
- package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
- package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
- package/front_end/panels/timeline/CountersGraph.ts +16 -16
- package/front_end/panels/timeline/EntriesFilter.ts +4 -3
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
- package/front_end/panels/timeline/ModificationsManager.ts +8 -15
- package/front_end/panels/timeline/TargetForEvent.ts +2 -2
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
- package/front_end/panels/timeline/ThreadAppender.ts +13 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
- package/front_end/panels/timeline/TimelineFilters.ts +5 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
- package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
- package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
- package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
- package/front_end/panels/timeline/TimelinePanel.ts +73 -68
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
- package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
- package/front_end/panels/timeline/components/Sidebar.ts +4 -14
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
- package/front_end/panels/timeline/utils/AIContext.ts +17 -19
- package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
- package/front_end/panels/timeline/utils/EntryName.ts +2 -2
- package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
- package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
- package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
- package/front_end/panels/timeline/utils/Helpers.ts +0 -18
- package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +6 -7
- package/front_end/ui/legacy/ActionRegistration.ts +9 -9
- package/front_end/ui/legacy/DockController.ts +18 -18
- package/front_end/ui/legacy/FilterBar.ts +7 -7
- package/front_end/ui/legacy/Fragment.ts +4 -4
- package/front_end/ui/legacy/GlassPane.ts +12 -12
- package/front_end/ui/legacy/InspectorView.ts +5 -15
- package/front_end/ui/legacy/ListControl.ts +27 -27
- package/front_end/ui/legacy/ListWidget.ts +4 -4
- package/front_end/ui/legacy/PopoverHelper.ts +4 -4
- package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
- package/front_end/ui/legacy/TabbedPane.ts +74 -75
- package/front_end/ui/legacy/TextPrompt.ts +31 -31
- package/front_end/ui/legacy/Toolbar.ts +13 -14
- package/front_end/ui/legacy/ViewManager.ts +30 -31
- package/front_end/ui/legacy/Widget.ts +6 -6
- package/front_end/ui/legacy/XLink.ts +9 -9
- package/front_end/ui/legacy/ZoomManager.ts +9 -9
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -307,10 +307,10 @@ export class WatchExpressionsSidebarPane extends UI.ThrottledWidget.ThrottledWid
|
|
307
307
|
}
|
308
308
|
|
309
309
|
export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
|
310
|
-
|
310
|
+
#treeElement!: UI.TreeOutline.TreeElement;
|
311
311
|
private nameElement!: Element;
|
312
312
|
private valueElement!: Element;
|
313
|
-
|
313
|
+
#expression: string|null;
|
314
314
|
private readonly expandController: ObjectUI.ObjectPropertiesSection.ObjectPropertiesSectionsTreeExpandController;
|
315
315
|
private element: HTMLDivElement;
|
316
316
|
private editing: boolean;
|
@@ -324,7 +324,7 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
324
324
|
linkifier: Components.Linkifier.Linkifier) {
|
325
325
|
super();
|
326
326
|
|
327
|
-
this
|
327
|
+
this.#expression = expression;
|
328
328
|
this.expandController = expandController;
|
329
329
|
this.element = document.createElement('div');
|
330
330
|
this.element.classList.add('watch-expression');
|
@@ -337,11 +337,11 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
337
337
|
}
|
338
338
|
|
339
339
|
treeElement(): UI.TreeOutline.TreeElement {
|
340
|
-
return this
|
340
|
+
return this.#treeElement;
|
341
341
|
}
|
342
342
|
|
343
343
|
expression(): string|null {
|
344
|
-
return this
|
344
|
+
return this.#expression;
|
345
345
|
}
|
346
346
|
|
347
347
|
async #evaluateExpression(executionContext: SDK.RuntimeModel.ExecutionContext, expression: string):
|
@@ -371,8 +371,8 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
371
371
|
|
372
372
|
update(): void {
|
373
373
|
const currentExecutionContext = UI.Context.Context.instance().flavor(SDK.RuntimeModel.ExecutionContext);
|
374
|
-
if (currentExecutionContext && this
|
375
|
-
void this.#evaluateExpression(currentExecutionContext, this
|
374
|
+
if (currentExecutionContext && this.#expression) {
|
375
|
+
void this.#evaluateExpression(currentExecutionContext, this.#expression).then(result => {
|
376
376
|
if ('object' in result) {
|
377
377
|
this.createWatchExpression(result.object, result.exceptionDetails);
|
378
378
|
} else {
|
@@ -386,15 +386,15 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
386
386
|
|
387
387
|
startEditing(): void {
|
388
388
|
this.editing = true;
|
389
|
-
this.
|
389
|
+
this.#treeElement.setDisableSelectFocus(true);
|
390
390
|
this.element.removeChildren();
|
391
391
|
const newDiv = this.element.createChild('div');
|
392
392
|
newDiv.textContent = this.nameElement.textContent;
|
393
393
|
this.textPrompt = new ObjectUI.ObjectPropertiesSection.ObjectPropertyPrompt();
|
394
394
|
this.textPrompt.renderAsBlock();
|
395
395
|
const proxyElement = (this.textPrompt.attachAndStartEditing(newDiv, this.finishEditing.bind(this)) as HTMLElement);
|
396
|
-
this.
|
397
|
-
this.
|
396
|
+
this.#treeElement.listItemElement.classList.add('watch-expression-editing');
|
397
|
+
this.#treeElement.collapse();
|
398
398
|
proxyElement.classList.add('watch-expression-text-prompt-proxy');
|
399
399
|
proxyElement.addEventListener('keydown', this.promptKeyDown.bind(this), false);
|
400
400
|
const selection = this.element.getComponentSelection();
|
@@ -413,11 +413,11 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
413
413
|
}
|
414
414
|
|
415
415
|
this.editing = false;
|
416
|
-
this.
|
417
|
-
this.
|
416
|
+
this.#treeElement.setDisableSelectFocus(false);
|
417
|
+
this.#treeElement.listItemElement.classList.remove('watch-expression-editing');
|
418
418
|
if (this.textPrompt) {
|
419
419
|
this.textPrompt.detach();
|
420
|
-
const newExpression = canceled ? this
|
420
|
+
const newExpression = canceled ? this.#expression : this.textPrompt.text();
|
421
421
|
this.textPrompt = undefined;
|
422
422
|
this.element.removeChildren();
|
423
423
|
this.updateExpression(newExpression);
|
@@ -432,10 +432,10 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
432
432
|
}
|
433
433
|
|
434
434
|
private updateExpression(newExpression: string|null): void {
|
435
|
-
if (this
|
436
|
-
this.expandController.stopWatchSectionsWithId(this
|
435
|
+
if (this.#expression) {
|
436
|
+
this.expandController.stopWatchSectionsWithId(this.#expression);
|
437
437
|
}
|
438
|
-
this
|
438
|
+
this.#expression = newExpression;
|
439
439
|
this.update();
|
440
440
|
this.dispatchEventToListeners(Events.EXPRESSION_UPDATED, this);
|
441
441
|
}
|
@@ -451,15 +451,15 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
451
451
|
this.result = result || null;
|
452
452
|
|
453
453
|
this.element.removeChildren();
|
454
|
-
const oldTreeElement = this
|
454
|
+
const oldTreeElement = this.#treeElement;
|
455
455
|
this.createWatchExpressionTreeElement(result, exceptionDetails);
|
456
456
|
if (oldTreeElement?.parent) {
|
457
457
|
const root = oldTreeElement.parent;
|
458
458
|
const index = root.indexOfChild(oldTreeElement);
|
459
459
|
root.removeChild(oldTreeElement);
|
460
|
-
root.insertChild(this
|
460
|
+
root.insertChild(this.#treeElement, index);
|
461
461
|
}
|
462
|
-
this.
|
462
|
+
this.#treeElement.select();
|
463
463
|
}
|
464
464
|
|
465
465
|
private createWatchExpressionHeader(
|
@@ -483,9 +483,8 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
483
483
|
|
484
484
|
const titleElement = headerElement.createChild('div', 'watch-expression-title tree-element-title');
|
485
485
|
titleElement.appendChild(deleteButton);
|
486
|
-
this.nameElement =
|
487
|
-
|
488
|
-
UI.Tooltip.Tooltip.install(this.nameElement as HTMLElement, this.expressionInternal);
|
486
|
+
this.nameElement = ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.createNameElement(this.#expression);
|
487
|
+
UI.Tooltip.Tooltip.install(this.nameElement as HTMLElement, this.#expression);
|
489
488
|
if (Boolean(exceptionDetails) || !expressionValue) {
|
490
489
|
this.valueElement = document.createElement('span');
|
491
490
|
this.valueElement.classList.add('watch-expression-error');
|
@@ -515,20 +514,19 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
515
514
|
|
516
515
|
if (!exceptionDetails && expressionValue && expressionValue.hasChildren && !expressionValue.customPreview()) {
|
517
516
|
headerElement.classList.add('watch-expression-object-header');
|
518
|
-
this
|
517
|
+
this.#treeElement = new ObjectUI.ObjectPropertiesSection.RootElement(expressionValue, this.linkifier);
|
519
518
|
this.expandController.watchSection(
|
520
|
-
(this
|
521
|
-
|
522
|
-
this.
|
523
|
-
this.
|
524
|
-
this.treeElementInternal.listItemElement.addEventListener('dblclick', this.dblClickOnWatchExpression.bind(this));
|
519
|
+
(this.#expression as string), (this.#treeElement as ObjectUI.ObjectPropertiesSection.RootElement));
|
520
|
+
this.#treeElement.toggleOnClick = false;
|
521
|
+
this.#treeElement.listItemElement.addEventListener('click', this.onSectionClick.bind(this), false);
|
522
|
+
this.#treeElement.listItemElement.addEventListener('dblclick', this.dblClickOnWatchExpression.bind(this));
|
525
523
|
} else {
|
526
524
|
headerElement.addEventListener('dblclick', this.dblClickOnWatchExpression.bind(this));
|
527
|
-
this
|
525
|
+
this.#treeElement = new UI.TreeOutline.TreeElement();
|
528
526
|
}
|
529
|
-
this.
|
530
|
-
this.
|
531
|
-
this.
|
527
|
+
this.#treeElement.title = this.element;
|
528
|
+
this.#treeElement.listItemElement.classList.add('watch-expression-tree-item');
|
529
|
+
this.#treeElement.listItemElement.addEventListener('keydown', event => {
|
532
530
|
if (event.key === 'Enter' && !this.isEditing()) {
|
533
531
|
this.startEditing();
|
534
532
|
event.consume(true);
|
@@ -549,14 +547,14 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
549
547
|
}
|
550
548
|
|
551
549
|
function handleClick(this: WatchExpression): void {
|
552
|
-
if (!this
|
550
|
+
if (!this.#treeElement) {
|
553
551
|
return;
|
554
552
|
}
|
555
553
|
|
556
|
-
if (this.
|
557
|
-
this.
|
554
|
+
if (this.#treeElement.expanded) {
|
555
|
+
this.#treeElement.collapse();
|
558
556
|
} else if (!this.editing) {
|
559
|
-
this.
|
557
|
+
this.#treeElement.expand();
|
560
558
|
}
|
561
559
|
}
|
562
560
|
}
|
@@ -29,16 +29,16 @@ export class AnimationsTrackAppender implements TrackAppender {
|
|
29
29
|
readonly appenderName: TrackAppenderName = 'Animations';
|
30
30
|
|
31
31
|
#compatibilityBuilder: CompatibilityTracksAppender;
|
32
|
-
#parsedTrace: Readonly<Trace.
|
32
|
+
#parsedTrace: Readonly<Trace.TraceModel.ParsedTrace>;
|
33
33
|
#eventAppendedCallback = this.#eventAppendedCallbackFunction.bind(this);
|
34
34
|
|
35
|
-
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.
|
35
|
+
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.TraceModel.ParsedTrace) {
|
36
36
|
this.#compatibilityBuilder = compatibilityBuilder;
|
37
37
|
this.#parsedTrace = parsedTrace;
|
38
38
|
}
|
39
39
|
|
40
40
|
appendTrackAtLevel(trackStartLevel: number, expanded?: boolean|undefined): number {
|
41
|
-
const animations = this.#parsedTrace.Animations.animations;
|
41
|
+
const animations = this.#parsedTrace.data.Animations.animations;
|
42
42
|
if (animations.length === 0) {
|
43
43
|
return trackStartLevel;
|
44
44
|
}
|
@@ -46,8 +46,8 @@ function isShowPostMessageEventsEnabled(): boolean {
|
|
46
46
|
}
|
47
47
|
|
48
48
|
export function entryIsVisibleInTimeline(
|
49
|
-
entry: Trace.Types.Events.Event, parsedTrace?: Trace.
|
50
|
-
if (parsedTrace?.Meta.traceIsGeneric) {
|
49
|
+
entry: Trace.Types.Events.Event, parsedTrace?: Trace.TraceModel.ParsedTrace): boolean {
|
50
|
+
if (parsedTrace?.data.Meta.traceIsGeneric) {
|
51
51
|
return true;
|
52
52
|
}
|
53
53
|
|
@@ -188,7 +188,7 @@ export class CompatibilityTracksAppender {
|
|
188
188
|
#eventsForTrack = new Map<TrackAppender, Trace.Types.Events.Event[]>();
|
189
189
|
#trackEventsForTreeview = new Map<TrackAppender, Trace.Types.Events.Event[]>();
|
190
190
|
#flameChartData: PerfUI.FlameChart.FlameChartTimelineData;
|
191
|
-
#parsedTrace: Trace.
|
191
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace;
|
192
192
|
#entryData: Trace.Types.Events.Event[];
|
193
193
|
#colorGenerator: Common.Color.Generator;
|
194
194
|
#allTrackAppenders: TrackAppender[] = [];
|
@@ -218,7 +218,7 @@ export class CompatibilityTracksAppender {
|
|
218
218
|
* @param entityMapper 3P entity data for the trace.
|
219
219
|
*/
|
220
220
|
constructor(
|
221
|
-
flameChartData: PerfUI.FlameChart.FlameChartTimelineData, parsedTrace: Trace.
|
221
|
+
flameChartData: PerfUI.FlameChart.FlameChartTimelineData, parsedTrace: Trace.TraceModel.ParsedTrace,
|
222
222
|
entryData: Trace.Types.Events.Event[], legacyEntryTypeByLevel: EntryType[],
|
223
223
|
entityMapper: TimelineUtils.EntityMapper.EntityMapper|null) {
|
224
224
|
this.#flameChartData = flameChartData;
|
@@ -284,7 +284,7 @@ export class CompatibilityTracksAppender {
|
|
284
284
|
if (!TimelinePanel.extensionDataVisibilitySetting().get()) {
|
285
285
|
return;
|
286
286
|
}
|
287
|
-
const tracks = this.#parsedTrace.ExtensionTraceData.extensionTrackData;
|
287
|
+
const tracks = this.#parsedTrace.data.ExtensionTraceData.extensionTrackData;
|
288
288
|
for (const trackData of tracks) {
|
289
289
|
this.#allTrackAppenders.push(new ExtensionTrackAppender(this, trackData));
|
290
290
|
}
|
@@ -318,11 +318,11 @@ export class CompatibilityTracksAppender {
|
|
318
318
|
return 8;
|
319
319
|
}
|
320
320
|
};
|
321
|
-
const threads = Trace.Handlers.Threads.threadsInTrace(this.#parsedTrace);
|
321
|
+
const threads = Trace.Handlers.Threads.threadsInTrace(this.#parsedTrace.data);
|
322
322
|
const showAllEvents = Root.Runtime.experiments.isEnabled('timeline-show-all-events');
|
323
323
|
|
324
324
|
for (const {pid, tid, name, type, entries, tree} of threads) {
|
325
|
-
if (this.#parsedTrace.Meta.traceIsGeneric) {
|
325
|
+
if (this.#parsedTrace.data.Meta.traceIsGeneric) {
|
326
326
|
// If the trace is generic, we just push all of the threads with no effort to differentiate them, hence
|
327
327
|
// overriding the thread type to be OTHER for all threads.
|
328
328
|
this.#threadAppenders.push(new ThreadAppender(
|
@@ -334,7 +334,7 @@ export class CompatibilityTracksAppender {
|
|
334
334
|
continue;
|
335
335
|
}
|
336
336
|
|
337
|
-
const matchingWorklet = this.#parsedTrace.AuctionWorklets.worklets.get(pid);
|
337
|
+
const matchingWorklet = this.#parsedTrace.data.AuctionWorklets.worklets.get(pid);
|
338
338
|
if (matchingWorklet) {
|
339
339
|
// Each AuctionWorklet has two key threads:
|
340
340
|
// 1. the Utility Thread
|
@@ -167,12 +167,12 @@ export class CountersGraph extends UI.Widget.VBox {
|
|
167
167
|
}
|
168
168
|
}
|
169
169
|
|
170
|
-
setModel(parsedTrace: Trace.
|
170
|
+
setModel(parsedTrace: Trace.TraceModel.ParsedTrace|null, events: Trace.Types.Events.Event[]|null): void {
|
171
171
|
this.#events = events;
|
172
172
|
if (!events || !parsedTrace) {
|
173
173
|
return;
|
174
174
|
}
|
175
|
-
const minTime = Trace.Helpers.Timing.traceWindowMilliSeconds(parsedTrace.Meta.traceBounds).min;
|
175
|
+
const minTime = Trace.Helpers.Timing.traceWindowMilliSeconds(parsedTrace.data.Meta.traceBounds).min;
|
176
176
|
this.calculator.setZeroTime(minTime);
|
177
177
|
|
178
178
|
for (let i = 0; i < this.counters.length; ++i) {
|
@@ -589,28 +589,28 @@ export class CounterUI {
|
|
589
589
|
}
|
590
590
|
|
591
591
|
export class Calculator implements Calculator {
|
592
|
-
|
593
|
-
|
592
|
+
#minimumBoundary: number;
|
593
|
+
#maximumBoundary: number;
|
594
594
|
private workingArea: number;
|
595
|
-
|
595
|
+
#zeroTime: number;
|
596
596
|
|
597
597
|
constructor() {
|
598
|
-
this
|
599
|
-
this
|
598
|
+
this.#minimumBoundary = 0;
|
599
|
+
this.#maximumBoundary = 0;
|
600
600
|
this.workingArea = 0;
|
601
|
-
this
|
601
|
+
this.#zeroTime = 0;
|
602
602
|
}
|
603
603
|
setZeroTime(time: number): void {
|
604
|
-
this
|
604
|
+
this.#zeroTime = time;
|
605
605
|
}
|
606
606
|
|
607
607
|
computePosition(time: number): number {
|
608
|
-
return (time - this
|
608
|
+
return (time - this.#minimumBoundary) / this.boundarySpan() * this.workingArea;
|
609
609
|
}
|
610
610
|
|
611
611
|
setWindow(minimumBoundary: number, maximumBoundary: number): void {
|
612
|
-
this
|
613
|
-
this
|
612
|
+
this.#minimumBoundary = minimumBoundary;
|
613
|
+
this.#maximumBoundary = maximumBoundary;
|
614
614
|
}
|
615
615
|
|
616
616
|
setDisplayWidth(clientWidth: number): void {
|
@@ -622,18 +622,18 @@ export class Calculator implements Calculator {
|
|
622
622
|
}
|
623
623
|
|
624
624
|
maximumBoundary(): number {
|
625
|
-
return this
|
625
|
+
return this.#maximumBoundary;
|
626
626
|
}
|
627
627
|
|
628
628
|
minimumBoundary(): number {
|
629
|
-
return this
|
629
|
+
return this.#minimumBoundary;
|
630
630
|
}
|
631
631
|
|
632
632
|
zeroTime(): number {
|
633
|
-
return this
|
633
|
+
return this.#zeroTime;
|
634
634
|
}
|
635
635
|
|
636
636
|
boundarySpan(): number {
|
637
|
-
return this
|
637
|
+
return this.#maximumBoundary - this.#minimumBoundary;
|
638
638
|
}
|
639
639
|
}
|
@@ -20,7 +20,7 @@ import {
|
|
20
20
|
* removed before rendering the resulting thread on the timeline.
|
21
21
|
*/
|
22
22
|
export class EntriesFilter {
|
23
|
-
#parsedTrace: Trace.
|
23
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace;
|
24
24
|
// Track the set of invisible entries.
|
25
25
|
#invisibleEntries: Trace.Types.Events.Event[] = [];
|
26
26
|
// List of entries whose children are hidden. This list is used to
|
@@ -31,14 +31,15 @@ export class EntriesFilter {
|
|
31
31
|
// will never change so we can avoid running the potentially expensive search again.
|
32
32
|
#entryToDescendantsMap = new Map<Trace.Helpers.TreeHelpers.TraceEntryNode, Trace.Types.Events.Event[]>();
|
33
33
|
|
34
|
-
constructor(parsedTrace: Trace.
|
34
|
+
constructor(parsedTrace: Trace.TraceModel.ParsedTrace) {
|
35
35
|
this.#parsedTrace = parsedTrace;
|
36
36
|
}
|
37
37
|
|
38
38
|
#getEntryNode(entry: Trace.Types.Events.Event): Trace.Helpers.TreeHelpers.TraceEntryNode|undefined {
|
39
39
|
// The entry might be either from the Samples handler or Renderer handler. So we need to check both handlers to find
|
40
40
|
// the EntryNode.
|
41
|
-
return this.#parsedTrace.Samples.entryToNode.get(entry) ??
|
41
|
+
return this.#parsedTrace.data.Samples.entryToNode.get(entry) ??
|
42
|
+
this.#parsedTrace.data.Renderer.entryToNode.get(entry);
|
42
43
|
}
|
43
44
|
|
44
45
|
/**
|
@@ -128,16 +128,16 @@ export class EventsTimelineTreeView extends TimelineTreeView {
|
|
128
128
|
export class Filters extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
|
129
129
|
private readonly categoryFilter: Category;
|
130
130
|
private readonly durationFilter: IsLong;
|
131
|
-
|
131
|
+
readonly #filters: Array<IsLong|Category>;
|
132
132
|
constructor() {
|
133
133
|
super();
|
134
134
|
this.categoryFilter = new Category();
|
135
135
|
this.durationFilter = new IsLong();
|
136
|
-
this
|
136
|
+
this.#filters = [this.categoryFilter, this.durationFilter];
|
137
137
|
}
|
138
138
|
|
139
139
|
filters(): Trace.Extras.TraceFilter.TraceFilter[] {
|
140
|
-
return this
|
140
|
+
return this.#filters;
|
141
141
|
}
|
142
142
|
|
143
143
|
populateToolbar(toolbar: UI.Toolbar.Toolbar): void {
|
@@ -27,9 +27,9 @@ export class GPUTrackAppender implements TrackAppender {
|
|
27
27
|
readonly appenderName: TrackAppenderName = 'GPU';
|
28
28
|
|
29
29
|
#compatibilityBuilder: CompatibilityTracksAppender;
|
30
|
-
#parsedTrace: Readonly<Trace.
|
30
|
+
#parsedTrace: Readonly<Trace.TraceModel.ParsedTrace>;
|
31
31
|
|
32
|
-
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.
|
32
|
+
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.TraceModel.ParsedTrace) {
|
33
33
|
this.#compatibilityBuilder = compatibilityBuilder;
|
34
34
|
this.#parsedTrace = parsedTrace;
|
35
35
|
}
|
@@ -44,7 +44,7 @@ export class GPUTrackAppender implements TrackAppender {
|
|
44
44
|
* appended the track's events.
|
45
45
|
*/
|
46
46
|
appendTrackAtLevel(trackStartLevel: number, expanded?: boolean|undefined): number {
|
47
|
-
const gpuEvents = this.#parsedTrace.GPU.mainGPUThreadTasks;
|
47
|
+
const gpuEvents = this.#parsedTrace.data.GPU.mainGPUThreadTasks;
|
48
48
|
if (gpuEvents.length === 0) {
|
49
49
|
return trackStartLevel;
|
50
50
|
}
|
@@ -34,12 +34,12 @@ const MAX_PREDECESSOR_INITIATOR_LIMIT = 10;
|
|
34
34
|
* work backwards to draw each one, as well as the events initiated directly by the entry.
|
35
35
|
*/
|
36
36
|
export function initiatorsDataToDraw(
|
37
|
-
parsedTrace: Trace.
|
37
|
+
parsedTrace: Trace.TraceModel.ParsedTrace, selectedEvent: Trace.Types.Events.Event,
|
38
38
|
hiddenEntries: Trace.Types.Events.Event[],
|
39
39
|
expandableEntries: Trace.Types.Events.Event[]): readonly InitiatorData[] {
|
40
40
|
const initiatorsData = [
|
41
|
-
...findInitiatorDataPredecessors(parsedTrace, selectedEvent, parsedTrace.Initiators.eventToInitiator),
|
42
|
-
...findInitiatorDataDirectSuccessors(selectedEvent, parsedTrace.Initiators.initiatorToEvents),
|
41
|
+
...findInitiatorDataPredecessors(parsedTrace, selectedEvent, parsedTrace.data.Initiators.eventToInitiator),
|
42
|
+
...findInitiatorDataDirectSuccessors(selectedEvent, parsedTrace.data.Initiators.initiatorToEvents),
|
43
43
|
];
|
44
44
|
|
45
45
|
// For each InitiatorData, call a function that makes sure that neither the initiator or initiated entry is hidden.
|
@@ -51,14 +51,14 @@ export function initiatorsDataToDraw(
|
|
51
51
|
}
|
52
52
|
|
53
53
|
export function initiatorsDataToDrawForNetwork(
|
54
|
-
parsedTrace: Trace.
|
54
|
+
parsedTrace: Trace.TraceModel.ParsedTrace,
|
55
55
|
selectedEvent: Trace.Types.Events.Event,
|
56
56
|
): readonly InitiatorData[] {
|
57
|
-
return findInitiatorDataPredecessors(parsedTrace, selectedEvent, parsedTrace.NetworkRequests.eventToInitiator);
|
57
|
+
return findInitiatorDataPredecessors(parsedTrace, selectedEvent, parsedTrace.data.NetworkRequests.eventToInitiator);
|
58
58
|
}
|
59
59
|
|
60
60
|
function findInitiatorDataPredecessors(
|
61
|
-
parsedTrace: Trace.
|
61
|
+
parsedTrace: Trace.TraceModel.ParsedTrace,
|
62
62
|
selectedEvent: Trace.Types.Events.Event,
|
63
63
|
eventToInitiator: Map<Trace.Types.Events.Event, Trace.Types.Events.Event>,
|
64
64
|
): readonly InitiatorData[] {
|
@@ -85,7 +85,7 @@ function findInitiatorDataPredecessors(
|
|
85
85
|
continue;
|
86
86
|
}
|
87
87
|
|
88
|
-
const nodeForCurrentEvent = parsedTrace.Renderer.entryToNode.get(currentEvent);
|
88
|
+
const nodeForCurrentEvent = parsedTrace.data.Renderer.entryToNode.get(currentEvent);
|
89
89
|
if (!nodeForCurrentEvent) {
|
90
90
|
// Should not happen - if it does something odd is going
|
91
91
|
// on so let's give up.
|
@@ -125,9 +125,9 @@ function findInitiatorDataDirectSuccessors(
|
|
125
125
|
*/
|
126
126
|
function getClosestVisibleInitiatorEntriesAncestors(
|
127
127
|
initiatorData: InitiatorData, expandableEntries: Trace.Types.Events.Event[],
|
128
|
-
hiddenEntries: Trace.Types.Events.Event[], parsedTrace: Trace.
|
128
|
+
hiddenEntries: Trace.Types.Events.Event[], parsedTrace: Trace.TraceModel.ParsedTrace): InitiatorData {
|
129
129
|
if (hiddenEntries.includes(initiatorData.event)) {
|
130
|
-
let nextParent = parsedTrace.Renderer.entryToNode.get(initiatorData.event)?.parent;
|
130
|
+
let nextParent = parsedTrace.data.Renderer.entryToNode.get(initiatorData.event)?.parent;
|
131
131
|
while (nextParent?.entry && !expandableEntries.includes(nextParent?.entry)) {
|
132
132
|
nextParent = nextParent.parent ?? undefined;
|
133
133
|
}
|
@@ -136,7 +136,7 @@ function getClosestVisibleInitiatorEntriesAncestors(
|
|
136
136
|
}
|
137
137
|
|
138
138
|
if (hiddenEntries.includes(initiatorData.initiator)) {
|
139
|
-
let nextParent = parsedTrace.Renderer.entryToNode.get(initiatorData.initiator)?.parent;
|
139
|
+
let nextParent = parsedTrace.data.Renderer.entryToNode.get(initiatorData.initiator)?.parent;
|
140
140
|
while (nextParent?.entry && !expandableEntries.includes(nextParent?.entry)) {
|
141
141
|
nextParent = nextParent.parent ?? undefined;
|
142
142
|
}
|
@@ -32,10 +32,10 @@ export class InteractionsTrackAppender implements TrackAppender {
|
|
32
32
|
|
33
33
|
#colorGenerator: Common.Color.Generator;
|
34
34
|
#compatibilityBuilder: CompatibilityTracksAppender;
|
35
|
-
#parsedTrace: Readonly<Trace.
|
35
|
+
#parsedTrace: Readonly<Trace.TraceModel.ParsedTrace>;
|
36
36
|
|
37
37
|
constructor(
|
38
|
-
compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.
|
38
|
+
compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.TraceModel.ParsedTrace,
|
39
39
|
colorGenerator: Common.Color.Generator) {
|
40
40
|
this.#compatibilityBuilder = compatibilityBuilder;
|
41
41
|
this.#colorGenerator = colorGenerator;
|
@@ -52,7 +52,7 @@ export class InteractionsTrackAppender implements TrackAppender {
|
|
52
52
|
* appended the track's events.
|
53
53
|
*/
|
54
54
|
appendTrackAtLevel(trackStartLevel: number, expanded?: boolean): number {
|
55
|
-
if (this.#parsedTrace.UserInteractions.interactionEvents.length === 0) {
|
55
|
+
if (this.#parsedTrace.data.UserInteractions.interactionEvents.length === 0) {
|
56
56
|
return trackStartLevel;
|
57
57
|
}
|
58
58
|
this.#appendTrackHeaderAtLevel(trackStartLevel, expanded);
|
@@ -69,7 +69,7 @@ export class InteractionsTrackAppender implements TrackAppender {
|
|
69
69
|
* appended.
|
70
70
|
*/
|
71
71
|
#appendTrackHeaderAtLevel(currentLevel: number, expanded?: boolean): void {
|
72
|
-
const trackIsCollapsible = this.#parsedTrace.UserInteractions.interactionEvents.length > 0;
|
72
|
+
const trackIsCollapsible = this.#parsedTrace.data.UserInteractions.interactionEvents.length > 0;
|
73
73
|
const style = buildGroupStyle({collapsible: trackIsCollapsible, useDecoratorsForOverview: true});
|
74
74
|
const group = buildTrackHeader(
|
75
75
|
VisualLoggingTrackName.INTERACTIONS, currentLevel, i18nString(UIStrings.interactions), style,
|
@@ -87,7 +87,7 @@ export class InteractionsTrackAppender implements TrackAppender {
|
|
87
87
|
* interactions (the first available level to append more data).
|
88
88
|
*/
|
89
89
|
#appendInteractionsAtLevel(trackStartLevel: number): number {
|
90
|
-
const {interactionEventsWithNoNesting, interactionsOverThreshold} = this.#parsedTrace.UserInteractions;
|
90
|
+
const {interactionEventsWithNoNesting, interactionsOverThreshold} = this.#parsedTrace.data.UserInteractions;
|
91
91
|
|
92
92
|
const addCandyStripeToLongInteraction =
|
93
93
|
(event: Trace.Types.Events.SyntheticInteractionPair, index: number): void => {
|
@@ -51,9 +51,9 @@ export class LayoutShiftsTrackAppender implements TrackAppender {
|
|
51
51
|
readonly appenderName: TrackAppenderName = 'LayoutShifts';
|
52
52
|
|
53
53
|
#compatibilityBuilder: CompatibilityTracksAppender;
|
54
|
-
#parsedTrace: Readonly<Trace.
|
54
|
+
#parsedTrace: Readonly<Trace.TraceModel.ParsedTrace>;
|
55
55
|
|
56
|
-
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.
|
56
|
+
constructor(compatibilityBuilder: CompatibilityTracksAppender, parsedTrace: Trace.TraceModel.ParsedTrace) {
|
57
57
|
this.#compatibilityBuilder = compatibilityBuilder;
|
58
58
|
this.#parsedTrace = parsedTrace;
|
59
59
|
}
|
@@ -68,7 +68,7 @@ export class LayoutShiftsTrackAppender implements TrackAppender {
|
|
68
68
|
* appended the track's events.
|
69
69
|
*/
|
70
70
|
appendTrackAtLevel(trackStartLevel: number, expanded?: boolean): number {
|
71
|
-
if (this.#parsedTrace.LayoutShifts.clusters.length === 0) {
|
71
|
+
if (this.#parsedTrace.data.LayoutShifts.clusters.length === 0) {
|
72
72
|
return trackStartLevel;
|
73
73
|
}
|
74
74
|
this.#appendTrackHeaderAtLevel(trackStartLevel, expanded);
|
@@ -101,10 +101,10 @@ export class LayoutShiftsTrackAppender implements TrackAppender {
|
|
101
101
|
* layout shifts (the first available level to append more data).
|
102
102
|
*/
|
103
103
|
#appendLayoutShiftsAtLevel(currentLevel: number): number {
|
104
|
-
const allClusters = this.#parsedTrace.LayoutShifts.clusters;
|
104
|
+
const allClusters = this.#parsedTrace.data.LayoutShifts.clusters;
|
105
105
|
this.#compatibilityBuilder.appendEventsAtLevel(allClusters, currentLevel, this);
|
106
106
|
|
107
|
-
const allLayoutShifts = this.#parsedTrace.LayoutShifts.clusters.flatMap(cluster => cluster.events);
|
107
|
+
const allLayoutShifts = this.#parsedTrace.data.LayoutShifts.clusters.flatMap(cluster => cluster.events);
|
108
108
|
void this.preloadScreenshots(allLayoutShifts);
|
109
109
|
return this.#compatibilityBuilder.appendEventsAtLevel(allLayoutShifts, currentLevel, this);
|
110
110
|
}
|
@@ -226,10 +226,10 @@ export class LayoutShiftsTrackAppender implements TrackAppender {
|
|
226
226
|
}
|
227
227
|
|
228
228
|
static createShiftViz(
|
229
|
-
event: Trace.Types.Events.SyntheticLayoutShift, parsedTrace: Trace.
|
229
|
+
event: Trace.Types.Events.SyntheticLayoutShift, parsedTrace: Trace.TraceModel.ParsedTrace,
|
230
230
|
maxSize: Geometry.Size): HTMLElement|undefined {
|
231
231
|
const screenshots = event.parsedData.screenshots;
|
232
|
-
const {viewportRect, devicePixelRatio: dpr} = parsedTrace.Meta;
|
232
|
+
const {viewportRect, devicePixelRatio: dpr} = parsedTrace.data.Meta;
|
233
233
|
const vizContainer = document.createElement('div');
|
234
234
|
vizContainer.classList.add('layout-shift-viz');
|
235
235
|
|
@@ -29,7 +29,7 @@ export class AnnotationModifiedEvent extends Event {
|
|
29
29
|
}
|
30
30
|
|
31
31
|
interface ModificationsManagerData {
|
32
|
-
parsedTrace: Trace.
|
32
|
+
parsedTrace: Trace.TraceModel.ParsedTrace;
|
33
33
|
traceBounds: Trace.Types.Timing.TraceWindowMicro;
|
34
34
|
rawTraceEvents: readonly Trace.Types.Events.Event[];
|
35
35
|
syntheticEvents: Trace.Types.Events.SyntheticBased[];
|
@@ -40,7 +40,7 @@ export class ModificationsManager extends EventTarget {
|
|
40
40
|
#entriesFilter: EntriesFilter;
|
41
41
|
#timelineBreadcrumbs: TimelineComponents.Breadcrumbs.Breadcrumbs;
|
42
42
|
#modifications: Trace.Types.File.Modifications|null = null;
|
43
|
-
#parsedTrace: Trace.
|
43
|
+
#parsedTrace: Trace.TraceModel.ParsedTrace;
|
44
44
|
#eventsSerializer: Trace.EventsSerializer.EventsSerializer;
|
45
45
|
#overlayForAnnotation: Map<Trace.Types.File.Annotation, Trace.Types.Overlays.Overlay>;
|
46
46
|
readonly #annotationsHiddenSetting: Common.Settings.Setting<boolean>;
|
@@ -75,26 +75,19 @@ export class ModificationsManager extends EventTarget {
|
|
75
75
|
activeManager = modificationsManagerByTraceIndex[traceIndex];
|
76
76
|
ModificationsManager.activeManager()?.applyModificationsIfPresent();
|
77
77
|
}
|
78
|
+
|
78
79
|
const parsedTrace = traceModel.parsedTrace(traceIndex);
|
79
80
|
if (!parsedTrace) {
|
80
81
|
throw new Error('ModificationsManager was initialized without a corresponding trace data');
|
81
82
|
}
|
82
|
-
|
83
|
-
const
|
84
|
-
if (!traceEvents) {
|
85
|
-
throw new Error('ModificationsManager was initialized without a corresponding raw trace events array');
|
86
|
-
}
|
87
|
-
const syntheticEventsManager = traceModel.syntheticTraceEventsManager(traceIndex);
|
88
|
-
if (!syntheticEventsManager) {
|
89
|
-
throw new Error('ModificationsManager was initialized without a corresponding SyntheticEventsManager');
|
90
|
-
}
|
91
|
-
const metadata = traceModel.metadata(traceIndex);
|
83
|
+
|
84
|
+
const traceBounds = parsedTrace.data.Meta.traceBounds;
|
92
85
|
const newModificationsManager = new ModificationsManager({
|
93
86
|
parsedTrace,
|
94
87
|
traceBounds,
|
95
|
-
rawTraceEvents: traceEvents,
|
96
|
-
modifications: metadata
|
97
|
-
syntheticEvents: syntheticEventsManager.getSyntheticTraces(),
|
88
|
+
rawTraceEvents: parsedTrace.traceEvents,
|
89
|
+
modifications: parsedTrace.metadata.modifications,
|
90
|
+
syntheticEvents: parsedTrace.syntheticEventsManager.getSyntheticTraces(),
|
98
91
|
});
|
99
92
|
modificationsManagerByTraceIndex[traceIndex] = newModificationsManager;
|
100
93
|
activeManager = newModificationsManager;
|
@@ -11,9 +11,9 @@ import type * as Trace from '../../models/trace/trace.js';
|
|
11
11
|
* page's target.
|
12
12
|
**/
|
13
13
|
export function targetForEvent(
|
14
|
-
parsedTrace: Trace.
|
14
|
+
parsedTrace: Trace.TraceModel.ParsedTrace, event: Trace.Types.Events.Event): SDK.Target.Target|null {
|
15
15
|
const targetManager = SDK.TargetManager.TargetManager.instance();
|
16
|
-
const workerId = parsedTrace.Workers.workerIdByThread.get(event.tid);
|
16
|
+
const workerId = parsedTrace.data.Workers.workerIdByThread.get(event.tid);
|
17
17
|
if (workerId) {
|
18
18
|
return targetManager.targetById(workerId);
|
19
19
|
}
|
@@ -59,7 +59,7 @@ export class ThirdPartyTreeViewWidget extends TimelineTreeView.TimelineTreeView
|
|
59
59
|
}
|
60
60
|
|
61
61
|
override setModelWithEvents(
|
62
|
-
selectedEvents: Trace.Types.Events.Event[]|null, parsedTrace?: Trace.
|
62
|
+
selectedEvents: Trace.Types.Events.Event[]|null, parsedTrace?: Trace.TraceModel.ParsedTrace|null,
|
63
63
|
entityMappings?: Utils.EntityMapper.EntityMapper|null): void {
|
64
64
|
super.setModelWithEvents(selectedEvents, parsedTrace, entityMappings);
|
65
65
|
|