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
|
@@ -21,7 +21,6 @@ export interface SerializedConversation {
|
|
|
21
21
|
id: string;
|
|
22
22
|
type: ConversationType;
|
|
23
23
|
history: SerializedResponseData[];
|
|
24
|
-
isExternal: boolean;
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
export interface SerializedImage {
|
|
@@ -38,6 +37,7 @@ let instance: AiHistoryStorage|null = null;
|
|
|
38
37
|
|
|
39
38
|
const DEFAULT_MAX_STORAGE_SIZE = 50 * 1024 * 1024;
|
|
40
39
|
export const MAX_RECENT_PROMPTS_COUNT = 20;
|
|
40
|
+
export const MAX_CONVERSATIONS_COUNT = 50;
|
|
41
41
|
export const RECENT_PROMPTS_SIZE_LIMIT = 100 * 1024;
|
|
42
42
|
|
|
43
43
|
export const enum Events {
|
|
@@ -105,6 +105,15 @@ export class AiHistoryStorage extends Common.ObjectWrapper.ObjectWrapper<EventTy
|
|
|
105
105
|
return structuredClone(this.#recentPromptsSetting.get());
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
#getImageIdsFromHistory(history: SerializedResponseData[]): string[] {
|
|
109
|
+
return history.flatMap(item => {
|
|
110
|
+
if (item.type === ResponseType.USER_QUERY && item.imageId) {
|
|
111
|
+
return [item.imageId];
|
|
112
|
+
}
|
|
113
|
+
return [];
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
108
117
|
async upsertHistoryEntry(agentEntry: SerializedConversation): Promise<void> {
|
|
109
118
|
const release = await this.#mutex.acquire();
|
|
110
119
|
try {
|
|
@@ -115,6 +124,24 @@ export class AiHistoryStorage extends Common.ObjectWrapper.ObjectWrapper<EventTy
|
|
|
115
124
|
} else {
|
|
116
125
|
history.push(agentEntry);
|
|
117
126
|
}
|
|
127
|
+
|
|
128
|
+
// Using a while loop to ensure that if the history size exceeds the maximum limit
|
|
129
|
+
// (e.g. if the limit was reduced or settings contain legacy entries), we prune
|
|
130
|
+
// all extra entries at once. We also collect and batch image deletion to avoid
|
|
131
|
+
// multiple settings writes.
|
|
132
|
+
const imageIdsForDeletion: string[] = [];
|
|
133
|
+
while (history.length > MAX_CONVERSATIONS_COUNT) {
|
|
134
|
+
const evicted = history.shift();
|
|
135
|
+
if (evicted) {
|
|
136
|
+
imageIdsForDeletion.push(...this.#getImageIdsFromHistory(evicted.history));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (imageIdsForDeletion.length > 0) {
|
|
141
|
+
const images = structuredClone(await this.#imageHistorySettings.forceGet());
|
|
142
|
+
this.#imageHistorySettings.set(images.filter(entry => !imageIdsForDeletion.includes(entry.id)));
|
|
143
|
+
}
|
|
144
|
+
|
|
118
145
|
this.#historySetting.set(history);
|
|
119
146
|
} finally {
|
|
120
147
|
release();
|
|
@@ -157,22 +184,18 @@ export class AiHistoryStorage extends Common.ObjectWrapper.ObjectWrapper<EventTy
|
|
|
157
184
|
const release = await this.#mutex.acquire();
|
|
158
185
|
try {
|
|
159
186
|
const history = structuredClone(await this.#historySetting.forceGet());
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
return undefined;
|
|
167
|
-
})
|
|
168
|
-
.filter(item => !!item);
|
|
187
|
+
const conversation = history.find(entry => entry.id === id);
|
|
188
|
+
if (!conversation) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const imageIdsForDeletion = this.#getImageIdsFromHistory(conversation.history);
|
|
169
192
|
this.#historySetting.set(
|
|
170
193
|
history.filter(entry => entry.id !== id),
|
|
171
194
|
);
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
195
|
+
if (imageIdsForDeletion.length > 0) {
|
|
196
|
+
const images = structuredClone(await this.#imageHistorySettings.forceGet());
|
|
197
|
+
this.#imageHistorySettings.set(images.filter(entry => !imageIdsForDeletion.includes(entry.id)));
|
|
198
|
+
}
|
|
176
199
|
} finally {
|
|
177
200
|
release();
|
|
178
201
|
}
|
|
@@ -4,56 +4,52 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as Host from '../../core/host/host.js';
|
|
7
|
-
import * as i18n from '../../core/i18n/i18n.js';
|
|
8
7
|
import type * as Platform from '../../core/platform/platform.js';
|
|
9
8
|
import * as Root from '../../core/root/root.js';
|
|
10
9
|
|
|
11
10
|
import {debugLog} from './debug.js';
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Preconditions determined entirely on the DevTools frontend side (e.g. Incognito
|
|
14
|
+
* mode or age restrictions) that prevent AI assistance features from running.
|
|
15
|
+
* These are evaluated independently of AIDA service-level availability.
|
|
16
|
+
*/
|
|
17
|
+
export const enum FrontendAccessPrecondition {
|
|
18
|
+
IS_OFF_THE_RECORD = 'is-off-the-record',
|
|
19
|
+
AGE_RESTRICTED = 'age-restricted',
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The unified set of preconditions that can disable AI assistance.
|
|
24
|
+
* This is a union of low-level AIDA service availability preconditions
|
|
25
|
+
* and DevTools frontend-specific preconditions.
|
|
26
|
+
*/
|
|
27
|
+
export type AccessPrecondition =
|
|
28
|
+
Exclude<Host.AidaClient.AidaAccessPreconditions, Host.AidaClient.AidaAccessPreconditions.AVAILABLE>|
|
|
29
|
+
FrontendAccessPrecondition;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns the list of active preconditions currently preventing AI assistance from being enabled.
|
|
33
|
+
* Checks local frontend constraints (e.g. incognito, age check) and combines them with the
|
|
34
|
+
* provided AIDA service availability status.
|
|
35
|
+
*/
|
|
36
|
+
export function getDisabledReasons(aidaAvailability: Host.AidaClient.AidaAccessPreconditions): AccessPrecondition[] {
|
|
37
|
+
const reasons: AccessPrecondition[] = [];
|
|
37
38
|
if (Root.Runtime.hostConfig.isOffTheRecord) {
|
|
38
|
-
reasons.push(
|
|
39
|
+
reasons.push(FrontendAccessPrecondition.IS_OFF_THE_RECORD);
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (Root.Runtime.hostConfig?.aidaAvailability?.blockedByAge === true) {
|
|
51
|
-
reasons.push(i18nString(UIStrings.ageRestricted));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
41
|
+
|
|
42
|
+
if (aidaAvailability !== Host.AidaClient.AidaAccessPreconditions.AVAILABLE) {
|
|
43
|
+
reasons.push(aidaAvailability);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// No age check if there is no logged in user. Age check would always fail in that case.
|
|
47
|
+
if ((aidaAvailability === Host.AidaClient.AidaAccessPreconditions.AVAILABLE ||
|
|
48
|
+
aidaAvailability === Host.AidaClient.AidaAccessPreconditions.NO_INTERNET) &&
|
|
49
|
+
Root.Runtime.hostConfig?.aidaAvailability?.blockedByAge === true) {
|
|
50
|
+
reasons.push(FrontendAccessPrecondition.AGE_RESTRICTED);
|
|
54
51
|
}
|
|
55
|
-
|
|
56
|
-
reasons.push(...Common.Settings.Settings.instance().moduleSetting('ai-assistance-enabled').disabledReasons());
|
|
52
|
+
|
|
57
53
|
return reasons;
|
|
58
54
|
}
|
|
59
55
|
|
|
@@ -36,7 +36,8 @@ export const enum ErrorType {
|
|
|
36
36
|
ABORT = 'abort',
|
|
37
37
|
MAX_STEPS = 'max-steps',
|
|
38
38
|
BLOCK = 'block',
|
|
39
|
-
CROSS_ORIGIN = 'cross-origin'
|
|
39
|
+
CROSS_ORIGIN = 'cross-origin',
|
|
40
|
+
QUOTA = 'quota',
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
export const enum MultimodalInputType {
|
|
@@ -795,6 +796,9 @@ export abstract class AiAgent<T> {
|
|
|
795
796
|
error = ErrorType.ABORT;
|
|
796
797
|
} else if (err instanceof Host.AidaClient.AidaBlockError) {
|
|
797
798
|
error = ErrorType.BLOCK;
|
|
799
|
+
} else if (err instanceof Host.AidaClient.AidaQuotaError ||
|
|
800
|
+
(err instanceof Error && err.message.toLowerCase().includes('quota'))) {
|
|
801
|
+
error = ErrorType.QUOTA;
|
|
798
802
|
}
|
|
799
803
|
yield this.#createErrorResponse(error);
|
|
800
804
|
|
|
@@ -19,6 +19,7 @@ import {DOMNodeContext} from '../contexts/DOMNodeContext.js';
|
|
|
19
19
|
import {FileContext} from '../contexts/FileContext.js';
|
|
20
20
|
import {PerformanceTraceContext} from '../contexts/PerformanceTraceContext.js';
|
|
21
21
|
import {getRequestContextOrigin, RequestContext} from '../contexts/RequestContext.js';
|
|
22
|
+
import {formatBytesToKb, seconds} from '../data_formatters/UnitFormatters.js';
|
|
22
23
|
import {debugLog} from '../debug.js';
|
|
23
24
|
import {StorageItem} from '../StorageItem.js';
|
|
24
25
|
|
|
@@ -164,8 +165,8 @@ export class ContextSelectionAgent extends AiAgent<never> {
|
|
|
164
165
|
id: request.requestId(),
|
|
165
166
|
url: request.url(),
|
|
166
167
|
statusCode: request.statusCode,
|
|
167
|
-
duration:
|
|
168
|
-
transferSize:
|
|
168
|
+
duration: seconds(request.duration),
|
|
169
|
+
transferSize: formatBytesToKb(request.transferSize),
|
|
169
170
|
});
|
|
170
171
|
requestsToShow.push(request);
|
|
171
172
|
}
|
|
@@ -1225,7 +1225,8 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
|
|
|
1225
1225
|
if (script?.content !== undefined) {
|
|
1226
1226
|
content = script.content;
|
|
1227
1227
|
} else if (isFresh || isTraceApp) {
|
|
1228
|
-
const resource =
|
|
1228
|
+
const resource =
|
|
1229
|
+
SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(SDK.TargetManager.TargetManager.instance(), url);
|
|
1229
1230
|
if (!resource) {
|
|
1230
1231
|
return {error: 'Resource not found'};
|
|
1231
1232
|
}
|
|
@@ -7,6 +7,7 @@ import * as Host from '../../../core/host/host.js';
|
|
|
7
7
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
8
8
|
import * as Root from '../../../core/root/root.js';
|
|
9
9
|
import * as SDK from '../../../core/sdk/sdk.js';
|
|
10
|
+
import {bytes} from '../data_formatters/UnitFormatters.js';
|
|
10
11
|
import {CookieItem, DOMStorageItem, type StorageItem} from '../StorageItem.js';
|
|
11
12
|
|
|
12
13
|
import {
|
|
@@ -204,7 +205,8 @@ export class StorageAgent extends AiAgent<StorageItem> {
|
|
|
204
205
|
}
|
|
205
206
|
|
|
206
207
|
const origins = new Set<string>();
|
|
207
|
-
for (const frame of SDK.ResourceTreeModel.ResourceTreeModel.frames(
|
|
208
|
+
for (const frame of SDK.ResourceTreeModel.ResourceTreeModel.frames(
|
|
209
|
+
SDK.TargetManager.TargetManager.instance())) {
|
|
208
210
|
if (!isSamePageOrigin(frame.resourceTreeModel().target().outermostTarget(), this.context)) {
|
|
209
211
|
continue;
|
|
210
212
|
}
|
|
@@ -565,13 +567,13 @@ export class StorageAgent extends AiAgent<StorageItem> {
|
|
|
565
567
|
.sort((a, b) => b.usage - a.usage)
|
|
566
568
|
.map(entry => ({
|
|
567
569
|
storageType: entry.storageType as string,
|
|
568
|
-
usage:
|
|
570
|
+
usage: bytes(entry.usage),
|
|
569
571
|
}));
|
|
570
572
|
|
|
571
573
|
return {
|
|
572
574
|
result: {
|
|
573
|
-
totalUsage:
|
|
574
|
-
totalQuota:
|
|
575
|
+
totalUsage: bytes(response.usage),
|
|
576
|
+
totalQuota: bytes(response.quota),
|
|
575
577
|
usageBreakdown,
|
|
576
578
|
},
|
|
577
579
|
};
|
|
@@ -657,7 +659,7 @@ export async function getCookiesForDomain(
|
|
|
657
659
|
|
|
658
660
|
export function findFrameForOrigin(
|
|
659
661
|
context: ConversationContext<StorageItem>|undefined, origin: string): SDK.ResourceTreeModel.ResourceTreeFrame|null {
|
|
660
|
-
for (const frame of SDK.ResourceTreeModel.ResourceTreeModel.frames()) {
|
|
662
|
+
for (const frame of SDK.ResourceTreeModel.ResourceTreeModel.frames(SDK.TargetManager.TargetManager.instance())) {
|
|
661
663
|
if (frame.securityOrigin === origin) {
|
|
662
664
|
const target = frame.resourceTreeModel().target();
|
|
663
665
|
if (isSamePageOrigin(target.outermostTarget(), context)) {
|