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
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
// Copyright 2021 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import type * as SDK from '../../core/sdk/sdk.js';
|
|
6
|
-
import * as Protocol from '../../generated/protocol.js';
|
|
7
|
-
|
|
8
|
-
import {Issue, IssueCategory, IssueKind} from './Issue.js';
|
|
9
|
-
import type {MarkdownIssueDescription} from './MarkdownIssueDescription.js';
|
|
10
|
-
|
|
11
|
-
export const enum IssueCode {
|
|
12
|
-
PERMISSION_POLICY_DISABLED = 'AttributionReportingIssue::PermissionPolicyDisabled',
|
|
13
|
-
UNTRUSTWORTHY_REPORTING_ORIGIN = 'AttributionReportingIssue::UntrustworthyReportingOrigin',
|
|
14
|
-
INSECURE_CONTEXT = 'AttributionReportingIssue::InsecureContext',
|
|
15
|
-
INVALID_REGISTER_SOURCE_HEADER = 'AttributionReportingIssue::InvalidRegisterSourceHeader',
|
|
16
|
-
INVALID_REGISTER_TRIGGER_HEADER = 'AttributionReportingIssue::InvalidRegisterTriggerHeader',
|
|
17
|
-
SOURCE_AND_TRIGGER_HEADERS = 'AttributionReportingIssue::SourceAndTriggerHeaders',
|
|
18
|
-
SOURCE_IGNORED = 'AttributionReportingIssue::SourceIgnored',
|
|
19
|
-
TRIGGER_IGNORED = 'AttributionReportingIssue::TriggerIgnored',
|
|
20
|
-
OS_SOURCE_IGNORED = 'AttributionReportingIssue::OsSourceIgnored',
|
|
21
|
-
OS_TRIGGER_IGNORED = 'AttributionReportingIssue::OsTriggerIgnored',
|
|
22
|
-
INVALID_REGISTER_OS_SOURCE_HEADER = 'AttributionReportingIssue::InvalidRegisterOsSourceHeader',
|
|
23
|
-
INVALID_REGISTER_OS_TRIGGER_HEADER = 'AttributionReportingIssue::InvalidRegisterOsTriggerHeader',
|
|
24
|
-
WEB_AND_OS_HEADERS = 'AttributionReportingIssue::WebAndOsHeaders',
|
|
25
|
-
NO_WEB_OR_OS_SUPPORT = 'AttributionReportingIssue::NoWebOrOsSupport',
|
|
26
|
-
NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATION =
|
|
27
|
-
'AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation',
|
|
28
|
-
INVALID_INFO_HEADER = 'AttributionReportingIssue::InvalidInfoHeader',
|
|
29
|
-
NO_REGISTER_SOURCE_HEADER = 'AttributionReportingIssue::NoRegisterSourceHeader',
|
|
30
|
-
NO_REGISTER_TRIGGER_HEADER = 'AttributionReportingIssue::NoRegisterTriggerHeader',
|
|
31
|
-
NO_REGISTER_OS_SOURCE_HEADER = 'AttributionReportingIssue::NoRegisterOsSourceHeader',
|
|
32
|
-
NO_REGISTER_OS_TRIGGER_HEADER = 'AttributionReportingIssue::NoRegisterOsTriggerHeader',
|
|
33
|
-
NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SET =
|
|
34
|
-
'AttributionReportingIssue::NavigationRegistrationUniqueScopeAlreadySet',
|
|
35
|
-
UNKNOWN = 'AttributionReportingIssue::Unknown',
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails): IssueCode {
|
|
39
|
-
switch (details.violationType) {
|
|
40
|
-
case Protocol.Audits.AttributionReportingIssueType.PermissionPolicyDisabled:
|
|
41
|
-
return IssueCode.PERMISSION_POLICY_DISABLED;
|
|
42
|
-
case Protocol.Audits.AttributionReportingIssueType.UntrustworthyReportingOrigin:
|
|
43
|
-
return IssueCode.UNTRUSTWORTHY_REPORTING_ORIGIN;
|
|
44
|
-
case Protocol.Audits.AttributionReportingIssueType.InsecureContext:
|
|
45
|
-
return IssueCode.INSECURE_CONTEXT;
|
|
46
|
-
case Protocol.Audits.AttributionReportingIssueType.InvalidHeader:
|
|
47
|
-
return IssueCode.INVALID_REGISTER_SOURCE_HEADER;
|
|
48
|
-
case Protocol.Audits.AttributionReportingIssueType.InvalidRegisterTriggerHeader:
|
|
49
|
-
return IssueCode.INVALID_REGISTER_TRIGGER_HEADER;
|
|
50
|
-
case Protocol.Audits.AttributionReportingIssueType.SourceAndTriggerHeaders:
|
|
51
|
-
return IssueCode.SOURCE_AND_TRIGGER_HEADERS;
|
|
52
|
-
case Protocol.Audits.AttributionReportingIssueType.SourceIgnored:
|
|
53
|
-
return IssueCode.SOURCE_IGNORED;
|
|
54
|
-
case Protocol.Audits.AttributionReportingIssueType.TriggerIgnored:
|
|
55
|
-
return IssueCode.TRIGGER_IGNORED;
|
|
56
|
-
case Protocol.Audits.AttributionReportingIssueType.OsSourceIgnored:
|
|
57
|
-
return IssueCode.OS_SOURCE_IGNORED;
|
|
58
|
-
case Protocol.Audits.AttributionReportingIssueType.OsTriggerIgnored:
|
|
59
|
-
return IssueCode.OS_TRIGGER_IGNORED;
|
|
60
|
-
case Protocol.Audits.AttributionReportingIssueType.InvalidRegisterOsSourceHeader:
|
|
61
|
-
return IssueCode.INVALID_REGISTER_OS_SOURCE_HEADER;
|
|
62
|
-
case Protocol.Audits.AttributionReportingIssueType.InvalidRegisterOsTriggerHeader:
|
|
63
|
-
return IssueCode.INVALID_REGISTER_OS_TRIGGER_HEADER;
|
|
64
|
-
case Protocol.Audits.AttributionReportingIssueType.WebAndOsHeaders:
|
|
65
|
-
return IssueCode.WEB_AND_OS_HEADERS;
|
|
66
|
-
case Protocol.Audits.AttributionReportingIssueType.NoWebOrOsSupport:
|
|
67
|
-
return IssueCode.NO_WEB_OR_OS_SUPPORT;
|
|
68
|
-
case Protocol.Audits.AttributionReportingIssueType.NavigationRegistrationWithoutTransientUserActivation:
|
|
69
|
-
return IssueCode.NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATION;
|
|
70
|
-
case Protocol.Audits.AttributionReportingIssueType.InvalidInfoHeader:
|
|
71
|
-
return IssueCode.INVALID_INFO_HEADER;
|
|
72
|
-
case Protocol.Audits.AttributionReportingIssueType.NoRegisterSourceHeader:
|
|
73
|
-
return IssueCode.NO_REGISTER_SOURCE_HEADER;
|
|
74
|
-
case Protocol.Audits.AttributionReportingIssueType.NoRegisterTriggerHeader:
|
|
75
|
-
return IssueCode.NO_REGISTER_TRIGGER_HEADER;
|
|
76
|
-
case Protocol.Audits.AttributionReportingIssueType.NoRegisterOsSourceHeader:
|
|
77
|
-
return IssueCode.NO_REGISTER_OS_SOURCE_HEADER;
|
|
78
|
-
case Protocol.Audits.AttributionReportingIssueType.NoRegisterOsTriggerHeader:
|
|
79
|
-
return IssueCode.NO_REGISTER_OS_TRIGGER_HEADER;
|
|
80
|
-
case Protocol.Audits.AttributionReportingIssueType.NavigationRegistrationUniqueScopeAlreadySet:
|
|
81
|
-
return IssueCode.NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SET;
|
|
82
|
-
default:
|
|
83
|
-
return IssueCode.UNKNOWN;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const structuredHeaderLink = {
|
|
88
|
-
link: 'https://tools.ietf.org/id/draft-ietf-httpbis-header-structure-15.html#rfc.section.4.2.2',
|
|
89
|
-
linkTitle: 'Structured Headers RFC',
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
export class AttributionReportingIssue extends Issue<Protocol.Audits.AttributionReportingIssueDetails, IssueCode> {
|
|
93
|
-
constructor(
|
|
94
|
-
issueDetails: Protocol.Audits.AttributionReportingIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel|null) {
|
|
95
|
-
super(getIssueCode(issueDetails), issueDetails, issuesModel);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
getCategory(): IssueCategory {
|
|
99
|
-
return IssueCategory.ATTRIBUTION_REPORTING;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
getHeaderValidatorLink(name: string): {link: string, linkTitle: string} {
|
|
103
|
-
const url = new URL('https://wicg.github.io/attribution-reporting-api/validate-headers');
|
|
104
|
-
url.searchParams.set('header', name);
|
|
105
|
-
|
|
106
|
-
const details = this.details();
|
|
107
|
-
if (details.invalidParameter) {
|
|
108
|
-
url.searchParams.set('json', details.invalidParameter);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return {
|
|
112
|
-
link: url.toString(),
|
|
113
|
-
linkTitle: 'Header Validator',
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
getDescription(): MarkdownIssueDescription|null {
|
|
118
|
-
switch (this.code()) {
|
|
119
|
-
case IssueCode.PERMISSION_POLICY_DISABLED:
|
|
120
|
-
return {
|
|
121
|
-
file: 'arPermissionPolicyDisabled.md',
|
|
122
|
-
links: [],
|
|
123
|
-
};
|
|
124
|
-
case IssueCode.UNTRUSTWORTHY_REPORTING_ORIGIN:
|
|
125
|
-
return {
|
|
126
|
-
file: 'arUntrustworthyReportingOrigin.md',
|
|
127
|
-
links: [],
|
|
128
|
-
};
|
|
129
|
-
case IssueCode.INSECURE_CONTEXT:
|
|
130
|
-
return {
|
|
131
|
-
file: 'arInsecureContext.md',
|
|
132
|
-
links: [],
|
|
133
|
-
};
|
|
134
|
-
case IssueCode.INVALID_REGISTER_SOURCE_HEADER:
|
|
135
|
-
return {
|
|
136
|
-
file: 'arInvalidRegisterSourceHeader.md',
|
|
137
|
-
links: [this.getHeaderValidatorLink('source')],
|
|
138
|
-
};
|
|
139
|
-
case IssueCode.INVALID_REGISTER_TRIGGER_HEADER:
|
|
140
|
-
return {
|
|
141
|
-
file: 'arInvalidRegisterTriggerHeader.md',
|
|
142
|
-
links: [this.getHeaderValidatorLink('trigger')],
|
|
143
|
-
};
|
|
144
|
-
case IssueCode.INVALID_REGISTER_OS_SOURCE_HEADER:
|
|
145
|
-
return {
|
|
146
|
-
file: 'arInvalidRegisterOsSourceHeader.md',
|
|
147
|
-
links: [this.getHeaderValidatorLink('os-source')],
|
|
148
|
-
};
|
|
149
|
-
case IssueCode.INVALID_REGISTER_OS_TRIGGER_HEADER:
|
|
150
|
-
return {
|
|
151
|
-
file: 'arInvalidRegisterOsTriggerHeader.md',
|
|
152
|
-
links: [this.getHeaderValidatorLink('os-trigger')],
|
|
153
|
-
};
|
|
154
|
-
case IssueCode.SOURCE_AND_TRIGGER_HEADERS:
|
|
155
|
-
return {
|
|
156
|
-
file: 'arSourceAndTriggerHeaders.md',
|
|
157
|
-
links: [],
|
|
158
|
-
};
|
|
159
|
-
case IssueCode.WEB_AND_OS_HEADERS:
|
|
160
|
-
return {
|
|
161
|
-
file: 'arWebAndOsHeaders.md',
|
|
162
|
-
links: [],
|
|
163
|
-
};
|
|
164
|
-
case IssueCode.SOURCE_IGNORED:
|
|
165
|
-
return {
|
|
166
|
-
file: 'arSourceIgnored.md',
|
|
167
|
-
links: [structuredHeaderLink],
|
|
168
|
-
};
|
|
169
|
-
case IssueCode.TRIGGER_IGNORED:
|
|
170
|
-
return {
|
|
171
|
-
file: 'arTriggerIgnored.md',
|
|
172
|
-
links: [structuredHeaderLink],
|
|
173
|
-
};
|
|
174
|
-
case IssueCode.OS_SOURCE_IGNORED:
|
|
175
|
-
return {
|
|
176
|
-
file: 'arOsSourceIgnored.md',
|
|
177
|
-
links: [structuredHeaderLink],
|
|
178
|
-
};
|
|
179
|
-
case IssueCode.OS_TRIGGER_IGNORED:
|
|
180
|
-
return {
|
|
181
|
-
file: 'arOsTriggerIgnored.md',
|
|
182
|
-
links: [structuredHeaderLink],
|
|
183
|
-
};
|
|
184
|
-
case IssueCode.NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATION:
|
|
185
|
-
return {
|
|
186
|
-
file: 'arNavigationRegistrationWithoutTransientUserActivation.md',
|
|
187
|
-
links: [],
|
|
188
|
-
};
|
|
189
|
-
case IssueCode.NO_WEB_OR_OS_SUPPORT:
|
|
190
|
-
return {
|
|
191
|
-
file: 'arNoWebOrOsSupport.md',
|
|
192
|
-
links: [],
|
|
193
|
-
};
|
|
194
|
-
case IssueCode.INVALID_INFO_HEADER:
|
|
195
|
-
return {
|
|
196
|
-
file: 'arInvalidInfoHeader.md',
|
|
197
|
-
links: [],
|
|
198
|
-
};
|
|
199
|
-
case IssueCode.NO_REGISTER_SOURCE_HEADER:
|
|
200
|
-
return {
|
|
201
|
-
file: 'arNoRegisterSourceHeader.md',
|
|
202
|
-
links: [],
|
|
203
|
-
};
|
|
204
|
-
case IssueCode.NO_REGISTER_TRIGGER_HEADER:
|
|
205
|
-
return {
|
|
206
|
-
file: 'arNoRegisterTriggerHeader.md',
|
|
207
|
-
links: [],
|
|
208
|
-
};
|
|
209
|
-
case IssueCode.NO_REGISTER_OS_SOURCE_HEADER:
|
|
210
|
-
return {
|
|
211
|
-
file: 'arNoRegisterOsSourceHeader.md',
|
|
212
|
-
links: [],
|
|
213
|
-
};
|
|
214
|
-
case IssueCode.NO_REGISTER_OS_TRIGGER_HEADER:
|
|
215
|
-
return {
|
|
216
|
-
file: 'arNoRegisterOsTriggerHeader.md',
|
|
217
|
-
links: [],
|
|
218
|
-
};
|
|
219
|
-
case IssueCode.NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SET:
|
|
220
|
-
return {
|
|
221
|
-
file: 'arNavigationRegistrationUniqueScopeAlreadySet.md',
|
|
222
|
-
links: [],
|
|
223
|
-
};
|
|
224
|
-
case IssueCode.UNKNOWN:
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
primaryKey(): string {
|
|
230
|
-
return JSON.stringify(this.details());
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
getKind(): IssueKind {
|
|
234
|
-
return IssueKind.PAGE_ERROR;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
static fromInspectorIssue(
|
|
238
|
-
issuesModel: SDK.IssuesModel.IssuesModel|null,
|
|
239
|
-
inspectorIssue: Protocol.Audits.InspectorIssue): AttributionReportingIssue[] {
|
|
240
|
-
const {attributionReportingIssueDetails} = inspectorIssue.details;
|
|
241
|
-
if (!attributionReportingIssueDetails) {
|
|
242
|
-
console.warn('Attribution Reporting issue without details received.');
|
|
243
|
-
return [];
|
|
244
|
-
}
|
|
245
|
-
return [new AttributionReportingIssue(attributionReportingIssueDetails, issuesModel)];
|
|
246
|
-
}
|
|
247
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Ensure that the attribution registration context is secure
|
|
2
|
-
|
|
3
|
-
This page tried to register a source or trigger using the Attribution Reporting
|
|
4
|
-
API but failed because the page that initiated the registration was not secure.
|
|
5
|
-
|
|
6
|
-
The registration context must use HTTPS unless it is `localhost` or
|
|
7
|
-
`127.0.0.1`.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Ensure that multiple sources associated with the same navigation have the same attribution scopes
|
|
2
|
-
|
|
3
|
-
The page tried to register a source using Attribution Reporting API, but the
|
|
4
|
-
source was rejected because a previous source associated with the same
|
|
5
|
-
navigation and reporting origin used a different set of attribution scopes.
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
# Ensure that navigation-source registrations are initiated by a user gesture
|
|
2
|
-
|
|
3
|
-
This page tried to register a navigation source using the Attribution Reporting
|
|
4
|
-
API but failed because the navigation was not initiated by a user gesture.
|
|
5
|
-
Compared to event sources, navigation sources can release more cross-site
|
|
6
|
-
information, and are therefore subject to this additional privacy control.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# OS attribution source expected but corresponding header not found
|
|
2
|
-
|
|
3
|
-
The page indicated, via the `Attribution-Reporting-Info` header, that it
|
|
4
|
-
intended to register an OS source using the Attribution Reporting API, but the
|
|
5
|
-
corresponding `Attribution-Reporting-Register-OS-Source` header was missing.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# OS attribution trigger expected but corresponding header not found
|
|
2
|
-
|
|
3
|
-
The page indicated, via the `Attribution-Reporting-Info` header, that it
|
|
4
|
-
intended to register an OS trigger using the Attribution Reporting API, but the
|
|
5
|
-
corresponding `Attribution-Reporting-Register-OS-Trigger` header was missing.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Web attribution source expected but corresponding header not found
|
|
2
|
-
|
|
3
|
-
The page indicated, via the `Attribution-Reporting-Info` header, that it
|
|
4
|
-
intended to register a web source using the Attribution Reporting API, but the
|
|
5
|
-
corresponding `Attribution-Reporting-Register-Source` header was missing.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Web attribution trigger expected but corresponding header not found
|
|
2
|
-
|
|
3
|
-
The page indicated, via the `Attribution-Reporting-Info` header, that it
|
|
4
|
-
intended to register a web trigger using the Attribution Reporting API, but the
|
|
5
|
-
corresponding `Attribution-Reporting-Register-Trigger` header was missing.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# An attribution OS source registration was ignored because the request was ineligible
|
|
2
|
-
|
|
3
|
-
This page tried to register an OS source using the Attribution Reporting API,
|
|
4
|
-
but the request was ineligible to do so, so the OS source registration was
|
|
5
|
-
ignored.
|
|
6
|
-
|
|
7
|
-
A request is eligible for OS source registration if it has all of the following:
|
|
8
|
-
|
|
9
|
-
- An `Attribution-Reporting-Eligible` header whose value is a structured
|
|
10
|
-
dictionary that contains the key `navigation-source` or `event-source`
|
|
11
|
-
- An `Attribution-Reporting-Support` header whose value is a structured
|
|
12
|
-
dictionary that contains the key `os`
|
|
13
|
-
|
|
14
|
-
Otherwise, any `Attribution-Reporting-Register-OS-Source` response header will
|
|
15
|
-
be ignored.
|
|
16
|
-
|
|
17
|
-
Additionally, a single HTTP redirect chain may register only all sources or all
|
|
18
|
-
triggers, not a combination of both.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# An attribution OS trigger registration was ignored because the request was ineligible
|
|
2
|
-
|
|
3
|
-
This page tried to register an OS trigger using the Attribution Reporting API,
|
|
4
|
-
but the request was ineligible to do so, so the OS trigger registration was
|
|
5
|
-
ignored.
|
|
6
|
-
|
|
7
|
-
A request is eligible for OS trigger registration if it has all of the following:
|
|
8
|
-
|
|
9
|
-
- No `Attribution-Reporting-Eligible` header or an
|
|
10
|
-
`Attribution-Reporting-Eligible` header whose value is a structured
|
|
11
|
-
dictionary that contains the key `trigger`
|
|
12
|
-
- An `Attribution-Reporting-Support` header whose value is a structured
|
|
13
|
-
dictionary that contains the key `os`
|
|
14
|
-
|
|
15
|
-
Otherwise, any `Attribution-Reporting-Register-OS-Trigger` response header will
|
|
16
|
-
be ignored.
|
|
17
|
-
|
|
18
|
-
Additionally, a single HTTP redirect chain may register only all sources or all
|
|
19
|
-
triggers, not a combination of both.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# The Attribution Reporting API can’t be used because Permissions Policy has been disabled
|
|
2
|
-
|
|
3
|
-
This page tried to use the Attribution Reporting API but failed because the
|
|
4
|
-
`attribution-reporting` Permission Policy was explicitly disabled.
|
|
5
|
-
|
|
6
|
-
This API is currently enabled by default for top-level and cross-origin frames,
|
|
7
|
-
but it is still possible for frames to have the permission disabled by their
|
|
8
|
-
parent, e.g. with `<iframe src="…" allow="attribution-reporting 'none'">`.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Ensure that attribution responses contain either source or trigger, not both
|
|
2
|
-
|
|
3
|
-
This page tried to register a source and a trigger in the same HTTP response
|
|
4
|
-
using the Attribution Reporting API, which is prohibited.
|
|
5
|
-
|
|
6
|
-
The corresponding request was eligible to register either a source or a
|
|
7
|
-
trigger, but the response may only set either the
|
|
8
|
-
`Attribution-Reporting-Register-Source` header or the
|
|
9
|
-
`Attribution-Reporting-Register-Trigger` header, not both.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# An attribution source registration was ignored because the request was ineligible
|
|
2
|
-
|
|
3
|
-
This page tried to register a source using the Attribution Reporting API, but
|
|
4
|
-
the request was ineligible to do so, so the source registration was ignored.
|
|
5
|
-
|
|
6
|
-
A request is eligible for source registration if it has an
|
|
7
|
-
`Attribution-Reporting-Eligible` header whose value is a structured dictionary
|
|
8
|
-
that contains the key `navigation-source` or `event-source`. If the header is
|
|
9
|
-
absent or does not contain one of those keys, any
|
|
10
|
-
`Attribution-Reporting-Register-Source` response header will be ignored.
|
|
11
|
-
|
|
12
|
-
Additionally, a single HTTP redirect chain may register only all sources or all
|
|
13
|
-
triggers, not a combination of both.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# An attribution trigger registration was ignored because the request was ineligible
|
|
2
|
-
|
|
3
|
-
This page tried to register a trigger using the Attribution Reporting API, but
|
|
4
|
-
the request was ineligible to do so, so the trigger registration was ignored.
|
|
5
|
-
|
|
6
|
-
A request is eligible for trigger registration if it has an
|
|
7
|
-
`Attribution-Reporting-Eligible` header whose value is a structured dictionary
|
|
8
|
-
that contains the key `trigger`, or if the header is absent. Otherwise, any
|
|
9
|
-
`Attribution-Reporting-Register-Trigger` response header will be ignored.
|
|
10
|
-
|
|
11
|
-
Additionally, a single HTTP redirect chain may register only all sources or all
|
|
12
|
-
triggers, not a combination of both.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Ensure that attribution reporting origins are trustworthy
|
|
2
|
-
|
|
3
|
-
This page tried to register a source or trigger using the Attribution Reporting
|
|
4
|
-
API but failed because the reporting origin was not potentially trustworthy.
|
|
5
|
-
|
|
6
|
-
The reporting origin is typically the server that sets the
|
|
7
|
-
`Attribution-Reporting-Register-Source` or
|
|
8
|
-
`Attribution-Reporting-Register-Trigger` header.
|
|
9
|
-
|
|
10
|
-
The reporting origin must use HTTPS unless it is `localhost` or `127.0.0.1`.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Ensure that attribution responses contain either web or OS headers, not both
|
|
2
|
-
|
|
3
|
-
This page included web and OS Attribution Reporting API headers in the same
|
|
4
|
-
HTTP response, which is prohibited.
|
|
5
|
-
|
|
6
|
-
The response may set at most one of the following headers:
|
|
7
|
-
|
|
8
|
-
- `Attribution-Reporting-Register-OS-Source`
|
|
9
|
-
- `Attribution-Reporting-Register-OS-Trigger`
|
|
10
|
-
- `Attribution-Reporting-Register-Source`
|
|
11
|
-
- `Attribution-Reporting-Register-Trigger`
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
// Copyright 2021 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
5
|
-
|
|
6
|
-
import * as Host from '../../core/host/host.js';
|
|
7
|
-
import * as i18n from '../../core/i18n/i18n.js';
|
|
8
|
-
import type * as Protocol from '../../generated/protocol.js';
|
|
9
|
-
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
|
10
|
-
|
|
11
|
-
import {AffectedItem, AffectedResourcesView} from './AffectedResourcesView.js';
|
|
12
|
-
|
|
13
|
-
const UIStrings = {
|
|
14
|
-
/**
|
|
15
|
-
* @description Label for number of rows in the issue details table.
|
|
16
|
-
*/
|
|
17
|
-
nViolations: '{n, plural, =1 {# violation} other {# violations}}',
|
|
18
|
-
/**
|
|
19
|
-
* @description Noun, label for the column showing the associated HTML element in the issue details table.
|
|
20
|
-
*/
|
|
21
|
-
element: 'Element',
|
|
22
|
-
/**
|
|
23
|
-
* @description Noun, label for the column showing the invalid header value in the issue details table.
|
|
24
|
-
*/
|
|
25
|
-
invalidHeaderValue: 'Invalid Header Value',
|
|
26
|
-
/**
|
|
27
|
-
* @description Noun, label for the column showing the associated network request in the issue details table.
|
|
28
|
-
*/
|
|
29
|
-
request: 'Request',
|
|
30
|
-
/**
|
|
31
|
-
* @description Label for the column showing the invalid URL used in an HTML anchor element ("a link").
|
|
32
|
-
* A origin is (roughly said) the front part of a URL.
|
|
33
|
-
*/
|
|
34
|
-
untrustworthyOrigin: 'Untrustworthy origin',
|
|
35
|
-
} as const;
|
|
36
|
-
const str_ = i18n.i18n.registerUIStrings('panels/issues/AttributionReportingIssueDetailsView.ts', UIStrings);
|
|
37
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
38
|
-
|
|
39
|
-
export class AttributionReportingIssueDetailsView extends AffectedResourcesView {
|
|
40
|
-
protected override getResourceNameWithCount(count: number): string {
|
|
41
|
-
return i18nString(UIStrings.nViolations, {n: count});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
override update(): void {
|
|
45
|
-
this.clear();
|
|
46
|
-
const issues = this.issue.getAttributionReportingIssues();
|
|
47
|
-
const issue = issues.values().next();
|
|
48
|
-
if (issue.done) {
|
|
49
|
-
this.updateAffectedResourceCount(0);
|
|
50
|
-
} else {
|
|
51
|
-
this.#appendDetails(issue.value.code(), issues);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
#appendDetails(
|
|
56
|
-
issueCode: IssuesManager.AttributionReportingIssue.IssueCode,
|
|
57
|
-
issues: Iterable<IssuesManager.AttributionReportingIssue.AttributionReportingIssue>): void {
|
|
58
|
-
const header = document.createElement('tr');
|
|
59
|
-
switch (issueCode) {
|
|
60
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_SOURCE_HEADER:
|
|
61
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_TRIGGER_HEADER:
|
|
62
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_OS_SOURCE_HEADER:
|
|
63
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_OS_TRIGGER_HEADER:
|
|
64
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.OS_SOURCE_IGNORED:
|
|
65
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.OS_TRIGGER_IGNORED:
|
|
66
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.SOURCE_IGNORED:
|
|
67
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.TRIGGER_IGNORED:
|
|
68
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_INFO_HEADER:
|
|
69
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SET:
|
|
70
|
-
this.appendColumnTitle(header, i18nString(UIStrings.request));
|
|
71
|
-
this.appendColumnTitle(header, i18nString(UIStrings.invalidHeaderValue));
|
|
72
|
-
break;
|
|
73
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INSECURE_CONTEXT:
|
|
74
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.UNTRUSTWORTHY_REPORTING_ORIGIN:
|
|
75
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
|
76
|
-
this.appendColumnTitle(header, i18nString(UIStrings.request));
|
|
77
|
-
this.appendColumnTitle(header, i18nString(UIStrings.untrustworthyOrigin));
|
|
78
|
-
break;
|
|
79
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.PERMISSION_POLICY_DISABLED:
|
|
80
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
|
81
|
-
this.appendColumnTitle(header, i18nString(UIStrings.request));
|
|
82
|
-
break;
|
|
83
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.SOURCE_AND_TRIGGER_HEADERS:
|
|
84
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.WEB_AND_OS_HEADERS:
|
|
85
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_WEB_OR_OS_SUPPORT:
|
|
86
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_SOURCE_HEADER:
|
|
87
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_TRIGGER_HEADER:
|
|
88
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_OS_SOURCE_HEADER:
|
|
89
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_OS_TRIGGER_HEADER:
|
|
90
|
-
this.appendColumnTitle(header, i18nString(UIStrings.request));
|
|
91
|
-
break;
|
|
92
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATION:
|
|
93
|
-
this.appendColumnTitle(header, i18nString(UIStrings.element));
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
this.affectedResources.appendChild(header);
|
|
98
|
-
let count = 0;
|
|
99
|
-
for (const issue of issues) {
|
|
100
|
-
count++;
|
|
101
|
-
void this.#appendDetail(issueCode, issue);
|
|
102
|
-
}
|
|
103
|
-
this.updateAffectedResourceCount(count);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async #appendDetail(
|
|
107
|
-
issueCode: IssuesManager.AttributionReportingIssue.IssueCode,
|
|
108
|
-
issue: IssuesManager.AttributionReportingIssue.AttributionReportingIssue): Promise<void> {
|
|
109
|
-
const element = document.createElement('tr');
|
|
110
|
-
element.classList.add('affected-resource-directive');
|
|
111
|
-
|
|
112
|
-
const details = issue.details();
|
|
113
|
-
|
|
114
|
-
switch (issueCode) {
|
|
115
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_SOURCE_HEADER:
|
|
116
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_TRIGGER_HEADER:
|
|
117
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_OS_SOURCE_HEADER:
|
|
118
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_REGISTER_OS_TRIGGER_HEADER:
|
|
119
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.OS_SOURCE_IGNORED:
|
|
120
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.OS_TRIGGER_IGNORED:
|
|
121
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.SOURCE_IGNORED:
|
|
122
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.TRIGGER_IGNORED:
|
|
123
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INVALID_INFO_HEADER:
|
|
124
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SET:
|
|
125
|
-
this.#appendRequestOrEmptyCell(element, details.request);
|
|
126
|
-
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
|
127
|
-
break;
|
|
128
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.INSECURE_CONTEXT:
|
|
129
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.UNTRUSTWORTHY_REPORTING_ORIGIN:
|
|
130
|
-
await this.#appendElementOrEmptyCell(element, issue);
|
|
131
|
-
this.#appendRequestOrEmptyCell(element, details.request);
|
|
132
|
-
this.appendIssueDetailCell(element, details.invalidParameter || '');
|
|
133
|
-
break;
|
|
134
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.PERMISSION_POLICY_DISABLED:
|
|
135
|
-
await this.#appendElementOrEmptyCell(element, issue);
|
|
136
|
-
this.#appendRequestOrEmptyCell(element, details.request);
|
|
137
|
-
break;
|
|
138
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.SOURCE_AND_TRIGGER_HEADERS:
|
|
139
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.WEB_AND_OS_HEADERS:
|
|
140
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_WEB_OR_OS_SUPPORT:
|
|
141
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_SOURCE_HEADER:
|
|
142
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_TRIGGER_HEADER:
|
|
143
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_OS_SOURCE_HEADER:
|
|
144
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NO_REGISTER_OS_TRIGGER_HEADER:
|
|
145
|
-
this.#appendRequestOrEmptyCell(element, details.request);
|
|
146
|
-
break;
|
|
147
|
-
case IssuesManager.AttributionReportingIssue.IssueCode.NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATION:
|
|
148
|
-
await this.#appendElementOrEmptyCell(element, issue);
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
this.affectedResources.appendChild(element);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
async #appendElementOrEmptyCell(
|
|
156
|
-
parent: HTMLElement, issue: IssuesManager.AttributionReportingIssue.AttributionReportingIssue): Promise<void> {
|
|
157
|
-
const details = issue.details();
|
|
158
|
-
if (details.violatingNodeId !== undefined) {
|
|
159
|
-
const target = issue.model()?.target() || null;
|
|
160
|
-
parent.appendChild(await this.createElementCell(
|
|
161
|
-
{backendNodeId: details.violatingNodeId, target, nodeName: 'Attribution source element'},
|
|
162
|
-
issue.getCategory()));
|
|
163
|
-
} else {
|
|
164
|
-
this.appendIssueDetailCell(parent, '');
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
#appendRequestOrEmptyCell(parent: HTMLElement, request?: Protocol.Audits.AffectedRequest): void {
|
|
169
|
-
if (!request) {
|
|
170
|
-
this.appendIssueDetailCell(parent, '');
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const opts = {
|
|
175
|
-
additionalOnClickAction(): void {
|
|
176
|
-
Host.userMetrics.issuesPanelResourceOpened(
|
|
177
|
-
IssuesManager.Issue.IssueCategory.ATTRIBUTION_REPORTING, AffectedItem.REQUEST);
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
parent.appendChild(this.createRequestCell(request, opts));
|
|
181
|
-
}
|
|
182
|
-
}
|