chrome-devtools-frontend 1.0.1362775 → 1.0.1367881
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/.eslintrc.js +1 -0
- package/.stylelintrc.json +2 -1
- package/config/gni/devtools_grd_files.gni +14 -2
- package/config/gni/devtools_image_files.gni +2 -1
- package/docs/contributing/issues.md +15 -0
- package/extensions/cxx_debugging/src/ExtensionOptions.ts +0 -1
- package/extensions/cxx_debugging/third_party/llvm/README.chromium +1 -1
- package/front_end/.eslintrc.js +0 -5
- package/front_end/Images/src/button-magic.svg +3 -0
- package/front_end/Images/src/performance-panel-delete-annotation.svg +32 -0
- package/front_end/Images/src/performance-panel-diagram.svg +19 -14
- package/front_end/Images/src/performance-panel-entry-label.svg +9 -16
- package/front_end/Images/src/performance-panel-time-range.svg +2 -8
- package/front_end/core/common/AppProvider.ts +1 -1
- package/front_end/core/common/Object.ts +2 -7
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/common/Settings.ts +1 -1
- package/front_end/core/host/AidaClient.ts +7 -1
- package/front_end/core/host/InspectorFrontendHost.ts +1 -1
- package/front_end/core/host/ResourceLoader.ts +1 -1
- package/front_end/core/host/UserMetrics.ts +14 -2
- package/front_end/core/i18n/time-utilities.ts +7 -1
- package/front_end/core/platform/ArrayUtilities.ts +1 -0
- package/front_end/core/platform/DevToolsPath.ts +1 -1
- package/front_end/core/platform/Timing.ts +1 -1
- package/front_end/core/platform/UIString.ts +1 -1
- package/front_end/core/platform/UserVisibleError.ts +1 -1
- package/front_end/core/root/Runtime.ts +11 -2
- package/front_end/core/sdk/AccessibilityModel.ts +3 -4
- package/front_end/core/sdk/CPUProfilerModel.ts +3 -4
- package/front_end/core/sdk/CSSContainerQuery.ts +3 -3
- package/front_end/core/sdk/CSSLayer.ts +2 -2
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +1 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +10 -2
- package/front_end/core/sdk/CSSMedia.ts +2 -2
- package/front_end/core/sdk/CSSMetadata.ts +21 -0
- package/front_end/core/sdk/CSSModel.ts +1 -0
- package/front_end/core/sdk/CSSProperty.ts +2 -2
- package/front_end/core/sdk/CSSQuery.ts +2 -2
- package/front_end/core/sdk/CSSRule.ts +2 -2
- package/front_end/core/sdk/CSSScope.ts +2 -2
- package/front_end/core/sdk/CSSStyleDeclaration.ts +3 -3
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +4 -4
- package/front_end/core/sdk/CSSSupports.ts +2 -2
- package/front_end/core/sdk/CookieModel.ts +1 -1
- package/front_end/core/sdk/DOMDebuggerModel.ts +1 -1
- package/front_end/core/sdk/DebuggerModel.ts +9 -3
- package/front_end/core/sdk/EnhancedTracesParser.test.ts +1 -5
- package/front_end/core/sdk/EnhancedTracesParser.ts +2 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +1 -2
- package/front_end/core/sdk/FrameAssociated.ts +1 -1
- package/front_end/core/sdk/FrameManager.ts +9 -7
- package/front_end/core/sdk/HeapProfilerModel.ts +3 -4
- package/front_end/core/sdk/IsolateManager.ts +2 -3
- package/front_end/core/sdk/LayerTreeBase.ts +2 -2
- package/front_end/core/sdk/NetworkManager.ts +1 -1
- package/front_end/core/sdk/OverlayModel.ts +2 -2
- package/front_end/core/sdk/OverlayPersistentHighlighter.ts +1 -1
- package/front_end/core/sdk/PageLoad.ts +1 -1
- package/front_end/core/sdk/PageResourceLoader.ts +1 -1
- package/front_end/core/sdk/RemoteObject.ts +3 -3
- package/front_end/core/sdk/Resource.ts +2 -2
- package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
- package/front_end/core/sdk/SDKModel.ts +1 -1
- package/front_end/core/sdk/Script.ts +5 -5
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +5 -7
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/core/sdk/SourceMapManager.ts +1 -1
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
- package/front_end/core/sdk/SourceMapScopesInfo.ts +2 -2
- package/front_end/core/sdk/Target.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +4 -1
- package/front_end/core/sdk/WebAuthnModel.ts +20 -0
- package/front_end/core/sdk/sdk-meta.ts +7 -0
- package/front_end/devtools_compatibility.js +3 -3
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/IdentityFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JSONFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +12 -12
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
- package/front_end/entrypoints/main/MainImpl.ts +11 -1
- package/front_end/generated/InspectorBackendCommands.js +5 -3
- package/front_end/generated/SupportedCSSProperties.js +20 -14
- package/front_end/generated/protocol-mapping.d.ts +10 -0
- package/front_end/generated/protocol-proxy-api.d.ts +12 -0
- package/front_end/generated/protocol.ts +32 -1
- package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +4 -2
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +2 -2
- package/front_end/models/bindings/CompilerScriptMapping.ts +1 -2
- package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +1 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
- package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
- package/front_end/models/bindings/IgnoreListManager.test.ts +49 -12
- package/front_end/models/bindings/IgnoreListManager.ts +79 -5
- package/front_end/models/bindings/ResourceMapping.ts +1 -1
- package/front_end/models/bindings/StylesSourceMapping.ts +11 -6
- package/front_end/models/breakpoints/BreakpointManager.test.ts +1 -1
- package/front_end/models/extensions/ExtensionPanel.ts +1 -1
- package/front_end/models/extensions/ExtensionServer.test.ts +1 -1
- package/front_end/models/extensions/ExtensionServer.ts +1 -1
- package/front_end/models/extensions/ExtensionView.ts +1 -1
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +1 -1
- package/front_end/models/extensions/RecorderPluginManager.ts +1 -1
- package/front_end/models/har/Importer.ts +1 -1
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +1 -1
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -2
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
- package/front_end/models/issues_manager/CorsIssue.ts +1 -1
- package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
- package/front_end/models/issues_manager/Issue.ts +1 -1
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +1 -1
- package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PropertyRuleIssue.ts +1 -1
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/RelatedIssue.ts +1 -1
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +3 -3
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +1 -1
- package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
- package/front_end/models/javascript_metadata/NativeFunctions.js +69 -61
- package/front_end/models/live-metrics/LiveMetrics.ts +41 -34
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +1 -1
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +2 -3
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -3
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +2 -2
- package/front_end/models/text_utils/ContentProvider.ts +3 -3
- package/front_end/models/text_utils/StaticContentProvider.ts +1 -5
- package/front_end/models/text_utils/TextUtils.ts +1 -1
- package/front_end/models/text_utils/WasmDisassembly.ts +1 -1
- package/front_end/models/timeline_model/TimelineProfileTree.test.ts +21 -21
- package/front_end/models/timeline_model/TimelineProfileTree.ts +1 -1
- package/front_end/models/trace/ModelImpl.test.ts +1 -1
- package/front_end/models/trace/ModelImpl.ts +10 -27
- package/front_end/models/trace/Processor.test.ts +16 -15
- package/front_end/models/trace/Processor.ts +33 -9
- package/front_end/models/trace/extras/FilmStrip.ts +2 -2
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +10 -1
- package/front_end/models/trace/handlers/MetaHandler.ts +4 -0
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +1 -1
- package/front_end/models/trace/handlers/RendererHandler.test.ts +1 -1
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +5 -4
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +7 -5
- package/front_end/models/trace/handlers/Threads.ts +2 -2
- package/front_end/models/trace/handlers/WarningsHandler.ts +1 -1
- package/front_end/models/trace/helpers/Network.ts +20 -2
- package/front_end/models/trace/helpers/SyntheticEvents.test.ts +1 -1
- package/front_end/models/trace/helpers/Trace.test.ts +34 -3
- package/front_end/models/trace/helpers/Trace.ts +12 -0
- package/front_end/models/trace/helpers/TreeHelpers.test.ts +52 -0
- package/front_end/models/trace/helpers/TreeHelpers.ts +80 -1
- package/front_end/models/trace/insights/Common.ts +1 -1
- package/front_end/models/trace/insights/CumulativeLayoutShift.test.ts +24 -2
- package/front_end/models/trace/insights/CumulativeLayoutShift.ts +102 -27
- package/front_end/models/trace/insights/DocumentLatency.test.ts +22 -11
- package/front_end/models/trace/insights/DocumentLatency.ts +9 -6
- package/front_end/models/trace/insights/FontDisplay.ts +5 -1
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +4 -3
- package/front_end/models/trace/insights/LargestContentfulPaint.test.ts +9 -1
- package/front_end/models/trace/insights/LargestContentfulPaint.ts +26 -6
- package/front_end/models/trace/insights/RenderBlocking.test.ts +10 -16
- package/front_end/models/trace/insights/RenderBlocking.ts +6 -4
- package/front_end/models/trace/insights/SlowCSSSelector.ts +3 -1
- package/front_end/models/trace/insights/ThirdPartyWeb.ts +15 -2
- package/front_end/models/trace/insights/Viewport.ts +1 -0
- package/front_end/models/trace/insights/types.ts +14 -11
- package/front_end/models/trace/lantern/graph/BaseNode.ts +2 -2
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +4 -3
- package/front_end/models/trace/lantern/simulation/TCPConnection.ts +1 -1
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +1 -1
- package/front_end/models/trace/root-causes/LayoutShift.ts +3 -20
- package/front_end/models/trace/types/Extensions.ts +3 -7
- package/front_end/models/trace/types/File.ts +2 -8
- package/front_end/models/trace/types/TraceEvents.ts +10 -4
- package/front_end/models/workspace/UISourceCode.test.ts +3 -3
- package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/animation/AnimationModel.ts +1 -1
- package/front_end/panels/animation/AnimationTimeline.ts +1 -1
- package/front_end/panels/animation/AnimationUI.ts +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +90 -0
- package/front_end/panels/application/ApplicationPanelSidebar.ts +123 -20
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
- package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +4 -2
- package/front_end/panels/application/ExtensionStorageItemsView.test.ts +89 -0
- package/front_end/panels/application/ExtensionStorageItemsView.ts +219 -0
- package/front_end/panels/application/ExtensionStorageModel.test.ts +12 -0
- package/front_end/panels/application/ExtensionStorageModel.ts +56 -13
- package/front_end/panels/application/IndexedDBViews.ts +14 -19
- package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
- package/front_end/panels/application/PreloadingTreeElement.ts +1 -1
- package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +18 -1
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageListTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageTreeElement.ts +2 -2
- package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
- package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/BackForwardCacheView.ts +76 -72
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +32 -29
- package/front_end/panels/application/components/EndpointsGrid.ts +5 -4
- package/front_end/panels/application/components/FrameDetailsView.ts +110 -127
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +11 -11
- package/front_end/panels/application/components/OriginTrialTreeView.ts +36 -34
- package/front_end/panels/application/components/PermissionsPolicySection.ts +31 -33
- package/front_end/panels/application/components/ProtocolHandlersView.ts +15 -14
- package/front_end/panels/application/components/ReportsGrid.ts +11 -9
- package/front_end/panels/application/components/ServiceWorkerRouterView.ts +0 -1
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +11 -11
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +16 -14
- package/front_end/panels/application/components/StackTrace.ts +18 -17
- package/front_end/panels/application/components/StorageMetadataView.ts +19 -18
- package/front_end/panels/application/components/TrustTokensView.ts +17 -16
- package/front_end/panels/application/preloading/PreloadingView.ts +14 -11
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +7 -6
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +42 -45
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +13 -11
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +11 -9
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +5 -4
- package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -0
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +10 -8
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +20 -16
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +50 -57
- package/front_end/panels/application/resourcesSidebar.css +0 -3
- package/front_end/panels/autofill/AutofillView.ts +19 -14
- package/front_end/panels/console/ConsoleFilter.ts +1 -1
- package/front_end/panels/console/ConsoleSidebar.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
- package/front_end/panels/console/consoleView.css +4 -3
- package/front_end/panels/coverage/CoverageDecorationManager.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewModel.ts +2 -3
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +5 -7
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +12 -10
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +9 -4
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
- package/front_end/panels/elements/ComputedStyleWidget.ts +6 -4
- package/front_end/panels/elements/ElementsPanel.ts +7 -6
- package/front_end/panels/elements/ElementsTreeElement.ts +35 -0
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/PropertyMatchers.test.ts +57 -0
- package/front_end/panels/elements/PropertyMatchers.ts +78 -1
- package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
- package/front_end/panels/elements/StylePropertiesSection.test.ts +1 -0
- package/front_end/panels/elements/StylePropertyHighlighter.test.ts +1 -0
- package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -2
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +36 -3
- package/front_end/panels/elements/StylePropertyTreeElement.ts +72 -26
- package/front_end/panels/elements/StylesSidebarPane.test.ts +2 -0
- package/front_end/panels/elements/TopLayerContainer.ts +1 -2
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +8 -7
- package/front_end/panels/elements/components/AdornerSettingsPane.ts +3 -4
- package/front_end/panels/elements/components/AnchorFunctionLinkSwatch.ts +8 -7
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +3 -2
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +3 -2
- package/front_end/panels/elements/components/CSSQuery.ts +0 -1
- package/front_end/panels/elements/components/CSSVariableValueView.ts +1 -3
- package/front_end/panels/elements/components/ComputedStyleProperty.ts +0 -1
- package/front_end/panels/elements/components/ComputedStyleTrace.ts +0 -1
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +15 -11
- package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +1 -1
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +6 -4
- package/front_end/panels/elements/components/LayoutPane.ts +8 -7
- package/front_end/panels/elements/components/QueryContainer.test.ts +2 -3
- package/front_end/panels/elements/components/QueryContainer.ts +10 -9
- package/front_end/panels/elements/components/StylePropertyEditor.ts +4 -4
- package/front_end/panels/elements/components/computedStyleProperty.css +2 -1
- package/front_end/panels/elements/components/cssPropertyDocsView.css +3 -2
- package/front_end/panels/elements/elementsTreeOutline.css +17 -0
- package/front_end/panels/elements/stylesSidebarPane.css +2 -2
- package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
- package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +3 -1
- package/front_end/panels/explain/components/ConsoleInsight.ts +47 -46
- package/front_end/panels/explain/components/consoleInsight.css +0 -9
- package/front_end/panels/freestyler/AiAgent.ts +8 -2
- package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +201 -0
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +196 -0
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +1 -1
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +34 -31
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +195 -0
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +193 -0
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +177 -12
- package/front_end/panels/freestyler/FreestylerAgent.ts +83 -8
- package/front_end/panels/freestyler/FreestylerEvaluateAction.test.ts +21 -1
- package/front_end/panels/freestyler/FreestylerEvaluateAction.ts +3 -0
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +16 -2
- package/front_end/panels/freestyler/FreestylerPanel.ts +126 -15
- package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +21 -2
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +294 -145
- package/front_end/panels/freestyler/components/ProvideFeedback.ts +16 -13
- package/front_end/panels/freestyler/components/freestylerChatUi.css +78 -26
- package/front_end/panels/freestyler/freestyler-meta.ts +64 -9
- package/front_end/panels/freestyler/freestyler.ts +2 -0
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +5 -4
- package/front_end/panels/issues/CorsIssueDetailsView.ts +6 -6
- package/front_end/panels/issues/GenericIssueDetailsView.ts +3 -3
- package/front_end/panels/issues/IssueView.ts +2 -2
- package/front_end/panels/issues/components/ElementsPanelLink.ts +3 -1
- package/front_end/panels/issues/components/HideIssuesMenu.ts +6 -5
- package/front_end/panels/lighthouse/LighthouseController.ts +2 -2
- package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -6
- package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +8 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts +11 -0
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +26 -31
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +11 -14
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +5 -4
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +0 -1
- package/front_end/panels/media/EventDisplayTable.ts +1 -1
- package/front_end/panels/media/EventTimelineView.ts +1 -1
- package/front_end/panels/media/PlayerDetailView.ts +3 -3
- package/front_end/panels/media/PlayerListView.ts +2 -2
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +23 -29
- package/front_end/panels/network/NetworkConfigView.ts +1 -2
- package/front_end/panels/network/NetworkDataGridNode.ts +4 -153
- package/front_end/panels/network/NetworkFrameGrouper.ts +1 -1
- package/front_end/panels/network/NetworkItemView.ts +1 -1
- package/front_end/panels/network/NetworkLogView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +4 -6
- package/front_end/panels/network/NetworkWaterfallColumn.ts +5 -8
- package/front_end/panels/network/RequestBinaryResponseView.test.ts +69 -0
- package/front_end/panels/network/RequestBinaryResponseView.ts +67 -0
- package/front_end/panels/network/RequestResponseView.test.ts +28 -1
- package/front_end/panels/network/RequestResponseView.ts +14 -7
- package/front_end/panels/network/components/EditableSpan.ts +0 -1
- package/front_end/panels/network/components/HeaderSectionRow.test.ts +1 -1
- package/front_end/panels/network/components/HeaderSectionRow.ts +22 -21
- package/front_end/panels/network/components/RequestHeaderSection.ts +7 -7
- package/front_end/panels/network/components/RequestHeadersView.ts +25 -26
- package/front_end/panels/network/components/RequestTrustTokensView.ts +32 -35
- package/front_end/panels/network/components/ResponseHeaderSection.ts +8 -10
- package/front_end/panels/network/components/WebBundleInfoView.ts +13 -11
- package/front_end/panels/network/network.ts +2 -0
- package/front_end/panels/network/networkConfigView.css +12 -5
- package/front_end/panels/network/networkLogView.css +4 -15
- package/front_end/panels/network/requestHTMLView.css +1 -0
- package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotProxy.ts +1 -1
- package/front_end/panels/profiler/ProfileLauncherView.ts +3 -3
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +4 -2
- package/front_end/panels/protocol_monitor/components/JSONEditor.ts +22 -15
- package/front_end/panels/protocol_monitor/components/Toolbar.ts +4 -4
- package/front_end/panels/recorder/RecorderController.ts +39 -43
- package/front_end/panels/recorder/components/ControlButton.ts +1 -1
- package/front_end/panels/recorder/components/CreateRecordingView.ts +15 -15
- package/front_end/panels/recorder/components/ExtensionView.ts +9 -8
- package/front_end/panels/recorder/components/RecordingListView.ts +15 -13
- package/front_end/panels/recorder/components/RecordingView.ts +92 -84
- package/front_end/panels/recorder/components/ReplaySection.ts +6 -6
- package/front_end/panels/recorder/components/SelectButton.ts +21 -20
- package/front_end/panels/recorder/components/StartView.ts +14 -18
- package/front_end/panels/recorder/components/StepEditor.ts +3 -3
- package/front_end/panels/recorder/components/StepView.ts +20 -20
- package/front_end/panels/recorder/components/TimelineSection.ts +3 -2
- package/front_end/panels/recorder/converters/ExtensionConverter.ts +2 -2
- package/front_end/panels/recorder/converters/JSONConverter.ts +1 -1
- package/front_end/panels/recorder/converters/LighthouseConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerReplayConverter.ts +1 -1
- package/front_end/panels/recorder/injected/RecordingClient.ts +7 -10
- package/front_end/panels/recorder/injected/SelectorComputer.ts +5 -5
- package/front_end/panels/recorder/injected/SelectorPicker.ts +2 -2
- package/front_end/panels/recorder/injected/Step.ts +1 -1
- package/front_end/panels/recorder/injected/injected.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/ARIASelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/PierceSelector.ts +6 -7
- package/front_end/panels/recorder/injected/selectors/TextSelector.ts +3 -5
- package/front_end/panels/recorder/injected/util.ts +1 -1
- package/front_end/panels/recorder/models/RecordingPlayer.ts +1 -1
- package/front_end/panels/recorder/models/RecordingSettings.ts +1 -4
- package/front_end/panels/recorder/models/RecordingStorage.ts +1 -1
- package/front_end/panels/recorder/models/SDKUtils.ts +3 -2
- package/front_end/panels/recorder/models/ScreenshotUtils.ts +1 -1
- package/front_end/panels/recorder/models/Section.ts +2 -2
- package/front_end/panels/search/SearchResultsPane.ts +1 -2
- package/front_end/panels/search/SearchView.ts +1 -1
- package/front_end/panels/security/OriginTreeElement.ts +1 -1
- package/front_end/panels/security/SecurityAndPrivacyPanelSidebar.ts +1 -1
- package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +1 -1
- package/front_end/panels/sensors/SensorsView.ts +16 -0
- package/front_end/panels/sensors/sensors.css +16 -0
- package/front_end/panels/settings/AISettingsTab.test.ts +41 -11
- package/front_end/panels/settings/AISettingsTab.ts +103 -58
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +9 -0
- package/front_end/panels/settings/SettingsScreen.ts +1 -1
- package/front_end/panels/settings/components/SyncSection.ts +18 -13
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +33 -30
- package/front_end/panels/settings/settings-meta.ts +2 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +2 -2
- package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
- package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
- package/front_end/panels/sources/SourcesNavigator.test.ts +1 -0
- package/front_end/panels/sources/SourcesPanel.ts +7 -0
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
- package/front_end/panels/sources/components/BreakpointsView.ts +25 -26
- package/front_end/panels/sources/components/HeadersView.ts +17 -15
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +18 -3
- package/front_end/panels/timeline/AnnotationHelpers.ts +1 -1
- package/front_end/panels/timeline/AppenderUtils.ts +1 -1
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +27 -10
- package/front_end/panels/timeline/CountersGraph.ts +1 -1
- package/front_end/panels/timeline/EntriesFilter.test.ts +68 -0
- package/front_end/panels/timeline/EntriesFilter.ts +13 -0
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +1 -1
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +10 -0
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +135 -1
- package/front_end/panels/timeline/ModificationsManager.test.ts +160 -0
- package/front_end/panels/timeline/ModificationsManager.ts +31 -0
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +4 -2
- package/front_end/panels/timeline/TimelineDetailsView.ts +34 -12
- package/front_end/panels/timeline/TimelineEventOverview.ts +1 -0
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +53 -0
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +50 -20
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +57 -0
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +18 -0
- package/front_end/panels/timeline/TimelineFlameChartView.ts +90 -29
- package/front_end/panels/timeline/TimelineHistoryManager.ts +3 -1
- package/front_end/panels/timeline/TimelineLoader.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +49 -37
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +16 -12
- package/front_end/panels/timeline/TimelineTreeView.test.ts +9 -9
- package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +116 -41
- package/front_end/panels/timeline/TimingsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +2 -3
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +8 -7
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +28 -27
- package/front_end/panels/timeline/components/InteractionBreakdown.ts +3 -2
- package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +13 -11
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +217 -87
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +194 -69
- package/front_end/panels/timeline/components/LiveMetricsView.ts +327 -141
- package/front_end/panels/timeline/components/MetricCard.test.ts +8 -8
- package/front_end/panels/timeline/components/MetricCard.ts +6 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +1 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +16 -13
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +12 -10
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +35 -2
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +30 -13
- package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +74 -0
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +92 -0
- package/front_end/panels/timeline/components/Sidebar.test.ts +74 -0
- package/front_end/panels/timeline/components/Sidebar.ts +32 -13
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +66 -0
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +108 -39
- package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +11 -1
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +70 -37
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +59 -1
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +90 -34
- package/front_end/panels/timeline/components/Utils.test.ts +65 -0
- package/front_end/panels/timeline/components/Utils.ts +117 -0
- package/front_end/panels/timeline/components/components.ts +2 -0
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +67 -53
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +98 -14
- package/front_end/panels/timeline/components/insights/EventRef.ts +92 -0
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +24 -13
- package/front_end/panels/timeline/components/insights/Helpers.ts +48 -43
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +20 -18
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +93 -48
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +28 -9
- package/front_end/panels/timeline/components/insights/NodeLink.ts +3 -1
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +33 -25
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +92 -15
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +26 -39
- package/front_end/panels/timeline/components/insights/Table.ts +12 -9
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +20 -12
- package/front_end/panels/timeline/components/insights/Viewport.ts +23 -20
- package/front_end/panels/timeline/components/insights/insights.ts +2 -0
- package/front_end/panels/timeline/components/insights/sidebarInsight.css +54 -9
- package/front_end/panels/timeline/components/insights/table.css +9 -1
- package/front_end/panels/timeline/components/layoutShiftDetails.css +22 -20
- package/front_end/panels/timeline/components/liveMetricsView.css +46 -16
- package/front_end/panels/timeline/components/networkRequestDetails.css +2 -1
- package/front_end/panels/timeline/components/relatedInsightChips.css +45 -0
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +24 -6
- package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +18 -4
- package/front_end/panels/timeline/extensions/ExtensionUI.ts +4 -1
- package/front_end/panels/timeline/fixtures/traces/basic.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/many-redirects.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/missing-url.json.gz +0 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +40 -51
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +87 -39
- package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +13 -11
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +24 -32
- package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +23 -24
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.test.ts +42 -0
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +25 -19
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +0 -14
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +16 -13
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +59 -20
- package/front_end/panels/timeline/timelineFlameChartView.css +3 -2
- package/front_end/panels/timeline/timelineFlamechartPopover.css +19 -0
- package/front_end/panels/timeline/timelineHistoryManager.css +4 -0
- package/front_end/panels/timeline/timelinePanel.css +2 -10
- package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +7 -7
- package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +1 -1
- package/front_end/panels/timeline/utils/Helpers.test.ts +38 -0
- package/front_end/panels/timeline/utils/Helpers.ts +94 -0
- package/front_end/panels/timeline/utils/ImageCache.test.ts +106 -0
- package/front_end/panels/timeline/utils/ImageCache.ts +55 -0
- package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +13 -1
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +11 -2
- package/front_end/panels/timeline/utils/utils.ts +4 -0
- package/front_end/panels/utils/utils.ts +1 -1
- package/front_end/panels/web_audio/graph_visualizer/EdgeView.ts +1 -1
- package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +3 -9
- package/front_end/panels/webauthn/WebauthnPane.test.ts +75 -4
- package/front_end/panels/webauthn/WebauthnPane.ts +24 -3
- package/front_end/testing/EnvironmentHelpers.ts +19 -4
- package/front_end/testing/ExtensionHelpers.ts +1 -1
- package/front_end/testing/LanguagePluginHelpers.ts +1 -1
- package/front_end/testing/MockConnection.ts +1 -1
- package/front_end/testing/MockIssuesManager.ts +1 -1
- package/front_end/testing/MockScopeChain.ts +1 -1
- package/front_end/testing/MutationHelpers.test.ts +6 -8
- package/front_end/testing/TraceHelpers.ts +3 -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/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/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +11 -3
- package/front_end/third_party/codemirror.next/package.json +5 -5
- package/front_end/third_party/i18n/localized-string-set.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.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/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +9 -9
- 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 +84 -84
- 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/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.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 +1 -2
- 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/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +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 +2 -3
- 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/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +17 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.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.d.ts.map +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/injected.js.map +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/PQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.js.map +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/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +114 -97
- 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/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +9 -9
- 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 +82 -83
- 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/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.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 +2 -3
- 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/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +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 +3 -4
- 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/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +17 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.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.d.ts.map +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/injected.js.map +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/injected/PQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +89 -89
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +6 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Navigation.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/Request.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Session.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserPrompt.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +9 -5
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +22 -1
- package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/QueryHandler.ts +1 -3
- package/front_end/third_party/puppeteer/package/src/common/util.ts +2 -1
- 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/injected/PQuerySelector.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +2 -2
- package/front_end/third_party/puppeteer/puppeteer.ts +1 -1
- package/front_end/ui/components/buttons/Button.ts +18 -17
- package/front_end/ui/components/buttons/button.css +0 -4
- package/front_end/ui/components/cards/Card.test.ts +66 -0
- package/front_end/ui/components/cards/Card.ts +57 -0
- package/front_end/ui/components/cards/card.css +32 -0
- package/front_end/ui/components/cards/cards.ts +9 -0
- package/front_end/ui/components/chrome_link/ChromeLink.test.ts +5 -3
- package/front_end/ui/components/chrome_link/ChromeLink.ts +3 -1
- package/front_end/ui/components/data_grid/DataGrid.test.ts +3 -1
- package/front_end/ui/components/data_grid/DataGrid.ts +25 -23
- package/front_end/ui/components/data_grid/DataGridContextMenuUtils.ts +2 -2
- package/front_end/ui/components/data_grid/DataGridController.ts +9 -5
- package/front_end/ui/components/data_grid/DataGridEvents.ts +1 -1
- package/front_end/ui/components/data_grid/DataGridRenderers.ts +7 -4
- package/front_end/ui/components/dialogs/Dialog.ts +4 -2
- package/front_end/ui/components/dialogs/IconDialog.ts +9 -7
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +10 -8
- package/front_end/ui/components/diff_view/DiffView.ts +9 -8
- package/front_end/ui/components/docs/create_breadcrumbs.ts +3 -1
- package/front_end/ui/components/docs/expandable_list/basic.ts +4 -2
- package/front_end/ui/components/docs/floating_button/basic.html +26 -0
- package/front_end/ui/components/docs/floating_button/basic.ts +20 -0
- package/front_end/ui/components/docs/freestyler/basic.ts +5 -0
- package/front_end/ui/components/docs/freestyler/empty_state.ts +5 -0
- package/front_end/ui/components/docs/icon_dialog/basic.ts +5 -3
- package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +7 -4
- package/front_end/ui/components/docs/performance_panel/flamechart.html +4 -0
- package/front_end/ui/components/docs/performance_panel/flamechart.ts +45 -0
- package/front_end/ui/components/docs/recorder_select_button/basic.ts +21 -18
- package/front_end/ui/components/docs/report/basic.ts +19 -23
- package/front_end/ui/components/docs/theme_colors/basic.ts +4 -2
- package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +4 -2
- package/front_end/ui/components/expandable_list/ExpandableList.test.ts +5 -3
- package/front_end/ui/components/expandable_list/ExpandableList.ts +6 -4
- package/front_end/ui/components/floating_button/FloatingButton.ts +51 -0
- package/front_end/ui/components/floating_button/floatingButton.css +63 -0
- package/front_end/ui/components/floating_button/floating_button.ts +7 -0
- package/front_end/ui/components/helpers/helpers.test.ts +18 -14
- package/front_end/ui/components/icon_button/Icon.ts +2 -2
- package/front_end/ui/components/icon_button/IconButton.ts +15 -10
- package/front_end/ui/components/issue_counter/IssueCounter.ts +5 -1
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +7 -4
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +0 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +3 -1
- package/front_end/ui/components/markdown_view/CodeBlock.test.ts +7 -7
- package/front_end/ui/components/markdown_view/CodeBlock.ts +33 -41
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +12 -9
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +3 -1
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +51 -3
- package/front_end/ui/components/markdown_view/MarkdownView.ts +39 -22
- package/front_end/ui/components/markdown_view/codeBlock.css +6 -28
- package/front_end/ui/components/markdown_view/markdownLink.css +1 -1
- package/front_end/ui/components/markdown_view/markdownView.css +4 -0
- package/front_end/ui/components/menus/Menu.ts +7 -5
- package/front_end/ui/components/menus/SelectMenu.test.ts +3 -1
- package/front_end/ui/components/menus/SelectMenu.ts +17 -15
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +5 -3
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +8 -4
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +6 -4
- package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +3 -1
- package/front_end/ui/components/report_view/ReportView.test.ts +5 -3
- package/front_end/ui/components/report_view/ReportView.ts +9 -7
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +8 -5
- package/front_end/ui/components/settings/SettingCheckbox.ts +14 -12
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +7 -4
- package/front_end/ui/components/spinners/Spinner.ts +3 -1
- package/front_end/ui/components/split_view/SplitView.ts +3 -1
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +3 -1
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +3 -2
- package/front_end/ui/components/survey_link/SurveyLink.ts +7 -3
- package/front_end/ui/components/switch/SwitchImpl.ts +3 -1
- package/front_end/ui/components/text_editor/TextEditorHistory.ts +2 -2
- package/front_end/ui/components/text_prompt/TextPrompt.ts +3 -1
- package/front_end/ui/components/tree_outline/TreeOutline.test.ts +8 -6
- package/front_end/ui/components/tree_outline/TreeOutline.ts +9 -8
- package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +5 -3
- package/front_end/ui/legacy/Context.ts +1 -1
- package/front_end/ui/legacy/Dialog.ts +2 -2
- package/front_end/ui/legacy/DockController.ts +2 -2
- package/front_end/ui/legacy/FilterBar.ts +1 -1
- package/front_end/ui/legacy/FilterSuggestionBuilder.ts +1 -1
- package/front_end/ui/legacy/GlassPane.ts +1 -1
- package/front_end/ui/legacy/Infobar.ts +1 -1
- package/front_end/ui/legacy/InspectorView.ts +5 -5
- package/front_end/ui/legacy/Panel.ts +1 -1
- package/front_end/ui/legacy/ShortcutRegistry.ts +1 -1
- package/front_end/ui/legacy/SplitWidget.test.ts +33 -1
- package/front_end/ui/legacy/SplitWidget.ts +62 -7
- package/front_end/ui/legacy/TabbedPane.ts +24 -0
- package/front_end/ui/legacy/Toolbar.test.ts +39 -0
- package/front_end/ui/legacy/Toolbar.ts +16 -17
- package/front_end/ui/legacy/UIUtils.ts +1 -1
- package/front_end/ui/legacy/View.ts +2 -2
- package/front_end/ui/legacy/ViewManager.ts +3 -2
- package/front_end/ui/legacy/ViewRegistration.ts +2 -2
- package/front_end/ui/legacy/Widget.ts +62 -14
- package/front_end/ui/legacy/XElement.ts +0 -1
- package/front_end/ui/legacy/XLink.test.ts +3 -1
- package/front_end/ui/legacy/XLink.ts +6 -4
- package/front_end/ui/legacy/checkboxTextLabel.css +4 -0
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGridWithPreview.ts +21 -10
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +10 -7
- package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +3 -1
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +3 -1
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +9 -9
- package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -4
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +9 -9
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +49 -13
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -0
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +0 -1
- package/front_end/ui/legacy/themeColors.css +10 -0
- package/front_end/ui/legacy/toolbar.css +4 -0
- package/front_end/ui/legacy/treeoutline.css +0 -3
- package/front_end/ui/lit-html/static.test.ts +8 -8
- package/front_end/ui/visual_logging/Debugging.ts +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +32 -3
- package/front_end/ui/visual_logging/LoggingDriver.ts +1 -1
- package/front_end/ui/visual_logging/LoggingEvents.ts +28 -28
- package/front_end/ui/visual_logging/LoggingState.ts +1 -1
- package/front_end/ui/visual_logging/NonDomState.ts +2 -2
- package/front_end/ui/visual_logging/visual_logging.ts +3 -1
- package/inspector_overlay/css_grid_label_helpers.test.ts +103 -0
- package/inspector_overlay/css_grid_label_helpers.ts +63 -12
- package/inspector_overlay/highlight_common.ts +2 -2
- package/inspector_overlay/highlight_container_query.ts +1 -2
- package/inspector_overlay/highlight_flex_common.test.ts +1 -1
- package/inspector_overlay/highlight_flex_common.ts +2 -3
- package/inspector_overlay/highlight_grid_common.ts +10 -4
- package/inspector_overlay/highlight_isolated_element.ts +1 -1
- package/inspector_overlay/highlight_scroll_snap.ts +1 -2
- package/inspector_overlay/testing/InspectorOverlayHelpers.ts +1 -1
- package/inspector_overlay/tool_highlight.ts +4 -8
- package/package.json +4 -3
- package/scripts/devtools_paths.js +9 -2
- package/scripts/eslint_rules/lib/avoid_assert_equal.js +34 -7
- package/scripts/eslint_rules/lib/html_tagged_template.js +55 -0
- package/scripts/eslint_rules/lib/inline_type_imports.js +22 -23
- package/scripts/eslint_rules/tests/avoid_assert_equal_test.js +61 -2
- package/scripts/eslint_rules/tests/html_tagged_template_test.js +96 -0
- package/scripts/eslint_rules/tests/inline_type_imports_test.js +5 -25
- package/scripts/freestyler/eval/index.js +83 -47
- package/scripts/protocol_typescript/protocol_dts_generator.ts +1 -1
- package/scripts/stylelint_rules/lib/use_theme_colors.js +2 -1
- package/scripts/stylelint_rules/tests/use_theme_colors_test.js +16 -0
- package/front_end/Images/src/spark.svg +0 -3
- package/front_end/panels/timeline/components/insights/lcpDiscovery.css +0 -13
- package/scripts/eslint_rules/lib/ban_literal_devtools_component_tag_names.js +0 -40
- package/scripts/eslint_rules/lib/check_component_naming.js +0 -214
- package/scripts/eslint_rules/tests/ban_literal_devtools_component_tag_names_test.js +0 -38
- package/scripts/eslint_rules/tests/check_component_naming_test.js +0 -246
@@ -25,6 +25,7 @@ let browserThreadId: Types.Events.ThreadID = Types.Events.ThreadID(-1);
|
|
25
25
|
let gpuProcessId: Types.Events.ProcessID = Types.Events.ProcessID(-1);
|
26
26
|
let gpuThreadId: Types.Events.ThreadID = Types.Events.ThreadID(-1);
|
27
27
|
let viewportRect: DOMRect|null = null;
|
28
|
+
let devicePixelRatio: number|null = null;
|
28
29
|
|
29
30
|
const processNames: Map<Types.Events.ProcessID, Types.Events.ProcessName> = new Map();
|
30
31
|
|
@@ -195,6 +196,7 @@ export function handleEvent(event: Types.Events.Event): void {
|
|
195
196
|
const viewportWidth = rectAsArray[2];
|
196
197
|
const viewportHeight = rectAsArray[5];
|
197
198
|
viewportRect = new DOMRect(viewportX, viewportY, viewportWidth, viewportHeight);
|
199
|
+
devicePixelRatio = event.args.data.dpr;
|
198
200
|
}
|
199
201
|
|
200
202
|
// The TracingStartedInBrowser event includes the data on which frames are
|
@@ -440,6 +442,7 @@ export type MetaHandlerData = {
|
|
440
442
|
mainFrameNavigations: Types.Events.NavigationStart[],
|
441
443
|
gpuThreadId?: Types.Events.ThreadID,
|
442
444
|
viewportRect?: DOMRect,
|
445
|
+
devicePixelRatio?: number,
|
443
446
|
};
|
444
447
|
|
445
448
|
// Each frame has a single render process at a given time but it can have
|
@@ -473,6 +476,7 @@ export function data(): MetaHandlerData {
|
|
473
476
|
gpuProcessId,
|
474
477
|
gpuThreadId: gpuThreadId === Types.Events.ThreadID(-1) ? undefined : gpuThreadId,
|
475
478
|
viewportRect: viewportRect || undefined,
|
479
|
+
devicePixelRatio: devicePixelRatio ?? undefined,
|
476
480
|
mainFrameId,
|
477
481
|
mainFrameURL,
|
478
482
|
navigationsByFrameId,
|
@@ -18,7 +18,7 @@ import * as Helpers from '../helpers/helpers.js';
|
|
18
18
|
import * as Types from '../types/types.js';
|
19
19
|
|
20
20
|
import {data as metaHandlerData} from './MetaHandler.js';
|
21
|
-
import
|
21
|
+
import type {HandlerName} from './types.js';
|
22
22
|
|
23
23
|
/**
|
24
24
|
* This represents the metric scores for all navigations, for all frames in a trace.
|
@@ -814,7 +814,7 @@ describeWithEnvironment('RendererHandler', function() {
|
|
814
814
|
const pid = Trace.Types.Events.ProcessID(28274);
|
815
815
|
const tid = Trace.Types.Events.ThreadID(775);
|
816
816
|
beforeEach(async function() {
|
817
|
-
defaultTraceEvents = await TraceLoader.rawEvents(this, '
|
817
|
+
defaultTraceEvents = await TraceLoader.rawEvents(this, 'missing-url.json.gz');
|
818
818
|
});
|
819
819
|
|
820
820
|
afterEach(() => {
|
@@ -224,7 +224,7 @@ describeWithEnvironment('SamplesHandler', function() {
|
|
224
224
|
it('generates a CPU profile from a trace file', async () => {
|
225
225
|
const data = await handleEventsFromTraceFile(this, 'recursive-blocking-js.json.gz');
|
226
226
|
assert.strictEqual(data.profilesInProcess.size, 1);
|
227
|
-
const profileById = data.profilesInProcess.values().next().value
|
227
|
+
const profileById = data.profilesInProcess.values().next().value!;
|
228
228
|
assert.strictEqual(profileById.size, 1);
|
229
229
|
const cpuProfileData = profileById.values().next().value as Trace.Handlers.ModelHandlers.Samples.ProfileData;
|
230
230
|
const cpuProfile = cpuProfileData.rawProfile;
|
@@ -241,7 +241,7 @@ describeWithEnvironment('SamplesHandler', function() {
|
|
241
241
|
it('generates a parsed CPU profile from a trace file', async () => {
|
242
242
|
const data = await handleEventsFromTraceFile(this, 'recursive-blocking-js.json.gz');
|
243
243
|
assert.strictEqual(data.profilesInProcess.size, 1);
|
244
|
-
const profileById = data.profilesInProcess.values().next().value
|
244
|
+
const profileById = data.profilesInProcess.values().next().value!;
|
245
245
|
assert.strictEqual(profileById.size, 1);
|
246
246
|
const cpuProfileData = profileById.values().next().value as Trace.Handlers.ModelHandlers.Samples.ProfileData;
|
247
247
|
const parsedProfile = cpuProfileData.parsedProfile;
|
@@ -52,7 +52,7 @@ describe('ScreenshotsHandler', function() {
|
|
52
52
|
await Trace.Handlers.ModelHandlers.Meta.finalize();
|
53
53
|
await Trace.Handlers.ModelHandlers.Screenshots.finalize();
|
54
54
|
|
55
|
-
const data = Trace.Handlers.ModelHandlers.Screenshots.data();
|
55
|
+
const data = Trace.Handlers.ModelHandlers.Screenshots.data().all;
|
56
56
|
assert.strictEqual(data.length, 2);
|
57
57
|
});
|
58
58
|
});
|
@@ -67,7 +67,8 @@ describe('ScreenshotsHandler', function() {
|
|
67
67
|
return msDifference;
|
68
68
|
});
|
69
69
|
}
|
70
|
-
|
70
|
+
// Skip while we resolve the getPresentationTimestamp mystery.
|
71
|
+
it.skip('[crbug.com/41363012] are corrected if frame sequence number is present', async function() {
|
71
72
|
// This trace was collected after https://crrev.com/c/4957973 landed.
|
72
73
|
const events = await TraceLoader.rawEvents(this, 'about-blank-first.json.gz');
|
73
74
|
for (const event of events) {
|
@@ -77,7 +78,7 @@ describe('ScreenshotsHandler', function() {
|
|
77
78
|
await Trace.Handlers.ModelHandlers.Meta.finalize();
|
78
79
|
await Trace.Handlers.ModelHandlers.Screenshots.finalize();
|
79
80
|
|
80
|
-
const syntheticScreenshots = Trace.Handlers.ModelHandlers.Screenshots.data();
|
81
|
+
const syntheticScreenshots = Trace.Handlers.ModelHandlers.Screenshots.data().all;
|
81
82
|
const originalScreenshotEvents = events.filter(Trace.Types.Events.isScreenshot);
|
82
83
|
assert.strictEqual(syntheticScreenshots.length, originalScreenshotEvents.length);
|
83
84
|
|
@@ -103,7 +104,7 @@ describe('ScreenshotsHandler', function() {
|
|
103
104
|
await Trace.Handlers.ModelHandlers.Meta.finalize();
|
104
105
|
await Trace.Handlers.ModelHandlers.Screenshots.finalize();
|
105
106
|
|
106
|
-
const syntheticScreenshots = Trace.Handlers.ModelHandlers.Screenshots.data();
|
107
|
+
const syntheticScreenshots = Trace.Handlers.ModelHandlers.Screenshots.data().all;
|
107
108
|
const originalScreenshotEvents = events.filter(Trace.Types.Events.isScreenshot);
|
108
109
|
assert.strictEqual(syntheticScreenshots.length, originalScreenshotEvents.length);
|
109
110
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import * as Helpers from '../helpers/helpers.js';
|
6
6
|
import * as Types from '../types/types.js';
|
7
7
|
|
8
|
-
import
|
8
|
+
import type {HandlerName} from './types.js';
|
9
9
|
|
10
10
|
// Each thread contains events. Events indicate the thread and process IDs, which are
|
11
11
|
// used to store the event in the correct process thread entry below.
|
@@ -49,8 +49,9 @@ export async function finalize(): Promise<void> {
|
|
49
49
|
ph,
|
50
50
|
pid,
|
51
51
|
tid,
|
52
|
-
//
|
53
|
-
|
52
|
+
// TODO(paulirish, crbug.com/41363012): investigate why getPresentationTimestamp(snapshotEvent) seems less accurate. Resolve screenshot timing innaccuracy.
|
53
|
+
// `getPresentationTimestamp(snapshotEvent) - snapshotEvent.ts` is how many microsec the screenshot should be adjusted to the right/later
|
54
|
+
ts: snapshotEvent.ts,
|
54
55
|
args: {
|
55
56
|
dataUri: `data:image/jpg;base64,${snapshotEvent.args.snapshot}`,
|
56
57
|
},
|
@@ -65,6 +66,7 @@ export async function finalize(): Promise<void> {
|
|
65
66
|
* We match that up with the "PipelineReporter" trace events as they terminate at presentation.
|
66
67
|
* Presentation == when the pixels hit the screen. AKA Swap on the GPU
|
67
68
|
*/
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
68
70
|
function getPresentationTimestamp(screenshotEvent: Types.Events.Screenshot): Types.Timing.MicroSeconds {
|
69
71
|
const frameSequence = parseInt(screenshotEvent.id, 16);
|
70
72
|
// If it's 1, then it's an old trace (before https://crrev.com/c/4957973) and cannot be corrected.
|
@@ -84,8 +86,8 @@ function getPresentationTimestamp(screenshotEvent: Types.Events.Screenshot): Typ
|
|
84
86
|
}
|
85
87
|
|
86
88
|
// TODO(crbug/41484172): should be readonly
|
87
|
-
export function data(): Types.Events.SyntheticScreenshot[] {
|
88
|
-
return syntheticScreenshots;
|
89
|
+
export function data(): ({all: Types.Events.SyntheticScreenshot[]}) {
|
90
|
+
return {all: syntheticScreenshots};
|
89
91
|
}
|
90
92
|
|
91
93
|
export function deps(): HandlerName[] {
|
@@ -5,9 +5,9 @@
|
|
5
5
|
import type * as Helpers from '../helpers/helpers.js';
|
6
6
|
import type * as Types from '../types/types.js';
|
7
7
|
|
8
|
-
import
|
8
|
+
import type {AuctionWorkletsData} from './AuctionWorkletsHandler.js';
|
9
9
|
import type * as Renderer from './RendererHandler.js';
|
10
|
-
import
|
10
|
+
import type {ParsedTrace} from './types.js';
|
11
11
|
|
12
12
|
export interface ThreadData {
|
13
13
|
pid: Types.Events.ProcessID;
|
@@ -6,7 +6,7 @@ import * as Platform from '../../../core/platform/platform.js';
|
|
6
6
|
import * as Helpers from '../helpers/helpers.js';
|
7
7
|
import * as Types from '../types/types.js';
|
8
8
|
|
9
|
-
import
|
9
|
+
import type {HandlerName} from './types.js';
|
10
10
|
import {data as userInteractionsHandlerData} from './UserInteractionsHandler.js';
|
11
11
|
|
12
12
|
export interface WarningsData {
|
@@ -2,8 +2,26 @@
|
|
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
|
5
|
+
import type {RenderBlocking, SyntheticNetworkRequest} from '../types/TraceEvents.js';
|
6
|
+
|
7
|
+
// Important: we purposefully treat `potentially_blocking` as
|
8
|
+
// non-render-blocking here because:
|
9
|
+
// 1. An async script can run on the main thread at any point, including before
|
10
|
+
// the page is loaded
|
11
|
+
// 2. An async script will never block the parsing and rendering process of the
|
12
|
+
// browser.
|
13
|
+
// 3. Therefore, from a developer's point of view, there is nothing more they
|
14
|
+
// can do if they've put `async` on, and within the context of Insights, we
|
15
|
+
// shouldn't report an async script as render blocking.
|
16
|
+
// In the future we may want to consider suggesting the use of `defer` over
|
17
|
+
// `async`, as it doesn't have this concern, but for now we'll allow `async`
|
18
|
+
// and not report it as an issue.
|
19
|
+
const NON_RENDER_BLOCKING_VALUES = new Set<RenderBlocking>([
|
20
|
+
'non_blocking',
|
21
|
+
'dynamically_injected_non_blocking',
|
22
|
+
'potentially_blocking',
|
23
|
+
]);
|
6
24
|
|
7
25
|
export function isSyntheticNetworkRequestEventRenderBlocking(event: SyntheticNetworkRequest): boolean {
|
8
|
-
return event.args.data.renderBlocking
|
26
|
+
return !NON_RENDER_BLOCKING_VALUES.has(event.args.data.renderBlocking);
|
9
27
|
}
|
@@ -45,7 +45,7 @@ describe('SyntheticEvents', function() {
|
|
45
45
|
const allSyntheticEvents = [
|
46
46
|
...parsedTrace.Animations.animations,
|
47
47
|
...parsedTrace.NetworkRequests.byTime,
|
48
|
-
...parsedTrace.Screenshots,
|
48
|
+
...parsedTrace.Screenshots.all,
|
49
49
|
];
|
50
50
|
const syntheticEventsManager = Trace.Helpers.SyntheticEvents.SyntheticEventsManager.getActiveManager();
|
51
51
|
for (const syntheticEvent of allSyntheticEvents) {
|
@@ -13,7 +13,7 @@ import {
|
|
13
13
|
import {TraceLoader} from '../../../testing/TraceLoader.js';
|
14
14
|
import * as Trace from '../trace.js';
|
15
15
|
|
16
|
-
describeWithEnvironment('
|
16
|
+
describeWithEnvironment('Trace helpers', function() {
|
17
17
|
describe('extractOriginFromTrace', () => {
|
18
18
|
it('extracts the origin of a parsed trace correctly', async function() {
|
19
19
|
const {parsedTrace} = await TraceLoader.traceEngine(this, 'web-dev.json.gz');
|
@@ -28,7 +28,7 @@ describeWithEnvironment('TraceModel helpers', function() {
|
|
28
28
|
});
|
29
29
|
|
30
30
|
it('returns null when no origin is found', async function() {
|
31
|
-
const {parsedTrace} = await TraceLoader.traceEngine(this, '
|
31
|
+
const {parsedTrace} = await TraceLoader.traceEngine(this, 'missing-url.json.gz');
|
32
32
|
const origin = Trace.Helpers.Trace.extractOriginFromTrace(parsedTrace.Meta.mainFrameURL);
|
33
33
|
assert.isNull(origin);
|
34
34
|
});
|
@@ -123,7 +123,7 @@ describeWithEnvironment('TraceModel helpers', function() {
|
|
123
123
|
it('returns the correct navigation for a page load event', async function() {
|
124
124
|
const {parsedTrace} = await TraceLoader.traceEngine(this, 'multiple-navigations.json.gz');
|
125
125
|
const {Meta, PageLoadMetrics} = parsedTrace;
|
126
|
-
const firstNavigationId = Meta.navigationsByNavigationId.keys().next().value
|
126
|
+
const firstNavigationId = Meta.navigationsByNavigationId.keys().next().value!;
|
127
127
|
|
128
128
|
const fcp = PageLoadMetrics.metricScoresByFrameId.get(Meta.mainFrameId)
|
129
129
|
?.get(firstNavigationId)
|
@@ -728,4 +728,35 @@ describeWithEnvironment('TraceModel helpers', function() {
|
|
728
728
|
assert.isTrue(Trace.Helpers.Trace.isTopLevelEvent(runTask));
|
729
729
|
});
|
730
730
|
});
|
731
|
+
|
732
|
+
describe('findNextEventAfterTimestamp', () => {
|
733
|
+
it('gets the first screenshot after a trace', async function() {
|
734
|
+
const {parsedTrace} = await TraceLoader.traceEngine(this, 'cls-multiple-frames.json.gz');
|
735
|
+
const screenshots = parsedTrace.Screenshots.all;
|
736
|
+
const {clusters} = parsedTrace.LayoutShifts;
|
737
|
+
const shifts = clusters.flatMap(cluster => cluster.events);
|
738
|
+
assert.isAtLeast(shifts.length, 10);
|
739
|
+
|
740
|
+
shifts.forEach((shift, i) => {
|
741
|
+
const prevScreenshot = Trace.Helpers.Trace.findPreviousEventBeforeTimestamp(screenshots, shift.ts);
|
742
|
+
const nextScreenshot = Trace.Helpers.Trace.findNextEventAfterTimestamp(screenshots, shift.ts);
|
743
|
+
|
744
|
+
// There may be a screenshot after the last shift. but very possible there isn't.
|
745
|
+
if (i === shifts.length - 1) {
|
746
|
+
return;
|
747
|
+
}
|
748
|
+
assert.isNotNull(nextScreenshot);
|
749
|
+
assert.isNotNull(prevScreenshot);
|
750
|
+
// Make sure the screenshot came after the shift.
|
751
|
+
assert.isAbove(nextScreenshot!.ts, shift.ts);
|
752
|
+
// Make sure the previous screenshot came before the shift
|
753
|
+
assert.isBelow(prevScreenshot.ts, shift.ts);
|
754
|
+
|
755
|
+
// Bonus, we expect the result of calling prevEvent* to be the same as `items[nextIndex - 1]`
|
756
|
+
const nextIndex = screenshots.indexOf(nextScreenshot);
|
757
|
+
const alsoPrevious = screenshots[nextIndex - 1];
|
758
|
+
assert.strictEqual(prevScreenshot, alsoPrevious);
|
759
|
+
});
|
760
|
+
});
|
761
|
+
});
|
731
762
|
});
|
@@ -510,6 +510,18 @@ export function findUpdateLayoutTreeEvents(
|
|
510
510
|
return foundEvents;
|
511
511
|
}
|
512
512
|
|
513
|
+
export function findNextEventAfterTimestamp<T extends Types.Events.Event>(
|
514
|
+
candidates: T[], ts: Types.Timing.MicroSeconds): T|null {
|
515
|
+
const index = Platform.ArrayUtilities.nearestIndexFromBeginning(candidates, candidate => ts < candidate.ts);
|
516
|
+
return index === null ? null : candidates[index];
|
517
|
+
}
|
518
|
+
|
519
|
+
export function findPreviousEventBeforeTimestamp<T extends Types.Events.Event>(
|
520
|
+
candidates: T[], ts: Types.Timing.MicroSeconds): T|null {
|
521
|
+
const index = Platform.ArrayUtilities.nearestIndexFromEnd(candidates, candidate => candidate.ts < ts);
|
522
|
+
return index === null ? null : candidates[index];
|
523
|
+
}
|
524
|
+
|
513
525
|
export interface ForEachEventConfig {
|
514
526
|
onStartEvent: (event: Types.Events.Event) => void;
|
515
527
|
onEndEvent: (event: Types.Events.Event) => void;
|
@@ -455,4 +455,56 @@ describe('TreeHelpers', () => {
|
|
455
455
|
assert.isFalse(Trace.Helpers.TreeHelpers.canBuildTreesFromEvents(data));
|
456
456
|
});
|
457
457
|
});
|
458
|
+
describe('buildTreesFromEventsForAI', () => {
|
459
|
+
it('returns the trace entry tree starting from the root task, highlighting the selected event', () => {
|
460
|
+
const evaluateScript = makeCompleteEvent(Trace.Types.Events.Name.EVALUATE_SCRIPT, 0, 500);
|
461
|
+
const v8Run = makeCompleteEvent('v8.run', 10, 490);
|
462
|
+
const parseFunction = makeCompleteEvent('V8.ParseFunction', 12, 1);
|
463
|
+
|
464
|
+
const traceEvents: Trace.Types.Events.Event[] = [evaluateScript, v8Run, parseFunction];
|
465
|
+
|
466
|
+
const profileCalls = [makeProfileCall('a', 100, 200), makeProfileCall('b', 300, 200)];
|
467
|
+
const allEntries = Trace.Helpers.Trace.mergeEventsInOrder(traceEvents, profileCalls);
|
468
|
+
const {tree, entryToNode} = Trace.Helpers.TreeHelpers.treify(allEntries, {filter: {has: () => true}});
|
469
|
+
const rootNode = entryToNode.get(evaluateScript);
|
470
|
+
const selectedNode = entryToNode.get(parseFunction);
|
471
|
+
|
472
|
+
assert.strictEqual(tree.roots.size, 1);
|
473
|
+
assert.exists(rootNode);
|
474
|
+
assert.exists(selectedNode);
|
475
|
+
|
476
|
+
const traceEntryTreeForAI = Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.fromSelectedEntryNode(selectedNode);
|
477
|
+
const actualSelectedNode =
|
478
|
+
Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(traceEntryTreeForAI);
|
479
|
+
|
480
|
+
assert.exists(traceEntryTreeForAI);
|
481
|
+
assert.exists(actualSelectedNode);
|
482
|
+
|
483
|
+
// delete for smaller deepStrictEqual comparison
|
484
|
+
actualSelectedNode.children = traceEntryTreeForAI.children = [];
|
485
|
+
|
486
|
+
const expectedTraceEntryTree = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
|
487
|
+
'EvaluateScript',
|
488
|
+
Trace.Types.Timing.MilliSeconds(0),
|
489
|
+
Trace.Types.Timing.MilliSeconds(0.5),
|
490
|
+
undefined,
|
491
|
+
Trace.Types.Timing.MilliSeconds(0.01),
|
492
|
+
);
|
493
|
+
expectedTraceEntryTree.id = 0 as Trace.Helpers.TreeHelpers.TraceEntryNodeId;
|
494
|
+
expectedTraceEntryTree.children = [];
|
495
|
+
assert.deepStrictEqual(traceEntryTreeForAI, expectedTraceEntryTree);
|
496
|
+
|
497
|
+
const expectedselectedNodeForAI = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
|
498
|
+
'V8.ParseFunction',
|
499
|
+
Trace.Types.Timing.MilliSeconds(0.012),
|
500
|
+
Trace.Types.Timing.MilliSeconds(0.001),
|
501
|
+
undefined,
|
502
|
+
Trace.Types.Timing.MilliSeconds(0.001),
|
503
|
+
);
|
504
|
+
expectedselectedNodeForAI.id = 2 as Trace.Helpers.TreeHelpers.TraceEntryNodeId;
|
505
|
+
expectedselectedNodeForAI.children = [];
|
506
|
+
expectedselectedNodeForAI.selected = true;
|
507
|
+
assert.deepStrictEqual(actualSelectedNode, expectedselectedNodeForAI);
|
508
|
+
});
|
509
|
+
});
|
458
510
|
});
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
import * as Types from '../types/types.js';
|
6
6
|
|
7
|
-
import {eventIsInBounds} from './Timing.js';
|
7
|
+
import {eventIsInBounds, microSecondsToMilliseconds} from './Timing.js';
|
8
8
|
|
9
9
|
let nodeIdCount = 0;
|
10
10
|
export const makeTraceEntryNodeId = (): TraceEntryNodeId => (++nodeIdCount) as TraceEntryNodeId;
|
@@ -36,6 +36,85 @@ export interface TraceEntryNode {
|
|
36
36
|
children: TraceEntryNode[];
|
37
37
|
}
|
38
38
|
|
39
|
+
/**
|
40
|
+
* Represents a node in a trace entry tree, simplified for AI Assistance processing.
|
41
|
+
*/
|
42
|
+
export class TraceEntryNodeForAI {
|
43
|
+
id?: TraceEntryNodeId;
|
44
|
+
domain?: string;
|
45
|
+
line?: number;
|
46
|
+
column?: number;
|
47
|
+
function?: string;
|
48
|
+
children?: TraceEntryNodeForAI[];
|
49
|
+
selected?: boolean;
|
50
|
+
|
51
|
+
constructor(
|
52
|
+
public type: string, public start: Types.Timing.MilliSeconds, public end?: Types.Timing.MilliSeconds,
|
53
|
+
public totalTime?: Types.Timing.MilliSeconds, public selfTime?: Types.Timing.MilliSeconds) {
|
54
|
+
}
|
55
|
+
|
56
|
+
static #fromTraceEvent(event: Types.Events.Event): TraceEntryNodeForAI {
|
57
|
+
const start = microSecondsToMilliseconds(event.ts);
|
58
|
+
const duration = event.dur === undefined ? undefined : microSecondsToMilliseconds(event.dur);
|
59
|
+
const nodeForAI = new TraceEntryNodeForAI(event.name, start, duration);
|
60
|
+
if (Types.Events.isProfileCall(event)) {
|
61
|
+
nodeForAI.function = event.callFrame.functionName || '(anonymous)';
|
62
|
+
try {
|
63
|
+
const url = new URL(event.callFrame.url);
|
64
|
+
nodeForAI.domain = url.origin;
|
65
|
+
nodeForAI.line = event.callFrame.lineNumber;
|
66
|
+
nodeForAI.column = event.callFrame.columnNumber;
|
67
|
+
} catch (e) {
|
68
|
+
}
|
69
|
+
}
|
70
|
+
return nodeForAI;
|
71
|
+
}
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Builds a TraceEntryNodeForAI tree from a TraceEntryNode tree and marks the selected node.
|
75
|
+
*/
|
76
|
+
static #fromTraceEntryTree(node: TraceEntryNode, selectedEntryNode: TraceEntryNode): TraceEntryNodeForAI {
|
77
|
+
const nodeForAI = TraceEntryNodeForAI.#fromTraceEvent(node.entry);
|
78
|
+
nodeForAI.id = node.id;
|
79
|
+
if (node === selectedEntryNode) {
|
80
|
+
nodeForAI.selected = true;
|
81
|
+
}
|
82
|
+
nodeForAI.selfTime = node.selfTime === undefined ? undefined : microSecondsToMilliseconds(node.selfTime);
|
83
|
+
for (const child of node.children) {
|
84
|
+
nodeForAI.children ??= [];
|
85
|
+
nodeForAI.children.push(TraceEntryNodeForAI.#fromTraceEntryTree(child, selectedEntryNode));
|
86
|
+
}
|
87
|
+
return nodeForAI;
|
88
|
+
}
|
89
|
+
|
90
|
+
static fromSelectedEntryNode(selectedEntryNode: TraceEntryNode): TraceEntryNodeForAI {
|
91
|
+
function getRoot(node: TraceEntryNode): TraceEntryNode {
|
92
|
+
if (node.parent) {
|
93
|
+
return getRoot(node.parent);
|
94
|
+
}
|
95
|
+
return node;
|
96
|
+
}
|
97
|
+
|
98
|
+
return TraceEntryNodeForAI.#fromTraceEntryTree(getRoot(selectedEntryNode), selectedEntryNode);
|
99
|
+
}
|
100
|
+
|
101
|
+
static getSelectedNodeForTraceEntryTreeForAI(node: TraceEntryNodeForAI): TraceEntryNodeForAI|null {
|
102
|
+
if (node.selected) {
|
103
|
+
return node;
|
104
|
+
}
|
105
|
+
if (!node.children) {
|
106
|
+
return null;
|
107
|
+
}
|
108
|
+
for (const child of node.children) {
|
109
|
+
const returnedNode = TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(child);
|
110
|
+
if (returnedNode) {
|
111
|
+
return returnedNode;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
return null;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
39
118
|
class TraceEntryNodeIdTag {
|
40
119
|
/* eslint-disable-next-line no-unused-private-class-members */
|
41
120
|
readonly #tag: (symbol|undefined);
|
@@ -6,7 +6,7 @@ import type * as Handlers from '../handlers/handlers.js';
|
|
6
6
|
import * as Helpers from '../helpers/helpers.js';
|
7
7
|
import type * as Types from '../types/types.js';
|
8
8
|
|
9
|
-
import
|
9
|
+
import type {InsightResults, InsightSetContextWithNavigation, TraceInsightSets} from './types.js';
|
10
10
|
|
11
11
|
export function getInsight<InsightName extends keyof InsightResults>(
|
12
12
|
insightName: InsightName, insights: TraceInsightSets|null, key: string|null): InsightResults[InsightName]|null {
|
@@ -30,16 +30,28 @@ describeWithEnvironment('CumulativeLayoutShift', function() {
|
|
30
30
|
const insight = getInsightOrError('CumulativeLayoutShift', insights, firstNav);
|
31
31
|
const {animationFailures} = insight;
|
32
32
|
|
33
|
+
const simpleAnimation = data.Animations.animations.find(animation => {
|
34
|
+
return animation.args.data.beginEvent.args.data.displayName === 'simple-animation';
|
35
|
+
});
|
36
|
+
const top = data.Animations.animations.find(animation => {
|
37
|
+
return animation.args.data.beginEvent.args.data.displayName === 'top';
|
38
|
+
});
|
39
|
+
|
33
40
|
const expected: InsightRunners.CumulativeLayoutShift.NoncompositedAnimationFailure[] = [
|
34
41
|
{
|
35
42
|
name: 'simple-animation',
|
36
43
|
failureReasons: [InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY],
|
37
44
|
unsupportedProperties: ['color'],
|
45
|
+
animation: simpleAnimation,
|
38
46
|
},
|
39
47
|
{
|
40
48
|
name: 'top',
|
41
|
-
failureReasons: [
|
49
|
+
failureReasons: [
|
50
|
+
InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.TARGET_HAS_INVALID_COMPOSITING_STATE,
|
51
|
+
InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY,
|
52
|
+
],
|
42
53
|
unsupportedProperties: ['top'],
|
54
|
+
animation: top,
|
43
55
|
},
|
44
56
|
];
|
45
57
|
assert.deepStrictEqual(animationFailures, expected);
|
@@ -51,8 +63,15 @@ describeWithEnvironment('CumulativeLayoutShift', function() {
|
|
51
63
|
const insight = getInsightOrError('CumulativeLayoutShift', insights, firstNav);
|
52
64
|
const {shifts, animationFailures} = insight;
|
53
65
|
|
66
|
+
const simpleAnimation = data.Animations.animations.find(animation => {
|
67
|
+
return animation.args.data.beginEvent.args.data.displayName === 'simple-animation';
|
68
|
+
});
|
69
|
+
const top = data.Animations.animations.find(animation => {
|
70
|
+
return animation.args.data.beginEvent.args.data.displayName === 'top';
|
71
|
+
});
|
72
|
+
|
54
73
|
const shiftAnimations: InsightRunners.CumulativeLayoutShift.NoncompositedAnimationFailure[] = [];
|
55
|
-
shifts
|
74
|
+
shifts.forEach(entry => {
|
56
75
|
shiftAnimations.push(...entry.nonCompositedAnimations);
|
57
76
|
});
|
58
77
|
const expectedWithShift: InsightRunners.CumulativeLayoutShift.NoncompositedAnimationFailure[] = [
|
@@ -60,6 +79,7 @@ describeWithEnvironment('CumulativeLayoutShift', function() {
|
|
60
79
|
name: 'simple-animation',
|
61
80
|
failureReasons: [InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY],
|
62
81
|
unsupportedProperties: ['height', 'color', 'top'],
|
82
|
+
animation: simpleAnimation,
|
63
83
|
},
|
64
84
|
];
|
65
85
|
assert.deepStrictEqual(shiftAnimations, expectedWithShift);
|
@@ -69,11 +89,13 @@ describeWithEnvironment('CumulativeLayoutShift', function() {
|
|
69
89
|
name: 'simple-animation',
|
70
90
|
failureReasons: [InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY],
|
71
91
|
unsupportedProperties: ['height', 'color', 'top'],
|
92
|
+
animation: simpleAnimation,
|
72
93
|
},
|
73
94
|
{
|
74
95
|
name: 'top',
|
75
96
|
failureReasons: [InsightRunners.CumulativeLayoutShift.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY],
|
76
97
|
unsupportedProperties: ['top'],
|
98
|
+
animation: top,
|
77
99
|
},
|
78
100
|
];
|
79
101
|
// animationFailures should include both root causes failures, and failures without associated shifts.
|