chrome-devtools-frontend 1.0.1657855 → 1.0.1661063
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/.agents/skills/evaluate-ai-css-completion/SKILL.md +133 -0
- package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +76 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +15 -70
- package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +37 -18
- package/.agents/skills/version-control/SKILL.md +8 -1
- package/AUTHORS +1 -0
- package/SECURITY.md +3 -0
- package/docs/get_the_code.md +6 -0
- package/eslint.config.mjs +7 -0
- package/extension-api/ExtensionAPI.d.ts +88 -0
- package/front_end/Tests.js +6 -6
- package/front_end/core/common/Gzip.ts +12 -5
- package/front_end/core/host/AidaClient.ts +35 -9
- package/front_end/core/host/GdpClient.ts +10 -7
- package/front_end/core/host/InspectorFrontendHost.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
- package/front_end/core/platform/StringUtilities.ts +55 -4
- package/front_end/core/sdk/AccessibilityModel.snapshot.txt +17 -0
- package/front_end/core/sdk/AccessibilityModel.ts +132 -2
- package/front_end/core/sdk/CPUThrottlingManager.ts +10 -5
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -5
- package/front_end/core/sdk/ConsoleModel.ts +5 -5
- package/front_end/core/sdk/DOMDebuggerModel.ts +7 -1
- package/front_end/core/sdk/DOMModel.ts +33 -18
- package/front_end/core/sdk/DebuggerModel.ts +4 -4
- package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
- package/front_end/core/sdk/FrameManager.ts +1 -0
- package/front_end/core/sdk/IsolateManager.ts +1 -0
- package/front_end/core/sdk/NetworkManager.ts +59 -11
- package/front_end/core/sdk/NetworkRequest.ts +38 -1
- package/front_end/core/sdk/OverlayModel.ts +45 -6
- package/front_end/core/sdk/PageResourceLoader.ts +2 -0
- package/front_end/core/sdk/ResourceTreeModel.ts +6 -7
- package/front_end/core/sdk/ScreenCaptureModel.ts +2 -2
- package/front_end/core/sdk/ServerTiming.ts +17 -13
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +4 -2
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -5
- package/front_end/core/sdk/SourceMap.ts +5 -5
- package/front_end/core/sdk/SourceMapManager.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +14 -1
- package/front_end/core/sdk/TraceObject.ts +4 -2
- package/front_end/core/sdk/sdk-meta.ts +170 -0
- package/front_end/design_system_tokens.css +0 -5
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +5 -2
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +26 -4
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +8 -3
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -2
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +36 -37
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +15 -33
- package/front_end/entrypoints/js_app/js_app.ts +6 -5
- package/front_end/entrypoints/main/GlobalAiButton.ts +4 -4
- package/front_end/entrypoints/main/MainImpl.ts +20 -22
- package/front_end/entrypoints/main/main-meta.ts +42 -42
- package/front_end/entrypoints/node_app/node_app.ts +3 -2
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/foundation/Universe.ts +44 -1
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/SupportedCSSProperties.js +19 -12
- package/front_end/generated/protocol.ts +3 -1
- package/front_end/models/ai_assistance/AiConversation.ts +19 -17
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +37 -14
- package/front_end/models/ai_assistance/AiUtils.ts +38 -42
- package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -1
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -2
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +270 -286
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +20 -0
- package/front_end/models/ai_assistance/performance/AICallTree.ts +3 -1
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +3 -2
- package/front_end/models/autofill_manager/AutofillManager.ts +3 -1
- package/front_end/models/bindings/CompilerScriptMapping.ts +7 -7
- package/front_end/models/bindings/ContentProviderBasedProject.ts +4 -4
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +5 -5
- package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
- package/front_end/models/bindings/NetworkProject.ts +5 -10
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
- package/front_end/models/bindings/ResourceMapping.ts +3 -4
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -3
- package/front_end/models/bindings/ResourceUtils.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +11 -9
- package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
- package/front_end/models/bindings/TempFile.ts +8 -3
- package/front_end/models/emulation/EmulatedDevices.ts +389 -8
- package/front_end/models/extensions/ExtensionAPI.ts +116 -52
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +13 -12
- package/front_end/models/formatter/ScriptFormatter.ts +8 -11
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
- package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
- package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +1 -1
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +7 -7
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +2 -2
- package/front_end/models/issues_manager/CookieIssue.ts +27 -16
- package/front_end/models/issues_manager/CorsIssue.ts +3 -3
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +2 -2
- package/front_end/models/issues_manager/DeprecationIssue.ts +3 -3
- package/front_end/models/issues_manager/EmailVerificationRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/GenericIssue.ts +7 -7
- package/front_end/models/issues_manager/HeavyAdIssue.ts +3 -3
- package/front_end/models/issues_manager/Issue.ts +11 -12
- package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +136 -137
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +3 -3
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
- package/front_end/models/issues_manager/SelectivePermissionsInterventionIssue.ts +2 -2
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +2 -2
- package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
- package/front_end/models/issues_manager/UnencodedDigestIssue.ts +3 -3
- package/front_end/models/issues_manager/issues_manager.ts +0 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +13 -10
- package/front_end/models/stack_trace/StackTraceModel.ts +3 -3
- package/front_end/models/text_utils/ContentData.ts +27 -0
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +21 -5
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -14
- package/front_end/models/web_mcp/WebMCPModel.ts +24 -6
- package/front_end/models/workspace/IgnoreListManager.ts +6 -6
- package/front_end/models/workspace/UISourceCode.ts +3 -3
- package/front_end/models/workspace/WorkspaceImpl.ts +10 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -22
- package/front_end/panels/ai_assistance/ExportConversation.ts +3 -4
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +3 -3
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +9 -1
- package/front_end/panels/ai_assistance/components/DisabledWidget.ts +2 -2
- package/front_end/panels/animation/AnimationTimeline.ts +17 -19
- package/front_end/panels/animation/AnimationUI.ts +5 -5
- package/front_end/panels/animation/animation-meta.ts +2 -2
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -3
- package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -6
- package/front_end/panels/application/FrameDetailsView.ts +1 -1
- package/front_end/panels/application/IndexedDBViews.ts +220 -266
- package/front_end/panels/application/OpenedWindowDetailsView.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +9 -2
- package/front_end/panels/application/ServiceWorkersView.ts +252 -211
- package/front_end/panels/application/StorageView.ts +97 -33
- package/front_end/panels/application/WebMCPView.ts +53 -44
- package/front_end/panels/application/components/AdsView.ts +201 -30
- package/front_end/panels/application/components/adsView.css +25 -0
- package/front_end/panels/application/indexedDBViews.css +38 -9
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +2 -1
- package/front_end/panels/application/storageView.css +26 -9
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +5 -1
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +8 -6
- package/front_end/panels/common/DOMLinkifier.ts +1 -1
- package/front_end/panels/common/ExtensionServer.ts +119 -14
- package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +2 -2
- package/front_end/panels/console/ConsolePrompt.ts +2 -2
- package/front_end/panels/console/ConsoleView.ts +3 -2
- package/front_end/panels/console/PromptBuilder.ts +2 -1
- package/front_end/panels/console/SymbolizedErrorWidget.ts +2 -1
- package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
- package/front_end/panels/coverage/CoverageListView.ts +28 -28
- package/front_end/panels/coverage/CoverageModel.ts +2 -1
- package/front_end/panels/coverage/CoverageView.ts +22 -22
- package/front_end/panels/coverage/coverage-meta.ts +5 -5
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +36 -36
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewStartView.ts +6 -6
- package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +6 -6
- package/front_end/panels/css_overview/css_overview-meta.ts +2 -2
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +8 -102
- package/front_end/panels/elements/AccessibilityTreeView.ts +163 -70
- package/front_end/panels/elements/ElementsPanel.ts +17 -11
- package/front_end/panels/elements/ElementsTreeElement.ts +4 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
- package/front_end/panels/elements/LayoutPane.ts +1 -1
- package/front_end/panels/elements/MetricsSidebarPane.ts +100 -34
- package/front_end/panels/elements/StylePropertiesSection.ts +2 -2
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +7 -18
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -2
- package/front_end/panels/elements/components/QueryContainer.ts +1 -1
- package/front_end/panels/emulation/DeviceModeView.ts +52 -70
- package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
- package/front_end/panels/issues/IssueView.ts +0 -2
- package/front_end/panels/issues/IssuesPane.ts +1 -8
- package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
- package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
- package/front_end/panels/network/NetworkDataGridNode.ts +124 -36
- package/front_end/panels/network/NetworkLogView.ts +9 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +18 -0
- package/front_end/panels/network/NetworkPanel.ts +2 -1
- package/front_end/panels/network/RequestPayloadView.ts +68 -20
- package/front_end/panels/network/RequestPreviewView.ts +7 -1
- package/front_end/panels/network/RequestTimingView.ts +95 -127
- package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
- package/front_end/panels/network/forward/UIFilter.ts +1 -0
- package/front_end/panels/network/requestPayloadView.css +10 -0
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +12 -12
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +7 -7
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +2 -2
- package/front_end/panels/profiler/HeapProfileView.ts +563 -51
- package/front_end/panels/profiler/HeapSnapshotView.ts +14 -9
- package/front_end/panels/profiler/ProfilesPanel.ts +13 -7
- package/front_end/panels/profiler/WritableProfileHeader.ts +152 -0
- package/front_end/panels/profiler/profiler.ts +2 -2
- package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
- package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +59 -58
- package/front_end/panels/recorder/ExtensionView.ts +123 -0
- package/front_end/panels/recorder/RecorderController.ts +102 -92
- package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +22 -23
- package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +99 -96
- package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +20 -20
- package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
- package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +367 -336
- package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +48 -49
- package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
- package/front_end/panels/recorder/models/RecorderSettings.ts +2 -2
- package/front_end/panels/recorder/recorder-meta.ts +7 -7
- package/front_end/panels/recorder/recorder.ts +23 -1
- package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +1 -1
- package/front_end/panels/recorder/util/util.ts +113 -0
- package/front_end/panels/screencast/ScreencastApp.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +12 -12
- package/front_end/panels/search/SearchResultsPane.ts +4 -4
- package/front_end/panels/search/SearchView.ts +20 -20
- package/front_end/panels/security/SecurityModel.ts +7 -7
- package/front_end/panels/security/SecurityPanel.ts +99 -107
- package/front_end/panels/security/SecurityPanelSidebar.ts +7 -7
- package/front_end/panels/security/security-meta.ts +2 -2
- package/front_end/panels/sensors/LocationsSettingsTab.ts +19 -19
- package/front_end/panels/sensors/SensorsView.ts +27 -27
- package/front_end/panels/sensors/sensors-meta.ts +13 -167
- package/front_end/panels/settings/AISettingsTab.ts +98 -56
- package/front_end/panels/settings/EditFileSystemView.ts +2 -2
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -20
- package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
- package/front_end/panels/settings/SettingsScreen.ts +11 -11
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +5 -5
- package/front_end/panels/settings/components/SyncSection.ts +12 -12
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +13 -13
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +31 -31
- package/front_end/panels/settings/emulation/emulation-meta.ts +1 -1
- package/front_end/panels/settings/settings-meta.ts +14 -14
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +2 -2
- package/front_end/panels/sources/NavigatorView.ts +7 -6
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +83 -37
- package/front_end/panels/sources/SourcesNavigator.ts +22 -21
- package/front_end/panels/sources/SourcesView.ts +10 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/scopeChainSidebarPane.css +12 -4
- package/front_end/panels/sources/sources-meta.ts +4 -4
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +5 -2
- package/front_end/panels/timeline/IsolateSelector.ts +10 -8
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -1
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +20 -8
- package/front_end/panels/timeline/TimelineUIUtils.ts +149 -131
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +4 -2
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +4 -2
- package/front_end/panels/timeline/components/insights/ImageRef.ts +2 -1
- package/front_end/panels/timeline/timeline-meta.ts +3 -2
- package/front_end/panels/utils/utils.ts +7 -3
- package/front_end/panels/web_audio/WebAudioView.ts +17 -18
- package/front_end/panels/web_audio/web_audio-meta.ts +3 -3
- package/front_end/panels/whats_new/ReleaseNoteView.ts +1 -1
- package/front_end/panels/whats_new/whats_new-meta.ts +11 -11
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lit/lib/async-directive.d.ts +2 -1
- package/front_end/third_party/lit/lib/async-directive.js +1 -1
- package/front_end/third_party/lit/lib/async-directive.js.map +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +2 -1
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.d.ts +2 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.d.ts +2 -1
- package/front_end/third_party/lit/lib/directives.js +8 -8
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +2 -1
- package/front_end/third_party/lit/lib/lit.js +1 -1
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.d.ts +2 -1
- package/front_end/third_party/lit/lib/static-html.js +1 -1
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/package.json +2 -2
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/lit/src/async-directive.ts +5 -0
- package/front_end/ui/components/dialogs/Dialog.ts +1 -1
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
- package/front_end/ui/components/diff_view/DiffView.ts +2 -2
- package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +5 -5
- package/front_end/ui/components/lists/List.ts +2 -2
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +5 -5
- package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
- package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.ts +3 -3
- package/front_end/ui/components/text_editor/config.ts +2 -2
- package/front_end/ui/components/tree_outline/TreeOutline.ts +34 -1
- package/front_end/ui/legacy/ReportView.ts +5 -0
- package/front_end/ui/legacy/Treeoutline.ts +6 -0
- package/front_end/ui/legacy/View.ts +1 -1
- package/front_end/ui/legacy/Widget.ts +14 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -3
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +106 -38
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +7 -1
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -2
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
- package/front_end/ui/legacy/inspectorCommon.css +5 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/mcp/mcp.ts +2 -0
- package/package.json +4 -4
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
- package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
- package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
- package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
- package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
- package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
- package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
- package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
- package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
- package/front_end/panels/profiler/ProfileView.ts +0 -611
- package/front_end/panels/recorder/components/ExtensionView.ts +0 -132
- package/front_end/panels/recorder/components/components.ts +0 -25
- package/front_end/panels/recorder/components/util.ts +0 -116
- /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
- /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
- /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
- /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
- /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
- /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
- /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
- /package/front_end/panels/recorder/{components/timelineSection.css → timelineSection.css} +0 -0
|
@@ -1127,27 +1127,33 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
|
|
|
1127
1127
|
return model;
|
|
1128
1128
|
}
|
|
1129
1129
|
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
node = node.parentNode;
|
|
1130
|
+
canInspectNode(): boolean {
|
|
1131
|
+
if (this.ancestorUserAgentShadowRoot()) {
|
|
1132
|
+
return false;
|
|
1134
1133
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1134
|
+
|
|
1135
|
+
if (this.#pseudoType) {
|
|
1136
|
+
return [
|
|
1137
|
+
Protocol.DOM.PseudoType.Before,
|
|
1138
|
+
Protocol.DOM.PseudoType.After,
|
|
1139
|
+
Protocol.DOM.PseudoType.Marker,
|
|
1140
|
+
Protocol.DOM.PseudoType.ScrollMarker,
|
|
1141
|
+
Protocol.DOM.PseudoType.Backdrop,
|
|
1142
|
+
Protocol.DOM.PseudoType.ViewTransition,
|
|
1143
|
+
Protocol.DOM.PseudoType.ViewTransitionGroup,
|
|
1144
|
+
Protocol.DOM.PseudoType.ViewTransitionImagePair,
|
|
1145
|
+
Protocol.DOM.PseudoType.ViewTransitionOld,
|
|
1146
|
+
Protocol.DOM.PseudoType.ViewTransitionNew,
|
|
1147
|
+
].includes(this.#pseudoType);
|
|
1146
1148
|
}
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
+
return true;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
async setAsInspectedNode(): Promise<void> {
|
|
1153
|
+
if (!this.canInspectNode()) {
|
|
1154
|
+
return;
|
|
1149
1155
|
}
|
|
1150
|
-
await this.#agent.invoke_setInspectedNode({nodeId:
|
|
1156
|
+
await this.#agent.invoke_setInspectedNode({nodeId: this.id});
|
|
1151
1157
|
}
|
|
1152
1158
|
|
|
1153
1159
|
enclosingElementOrSelf(): DOMNode|null {
|
|
@@ -2102,6 +2108,7 @@ export class DOMModel extends SDKModel<EventTypes> {
|
|
|
2102
2108
|
if ('has' in context && typeof context.has === 'function' && context.has(DOMModelUndoStack)) {
|
|
2103
2109
|
return context.get(DOMModelUndoStack);
|
|
2104
2110
|
}
|
|
2111
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
2105
2112
|
return DOMModelUndoStack.instance();
|
|
2106
2113
|
}
|
|
2107
2114
|
|
|
@@ -2365,6 +2372,10 @@ export class DOMNodeSnapshot extends DOMNode {
|
|
|
2365
2372
|
_callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
|
|
2366
2373
|
}
|
|
2367
2374
|
|
|
2375
|
+
override canInspectNode(): boolean {
|
|
2376
|
+
return false;
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2368
2379
|
override setAsInspectedNode(): Promise<void> {
|
|
2369
2380
|
return Promise.resolve();
|
|
2370
2381
|
}
|
|
@@ -2410,6 +2421,10 @@ export class DOMDocumentSnapshot extends DOMDocument {
|
|
|
2410
2421
|
_callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
|
|
2411
2422
|
}
|
|
2412
2423
|
|
|
2424
|
+
override canInspectNode(): boolean {
|
|
2425
|
+
return false;
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2413
2428
|
override setAsInspectedNode(): Promise<void> {
|
|
2414
2429
|
return Promise.resolve();
|
|
2415
2430
|
}
|
|
@@ -168,10 +168,10 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
168
168
|
this.agent = target.debuggerAgent();
|
|
169
169
|
this.#runtimeModel = (target.model(RuntimeModel) as RuntimeModel);
|
|
170
170
|
|
|
171
|
-
this.#sourceMapManager =
|
|
172
|
-
target,
|
|
173
|
-
|
|
174
|
-
|
|
171
|
+
this.#sourceMapManager =
|
|
172
|
+
new SourceMapManager(target,
|
|
173
|
+
(compiledURL, sourceMappingURL, payload, script) => new SourceMap(
|
|
174
|
+
compiledURL, sourceMappingURL, payload, target.targetManager().getConsole(), script));
|
|
175
175
|
|
|
176
176
|
const settings = this.target().targetManager().settings;
|
|
177
177
|
settings.moduleSetting('pause-on-exception-enabled').addChangeListener(this.pauseOnExceptionStateChanged, this);
|
|
@@ -88,6 +88,7 @@ export class EventBreakpointsManager implements SDKModelObserver<EventBreakpoint
|
|
|
88
88
|
readonly #eventListenerBreakpoints: EventListenerBreakpoint[] = [];
|
|
89
89
|
readonly #targetManager: TargetManager;
|
|
90
90
|
|
|
91
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
91
92
|
constructor(targetManager: TargetManager = TargetManager.instance()) {
|
|
92
93
|
this.#targetManager = targetManager;
|
|
93
94
|
this.createInstrumentationBreakpoints(Category.AUCTION_WORKLET, [
|
|
@@ -152,6 +153,7 @@ export class EventBreakpointsManager implements SDKModelObserver<EventBreakpoint
|
|
|
152
153
|
const {forceNew, targetManager} = opts;
|
|
153
154
|
if (!Root.DevToolsContext.globalInstance().has(EventBreakpointsManager) || forceNew) {
|
|
154
155
|
Root.DevToolsContext.globalInstance().set(EventBreakpointsManager,
|
|
156
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
155
157
|
new EventBreakpointsManager(targetManager ?? TargetManager.instance()));
|
|
156
158
|
}
|
|
157
159
|
|
|
@@ -45,6 +45,7 @@ export class FrameManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
45
45
|
forceNew: boolean,
|
|
46
46
|
} = {forceNew: false}): FrameManager {
|
|
47
47
|
if (!Root.DevToolsContext.globalInstance().has(FrameManager) || forceNew) {
|
|
48
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
48
49
|
Root.DevToolsContext.globalInstance().set(FrameManager, new FrameManager(TargetManager.instance()));
|
|
49
50
|
}
|
|
50
51
|
return Root.DevToolsContext.globalInstance().get(FrameManager);
|
|
@@ -20,6 +20,7 @@ export class IsolateManager extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
20
20
|
#pollId = 0;
|
|
21
21
|
readonly #targetManager: TargetManager;
|
|
22
22
|
|
|
23
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
23
24
|
constructor(targetManager: TargetManager = TargetManager.instance()) {
|
|
24
25
|
super();
|
|
25
26
|
this.#targetManager = targetManager;
|
|
@@ -323,6 +323,45 @@ export class NetworkManager extends SDKModel<EventTypes> {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
+
/**
|
|
327
|
+
* Returns the request post data as a ContentData suitable for binary
|
|
328
|
+
* viewers (hex, base64, utf-8) in the Payload tab. When the backend
|
|
329
|
+
* provides base64-encoded (possibly compressed) data, the body is
|
|
330
|
+
* decompressed first so viewers show the actual payload bytes rather
|
|
331
|
+
* than gzip/deflate framing.
|
|
332
|
+
*/
|
|
333
|
+
static async requestPostDataContentData(request: NetworkRequest): Promise<TextUtils.ContentData.ContentDataOrError> {
|
|
334
|
+
const manager = NetworkManager.forRequest(request);
|
|
335
|
+
if (!manager) {
|
|
336
|
+
return {error: 'No network manager for request'};
|
|
337
|
+
}
|
|
338
|
+
const requestId = request.backendRequestId();
|
|
339
|
+
if (!requestId) {
|
|
340
|
+
return {error: 'No backend request id for request'};
|
|
341
|
+
}
|
|
342
|
+
try {
|
|
343
|
+
const response = await manager.#networkAgent.invoke_getRequestPostData({requestId});
|
|
344
|
+
const error = response.getError();
|
|
345
|
+
if (error) {
|
|
346
|
+
return {error};
|
|
347
|
+
}
|
|
348
|
+
const {postData, base64Encoded} = response;
|
|
349
|
+
if (!postData) {
|
|
350
|
+
return {error: 'No post data'};
|
|
351
|
+
}
|
|
352
|
+
const requestContentType = request.requestContentType() ?? 'application/octet-stream';
|
|
353
|
+
const {charset} = Platform.MimeType.parseContentType(requestContentType);
|
|
354
|
+
|
|
355
|
+
if (base64Encoded && postData) {
|
|
356
|
+
return await TextUtils.ContentData.ContentData.fromCompressedBase64(
|
|
357
|
+
postData, requestContentType, charset ?? undefined, request.requestContentEncoding());
|
|
358
|
+
}
|
|
359
|
+
return new TextUtils.ContentData.ContentData(postData, false, requestContentType, charset ?? undefined);
|
|
360
|
+
} catch (e) {
|
|
361
|
+
return {error: e.message};
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
326
365
|
/**
|
|
327
366
|
* Attempts to decompress a compressed request body.
|
|
328
367
|
* Returns the decompressed string, or null if decompression is not applicable.
|
|
@@ -658,6 +697,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
658
697
|
networkRequest.setReferrerPolicy(request.referrerPolicy);
|
|
659
698
|
networkRequest.setIsSameSite(request.isSameSite || false);
|
|
660
699
|
networkRequest.setIsAdRelated(request.isAdRelated || false);
|
|
700
|
+
networkRequest.setIsLinkPreload(request.isLinkPreload || false);
|
|
661
701
|
}
|
|
662
702
|
|
|
663
703
|
private updateNetworkRequestWithResponse(networkRequest: NetworkRequest, response: Protocol.Network.Response): void {
|
|
@@ -847,7 +887,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
847
887
|
} else {
|
|
848
888
|
networkRequest = NetworkRequest.create(
|
|
849
889
|
requestId, request.url as Platform.DevToolsPath.UrlString, documentURL as Platform.DevToolsPath.UrlString,
|
|
850
|
-
frameId ?? null, loaderId, initiator, hasUserGesture);
|
|
890
|
+
frameId ?? null, loaderId, initiator, hasUserGesture, this.#manager.target().targetManager().getConsole());
|
|
851
891
|
if (renderBlockingBehavior) {
|
|
852
892
|
networkRequest.setRenderBlockingBehavior(renderBlockingBehavior);
|
|
853
893
|
}
|
|
@@ -969,7 +1009,8 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
969
1009
|
|
|
970
1010
|
webSocketCreated({requestId, url: requestURL, initiator}: Protocol.Network.WebSocketCreatedEvent): void {
|
|
971
1011
|
const networkRequest =
|
|
972
|
-
NetworkRequest.createForSocket(requestId, requestURL as Platform.DevToolsPath.UrlString, initiator
|
|
1012
|
+
NetworkRequest.createForSocket(requestId, requestURL as Platform.DevToolsPath.UrlString, initiator,
|
|
1013
|
+
this.#manager.target().targetManager().getConsole());
|
|
973
1014
|
requestToManagerMap.set(networkRequest, this.#manager);
|
|
974
1015
|
networkRequest.setResourceType(Common.ResourceType.resourceTypes.WebSocket);
|
|
975
1016
|
this.startNetworkRequest(networkRequest, null);
|
|
@@ -1174,7 +1215,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1174
1215
|
const newNetworkRequest = NetworkRequest.create(
|
|
1175
1216
|
requestId, redirectURL, originalNetworkRequest.documentURL, originalNetworkRequest.frameId,
|
|
1176
1217
|
originalNetworkRequest.loaderId, originalNetworkRequest.initiator(),
|
|
1177
|
-
originalNetworkRequest.hasUserGesture() ?? undefined);
|
|
1218
|
+
originalNetworkRequest.hasUserGesture() ?? undefined, this.#manager.target().targetManager().getConsole());
|
|
1178
1219
|
requestToManagerMap.set(newNetworkRequest, this.#manager);
|
|
1179
1220
|
newNetworkRequest.setRedirectSource(originalNetworkRequest);
|
|
1180
1221
|
originalNetworkRequest.setRedirectDestination(newNetworkRequest);
|
|
@@ -1296,7 +1337,8 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1296
1337
|
webTransportCreated({transportId, url: requestURL, timestamp: time, initiator}:
|
|
1297
1338
|
Protocol.Network.WebTransportCreatedEvent): void {
|
|
1298
1339
|
const networkRequest =
|
|
1299
|
-
NetworkRequest.createForSocket(transportId, requestURL as Platform.DevToolsPath.UrlString, initiator
|
|
1340
|
+
NetworkRequest.createForSocket(transportId, requestURL as Platform.DevToolsPath.UrlString, initiator,
|
|
1341
|
+
this.#manager.target().targetManager().getConsole());
|
|
1300
1342
|
networkRequest.hasNetworkData = true;
|
|
1301
1343
|
requestToManagerMap.set(networkRequest, this.#manager);
|
|
1302
1344
|
networkRequest.setResourceType(Common.ResourceType.resourceTypes.WebTransport);
|
|
@@ -1333,8 +1375,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1333
1375
|
|
|
1334
1376
|
directTCPSocketCreated(event: Protocol.Network.DirectTCPSocketCreatedEvent): void {
|
|
1335
1377
|
const requestURL = this.concatHostPort(event.remoteAddr, event.remotePort);
|
|
1336
|
-
const networkRequest =
|
|
1337
|
-
event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator
|
|
1378
|
+
const networkRequest =
|
|
1379
|
+
NetworkRequest.createForSocket(event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator,
|
|
1380
|
+
this.#manager.target().targetManager().getConsole());
|
|
1338
1381
|
networkRequest.hasNetworkData = true;
|
|
1339
1382
|
networkRequest.setRemoteAddress(event.remoteAddr, event.remotePort);
|
|
1340
1383
|
networkRequest.protocol = i18n.i18n.lockedString('tcp');
|
|
@@ -1448,8 +1491,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1448
1491
|
// is not specified.
|
|
1449
1492
|
return;
|
|
1450
1493
|
}
|
|
1451
|
-
const networkRequest =
|
|
1452
|
-
event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator
|
|
1494
|
+
const networkRequest =
|
|
1495
|
+
NetworkRequest.createForSocket(event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator,
|
|
1496
|
+
this.#manager.target().targetManager().getConsole());
|
|
1453
1497
|
networkRequest.hasNetworkData = true;
|
|
1454
1498
|
if (event.options.remoteAddr && event.options.remotePort) {
|
|
1455
1499
|
networkRequest.setRemoteAddress(event.options.remoteAddr, event.options.remotePort);
|
|
@@ -1633,9 +1677,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
|
|
|
1633
1677
|
protected createNetworkRequest(
|
|
1634
1678
|
requestId: Protocol.Network.RequestId, frameId: Protocol.Page.FrameId, loaderId: Protocol.Network.LoaderId,
|
|
1635
1679
|
url: string, documentURL: string, initiator: Protocol.Network.Initiator|null): NetworkRequest {
|
|
1636
|
-
const request = NetworkRequest.create(
|
|
1637
|
-
|
|
1638
|
-
|
|
1680
|
+
const request = NetworkRequest.create(requestId, url as Platform.DevToolsPath.UrlString,
|
|
1681
|
+
documentURL as Platform.DevToolsPath.UrlString, frameId, loaderId, initiator,
|
|
1682
|
+
undefined, this.#manager.target().targetManager().getConsole());
|
|
1639
1683
|
requestToManagerMap.set(request, this.#manager);
|
|
1640
1684
|
return request;
|
|
1641
1685
|
}
|
|
@@ -1964,6 +2008,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
|
|
|
1964
2008
|
promises.push(agent
|
|
1965
2009
|
.invoke_emulateNetworkConditionsByRule({
|
|
1966
2010
|
offline,
|
|
2011
|
+
emulateOfflineServiceWorker: offline,
|
|
1967
2012
|
matchedNetworkConditions: matchedNetworkConditions.map(
|
|
1968
2013
|
({urlPattern, conditions}) => ({
|
|
1969
2014
|
urlPattern: urlPattern ?? '',
|
|
@@ -1974,6 +2019,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
|
|
|
1974
2019
|
packetQueueLength: conditions.packetQueueLength,
|
|
1975
2020
|
packetReordering: conditions.packetReordering,
|
|
1976
2021
|
connectionType: NetworkManager.connectionType(conditions),
|
|
2022
|
+
offline,
|
|
1977
2023
|
}))
|
|
1978
2024
|
})
|
|
1979
2025
|
.then(response => {
|
|
@@ -2074,8 +2120,10 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
|
2074
2120
|
} = {forceNew: null}): MultitargetNetworkManager {
|
|
2075
2121
|
const {forceNew, targetManager} = opts;
|
|
2076
2122
|
if (!Root.DevToolsContext.globalInstance().has(MultitargetNetworkManager) || forceNew) {
|
|
2123
|
+
/* eslint-disable @devtools/no-instance-of-migrated-singletons */
|
|
2077
2124
|
Root.DevToolsContext.globalInstance().set(
|
|
2078
2125
|
MultitargetNetworkManager, new MultitargetNetworkManager(targetManager ?? TargetManager.instance()));
|
|
2126
|
+
/* eslint-enable @devtools/no-instance-of-migrated-singletons */
|
|
2079
2127
|
}
|
|
2080
2128
|
|
|
2081
2129
|
return Root.DevToolsContext.globalInstance().get(MultitargetNetworkManager);
|
|
@@ -296,7 +296,9 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
296
296
|
directSocketInfo?: DirectSocketInfo;
|
|
297
297
|
readonly #directSocketChunks: DirectSocketChunk[] = [];
|
|
298
298
|
#isAdRelated: boolean;
|
|
299
|
+
#isLinkPreload: boolean;
|
|
299
300
|
#appliedNetworkConditionsId?: string;
|
|
301
|
+
readonly #console: Common.Console.Console;
|
|
300
302
|
|
|
301
303
|
constructor(
|
|
302
304
|
requestId: string,
|
|
@@ -307,6 +309,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
307
309
|
loaderId: Protocol.Network.LoaderId|null,
|
|
308
310
|
initiator: Protocol.Network.Initiator|null,
|
|
309
311
|
hasUserGesture?: boolean,
|
|
312
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
313
|
+
console: Common.Console.Console = Common.Console.Console.instance(),
|
|
310
314
|
) {
|
|
311
315
|
super();
|
|
312
316
|
|
|
@@ -319,6 +323,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
319
323
|
this.#initiator = initiator;
|
|
320
324
|
this.#hasUserGesture = hasUserGesture;
|
|
321
325
|
this.#isAdRelated = false;
|
|
326
|
+
this.#isLinkPreload = false;
|
|
327
|
+
this.#console = console;
|
|
322
328
|
}
|
|
323
329
|
|
|
324
330
|
static create(
|
|
@@ -329,6 +335,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
329
335
|
loaderId: Protocol.Network.LoaderId|null,
|
|
330
336
|
initiator: Protocol.Network.Initiator|null,
|
|
331
337
|
hasUserGesture?: boolean,
|
|
338
|
+
console?: Common.Console.Console,
|
|
332
339
|
): NetworkRequest {
|
|
333
340
|
return new NetworkRequest(
|
|
334
341
|
backendRequestId,
|
|
@@ -339,6 +346,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
339
346
|
loaderId,
|
|
340
347
|
initiator,
|
|
341
348
|
hasUserGesture,
|
|
349
|
+
console,
|
|
342
350
|
);
|
|
343
351
|
}
|
|
344
352
|
|
|
@@ -346,6 +354,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
346
354
|
backendRequestId: Protocol.Network.RequestId,
|
|
347
355
|
requestURL: Platform.DevToolsPath.UrlString,
|
|
348
356
|
initiator?: Protocol.Network.Initiator,
|
|
357
|
+
console?: Common.Console.Console,
|
|
349
358
|
): NetworkRequest {
|
|
350
359
|
return new NetworkRequest(
|
|
351
360
|
backendRequestId,
|
|
@@ -355,6 +364,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
355
364
|
null,
|
|
356
365
|
null,
|
|
357
366
|
initiator || null,
|
|
367
|
+
undefined,
|
|
368
|
+
console,
|
|
358
369
|
);
|
|
359
370
|
}
|
|
360
371
|
|
|
@@ -363,6 +374,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
363
374
|
url: Platform.DevToolsPath.UrlString,
|
|
364
375
|
documentURL: Platform.DevToolsPath.UrlString,
|
|
365
376
|
initiator: Protocol.Network.Initiator|null,
|
|
377
|
+
console?: Common.Console.Console,
|
|
366
378
|
): NetworkRequest {
|
|
367
379
|
return new NetworkRequest(
|
|
368
380
|
requestId,
|
|
@@ -372,6 +384,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
372
384
|
null,
|
|
373
385
|
null,
|
|
374
386
|
initiator,
|
|
387
|
+
undefined,
|
|
388
|
+
console,
|
|
375
389
|
);
|
|
376
390
|
}
|
|
377
391
|
|
|
@@ -909,6 +923,11 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
909
923
|
this.#initiator.type === Protocol.Network.InitiatorType.Preflight);
|
|
910
924
|
}
|
|
911
925
|
|
|
926
|
+
isPreloadRequest(): boolean {
|
|
927
|
+
return (this.#initiator !== null && this.#initiator !== undefined &&
|
|
928
|
+
this.#initiator.type === Protocol.Network.InitiatorType.Preload);
|
|
929
|
+
}
|
|
930
|
+
|
|
912
931
|
redirectDestination(): NetworkRequest|null {
|
|
913
932
|
return this.#redirectDestination;
|
|
914
933
|
}
|
|
@@ -960,6 +979,15 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
960
979
|
this.#formParametersPromise = null;
|
|
961
980
|
}
|
|
962
981
|
|
|
982
|
+
/**
|
|
983
|
+
* Returns the raw request body as ContentData, preserving base64 encoding
|
|
984
|
+
* for binary payloads. This enables binary viewers (hex, base64, utf-8)
|
|
985
|
+
* in the Payload tab.
|
|
986
|
+
*/
|
|
987
|
+
requestFormDataContentData(): Promise<TextUtils.ContentData.ContentDataOrError> {
|
|
988
|
+
return NetworkManager.requestPostDataContentData(this);
|
|
989
|
+
}
|
|
990
|
+
|
|
963
991
|
private filteredProtocolName(): string {
|
|
964
992
|
const protocol = this.protocol.toLowerCase();
|
|
965
993
|
if (protocol === 'h2') {
|
|
@@ -1201,7 +1229,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
1201
1229
|
get serverTimings(): ServerTiming[]|null {
|
|
1202
1230
|
if (typeof this.#serverTimings === 'undefined') {
|
|
1203
1231
|
this.#serverTimings = ServerTiming.parseHeaders(
|
|
1204
|
-
this.responseHeaders,
|
|
1232
|
+
this.responseHeaders.map(x => ({name: x.name, value: x.value})),
|
|
1233
|
+
this.#console,
|
|
1205
1234
|
);
|
|
1206
1235
|
}
|
|
1207
1236
|
return this.#serverTimings;
|
|
@@ -1837,6 +1866,14 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
|
|
|
1837
1866
|
return this.#isAdRelated;
|
|
1838
1867
|
}
|
|
1839
1868
|
|
|
1869
|
+
setIsLinkPreload(isLinkPreload: boolean): void {
|
|
1870
|
+
this.#isLinkPreload = isLinkPreload;
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1873
|
+
isLinkPreload(): boolean {
|
|
1874
|
+
return this.#isLinkPreload;
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1840
1877
|
getAssociatedData(key: string): object|null {
|
|
1841
1878
|
return this.#associatedData.get(key) || null;
|
|
1842
1879
|
}
|
|
@@ -15,7 +15,7 @@ import {OverlayPersistentHighlighter} from './OverlayPersistentHighlighter.js';
|
|
|
15
15
|
import type {RemoteObject} from './RemoteObject.js';
|
|
16
16
|
import {SDKModel} from './SDKModel.js';
|
|
17
17
|
import {Capability, type Target} from './Target.js';
|
|
18
|
-
import {TargetManager} from './TargetManager.js';
|
|
18
|
+
import type {TargetManager} from './TargetManager.js';
|
|
19
19
|
|
|
20
20
|
const UIStrings = {
|
|
21
21
|
/**
|
|
@@ -49,6 +49,19 @@ export interface Hinge {
|
|
|
49
49
|
contentColor: HighlightColor;
|
|
50
50
|
outlineColor: HighlightColor;
|
|
51
51
|
}
|
|
52
|
+
export interface BaseDisplayCutout {
|
|
53
|
+
width: number;
|
|
54
|
+
height: number;
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
shape: Protocol.Overlay.DisplayCutoutShape;
|
|
58
|
+
contentColor?: HighlightColor;
|
|
59
|
+
}
|
|
60
|
+
export type DisplayCutout =
|
|
61
|
+
BaseDisplayCutout&({shape: Protocol.Overlay.DisplayCutoutShape.Rectangle}|
|
|
62
|
+
{shape: Protocol.Overlay.DisplayCutoutShape.Pill, borderRadius: number}|
|
|
63
|
+
{shape: Protocol.Overlay.DisplayCutoutShape.Notch, upperRadius: number, lowerRadius: number}|
|
|
64
|
+
{shape: Protocol.Overlay.DisplayCutoutShape.Circle, cx: number, cy: number, radius: number});
|
|
52
65
|
|
|
53
66
|
export const enum EmulatedOSType {
|
|
54
67
|
WINDOWS = 'Windows',
|
|
@@ -178,27 +191,27 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
|
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
193
|
|
|
181
|
-
static hideDOMNodeHighlight(targetManager: TargetManager
|
|
194
|
+
static hideDOMNodeHighlight(targetManager: TargetManager): void {
|
|
182
195
|
for (const overlayModel of targetManager.models(OverlayModel)) {
|
|
183
196
|
overlayModel.delayedHideHighlight(0);
|
|
184
197
|
}
|
|
185
198
|
}
|
|
186
199
|
|
|
187
|
-
static async muteHighlight(targetManager: TargetManager
|
|
200
|
+
static async muteHighlight(targetManager: TargetManager): Promise<void[]> {
|
|
188
201
|
return await Promise.all(targetManager.models(OverlayModel).map(model => model.suspendModel()));
|
|
189
202
|
}
|
|
190
203
|
|
|
191
|
-
static async unmuteHighlight(targetManager: TargetManager
|
|
204
|
+
static async unmuteHighlight(targetManager: TargetManager): Promise<void[]> {
|
|
192
205
|
return await Promise.all(targetManager.models(OverlayModel).map(model => model.resumeModel()));
|
|
193
206
|
}
|
|
194
207
|
|
|
195
|
-
static highlightRect(rect: HighlightRect, targetManager: TargetManager
|
|
208
|
+
static highlightRect(rect: HighlightRect, targetManager: TargetManager): void {
|
|
196
209
|
for (const overlayModel of targetManager.models(OverlayModel)) {
|
|
197
210
|
void overlayModel.highlightRect(rect);
|
|
198
211
|
}
|
|
199
212
|
}
|
|
200
213
|
|
|
201
|
-
static clearHighlight(targetManager: TargetManager
|
|
214
|
+
static clearHighlight(targetManager: TargetManager): void {
|
|
202
215
|
for (const overlayModel of targetManager.models(OverlayModel)) {
|
|
203
216
|
void overlayModel.clearHighlight();
|
|
204
217
|
}
|
|
@@ -497,6 +510,32 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
|
|
|
497
510
|
}
|
|
498
511
|
}
|
|
499
512
|
|
|
513
|
+
showDisplayCutout(cutout: DisplayCutout|null): void {
|
|
514
|
+
if (cutout) {
|
|
515
|
+
const {x, y, width, height, shape, contentColor} = cutout;
|
|
516
|
+
const displayCutoutConfig: Protocol.Overlay.DisplayCutoutConfig = {
|
|
517
|
+
rect: {x, y, width, height},
|
|
518
|
+
shape,
|
|
519
|
+
contentColor,
|
|
520
|
+
};
|
|
521
|
+
if (shape === Protocol.Overlay.DisplayCutoutShape.Pill) {
|
|
522
|
+
displayCutoutConfig.borderRadius = cutout.borderRadius;
|
|
523
|
+
} else if (shape === Protocol.Overlay.DisplayCutoutShape.Notch) {
|
|
524
|
+
displayCutoutConfig.upperRadius = cutout.upperRadius;
|
|
525
|
+
displayCutoutConfig.lowerRadius = cutout.lowerRadius;
|
|
526
|
+
} else if (shape === Protocol.Overlay.DisplayCutoutShape.Circle) {
|
|
527
|
+
displayCutoutConfig.cx = cutout.cx;
|
|
528
|
+
displayCutoutConfig.cy = cutout.cy;
|
|
529
|
+
displayCutoutConfig.radius = cutout.radius;
|
|
530
|
+
}
|
|
531
|
+
void this.overlayAgent.invoke_setShowDisplayCutout({
|
|
532
|
+
displayCutoutConfig,
|
|
533
|
+
});
|
|
534
|
+
} else {
|
|
535
|
+
void this.overlayAgent.invoke_setShowDisplayCutout({});
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
500
539
|
setWindowControlsPlatform(selectedPlatform: EmulatedOSType): void {
|
|
501
540
|
this.#windowControls.selectedPlatform = selectedPlatform;
|
|
502
541
|
}
|
|
@@ -135,11 +135,13 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
135
135
|
loadOverride: null,
|
|
136
136
|
}): PageResourceLoader {
|
|
137
137
|
if (forceNew) {
|
|
138
|
+
/* eslint-disable @devtools/no-instance-of-migrated-singletons */
|
|
138
139
|
Root.DevToolsContext.globalInstance().set(
|
|
139
140
|
PageResourceLoader,
|
|
140
141
|
new PageResourceLoader(
|
|
141
142
|
targetManager ?? TargetManager.instance(), settings ?? Common.Settings.Settings.instance(),
|
|
142
143
|
userAgentProvider ?? MultitargetNetworkManager.instance(), loadOverride, maxConcurrentLoads));
|
|
144
|
+
/* eslint-enable @devtools/no-instance-of-migrated-singletons */
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
return Root.DevToolsContext.globalInstance().get(PageResourceLoader);
|
|
@@ -18,7 +18,7 @@ import {SDKModel} from './SDKModel.js';
|
|
|
18
18
|
import {SecurityOriginManager} from './SecurityOriginManager.js';
|
|
19
19
|
import {StorageKeyManager} from './StorageKeyManager.js';
|
|
20
20
|
import {Capability, type Target, Type} from './Target.js';
|
|
21
|
-
import {TargetManager} from './TargetManager.js';
|
|
21
|
+
import type {TargetManager} from './TargetManager.js';
|
|
22
22
|
|
|
23
23
|
export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
24
24
|
readonly agent: ProtocolProxyApi.PageApi;
|
|
@@ -74,16 +74,16 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
|
74
74
|
return request.frameId ? resourceTreeModel.frameForId(request.frameId) : null;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
static frames(): ResourceTreeFrame[] {
|
|
77
|
+
static frames(targetManager: TargetManager): ResourceTreeFrame[] {
|
|
78
78
|
const result = [];
|
|
79
|
-
for (const resourceTreeModel of
|
|
79
|
+
for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
|
|
80
80
|
result.push(...resourceTreeModel.frames());
|
|
81
81
|
}
|
|
82
82
|
return result;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
static resourceForURL(url: Platform.DevToolsPath.UrlString): Resource|null {
|
|
86
|
-
for (const resourceTreeModel of
|
|
85
|
+
static resourceForURL(targetManager: TargetManager, url: Platform.DevToolsPath.UrlString): Resource|null {
|
|
86
|
+
for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
|
|
87
87
|
const mainFrame = resourceTreeModel.mainFrame;
|
|
88
88
|
// Workers call into this with no #frames available.
|
|
89
89
|
const result = mainFrame ? mainFrame.resourceForURL(url) : null;
|
|
@@ -94,8 +94,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
|
|
|
94
94
|
return null;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
static reloadAllPages(bypassCache?: boolean, scriptToEvaluateOnLoad?: string
|
|
98
|
-
targetManager: TargetManager = TargetManager.instance()): void {
|
|
97
|
+
static reloadAllPages(targetManager: TargetManager, bypassCache?: boolean, scriptToEvaluateOnLoad?: string): void {
|
|
99
98
|
for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
|
|
100
99
|
if (resourceTreeModel.target().parentTarget()?.type() !== Type.FRAME) {
|
|
101
100
|
resourceTreeModel.reloadPage(bypassCache, scriptToEvaluateOnLoad);
|
|
@@ -145,9 +145,9 @@ export class ScreenCaptureModel extends SDKModel<void> implements ProtocolProxyA
|
|
|
145
145
|
throw new Error('Unexpected or unspecified screnshotMode');
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
await OverlayModel.muteHighlight();
|
|
148
|
+
await OverlayModel.muteHighlight(this.target().targetManager());
|
|
149
149
|
const result = await this.#agent.invoke_captureScreenshot(properties);
|
|
150
|
-
await OverlayModel.unmuteHighlight();
|
|
150
|
+
await OverlayModel.unmuteHighlight(this.target().targetManager());
|
|
151
151
|
return result.data;
|
|
152
152
|
}
|
|
153
153
|
|