chrome-devtools-frontend 1.0.1512147 → 1.0.1513662
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/front_end/Images/src/ai-explorer-badge.svg +114 -0
- package/front_end/Images/src/code-whisperer-badge.svg +166 -0
- package/front_end/Images/src/devtools-user-badge.svg +129 -0
- package/front_end/Images/src/dom-detective-badge.svg +136 -0
- package/front_end/Images/src/speedster-badge.svg +166 -0
- package/front_end/core/common/Color.ts +40 -44
- package/front_end/core/common/Console.ts +4 -4
- package/front_end/core/common/ParsedURL.ts +14 -14
- package/front_end/core/common/ResourceType.ts +20 -20
- package/front_end/core/common/SegmentedRange.ts +13 -14
- package/front_end/core/common/Settings.ts +4 -4
- package/front_end/core/common/StringOutputStream.ts +4 -4
- package/front_end/core/host/GdpClient.ts +76 -2
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
- package/front_end/core/host/ResourceLoader.ts +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -2
- package/front_end/core/i18n/NumberFormatter.ts +7 -0
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +5 -2
- package/front_end/core/sdk/AccessibilityModel.ts +48 -48
- package/front_end/core/sdk/AnimationModel.ts +78 -79
- package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
- package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
- package/front_end/core/sdk/CSSMedia.ts +22 -22
- package/front_end/core/sdk/CSSModel.ts +4 -4
- package/front_end/core/sdk/CSSProperty.ts +9 -9
- package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
- package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
- package/front_end/core/sdk/ChildTargetManager.ts +6 -6
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
- package/front_end/core/sdk/ConsoleModel.ts +24 -24
- package/front_end/core/sdk/Cookie.ts +16 -16
- package/front_end/core/sdk/CookieParser.ts +6 -6
- package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
- package/front_end/core/sdk/DOMModel.ts +113 -113
- package/front_end/core/sdk/DebuggerModel.ts +102 -103
- package/front_end/core/sdk/EmulationModel.ts +6 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
- package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
- package/front_end/core/sdk/IsolateManager.ts +26 -26
- package/front_end/core/sdk/LayerTreeBase.ts +29 -30
- package/front_end/core/sdk/OverlayModel.ts +6 -6
- package/front_end/core/sdk/Resource.ts +43 -43
- package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
- package/front_end/core/sdk/RuntimeModel.ts +12 -13
- package/front_end/core/sdk/SDKModel.ts +3 -3
- package/front_end/core/sdk/Script.ts +17 -17
- package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
- package/front_end/core/sdk/ServerTiming.ts +2 -2
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
- package/front_end/core/sdk/SourceMap.ts +10 -10
- package/front_end/core/sdk/StorageKeyManager.ts +12 -12
- package/front_end/core/sdk/Target.ts +33 -34
- package/front_end/core/sdk/TargetManager.ts +20 -20
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
- package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
- package/front_end/entrypoints/main/MainImpl.ts +16 -14
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +20 -0
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +20 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +10 -9
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
- package/front_end/models/badges/SpeedsterBadge.ts +7 -2
- package/front_end/models/badges/StarterBadge.ts +6 -1
- package/front_end/models/badges/UserBadges.ts +61 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
- package/front_end/models/bindings/FileUtils.ts +15 -15
- package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
- package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
- package/front_end/models/emulation/DeviceModeModel.ts +123 -131
- package/front_end/models/emulation/EmulatedDevices.ts +22 -22
- package/front_end/models/extensions/ExtensionPanel.ts +24 -24
- package/front_end/models/extensions/ExtensionServer.ts +4 -4
- package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
- package/front_end/models/trace/EventsSerializer.ts +5 -5
- package/front_end/models/trace/LanternComputationData.ts +10 -10
- package/front_end/models/trace/ModelImpl.ts +32 -54
- package/front_end/models/trace/Processor.ts +28 -30
- package/front_end/models/trace/extras/FilmStrip.ts +6 -6
- package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
- package/front_end/models/trace/extras/ThirdParties.ts +16 -17
- package/front_end/models/trace/extras/TraceFilter.ts +1 -1
- package/front_end/models/trace/handlers/Threads.ts +10 -10
- package/front_end/models/trace/handlers/helpers.ts +9 -9
- package/front_end/models/trace/handlers/types.ts +3 -3
- package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
- package/front_end/models/trace/insights/Cache.ts +8 -4
- package/front_end/models/trace/insights/DOMSize.ts +8 -5
- package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
- package/front_end/models/trace/insights/FontDisplay.ts +3 -4
- package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
- package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
- package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
- package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
- package/front_end/models/trace/insights/ThirdParties.ts +4 -5
- package/front_end/models/trace/insights/Viewport.ts +8 -5
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +5 -5
- package/front_end/panels/animation/AnimationUI.ts +22 -23
- package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
- package/front_end/panels/application/DOMStorageModel.ts +23 -23
- package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
- package/front_end/panels/application/IndexedDBModel.ts +1 -0
- package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
- package/front_end/panels/application/ServiceWorkersView.ts +0 -53
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
- package/front_end/panels/common/BadgeNotification.ts +140 -10
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +30 -9
- package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.ts +8 -5
- package/front_end/panels/console/ConsoleView.ts +13 -13
- package/front_end/panels/console/ConsoleViewport.ts +29 -29
- package/front_end/panels/coverage/CoverageModel.ts +22 -22
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
- package/front_end/panels/elements/DOMPath.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +13 -13
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
- package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
- package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
- package/front_end/panels/emulation/DeviceModeView.ts +6 -6
- package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
- package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
- package/front_end/panels/layer_viewer/TransformController.ts +34 -36
- package/front_end/panels/layers/LayerTreeModel.ts +41 -40
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
- package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
- package/front_end/panels/media/PlayerMessagesView.ts +5 -5
- package/front_end/panels/media/TickingFlameChart.ts +24 -24
- package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
- package/front_end/panels/network/NetworkItemView.ts +4 -4
- package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
- package/front_end/panels/network/NetworkPanel.ts +8 -5
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +25 -25
- package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
- package/front_end/panels/security/OriginTreeElement.ts +8 -8
- package/front_end/panels/security/SecurityPanel.ts +5 -5
- package/front_end/panels/settings/SettingsScreen.ts +18 -18
- package/front_end/panels/settings/components/SyncSection.ts +26 -8
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
- package/front_end/panels/sources/NavigatorView.ts +43 -46
- package/front_end/panels/sources/SourcesPanel.ts +35 -35
- package/front_end/panels/sources/SourcesView.ts +13 -13
- package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
- package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
- package/front_end/panels/timeline/CountersGraph.ts +16 -16
- package/front_end/panels/timeline/EntriesFilter.ts +4 -3
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
- package/front_end/panels/timeline/ModificationsManager.ts +8 -15
- package/front_end/panels/timeline/TargetForEvent.ts +2 -2
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
- package/front_end/panels/timeline/ThreadAppender.ts +13 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
- package/front_end/panels/timeline/TimelineFilters.ts +5 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
- package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
- package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
- package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
- package/front_end/panels/timeline/TimelinePanel.ts +73 -68
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
- package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
- package/front_end/panels/timeline/components/Sidebar.ts +4 -14
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
- package/front_end/panels/timeline/utils/AIContext.ts +17 -19
- package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
- package/front_end/panels/timeline/utils/EntryName.ts +2 -2
- package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
- package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
- package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
- package/front_end/panels/timeline/utils/Helpers.ts +0 -18
- package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +6 -7
- package/front_end/ui/legacy/ActionRegistration.ts +9 -9
- package/front_end/ui/legacy/DockController.ts +18 -18
- package/front_end/ui/legacy/FilterBar.ts +7 -7
- package/front_end/ui/legacy/Fragment.ts +4 -4
- package/front_end/ui/legacy/GlassPane.ts +12 -12
- package/front_end/ui/legacy/InspectorView.ts +5 -15
- package/front_end/ui/legacy/ListControl.ts +27 -27
- package/front_end/ui/legacy/ListWidget.ts +4 -4
- package/front_end/ui/legacy/PopoverHelper.ts +4 -4
- package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
- package/front_end/ui/legacy/TabbedPane.ts +74 -75
- package/front_end/ui/legacy/TextPrompt.ts +31 -31
- package/front_end/ui/legacy/Toolbar.ts +13 -14
- package/front_end/ui/legacy/ViewManager.ts +30 -31
- package/front_end/ui/legacy/Widget.ts +6 -6
- package/front_end/ui/legacy/XLink.ts +9 -9
- package/front_end/ui/legacy/ZoomManager.ts +9 -9
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -372,6 +372,7 @@ inspectorBackend.registerEvent("DOM.inlineStyleInvalidated", ["nodeIds"]);
|
|
372
372
|
inspectorBackend.registerEvent("DOM.pseudoElementAdded", ["parentId", "pseudoElement"]);
|
373
373
|
inspectorBackend.registerEvent("DOM.topLayerElementsUpdated", []);
|
374
374
|
inspectorBackend.registerEvent("DOM.scrollableFlagUpdated", ["nodeId", "isScrollable"]);
|
375
|
+
inspectorBackend.registerEvent("DOM.affectedByStartingStylesFlagUpdated", ["nodeId", "affectedByStartingStyles"]);
|
375
376
|
inspectorBackend.registerEvent("DOM.pseudoElementRemoved", ["parentId", "pseudoElementId"]);
|
376
377
|
inspectorBackend.registerEvent("DOM.setChildNodes", ["parentId", "nodes"]);
|
377
378
|
inspectorBackend.registerEvent("DOM.shadowRootPopped", ["hostId", "rootId"]);
|
@@ -432,7 +433,7 @@ inspectorBackend.registerCommand("DOM.getQueryingDescendantsForContainer", [{"na
|
|
432
433
|
inspectorBackend.registerCommand("DOM.getAnchorElement", [{"name": "nodeId", "type": "number", "optional": false, "description": "Id of the positioned element from which to find the anchor.", "typeRef": "DOM.NodeId"}, {"name": "anchorSpecifier", "type": "string", "optional": true, "description": "An optional anchor specifier, as defined in https://www.w3.org/TR/css-anchor-position-1/#anchor-specifier. If not provided, it will return the implicit anchor element for the given positioned element.", "typeRef": null}], ["nodeId"], "Returns the target anchor element of the given anchor query according to https://www.w3.org/TR/css-anchor-position-1/#target.");
|
433
434
|
inspectorBackend.registerCommand("DOM.forceShowPopover", [{"name": "nodeId", "type": "number", "optional": false, "description": "Id of the popover HTMLElement", "typeRef": "DOM.NodeId"}, {"name": "enable", "type": "boolean", "optional": false, "description": "If true, opens the popover and keeps it open. If false, closes the popover if it was previously force-opened.", "typeRef": null}], ["nodeIds"], "When enabling, this API force-opens the popover identified by nodeId and keeps it open until disabled.");
|
434
435
|
inspectorBackend.registerType("DOM.BackendNode", [{"name": "nodeType", "type": "number", "optional": false, "description": "`Node`'s nodeType.", "typeRef": null}, {"name": "nodeName", "type": "string", "optional": false, "description": "`Node`'s nodeName.", "typeRef": null}, {"name": "backendNodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId"}]);
|
435
|
-
inspectorBackend.registerType("DOM.Node", [{"name": "nodeId", "type": "number", "optional": false, "description": "Node identifier that is passed into the rest of the DOM messages as the `nodeId`. Backend will only push node with given `id` once. It is aware of all requested nodes and will only fire DOM events for nodes known to the client.", "typeRef": "DOM.NodeId"}, {"name": "parentId", "type": "number", "optional": true, "description": "The id of the parent node if any.", "typeRef": "DOM.NodeId"}, {"name": "backendNodeId", "type": "number", "optional": false, "description": "The BackendNodeId for this node.", "typeRef": "DOM.BackendNodeId"}, {"name": "nodeType", "type": "number", "optional": false, "description": "`Node`'s nodeType.", "typeRef": null}, {"name": "nodeName", "type": "string", "optional": false, "description": "`Node`'s nodeName.", "typeRef": null}, {"name": "localName", "type": "string", "optional": false, "description": "`Node`'s localName.", "typeRef": null}, {"name": "nodeValue", "type": "string", "optional": false, "description": "`Node`'s nodeValue.", "typeRef": null}, {"name": "childNodeCount", "type": "number", "optional": true, "description": "Child count for `Container` nodes.", "typeRef": null}, {"name": "children", "type": "array", "optional": true, "description": "Child nodes of this node when requested with children.", "typeRef": "DOM.Node"}, {"name": "attributes", "type": "array", "optional": true, "description": "Attributes of the `Element` node in the form of flat array `[name1, value1, name2, value2]`.", "typeRef": "string"}, {"name": "documentURL", "type": "string", "optional": true, "description": "Document URL that `Document` or `FrameOwner` node points to.", "typeRef": null}, {"name": "baseURL", "type": "string", "optional": true, "description": "Base URL that `Document` or `FrameOwner` node uses for URL completion.", "typeRef": null}, {"name": "publicId", "type": "string", "optional": true, "description": "`DocumentType`'s publicId.", "typeRef": null}, {"name": "systemId", "type": "string", "optional": true, "description": "`DocumentType`'s systemId.", "typeRef": null}, {"name": "internalSubset", "type": "string", "optional": true, "description": "`DocumentType`'s internalSubset.", "typeRef": null}, {"name": "xmlVersion", "type": "string", "optional": true, "description": "`Document`'s XML version in case of XML documents.", "typeRef": null}, {"name": "name", "type": "string", "optional": true, "description": "`Attr`'s name.", "typeRef": null}, {"name": "value", "type": "string", "optional": true, "description": "`Attr`'s value.", "typeRef": null}, {"name": "pseudoType", "type": "string", "optional": true, "description": "Pseudo element type for this node.", "typeRef": "DOM.PseudoType"}, {"name": "pseudoIdentifier", "type": "string", "optional": true, "description": "Pseudo element identifier for this node. Only present if there is a valid pseudoType.", "typeRef": null}, {"name": "shadowRootType", "type": "string", "optional": true, "description": "Shadow root type.", "typeRef": "DOM.ShadowRootType"}, {"name": "frameId", "type": "string", "optional": true, "description": "Frame ID for frame owner elements.", "typeRef": "Page.FrameId"}, {"name": "contentDocument", "type": "object", "optional": true, "description": "Content document for frame owner elements.", "typeRef": "DOM.Node"}, {"name": "shadowRoots", "type": "array", "optional": true, "description": "Shadow root list for given element host.", "typeRef": "DOM.Node"}, {"name": "templateContent", "type": "object", "optional": true, "description": "Content document fragment for template elements.", "typeRef": "DOM.Node"}, {"name": "pseudoElements", "type": "array", "optional": true, "description": "Pseudo elements associated with this node.", "typeRef": "DOM.Node"}, {"name": "importedDocument", "type": "object", "optional": true, "description": "Deprecated, as the HTML Imports API has been removed (crbug.com/937746). This property used to return the imported document for the HTMLImport links. The property is always undefined now.", "typeRef": "DOM.Node"}, {"name": "distributedNodes", "type": "array", "optional": true, "description": "Distributed nodes for given insertion point.", "typeRef": "DOM.BackendNode"}, {"name": "isSVG", "type": "boolean", "optional": true, "description": "Whether the node is SVG.", "typeRef": null}, {"name": "compatibilityMode", "type": "string", "optional": true, "description": "", "typeRef": "DOM.CompatibilityMode"}, {"name": "assignedSlot", "type": "object", "optional": true, "description": "", "typeRef": "DOM.BackendNode"}, {"name": "isScrollable", "type": "boolean", "optional": true, "description": "", "typeRef": null}]);
|
436
|
+
inspectorBackend.registerType("DOM.Node", [{"name": "nodeId", "type": "number", "optional": false, "description": "Node identifier that is passed into the rest of the DOM messages as the `nodeId`. Backend will only push node with given `id` once. It is aware of all requested nodes and will only fire DOM events for nodes known to the client.", "typeRef": "DOM.NodeId"}, {"name": "parentId", "type": "number", "optional": true, "description": "The id of the parent node if any.", "typeRef": "DOM.NodeId"}, {"name": "backendNodeId", "type": "number", "optional": false, "description": "The BackendNodeId for this node.", "typeRef": "DOM.BackendNodeId"}, {"name": "nodeType", "type": "number", "optional": false, "description": "`Node`'s nodeType.", "typeRef": null}, {"name": "nodeName", "type": "string", "optional": false, "description": "`Node`'s nodeName.", "typeRef": null}, {"name": "localName", "type": "string", "optional": false, "description": "`Node`'s localName.", "typeRef": null}, {"name": "nodeValue", "type": "string", "optional": false, "description": "`Node`'s nodeValue.", "typeRef": null}, {"name": "childNodeCount", "type": "number", "optional": true, "description": "Child count for `Container` nodes.", "typeRef": null}, {"name": "children", "type": "array", "optional": true, "description": "Child nodes of this node when requested with children.", "typeRef": "DOM.Node"}, {"name": "attributes", "type": "array", "optional": true, "description": "Attributes of the `Element` node in the form of flat array `[name1, value1, name2, value2]`.", "typeRef": "string"}, {"name": "documentURL", "type": "string", "optional": true, "description": "Document URL that `Document` or `FrameOwner` node points to.", "typeRef": null}, {"name": "baseURL", "type": "string", "optional": true, "description": "Base URL that `Document` or `FrameOwner` node uses for URL completion.", "typeRef": null}, {"name": "publicId", "type": "string", "optional": true, "description": "`DocumentType`'s publicId.", "typeRef": null}, {"name": "systemId", "type": "string", "optional": true, "description": "`DocumentType`'s systemId.", "typeRef": null}, {"name": "internalSubset", "type": "string", "optional": true, "description": "`DocumentType`'s internalSubset.", "typeRef": null}, {"name": "xmlVersion", "type": "string", "optional": true, "description": "`Document`'s XML version in case of XML documents.", "typeRef": null}, {"name": "name", "type": "string", "optional": true, "description": "`Attr`'s name.", "typeRef": null}, {"name": "value", "type": "string", "optional": true, "description": "`Attr`'s value.", "typeRef": null}, {"name": "pseudoType", "type": "string", "optional": true, "description": "Pseudo element type for this node.", "typeRef": "DOM.PseudoType"}, {"name": "pseudoIdentifier", "type": "string", "optional": true, "description": "Pseudo element identifier for this node. Only present if there is a valid pseudoType.", "typeRef": null}, {"name": "shadowRootType", "type": "string", "optional": true, "description": "Shadow root type.", "typeRef": "DOM.ShadowRootType"}, {"name": "frameId", "type": "string", "optional": true, "description": "Frame ID for frame owner elements.", "typeRef": "Page.FrameId"}, {"name": "contentDocument", "type": "object", "optional": true, "description": "Content document for frame owner elements.", "typeRef": "DOM.Node"}, {"name": "shadowRoots", "type": "array", "optional": true, "description": "Shadow root list for given element host.", "typeRef": "DOM.Node"}, {"name": "templateContent", "type": "object", "optional": true, "description": "Content document fragment for template elements.", "typeRef": "DOM.Node"}, {"name": "pseudoElements", "type": "array", "optional": true, "description": "Pseudo elements associated with this node.", "typeRef": "DOM.Node"}, {"name": "importedDocument", "type": "object", "optional": true, "description": "Deprecated, as the HTML Imports API has been removed (crbug.com/937746). This property used to return the imported document for the HTMLImport links. The property is always undefined now.", "typeRef": "DOM.Node"}, {"name": "distributedNodes", "type": "array", "optional": true, "description": "Distributed nodes for given insertion point.", "typeRef": "DOM.BackendNode"}, {"name": "isSVG", "type": "boolean", "optional": true, "description": "Whether the node is SVG.", "typeRef": null}, {"name": "compatibilityMode", "type": "string", "optional": true, "description": "", "typeRef": "DOM.CompatibilityMode"}, {"name": "assignedSlot", "type": "object", "optional": true, "description": "", "typeRef": "DOM.BackendNode"}, {"name": "isScrollable", "type": "boolean", "optional": true, "description": "", "typeRef": null}, {"name": "affectedByStartingStyles", "type": "boolean", "optional": true, "description": "", "typeRef": null}]);
|
436
437
|
inspectorBackend.registerType("DOM.DetachedElementInfo", [{"name": "treeNode", "type": "object", "optional": false, "description": "", "typeRef": "DOM.Node"}, {"name": "retainedNodeIds", "type": "array", "optional": false, "description": "", "typeRef": "DOM.NodeId"}]);
|
437
438
|
inspectorBackend.registerType("DOM.RGBA", [{"name": "r", "type": "number", "optional": false, "description": "The red component, in the [0-255] range.", "typeRef": null}, {"name": "g", "type": "number", "optional": false, "description": "The green component, in the [0-255] range.", "typeRef": null}, {"name": "b", "type": "number", "optional": false, "description": "The blue component, in the [0-255] range.", "typeRef": null}, {"name": "a", "type": "number", "optional": true, "description": "The alpha component, in the [0-1] range (default: 1).", "typeRef": null}]);
|
438
439
|
inspectorBackend.registerType("DOM.Quad", [{"name": "Quad", "type": "array", "optional": false, "description": "An array of quad vertices, x immediately followed by y for each point, points clock-wise.", "typeRef": "number"}]);
|
@@ -1185,7 +1186,7 @@ inspectorBackend.registerEvent("Preload.prerenderStatusUpdated", ["key", "pipeli
|
|
1185
1186
|
inspectorBackend.registerEvent("Preload.preloadingAttemptSourcesUpdated", ["loaderId", "preloadingAttemptSources"]);
|
1186
1187
|
inspectorBackend.registerCommand("Preload.enable", [], [], "");
|
1187
1188
|
inspectorBackend.registerCommand("Preload.disable", [], [], "");
|
1188
|
-
inspectorBackend.registerType("Preload.RuleSet", [{"name": "id", "type": "string", "optional": false, "description": "", "typeRef": "Preload.RuleSetId"}, {"name": "loaderId", "type": "string", "optional": false, "description": "Identifies a document which the rule set is associated with.", "typeRef": "Network.LoaderId"}, {"name": "sourceText", "type": "string", "optional": false, "description": "Source text of JSON representing the rule set. If it comes from `<script>` tag, it is the textContent of the node. Note that it is a JSON for valid case. See also: - https://wicg.github.io/nav-speculation/speculation-rules.html - https://github.com/WICG/nav-speculation/blob/main/triggers.md", "typeRef": null}, {"name": "backendNodeId", "type": "number", "optional": true, "description": "A speculation rule set is either added through an inline `<script>` tag or through an external resource via the 'Speculation-Rules' HTTP header. For the first case, we include the BackendNodeId of the relevant `<script>` tag. For the second case, we include the external URL where the rule set was loaded from, and also RequestId if Network domain is enabled. See also: - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header", "typeRef": "DOM.BackendNodeId"}, {"name": "url", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "requestId", "type": "string", "optional": true, "description": "", "typeRef": "Network.RequestId"}, {"name": "errorType", "type": "string", "optional": true, "description": "Error information `errorMessage` is null iff `errorType` is null.", "typeRef": "Preload.RuleSetErrorType"}, {"name": "errorMessage", "type": "string", "optional": true, "description": "TODO(https://crbug.com/1425354): Replace this property with structured error.", "typeRef": null}]);
|
1189
|
+
inspectorBackend.registerType("Preload.RuleSet", [{"name": "id", "type": "string", "optional": false, "description": "", "typeRef": "Preload.RuleSetId"}, {"name": "loaderId", "type": "string", "optional": false, "description": "Identifies a document which the rule set is associated with.", "typeRef": "Network.LoaderId"}, {"name": "sourceText", "type": "string", "optional": false, "description": "Source text of JSON representing the rule set. If it comes from `<script>` tag, it is the textContent of the node. Note that it is a JSON for valid case. See also: - https://wicg.github.io/nav-speculation/speculation-rules.html - https://github.com/WICG/nav-speculation/blob/main/triggers.md", "typeRef": null}, {"name": "backendNodeId", "type": "number", "optional": true, "description": "A speculation rule set is either added through an inline `<script>` tag or through an external resource via the 'Speculation-Rules' HTTP header. For the first case, we include the BackendNodeId of the relevant `<script>` tag. For the second case, we include the external URL where the rule set was loaded from, and also RequestId if Network domain is enabled. See also: - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header", "typeRef": "DOM.BackendNodeId"}, {"name": "url", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "requestId", "type": "string", "optional": true, "description": "", "typeRef": "Network.RequestId"}, {"name": "errorType", "type": "string", "optional": true, "description": "Error information `errorMessage` is null iff `errorType` is null.", "typeRef": "Preload.RuleSetErrorType"}, {"name": "errorMessage", "type": "string", "optional": true, "description": "TODO(https://crbug.com/1425354): Replace this property with structured error.", "typeRef": null}, {"name": "tag", "type": "string", "optional": true, "description": "For more details, see: https://github.com/WICG/nav-speculation/blob/main/speculation-rules-tags.md", "typeRef": null}]);
|
1189
1190
|
inspectorBackend.registerType("Preload.PreloadingAttemptKey", [{"name": "loaderId", "type": "string", "optional": false, "description": "", "typeRef": "Network.LoaderId"}, {"name": "action", "type": "string", "optional": false, "description": "", "typeRef": "Preload.SpeculationAction"}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "targetHint", "type": "string", "optional": true, "description": "", "typeRef": "Preload.SpeculationTargetHint"}]);
|
1190
1191
|
inspectorBackend.registerType("Preload.PreloadingAttemptSource", [{"name": "key", "type": "object", "optional": false, "description": "", "typeRef": "Preload.PreloadingAttemptKey"}, {"name": "ruleSetIds", "type": "array", "optional": false, "description": "", "typeRef": "Preload.RuleSetId"}, {"name": "nodeIds", "type": "array", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId"}]);
|
1191
1192
|
inspectorBackend.registerType("Preload.PrerenderMismatchedHeaders", [{"name": "headerName", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "initialValue", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "activationValue", "type": "string", "optional": true, "description": "", "typeRef": null}]);
|
@@ -595,6 +595,7 @@ export const generatedProperties = [
|
|
595
595
|
"overflow-y",
|
596
596
|
"overlay",
|
597
597
|
"override-colors",
|
598
|
+
"overscroll-anchor-name",
|
598
599
|
"overscroll-behavior-block",
|
599
600
|
"overscroll-behavior-inline",
|
600
601
|
"overscroll-behavior-x",
|
@@ -891,6 +892,9 @@ export const generatedProperties = [
|
|
891
892
|
"name": "animation-timing-function"
|
892
893
|
},
|
893
894
|
{
|
895
|
+
"keywords": [
|
896
|
+
"none"
|
897
|
+
],
|
894
898
|
"name": "animation-trigger"
|
895
899
|
},
|
896
900
|
{
|
@@ -3344,6 +3348,12 @@ export const generatedProperties = [
|
|
3344
3348
|
{
|
3345
3349
|
"name": "override-colors"
|
3346
3350
|
},
|
3351
|
+
{
|
3352
|
+
"keywords": [
|
3353
|
+
"none"
|
3354
|
+
],
|
3355
|
+
"name": "overscroll-anchor-name"
|
3356
|
+
},
|
3347
3357
|
{
|
3348
3358
|
"longhands": [
|
3349
3359
|
"overscroll-behavior-x",
|
@@ -4877,6 +4887,11 @@ export const generatedPropertyValues = {
|
|
4877
4887
|
"step-end"
|
4878
4888
|
]
|
4879
4889
|
},
|
4890
|
+
"animation-trigger": {
|
4891
|
+
"values": [
|
4892
|
+
"none"
|
4893
|
+
]
|
4894
|
+
},
|
4880
4895
|
"app-region": {
|
4881
4896
|
"values": [
|
4882
4897
|
"none",
|
@@ -6248,6 +6263,11 @@ export const generatedPropertyValues = {
|
|
6248
6263
|
"auto"
|
6249
6264
|
]
|
6250
6265
|
},
|
6266
|
+
"overscroll-anchor-name": {
|
6267
|
+
"values": [
|
6268
|
+
"none"
|
6269
|
+
]
|
6270
|
+
},
|
6251
6271
|
"overscroll-behavior-x": {
|
6252
6272
|
"values": [
|
6253
6273
|
"auto",
|
@@ -157,6 +157,10 @@ export namespace ProtocolMapping {
|
|
157
157
|
* Fired when a node's scrollability state changes.
|
158
158
|
*/
|
159
159
|
'DOM.scrollableFlagUpdated': [Protocol.DOM.ScrollableFlagUpdatedEvent];
|
160
|
+
/**
|
161
|
+
* Fired when a node's starting styles changes.
|
162
|
+
*/
|
163
|
+
'DOM.affectedByStartingStylesFlagUpdated': [Protocol.DOM.AffectedByStartingStylesFlagUpdatedEvent];
|
160
164
|
/**
|
161
165
|
* Called when a pseudo element is removed from an element.
|
162
166
|
*/
|
@@ -1392,6 +1392,11 @@ declare namespace ProtocolProxyApi {
|
|
1392
1392
|
*/
|
1393
1393
|
scrollableFlagUpdated(params: Protocol.DOM.ScrollableFlagUpdatedEvent): void;
|
1394
1394
|
|
1395
|
+
/**
|
1396
|
+
* Fired when a node's starting styles changes.
|
1397
|
+
*/
|
1398
|
+
affectedByStartingStylesFlagUpdated(params: Protocol.DOM.AffectedByStartingStylesFlagUpdatedEvent): void;
|
1399
|
+
|
1395
1400
|
/**
|
1396
1401
|
* Called when a pseudo element is removed from an element.
|
1397
1402
|
*/
|
@@ -4592,6 +4592,7 @@ export namespace DOM {
|
|
4592
4592
|
compatibilityMode?: CompatibilityMode;
|
4593
4593
|
assignedSlot?: BackendNode;
|
4594
4594
|
isScrollable?: boolean;
|
4595
|
+
affectedByStartingStyles?: boolean;
|
4595
4596
|
}
|
4596
4597
|
|
4597
4598
|
/**
|
@@ -5635,6 +5636,20 @@ export namespace DOM {
|
|
5635
5636
|
isScrollable: boolean;
|
5636
5637
|
}
|
5637
5638
|
|
5639
|
+
/**
|
5640
|
+
* Fired when a node's starting styles changes.
|
5641
|
+
*/
|
5642
|
+
export interface AffectedByStartingStylesFlagUpdatedEvent {
|
5643
|
+
/**
|
5644
|
+
* The id of the node.
|
5645
|
+
*/
|
5646
|
+
nodeId: DOM.NodeId;
|
5647
|
+
/**
|
5648
|
+
* If the node has starting styles.
|
5649
|
+
*/
|
5650
|
+
affectedByStartingStyles: boolean;
|
5651
|
+
}
|
5652
|
+
|
5638
5653
|
/**
|
5639
5654
|
* Called when a pseudo element is removed from an element.
|
5640
5655
|
*/
|
@@ -15965,6 +15980,11 @@ export namespace Preload {
|
|
15965
15980
|
* @deprecated
|
15966
15981
|
*/
|
15967
15982
|
errorMessage?: string;
|
15983
|
+
/**
|
15984
|
+
* For more details, see:
|
15985
|
+
* https://github.com/WICG/nav-speculation/blob/main/speculation-rules-tags.md
|
15986
|
+
*/
|
15987
|
+
tag?: string;
|
15968
15988
|
}
|
15969
15989
|
|
15970
15990
|
export const enum RuleSetErrorType {
|
@@ -18,7 +18,6 @@ import {
|
|
18
18
|
TraceEventFormatter,
|
19
19
|
} from '../data_formatters/PerformanceInsightFormatter.js';
|
20
20
|
import {PerformanceTraceFormatter} from '../data_formatters/PerformanceTraceFormatter.js';
|
21
|
-
import type {UnitFormatters} from '../data_formatters/Types.js';
|
22
21
|
import {debugLog} from '../debug.js';
|
23
22
|
|
24
23
|
import {
|
@@ -220,31 +219,14 @@ enum ScorePriority {
|
|
220
219
|
DEFAULT = 1,
|
221
220
|
}
|
222
221
|
|
223
|
-
export const PERF_AGENT_UNIT_FORMATTERS: UnitFormatters = {
|
224
|
-
micros(x) {
|
225
|
-
const milli = Trace.Helpers.Timing.microToMilli(x as Trace.Types.Timing.Micro);
|
226
|
-
return PERF_AGENT_UNIT_FORMATTERS.millis(milli);
|
227
|
-
},
|
228
|
-
millis(x) {
|
229
|
-
return i18n.TimeUtilities.preciseMillisToString(x, 1, ' ');
|
230
|
-
},
|
231
|
-
bytes(x) {
|
232
|
-
return i18n.ByteUtilities.bytesToString(x);
|
233
|
-
},
|
234
|
-
};
|
235
|
-
|
236
222
|
export class PerformanceTraceContext extends ConversationContext<TimelineUtils.AIContext.AgentFocus> {
|
237
|
-
static full(
|
238
|
-
|
239
|
-
traceMetadata: Trace.Types.File.MetaData): PerformanceTraceContext {
|
240
|
-
return new PerformanceTraceContext(TimelineUtils.AIContext.AgentFocus.full(parsedTrace, insights, traceMetadata));
|
223
|
+
static full(parsedTrace: Trace.TraceModel.ParsedTrace): PerformanceTraceContext {
|
224
|
+
return new PerformanceTraceContext(TimelineUtils.AIContext.AgentFocus.full(parsedTrace));
|
241
225
|
}
|
242
226
|
|
243
|
-
static fromInsight(
|
244
|
-
|
245
|
-
|
246
|
-
return new PerformanceTraceContext(
|
247
|
-
TimelineUtils.AIContext.AgentFocus.fromInsight(parsedTrace, insights, traceMetadata, insight));
|
227
|
+
static fromInsight(parsedTrace: Trace.TraceModel.ParsedTrace, insight: Trace.Insights.Types.InsightModel):
|
228
|
+
PerformanceTraceContext {
|
229
|
+
return new PerformanceTraceContext(TimelineUtils.AIContext.AgentFocus.fromInsight(parsedTrace, insight));
|
248
230
|
}
|
249
231
|
|
250
232
|
static fromCallTree(callTree: TimelineUtils.AICallTree.AICallTree): PerformanceTraceContext {
|
@@ -260,9 +242,10 @@ export class PerformanceTraceContext extends ConversationContext<TimelineUtils.A
|
|
260
242
|
|
261
243
|
override getOrigin(): string {
|
262
244
|
const focus = this.#focus.data;
|
245
|
+
const data = focus.parsedTrace.data;
|
263
246
|
|
264
247
|
if (focus.type === 'full' || focus.type === 'insight') {
|
265
|
-
const {min, max} =
|
248
|
+
const {min, max} = data.Meta.traceBounds;
|
266
249
|
return `trace-${min}-${max}`;
|
267
250
|
}
|
268
251
|
|
@@ -276,7 +259,7 @@ export class PerformanceTraceContext extends ConversationContext<TimelineUtils.A
|
|
276
259
|
// Get the non-resolved (ignore sourcemaps) URL for the event. We use the
|
277
260
|
// non-resolved URL as in the context of the AI Assistance panel, we care
|
278
261
|
// about the origin it was served on.
|
279
|
-
const nonResolvedURL = Trace.Handlers.Helpers.getNonResolvedURL(selectedEvent, focus.callTree.parsedTrace);
|
262
|
+
const nonResolvedURL = Trace.Handlers.Helpers.getNonResolvedURL(selectedEvent, focus.callTree.parsedTrace.data);
|
280
263
|
if (nonResolvedURL) {
|
281
264
|
const origin = Common.ParsedURL.ParsedURL.extractOrigin(nonResolvedURL);
|
282
265
|
if (origin) { // origin could be the empty string.
|
@@ -302,9 +285,10 @@ export class PerformanceTraceContext extends ConversationContext<TimelineUtils.A
|
|
302
285
|
|
303
286
|
override getTitle(): string {
|
304
287
|
const focus = this.#focus.data;
|
288
|
+
const data = focus.parsedTrace.data;
|
305
289
|
|
306
290
|
if (focus.type === 'full' || focus.type === 'insight') {
|
307
|
-
const url = focus.insightSet?.url ?? new URL(
|
291
|
+
const url = focus.insightSet?.url ?? new URL(data.Meta.mainFrameURL);
|
308
292
|
return `Trace: ${url.hostname}`;
|
309
293
|
}
|
310
294
|
|
@@ -330,8 +314,7 @@ export class PerformanceTraceContext extends ConversationContext<TimelineUtils.A
|
|
330
314
|
return;
|
331
315
|
}
|
332
316
|
|
333
|
-
return new PerformanceInsightFormatter(
|
334
|
-
.getSuggestions();
|
317
|
+
return new PerformanceInsightFormatter(focus.parsedTrace, focus.insight).getSuggestions();
|
335
318
|
}
|
336
319
|
}
|
337
320
|
|
@@ -672,7 +655,7 @@ export class PerformanceAgent extends AiAgent<TimelineUtils.AIContext.AgentFocus
|
|
672
655
|
this.addFact(this.#networkDataDescriptionFact);
|
673
656
|
|
674
657
|
if (!this.#traceFacts.length) {
|
675
|
-
this.#formatter = new PerformanceTraceFormatter(
|
658
|
+
this.#formatter = new PerformanceTraceFormatter(focus, this.#eventsSerializer);
|
676
659
|
this.#createFactForTraceSummary(focus);
|
677
660
|
this.#createFactForCriticalRequests();
|
678
661
|
this.#createFactForMainThreadBottomUpSummary();
|
@@ -708,7 +691,7 @@ export class PerformanceAgent extends AiAgent<TimelineUtils.AIContext.AgentFocus
|
|
708
691
|
return;
|
709
692
|
}
|
710
693
|
|
711
|
-
const {parsedTrace, insightSet
|
694
|
+
const {parsedTrace, insightSet} = focus.data;
|
712
695
|
|
713
696
|
this.declareFunction<{insightName: string}, {details: string}>('getInsightDetails', {
|
714
697
|
description:
|
@@ -738,8 +721,7 @@ export class PerformanceAgent extends AiAgent<TimelineUtils.AIContext.AgentFocus
|
|
738
721
|
return {error: 'No insight available'};
|
739
722
|
}
|
740
723
|
|
741
|
-
const details =
|
742
|
-
new PerformanceInsightFormatter(PERF_AGENT_UNIT_FORMATTERS, parsedTrace, insight).formatInsight();
|
724
|
+
const details = new PerformanceInsightFormatter(parsedTrace, insight).formatInsight();
|
743
725
|
|
744
726
|
const key = `getInsightDetails('${params.insightName}')`;
|
745
727
|
this.#cacheFunctionResult(focus, key, details);
|
@@ -787,8 +769,8 @@ export class PerformanceAgent extends AiAgent<TimelineUtils.AIContext.AgentFocus
|
|
787
769
|
return null;
|
788
770
|
}
|
789
771
|
|
790
|
-
const clampedMin = Math.max(min ?? 0, parsedTrace.Meta.traceBounds.min);
|
791
|
-
const clampedMax = Math.min(max ?? Number.POSITIVE_INFINITY, parsedTrace.Meta.traceBounds.max);
|
772
|
+
const clampedMin = Math.max(min ?? 0, parsedTrace.data.Meta.traceBounds.min);
|
773
|
+
const clampedMax = Math.min(max ?? Number.POSITIVE_INFINITY, parsedTrace.data.Meta.traceBounds.max);
|
792
774
|
if (clampedMin > clampedMax) {
|
793
775
|
return null;
|
794
776
|
}
|
@@ -951,7 +933,8 @@ export class PerformanceAgent extends AiAgent<TimelineUtils.AIContext.AgentFocus
|
|
951
933
|
});
|
952
934
|
|
953
935
|
const isFresh = TimelineUtils.FreshRecording.Tracker.instance().recordingIsFresh(parsedTrace);
|
954
|
-
const hasScriptContents =
|
936
|
+
const hasScriptContents =
|
937
|
+
parsedTrace.metadata.enhancedTraceVersion && parsedTrace.data.Scripts.scripts.some(s => s.content);
|
955
938
|
|
956
939
|
if (isFresh || hasScriptContents) {
|
957
940
|
this.declareFunction<{url: string}, {content: string}>('getResourceContent', {
|
@@ -20,6 +20,6 @@ export * from './data_formatters/FileFormatter.js';
|
|
20
20
|
export * from './data_formatters/NetworkRequestFormatter.js';
|
21
21
|
export * from './data_formatters/PerformanceInsightFormatter.js';
|
22
22
|
export * from './data_formatters/PerformanceTraceFormatter.js';
|
23
|
-
export * from './data_formatters/
|
23
|
+
export * from './data_formatters/UnitFormatters.js';
|
24
24
|
export * from './ConversationHandler.js';
|
25
25
|
export * from './injected.js';
|
@@ -2,11 +2,12 @@
|
|
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 * as i18n from '../../../core/i18n/i18n.js';
|
6
5
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
7
6
|
import * as Logs from '../../logs/logs.js';
|
8
7
|
import * as NetworkTimeCalculator from '../../network_time_calculator/network_time_calculator.js';
|
9
8
|
|
9
|
+
import {seconds} from './UnitFormatters.js';
|
10
|
+
|
10
11
|
const MAX_HEADERS_SIZE = 1000;
|
11
12
|
|
12
13
|
/**
|
@@ -104,22 +105,22 @@ Request initiator chain:\n${this.formatRequestInitiatorChain()}`;
|
|
104
105
|
formatNetworkRequestTiming(): string {
|
105
106
|
const results = NetworkTimeCalculator.calculateRequestTimeRanges(this.#request, this.#calculator.minimumBoundary());
|
106
107
|
|
107
|
-
|
108
|
+
const getDuration = (name: string): string|undefined => {
|
108
109
|
const result = results.find(r => r.name === name);
|
109
110
|
if (!result) {
|
110
111
|
return;
|
111
112
|
}
|
112
|
-
return
|
113
|
-
}
|
113
|
+
return seconds(result.end - result.start);
|
114
|
+
};
|
114
115
|
|
115
116
|
const labels = [
|
116
117
|
{
|
117
118
|
label: 'Queued at (timestamp)',
|
118
|
-
value:
|
119
|
+
value: seconds(this.#request.issueTime() - this.#calculator.zeroTime()),
|
119
120
|
},
|
120
121
|
{
|
121
122
|
label: 'Started at (timestamp)',
|
122
|
-
value:
|
123
|
+
value: seconds(this.#request.startTime - this.#calculator.zeroTime()),
|
123
124
|
},
|
124
125
|
{
|
125
126
|
label: 'Queueing (duration)',
|