chrome-devtools-frontend 1.0.1512349 → 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/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 +38 -0
- 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/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 +15 -16
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +127 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +149 -26
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +9 -10
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +3 -5
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +4 -3
- package/front_end/models/badges/SpeedsterBadge.ts +6 -4
- package/front_end/models/badges/StarterBadge.ts +4 -3
- package/front_end/models/badges/UserBadges.ts +29 -3
- 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 -41
- 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 +24 -4
- package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
- package/front_end/panels/common/badgeNotification.css +26 -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 +18 -18
- package/front_end/panels/elements/ElementsTreeOutline.ts +41 -48
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
- package/front_end/panels/elements/StylePropertiesSection.ts +4 -4
- package/front_end/panels/elements/StylePropertyTreeElement.ts +49 -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 -12
- package/front_end/panels/settings/components/SyncSection.ts +20 -6
- 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 +52 -59
- 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 +43 -43
- 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/theme_support/ThemeSupport.ts +4 -4
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
- package/package.json +1 -1
@@ -24,56 +24,55 @@ export class Segment<T> {
|
|
24
24
|
}
|
25
25
|
|
26
26
|
export class SegmentedRange<T> {
|
27
|
-
#
|
27
|
+
#segments: Array<Segment<T>>;
|
28
28
|
readonly #mergeCallback: ((arg0: Segment<T>, arg1: Segment<T>) => Segment<T>| null)|undefined;
|
29
29
|
|
30
30
|
constructor(mergeCallback?: ((arg0: Segment<T>, arg1: Segment<T>) => Segment<T>| null)) {
|
31
|
-
this.#
|
31
|
+
this.#segments = [];
|
32
32
|
this.#mergeCallback = mergeCallback;
|
33
33
|
}
|
34
34
|
|
35
35
|
append(newSegment: Segment<T>): void {
|
36
36
|
// 1. Find the proper insertion point for new segment
|
37
|
-
let startIndex =
|
38
|
-
Platform.ArrayUtilities.lowerBound(this.#segmentsInternal, newSegment, (a, b) => a.begin - b.begin);
|
37
|
+
let startIndex = Platform.ArrayUtilities.lowerBound(this.#segments, newSegment, (a, b) => a.begin - b.begin);
|
39
38
|
let endIndex = startIndex;
|
40
39
|
let merged: (Segment<T>|null)|null = null;
|
41
40
|
if (startIndex > 0) {
|
42
41
|
// 2. Try mering the preceding segment
|
43
|
-
const precedingSegment = this.#
|
42
|
+
const precedingSegment = this.#segments[startIndex - 1];
|
44
43
|
merged = this.tryMerge(precedingSegment, newSegment);
|
45
44
|
if (merged) {
|
46
45
|
--startIndex;
|
47
46
|
newSegment = merged;
|
48
|
-
} else if (this.#
|
47
|
+
} else if (this.#segments[startIndex - 1].end >= newSegment.begin) {
|
49
48
|
// 2a. If merge failed and segments overlap, adjust preceding segment.
|
50
49
|
// If an old segment entirely contains new one, split it in two.
|
51
50
|
if (newSegment.end < precedingSegment.end) {
|
52
|
-
this.#
|
51
|
+
this.#segments.splice(
|
53
52
|
startIndex, 0, new Segment<T>(newSegment.end, precedingSegment.end, precedingSegment.data));
|
54
53
|
}
|
55
54
|
precedingSegment.end = newSegment.begin;
|
56
55
|
}
|
57
56
|
}
|
58
57
|
// 3. Consume all segments that are entirely covered by the new one.
|
59
|
-
while (endIndex < this.#
|
58
|
+
while (endIndex < this.#segments.length && this.#segments[endIndex].end <= newSegment.end) {
|
60
59
|
++endIndex;
|
61
60
|
}
|
62
61
|
// 4. Merge or adjust the succeeding segment if it overlaps.
|
63
|
-
if (endIndex < this.#
|
64
|
-
merged = this.tryMerge(newSegment, this.#
|
62
|
+
if (endIndex < this.#segments.length) {
|
63
|
+
merged = this.tryMerge(newSegment, this.#segments[endIndex]);
|
65
64
|
if (merged) {
|
66
65
|
endIndex++;
|
67
66
|
newSegment = merged;
|
68
|
-
} else if (newSegment.intersects(this.#
|
69
|
-
this.#
|
67
|
+
} else if (newSegment.intersects(this.#segments[endIndex])) {
|
68
|
+
this.#segments[endIndex].begin = newSegment.end;
|
70
69
|
}
|
71
70
|
}
|
72
|
-
this.#
|
71
|
+
this.#segments.splice(startIndex, endIndex - startIndex, newSegment);
|
73
72
|
}
|
74
73
|
|
75
74
|
segments(): Array<Segment<T>> {
|
76
|
-
return this.#
|
75
|
+
return this.#segments;
|
77
76
|
}
|
78
77
|
|
79
78
|
private tryMerge(first: Segment<T>, second: Segment<T>): Segment<T>|null {
|
@@ -354,7 +354,7 @@ export class Deprecation {
|
|
354
354
|
|
355
355
|
export class Setting<V> {
|
356
356
|
#titleFunction?: () => Platform.UIString.LocalizedString;
|
357
|
-
#
|
357
|
+
#title!: Platform.UIString.LocalizedString;
|
358
358
|
#registration: SettingRegistration|null = null;
|
359
359
|
#requiresUserAction?: boolean;
|
360
360
|
#value?: V;
|
@@ -387,8 +387,8 @@ export class Setting<V> {
|
|
387
387
|
}
|
388
388
|
|
389
389
|
title(): Platform.UIString.LocalizedString {
|
390
|
-
if (this.#
|
391
|
-
return this.#
|
390
|
+
if (this.#title) {
|
391
|
+
return this.#title;
|
392
392
|
}
|
393
393
|
if (this.#titleFunction) {
|
394
394
|
return this.#titleFunction();
|
@@ -403,7 +403,7 @@ export class Setting<V> {
|
|
403
403
|
}
|
404
404
|
|
405
405
|
setTitle(title: Platform.UIString.LocalizedString): void {
|
406
|
-
this.#
|
406
|
+
this.#title = title;
|
407
407
|
}
|
408
408
|
|
409
409
|
setRequiresUserAction(requiresUserAction: boolean): void {
|
@@ -8,19 +8,19 @@ export interface OutputStream {
|
|
8
8
|
}
|
9
9
|
|
10
10
|
export class StringOutputStream implements OutputStream {
|
11
|
-
#
|
11
|
+
#data: string;
|
12
12
|
constructor() {
|
13
|
-
this.#
|
13
|
+
this.#data = '';
|
14
14
|
}
|
15
15
|
|
16
16
|
async write(chunk: string): Promise<void> {
|
17
|
-
this.#
|
17
|
+
this.#data += chunk;
|
18
18
|
}
|
19
19
|
|
20
20
|
async close(): Promise<void> {
|
21
21
|
}
|
22
22
|
|
23
23
|
data(): string {
|
24
|
-
return this.#
|
24
|
+
return this.#data;
|
25
25
|
}
|
26
26
|
}
|
@@ -36,6 +36,11 @@ export enum EmailPreference {
|
|
36
36
|
interface CheckElibigilityResponse {
|
37
37
|
createProfile: EligibilityStatus;
|
38
38
|
}
|
39
|
+
|
40
|
+
interface BatchGetAwardsResponse {
|
41
|
+
awards?: Award[];
|
42
|
+
}
|
43
|
+
|
39
44
|
export interface Award {
|
40
45
|
name: string;
|
41
46
|
badge: {
|
@@ -63,6 +68,18 @@ export interface Profile {
|
|
63
68
|
};
|
64
69
|
}
|
65
70
|
|
71
|
+
// The `batchGet` awards endpoint returns badge names with an
|
72
|
+
// obfuscated user ID (e.g., `profiles/12345/awards/badge-name`).
|
73
|
+
// This function normalizes them to use `me` instead of the ID
|
74
|
+
// (e.g., `profiles/me/awards/badge-path`) to match the format
|
75
|
+
// used for client-side requests.
|
76
|
+
function normalizeBadgeName(name: string): string {
|
77
|
+
return name.replace(/profiles\/[^/]+\/awards\//, 'profiles/me/awards/');
|
78
|
+
}
|
79
|
+
|
80
|
+
// TODO(crbug.com/441679275): Update once the API is enabled for prod.
|
81
|
+
export const GOOGLE_DEVELOPER_PROGRAM_PROFILE_LINK = 'https://developers.devsite.corp.google.com/profile/u/me';
|
82
|
+
|
66
83
|
async function makeHttpRequest<R extends object>(request: DispatchHttpRequestRequest): Promise<R|null> {
|
67
84
|
if (!Root.Runtime.hostConfig.devToolsGdpProfiles?.enabled) {
|
68
85
|
return null;
|
@@ -127,6 +144,27 @@ export class GdpClient {
|
|
127
144
|
return await this.#cachedEligibilityPromise;
|
128
145
|
}
|
129
146
|
|
147
|
+
/**
|
148
|
+
* @returns null if the request fails, the awarded badge names otherwise.
|
149
|
+
*/
|
150
|
+
async getAwardedBadgeNames({names}: {names: string[]}): Promise<Set<string>|null> {
|
151
|
+
const result = await makeHttpRequest<BatchGetAwardsResponse>({
|
152
|
+
service: SERVICE_NAME,
|
153
|
+
path: '/v1beta1/profiles/me/awards:batchGet',
|
154
|
+
method: 'GET',
|
155
|
+
queryParams: {
|
156
|
+
allowMissing: 'true',
|
157
|
+
names,
|
158
|
+
}
|
159
|
+
});
|
160
|
+
|
161
|
+
if (!result) {
|
162
|
+
return null;
|
163
|
+
}
|
164
|
+
|
165
|
+
return new Set(result.awards?.map(award => normalizeBadgeName(award.name)) ?? []);
|
166
|
+
}
|
167
|
+
|
130
168
|
async isEligibleToCreateProfile(): Promise<boolean> {
|
131
169
|
return (await this.checkEligibility())?.createProfile === EligibilityStatus.ELIGIBLE;
|
132
170
|
}
|
@@ -423,7 +423,10 @@ export class InspectorFrontendHostStub implements InspectorFrontendHostAPI {
|
|
423
423
|
},
|
424
424
|
devToolsIpProtectionPanelInDevTools: {
|
425
425
|
enabled: false,
|
426
|
-
}
|
426
|
+
},
|
427
|
+
devToolsFlexibleLayout: {
|
428
|
+
verticalDrawerEnabled: true,
|
429
|
+
},
|
427
430
|
};
|
428
431
|
if ('hostConfigForTesting' in globalThis) {
|
429
432
|
const {hostConfigForTesting} = (globalThis as unknown as {hostConfigForTesting: Root.Runtime.HostConfig});
|
@@ -257,11 +257,13 @@ export type DispatchHttpRequestRequest = {
|
|
257
257
|
service: string,
|
258
258
|
path: string,
|
259
259
|
method: 'GET',
|
260
|
+
queryParams?: Record<string, string|string[]>,
|
260
261
|
body?: never,
|
261
262
|
}|{
|
262
263
|
service: string,
|
263
264
|
path: string,
|
264
265
|
method: 'POST',
|
266
|
+
queryParams?: Record<string, string|string[]>,
|
265
267
|
// A JSON string containing the request body.
|
266
268
|
body?: string,
|
267
269
|
};
|
@@ -272,11 +272,11 @@ export const loadAsStream = function(
|
|
272
272
|
|
273
273
|
function dataURLDecodeSuccessful(text: string): void {
|
274
274
|
streamWrite(streamId, text);
|
275
|
-
finishedCallback(({statusCode: 200}
|
275
|
+
finishedCallback(({statusCode: 200}));
|
276
276
|
}
|
277
277
|
|
278
278
|
function dataURLDecodeFailed(_xhrStatus: Error): void {
|
279
279
|
const messageOverride: string = i18nString(UIStrings.decodingDataUrlFailed);
|
280
|
-
finishedCallback(({statusCode: 404, messageOverride}
|
280
|
+
finishedCallback(({statusCode: 404, messageOverride}));
|
281
281
|
}
|
282
282
|
};
|
@@ -817,14 +817,12 @@ export enum DevtoolsExperiments {
|
|
817
817
|
'instrumentation-breakpoints' = 61,
|
818
818
|
'authored-deployed-grouping' = 63,
|
819
819
|
'just-my-code' = 65,
|
820
|
-
'highlight-errors-elements-panel' = 73,
|
821
820
|
'use-source-map-scopes' = 76,
|
822
821
|
'timeline-show-postmessage-events' = 86,
|
823
822
|
'timeline-save-as-gz' = 108,
|
824
823
|
'timeline-enhanced-traces' = 90,
|
825
824
|
'timeline-compiled-sources' = 91,
|
826
825
|
'timeline-debug-mode' = 93,
|
827
|
-
'vertical-drawer' = 107,
|
828
826
|
/* eslint-enable @typescript-eslint/naming-convention */
|
829
827
|
|
830
828
|
// Increment this when new experiments are added.
|
@@ -507,7 +507,7 @@ interface DispatcherMap extends Map<ProtocolDomainName, ProtocolProxyApi.Protoco
|
|
507
507
|
export class TargetBase {
|
508
508
|
needsNodeJSPatching: boolean;
|
509
509
|
readonly sessionId: string;
|
510
|
-
|
510
|
+
#router: SessionRouter|null;
|
511
511
|
#agents: AgentsMap = new Map();
|
512
512
|
#dispatchers: DispatcherMap = new Map();
|
513
513
|
|
@@ -521,15 +521,15 @@ export class TargetBase {
|
|
521
521
|
}
|
522
522
|
|
523
523
|
let router: SessionRouter;
|
524
|
-
if (sessionId && parentTarget
|
525
|
-
router = parentTarget
|
524
|
+
if (sessionId && parentTarget && parentTarget.#router) {
|
525
|
+
router = parentTarget.#router;
|
526
526
|
} else if (connection) {
|
527
527
|
router = new SessionRouter(connection);
|
528
528
|
} else {
|
529
529
|
router = new SessionRouter(connectionFactory());
|
530
530
|
}
|
531
531
|
|
532
|
-
this
|
532
|
+
this.#router = router;
|
533
533
|
|
534
534
|
router.registerSession(this, this.sessionId);
|
535
535
|
|
@@ -557,15 +557,15 @@ export class TargetBase {
|
|
557
557
|
}
|
558
558
|
|
559
559
|
dispose(_reason: string): void {
|
560
|
-
if (!this
|
560
|
+
if (!this.#router) {
|
561
561
|
return;
|
562
562
|
}
|
563
|
-
this.
|
564
|
-
this
|
563
|
+
this.#router.unregisterSession(this.sessionId);
|
564
|
+
this.#router = null;
|
565
565
|
}
|
566
566
|
|
567
567
|
isDisposed(): boolean {
|
568
|
-
return !this
|
568
|
+
return !this.#router;
|
569
569
|
}
|
570
570
|
|
571
571
|
markAsNodeJSForTest(): void {
|
@@ -573,7 +573,7 @@ export class TargetBase {
|
|
573
573
|
}
|
574
574
|
|
575
575
|
router(): SessionRouter|null {
|
576
|
-
return this
|
576
|
+
return this.#router;
|
577
577
|
}
|
578
578
|
|
579
579
|
// Agent accessors, keep alphabetically sorted.
|
@@ -321,14 +321,12 @@ export const enum ExperimentName {
|
|
321
321
|
INSTRUMENTATION_BREAKPOINTS = 'instrumentation-breakpoints',
|
322
322
|
AUTHORED_DEPLOYED_GROUPING = 'authored-deployed-grouping',
|
323
323
|
JUST_MY_CODE = 'just-my-code',
|
324
|
-
HIGHLIGHT_ERRORS_ELEMENTS_PANEL = 'highlight-errors-elements-panel',
|
325
324
|
USE_SOURCE_MAP_SCOPES = 'use-source-map-scopes',
|
326
325
|
TIMELINE_SHOW_POST_MESSAGE_EVENTS = 'timeline-show-postmessage-events',
|
327
326
|
TIMELINE_DEBUG_MODE = 'timeline-debug-mode',
|
328
327
|
TIMELINE_ENHANCED_TRACES = 'timeline-enhanced-traces',
|
329
328
|
TIMELINE_COMPILED_SOURCES = 'timeline-compiled-sources',
|
330
329
|
TIMELINE_SAVE_AS_GZ = 'timeline-save-as-gz',
|
331
|
-
VERTICAL_DRAWER = 'vertical-drawer',
|
332
330
|
// Adding or removing an entry from this enum?
|
333
331
|
// You will need to update:
|
334
332
|
// 1. REGISTERED_EXPERIMENTS in EnvironmentHelpers.ts (to create this experiment in the test env)
|
@@ -486,6 +484,10 @@ interface LiveEdit {
|
|
486
484
|
enabled: boolean;
|
487
485
|
}
|
488
486
|
|
487
|
+
interface DevToolsFlexibleLayout {
|
488
|
+
verticalDrawerEnabled: boolean;
|
489
|
+
}
|
490
|
+
|
489
491
|
/**
|
490
492
|
* The host configuration that we expect from the DevTools back-end.
|
491
493
|
*
|
@@ -529,6 +531,7 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
|
|
529
531
|
devToolsGlobalAiButton: GlobalAiButton,
|
530
532
|
devToolsGdpProfiles: GdpProfiles,
|
531
533
|
devToolsLiveEdit: LiveEdit,
|
534
|
+
devToolsFlexibleLayout: DevToolsFlexibleLayout,
|
532
535
|
}>;
|
533
536
|
|
534
537
|
/**
|
@@ -22,44 +22,44 @@ export interface CoreOrProtocolAxProperty {
|
|
22
22
|
}
|
23
23
|
|
24
24
|
export class AccessibilityNode {
|
25
|
-
readonly #
|
26
|
-
readonly #
|
27
|
-
readonly #
|
28
|
-
readonly #
|
29
|
-
readonly #
|
30
|
-
readonly #
|
31
|
-
readonly #
|
32
|
-
readonly #
|
33
|
-
readonly #
|
34
|
-
readonly #
|
35
|
-
readonly #
|
25
|
+
readonly #accessibilityModel: AccessibilityModel;
|
26
|
+
readonly #id: Protocol.Accessibility.AXNodeId;
|
27
|
+
readonly #backendDOMNodeId: Protocol.DOM.BackendNodeId|null;
|
28
|
+
readonly #deferredDOMNode: DeferredDOMNode|null;
|
29
|
+
readonly #ignored: boolean;
|
30
|
+
readonly #ignoredReasons: Protocol.Accessibility.AXProperty[]|undefined;
|
31
|
+
readonly #role: Protocol.Accessibility.AXValue|null;
|
32
|
+
readonly #name: Protocol.Accessibility.AXValue|null;
|
33
|
+
readonly #description: Protocol.Accessibility.AXValue|null;
|
34
|
+
readonly #value: Protocol.Accessibility.AXValue|null;
|
35
|
+
readonly #properties: Protocol.Accessibility.AXProperty[]|null;
|
36
36
|
readonly #parentId: Protocol.Accessibility.AXNodeId|null;
|
37
37
|
readonly #frameId: Protocol.Page.FrameId|null;
|
38
38
|
readonly #childIds: Protocol.Accessibility.AXNodeId[]|null;
|
39
39
|
|
40
40
|
constructor(accessibilityModel: AccessibilityModel, payload: Protocol.Accessibility.AXNode) {
|
41
|
-
this.#
|
41
|
+
this.#accessibilityModel = accessibilityModel;
|
42
42
|
|
43
|
-
this.#
|
44
|
-
accessibilityModel.setAXNodeForAXId(this.#
|
43
|
+
this.#id = payload.nodeId;
|
44
|
+
accessibilityModel.setAXNodeForAXId(this.#id, this);
|
45
45
|
if (payload.backendDOMNodeId) {
|
46
46
|
accessibilityModel.setAXNodeForBackendDOMNodeId(payload.backendDOMNodeId, this);
|
47
|
-
this.#
|
48
|
-
this.#
|
47
|
+
this.#backendDOMNodeId = payload.backendDOMNodeId;
|
48
|
+
this.#deferredDOMNode = new DeferredDOMNode(accessibilityModel.target(), payload.backendDOMNodeId);
|
49
49
|
} else {
|
50
|
-
this.#
|
51
|
-
this.#
|
50
|
+
this.#backendDOMNodeId = null;
|
51
|
+
this.#deferredDOMNode = null;
|
52
52
|
}
|
53
|
-
this.#
|
54
|
-
if (this.#
|
55
|
-
this.#
|
53
|
+
this.#ignored = payload.ignored;
|
54
|
+
if (this.#ignored && 'ignoredReasons' in payload) {
|
55
|
+
this.#ignoredReasons = payload.ignoredReasons;
|
56
56
|
}
|
57
57
|
|
58
|
-
this.#
|
59
|
-
this.#
|
60
|
-
this.#
|
61
|
-
this.#
|
62
|
-
this.#
|
58
|
+
this.#role = payload.role || null;
|
59
|
+
this.#name = payload.name || null;
|
60
|
+
this.#description = payload.description || null;
|
61
|
+
this.#value = payload.value || null;
|
62
|
+
this.#properties = payload.properties || null;
|
63
63
|
this.#childIds = [...new Set(payload.childIds)];
|
64
64
|
this.#parentId = payload.parentId || null;
|
65
65
|
if (payload.frameId && !payload.parentId) {
|
@@ -71,74 +71,74 @@ export class AccessibilityNode {
|
|
71
71
|
}
|
72
72
|
|
73
73
|
id(): Protocol.Accessibility.AXNodeId {
|
74
|
-
return this.#
|
74
|
+
return this.#id;
|
75
75
|
}
|
76
76
|
|
77
77
|
accessibilityModel(): AccessibilityModel {
|
78
|
-
return this.#
|
78
|
+
return this.#accessibilityModel;
|
79
79
|
}
|
80
80
|
|
81
81
|
ignored(): boolean {
|
82
|
-
return this.#
|
82
|
+
return this.#ignored;
|
83
83
|
}
|
84
84
|
|
85
85
|
ignoredReasons(): Protocol.Accessibility.AXProperty[]|null {
|
86
|
-
return this.#
|
86
|
+
return this.#ignoredReasons || null;
|
87
87
|
}
|
88
88
|
|
89
89
|
role(): Protocol.Accessibility.AXValue|null {
|
90
|
-
return this.#
|
90
|
+
return this.#role || null;
|
91
91
|
}
|
92
92
|
|
93
93
|
coreProperties(): CoreOrProtocolAxProperty[] {
|
94
94
|
const properties: CoreOrProtocolAxProperty[] = [];
|
95
95
|
|
96
|
-
if (this.#
|
97
|
-
properties.push({name: CoreAxPropertyName.NAME, value: this.#
|
96
|
+
if (this.#name) {
|
97
|
+
properties.push({name: CoreAxPropertyName.NAME, value: this.#name});
|
98
98
|
}
|
99
|
-
if (this.#
|
100
|
-
properties.push({name: CoreAxPropertyName.DESCRIPTION, value: this.#
|
99
|
+
if (this.#description) {
|
100
|
+
properties.push({name: CoreAxPropertyName.DESCRIPTION, value: this.#description});
|
101
101
|
}
|
102
|
-
if (this.#
|
103
|
-
properties.push({name: CoreAxPropertyName.VALUE, value: this.#
|
102
|
+
if (this.#value) {
|
103
|
+
properties.push({name: CoreAxPropertyName.VALUE, value: this.#value});
|
104
104
|
}
|
105
105
|
|
106
106
|
return properties;
|
107
107
|
}
|
108
108
|
|
109
109
|
name(): Protocol.Accessibility.AXValue|null {
|
110
|
-
return this.#
|
110
|
+
return this.#name || null;
|
111
111
|
}
|
112
112
|
|
113
113
|
description(): Protocol.Accessibility.AXValue|null {
|
114
|
-
return this.#
|
114
|
+
return this.#description || null;
|
115
115
|
}
|
116
116
|
|
117
117
|
value(): Protocol.Accessibility.AXValue|null {
|
118
|
-
return this.#
|
118
|
+
return this.#value || null;
|
119
119
|
}
|
120
120
|
|
121
121
|
properties(): Protocol.Accessibility.AXProperty[]|null {
|
122
|
-
return this.#
|
122
|
+
return this.#properties || null;
|
123
123
|
}
|
124
124
|
|
125
125
|
parentNode(): AccessibilityNode|null {
|
126
126
|
if (this.#parentId) {
|
127
|
-
return this.#
|
127
|
+
return this.#accessibilityModel.axNodeForId(this.#parentId);
|
128
128
|
}
|
129
129
|
return null;
|
130
130
|
}
|
131
131
|
|
132
132
|
isDOMNode(): boolean {
|
133
|
-
return Boolean(this.#
|
133
|
+
return Boolean(this.#backendDOMNodeId);
|
134
134
|
}
|
135
135
|
|
136
136
|
backendDOMNodeId(): Protocol.DOM.BackendNodeId|null {
|
137
|
-
return this.#
|
137
|
+
return this.#backendDOMNodeId;
|
138
138
|
}
|
139
139
|
|
140
140
|
deferredDOMNode(): DeferredDOMNode|null {
|
141
|
-
return this.#
|
141
|
+
return this.#deferredDOMNode;
|
142
142
|
}
|
143
143
|
|
144
144
|
highlightDOMNode(): void {
|
@@ -157,7 +157,7 @@ export class AccessibilityNode {
|
|
157
157
|
|
158
158
|
const children = [];
|
159
159
|
for (const childId of this.#childIds) {
|
160
|
-
const child = this.#
|
160
|
+
const child = this.#accessibilityModel.axNodeForId(childId);
|
161
161
|
if (child) {
|
162
162
|
children.push(child);
|
163
163
|
}
|
@@ -177,14 +177,14 @@ export class AccessibilityNode {
|
|
177
177
|
if (!this.#childIds || !this.#childIds.length) {
|
178
178
|
return false;
|
179
179
|
}
|
180
|
-
return this.#childIds.every(id => this.#
|
180
|
+
return this.#childIds.every(id => this.#accessibilityModel.axNodeForId(id) === null);
|
181
181
|
}
|
182
182
|
|
183
183
|
hasUnloadedChildren(): boolean {
|
184
184
|
if (!this.#childIds || !this.#childIds.length) {
|
185
185
|
return false;
|
186
186
|
}
|
187
|
-
return this.#childIds.some(id => this.#
|
187
|
+
return this.#childIds.some(id => this.#accessibilityModel.axNodeForId(id) === null);
|
188
188
|
}
|
189
189
|
// Only the root node gets a frameId, so nodes have to walk up the tree to find their frameId.
|
190
190
|
getFrameId(): Protocol.Page.FrameId|null {
|