chrome-devtools-frontend 1.0.1380117 → 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 +25 -4
- package/config/gni/devtools_image_files.gni +2 -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/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 +7 -0
- package/front_end/core/host/AidaClient.ts +3 -3
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
- package/front_end/core/host/UserMetrics.ts +0 -8
- 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/root/Runtime.ts +0 -1
- 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 +27 -0
- package/front_end/devtools_compatibility.js +0 -1
- package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
- 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/Deprecation.ts +0 -15
- package/front_end/generated/InspectorBackendCommands.js +1 -1
- package/front_end/generated/SupportedCSSProperties.js +0 -40
- package/front_end/generated/protocol.ts +1 -0
- 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/ExtensionServer.test.ts +14 -0
- package/front_end/models/extensions/ExtensionServer.ts +28 -15
- 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 +14 -4
- package/front_end/models/persistence/EditFileSystemView.ts +2 -2
- package/front_end/models/persistence/editFileSystemView.css +6 -3
- package/front_end/models/persistence/workspaceSettingsTab.css +2 -2
- 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/trace/extras/TraceTree.ts +28 -18
- package/front_end/models/trace/extras/URLForEntry.ts +6 -5
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +12 -0
- package/front_end/models/trace/helpers/Timing.ts +8 -0
- package/front_end/models/trace/insights/CLSCulprits.ts +11 -3
- package/front_end/models/trace/insights/DocumentLatency.ts +16 -3
- package/front_end/models/trace/insights/FontDisplay.ts +10 -3
- 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.ts +9 -3
- package/front_end/models/trace/insights/LCPDiscovery.ts +24 -3
- package/front_end/models/trace/insights/LCPPhases.ts +25 -3
- package/front_end/models/trace/insights/Models.ts +1 -0
- package/front_end/models/trace/insights/RenderBlocking.ts +10 -2
- package/front_end/models/trace/insights/SlowCSSSelector.ts +10 -3
- package/front_end/models/trace/insights/ThirdParties.ts +11 -3
- package/front_end/models/trace/insights/Viewport.ts +16 -3
- package/front_end/models/trace/insights/types.ts +13 -2
- package/front_end/models/trace/types/File.ts +7 -0
- package/front_end/models/trace/types/TraceEvents.ts +9 -2
- 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/StorageView.test.ts +1 -1
- 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 +1 -1
- 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/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +3 -2
- package/front_end/panels/elements/ElementStatePaneWidget.ts +7 -2
- package/front_end/panels/elements/ElementsSidebarPane.ts +3 -3
- package/front_end/panels/elements/ElementsTreeElement.ts +1 -0
- package/front_end/panels/elements/LayersWidget.ts +1 -1
- package/front_end/panels/elements/PropertyMatchers.test.ts +7 -0
- package/front_end/panels/elements/PropertyMatchers.ts +3 -0
- package/front_end/panels/elements/classesPaneWidget.css +1 -1
- 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/freestyler/AiAgent.test.ts +319 -50
- package/front_end/panels/freestyler/AiAgent.ts +193 -141
- 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 +14 -15
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +3 -14
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +14 -13
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +3 -3
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +38 -36
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +3 -14
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +195 -14
- package/front_end/panels/freestyler/FreestylerAgent.ts +13 -18
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +71 -0
- package/front_end/panels/freestyler/FreestylerPanel.ts +99 -74
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +128 -29
- package/front_end/panels/freestyler/components/UserActionRow.ts +1 -0
- package/front_end/panels/freestyler/components/freestylerChatUi.css +21 -1
- package/front_end/panels/freestyler/components/userActionRow.css +2 -1
- 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/issuesTree.css +1 -1
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +1 -1
- package/front_end/panels/layers/LayersPanel.ts +1 -1
- 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 +1 -1
- package/front_end/panels/network/BlockedURLsPane.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +1 -0
- package/front_end/panels/network/NetworkLogView.test.ts +1 -1
- package/front_end/panels/network/NetworkPanel.ts +40 -32
- package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
- package/front_end/panels/profiler/HeapProfileView.ts +9 -9
- package/front_end/panels/profiler/HeapTimelineOverview.ts +1 -1
- package/front_end/panels/profiler/IsolateSelector.ts +1 -1
- package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -3
- package/front_end/panels/profiler/ProfileView.ts +2 -2
- package/front_end/panels/profiler/profileLauncherView.css +1 -1
- package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
- package/front_end/panels/recorder/recorderController.css +1 -1
- 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/CookieReportView.test.ts +157 -0
- package/front_end/panels/security/CookieReportView.ts +208 -12
- package/front_end/panels/security/SecurityPanel.ts +5 -3
- 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 +26 -3
- package/front_end/panels/security/security.ts +4 -0
- package/front_end/panels/security/sidebar.css +1 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
- package/front_end/panels/settings/SettingsScreen.ts +5 -1
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +1 -1
- package/front_end/panels/settings/keybindsSettingsTab.css +6 -1
- package/front_end/panels/settings/settings-meta.ts +3 -1
- package/front_end/panels/settings/settingsScreen.css +10 -0
- package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
- package/front_end/panels/sources/NavigatorView.ts +1 -0
- package/front_end/panels/sources/navigatorTree.css +1 -1
- package/front_end/panels/sources/sourcesPanel.css +2 -2
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -7
- package/front_end/panels/timeline/AppenderUtils.ts +1 -1
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +38 -41
- 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/ServerTimingsTrackAppender.ts +1 -10
- package/front_end/panels/timeline/ThreadAppender.ts +9 -12
- package/front_end/panels/timeline/TimelineController.ts +1 -1
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +3 -2
- package/front_end/panels/timeline/TimelineDetailsView.ts +18 -17
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +55 -36
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +33 -14
- 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.ts +16 -0
- package/front_end/panels/timeline/TimelineMiniMap.ts +2 -2
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +145 -28
- package/front_end/panels/timeline/TimelineTreeView.ts +65 -16
- package/front_end/panels/timeline/TimelineUIUtils.ts +44 -0
- 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/LiveMetricsView.test.ts +12 -0
- package/front_end/panels/timeline/components/LiveMetricsView.ts +13 -18
- 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 +21 -35
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +16 -9
- 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 +17 -41
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +28 -46
- package/front_end/panels/timeline/components/insights/EventRef.ts +70 -2
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +28 -46
- package/front_end/panels/timeline/components/insights/Helpers.ts +5 -208
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +142 -0
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +30 -53
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +36 -75
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +15 -49
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +27 -44
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -197
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +51 -74
- package/front_end/panels/timeline/components/insights/Table.ts +6 -5
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +41 -61
- package/front_end/panels/timeline/components/insights/Viewport.ts +20 -31
- 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 +5 -5
- 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.ts +22 -0
- package/front_end/panels/timeline/timeline-meta.ts +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/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 +1 -2
- package/front_end/testing/SourceMapEncoder.ts +27 -11
- package/front_end/testing/TraceHelpers.ts +2 -1
- 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 +8 -0
- 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/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/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/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/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/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/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/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/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/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/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +49 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +118 -88
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +8 -0
- 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/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/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/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/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/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/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/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/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/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/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +49 -0
- package/front_end/third_party/puppeteer/package/package.json +3 -3
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +8 -0
- 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/Page.ts +5 -0
- 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/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/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/ConnectOptions.ts +5 -0
- package/front_end/third_party/puppeteer/package/src/common/DownloadBehavior.ts +31 -0
- package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
- 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/puppeteer-tsconfig.json +1 -0
- 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 +64 -2
- package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +15 -1
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +28 -20
- package/front_end/ui/components/dialogs/buttonDialog.css +9 -0
- package/front_end/ui/components/dialogs/dialog.css +15 -0
- package/front_end/ui/components/dialogs/dialogs.ts +2 -0
- package/front_end/ui/components/dialogs/shortcutDialog.css +34 -6
- 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/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/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.ts +15 -0
- package/front_end/ui/components/markdown_view/markdownView.css +1 -1
- package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +24 -18
- package/front_end/ui/components/switch/SwitchImpl.ts +2 -2
- package/front_end/ui/legacy/Infobar.ts +6 -0
- package/front_end/ui/legacy/InspectorView.ts +40 -0
- package/front_end/ui/legacy/ListWidget.ts +4 -2
- 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 -6
- package/front_end/ui/legacy/Widget.ts +32 -0
- package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +6 -9
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +35 -34
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.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 +32 -25
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +18 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +80 -39
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -4
- 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/toolbar.css +3 -6
- package/front_end/ui/legacy/treeoutline.css +3 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +12 -1
- package/front_end/ui/visual_logging/LoggingDriver.test.ts +27 -1
- package/front_end/ui/visual_logging/LoggingDriver.ts +7 -4
- package/package.json +2 -3
- package/scripts/build/wasm-as.py +1 -1
- 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/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
@@ -39,7 +39,7 @@ import {
|
|
39
39
|
selectionIsRange,
|
40
40
|
type TimelineSelection,
|
41
41
|
} from './TimelineSelection.js';
|
42
|
-
import {AggregatedTimelineTreeView} from './TimelineTreeView.js';
|
42
|
+
import {AggregatedTimelineTreeView, TimelineTreeView} from './TimelineTreeView.js';
|
43
43
|
import type {TimelineMarkerStyle} from './TimelineUIUtils.js';
|
44
44
|
|
45
45
|
const UIStrings = {
|
@@ -53,8 +53,9 @@ const UIStrings = {
|
|
53
53
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelineFlameChartView.ts', UIStrings);
|
54
54
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
55
55
|
|
56
|
-
export class TimelineFlameChartView extends
|
57
|
-
|
56
|
+
export class TimelineFlameChartView extends
|
57
|
+
Common.ObjectWrapper.eventMixin<TimelineTreeView.EventTypes, typeof UI.Widget.VBox>(UI.Widget.VBox)
|
58
|
+
implements PerfUI.FlameChart.FlameChartDelegate, UI.SearchableView.Searchable {
|
58
59
|
private readonly delegate: TimelineModeViewDelegate;
|
59
60
|
/**
|
60
61
|
* Tracks the indexes of matched entries when the user searches the panel.
|
@@ -165,6 +166,10 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
165
166
|
this.mainDataProvider = new TimelineFlameChartDataProvider();
|
166
167
|
this.mainDataProvider.addEventListener(
|
167
168
|
TimelineFlameChartDataProviderEvents.DATA_CHANGED, () => this.mainFlameChart.scheduleUpdate());
|
169
|
+
this.mainDataProvider.addEventListener(
|
170
|
+
TimelineFlameChartDataProviderEvents.FLAME_CHART_ITEM_HOVERED,
|
171
|
+
e => this.detailsView.revealEventInTreeView(e.data));
|
172
|
+
|
168
173
|
this.mainFlameChart = new PerfUI.FlameChart.FlameChart(this.mainDataProvider, this, {
|
169
174
|
groupExpansionSetting: mainViewGroupExpansionSetting,
|
170
175
|
// The TimelineOverlays are used for selected elements
|
@@ -312,6 +317,19 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
312
317
|
PerfUI.FlameChart.Events.ENTRIES_LINK_ANNOTATION_CREATED, this.#onNetworkEntriesLinkAnnotationCreated, this);
|
313
318
|
}
|
314
319
|
|
320
|
+
this.detailsView.addEventListener(TimelineTreeView.Events.TREE_ROW_HOVERED, node => {
|
321
|
+
if (!Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DIM_UNRELATED_EVENTS)) {
|
322
|
+
return;
|
323
|
+
}
|
324
|
+
const events = node?.data?.events;
|
325
|
+
if (events) {
|
326
|
+
this.#dimInsightRelatedEvents(events);
|
327
|
+
} else {
|
328
|
+
this.mainFlameChart.disableDimming();
|
329
|
+
this.networkFlameChart.disableDimming();
|
330
|
+
}
|
331
|
+
});
|
332
|
+
|
315
333
|
/**
|
316
334
|
* NOTE: ENTRY_SELECTED, ENTRY_INVOKED and ENTRY_HOVERED are not always super obvious:
|
317
335
|
* ENTRY_SELECTED: is KEYBOARD ONLY selection of events (e.g. navigating through the flamechart with your arrow keys)
|
@@ -355,8 +373,8 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
355
373
|
|
356
374
|
#dimInsightRelatedEvents(relatedEvents: Trace.Types.Events.Event[]): void {
|
357
375
|
// Dim all events except those related to the active insight.
|
358
|
-
const
|
359
|
-
const
|
376
|
+
const relatedMainIndices = relatedEvents.map(event => this.mainDataProvider.indexForEvent(event) ?? -1);
|
377
|
+
const relatedNetworkIndices = relatedEvents.map(event => this.networkDataProvider.indexForEvent(event) ?? -1);
|
360
378
|
|
361
379
|
// Further, overlays defining a trace bounds do not dim an event that falls within those bounds.
|
362
380
|
for (const overlay of this.#currentInsightOverlays) {
|
@@ -382,15 +400,15 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
382
400
|
if (overlayEvent) {
|
383
401
|
if (this.mainDataProvider.indexForEvent(overlayEvent) !== null) {
|
384
402
|
provider = this.mainDataProvider;
|
385
|
-
relevantEvents =
|
403
|
+
relevantEvents = relatedMainIndices;
|
386
404
|
} else if (this.networkDataProvider.indexForEvent(overlayEvent) !== null) {
|
387
405
|
provider = this.networkDataProvider;
|
388
|
-
relevantEvents =
|
406
|
+
relevantEvents = relatedNetworkIndices;
|
389
407
|
}
|
390
408
|
} else if (overlay.type === 'TIMESPAN_BREAKDOWN') {
|
391
409
|
// For this overlay type, if there is no associated event it is rendered on mainFlameChart.
|
392
410
|
provider = this.mainDataProvider;
|
393
|
-
relevantEvents =
|
411
|
+
relevantEvents = relatedMainIndices;
|
394
412
|
}
|
395
413
|
|
396
414
|
if (!provider || !relevantEvents) {
|
@@ -399,8 +417,8 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
399
417
|
|
400
418
|
relevantEvents.push(...provider.search(bounds).map(r => r.index));
|
401
419
|
}
|
402
|
-
this.mainFlameChart.enableDimming(
|
403
|
-
this.networkFlameChart.enableDimming(
|
420
|
+
this.mainFlameChart.enableDimming(relatedMainIndices);
|
421
|
+
this.networkFlameChart.enableDimming(relatedNetworkIndices);
|
404
422
|
}
|
405
423
|
|
406
424
|
setOverlays(overlays: Overlays.Overlays.TimelineOverlay[], options: Overlays.Overlays.TimelineOverlaySetOptions):
|
@@ -432,7 +450,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
432
450
|
if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DIM_UNRELATED_EVENTS)) {
|
433
451
|
// The insight's `relatedEvents` property likely already includes the events associated with
|
434
452
|
// and overlay, but just in case not, include both arrays. Duplicates are fine.
|
435
|
-
const relatedEvents = [...entries, ...this.#activeInsight?.relatedEvents || []];
|
453
|
+
const relatedEvents = [...entries, ...this.#activeInsight?.model.relatedEvents || []];
|
436
454
|
this.#dimInsightRelatedEvents(relatedEvents);
|
437
455
|
}
|
438
456
|
|
@@ -494,10 +512,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
494
512
|
if (!this.#activeInsight) {
|
495
513
|
this.mainFlameChart.disableDimming();
|
496
514
|
this.networkFlameChart.disableDimming();
|
497
|
-
return;
|
498
515
|
}
|
499
|
-
|
500
|
-
this.setOverlays(this.#activeInsight.overlays, {updateTraceWindow: true});
|
501
516
|
}
|
502
517
|
|
503
518
|
/**
|
@@ -1461,6 +1476,10 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
|
|
1461
1476
|
this.mainFlameChart.hideHighlight();
|
1462
1477
|
}
|
1463
1478
|
}
|
1479
|
+
|
1480
|
+
overlays(): Overlays.Overlays.Overlays {
|
1481
|
+
return this.#overlays;
|
1482
|
+
}
|
1464
1483
|
}
|
1465
1484
|
|
1466
1485
|
export class Selection {
|
@@ -22,11 +22,12 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
22
22
|
afterEach(() => {
|
23
23
|
UI.ActionRegistry.ActionRegistry.reset();
|
24
24
|
Root.Runtime.experiments.disableForTest(Root.Runtime.ExperimentName.TIMELINE_OBSERVATIONS);
|
25
|
+
historyManager.cancelIfShowing();
|
25
26
|
});
|
26
27
|
|
27
28
|
it('shows the dropdown including a landing page link if the observations experiment is enabled', async function() {
|
28
29
|
Root.Runtime.experiments.enableForTest(Root.Runtime.ExperimentName.TIMELINE_OBSERVATIONS);
|
29
|
-
const {parsedTrace} = await TraceLoader.traceEngine(this, 'web-dev-with-commit.json.gz');
|
30
|
+
const {parsedTrace, metadata} = await TraceLoader.traceEngine(this, 'web-dev-with-commit.json.gz');
|
30
31
|
historyManager.addRecording(
|
31
32
|
{
|
32
33
|
data: {
|
@@ -35,7 +36,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
35
36
|
},
|
36
37
|
filmStripForPreview: null,
|
37
38
|
parsedTrace,
|
38
|
-
|
39
|
+
metadata,
|
39
40
|
},
|
40
41
|
);
|
41
42
|
|
@@ -48,7 +49,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
48
49
|
const menuItemText = Array.from(dropdown.querySelectorAll<HTMLDivElement>('[role="menuitem"]'), elem => {
|
49
50
|
return elem.innerText.replaceAll('\n', '');
|
50
51
|
});
|
51
|
-
assert.deepEqual(menuItemText, ['Live metrics', 'web.
|
52
|
+
assert.deepEqual(menuItemText, ['Live metrics', 'web.dev1× slowdown, No throttling']);
|
52
53
|
|
53
54
|
// Cancel the dropdown, which also resolves the show() promise, meaning we
|
54
55
|
// don't leak it into other tests.
|
@@ -57,7 +58,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
57
58
|
});
|
58
59
|
|
59
60
|
it('does not show if observations experiment is disabled + the user has not imported 2 traces', async function() {
|
60
|
-
const {parsedTrace} = await TraceLoader.traceEngine(this, 'web-dev-with-commit.json.gz');
|
61
|
+
const {parsedTrace, metadata} = await TraceLoader.traceEngine(this, 'web-dev-with-commit.json.gz');
|
61
62
|
historyManager.addRecording(
|
62
63
|
{
|
63
64
|
data: {
|
@@ -66,7 +67,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
66
67
|
},
|
67
68
|
filmStripForPreview: null,
|
68
69
|
parsedTrace,
|
69
|
-
|
70
|
+
metadata,
|
70
71
|
},
|
71
72
|
);
|
72
73
|
|
@@ -79,7 +80,8 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
79
80
|
});
|
80
81
|
|
81
82
|
it('does not show the landing page link if the observations experiment is disabled', async function() {
|
82
|
-
const {parsedTrace: parsedTrace1} =
|
83
|
+
const {parsedTrace: parsedTrace1, metadata: metadata1} =
|
84
|
+
await TraceLoader.traceEngine(this, 'web-dev-with-commit.json.gz');
|
83
85
|
historyManager.addRecording(
|
84
86
|
{
|
85
87
|
data: {
|
@@ -88,10 +90,11 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
88
90
|
},
|
89
91
|
filmStripForPreview: null,
|
90
92
|
parsedTrace: parsedTrace1,
|
91
|
-
|
93
|
+
metadata: metadata1,
|
92
94
|
},
|
93
95
|
);
|
94
|
-
const {parsedTrace: parsedTrace2} =
|
96
|
+
const {parsedTrace: parsedTrace2, metadata: metadata2} =
|
97
|
+
await TraceLoader.traceEngine(this, 'timings-track.json.gz');
|
95
98
|
historyManager.addRecording(
|
96
99
|
{
|
97
100
|
data: {
|
@@ -100,7 +103,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
100
103
|
},
|
101
104
|
filmStripForPreview: null,
|
102
105
|
parsedTrace: parsedTrace2,
|
103
|
-
|
106
|
+
metadata: metadata2,
|
104
107
|
},
|
105
108
|
);
|
106
109
|
|
@@ -114,8 +117,8 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
114
117
|
return elem.innerText.replaceAll('\n', '');
|
115
118
|
});
|
116
119
|
assert.deepEqual(menuItemText, [
|
117
|
-
'
|
118
|
-
'web.
|
120
|
+
'localhost',
|
121
|
+
'web.dev1× slowdown, No throttling',
|
119
122
|
]);
|
120
123
|
|
121
124
|
// Cancel the dropdown, which also resolves the show() promise, meaning we
|
@@ -126,7 +129,8 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
126
129
|
|
127
130
|
it('can select from multiple parsed data objects', async function() {
|
128
131
|
// Add two parsed data objects to the history manager.
|
129
|
-
const {parsedTrace: trace1Data} =
|
132
|
+
const {parsedTrace: trace1Data, metadata: metadata1} =
|
133
|
+
await TraceLoader.traceEngine(this, 'slow-interaction-button-click.json.gz');
|
130
134
|
historyManager.addRecording(
|
131
135
|
{
|
132
136
|
data: {
|
@@ -135,11 +139,12 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
135
139
|
},
|
136
140
|
filmStripForPreview: null,
|
137
141
|
parsedTrace: trace1Data,
|
138
|
-
|
142
|
+
metadata: metadata1,
|
139
143
|
},
|
140
144
|
);
|
141
145
|
|
142
|
-
const {parsedTrace: trace2Data} =
|
146
|
+
const {parsedTrace: trace2Data, metadata: metadata2} =
|
147
|
+
await TraceLoader.traceEngine(this, 'slow-interaction-keydown.json.gz');
|
143
148
|
historyManager.addRecording({
|
144
149
|
data: {
|
145
150
|
parsedTraceIndex: 2,
|
@@ -147,7 +152,7 @@ describeWithEnvironment('TimelineHistoryManager', function() {
|
|
147
152
|
},
|
148
153
|
filmStripForPreview: null,
|
149
154
|
parsedTrace: trace2Data,
|
150
|
-
|
155
|
+
metadata: metadata2,
|
151
156
|
});
|
152
157
|
|
153
158
|
// Make sure the correct model is returned when
|
@@ -7,7 +7,7 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
7
7
|
import * as Platform from '../../core/platform/platform.js';
|
8
8
|
import * as Root from '../../core/root/root.js';
|
9
9
|
import * as CrUXManager from '../../models/crux-manager/crux-manager.js';
|
10
|
-
import * as Trace from '../../models/trace/trace.js';
|
10
|
+
import type * as Trace from '../../models/trace/trace.js';
|
11
11
|
import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
12
12
|
import * as UI from '../../ui/legacy/legacy.js';
|
13
13
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
@@ -44,27 +44,6 @@ const UIStrings = {
|
|
44
44
|
*@description Text that shows there is no recording
|
45
45
|
*/
|
46
46
|
noRecordings: '(no recordings)',
|
47
|
-
/**
|
48
|
-
*@description Text in Timeline History Manager of the Performance panel
|
49
|
-
*@example {2s} PH1
|
50
|
-
*/
|
51
|
-
sAgo: '({PH1} ago)',
|
52
|
-
/**
|
53
|
-
*@description Text in Timeline History Manager of the Performance panel
|
54
|
-
*/
|
55
|
-
moments: 'moments',
|
56
|
-
/**
|
57
|
-
* @description Text in Timeline History Manager of the Performance panel.
|
58
|
-
* Placeholder is a number and the 'm' is the short form for 'minutes'.
|
59
|
-
* @example {2} PH1
|
60
|
-
*/
|
61
|
-
sM: '{PH1} m',
|
62
|
-
/**
|
63
|
-
* @description Text in Timeline History Manager of the Performance panel.
|
64
|
-
* Placeholder is a number and the 'h' is the short form for 'hours'.
|
65
|
-
* @example {2} PH1
|
66
|
-
*/
|
67
|
-
sH: '{PH1} h',
|
68
47
|
/**
|
69
48
|
*@description Text in Timeline History Manager of the Performance panel
|
70
49
|
*@example {example.com} PH1
|
@@ -75,6 +54,11 @@ const UIStrings = {
|
|
75
54
|
*@description Accessible label for the timeline session selection menu
|
76
55
|
*/
|
77
56
|
selectTimelineSession: 'Select timeline session',
|
57
|
+
/**
|
58
|
+
* @description Text label for a menu item indicating that a specific slowdown multiplier is applied.
|
59
|
+
* @example {2} PH1
|
60
|
+
*/
|
61
|
+
dSlowdown: '{PH1}× slowdown',
|
78
62
|
};
|
79
63
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelineHistoryManager.ts', UIStrings);
|
80
64
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
@@ -102,10 +86,24 @@ export interface NewHistoryRecordingData {
|
|
102
86
|
filmStripForPreview: Trace.Extras.FilmStrip.Data|null;
|
103
87
|
// Also not stored, but used to create the preview overview for a new trace.
|
104
88
|
parsedTrace: Trace.Handlers.Types.ParsedTrace;
|
105
|
-
|
106
|
-
startTime: number|null;
|
89
|
+
metadata: Trace.Types.File.MetaData|null;
|
107
90
|
}
|
108
91
|
|
92
|
+
// Lazily instantiate the formatter as the constructor takes 50ms+
|
93
|
+
// TODO: move me and others like me to i18n module
|
94
|
+
const listFormatter = (function defineFormatter() {
|
95
|
+
let intlListFormat: Intl.ListFormat;
|
96
|
+
return {
|
97
|
+
format(...args: Parameters<Intl.ListFormat['format']>): ReturnType<Intl.ListFormat['format']> {
|
98
|
+
if (!intlListFormat) {
|
99
|
+
const opts: Intl.ListFormatOptions = {type: 'unit', style: 'short'};
|
100
|
+
intlListFormat = new Intl.ListFormat(i18n.DevToolsLocale.DevToolsLocale.instance().locale, opts);
|
101
|
+
}
|
102
|
+
return intlListFormat.format(...args);
|
103
|
+
},
|
104
|
+
};
|
105
|
+
})();
|
106
|
+
|
109
107
|
export class TimelineHistoryManager {
|
110
108
|
private recordings: TraceRecordingHistoryItem[];
|
111
109
|
private readonly action: UI.ActionRegistration.Action;
|
@@ -195,7 +193,7 @@ export class TimelineHistoryManager {
|
|
195
193
|
|
196
194
|
// Order is important: this needs to happen first because lots of the
|
197
195
|
// subsequent code depends on us storing the preview data into the map.
|
198
|
-
this.#buildAndStorePreviewData(newInput.data.parsedTraceIndex, newInput.parsedTrace,
|
196
|
+
this.#buildAndStorePreviewData(newInput.data.parsedTraceIndex, newInput.parsedTrace, newInput.metadata, filmStrip);
|
199
197
|
|
200
198
|
const modelTitle = this.title(newInput.data);
|
201
199
|
this.buttonInternal.setText(modelTitle);
|
@@ -232,7 +230,11 @@ export class TimelineHistoryManager {
|
|
232
230
|
this.recordings = [];
|
233
231
|
this.lastActiveTrace = null;
|
234
232
|
this.updateState();
|
235
|
-
|
233
|
+
if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_OBSERVATIONS)) {
|
234
|
+
this.buttonInternal.setText(i18nString(UIStrings.landingPageTitle));
|
235
|
+
} else {
|
236
|
+
this.buttonInternal.setText(i18nString(UIStrings.noRecordings));
|
237
|
+
}
|
236
238
|
this.nextNumberByDomain.clear();
|
237
239
|
}
|
238
240
|
|
@@ -352,25 +354,9 @@ export class TimelineHistoryManager {
|
|
352
354
|
if (!data) {
|
353
355
|
throw new Error('Unable to find data for model');
|
354
356
|
}
|
355
|
-
const startedAt = data.startTime;
|
356
|
-
data.time.textContent =
|
357
|
-
startedAt ? i18nString(UIStrings.sAgo, {PH1: TimelineHistoryManager.coarseAge(startedAt)}) : '';
|
358
357
|
return data.preview;
|
359
358
|
}
|
360
359
|
|
361
|
-
private static coarseAge(time: number): string {
|
362
|
-
const seconds = Math.round((Date.now() - time) / 1000);
|
363
|
-
if (seconds < 50) {
|
364
|
-
return i18nString(UIStrings.moments);
|
365
|
-
}
|
366
|
-
const minutes = Math.round(seconds / 60);
|
367
|
-
if (minutes < 50) {
|
368
|
-
return i18nString(UIStrings.sM, {PH1: minutes});
|
369
|
-
}
|
370
|
-
const hours = Math.round(minutes / 60);
|
371
|
-
return i18nString(UIStrings.sH, {PH1: hours});
|
372
|
-
}
|
373
|
-
|
374
360
|
private title(item: RecordingData): string {
|
375
361
|
if (item.type === 'LANDING_PAGE') {
|
376
362
|
return i18nString(UIStrings.landingPageTitle);
|
@@ -384,49 +370,51 @@ export class TimelineHistoryManager {
|
|
384
370
|
}
|
385
371
|
|
386
372
|
#buildAndStorePreviewData(
|
387
|
-
parsedTraceIndex: number, parsedTrace: Trace.Handlers.Types.ParsedTrace,
|
388
|
-
filmStrip: Trace.Extras.FilmStrip.Data|null
|
373
|
+
parsedTraceIndex: number, parsedTrace: Trace.Handlers.Types.ParsedTrace, metadata: Trace.Types.File.MetaData|null,
|
374
|
+
filmStrip: Trace.Extras.FilmStrip.Data|null): HTMLDivElement {
|
389
375
|
const parsedURL = Common.ParsedURL.ParsedURL.fromString(parsedTrace.Meta.mainFrameURL);
|
390
376
|
const domain = parsedURL ? parsedURL.host : '';
|
391
377
|
|
392
378
|
const sequenceNumber = this.nextNumberByDomain.get(domain) || 1;
|
393
379
|
const titleWithSequenceNumber = i18nString(UIStrings.sD, {PH1: domain, PH2: sequenceNumber});
|
394
380
|
this.nextNumberByDomain.set(domain, sequenceNumber + 1);
|
395
|
-
const timeElement = document.createElement('span');
|
396
|
-
timeElement.classList.add('time');
|
397
381
|
|
398
382
|
const preview = document.createElement('div');
|
399
383
|
preview.classList.add('preview-item');
|
400
384
|
preview.classList.add('vbox');
|
401
385
|
preview.setAttribute('jslog', `${VisualLogging.dropDown('timeline.history-item').track({click: true})}`);
|
386
|
+
preview.style.width = `${previewWidth}px`;
|
402
387
|
const data = {
|
403
388
|
preview,
|
404
389
|
title: titleWithSequenceNumber,
|
405
|
-
time: timeElement,
|
406
390
|
lastUsed: Date.now(),
|
407
|
-
startTime,
|
408
391
|
};
|
409
392
|
parsedTraceIndexToPerformancePreviewData.set(parsedTraceIndex, data);
|
410
393
|
|
411
|
-
preview.appendChild(this.#buildTextDetails(
|
394
|
+
preview.appendChild(this.#buildTextDetails(metadata, domain));
|
412
395
|
const screenshotAndOverview = preview.createChild('div', 'hbox');
|
413
396
|
screenshotAndOverview.appendChild(this.#buildScreenshotThumbnail(filmStrip));
|
414
397
|
screenshotAndOverview.appendChild(this.#buildOverview(parsedTrace));
|
415
398
|
return data.preview;
|
416
399
|
}
|
417
400
|
|
418
|
-
#buildTextDetails(
|
401
|
+
#buildTextDetails(metadata: Trace.Types.File.MetaData|null, title: string): Element {
|
419
402
|
const container = document.createElement('div');
|
420
403
|
container.classList.add('text-details');
|
421
404
|
container.classList.add('hbox');
|
422
405
|
const nameSpan = container.createChild('span', 'name');
|
423
406
|
nameSpan.textContent = title;
|
424
407
|
UI.ARIAUtils.setLabel(nameSpan, title);
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
408
|
+
|
409
|
+
if (metadata) {
|
410
|
+
const parts = [
|
411
|
+
metadata.emulatedDeviceTitle,
|
412
|
+
metadata.cpuThrottling ? i18nString(UIStrings.dSlowdown, {PH1: metadata.cpuThrottling}) : undefined,
|
413
|
+
metadata.networkThrottling,
|
414
|
+
].filter(Boolean);
|
415
|
+
container.createChild('span', 'metadata').textContent = listFormatter.format(parts as string[]);
|
416
|
+
}
|
417
|
+
|
430
418
|
return container;
|
431
419
|
}
|
432
420
|
|
@@ -482,16 +470,14 @@ export class TimelineHistoryManager {
|
|
482
470
|
}
|
483
471
|
|
484
472
|
export const maxRecordings = 5;
|
485
|
-
export const previewWidth =
|
473
|
+
export const previewWidth = 500;
|
486
474
|
// The reason we store a global map is because the Dropdown component needs to
|
487
475
|
// be able to read the preview data in order to show a preview in the dropdown.
|
488
476
|
const parsedTraceIndexToPerformancePreviewData = new Map<number, PreviewData>();
|
489
477
|
|
490
478
|
export interface PreviewData {
|
491
479
|
preview: Element;
|
492
|
-
time: Element;
|
493
480
|
lastUsed: number;
|
494
|
-
startTime: number|null;
|
495
481
|
title: string;
|
496
482
|
}
|
497
483
|
|
@@ -621,6 +607,8 @@ export class DropDown implements UI.ListControl.ListDelegate<number> {
|
|
621
607
|
div.classList.add('preview-item');
|
622
608
|
div.classList.add('landing-page-item');
|
623
609
|
|
610
|
+
div.style.width = `${previewWidth}px`;
|
611
|
+
|
624
612
|
const icon = IconButton.Icon.create('arrow-back');
|
625
613
|
div.appendChild(icon);
|
626
614
|
|
@@ -68,7 +68,7 @@ export class TimelineLayersView extends UI.SplitWidget.SplitWidget {
|
|
68
68
|
}
|
69
69
|
}
|
70
70
|
|
71
|
-
|
71
|
+
override update(): void {
|
72
72
|
if (this.frameLayerTree) {
|
73
73
|
void this.frameLayerTree.layerTreePromise().then(layerTree => this.layerViewHost.setLayerTree(layerTree));
|
74
74
|
}
|
@@ -6,6 +6,7 @@ import * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as Host from '../../core/host/host.js';
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
8
8
|
import type * as Platform from '../../core/platform/platform.js';
|
9
|
+
import * as SDK from '../../core/sdk/sdk.js';
|
9
10
|
import type * as Protocol from '../../generated/protocol.js';
|
10
11
|
import * as Bindings from '../../models/bindings/bindings.js';
|
11
12
|
import * as Trace from '../../models/trace/trace.js';
|
@@ -147,6 +148,21 @@ export class TimelineLoader implements Common.StringOutputStream.OutputStream {
|
|
147
148
|
|
148
149
|
if ('metadata' in trace) {
|
149
150
|
this.#metadata = trace.metadata;
|
151
|
+
|
152
|
+
// Older traces set these fields even when throttling is not active, while newer traces do not.
|
153
|
+
// Clear them out on load to simplify usage.
|
154
|
+
if (this.#metadata.cpuThrottling === 1) {
|
155
|
+
this.#metadata.cpuThrottling = undefined;
|
156
|
+
}
|
157
|
+
// This string is translated, so this only covers the english case and the current locale.
|
158
|
+
// Due to this, older traces in other locales will end up displaying "No throttling" in the trace history selector.
|
159
|
+
const noThrottlingString = typeof SDK.NetworkManager.NoThrottlingConditions.title === 'string' ?
|
160
|
+
SDK.NetworkManager.NoThrottlingConditions.title :
|
161
|
+
SDK.NetworkManager.NoThrottlingConditions.title();
|
162
|
+
if (this.#metadata.networkThrottling === 'No throttling' ||
|
163
|
+
this.#metadata.networkThrottling === noThrottlingString) {
|
164
|
+
this.#metadata.networkThrottling = undefined;
|
165
|
+
}
|
150
166
|
}
|
151
167
|
}
|
152
168
|
|
@@ -202,8 +202,8 @@ export class TimelineMiniMap extends
|
|
202
202
|
};
|
203
203
|
}
|
204
204
|
|
205
|
-
highlightBounds(bounds: Trace.Types.Timing.TraceWindowMicroSeconds): void {
|
206
|
-
this.#overviewComponent.highlightBounds(bounds);
|
205
|
+
highlightBounds(bounds: Trace.Types.Timing.TraceWindowMicroSeconds, withBracket: boolean = false): void {
|
206
|
+
this.#overviewComponent.highlightBounds(bounds, withBracket);
|
207
207
|
}
|
208
208
|
clearBoundsHighlight(): void {
|
209
209
|
this.#overviewComponent.clearBoundsHighlight();
|
@@ -137,7 +137,7 @@ export class TimelinePaintProfilerView extends UI.SplitWidget.SplitWidget {
|
|
137
137
|
return tracingLayerTree ? tracingLayerTree.pictureForRasterTile(data.tileId.id_ref) : null;
|
138
138
|
}
|
139
139
|
|
140
|
-
|
140
|
+
override update(): void {
|
141
141
|
this.logTreeView.setCommandLog([]);
|
142
142
|
void this.paintProfilerView.setSnapshotAndLog(null, [], null);
|
143
143
|
|