chrome-devtools-frontend 1.0.1376716 → 1.0.1380117
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/config/gni/devtools_grd_files.gni +15 -7
- package/config/gni/devtools_image_files.gni +2 -0
- package/front_end/Images/src/animation.svg +3 -0
- package/front_end/Images/src/brush-2.svg +3 -0
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/host/AidaClient.ts +1 -0
- package/front_end/core/host/InspectorFrontendHost.ts +4 -0
- package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
- package/front_end/core/i18n/ByteUtilities.ts +65 -0
- package/front_end/core/i18n/NumberFormatter.ts +75 -0
- package/front_end/core/i18n/i18n.ts +4 -0
- package/front_end/core/i18n/time-utilities.test.ts +20 -2
- package/front_end/core/i18n/time-utilities.ts +125 -86
- package/front_end/core/platform/NumberUtilities.test.ts +3 -26
- package/front_end/core/platform/NumberUtilities.ts +0 -20
- package/front_end/core/root/Runtime.ts +6 -3
- package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
- package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
- package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
- package/front_end/core/sdk/CSSModel.ts +18 -0
- package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
- package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
- package/front_end/core/sdk/sdk-meta.ts +8 -0
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
- package/front_end/generated/ARIAProperties.js +4 -0
- package/front_end/generated/InspectorBackendCommands.js +8 -6
- package/front_end/generated/SupportedCSSProperties.js +17 -4
- package/front_end/generated/protocol-mapping.d.ts +15 -1
- package/front_end/generated/protocol-proxy-api.d.ts +14 -1
- package/front_end/generated/protocol.ts +26 -2
- package/front_end/models/extensions/ExtensionAPI.ts +9 -1
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +8 -21
- package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +19 -9
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
- package/front_end/models/persistence/editFileSystemView.css +35 -15
- package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
- package/front_end/models/timeline_model/timeline_model.ts +0 -6
- package/front_end/models/trace/Processor.test.ts +18 -17
- package/front_end/models/trace/Processor.ts +10 -14
- package/front_end/models/trace/README.md +0 -1
- package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
- package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
- package/front_end/models/trace/extras/TraceFilter.ts +62 -0
- package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
- package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +65 -59
- package/front_end/models/trace/extras/extras.ts +3 -0
- package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
- package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
- package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
- package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +3 -0
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
- package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
- package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
- package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
- package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
- package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
- package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
- package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
- package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
- package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
- package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
- package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
- package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
- package/front_end/models/trace/handlers/Threads.test.ts +1 -2
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
- package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
- package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
- package/front_end/models/trace/handlers/types.ts +1 -8
- package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
- package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +24 -5
- package/front_end/models/trace/insights/Common.ts +5 -55
- package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
- package/front_end/models/trace/insights/DocumentLatency.ts +26 -6
- package/front_end/models/trace/insights/FontDisplay.ts +24 -5
- package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +26 -6
- package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
- package/front_end/models/trace/insights/LCPDiscovery.ts +101 -0
- package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
- package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +37 -38
- package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +4 -3
- package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +33 -28
- package/front_end/models/trace/insights/SlowCSSSelector.ts +26 -5
- package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
- package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +24 -5
- package/front_end/models/trace/insights/Viewport.test.ts +1 -1
- package/front_end/models/trace/insights/Viewport.ts +27 -9
- package/front_end/models/trace/insights/insights.ts +1 -1
- package/front_end/models/trace/insights/types.ts +11 -9
- package/front_end/models/trace/types/TraceEvents.ts +51 -22
- package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
- package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
- package/front_end/panels/application/StorageView.ts +3 -3
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +34 -31
- package/front_end/panels/coverage/CoverageView.ts +3 -3
- package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
- package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +84 -30
- package/front_end/panels/elements/ElementStatePaneWidget.ts +42 -24
- package/front_end/panels/elements/ElementsTreeElement.ts +24 -11
- package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
- package/front_end/panels/elements/PropertyMatchers.ts +3 -0
- package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
- package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
- package/front_end/panels/freestyler/AiAgent.test.ts +58 -1
- package/front_end/panels/freestyler/AiAgent.ts +58 -3
- package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +99 -23
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +53 -20
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +15 -7
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +36 -15
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +6 -6
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +48 -8
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +15 -14
- package/front_end/panels/freestyler/FreestylerAgent.ts +52 -8
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +539 -39
- package/front_end/panels/freestyler/FreestylerPanel.ts +349 -215
- package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +320 -268
- package/front_end/panels/freestyler/components/UserActionRow.ts +156 -47
- package/front_end/panels/freestyler/components/freestylerChatUi.css +69 -34
- package/front_end/panels/freestyler/components/userActionRow.css +40 -67
- package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
- package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -2
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +5 -5
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
- package/front_end/panels/network/BinaryResourceView.ts +6 -7
- package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
- package/front_end/panels/network/NetworkLogView.ts +7 -8
- package/front_end/panels/network/RequestTimingView.test.ts +35 -1
- package/front_end/panels/network/RequestTimingView.ts +96 -0
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
- package/front_end/panels/network/networkTimingTable.css +2 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
- package/front_end/panels/profiler/HeapProfileView.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
- package/front_end/panels/profiler/HeapTimelineOverview.ts +12 -12
- package/front_end/panels/profiler/IsolateSelector.ts +3 -4
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +1 -1
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
- package/front_end/panels/profiler/ProfileView.ts +1 -1
- package/front_end/panels/recorder/components/RecordingView.ts +2 -2
- package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
- package/front_end/panels/recorder/recorderController.css +0 -4
- package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
- package/front_end/panels/security/CookieReportView.ts +120 -0
- package/front_end/panels/security/SecurityPanel.ts +8 -2
- package/front_end/panels/security/cookieReportView.css +46 -0
- package/front_end/panels/security/sidebar.css +1 -2
- package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
- package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
- package/front_end/panels/settings/AISettingsTab.ts +6 -15
- package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
- package/front_end/panels/settings/SettingsScreen.ts +61 -56
- package/front_end/panels/settings/aiSettingsTab.css +3 -14
- package/front_end/panels/settings/components/SyncSection.ts +1 -2
- package/front_end/panels/settings/components/syncSection.css +0 -10
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +3 -1
- package/front_end/panels/settings/keybindsSettingsTab.css +7 -10
- package/front_end/panels/settings/settingsScreen.css +27 -125
- package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
- package/front_end/panels/sources/NavigatorView.ts +11 -13
- package/front_end/panels/timeline/ActiveFilters.ts +3 -4
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -2
- package/front_end/panels/timeline/CountersGraph.ts +2 -4
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
- package/front_end/panels/timeline/README.md +2 -1
- package/front_end/panels/timeline/TimelineController.ts +14 -4
- package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
- package/front_end/panels/timeline/TimelineFilters.ts +3 -4
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -10
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -2
- package/front_end/panels/timeline/TimelineFlameChartView.ts +21 -12
- package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
- package/front_end/panels/timeline/TimelineLoader.ts +3 -4
- package/front_end/panels/timeline/TimelineMiniMap.ts +10 -0
- package/front_end/panels/timeline/TimelinePanel.ts +20 -8
- package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
- package/front_end/panels/timeline/TimelineTreeView.ts +35 -40
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +12 -14
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +3 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -26
- package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.ts +46 -0
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +2 -0
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +41 -36
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +19 -33
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +29 -40
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +17 -23
- package/front_end/panels/timeline/components/insights/Helpers.ts +12 -16
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +14 -26
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +25 -37
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +20 -47
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +19 -28
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -2
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +18 -31
- package/front_end/panels/timeline/components/insights/Table.ts +5 -3
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +18 -25
- package/front_end/panels/timeline/components/insights/Viewport.ts +14 -25
- package/front_end/panels/timeline/components/liveMetricsView.css +5 -13
- package/front_end/panels/timeline/components/metricCard.css +11 -0
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +13 -12
- package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
- package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
- package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
- package/front_end/testing/EnvironmentHelpers.ts +5 -18
- package/front_end/testing/InsightHelpers.ts +4 -4
- package/front_end/testing/TraceHelpers.ts +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/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/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +51 -10
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +215 -97
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/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/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +51 -10
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +2 -3
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
- package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
- package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
- package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
- package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
- package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
- package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
- package/front_end/ui/components/buttons/Button.test.ts +14 -0
- package/front_end/ui/components/buttons/Button.ts +27 -4
- package/front_end/ui/components/cards/card.css +7 -4
- package/front_end/ui/components/dialogs/Dialog.ts +2 -4
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +15 -13
- package/front_end/ui/components/dialogs/dialog.css +2 -6
- package/front_end/ui/components/dialogs/shortcutDialog.css +33 -41
- package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
- package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
- package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
- package/front_end/ui/components/markdown_view/MarkdownView.ts +77 -14
- package/front_end/ui/components/markdown_view/markdownView.css +15 -0
- package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
- package/front_end/ui/legacy/ContextMenu.ts +2 -2
- package/front_end/ui/legacy/InplaceEditor.ts +18 -14
- package/front_end/ui/legacy/TabbedPane.ts +0 -14
- package/front_end/ui/legacy/UIUtils.ts +0 -7
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +20 -11
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +5 -22
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +6 -6
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +22 -4
- package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
- package/front_end/ui/legacy/textPrompt.css +1 -1
- package/front_end/ui/legacy/toolbar.css +4 -5
- package/front_end/ui/visual_logging/KnownContextValues.ts +174 -0
- package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
- package/package.json +7 -6
- package/scripts/build/ninja/bundle.gni +3 -3
- package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
- package/scripts/devtools_paths.py +8 -4
- package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
- package/scripts/tools/update_goldens_v2.py +1 -1
- package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
- /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -4,106 +4,40 @@
|
|
4
4
|
* found in the LICENSE file.
|
5
5
|
*/
|
6
6
|
|
7
|
-
.
|
8
|
-
|
7
|
+
.mappings-info,
|
8
|
+
.folder-exclude-pattern {
|
9
|
+
height: var(--settings-single-item-height);
|
9
10
|
}
|
10
11
|
|
11
|
-
.
|
12
|
-
|
13
|
-
|
14
|
-
margin: 0;
|
15
|
-
padding-bottom: 3px;
|
12
|
+
.mapping-view-container {
|
13
|
+
padding-left: 0;
|
14
|
+
padding-right: 0;
|
16
15
|
}
|
17
16
|
|
18
|
-
.
|
19
|
-
overflow-y: auto;
|
20
|
-
overflow-x: hidden;
|
21
|
-
margin: 8px 8px 8px 0;
|
22
|
-
padding: 0 4px;
|
23
|
-
flex: auto;
|
24
|
-
}
|
25
|
-
|
26
|
-
.workspace-settings-tab .settings-container {
|
27
|
-
width: 100%;
|
28
|
-
column-width: 288px;
|
29
|
-
}
|
30
|
-
|
31
|
-
.workspace-settings-tab .settings-tab.settings-container {
|
32
|
-
column-width: 308px;
|
33
|
-
}
|
34
|
-
|
35
|
-
.workspace-settings-tab .settings-container-wrapper {
|
36
|
-
position: absolute;
|
37
|
-
top: 31px;
|
38
|
-
left: 0;
|
39
|
-
right: 0;
|
40
|
-
bottom: 0;
|
41
|
-
overflow: auto;
|
42
|
-
padding-top: 9px;
|
43
|
-
}
|
44
|
-
|
45
|
-
.workspace-settings-tab .settings-tab.settings-content {
|
46
|
-
margin: 0;
|
47
|
-
padding: 0;
|
48
|
-
}
|
49
|
-
|
50
|
-
.workspace-settings-tab .settings-tab p {
|
51
|
-
margin: 12px 0;
|
52
|
-
}
|
53
|
-
|
54
|
-
.workspace-settings-tab p.folder-exclude-pattern {
|
55
|
-
display: grid;
|
56
|
-
align-items: center;
|
57
|
-
}
|
58
|
-
|
59
|
-
.workspace-settings-tab p.folder-exclude-pattern > input {
|
60
|
-
width: 80%;
|
61
|
-
margin-left: 10px;
|
62
|
-
}
|
63
|
-
|
64
|
-
.workspace-settings-tab .settings-tab .file-system-container {
|
65
|
-
border-top: 1px solid var(--sys-color-divider);
|
66
|
-
padding: 19px 0 10px;
|
67
|
-
margin: 20px 0;
|
68
|
-
}
|
69
|
-
|
70
|
-
.workspace-settings-tab .settings-tab .file-system-header {
|
17
|
+
.folder-exclude-pattern {
|
71
18
|
display: flex;
|
72
|
-
flex-direction: row;
|
73
19
|
align-items: center;
|
74
|
-
}
|
75
20
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
margin-right: 10px;
|
80
|
-
font-size: 15px;
|
81
|
-
overflow: hidden;
|
82
|
-
text-overflow: ellipsis;
|
83
|
-
max-width: 70%;
|
21
|
+
& > input {
|
22
|
+
flex: 1;
|
23
|
+
}
|
84
24
|
}
|
85
25
|
|
86
|
-
|
87
|
-
|
88
|
-
overflow: hidden;
|
89
|
-
text-overflow: ellipsis;
|
90
|
-
flex: auto;
|
26
|
+
label {
|
27
|
+
padding-bottom: 0;
|
91
28
|
}
|
92
29
|
|
93
|
-
.
|
94
|
-
|
95
|
-
border-radius: 5px;
|
96
|
-
padding: 10px;
|
97
|
-
margin: 20px 0;
|
30
|
+
.mappings-info {
|
31
|
+
border: none;
|
98
32
|
}
|
99
33
|
|
100
|
-
.
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
padding-right: 10px;
|
34
|
+
.add-button-container {
|
35
|
+
max-width: var(--sys-size-37);
|
36
|
+
margin-left: var(--sys-size-8);
|
37
|
+
width: 100%;
|
105
38
|
|
106
|
-
|
107
|
-
|
39
|
+
& .add-folder {
|
40
|
+
min-width: var(--sys-size-31);
|
41
|
+
max-width: var(--sys-size-37);
|
108
42
|
}
|
109
43
|
}
|
@@ -1,14 +1,8 @@
|
|
1
1
|
// Copyright 2019 The Chromium Authors. All rights reserved.
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
|
-
import * as TimelineJSProfile from './TimelineJSProfile.js';
|
5
|
-
import * as TimelineModelFilter from './TimelineModelFilter.js';
|
6
|
-
import * as TimelineProfileTree from './TimelineProfileTree.js';
|
7
4
|
import * as TracingLayerTree from './TracingLayerTree.js';
|
8
5
|
|
9
6
|
export {
|
10
|
-
TimelineJSProfile,
|
11
|
-
TimelineModelFilter,
|
12
|
-
TimelineProfileTree,
|
13
7
|
TracingLayerTree,
|
14
8
|
};
|
@@ -139,6 +139,7 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
139
139
|
const baseHandler = {
|
140
140
|
data() {},
|
141
141
|
handleEvent() {},
|
142
|
+
async finalize() {},
|
142
143
|
reset() {},
|
143
144
|
};
|
144
145
|
|
@@ -262,7 +263,7 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
262
263
|
generateInsight: () => {
|
263
264
|
throw new Error('forced error');
|
264
265
|
},
|
265
|
-
deps: Trace.Insights.
|
266
|
+
deps: Trace.Insights.Models.RenderBlocking.deps,
|
266
267
|
},
|
267
268
|
};
|
268
269
|
});
|
@@ -277,8 +278,8 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
277
278
|
|
278
279
|
const insights = Array.from(processor.insights.values());
|
279
280
|
assert.strictEqual(insights.length, 2);
|
280
|
-
assert(insights[1].
|
281
|
-
assert.strictEqual(insights[1].
|
281
|
+
assert(insights[1].model.RenderBlocking instanceof Error, 'RenderBlocking did not throw an error');
|
282
|
+
assert.strictEqual(insights[1].model.RenderBlocking.message, 'forced error');
|
282
283
|
});
|
283
284
|
|
284
285
|
it('skips insights that are missing one or more dependencies', async function() {
|
@@ -298,8 +299,8 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
298
299
|
]);
|
299
300
|
|
300
301
|
const insights = Array.from(processor.insights.values());
|
301
|
-
assert.isUndefined(insights[0].
|
302
|
-
assert.isUndefined(insights[1].
|
302
|
+
assert.isUndefined(insights[0].model.RenderBlocking);
|
303
|
+
assert.isUndefined(insights[1].model.RenderBlocking);
|
303
304
|
});
|
304
305
|
|
305
306
|
it('returns insights for a navigation', async function() {
|
@@ -317,15 +318,15 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
317
318
|
]);
|
318
319
|
|
319
320
|
const insights = Array.from(processor.insights.values());
|
320
|
-
if (insights[0].
|
321
|
+
if (insights[0].model.RenderBlocking instanceof Error) {
|
321
322
|
throw new Error('RenderBlocking threw an error');
|
322
323
|
}
|
323
|
-
if (insights[1].
|
324
|
+
if (insights[1].model.RenderBlocking instanceof Error) {
|
324
325
|
throw new Error('RenderBlocking threw an error');
|
325
326
|
}
|
326
327
|
|
327
|
-
assert.strictEqual(insights[0].
|
328
|
-
assert.strictEqual(insights[1].
|
328
|
+
assert.strictEqual(insights[0].model.RenderBlocking.renderBlockingRequests.length, 0);
|
329
|
+
assert.strictEqual(insights[1].model.RenderBlocking.renderBlockingRequests.length, 2);
|
329
330
|
});
|
330
331
|
|
331
332
|
it('returns insights for multiple navigations', async function() {
|
@@ -345,23 +346,23 @@ describeWithEnvironment('TraceProcessor', function() {
|
|
345
346
|
]);
|
346
347
|
|
347
348
|
const insights = Array.from(processor.insights.values());
|
348
|
-
if (insights[0].
|
349
|
+
if (insights[0].model.RenderBlocking instanceof Error) {
|
349
350
|
throw new Error('RenderBlocking threw an error');
|
350
351
|
}
|
351
|
-
if (insights[1].
|
352
|
+
if (insights[1].model.RenderBlocking instanceof Error) {
|
352
353
|
throw new Error('RenderBlocking threw an error');
|
353
354
|
}
|
354
|
-
if (insights[2].
|
355
|
+
if (insights[2].model.RenderBlocking instanceof Error) {
|
355
356
|
throw new Error('RenderBlocking threw an error');
|
356
357
|
}
|
357
|
-
if (insights[3].
|
358
|
+
if (insights[3].model.RenderBlocking instanceof Error) {
|
358
359
|
throw new Error('RenderBlocking threw an error');
|
359
360
|
}
|
360
361
|
|
361
|
-
assert.strictEqual(insights[0].
|
362
|
-
assert.strictEqual(insights[1].
|
363
|
-
assert.strictEqual(insights[2].
|
364
|
-
assert.strictEqual(insights[3].
|
362
|
+
assert.strictEqual(insights[0].model.RenderBlocking.renderBlockingRequests.length, 0);
|
363
|
+
assert.strictEqual(insights[1].model.RenderBlocking.renderBlockingRequests.length, 0);
|
364
|
+
assert.strictEqual(insights[2].model.RenderBlocking.renderBlockingRequests.length, 0);
|
365
|
+
assert.strictEqual(insights[3].model.RenderBlocking.renderBlockingRequests.length, 1);
|
365
366
|
});
|
366
367
|
});
|
367
368
|
});
|
@@ -52,6 +52,7 @@ declare global {
|
|
52
52
|
export interface ParseOptions {
|
53
53
|
/**
|
54
54
|
* If the trace was just recorded on the current page, rather than an imported file.
|
55
|
+
* TODO(paulirish): Maybe remove. This is currently unused by the Processor and Handlers
|
55
56
|
* @default false
|
56
57
|
*/
|
57
58
|
isFreshRecording?: boolean;
|
@@ -75,9 +76,9 @@ export class TraceProcessor extends EventTarget {
|
|
75
76
|
return new TraceProcessor(Handlers.ModelHandlers, Types.Configuration.defaults());
|
76
77
|
}
|
77
78
|
|
78
|
-
static getEnabledInsightRunners(parsedTrace: Handlers.Types.ParsedTrace): Partial<Insights.Types.
|
79
|
-
const enabledInsights = {} as Insights.Types.
|
80
|
-
for (const [name, insight] of Object.entries(Insights.
|
79
|
+
static getEnabledInsightRunners(parsedTrace: Handlers.Types.ParsedTrace): Partial<Insights.Types.InsightModelsType> {
|
80
|
+
const enabledInsights = {} as Insights.Types.InsightModelsType;
|
81
|
+
for (const [name, insight] of Object.entries(Insights.Models)) {
|
81
82
|
const deps = insight.deps();
|
82
83
|
if (deps.some(dep => !parsedTrace[dep])) {
|
83
84
|
continue;
|
@@ -170,7 +171,7 @@ export class TraceProcessor extends EventTarget {
|
|
170
171
|
}
|
171
172
|
try {
|
172
173
|
this.#status = Status.PARSING;
|
173
|
-
await this.#computeParsedTrace(traceEvents
|
174
|
+
await this.#computeParsedTrace(traceEvents);
|
174
175
|
if (this.#data && !options.isCPUProfile) { // We do not calculate insights for CPU Profiles.
|
175
176
|
this.#computeInsights(this.#data, traceEvents);
|
176
177
|
}
|
@@ -184,7 +185,7 @@ export class TraceProcessor extends EventTarget {
|
|
184
185
|
/**
|
185
186
|
* Run all the handlers and set the result to `#data`.
|
186
187
|
*/
|
187
|
-
async #computeParsedTrace(traceEvents: readonly Types.Events.Event[]
|
188
|
+
async #computeParsedTrace(traceEvents: readonly Types.Events.Event[]): Promise<void> {
|
188
189
|
/**
|
189
190
|
* We want to yield regularly to maintain responsiveness. If we yield too often, we're wasting idle time.
|
190
191
|
* We could do this by checking `performance.now()` regularly, but it's an expensive call in such a hot loop.
|
@@ -202,11 +203,6 @@ export class TraceProcessor extends EventTarget {
|
|
202
203
|
handler.reset();
|
203
204
|
}
|
204
205
|
|
205
|
-
// Initialize.
|
206
|
-
for (const handler of sortedHandlers) {
|
207
|
-
handler.initialize?.(freshRecording);
|
208
|
-
}
|
209
|
-
|
210
206
|
// Handle each event.
|
211
207
|
for (let i = 0; i < traceEvents.length; ++i) {
|
212
208
|
// Every so often we take a break just to render.
|
@@ -348,8 +344,8 @@ export class TraceProcessor extends EventTarget {
|
|
348
344
|
|
349
345
|
#computeInsightSets(
|
350
346
|
insights: Insights.Types.TraceInsightSets, parsedTrace: Handlers.Types.ParsedTrace,
|
351
|
-
insightRunners: Partial<typeof Insights.
|
352
|
-
const
|
347
|
+
insightRunners: Partial<typeof Insights.Models>, context: Insights.Types.InsightSetContext): void {
|
348
|
+
const model = {} as Insights.Types.InsightSet['model'];
|
353
349
|
|
354
350
|
for (const [name, insight] of Object.entries(insightRunners)) {
|
355
351
|
let insightResult;
|
@@ -358,7 +354,7 @@ export class TraceProcessor extends EventTarget {
|
|
358
354
|
} catch (err) {
|
359
355
|
insightResult = err;
|
360
356
|
}
|
361
|
-
Object.assign(
|
357
|
+
Object.assign(model, {[name]: insightResult});
|
362
358
|
}
|
363
359
|
|
364
360
|
let id, urlString, navigation;
|
@@ -386,7 +382,7 @@ export class TraceProcessor extends EventTarget {
|
|
386
382
|
navigation,
|
387
383
|
frameId: context.frameId,
|
388
384
|
bounds: context.bounds,
|
389
|
-
|
385
|
+
model,
|
390
386
|
};
|
391
387
|
insights.set(insightSets.id, insightSets);
|
392
388
|
}
|
@@ -4,19 +4,12 @@
|
|
4
4
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
6
6
|
|
7
|
-
import * as
|
8
|
-
import
|
9
|
-
import * as Trace from '../trace/trace.js';
|
7
|
+
import type * as Protocol from '../../../generated/protocol.js';
|
8
|
+
import * as Types from '../types/types.js';
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
*@example {1} PH1
|
15
|
-
*/
|
16
|
-
threadS: 'Thread {PH1}',
|
17
|
-
};
|
18
|
-
const str_ = i18n.i18n.registerUIStrings('models/timeline_model/TimelineJSProfile.ts', UIStrings);
|
19
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
10
|
+
// TODO(paulirish): Delete this file.
|
11
|
+
// - Move isNativeRuntimeFrame and nativeGroup to TraceEvents.d.ts (or TraceTree)
|
12
|
+
// - Move createFakeTraceFromCpuProfile to TimelineLoader
|
20
13
|
export class TimelineJSProfileProcessor {
|
21
14
|
static isNativeRuntimeFrame(frame: Protocol.Runtime.CallFrame): boolean {
|
22
15
|
return frame.url === 'native V8Runtime';
|
@@ -32,14 +25,13 @@ export class TimelineJSProfileProcessor {
|
|
32
25
|
return null;
|
33
26
|
}
|
34
27
|
|
35
|
-
static createFakeTraceFromCpuProfile(profile: Protocol.Profiler.Profile, tid:
|
36
|
-
|
37
|
-
const events:
|
28
|
+
static createFakeTraceFromCpuProfile(profile: Protocol.Profiler.Profile, tid: Types.Events.ThreadID):
|
29
|
+
Types.Events.Event[] {
|
30
|
+
const events: Types.Events.Event[] = [];
|
38
31
|
|
39
|
-
const threadName =
|
40
|
-
appendEvent('TracingStartedInPage', {data: {sessionId: '1'}}, 0, 0,
|
41
|
-
appendEvent(
|
42
|
-
Trace.Types.Events.Name.THREAD_NAME, {name: threadName}, 0, 0, Trace.Types.Events.Phase.METADATA, '__metadata');
|
32
|
+
const threadName = `Thread ${tid}`;
|
33
|
+
appendEvent('TracingStartedInPage', {data: {sessionId: '1'}}, 0, 0, Types.Events.Phase.METADATA);
|
34
|
+
appendEvent(Types.Events.Name.THREAD_NAME, {name: threadName}, 0, 0, Types.Events.Phase.METADATA, '__metadata');
|
43
35
|
if (!profile) {
|
44
36
|
return events;
|
45
37
|
}
|
@@ -49,28 +41,26 @@ export class TimelineJSProfileProcessor {
|
|
49
41
|
// 'JSRoot' doesn't exist in the new engine and is not the name of an actual trace event, but changing it might break other trace processing tools that rely on this, so we stick with this name.
|
50
42
|
// TODO(crbug.com/341234884): consider removing this or clarify why it's required.
|
51
43
|
appendEvent(
|
52
|
-
'JSRoot', {}, profile.startTime, profile.endTime - profile.startTime,
|
53
|
-
'toplevel');
|
44
|
+
'JSRoot', {}, profile.startTime, profile.endTime - profile.startTime, Types.Events.Phase.COMPLETE, 'toplevel');
|
54
45
|
|
55
46
|
// TODO: create a `Profile` event instead, as `cpuProfile` is legacy
|
56
|
-
appendEvent('CpuProfile', {data: {cpuProfile: profile}}, profile.endTime, 0,
|
47
|
+
appendEvent('CpuProfile', {data: {cpuProfile: profile}}, profile.endTime, 0, Types.Events.Phase.COMPLETE);
|
57
48
|
return events;
|
58
49
|
|
59
50
|
function appendEvent(
|
60
|
-
name: string, args: any, ts: number, dur?: number, ph?:
|
61
|
-
|
62
|
-
const event: Trace.Types.Events.Event = {
|
51
|
+
name: string, args: any, ts: number, dur?: number, ph?: Types.Events.Phase, cat?: string): Types.Events.Event {
|
52
|
+
const event: Types.Events.Event = {
|
63
53
|
cat: cat || 'disabled-by-default-devtools.timeline',
|
64
54
|
name,
|
65
|
-
ph: ph ||
|
66
|
-
pid:
|
55
|
+
ph: ph || Types.Events.Phase.COMPLETE,
|
56
|
+
pid: Types.Events.ProcessID(1),
|
67
57
|
tid,
|
68
|
-
ts:
|
58
|
+
ts: Types.Timing.MicroSeconds(ts),
|
69
59
|
args,
|
70
60
|
};
|
71
61
|
|
72
62
|
if (dur) {
|
73
|
-
event.dur =
|
63
|
+
event.dur = Types.Timing.MicroSeconds(dur);
|
74
64
|
}
|
75
65
|
events.push(event);
|
76
66
|
return event;
|
@@ -2,19 +2,20 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
-
import {describeWithEnvironment} from '
|
6
|
-
import {TraceLoader} from '
|
7
|
-
import * as
|
8
|
-
import * as Trace from '../trace/trace.js';
|
5
|
+
import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
|
6
|
+
import {TraceLoader} from '../../../testing/TraceLoader.js';
|
7
|
+
import * as Trace from '../trace.js';
|
9
8
|
|
10
|
-
|
11
|
-
|
9
|
+
import * as TraceFilter from './TraceFilter.js';
|
10
|
+
|
11
|
+
describeWithEnvironment('TraceFilter', () => {
|
12
|
+
describe('VisibleEventsFilter', () => {
|
12
13
|
it('accepts events that are set in the constructor and rejects other events', async function() {
|
13
14
|
const {parsedTrace} = await TraceLoader.traceEngine(this, 'user-timings.json.gz');
|
14
15
|
const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
|
15
16
|
assert.isOk(userTimingEvent);
|
16
17
|
|
17
|
-
const visibleFilter = new
|
18
|
+
const visibleFilter = new TraceFilter.VisibleEventsFilter([
|
18
19
|
// Set an random record type to be visible - the exact type is not important for the test.
|
19
20
|
Trace.Types.Events.Name.USER_TIMING,
|
20
21
|
]);
|
@@ -28,8 +29,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
28
29
|
const consoleTimingEvent = (parsedTrace.UserTimings.consoleTimings).at(0);
|
29
30
|
assert.isOk(consoleTimingEvent);
|
30
31
|
assert.strictEqual(
|
31
|
-
|
32
|
-
Trace.Types.Events.Name.CONSOLE_TIME);
|
32
|
+
TraceFilter.VisibleEventsFilter.eventType(consoleTimingEvent), Trace.Types.Events.Name.CONSOLE_TIME);
|
33
33
|
});
|
34
34
|
|
35
35
|
it('returns UserTiming if the event has the blink.user_timing category', async function() {
|
@@ -37,8 +37,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
37
37
|
const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
|
38
38
|
assert.isOk(userTimingEvent);
|
39
39
|
assert.strictEqual(
|
40
|
-
|
41
|
-
Trace.Types.Events.Name.USER_TIMING);
|
40
|
+
TraceFilter.VisibleEventsFilter.eventType(userTimingEvent), Trace.Types.Events.Name.USER_TIMING);
|
42
41
|
});
|
43
42
|
|
44
43
|
it('returns the event name if the event is any other category', async function() {
|
@@ -46,8 +45,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
46
45
|
const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
|
47
46
|
assert.isOk(layoutShiftEvent);
|
48
47
|
assert.strictEqual(
|
49
|
-
|
50
|
-
Trace.Types.Events.Name.LAYOUT_SHIFT);
|
48
|
+
TraceFilter.VisibleEventsFilter.eventType(layoutShiftEvent), Trace.Types.Events.Name.LAYOUT_SHIFT);
|
51
49
|
});
|
52
50
|
});
|
53
51
|
});
|
@@ -58,7 +56,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
58
56
|
const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
|
59
57
|
assert.isOk(userTimingEvent);
|
60
58
|
|
61
|
-
const invisibleFilter = new
|
59
|
+
const invisibleFilter = new TraceFilter.InvisibleEventsFilter([
|
62
60
|
Trace.Types.Events.Name.USER_TIMING,
|
63
61
|
|
64
62
|
]);
|
@@ -70,7 +68,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
70
68
|
const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
|
71
69
|
assert.isOk(layoutShiftEvent);
|
72
70
|
|
73
|
-
const invisibleFilter = new
|
71
|
+
const invisibleFilter = new TraceFilter.InvisibleEventsFilter([
|
74
72
|
Trace.Types.Events.Name.USER_TIMING,
|
75
73
|
|
76
74
|
]);
|
@@ -84,7 +82,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
84
82
|
const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
|
85
83
|
assert.isOk(userTimingEvent);
|
86
84
|
|
87
|
-
const filter = new
|
85
|
+
const filter = new TraceFilter.ExclusiveNameFilter([
|
88
86
|
Trace.Types.Events.Name.LAYOUT_SHIFT,
|
89
87
|
]);
|
90
88
|
assert.isTrue(filter.accept(userTimingEvent));
|
@@ -95,7 +93,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
|
|
95
93
|
const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
|
96
94
|
assert.isOk(layoutShiftEvent);
|
97
95
|
|
98
|
-
const filter = new
|
96
|
+
const filter = new TraceFilter.ExclusiveNameFilter([
|
99
97
|
Trace.Types.Events.Name.LAYOUT_SHIFT,
|
100
98
|
]);
|
101
99
|
assert.isFalse(filter.accept(layoutShiftEvent));
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// Copyright 2017 The Chromium Authors. All rights reserved.
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
3
|
+
// found in the LICENSE file.
|
4
|
+
|
5
|
+
import type * as Handlers from '../handlers/handlers.js';
|
6
|
+
import * as Types from '../types/types.js';
|
7
|
+
|
8
|
+
export abstract class TraceFilter {
|
9
|
+
abstract accept(_event: Types.Events.Event, parsedTrace?: Handlers.Types.ParsedTrace): boolean;
|
10
|
+
}
|
11
|
+
|
12
|
+
export class VisibleEventsFilter extends TraceFilter {
|
13
|
+
private readonly visibleTypes: Set<string>;
|
14
|
+
constructor(visibleTypes: string[]) {
|
15
|
+
super();
|
16
|
+
this.visibleTypes = new Set(visibleTypes);
|
17
|
+
}
|
18
|
+
|
19
|
+
accept(event: Types.Events.Event): boolean {
|
20
|
+
if (Types.Extensions.isSyntheticExtensionEntry(event)) {
|
21
|
+
return true;
|
22
|
+
}
|
23
|
+
return this.visibleTypes.has(VisibleEventsFilter.eventType(event));
|
24
|
+
}
|
25
|
+
|
26
|
+
static eventType(event: Types.Events.Event): Types.Events.Name {
|
27
|
+
// Any blink.console category events are treated as ConsoleTime events
|
28
|
+
if (event.cat.includes('blink.console')) {
|
29
|
+
return Types.Events.Name.CONSOLE_TIME;
|
30
|
+
}
|
31
|
+
// Any blink.user_timing egory events are treated as UserTiming events
|
32
|
+
if (event.cat.includes('blink.user_timing')) {
|
33
|
+
return Types.Events.Name.USER_TIMING;
|
34
|
+
}
|
35
|
+
return event.name as Types.Events.Name;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
export class InvisibleEventsFilter extends TraceFilter {
|
40
|
+
#invisibleTypes: Set<Types.Events.Name>;
|
41
|
+
|
42
|
+
constructor(invisibleTypes: Types.Events.Name[]) {
|
43
|
+
super();
|
44
|
+
this.#invisibleTypes = new Set(invisibleTypes);
|
45
|
+
}
|
46
|
+
|
47
|
+
accept(event: Types.Events.Event): boolean {
|
48
|
+
return !this.#invisibleTypes.has(VisibleEventsFilter.eventType(event));
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
export class ExclusiveNameFilter extends TraceFilter {
|
53
|
+
#excludeNames: Set<Types.Events.Name>;
|
54
|
+
constructor(excludeNames: Types.Events.Name[]) {
|
55
|
+
super();
|
56
|
+
this.#excludeNames = new Set(excludeNames);
|
57
|
+
}
|
58
|
+
|
59
|
+
accept(event: Types.Events.Event): boolean {
|
60
|
+
return !this.#excludeNames.has(event.name as Types.Events.Name);
|
61
|
+
}
|
62
|
+
}
|