chrome-devtools-frontend 1.0.1376716 → 1.0.1380117
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/config/gni/devtools_grd_files.gni +15 -7
- package/config/gni/devtools_image_files.gni +2 -0
- package/front_end/Images/src/animation.svg +3 -0
- package/front_end/Images/src/brush-2.svg +3 -0
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/host/AidaClient.ts +1 -0
- package/front_end/core/host/InspectorFrontendHost.ts +4 -0
- package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
- package/front_end/core/i18n/ByteUtilities.ts +65 -0
- package/front_end/core/i18n/NumberFormatter.ts +75 -0
- package/front_end/core/i18n/i18n.ts +4 -0
- package/front_end/core/i18n/time-utilities.test.ts +20 -2
- package/front_end/core/i18n/time-utilities.ts +125 -86
- package/front_end/core/platform/NumberUtilities.test.ts +3 -26
- package/front_end/core/platform/NumberUtilities.ts +0 -20
- package/front_end/core/root/Runtime.ts +6 -3
- package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
- package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
- package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
- package/front_end/core/sdk/CSSModel.ts +18 -0
- package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
- package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
- package/front_end/core/sdk/sdk-meta.ts +8 -0
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
- package/front_end/generated/ARIAProperties.js +4 -0
- package/front_end/generated/InspectorBackendCommands.js +8 -6
- package/front_end/generated/SupportedCSSProperties.js +17 -4
- package/front_end/generated/protocol-mapping.d.ts +15 -1
- package/front_end/generated/protocol-proxy-api.d.ts +14 -1
- package/front_end/generated/protocol.ts +26 -2
- package/front_end/models/extensions/ExtensionAPI.ts +9 -1
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +8 -21
- package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +19 -9
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
- package/front_end/models/persistence/editFileSystemView.css +35 -15
- package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
- package/front_end/models/timeline_model/timeline_model.ts +0 -6
- package/front_end/models/trace/Processor.test.ts +18 -17
- package/front_end/models/trace/Processor.ts +10 -14
- package/front_end/models/trace/README.md +0 -1
- package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
- package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
- package/front_end/models/trace/extras/TraceFilter.ts +62 -0
- package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
- package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +65 -59
- package/front_end/models/trace/extras/extras.ts +3 -0
- package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
- package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
- package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
- package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +3 -0
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
- package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
- package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
- package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
- package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
- package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
- package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
- package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
- package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
- package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
- package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
- package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
- package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
- package/front_end/models/trace/handlers/Threads.test.ts +1 -2
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
- package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
- package/front_end/models/trace/handlers/types.ts +1 -8
- package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
- package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +24 -5
- package/front_end/models/trace/insights/Common.ts +5 -55
- package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
- package/front_end/models/trace/insights/DocumentLatency.ts +26 -6
- package/front_end/models/trace/insights/FontDisplay.ts +24 -5
- package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +26 -6
- package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
- package/front_end/models/trace/insights/LCPDiscovery.ts +101 -0
- package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
- package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +37 -38
- package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +4 -3
- package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +33 -28
- package/front_end/models/trace/insights/SlowCSSSelector.ts +26 -5
- package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
- package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +24 -5
- package/front_end/models/trace/insights/Viewport.test.ts +1 -1
- package/front_end/models/trace/insights/Viewport.ts +27 -9
- package/front_end/models/trace/insights/insights.ts +1 -1
- package/front_end/models/trace/insights/types.ts +11 -9
- package/front_end/models/trace/types/TraceEvents.ts +51 -22
- package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
- package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
- package/front_end/panels/application/StorageView.ts +3 -3
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +34 -31
- package/front_end/panels/coverage/CoverageView.ts +3 -3
- package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
- package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +84 -30
- package/front_end/panels/elements/ElementStatePaneWidget.ts +42 -24
- package/front_end/panels/elements/ElementsTreeElement.ts +24 -11
- package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
- package/front_end/panels/elements/PropertyMatchers.ts +3 -0
- package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
- package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
- package/front_end/panels/freestyler/AiAgent.test.ts +58 -1
- package/front_end/panels/freestyler/AiAgent.ts +58 -3
- package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +99 -23
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +53 -20
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +15 -7
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +36 -15
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +6 -6
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +48 -8
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +15 -14
- package/front_end/panels/freestyler/FreestylerAgent.ts +52 -8
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +539 -39
- package/front_end/panels/freestyler/FreestylerPanel.ts +349 -215
- package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +320 -268
- package/front_end/panels/freestyler/components/UserActionRow.ts +156 -47
- package/front_end/panels/freestyler/components/freestylerChatUi.css +69 -34
- package/front_end/panels/freestyler/components/userActionRow.css +40 -67
- package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
- package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -2
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +5 -5
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
- package/front_end/panels/network/BinaryResourceView.ts +6 -7
- package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
- package/front_end/panels/network/NetworkLogView.ts +7 -8
- package/front_end/panels/network/RequestTimingView.test.ts +35 -1
- package/front_end/panels/network/RequestTimingView.ts +96 -0
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
- package/front_end/panels/network/networkTimingTable.css +2 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
- package/front_end/panels/profiler/HeapProfileView.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
- package/front_end/panels/profiler/HeapTimelineOverview.ts +12 -12
- package/front_end/panels/profiler/IsolateSelector.ts +3 -4
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +1 -1
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
- package/front_end/panels/profiler/ProfileView.ts +1 -1
- package/front_end/panels/recorder/components/RecordingView.ts +2 -2
- package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/panels/recorder/recorderController.css +0 -4
- package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
- package/front_end/panels/security/CookieReportView.ts +120 -0
- package/front_end/panels/security/SecurityPanel.ts +8 -2
- package/front_end/panels/security/cookieReportView.css +46 -0
- package/front_end/panels/security/sidebar.css +1 -2
- package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
- package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
- package/front_end/panels/settings/AISettingsTab.ts +6 -15
- package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
- package/front_end/panels/settings/SettingsScreen.ts +61 -56
- package/front_end/panels/settings/aiSettingsTab.css +3 -14
- package/front_end/panels/settings/components/SyncSection.ts +1 -2
- package/front_end/panels/settings/components/syncSection.css +0 -10
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +3 -1
- package/front_end/panels/settings/keybindsSettingsTab.css +7 -10
- package/front_end/panels/settings/settingsScreen.css +27 -125
- package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
- package/front_end/panels/sources/NavigatorView.ts +11 -13
- package/front_end/panels/timeline/ActiveFilters.ts +3 -4
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -2
- package/front_end/panels/timeline/CountersGraph.ts +2 -4
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
- package/front_end/panels/timeline/README.md +2 -1
- package/front_end/panels/timeline/TimelineController.ts +14 -4
- package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
- package/front_end/panels/timeline/TimelineFilters.ts +3 -4
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -10
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -2
- package/front_end/panels/timeline/TimelineFlameChartView.ts +21 -12
- package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
- package/front_end/panels/timeline/TimelineLoader.ts +3 -4
- package/front_end/panels/timeline/TimelineMiniMap.ts +10 -0
- package/front_end/panels/timeline/TimelinePanel.ts +20 -8
- package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
- package/front_end/panels/timeline/TimelineTreeView.ts +35 -40
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +12 -14
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +3 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -26
- package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.ts +46 -0
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +2 -0
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +41 -36
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +19 -33
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +29 -40
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +17 -23
- package/front_end/panels/timeline/components/insights/Helpers.ts +12 -16
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +14 -26
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +25 -37
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +20 -47
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +19 -28
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -2
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +18 -31
- package/front_end/panels/timeline/components/insights/Table.ts +5 -3
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +18 -25
- package/front_end/panels/timeline/components/insights/Viewport.ts +14 -25
- package/front_end/panels/timeline/components/liveMetricsView.css +5 -13
- package/front_end/panels/timeline/components/metricCard.css +11 -0
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +13 -12
- package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
- package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
- package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
- package/front_end/testing/EnvironmentHelpers.ts +5 -18
- package/front_end/testing/InsightHelpers.ts +4 -4
- package/front_end/testing/TraceHelpers.ts +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +51 -10
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +215 -97
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +51 -10
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +2 -3
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
- package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
- package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
- package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
- package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
- package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
- package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
- package/front_end/ui/components/buttons/Button.test.ts +14 -0
- package/front_end/ui/components/buttons/Button.ts +27 -4
- package/front_end/ui/components/cards/card.css +7 -4
- package/front_end/ui/components/dialogs/Dialog.ts +2 -4
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +15 -13
- package/front_end/ui/components/dialogs/dialog.css +2 -6
- package/front_end/ui/components/dialogs/shortcutDialog.css +33 -41
- package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
- package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
- package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
- package/front_end/ui/components/markdown_view/MarkdownView.ts +77 -14
- package/front_end/ui/components/markdown_view/markdownView.css +15 -0
- package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
- package/front_end/ui/legacy/ContextMenu.ts +2 -2
- package/front_end/ui/legacy/InplaceEditor.ts +18 -14
- package/front_end/ui/legacy/TabbedPane.ts +0 -14
- package/front_end/ui/legacy/UIUtils.ts +0 -7
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +20 -11
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +5 -22
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +6 -6
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +22 -4
- package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
- package/front_end/ui/legacy/textPrompt.css +1 -1
- package/front_end/ui/legacy/toolbar.css +4 -5
- package/front_end/ui/visual_logging/KnownContextValues.ts +174 -0
- package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
- package/package.json +7 -6
- package/scripts/build/ninja/bundle.gni +3 -3
- package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
- package/scripts/devtools_paths.py +8 -4
- package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
- package/scripts/tools/update_goldens_v2.py +1 -1
- package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
- /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -2,19 +2,20 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
-
import type * as Protocol from '
|
6
|
-
import * as Timeline from '
|
7
|
-
import {describeWithEnvironment} from '
|
5
|
+
import type * as Protocol from '../../../generated/protocol.js';
|
6
|
+
import * as Timeline from '../../../panels/timeline/timeline.js';
|
7
|
+
import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
|
8
8
|
import {
|
9
9
|
getMainThread,
|
10
10
|
makeCompleteEvent,
|
11
11
|
makeProfileCall,
|
12
|
-
} from '
|
13
|
-
import {TraceLoader} from '
|
14
|
-
import * as
|
15
|
-
import * as Trace from '../trace/trace.js';
|
12
|
+
} from '../../../testing/TraceHelpers.js';
|
13
|
+
import {TraceLoader} from '../../../testing/TraceLoader.js';
|
14
|
+
import * as Trace from '../trace.js';
|
16
15
|
|
17
|
-
|
16
|
+
import * as TraceTree from './TraceTree.js';
|
17
|
+
|
18
|
+
describeWithEnvironment('TraceTree', () => {
|
18
19
|
describe('TopDownRootNode', () => {
|
19
20
|
it('builds the root node and its children properly from an event tree', () => {
|
20
21
|
// This builds the following tree:
|
@@ -28,7 +29,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
28
29
|
eventB,
|
29
30
|
eventC,
|
30
31
|
];
|
31
|
-
const root = new
|
32
|
+
const root = new TraceTree.TopDownRootNode(
|
32
33
|
events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
|
33
34
|
|
34
35
|
const children = root.children();
|
@@ -56,14 +57,14 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
56
57
|
eventD,
|
57
58
|
eventB,
|
58
59
|
];
|
59
|
-
const root = new
|
60
|
+
const root = new TraceTree.TopDownRootNode(
|
60
61
|
events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
|
61
62
|
|
62
63
|
const rootChildren = root.children();
|
63
64
|
assert.strictEqual(rootChildren.size, 2);
|
64
65
|
|
65
66
|
const rootChildIterator = rootChildren.values();
|
66
|
-
const nodeA = rootChildIterator.next().value as
|
67
|
+
const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
|
67
68
|
assert.strictEqual(nodeA.event, eventA);
|
68
69
|
assert.strictEqual(rootChildIterator.next().value!.event, eventB);
|
69
70
|
|
@@ -91,7 +92,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
91
92
|
eventC,
|
92
93
|
eventD,
|
93
94
|
];
|
94
|
-
const root = new
|
95
|
+
const root = new TraceTree.TopDownRootNode(
|
95
96
|
events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
|
96
97
|
|
97
98
|
const rootChildren = root.children();
|
@@ -99,7 +100,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
99
100
|
|
100
101
|
const rootChildIterator = rootChildren.values();
|
101
102
|
assert.strictEqual(rootChildIterator.next().value!.event, eventA);
|
102
|
-
const nodeB = rootChildIterator.next().value as
|
103
|
+
const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
|
103
104
|
assert.strictEqual(nodeB.event, eventB);
|
104
105
|
|
105
106
|
const nodeBChildren = nodeB.children();
|
@@ -129,7 +130,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
129
130
|
eventD,
|
130
131
|
eventE,
|
131
132
|
];
|
132
|
-
const root = new
|
133
|
+
const root = new TraceTree.TopDownRootNode(
|
133
134
|
events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
|
134
135
|
|
135
136
|
const rootChildren = root.children();
|
@@ -139,7 +140,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
139
140
|
assert.strictEqual(
|
140
141
|
rootChildIterator.next().value!.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventA.dur));
|
141
142
|
|
142
|
-
const nodeB = rootChildIterator.next().value as
|
143
|
+
const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
|
143
144
|
const nodeBSelfTime = Trace.Types.Timing.MicroSeconds(eventB.dur - eventC.dur - eventD.dur);
|
144
145
|
assert.strictEqual(nodeB.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeBSelfTime));
|
145
146
|
|
@@ -176,7 +177,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
176
177
|
eventB,
|
177
178
|
eventC,
|
178
179
|
];
|
179
|
-
const root = new
|
180
|
+
const root = new TraceTree.TopDownRootNode(
|
180
181
|
events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
|
181
182
|
|
182
183
|
const children = root.children();
|
@@ -204,24 +205,24 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
204
205
|
eventD,
|
205
206
|
eventB,
|
206
207
|
];
|
207
|
-
const root = new
|
208
|
-
events, new
|
209
|
-
Trace.Types.Timing.MilliSeconds(
|
208
|
+
const root = new TraceTree.BottomUpRootNode(
|
209
|
+
events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
|
210
|
+
Trace.Types.Timing.MilliSeconds(200_000), null);
|
210
211
|
const rootChildren = root.children();
|
211
212
|
assert.strictEqual(rootChildren.size, 4);
|
212
213
|
|
213
214
|
const rootChildIterator = rootChildren.values();
|
214
215
|
|
215
|
-
const nodeC = rootChildIterator.next().value as
|
216
|
+
const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
|
216
217
|
assert.strictEqual(nodeC.event, eventC);
|
217
218
|
|
218
|
-
const nodeD = rootChildIterator.next().value as
|
219
|
+
const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
|
219
220
|
assert.strictEqual(nodeD.event, eventD);
|
220
221
|
|
221
|
-
const nodeA = rootChildIterator.next().value as
|
222
|
+
const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
|
222
223
|
assert.strictEqual(nodeA.event, eventA);
|
223
224
|
|
224
|
-
const nodeB = rootChildIterator.next().value as
|
225
|
+
const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
|
225
226
|
assert.strictEqual(nodeB.event, eventB);
|
226
227
|
|
227
228
|
const nodeCChildren = nodeC.children();
|
@@ -258,24 +259,24 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
258
259
|
eventD,
|
259
260
|
];
|
260
261
|
|
261
|
-
const root = new
|
262
|
-
events, new
|
263
|
-
Trace.Types.Timing.MilliSeconds(
|
262
|
+
const root = new TraceTree.BottomUpRootNode(
|
263
|
+
events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
|
264
|
+
Trace.Types.Timing.MilliSeconds(200_000), null);
|
264
265
|
const rootChildren = root.children();
|
265
266
|
assert.strictEqual(rootChildren.size, 4);
|
266
267
|
|
267
268
|
const rootChildIterator = rootChildren.values();
|
268
269
|
|
269
|
-
const nodeA = rootChildIterator.next().value as
|
270
|
+
const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
|
270
271
|
assert.strictEqual(nodeA.event, eventA);
|
271
272
|
|
272
|
-
const nodeC = rootChildIterator.next().value as
|
273
|
+
const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
|
273
274
|
assert.strictEqual(nodeC.event, eventC);
|
274
275
|
|
275
|
-
const nodeD = rootChildIterator.next().value as
|
276
|
+
const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
|
276
277
|
assert.strictEqual(nodeD.event, eventD);
|
277
278
|
|
278
|
-
const nodeB = rootChildIterator.next().value as
|
279
|
+
const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
|
279
280
|
assert.strictEqual(nodeB.event, eventB);
|
280
281
|
|
281
282
|
const nodeCChildren = nodeC.children();
|
@@ -314,9 +315,9 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
314
315
|
eventD,
|
315
316
|
eventE,
|
316
317
|
];
|
317
|
-
const root = new
|
318
|
-
events, new
|
319
|
-
Trace.Types.Timing.MilliSeconds(
|
318
|
+
const root = new TraceTree.BottomUpRootNode(
|
319
|
+
events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
|
320
|
+
Trace.Types.Timing.MilliSeconds(200_000), null);
|
320
321
|
|
321
322
|
const rootChildren = root.children();
|
322
323
|
assert.strictEqual(rootChildren.size, 5);
|
@@ -325,17 +326,17 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
325
326
|
assert.strictEqual(
|
326
327
|
rootChildIterator.next().value!.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventA.dur));
|
327
328
|
|
328
|
-
const nodeC = rootChildIterator.next().value as
|
329
|
+
const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
|
329
330
|
assert.strictEqual(nodeC.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventC.dur));
|
330
331
|
|
331
|
-
const nodeE = rootChildIterator.next().value as
|
332
|
+
const nodeE = rootChildIterator.next().value as TraceTree.TopDownNode;
|
332
333
|
assert.strictEqual(nodeE.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventE.dur));
|
333
334
|
|
334
|
-
const nodeD = rootChildIterator.next().value as
|
335
|
+
const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
|
335
336
|
const nodeDSelfTime = Trace.Types.Timing.MicroSeconds(eventD.dur - eventE.dur);
|
336
337
|
assert.strictEqual(nodeD.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeDSelfTime));
|
337
338
|
|
338
|
-
const nodeB = rootChildIterator.next().value as
|
339
|
+
const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
|
339
340
|
const nodeBSelfTime = Trace.Types.Timing.MicroSeconds(eventB.dur - eventC.dur - eventD.dur);
|
340
341
|
assert.strictEqual(nodeB.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeBSelfTime));
|
341
342
|
});
|
@@ -349,12 +350,12 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
349
350
|
const textFilter = new Timeline.TimelineFilters.TimelineRegExp();
|
350
351
|
const modelFilters = [
|
351
352
|
Timeline.TimelineUIUtils.TimelineUIUtils.visibleEventsFilter(),
|
352
|
-
new
|
353
|
+
new Trace.Extras.TraceFilter.ExclusiveNameFilter([
|
353
354
|
Trace.Types.Events.Name.RUN_TASK,
|
354
355
|
]),
|
355
356
|
];
|
356
|
-
const root =
|
357
|
-
mainThread.entries, textFilter, modelFilters, bounds.min, bounds.max, null);
|
357
|
+
const root =
|
358
|
+
new TraceTree.BottomUpRootNode(mainThread.entries, textFilter, modelFilters, bounds.min, bounds.max, null);
|
358
359
|
const rootChildren = root.children();
|
359
360
|
const values = Array.from(rootChildren.values());
|
360
361
|
// Find the list of profile calls that have been calculated as the top level rows in the Bottom Up table.
|
@@ -380,7 +381,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
380
381
|
if (!profileCallEntry) {
|
381
382
|
throw new Error('Could not find a profile call');
|
382
383
|
}
|
383
|
-
const eventId =
|
384
|
+
const eventId = TraceTree.generateEventID(profileCallEntry);
|
384
385
|
assert.strictEqual(eventId, 'f:performConcurrentWorkOnRoot@7');
|
385
386
|
});
|
386
387
|
|
@@ -397,7 +398,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
397
398
|
if (!profileCallEntry) {
|
398
399
|
throw new Error('Could not find a profile call');
|
399
400
|
}
|
400
|
-
const eventId =
|
401
|
+
const eventId = TraceTree.generateEventID(profileCallEntry);
|
401
402
|
assert.strictEqual(eventId, 'f:Compile@0');
|
402
403
|
});
|
403
404
|
});
|
@@ -405,7 +406,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
|
|
405
406
|
describe('eventStackFrame', () => {
|
406
407
|
it('extracts the stackFrame for ProfileCalls', async function() {
|
407
408
|
const event = makeProfileCall('somefunc', 100, 10, undefined, undefined, undefined, 'https://x.com/file.mjs');
|
408
|
-
const stackFrame =
|
409
|
+
const stackFrame = TraceTree.eventStackFrame(event) as Protocol.Runtime.CallFrame;
|
409
410
|
assert.strictEqual(stackFrame.functionName, 'somefunc');
|
410
411
|
assert.strictEqual(stackFrame.url, 'https://x.com/file.mjs');
|
411
412
|
});
|
package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts}
RENAMED
@@ -2,23 +2,24 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
-
import type * as Protocol from '
|
6
|
-
import * as
|
5
|
+
import type * as Protocol from '../../../generated/protocol.js';
|
6
|
+
import * as Helpers from '../helpers/helpers.js';
|
7
|
+
import * as Types from '../types/types.js';
|
7
8
|
|
8
9
|
import {TimelineJSProfileProcessor} from './TimelineJSProfile.js';
|
9
|
-
import type {
|
10
|
+
import type {TraceFilter} from './TraceFilter.js';
|
10
11
|
|
11
12
|
export class Node {
|
12
13
|
totalTime: number;
|
13
14
|
selfTime: number;
|
14
15
|
id: string|symbol;
|
15
|
-
event:
|
16
|
+
event: Types.Events.Event|null;
|
16
17
|
parent!: Node|null;
|
17
18
|
groupId: string;
|
18
19
|
isGroupNodeInternal: boolean;
|
19
20
|
depth: number;
|
20
21
|
|
21
|
-
constructor(id: string|symbol, event:
|
22
|
+
constructor(id: string|symbol, event: Types.Events.Event|null) {
|
22
23
|
this.totalTime = 0;
|
23
24
|
this.selfTime = 0;
|
24
25
|
this.id = id;
|
@@ -48,7 +49,7 @@ export class Node {
|
|
48
49
|
throw 'Not implemented';
|
49
50
|
}
|
50
51
|
|
51
|
-
searchTree(matchFunction: (arg0:
|
52
|
+
searchTree(matchFunction: (arg0: Types.Events.Event) => boolean, results?: Node[]): Node[] {
|
52
53
|
results = results || [];
|
53
54
|
if (this.event && matchFunction(this.event)) {
|
54
55
|
results.push(this);
|
@@ -66,7 +67,7 @@ export class TopDownNode extends Node {
|
|
66
67
|
childrenInternal: ChildrenCache|null;
|
67
68
|
override parent: TopDownNode|null;
|
68
69
|
|
69
|
-
constructor(id: string|symbol, event:
|
70
|
+
constructor(id: string|symbol, event: Types.Events.Event|null, parent: TopDownNode|null) {
|
70
71
|
super(id, event);
|
71
72
|
this.root = parent && parent.root;
|
72
73
|
this.hasChildrenInternal = false;
|
@@ -102,7 +103,7 @@ export class TopDownNode extends Node {
|
|
102
103
|
}
|
103
104
|
const startTime = root.startTime;
|
104
105
|
const endTime = root.endTime;
|
105
|
-
const instantEventCallback = root.doNotAggregate ? onInstantEvent : undefined;
|
106
|
+
const instantEventCallback = (root.doNotAggregate || root.includeInstantEvents) ? onInstantEvent : undefined;
|
106
107
|
const eventIdCallback = root.doNotAggregate ? undefined : generateEventID;
|
107
108
|
const eventGroupIdCallback = root.getEventGroupIdCallback();
|
108
109
|
let depth = 0;
|
@@ -112,21 +113,21 @@ export class TopDownNode extends Node {
|
|
112
113
|
let currentDirectChild: Node|null = null;
|
113
114
|
|
114
115
|
// Walk on the full event tree to find this node's children.
|
115
|
-
|
116
|
+
Helpers.Trace.forEachEvent(
|
116
117
|
root.events,
|
117
118
|
{
|
118
119
|
onStartEvent,
|
119
120
|
onEndEvent,
|
120
121
|
onInstantEvent: instantEventCallback,
|
121
|
-
startTime:
|
122
|
-
endTime:
|
122
|
+
startTime: Helpers.Timing.millisecondsToMicroseconds(startTime),
|
123
|
+
endTime: Helpers.Timing.millisecondsToMicroseconds(endTime),
|
123
124
|
eventFilter: root.filter,
|
124
125
|
ignoreAsyncEvents: false,
|
125
126
|
},
|
126
127
|
);
|
127
128
|
|
128
|
-
function onStartEvent(e:
|
129
|
-
const {startTime: currentStartTime, endTime: currentEndTime} =
|
129
|
+
function onStartEvent(e: Types.Events.Event): void {
|
130
|
+
const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
|
130
131
|
|
131
132
|
++depth;
|
132
133
|
if (depth > path.length + 2) {
|
@@ -143,7 +144,7 @@ export class TopDownNode extends Node {
|
|
143
144
|
processEvent(e, duration);
|
144
145
|
}
|
145
146
|
|
146
|
-
function onInstantEvent(e:
|
147
|
+
function onInstantEvent(e: Types.Events.Event): void {
|
147
148
|
++depth;
|
148
149
|
if (matchedDepth === path.length && depth <= path.length + 2) {
|
149
150
|
processEvent(e, 0);
|
@@ -154,7 +155,7 @@ export class TopDownNode extends Node {
|
|
154
155
|
/**
|
155
156
|
* Creates a child node.
|
156
157
|
*/
|
157
|
-
function processEvent(e:
|
158
|
+
function processEvent(e: Types.Events.Event, duration: number): void {
|
158
159
|
if (depth === path.length + 2) {
|
159
160
|
if (!currentDirectChild) {
|
160
161
|
return;
|
@@ -191,8 +192,8 @@ export class TopDownNode extends Node {
|
|
191
192
|
* is a child of this node. As the check is done, the partial result
|
192
193
|
* is cached on `matchedDepth`, for future checks.
|
193
194
|
*/
|
194
|
-
function matchPath(e:
|
195
|
-
const {endTime} =
|
195
|
+
function matchPath(e: Types.Events.Event): boolean {
|
196
|
+
const {endTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
|
196
197
|
if (matchedDepth === path.length) {
|
197
198
|
return true;
|
198
199
|
}
|
@@ -236,27 +237,32 @@ export class TopDownNode extends Node {
|
|
236
237
|
}
|
237
238
|
|
238
239
|
export class TopDownRootNode extends TopDownNode {
|
239
|
-
readonly filter: (e:
|
240
|
-
|
241
|
-
readonly
|
242
|
-
readonly
|
243
|
-
|
240
|
+
readonly filter: (e: Types.Events.Event) => boolean;
|
241
|
+
/** This is all events passed in to create the tree, and it's very likely that it included events outside of the passed startTime/endTime as that filtering is done in `Helpers.Trace.forEachEvent` */
|
242
|
+
readonly events: Types.Events.Event[];
|
243
|
+
readonly startTime: Types.Timing.MilliSeconds;
|
244
|
+
readonly endTime: Types.Timing.MilliSeconds;
|
245
|
+
eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null|undefined;
|
246
|
+
/** Default behavior is to aggregate similar trace events into one Node based on generateEventID(), eventGroupIdCallback(), etc. Set true to keep nodes 1:1 with events. */
|
244
247
|
readonly doNotAggregate: boolean|undefined;
|
248
|
+
readonly includeInstantEvents?: boolean;
|
245
249
|
override totalTime: number;
|
246
250
|
override selfTime: number;
|
247
251
|
|
248
252
|
constructor(
|
249
|
-
events:
|
250
|
-
endTime:
|
251
|
-
eventGroupIdCallback?: ((arg0:
|
253
|
+
events: Types.Events.Event[], filters: TraceFilter[], startTime: Types.Timing.MilliSeconds,
|
254
|
+
endTime: Types.Timing.MilliSeconds, doNotAggregate?: boolean,
|
255
|
+
eventGroupIdCallback?: ((arg0: Types.Events.Event) => string)|null, includeInstantEvents?: boolean) {
|
252
256
|
super('', null, null);
|
253
257
|
this.root = this;
|
254
258
|
this.events = events;
|
255
|
-
this.filter = (e:
|
259
|
+
this.filter = (e: Types.Events.Event): boolean => filters.every(f => f.accept(e));
|
256
260
|
this.startTime = startTime;
|
257
261
|
this.endTime = endTime;
|
258
262
|
this.eventGroupIdCallback = eventGroupIdCallback;
|
259
263
|
this.doNotAggregate = doNotAggregate;
|
264
|
+
this.includeInstantEvents = includeInstantEvents;
|
265
|
+
|
260
266
|
this.totalTime = endTime - startTime;
|
261
267
|
this.selfTime = this.totalTime;
|
262
268
|
}
|
@@ -290,30 +296,30 @@ export class TopDownRootNode extends TopDownNode {
|
|
290
296
|
return groupNodes;
|
291
297
|
}
|
292
298
|
|
293
|
-
getEventGroupIdCallback(): ((arg0:
|
299
|
+
getEventGroupIdCallback(): ((arg0: Types.Events.Event) => string)|null|undefined {
|
294
300
|
return this.eventGroupIdCallback;
|
295
301
|
}
|
296
302
|
}
|
297
303
|
|
298
304
|
export class BottomUpRootNode extends Node {
|
299
305
|
private childrenInternal: ChildrenCache|null;
|
300
|
-
readonly events:
|
301
|
-
private textFilter:
|
302
|
-
readonly filter: (e:
|
303
|
-
readonly startTime:
|
304
|
-
readonly endTime:
|
305
|
-
private eventGroupIdCallback: ((arg0:
|
306
|
+
readonly events: Types.Events.Event[];
|
307
|
+
private textFilter: TraceFilter;
|
308
|
+
readonly filter: (e: Types.Events.Event) => boolean;
|
309
|
+
readonly startTime: Types.Timing.MilliSeconds;
|
310
|
+
readonly endTime: Types.Timing.MilliSeconds;
|
311
|
+
private eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null;
|
306
312
|
override totalTime: number;
|
307
313
|
|
308
314
|
constructor(
|
309
|
-
events:
|
310
|
-
startTime:
|
311
|
-
eventGroupIdCallback: ((arg0:
|
315
|
+
events: Types.Events.Event[], textFilter: TraceFilter, filters: TraceFilter[],
|
316
|
+
startTime: Types.Timing.MilliSeconds, endTime: Types.Timing.MilliSeconds,
|
317
|
+
eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null) {
|
312
318
|
super('', null);
|
313
319
|
this.childrenInternal = null;
|
314
320
|
this.events = events;
|
315
321
|
this.textFilter = textFilter;
|
316
|
-
this.filter = (e:
|
322
|
+
this.filter = (e: Types.Events.Event): boolean => filters.every(f => f.accept(e));
|
317
323
|
this.startTime = startTime;
|
318
324
|
this.endTime = endTime;
|
319
325
|
this.eventGroupIdCallback = eventGroupIdCallback;
|
@@ -349,20 +355,20 @@ export class BottomUpRootNode extends Node {
|
|
349
355
|
const selfTimeStack: number[] = [endTime - startTime];
|
350
356
|
const firstNodeStack: boolean[] = [];
|
351
357
|
const totalTimeById = new Map<string, number>();
|
352
|
-
|
358
|
+
Helpers.Trace.forEachEvent(
|
353
359
|
this.events,
|
354
360
|
{
|
355
361
|
onStartEvent,
|
356
362
|
onEndEvent,
|
357
|
-
startTime:
|
358
|
-
endTime:
|
363
|
+
startTime: Helpers.Timing.millisecondsToMicroseconds(this.startTime),
|
364
|
+
endTime: Helpers.Timing.millisecondsToMicroseconds(this.endTime),
|
359
365
|
eventFilter: this.filter,
|
360
366
|
ignoreAsyncEvents: false,
|
361
367
|
},
|
362
368
|
);
|
363
369
|
|
364
|
-
function onStartEvent(e:
|
365
|
-
const {startTime: currentStartTime, endTime: currentEndTime} =
|
370
|
+
function onStartEvent(e: Types.Events.Event): void {
|
371
|
+
const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
|
366
372
|
|
367
373
|
const actualEndTime = currentEndTime !== undefined ? Math.min(currentEndTime, endTime) : endTime;
|
368
374
|
const duration = actualEndTime - Math.max(currentStartTime, startTime);
|
@@ -376,7 +382,7 @@ export class BottomUpRootNode extends Node {
|
|
376
382
|
firstNodeStack.push(noNodeOnStack);
|
377
383
|
}
|
378
384
|
|
379
|
-
function onEndEvent(event:
|
385
|
+
function onEndEvent(event: Types.Events.Event): void {
|
380
386
|
const id = generateEventID(event);
|
381
387
|
let node = nodeById.get(id);
|
382
388
|
if (!node) {
|
@@ -428,7 +434,7 @@ export class GroupNode extends Node {
|
|
428
434
|
private readonly childrenInternal: ChildrenCache;
|
429
435
|
override isGroupNodeInternal: boolean;
|
430
436
|
|
431
|
-
constructor(id: string, parent: BottomUpRootNode|TopDownRootNode, event:
|
437
|
+
constructor(id: string, parent: BottomUpRootNode|TopDownRootNode, event: Types.Events.Event) {
|
432
438
|
super(id, event);
|
433
439
|
this.childrenInternal = new Map();
|
434
440
|
this.parent = parent;
|
@@ -458,7 +464,7 @@ export class BottomUpNode extends Node {
|
|
458
464
|
private cachedChildren: ChildrenCache|null;
|
459
465
|
private hasChildrenInternal: boolean;
|
460
466
|
|
461
|
-
constructor(root: BottomUpRootNode, id: string, event:
|
467
|
+
constructor(root: BottomUpRootNode, id: string, event: Types.Events.Event, hasChildren: boolean, parent: Node) {
|
462
468
|
super(id, event);
|
463
469
|
this.parent = parent;
|
464
470
|
this.root = root;
|
@@ -481,25 +487,25 @@ export class BottomUpNode extends Node {
|
|
481
487
|
}
|
482
488
|
const selfTimeStack: number[] = [0];
|
483
489
|
const eventIdStack: string[] = [];
|
484
|
-
const eventStack:
|
490
|
+
const eventStack: Types.Events.Event[] = [];
|
485
491
|
const nodeById = new Map<string, BottomUpNode>();
|
486
492
|
const startTime = this.root.startTime;
|
487
493
|
const endTime = this.root.endTime;
|
488
494
|
let lastTimeMarker: number = startTime;
|
489
495
|
const self = this;
|
490
|
-
|
496
|
+
Helpers.Trace.forEachEvent(
|
491
497
|
this.root.events,
|
492
498
|
{
|
493
499
|
onStartEvent,
|
494
500
|
onEndEvent,
|
495
|
-
startTime:
|
496
|
-
endTime:
|
501
|
+
startTime: Helpers.Timing.millisecondsToMicroseconds(startTime),
|
502
|
+
endTime: Helpers.Timing.millisecondsToMicroseconds(endTime),
|
497
503
|
eventFilter: this.root.filter,
|
498
504
|
ignoreAsyncEvents: false,
|
499
505
|
},
|
500
506
|
);
|
501
|
-
function onStartEvent(e:
|
502
|
-
const {startTime: currentStartTime, endTime: currentEndTime} =
|
507
|
+
function onStartEvent(e: Types.Events.Event): void {
|
508
|
+
const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
|
503
509
|
const actualEndTime = currentEndTime !== undefined ? Math.min(currentEndTime, endTime) : endTime;
|
504
510
|
const duration = actualEndTime - Math.max(currentStartTime, startTime);
|
505
511
|
if (duration < 0) {
|
@@ -512,8 +518,8 @@ export class BottomUpNode extends Node {
|
|
512
518
|
eventStack.push(e);
|
513
519
|
}
|
514
520
|
|
515
|
-
function onEndEvent(e:
|
516
|
-
const {startTime: currentStartTime, endTime: currentEndTime} =
|
521
|
+
function onEndEvent(e: Types.Events.Event): void {
|
522
|
+
const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
|
517
523
|
const selfTime = selfTimeStack.pop();
|
518
524
|
const id = eventIdStack.pop();
|
519
525
|
eventStack.pop();
|
@@ -545,7 +551,7 @@ export class BottomUpNode extends Node {
|
|
545
551
|
return this.cachedChildren;
|
546
552
|
}
|
547
553
|
|
548
|
-
override searchTree(matchFunction: (arg0:
|
554
|
+
override searchTree(matchFunction: (arg0: Types.Events.Event) => boolean, results?: Node[]): Node[] {
|
549
555
|
results = results || [];
|
550
556
|
if (this.event && matchFunction(this.event)) {
|
551
557
|
results.push(this);
|
@@ -554,8 +560,8 @@ export class BottomUpNode extends Node {
|
|
554
560
|
}
|
555
561
|
}
|
556
562
|
|
557
|
-
export function eventStackFrame(event:
|
558
|
-
if (
|
563
|
+
export function eventStackFrame(event: Types.Events.Event): Protocol.Runtime.CallFrame|null {
|
564
|
+
if (Types.Events.isProfileCall(event)) {
|
559
565
|
return event.callFrame;
|
560
566
|
}
|
561
567
|
const topFrame = event.args?.data?.stackTrace?.[0];
|
@@ -565,8 +571,8 @@ export function eventStackFrame(event: Trace.Types.Events.Event): Protocol.Runti
|
|
565
571
|
return {...topFrame, scriptId: String(topFrame.scriptId) as Protocol.Runtime.ScriptId};
|
566
572
|
}
|
567
573
|
|
568
|
-
export function generateEventID(event:
|
569
|
-
if (
|
574
|
+
export function generateEventID(event: Types.Events.Event): string {
|
575
|
+
if (Types.Events.isProfileCall(event)) {
|
570
576
|
const name = TimelineJSProfileProcessor.isNativeRuntimeFrame(event.callFrame) ?
|
571
577
|
TimelineJSProfileProcessor.nativeGroup(event.callFrame.functionName) :
|
572
578
|
event.callFrame.functionName;
|
@@ -574,7 +580,7 @@ export function generateEventID(event: Trace.Types.Events.Event): string {
|
|
574
580
|
return `f:${name}@${location}`;
|
575
581
|
}
|
576
582
|
|
577
|
-
if (
|
583
|
+
if (Types.Events.isTimeStamp(event)) {
|
578
584
|
return `${event.name}:${event.args.data.message}`;
|
579
585
|
}
|
580
586
|
|
@@ -7,4 +7,7 @@ export * as FilmStrip from './FilmStrip.js';
|
|
7
7
|
export * as MainThreadActivity from './MainThreadActivity.js';
|
8
8
|
export * as Metadata from './Metadata.js';
|
9
9
|
export * as ThirdParties from './ThirdParties.js';
|
10
|
+
export * as TimelineJSProfile from './TimelineJSProfile.js';
|
11
|
+
export * as TraceFilter from './TraceFilter.js';
|
12
|
+
export * as TraceTree from './TraceTree.js';
|
10
13
|
export * as URLForEntry from './URLForEntry.js';
|
@@ -5,15 +5,12 @@
|
|
5
5
|
import * as Helpers from '../helpers/helpers.js';
|
6
6
|
import * as Types from '../types/types.js';
|
7
7
|
|
8
|
-
import {HandlerState} from './types.js';
|
9
|
-
|
10
8
|
const animations: Types.Events.Animation[] = [];
|
11
9
|
const animationsSyntheticEvents: Types.Events.SyntheticAnimationPair[] = [];
|
12
10
|
|
13
11
|
export interface AnimationData {
|
14
12
|
animations: readonly Types.Events.SyntheticAnimationPair[];
|
15
13
|
}
|
16
|
-
let handlerState = HandlerState.UNINITIALIZED;
|
17
14
|
|
18
15
|
export function reset(): void {
|
19
16
|
animations.length = 0;
|
@@ -30,14 +27,9 @@ export function handleEvent(event: Types.Events.Event): void {
|
|
30
27
|
export async function finalize(): Promise<void> {
|
31
28
|
const syntheticEvents = Helpers.Trace.createMatchedSortedSyntheticEvents(animations);
|
32
29
|
animationsSyntheticEvents.push(...syntheticEvents);
|
33
|
-
handlerState = HandlerState.FINALIZED;
|
34
30
|
}
|
35
31
|
|
36
32
|
export function data(): AnimationData {
|
37
|
-
if (handlerState !== HandlerState.FINALIZED) {
|
38
|
-
throw new Error('Animation handler is not finalized');
|
39
|
-
}
|
40
|
-
|
41
33
|
return {
|
42
34
|
animations: animationsSyntheticEvents,
|
43
35
|
};
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import * as Helpers from '../helpers/helpers.js';
|
6
6
|
import * as Types from '../types/types.js';
|
7
7
|
|
8
|
-
import
|
8
|
+
import type {HandlerName} from './types.js';
|
9
9
|
import {data as userTimingsData} from './UserTimingsHandler.js';
|
10
10
|
|
11
11
|
const extensionFlameChartEntries: Types.Extensions.SyntheticExtensionTrackEntry[] = [];
|
@@ -18,14 +18,12 @@ export interface ExtensionTraceData {
|
|
18
18
|
extensionMarkers: readonly Types.Extensions.SyntheticExtensionMarker[];
|
19
19
|
entryToNode: Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>;
|
20
20
|
}
|
21
|
-
let handlerState = HandlerState.UNINITIALIZED;
|
22
21
|
|
23
22
|
export function handleEvent(_event: Types.Events.Event): void {
|
24
23
|
// Implementation not needed because data is sourced from UserTimingsHandler
|
25
24
|
}
|
26
25
|
|
27
26
|
export function reset(): void {
|
28
|
-
handlerState = HandlerState.INITIALIZED;
|
29
27
|
extensionFlameChartEntries.length = 0;
|
30
28
|
extensionTrackData.length = 0;
|
31
29
|
extensionMarkers.length = 0;
|
@@ -33,11 +31,7 @@ export function reset(): void {
|
|
33
31
|
}
|
34
32
|
|
35
33
|
export async function finalize(): Promise<void> {
|
36
|
-
if (handlerState !== HandlerState.INITIALIZED) {
|
37
|
-
throw new Error('ExtensionTraceData handler is not initialized');
|
38
|
-
}
|
39
34
|
createExtensionFlameChartEntries();
|
40
|
-
handlerState = HandlerState.FINALIZED;
|
41
35
|
}
|
42
36
|
|
43
37
|
function createExtensionFlameChartEntries(): void {
|
@@ -120,10 +114,6 @@ export function extensionDataInTiming(timing: Types.Events.SyntheticUserTimingPa
|
|
120
114
|
}
|
121
115
|
|
122
116
|
export function data(): ExtensionTraceData {
|
123
|
-
if (handlerState !== HandlerState.FINALIZED) {
|
124
|
-
throw new Error('ExtensionTraceData handler is not finalized');
|
125
|
-
}
|
126
|
-
|
127
117
|
return {
|
128
118
|
entryToNode,
|
129
119
|
extensionTrackData: [...extensionTrackData],
|