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
@@ -95,9 +95,13 @@ export class Infobar {
|
|
95
95
|
buttonClass += ' primary-button';
|
96
96
|
}
|
97
97
|
|
98
|
+
const buttonVariant = action.buttonVariant ?? Buttons.Button.Variant.OUTLINED;
|
99
|
+
|
98
100
|
const button = createTextButton(action.text, actionCallback, {
|
99
101
|
className: buttonClass,
|
100
102
|
jslogContext: action.jslogContext,
|
103
|
+
variant: buttonVariant,
|
104
|
+
icon: action.icon,
|
101
105
|
});
|
102
106
|
if (action.highlight && !this.#firstFocusableElement) {
|
103
107
|
this.#firstFocusableElement = button;
|
@@ -246,6 +250,8 @@ export interface InfobarAction {
|
|
246
250
|
highlight: boolean;
|
247
251
|
delegate: (() => void)|null;
|
248
252
|
dismiss: boolean;
|
253
|
+
buttonVariant?: Buttons.Button.Variant;
|
254
|
+
icon?: string;
|
249
255
|
jslogContext?: string;
|
250
256
|
}
|
251
257
|
|
@@ -32,10 +32,12 @@ import * as Common from '../../core/common/common.js';
|
|
32
32
|
import * as Host from '../../core/host/host.js';
|
33
33
|
import * as i18n from '../../core/i18n/i18n.js';
|
34
34
|
import * as Root from '../../core/root/root.js';
|
35
|
+
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
35
36
|
import * as IconButton from '../components/icon_button/icon_button.js';
|
36
37
|
import * as VisualLogging from '../visual_logging/visual_logging.js';
|
37
38
|
|
38
39
|
import type {ActionDelegate as ActionDelegateInterface} from './ActionRegistration.js';
|
40
|
+
import {ActionRegistry} from './ActionRegistry.js';
|
39
41
|
import * as ARIAUtils from './ARIAUtils.js';
|
40
42
|
import type {Context} from './Context.js';
|
41
43
|
import type {ContextMenu} from './ContextMenu.js';
|
@@ -67,6 +69,10 @@ const UIStrings = {
|
|
67
69
|
*@description The aria label for main tabbed pane that contains Panels
|
68
70
|
*/
|
69
71
|
panels: 'Panels',
|
72
|
+
/**
|
73
|
+
*@description Title of an action that reloads the tab currently being debugged by DevTools
|
74
|
+
*/
|
75
|
+
reloadDebuggedTab: 'Reload',
|
70
76
|
/**
|
71
77
|
*@description Title of an action that reloads the DevTools
|
72
78
|
*/
|
@@ -476,6 +482,36 @@ export class InspectorView extends VBox implements ViewLocationResolver {
|
|
476
482
|
}
|
477
483
|
}
|
478
484
|
|
485
|
+
displayDebuggedTabReloadRequiredWarning(message: string): void {
|
486
|
+
if (!this.reloadRequiredInfobar) {
|
487
|
+
const infobar = new Infobar(
|
488
|
+
InfobarType.INFO, message,
|
489
|
+
[
|
490
|
+
{
|
491
|
+
text: i18nString(UIStrings.reloadDebuggedTab),
|
492
|
+
highlight: true,
|
493
|
+
delegate: () => {
|
494
|
+
reloadDebuggedTab();
|
495
|
+
if (this.reloadRequiredInfobar) {
|
496
|
+
this.reloadRequiredInfobar.dispose();
|
497
|
+
}
|
498
|
+
},
|
499
|
+
dismiss: false,
|
500
|
+
buttonVariant: Buttons.Button.Variant.PRIMARY,
|
501
|
+
icon: 'refresh',
|
502
|
+
jslogContext: 'main.debug-reload',
|
503
|
+
},
|
504
|
+
],
|
505
|
+
undefined, undefined, 'reload-required');
|
506
|
+
infobar.setParentView(this);
|
507
|
+
this.attachInfobar(infobar);
|
508
|
+
this.reloadRequiredInfobar = infobar;
|
509
|
+
infobar.setCloseCallback(() => {
|
510
|
+
delete this.reloadRequiredInfobar;
|
511
|
+
});
|
512
|
+
}
|
513
|
+
}
|
514
|
+
|
479
515
|
displayReloadRequiredWarning(message: string): void {
|
480
516
|
if (!this.reloadRequiredInfobar) {
|
481
517
|
const infobar = new Infobar(
|
@@ -602,6 +638,10 @@ function reloadDevTools(): void {
|
|
602
638
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.reattach(() => window.location.reload());
|
603
639
|
}
|
604
640
|
|
641
|
+
function reloadDebuggedTab(): void {
|
642
|
+
void ActionRegistry.instance().getAction('inspector-main.reload').execute();
|
643
|
+
}
|
644
|
+
|
605
645
|
export class ActionDelegate implements ActionDelegateInterface {
|
606
646
|
handleAction(context: Context, actionId: string): boolean {
|
607
647
|
switch (actionId) {
|
@@ -199,8 +199,10 @@ export class ListWidget<T> extends VBox {
|
|
199
199
|
this.element.focus();
|
200
200
|
this.delegate.removeItemRequested(this.items[index], index);
|
201
201
|
ARIAUtils.alert(i18nString(UIStrings.removedItem));
|
202
|
-
|
203
|
-
|
202
|
+
if (this.elements.length >= 1) {
|
203
|
+
// focus on the next item in the list, or the last item if we're removing the last item
|
204
|
+
(this.elements[Math.min(index, this.elements.length - 1)] as HTMLElement).focus();
|
205
|
+
}
|
204
206
|
}
|
205
207
|
}
|
206
208
|
|
@@ -16,11 +16,11 @@ export class ThrottledWidget extends VBox {
|
|
16
16
|
this.updateWhenVisible = false;
|
17
17
|
}
|
18
18
|
|
19
|
-
protected doUpdate(): Promise<void> {
|
19
|
+
protected override doUpdate(): Promise<void> {
|
20
20
|
return Promise.resolve();
|
21
21
|
}
|
22
22
|
|
23
|
-
update(): void {
|
23
|
+
override update(): void {
|
24
24
|
this.updateWhenVisible = !this.isShowing();
|
25
25
|
if (this.updateWhenVisible) {
|
26
26
|
return;
|
@@ -1028,9 +1028,9 @@ export class ToolbarMenuButton extends ToolbarCombobox {
|
|
1028
1028
|
useSoftMenu: this.useSoftMenu,
|
1029
1029
|
x: this.element.getBoundingClientRect().left,
|
1030
1030
|
y: this.element.getBoundingClientRect().top + this.element.offsetHeight,
|
1031
|
-
// Without
|
1032
|
-
// context menu to be closed and immediately re-opened on Windows (https://crbug.com/339560549).
|
1033
|
-
onSoftMenuClosed: () =>
|
1031
|
+
// Without adding a delay, pointer events will be un-ignored too early, and a single click causes
|
1032
|
+
// the context menu to be closed and immediately re-opened on Windows (https://crbug.com/339560549).
|
1033
|
+
onSoftMenuClosed: () => setTimeout(() => this.element.removeAttribute('aria-expanded'), 50),
|
1034
1034
|
});
|
1035
1035
|
this.contextMenuHandler(contextMenu);
|
1036
1036
|
this.element.setAttribute('aria-expanded', 'true');
|
@@ -1091,12 +1091,15 @@ export function createTextButton(text: string, clickHandler?: ((arg0: Event) =>
|
|
1091
1091
|
jslogContext?: string,
|
1092
1092
|
variant?: Buttons.Button.Variant,
|
1093
1093
|
title?: string,
|
1094
|
+
icon?: string,
|
1094
1095
|
}): Buttons.Button.Button {
|
1095
1096
|
const button = new Buttons.Button.Button();
|
1096
1097
|
if (opts?.className) {
|
1097
1098
|
button.className = opts.className;
|
1098
1099
|
}
|
1100
|
+
|
1099
1101
|
button.textContent = text;
|
1102
|
+
button.iconName = opts?.icon;
|
1100
1103
|
button.variant = opts?.variant ? opts.variant : Buttons.Button.Variant.OUTLINED;
|
1101
1104
|
if (clickHandler) {
|
1102
1105
|
button.addEventListener('click', clickHandler);
|
@@ -1213,7 +1216,7 @@ export function setTitle(element: HTMLElement, title: string): void {
|
|
1213
1216
|
Tooltip.install(element, title);
|
1214
1217
|
}
|
1215
1218
|
|
1216
|
-
export class CheckboxLabel extends
|
1219
|
+
export class CheckboxLabel extends HTMLElement {
|
1217
1220
|
private readonly shadowRootInternal!: DocumentFragment;
|
1218
1221
|
checkboxElement!: HTMLInputElement;
|
1219
1222
|
textElement!: HTMLElement;
|
@@ -1234,10 +1237,7 @@ export class CheckboxLabel extends HTMLSpanElement {
|
|
1234
1237
|
|
1235
1238
|
static create(title?: string, checked?: boolean, subtitle?: string, jslogContext?: string, small?: boolean):
|
1236
1239
|
CheckboxLabel {
|
1237
|
-
|
1238
|
-
CheckboxLabel.constructorInternal = registerCustomElement('span', 'dt-checkbox', CheckboxLabel);
|
1239
|
-
}
|
1240
|
-
const element = (CheckboxLabel.constructorInternal() as CheckboxLabel);
|
1240
|
+
const element = document.createElement('dt-checkbox') as CheckboxLabel;
|
1241
1241
|
element.checkboxElement.checked = Boolean(checked);
|
1242
1242
|
if (jslogContext) {
|
1243
1243
|
element.checkboxElement.setAttribute(
|
@@ -1255,9 +1255,11 @@ export class CheckboxLabel extends HTMLSpanElement {
|
|
1255
1255
|
}
|
1256
1256
|
|
1257
1257
|
private static lastId = 0;
|
1258
|
-
static constructorInternal: (() => Element)|null = null;
|
1259
1258
|
}
|
1260
1259
|
|
1260
|
+
// Skip registerCustomElement flow as it's incompatible with Safari with this specific custom element.
|
1261
|
+
self.customElements.define('dt-checkbox', CheckboxLabel);
|
1262
|
+
|
1261
1263
|
export class DevToolsIconLabel extends HTMLSpanElement {
|
1262
1264
|
readonly #icon: IconButton.Icon.Icon;
|
1263
1265
|
|
@@ -33,6 +33,7 @@ import '../../core/dom_extension/dom_extension.js';
|
|
33
33
|
import * as Platform from '../../core/platform/platform.js';
|
34
34
|
import * as LitHtml from '../../ui/lit-html/lit-html.js';
|
35
35
|
import * as Helpers from '../components/helpers/helpers.js';
|
36
|
+
import * as RenderCoordinator from '../components/render_coordinator/render_coordinator.js';
|
36
37
|
|
37
38
|
import {Constraints, Size} from './Geometry.js';
|
38
39
|
import * as ThemeSupport from './theme_support/theme_support.js';
|
@@ -109,6 +110,8 @@ function decrementWidgetCounter(parentElement: Element, childElement: Element):
|
|
109
110
|
}
|
110
111
|
}
|
111
112
|
|
113
|
+
let id = 0;
|
114
|
+
|
112
115
|
export class Widget {
|
113
116
|
readonly element: HTMLElement;
|
114
117
|
contentElement: HTMLElement;
|
@@ -127,6 +130,7 @@ export class Widget {
|
|
127
130
|
private constraintsInternal?: Constraints;
|
128
131
|
private invalidationsRequested?: boolean;
|
129
132
|
private externallyManaged?: boolean;
|
133
|
+
#id = `${this.constructor.name}_${id++}`;
|
130
134
|
constructor(useShadowDom?: boolean, delegatesFocus?: boolean, element?: HTMLElement) {
|
131
135
|
this.element = element || document.createElement('div');
|
132
136
|
this.shadowRoot = this.element.shadowRoot || undefined;
|
@@ -665,6 +669,34 @@ export class Widget {
|
|
665
669
|
assert(!this.parentWidgetInternal, 'Attempt to mark widget as externally managed after insertion to the DOM');
|
666
670
|
this.externallyManaged = true;
|
667
671
|
}
|
672
|
+
|
673
|
+
/**
|
674
|
+
* Called by the RenderCoordinator to perform an update.
|
675
|
+
* This is not meant to be called directly. Instead, use update() to schedule an asynchronous update.
|
676
|
+
*
|
677
|
+
* @returns A promise that resolves when the update is complete.
|
678
|
+
*/
|
679
|
+
protected doUpdate(): Promise<void> {
|
680
|
+
return Promise.resolve();
|
681
|
+
}
|
682
|
+
|
683
|
+
/**
|
684
|
+
* Schedules an asynchronous update. The update will be deduplicated and executed with the animation frame.
|
685
|
+
*/
|
686
|
+
update(): void {
|
687
|
+
void RenderCoordinator.RenderCoordinator.RenderCoordinator.instance().write(this.#id, () => this.doUpdate());
|
688
|
+
}
|
689
|
+
|
690
|
+
/**
|
691
|
+
* Returns a promise that resolves when the pending update is complete.
|
692
|
+
* Returns a resolved promise if there is no pending update.
|
693
|
+
` *
|
694
|
+
* @returns A probleme that resolves when the pending update is complete.
|
695
|
+
*/
|
696
|
+
pendingUpdate(): Promise<void> {
|
697
|
+
return RenderCoordinator.RenderCoordinator.RenderCoordinator.instance().findPendingWrite(this.#id) ||
|
698
|
+
Promise.resolve();
|
699
|
+
}
|
668
700
|
}
|
669
701
|
|
670
702
|
const storedScrollPositions = new WeakMap<Element, {
|
@@ -20,13 +20,11 @@ describeWithEnvironment('DataGrid', () => {
|
|
20
20
|
let widget!: DataGrid.DataGrid.DataGridWidget<unknown>;
|
21
21
|
|
22
22
|
const dataGridOptions: DataGrid.DataGrid.DataGridWidgetOptions<unknown> = {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
}],
|
29
|
-
},
|
23
|
+
displayName: 'testGrid',
|
24
|
+
columns: [{
|
25
|
+
id: 'test',
|
26
|
+
sortable: false,
|
27
|
+
}],
|
30
28
|
nodes: [new DataGrid.DataGrid.DataGridNode({test: 'testNode'})],
|
31
29
|
markAsRoot: true,
|
32
30
|
};
|
@@ -34,6 +32,7 @@ describeWithEnvironment('DataGrid', () => {
|
|
34
32
|
// clang-format off
|
35
33
|
render(
|
36
34
|
html`
|
35
|
+
<!-- @ts-ignore -->
|
37
36
|
<devtools-data-grid-widget
|
38
37
|
.options=${dataGridOptions}
|
39
38
|
${widgetRef(DataGrid.DataGrid.DataGridWidget, e => { widget = e; })}
|
@@ -42,8 +41,6 @@ describeWithEnvironment('DataGrid', () => {
|
|
42
41
|
container, {host: this});
|
43
42
|
// clang-format on
|
44
43
|
|
45
|
-
await new Promise(resolve => setTimeout(resolve, 0));
|
46
|
-
|
47
44
|
assert.exists(widget);
|
48
45
|
// There is a single test row
|
49
46
|
assert.strictEqual(widget.dataGrid.rootNode().children.length, 1);
|
@@ -1703,7 +1703,7 @@ export class DataGridNode<T> {
|
|
1703
1703
|
return this.elementInternal as Element;
|
1704
1704
|
}
|
1705
1705
|
|
1706
|
-
protected createElement():
|
1706
|
+
protected createElement(): HTMLElement {
|
1707
1707
|
this.elementInternal = document.createElement('tr');
|
1708
1708
|
this.elementInternal.setAttribute(
|
1709
1709
|
'jslog', `${VisualLogging.tableRow().track({keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space'})}`);
|
@@ -1736,7 +1736,7 @@ export class DataGridNode<T> {
|
|
1736
1736
|
return this.elementInternal;
|
1737
1737
|
}
|
1738
1738
|
|
1739
|
-
existingElement():
|
1739
|
+
existingElement(): HTMLElement|null {
|
1740
1740
|
return this.elementInternal || null;
|
1741
1741
|
}
|
1742
1742
|
|
@@ -2471,61 +2471,62 @@ export class DataGridWidget<T> extends UI.Widget.VBox {
|
|
2471
2471
|
}
|
2472
2472
|
}
|
2473
2473
|
|
2474
|
-
export
|
2475
|
-
|
2476
|
-
|
2477
|
-
|
2478
|
-
nodes: DataGridNode<T>[];
|
2479
|
-
}
|
2474
|
+
export type DataGridWidgetOptions<T> = Parameters&{
|
2475
|
+
markAsRoot?: boolean,
|
2476
|
+
striped?: boolean, nodes: DataGridNode<T>[],
|
2477
|
+
};
|
2480
2478
|
|
2481
2479
|
export class DataGridWidgetElement<T> extends UI.Widget.WidgetElement<DataGridWidget<T>> {
|
2482
2480
|
#options: DataGridWidgetOptions<T>;
|
2481
|
+
widget?: DataGridWidget<T>;
|
2483
2482
|
|
2484
2483
|
constructor() {
|
2485
2484
|
super();
|
2486
2485
|
// default values for options
|
2487
2486
|
this.#options = {
|
2488
|
-
|
2489
|
-
|
2490
|
-
columns: [],
|
2491
|
-
},
|
2487
|
+
displayName: 'dataGrid',
|
2488
|
+
columns: [],
|
2492
2489
|
nodes: [],
|
2493
2490
|
};
|
2494
2491
|
}
|
2495
2492
|
|
2496
2493
|
set options(options: DataGridWidgetOptions<T>) {
|
2497
2494
|
this.#options = options;
|
2495
|
+
this.#updateGrid();
|
2498
2496
|
}
|
2499
2497
|
|
2500
2498
|
override createWidget(): DataGridWidget<T> {
|
2501
|
-
const
|
2502
|
-
implParams,
|
2503
|
-
markAsRoot,
|
2504
|
-
nodes,
|
2505
|
-
} = this.#options;
|
2499
|
+
const dataGridImpl = new DataGridImpl<T>(this.#options);
|
2506
2500
|
|
2507
|
-
|
2508
|
-
|
2509
|
-
|
2501
|
+
// Translate existing DataGridImpl ("ObjectWrapper") events to DOM CustomEvents so clients can
|
2502
|
+
// use lit templates to bind listeners.
|
2503
|
+
dataGridImpl.addEventListener(Events.SELECTED_NODE, this.#selectedNode.bind(this));
|
2504
|
+
dataGridImpl.addEventListener(Events.DESELECTED_NODE, this.#deselectedNode.bind(this));
|
2505
|
+
dataGridImpl.addEventListener(Events.OPENED_NODE, this.#openedNode.bind(this));
|
2506
|
+
dataGridImpl.addEventListener(Events.SORTING_CHANGED, this.#sortingChanged.bind(this));
|
2507
|
+
dataGridImpl.addEventListener(Events.PADDING_CHANGED, this.#paddingChanged.bind(this));
|
2508
|
+
this.widget = dataGridImpl.asWidget(this);
|
2510
2509
|
|
2511
|
-
this.#options.
|
2512
|
-
|
2513
|
-
this.#options.dataGridImpl.rootNode().appendChild(node);
|
2510
|
+
if (this.#options.markAsRoot) {
|
2511
|
+
this.widget.markAsRoot();
|
2514
2512
|
}
|
2515
2513
|
|
2516
|
-
|
2517
|
-
|
2518
|
-
|
2519
|
-
|
2520
|
-
this.#options.dataGridImpl.addEventListener(Events.OPENED_NODE, this.#openedNode.bind(this));
|
2521
|
-
this.#options.dataGridImpl.addEventListener(Events.SORTING_CHANGED, this.#sortingChanged.bind(this));
|
2522
|
-
this.#options.dataGridImpl.addEventListener(Events.PADDING_CHANGED, this.#paddingChanged.bind(this));
|
2523
|
-
const widget = this.#options.dataGridImpl.asWidget(this);
|
2514
|
+
this.#updateGrid();
|
2515
|
+
|
2516
|
+
return this.widget;
|
2517
|
+
}
|
2524
2518
|
|
2525
|
-
|
2526
|
-
|
2519
|
+
#updateGrid(): void {
|
2520
|
+
if (this.widget) {
|
2521
|
+
this.widget.dataGrid.rootNode().removeChildren();
|
2522
|
+
for (const node of this.#options.nodes) {
|
2523
|
+
this.widget.dataGrid.rootNode().appendChild(node);
|
2524
|
+
}
|
2525
|
+
|
2526
|
+
if (this.#options.striped) {
|
2527
|
+
this.widget.dataGrid.setStriped(true);
|
2528
|
+
}
|
2527
2529
|
}
|
2528
|
-
return widget;
|
2529
2530
|
}
|
2530
2531
|
|
2531
2532
|
#selectedNode(event: Common.EventTarget.EventTargetEvent<DataGridNode<T>>): void {
|
@@ -270,7 +270,7 @@ export class ViewportDataGridNode<T> extends DataGridNode<ViewportDataGridNode<T
|
|
270
270
|
this.isStripedInternal = false;
|
271
271
|
}
|
272
272
|
|
273
|
-
override element():
|
273
|
+
override element(): HTMLElement {
|
274
274
|
const existingElement = this.existingElement();
|
275
275
|
const element = existingElement || this.createElement();
|
276
276
|
if (!existingElement || this.stale) {
|
@@ -221,7 +221,7 @@ export class ChartViewport extends UI.Widget.VBox {
|
|
221
221
|
private onMouseWheel(e: Event): void {
|
222
222
|
const wheelEvent = (e as WheelEvent);
|
223
223
|
const doZoomInstead = wheelEvent.shiftKey !==
|
224
|
-
(Common.Settings.Settings.instance().moduleSetting('flamechart-
|
224
|
+
(Common.Settings.Settings.instance().moduleSetting('flamechart-selected-navigation').get() === 'classic');
|
225
225
|
const panVertically = !doZoomInstead && (wheelEvent.deltaY || Math.abs(wheelEvent.deltaX) === 53);
|
226
226
|
const panHorizontally = doZoomInstead && Math.abs(wheelEvent.deltaX) > Math.abs(wheelEvent.deltaY);
|
227
227
|
if (panVertically) {
|
@@ -471,7 +471,7 @@ export class ChartViewport extends UI.Widget.VBox {
|
|
471
471
|
});
|
472
472
|
}
|
473
473
|
|
474
|
-
|
474
|
+
override update(): void {
|
475
475
|
this.updateRangeSelectionOverlay();
|
476
476
|
this.delegate.update();
|
477
477
|
}
|
@@ -264,6 +264,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
264
264
|
private chartViewport: ChartViewport;
|
265
265
|
private dataProvider: FlameChartDataProvider;
|
266
266
|
private candyStripePattern: CanvasPattern|null;
|
267
|
+
private candyStripePatternGray: CanvasPattern|null;
|
267
268
|
private contextMenu?: UI.ContextMenu.ContextMenu;
|
268
269
|
private viewportElement: HTMLElement;
|
269
270
|
private canvas: HTMLCanvasElement;
|
@@ -281,14 +282,13 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
281
282
|
private textPadding: number;
|
282
283
|
private highlightedMarkerIndex: number;
|
283
284
|
/**
|
284
|
-
*
|
285
|
-
*
|
286
|
-
* to click for this to be updated.
|
285
|
+
* The index of the entry that's hovered (typically), or focused because of searchResult or other reasons.focused via searchResults, or focused by other means.
|
286
|
+
* Updated as the cursor moves. Meanwhile `selectedEntryIndex` is the entry that's been clicked.
|
287
287
|
**/
|
288
288
|
private highlightedEntryIndex: number;
|
289
289
|
/**
|
290
290
|
* Represents the index of the entry that is selected. For an entry to be
|
291
|
-
* selected, it has to be clicked by the user.
|
291
|
+
* selected, it has to be clicked by the user (generally).
|
292
292
|
**/
|
293
293
|
private selectedEntryIndex: number;
|
294
294
|
private rawTimelineDataLength: number;
|
@@ -365,7 +365,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
365
365
|
|
366
366
|
this.viewportElement = this.chartViewport.viewportElement;
|
367
367
|
this.canvas = (this.viewportElement.createChild('canvas', 'fill') as HTMLCanvasElement);
|
368
|
-
this.candyStripePattern = null;
|
368
|
+
this.candyStripePattern = this.candyStripePatternGray = null;
|
369
369
|
|
370
370
|
this.canvas.tabIndex = 0;
|
371
371
|
UI.ARIAUtils.setLabel(this.canvas, i18nString(UIStrings.flameChart));
|
@@ -600,7 +600,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
600
600
|
this.dispatchEventToListeners(Events.ENTRY_HOVERED, -1);
|
601
601
|
}
|
602
602
|
|
603
|
-
private createCandyStripePattern(): CanvasPattern {
|
603
|
+
private createCandyStripePattern(color: string): CanvasPattern {
|
604
604
|
// Set the candy stripe pattern to 17px so it repeats well.
|
605
605
|
const size = 17;
|
606
606
|
const candyStripeCanvas = document.createElement('canvas');
|
@@ -613,7 +613,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
613
613
|
ctx.rotate(Math.PI * 0.25);
|
614
614
|
ctx.translate(-size * 0.5, -size * 0.5);
|
615
615
|
|
616
|
-
ctx.fillStyle =
|
616
|
+
ctx.fillStyle = color;
|
617
617
|
for (let x = -size; x < size * 2; x += 3) {
|
618
618
|
ctx.fillRect(x, -size, 1, size * 3);
|
619
619
|
}
|
@@ -804,7 +804,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
804
804
|
return null;
|
805
805
|
}
|
806
806
|
const element = document.createElement('div');
|
807
|
-
element.createChild('span', '
|
807
|
+
element.createChild('span', 'popoverinfo-title').textContent = iconTooltip;
|
808
808
|
|
809
809
|
return element;
|
810
810
|
}
|
@@ -870,12 +870,11 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
870
870
|
}
|
871
871
|
const group = data.groups.at(this.selectedGroupIndex);
|
872
872
|
// If the mouse is hovering over the hidden descendants arrow, get an element that shows how many children are hidden, otherwise an element with the event name and length
|
873
|
-
const
|
874
|
-
this.dataProvider.
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
this.popoverElement.appendChild(entryInfo);
|
873
|
+
const popoverElement = (isMouseOverRevealChildrenArrow && group) ?
|
874
|
+
this.dataProvider.preparePopoverForCollapsedArrow?.(entryIndex) :
|
875
|
+
entryIndex !== null && this.dataProvider.preparePopoverElement(entryIndex);
|
876
|
+
if (popoverElement) {
|
877
|
+
this.popoverElement.appendChild(popoverElement);
|
879
878
|
this.updatePopoverOffset();
|
880
879
|
}
|
881
880
|
this.lastPopoverState = {
|
@@ -2311,8 +2310,12 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
2311
2310
|
// If the duration of the event is less than the start time to draw the candy stripes, then we have no stripes to draw.
|
2312
2311
|
continue;
|
2313
2312
|
}
|
2314
|
-
if (!this.candyStripePattern) {
|
2315
|
-
|
2313
|
+
if (!this.candyStripePattern || !this.candyStripePatternGray) {
|
2314
|
+
const red = 'rgba(255, 0, 0, 0.8)';
|
2315
|
+
this.candyStripePattern = this.createCandyStripePattern(red);
|
2316
|
+
const parsedColor = Common.Color.parse(red);
|
2317
|
+
const dimmed = parsedColor?.asLegacyColor().grayscale().asString() ?? 'lightgrey';
|
2318
|
+
this.candyStripePatternGray = this.createCandyStripePattern(dimmed);
|
2316
2319
|
}
|
2317
2320
|
|
2318
2321
|
context.save();
|
@@ -2330,7 +2333,8 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
2330
2333
|
startX: barXStart,
|
2331
2334
|
width: barXEnd - barXStart,
|
2332
2335
|
});
|
2333
|
-
context.fillStyle =
|
2336
|
+
context.fillStyle =
|
2337
|
+
this.#shouldDimEvent(entryIndex) ? this.candyStripePatternGray : this.candyStripePattern;
|
2334
2338
|
context.fill();
|
2335
2339
|
context.restore();
|
2336
2340
|
break;
|
@@ -2359,7 +2363,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
2359
2363
|
context.rect(barX, barY, barWidth, barHeight);
|
2360
2364
|
context.clip();
|
2361
2365
|
context.beginPath();
|
2362
|
-
context.fillStyle = 'red';
|
2366
|
+
context.fillStyle = this.#transformColor(entryIndex, 'red');
|
2363
2367
|
context.moveTo(barX + barWidth - triangleWidth, barY);
|
2364
2368
|
context.lineTo(barX + barWidth, barY);
|
2365
2369
|
context.lineTo(barX + barWidth, barY + triangleHeight);
|
@@ -2877,13 +2881,14 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
2877
2881
|
}
|
2878
2882
|
const unclippedBarX = this.chartViewport.timeToPosition(entryStartTime);
|
2879
2883
|
if (this.dataProvider.decorateEntry(
|
2880
|
-
entryIndex, context, text, barX, barY, barWidth, barHeight, unclippedBarX, timeToPixel
|
2884
|
+
entryIndex, context, text, barX, barY, barWidth, barHeight, unclippedBarX, timeToPixel,
|
2885
|
+
color => this.#transformColor(entryIndex, color))) {
|
2881
2886
|
continue;
|
2882
2887
|
}
|
2883
2888
|
if (!text || !text.length) {
|
2884
2889
|
continue;
|
2885
2890
|
}
|
2886
|
-
context.fillStyle = this.dataProvider.textColor(entryIndex);
|
2891
|
+
context.fillStyle = this.#transformColor(entryIndex, this.dataProvider.textColor(entryIndex));
|
2887
2892
|
context.fillText(text, barX + textPadding, barY + barHeight - this.textBaseline);
|
2888
2893
|
}
|
2889
2894
|
|
@@ -3051,7 +3056,8 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
3051
3056
|
context.fillStyle = color;
|
3052
3057
|
context.fillRect(barX, y, barWidth, groupBarHeight - 1);
|
3053
3058
|
this.dataProvider.decorateEntry(
|
3054
|
-
entryIndex, context, '', barX, y, barWidth, groupBarHeight, unclippedBarX, timeToPixel
|
3059
|
+
entryIndex, context, '', barX, y, barWidth, groupBarHeight, unclippedBarX, timeToPixel,
|
3060
|
+
color => this.#transformColor(entryIndex, color));
|
3055
3061
|
continue;
|
3056
3062
|
}
|
3057
3063
|
range.append(new Common.SegmentedRange.Segment(barX, endBarX, color));
|
@@ -3875,7 +3881,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
3875
3881
|
this.scheduleUpdate();
|
3876
3882
|
}
|
3877
3883
|
|
3878
|
-
update(): void {
|
3884
|
+
override update(): void {
|
3879
3885
|
if (!this.timelineData()) {
|
3880
3886
|
return;
|
3881
3887
|
}
|
@@ -4093,9 +4099,9 @@ export interface FlameChartDataProvider {
|
|
4093
4099
|
|
4094
4100
|
timelineData(rebuild?: boolean): FlameChartTimelineData|null;
|
4095
4101
|
|
4096
|
-
|
4102
|
+
preparePopoverElement(entryIndex: number): Element|null;
|
4097
4103
|
|
4098
|
-
|
4104
|
+
preparePopoverForCollapsedArrow?(entryIndex: number): Element|null;
|
4099
4105
|
|
4100
4106
|
canJumpToEntry(entryIndex: number): boolean;
|
4101
4107
|
|
@@ -4107,7 +4113,8 @@ export interface FlameChartDataProvider {
|
|
4107
4113
|
|
4108
4114
|
decorateEntry(
|
4109
4115
|
entryIndex: number, context: CanvasRenderingContext2D, text: string|null, barX: number, barY: number,
|
4110
|
-
barWidth: number, barHeight: number, unclippedBarX: number, timeToPixelRatio: number
|
4116
|
+
barWidth: number, barHeight: number, unclippedBarX: number, timeToPixelRatio: number,
|
4117
|
+
transformColor?: (color: string) => string): boolean;
|
4111
4118
|
|
4112
4119
|
forceDecoration(entryIndex: number): boolean;
|
4113
4120
|
|
@@ -10,15 +10,24 @@ export class TimelineOverviewCalculator implements Calculator {
|
|
10
10
|
#minimumBoundary: Trace.Types.Timing.MilliSeconds = Trace.Types.Timing.MilliSeconds(0);
|
11
11
|
#maximumBoundary: Trace.Types.Timing.MilliSeconds = Trace.Types.Timing.MilliSeconds(100);
|
12
12
|
|
13
|
-
|
13
|
+
#displayWidth: number = 0;
|
14
14
|
private navStartTimes?: readonly Trace.Types.Events.NavigationStart[];
|
15
15
|
|
16
|
+
/**
|
17
|
+
* Given a timestamp, returns its x position in the minimap.
|
18
|
+
*
|
19
|
+
* @param time
|
20
|
+
* @returns position in pixel
|
21
|
+
*/
|
16
22
|
computePosition(time: Trace.Types.Timing.MilliSeconds): number {
|
17
|
-
return (time - this.#minimumBoundary) / this.boundarySpan() * this
|
23
|
+
return (time - this.#minimumBoundary) / this.boundarySpan() * this.#displayWidth;
|
18
24
|
}
|
19
25
|
|
20
26
|
positionToTime(position: number): Trace.Types.Timing.MilliSeconds {
|
21
|
-
|
27
|
+
if (this.#displayWidth === 0) {
|
28
|
+
return Trace.Types.Timing.MilliSeconds(0);
|
29
|
+
}
|
30
|
+
return Trace.Types.Timing.MilliSeconds(position / this.#displayWidth * this.boundarySpan() + this.#minimumBoundary);
|
22
31
|
}
|
23
32
|
|
24
33
|
setBounds(minimumBoundary: Trace.Types.Timing.MilliSeconds, maximumBoundary: Trace.Types.Timing.MilliSeconds): void {
|
@@ -31,7 +40,7 @@ export class TimelineOverviewCalculator implements Calculator {
|
|
31
40
|
}
|
32
41
|
|
33
42
|
setDisplayWidth(clientWidth: number): void {
|
34
|
-
this
|
43
|
+
this.#displayWidth = clientWidth;
|
35
44
|
}
|
36
45
|
|
37
46
|
reset(): void {
|
@@ -73,6 +82,11 @@ export class TimelineOverviewCalculator implements Calculator {
|
|
73
82
|
return this.#minimumBoundary;
|
74
83
|
}
|
75
84
|
|
85
|
+
/**
|
86
|
+
* This function returns the time different between min time and max time of current minimap.
|
87
|
+
*
|
88
|
+
* @returns the time range in milliseconds
|
89
|
+
*/
|
76
90
|
boundarySpan(): Trace.Types.Timing.MilliSeconds {
|
77
91
|
return Trace.Types.Timing.MilliSeconds(this.#maximumBoundary - this.#minimumBoundary);
|
78
92
|
}
|