chrome-devtools-frontend 1.0.950850 → 1.0.952284
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 +3 -3
- package/extension-api/ExtensionAPI.d.ts +1 -1
- package/front_end/.eslintrc.js +6 -0
- package/front_end/Tests.js +10 -0
- package/front_end/core/common/App.ts +0 -3
- package/front_end/core/common/AppProvider.ts +0 -3
- package/front_end/core/common/JavaScriptMetaData.ts +0 -3
- package/front_end/core/common/QueryParamHandler.ts +0 -3
- package/front_end/core/common/Runnable.ts +0 -3
- package/front_end/core/common/SimpleHistoryManager.ts +0 -3
- package/front_end/core/i18n/locales/en-US.json +183 -183
- package/front_end/core/i18n/locales/en-XL.json +183 -183
- package/front_end/core/sdk/CSSRule.ts +1 -1
- package/front_end/core/sdk/DOMModel.ts +12 -37
- package/front_end/core/sdk/OverlayModel.ts +18 -34
- package/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -12
- package/front_end/core/sdk/RuntimeModel.ts +0 -1
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/core/sdk/TracingManager.ts +0 -3
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +36 -36
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +53 -53
- package/front_end/entrypoints/formatter_worker/ESTreeWalker.ts +11 -11
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +43 -43
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +106 -105
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +26 -26
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +51 -56
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +201 -204
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +84 -83
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.ts +16 -16
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +21 -21
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +30 -30
- package/front_end/entrypoints/main/MainImpl.ts +12 -12
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +33 -33
- package/front_end/entrypoints/node_app/NodeMain.ts +35 -35
- package/front_end/generated/InspectorBackendCommands.js +5 -1
- package/front_end/generated/protocol.d.ts +16 -0
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -3
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +1 -2
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -4
- package/front_end/models/bindings/FileUtils.ts +0 -4
- package/front_end/models/bindings/IgnoreListManager.ts +1 -2
- package/front_end/models/bindings/NetworkProject.ts +1 -2
- package/front_end/models/extensions/ExtensionAPI.ts +2 -2
- package/front_end/models/extensions/ExtensionTraceProvider.ts +0 -3
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +6 -6
- package/front_end/models/issues_manager/ContrastCheckTrigger.ts +15 -15
- package/front_end/models/issues_manager/CorsIssue.ts +9 -9
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -5
- package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
- package/front_end/models/issues_manager/GenericIssue.ts +5 -5
- package/front_end/models/issues_manager/HeavyAdIssue.ts +5 -5
- package/front_end/models/issues_manager/Issue.ts +10 -10
- package/front_end/models/issues_manager/IssueResolver.ts +11 -10
- package/front_end/models/issues_manager/IssuesManager.ts +56 -56
- package/front_end/models/issues_manager/LowTextContrastIssue.ts +4 -4
- package/front_end/models/issues_manager/MixedContentIssue.ts +7 -7
- package/front_end/models/issues_manager/NavigatorUserAgentIssue.ts +7 -7
- package/front_end/models/issues_manager/QuirksModeIssue.ts +4 -4
- package/front_end/models/issues_manager/SameSiteCookieIssue.ts +17 -18
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +5 -5
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +32 -31
- package/front_end/models/issues_manager/TrustedWebActivityIssue.ts +5 -5
- package/front_end/models/issues_manager/WasmCrossOriginModuleSharingIssue.ts +5 -5
- package/front_end/models/timeline_model/TimelineModel.ts +1 -1
- package/front_end/models/timeline_model/TracingLayerTree.ts +0 -1
- package/front_end/panels/accessibility/ARIAMetadata.ts +0 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +2 -2
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -2
- package/front_end/panels/animation/AnimationTimeline.ts +0 -1
- package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -4
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -2
- package/front_end/panels/application/StorageView.ts +2 -6
- package/front_end/panels/application/{BackForwardCacheStrings.ts → components/BackForwardCacheStrings.ts} +2 -2
- package/front_end/panels/application/{BackForwardCacheView.ts → components/BackForwardCacheView.ts} +96 -62
- package/front_end/panels/application/components/EndpointsGrid.ts +12 -12
- package/front_end/panels/application/components/FrameDetailsView.ts +108 -110
- package/front_end/panels/application/components/OriginTrialTreeView.ts +45 -45
- package/front_end/panels/application/components/PermissionsPolicySection.ts +19 -19
- package/front_end/panels/application/components/ReportsGrid.ts +30 -30
- package/front_end/panels/application/components/StackTrace.ts +48 -47
- package/front_end/panels/application/components/TrustTokensView.ts +31 -31
- package/front_end/panels/application/{backForwardCacheView.css → components/backForwardCacheView.css} +9 -0
- package/front_end/panels/application/components/components.ts +2 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -25
- package/front_end/panels/console/consoleView.css +5 -0
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +41 -52
- package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +18 -27
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +6 -6
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +4 -4
- package/front_end/panels/elements/ComputedStyleModel.ts +2 -2
- package/front_end/panels/elements/ElementsPanel.ts +1 -5
- package/front_end/panels/elements/ElementsTreeElement.ts +2 -6
- package/front_end/panels/elements/ElementsTreeOutline.ts +2 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +17 -17
- package/front_end/panels/elements/components/AdornerManager.ts +21 -21
- package/front_end/panels/elements/components/AdornerSettingsPane.ts +14 -14
- package/front_end/panels/elements/components/CSSQuery.ts +16 -16
- package/front_end/panels/elements/components/ComputedStyleProperty.ts +14 -14
- package/front_end/panels/elements/components/ComputedStyleTrace.ts +15 -15
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +78 -78
- package/front_end/panels/elements/components/ElementsPanelLink.ts +16 -16
- package/front_end/panels/elements/components/LayoutPane.ts +47 -47
- package/front_end/panels/elements/components/NodeText.ts +18 -18
- package/front_end/panels/elements/components/QueryContainer.ts +40 -40
- package/front_end/panels/elements/components/StylePropertyEditor.ts +18 -18
- package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +4 -4
- package/front_end/panels/event_listeners/EventListenersUtils.ts +2 -1
- package/front_end/panels/issues/AffectedBlockedByResponseView.ts +4 -4
- package/front_end/panels/issues/AffectedCookiesView.ts +4 -5
- package/front_end/panels/issues/AffectedDirectivesView.ts +19 -19
- package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +7 -8
- package/front_end/panels/issues/AffectedElementsView.ts +4 -4
- package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +7 -8
- package/front_end/panels/issues/AffectedHeavyAdView.ts +8 -8
- package/front_end/panels/issues/AffectedResourcesView.ts +25 -26
- package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +8 -8
- package/front_end/panels/issues/AffectedSourcesView.ts +4 -4
- package/front_end/panels/issues/AffectedTrustedWebActivityIssueDetailsView.ts +4 -4
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +17 -17
- package/front_end/panels/issues/CSPViolationsListView.ts +22 -23
- package/front_end/panels/issues/CSPViolationsView.ts +17 -17
- package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +13 -13
- package/front_end/panels/issues/CorsIssueDetailsView.ts +23 -23
- package/front_end/panels/issues/GenericIssueDetailsView.ts +4 -4
- package/front_end/panels/issues/HiddenIssuesRow.ts +7 -7
- package/front_end/panels/issues/IssueAggregator.ts +95 -95
- package/front_end/panels/issues/IssueKindView.ts +14 -14
- package/front_end/panels/issues/IssueView.ts +98 -98
- package/front_end/panels/issues/IssuesPane.ts +102 -102
- package/front_end/panels/issues/WasmCrossOriginModuleSharingAffectedResourcesView.ts +5 -5
- package/front_end/panels/issues/components/HideIssuesMenu.ts +10 -10
- package/front_end/panels/layer_viewer/Layers3DView.ts +3 -9
- package/front_end/panels/lighthouse/LighthouseController.ts +4 -5
- package/front_end/panels/media/PlayerListView.ts +160 -97
- package/front_end/panels/media/PlayerMessagesView.ts +1 -0
- package/front_end/panels/media/TickingFlameChart.ts +1 -2
- package/front_end/panels/media/playerListView.css +58 -0
- package/front_end/panels/network/NetworkLogView.ts +2 -6
- package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
- package/front_end/panels/network/NetworkWaterfallColumn.ts +2 -4
- package/front_end/panels/network/components/RequestTrustTokensView.ts +40 -40
- package/front_end/panels/network/components/WebBundleInfoView.ts +9 -9
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +6 -12
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +0 -1
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -2
- package/front_end/panels/profiler/heapProfiler.css +1 -1
- package/front_end/panels/search/SearchConfig.ts +0 -6
- package/front_end/panels/security/SecurityModel.ts +2 -4
- package/front_end/panels/security/SecurityPanel.ts +2 -2
- package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -0
- package/front_end/panels/settings/components/SyncSection.ts +14 -14
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +96 -96
- package/front_end/panels/settings/settingsScreen.css +8 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +4 -3
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +2 -2
- package/front_end/panels/sources/NavigatorView.ts +4 -10
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +2 -3
- package/front_end/panels/sources/SourceMapNamesResolver.ts +3 -3
- package/front_end/panels/sources/SourcesPanel.ts +1 -3
- package/front_end/panels/sources/SourcesView.ts +0 -3
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -4
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -5
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +0 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +0 -1
- package/front_end/panels/timeline/TimelineLoader.ts +0 -3
- package/front_end/panels/timeline/TimelinePanel.ts +2 -3
- package/front_end/panels/timeline/TimelineUIUtils.ts +1 -1
- package/front_end/panels/timeline/components/WebVitalsLane.ts +77 -76
- package/front_end/panels/timeline/components/WebVitalsTimeline.ts +133 -133
- package/front_end/panels/timeline/components/WebVitalsTooltip.ts +9 -9
- package/front_end/panels/webauthn/WebauthnPane.ts +203 -205
- package/front_end/third_party/codemirror.next/bundle.ts +3 -3
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +10 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +2 -1
- package/front_end/third_party/codemirror.next/package.json +3 -3
- package/front_end/third_party/puppeteer/package/README.md +11 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.d.ts +4 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +4 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts +1 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts +1 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts +9 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js +21 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.d.ts +3 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +8 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +50 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +70 -33
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js +25 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts +2 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +39 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +36 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts +3 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts +46 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js +124 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +27 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +144 -74
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.d.ts +5 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts +4 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WebWorker.d.ts +3 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts +4 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +43 -17
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +101 -34
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts +5 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +4 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +4 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +3 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +1 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +1 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +9 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +24 -17
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +3 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +8 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +7 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +50 -11
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +70 -34
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +26 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +2 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +39 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +38 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +3 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts +46 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js +120 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +27 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +144 -75
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +12 -14
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +5 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +3 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +4 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +3 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +3 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +10 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +4 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +43 -20
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +104 -40
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +5 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +3 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/web.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +173 -36
- package/front_end/third_party/puppeteer/package/package.json +3 -3
- package/front_end/ui/components/adorners/Adorner.ts +2 -2
- package/front_end/ui/components/buttons/Button.ts +9 -9
- package/front_end/ui/components/data_grid/DataGrid.ts +62 -62
- package/front_end/ui/components/data_grid/DataGridController.ts +22 -22
- package/front_end/ui/components/diff_view/DiffView.ts +6 -6
- package/front_end/ui/components/expandable_list/ExpandableList.ts +5 -5
- package/front_end/ui/components/icon_button/Icon.ts +4 -4
- package/front_end/ui/components/icon_button/IconButton.ts +4 -4
- package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +11 -11
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +50 -50
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +6 -6
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +4 -4
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +12 -12
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +11 -11
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +40 -39
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +18 -18
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -4
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +5 -5
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +2 -2
- package/front_end/ui/components/markdown_view/MarkdownView.ts +4 -5
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +2 -2
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +2 -2
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +4 -4
- package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +22 -22
- package/front_end/ui/components/report_view/ReportView.ts +16 -16
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +14 -14
- package/front_end/ui/components/settings/SettingCheckbox.ts +5 -5
- package/front_end/ui/components/survey_link/SurveyLink.ts +8 -8
- package/front_end/ui/components/text_editor/TextEditor.ts +9 -9
- package/front_end/ui/components/text_editor/cursor_tooltip.ts +7 -1
- package/front_end/ui/components/text_prompt/TextPrompt.ts +18 -18
- package/front_end/ui/components/tree_outline/TreeOutline.ts +69 -70
- package/front_end/ui/legacy/ContextFlavorListener.ts +0 -4
- package/front_end/ui/legacy/ContextMenu.ts +2 -3
- package/front_end/ui/legacy/InspectorView.ts +1 -1
- package/front_end/ui/legacy/ReportView.ts +3 -4
- package/front_end/ui/legacy/SearchableView.ts +1 -2
- package/front_end/ui/legacy/SplitWidget.ts +2 -3
- package/front_end/ui/legacy/SuggestBox.ts +0 -3
- package/front_end/ui/legacy/TextPrompt.ts +1 -1
- package/front_end/ui/legacy/UIUtils.ts +1 -1
- package/front_end/ui/legacy/XLink.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +2 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +9 -9
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +7 -7
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +1 -5
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +0 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -2
- package/front_end/ui/legacy/themeColors.css +2 -0
- package/front_end/ui/legacy/theme_support/theme_support_impl.ts +24 -1
- package/inspector_overlay/main.ts +16 -2
- package/package.json +1 -1
- package/scripts/eslint_rules/lib/use_private_class_members.js +41 -0
- package/scripts/eslint_rules/tests/use_private_class_members_test.js +62 -0
- package/scripts/migration/class-fields/migrate.js +2 -3
- package/scripts/migration/class-fields/migrate.sh +1 -3
- package/scripts/migration/class-fields/package.json +1 -1
|
@@ -133,7 +133,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
133
133
|
this.affectedResourcesCountElement.classList.add('cors-issue-affected-resource-label');
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
#appendStatus(element: HTMLElement, isWarning: boolean): void {
|
|
137
137
|
const status = document.createElement('td');
|
|
138
138
|
if (isWarning) {
|
|
139
139
|
status.classList.add('affected-resource-report-only-status');
|
|
@@ -149,8 +149,8 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
149
149
|
return i18nString(UIStrings.nRequests, {n: count});
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
#appendDetails(issueCode: IssuesManager.CorsIssue.IssueCode, issues: Iterable<IssuesManager.CorsIssue.CorsIssue>):
|
|
153
|
+
void {
|
|
154
154
|
const header = document.createElement('tr');
|
|
155
155
|
this.appendColumnTitle(header, i18nString(UIStrings.request));
|
|
156
156
|
this.appendColumnTitle(header, i18nString(UIStrings.status));
|
|
@@ -222,12 +222,12 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
222
222
|
let count = 0;
|
|
223
223
|
for (const issue of issues) {
|
|
224
224
|
count++;
|
|
225
|
-
this
|
|
225
|
+
this.#appendDetail(issueCode, issue);
|
|
226
226
|
}
|
|
227
227
|
this.updateAffectedResourceCount(count);
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
#appendSecureContextCell(element: HTMLElement, isSecureContext: boolean|undefined): void {
|
|
231
231
|
if (isSecureContext === undefined) {
|
|
232
232
|
this.appendIssueDetailCell(element, '');
|
|
233
233
|
return;
|
|
@@ -292,7 +292,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
292
292
|
throw new Error('Invalid Argument');
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
|
|
295
|
+
#appendDetail(issueCode: IssuesManager.CorsIssue.IssueCode, issue: IssuesManager.CorsIssue.CorsIssue): void {
|
|
296
296
|
const element = document.createElement('tr');
|
|
297
297
|
element.classList.add('affected-resource-directive');
|
|
298
298
|
|
|
@@ -314,7 +314,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
314
314
|
switch (issueCode) {
|
|
315
315
|
case IssuesManager.CorsIssue.IssueCode.InvalidHeaderValues:
|
|
316
316
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
317
|
-
this
|
|
317
|
+
this.#appendStatus(element, details.isWarning);
|
|
318
318
|
if (corsError.includes('Preflight')) {
|
|
319
319
|
element.appendChild(
|
|
320
320
|
this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
@@ -327,7 +327,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
327
327
|
break;
|
|
328
328
|
case IssuesManager.CorsIssue.IssueCode.WildcardOriginNotAllowed:
|
|
329
329
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
330
|
-
this
|
|
330
|
+
this.#appendStatus(element, details.isWarning);
|
|
331
331
|
if (corsError.includes('Preflight')) {
|
|
332
332
|
element.appendChild(
|
|
333
333
|
this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
@@ -337,7 +337,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
337
337
|
break;
|
|
338
338
|
case IssuesManager.CorsIssue.IssueCode.PreflightResponseInvalid: {
|
|
339
339
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
340
|
-
this
|
|
340
|
+
this.#appendStatus(element, details.isWarning);
|
|
341
341
|
const specialHighlightHeader = corsError === Protocol.Network.CorsError.PreflightInvalidStatus ?
|
|
342
342
|
{
|
|
343
343
|
section: NetworkForward.UIRequestLocation.UIHeaderSection.General,
|
|
@@ -351,7 +351,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
351
351
|
}
|
|
352
352
|
case IssuesManager.CorsIssue.IssueCode.OriginMismatch:
|
|
353
353
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
354
|
-
this
|
|
354
|
+
this.#appendStatus(element, details.isWarning);
|
|
355
355
|
if (corsError.includes('Preflight')) {
|
|
356
356
|
element.appendChild(
|
|
357
357
|
this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
@@ -363,7 +363,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
363
363
|
break;
|
|
364
364
|
case IssuesManager.CorsIssue.IssueCode.AllowCredentialsRequired:
|
|
365
365
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
366
|
-
this
|
|
366
|
+
this.#appendStatus(element, details.isWarning);
|
|
367
367
|
if (corsError.includes('Preflight')) {
|
|
368
368
|
element.appendChild(
|
|
369
369
|
this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
@@ -374,23 +374,23 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
374
374
|
break;
|
|
375
375
|
case IssuesManager.CorsIssue.IssueCode.InsecurePrivateNetwork:
|
|
376
376
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
377
|
-
this
|
|
377
|
+
this.#appendStatus(element, details.isWarning);
|
|
378
378
|
this.appendIssueDetailCell(element, details.resourceIPAddressSpace ?? '');
|
|
379
379
|
this.appendIssueDetailCell(element, details.clientSecurityState?.initiatorIPAddressSpace ?? '');
|
|
380
|
-
this
|
|
380
|
+
this.#appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
|
|
381
381
|
break;
|
|
382
382
|
case IssuesManager.CorsIssue.IssueCode.PreflightAllowPrivateNetworkError: {
|
|
383
383
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
384
|
-
this
|
|
384
|
+
this.#appendStatus(element, details.isWarning);
|
|
385
385
|
element.appendChild(this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
386
386
|
this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter, 'code-example');
|
|
387
387
|
this.appendIssueDetailCell(element, details.clientSecurityState?.initiatorIPAddressSpace ?? '');
|
|
388
|
-
this
|
|
388
|
+
this.#appendSecureContextCell(element, details.clientSecurityState?.initiatorIsSecureContext);
|
|
389
389
|
break;
|
|
390
390
|
}
|
|
391
391
|
case IssuesManager.CorsIssue.IssueCode.MethodDisallowedByPreflightResponse:
|
|
392
392
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
393
|
-
this
|
|
393
|
+
this.#appendStatus(element, details.isWarning);
|
|
394
394
|
element.appendChild(this.createRequestCell(details.request, {...opts, linkToPreflight: true, highlightHeader}));
|
|
395
395
|
this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter, 'code-example');
|
|
396
396
|
break;
|
|
@@ -402,7 +402,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
402
402
|
name: corsErrorStatus.failedParameter,
|
|
403
403
|
},
|
|
404
404
|
}));
|
|
405
|
-
this
|
|
405
|
+
this.#appendStatus(element, details.isWarning);
|
|
406
406
|
element.appendChild(this.createRequestCell(details.request, {
|
|
407
407
|
...opts,
|
|
408
408
|
linkToPreflight: true,
|
|
@@ -421,11 +421,11 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
421
421
|
name: CorsIssueDetailsView.getHeaderFromError(corsError),
|
|
422
422
|
},
|
|
423
423
|
}));
|
|
424
|
-
this
|
|
424
|
+
this.#appendStatus(element, details.isWarning);
|
|
425
425
|
break;
|
|
426
426
|
case IssuesManager.CorsIssue.IssueCode.DisallowedByMode:
|
|
427
427
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
428
|
-
this
|
|
428
|
+
this.#appendStatus(element, details.isWarning);
|
|
429
429
|
this.appendIssueDetailCell(element, details.initiatorOrigin ?? '', 'code-example');
|
|
430
430
|
this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
|
|
431
431
|
break;
|
|
@@ -437,19 +437,19 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
437
437
|
name: CorsIssueDetailsView.getHeaderFromError(corsError),
|
|
438
438
|
},
|
|
439
439
|
}));
|
|
440
|
-
this
|
|
440
|
+
this.#appendStatus(element, details.isWarning);
|
|
441
441
|
this.appendIssueDetailCell(element, details.initiatorOrigin ?? '', 'code-example');
|
|
442
442
|
this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
|
|
443
443
|
this.appendIssueDetailCell(element, details.corsErrorStatus.failedParameter ?? '', 'code-example');
|
|
444
444
|
break;
|
|
445
445
|
case IssuesManager.CorsIssue.IssueCode.NoCorsRedirectModeNotFollow:
|
|
446
446
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
447
|
-
this
|
|
447
|
+
this.#appendStatus(element, details.isWarning);
|
|
448
448
|
this.appendSourceLocation(element, details.location, issue.model()?.getTargetIfNotDisposed());
|
|
449
449
|
break;
|
|
450
450
|
default:
|
|
451
451
|
element.appendChild(this.createRequestCell(details.request, opts));
|
|
452
|
-
this
|
|
452
|
+
this.#appendStatus(element, details.isWarning);
|
|
453
453
|
Platform.assertUnhandled<IssuesManager.CorsIssue.IssueCode.PreflightMissingAllowExternal|
|
|
454
454
|
IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowExternal|
|
|
455
455
|
IssuesManager.CorsIssue.IssueCode.InvalidPrivateNetworkAccess|
|
|
@@ -464,7 +464,7 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
464
464
|
this.clear();
|
|
465
465
|
const issues = this.issue.getCorsIssues();
|
|
466
466
|
if (issues.size > 0) {
|
|
467
|
-
this
|
|
467
|
+
this.#appendDetails(issues.values().next().value.code(), issues);
|
|
468
468
|
} else {
|
|
469
469
|
this.updateAffectedResourceCount(0);
|
|
470
470
|
}
|
|
@@ -27,7 +27,7 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
|
|
|
27
27
|
return i18nString(UIStrings.nResources, {n: count});
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
#appendDetails(genericIssues: ReadonlySet<IssuesManager.GenericIssue.GenericIssue>): void {
|
|
31
31
|
const header = document.createElement('tr');
|
|
32
32
|
|
|
33
33
|
const sampleIssueDetails = genericIssues.values().next().value.details();
|
|
@@ -39,12 +39,12 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
|
|
|
39
39
|
let count = 0;
|
|
40
40
|
for (const genericIssue of genericIssues) {
|
|
41
41
|
count++;
|
|
42
|
-
this
|
|
42
|
+
this.#appendDetail(genericIssue);
|
|
43
43
|
}
|
|
44
44
|
this.updateAffectedResourceCount(count);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
#appendDetail(genericIssue: IssuesManager.GenericIssue.GenericIssue): void {
|
|
48
48
|
const element = document.createElement('tr');
|
|
49
49
|
element.classList.add('affected-resource-directive');
|
|
50
50
|
|
|
@@ -60,7 +60,7 @@ export class GenericIssueDetailsView extends AffectedResourcesView {
|
|
|
60
60
|
this.clear();
|
|
61
61
|
const issues = this.issue.getGenericIssues();
|
|
62
62
|
if (issues.size > 0) {
|
|
63
|
-
this
|
|
63
|
+
this.#appendDetails(issues);
|
|
64
64
|
} else {
|
|
65
65
|
this.updateAffectedResourceCount(0);
|
|
66
66
|
}
|
|
@@ -22,18 +22,18 @@ const str_ = i18n.i18n.registerUIStrings('panels/issues/HiddenIssuesRow.ts', UIS
|
|
|
22
22
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
23
23
|
|
|
24
24
|
export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
|
|
25
|
-
|
|
25
|
+
#numHiddenAggregatedIssues: HTMLElement;
|
|
26
26
|
|
|
27
27
|
constructor() {
|
|
28
28
|
super(undefined, true);
|
|
29
|
-
this
|
|
29
|
+
this.#numHiddenAggregatedIssues = document.createElement('span');
|
|
30
30
|
this.toggleOnClick = true;
|
|
31
31
|
this.listItemElement.classList.add('issue-category', 'hidden-issues');
|
|
32
32
|
this.childrenListElement.classList.add('hidden-issues-body');
|
|
33
|
-
this
|
|
33
|
+
this.#appendHeader();
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
#appendHeader(): void {
|
|
37
37
|
const unhideAllIssuesBtn = UI.UIUtils.createTextButton(
|
|
38
38
|
i18nString(UIStrings.unhideAll),
|
|
39
39
|
(): void => IssuesManager.IssuesManager.IssuesManager.instance().unhideAllIssues(),
|
|
@@ -42,10 +42,10 @@ export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
|
|
|
42
42
|
const countAdorner = new Adorners.Adorner.Adorner();
|
|
43
43
|
countAdorner.data = {
|
|
44
44
|
name: 'countWrapper',
|
|
45
|
-
content: this
|
|
45
|
+
content: this.#numHiddenAggregatedIssues,
|
|
46
46
|
};
|
|
47
47
|
countAdorner.classList.add('aggregated-issues-count');
|
|
48
|
-
this
|
|
48
|
+
this.#numHiddenAggregatedIssues.textContent = '0';
|
|
49
49
|
const header = document.createElement('div');
|
|
50
50
|
const title = document.createElement('div');
|
|
51
51
|
header.classList.add('header');
|
|
@@ -58,6 +58,6 @@ export class HiddenIssuesRow extends UI.TreeOutline.TreeElement {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
update(count: number): void {
|
|
61
|
-
this
|
|
61
|
+
this.#numHiddenAggregatedIssues.textContent = `${count}`;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -25,34 +25,34 @@ export type AggregationKey = {
|
|
|
25
25
|
* of all resources that are affected by the aggregated issues.
|
|
26
26
|
*/
|
|
27
27
|
export class AggregatedIssue extends IssuesManager.Issue.Issue {
|
|
28
|
-
|
|
28
|
+
#affectedCookies = new Map<string, {
|
|
29
29
|
cookie: Protocol.Audits.AffectedCookie,
|
|
30
30
|
hasRequest: boolean,
|
|
31
31
|
}>();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
#affectedRawCookieLines = new Map<string, {rawCookieLine: string, hasRequest: boolean}>();
|
|
33
|
+
#affectedRequests = new Map<string, Protocol.Audits.AffectedRequest>();
|
|
34
|
+
#affectedLocations = new Map<string, Protocol.Audits.SourceCodeLocation>();
|
|
35
|
+
#heavyAdIssues = new Set<IssuesManager.HeavyAdIssue.HeavyAdIssue>();
|
|
36
|
+
#blockedByResponseDetails = new Map<string, Protocol.Audits.BlockedByResponseIssueDetails>();
|
|
37
|
+
#corsIssues = new Set<IssuesManager.CorsIssue.CorsIssue>();
|
|
38
|
+
#cspIssues = new Set<IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue>();
|
|
39
|
+
#issueKind = IssuesManager.Issue.IssueKind.Improvement;
|
|
40
|
+
#lowContrastIssues = new Set<IssuesManager.LowTextContrastIssue.LowTextContrastIssue>();
|
|
41
|
+
#mixedContentIssues = new Set<IssuesManager.MixedContentIssue.MixedContentIssue>();
|
|
42
|
+
#sharedArrayBufferIssues = new Set<IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue>();
|
|
43
|
+
#trustedWebActivityIssues = new Set<IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue>();
|
|
44
|
+
#quirksModeIssues = new Set<IssuesManager.QuirksModeIssue.QuirksModeIssue>();
|
|
45
|
+
#attributionReportingIssues = new Set<IssuesManager.AttributionReportingIssue.AttributionReportingIssue>();
|
|
46
|
+
#wasmCrossOriginModuleSharingIssues =
|
|
47
47
|
new Set<IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue>();
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
#genericIssues = new Set<IssuesManager.GenericIssue.GenericIssue>();
|
|
49
|
+
#representative?: IssuesManager.Issue.Issue;
|
|
50
|
+
#aggregatedIssuesCount = 0;
|
|
51
|
+
#key: AggregationKey;
|
|
52
52
|
|
|
53
53
|
constructor(code: string, aggregationKey: AggregationKey) {
|
|
54
54
|
super(code);
|
|
55
|
-
this
|
|
55
|
+
this.#key = aggregationKey;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
override primaryKey(): string {
|
|
@@ -60,183 +60,183 @@ export class AggregatedIssue extends IssuesManager.Issue.Issue {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
aggregationKey(): AggregationKey {
|
|
63
|
-
return this
|
|
63
|
+
return this.#key;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
getBlockedByResponseDetails(): Iterable<Protocol.Audits.BlockedByResponseIssueDetails> {
|
|
67
|
-
return this
|
|
67
|
+
return this.#blockedByResponseDetails.values();
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
cookies(): Iterable<Protocol.Audits.AffectedCookie> {
|
|
71
|
-
return Array.from(this
|
|
71
|
+
return Array.from(this.#affectedCookies.values()).map(x => x.cookie);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
getRawCookieLines(): Iterable<{rawCookieLine: string, hasRequest: boolean}> {
|
|
75
|
-
return this
|
|
75
|
+
return this.#affectedRawCookieLines.values();
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
sources(): Iterable<Protocol.Audits.SourceCodeLocation> {
|
|
79
|
-
return this
|
|
79
|
+
return this.#affectedLocations.values();
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
cookiesWithRequestIndicator(): Iterable<{
|
|
83
83
|
cookie: Protocol.Audits.AffectedCookie,
|
|
84
84
|
hasRequest: boolean,
|
|
85
85
|
}> {
|
|
86
|
-
return this
|
|
86
|
+
return this.#affectedCookies.values();
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
getHeavyAdIssues(): Iterable<IssuesManager.HeavyAdIssue.HeavyAdIssue> {
|
|
90
|
-
return this
|
|
90
|
+
return this.#heavyAdIssues;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
getMixedContentIssues(): Iterable<IssuesManager.MixedContentIssue.MixedContentIssue> {
|
|
94
|
-
return this
|
|
94
|
+
return this.#mixedContentIssues;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
getTrustedWebActivityIssues(): Iterable<IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue> {
|
|
98
|
-
return this
|
|
98
|
+
return this.#trustedWebActivityIssues;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
getCorsIssues(): Set<IssuesManager.CorsIssue.CorsIssue> {
|
|
102
|
-
return this
|
|
102
|
+
return this.#corsIssues;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
getCspIssues(): Iterable<IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue> {
|
|
106
|
-
return this
|
|
106
|
+
return this.#cspIssues;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
getLowContrastIssues(): Iterable<IssuesManager.LowTextContrastIssue.LowTextContrastIssue> {
|
|
110
|
-
return this
|
|
110
|
+
return this.#lowContrastIssues;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
requests(): Iterable<Protocol.Audits.AffectedRequest> {
|
|
114
|
-
return this
|
|
114
|
+
return this.#affectedRequests.values();
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
getSharedArrayBufferIssues(): Iterable<IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue> {
|
|
118
|
-
return this
|
|
118
|
+
return this.#sharedArrayBufferIssues;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
getQuirksModeIssues(): Iterable<IssuesManager.QuirksModeIssue.QuirksModeIssue> {
|
|
122
|
-
return this
|
|
122
|
+
return this.#quirksModeIssues;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
getAttributionReportingIssues(): ReadonlySet<IssuesManager.AttributionReportingIssue.AttributionReportingIssue> {
|
|
126
|
-
return this
|
|
126
|
+
return this.#attributionReportingIssues;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
getWasmCrossOriginModuleSharingIssue():
|
|
130
130
|
ReadonlySet<IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue> {
|
|
131
|
-
return this
|
|
131
|
+
return this.#wasmCrossOriginModuleSharingIssues;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
getGenericIssues(): ReadonlySet<IssuesManager.GenericIssue.GenericIssue> {
|
|
135
|
-
return this
|
|
135
|
+
return this.#genericIssues;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
getDescription(): IssuesManager.MarkdownIssueDescription.MarkdownIssueDescription|null {
|
|
139
|
-
if (this
|
|
140
|
-
return this
|
|
139
|
+
if (this.#representative) {
|
|
140
|
+
return this.#representative.getDescription();
|
|
141
141
|
}
|
|
142
142
|
return null;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
getCategory(): IssuesManager.Issue.IssueCategory {
|
|
146
|
-
if (this
|
|
147
|
-
return this
|
|
146
|
+
if (this.#representative) {
|
|
147
|
+
return this.#representative.getCategory();
|
|
148
148
|
}
|
|
149
149
|
return IssuesManager.Issue.IssueCategory.Other;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
getAggregatedIssuesCount(): number {
|
|
153
|
-
return this
|
|
153
|
+
return this.#aggregatedIssuesCount;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
/**
|
|
157
157
|
* Produces a primary key for a cookie. Use this instead of `JSON.stringify` in
|
|
158
158
|
* case new fields are added to `AffectedCookie`.
|
|
159
159
|
*/
|
|
160
|
-
|
|
160
|
+
#keyForCookie(cookie: Protocol.Audits.AffectedCookie): string {
|
|
161
161
|
const {domain, path, name} = cookie;
|
|
162
162
|
return `${domain};${path};${name}`;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
addInstance(issue: IssuesManager.Issue.Issue): void {
|
|
166
|
-
this
|
|
167
|
-
if (!this
|
|
168
|
-
this
|
|
166
|
+
this.#aggregatedIssuesCount++;
|
|
167
|
+
if (!this.#representative) {
|
|
168
|
+
this.#representative = issue;
|
|
169
169
|
}
|
|
170
|
-
this
|
|
170
|
+
this.#issueKind = IssuesManager.Issue.unionIssueKind(this.#issueKind, issue.getKind());
|
|
171
171
|
let hasRequest = false;
|
|
172
172
|
for (const request of issue.requests()) {
|
|
173
173
|
hasRequest = true;
|
|
174
|
-
if (!this
|
|
175
|
-
this
|
|
174
|
+
if (!this.#affectedRequests.has(request.requestId)) {
|
|
175
|
+
this.#affectedRequests.set(request.requestId, request);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
for (const cookie of issue.cookies()) {
|
|
179
|
-
const key = this
|
|
180
|
-
if (!this
|
|
181
|
-
this
|
|
179
|
+
const key = this.#keyForCookie(cookie);
|
|
180
|
+
if (!this.#affectedCookies.has(key)) {
|
|
181
|
+
this.#affectedCookies.set(key, {cookie, hasRequest});
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
for (const rawCookieLine of issue.rawCookieLines()) {
|
|
185
|
-
if (!this
|
|
186
|
-
this
|
|
185
|
+
if (!this.#affectedRawCookieLines.has(rawCookieLine)) {
|
|
186
|
+
this.#affectedRawCookieLines.set(rawCookieLine, {rawCookieLine, hasRequest});
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
for (const location of issue.sources()) {
|
|
190
190
|
const key = JSON.stringify(location);
|
|
191
|
-
if (!this
|
|
192
|
-
this
|
|
191
|
+
if (!this.#affectedLocations.has(key)) {
|
|
192
|
+
this.#affectedLocations.set(key, location);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
if (issue instanceof IssuesManager.MixedContentIssue.MixedContentIssue) {
|
|
196
|
-
this
|
|
196
|
+
this.#mixedContentIssues.add(issue);
|
|
197
197
|
}
|
|
198
198
|
if (issue instanceof IssuesManager.HeavyAdIssue.HeavyAdIssue) {
|
|
199
|
-
this
|
|
199
|
+
this.#heavyAdIssues.add(issue);
|
|
200
200
|
}
|
|
201
201
|
for (const details of issue.getBlockedByResponseDetails()) {
|
|
202
202
|
const key = JSON.stringify(details, ['parentFrame', 'blockedFrame', 'requestId', 'frameId', 'reason', 'request']);
|
|
203
|
-
this
|
|
203
|
+
this.#blockedByResponseDetails.set(key, details);
|
|
204
204
|
}
|
|
205
205
|
if (issue instanceof IssuesManager.TrustedWebActivityIssue.TrustedWebActivityIssue) {
|
|
206
|
-
this
|
|
206
|
+
this.#trustedWebActivityIssues.add(issue);
|
|
207
207
|
}
|
|
208
208
|
if (issue instanceof IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue) {
|
|
209
|
-
this
|
|
209
|
+
this.#cspIssues.add(issue);
|
|
210
210
|
}
|
|
211
211
|
if (issue instanceof IssuesManager.SharedArrayBufferIssue.SharedArrayBufferIssue) {
|
|
212
|
-
this
|
|
212
|
+
this.#sharedArrayBufferIssues.add(issue);
|
|
213
213
|
}
|
|
214
214
|
if (issue instanceof IssuesManager.LowTextContrastIssue.LowTextContrastIssue) {
|
|
215
|
-
this
|
|
215
|
+
this.#lowContrastIssues.add(issue);
|
|
216
216
|
}
|
|
217
217
|
if (issue instanceof IssuesManager.CorsIssue.CorsIssue) {
|
|
218
|
-
this
|
|
218
|
+
this.#corsIssues.add(issue);
|
|
219
219
|
}
|
|
220
220
|
if (issue instanceof IssuesManager.QuirksModeIssue.QuirksModeIssue) {
|
|
221
|
-
this
|
|
221
|
+
this.#quirksModeIssues.add(issue);
|
|
222
222
|
}
|
|
223
223
|
if (issue instanceof IssuesManager.AttributionReportingIssue.AttributionReportingIssue) {
|
|
224
|
-
this
|
|
224
|
+
this.#attributionReportingIssues.add(issue);
|
|
225
225
|
}
|
|
226
226
|
if (issue instanceof IssuesManager.WasmCrossOriginModuleSharingIssue.WasmCrossOriginModuleSharingIssue) {
|
|
227
|
-
this
|
|
227
|
+
this.#wasmCrossOriginModuleSharingIssues.add(issue);
|
|
228
228
|
}
|
|
229
229
|
if (issue instanceof IssuesManager.GenericIssue.GenericIssue) {
|
|
230
|
-
this
|
|
230
|
+
this.#genericIssues.add(issue);
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
getKind(): IssuesManager.Issue.IssueKind {
|
|
235
|
-
return this
|
|
235
|
+
return this.#issueKind;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
isHidden(): boolean {
|
|
239
|
-
return this
|
|
239
|
+
return this.#representative?.isHidden() || false;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
setHidden(_value: boolean): void {
|
|
@@ -245,40 +245,40 @@ export class AggregatedIssue extends IssuesManager.Issue.Issue {
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
readonly #aggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
|
|
249
|
+
readonly #hiddenAggregatedIssuesByKey = new Map<AggregationKey, AggregatedIssue>();
|
|
250
250
|
constructor(private readonly issuesManager: IssuesManager.IssuesManager.IssuesManager) {
|
|
251
251
|
super();
|
|
252
|
-
this.issuesManager.addEventListener(IssuesManager.IssuesManager.Events.IssueAdded, this
|
|
252
|
+
this.issuesManager.addEventListener(IssuesManager.IssuesManager.Events.IssueAdded, this.#onIssueAdded, this);
|
|
253
253
|
this.issuesManager.addEventListener(
|
|
254
|
-
IssuesManager.IssuesManager.Events.FullUpdateRequired, this
|
|
254
|
+
IssuesManager.IssuesManager.Events.FullUpdateRequired, this.#onFullUpdateRequired, this);
|
|
255
255
|
for (const issue of this.issuesManager.issues()) {
|
|
256
|
-
this
|
|
256
|
+
this.#aggregateIssue(issue);
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
|
|
261
|
-
this
|
|
260
|
+
#onIssueAdded(event: Common.EventTarget.EventTargetEvent<IssuesManager.IssuesManager.IssueAddedEvent>): void {
|
|
261
|
+
this.#aggregateIssue(event.data.issue);
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
|
|
265
|
-
this
|
|
266
|
-
this
|
|
264
|
+
#onFullUpdateRequired(): void {
|
|
265
|
+
this.#aggregatedIssuesByKey.clear();
|
|
266
|
+
this.#hiddenAggregatedIssuesByKey.clear();
|
|
267
267
|
for (const issue of this.issuesManager.issues()) {
|
|
268
|
-
this
|
|
268
|
+
this.#aggregateIssue(issue);
|
|
269
269
|
}
|
|
270
270
|
this.dispatchEventToListeners(Events.FullUpdateRequired);
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
|
|
274
|
-
const map = issue.isHidden() ? this
|
|
275
|
-
const aggregatedIssue = this
|
|
273
|
+
#aggregateIssue(issue: IssuesManager.Issue.Issue): AggregatedIssue {
|
|
274
|
+
const map = issue.isHidden() ? this.#hiddenAggregatedIssuesByKey : this.#aggregatedIssuesByKey;
|
|
275
|
+
const aggregatedIssue = this.#aggregateIssueByStatus(map, issue);
|
|
276
276
|
this.dispatchEventToListeners(Events.AggregatedIssueUpdated, aggregatedIssue);
|
|
277
277
|
return aggregatedIssue;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
|
|
280
|
+
#aggregateIssueByStatus(aggregatedIssuesMap: Map<AggregationKey, AggregatedIssue>, issue: IssuesManager.Issue.Issue):
|
|
281
|
+
AggregatedIssue {
|
|
282
282
|
const key = issue.code() as unknown as AggregationKey;
|
|
283
283
|
let aggregatedIssue = aggregatedIssuesMap.get(key);
|
|
284
284
|
if (!aggregatedIssue) {
|
|
@@ -290,20 +290,20 @@ export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
aggregatedIssues(): Iterable<AggregatedIssue> {
|
|
293
|
-
return [...this
|
|
293
|
+
return [...this.#aggregatedIssuesByKey.values(), ...this.#hiddenAggregatedIssuesByKey.values()];
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
hiddenAggregatedIssues(): Iterable<AggregatedIssue> {
|
|
297
|
-
return this
|
|
297
|
+
return this.#hiddenAggregatedIssuesByKey.values();
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
aggregatedIssueCodes(): Set<AggregationKey> {
|
|
301
|
-
return new Set([...this
|
|
301
|
+
return new Set([...this.#aggregatedIssuesByKey.keys(), ...this.#hiddenAggregatedIssuesByKey.keys()]);
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
aggregatedIssueCategories(): Set<IssuesManager.Issue.IssueCategory> {
|
|
305
305
|
const result = new Set<IssuesManager.Issue.IssueCategory>();
|
|
306
|
-
for (const issue of this
|
|
306
|
+
for (const issue of this.#aggregatedIssuesByKey.values()) {
|
|
307
307
|
result.add(issue.getCategory());
|
|
308
308
|
}
|
|
309
309
|
return result;
|
|
@@ -311,18 +311,18 @@ export class IssueAggregator extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
311
311
|
|
|
312
312
|
aggregatedIssueKinds(): Set<IssuesManager.Issue.IssueKind> {
|
|
313
313
|
const result = new Set<IssuesManager.Issue.IssueKind>();
|
|
314
|
-
for (const issue of this
|
|
314
|
+
for (const issue of this.#aggregatedIssuesByKey.values()) {
|
|
315
315
|
result.add(issue.getKind());
|
|
316
316
|
}
|
|
317
317
|
return result;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
numberOfAggregatedIssues(): number {
|
|
321
|
-
return this
|
|
321
|
+
return this.#aggregatedIssuesByKey.size;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
numberOfHiddenAggregatedIssues(): number {
|
|
325
|
-
return this
|
|
325
|
+
return this.#hiddenAggregatedIssuesByKey.size;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
keyForIssue(issue: IssuesManager.Issue.Issue<string>): AggregationKey {
|