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
|
@@ -16,80 +16,80 @@ import type {LighthouseRun as LighthouseRunType, ProtocolService} from './Lighth
|
|
|
16
16
|
|
|
17
17
|
const UIStrings = {
|
|
18
18
|
/**
|
|
19
|
-
* @description Explanation for user that
|
|
19
|
+
* @description Explanation for user that Lighthouse can only audit HTTP/HTTPS pages.
|
|
20
20
|
*/
|
|
21
21
|
canOnlyAuditHttphttpsPages: 'Can only audit pages on HTTP or HTTPS. Navigate to a different page.',
|
|
22
22
|
/**
|
|
23
|
-
* @description Text when stored data in one location may affect Lighthouse run
|
|
23
|
+
* @description Text when stored data in one location may affect Lighthouse run.
|
|
24
24
|
* @example {IndexedDB} PH1
|
|
25
25
|
*/
|
|
26
26
|
thereMayBeStoredDataAffectingSingular:
|
|
27
|
-
'There may be stored data affecting loading performance in this location: {PH1}. Audit this page in an incognito window to
|
|
27
|
+
'There may be stored data affecting loading performance in this location: {PH1}. Audit this page in an incognito window to stop those resources from affecting your scores.',
|
|
28
28
|
/**
|
|
29
|
-
* @description Text when stored data in multiple locations may affect Lighthouse run
|
|
29
|
+
* @description Text when stored data in multiple locations may affect Lighthouse run.
|
|
30
30
|
* @example {IndexedDB, WebSQL} PH1
|
|
31
31
|
*/
|
|
32
32
|
thereMayBeStoredDataAffectingLoadingPlural:
|
|
33
|
-
'There may be stored data affecting loading performance in these locations: {PH1}. Audit this page in an incognito window to
|
|
33
|
+
'There may be stored data affecting loading performance in these locations: {PH1}. Audit this page in an incognito window to stop those resources from affecting your scores.',
|
|
34
34
|
/**
|
|
35
|
-
* @description Help text in Lighthouse
|
|
35
|
+
* @description Help text in the Lighthouse panel.
|
|
36
36
|
*/
|
|
37
37
|
multipleTabsAreBeingControlledBy:
|
|
38
38
|
'Multiple tabs are being controlled by the same `service worker`. Close your other tabs on the same origin to audit this page.',
|
|
39
39
|
/**
|
|
40
|
-
* @description Help text in Lighthouse
|
|
40
|
+
* @description Help text in the Lighthouse panel.
|
|
41
41
|
*/
|
|
42
42
|
atLeastOneCategoryMustBeSelected: 'At least one category must be selected.',
|
|
43
43
|
/**
|
|
44
|
-
* @description Text in
|
|
44
|
+
* @description Text in sidebar of the Application panel.
|
|
45
45
|
*/
|
|
46
46
|
localStorage: 'Local storage',
|
|
47
47
|
/**
|
|
48
|
-
* @description Text in
|
|
48
|
+
* @description Text in sidebar of the Application panel.
|
|
49
49
|
*/
|
|
50
50
|
indexeddb: 'IndexedDB',
|
|
51
51
|
/**
|
|
52
|
-
* @description Text in
|
|
52
|
+
* @description Text in sidebar of the Application panel.
|
|
53
53
|
*/
|
|
54
54
|
webSql: 'Web SQL',
|
|
55
55
|
/**
|
|
56
|
-
* @description Text of checkbox to include running the performance audits in Lighthouse
|
|
56
|
+
* @description Text of checkbox to include running the performance audits in Lighthouse.
|
|
57
57
|
*/
|
|
58
58
|
performance: 'Performance',
|
|
59
59
|
/**
|
|
60
|
-
* @description Tooltip text of checkbox to include running the performance audits in Lighthouse
|
|
60
|
+
* @description Tooltip text of checkbox to include running the performance audits in Lighthouse.
|
|
61
61
|
*/
|
|
62
62
|
howLongDoesThisAppTakeToShow: 'How long does this app take to show content and become usable',
|
|
63
63
|
/**
|
|
64
|
-
* @description Text of checkbox to include running the Best Practices audits in Lighthouse
|
|
64
|
+
* @description Text of checkbox to include running the Best Practices audits in Lighthouse.
|
|
65
65
|
*/
|
|
66
66
|
bestPractices: 'Best practices',
|
|
67
67
|
/**
|
|
68
|
-
* @description Tooltip text of checkbox to include running the Best Practices audits in Lighthouse
|
|
68
|
+
* @description Tooltip text of checkbox to include running the Best Practices audits in Lighthouse.
|
|
69
69
|
*/
|
|
70
70
|
doesThisPageFollowBestPractices: 'Does this page follow best practices for modern web development',
|
|
71
71
|
/**
|
|
72
|
-
* @description Text of checkbox to include running the Accessibility audits in Lighthouse
|
|
72
|
+
* @description Text of checkbox to include running the Accessibility audits in Lighthouse.
|
|
73
73
|
*/
|
|
74
74
|
accessibility: 'Accessibility',
|
|
75
75
|
/**
|
|
76
|
-
* @description Tooltip text of checkbox to include running the Accessibility audits in Lighthouse
|
|
76
|
+
* @description Tooltip text of checkbox to include running the Accessibility audits in Lighthouse.
|
|
77
77
|
*/
|
|
78
78
|
isThisPageUsableByPeopleWith: 'Is this page usable by people with disabilities or impairments',
|
|
79
79
|
/**
|
|
80
|
-
* @description Text of checkbox to include running the Search Engine Optimization audits in Lighthouse
|
|
80
|
+
* @description Text of checkbox to include running the Search Engine Optimization audits in Lighthouse.
|
|
81
81
|
*/
|
|
82
82
|
seo: 'SEO',
|
|
83
83
|
/**
|
|
84
|
-
* @description Tooltip text of checkbox to include running the Search Engine Optimization audits in Lighthouse
|
|
84
|
+
* @description Tooltip text of checkbox to include running the Search Engine Optimization audits in Lighthouse.
|
|
85
85
|
*/
|
|
86
86
|
isThisPageOptimizedForSearch: 'Is this page optimized for search engine results ranking',
|
|
87
87
|
/**
|
|
88
|
-
* @description Text of checkbox to include running the Agentic Browsing audits in Lighthouse
|
|
88
|
+
* @description Text of checkbox to include running the Agentic Browsing audits in Lighthouse.
|
|
89
89
|
*/
|
|
90
90
|
agenticBrowsing: 'Agentic browsing',
|
|
91
91
|
/**
|
|
92
|
-
* @description Tooltip text of checkbox to include running the Agentic Browsing audits in Lighthouse
|
|
92
|
+
* @description Tooltip text of checkbox to include running the Agentic Browsing audits in Lighthouse.
|
|
93
93
|
*/
|
|
94
94
|
agenticBrowsingDescription:
|
|
95
95
|
'These checks ensure high-quality, browsable websites for AI agents and validate the correctness of WebMCP integrations. This category is still under development and subject to change.',
|
|
@@ -98,11 +98,11 @@ const UIStrings = {
|
|
|
98
98
|
*/
|
|
99
99
|
applyMobileEmulation: 'Apply mobile emulation',
|
|
100
100
|
/**
|
|
101
|
-
* @description Tooltip text of checkbox to emulate mobile device behavior when running audits in Lighthouse
|
|
101
|
+
* @description Tooltip text of checkbox to emulate mobile device behavior when running audits in Lighthouse.
|
|
102
102
|
*/
|
|
103
103
|
applyMobileEmulationDuring: 'Apply mobile emulation during auditing',
|
|
104
104
|
/**
|
|
105
|
-
* @description Tooltip text of checkbox to emulate desktop device behavior when running audits in Lighthouse
|
|
105
|
+
* @description Tooltip text of checkbox to emulate desktop device behavior when running audits in Lighthouse.
|
|
106
106
|
*/
|
|
107
107
|
applyDesktopEmulationDuring: 'Apply desktop emulation during auditing',
|
|
108
108
|
/**
|
|
@@ -116,7 +116,7 @@ const UIStrings = {
|
|
|
116
116
|
/**
|
|
117
117
|
* @description Label of a radio option for a Lighthouse mode that audits a page navigation. This should be marked as the default radio option.
|
|
118
118
|
*/
|
|
119
|
-
navigation: 'Navigation (
|
|
119
|
+
navigation: 'Navigation (default)',
|
|
120
120
|
/**
|
|
121
121
|
* @description Tooltip description of a radio option for a Lighthouse mode that audits a page navigation.
|
|
122
122
|
*/
|
|
@@ -138,11 +138,11 @@ const UIStrings = {
|
|
|
138
138
|
*/
|
|
139
139
|
snapshotTooltip: 'Snapshot mode analyzes the page in a particular state, typically after user interactions.',
|
|
140
140
|
/**
|
|
141
|
-
* @description Text for the mobile platform, as opposed to desktop
|
|
141
|
+
* @description Text for the mobile platform, as opposed to desktop.
|
|
142
142
|
*/
|
|
143
143
|
mobile: 'Mobile',
|
|
144
144
|
/**
|
|
145
|
-
* @description Text for the desktop platform, as opposed to mobile
|
|
145
|
+
* @description Text for the desktop platform, as opposed to mobile.
|
|
146
146
|
*/
|
|
147
147
|
desktop: 'Desktop',
|
|
148
148
|
/**
|
|
@@ -158,12 +158,12 @@ const UIStrings = {
|
|
|
158
158
|
*/
|
|
159
159
|
devtoolsThrottling: 'DevTools throttling (advanced)',
|
|
160
160
|
/**
|
|
161
|
-
* @description Tooltip text that appears when hovering over the 'Simulated Throttling' checkbox in the settings
|
|
161
|
+
* @description Tooltip text that appears when hovering over the 'Simulated Throttling' checkbox in the settings toolbar of the Lighthouse panel.
|
|
162
162
|
*/
|
|
163
163
|
simulateASlowerPageLoadBasedOn:
|
|
164
164
|
'Simulated throttling simulates a slower page load based on data from an initial unthrottled load. DevTools throttling actually slows down the page.',
|
|
165
165
|
/**
|
|
166
|
-
* @description Text of checkbox to reset storage features prior to running audits in Lighthouse
|
|
166
|
+
* @description Text of checkbox to reset storage features prior to running audits in Lighthouse.
|
|
167
167
|
*/
|
|
168
168
|
clearStorage: 'Clear storage',
|
|
169
169
|
/**
|
|
@@ -173,20 +173,19 @@ const UIStrings = {
|
|
|
173
173
|
resetStorageLocalstorage:
|
|
174
174
|
'Reset storage (`cache`, `service workers`, etc) before auditing. (Good for performance & `PWA` testing)',
|
|
175
175
|
/**
|
|
176
|
-
* @description Text of checkbox to enable JavaScript sampling while running audits in Lighthouse
|
|
176
|
+
* @description Text of checkbox to enable JavaScript sampling while running audits in Lighthouse.
|
|
177
177
|
*/
|
|
178
178
|
enableSampling: 'Enable JS sampling',
|
|
179
179
|
/**
|
|
180
|
-
* @description Tooltip text of checkbox to enable JavaScript sampling while running audits in
|
|
181
|
-
* Lighthouse. Resetting the storage clears/empties it to a neutral state.
|
|
180
|
+
* @description Tooltip text of checkbox to enable JavaScript sampling while running audits in Lighthouse.
|
|
182
181
|
*/
|
|
183
182
|
enableJavaScriptSampling:
|
|
184
|
-
'Enable JavaScript sampling during the Lighthouse run. This will provide more execution details in the
|
|
183
|
+
'Enable JavaScript sampling during the Lighthouse run. This will provide more execution details in the Performance panel when you view the trace, but has higher CPU overhead and may impact the performance of the page.',
|
|
185
184
|
/**
|
|
186
|
-
* @description Explanation for user that Lighthouse can only audit when JavaScript is enabled
|
|
185
|
+
* @description Explanation for user that Lighthouse can only audit when JavaScript is enabled.
|
|
187
186
|
*/
|
|
188
187
|
javaScriptDisabled:
|
|
189
|
-
'JavaScript is disabled. You need to enable JavaScript to audit this page. Open the
|
|
188
|
+
'JavaScript is disabled. You need to enable JavaScript to audit this page. Open the command menu and run the Enable JavaScript command to enable JavaScript.',
|
|
190
189
|
} as const;
|
|
191
190
|
const str_ = i18n.i18n.registerUIStrings('panels/lighthouse/LighthouseController.ts', UIStrings);
|
|
192
191
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -723,8 +722,7 @@ export function getPresets(): LighthouseModel.RunTypes.Preset[] {
|
|
|
723
722
|
presets = [
|
|
724
723
|
// configID maps to Lighthouse's Object.keys(config.categories)[0] value
|
|
725
724
|
{
|
|
726
|
-
setting: Common.Settings.Settings.instance().
|
|
727
|
-
'lighthouse.cat-perf', true, Common.Settings.SettingStorageType.SYNCED),
|
|
725
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.cat-perf'),
|
|
728
726
|
configID: 'performance',
|
|
729
727
|
title: i18nLazyString(UIStrings.performance),
|
|
730
728
|
description: i18nLazyString(UIStrings.howLongDoesThisAppTakeToShow),
|
|
@@ -732,8 +730,7 @@ export function getPresets(): LighthouseModel.RunTypes.Preset[] {
|
|
|
732
730
|
userMetric: Host.UserMetrics.LighthouseCategoryUsed.PERFORMANCE,
|
|
733
731
|
},
|
|
734
732
|
{
|
|
735
|
-
setting: Common.Settings.Settings.instance().
|
|
736
|
-
'lighthouse.cat-a11y', true, Common.Settings.SettingStorageType.SYNCED),
|
|
733
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.cat-a11y'),
|
|
737
734
|
configID: 'accessibility',
|
|
738
735
|
title: i18nLazyString(UIStrings.accessibility),
|
|
739
736
|
description: i18nLazyString(UIStrings.isThisPageUsableByPeopleWith),
|
|
@@ -741,8 +738,7 @@ export function getPresets(): LighthouseModel.RunTypes.Preset[] {
|
|
|
741
738
|
userMetric: Host.UserMetrics.LighthouseCategoryUsed.ACCESSIBILITY,
|
|
742
739
|
},
|
|
743
740
|
{
|
|
744
|
-
setting: Common.Settings.Settings.instance().
|
|
745
|
-
'lighthouse.cat-best-practices', true, Common.Settings.SettingStorageType.SYNCED),
|
|
741
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.cat-best-practices'),
|
|
746
742
|
configID: 'best-practices',
|
|
747
743
|
title: i18nLazyString(UIStrings.bestPractices),
|
|
748
744
|
description: i18nLazyString(UIStrings.doesThisPageFollowBestPractices),
|
|
@@ -750,8 +746,7 @@ export function getPresets(): LighthouseModel.RunTypes.Preset[] {
|
|
|
750
746
|
userMetric: Host.UserMetrics.LighthouseCategoryUsed.BEST_PRACTICES,
|
|
751
747
|
},
|
|
752
748
|
{
|
|
753
|
-
setting: Common.Settings.Settings.instance().
|
|
754
|
-
'lighthouse.cat-seo', true, Common.Settings.SettingStorageType.SYNCED),
|
|
749
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.cat-seo'),
|
|
755
750
|
configID: 'seo',
|
|
756
751
|
title: i18nLazyString(UIStrings.seo),
|
|
757
752
|
description: i18nLazyString(UIStrings.isThisPageOptimizedForSearch),
|
|
@@ -759,8 +754,7 @@ export function getPresets(): LighthouseModel.RunTypes.Preset[] {
|
|
|
759
754
|
userMetric: Host.UserMetrics.LighthouseCategoryUsed.SEO,
|
|
760
755
|
},
|
|
761
756
|
{
|
|
762
|
-
setting: Common.Settings.Settings.instance().
|
|
763
|
-
'lighthouse.cat-agentic-browsing', false, Common.Settings.SettingStorageType.SYNCED),
|
|
757
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.cat-agentic-browsing'),
|
|
764
758
|
configID: 'agentic-browsing',
|
|
765
759
|
title: i18nLazyString(UIStrings.agenticBrowsing),
|
|
766
760
|
description: i18nLazyString(UIStrings.agenticBrowsingDescription),
|
|
@@ -777,8 +771,7 @@ export function getRuntimeSettings(): LighthouseModel.RunTypes.RuntimeSetting[]
|
|
|
777
771
|
if (!runtimeSettings) {
|
|
778
772
|
runtimeSettings = [
|
|
779
773
|
{
|
|
780
|
-
setting: Common.Settings.Settings.instance().
|
|
781
|
-
'lighthouse.device-type', 'mobile', Common.Settings.SettingStorageType.SYNCED),
|
|
774
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.device-type'),
|
|
782
775
|
title: i18nLazyString(UIStrings.applyMobileEmulation),
|
|
783
776
|
description: i18nLazyString(UIStrings.applyMobileEmulationDuring),
|
|
784
777
|
setFlags: (flags: LighthouseModel.RunTypes.Flags, value: string|boolean) => {
|
|
@@ -789,18 +782,17 @@ export function getRuntimeSettings(): LighthouseModel.RunTypes.RuntimeSetting[]
|
|
|
789
782
|
{
|
|
790
783
|
label: i18nLazyString(UIStrings.mobile),
|
|
791
784
|
tooltip: i18nLazyString(UIStrings.applyMobileEmulationDuring),
|
|
792
|
-
value: 'mobile'
|
|
785
|
+
value: 'mobile',
|
|
793
786
|
},
|
|
794
787
|
{
|
|
795
788
|
label: i18nLazyString(UIStrings.desktop),
|
|
796
789
|
tooltip: i18nLazyString(UIStrings.applyDesktopEmulationDuring),
|
|
797
|
-
value: 'desktop'
|
|
790
|
+
value: 'desktop',
|
|
798
791
|
},
|
|
799
792
|
],
|
|
800
793
|
},
|
|
801
794
|
{
|
|
802
|
-
setting: Common.Settings.Settings.instance().
|
|
803
|
-
'lighthouse.mode', 'navigation', Common.Settings.SettingStorageType.SYNCED),
|
|
795
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.mode'),
|
|
804
796
|
title: i18nLazyString(UIStrings.lighthouseMode),
|
|
805
797
|
description: i18nLazyString(UIStrings.runLighthouseInMode),
|
|
806
798
|
setFlags: (flags: LighthouseModel.RunTypes.Flags, value: string|boolean) => {
|
|
@@ -828,8 +820,7 @@ export function getRuntimeSettings(): LighthouseModel.RunTypes.RuntimeSetting[]
|
|
|
828
820
|
},
|
|
829
821
|
{
|
|
830
822
|
// This setting is disabled, but we keep it around to show in the UI.
|
|
831
|
-
setting: Common.Settings.Settings.instance().
|
|
832
|
-
'lighthouse.throttling', 'simulate', Common.Settings.SettingStorageType.SYNCED),
|
|
823
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.throttling'),
|
|
833
824
|
title: i18nLazyString(UIStrings.throttlingMethod),
|
|
834
825
|
// We will disable this when we have a Lantern trace viewer within DevTools.
|
|
835
826
|
learnMore:
|
|
@@ -849,8 +840,7 @@ export function getRuntimeSettings(): LighthouseModel.RunTypes.RuntimeSetting[]
|
|
|
849
840
|
],
|
|
850
841
|
},
|
|
851
842
|
{
|
|
852
|
-
setting: Common.Settings.Settings.instance().
|
|
853
|
-
'lighthouse.clear-storage', true, Common.Settings.SettingStorageType.SYNCED),
|
|
843
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.clear-storage'),
|
|
854
844
|
title: i18nLazyString(UIStrings.clearStorage),
|
|
855
845
|
description: i18nLazyString(UIStrings.resetStorageLocalstorage),
|
|
856
846
|
setFlags: (flags: LighthouseModel.RunTypes.Flags, value: string|boolean) => {
|
|
@@ -858,8 +848,7 @@ export function getRuntimeSettings(): LighthouseModel.RunTypes.RuntimeSetting[]
|
|
|
858
848
|
},
|
|
859
849
|
},
|
|
860
850
|
{
|
|
861
|
-
setting: Common.Settings.Settings.instance().
|
|
862
|
-
'lighthouse.enable-sampling', false, Common.Settings.SettingStorageType.SYNCED),
|
|
851
|
+
setting: Common.Settings.Settings.instance().moduleSetting('lighthouse.enable-sampling'),
|
|
863
852
|
title: i18nLazyString(UIStrings.enableSampling),
|
|
864
853
|
description: i18nLazyString(UIStrings.enableJavaScriptSampling),
|
|
865
854
|
setFlags: (flags: LighthouseModel.RunTypes.Flags, value: string|boolean) => {
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
Events,
|
|
17
17
|
LighthouseController,
|
|
18
18
|
type PageAuditabilityChangedEvent,
|
|
19
|
-
type PageWarningsChangedEvent
|
|
19
|
+
type PageWarningsChangedEvent,
|
|
20
20
|
} from './LighthouseController.js';
|
|
21
21
|
import lighthousePanelStyles from './lighthousePanel.css.js';
|
|
22
22
|
import {CancelledError, ProtocolService} from './LighthouseProtocolService.js';
|
|
@@ -28,31 +28,31 @@ import {TimespanView} from './LighthouseTimespanView.js';
|
|
|
28
28
|
|
|
29
29
|
const UIStrings = {
|
|
30
30
|
/**
|
|
31
|
-
* @description Text that appears when user
|
|
31
|
+
* @description Text that appears when a user drags and drops a file in the Lighthouse panel.
|
|
32
32
|
*/
|
|
33
33
|
dropLighthouseJsonHere: 'Drop `Lighthouse` JSON here',
|
|
34
34
|
/**
|
|
35
|
-
* @description Tooltip text that appears when hovering over the
|
|
35
|
+
* @description Tooltip text that appears when hovering over the add button in the Lighthouse panel.
|
|
36
36
|
*/
|
|
37
37
|
performAnAudit: 'Perform an audit…',
|
|
38
38
|
/**
|
|
39
|
-
* @description
|
|
39
|
+
* @description Button text to clear all audit reports.
|
|
40
40
|
*/
|
|
41
41
|
clearAll: 'Clear all',
|
|
42
42
|
/**
|
|
43
|
-
* @description Tooltip text that appears when hovering over the
|
|
43
|
+
* @description Tooltip text that appears when hovering over the settings gear in the Lighthouse panel.
|
|
44
44
|
*/
|
|
45
45
|
lighthouseSettings: '`Lighthouse` settings',
|
|
46
46
|
/**
|
|
47
|
-
* @description Status header in the Lighthouse panel
|
|
47
|
+
* @description Status header in the Lighthouse panel.
|
|
48
48
|
*/
|
|
49
49
|
printing: 'Printing',
|
|
50
50
|
/**
|
|
51
|
-
* @description Status text in the Lighthouse panel
|
|
51
|
+
* @description Status text in the Lighthouse panel.
|
|
52
52
|
*/
|
|
53
|
-
thePrintPopupWindowIsOpenPlease: 'The print popup window is open.
|
|
53
|
+
thePrintPopupWindowIsOpenPlease: 'The print popup window is open. Close it to continue.',
|
|
54
54
|
/**
|
|
55
|
-
* @description
|
|
55
|
+
* @description Status text in the Lighthouse panel when an audit is cancelling.
|
|
56
56
|
*/
|
|
57
57
|
cancelling: 'Cancelling',
|
|
58
58
|
} as const;
|
|
@@ -10,11 +10,11 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
10
10
|
|
|
11
11
|
const UIStrings = {
|
|
12
12
|
/**
|
|
13
|
-
* @description Title of combo box in
|
|
13
|
+
* @description Title of combo box in the Lighthouse report selector.
|
|
14
14
|
*/
|
|
15
15
|
reports: 'Reports',
|
|
16
16
|
/**
|
|
17
|
-
* @description
|
|
17
|
+
* @description Label for new report item in the Lighthouse report selector.
|
|
18
18
|
*/
|
|
19
19
|
newReport: '(new report)',
|
|
20
20
|
} as const;
|
|
@@ -25,19 +25,19 @@ const UIStrings = {
|
|
|
25
25
|
*/
|
|
26
26
|
generateLighthouseReport: 'Generate a Lighthouse report',
|
|
27
27
|
/**
|
|
28
|
-
* @description
|
|
28
|
+
* @description Section header for the Lighthouse mode options.
|
|
29
29
|
*/
|
|
30
30
|
mode: 'Mode',
|
|
31
31
|
/**
|
|
32
|
-
* @description
|
|
32
|
+
* @description Section header for the list of categories to run during an audit.
|
|
33
33
|
*/
|
|
34
34
|
categories: 'Categories',
|
|
35
35
|
/**
|
|
36
|
-
* @description Label for a button to start analyzing a page navigation with Lighthouse
|
|
36
|
+
* @description Label for a button to start analyzing a page navigation with Lighthouse.
|
|
37
37
|
*/
|
|
38
38
|
analyzeNavigation: 'Analyze page load',
|
|
39
39
|
/**
|
|
40
|
-
* @description Label for a button to start analyzing the current page state with Lighthouse
|
|
40
|
+
* @description Label for a button to start analyzing the current page state with Lighthouse.
|
|
41
41
|
*/
|
|
42
42
|
analyzeSnapshot: 'Analyze page state',
|
|
43
43
|
/**
|
|
@@ -45,11 +45,11 @@ const UIStrings = {
|
|
|
45
45
|
*/
|
|
46
46
|
startTimespan: 'Start timespan',
|
|
47
47
|
/**
|
|
48
|
-
* @description Text that is usually a hyperlink to more documentation
|
|
48
|
+
* @description Text that is usually a hyperlink to more documentation.
|
|
49
49
|
*/
|
|
50
50
|
learnMore: 'Learn more',
|
|
51
51
|
/**
|
|
52
|
-
* @description
|
|
52
|
+
* @description Section header for selecting the device type for auditing.
|
|
53
53
|
*/
|
|
54
54
|
device: 'Device',
|
|
55
55
|
} as const;
|
|
@@ -181,9 +181,8 @@ export class StartView extends UI.Widget.Widget {
|
|
|
181
181
|
throw new Error(`${settingName} is not a setting with a title`);
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
runtimeSetting.setting as Common.Settings.Setting<boolean>, runtimeSetting.description());
|
|
184
|
+
const control = new UI.Toolbar.ToolbarSettingCheckbox(runtimeSetting.setting as Common.Settings.Setting<boolean>,
|
|
185
|
+
runtimeSetting.description(), runtimeSetting.title());
|
|
187
186
|
toolbar.appendToolbarItem(control);
|
|
188
187
|
if (runtimeSetting.learnMore) {
|
|
189
188
|
const link =
|
|
@@ -201,7 +200,6 @@ export class StartView extends UI.Widget.Widget {
|
|
|
201
200
|
|
|
202
201
|
const options = runtimeSetting.options?.map(option => ({label: option.label(), value: option.value})) || [];
|
|
203
202
|
|
|
204
|
-
runtimeSetting.setting.setTitle(runtimeSetting.title());
|
|
205
203
|
const control = new UI.Toolbar.ToolbarSettingComboBox(
|
|
206
204
|
options,
|
|
207
205
|
runtimeSetting.setting as Common.Settings.Setting<string>,
|
|
@@ -227,8 +225,7 @@ export class StartView extends UI.Widget.Widget {
|
|
|
227
225
|
|
|
228
226
|
this.checkboxes = [];
|
|
229
227
|
for (const preset of getPresets()) {
|
|
230
|
-
preset.setting.
|
|
231
|
-
const checkbox = new UI.Toolbar.ToolbarSettingCheckbox(preset.setting, preset.description());
|
|
228
|
+
const checkbox = new UI.Toolbar.ToolbarSettingCheckbox(preset.setting, preset.description(), preset.title());
|
|
232
229
|
const row = categoryFormElements.createChild('div', 'vbox lighthouse-launcher-row');
|
|
233
230
|
row.appendChild(checkbox.element);
|
|
234
231
|
checkbox.element.setAttribute('data-lh-category', preset.configID);
|
|
@@ -17,67 +17,67 @@ const {html} = Lit;
|
|
|
17
17
|
|
|
18
18
|
const UIStrings = {
|
|
19
19
|
/**
|
|
20
|
-
* @description
|
|
20
|
+
* @description Button text to cancel an operation.
|
|
21
21
|
*/
|
|
22
22
|
cancel: 'Cancel',
|
|
23
23
|
/**
|
|
24
|
-
* @description
|
|
24
|
+
* @description Status text when an operation is loading.
|
|
25
25
|
*/
|
|
26
26
|
loading: 'Loading…',
|
|
27
27
|
/**
|
|
28
|
-
* @description Status text in Lighthouse splash screen while an audit is being performed
|
|
28
|
+
* @description Status text in Lighthouse splash screen while an audit is being performed.
|
|
29
29
|
* @example {github.com} PH1
|
|
30
30
|
*/
|
|
31
31
|
auditingS: 'Auditing {PH1}',
|
|
32
32
|
/**
|
|
33
|
-
* @description Status text in Lighthouse splash screen while an audit is being performed
|
|
33
|
+
* @description Status text in Lighthouse splash screen while an audit is being performed.
|
|
34
34
|
*/
|
|
35
35
|
auditingYourWebPage: 'Auditing your web page',
|
|
36
36
|
/**
|
|
37
|
-
* @description Status text in Lighthouse splash screen while an AI assistant is performing an audit
|
|
37
|
+
* @description Status text in Lighthouse splash screen while an AI assistant is performing an audit.
|
|
38
38
|
* @example {github.com} PH1
|
|
39
39
|
*/
|
|
40
40
|
aiAuditingS: 'AI assistance is auditing {PH1}',
|
|
41
41
|
/**
|
|
42
|
-
* @description Status text in Lighthouse splash screen while an AI assistant is performing an audit
|
|
42
|
+
* @description Status text in Lighthouse splash screen while an AI assistant is performing an audit.
|
|
43
43
|
*/
|
|
44
44
|
aiAuditingYourWebPage: 'AI assistance is auditing your web page',
|
|
45
45
|
/**
|
|
46
|
-
* @description Status text in Lighthouse splash screen while an audit is being performed, and cancellation to take effect
|
|
46
|
+
* @description Status text in Lighthouse splash screen while an audit is being performed, and cancellation to take effect.
|
|
47
47
|
*/
|
|
48
48
|
cancelling: 'Cancelling…',
|
|
49
49
|
/**
|
|
50
|
-
* @description Status text in Lighthouse splash screen while preparing for an audit
|
|
50
|
+
* @description Status text in Lighthouse splash screen while preparing for an audit.
|
|
51
51
|
*/
|
|
52
52
|
lighthouseIsWarmingUp: '`Lighthouse` is warming up…',
|
|
53
53
|
/**
|
|
54
|
-
* @description Status text in Lighthouse splash screen while an audit is being performed
|
|
54
|
+
* @description Status text in Lighthouse splash screen while an audit is being performed.
|
|
55
55
|
*/
|
|
56
56
|
lighthouseIsLoadingYourPage: '`Lighthouse` is loading your page',
|
|
57
57
|
/**
|
|
58
|
-
* @description
|
|
58
|
+
* @description Status message showing a fast fact with an icon.
|
|
59
59
|
* @example {75% of global mobile users in 2016 were on 2G or 3G [Source: GSMA Mobile]} PH1
|
|
60
60
|
*/
|
|
61
61
|
fastFactMessageWithPlaceholder: '💡 {PH1}',
|
|
62
62
|
/**
|
|
63
|
-
* @description
|
|
63
|
+
* @description Error header shown when an audit encounters an error.
|
|
64
64
|
*/
|
|
65
|
-
ahSorryWeRanIntoAnError: '
|
|
65
|
+
ahSorryWeRanIntoAnError: 'We ran into an error.',
|
|
66
66
|
/**
|
|
67
|
-
* @description
|
|
67
|
+
* @description Suggestion for recovering from an audit error.
|
|
68
68
|
*/
|
|
69
69
|
tryToNavigateToTheUrlInAFresh:
|
|
70
70
|
'Try to navigate to the URL in a fresh `Chrome` profile without any other tabs or extensions open and try again.',
|
|
71
71
|
/**
|
|
72
|
-
* @description
|
|
72
|
+
* @description Instruction to report a bug if the issue is reproducible.
|
|
73
73
|
*/
|
|
74
|
-
ifThisIssueIsReproduciblePlease: 'If this issue is reproducible,
|
|
74
|
+
ifThisIssueIsReproduciblePlease: 'If this issue is reproducible, report it at the `Lighthouse` `GitHub` repo.',
|
|
75
75
|
/**
|
|
76
|
-
* @description Text in Lighthouse splash screen when loading the page for auditing
|
|
76
|
+
* @description Text in Lighthouse splash screen when loading the page for auditing.
|
|
77
77
|
*/
|
|
78
|
-
lighthouseIsLoadingThePage: 'Lighthouse is loading the page.',
|
|
78
|
+
lighthouseIsLoadingThePage: '`Lighthouse` is loading the page.',
|
|
79
79
|
/**
|
|
80
|
-
* @description Text in Lighthouse splash screen when Lighthouse is gathering information for display
|
|
80
|
+
* @description Text in Lighthouse splash screen when Lighthouse is gathering information for display.
|
|
81
81
|
*/
|
|
82
82
|
lighthouseIsGatheringInformation: '`Lighthouse` is gathering information about the page to compute your score.',
|
|
83
83
|
/**
|
|
@@ -85,75 +85,75 @@ const UIStrings = {
|
|
|
85
85
|
*/
|
|
86
86
|
almostThereLighthouseIsNow: 'Almost there! `Lighthouse` is now generating your report.',
|
|
87
87
|
/**
|
|
88
|
-
* @description Text in Lighthouse splash screen when loading the page for auditing
|
|
88
|
+
* @description Text in Lighthouse splash screen when loading the page for auditing.
|
|
89
89
|
*/
|
|
90
90
|
lighthouseIsLoadingYourPageWith:
|
|
91
91
|
'`Lighthouse` is loading your page with throttling to measure performance on a mobile device on 3G.',
|
|
92
92
|
/**
|
|
93
|
-
* @description Text in Lighthouse splash screen when loading the page for auditing
|
|
93
|
+
* @description Text in Lighthouse splash screen when loading the page for auditing.
|
|
94
94
|
*/
|
|
95
95
|
lighthouseIsLoadingYourPageWithThrottling:
|
|
96
96
|
'`Lighthouse` is loading your page with throttling to measure performance on a slow desktop on 3G.',
|
|
97
97
|
/**
|
|
98
|
-
* @description Text in Lighthouse splash screen when loading the page for auditing
|
|
98
|
+
* @description Text in Lighthouse splash screen when loading the page for auditing.
|
|
99
99
|
*/
|
|
100
100
|
lighthouseIsLoadingYourPageWithMobile: '`Lighthouse` is loading your page with mobile emulation.',
|
|
101
101
|
/**
|
|
102
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
102
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
103
103
|
*/
|
|
104
104
|
mbTakesAMinimumOfSecondsTo:
|
|
105
105
|
'1MB takes a minimum of 5 seconds to download on a typical 3G connection [Source: `WebPageTest` and `DevTools` 3G definition].',
|
|
106
106
|
/**
|
|
107
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
107
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
108
108
|
*/
|
|
109
109
|
rebuildingPinterestPagesFor:
|
|
110
110
|
'Rebuilding Pinterest pages for performance increased conversion rates by 15% [Source: `WPO Stats`]',
|
|
111
111
|
/**
|
|
112
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
112
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
113
113
|
*/
|
|
114
114
|
byReducingTheResponseSizeOfJson:
|
|
115
115
|
'By reducing the response size of JSON needed for displaying comments, Instagram saw increased impressions [Source: `WPO Stats`]',
|
|
116
116
|
/**
|
|
117
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
117
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
118
118
|
*/
|
|
119
119
|
walmartSawAIncreaseInRevenueFor:
|
|
120
120
|
'Walmart saw a 1% increase in revenue for every 100ms improvement in page load [Source: `WPO Stats`]',
|
|
121
121
|
/**
|
|
122
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
122
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
123
123
|
*/
|
|
124
124
|
ifASiteTakesSecondToBecome:
|
|
125
125
|
'If a site takes >1 second to become interactive, users lose attention, and their perception of completing the page task is broken [Source: `Google Developers Blog`]',
|
|
126
126
|
/**
|
|
127
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
127
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
128
128
|
*/
|
|
129
129
|
OfGlobalMobileUsersInWereOnGOrG: '75% of global mobile users in 2016 were on 2G or 3G [Source: `GSMA Mobile`]',
|
|
130
130
|
/**
|
|
131
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
131
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
132
132
|
*/
|
|
133
133
|
theAverageUserDeviceCostsLess:
|
|
134
134
|
'The average user device costs less than 200 USD. [Source: `International Data Corporation`]',
|
|
135
135
|
/**
|
|
136
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
136
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
137
137
|
*/
|
|
138
138
|
SecondsIsTheAverageTimeAMobile:
|
|
139
139
|
'19 seconds is the average time a mobile web page takes to load on a 3G connection [Source: `Google DoubleClick blog`]',
|
|
140
140
|
/**
|
|
141
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
141
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
142
142
|
*/
|
|
143
143
|
OfMobilePagesTakeNearlySeconds:
|
|
144
144
|
'70% of mobile pages take nearly 7 seconds for the visual content above the fold to display on the screen. [Source: `Think with Google`]',
|
|
145
145
|
/**
|
|
146
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
146
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
147
147
|
*/
|
|
148
148
|
asPageLoadTimeIncreasesFromOne:
|
|
149
149
|
'As page load time increases from one second to seven seconds, the probability of a mobile site visitor bouncing increases 113%. [Source: `Think with Google`]',
|
|
150
150
|
/**
|
|
151
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
151
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
152
152
|
*/
|
|
153
153
|
asTheNumberOfElementsOnAPage:
|
|
154
154
|
'As the number of elements on a page increases from 400 to 6,000, the probability of conversion drops 95%. [Source: `Think with Google`]',
|
|
155
155
|
/**
|
|
156
|
-
* @description Fast fact in the splash screen while Lighthouse is performing an audit
|
|
156
|
+
* @description Fast fact in the splash screen while Lighthouse is performing an audit.
|
|
157
157
|
*/
|
|
158
158
|
lighthouseOnlySimulatesMobile:
|
|
159
159
|
'`Lighthouse` only simulates mobile performance; to measure performance on a real device, try WebPageTest.org [Source: `Lighthouse` team]',
|