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,7 +2,6 @@
|
|
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 TimelineModel from '../../models/timeline_model/timeline_model.js';
|
6
5
|
import * as Trace from '../../models/trace/trace.js';
|
7
6
|
import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
|
8
7
|
import {TraceLoader} from '../../testing/TraceLoader.js';
|
@@ -35,13 +34,13 @@ describeWithEnvironment('TimelineTreeView', function() {
|
|
35
34
|
eventTreeView.setModelWithEvents(consoleTimings, parsedTrace);
|
36
35
|
const tree = eventTreeView.buildTree();
|
37
36
|
const topNodesIterator = tree.children().values();
|
38
|
-
const firstNode = topNodesIterator.next().value as
|
37
|
+
const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
39
38
|
assert.strictEqual(firstNode.event?.name, 'first console time');
|
40
39
|
|
41
|
-
const secondNode = topNodesIterator.next().value as
|
40
|
+
const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
42
41
|
assert.strictEqual(secondNode.event?.name, 'third console time');
|
43
42
|
|
44
|
-
const bottomNode = firstNode.children().values().next().value as
|
43
|
+
const bottomNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
|
45
44
|
assert.strictEqual(bottomNode.event?.name, 'second console time');
|
46
45
|
});
|
47
46
|
|
@@ -52,10 +51,10 @@ describeWithEnvironment('TimelineTreeView', function() {
|
|
52
51
|
eventTreeView.setModelWithEvents(consoleTimings, parsedTrace);
|
53
52
|
const tree = eventTreeView.buildTree();
|
54
53
|
const topNodesIterator = tree.children().values();
|
55
|
-
const firstNode = topNodesIterator.next().value as
|
54
|
+
const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
56
55
|
assert.strictEqual(firstNode.event?.name, 'mark1');
|
57
56
|
|
58
|
-
const secondNode = topNodesIterator.next().value as
|
57
|
+
const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
59
58
|
assert.strictEqual(secondNode.event?.name, 'mark3');
|
60
59
|
});
|
61
60
|
|
@@ -110,16 +109,16 @@ describeWithEnvironment('TimelineTreeView', function() {
|
|
110
109
|
|
111
110
|
const tree = bottomUpTreeView.buildTree();
|
112
111
|
const topNodesIterator = tree.children().values();
|
113
|
-
const firstNode = topNodesIterator.next().value as
|
112
|
+
const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
114
113
|
assert.strictEqual(firstNode.event?.name, 'second console time');
|
115
114
|
|
116
|
-
const secondNode = topNodesIterator.next().value as
|
115
|
+
const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
117
116
|
assert.strictEqual(secondNode.event?.name, 'first console time');
|
118
117
|
|
119
|
-
const thirdNode = topNodesIterator.next().value as
|
118
|
+
const thirdNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
120
119
|
assert.strictEqual(thirdNode.event?.name, 'third console time');
|
121
120
|
|
122
|
-
const childNode = firstNode.children().values().next().value as
|
121
|
+
const childNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
|
123
122
|
assert.strictEqual(childNode.event?.name, 'first console time');
|
124
123
|
});
|
125
124
|
});
|
@@ -136,13 +135,13 @@ describeWithEnvironment('TimelineTreeView', function() {
|
|
136
135
|
|
137
136
|
const tree = callTreeView.buildTree();
|
138
137
|
const topNodesIterator = tree.children().values();
|
139
|
-
const firstNode = topNodesIterator.next().value as
|
138
|
+
const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
140
139
|
assert.strictEqual(firstNode.event?.name, 'first console time');
|
141
140
|
|
142
|
-
const secondNode = topNodesIterator.next().value as
|
141
|
+
const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
|
143
142
|
assert.strictEqual(secondNode.event?.name, 'third console time');
|
144
143
|
|
145
|
-
const childNode = firstNode.children().values().next().value as
|
144
|
+
const childNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
|
146
145
|
assert.strictEqual(childNode.event?.name, 'second console time');
|
147
146
|
});
|
148
147
|
});
|
@@ -6,7 +6,6 @@ import * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
7
7
|
import * as Platform from '../../core/platform/platform.js';
|
8
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
9
|
-
import * as TimelineModel from '../../models/timeline_model/timeline_model.js';
|
10
9
|
import * as Trace from '../../models/trace/trace.js';
|
11
10
|
import * as ThirdPartyWeb from '../../third_party/third-party-web/third-party-web.js';
|
12
11
|
import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
@@ -152,12 +151,12 @@ const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelineTreeView.ts',
|
|
152
151
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
153
152
|
export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableView.Searchable {
|
154
153
|
#selectedEvents: Trace.Types.Events.Event[]|null;
|
155
|
-
private searchResults:
|
154
|
+
private searchResults: Trace.Extras.TraceTree.Node[];
|
156
155
|
linkifier!: Components.Linkifier.Linkifier;
|
157
156
|
dataGrid!: DataGrid.SortableDataGrid.SortableDataGrid<GridNode>;
|
158
|
-
private lastHoveredProfileNode!:
|
157
|
+
private lastHoveredProfileNode!: Trace.Extras.TraceTree.Node|null;
|
159
158
|
private textFilterInternal!: TimelineRegExp;
|
160
|
-
private taskFilter!:
|
159
|
+
private taskFilter!: Trace.Extras.TraceFilter.ExclusiveNameFilter;
|
161
160
|
protected startTime!: Trace.Types.Timing.MilliSeconds;
|
162
161
|
protected endTime!: Trace.Types.Timing.MilliSeconds;
|
163
162
|
splitWidget!: UI.SplitWidget.SplitWidget;
|
@@ -166,8 +165,8 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
166
165
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
167
166
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
168
167
|
private currentThreadSetting?: Common.Settings.Setting<any>;
|
169
|
-
private lastSelectedNodeInternal?:
|
170
|
-
private root?:
|
168
|
+
private lastSelectedNodeInternal?: Trace.Extras.TraceTree.Node|null;
|
169
|
+
private root?: Trace.Extras.TraceTree.Node;
|
171
170
|
private currentResult?: number;
|
172
171
|
textFilterUI?: UI.Toolbar.ToolbarInput;
|
173
172
|
private caseSensitiveButton: UI.Toolbar.ToolbarToggle|undefined;
|
@@ -211,7 +210,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
211
210
|
init(): void {
|
212
211
|
this.linkifier = new Components.Linkifier.Linkifier();
|
213
212
|
|
214
|
-
this.taskFilter = new
|
213
|
+
this.taskFilter = new Trace.Extras.TraceFilter.ExclusiveNameFilter([
|
215
214
|
Trace.Types.Events.Name.RUN_TASK,
|
216
215
|
]);
|
217
216
|
this.textFilterInternal = new TimelineRegExp();
|
@@ -254,7 +253,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
254
253
|
this.lastSelectedNodeInternal;
|
255
254
|
}
|
256
255
|
|
257
|
-
lastSelectedNode():
|
256
|
+
lastSelectedNode(): Trace.Extras.TraceTree.Node|null|undefined {
|
258
257
|
return this.lastSelectedNodeInternal;
|
259
258
|
}
|
260
259
|
|
@@ -270,11 +269,11 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
270
269
|
this.refreshTree();
|
271
270
|
}
|
272
271
|
|
273
|
-
filters():
|
272
|
+
filters(): Trace.Extras.TraceFilter.TraceFilter[] {
|
274
273
|
return [this.taskFilter, this.textFilterInternal, ...(ActiveFilters.instance().activeFilters())];
|
275
274
|
}
|
276
275
|
|
277
|
-
filtersWithoutTextFilter():
|
276
|
+
filtersWithoutTextFilter(): Trace.Extras.TraceFilter.TraceFilter[] {
|
278
277
|
return [this.taskFilter, ...(ActiveFilters.instance().activeFilters())];
|
279
278
|
}
|
280
279
|
|
@@ -319,16 +318,15 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
319
318
|
return this.#selectedEvents || [];
|
320
319
|
}
|
321
320
|
|
322
|
-
onHover(_node:
|
321
|
+
onHover(_node: Trace.Extras.TraceTree.Node|null): void {
|
323
322
|
}
|
324
323
|
|
325
|
-
appendContextMenuItems(_contextMenu: UI.ContextMenu.ContextMenu, _node:
|
326
|
-
void {
|
324
|
+
appendContextMenuItems(_contextMenu: UI.ContextMenu.ContextMenu, _node: Trace.Extras.TraceTree.Node): void {
|
327
325
|
}
|
328
326
|
|
329
|
-
selectProfileNode(treeNode:
|
327
|
+
selectProfileNode(treeNode: Trace.Extras.TraceTree.Node, suppressSelectedEvent: boolean): void {
|
330
328
|
const pathToRoot = [];
|
331
|
-
let node: (
|
329
|
+
let node: (Trace.Extras.TraceTree.Node|null)|Trace.Extras.TraceTree.Node = treeNode;
|
332
330
|
for (; node; node = node.parent) {
|
333
331
|
pathToRoot.push(node);
|
334
332
|
}
|
@@ -385,13 +383,13 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
385
383
|
}
|
386
384
|
}
|
387
385
|
|
388
|
-
buildTree():
|
386
|
+
buildTree(): Trace.Extras.TraceTree.Node {
|
389
387
|
throw new Error('Not Implemented');
|
390
388
|
}
|
391
389
|
|
392
390
|
buildTopDownTree(doNotAggregate: boolean, groupIdCallback: ((arg0: Trace.Types.Events.Event) => string)|null):
|
393
|
-
|
394
|
-
return new
|
391
|
+
Trace.Extras.TraceTree.Node {
|
392
|
+
return new Trace.Extras.TraceTree.TopDownRootNode(
|
395
393
|
this.selectedEvents(), this.filters(), this.startTime, this.endTime, doNotAggregate, groupIdCallback);
|
396
394
|
}
|
397
395
|
|
@@ -521,7 +519,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
521
519
|
UI.UIUtils.createTextChild(banner, i18nString(UIStrings.selectItemForDetails));
|
522
520
|
}
|
523
521
|
|
524
|
-
showDetailsForNode(_node:
|
522
|
+
showDetailsForNode(_node: Trace.Extras.TraceTree.Node): boolean {
|
525
523
|
return false;
|
526
524
|
}
|
527
525
|
|
@@ -551,7 +549,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
551
549
|
}
|
552
550
|
}
|
553
551
|
|
554
|
-
dataGridNodeForTreeNode(treeNode:
|
552
|
+
dataGridNodeForTreeNode(treeNode: Trace.Extras.TraceTree.Node): GridNode|null {
|
555
553
|
return profileNodeToTreeGridNode.get(treeNode) || null;
|
556
554
|
}
|
557
555
|
|
@@ -601,7 +599,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
|
|
601
599
|
|
602
600
|
export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<GridNode> {
|
603
601
|
protected populated: boolean;
|
604
|
-
profileNode:
|
602
|
+
profileNode: Trace.Extras.TraceTree.Node;
|
605
603
|
protected treeView: TimelineTreeView;
|
606
604
|
protected grandTotalTime: number;
|
607
605
|
protected maxSelfTime: number;
|
@@ -609,8 +607,8 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
|
|
609
607
|
linkElement: Element|null;
|
610
608
|
|
611
609
|
constructor(
|
612
|
-
profileNode:
|
613
|
-
|
610
|
+
profileNode: Trace.Extras.TraceTree.Node, grandTotalTime: number, maxSelfTime: number, maxTotalTime: number,
|
611
|
+
treeView: TimelineTreeView) {
|
614
612
|
super(null, false);
|
615
613
|
this.populated = false;
|
616
614
|
this.profileNode = profileNode;
|
@@ -718,8 +716,8 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
|
|
718
716
|
|
719
717
|
export class TreeGridNode extends GridNode {
|
720
718
|
constructor(
|
721
|
-
profileNode:
|
722
|
-
|
719
|
+
profileNode: Trace.Extras.TraceTree.Node, grandTotalTime: number, maxSelfTime: number, maxTotalTime: number,
|
720
|
+
treeView: TimelineTreeView) {
|
723
721
|
super(profileNode, grandTotalTime, maxSelfTime, maxTotalTime, treeView);
|
724
722
|
this.setHasChildren(this.profileNode.hasChildren());
|
725
723
|
profileNodeToTreeGridNode.set(profileNode, this);
|
@@ -740,7 +738,7 @@ export class TreeGridNode extends GridNode {
|
|
740
738
|
}
|
741
739
|
}
|
742
740
|
|
743
|
-
const profileNodeToTreeGridNode = new WeakMap<
|
741
|
+
const profileNodeToTreeGridNode = new WeakMap<Trace.Extras.TraceTree.Node, TreeGridNode>();
|
744
742
|
|
745
743
|
export class AggregatedTimelineTreeView extends TimelineTreeView {
|
746
744
|
protected readonly groupBySetting: Common.Settings.Setting<AggregatedTimelineTreeView.GroupBy>;
|
@@ -790,7 +788,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
790
788
|
return name;
|
791
789
|
}
|
792
790
|
|
793
|
-
displayInfoForGroupNode(node:
|
791
|
+
displayInfoForGroupNode(node: Trace.Extras.TraceTree.Node): {
|
794
792
|
name: string,
|
795
793
|
color: string,
|
796
794
|
icon: (Element|undefined),
|
@@ -863,17 +861,15 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
863
861
|
i18nString(UIStrings.heaviestStackShown), i18nString(UIStrings.heaviestStackHidden)));
|
864
862
|
}
|
865
863
|
|
866
|
-
private buildHeaviestStack(treeNode:
|
867
|
-
TimelineModel.TimelineProfileTree.Node[] {
|
864
|
+
private buildHeaviestStack(treeNode: Trace.Extras.TraceTree.Node): Trace.Extras.TraceTree.Node[] {
|
868
865
|
console.assert(Boolean(treeNode.parent), 'Attempt to build stack for tree root');
|
869
|
-
let result:
|
866
|
+
let result: Trace.Extras.TraceTree.Node[] = [];
|
870
867
|
// Do not add root to the stack, as it's the tree itself.
|
871
|
-
for (let node:
|
868
|
+
for (let node: Trace.Extras.TraceTree.Node = treeNode; node && node.parent; node = node.parent) {
|
872
869
|
result.push(node);
|
873
870
|
}
|
874
871
|
result = result.reverse();
|
875
|
-
for (let node:
|
876
|
-
node && node.children() && node.children().size;) {
|
872
|
+
for (let node: Trace.Extras.TraceTree.Node = treeNode; node && node.children() && node.children().size;) {
|
877
873
|
const children = Array.from(node.children().values());
|
878
874
|
node = children.reduce((a, b) => a.totalTime > b.totalTime ? a : b);
|
879
875
|
result.push(node);
|
@@ -892,7 +888,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
|
|
892
888
|
}
|
893
889
|
}
|
894
890
|
|
895
|
-
override showDetailsForNode(node:
|
891
|
+
override showDetailsForNode(node: Trace.Extras.TraceTree.Node): boolean {
|
896
892
|
const stack = this.buildHeaviestStack(node);
|
897
893
|
this.stackView.setStack(stack, node);
|
898
894
|
this.stackView.show(this.detailsView.element);
|
@@ -1001,7 +997,7 @@ export class CallTreeTimelineTreeView extends AggregatedTimelineTreeView {
|
|
1001
997
|
this.dataGrid.markColumnAsSortedBy('total', DataGrid.DataGrid.Order.Descending);
|
1002
998
|
}
|
1003
999
|
|
1004
|
-
override buildTree():
|
1000
|
+
override buildTree(): Trace.Extras.TraceTree.Node {
|
1005
1001
|
const grouping = this.groupBySetting.get();
|
1006
1002
|
return this.buildTopDownTree(false, this.groupingFunction(grouping));
|
1007
1003
|
}
|
@@ -1014,8 +1010,8 @@ export class BottomUpTimelineTreeView extends AggregatedTimelineTreeView {
|
|
1014
1010
|
this.dataGrid.markColumnAsSortedBy('self', DataGrid.DataGrid.Order.Descending);
|
1015
1011
|
}
|
1016
1012
|
|
1017
|
-
override buildTree():
|
1018
|
-
return new
|
1013
|
+
override buildTree(): Trace.Extras.TraceTree.Node {
|
1014
|
+
return new Trace.Extras.TraceTree.BottomUpRootNode(
|
1019
1015
|
this.selectedEvents(), this.textFilter(), this.filtersWithoutTextFilter(), this.startTime, this.endTime,
|
1020
1016
|
this.groupingFunction(this.groupBySetting.get()));
|
1021
1017
|
}
|
@@ -1047,8 +1043,7 @@ export class TimelineStackView extends
|
|
1047
1043
|
this.dataGrid.asWidget().show(this.element);
|
1048
1044
|
}
|
1049
1045
|
|
1050
|
-
setStack(stack:
|
1051
|
-
void {
|
1046
|
+
setStack(stack: Trace.Extras.TraceTree.Node[], selectedNode: Trace.Extras.TraceTree.Node): void {
|
1052
1047
|
const rootNode = this.dataGrid.rootNode();
|
1053
1048
|
rootNode.removeChildren();
|
1054
1049
|
let nodeToReveal: GridNode|null = null;
|
@@ -1065,7 +1060,7 @@ export class TimelineStackView extends
|
|
1065
1060
|
}
|
1066
1061
|
}
|
1067
1062
|
|
1068
|
-
selectedTreeNode():
|
1063
|
+
selectedTreeNode(): Trace.Extras.TraceTree.Node|null {
|
1069
1064
|
const selectedNode = this.dataGrid.selectedNode;
|
1070
1065
|
return selectedNode && (selectedNode as GridNode).profileNode;
|
1071
1066
|
}
|
@@ -631,7 +631,7 @@ describeWithMockConnection('TimelineUIUtils', function() {
|
|
631
631
|
assert.deepEqual(rowData, [
|
632
632
|
{
|
633
633
|
title: 'Timestamp',
|
634
|
-
value: '
|
634
|
+
value: '1,058.3\xA0ms',
|
635
635
|
},
|
636
636
|
{title: 'Details', value: '{ "hello": "world"\n}'},
|
637
637
|
]);
|
@@ -653,7 +653,7 @@ describeWithMockConnection('TimelineUIUtils', function() {
|
|
653
653
|
assert.deepEqual(rowData, [
|
654
654
|
{
|
655
655
|
title: 'Timestamp',
|
656
|
-
value: '
|
656
|
+
value: '1,005.5\xA0ms',
|
657
657
|
},
|
658
658
|
{
|
659
659
|
title: 'Details',
|
@@ -40,7 +40,6 @@ import * as Root from '../../core/root/root.js';
|
|
40
40
|
import * as SDK from '../../core/sdk/sdk.js';
|
41
41
|
import type * as Protocol from '../../generated/protocol.js';
|
42
42
|
import * as Bindings from '../../models/bindings/bindings.js';
|
43
|
-
import * as TimelineModel from '../../models/timeline_model/timeline_model.js';
|
44
43
|
import * as Trace from '../../models/trace/trace.js';
|
45
44
|
import * as TraceBounds from '../../services/trace_bounds/trace_bounds.js';
|
46
45
|
import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
|
@@ -577,14 +576,14 @@ type LinkifyLocationOptions = {
|
|
577
576
|
|
578
577
|
export class TimelineUIUtils {
|
579
578
|
static frameDisplayName(frame: Protocol.Runtime.CallFrame): string {
|
580
|
-
if (!
|
579
|
+
if (!Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.isNativeRuntimeFrame(frame)) {
|
581
580
|
return UI.UIUtils.beautifyFunctionName(frame.functionName);
|
582
581
|
}
|
583
|
-
const nativeGroup =
|
582
|
+
const nativeGroup = Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.nativeGroup(frame.functionName);
|
584
583
|
switch (nativeGroup) {
|
585
|
-
case
|
584
|
+
case Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.COMPILE:
|
586
585
|
return i18nString(UIStrings.compile);
|
587
|
-
case
|
586
|
+
case Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.PARSE:
|
588
587
|
return i18nString(UIStrings.parse);
|
589
588
|
}
|
590
589
|
return frame.functionName;
|
@@ -723,7 +722,7 @@ export class TimelineUIUtils {
|
|
723
722
|
case Trace.Types.Events.Name.MAJOR_GC:
|
724
723
|
case Trace.Types.Events.Name.MINOR_GC: {
|
725
724
|
const delta = unsafeEventArgs['usedHeapSizeBefore'] - unsafeEventArgs['usedHeapSizeAfter'];
|
726
|
-
detailsText = i18nString(UIStrings.sCollected, {PH1:
|
725
|
+
detailsText = i18nString(UIStrings.sCollected, {PH1: i18n.ByteUtilities.bytesToString(delta)});
|
727
726
|
break;
|
728
727
|
}
|
729
728
|
case Trace.Types.Events.Name.FUNCTION_CALL: {
|
@@ -1090,8 +1089,7 @@ export class TimelineUIUtils {
|
|
1090
1089
|
contentHelper.appendTextRow(
|
1091
1090
|
i18nString(UIStrings.compilationCacheStatus), i18nString(UIStrings.scriptLoadedFromCache));
|
1092
1091
|
contentHelper.appendTextRow(
|
1093
|
-
i18nString(UIStrings.compilationCacheSize),
|
1094
|
-
Platform.NumberUtilities.bytesToString(eventData.consumedCacheSize));
|
1092
|
+
i18nString(UIStrings.compilationCacheSize), i18n.ByteUtilities.bytesToString(eventData.consumedCacheSize));
|
1095
1093
|
const cacheKind = eventData.cacheKind;
|
1096
1094
|
if (cacheKind) {
|
1097
1095
|
contentHelper.appendTextRow(i18nString(UIStrings.compilationCacheKind), cacheKind);
|
@@ -1241,7 +1239,7 @@ export class TimelineUIUtils {
|
|
1241
1239
|
case Trace.Types.Events.Name.MAJOR_GC:
|
1242
1240
|
case Trace.Types.Events.Name.MINOR_GC: {
|
1243
1241
|
const delta = unsafeEventArgs['usedHeapSizeBefore'] - unsafeEventArgs['usedHeapSizeAfter'];
|
1244
|
-
contentHelper.appendTextRow(i18nString(UIStrings.collected),
|
1242
|
+
contentHelper.appendTextRow(i18nString(UIStrings.collected), i18n.ByteUtilities.bytesToString(delta));
|
1245
1243
|
break;
|
1246
1244
|
}
|
1247
1245
|
|
@@ -1294,7 +1292,7 @@ export class TimelineUIUtils {
|
|
1294
1292
|
url = unsafeEventData && unsafeEventData['url'] as Platform.DevToolsPath.UrlString;
|
1295
1293
|
contentHelper.appendTextRow(
|
1296
1294
|
i18nString(UIStrings.compilationCacheSize),
|
1297
|
-
|
1295
|
+
i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
|
1298
1296
|
break;
|
1299
1297
|
}
|
1300
1298
|
|
@@ -1306,7 +1304,7 @@ export class TimelineUIUtils {
|
|
1306
1304
|
}
|
1307
1305
|
contentHelper.appendTextRow(
|
1308
1306
|
i18nString(UIStrings.compilationCacheSize),
|
1309
|
-
|
1307
|
+
i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
|
1310
1308
|
break;
|
1311
1309
|
}
|
1312
1310
|
|
@@ -1450,7 +1448,7 @@ export class TimelineUIUtils {
|
|
1450
1448
|
contentHelper.appendTextRow(i18nString(UIStrings.relatedNode), nodeName);
|
1451
1449
|
}
|
1452
1450
|
|
1453
|
-
const CLSInsight = Trace.Insights.
|
1451
|
+
const CLSInsight = Trace.Insights.Models.CLSCulprits;
|
1454
1452
|
const failures = CLSInsight.getNonCompositedFailure(event);
|
1455
1453
|
if (!failures.length) {
|
1456
1454
|
break;
|
@@ -2197,8 +2195,8 @@ export class TimelineUIUtils {
|
|
2197
2195
|
return eventDivider;
|
2198
2196
|
}
|
2199
2197
|
|
2200
|
-
static visibleEventsFilter():
|
2201
|
-
return new
|
2198
|
+
static visibleEventsFilter(): Trace.Extras.TraceFilter.TraceFilter {
|
2199
|
+
return new Trace.Extras.TraceFilter.VisibleEventsFilter(Utils.EntryStyles.visibleTypes());
|
2202
2200
|
}
|
2203
2201
|
|
2204
2202
|
// Included only for layout tests.
|
@@ -173,8 +173,8 @@ export class LayoutShiftDetails extends HTMLElement {
|
|
173
173
|
this.dispatchEvent(new Insights.EventRef.EventReferenceClick(event));
|
174
174
|
}
|
175
175
|
|
176
|
-
#renderAnimation(failure: Trace.Insights.
|
177
|
-
|
176
|
+
#renderAnimation(failure: Trace.Insights.Models.CLSCulprits.NoncompositedAnimationFailure): LitHtml.TemplateResult
|
177
|
+
|null {
|
178
178
|
const event = failure.animation;
|
179
179
|
if (!event) {
|
180
180
|
return null;
|
@@ -201,7 +201,7 @@ export class LayoutShiftDetails extends HTMLElement {
|
|
201
201
|
// clang-format on
|
202
202
|
}
|
203
203
|
|
204
|
-
#renderRootCauseValues(rootCauses: Trace.Insights.
|
204
|
+
#renderRootCauseValues(rootCauses: Trace.Insights.Models.CLSCulprits.LayoutShiftRootCausesData|
|
205
205
|
undefined): LitHtml.TemplateResult|null {
|
206
206
|
return html`
|
207
207
|
${rootCauses?.fontRequests.map(fontReq => this.#renderFontRequest(fontReq))}
|
@@ -227,8 +227,7 @@ export class LayoutShiftDetails extends HTMLElement {
|
|
227
227
|
#renderShiftRow(
|
228
228
|
shift: Trace.Types.Events.SyntheticLayoutShift, parsedTrace: Trace.Handlers.Types.ParsedTrace,
|
229
229
|
elementsShifted: Trace.Types.Events.TraceImpactedNode[],
|
230
|
-
rootCauses: Trace.Insights.
|
231
|
-
undefined): LitHtml.TemplateResult|null {
|
230
|
+
rootCauses: Trace.Insights.Models.CLSCulprits.LayoutShiftRootCausesData|undefined): LitHtml.TemplateResult|null {
|
232
231
|
const score = shift.args.data?.weighted_score_delta;
|
233
232
|
if (!score) {
|
234
233
|
return null;
|
@@ -291,7 +290,7 @@ export class LayoutShiftDetails extends HTMLElement {
|
|
291
290
|
return null;
|
292
291
|
}
|
293
292
|
const insightsId = layoutShift.args.data?.navigationId ?? Trace.Types.Events.NO_NAVIGATION;
|
294
|
-
const clsInsight = traceInsightsSets.get(insightsId)?.
|
293
|
+
const clsInsight = traceInsightsSets.get(insightsId)?.model.CLSCulprits;
|
295
294
|
if (!clsInsight || clsInsight instanceof Error) {
|
296
295
|
return null;
|
297
296
|
}
|
@@ -337,7 +336,7 @@ export class LayoutShiftDetails extends HTMLElement {
|
|
337
336
|
return null;
|
338
337
|
}
|
339
338
|
const insightsId = cluster.navigationId ?? Trace.Types.Events.NO_NAVIGATION;
|
340
|
-
const clsInsight = traceInsightsSets.get(insightsId)?.
|
339
|
+
const clsInsight = traceInsightsSets.get(insightsId)?.model.CLSCulprits;
|
341
340
|
if (!clsInsight || clsInsight instanceof Error) {
|
342
341
|
return null;
|
343
342
|
}
|
@@ -729,7 +729,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
729
729
|
assert.match(fieldMessage!.innerText, /See how your local metrics compare/);
|
730
730
|
|
731
731
|
const title = getLiveMetricsTitle(view);
|
732
|
-
assert.strictEqual(title.innerText, 'Local metrics
|
732
|
+
assert.strictEqual(title.innerText, 'Local metrics');
|
733
733
|
});
|
734
734
|
|
735
735
|
it('should show when crux is enabled', async () => {
|
@@ -760,7 +760,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
760
760
|
assert.match(fieldMessage!.innerText, /Jan.+2024/);
|
761
761
|
|
762
762
|
const title = getLiveMetricsTitle(view);
|
763
|
-
assert.strictEqual(title.innerText, 'Local and field metrics
|
763
|
+
assert.strictEqual(title.innerText, 'Local and field metrics');
|
764
764
|
});
|
765
765
|
|
766
766
|
it('should show empty values when crux is enabled but there is no field data', async () => {
|
@@ -784,7 +784,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
784
784
|
assert.match(fieldMessage!.textContent!, /Not enough data/);
|
785
785
|
|
786
786
|
const title = getLiveMetricsTitle(view);
|
787
|
-
assert.strictEqual(title.innerText, 'Local and field metrics
|
787
|
+
assert.strictEqual(title.innerText, 'Local and field metrics');
|
788
788
|
});
|
789
789
|
|
790
790
|
it('should make initial request on render when crux is enabled', async () => {
|
@@ -10,7 +10,6 @@ import '../../../ui/components/menus/menus.js';
|
|
10
10
|
import './MetricCard.js';
|
11
11
|
|
12
12
|
import * as Common from '../../../core/common/common.js';
|
13
|
-
import * as Host from '../../../core/host/host.js';
|
14
13
|
import * as i18n from '../../../core/i18n/i18n.js';
|
15
14
|
import type * as Platform from '../../../core/platform/platform.js';
|
16
15
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
@@ -175,11 +174,6 @@ const UIStrings = {
|
|
175
174
|
* @description Text for a link that is inserted inside a larger text block that explains how to simulate different mobile and desktop devices.
|
176
175
|
*/
|
177
176
|
simulateDifferentDevices: 'simulate different devices',
|
178
|
-
/**
|
179
|
-
* @description Tooltip text that explains how disabling the network cache can simulate the network connections of users that are visiting a page for the first time.
|
180
|
-
*/
|
181
|
-
networkCacheExplanation:
|
182
|
-
'Disabling the network cache will simulate a network experience similar to a first time visitor.',
|
183
177
|
/**
|
184
178
|
* @description Text label for a checkbox that controls if the network cache is disabled.
|
185
179
|
*/
|
@@ -220,11 +214,15 @@ const UIStrings = {
|
|
220
214
|
* @example {Chrome UX Report} PH1
|
221
215
|
*/
|
222
216
|
seeHowYourLocalMetricsCompare: 'See how your local metrics compare to real user data in the {PH1}.',
|
217
|
+
/**
|
218
|
+
* @description Text for a link that goes to more documentation about local and field data. "Local" refers to performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
|
219
|
+
*/
|
220
|
+
localFieldLearnMoreLink: 'Learn more about local and field data',
|
223
221
|
/**
|
224
222
|
* @description Tooltip text for a link that goes to documentation explaining the difference between local and field metrics. "Local metrics" are performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
|
225
223
|
*/
|
226
|
-
|
227
|
-
'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices.
|
224
|
+
localFieldLearnMoreTooltip:
|
225
|
+
'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices.',
|
228
226
|
/**
|
229
227
|
* @description Tooltip text explaining that this user interaction was ignored when calculating the Interaction to Next Paint (INP) metric because the interaction delay fell beyond the 98th percentile of interaction delays on this page. "INP" is an acronym and should not be translated.
|
230
228
|
*/
|
@@ -664,12 +662,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
664
662
|
textOverride: i18nString(UIStrings.disableNetworkCache),
|
665
663
|
} as Settings.SettingCheckbox.SettingCheckboxData}
|
666
664
|
></setting-checkbox>
|
667
|
-
|
668
|
-
class="setting-hint"
|
669
|
-
name="help"
|
670
|
-
title=${i18nString(UIStrings.networkCacheExplanation)}
|
671
|
-
></devtools-icon>
|
672
|
-
</div>
|
665
|
+
</div>
|
673
666
|
`;
|
674
667
|
// clang-format on
|
675
668
|
}
|
@@ -1106,18 +1099,8 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
1106
1099
|
const output = html`
|
1107
1100
|
<div class="container">
|
1108
1101
|
<div class="live-metrics-view">
|
1109
|
-
<main class="live-metrics"
|
1110
|
-
|
1111
|
-
<h2 class="section-title">
|
1112
|
-
${liveMetricsTitle}
|
1113
|
-
<devtools-button
|
1114
|
-
class="section-title-help"
|
1115
|
-
title=${i18nString(UIStrings.learnMoreAboutMetrics)}
|
1116
|
-
.iconName=${'help'}
|
1117
|
-
.variant=${Buttons.Button.Variant.ICON}
|
1118
|
-
@click=${() => Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(helpLink)}
|
1119
|
-
></devtools-button>
|
1120
|
-
</h2>
|
1102
|
+
<main class="live-metrics">
|
1103
|
+
<h2 class="section-title">${liveMetricsTitle}</h2>
|
1121
1104
|
<div class="metric-cards"
|
1122
1105
|
on-render=${ComponentHelpers.Directives.nodeRenderedCallback(node => {
|
1123
1106
|
this.#tooltipContainerEl = node;
|
@@ -1133,6 +1116,11 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
1133
1116
|
${this.#renderInpCard()}
|
1134
1117
|
</div>
|
1135
1118
|
</div>
|
1119
|
+
<x-link
|
1120
|
+
href=${helpLink}
|
1121
|
+
class="local-field-link"
|
1122
|
+
title=${i18nString(UIStrings.localFieldLearnMoreTooltip)}
|
1123
|
+
>${i18nString(UIStrings.localFieldLearnMoreLink)}</x-link>
|
1136
1124
|
${this.#renderLogSection()}
|
1137
1125
|
</main>
|
1138
1126
|
<aside class="next-steps" aria-labelledby="next-steps-section-title">
|
@@ -145,7 +145,7 @@ describeWithMockConnection('MetricCard', () => {
|
|
145
145
|
|
146
146
|
const localValueEl = getLocalMetricValue(view);
|
147
147
|
assert.strictEqual(localValueEl.className, 'metric-value poor');
|
148
|
-
assert.strictEqual(localValueEl.innerText, '
|
148
|
+
assert.strictEqual(localValueEl.innerText, '2,000 ms');
|
149
149
|
|
150
150
|
const fieldValueEl = getFieldMetricValue(view);
|
151
151
|
assert.strictEqual(fieldValueEl!.className, 'metric-value good');
|