chrome-devtools-frontend 1.0.1376716 → 1.0.1386602
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/.stylelintrc.json +2 -1
- package/config/gni/devtools_grd_files.gni +40 -11
- package/config/gni/devtools_image_files.gni +4 -0
- package/docs/README.md +4 -0
- package/docs/contributing/issues.md +13 -10
- package/docs/get_the_code.md +4 -1
- package/docs/policy/README.md +6 -0
- package/docs/policy/slow-close.md +52 -0
- package/docs/styleguide/ux/README.md +1 -0
- package/docs/styleguide/ux/numbers.md +106 -0
- package/front_end/Images/src/animation.svg +3 -0
- package/front_end/Images/src/brush-2.svg +3 -0
- package/front_end/Images/src/cookie_off.svg +3 -0
- package/front_end/Images/src/domain.svg +3 -0
- package/front_end/core/common/Color.ts +3 -3
- package/front_end/core/common/SettingRegistration.ts +8 -1
- package/front_end/core/host/AidaClient.ts +4 -3
- package/front_end/core/host/InspectorFrontendHost.ts +4 -0
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
- package/front_end/core/host/UserMetrics.ts +0 -8
- package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
- package/front_end/core/i18n/ByteUtilities.ts +65 -0
- package/front_end/core/i18n/NumberFormatter.ts +75 -0
- package/front_end/core/i18n/i18n.ts +4 -0
- package/front_end/core/i18n/locales/af.json +1031 -887
- package/front_end/core/i18n/locales/am.json +1036 -892
- package/front_end/core/i18n/locales/ar.json +1039 -895
- package/front_end/core/i18n/locales/as.json +1032 -888
- package/front_end/core/i18n/locales/az.json +1034 -890
- package/front_end/core/i18n/locales/be.json +1031 -887
- package/front_end/core/i18n/locales/bg.json +1031 -887
- package/front_end/core/i18n/locales/bn.json +1033 -889
- package/front_end/core/i18n/locales/bs.json +1036 -892
- package/front_end/core/i18n/locales/ca.json +1031 -887
- package/front_end/core/i18n/locales/cs.json +1030 -886
- package/front_end/core/i18n/locales/cy.json +1032 -888
- package/front_end/core/i18n/locales/da.json +1031 -887
- package/front_end/core/i18n/locales/de.json +1033 -889
- package/front_end/core/i18n/locales/el.json +1031 -887
- package/front_end/core/i18n/locales/en-GB.json +1033 -889
- package/front_end/core/i18n/locales/es-419.json +1029 -885
- package/front_end/core/i18n/locales/es.json +1032 -888
- package/front_end/core/i18n/locales/et.json +1033 -889
- package/front_end/core/i18n/locales/eu.json +1031 -887
- package/front_end/core/i18n/locales/fa.json +1035 -891
- package/front_end/core/i18n/locales/fi.json +1035 -891
- package/front_end/core/i18n/locales/fil.json +1034 -890
- package/front_end/core/i18n/locales/fr-CA.json +1031 -887
- package/front_end/core/i18n/locales/fr.json +1049 -905
- package/front_end/core/i18n/locales/gl.json +1032 -888
- package/front_end/core/i18n/locales/gu.json +1035 -891
- package/front_end/core/i18n/locales/he.json +1031 -887
- package/front_end/core/i18n/locales/hi.json +1034 -890
- package/front_end/core/i18n/locales/hr.json +1031 -887
- package/front_end/core/i18n/locales/hu.json +1033 -889
- package/front_end/core/i18n/locales/hy.json +1046 -902
- package/front_end/core/i18n/locales/id.json +1023 -879
- package/front_end/core/i18n/locales/is.json +1032 -888
- package/front_end/core/i18n/locales/it.json +1031 -887
- package/front_end/core/i18n/locales/ja.json +1042 -898
- package/front_end/core/i18n/locales/ka.json +1034 -890
- package/front_end/core/i18n/locales/kk.json +1035 -891
- package/front_end/core/i18n/locales/km.json +1035 -891
- package/front_end/core/i18n/locales/kn.json +1036 -892
- package/front_end/core/i18n/locales/ko.json +1031 -887
- package/front_end/core/i18n/locales/ky.json +1032 -888
- package/front_end/core/i18n/locales/lo.json +1030 -886
- package/front_end/core/i18n/locales/lt.json +1032 -888
- package/front_end/core/i18n/locales/lv.json +1032 -888
- package/front_end/core/i18n/locales/mk.json +1032 -888
- package/front_end/core/i18n/locales/ml.json +1033 -889
- package/front_end/core/i18n/locales/mn.json +1034 -890
- package/front_end/core/i18n/locales/mr.json +1035 -891
- package/front_end/core/i18n/locales/ms.json +1033 -889
- package/front_end/core/i18n/locales/my.json +1033 -889
- package/front_end/core/i18n/locales/ne.json +1036 -892
- package/front_end/core/i18n/locales/nl.json +1033 -889
- package/front_end/core/i18n/locales/no.json +1036 -892
- package/front_end/core/i18n/locales/or.json +1043 -899
- package/front_end/core/i18n/locales/pa.json +1030 -886
- package/front_end/core/i18n/locales/pl.json +1032 -888
- package/front_end/core/i18n/locales/pt-PT.json +1033 -889
- package/front_end/core/i18n/locales/pt.json +1033 -889
- package/front_end/core/i18n/locales/ro.json +1029 -885
- package/front_end/core/i18n/locales/ru.json +1026 -882
- package/front_end/core/i18n/locales/si.json +1031 -887
- package/front_end/core/i18n/locales/sk.json +1033 -889
- package/front_end/core/i18n/locales/sl.json +1031 -887
- package/front_end/core/i18n/locales/sq.json +1061 -917
- package/front_end/core/i18n/locales/sr-Latn.json +1033 -889
- package/front_end/core/i18n/locales/sr.json +1033 -889
- package/front_end/core/i18n/locales/sv.json +1031 -887
- package/front_end/core/i18n/locales/sw.json +1033 -889
- package/front_end/core/i18n/locales/ta.json +1058 -914
- package/front_end/core/i18n/locales/te.json +1037 -893
- package/front_end/core/i18n/locales/th.json +1032 -888
- package/front_end/core/i18n/locales/tr.json +1031 -887
- package/front_end/core/i18n/locales/uk.json +1030 -886
- package/front_end/core/i18n/locales/ur.json +1031 -887
- package/front_end/core/i18n/locales/uz.json +1023 -879
- package/front_end/core/i18n/locales/vi.json +1032 -888
- package/front_end/core/i18n/locales/zh-HK.json +1032 -888
- package/front_end/core/i18n/locales/zh-TW.json +1032 -888
- package/front_end/core/i18n/locales/zh.json +1033 -889
- package/front_end/core/i18n/locales/zu.json +1032 -888
- package/front_end/core/i18n/time-utilities.test.ts +20 -2
- package/front_end/core/i18n/time-utilities.ts +125 -86
- package/front_end/core/platform/NumberUtilities.test.ts +3 -26
- package/front_end/core/platform/NumberUtilities.ts +0 -20
- package/front_end/core/root/Runtime.ts +6 -4
- package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
- package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
- package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
- package/front_end/core/sdk/CSSModel.ts +18 -0
- package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
- package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
- package/front_end/core/sdk/NetworkManager.test.ts +50 -0
- package/front_end/core/sdk/NetworkManager.ts +6 -4
- package/front_end/core/sdk/SourceMap.test.ts +5 -5
- package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +7 -2
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
- package/front_end/core/sdk/SourceMapScopes.test.ts +112 -45
- package/front_end/core/sdk/SourceMapScopes.ts +39 -14
- package/front_end/core/sdk/SourceMapScopesInfo.test.ts +51 -50
- package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
- package/front_end/core/sdk/sdk-meta.ts +35 -0
- package/front_end/devtools_compatibility.js +0 -1
- package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
- package/front_end/entrypoints/inspector_main/renderingOptions.css +1 -1
- package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +13 -3
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +23 -1
- package/front_end/entrypoints/main/MainImpl.ts +0 -5
- package/front_end/generated/ARIAProperties.js +4 -0
- package/front_end/generated/Deprecation.ts +0 -15
- package/front_end/generated/InspectorBackendCommands.js +9 -7
- package/front_end/generated/SupportedCSSProperties.js +14 -41
- package/front_end/generated/protocol-mapping.d.ts +15 -1
- package/front_end/generated/protocol-proxy-api.d.ts +14 -1
- package/front_end/generated/protocol.ts +27 -2
- package/front_end/models/bindings/IgnoreListManager.ts +25 -2
- package/front_end/models/crux-manager/CrUXManager.test.ts +25 -6
- package/front_end/models/crux-manager/CrUXManager.ts +23 -4
- package/front_end/models/extensions/ExtensionAPI.ts +9 -1
- package/front_end/models/extensions/ExtensionServer.test.ts +14 -0
- package/front_end/models/extensions/ExtensionServer.ts +28 -15
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
- package/front_end/models/issues_manager/CookieIssue.ts +79 -2
- package/front_end/models/issues_manager/IssuesManager.ts +1 -1
- package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
- package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +22 -25
- package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +20 -10
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
- package/front_end/models/persistence/editFileSystemView.css +38 -15
- package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
- package/front_end/models/timeline_model/timeline_model.ts +0 -6
- package/front_end/models/trace/Processor.test.ts +18 -17
- package/front_end/models/trace/Processor.ts +10 -14
- package/front_end/models/trace/README.md +0 -1
- package/front_end/models/trace/extras/Metadata.test.ts +35 -2
- package/front_end/models/trace/extras/Metadata.ts +24 -5
- package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
- package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
- package/front_end/models/trace/extras/TraceFilter.ts +62 -0
- package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
- package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +86 -70
- package/front_end/models/trace/extras/URLForEntry.ts +6 -5
- package/front_end/models/trace/extras/extras.ts +3 -0
- package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
- package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
- package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
- package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +15 -0
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
- package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
- package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
- package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
- package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
- package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
- package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
- package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
- package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
- package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
- package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
- package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
- package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
- package/front_end/models/trace/handlers/Threads.test.ts +1 -2
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
- package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
- package/front_end/models/trace/handlers/types.ts +1 -8
- package/front_end/models/trace/helpers/Timing.ts +8 -0
- package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
- package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +32 -5
- package/front_end/models/trace/insights/Common.ts +5 -55
- package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
- package/front_end/models/trace/insights/DocumentLatency.ts +39 -6
- package/front_end/models/trace/insights/FontDisplay.ts +31 -5
- package/front_end/models/trace/insights/ImageDelivery.test.ts +98 -0
- package/front_end/models/trace/insights/ImageDelivery.ts +183 -0
- package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +32 -6
- package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
- package/front_end/models/trace/insights/LCPDiscovery.ts +122 -0
- package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
- package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +59 -38
- package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +5 -3
- package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +41 -28
- package/front_end/models/trace/insights/SlowCSSSelector.ts +33 -5
- package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
- package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +32 -5
- package/front_end/models/trace/insights/Viewport.test.ts +1 -1
- package/front_end/models/trace/insights/Viewport.ts +40 -9
- package/front_end/models/trace/insights/insights.ts +1 -1
- package/front_end/models/trace/insights/types.ts +22 -9
- package/front_end/models/trace/types/File.ts +7 -0
- package/front_end/models/trace/types/TraceEvents.ts +60 -24
- package/front_end/panels/animation/AnimationTimeline.ts +2 -4
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -5
- package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -21
- package/front_end/panels/application/IndexedDBViews.ts +4 -1
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +4 -1
- package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
- package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
- package/front_end/panels/application/StorageView.test.ts +1 -1
- package/front_end/panels/application/StorageView.ts +3 -3
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
- package/front_end/panels/application/resourcesSidebar.css +1 -1
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +35 -32
- package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/console/ConsoleViewMessage.test.ts +25 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +23 -0
- package/front_end/panels/coverage/CoverageListView.ts +1 -1
- package/front_end/panels/coverage/CoverageView.ts +3 -3
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
- package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +85 -30
- package/front_end/panels/elements/ElementStatePaneWidget.ts +49 -26
- package/front_end/panels/elements/ElementsSidebarPane.ts +3 -3
- package/front_end/panels/elements/ElementsTreeElement.ts +25 -11
- package/front_end/panels/elements/LayersWidget.ts +1 -1
- package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
- package/front_end/panels/elements/PropertyMatchers.test.ts +7 -0
- package/front_end/panels/elements/PropertyMatchers.ts +6 -0
- package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
- package/front_end/panels/elements/classesPaneWidget.css +1 -1
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
- package/front_end/panels/emulation/DeviceModeView.ts +1 -1
- package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
- package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
- package/front_end/panels/freestyler/AiAgent.test.ts +376 -50
- package/front_end/panels/freestyler/AiAgent.ts +251 -144
- package/front_end/panels/freestyler/AiHistoryStorage.test.ts +159 -0
- package/front_end/panels/freestyler/AiHistoryStorage.ts +73 -0
- package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +113 -38
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +56 -34
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +29 -20
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +39 -18
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +44 -42
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +51 -22
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +210 -28
- package/front_end/panels/freestyler/FreestylerAgent.ts +65 -26
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +610 -39
- package/front_end/panels/freestyler/FreestylerPanel.ts +414 -255
- package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +431 -280
- package/front_end/panels/freestyler/components/UserActionRow.ts +157 -47
- package/front_end/panels/freestyler/components/freestylerChatUi.css +90 -35
- package/front_end/panels/freestyler/components/userActionRow.css +41 -67
- package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
- package/front_end/panels/freestyler/freestyler.ts +1 -0
- package/front_end/panels/issues/IssueAggregator.test.ts +50 -0
- package/front_end/panels/issues/IssueAggregator.ts +10 -10
- package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
- package/front_end/panels/issues/issuesTree.css +1 -1
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +2 -3
- package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +6 -6
- package/front_end/panels/layers/LayersPanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
- package/front_end/panels/lighthouse/lighthouseStartView.css +1 -1
- package/front_end/panels/media/TickingFlameChart.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
- package/front_end/panels/network/BinaryResourceView.ts +6 -7
- package/front_end/panels/network/BlockedURLsPane.ts +1 -1
- package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +4 -3
- package/front_end/panels/network/NetworkLogView.test.ts +1 -1
- package/front_end/panels/network/NetworkLogView.ts +7 -8
- package/front_end/panels/network/NetworkPanel.ts +40 -32
- package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
- package/front_end/panels/network/RequestTimingView.test.ts +35 -1
- package/front_end/panels/network/RequestTimingView.ts +96 -0
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
- package/front_end/panels/network/networkTimingTable.css +2 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
- package/front_end/panels/profiler/HeapProfileView.ts +10 -10
- package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
- package/front_end/panels/profiler/HeapTimelineOverview.ts +13 -13
- package/front_end/panels/profiler/IsolateSelector.ts +4 -5
- package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +4 -4
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
- package/front_end/panels/profiler/ProfileView.ts +3 -3
- package/front_end/panels/profiler/profileLauncherView.css +1 -1
- package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
- package/front_end/panels/recorder/components/RecordingView.ts +2 -2
- package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/panels/recorder/recorderController.css +1 -5
- package/front_end/panels/security/CookieControlsTreeElement.ts +18 -0
- package/front_end/panels/security/CookieControlsView.test.ts +29 -0
- package/front_end/panels/security/CookieControlsView.ts +265 -0
- package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
- package/front_end/panels/security/CookieReportView.test.ts +157 -0
- package/front_end/panels/security/CookieReportView.ts +316 -0
- package/front_end/panels/security/SecurityPanel.ts +12 -4
- package/front_end/panels/security/SecurityPanelSidebar.ts +6 -1
- package/front_end/panels/security/cookieControlsView.css +101 -0
- package/front_end/panels/security/cookieReportView.css +69 -0
- package/front_end/panels/security/security.ts +4 -0
- package/front_end/panels/security/sidebar.css +2 -3
- package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
- package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
- package/front_end/panels/settings/AISettingsTab.ts +6 -15
- package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -3
- package/front_end/panels/settings/SettingsScreen.ts +64 -55
- package/front_end/panels/settings/aiSettingsTab.css +3 -14
- package/front_end/panels/settings/components/SyncSection.ts +1 -2
- package/front_end/panels/settings/components/syncSection.css +0 -10
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +4 -2
- package/front_end/panels/settings/keybindsSettingsTab.css +12 -10
- package/front_end/panels/settings/settings-meta.ts +3 -1
- package/front_end/panels/settings/settingsScreen.css +37 -125
- package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
- package/front_end/panels/sources/NavigatorView.ts +12 -13
- package/front_end/panels/sources/navigatorTree.css +1 -1
- package/front_end/panels/sources/sourcesPanel.css +2 -2
- package/front_end/panels/timeline/ActiveFilters.ts +3 -4
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +2 -9
- package/front_end/panels/timeline/AppenderUtils.ts +1 -1
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +38 -41
- package/front_end/panels/timeline/CountersGraph.ts +2 -4
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +4 -13
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +3 -4
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +6 -12
- package/front_end/panels/timeline/README.md +2 -1
- package/front_end/panels/timeline/ServerTimingsTrackAppender.ts +1 -10
- package/front_end/panels/timeline/ThreadAppender.ts +9 -12
- package/front_end/panels/timeline/TimelineController.ts +14 -4
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +3 -2
- package/front_end/panels/timeline/TimelineDetailsView.ts +18 -17
- package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
- package/front_end/panels/timeline/TimelineFilters.ts +3 -4
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +58 -46
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -3
- package/front_end/panels/timeline/TimelineFlameChartView.ts +54 -26
- package/front_end/panels/timeline/TimelineHistoryManager.test.ts +20 -15
- package/front_end/panels/timeline/TimelineHistoryManager.ts +46 -58
- package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
- package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
- package/front_end/panels/timeline/TimelineLoader.ts +19 -4
- package/front_end/panels/timeline/TimelineMiniMap.ts +12 -2
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +161 -32
- package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
- package/front_end/panels/timeline/TimelineTreeView.ts +98 -54
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +56 -14
- package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -13
- package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +1 -0
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +6 -1
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +15 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +27 -44
- package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.ts +46 -0
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
- package/front_end/panels/timeline/components/Sidebar.ts +1 -4
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +1 -1
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +1 -1
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +23 -35
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +53 -41
- package/front_end/panels/timeline/components/TimelineSummary.test.ts +75 -0
- package/front_end/panels/timeline/components/TimelineSummary.ts +101 -0
- package/front_end/panels/timeline/components/Utils.test.ts +49 -0
- package/front_end/panels/timeline/components/Utils.ts +2 -2
- package/front_end/panels/timeline/components/components.ts +2 -0
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +84 -0
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +291 -0
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +24 -62
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +43 -72
- package/front_end/panels/timeline/components/insights/EventRef.ts +70 -2
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +37 -61
- package/front_end/panels/timeline/components/insights/Helpers.ts +5 -212
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +142 -0
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +34 -69
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +52 -103
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +31 -92
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +38 -64
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -198
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +59 -95
- package/front_end/panels/timeline/components/insights/Table.ts +6 -3
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +51 -78
- package/front_end/panels/timeline/components/insights/Viewport.ts +27 -49
- package/front_end/panels/timeline/components/insights/{sidebarInsight.css → baseInsightComponent.css} +9 -9
- package/front_end/panels/timeline/components/insights/insights.ts +4 -0
- package/front_end/panels/timeline/components/insights/types.ts +0 -7
- package/front_end/panels/timeline/components/liveMetricsView.css +10 -18
- package/front_end/panels/timeline/components/metricCard.css +11 -0
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
- package/front_end/panels/timeline/components/timelineSummary.css +67 -0
- package/front_end/panels/timeline/docs/flame_chart_migration.md +1 -1
- package/front_end/panels/timeline/fixtures/traces/README.md +4 -0
- package/front_end/panels/timeline/fixtures/traces/image-delivery.json.gz +0 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +35 -12
- package/front_end/panels/timeline/timeline-meta.ts +1 -1
- package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
- package/front_end/panels/timeline/timelineFlamechartPopover.css +14 -4
- package/front_end/panels/timeline/timelineHistoryManager.css +7 -3
- package/front_end/panels/timeline/timelinePanel.css +0 -1
- package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +5 -5
- package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +5 -6
- package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +11 -2
- package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +0 -9
- package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +37 -44
- package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +44 -30
- package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
- package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
- package/front_end/panels/timeline/utils/EntryName.ts +1 -2
- package/front_end/panels/timeline/utils/Helpers.ts +19 -0
- package/front_end/panels/timeline/utils/IgnoreList.test.ts +52 -0
- package/front_end/panels/timeline/utils/IgnoreList.ts +68 -7
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +2 -0
- package/front_end/panels/webauthn/webauthnPane.css +1 -1
- package/front_end/panels/whats_new/ReleaseNote.test.ts +90 -0
- package/front_end/panels/whats_new/ReleaseNoteText.ts +52 -0
- package/front_end/panels/whats_new/ReleaseNoteView.ts +157 -0
- package/front_end/panels/whats_new/WhatsNewImpl.ts +102 -0
- package/front_end/panels/whats_new/releaseNoteView.css +121 -0
- package/front_end/panels/whats_new/resources/WNDT.md +6 -0
- package/front_end/panels/whats_new/resources/whatsnew.avif +0 -0
- package/front_end/panels/whats_new/whats_new-meta.ts +142 -0
- package/front_end/panels/whats_new/whats_new.ts +13 -0
- package/front_end/services/puppeteer/PuppeteerConnection.ts +4 -3
- package/front_end/testing/EnvironmentHelpers.ts +6 -20
- package/front_end/testing/InsightHelpers.ts +4 -4
- package/front_end/testing/SourceMapEncoder.ts +27 -11
- package/front_end/testing/TraceHelpers.ts +3 -2
- package/front_end/testing/TraceLoader.ts +6 -2
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1380 -1369
- package/front_end/third_party/lighthouse/locales/ar-XB.json +88 -85
- package/front_end/third_party/lighthouse/locales/ar.json +98 -95
- package/front_end/third_party/lighthouse/locales/bg.json +88 -85
- package/front_end/third_party/lighthouse/locales/ca.json +91 -88
- package/front_end/third_party/lighthouse/locales/cs.json +91 -88
- package/front_end/third_party/lighthouse/locales/da.json +94 -91
- package/front_end/third_party/lighthouse/locales/de.json +92 -89
- package/front_end/third_party/lighthouse/locales/el.json +92 -89
- package/front_end/third_party/lighthouse/locales/en-GB.json +89 -86
- package/front_end/third_party/lighthouse/locales/en-US.json +23 -20
- package/front_end/third_party/lighthouse/locales/en-XA.json +88 -85
- package/front_end/third_party/lighthouse/locales/en-XL.json +23 -20
- package/front_end/third_party/lighthouse/locales/es-419.json +92 -89
- package/front_end/third_party/lighthouse/locales/es.json +91 -88
- package/front_end/third_party/lighthouse/locales/fi.json +92 -89
- package/front_end/third_party/lighthouse/locales/fil.json +93 -90
- package/front_end/third_party/lighthouse/locales/fr.json +94 -91
- package/front_end/third_party/lighthouse/locales/he.json +97 -94
- package/front_end/third_party/lighthouse/locales/hi.json +92 -89
- package/front_end/third_party/lighthouse/locales/hr.json +90 -87
- package/front_end/third_party/lighthouse/locales/hu.json +90 -87
- package/front_end/third_party/lighthouse/locales/id.json +91 -88
- package/front_end/third_party/lighthouse/locales/it.json +90 -87
- package/front_end/third_party/lighthouse/locales/ja.json +90 -87
- package/front_end/third_party/lighthouse/locales/ko.json +90 -87
- package/front_end/third_party/lighthouse/locales/lt.json +90 -87
- package/front_end/third_party/lighthouse/locales/lv.json +91 -88
- package/front_end/third_party/lighthouse/locales/nl.json +90 -87
- package/front_end/third_party/lighthouse/locales/no.json +92 -89
- package/front_end/third_party/lighthouse/locales/pl.json +90 -87
- package/front_end/third_party/lighthouse/locales/pt-PT.json +111 -108
- package/front_end/third_party/lighthouse/locales/pt.json +97 -94
- package/front_end/third_party/lighthouse/locales/ro.json +94 -91
- package/front_end/third_party/lighthouse/locales/ru.json +93 -90
- package/front_end/third_party/lighthouse/locales/sk.json +93 -90
- package/front_end/third_party/lighthouse/locales/sl.json +91 -88
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +91 -88
- package/front_end/third_party/lighthouse/locales/sr.json +91 -88
- package/front_end/third_party/lighthouse/locales/sv.json +92 -89
- package/front_end/third_party/lighthouse/locales/ta.json +101 -98
- package/front_end/third_party/lighthouse/locales/te.json +92 -89
- package/front_end/third_party/lighthouse/locales/th.json +95 -92
- package/front_end/third_party/lighthouse/locales/tr.json +91 -88
- package/front_end/third_party/lighthouse/locales/uk.json +93 -90
- package/front_end/third_party/lighthouse/locales/vi.json +95 -92
- package/front_end/third_party/lighthouse/locales/zh-HK.json +92 -89
- package/front_end/third_party/lighthouse/locales/zh-TW.json +98 -95
- package/front_end/third_party/lighthouse/locales/zh.json +96 -93
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +10 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +10 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +24 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts +30 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +100 -10
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +291 -143
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +10 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +10 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +24 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts +30 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +100 -10
- package/front_end/third_party/puppeteer/package/package.json +5 -5
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +10 -3
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +3 -1
- package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +5 -0
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -3
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +3 -5
- package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +34 -17
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +5 -0
- package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
- package/front_end/third_party/puppeteer/package/src/common/DownloadBehavior.ts +31 -0
- package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
- package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +2 -0
- package/front_end/ui/components/buttons/Button.test.ts +14 -0
- package/front_end/ui/components/buttons/Button.ts +27 -4
- package/front_end/ui/components/cards/card.css +7 -4
- package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +4 -1
- package/front_end/ui/components/dialogs/ButtonDialog.test.ts +78 -0
- package/front_end/ui/components/dialogs/ButtonDialog.ts +131 -0
- package/front_end/ui/components/dialogs/Dialog.test.ts +43 -0
- package/front_end/ui/components/dialogs/Dialog.ts +63 -3
- package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +15 -1
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +33 -23
- package/front_end/ui/components/dialogs/buttonDialog.css +9 -0
- package/front_end/ui/components/dialogs/dialog.css +15 -4
- package/front_end/ui/components/dialogs/dialogs.ts +2 -0
- package/front_end/ui/components/dialogs/shortcutDialog.css +58 -38
- package/front_end/ui/components/docs/dialog/button_dialog.html +28 -0
- package/front_end/ui/components/docs/dialog/button_dialog.ts +29 -0
- package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
- package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
- package/front_end/ui/components/docs/performance_panel/basic.ts +1 -1
- package/front_end/ui/components/docs/performance_panel/timeline_history_manager.ts +6 -4
- package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
- package/front_end/ui/components/floating_button/FloatingButton.ts +3 -2
- package/front_end/ui/components/icon_button/fileSourceIcon.css +7 -3
- package/front_end/ui/components/issue_counter/IssueCounter.ts +15 -2
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
- package/front_end/ui/components/markdown_view/MarkdownView.ts +92 -14
- package/front_end/ui/components/markdown_view/markdownView.css +15 -0
- package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +24 -18
- package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
- package/front_end/ui/components/switch/SwitchImpl.ts +2 -2
- package/front_end/ui/legacy/ContextMenu.ts +2 -2
- package/front_end/ui/legacy/Infobar.ts +6 -0
- package/front_end/ui/legacy/InplaceEditor.ts +18 -14
- package/front_end/ui/legacy/InspectorView.ts +40 -0
- package/front_end/ui/legacy/ListWidget.ts +4 -2
- package/front_end/ui/legacy/TabbedPane.ts +0 -14
- package/front_end/ui/legacy/ThrottledWidget.ts +2 -2
- package/front_end/ui/legacy/Toolbar.ts +3 -3
- package/front_end/ui/legacy/UIUtils.ts +8 -13
- package/front_end/ui/legacy/Widget.ts +32 -0
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +6 -9
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +43 -38
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +21 -12
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +37 -47
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +23 -9
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +102 -43
- package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -4
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
- package/front_end/ui/legacy/components/utils/jsUtils.css +8 -0
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/listWidget.css +4 -1
- package/front_end/ui/legacy/reportView.css +1 -1
- package/front_end/ui/legacy/textPrompt.css +1 -1
- package/front_end/ui/legacy/toolbar.css +7 -11
- package/front_end/ui/legacy/treeoutline.css +3 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +186 -1
- package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
- package/front_end/ui/visual_logging/LoggingDriver.test.ts +27 -1
- package/front_end/ui/visual_logging/LoggingDriver.ts +7 -4
- package/package.json +8 -8
- package/scripts/build/ninja/bundle.gni +3 -3
- package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
- package/scripts/build/wasm-as.py +1 -1
- package/scripts/devtools_paths.py +8 -4
- package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
- package/scripts/freestyler/auto_freestyler.js +12 -4
- package/scripts/freestyler/to_tsv.mjs +40 -0
- package/scripts/tools/update_goldens.py +11 -13
- package/scripts/tools/update_goldens_v2.py +1 -1
- package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
- package/front_end/panels/timeline/components/insights/SidebarInsight.test.ts +0 -72
- package/front_end/ui/components/docs/two_states_counter/basic.html +0 -27
- package/front_end/ui/components/docs/two_states_counter/basic.ts +0 -45
- package/front_end/ui/components/two_states_counter/TwoStatesCounter.test.ts +0 -73
- package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +0 -104
- package/front_end/ui/components/two_states_counter/twoStatesCounter.css +0 -37
- package/front_end/ui/components/two_states_counter/two_states_counter.ts +0 -9
- /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -707,6 +707,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
707
707
|
'url-DESKTOP': null,
|
708
708
|
'url-PHONE': null,
|
709
709
|
'url-TABLET': null,
|
710
|
+
warnings: [],
|
710
711
|
};
|
711
712
|
|
712
713
|
sinon.stub(CrUXManager.CrUXManager.instance(), 'getFieldDataForCurrentPage').callsFake(async () => mockFieldData);
|
@@ -729,7 +730,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
729
730
|
assert.match(fieldMessage!.innerText, /See how your local metrics compare/);
|
730
731
|
|
731
732
|
const title = getLiveMetricsTitle(view);
|
732
|
-
assert.strictEqual(title.innerText, 'Local metrics
|
733
|
+
assert.strictEqual(title.innerText, 'Local metrics');
|
733
734
|
});
|
734
735
|
|
735
736
|
it('should show when crux is enabled', async () => {
|
@@ -760,7 +761,7 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
760
761
|
assert.match(fieldMessage!.innerText, /Jan.+2024/);
|
761
762
|
|
762
763
|
const title = getLiveMetricsTitle(view);
|
763
|
-
assert.strictEqual(title.innerText, 'Local and field metrics
|
764
|
+
assert.strictEqual(title.innerText, 'Local and field metrics');
|
764
765
|
});
|
765
766
|
|
766
767
|
it('should show empty values when crux is enabled but there is no field data', async () => {
|
@@ -784,7 +785,18 @@ describeWithMockConnection('LiveMetricsView', () => {
|
|
784
785
|
assert.match(fieldMessage!.textContent!, /Not enough data/);
|
785
786
|
|
786
787
|
const title = getLiveMetricsTitle(view);
|
787
|
-
assert.strictEqual(title.innerText, 'Local and field metrics
|
788
|
+
assert.strictEqual(title.innerText, 'Local and field metrics');
|
789
|
+
});
|
790
|
+
|
791
|
+
it('should display any warning from crux', async () => {
|
792
|
+
mockFieldData.warnings.push('Warning from crux');
|
793
|
+
|
794
|
+
const view = renderLiveMetrics();
|
795
|
+
|
796
|
+
await coordinator.done();
|
797
|
+
|
798
|
+
const fieldMessage = getFieldMessage(view);
|
799
|
+
assert.match(fieldMessage!.textContent!, /Warning from crux/);
|
788
800
|
});
|
789
801
|
|
790
802
|
it('should make initial request on render when crux is enabled', async () => {
|
@@ -10,7 +10,6 @@ import '../../../ui/components/menus/menus.js';
|
|
10
10
|
import './MetricCard.js';
|
11
11
|
|
12
12
|
import * as Common from '../../../core/common/common.js';
|
13
|
-
import * as Host from '../../../core/host/host.js';
|
14
13
|
import * as i18n from '../../../core/i18n/i18n.js';
|
15
14
|
import type * as Platform from '../../../core/platform/platform.js';
|
16
15
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
@@ -27,6 +26,7 @@ import * as UI from '../../../ui/legacy/legacy.js';
|
|
27
26
|
import * as LitHtml from '../../../ui/lit-html/lit-html.js';
|
28
27
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
29
28
|
import * as MobileThrottling from '../../mobile_throttling/mobile_throttling.js';
|
29
|
+
import {md} from '../utils/Helpers.js';
|
30
30
|
|
31
31
|
import liveMetricsViewStyles from './liveMetricsView.css.js';
|
32
32
|
import type {MetricCardData} from './MetricCard.js';
|
@@ -167,19 +167,10 @@ const UIStrings = {
|
|
167
167
|
*/
|
168
168
|
percentDevices: '{PH1}% mobile, {PH2}% desktop',
|
169
169
|
/**
|
170
|
-
* @description Text block explaining how to simulate different mobile and desktop devices.
|
171
|
-
* @example {simulate different devices} PH1
|
170
|
+
* @description Text block explaining how to simulate different mobile and desktop devices.
|
172
171
|
*/
|
173
|
-
useDeviceToolbar:
|
174
|
-
|
175
|
-
* @description Text for a link that is inserted inside a larger text block that explains how to simulate different mobile and desktop devices.
|
176
|
-
*/
|
177
|
-
simulateDifferentDevices: 'simulate different devices',
|
178
|
-
/**
|
179
|
-
* @description Tooltip text that explains how disabling the network cache can simulate the network connections of users that are visiting a page for the first time.
|
180
|
-
*/
|
181
|
-
networkCacheExplanation:
|
182
|
-
'Disabling the network cache will simulate a network experience similar to a first time visitor.',
|
172
|
+
useDeviceToolbar:
|
173
|
+
'Use the [device toolbar](https://developer.chrome.com/docs/devtools/device-mode) and configure throttling to simulate real user environments and identify more performance issues.',
|
183
174
|
/**
|
184
175
|
* @description Text label for a checkbox that controls if the network cache is disabled.
|
185
176
|
*/
|
@@ -220,11 +211,15 @@ const UIStrings = {
|
|
220
211
|
* @example {Chrome UX Report} PH1
|
221
212
|
*/
|
222
213
|
seeHowYourLocalMetricsCompare: 'See how your local metrics compare to real user data in the {PH1}.',
|
214
|
+
/**
|
215
|
+
* @description Text for a link that goes to more documentation about local and field data. "Local" refers to performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
|
216
|
+
*/
|
217
|
+
localFieldLearnMoreLink: 'Learn more about local and field data',
|
223
218
|
/**
|
224
219
|
* @description Tooltip text for a link that goes to documentation explaining the difference between local and field metrics. "Local metrics" are performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
|
225
220
|
*/
|
226
|
-
|
227
|
-
'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices.
|
221
|
+
localFieldLearnMoreTooltip:
|
222
|
+
'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices.',
|
228
223
|
/**
|
229
224
|
* @description Tooltip text explaining that this user interaction was ignored when calculating the Interaction to Next Paint (INP) metric because the interaction delay fell beyond the 98th percentile of interaction delays on this page. "INP" is an acronym and should not be translated.
|
230
225
|
*/
|
@@ -234,10 +229,6 @@ const UIStrings = {
|
|
234
229
|
* @description Tooltip for a button that will remove everything from the currently selected log.
|
235
230
|
*/
|
236
231
|
clearCurrentLog: 'Clear the current log',
|
237
|
-
/**
|
238
|
-
* @description Title for a section that contains more information about real user environments. This message is meant to prompt the user to understand the conditions experienced by real users.
|
239
|
-
*/
|
240
|
-
realUserEnvironments: 'Real user environments',
|
241
232
|
/**
|
242
233
|
* @description Title for a page load phase that measures the time between when the page load starts and the time when the first byte of the initial document is downloaded.
|
243
234
|
*/
|
@@ -627,10 +618,6 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
627
618
|
#renderRecordingSettings(): LitHtml.LitTemplate {
|
628
619
|
const fieldEnabled = CrUXManager.CrUXManager.instance().getConfigSetting().get().enabled;
|
629
620
|
|
630
|
-
const deviceLinkEl = UI.XLink.XLink.create(
|
631
|
-
'https://developer.chrome.com/docs/devtools/device-mode', i18nString(UIStrings.simulateDifferentDevices));
|
632
|
-
const deviceMessage = i18n.i18n.getFormatLocalizedString(str_, UIStrings.useDeviceToolbar, {PH1: deviceLinkEl});
|
633
|
-
|
634
621
|
const deviceRecEl = document.createElement('span');
|
635
622
|
deviceRecEl.classList.add('environment-rec');
|
636
623
|
deviceRecEl.textContent = this.#getDeviceRec() || i18nString(UIStrings.notEnoughData);
|
@@ -642,9 +629,8 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
642
629
|
// clang-format off
|
643
630
|
return html`
|
644
631
|
<h3 class="card-title">${i18nString(UIStrings.environmentSettings)}</h3>
|
645
|
-
<div class="device-toolbar-description">${
|
632
|
+
<div class="device-toolbar-description">${md(i18nString(UIStrings.useDeviceToolbar))}</div>
|
646
633
|
${fieldEnabled ? html`
|
647
|
-
<div class="environment-recs-title">${i18nString(UIStrings.realUserEnvironments)}</div>
|
648
634
|
<ul class="environment-recs-list">
|
649
635
|
<li>${i18n.i18n.getFormatLocalizedString(str_, UIStrings.device, {PH1: deviceRecEl})}</li>
|
650
636
|
<li>${i18n.i18n.getFormatLocalizedString(str_, UIStrings.network, {PH1: networkRecEl})}</li>
|
@@ -664,12 +650,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
664
650
|
textOverride: i18nString(UIStrings.disableNetworkCache),
|
665
651
|
} as Settings.SettingCheckbox.SettingCheckboxData}
|
666
652
|
></setting-checkbox>
|
667
|
-
|
668
|
-
class="setting-hint"
|
669
|
-
name="help"
|
670
|
-
title=${i18nString(UIStrings.networkCacheExplanation)}
|
671
|
-
></devtools-icon>
|
672
|
-
</div>
|
653
|
+
</div>
|
673
654
|
`;
|
674
655
|
// clang-format on
|
675
656
|
}
|
@@ -879,8 +860,15 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
879
860
|
PH1: dateEl,
|
880
861
|
});
|
881
862
|
|
863
|
+
const warnings = this.#cruxPageResult?.warnings || [];
|
864
|
+
|
882
865
|
return html`
|
883
|
-
<div class="field-data-message"
|
866
|
+
<div class="field-data-message">
|
867
|
+
<div>${message}</div>
|
868
|
+
${warnings.map(warning => html`
|
869
|
+
<div class="field-data-warning">${warning}</div>
|
870
|
+
`)}
|
871
|
+
</div>
|
884
872
|
`;
|
885
873
|
}
|
886
874
|
|
@@ -1106,18 +1094,8 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
1106
1094
|
const output = html`
|
1107
1095
|
<div class="container">
|
1108
1096
|
<div class="live-metrics-view">
|
1109
|
-
<main class="live-metrics"
|
1110
|
-
|
1111
|
-
<h2 class="section-title">
|
1112
|
-
${liveMetricsTitle}
|
1113
|
-
<devtools-button
|
1114
|
-
class="section-title-help"
|
1115
|
-
title=${i18nString(UIStrings.learnMoreAboutMetrics)}
|
1116
|
-
.iconName=${'help'}
|
1117
|
-
.variant=${Buttons.Button.Variant.ICON}
|
1118
|
-
@click=${() => Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(helpLink)}
|
1119
|
-
></devtools-button>
|
1120
|
-
</h2>
|
1097
|
+
<main class="live-metrics">
|
1098
|
+
<h2 class="section-title">${liveMetricsTitle}</h2>
|
1121
1099
|
<div class="metric-cards"
|
1122
1100
|
on-render=${ComponentHelpers.Directives.nodeRenderedCallback(node => {
|
1123
1101
|
this.#tooltipContainerEl = node;
|
@@ -1133,6 +1111,11 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
1133
1111
|
${this.#renderInpCard()}
|
1134
1112
|
</div>
|
1135
1113
|
</div>
|
1114
|
+
<x-link
|
1115
|
+
href=${helpLink}
|
1116
|
+
class="local-field-link"
|
1117
|
+
title=${i18nString(UIStrings.localFieldLearnMoreTooltip)}
|
1118
|
+
>${i18nString(UIStrings.localFieldLearnMoreLink)}</x-link>
|
1136
1119
|
${this.#renderLogSection()}
|
1137
1120
|
</main>
|
1138
1121
|
<aside class="next-steps" aria-labelledby="next-steps-section-title">
|
@@ -145,7 +145,7 @@ describeWithMockConnection('MetricCard', () => {
|
|
145
145
|
|
146
146
|
const localValueEl = getLocalMetricValue(view);
|
147
147
|
assert.strictEqual(localValueEl.className, 'metric-value poor');
|
148
|
-
assert.strictEqual(localValueEl.innerText, '
|
148
|
+
assert.strictEqual(localValueEl.innerText, '2,000 ms');
|
149
149
|
|
150
150
|
const fieldValueEl = getFieldMetricValue(view);
|
151
151
|
assert.strictEqual(fieldValueEl!.className, 'metric-value good');
|
@@ -2,9 +2,11 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
+
import * as Host from '../../../core/host/host.js';
|
5
6
|
import * as i18n from '../../../core/i18n/i18n.js';
|
6
7
|
import * as Platform from '../../../core/platform/platform.js';
|
7
8
|
import * as CrUXManager from '../../../models/crux-manager/crux-manager.js';
|
9
|
+
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
8
10
|
import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
|
9
11
|
import * as LitHtml from '../../../ui/lit-html/lit-html.js';
|
10
12
|
|
@@ -121,6 +123,20 @@ const UIStrings = {
|
|
121
123
|
* @description Column header for table cell values representing a phase duration (in milliseconds) that was measured in the developers local environment.
|
122
124
|
*/
|
123
125
|
duration: 'Local duration (ms)',
|
126
|
+
/**
|
127
|
+
* @description Tooltip text for a link that goes to documentation explaining the Largest Contentful Paint (LCP) metric. "LCP" is an acronym and should not be translated.
|
128
|
+
*/
|
129
|
+
lcpHelpTooltip:
|
130
|
+
'LCP reports the render time of the largest image, text block, or video visible in the viewport. Click here to learn more about LCP.',
|
131
|
+
/**
|
132
|
+
* @description Tooltip text for a link that goes to documentation explaining the Cumulative Layout Shift (CLS) metric. "CLS" is an acronym and should not be translated.
|
133
|
+
*/
|
134
|
+
clsHelpTooltip: 'CLS measures the amount of unexpected shifted content. Click here to learn more about CLS.',
|
135
|
+
/**
|
136
|
+
* @description Tooltip text for a link that goes to documentation explaining the Interaction to Next Paint (INP) metric. "INP" is an acronym and should not be translated.
|
137
|
+
*/
|
138
|
+
inpHelpTooltip:
|
139
|
+
'INP measures the overall responsiveness to all click, tap, and keyboard interactions. Click here to learn more about INP.',
|
124
140
|
};
|
125
141
|
|
126
142
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/components/MetricCard.ts', UIStrings);
|
@@ -291,6 +307,28 @@ export class MetricCard extends HTMLElement {
|
|
291
307
|
}
|
292
308
|
}
|
293
309
|
|
310
|
+
#getHelpLink(): Platform.DevToolsPath.UrlString {
|
311
|
+
switch (this.#data.metric) {
|
312
|
+
case 'LCP':
|
313
|
+
return 'https://web.dev/articles/lcp' as Platform.DevToolsPath.UrlString;
|
314
|
+
case 'CLS':
|
315
|
+
return 'https://web.dev/articles/cls' as Platform.DevToolsPath.UrlString;
|
316
|
+
case 'INP':
|
317
|
+
return 'https://web.dev/articles/inp' as Platform.DevToolsPath.UrlString;
|
318
|
+
}
|
319
|
+
}
|
320
|
+
|
321
|
+
#getHelpTooltip(): string {
|
322
|
+
switch (this.#data.metric) {
|
323
|
+
case 'LCP':
|
324
|
+
return i18nString(UIStrings.lcpHelpTooltip);
|
325
|
+
case 'CLS':
|
326
|
+
return i18nString(UIStrings.clsHelpTooltip);
|
327
|
+
case 'INP':
|
328
|
+
return i18nString(UIStrings.inpHelpTooltip);
|
329
|
+
}
|
330
|
+
}
|
331
|
+
|
294
332
|
#getLocalValue(): number|undefined {
|
295
333
|
const {localValue} = this.#data;
|
296
334
|
if (localValue === undefined) {
|
@@ -579,12 +617,20 @@ export class MetricCard extends HTMLElement {
|
|
579
617
|
|
580
618
|
#render = (): void => {
|
581
619
|
const fieldEnabled = CrUXManager.CrUXManager.instance().getConfigSetting().get().enabled;
|
620
|
+
const helpLink = this.#getHelpLink();
|
582
621
|
|
583
622
|
// clang-format off
|
584
623
|
const output = html`
|
585
624
|
<div class="metric-card">
|
586
625
|
<h3 class="title">
|
587
626
|
${this.#getTitle()}
|
627
|
+
<devtools-button
|
628
|
+
class="title-help"
|
629
|
+
title=${this.#getHelpTooltip()}
|
630
|
+
.iconName=${'help'}
|
631
|
+
.variant=${Buttons.Button.Variant.ICON}
|
632
|
+
@click=${() => Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(helpLink)}
|
633
|
+
></devtools-button>
|
588
634
|
</h3>
|
589
635
|
<div tabindex="0" class="metric-values-section"
|
590
636
|
@mouseenter=${() => this.#showTooltip(500)}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import '../../../ui/components/request_link_icon/request_link_icon.js';
|
6
6
|
|
7
7
|
import * as i18n from '../../../core/i18n/i18n.js';
|
8
|
-
import * as Platform from '../../../core/platform/platform.js';
|
8
|
+
import type * as Platform from '../../../core/platform/platform.js';
|
9
9
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
10
10
|
import * as Helpers from '../../../models/trace/helpers/helpers.js';
|
11
11
|
import * as Trace from '../../../models/trace/trace.js';
|
@@ -223,8 +223,7 @@ export class NetworkRequestDetails extends HTMLElement {
|
|
223
223
|
lengthText += i18nString(UIStrings.FromServiceWorker);
|
224
224
|
}
|
225
225
|
if (this.#networkRequest.args.data.encodedDataLength || !lengthText) {
|
226
|
-
lengthText =
|
227
|
-
`${Platform.NumberUtilities.bytesToString(this.#networkRequest.args.data.encodedDataLength)}${lengthText}`;
|
226
|
+
lengthText = `${i18n.ByteUtilities.bytesToString(this.#networkRequest.args.data.encodedDataLength)}${lengthText}`;
|
228
227
|
}
|
229
228
|
return this.#renderRow(i18nString(UIStrings.encodedData), lengthText);
|
230
229
|
}
|
@@ -325,7 +324,7 @@ export class NetworkRequestDetails extends HTMLElement {
|
|
325
324
|
${this.#renderRow(i18nString(UIStrings.priority), NetworkRequestTooltip.renderPriorityValue(this.#networkRequest))}
|
326
325
|
${this.#renderRow(i18nString(UIStrings.mimeType), networkData.mimeType)}
|
327
326
|
${this.#renderEncodedDataLength()}
|
328
|
-
${this.#renderRow(i18nString(UIStrings.decodedBody),
|
327
|
+
${this.#renderRow(i18nString(UIStrings.decodedBody), i18n.ByteUtilities.bytesToString(this.#networkRequest.args.data.decodedBodyLength))}
|
329
328
|
${this.#renderBlockingRow()}
|
330
329
|
${this.#renderFromCache()}
|
331
330
|
</div>
|
@@ -7,16 +7,13 @@ import * as Root from '../../../core/root/root.js';
|
|
7
7
|
import type * as Trace from '../../../models/trace/trace.js';
|
8
8
|
import * as Adorners from '../../../ui/components/adorners/adorners.js';
|
9
9
|
import * as UI from '../../../ui/legacy/legacy.js';
|
10
|
-
import type * as Overlays from '../overlays/overlays.js';
|
11
10
|
|
12
11
|
import {SidebarAnnotationsTab} from './SidebarAnnotationsTab.js';
|
13
12
|
import {SidebarInsightsTab} from './SidebarInsightsTab.js';
|
14
13
|
|
15
14
|
export interface ActiveInsight {
|
16
|
-
|
15
|
+
model: Trace.Insights.Types.InsightModel<{}>;
|
17
16
|
insightSetKey: string;
|
18
|
-
overlays: Overlays.Overlays.TimelineOverlay[];
|
19
|
-
relatedEvents: Trace.Types.Events.Event[];
|
20
17
|
}
|
21
18
|
|
22
19
|
export class RemoveAnnotation extends Event {
|
@@ -127,7 +127,7 @@ describeWithEnvironment('SidebarAnnotationsTab', () => {
|
|
127
127
|
assert.isNotNull(component.shadowRoot);
|
128
128
|
|
129
129
|
const label = component.shadowRoot.querySelector<HTMLElement>('.annotation-identifier');
|
130
|
-
assert.strictEqual(label?.innerText, 'private-aggregation-test.js (shared-
|
130
|
+
assert.strictEqual(label?.innerText, 'private-aggregation-test.js (shared-storage-demo-content-producer.web.app)');
|
131
131
|
});
|
132
132
|
|
133
133
|
it('dispatches RemoveAnnotation Events when delete annotation button is clicked', async function() {
|
@@ -43,7 +43,7 @@ export class SidebarInsightsTab extends HTMLElement {
|
|
43
43
|
#parsedTrace: Trace.Handlers.Types.ParsedTrace|null = null;
|
44
44
|
#insights: Trace.Insights.Types.TraceInsightSets|null = null;
|
45
45
|
#activeInsight: ActiveInsight|null = null;
|
46
|
-
#selectedCategory = Insights.Types.
|
46
|
+
#selectedCategory = Trace.Insights.Types.InsightCategory.ALL;
|
47
47
|
/**
|
48
48
|
* When a trace has sets of insights, we show an accordion with each
|
49
49
|
* set within. A set can be specific to a single navigation, or include the
|
@@ -3,43 +3,24 @@
|
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
5
|
import * as Root from '../../../core/root/root.js';
|
6
|
+
import * as Trace from '../../../models/trace/trace.js';
|
6
7
|
import {getCleanTextContentFromElements, renderElementIntoDOM} from '../../../testing/DOMHelpers.js';
|
7
8
|
import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
|
8
9
|
import {TraceLoader} from '../../../testing/TraceLoader.js';
|
9
10
|
import * as Coordinator from '../../../ui/components/render_coordinator/render_coordinator.js';
|
10
11
|
|
11
12
|
import * as Components from './components.js';
|
12
|
-
import * as InsightComponents from './insights/insights.js';
|
13
|
+
import type * as InsightComponents from './insights/insights.js';
|
14
|
+
|
15
|
+
type BaseInsightComponent =
|
16
|
+
InsightComponents.BaseInsightComponent.BaseInsightComponent<Trace.Insights.Types.InsightModel<{}>>;
|
13
17
|
|
14
18
|
const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
|
15
19
|
|
16
20
|
function getUserVisibleInsights(component: Components.SidebarSingleInsightSet.SidebarSingleInsightSet):
|
17
|
-
|
21
|
+
BaseInsightComponent[] {
|
18
22
|
assert.isOk(component.shadowRoot);
|
19
|
-
|
20
|
-
|
21
|
-
// We have to jump through some hoops here => each insight is rendered in its
|
22
|
-
// own component, but within it they all use the
|
23
|
-
// devtools-performance-sidebar-insight component to render the header +
|
24
|
-
// body.
|
25
|
-
// So we first have to find the specific insight component (e.g.
|
26
|
-
// devtools-performance-render-blocking), then look inside its shadow dom for
|
27
|
-
// the devtools-performance-sidebar-insight component.
|
28
|
-
// If you are here debugging something, I highly recommend loading up
|
29
|
-
// DevTools and inspecting the DOM in the Insights sidebar. It will be much
|
30
|
-
// easier!
|
31
|
-
const userVisibleInsightComponents =
|
32
|
-
insightWrappers
|
33
|
-
.map(div => {
|
34
|
-
const component = div.querySelector('[data-insight-name]');
|
35
|
-
assert.instanceOf(component, HTMLElement);
|
36
|
-
const insightComponent =
|
37
|
-
component.shadowRoot?.querySelector<InsightComponents.SidebarInsight.SidebarInsight>(
|
38
|
-
'devtools-performance-sidebar-insight');
|
39
|
-
return insightComponent ?? null;
|
40
|
-
})
|
41
|
-
.filter(x => x !== null);
|
42
|
-
return userVisibleInsightComponents;
|
23
|
+
return [...component.shadowRoot.querySelectorAll<BaseInsightComponent>('[data-insight-name]')];
|
43
24
|
}
|
44
25
|
|
45
26
|
describeWithEnvironment('SidebarSingleInsightSet', () => {
|
@@ -59,7 +40,7 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
59
40
|
parsedTrace,
|
60
41
|
insights,
|
61
42
|
insightSetKey: navigationId,
|
62
|
-
activeCategory:
|
43
|
+
activeCategory: Trace.Insights.Types.InsightCategory.ALL,
|
63
44
|
activeInsight: null,
|
64
45
|
};
|
65
46
|
await coordinator.done();
|
@@ -86,7 +67,7 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
86
67
|
parsedTrace,
|
87
68
|
insights,
|
88
69
|
insightSetKey: firstNavigation,
|
89
|
-
activeCategory:
|
70
|
+
activeCategory: Trace.Insights.Types.InsightCategory.ALL,
|
90
71
|
activeInsight: null,
|
91
72
|
};
|
92
73
|
await coordinator.done();
|
@@ -96,7 +77,9 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
96
77
|
// Does not include "font display", which is experimental.
|
97
78
|
assert.deepEqual(userVisibleTitles, [
|
98
79
|
'LCP by phase',
|
80
|
+
'LCP request discovery',
|
99
81
|
'Layout shift culprits',
|
82
|
+
'Improve image delivery',
|
100
83
|
'Third parties',
|
101
84
|
]);
|
102
85
|
});
|
@@ -114,7 +97,7 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
114
97
|
parsedTrace,
|
115
98
|
insights,
|
116
99
|
insightSetKey: firstNavigation,
|
117
|
-
activeCategory:
|
100
|
+
activeCategory: Trace.Insights.Types.InsightCategory.ALL,
|
118
101
|
activeInsight: null,
|
119
102
|
};
|
120
103
|
await coordinator.done();
|
@@ -124,7 +107,9 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
124
107
|
// Does not include "font display", which is experimental.
|
125
108
|
assert.deepEqual(userVisibleTitles, [
|
126
109
|
'LCP by phase',
|
110
|
+
'LCP request discovery',
|
127
111
|
'Layout shift culprits',
|
112
|
+
'Improve image delivery',
|
128
113
|
'Font display',
|
129
114
|
'Third parties',
|
130
115
|
]);
|
@@ -140,26 +125,29 @@ describeWithEnvironment('SidebarSingleInsightSet', () => {
|
|
140
125
|
const navigationId = '8463DF94CD61B265B664E7F768183DE3';
|
141
126
|
assert.isTrue(insights.has(navigationId));
|
142
127
|
|
128
|
+
const model = insights.get(navigationId)?.model.LCPPhases;
|
129
|
+
if (!model) {
|
130
|
+
throw new Error('missing LCPPhases model');
|
131
|
+
}
|
132
|
+
|
143
133
|
const component = new Components.SidebarSingleInsightSet.SidebarSingleInsightSet();
|
144
134
|
renderElementIntoDOM(component);
|
145
135
|
component.data = {
|
146
136
|
parsedTrace,
|
147
137
|
insights,
|
148
138
|
insightSetKey: navigationId,
|
149
|
-
activeCategory:
|
139
|
+
activeCategory: Trace.Insights.Types.InsightCategory.ALL,
|
150
140
|
activeInsight: {
|
151
|
-
|
141
|
+
model,
|
152
142
|
insightSetKey: navigationId,
|
153
|
-
overlays: [],
|
154
|
-
relatedEvents: [],
|
155
143
|
},
|
156
144
|
};
|
157
145
|
await coordinator.done();
|
158
146
|
|
159
147
|
const expandedInsight = getUserVisibleInsights(component).find(insight => {
|
160
|
-
return
|
148
|
+
return insight.selected;
|
161
149
|
});
|
162
150
|
assert.isOk(expandedInsight);
|
163
|
-
assert.strictEqual(expandedInsight.
|
151
|
+
assert.strictEqual(expandedInsight.model?.title, 'LCP by phase');
|
164
152
|
});
|
165
153
|
});
|
@@ -8,6 +8,7 @@ import * as Trace from '../../../models/trace/trace.js';
|
|
8
8
|
import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
|
9
9
|
import * as LitHtml from '../../../ui/lit-html/lit-html.js';
|
10
10
|
|
11
|
+
import {shouldRenderForCategory} from './insights/Helpers.js';
|
11
12
|
import * as Insights from './insights/insights.js';
|
12
13
|
import type {ActiveInsight} from './Sidebar.js';
|
13
14
|
import styles from './sidebarSingleInsightSet.css.js';
|
@@ -31,7 +32,7 @@ export interface SidebarSingleInsightSetData {
|
|
31
32
|
parsedTrace: Trace.Handlers.Types.ParsedTrace|null;
|
32
33
|
insights: Trace.Insights.Types.TraceInsightSets|null;
|
33
34
|
insightSetKey: Trace.Types.Events.NavigationId|null;
|
34
|
-
activeCategory: Insights.Types.
|
35
|
+
activeCategory: Trace.Insights.Types.InsightCategory;
|
35
36
|
activeInsight: ActiveInsight|null;
|
36
37
|
}
|
37
38
|
|
@@ -40,27 +41,28 @@ export interface SidebarSingleInsightSetData {
|
|
40
41
|
* "enable experimental performance insights" experiment. This is used to enable
|
41
42
|
* us to ship incrementally without turning insights on by default for all
|
42
43
|
* users. */
|
43
|
-
const EXPERIMENTAL_INSIGHTS: ReadonlySet<
|
44
|
-
|
44
|
+
const EXPERIMENTAL_INSIGHTS: ReadonlySet<string> = new Set([
|
45
|
+
'FontDisplay',
|
45
46
|
]);
|
46
47
|
|
47
48
|
/**
|
48
49
|
* Every insight (INCLUDING experimental ones)
|
49
|
-
* The order of
|
50
|
+
* The order of these properties is the order the insights will be shown in the sidebar.
|
50
51
|
* TODO(crbug.com/368135130): sort this in a smart way!
|
51
52
|
*/
|
52
|
-
const
|
53
|
-
Insights.InteractionToNextPaint.InteractionToNextPaint,
|
54
|
-
Insights.LCPPhases.LCPPhases,
|
55
|
-
Insights.LCPDiscovery.LCPDiscovery,
|
56
|
-
Insights.CLSCulprits.CLSCulprits,
|
57
|
-
Insights.RenderBlocking.
|
58
|
-
Insights.
|
59
|
-
Insights.
|
60
|
-
Insights.
|
61
|
-
Insights.
|
62
|
-
Insights.
|
63
|
-
|
53
|
+
const INSIGHT_NAME_TO_COMPONENT = {
|
54
|
+
InteractionToNextPaint: Insights.InteractionToNextPaint.InteractionToNextPaint,
|
55
|
+
LCPPhases: Insights.LCPPhases.LCPPhases,
|
56
|
+
LCPDiscovery: Insights.LCPDiscovery.LCPDiscovery,
|
57
|
+
CLSCulprits: Insights.CLSCulprits.CLSCulprits,
|
58
|
+
RenderBlocking: Insights.RenderBlocking.RenderBlocking,
|
59
|
+
ImageDelivery: Insights.ImageDelivery.ImageDelivery,
|
60
|
+
DocumentLatency: Insights.DocumentLatency.DocumentLatency,
|
61
|
+
FontDisplay: Insights.FontDisplay.FontDisplay,
|
62
|
+
Viewport: Insights.Viewport.Viewport,
|
63
|
+
ThirdParties: Insights.ThirdParties.ThirdParties,
|
64
|
+
SlowCSSSelector: Insights.SlowCSSSelector.SlowCSSSelector,
|
65
|
+
};
|
64
66
|
|
65
67
|
export class SidebarSingleInsightSet extends HTMLElement {
|
66
68
|
readonly #shadow = this.attachShadow({mode: 'open'});
|
@@ -70,7 +72,7 @@ export class SidebarSingleInsightSet extends HTMLElement {
|
|
70
72
|
parsedTrace: null,
|
71
73
|
insights: null,
|
72
74
|
insightSetKey: null,
|
73
|
-
activeCategory: Insights.Types.
|
75
|
+
activeCategory: Trace.Insights.Types.InsightCategory.ALL,
|
74
76
|
activeInsight: null,
|
75
77
|
};
|
76
78
|
|
@@ -84,7 +86,7 @@ export class SidebarSingleInsightSet extends HTMLElement {
|
|
84
86
|
}
|
85
87
|
|
86
88
|
#metricIsVisible(label: 'LCP'|'CLS'|'INP'): boolean {
|
87
|
-
if (this.#data.activeCategory === Insights.Types.
|
89
|
+
if (this.#data.activeCategory === Trace.Insights.Types.InsightCategory.ALL) {
|
88
90
|
return true;
|
89
91
|
}
|
90
92
|
return label === this.#data.activeCategory;
|
@@ -135,7 +137,7 @@ export class SidebarSingleInsightSet extends HTMLElement {
|
|
135
137
|
|
136
138
|
#getLCP(insightSetKey: string):
|
137
139
|
{value: Trace.Types.Timing.MicroSeconds, event: Trace.Types.Events.LargestContentfulPaintCandidate}|null {
|
138
|
-
const insight = Trace.Insights.Common.getInsight('
|
140
|
+
const insight = Trace.Insights.Common.getInsight('LCPPhases', this.#data.insights, insightSetKey);
|
139
141
|
if (!insight || !insight.lcpMs || !insight.lcpEvent) {
|
140
142
|
return null;
|
141
143
|
}
|
@@ -145,7 +147,7 @@ export class SidebarSingleInsightSet extends HTMLElement {
|
|
145
147
|
}
|
146
148
|
|
147
149
|
#getCLS(insightSetKey: string): {value: number, worstShiftEvent: Trace.Types.Events.Event|null} {
|
148
|
-
const insight = Trace.Insights.Common.getInsight('
|
150
|
+
const insight = Trace.Insights.Common.getInsight('CLSCulprits', this.#data.insights, insightSetKey);
|
149
151
|
if (!insight) {
|
150
152
|
// Unlike the other metrics, there is still a value for this metric even with no data.
|
151
153
|
// This means this view will always display a CLS score.
|
@@ -193,37 +195,47 @@ export class SidebarSingleInsightSet extends HTMLElement {
|
|
193
195
|
`;
|
194
196
|
}
|
195
197
|
|
196
|
-
#
|
198
|
+
#renderInsights(
|
199
|
+
insightSets: Trace.Insights.Types.TraceInsightSets|null,
|
200
|
+
parsedTrace: Trace.Handlers.Types.ParsedTrace|null,
|
201
|
+
insightSetKey: string,
|
202
|
+
): LitHtml.LitTemplate {
|
197
203
|
const includeExperimental = Root.Runtime.experiments.isEnabled(
|
198
204
|
Root.Runtime.ExperimentName.TIMELINE_EXPERIMENTAL_INSIGHTS,
|
199
205
|
);
|
200
206
|
|
201
|
-
|
202
|
-
|
207
|
+
const models = insightSets?.get(insightSetKey)?.model;
|
208
|
+
if (!models) {
|
209
|
+
return LitHtml.nothing;
|
203
210
|
}
|
204
211
|
|
205
|
-
|
206
|
-
|
212
|
+
const components: LitHtml.TemplateResult[] = [];
|
213
|
+
for (const [name, componentClass] of Object.entries(INSIGHT_NAME_TO_COMPONENT)) {
|
214
|
+
if (!includeExperimental && EXPERIMENTAL_INSIGHTS.has(name)) {
|
215
|
+
continue;
|
216
|
+
}
|
207
217
|
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
.
|
218
|
+
const model = models[name as keyof typeof models];
|
219
|
+
if (!model || !model.shouldShow ||
|
220
|
+
!shouldRenderForCategory({activeCategory: this.#data.activeCategory, insightCategory: model.category})) {
|
221
|
+
continue;
|
222
|
+
}
|
223
|
+
|
224
|
+
// clang-format off
|
225
|
+
const component = html`<div>
|
226
|
+
<${componentClass.litTagName}
|
227
|
+
.selected=${this.#data.activeInsight?.model === model}
|
228
|
+
.model=${model}
|
219
229
|
.parsedTrace=${parsedTrace}
|
220
230
|
.insightSetKey=${insightSetKey}
|
221
|
-
|
222
|
-
.activeCategory=${this.#data.activeCategory}>
|
223
|
-
</${component.litTagName}>
|
231
|
+
</${componentClass.litTagName}>
|
224
232
|
</div>`;
|
225
|
-
|
226
|
-
|
233
|
+
// clang-format on
|
234
|
+
|
235
|
+
components.push(component);
|
236
|
+
}
|
237
|
+
|
238
|
+
return html`${components}`;
|
227
239
|
}
|
228
240
|
|
229
241
|
#render(): void {
|