chrome-devtools-frontend 1.0.1512147 → 1.0.1513662
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/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/front_end/Images/src/ai-explorer-badge.svg +114 -0
- package/front_end/Images/src/code-whisperer-badge.svg +166 -0
- package/front_end/Images/src/devtools-user-badge.svg +129 -0
- package/front_end/Images/src/dom-detective-badge.svg +136 -0
- package/front_end/Images/src/speedster-badge.svg +166 -0
- package/front_end/core/common/Color.ts +40 -44
- package/front_end/core/common/Console.ts +4 -4
- package/front_end/core/common/ParsedURL.ts +14 -14
- package/front_end/core/common/ResourceType.ts +20 -20
- package/front_end/core/common/SegmentedRange.ts +13 -14
- package/front_end/core/common/Settings.ts +4 -4
- package/front_end/core/common/StringOutputStream.ts +4 -4
- package/front_end/core/host/GdpClient.ts +76 -2
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
- package/front_end/core/host/ResourceLoader.ts +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -2
- package/front_end/core/i18n/NumberFormatter.ts +7 -0
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +5 -2
- package/front_end/core/sdk/AccessibilityModel.ts +48 -48
- package/front_end/core/sdk/AnimationModel.ts +78 -79
- package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
- package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
- package/front_end/core/sdk/CSSMedia.ts +22 -22
- package/front_end/core/sdk/CSSModel.ts +4 -4
- package/front_end/core/sdk/CSSProperty.ts +9 -9
- package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
- package/front_end/core/sdk/CSSRule.ts +3 -3
- package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
- package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
- package/front_end/core/sdk/ChildTargetManager.ts +6 -6
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
- package/front_end/core/sdk/ConsoleModel.ts +24 -24
- package/front_end/core/sdk/Cookie.ts +16 -16
- package/front_end/core/sdk/CookieParser.ts +6 -6
- package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
- package/front_end/core/sdk/DOMModel.ts +113 -113
- package/front_end/core/sdk/DebuggerModel.ts +102 -103
- package/front_end/core/sdk/EmulationModel.ts +6 -6
- package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
- package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
- package/front_end/core/sdk/IsolateManager.ts +26 -26
- package/front_end/core/sdk/LayerTreeBase.ts +29 -30
- package/front_end/core/sdk/OverlayModel.ts +6 -6
- package/front_end/core/sdk/Resource.ts +43 -43
- package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
- package/front_end/core/sdk/RuntimeModel.ts +12 -13
- package/front_end/core/sdk/SDKModel.ts +3 -3
- package/front_end/core/sdk/Script.ts +17 -17
- package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
- package/front_end/core/sdk/ServerTiming.ts +2 -2
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
- package/front_end/core/sdk/SourceMap.ts +10 -10
- package/front_end/core/sdk/StorageKeyManager.ts +12 -12
- package/front_end/core/sdk/Target.ts +33 -34
- package/front_end/core/sdk/TargetManager.ts +20 -20
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
- package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
- package/front_end/entrypoints/main/MainImpl.ts +16 -14
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +20 -0
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +20 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +10 -9
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
- package/front_end/models/badges/SpeedsterBadge.ts +7 -2
- package/front_end/models/badges/StarterBadge.ts +6 -1
- package/front_end/models/badges/UserBadges.ts +61 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
- package/front_end/models/bindings/FileUtils.ts +15 -15
- package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
- package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
- package/front_end/models/emulation/DeviceModeModel.ts +123 -131
- package/front_end/models/emulation/EmulatedDevices.ts +22 -22
- package/front_end/models/extensions/ExtensionPanel.ts +24 -24
- package/front_end/models/extensions/ExtensionServer.ts +4 -4
- package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
- package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
- package/front_end/models/trace/EventsSerializer.ts +5 -5
- package/front_end/models/trace/LanternComputationData.ts +10 -10
- package/front_end/models/trace/ModelImpl.ts +32 -54
- package/front_end/models/trace/Processor.ts +28 -30
- package/front_end/models/trace/extras/FilmStrip.ts +6 -6
- package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
- package/front_end/models/trace/extras/ThirdParties.ts +16 -17
- package/front_end/models/trace/extras/TraceFilter.ts +1 -1
- package/front_end/models/trace/handlers/Threads.ts +10 -10
- package/front_end/models/trace/handlers/helpers.ts +9 -9
- package/front_end/models/trace/handlers/types.ts +3 -3
- package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
- package/front_end/models/trace/insights/Cache.ts +8 -4
- package/front_end/models/trace/insights/DOMSize.ts +8 -5
- package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
- package/front_end/models/trace/insights/FontDisplay.ts +3 -4
- package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
- package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
- package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
- package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
- package/front_end/models/trace/insights/ThirdParties.ts +4 -5
- package/front_end/models/trace/insights/Viewport.ts +8 -5
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +5 -5
- package/front_end/panels/animation/AnimationUI.ts +22 -23
- package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
- package/front_end/panels/application/DOMStorageModel.ts +23 -23
- package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
- package/front_end/panels/application/IndexedDBModel.ts +1 -0
- package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
- package/front_end/panels/application/ServiceWorkersView.ts +0 -53
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
- package/front_end/panels/common/BadgeNotification.ts +140 -10
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +30 -9
- package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.ts +8 -5
- package/front_end/panels/console/ConsoleView.ts +13 -13
- package/front_end/panels/console/ConsoleViewport.ts +29 -29
- package/front_end/panels/coverage/CoverageModel.ts +22 -22
- package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
- package/front_end/panels/elements/DOMPath.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +13 -13
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
- package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
- package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
- package/front_end/panels/emulation/DeviceModeView.ts +6 -6
- package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
- package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
- package/front_end/panels/layer_viewer/TransformController.ts +34 -36
- package/front_end/panels/layers/LayerTreeModel.ts +41 -40
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
- package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
- package/front_end/panels/media/PlayerMessagesView.ts +5 -5
- package/front_end/panels/media/TickingFlameChart.ts +24 -24
- package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
- package/front_end/panels/network/NetworkItemView.ts +4 -4
- package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
- package/front_end/panels/network/NetworkPanel.ts +8 -5
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +25 -25
- package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
- package/front_end/panels/security/OriginTreeElement.ts +8 -8
- package/front_end/panels/security/SecurityPanel.ts +5 -5
- package/front_end/panels/settings/SettingsScreen.ts +18 -18
- package/front_end/panels/settings/components/SyncSection.ts +26 -8
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
- package/front_end/panels/sources/NavigatorView.ts +43 -46
- package/front_end/panels/sources/SourcesPanel.ts +35 -35
- package/front_end/panels/sources/SourcesView.ts +13 -13
- package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
- package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
- package/front_end/panels/timeline/CountersGraph.ts +16 -16
- package/front_end/panels/timeline/EntriesFilter.ts +4 -3
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
- package/front_end/panels/timeline/ModificationsManager.ts +8 -15
- package/front_end/panels/timeline/TargetForEvent.ts +2 -2
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
- package/front_end/panels/timeline/ThreadAppender.ts +13 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
- package/front_end/panels/timeline/TimelineFilters.ts +5 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
- package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
- package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
- package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
- package/front_end/panels/timeline/TimelinePanel.ts +73 -68
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
- package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
- package/front_end/panels/timeline/components/Sidebar.ts +4 -14
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
- package/front_end/panels/timeline/utils/AIContext.ts +17 -19
- package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
- package/front_end/panels/timeline/utils/EntryName.ts +2 -2
- package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
- package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
- package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
- package/front_end/panels/timeline/utils/Helpers.ts +0 -18
- package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +6 -7
- package/front_end/ui/legacy/ActionRegistration.ts +9 -9
- package/front_end/ui/legacy/DockController.ts +18 -18
- package/front_end/ui/legacy/FilterBar.ts +7 -7
- package/front_end/ui/legacy/Fragment.ts +4 -4
- package/front_end/ui/legacy/GlassPane.ts +12 -12
- package/front_end/ui/legacy/InspectorView.ts +5 -15
- package/front_end/ui/legacy/ListControl.ts +27 -27
- package/front_end/ui/legacy/ListWidget.ts +4 -4
- package/front_end/ui/legacy/PopoverHelper.ts +4 -4
- package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
- package/front_end/ui/legacy/TabbedPane.ts +74 -75
- package/front_end/ui/legacy/TextPrompt.ts +31 -31
- package/front_end/ui/legacy/Toolbar.ts +13 -14
- package/front_end/ui/legacy/ViewManager.ts +30 -31
- package/front_end/ui/legacy/Widget.ts +6 -6
- package/front_end/ui/legacy/XLink.ts +9 -9
- package/front_end/ui/legacy/ZoomManager.ts +9 -9
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -1048,7 +1048,7 @@ export class BackgroundServiceTreeElement extends ApplicationPanelTreeElement {
|
|
1048
1048
|
private serviceName: Protocol.BackgroundService.ServiceName;
|
1049
1049
|
private view: BackgroundServiceView|null;
|
1050
1050
|
private model: BackgroundServiceModel|null;
|
1051
|
-
|
1051
|
+
#selected: boolean;
|
1052
1052
|
|
1053
1053
|
constructor(storagePanel: ResourcesPanel, serviceName: Protocol.BackgroundService.ServiceName) {
|
1054
1054
|
super(
|
@@ -1058,7 +1058,7 @@ export class BackgroundServiceTreeElement extends ApplicationPanelTreeElement {
|
|
1058
1058
|
this.serviceName = serviceName;
|
1059
1059
|
|
1060
1060
|
/* Whether the element has been selected. */
|
1061
|
-
this
|
1061
|
+
this.#selected = false;
|
1062
1062
|
|
1063
1063
|
this.view = null;
|
1064
1064
|
|
@@ -1091,7 +1091,7 @@ export class BackgroundServiceTreeElement extends ApplicationPanelTreeElement {
|
|
1091
1091
|
initialize(model: BackgroundServiceModel|null): void {
|
1092
1092
|
this.model = model;
|
1093
1093
|
// Show the view if the model was initialized after selection.
|
1094
|
-
if (this
|
1094
|
+
if (this.#selected && !this.view) {
|
1095
1095
|
this.onselect(false);
|
1096
1096
|
}
|
1097
1097
|
}
|
@@ -1109,7 +1109,7 @@ export class BackgroundServiceTreeElement extends ApplicationPanelTreeElement {
|
|
1109
1109
|
|
1110
1110
|
override onselect(selectedByUser?: boolean): boolean {
|
1111
1111
|
super.onselect(selectedByUser);
|
1112
|
-
this
|
1112
|
+
this.#selected = true;
|
1113
1113
|
|
1114
1114
|
if (!this.model) {
|
1115
1115
|
return false;
|
@@ -1843,30 +1843,30 @@ export class ExtensionStorageTreeParentElement extends ApplicationPanelTreeEleme
|
|
1843
1843
|
|
1844
1844
|
export class CookieTreeElement extends ApplicationPanelTreeElement {
|
1845
1845
|
private readonly target: SDK.Target.Target;
|
1846
|
-
|
1846
|
+
readonly #cookieDomain: string;
|
1847
1847
|
|
1848
1848
|
constructor(
|
1849
1849
|
storagePanel: ResourcesPanel, frame: SDK.ResourceTreeModel.ResourceTreeFrame,
|
1850
1850
|
cookieUrl: Common.ParsedURL.ParsedURL) {
|
1851
1851
|
super(storagePanel, cookieUrl.securityOrigin() || i18nString(UIStrings.localFiles), false, 'cookies-for-frame');
|
1852
1852
|
this.target = frame.resourceTreeModel().target();
|
1853
|
-
this
|
1854
|
-
this.tooltip = i18nString(UIStrings.cookiesUsedByFramesFromS, {PH1: this
|
1853
|
+
this.#cookieDomain = cookieUrl.securityOrigin();
|
1854
|
+
this.tooltip = i18nString(UIStrings.cookiesUsedByFramesFromS, {PH1: this.#cookieDomain});
|
1855
1855
|
const icon = IconButton.Icon.create('cookie');
|
1856
1856
|
// Note that we cannot use `cookieDomainInternal` here since it contains scheme.
|
1857
1857
|
if (IssuesManager.RelatedIssue.hasThirdPartyPhaseoutCookieIssueForDomain(cookieUrl.domain())) {
|
1858
1858
|
icon.name = 'warning-filled';
|
1859
|
-
this.tooltip = i18nString(UIStrings.thirdPartyPhaseout, {PH1: this
|
1859
|
+
this.tooltip = i18nString(UIStrings.thirdPartyPhaseout, {PH1: this.#cookieDomain});
|
1860
1860
|
}
|
1861
1861
|
this.setLeadingIcons([icon]);
|
1862
1862
|
}
|
1863
1863
|
|
1864
1864
|
override get itemURL(): Platform.DevToolsPath.UrlString {
|
1865
|
-
return 'cookies://' + this
|
1865
|
+
return 'cookies://' + this.#cookieDomain as Platform.DevToolsPath.UrlString;
|
1866
1866
|
}
|
1867
1867
|
|
1868
1868
|
cookieDomain(): string {
|
1869
|
-
return this
|
1869
|
+
return this.#cookieDomain;
|
1870
1870
|
}
|
1871
1871
|
|
1872
1872
|
override onattach(): void {
|
@@ -1877,14 +1877,14 @@ export class CookieTreeElement extends ApplicationPanelTreeElement {
|
|
1877
1877
|
private handleContextMenuEvent(event: Event): void {
|
1878
1878
|
const contextMenu = new UI.ContextMenu.ContextMenu(event);
|
1879
1879
|
contextMenu.defaultSection().appendItem(
|
1880
|
-
i18nString(UIStrings.clear), () => this.resourcesPanel.clearCookies(this.target, this
|
1880
|
+
i18nString(UIStrings.clear), () => this.resourcesPanel.clearCookies(this.target, this.#cookieDomain),
|
1881
1881
|
{jslogContext: 'clear'});
|
1882
1882
|
void contextMenu.show();
|
1883
1883
|
}
|
1884
1884
|
|
1885
1885
|
override onselect(selectedByUser?: boolean): boolean {
|
1886
1886
|
super.onselect(selectedByUser);
|
1887
|
-
this.resourcesPanel.showCookies(this.target, this
|
1887
|
+
this.resourcesPanel.showCookies(this.target, this.#cookieDomain);
|
1888
1888
|
Host.userMetrics.panelShown(Host.UserMetrics.PanelCodes[Host.UserMetrics.PanelCodes.cookies]);
|
1889
1889
|
return false;
|
1890
1890
|
}
|
@@ -38,14 +38,14 @@ import type * as Protocol from '../../generated/protocol.js';
|
|
38
38
|
|
39
39
|
export class DOMStorage extends Common.ObjectWrapper.ObjectWrapper<DOMStorage.EventTypes> {
|
40
40
|
private readonly model: DOMStorageModel;
|
41
|
-
|
42
|
-
|
41
|
+
readonly #storageKey: string;
|
42
|
+
readonly #isLocalStorage: boolean;
|
43
43
|
|
44
44
|
constructor(model: DOMStorageModel, storageKey: string, isLocalStorage: boolean) {
|
45
45
|
super();
|
46
46
|
this.model = model;
|
47
|
-
this
|
48
|
-
this
|
47
|
+
this.#storageKey = storageKey;
|
48
|
+
this.#isLocalStorage = isLocalStorage;
|
49
49
|
}
|
50
50
|
|
51
51
|
static storageId(storageKey: string, isLocalStorage: boolean): Protocol.DOMStorage.StorageId {
|
@@ -53,15 +53,15 @@ export class DOMStorage extends Common.ObjectWrapper.ObjectWrapper<DOMStorage.Ev
|
|
53
53
|
}
|
54
54
|
|
55
55
|
get id(): Protocol.DOMStorage.StorageId {
|
56
|
-
return DOMStorage.storageId(this
|
56
|
+
return DOMStorage.storageId(this.#storageKey, this.#isLocalStorage);
|
57
57
|
}
|
58
58
|
|
59
59
|
get storageKey(): string|null {
|
60
|
-
return this
|
60
|
+
return this.#storageKey;
|
61
61
|
}
|
62
62
|
|
63
63
|
get isLocalStorage(): boolean {
|
64
|
-
return this
|
64
|
+
return this.#isLocalStorage;
|
65
65
|
}
|
66
66
|
|
67
67
|
getItems(): Promise<Protocol.DOMStorage.Item[]|null> {
|
@@ -113,16 +113,16 @@ export namespace DOMStorage {
|
|
113
113
|
}
|
114
114
|
|
115
115
|
export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
116
|
-
|
117
|
-
|
116
|
+
readonly #storageKeyManager: SDK.StorageKeyManager.StorageKeyManager|null;
|
117
|
+
#storages: Record<string, DOMStorage>;
|
118
118
|
readonly agent: ProtocolProxyApi.DOMStorageApi;
|
119
119
|
private enabled?: boolean;
|
120
120
|
|
121
121
|
constructor(target: SDK.Target.Target) {
|
122
122
|
super(target);
|
123
123
|
|
124
|
-
this
|
125
|
-
this
|
124
|
+
this.#storageKeyManager = target.model(SDK.StorageKeyManager.StorageKeyManager);
|
125
|
+
this.#storages = {};
|
126
126
|
this.agent = target.domstorageAgent();
|
127
127
|
}
|
128
128
|
|
@@ -132,13 +132,13 @@ export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
132
132
|
}
|
133
133
|
|
134
134
|
this.target().registerDOMStorageDispatcher(new DOMStorageDispatcher(this));
|
135
|
-
if (this
|
136
|
-
this.
|
135
|
+
if (this.#storageKeyManager) {
|
136
|
+
this.#storageKeyManager.addEventListener(
|
137
137
|
SDK.StorageKeyManager.Events.STORAGE_KEY_ADDED, this.storageKeyAdded, this);
|
138
|
-
this.
|
138
|
+
this.#storageKeyManager.addEventListener(
|
139
139
|
SDK.StorageKeyManager.Events.STORAGE_KEY_REMOVED, this.storageKeyRemoved, this);
|
140
140
|
|
141
|
-
for (const storageKey of this.
|
141
|
+
for (const storageKey of this.#storageKeyManager.storageKeys()) {
|
142
142
|
this.addStorageKey(storageKey);
|
143
143
|
}
|
144
144
|
}
|
@@ -153,7 +153,7 @@ export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
153
153
|
}
|
154
154
|
for (const isLocal of [true, false]) {
|
155
155
|
const key = this.storageKey(storageKey, isLocal);
|
156
|
-
const storage = this
|
156
|
+
const storage = this.#storages[key];
|
157
157
|
if (!storage) {
|
158
158
|
return;
|
159
159
|
}
|
@@ -170,9 +170,9 @@ export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
170
170
|
private addStorageKey(storageKey: string): void {
|
171
171
|
for (const isLocal of [true, false]) {
|
172
172
|
const key = this.storageKey(storageKey, isLocal);
|
173
|
-
console.assert(!this
|
173
|
+
console.assert(!this.#storages[key]);
|
174
174
|
const storage = new DOMStorage(this, storageKey, isLocal);
|
175
|
-
this
|
175
|
+
this.#storages[key] = storage;
|
176
176
|
this.dispatchEventToListeners(Events.DOM_STORAGE_ADDED, storage);
|
177
177
|
}
|
178
178
|
}
|
@@ -184,11 +184,11 @@ export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
184
184
|
private removeStorageKey(storageKey: string): void {
|
185
185
|
for (const isLocal of [true, false]) {
|
186
186
|
const key = this.storageKey(storageKey, isLocal);
|
187
|
-
const storage = this
|
187
|
+
const storage = this.#storages[key];
|
188
188
|
if (!storage) {
|
189
189
|
continue;
|
190
190
|
}
|
191
|
-
delete this
|
191
|
+
delete this.#storages[key];
|
192
192
|
this.dispatchEventToListeners(Events.DOM_STORAGE_REMOVED, storage);
|
193
193
|
}
|
194
194
|
}
|
@@ -238,13 +238,13 @@ export class DOMStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
238
238
|
|
239
239
|
storageForId(storageId: Protocol.DOMStorage.StorageId): DOMStorage {
|
240
240
|
console.assert(Boolean(storageId.storageKey));
|
241
|
-
return this
|
241
|
+
return this.#storages[this.storageKey(storageId.storageKey || '', storageId.isLocalStorage)];
|
242
242
|
}
|
243
243
|
|
244
244
|
storages(): DOMStorage[] {
|
245
245
|
const result = [];
|
246
|
-
for (const id in this
|
247
|
-
result.push(this
|
246
|
+
for (const id in this.#storages) {
|
247
|
+
result.push(this.#storages[id]);
|
248
248
|
}
|
249
249
|
return result;
|
250
250
|
}
|
@@ -9,17 +9,17 @@ import * as Protocol from '../../generated/protocol.js';
|
|
9
9
|
|
10
10
|
export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<string, never>> {
|
11
11
|
readonly #model: ExtensionStorageModel;
|
12
|
-
readonly #
|
13
|
-
readonly #
|
14
|
-
readonly #
|
12
|
+
readonly #extensionId: string;
|
13
|
+
readonly #name: string;
|
14
|
+
readonly #storageArea: Protocol.Extensions.StorageArea;
|
15
15
|
|
16
16
|
constructor(
|
17
17
|
model: ExtensionStorageModel, extensionId: string, name: string, storageArea: Protocol.Extensions.StorageArea) {
|
18
18
|
super();
|
19
19
|
this.#model = model;
|
20
|
-
this.#
|
21
|
-
this.#
|
22
|
-
this.#
|
20
|
+
this.#extensionId = extensionId;
|
21
|
+
this.#name = name;
|
22
|
+
this.#storageArea = storageArea;
|
23
23
|
}
|
24
24
|
|
25
25
|
get model(): ExtensionStorageModel {
|
@@ -27,11 +27,11 @@ export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<
|
|
27
27
|
}
|
28
28
|
|
29
29
|
get extensionId(): string {
|
30
|
-
return this.#
|
30
|
+
return this.#extensionId;
|
31
31
|
}
|
32
32
|
|
33
33
|
get name(): string {
|
34
|
-
return this.#
|
34
|
+
return this.#name;
|
35
35
|
}
|
36
36
|
|
37
37
|
// Returns a key that uniquely identifies this extension ID and storage area,
|
@@ -42,13 +42,13 @@ export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<
|
|
42
42
|
}
|
43
43
|
|
44
44
|
get storageArea(): Protocol.Extensions.StorageArea {
|
45
|
-
return this.#
|
45
|
+
return this.#storageArea;
|
46
46
|
}
|
47
47
|
|
48
48
|
async getItems(keys?: string[]): Promise<Record<string, unknown>> {
|
49
49
|
const params: Protocol.Extensions.GetStorageItemsRequest = {
|
50
|
-
id: this.#
|
51
|
-
storageArea: this.#
|
50
|
+
id: this.#extensionId,
|
51
|
+
storageArea: this.#storageArea,
|
52
52
|
};
|
53
53
|
if (keys) {
|
54
54
|
params.keys = keys;
|
@@ -62,7 +62,7 @@ export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<
|
|
62
62
|
|
63
63
|
async setItem(key: string, value: unknown): Promise<void> {
|
64
64
|
const response = await this.#model.agent.invoke_setStorageItems(
|
65
|
-
{id: this.#
|
65
|
+
{id: this.#extensionId, storageArea: this.#storageArea, values: {[key]: value}});
|
66
66
|
if (response.getError()) {
|
67
67
|
throw new Error(response.getError());
|
68
68
|
}
|
@@ -70,15 +70,15 @@ export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<
|
|
70
70
|
|
71
71
|
async removeItem(key: string): Promise<void> {
|
72
72
|
const response = await this.#model.agent.invoke_removeStorageItems(
|
73
|
-
{id: this.#
|
73
|
+
{id: this.#extensionId, storageArea: this.#storageArea, keys: [key]});
|
74
74
|
if (response.getError()) {
|
75
75
|
throw new Error(response.getError());
|
76
76
|
}
|
77
77
|
}
|
78
78
|
|
79
79
|
async clear(): Promise<void> {
|
80
|
-
const response =
|
81
|
-
{id: this.#
|
80
|
+
const response =
|
81
|
+
await this.#model.agent.invoke_clearStorageItems({id: this.#extensionId, storageArea: this.#storageArea});
|
82
82
|
if (response.getError()) {
|
83
83
|
throw new Error(response.getError());
|
84
84
|
}
|
@@ -95,16 +95,16 @@ export class ExtensionStorage extends Common.ObjectWrapper.ObjectWrapper<Record<
|
|
95
95
|
}
|
96
96
|
|
97
97
|
export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
98
|
-
readonly #
|
99
|
-
#
|
98
|
+
readonly #runtimeModel: SDK.RuntimeModel.RuntimeModel|null;
|
99
|
+
#storages: Map<string, Map<Protocol.Extensions.StorageArea, ExtensionStorage>>;
|
100
100
|
readonly agent: ProtocolProxyApi.ExtensionsApi;
|
101
101
|
#enabled?: boolean;
|
102
102
|
|
103
103
|
constructor(target: SDK.Target.Target) {
|
104
104
|
super(target);
|
105
105
|
|
106
|
-
this.#
|
107
|
-
this.#
|
106
|
+
this.#runtimeModel = target.model(SDK.RuntimeModel.RuntimeModel);
|
107
|
+
this.#storages = new Map();
|
108
108
|
this.agent = target.extensionsAgent();
|
109
109
|
}
|
110
110
|
|
@@ -113,26 +113,26 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
113
113
|
return;
|
114
114
|
}
|
115
115
|
|
116
|
-
if (this.#
|
117
|
-
this.#
|
116
|
+
if (this.#runtimeModel) {
|
117
|
+
this.#runtimeModel.addEventListener(
|
118
118
|
SDK.RuntimeModel.Events.ExecutionContextCreated, this.#onExecutionContextCreated, this);
|
119
|
-
this.#
|
119
|
+
this.#runtimeModel.addEventListener(
|
120
120
|
SDK.RuntimeModel.Events.ExecutionContextDestroyed, this.#onExecutionContextDestroyed, this);
|
121
|
-
this.#
|
121
|
+
this.#runtimeModel.executionContexts().forEach(this.#executionContextCreated, this);
|
122
122
|
}
|
123
123
|
|
124
124
|
this.#enabled = true;
|
125
125
|
}
|
126
126
|
|
127
127
|
#getStoragesForExtension(id: string): Map<Protocol.Extensions.StorageArea, ExtensionStorage> {
|
128
|
-
const existingStorages = this.#
|
128
|
+
const existingStorages = this.#storages.get(id);
|
129
129
|
|
130
130
|
if (existingStorages) {
|
131
131
|
return existingStorages;
|
132
132
|
}
|
133
133
|
|
134
134
|
const newStorages = new Map();
|
135
|
-
this.#
|
135
|
+
this.#storages.set(id, newStorages);
|
136
136
|
return newStorages;
|
137
137
|
}
|
138
138
|
|
@@ -148,7 +148,7 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
148
148
|
storage.getItems([])
|
149
149
|
.then(() => {
|
150
150
|
// The extension may have been removed in the meantime.
|
151
|
-
if (this.#
|
151
|
+
if (this.#storages.get(id) !== storages) {
|
152
152
|
return;
|
153
153
|
}
|
154
154
|
// The storage area may have been added in the meantime.
|
@@ -167,7 +167,7 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
167
167
|
}
|
168
168
|
|
169
169
|
#removeExtension(id: string): void {
|
170
|
-
const storages = this.#
|
170
|
+
const storages = this.#storages.get(id);
|
171
171
|
|
172
172
|
if (!storages) {
|
173
173
|
return;
|
@@ -180,7 +180,7 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
180
180
|
this.dispatchEventToListeners(Events.EXTENSION_STORAGE_REMOVED, storage);
|
181
181
|
}
|
182
182
|
|
183
|
-
this.#
|
183
|
+
this.#storages.delete(id);
|
184
184
|
}
|
185
185
|
|
186
186
|
#executionContextCreated(context: SDK.RuntimeModel.ExecutionContext): void {
|
@@ -203,7 +203,7 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
203
203
|
const extensionId = this.#extensionIdForContext(context);
|
204
204
|
if (extensionId) {
|
205
205
|
// Ignore event if there is still another context for this extension.
|
206
|
-
if (this.#
|
206
|
+
if (this.#runtimeModel?.executionContexts().some(c => this.#extensionIdForContext(c) === extensionId)) {
|
207
207
|
return;
|
208
208
|
}
|
209
209
|
|
@@ -216,12 +216,12 @@ export class ExtensionStorageModel extends SDK.SDKModel.SDKModel<EventTypes> {
|
|
216
216
|
}
|
217
217
|
|
218
218
|
storageForIdAndArea(id: string, storageArea: Protocol.Extensions.StorageArea): ExtensionStorage|undefined {
|
219
|
-
return this.#
|
219
|
+
return this.#storages.get(id)?.get(storageArea);
|
220
220
|
}
|
221
221
|
|
222
222
|
storages(): ExtensionStorage[] {
|
223
223
|
const result = [];
|
224
|
-
for (const storages of this.#
|
224
|
+
for (const storages of this.#storages.values()) {
|
225
225
|
result.push(...storages.values());
|
226
226
|
}
|
227
227
|
return result;
|
@@ -39,6 +39,7 @@ export class IndexedDBModel extends SDK.SDKModel.SDKModel<EventTypes> implements
|
|
39
39
|
private readonly storageBucketModel: SDK.StorageBucketsModel.StorageBucketsModel|null;
|
40
40
|
private readonly indexedDBAgent: ProtocolProxyApi.IndexedDBApi;
|
41
41
|
private readonly storageAgent: ProtocolProxyApi.StorageApi;
|
42
|
+
// Used in web tests
|
42
43
|
private readonly databasesInternal: Map<DatabaseId, Database>;
|
43
44
|
private databaseNamesByStorageKeyAndBucket: Map<string, Map<string, Set<DatabaseId>>>;
|
44
45
|
private readonly updatedStorageBuckets: Set<Protocol.Storage.StorageBucket>;
|
@@ -35,7 +35,7 @@ class PreloadingTreeElementBase<View extends PreloadingRuleSetView|PreloadingAtt
|
|
35
35
|
#viewConstructor: {new(model: SDK.PreloadingModel.PreloadingModel): View};
|
36
36
|
protected view?: View;
|
37
37
|
#path: Platform.DevToolsPath.UrlString;
|
38
|
-
#
|
38
|
+
#selected: boolean;
|
39
39
|
|
40
40
|
constructor(
|
41
41
|
panel: ResourcesPanel, viewConstructor: {new(model: SDK.PreloadingModel.PreloadingModel): View},
|
@@ -47,7 +47,7 @@ class PreloadingTreeElementBase<View extends PreloadingRuleSetView|PreloadingAtt
|
|
47
47
|
|
48
48
|
const icon = IconButton.Icon.create('speculative-loads');
|
49
49
|
this.setLeadingIcons([icon]);
|
50
|
-
this.#
|
50
|
+
this.#selected = false;
|
51
51
|
|
52
52
|
// TODO(https://crbug.com/1384419): Set link
|
53
53
|
}
|
@@ -60,14 +60,14 @@ class PreloadingTreeElementBase<View extends PreloadingRuleSetView|PreloadingAtt
|
|
60
60
|
this.#model = model;
|
61
61
|
|
62
62
|
// Show the view if the model was initialized after selection.
|
63
|
-
if (this.#
|
63
|
+
if (this.#selected && !this.view) {
|
64
64
|
this.onselect(false);
|
65
65
|
}
|
66
66
|
}
|
67
67
|
|
68
68
|
override onselect(selectedByUser?: boolean): boolean {
|
69
69
|
super.onselect(selectedByUser);
|
70
|
-
this.#
|
70
|
+
this.#selected = true;
|
71
71
|
|
72
72
|
if (!this.#model) {
|
73
73
|
return false;
|
@@ -86,7 +86,7 @@ class PreloadingTreeElementBase<View extends PreloadingRuleSetView|PreloadingAtt
|
|
86
86
|
export class PreloadingSummaryTreeElement extends ExpandableApplicationPanelTreeElement {
|
87
87
|
#model?: SDK.PreloadingModel.PreloadingModel;
|
88
88
|
#view?: PreloadingSummaryView;
|
89
|
-
#
|
89
|
+
#selected: boolean;
|
90
90
|
|
91
91
|
#ruleSet: PreloadingRuleSetTreeElement|null = null;
|
92
92
|
#attempt: PreloadingAttemptTreeElement|null = null;
|
@@ -96,7 +96,7 @@ export class PreloadingSummaryTreeElement extends ExpandableApplicationPanelTree
|
|
96
96
|
|
97
97
|
const icon = IconButton.Icon.create('speculative-loads');
|
98
98
|
this.setLeadingIcons([icon]);
|
99
|
-
this.#
|
99
|
+
this.#selected = false;
|
100
100
|
|
101
101
|
// TODO(https://crbug.com/1384419): Set link
|
102
102
|
}
|
@@ -125,14 +125,14 @@ export class PreloadingSummaryTreeElement extends ExpandableApplicationPanelTree
|
|
125
125
|
this.#attempt.initialize(model);
|
126
126
|
|
127
127
|
// Show the view if the model was initialized after selection.
|
128
|
-
if (this.#
|
128
|
+
if (this.#selected && !this.#view) {
|
129
129
|
this.onselect(false);
|
130
130
|
}
|
131
131
|
}
|
132
132
|
|
133
133
|
override onselect(selectedByUser?: boolean): boolean {
|
134
134
|
super.onselect(selectedByUser);
|
135
|
-
this.#
|
135
|
+
this.#selected = true;
|
136
136
|
|
137
137
|
if (!this.#model) {
|
138
138
|
return false;
|
@@ -8,7 +8,6 @@ import * as Host from '../../core/host/host.js';
|
|
8
8
|
import * as i18n from '../../core/i18n/i18n.js';
|
9
9
|
import * as SDK from '../../core/sdk/sdk.js';
|
10
10
|
import type * as Protocol from '../../generated/protocol.js';
|
11
|
-
import * as Logs from '../../models/logs/logs.js';
|
12
11
|
import * as NetworkForward from '../../panels/network/forward/forward.js';
|
13
12
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
14
13
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
@@ -259,31 +258,6 @@ export class ServiceWorkersView extends UI.Widget.VBox implements
|
|
259
258
|
this.eventListeners = new Map();
|
260
259
|
SDK.TargetManager.TargetManager.instance().observeModels(SDK.ServiceWorkerManager.ServiceWorkerManager, this);
|
261
260
|
this.updateListVisibility();
|
262
|
-
|
263
|
-
const drawerChangeHandler = (event: Event): void => {
|
264
|
-
// @ts-expect-error: No support for custom event listener
|
265
|
-
const isDrawerOpen = event.detail?.isDrawerOpen;
|
266
|
-
if (this.manager && !isDrawerOpen) {
|
267
|
-
const {serviceWorkerNetworkRequestsPanelStatus: {isOpen, openedAt}} = this.manager;
|
268
|
-
if (isOpen) {
|
269
|
-
const networkLocation = UI.ViewManager.ViewManager.instance().locationNameForViewId('network');
|
270
|
-
UI.ViewManager.ViewManager.instance().showViewInLocation('network', networkLocation, false);
|
271
|
-
void Common.Revealer.reveal(NetworkForward.UIFilter.UIRequestFilter.filters([]));
|
272
|
-
|
273
|
-
const currentTime = Date.now();
|
274
|
-
const timeDifference = currentTime - openedAt;
|
275
|
-
if (timeDifference < 2000) {
|
276
|
-
Host.userMetrics.actionTaken(Host.UserMetrics.Action.ServiceWorkerNetworkRequestClosedQuickly);
|
277
|
-
}
|
278
|
-
|
279
|
-
this.manager.serviceWorkerNetworkRequestsPanelStatus = {
|
280
|
-
isOpen: false,
|
281
|
-
openedAt: 0,
|
282
|
-
};
|
283
|
-
}
|
284
|
-
}
|
285
|
-
};
|
286
|
-
document.body.addEventListener(UI.InspectorView.Events.DRAWER_CHANGE, drawerChangeHandler);
|
287
261
|
}
|
288
262
|
|
289
263
|
modelAdded(serviceWorkerManager: SDK.ServiceWorkerManager.ServiceWorkerManager): void {
|
@@ -750,10 +724,6 @@ export class Section {
|
|
750
724
|
}
|
751
725
|
|
752
726
|
private networkRequestsClicked(): void {
|
753
|
-
const applicationTabLocation = UI.ViewManager.ViewManager.instance().locationNameForViewId('resources');
|
754
|
-
const networkTabLocation = applicationTabLocation === 'drawer-view' ? 'panel' : 'drawer-view';
|
755
|
-
UI.ViewManager.ViewManager.instance().showViewInLocation('network', networkTabLocation);
|
756
|
-
|
757
727
|
void Common.Revealer.reveal(NetworkForward.UIFilter.UIRequestFilter.filters([
|
758
728
|
{
|
759
729
|
filterType: NetworkForward.UIFilter.FilterType.Is,
|
@@ -761,29 +731,6 @@ export class Section {
|
|
761
731
|
},
|
762
732
|
]));
|
763
733
|
|
764
|
-
const requests = Logs.NetworkLog.NetworkLog.instance().requests();
|
765
|
-
let lastRequest: SDK.NetworkRequest.NetworkRequest|null = null;
|
766
|
-
if (Array.isArray(requests)) {
|
767
|
-
for (const request of requests) {
|
768
|
-
if (!lastRequest && request.fetchedViaServiceWorker) {
|
769
|
-
lastRequest = request;
|
770
|
-
}
|
771
|
-
if (request.fetchedViaServiceWorker && lastRequest &&
|
772
|
-
lastRequest.responseReceivedTime < request.responseReceivedTime) {
|
773
|
-
lastRequest = request;
|
774
|
-
}
|
775
|
-
}
|
776
|
-
}
|
777
|
-
if (lastRequest) {
|
778
|
-
const requestLocation = NetworkForward.UIRequestLocation.UIRequestLocation.tab(
|
779
|
-
lastRequest, NetworkForward.UIRequestLocation.UIRequestTabs.TIMING, {clearFilter: false});
|
780
|
-
void Common.Revealer.reveal(requestLocation);
|
781
|
-
}
|
782
|
-
|
783
|
-
this.manager.serviceWorkerNetworkRequestsPanelStatus = {
|
784
|
-
isOpen: true,
|
785
|
-
openedAt: Date.now(),
|
786
|
-
};
|
787
734
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.ServiceWorkerNetworkRequestClicked);
|
788
735
|
}
|
789
736
|
|
@@ -118,11 +118,11 @@ export class PreloadingDisabledInfobar extends LegacyWrapper.LegacyWrapper.Wrapp
|
|
118
118
|
|
119
119
|
async #render(): Promise<void> {
|
120
120
|
await RenderCoordinator.write('PreloadingDisabledInfobar render', () => {
|
121
|
-
Lit.render(this.#
|
121
|
+
Lit.render(this.#renderTemplate(), this.#shadow, {host: this});
|
122
122
|
});
|
123
123
|
}
|
124
124
|
|
125
|
-
#
|
125
|
+
#renderTemplate(): Lit.LitTemplate {
|
126
126
|
const forceEnabled =
|
127
127
|
this.#data.disabledByHoldbackPrefetchSpeculationRules || this.#data.disabledByHoldbackPrerenderSpeculationRules;
|
128
128
|
const disabled =
|
@@ -155,11 +155,11 @@ export class UsedPreloadingView extends LegacyWrapper.LegacyWrapper.WrappableCom
|
|
155
155
|
|
156
156
|
async #render(): Promise<void> {
|
157
157
|
await RenderCoordinator.write('UsedPreloadingView render', () => {
|
158
|
-
Lit.render(this.#
|
158
|
+
Lit.render(this.#renderTemplate(), this.#shadow, {host: this});
|
159
159
|
});
|
160
160
|
}
|
161
161
|
|
162
|
-
#
|
162
|
+
#renderTemplate(): Lit.LitTemplate {
|
163
163
|
// Disabled until https://crbug.com/1079231 is fixed.
|
164
164
|
// clang-format off
|
165
165
|
return html`
|