chrome-devtools-frontend 1.0.1664496 → 1.0.1665921
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/.agents/skills/devtools-testing-guidance/SKILL.md +48 -0
- package/.agents/skills/devtools-ux-writing-refactor/SKILL.md +3 -3
- package/.agents/skills/repro-flaky-tests/SKILL.md +2 -2
- package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +7 -1
- package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +2 -0
- package/.agents/skills/version-control/SKILL.md +4 -3
- package/docs/ui_engineering.md +89 -0
- package/eslint.config.mjs +9 -2
- package/front_end/Images/rollup.config.mjs +1 -1
- package/front_end/Tests.js +15 -16
- package/front_end/core/common/Gzip.ts +2 -2
- package/front_end/core/common/Settings.ts +4 -20
- package/front_end/core/common/Srcset.ts +1 -1
- package/front_end/core/common/VersionController.ts +1 -1
- package/front_end/core/host/AidaClient.ts +19 -4
- package/front_end/core/host/AidaGcaTranslation.ts +2 -2
- package/front_end/core/host/GcaClient.ts +2 -2
- package/front_end/core/host/GdpClient.ts +3 -3
- package/front_end/core/host/InspectorFrontendHostStub.ts +1 -1
- package/front_end/core/host/ResourceLoader.ts +15 -15
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -2
- package/front_end/core/protocol_client/InspectorBackend.ts +1 -1
- package/front_end/core/root/Runtime.ts +0 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +78 -3
- package/front_end/core/sdk/CSSMetadata.ts +17 -12
- package/front_end/core/sdk/CSSProperty.ts +1 -1
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +2 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +3 -3
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +1 -1
- package/front_end/core/sdk/Connections.ts +1 -1
- package/front_end/core/sdk/DebuggerModel.ts +13 -13
- package/front_end/core/sdk/NetworkManager.ts +19 -19
- package/front_end/core/sdk/NetworkRequest.ts +57 -57
- package/front_end/core/sdk/OverlayModel.ts +1 -1
- package/front_end/core/sdk/PageResourceLoader.ts +2 -2
- package/front_end/core/sdk/RehydratingConnection.ts +5 -5
- package/front_end/core/sdk/ScreenCaptureModel.ts +1 -1
- package/front_end/core/sdk/Script.ts +2 -2
- package/front_end/core/sdk/ServerTiming.ts +7 -7
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +1 -1
- package/front_end/core/sdk/ServiceWorkerManager.ts +11 -11
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
- package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
- package/front_end/core/sdk/StorageKeyManager.ts +1 -1
- package/front_end/core/sdk/sdk-meta.ts +98 -98
- package/front_end/devtools_compatibility.js +15 -13
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +4 -8
- package/front_end/entrypoints/main/MainImpl.ts +2 -3
- package/front_end/entrypoints/main/main-meta.ts +1 -16
- package/front_end/entrypoints/shell/shell.ts +1 -0
- package/front_end/entrypoints/trace_app/trace_app.ts +1 -0
- package/front_end/foundation/README.md +1 -1
- package/front_end/foundation/Universe.test.api.ts +73 -0
- package/front_end/foundation/Universe.ts +22 -0
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/SupportedCSSProperties.js +1 -1
- package/front_end/generated/protocol.ts +19 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +1 -1
- package/front_end/models/ai_assistance/AiConversation.ts +1 -1
- package/front_end/models/ai_assistance/BuiltInAi.ts +1 -1
- package/front_end/models/ai_assistance/ChangeManager.ts +0 -70
- package/front_end/models/ai_assistance/ExtensionScope.ts +2 -36
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +9 -9
- package/front_end/models/ai_assistance/agents/AiAgent.ts +10 -2
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +4 -4
- package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +21 -21
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +4 -4
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +1 -1
- package/front_end/models/ai_assistance/ai_assistance.ts +0 -5
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +11 -4
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +8 -2
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +14 -11
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +2 -2
- package/front_end/models/ai_assistance/performance/AICallTree.ts +2 -2
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +9 -2
- package/front_end/models/ai_assistance/tools/GetStyles.ts +4 -4
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +2 -5
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +2 -2
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +2 -2
- package/front_end/models/badges/badges-meta.ts +27 -0
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +4 -3
- package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +6 -7
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +5 -4
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +72 -29
- package/front_end/models/bindings/ResourceMapping.ts +38 -32
- package/front_end/models/bindings/ResourceScriptMapping.ts +5 -7
- package/front_end/models/breakpoints/BreakpointManager.ts +2 -1
- package/front_end/models/har/Writer.ts +2 -2
- package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +1 -1
- package/front_end/models/issues_manager/GenericIssue.ts +1 -1
- package/front_end/models/issues_manager/IssuesManager.ts +14 -5
- package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +1 -1
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +13 -2
- package/front_end/models/issues_manager/issues_manager.ts +0 -2
- package/front_end/models/live-metrics/LiveMetrics.ts +22 -5
- package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +10 -4
- package/front_end/models/logs/logs-meta.ts +23 -16
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +2 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +1 -1
- package/front_end/models/source_map_scopes/NamesResolver.ts +104 -86
- package/front_end/models/source_map_scopes/ScopeChainModel.ts +6 -2
- package/front_end/models/stack_trace/StackTraceModel.ts +1 -1
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -1
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +17 -6
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +1 -1
- package/front_end/models/trace/helpers/Timing.ts +1 -1
- package/front_end/models/trace/insights/Common.ts +1 -1
- package/front_end/models/trace/insights/DocumentLatency.ts +3 -3
- package/front_end/models/trace/insights/LCPDiscovery.ts +1 -1
- package/front_end/models/trace/insights/ModernHTTP.ts +1 -1
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +2 -2
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +14 -9
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +2 -15
- package/front_end/panels/ai_assistance/ai_assistance.ts +1 -2
- package/front_end/panels/ai_assistance/components/ChatInput.ts +23 -19
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +9 -18
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -35
- package/front_end/panels/ai_assistance/components/DisabledWidget.ts +1 -1
- package/front_end/panels/ai_assistance/components/ExploreWidget.ts +4 -4
- package/front_end/panels/ai_assistance/components/ImageResize.ts +74 -0
- package/front_end/panels/ai_assistance/components/WalkthroughView.ts +2 -2
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +28 -29
- package/front_end/panels/animation/AnimationTimeline.ts +3 -3
- package/front_end/panels/animation/animationTimeline.css +0 -2
- package/front_end/panels/application/AppManifestView.ts +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -1
- package/front_end/panels/application/CookieItemsView.ts +1 -1
- package/front_end/panels/application/CrashReportContextView.ts +3 -3
- package/front_end/panels/application/DeviceBoundSessionsModel.ts +1 -1
- package/front_end/panels/application/DeviceBoundSessionsTreeElement.ts +1 -1
- package/front_end/panels/application/DeviceBoundSessionsView.ts +1 -1
- package/front_end/panels/application/IndexedDBViews.ts +1 -1
- package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -1
- package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
- package/front_end/panels/application/ServiceWorkersView.ts +6 -6
- package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
- package/front_end/panels/application/StorageItemsToolbar.ts +3 -3
- package/front_end/panels/application/WebMCPView.ts +7 -5
- package/front_end/panels/application/components/AdsView.ts +21 -6
- package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
- package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -1
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +2 -2
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +2 -1
- package/front_end/panels/application/preloading/components/PreloadingString.ts +3 -3
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -1
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +2 -2
- package/front_end/panels/changes/ChangesSidebar.ts +2 -2
- package/front_end/panels/changes/ChangesView.ts +4 -5
- package/front_end/panels/changes/CombinedDiffView.ts +3 -3
- package/front_end/panels/changes/changes-meta.ts +2 -2
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +1 -1
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +3 -3
- package/front_end/panels/common/BadgeNotification.ts +8 -8
- package/front_end/panels/common/DOMLinkifier.ts +1 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -2
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
- package/front_end/panels/common/aiCodeCompletionDisclaimer.css +0 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +3 -3
- package/front_end/panels/console/ConsolePrompt.ts +6 -4
- package/front_end/panels/console/ConsoleSidebar.ts +8 -10
- package/front_end/panels/console_counters/WarningErrorCounter.ts +10 -11
- package/front_end/panels/coverage/CoverageView.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +1 -1
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
- package/front_end/panels/elements/CSSRuleValidator.ts +1 -1
- package/front_end/panels/elements/ComputedStyleWidget.ts +3 -2
- package/front_end/panels/elements/ElementsTreeElement.ts +3 -3
- package/front_end/panels/elements/EventListenersWidget.ts +1 -3
- package/front_end/panels/elements/LayoutPane.ts +23 -13
- package/front_end/panels/elements/StandaloneStylesContainer.ts +7 -7
- package/front_end/panels/elements/StylePropertiesSection.ts +33 -5
- package/front_end/panels/elements/StylePropertyTreeElement.ts +5 -5
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +6 -6
- package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
- package/front_end/panels/elements/elements-meta.ts +18 -2
- package/front_end/panels/emulation/DeviceModeToolbar.ts +100 -40
- package/front_end/panels/emulation/DeviceModeView.ts +5 -4
- package/front_end/panels/emulation/MediaQueryInspector.ts +35 -19
- package/front_end/panels/event_listeners/EventListenersView.ts +4 -4
- package/front_end/panels/explain/components/ConsoleInsight.ts +8 -9
- package/front_end/panels/explain/explain-meta.ts +3 -3
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +135 -167
- package/front_end/panels/layer_viewer/Layers3DView.ts +10 -23
- package/front_end/panels/layer_viewer/layer_viewer-meta.ts +27 -0
- package/front_end/panels/lighthouse/LighthouseController.ts +44 -55
- package/front_end/panels/lighthouse/LighthousePanel.ts +9 -9
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -2
- package/front_end/panels/lighthouse/LighthouseStartView.ts +9 -12
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +33 -33
- package/front_end/panels/lighthouse/RadioSetting.ts +1 -1
- package/front_end/panels/lighthouse/lighthouse-meta.ts +131 -1
- package/front_end/panels/media/EventDisplayTable.ts +67 -94
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/media/eventDisplayTable.css +9 -4
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +5 -5
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +1 -1
- package/front_end/panels/network/EventSourceMessagesView.ts +98 -107
- package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
- package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
- package/front_end/panels/network/RequestConditionsDrawer.ts +2 -2
- package/front_end/panels/network/RequestCookiesView.ts +2 -2
- package/front_end/panels/network/RequestHeadersView.ts +5 -5
- package/front_end/panels/network/RequestPayloadView.ts +4 -4
- package/front_end/panels/network/RequestTimingView.ts +2 -2
- package/front_end/panels/network/components/DirectSocketConnectionView.ts +1 -1
- package/front_end/panels/network/eventSourceMessagesView.css +12 -3
- package/front_end/panels/network/networkTimingTable.css +2 -2
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
- package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +25 -29
- package/front_end/panels/profiler/HeapProfileView.ts +308 -247
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +13 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +30 -10
- package/front_end/panels/profiler/HeapTimelineOverview.ts +5 -2
- package/front_end/panels/profiler/ProfileDataGrid.ts +128 -157
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +17 -5
- package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
- package/front_end/panels/profiler/TopDownProfileDataGrid.ts +17 -21
- package/front_end/panels/profiler/profilesPanel.css +9 -13
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +2 -2
- package/front_end/panels/recorder/CreateRecordingView.ts +4 -4
- package/front_end/panels/recorder/RecorderPanel.ts +6 -6
- package/front_end/panels/recorder/RecordingView.ts +1 -1
- package/front_end/panels/recorder/ReplaySection.ts +1 -1
- package/front_end/panels/recorder/StepView.ts +1 -1
- package/front_end/panels/recorder/injected/rollup.config.mjs +1 -1
- package/front_end/panels/search/SearchView.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +54 -41
- package/front_end/panels/sensors/LocationsSettingsTab.ts +246 -233
- package/front_end/panels/sensors/SensorsView.ts +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +11 -10
- package/front_end/panels/settings/SettingsScreen.ts +29 -24
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +5 -5
- package/front_end/panels/sources/BreakpointEditDialog.ts +2 -2
- package/front_end/panels/sources/BreakpointsView.ts +1 -1
- package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
- package/front_end/panels/sources/DebuggerPausedMessage.ts +2 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +25 -22
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +3 -1
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +7 -5
- package/front_end/panels/sources/sources-meta.ts +1 -1
- package/front_end/panels/timeline/CountersGraph.ts +1 -2
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +1 -1
- package/front_end/panels/timeline/TimelineDetailsView.ts +2 -2
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -2
- package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -4
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +53 -81
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +10 -3
- package/front_end/panels/timeline/TimelineUIUtils.ts +18 -4
- package/front_end/panels/timeline/TrackConfigBanner.ts +1 -1
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +1 -1
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +8 -9
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
- package/front_end/panels/timeline/components/TimelineRangeSummaryView.ts +1 -1
- package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +2 -2
- package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +1 -1
- package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +1 -1
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +5 -0
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +13 -8
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +1 -0
- package/front_end/panels/timeline/timeline-meta.ts +169 -0
- package/front_end/panels/timeline/timelineFlameChartView.css +5 -0
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -1
- package/front_end/panels/whats_new/ReleaseNoteText.ts +9 -9
- package/front_end/panels/whats_new/resources/WNDT.md +7 -8
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/web-vitals/README.chromium +2 -2
- package/front_end/third_party/web-vitals/package/README.md +120 -19
- package/front_end/third_party/web-vitals/package/attribution.d.ts +16 -0
- package/front_end/third_party/web-vitals/package/attribution.js +18 -0
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.d.ts +1 -7
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.js +53 -32
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +43 -12
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +21 -3
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.js +30 -24
- package/front_end/third_party/web-vitals/package/dist/modules/lib/FCPEntryManager.d.ts +3 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/FCPEntryManager.js +18 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +2 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +18 -2
- package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.d.ts +1 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.js +1 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getLoadState.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getLoadState.js +7 -7
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.js +4 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +7 -3
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js +20 -11
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initUnique.js +8 -3
- package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.d.ts +3 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.js +19 -4
- package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/interactionCountPolyfill.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.d.ts +3 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.js +38 -0
- package/front_end/third_party/web-vitals/package/dist/modules/lib/whenIdleOrHidden.js +5 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onCLS.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onCLS.js +30 -11
- package/front_end/third_party/web-vitals/package/dist/modules/onFCP.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onFCP.js +36 -4
- package/front_end/third_party/web-vitals/package/dist/modules/onINP.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onINP.js +42 -22
- package/front_end/third_party/web-vitals/package/dist/modules/onLCP.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +109 -30
- package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.js +25 -7
- package/front_end/third_party/web-vitals/package/dist/modules/types/base.d.ts +24 -1
- package/front_end/third_party/web-vitals/package/dist/modules/types/fcp.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/types/inp.d.ts +14 -6
- package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/types/ttfb.d.ts +2 -2
- package/front_end/third_party/web-vitals/package/dist/modules/types.d.ts +26 -4
- package/front_end/third_party/web-vitals/package/package.json +21 -22
- package/front_end/third_party/web-vitals/package/src/attribution/onCLS.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/attribution/onFCP.ts +62 -39
- package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +52 -15
- package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +25 -7
- package/front_end/third_party/web-vitals/package/src/attribution/onTTFB.ts +43 -37
- package/front_end/third_party/web-vitals/package/src/lib/{polyfills/getFirstHiddenTimePolyfill.ts → FCPEntryManager.ts} +4 -14
- package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +22 -2
- package/front_end/third_party/web-vitals/package/src/lib/LCPEntryManager.ts +1 -0
- package/front_end/third_party/web-vitals/package/src/lib/bindReporter.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/generateUniqueID.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/getLoadState.ts +11 -12
- package/front_end/third_party/web-vitals/package/src/lib/getSelector.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/getVisibilityWatcher.ts +4 -1
- package/front_end/third_party/web-vitals/package/src/lib/initMetric.ts +24 -11
- package/front_end/third_party/web-vitals/package/src/lib/initUnique.ts +12 -4
- package/front_end/third_party/web-vitals/package/src/lib/observe.ts +26 -5
- package/front_end/third_party/web-vitals/package/src/lib/polyfills/interactionCountPolyfill.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/lib/softNavs.ts +48 -0
- package/front_end/third_party/web-vitals/package/src/lib/whenIdleOrHidden.ts +12 -4
- package/front_end/third_party/web-vitals/package/src/onCLS.ts +75 -18
- package/front_end/third_party/web-vitals/package/src/onFCP.ts +66 -7
- package/front_end/third_party/web-vitals/package/src/onINP.ts +100 -39
- package/front_end/third_party/web-vitals/package/src/onLCP.ts +169 -34
- package/front_end/third_party/web-vitals/package/src/onTTFB.ts +50 -13
- package/front_end/third_party/web-vitals/package/src/types/base.ts +31 -10
- package/front_end/third_party/web-vitals/package/src/types/fcp.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/types/inp.ts +14 -6
- package/front_end/third_party/web-vitals/package/src/types/lcp.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/types/ttfb.ts +2 -2
- package/front_end/third_party/web-vitals/package/src/types.ts +32 -9
- package/front_end/third_party/web-vitals/patches/0001-Add-onEachInteraction-to-onINP-options.patch +11 -11
- package/front_end/third_party/web-vitals/rebuild.sh +2 -2
- package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +2 -0
- package/front_end/ui/components/buttons/Button.ts +16 -0
- package/front_end/ui/components/dialogs/Dialog.ts +1 -1
- package/front_end/ui/components/highlighting/HighlightManager.ts +6 -1
- package/front_end/ui/components/highlighting/highlighting.ts +1 -1
- package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +2 -2
- package/front_end/ui/components/settings/SettingCheckbox.ts +12 -7
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +2 -2
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +6 -6
- package/front_end/ui/components/text_editor/javascript.ts +3 -1
- package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +12 -2
- package/front_end/ui/legacy/ListControl.ts +1 -1
- package/front_end/ui/legacy/SelectMenu.docs.ts +17 -19
- package/front_end/ui/legacy/Toolbar.ts +4 -1
- package/front_end/ui/legacy/Treeoutline.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/spectrum.css +1 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -4
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +3 -1
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +4 -4
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +8 -7
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +14 -11
- package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -1
- package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +15 -5
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +4 -4
- package/front_end/ui/legacy/components/utils/Linkifier.ts +5 -1
- package/front_end/ui/lit/render.ts +1 -1
- package/front_end/ui/settings/SettingUIRegistration.ts +8 -3
- package/front_end/ui/visual_logging/KnownContextValues.ts +8 -0
- package/front_end/ui/visual_logging/LoggingEvents.ts +1 -1
- package/inspector_overlay/main.ts +1 -1
- package/mcp/mcp.ts +5 -4
- package/package.json +13 -13
- package/front_end/models/ai_assistance/AgentProject.ts +0 -261
- package/front_end/models/ai_assistance/agents/PatchAgent.ts +0 -306
- package/front_end/models/issues_manager/CheckFormsIssuesTrigger.ts +0 -45
- package/front_end/models/text_utils/text_utils.ts +0 -5
- package/front_end/panels/ai_assistance/PatchWidget.ts +0 -867
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +0 -368
- package/front_end/panels/ai_assistance/selectWorkspaceDialog.css +0 -92
|
@@ -99,28 +99,6 @@ const UIStrings = {
|
|
|
99
99
|
* @description Text that appears when user drag and drop something (for example, a file) in Timeline Panel of the Performance panel
|
|
100
100
|
*/
|
|
101
101
|
dropTimelineFileOrUrlHere: 'Drop trace file or URL here',
|
|
102
|
-
/**
|
|
103
|
-
* @description Title of disable capture jsprofile setting in timeline panel of the performance panel
|
|
104
|
-
*/
|
|
105
|
-
disableJavascriptSamples: 'Disable JavaScript samples',
|
|
106
|
-
/**
|
|
107
|
-
*@description Title of capture layers and pictures setting in timeline panel of the performance panel
|
|
108
|
-
*/
|
|
109
|
-
enableAdvancedPaint: 'Enable advanced paint instrumentation (slow)',
|
|
110
|
-
/**
|
|
111
|
-
* @description Title of CSS selector stats setting in timeline panel of the performance panel
|
|
112
|
-
*/
|
|
113
|
-
enableSelectorStats: 'Enable CSS selector stats (slow)',
|
|
114
|
-
/**
|
|
115
|
-
* @description Title of show screenshots setting in timeline panel of the performance panel
|
|
116
|
-
*/
|
|
117
|
-
screenshots: 'Screenshots',
|
|
118
|
-
/**
|
|
119
|
-
* @description Label for the screenshot capture preset dropdown in the performance panel settings pane. The dropdown
|
|
120
|
-
* picks the per-frame resolution and maximum frame count used when capturing screenshots. Every preset is sized to
|
|
121
|
-
* stay within the same per-session memory budget.
|
|
122
|
-
*/
|
|
123
|
-
screenshotCapture: 'Screenshot capture',
|
|
124
102
|
/**
|
|
125
103
|
* @description Dropdown option in the performance panel for the default screenshot capture preset (500 x 500 pixels,
|
|
126
104
|
* up to 450 frames).
|
|
@@ -141,10 +119,6 @@ const UIStrings = {
|
|
|
141
119
|
* so many of them fit in the per-session memory budget (100 x 100 pixels, up to 11250 frames).
|
|
142
120
|
*/
|
|
143
121
|
screenshotPresetTiny: '100 x 100 px, up to 11250 frames',
|
|
144
|
-
/**
|
|
145
|
-
* @description Text for the memory of the page
|
|
146
|
-
*/
|
|
147
|
-
memory: 'Memory',
|
|
148
122
|
/**
|
|
149
123
|
* @description Text to clear content
|
|
150
124
|
*/
|
|
@@ -274,11 +248,6 @@ const UIStrings = {
|
|
|
274
248
|
* @description Tooltip description for a checkbox that toggles the visibility of data added by extensions of this panel (Performance).
|
|
275
249
|
*/
|
|
276
250
|
showDataAddedByExtensions: 'Show data added by extensions of the Performance panel',
|
|
277
|
-
/**
|
|
278
|
-
* Label for a checkbox that toggles the visibility of data added by extensions of this panel (Performance).
|
|
279
|
-
*/
|
|
280
|
-
showCustomtracks: 'Show custom tracks',
|
|
281
|
-
|
|
282
251
|
/**
|
|
283
252
|
* @description Tooltip for the the sidebar toggle in the Performance panel. Command to open/show the sidebar.
|
|
284
253
|
*/
|
|
@@ -324,10 +293,6 @@ const UIStrings = {
|
|
|
324
293
|
* @description Description of the Timeline scrolling & panning instructions that appear in the shortcuts dialog.
|
|
325
294
|
*/
|
|
326
295
|
timelineScrollPan: 'Scroll & Pan',
|
|
327
|
-
/**
|
|
328
|
-
* @description Title for the Dim 3rd Parties checkbox.
|
|
329
|
-
*/
|
|
330
|
-
dimThirdParties: 'Dim 3rd parties',
|
|
331
296
|
/**
|
|
332
297
|
* @description Description for the Dim 3rd Parties checkbox tooltip describing how 3rd parties are classified.
|
|
333
298
|
*/
|
|
@@ -378,7 +343,6 @@ const SCREENSHOT_CAPTURE_PRESETS: ReadonlyArray<{
|
|
|
378
343
|
label: () => i18nString(UIStrings.screenshotPresetTiny),
|
|
379
344
|
},
|
|
380
345
|
];
|
|
381
|
-
const DEFAULT_SCREENSHOT_CAPTURE_PRESET_KEY = SCREENSHOT_CAPTURE_PRESETS[0].key;
|
|
382
346
|
|
|
383
347
|
let timelinePanelInstance: TimelinePanel|undefined;
|
|
384
348
|
|
|
@@ -559,38 +523,26 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
559
523
|
|
|
560
524
|
this.traceLoadStart = null;
|
|
561
525
|
|
|
562
|
-
this.disableCaptureJSProfileSetting =
|
|
563
|
-
'timeline-disable-js-sampling'
|
|
564
|
-
this.
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
this.
|
|
569
|
-
'timeline-capture-
|
|
570
|
-
|
|
571
|
-
this.
|
|
572
|
-
'timeline-screenshot-capture-mode', DEFAULT_SCREENSHOT_CAPTURE_PRESET_KEY,
|
|
573
|
-
Common.Settings.SettingStorageType.SESSION);
|
|
574
|
-
this.screenshotCaptureModeSetting.setTitle(i18nString(UIStrings.screenshotCapture));
|
|
575
|
-
|
|
576
|
-
this.showScreenshotsSetting =
|
|
577
|
-
Common.Settings.Settings.instance().createSetting('timeline-show-screenshots', !this.#isNode);
|
|
578
|
-
this.showScreenshotsSetting.setTitle(i18nString(UIStrings.screenshots));
|
|
526
|
+
this.disableCaptureJSProfileSetting =
|
|
527
|
+
Common.Settings.Settings.instance().moduleSetting('timeline-disable-js-sampling');
|
|
528
|
+
this.captureLayersAndPicturesSetting =
|
|
529
|
+
Common.Settings.Settings.instance().moduleSetting('timeline-capture-layers-and-pictures');
|
|
530
|
+
this.captureSelectorStatsSetting =
|
|
531
|
+
Common.Settings.Settings.instance().moduleSetting('timeline-capture-selector-stats');
|
|
532
|
+
this.screenshotCaptureModeSetting =
|
|
533
|
+
Common.Settings.Settings.instance().moduleSetting('timeline-screenshot-capture-mode');
|
|
534
|
+
|
|
535
|
+
this.showScreenshotsSetting = Common.Settings.Settings.instance().moduleSetting('timeline-show-screenshots');
|
|
579
536
|
this.showScreenshotsSetting.addChangeListener(this.updateMiniMap, this);
|
|
580
537
|
|
|
581
|
-
this.showMemorySetting = Common.Settings.Settings.instance().
|
|
582
|
-
'timeline-show-memory', false, Common.Settings.SettingStorageType.SESSION);
|
|
583
|
-
this.showMemorySetting.setTitle(i18nString(UIStrings.memory));
|
|
538
|
+
this.showMemorySetting = Common.Settings.Settings.instance().moduleSetting('timeline-show-memory');
|
|
584
539
|
this.showMemorySetting.addChangeListener(this.onMemoryModeChanged, this);
|
|
585
540
|
|
|
586
|
-
this.#dimThirdPartiesSetting = Common.Settings.Settings.instance().
|
|
587
|
-
'timeline-dim-third-parties', false, Common.Settings.SettingStorageType.SESSION);
|
|
588
|
-
this.#dimThirdPartiesSetting.setTitle(i18nString(UIStrings.dimThirdParties));
|
|
541
|
+
this.#dimThirdPartiesSetting = Common.Settings.Settings.instance().moduleSetting('timeline-dim-third-parties');
|
|
589
542
|
this.#dimThirdPartiesSetting.addChangeListener(this.onDimThirdPartiesChanged, this);
|
|
590
543
|
|
|
591
544
|
this.#thirdPartyTracksSetting = TimelinePanel.extensionDataVisibilitySetting();
|
|
592
545
|
this.#thirdPartyTracksSetting.addChangeListener(this.#extensionDataVisibilityChanged, this);
|
|
593
|
-
this.#thirdPartyTracksSetting.setTitle(i18nString(UIStrings.showCustomtracks));
|
|
594
546
|
|
|
595
547
|
const timelineToolbarContainer = this.element.createChild('div', 'timeline-toolbar-container');
|
|
596
548
|
timelineToolbarContainer.setAttribute('jslog', `${VisualLogging.toolbar()}`);
|
|
@@ -830,7 +782,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
830
782
|
static extensionDataVisibilitySetting(): Common.Settings.Setting<boolean> {
|
|
831
783
|
// Calling this multiple times doesn't recreate the setting.
|
|
832
784
|
// Instead, after the second call, the cached setting is returned.
|
|
833
|
-
return Common.Settings.Settings.instance().
|
|
785
|
+
return Common.Settings.Settings.instance().moduleSetting('timeline-show-extension-data');
|
|
834
786
|
}
|
|
835
787
|
override searchableView(): UI.SearchableView.SearchableView|null {
|
|
836
788
|
return this.#searchableView;
|
|
@@ -1285,9 +1237,10 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
1285
1237
|
{
|
|
1286
1238
|
title: i18nString(UIStrings.timelineZoom),
|
|
1287
1239
|
rows: [
|
|
1288
|
-
[{key: 'Scroll ↕'}],
|
|
1289
|
-
{
|
|
1290
|
-
|
|
1240
|
+
[{key: 'Scroll ↕'}],
|
|
1241
|
+
[{key: 'W'}, {key: 'S'}, {joinText: 'or'}, {key: '+'}, {key: '-'}],
|
|
1242
|
+
{footnote: 'hold shift for fast zoom'},
|
|
1243
|
+
],
|
|
1291
1244
|
},
|
|
1292
1245
|
{
|
|
1293
1246
|
title: i18nString(UIStrings.timelineScrollPan),
|
|
@@ -1295,11 +1248,17 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
1295
1248
|
[{key: 'Shift'}, {joinText: '+'}, {key: 'Scroll ↕'}],
|
|
1296
1249
|
[{key: 'Scroll ↔'}, {joinText: 'or'}, {key: 'A'}, {key: 'D'}],
|
|
1297
1250
|
[
|
|
1298
|
-
{key: 'Drag'},
|
|
1299
|
-
{
|
|
1251
|
+
{key: 'Drag'},
|
|
1252
|
+
{joinText: 'or'},
|
|
1253
|
+
{key: 'Shift'},
|
|
1254
|
+
{joinText: '+'},
|
|
1255
|
+
{key: '↑'},
|
|
1256
|
+
{key: '↓'},
|
|
1257
|
+
{key: '←'},
|
|
1258
|
+
{key: '→'},
|
|
1300
1259
|
],
|
|
1301
|
-
]
|
|
1302
|
-
}
|
|
1260
|
+
],
|
|
1261
|
+
},
|
|
1303
1262
|
];
|
|
1304
1263
|
}
|
|
1305
1264
|
|
|
@@ -1309,23 +1268,36 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
1309
1268
|
title: i18nString(UIStrings.timelineZoom),
|
|
1310
1269
|
rows: [
|
|
1311
1270
|
[{key: metaKey}, {joinText: '+'}, {key: 'Scroll ↕'}],
|
|
1312
|
-
[{key: 'W'}, {key: 'S'}, {joinText: 'or'}, {key: '+'}, {key: '-'}],
|
|
1313
|
-
|
|
1271
|
+
[{key: 'W'}, {key: 'S'}, {joinText: 'or'}, {key: '+'}, {key: '-'}],
|
|
1272
|
+
{footnote: ''},
|
|
1273
|
+
],
|
|
1314
1274
|
},
|
|
1315
1275
|
{
|
|
1316
1276
|
title: i18nString(UIStrings.timelineScrollPan),
|
|
1317
1277
|
rows: [
|
|
1318
1278
|
[{key: 'Scroll ↕'}],
|
|
1319
1279
|
[
|
|
1320
|
-
{key: 'Shift'},
|
|
1321
|
-
{
|
|
1280
|
+
{key: 'Shift'},
|
|
1281
|
+
{joinText: '+'},
|
|
1282
|
+
{key: 'Scroll ↕'},
|
|
1283
|
+
{joinText: 'or'},
|
|
1284
|
+
{key: 'Scroll ↔'},
|
|
1285
|
+
{joinText: 'or'},
|
|
1286
|
+
{key: 'A'},
|
|
1287
|
+
{key: 'D'},
|
|
1322
1288
|
],
|
|
1323
1289
|
[
|
|
1324
|
-
{key: 'Drag'},
|
|
1325
|
-
{
|
|
1290
|
+
{key: 'Drag'},
|
|
1291
|
+
{joinText: 'or'},
|
|
1292
|
+
{key: 'Shift'},
|
|
1293
|
+
{joinText: '+'},
|
|
1294
|
+
{key: '↑'},
|
|
1295
|
+
{key: '↓'},
|
|
1296
|
+
{key: '←'},
|
|
1297
|
+
{key: '→'},
|
|
1326
1298
|
],
|
|
1327
|
-
]
|
|
1328
|
-
}
|
|
1299
|
+
],
|
|
1300
|
+
},
|
|
1329
1301
|
];
|
|
1330
1302
|
}
|
|
1331
1303
|
|
|
@@ -2237,7 +2209,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
2237
2209
|
const exclusiveFilter = this.#exclusiveFilterPerTrace.get(traceIndex) ?? null;
|
|
2238
2210
|
this.#applyActiveFilters(parsedTrace.data.Meta.traceIsGeneric, exclusiveFilter);
|
|
2239
2211
|
(this.saveButton.element as TimelineComponents.ExportTraceOptions.ExportTraceOptions).updateContentVisibility({
|
|
2240
|
-
annotationsExist: currentManager ? currentManager.getAnnotations()?.length > 0 : false
|
|
2212
|
+
annotationsExist: currentManager ? currentManager.getAnnotations()?.length > 0 : false,
|
|
2241
2213
|
});
|
|
2242
2214
|
|
|
2243
2215
|
// Add ModificationsManager listeners for annotations change to update the
|
|
@@ -2375,7 +2347,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
2375
2347
|
const annotationEntryToColorMap = this.buildColorsAnnotationsMap(annotations);
|
|
2376
2348
|
this.#sideBar.setAnnotations(annotations, annotationEntryToColorMap);
|
|
2377
2349
|
(this.saveButton.element as TimelineComponents.ExportTraceOptions.ExportTraceOptions).updateContentVisibility({
|
|
2378
|
-
annotationsExist: currentManager ? currentManager.getAnnotations()?.length > 0 : false
|
|
2350
|
+
annotationsExist: currentManager ? currentManager.getAnnotations()?.length > 0 : false,
|
|
2379
2351
|
});
|
|
2380
2352
|
}
|
|
2381
2353
|
|
|
@@ -2448,7 +2420,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
2448
2420
|
},
|
|
2449
2421
|
onShowTrackConfigurationMode: () => {
|
|
2450
2422
|
this.flameChart.enterMainChartTrackConfigurationMode();
|
|
2451
|
-
}
|
|
2423
|
+
},
|
|
2452
2424
|
});
|
|
2453
2425
|
if (maybeOverlay) {
|
|
2454
2426
|
this.flameChart.addOverlay(maybeOverlay);
|
|
@@ -2732,7 +2704,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
2732
2704
|
const initiator = {
|
|
2733
2705
|
target: null,
|
|
2734
2706
|
frameId: script.frame as Protocol.Page.FrameId,
|
|
2735
|
-
initiatorUrl: script.url as Platform.DevToolsPath.UrlString
|
|
2707
|
+
initiatorUrl: script.url as Platform.DevToolsPath.UrlString,
|
|
2736
2708
|
};
|
|
2737
2709
|
rawSourceMap = await SDK.SourceMapManager.tryLoadSourceMap(
|
|
2738
2710
|
this.#resourceLoader, script.sourceMapUrl as Platform.DevToolsPath.UrlString, initiator);
|
|
@@ -2844,7 +2816,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
2844
2816
|
const initiator = {
|
|
2845
2817
|
target: debuggerModelForFrameId.get(frame)?.target() ?? null,
|
|
2846
2818
|
frameId: frame,
|
|
2847
|
-
initiatorUrl: sourceUrl
|
|
2819
|
+
initiatorUrl: sourceUrl,
|
|
2848
2820
|
};
|
|
2849
2821
|
const payload = await SDK.SourceMapManager.tryLoadSourceMap(
|
|
2850
2822
|
TimelinePanel.instance().#resourceLoader, sourceMapUrl, initiator);
|
|
@@ -227,8 +227,12 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
|
227
227
|
menu.defaultSection().appendItem(i18nString(UIStrings.copyTable), () => {
|
|
228
228
|
const tableData = [];
|
|
229
229
|
const columnName = [
|
|
230
|
-
i18nString(UIStrings.elapsed),
|
|
231
|
-
i18nString(UIStrings.
|
|
230
|
+
i18nString(UIStrings.elapsed),
|
|
231
|
+
i18nString(UIStrings.matchAttempts),
|
|
232
|
+
i18nString(UIStrings.matchCount),
|
|
233
|
+
i18nString(UIStrings.slowPathNonMatches),
|
|
234
|
+
i18nString(UIStrings.selector),
|
|
235
|
+
i18nString(UIStrings.styleSheetId),
|
|
232
236
|
];
|
|
233
237
|
tableData.push(columnName.join('\t'));
|
|
234
238
|
for (const timing of this.#timings) {
|
|
@@ -321,7 +325,10 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
|
|
|
321
325
|
// aggregate invalidated nodes per (Selector + Recalc timestamp + Frame)
|
|
322
326
|
for (const selector of invalidatedNode.selectorList) {
|
|
323
327
|
const key = [
|
|
324
|
-
selector.selector,
|
|
328
|
+
selector.selector,
|
|
329
|
+
selector.styleSheetId,
|
|
330
|
+
invalidatedNode.frame,
|
|
331
|
+
invalidatedNode.lastRecalcStyleEventTs,
|
|
325
332
|
].join('-');
|
|
326
333
|
if (invalidatedNodeMap.has(key)) {
|
|
327
334
|
const nodes = invalidatedNodeMap.get(key);
|
|
@@ -77,7 +77,7 @@ const UIStrings = {
|
|
|
77
77
|
* @description Text that only contain a placeholder
|
|
78
78
|
* @example {100ms (at 200ms)} PH1
|
|
79
79
|
*/
|
|
80
|
-
emptyPlaceholder: '{PH1}', // eslint-disable-line @devtools/l10n-
|
|
80
|
+
emptyPlaceholder: '{PH1}', // eslint-disable-line @devtools/l10n-uistrings-text-style
|
|
81
81
|
/**
|
|
82
82
|
* @description Text for timestamps of items
|
|
83
83
|
*/
|
|
@@ -193,7 +193,7 @@ const UIStrings = {
|
|
|
193
193
|
/**
|
|
194
194
|
* @description Text to refer to the URL associated with a given event.
|
|
195
195
|
*/
|
|
196
|
-
url: '
|
|
196
|
+
url: 'URL',
|
|
197
197
|
/**
|
|
198
198
|
* @description Text to indicate to the user the size of the cache (as a filesize - e.g. 5mb).
|
|
199
199
|
*/
|
|
@@ -477,6 +477,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
477
477
|
|
|
478
478
|
/** Look for scheme:// plus text and exclude any punctuation at the end. **/
|
|
479
479
|
export const URL_REGEX = /(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\/\/)[^\s"]{2,}[^\s"'\)\}\],:;.!?]/u;
|
|
480
|
+
const ALWAYS_LINKIFIED_SCHEMES = new Set(['http', 'https']);
|
|
480
481
|
|
|
481
482
|
let eventDispatchDesciptors: EventDispatchTypeDescriptor[];
|
|
482
483
|
|
|
@@ -859,7 +860,7 @@ export class TimelineUIUtils {
|
|
|
859
860
|
|
|
860
861
|
static maybeCreateLinkElement(url: string): Element|null {
|
|
861
862
|
const parsedURL = new Common.ParsedURL.ParsedURL(url);
|
|
862
|
-
if (!parsedURL.scheme) {
|
|
863
|
+
if (!TimelineUIUtils.isLinkifiableScheme(parsedURL.scheme)) {
|
|
863
864
|
return null;
|
|
864
865
|
}
|
|
865
866
|
|
|
@@ -879,6 +880,19 @@ export class TimelineUIUtils {
|
|
|
879
880
|
return LegacyComponents.Linkifier.Linkifier.linkifyURL(rawURL as Platform.DevToolsPath.UrlString, options);
|
|
880
881
|
}
|
|
881
882
|
|
|
883
|
+
/**
|
|
884
|
+
* Don't linkify URLs to privileged schemes. See https://crbug.com/530450502.
|
|
885
|
+
*/
|
|
886
|
+
static isLinkifiableScheme(scheme: string): boolean {
|
|
887
|
+
if (ALWAYS_LINKIFIED_SCHEMES.has(scheme)) {
|
|
888
|
+
return true;
|
|
889
|
+
}
|
|
890
|
+
if (LegacyComponents.Linkifier.Linkifier.isRegisteredLinkHandlerScheme(scheme + ':')) {
|
|
891
|
+
return true;
|
|
892
|
+
}
|
|
893
|
+
return false;
|
|
894
|
+
}
|
|
895
|
+
|
|
882
896
|
/**
|
|
883
897
|
* Takes an input string and parses it to look for links. It does this by
|
|
884
898
|
* looking for URLs in the input string. The returned fragment will contain
|
|
@@ -1043,7 +1057,7 @@ export class TimelineUIUtils {
|
|
|
1043
1057
|
const hasExclusiveLink = typeof userDetail === 'object' && typeof userDetail.url === 'string' &&
|
|
1044
1058
|
typeof userDetail.description === 'string';
|
|
1045
1059
|
if (hasExclusiveLink && Boolean(Root.Runtime.hostConfig.devToolsDeepLinksViaExtensibilityApi?.enabled)) {
|
|
1046
|
-
const linkElement =
|
|
1060
|
+
const linkElement = TimelineUIUtils.maybeCreateLinkElement(String(userDetail.url));
|
|
1047
1061
|
if (linkElement) {
|
|
1048
1062
|
contentHelper.appendElementRow(String(userDetail.description), linkElement);
|
|
1049
1063
|
// Now remove so we don't render them in renderObjectJson.
|
|
@@ -84,7 +84,7 @@ export function createHiddenTracksOverlay(parsedTrace: Trace.TraceModel.ParsedTr
|
|
|
84
84
|
delegate: callbacks.onShowTrackConfigurationMode,
|
|
85
85
|
dismiss: true,
|
|
86
86
|
buttonVariant: Buttons.Button.Variant.PRIMARY,
|
|
87
|
-
}
|
|
87
|
+
},
|
|
88
88
|
],
|
|
89
89
|
);
|
|
90
90
|
infobarForTrace.setCloseCallback(() => {
|
|
@@ -163,7 +163,7 @@ export class ExportTraceOptions extends HTMLElement {
|
|
|
163
163
|
...this.#state,
|
|
164
164
|
displayAnnotationsCheckbox: options.annotationsExist,
|
|
165
165
|
displayResourceContentCheckbox: true,
|
|
166
|
-
displaySourceMapsCheckbox: true
|
|
166
|
+
displaySourceMapsCheckbox: true,
|
|
167
167
|
};
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -144,15 +144,14 @@ export class LayoutShiftDetails extends UI.Widget.Widget {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
override performUpdate(): Promise<void>|void {
|
|
147
|
-
this.#view(
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
{}, this.contentElement);
|
|
147
|
+
this.#view({
|
|
148
|
+
event: this.#event,
|
|
149
|
+
parsedTrace: this.#parsedTrace,
|
|
150
|
+
isFreshRecording: this.#isFreshRecording,
|
|
151
|
+
togglePopover: e => this.#togglePopover(e),
|
|
152
|
+
onEventClick: e => this.#handleTraceEventClick(e),
|
|
153
|
+
},
|
|
154
|
+
{}, this.contentElement);
|
|
156
155
|
}
|
|
157
156
|
}
|
|
158
157
|
|
|
@@ -179,7 +179,7 @@ export class NetworkRequestTooltip extends UI.Widget.Widget {
|
|
|
179
179
|
sdkNetworkRequest.networkRequest);
|
|
180
180
|
const throttledTitle = wasThrottled ? i18nString(UIStrings.wasThrottled, {
|
|
181
181
|
PH1: typeof wasThrottled.conditions.title === 'string' ? wasThrottled.conditions.title :
|
|
182
|
-
wasThrottled.conditions.title()
|
|
182
|
+
wasThrottled.conditions.title(),
|
|
183
183
|
}) :
|
|
184
184
|
undefined;
|
|
185
185
|
|
|
@@ -90,7 +90,7 @@ export class DuplicatedJavaScript extends BaseInsightComponent<DuplicatedJavaScr
|
|
|
90
90
|
],
|
|
91
91
|
overlays,
|
|
92
92
|
};
|
|
93
|
-
})
|
|
93
|
+
}),
|
|
94
94
|
};
|
|
95
95
|
});
|
|
96
96
|
|
|
@@ -99,7 +99,7 @@ export class DuplicatedJavaScript extends BaseInsightComponent<DuplicatedJavaScr
|
|
|
99
99
|
treemapButton = html`<devtools-button
|
|
100
100
|
.variant=${Buttons.Button.Variant.OUTLINED}
|
|
101
101
|
jslog=${VisualLogging.action(`timeline.treemap.${this.internalName}-insight`).track({
|
|
102
|
-
click: true
|
|
102
|
+
click: true,
|
|
103
103
|
})}
|
|
104
104
|
@click=${this.#openTreemap.bind(this)}
|
|
105
105
|
>View Treemap</devtools-button>`;
|
|
@@ -131,7 +131,7 @@ export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsight
|
|
|
131
131
|
insight: this,
|
|
132
132
|
headers: [`${i18nString(UIStrings.topSelectorElapsedTime)}: ${time(Trace.Types.Timing.Micro(selector['elapsed (us)']))}`],
|
|
133
133
|
rows: [{
|
|
134
|
-
values: [html`${selector.selector} ${Lit.Directives.until(this.getSelectorLinks(cssModel, selector))}`]}]
|
|
134
|
+
values: [html`${selector.selector} ${Lit.Directives.until(this.getSelectorLinks(cssModel, selector))}`]}],
|
|
135
135
|
}})}
|
|
136
136
|
</div>
|
|
137
137
|
`);
|
|
@@ -149,7 +149,7 @@ export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsight
|
|
|
149
149
|
headers: [`${i18nString(UIStrings.topSelectorMatchAttempt)}: ${selector['match_attempts']}`],
|
|
150
150
|
rows: [{
|
|
151
151
|
values: [html`${selector.selector} ${Lit.Directives.until(this.getSelectorLinks(cssModel, selector))}` as unknown as string],
|
|
152
|
-
}]
|
|
152
|
+
}],
|
|
153
153
|
}})}
|
|
154
154
|
</div>
|
|
155
155
|
`);
|
|
@@ -914,6 +914,10 @@ export class Overlays extends EventTarget {
|
|
|
914
914
|
return;
|
|
915
915
|
}
|
|
916
916
|
|
|
917
|
+
const isPositionedByEvent =
|
|
918
|
+
overlay.entry && (overlay.renderLocation === 'BELOW_EVENT' || overlay.renderLocation === 'ABOVE_EVENT');
|
|
919
|
+
element.classList.toggle('positioned-by-event', Boolean(isPositionedByEvent));
|
|
920
|
+
|
|
917
921
|
const component = element.querySelector('.devtools-timespan-breakdown-overlay');
|
|
918
922
|
|
|
919
923
|
if (!component) {
|
|
@@ -981,6 +985,7 @@ export class Overlays extends EventTarget {
|
|
|
981
985
|
|
|
982
986
|
const top = bottom - height;
|
|
983
987
|
widget.top = top;
|
|
988
|
+
widget.maxHeight = height;
|
|
984
989
|
}
|
|
985
990
|
}
|
|
986
991
|
}
|
|
@@ -30,13 +30,18 @@ const renderSection =
|
|
|
30
30
|
const style = Directives.styleMap(
|
|
31
31
|
{left: position ? `${position.left}px` : undefined, width: position ? `${position.width}px` : undefined});
|
|
32
32
|
|
|
33
|
+
const durationText =
|
|
34
|
+
section.showDuration ? i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(section.bounds.range) : '';
|
|
35
|
+
const labelText = section.label instanceof HTMLElement ? (section.label.textContent || '') : section.label;
|
|
36
|
+
const tooltip = durationText ? `${durationText} ${labelText}` : labelText;
|
|
37
|
+
|
|
33
38
|
// clang-format off
|
|
34
39
|
return html`
|
|
35
|
-
<div class="timespan-breakdown-overlay-section" style=${style}>
|
|
40
|
+
<div class="timespan-breakdown-overlay-section" style=${style} title=${tooltip}>
|
|
36
41
|
<div class="timespan-breakdown-overlay-label">
|
|
37
42
|
${
|
|
38
43
|
section.showDuration ?
|
|
39
|
-
html`<span class="duration-text">${
|
|
44
|
+
html`<span class="duration-text">${durationText}</span> ` :
|
|
40
45
|
nothing
|
|
41
46
|
}
|
|
42
47
|
<span class="section-label-text">${section.label}</span>
|
|
@@ -47,11 +52,11 @@ const renderSection =
|
|
|
47
52
|
|
|
48
53
|
export const DEFAULT_VIEW = (input: Input, _output: undefined, target: HTMLElement): void => {
|
|
49
54
|
const style = Directives.styleMap({
|
|
50
|
-
left: input.left ? `${input.left}px` : undefined,
|
|
51
|
-
width: input.width ? `${input.width}px` : undefined,
|
|
52
|
-
top: input.top ? `${input.top}px` : undefined,
|
|
53
|
-
maxHeight: input.maxHeight ? `${input.maxHeight}px` : undefined,
|
|
54
|
-
position: 'relative'
|
|
55
|
+
left: input.left !== null ? `${input.left}px` : undefined,
|
|
56
|
+
width: input.width !== null ? `${input.width}px` : undefined,
|
|
57
|
+
top: input.top !== null ? `${input.top}px` : undefined,
|
|
58
|
+
maxHeight: input.maxHeight !== null ? `${input.maxHeight}px` : undefined,
|
|
59
|
+
position: 'relative',
|
|
55
60
|
});
|
|
56
61
|
// clang-format off
|
|
57
62
|
render(
|
|
@@ -252,7 +257,7 @@ export class TimespanBreakdownOverlay extends UI.Widget.Widget {
|
|
|
252
257
|
width: this.#width,
|
|
253
258
|
top: this.#top,
|
|
254
259
|
maxHeight: this.#maxHeight,
|
|
255
|
-
className
|
|
260
|
+
className,
|
|
256
261
|
}, undefined, this.contentElement);
|
|
257
262
|
|
|
258
263
|
this.checkSectionLabelPositioning();
|