chrome-devtools-frontend 1.0.1690531 → 1.0.1695017
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/devtools-model-management/SKILL.md +3 -3
- package/.agents/skills/foundation-test-migration/SKILL.md +2 -2
- package/.agents/skills/merging-devtools-module/SKILL.md +5 -5
- package/.gitmodules +0 -4
- package/AUTHORS +3 -0
- package/config/typescript/tsconfig.base.json +1 -0
- package/docs/get_the_code.md +4 -9
- package/front_end/Images/src/comment-mode-cursor.svg +23 -0
- package/front_end/Tests.js +1 -1
- package/front_end/application_tokens.css +5 -0
- package/front_end/core/common/ColorConverter.ts +3 -3
- package/front_end/core/host/UserMetrics.ts +27 -0
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +0 -46
- package/front_end/core/protocol_client/InspectorBackend.ts +6 -6
- package/front_end/core/sdk/CSSLocation.ts +32 -0
- package/front_end/core/sdk/CSSModel.ts +2 -22
- package/front_end/core/sdk/CSSQuery.ts +2 -1
- package/front_end/core/sdk/CSSRule.ts +29 -0
- package/front_end/core/sdk/DebuggerModel.ts +5 -1
- package/front_end/core/sdk/NetworkManager.ts +2 -0
- package/front_end/core/sdk/NetworkRequest.ts +14 -1
- package/front_end/core/sdk/NetworkRequestAccess.ts +41 -22
- package/front_end/core/sdk/ResourceTreeModel.ts +72 -23
- package/front_end/core/sdk/SecurityOrigin.ts +89 -29
- package/front_end/core/sdk/Target.ts +18 -0
- package/front_end/core/sdk/sdk.ts +2 -0
- package/front_end/entrypoints/main/MainImpl.ts +8 -1
- package/front_end/foundation/Universe.ts +14 -11
- package/front_end/generated/Deprecation.ts +8 -0
- package/front_end/generated/InspectorBackendCommands.ts +9 -8
- package/front_end/generated/SupportedCSSProperties.ts +13 -3
- package/front_end/generated/protocol.ts +24 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +42 -9
- package/front_end/models/ai_assistance/AiConversation.ts +6 -6
- package/front_end/models/ai_assistance/README.md +5 -3
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +1 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +28 -34
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +13 -17
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +5 -3
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +16 -10
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +3 -4
- package/front_end/models/ai_assistance/ai_assistance.ts +0 -2
- package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +11 -2
- package/front_end/models/ai_assistance/contexts/DOMNodeContext.ts +17 -5
- package/front_end/models/ai_assistance/contexts/FileContext.ts +13 -6
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +52 -25
- package/front_end/models/ai_assistance/contexts/RequestContext.ts +18 -34
- package/front_end/models/ai_assistance/contexts/StorageContext.ts +14 -3
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +2 -5
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +135 -58
- package/front_end/models/ai_assistance/tools/CookieUtils.ts +25 -35
- package/front_end/models/ai_assistance/tools/DOMStorageUtils.ts +6 -3
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +9 -2
- package/front_end/models/ai_assistance/tools/GetCookieValues.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +3 -2
- package/front_end/models/ai_assistance/tools/GetFunctionCode.ts +3 -5
- package/front_end/models/ai_assistance/tools/GetInsightDetails.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +8 -11
- package/front_end/models/ai_assistance/tools/GetResourceContent.ts +2 -4
- package/front_end/models/ai_assistance/tools/GetSourceContent.ts +6 -13
- package/front_end/models/ai_assistance/tools/GetStorageBreakdown.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetStorageValues.ts +9 -9
- package/front_end/models/ai_assistance/tools/GetStyles.ts +3 -2
- package/front_end/models/ai_assistance/tools/ListCookies.ts +1 -1
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +6 -14
- package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +10 -15
- package/front_end/models/ai_assistance/tools/ListSources.ts +5 -7
- package/front_end/models/ai_assistance/tools/ListStorageKeys.ts +9 -9
- package/front_end/models/ai_assistance/tools/README.md +4 -2
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +3 -2
- package/front_end/models/ai_assistance/tools/Tool.ts +27 -3
- package/front_end/models/comment_manager/CD4ABridge.ts +128 -0
- package/front_end/models/comment_manager/CommentManager.ts +50 -8
- package/front_end/models/comment_manager/comment_manager.ts +2 -0
- package/front_end/models/emulation/DeviceModeModel.ts +37 -47
- package/front_end/models/javascript_metadata/NativeFunctions.ts +9 -1
- package/front_end/models/live-metrics/web-vitals-injected/README.md +1 -1
- package/front_end/models/source_map_scopes/NamesResolver.ts +9 -7
- package/front_end/models/trace/ModelImpl.ts +2 -0
- package/front_end/models/trace/Processor.ts +6 -4
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +3 -3
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -1
- package/front_end/models/trace/helpers/SyntheticEvents.ts +23 -1
- package/front_end/models/trace/types/Configuration.ts +7 -0
- package/front_end/models/trace/types/TraceEvents.ts +20 -4
- package/front_end/panels/accessibility/ARIAAttributesView.ts +3 -0
- package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingListView.ts +177 -0
- package/front_end/panels/accessibility/accessibility.ts +2 -0
- package/front_end/panels/accessibility/accessibilityAnnouncementRecordingListView.css +33 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -15
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +6 -35
- package/front_end/panels/ai_assistance/components/DisabledWidget.ts +4 -3
- package/front_end/panels/animation/AnimationTimeline.ts +1 -0
- package/front_end/panels/application/CrashReportContextView.ts +0 -1
- package/front_end/panels/application/FrameDetailsView.ts +5 -4
- package/front_end/panels/application/IndexedDBViews.ts +4 -4
- package/front_end/panels/application/indexedDBViews.css +0 -14
- package/front_end/panels/console/ConsoleContextSelector.ts +12 -5
- package/front_end/panels/console/ConsoleViewMessage.ts +12 -8
- package/front_end/panels/coverage/coverageView.css +8 -8
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +4 -5
- package/front_end/panels/developer_resources/developerResourcesView.css +3 -3
- package/front_end/panels/elements/ElementsTreeElement.ts +39 -12
- package/front_end/panels/elements/ElementsTreeOutline.ts +183 -107
- package/front_end/panels/elements/ShortcutTreeElement.ts +4 -0
- package/front_end/panels/elements/StylePropertiesSection.ts +1 -34
- package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +5 -4
- package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -0
- package/front_end/panels/elements/components/computedStyleProperty.css +5 -5
- package/front_end/panels/elements/components/computedStyleTrace.css +5 -5
- package/front_end/panels/elements/components/cssHintDetailsView.css +1 -1
- package/front_end/panels/elements/components/cssPropertyDocsView.css +3 -3
- package/front_end/panels/elements/components/cssVariableValueView.css +4 -4
- package/front_end/panels/elements/components/elementsBreadcrumbs.css +3 -3
- package/front_end/panels/elements/components/elementsTreeExpandButton.css +5 -5
- package/front_end/panels/elements/components/queryContainer.css +2 -2
- package/front_end/panels/elements/elementsTreeOutline.css +20 -4
- package/front_end/panels/event_listeners/eventListenersView.css +1 -1
- package/front_end/panels/issues/AffectedElementsView.ts +3 -0
- package/front_end/panels/issues/issues.ts +2 -0
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +12 -10
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +1 -0
- package/front_end/panels/layer_viewer/Layers3DView.ts +13 -11
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspectorUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryHighlightChipList.css +11 -11
- package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
- package/front_end/panels/media/TickingFlameChart.ts +3 -2
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +2 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +2 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +5 -2
- package/front_end/panels/network/RequestHeadersView.ts +46 -10
- package/front_end/panels/network/components/RequestHeadersView.css +12 -0
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +3 -3
- package/front_end/panels/recorder/RecordingListView.ts +0 -6
- package/front_end/panels/recorder/RecordingView.ts +0 -6
- package/front_end/panels/recorder/controlButton.css +10 -10
- package/front_end/panels/recorder/startView.css +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +4 -2
- package/front_end/panels/search/SearchView.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +46 -35
- package/front_end/panels/timeline/TimelineFlameChartView.ts +0 -32
- package/front_end/panels/timeline/TimelinePanel.ts +0 -17
- package/front_end/panels/timeline/components/cwvMetrics.css +2 -2
- package/front_end/panels/timeline/components/insights/checklist.css +1 -1
- package/front_end/panels/timeline/components/insights/table.css +3 -3
- package/front_end/panels/timeline/overlays/components/entriesLinkOverlay.css +4 -4
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +4 -4
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +2 -2
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +4 -4
- package/front_end/panels/timeline/timelinePanel.css +0 -74
- package/front_end/panels/web_audio/webAudio.css +5 -5
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/csp_evaluator/package/tsconfig.json +1 -0
- package/front_end/third_party/diff/DiffWrapper.ts +1 -8
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +183 -4
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +708 -122
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +85 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js +84 -11
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.d.ts +75 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.js +102 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.d.ts +31 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.js +138 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.d.ts +31 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.js +131 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.d.ts +4 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts +42 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.js +265 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +24 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.d.ts +23 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js +49 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +183 -4
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +143 -11
- package/front_end/third_party/puppeteer/package/src/api/ScreenRecording.ts +145 -0
- package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/bidi/ScreenRecording.ts +106 -0
- package/front_end/third_party/puppeteer/package/src/bidi/bidi.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +41 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/cdp/ScreenRecording.ts +101 -0
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +17 -9
- package/front_end/third_party/puppeteer/package/src/common/BrowserWebSocketTransport.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +46 -0
- package/front_end/third_party/puppeteer/package/src/common/Device.ts +287 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +30 -1
- package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +73 -2
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +194 -0
- package/front_end/tsconfig.json +1 -2
- package/front_end/ui/comments/CommentAnchorResolver.ts +8 -3
- package/front_end/ui/comments/CommentOverlayManager.ts +53 -12
- package/front_end/ui/comments/CommentsOverlayWidget.ts +3 -3
- package/front_end/ui/comments/CommentsStatusBarPill.ts +96 -0
- package/front_end/ui/comments/comments-meta.ts +21 -0
- package/front_end/ui/comments/comments.ts +2 -0
- package/front_end/ui/comments/commentsOverlay.css +22 -3
- package/front_end/ui/components/markdown_view/MarkdownView.ts +31 -1
- package/front_end/ui/kit/icons/Icon.ts +0 -1
- package/front_end/ui/kit/link/Link.ts +8 -1
- package/front_end/ui/legacy/InspectorView.ts +17 -1
- package/front_end/ui/legacy/SplitWidget.ts +16 -2
- package/front_end/ui/legacy/StatusBar.ts +78 -0
- package/front_end/ui/legacy/Toolbar.ts +4 -0
- package/front_end/ui/legacy/Treeoutline.ts +78 -11
- package/front_end/ui/legacy/UIUtils.ts +2 -1
- package/front_end/ui/legacy/ViewRegistration.ts +1 -0
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +23 -23
- package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.docs.ts +83 -0
- package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.ts +600 -0
- package/front_end/ui/legacy/components/inline_editor/animationNameSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/colorMixSwatch.css +4 -4
- package/front_end/ui/legacy/components/inline_editor/cssAngleSwatch.css +3 -3
- package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +2 -0
- package/front_end/ui/legacy/components/inline_editor/linkSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/positionAreaEditor.css +154 -0
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +113 -51
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +10 -7
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +16 -97
- package/front_end/ui/legacy/components/object_ui/customPreviewComponent.css +7 -3
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -66
- package/front_end/ui/legacy/components/perf_ui/perf_ui.ts +0 -2
- package/front_end/ui/legacy/inspectorCommon.css +30 -6
- package/front_end/ui/legacy/legacy.ts +2 -0
- package/front_end/ui/legacy/statusBar.css +18 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- package/inspector_overlay/main.ts +8 -8
- package/mcp/mcp.ts +5 -0
- package/package.json +2 -9
- package/front_end/Images/generate-css-vars.js +0 -52
- package/front_end/Images/rollup.config.mjs +0 -36
- package/front_end/models/ai_assistance/AiOrigins.ts +0 -107
- package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +0 -20
- package/front_end/panels/recorder/injected/rollup.config.mjs +0 -20
- package/front_end/panels/timeline/EasterEgg.d.ts +0 -6
- package/front_end/panels/timeline/easter-egg-tsconfig.json +0 -8
- package/front_end/panels/timeline/enable-easter-egg.js +0 -20
- package/front_end/third_party/puppeteer-replay/puppeteer-replay-tsconfig.json +0 -8
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +0 -606
- package/inspector_overlay/loadCSS.rollup.js +0 -29
|
@@ -91,9 +91,9 @@ inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionar
|
|
|
91
91
|
inspectorBackend.registerEnum("Audits.ConnectionAllowlistError", {InvalidHeader: "InvalidHeader", MoreThanOneList: "MoreThanOneList", ItemNotInnerList: "ItemNotInnerList", InvalidAllowlistItemType: "InvalidAllowlistItemType", ReportingEndpointNotToken: "ReportingEndpointNotToken", InvalidUrlPattern: "InvalidUrlPattern", IFrameAttributeLoosensEmbeddingRequirement: "IFrameAttributeLoosensEmbeddingRequirement", InvalidAllowConnectionAllowlistFrom: "InvalidAllowConnectionAllowlistFrom", EmbeddingRequirementNotSatisfied: "EmbeddingRequirementNotSatisfied"});
|
|
92
92
|
inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameError: "FormLabelForNameError", FormDuplicateIdForInputError: "FormDuplicateIdForInputError", FormInputWithNoLabelError: "FormInputWithNoLabelError", FormAutocompleteAttributeEmptyError: "FormAutocompleteAttributeEmptyError", FormEmptyIdAndNameAttributesForInputError: "FormEmptyIdAndNameAttributesForInputError", FormAriaLabelledByToNonExistingIdError: "FormAriaLabelledByToNonExistingIdError", FormInputAssignedAutocompleteValueToIdOrNameAttributeError: "FormInputAssignedAutocompleteValueToIdOrNameAttributeError", FormLabelHasNeitherForNorNestedInputError: "FormLabelHasNeitherForNorNestedInputError", FormLabelForMatchesNonExistingIdError: "FormLabelForMatchesNonExistingIdError", FormInputHasWrongButWellIntendedAutocompleteValueError: "FormInputHasWrongButWellIntendedAutocompleteValueError", ResponseWasBlockedByORB: "ResponseWasBlockedByORB", NavigationEntryMarkedSkippable: "NavigationEntryMarkedSkippable", BackUINavigationWouldSkipAd: "BackUINavigationWouldSkipAd", AutofillAndManualTextPolicyControlledFeaturesInfo: "AutofillAndManualTextPolicyControlledFeaturesInfo", AutofillPolicyControlledFeatureInfo: "AutofillPolicyControlledFeatureInfo", ManualTextPolicyControlledFeatureInfo: "ManualTextPolicyControlledFeatureInfo", FormModelContextParameterMissingTitleAndDescription: "FormModelContextParameterMissingTitleAndDescription", FormModelContextMissingToolName: "FormModelContextMissingToolName", FormModelContextMissingToolDescription: "FormModelContextMissingToolDescription", FormModelContextRequiredParameterMissingName: "FormModelContextRequiredParameterMissingName", FormModelContextParameterMissingName: "FormModelContextParameterMissingName"});
|
|
93
93
|
inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
|
|
94
|
-
inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownBlockedByConnectionAllowlist: "WellKnownBlockedByConnectionAllowlist", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigBlockedByConnectionAllowlist: "ConfigBlockedByConnectionAllowlist", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsBlockedByConnectionAllowlist: "AccountsBlockedByConnectionAllowlist", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenBlockedByConnectionAllowlist: "IdTokenBlockedByConnectionAllowlist", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
|
|
94
|
+
inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownBlockedByConnectionAllowlist: "WellKnownBlockedByConnectionAllowlist", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigBlockedByConnectionAllowlist: "ConfigBlockedByConnectionAllowlist", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsBlockedByConnectionAllowlist: "AccountsBlockedByConnectionAllowlist", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenBlockedByConnectionAllowlist: "IdTokenBlockedByConnectionAllowlist", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform", PopupBlockedByConnectionAllowlist: "PopupBlockedByConnectionAllowlist"});
|
|
95
95
|
inspectorBackend.registerEnum("Audits.FederatedAuthUserInfoRequestIssueReason", {NotSameOrigin: "NotSameOrigin", NotIframe: "NotIframe", NotPotentiallyTrustworthy: "NotPotentiallyTrustworthy", NoAPIPermission: "NoApiPermission", NotSignedInWithIdp: "NotSignedInWithIdp", NoAccountSharingPermission: "NoAccountSharingPermission", InvalidConfigOrWellKnown: "InvalidConfigOrWellKnown", InvalidAccountsResponse: "InvalidAccountsResponse", NoReturningUserFromFetchedAccounts: "NoReturningUserFromFetchedAccounts"});
|
|
96
|
-
inspectorBackend.registerEnum("Audits.EmailVerificationRequestIssueReason", {InvalidEmail: "InvalidEmail", DnsFetchFailed: "DnsFetchFailed", DnsInvalidRecord: "DnsInvalidRecord", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", WellKnownMissingIssuanceEndpoint: "WellKnownMissingIssuanceEndpoint", WellKnownIssuanceEndpointCrossOrigin: "WellKnownIssuanceEndpointCrossOrigin", WellKnownUnsupportedSigningAlgorithm: "WellKnownUnsupportedSigningAlgorithm", TokenHttpNotFound: "TokenHttpNotFound", TokenNoResponse: "TokenNoResponse", TokenInvalidResponse: "TokenInvalidResponse", TokenInvalidContentType: "TokenInvalidContentType", TokenMalformedSdJwt: "TokenMalformedSdJwt", TokenInvalidSdJwt: "TokenInvalidSdJwt", KeyBindingSigningFailed: "KeyBindingSigningFailed", RpOriginIsOpaque: "RpOriginIsOpaque", WellKnownMissingAccountsEndpoint: "WellKnownMissingAccountsEndpoint", UserLoggedOut: "UserLoggedOut", WellKnownAccountsEndpointCrossOrigin: "WellKnownAccountsEndpointCrossOrigin", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsInvalidContentType: "AccountsInvalidContentType", AccountsEmptyList: "AccountsEmptyList", EmailVerificationWellKnownHttpNotFound: "EmailVerificationWellKnownHttpNotFound", EmailVerificationWellKnownNoResponse: "EmailVerificationWellKnownNoResponse", EmailVerificationWellKnownInvalidResponse: "EmailVerificationWellKnownInvalidResponse", EmailVerificationWellKnownInvalidContentType: "EmailVerificationWellKnownInvalidContentType", JwksHttpNotFound: "JwksHttpNotFound", JwksInvalidResponse: "JwksInvalidResponse", TokenVerificationSdJwtUnsupportedHeaderAlg: "TokenVerificationSdJwtUnsupportedHeaderAlg", TokenVerificationSdJwtInvalidTyp: "TokenVerificationSdJwtInvalidTyp", TokenVerificationSdJwtMissingIss: "TokenVerificationSdJwtMissingIss", TokenVerificationSdJwtMissingIat: "TokenVerificationSdJwtMissingIat", TokenVerificationSdJwtMissingCnf: "TokenVerificationSdJwtMissingCnf", TokenVerificationSdJwtMissingEmail: "TokenVerificationSdJwtMissingEmail", TokenVerificationSdJwtInvalidIssuedAt: "TokenVerificationSdJwtInvalidIssuedAt", TokenVerificationSdJwtInvalidIssuer: "TokenVerificationSdJwtInvalidIssuer", TokenVerificationSdJwtJwksMissingKeys: "TokenVerificationSdJwtJwksMissingKeys", TokenVerificationSdJwtSignatureFailed: "TokenVerificationSdJwtSignatureFailed", TokenVerificationSdJwtInvalidEmailVerified: "TokenVerificationSdJwtInvalidEmailVerified", TokenVerificationSdJwtInvalidEmail: "TokenVerificationSdJwtInvalidEmail", TokenVerificationSdJwtInvalidHolderKey: "TokenVerificationSdJwtInvalidHolderKey", TokenVerificationKbInvalidTyp: "TokenVerificationKbInvalidTyp", TokenVerificationKbMissingAud: "TokenVerificationKbMissingAud", TokenVerificationKbMissingNonce: "TokenVerificationKbMissingNonce", TokenVerificationKbMissingIat: "TokenVerificationKbMissingIat", TokenVerificationKbMissingSdHash: "TokenVerificationKbMissingSdHash", TokenVerificationKbInvalidIssuedAt: "TokenVerificationKbInvalidIssuedAt", TokenVerificationKbInvalidAudience: "TokenVerificationKbInvalidAudience", TokenVerificationKbInvalidNonce: "TokenVerificationKbInvalidNonce", TokenVerificationKbInvalidSdHash: "TokenVerificationKbInvalidSdHash", TokenVerificationKbMissingCnf: "TokenVerificationKbMissingCnf", TokenVerificationKbSignatureFailed: "TokenVerificationKbSignatureFailed"});
|
|
96
|
+
inspectorBackend.registerEnum("Audits.EmailVerificationRequestIssueReason", {InvalidEmail: "InvalidEmail", DnsFetchFailed: "DnsFetchFailed", DnsInvalidRecord: "DnsInvalidRecord", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", WellKnownMissingIssuanceEndpoint: "WellKnownMissingIssuanceEndpoint", WellKnownIssuanceEndpointCrossOrigin: "WellKnownIssuanceEndpointCrossOrigin", WellKnownUnsupportedSigningAlgorithm: "WellKnownUnsupportedSigningAlgorithm", TokenHttpNotFound: "TokenHttpNotFound", TokenNoResponse: "TokenNoResponse", TokenInvalidResponse: "TokenInvalidResponse", TokenInvalidContentType: "TokenInvalidContentType", TokenMalformedSdJwt: "TokenMalformedSdJwt", TokenInvalidSdJwt: "TokenInvalidSdJwt", KeyBindingSigningFailed: "KeyBindingSigningFailed", RpOriginIsOpaque: "RpOriginIsOpaque", WellKnownMissingAccountsEndpoint: "WellKnownMissingAccountsEndpoint", UserLoggedOut: "UserLoggedOut", WellKnownAccountsEndpointCrossOrigin: "WellKnownAccountsEndpointCrossOrigin", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsInvalidContentType: "AccountsInvalidContentType", AccountsEmptyList: "AccountsEmptyList", EmailVerificationWellKnownHttpNotFound: "EmailVerificationWellKnownHttpNotFound", EmailVerificationWellKnownNoResponse: "EmailVerificationWellKnownNoResponse", EmailVerificationWellKnownInvalidResponse: "EmailVerificationWellKnownInvalidResponse", EmailVerificationWellKnownInvalidContentType: "EmailVerificationWellKnownInvalidContentType", JwksHttpNotFound: "JwksHttpNotFound", JwksInvalidResponse: "JwksInvalidResponse", TokenVerificationSdJwtUnsupportedHeaderAlg: "TokenVerificationSdJwtUnsupportedHeaderAlg", TokenVerificationSdJwtInvalidTyp: "TokenVerificationSdJwtInvalidTyp", TokenVerificationSdJwtMissingIss: "TokenVerificationSdJwtMissingIss", TokenVerificationSdJwtMissingIat: "TokenVerificationSdJwtMissingIat", TokenVerificationSdJwtMissingCnf: "TokenVerificationSdJwtMissingCnf", TokenVerificationSdJwtMissingEmail: "TokenVerificationSdJwtMissingEmail", TokenVerificationSdJwtInvalidIssuedAt: "TokenVerificationSdJwtInvalidIssuedAt", TokenVerificationSdJwtInvalidIssuer: "TokenVerificationSdJwtInvalidIssuer", TokenVerificationSdJwtJwksMissingKeys: "TokenVerificationSdJwtJwksMissingKeys", TokenVerificationSdJwtSignatureFailed: "TokenVerificationSdJwtSignatureFailed", TokenVerificationSdJwtInvalidEmailVerified: "TokenVerificationSdJwtInvalidEmailVerified", TokenVerificationSdJwtInvalidEmail: "TokenVerificationSdJwtInvalidEmail", TokenVerificationSdJwtInvalidHolderKey: "TokenVerificationSdJwtInvalidHolderKey", TokenVerificationKbInvalidTyp: "TokenVerificationKbInvalidTyp", TokenVerificationKbMissingAud: "TokenVerificationKbMissingAud", TokenVerificationKbMissingNonce: "TokenVerificationKbMissingNonce", TokenVerificationKbMissingIat: "TokenVerificationKbMissingIat", TokenVerificationKbMissingSdHash: "TokenVerificationKbMissingSdHash", TokenVerificationKbInvalidIssuedAt: "TokenVerificationKbInvalidIssuedAt", TokenVerificationKbInvalidAudience: "TokenVerificationKbInvalidAudience", TokenVerificationKbInvalidNonce: "TokenVerificationKbInvalidNonce", TokenVerificationKbInvalidSdHash: "TokenVerificationKbInvalidSdHash", TokenVerificationKbMissingCnf: "TokenVerificationKbMissingCnf", TokenVerificationKbSignatureFailed: "TokenVerificationKbSignatureFailed", CrossOriginIframeNotSupported: "CrossOriginIframeNotSupported"});
|
|
97
97
|
inspectorBackend.registerEnum("Audits.PartitioningBlobURLInfo", {BlockedCrossPartitionFetching: "BlockedCrossPartitionFetching", EnforceNoopenerForNavigation: "EnforceNoopenerForNavigation"});
|
|
98
98
|
inspectorBackend.registerEnum("Audits.ElementAccessibilityIssueReason", {DisallowedSelectChild: "DisallowedSelectChild", DisallowedOptGroupChild: "DisallowedOptGroupChild", NonPhrasingContentOptionChild: "NonPhrasingContentOptionChild", InteractiveContentOptionChild: "InteractiveContentOptionChild", InteractiveContentLegendChild: "InteractiveContentLegendChild", InteractiveContentSummaryDescendant: "InteractiveContentSummaryDescendant"});
|
|
99
99
|
inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImportRule: "LateImportRule", RequestFailed: "RequestFailed"});
|
|
@@ -538,7 +538,8 @@ inspectorBackend.registerCommand("Emulation.setDefaultBackgroundColorOverride",
|
|
|
538
538
|
inspectorBackend.registerCommand("Emulation.setSafeAreaInsetsOverride", [{"name": "insets", "type": "object", "optional": false, "description": "", "typeRef": "Emulation.SafeAreaInsets"}], [], "Overrides the values for env(safe-area-inset-*) and env(safe-area-max-inset-*). Unset values will cause the respective variables to be undefined, even if previously overridden.");
|
|
539
539
|
inspectorBackend.registerCommand("Emulation.setVirtualKeyboardGeometryOverride", [{"name": "keyboardRect", "type": "object", "optional": true, "description": "", "typeRef": "DOM.Rect"}], [], "Overrides virtual keyboard geometry in CSS pixels, relative to the top-level viewport. The provided rect is used for navigator.virtualKeyboard.boundingRect, geometrychange events, and env(keyboard-inset-*) values on the inspected frame. The override applies independently of navigator.virtualKeyboard.overlaysContent so clients can preview overlay geometry without mutating page state. Values are rounded to the nearest CSS pixel. Omitting the rect clears the override.");
|
|
540
540
|
inspectorBackend.registerEnum("Emulation.SetDeviceMetricsOverrideRequestScrollbarType", {Overlay: "overlay", Default: "default"});
|
|
541
|
-
inspectorBackend.
|
|
541
|
+
inspectorBackend.registerEnum("Emulation.SetDeviceMetricsOverrideRequestViewportMeta", {Enable: "enable", Default: "default"});
|
|
542
|
+
inspectorBackend.registerCommand("Emulation.setDeviceMetricsOverride", [{"name": "width", "type": "number", "optional": false, "description": "Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "deviceScaleFactor", "type": "number", "optional": false, "description": "Overriding device scale factor value. 0 disables the override.", "typeRef": null}, {"name": "mobile", "type": "boolean", "optional": false, "description": "Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.", "typeRef": null}, {"name": "scale", "type": "number", "optional": true, "description": "Scale to apply to resulting view image.", "typeRef": null}, {"name": "screenWidth", "type": "number", "optional": true, "description": "Overriding screen width value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "screenHeight", "type": "number", "optional": true, "description": "Overriding screen height value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionX", "type": "number", "optional": true, "description": "Overriding view X position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionY", "type": "number", "optional": true, "description": "Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "dontSetVisibleSize", "type": "boolean", "optional": true, "description": "Do not set visible view size, rely upon explicit setVisibleSize call.", "typeRef": null}, {"name": "screenOrientation", "type": "object", "optional": true, "description": "Screen orientation override.", "typeRef": "Emulation.ScreenOrientation"}, {"name": "viewport", "type": "object", "optional": true, "description": "If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions.", "typeRef": "Page.Viewport"}, {"name": "displayFeature", "type": "object", "optional": true, "description": "If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off. Deprecated, use Emulation.setDisplayFeaturesOverride.", "typeRef": "Emulation.DisplayFeature"}, {"name": "devicePosture", "type": "object", "optional": true, "description": "If set, the posture of a foldable device. If not set the posture is set to continuous. Deprecated, use Emulation.setDevicePostureOverride.", "typeRef": "Emulation.DevicePosture"}, {"name": "scrollbarType", "type": "string", "optional": true, "description": "Scrollbar type. Default: `default`.", "typeRef": "Emulation.SetDeviceMetricsOverrideRequestScrollbarType"}, {"name": "screenOrientationLockEmulation", "type": "boolean", "optional": true, "description": "If set to true, enables screen orientation lock emulation, which intercepts screen.orientation.lock() calls from the page and reports orientation changes via screenOrientationLockChanged events. This is useful for emulating mobile device orientation lock behavior in responsive design mode.", "typeRef": null}, {"name": "viewportMeta", "type": "string", "optional": true, "description": "Viewport meta tag behavior. Default: `default`. Note: if `mobile` is `true`, the viewport meta tag is always enabled.", "typeRef": "Emulation.SetDeviceMetricsOverrideRequestViewportMeta"}], [], "Overrides the values of device screen dimensions (window.screen.width, window.screen.height, window.innerWidth, window.innerHeight, and \"device-width\"/\"device-height\"-related CSS media query results).");
|
|
542
543
|
inspectorBackend.registerCommand("Emulation.setDevicePostureOverride", [{"name": "posture", "type": "object", "optional": false, "description": "", "typeRef": "Emulation.DevicePosture"}], [], "Start reporting the given posture value to the Device Posture API. This override can also be set in setDeviceMetricsOverride().");
|
|
543
544
|
inspectorBackend.registerCommand("Emulation.clearDevicePostureOverride", [], [], "Clears a device posture override set with either setDeviceMetricsOverride() or setDevicePostureOverride() and starts using posture information from the platform again. Does nothing if no override is set.");
|
|
544
545
|
inspectorBackend.registerCommand("Emulation.setDisplayFeaturesOverride", [{"name": "features", "type": "array", "optional": false, "description": "", "typeRef": "Emulation.DisplayFeature"}], [], "Start using the given display features to pupulate the Viewport Segments API. This override can also be set in setDeviceMetricsOverride().");
|
|
@@ -825,7 +826,7 @@ inspectorBackend.registerEnum("Network.DeviceBoundSessionWithUsageUsage", {NotIn
|
|
|
825
826
|
inspectorBackend.registerEnum("Network.DeviceBoundSessionUrlRuleRuleType", {Exclude: "Exclude", Include: "Include"});
|
|
826
827
|
inspectorBackend.registerEnum("Network.DeviceBoundSessionFetchResult", {Success: "Success", SigningKeyGenerationError: "SigningKeyGenerationError", AttestationKeyGenerationError: "AttestationKeyGenerationError", SigningError: "SigningError", TransientSigningError: "TransientSigningError", ServerRequestedTermination: "ServerRequestedTermination", InvalidSessionId: "InvalidSessionId", InvalidChallenge: "InvalidChallenge", TooManyChallenges: "TooManyChallenges", InvalidFetcherUrl: "InvalidFetcherUrl", InvalidRefreshUrl: "InvalidRefreshUrl", TransientHttpError: "TransientHttpError", ScopeOriginSameSiteMismatch: "ScopeOriginSameSiteMismatch", RefreshUrlSameSiteMismatch: "RefreshUrlSameSiteMismatch", MismatchedSessionId: "MismatchedSessionId", MissingScope: "MissingScope", NoCredentials: "NoCredentials", SubdomainRegistrationWellKnownUnavailable: "SubdomainRegistrationWellKnownUnavailable", SubdomainRegistrationUnauthorized: "SubdomainRegistrationUnauthorized", SubdomainRegistrationWellKnownMalformed: "SubdomainRegistrationWellKnownMalformed", SessionProviderWellKnownUnavailable: "SessionProviderWellKnownUnavailable", RelyingPartyWellKnownUnavailable: "RelyingPartyWellKnownUnavailable", FederatedKeyThumbprintMismatch: "FederatedKeyThumbprintMismatch", InvalidFederatedSessionUrl: "InvalidFederatedSessionUrl", InvalidFederatedKey: "InvalidFederatedKey", TooManyRelyingOriginLabels: "TooManyRelyingOriginLabels", BoundCookieSetForbidden: "BoundCookieSetForbidden", NetError: "NetError", ProxyError: "ProxyError", EmptySessionConfig: "EmptySessionConfig", InvalidCredentialsConfig: "InvalidCredentialsConfig", InvalidCredentialsType: "InvalidCredentialsType", InvalidCredentialsEmptyName: "InvalidCredentialsEmptyName", InvalidCredentialsCookie: "InvalidCredentialsCookie", PersistentHttpError: "PersistentHttpError", RegistrationAttemptedChallenge: "RegistrationAttemptedChallenge", InvalidScopeOrigin: "InvalidScopeOrigin", ScopeOriginContainsPath: "ScopeOriginContainsPath", RefreshInitiatorNotString: "RefreshInitiatorNotString", RefreshInitiatorInvalidHostPattern: "RefreshInitiatorInvalidHostPattern", InvalidScopeSpecification: "InvalidScopeSpecification", MissingScopeSpecificationType: "MissingScopeSpecificationType", EmptyScopeSpecificationDomain: "EmptyScopeSpecificationDomain", EmptyScopeSpecificationPath: "EmptyScopeSpecificationPath", InvalidScopeSpecificationType: "InvalidScopeSpecificationType", InvalidScopeIncludeSite: "InvalidScopeIncludeSite", MissingScopeIncludeSite: "MissingScopeIncludeSite", FederatedNotAuthorizedByProvider: "FederatedNotAuthorizedByProvider", FederatedNotAuthorizedByRelyingParty: "FederatedNotAuthorizedByRelyingParty", SessionProviderWellKnownMalformed: "SessionProviderWellKnownMalformed", SessionProviderWellKnownHasProviderOrigin: "SessionProviderWellKnownHasProviderOrigin", RelyingPartyWellKnownMalformed: "RelyingPartyWellKnownMalformed", RelyingPartyWellKnownHasRelyingOrigins: "RelyingPartyWellKnownHasRelyingOrigins", InvalidFederatedSessionProviderSessionMissing: "InvalidFederatedSessionProviderSessionMissing", InvalidFederatedSessionWrongProviderOrigin: "InvalidFederatedSessionWrongProviderOrigin", InvalidCredentialsCookieCreationTime: "InvalidCredentialsCookieCreationTime", InvalidCredentialsCookieName: "InvalidCredentialsCookieName", InvalidCredentialsCookieParsing: "InvalidCredentialsCookieParsing", InvalidCredentialsCookieUnpermittedAttribute: "InvalidCredentialsCookieUnpermittedAttribute", InvalidCredentialsCookieInvalidDomain: "InvalidCredentialsCookieInvalidDomain", InvalidCredentialsCookiePrefix: "InvalidCredentialsCookiePrefix", InvalidScopeRulePath: "InvalidScopeRulePath", InvalidScopeRuleHostPattern: "InvalidScopeRuleHostPattern", ScopeRuleOriginScopedHostPatternMismatch: "ScopeRuleOriginScopedHostPatternMismatch", ScopeRuleSiteScopedHostPatternMismatch: "ScopeRuleSiteScopedHostPatternMismatch", SigningQuotaExceeded: "SigningQuotaExceeded", InvalidConfigJson: "InvalidConfigJson", InvalidFederatedSessionProviderFailedToRestoreKey: "InvalidFederatedSessionProviderFailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", SessionDeletedDuringRefresh: "SessionDeletedDuringRefresh", CrossOriginRegistrationSiteNotIncluded: "CrossOriginRegistrationSiteNotIncluded", InvalidPreProvisionedKeyInitiatorMissing: "InvalidPreProvisionedKeyInitiatorMissing", PreProvisionedKeyAccessNotGranted: "PreProvisionedKeyAccessNotGranted", PreProvisionedKeyNotFound: "PreProvisionedKeyNotFound", AttestationCertificationError: "AttestationCertificationError", AttestationSigningError: "AttestationSigningError"});
|
|
827
828
|
inspectorBackend.registerEnum("Network.RefreshEventDetailsRefreshResult", {Refreshed: "Refreshed", InitializedService: "InitializedService", Unreachable: "Unreachable", ServerError: "ServerError", FatalError: "FatalError", SigningQuotaExceeded: "SigningQuotaExceeded", RefreshedAsWaiter: "RefreshedAsWaiter", TransientSigningError: "TransientSigningError", InScopeRefreshNotYetNeeded: "InScopeRefreshNotYetNeeded"});
|
|
828
|
-
inspectorBackend.registerEnum("Network.TerminationEventDetailsDeletionReason", {Expired: "Expired", FailedToRestoreKey: "FailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", StoragePartitionCleared: "StoragePartitionCleared", ClearBrowsingData: "ClearBrowsingData", ServerRequested: "ServerRequested", InvalidSessionParams: "InvalidSessionParams", RefreshFatalError: "RefreshFatalError", DevTools: "DevTools"});
|
|
829
|
+
inspectorBackend.registerEnum("Network.TerminationEventDetailsDeletionReason", {Expired: "Expired", FailedToRestoreKey: "FailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", StoragePartitionCleared: "StoragePartitionCleared", ClearBrowsingData: "ClearBrowsingData", ServerRequested: "ServerRequested", InvalidSessionParams: "InvalidSessionParams", RefreshFatalError: "RefreshFatalError", DevTools: "DevTools", Replaced: "Replaced"});
|
|
829
830
|
inspectorBackend.registerEnum("Network.ChallengeEventDetailsChallengeResult", {Success: "Success", NoSessionId: "NoSessionId", NoSessionMatch: "NoSessionMatch", CantSetBoundCookie: "CantSetBoundCookie"});
|
|
830
831
|
inspectorBackend.registerEvent("Network.dataReceived", ["requestId", "timestamp", "dataLength", "encodedDataLength", "data"]);
|
|
831
832
|
inspectorBackend.registerEvent("Network.eventSourceMessageReceived", ["requestId", "timestamp", "eventName", "eventId", "data"]);
|
|
@@ -1546,7 +1547,7 @@ inspectorBackend.registerType("Debugger.Location", [{"name": "scriptId", "type":
|
|
|
1546
1547
|
inspectorBackend.registerType("Debugger.ScriptPosition", [{"name": "lineNumber", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "columnNumber", "type": "number", "optional": false, "description": "", "typeRef": null}]);
|
|
1547
1548
|
inspectorBackend.registerType("Debugger.LocationRange", [{"name": "scriptId", "type": "string", "optional": false, "description": "", "typeRef": "Runtime.ScriptId"}, {"name": "start", "type": "object", "optional": false, "description": "", "typeRef": "Debugger.ScriptPosition"}, {"name": "end", "type": "object", "optional": false, "description": "", "typeRef": "Debugger.ScriptPosition"}]);
|
|
1548
1549
|
inspectorBackend.registerType("Debugger.CallFrame", [{"name": "callFrameId", "type": "string", "optional": false, "description": "Call frame identifier. This identifier is only valid while the virtual machine is paused.", "typeRef": "Debugger.CallFrameId"}, {"name": "functionName", "type": "string", "optional": false, "description": "Name of the JavaScript function called on this call frame.", "typeRef": null}, {"name": "functionLocation", "type": "object", "optional": true, "description": "Location in the source code.", "typeRef": "Debugger.Location"}, {"name": "location", "type": "object", "optional": false, "description": "Location in the source code.", "typeRef": "Debugger.Location"}, {"name": "url", "type": "string", "optional": false, "description": "JavaScript script name or url. Deprecated in favor of using the `location.scriptId` to resolve the URL via a previously sent `Debugger.scriptParsed` event.", "typeRef": null}, {"name": "scopeChain", "type": "array", "optional": false, "description": "Scope chain for this call frame.", "typeRef": "Debugger.Scope"}, {"name": "this", "type": "object", "optional": false, "description": "`this` object for this call frame.", "typeRef": "Runtime.RemoteObject"}, {"name": "returnValue", "type": "object", "optional": true, "description": "The value being returned, if the function is at return point.", "typeRef": "Runtime.RemoteObject"}, {"name": "canBeRestarted", "type": "boolean", "optional": true, "description": "Valid only while the VM is paused and indicates whether this frame can be restarted or not. Note that a `true` value here does not guarantee that Debugger#restartFrame with this CallFrameId will be successful, but it is very likely.", "typeRef": null}]);
|
|
1549
|
-
inspectorBackend.registerType("Debugger.Scope", [{"name": "type", "type": "string", "optional": false, "description": "Scope type.", "typeRef": null}, {"name": "object", "type": "object", "optional": false, "description": "Object representing the scope. For `global` and `with` scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties.", "typeRef": "Runtime.RemoteObject"}, {"name": "name", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "startLocation", "type": "object", "optional": true, "description": "Location in the source code where scope starts", "typeRef": "Debugger.Location"}, {"name": "endLocation", "type": "object", "optional": true, "description": "Location in the source code where scope ends", "typeRef": "Debugger.Location"}]);
|
|
1550
|
+
inspectorBackend.registerType("Debugger.Scope", [{"name": "type", "type": "string", "optional": false, "description": "Scope type.", "typeRef": null}, {"name": "object", "type": "object", "optional": false, "description": "Object representing the scope. For `global` and `with` scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties.", "typeRef": "Runtime.RemoteObject"}, {"name": "name", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "startLocation", "type": "object", "optional": true, "description": "Location in the source code where scope starts", "typeRef": "Debugger.Location"}, {"name": "endLocation", "type": "object", "optional": true, "description": "Location in the source code where scope ends", "typeRef": "Debugger.Location"}, {"name": "empty", "type": "boolean", "optional": true, "description": "True if the scope does not declare any variables or have a runtime context. Only present if true. Empty scopes are retained in the scope chain because they can be targeted via `evaluateOnCallFrame` (using `scopeNumber`) or matched against scopes in source maps.", "typeRef": null}]);
|
|
1550
1551
|
inspectorBackend.registerType("Debugger.SearchMatch", [{"name": "lineNumber", "type": "number", "optional": false, "description": "Line number in resource content.", "typeRef": null}, {"name": "lineContent", "type": "string", "optional": false, "description": "Line with match content.", "typeRef": null}]);
|
|
1551
1552
|
inspectorBackend.registerType("Debugger.BreakLocation", [{"name": "scriptId", "type": "string", "optional": false, "description": "Script identifier as reported in the `Debugger.scriptParsed`.", "typeRef": "Runtime.ScriptId"}, {"name": "lineNumber", "type": "number", "optional": false, "description": "Line number in the script (0-based).", "typeRef": null}, {"name": "columnNumber", "type": "number", "optional": true, "description": "Column number in the script (0-based).", "typeRef": null}, {"name": "type", "type": "string", "optional": true, "description": "", "typeRef": null}]);
|
|
1552
1553
|
inspectorBackend.registerType("Debugger.WasmDisassemblyChunk", [{"name": "lines", "type": "array", "optional": false, "description": "The next chunk of disassembled lines.", "typeRef": "string"}, {"name": "bytecodeOffsets", "type": "array", "optional": false, "description": "The bytecode offsets describing the start of each line.", "typeRef": "integer"}]);
|
|
@@ -1599,11 +1600,11 @@ inspectorBackend.registerType("Profiler.ScriptCoverage", [{"name": "scriptId", "
|
|
|
1599
1600
|
inspectorBackend.registerEnum("Runtime.SerializationOptionsSerialization", {Deep: "deep", Json: "json", IdOnly: "idOnly"});
|
|
1600
1601
|
inspectorBackend.registerEnum("Runtime.DeepSerializedValueType", {Undefined: "undefined", Null: "null", String: "string", Number: "number", Boolean: "boolean", Bigint: "bigint", Regexp: "regexp", Date: "date", Symbol: "symbol", Array: "array", Object: "object", Function: "function", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Node: "node", Window: "window", Generator: "generator"});
|
|
1601
1602
|
inspectorBackend.registerEnum("Runtime.RemoteObjectType", {Object: "object", Function: "function", Undefined: "undefined", String: "string", Number: "number", Boolean: "boolean", Symbol: "symbol", Bigint: "bigint"});
|
|
1602
|
-
inspectorBackend.registerEnum("Runtime.RemoteObjectSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Trustedtype: "trustedtype"});
|
|
1603
|
+
inspectorBackend.registerEnum("Runtime.RemoteObjectSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Deferredmodule: "deferredmodule", Trustedtype: "trustedtype"});
|
|
1603
1604
|
inspectorBackend.registerEnum("Runtime.ObjectPreviewType", {Object: "object", Function: "function", Undefined: "undefined", String: "string", Number: "number", Boolean: "boolean", Symbol: "symbol", Bigint: "bigint"});
|
|
1604
|
-
inspectorBackend.registerEnum("Runtime.ObjectPreviewSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Trustedtype: "trustedtype"});
|
|
1605
|
+
inspectorBackend.registerEnum("Runtime.ObjectPreviewSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Deferredmodule: "deferredmodule", Trustedtype: "trustedtype"});
|
|
1605
1606
|
inspectorBackend.registerEnum("Runtime.PropertyPreviewType", {Object: "object", Function: "function", Undefined: "undefined", String: "string", Number: "number", Boolean: "boolean", Symbol: "symbol", Accessor: "accessor", Bigint: "bigint"});
|
|
1606
|
-
inspectorBackend.registerEnum("Runtime.PropertyPreviewSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Trustedtype: "trustedtype"});
|
|
1607
|
+
inspectorBackend.registerEnum("Runtime.PropertyPreviewSubtype", {Array: "array", Null: "null", Node: "node", Regexp: "regexp", Date: "date", Map: "map", Set: "set", Weakmap: "weakmap", Weakset: "weakset", Iterator: "iterator", Generator: "generator", Error: "error", Proxy: "proxy", Promise: "promise", Typedarray: "typedarray", Arraybuffer: "arraybuffer", Dataview: "dataview", Webassemblymemory: "webassemblymemory", Wasmvalue: "wasmvalue", Deferredmodule: "deferredmodule", Trustedtype: "trustedtype"});
|
|
1607
1608
|
inspectorBackend.registerEvent("Runtime.bindingCalled", ["name", "payload", "executionContextId"]);
|
|
1608
1609
|
inspectorBackend.registerEnum("Runtime.ConsoleAPICalledEventType", {Log: "log", Debug: "debug", Info: "info", Error: "error", Warning: "warning", Dir: "dir", DirXML: "dirxml", Table: "table", Trace: "trace", Clear: "clear", StartGroup: "startGroup", StartGroupCollapsed: "startGroupCollapsed", EndGroup: "endGroup", Assert: "assert", Profile: "profile", ProfileEnd: "profileEnd", Count: "count", TimeEnd: "timeEnd"});
|
|
1609
1610
|
inspectorBackend.registerEvent("Runtime.consoleAPICalled", ["type", "args", "executionContextId", "timestamp", "stackTrace", "context"]);
|
|
@@ -362,6 +362,8 @@ export const generatedProperties: CSSProperty[] = [
|
|
|
362
362
|
"center",
|
|
363
363
|
"start",
|
|
364
364
|
"end",
|
|
365
|
+
"flow-start",
|
|
366
|
+
"flow-end",
|
|
365
367
|
"self-start",
|
|
366
368
|
"self-end",
|
|
367
369
|
"flex-start",
|
|
@@ -3601,6 +3603,8 @@ export const generatedProperties: CSSProperty[] = [
|
|
|
3601
3603
|
"center",
|
|
3602
3604
|
"start",
|
|
3603
3605
|
"end",
|
|
3606
|
+
"flow-start",
|
|
3607
|
+
"flow-end",
|
|
3604
3608
|
"self-start",
|
|
3605
3609
|
"self-end",
|
|
3606
3610
|
"flex-start",
|
|
@@ -5120,7 +5124,8 @@ export const generatedProperties: CSSProperty[] = [
|
|
|
5120
5124
|
{
|
|
5121
5125
|
"keywords": [
|
|
5122
5126
|
"normal",
|
|
5123
|
-
"always"
|
|
5127
|
+
"always",
|
|
5128
|
+
"before"
|
|
5124
5129
|
],
|
|
5125
5130
|
"name": "scroll-snap-stop"
|
|
5126
5131
|
},
|
|
@@ -5501,7 +5506,7 @@ export const generatedProperties: CSSProperty[] = [
|
|
|
5501
5506
|
],
|
|
5502
5507
|
"name": "text-decoration-skip-spaces",
|
|
5503
5508
|
"runtime_flag": "CSSTextDecorationSkipSpaces",
|
|
5504
|
-
"runtime_flag_status": "
|
|
5509
|
+
"runtime_flag_status": "stable"
|
|
5505
5510
|
},
|
|
5506
5511
|
{
|
|
5507
5512
|
"keywords": [
|
|
@@ -6286,6 +6291,8 @@ export const generatedPropertyValues: Record<string, CSSPropertyValue> = {
|
|
|
6286
6291
|
"center",
|
|
6287
6292
|
"start",
|
|
6288
6293
|
"end",
|
|
6294
|
+
"flow-start",
|
|
6295
|
+
"flow-end",
|
|
6289
6296
|
"self-start",
|
|
6290
6297
|
"self-end",
|
|
6291
6298
|
"flex-start",
|
|
@@ -7879,6 +7886,8 @@ export const generatedPropertyValues: Record<string, CSSPropertyValue> = {
|
|
|
7879
7886
|
"center",
|
|
7880
7887
|
"start",
|
|
7881
7888
|
"end",
|
|
7889
|
+
"flow-start",
|
|
7890
|
+
"flow-end",
|
|
7882
7891
|
"self-start",
|
|
7883
7892
|
"self-end",
|
|
7884
7893
|
"flex-start",
|
|
@@ -8692,7 +8701,8 @@ export const generatedPropertyValues: Record<string, CSSPropertyValue> = {
|
|
|
8692
8701
|
"scroll-snap-stop": {
|
|
8693
8702
|
"values": [
|
|
8694
8703
|
"normal",
|
|
8695
|
-
"always"
|
|
8704
|
+
"always",
|
|
8705
|
+
"before"
|
|
8696
8706
|
]
|
|
8697
8707
|
},
|
|
8698
8708
|
"scroll-snap-type": {
|
|
@@ -1402,6 +1402,7 @@ export namespace Audits {
|
|
|
1402
1402
|
UiDismissedNoEmbargo = 'UiDismissedNoEmbargo',
|
|
1403
1403
|
CorsError = 'CorsError',
|
|
1404
1404
|
SuppressedBySegmentationPlatform = 'SuppressedBySegmentationPlatform',
|
|
1405
|
+
PopupBlockedByConnectionAllowlist = 'PopupBlockedByConnectionAllowlist',
|
|
1405
1406
|
}
|
|
1406
1407
|
|
|
1407
1408
|
export interface FederatedAuthUserInfoRequestIssueDetails {
|
|
@@ -1492,6 +1493,7 @@ export namespace Audits {
|
|
|
1492
1493
|
TokenVerificationKbInvalidSdHash = 'TokenVerificationKbInvalidSdHash',
|
|
1493
1494
|
TokenVerificationKbMissingCnf = 'TokenVerificationKbMissingCnf',
|
|
1494
1495
|
TokenVerificationKbSignatureFailed = 'TokenVerificationKbSignatureFailed',
|
|
1496
|
+
CrossOriginIframeNotSupported = 'CrossOriginIframeNotSupported',
|
|
1495
1497
|
}
|
|
1496
1498
|
|
|
1497
1499
|
/**
|
|
@@ -7437,6 +7439,11 @@ export namespace Emulation {
|
|
|
7437
7439
|
Default = 'default',
|
|
7438
7440
|
}
|
|
7439
7441
|
|
|
7442
|
+
export const enum SetDeviceMetricsOverrideRequestViewportMeta {
|
|
7443
|
+
Enable = 'enable',
|
|
7444
|
+
Default = 'default',
|
|
7445
|
+
}
|
|
7446
|
+
|
|
7440
7447
|
export interface SetDeviceMetricsOverrideRequest {
|
|
7441
7448
|
/**
|
|
7442
7449
|
* Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
|
|
@@ -7514,6 +7521,11 @@ export namespace Emulation {
|
|
|
7514
7521
|
* responsive design mode.
|
|
7515
7522
|
*/
|
|
7516
7523
|
screenOrientationLockEmulation?: boolean;
|
|
7524
|
+
/**
|
|
7525
|
+
* Viewport meta tag behavior. Default: `default`. Note: if `mobile` is `true`,
|
|
7526
|
+
* the viewport meta tag is always enabled.
|
|
7527
|
+
*/
|
|
7528
|
+
viewportMeta?: SetDeviceMetricsOverrideRequestViewportMeta;
|
|
7517
7529
|
}
|
|
7518
7530
|
|
|
7519
7531
|
export interface SetDevicePostureOverrideRequest {
|
|
@@ -12230,6 +12242,7 @@ export namespace Network {
|
|
|
12230
12242
|
InvalidSessionParams = 'InvalidSessionParams',
|
|
12231
12243
|
RefreshFatalError = 'RefreshFatalError',
|
|
12232
12244
|
DevTools = 'DevTools',
|
|
12245
|
+
Replaced = 'Replaced',
|
|
12233
12246
|
}
|
|
12234
12247
|
|
|
12235
12248
|
/**
|
|
@@ -20508,6 +20521,14 @@ export namespace Debugger {
|
|
|
20508
20521
|
* Location in the source code where scope ends
|
|
20509
20522
|
*/
|
|
20510
20523
|
endLocation?: Location;
|
|
20524
|
+
/**
|
|
20525
|
+
* True if the scope does not declare any variables or have a runtime context.
|
|
20526
|
+
* Only present if true.
|
|
20527
|
+
* Empty scopes are retained in the scope chain because
|
|
20528
|
+
* they can be targeted via `evaluateOnCallFrame` (using `scopeNumber`) or
|
|
20529
|
+
* matched against scopes in source maps.
|
|
20530
|
+
*/
|
|
20531
|
+
empty?: boolean;
|
|
20511
20532
|
}
|
|
20512
20533
|
|
|
20513
20534
|
/**
|
|
@@ -21945,6 +21966,7 @@ export namespace Runtime {
|
|
|
21945
21966
|
Dataview = 'dataview',
|
|
21946
21967
|
Webassemblymemory = 'webassemblymemory',
|
|
21947
21968
|
Wasmvalue = 'wasmvalue',
|
|
21969
|
+
Deferredmodule = 'deferredmodule',
|
|
21948
21970
|
Trustedtype = 'trustedtype',
|
|
21949
21971
|
}
|
|
21950
21972
|
|
|
@@ -22039,6 +22061,7 @@ export namespace Runtime {
|
|
|
22039
22061
|
Dataview = 'dataview',
|
|
22040
22062
|
Webassemblymemory = 'webassemblymemory',
|
|
22041
22063
|
Wasmvalue = 'wasmvalue',
|
|
22064
|
+
Deferredmodule = 'deferredmodule',
|
|
22042
22065
|
Trustedtype = 'trustedtype',
|
|
22043
22066
|
}
|
|
22044
22067
|
|
|
@@ -22104,6 +22127,7 @@ export namespace Runtime {
|
|
|
22104
22127
|
Dataview = 'dataview',
|
|
22105
22128
|
Webassemblymemory = 'webassemblymemory',
|
|
22106
22129
|
Wasmvalue = 'wasmvalue',
|
|
22130
|
+
Deferredmodule = 'deferredmodule',
|
|
22107
22131
|
Trustedtype = 'trustedtype',
|
|
22108
22132
|
}
|
|
22109
22133
|
|
|
@@ -101,7 +101,7 @@ export class AiAgent2 extends AiAgent<unknown> {
|
|
|
101
101
|
this.disableServerSideLogging();
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
const target = this
|
|
104
|
+
const target = this.#getPrimaryPageTarget();
|
|
105
105
|
const domModel = target?.model(SDK.DOMModel.DOMModel);
|
|
106
106
|
// Ensure the DOM document is requested and cached in DOMModel so that
|
|
107
107
|
// subsequent synchronous lookups via domModel.existingDocument() (e.g.,
|
|
@@ -261,10 +261,15 @@ User query: ${enhancedQuery}`;
|
|
|
261
261
|
return response.trim();
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
+
#getExecutionContextNode(): SDK.DOMModel.DOMNode|null {
|
|
265
|
+
if (this.context instanceof DOMNodeContext) {
|
|
266
|
+
return this.context.getItem();
|
|
267
|
+
}
|
|
268
|
+
return this.#getDocumentBodyNode();
|
|
269
|
+
}
|
|
270
|
+
|
|
264
271
|
#createExtensionScope(changes: ChangeManager): {install(): Promise<void>, uninstall(): Promise<void>} {
|
|
265
|
-
|
|
266
|
-
this.context && this.context instanceof DOMNodeContext ? this.context.getItem() : this.#getDocumentBodyNode();
|
|
267
|
-
return new ExtensionScope(changes, this.sessionId, selectedNode);
|
|
272
|
+
return new ExtensionScope(changes, this.sessionId, this.#getExecutionContextNode());
|
|
268
273
|
}
|
|
269
274
|
|
|
270
275
|
/**
|
|
@@ -285,9 +290,8 @@ User query: ${enhancedQuery}`;
|
|
|
285
290
|
changeManager: this.#changes,
|
|
286
291
|
createExtensionScope: this.#createExtensionScope.bind(this),
|
|
287
292
|
execJs: this.#execJs,
|
|
288
|
-
getExecutionContextNode: () =>
|
|
289
|
-
|
|
290
|
-
getTarget: () => this.targetManager.primaryPageTarget(),
|
|
293
|
+
getExecutionContextNode: () => this.#getExecutionContextNode(),
|
|
294
|
+
getTarget: () => this.#getPrimaryPageTarget(),
|
|
291
295
|
getEstablishedOrigin: () => this.#getConversationOrigin(),
|
|
292
296
|
getLighthouseReport: () => (this.context instanceof AccessibilityContext ? this.context.getItem() : null),
|
|
293
297
|
runLighthouse: async overrides => await (this.#lighthouseRecording?.(overrides) ?? null),
|
|
@@ -302,17 +306,46 @@ User query: ${enhancedQuery}`;
|
|
|
302
306
|
});
|
|
303
307
|
}
|
|
304
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Returns the primary page target only if no conversation origin is locked,
|
|
311
|
+
* or if the primary target matches the locked conversation origin.
|
|
312
|
+
* If origin access is explicitly blocked (e.g. cross-origin navigation occurred),
|
|
313
|
+
* or if the conversation is locked to an origin different from the primary page target
|
|
314
|
+
* (e.g. an iframe origin), returns null to prevent cross-origin target access.
|
|
315
|
+
*/
|
|
316
|
+
#getPrimaryPageTarget(): SDK.Target.Target|null {
|
|
317
|
+
const allowed = this.#allowedOrigin?.();
|
|
318
|
+
if (allowed && 'blocked' in allowed) {
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
const target = this.targetManager.primaryPageTarget();
|
|
322
|
+
if (!target) {
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
const establishedOrigin = this.#getConversationOrigin();
|
|
326
|
+
if (!establishedOrigin) {
|
|
327
|
+
return target;
|
|
328
|
+
}
|
|
329
|
+
const targetOrigin = target.inspectedSecurityOrigin();
|
|
330
|
+
if (targetOrigin.isSameOriginWith(establishedOrigin)) {
|
|
331
|
+
return target;
|
|
332
|
+
}
|
|
333
|
+
return null;
|
|
334
|
+
}
|
|
335
|
+
|
|
305
336
|
/**
|
|
306
337
|
* For non-DOM contexts (e.g., Lighthouse accessibility reports or storage items),
|
|
307
338
|
* there is no user-selected DOM node. We fall back to the document body as the
|
|
308
339
|
* default execution context node so scripts have a valid `$0` target.
|
|
340
|
+
* If the conversation is locked to an origin different from the primary page target,
|
|
341
|
+
* returns null to prevent exposing the top-level document body across origins.
|
|
309
342
|
*/
|
|
310
343
|
#getDocumentBodyNode(): SDK.DOMModel.DOMNode|null {
|
|
311
|
-
const document = this
|
|
344
|
+
const document = this.#getPrimaryPageTarget()?.model(SDK.DOMModel.DOMModel)?.existingDocument();
|
|
312
345
|
return document?.body ?? null;
|
|
313
346
|
}
|
|
314
347
|
|
|
315
|
-
#getConversationOrigin():
|
|
348
|
+
#getConversationOrigin(): SDK.SecurityOrigin.SecurityOrigin|undefined {
|
|
316
349
|
const allowed = this.#allowedOrigin?.();
|
|
317
350
|
return allowed && 'origin' in allowed ? allowed.origin : undefined;
|
|
318
351
|
}
|
|
@@ -105,7 +105,7 @@ export class AiConversation {
|
|
|
105
105
|
|
|
106
106
|
#aidaClient: Host.AidaClient.AidaClient;
|
|
107
107
|
#changeManager: ChangeManager|undefined;
|
|
108
|
-
#origin?:
|
|
108
|
+
#origin?: SDK.SecurityOrigin.SecurityOrigin;
|
|
109
109
|
#navigationOccurredDuringRun = false;
|
|
110
110
|
|
|
111
111
|
#contexts: Array<ConversationContext<unknown>> = [];
|
|
@@ -179,7 +179,7 @@ export class AiConversation {
|
|
|
179
179
|
return this.history.length === 0;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
#setOriginIfEmpty(newOrigin:
|
|
182
|
+
#setOriginIfEmpty(newOrigin: SDK.SecurityOrigin.SecurityOrigin|undefined): void {
|
|
183
183
|
if (!this.#origin) {
|
|
184
184
|
this.#origin = newOrigin;
|
|
185
185
|
}
|
|
@@ -544,8 +544,8 @@ export class AiConversation {
|
|
|
544
544
|
return !this.#contexts.every(context => context.isOriginAllowed(this.#origin));
|
|
545
545
|
}
|
|
546
546
|
|
|
547
|
-
get origin():
|
|
548
|
-
return this.#origin
|
|
547
|
+
get origin(): SDK.SecurityOrigin.SecurityOrigin|undefined {
|
|
548
|
+
return this.#origin;
|
|
549
549
|
}
|
|
550
550
|
|
|
551
551
|
get type(): ConversationType {
|
|
@@ -561,11 +561,11 @@ export class AiConversation {
|
|
|
561
561
|
return {blocked: true};
|
|
562
562
|
}
|
|
563
563
|
if (this.#origin) {
|
|
564
|
-
return {origin: this
|
|
564
|
+
return {origin: this.#origin};
|
|
565
565
|
}
|
|
566
566
|
this.#origin = getPrimaryPageSecurityOrigin(this.#targetManager);
|
|
567
567
|
|
|
568
|
-
return {origin: this
|
|
568
|
+
return {origin: this.#origin};
|
|
569
569
|
};
|
|
570
570
|
}
|
|
571
571
|
|
|
@@ -60,10 +60,12 @@ Example from `PerformanceAgent`:
|
|
|
60
60
|
To prevent prompt injection attacks and cross-origin data leaks, the AI Assistance panel enforces strict origin-lock boundaries:
|
|
61
61
|
|
|
62
62
|
- **Origin Locking**: Once a conversation session begins, it locks to the origin of the initial data context (e.g. `https://google.com` or a specific file path).
|
|
63
|
-
- **Opaque Origins**: Any origin classified as opaque (e.g. `data:`, `about:`, `detached` nodes,
|
|
63
|
+
- **Opaque Origins**: Any origin classified as opaque (e.g. `data:`, `about:`, `detached` nodes, or synthetic opaque origins) is blocked from starting AI assistance (`SecurityOrigin.isOpaque()`).
|
|
64
64
|
- **File Isolation**: Local files (`file://`) do not share a single wildcard origin. Instead, the path is appended (e.g. `file:///path/to/file.js`) to treat each local file as its own unique origin. Swapping local files in the same conversation is blocked.
|
|
65
|
-
- **Trace Isolation**: Imported performance trace recordings are isolated using the virtual origin `imported-trace://${
|
|
66
|
-
- **
|
|
65
|
+
- **Trace Isolation**: Imported performance trace recordings are isolated using the virtual origin `imported-trace://${host}`. This ensures that loaded local trace files do not share origins with live pages, preventing potential cross-origin prompt injection attacks when switching contexts.
|
|
66
|
+
- **HAR Isolation**: Imported HAR network recordings use the virtual origin `imported-har://${host}` to isolate imported network traffic from live pages.
|
|
67
|
+
- **CORS Response Gating**: Network requests initiated cross-origin without valid CORS authorization (`Access-Control-Allow-Origin`) are classified as `OPAQUE_CROSS_ORIGIN`. DevTools redacts the response body and restricts response headers to CORS-safelisted names to prevent cross-origin data disclosure (b/513821237).
|
|
68
|
+
- **Equivalence**: `SecurityOrigin.isSameOriginWith()` ensures opaque origins never match any other origin (even with identical URL representations), forcing a conversation reset on context switch.
|
|
67
69
|
|
|
68
70
|
## AIAgentV2 (Unified Architecture)
|
|
69
71
|
|
|
@@ -253,6 +253,7 @@ export class AccessibilityAgent extends AiAgent<LHModel.ReporterTypes.ReportJSON
|
|
|
253
253
|
createExtensionScope: this.#createExtensionScope.bind(this),
|
|
254
254
|
execJs: this.#execJs,
|
|
255
255
|
getExecutionContextNode: () => this.#getDocumentBodyNode(),
|
|
256
|
+
getEstablishedOrigin: () => this.context?.getOrigin(),
|
|
256
257
|
},
|
|
257
258
|
options,
|
|
258
259
|
);
|
|
@@ -11,7 +11,6 @@ import type * as Protocol from '../../../generated/protocol.js';
|
|
|
11
11
|
import type * as LHModel from '../../lighthouse/lighthouse.js';
|
|
12
12
|
import type * as Trace from '../../trace/trace.js';
|
|
13
13
|
import type * as Workspace from '../../workspace/workspace.js';
|
|
14
|
-
import {areOriginsEquivalent, extractContextOrigin, isOpaqueOrigin} from '../AiOrigins.js';
|
|
15
14
|
import {debugLog, isStructuredLogEnabled} from '../debug.js';
|
|
16
15
|
import type {ContextHandlerResult, DataHandlerResult} from '../tools/Tool.js';
|
|
17
16
|
|
|
@@ -158,7 +157,7 @@ export interface RequestOptions {
|
|
|
158
157
|
}
|
|
159
158
|
|
|
160
159
|
export type AllowedOriginResult = {
|
|
161
|
-
origin:
|
|
160
|
+
origin: SDK.SecurityOrigin.SecurityOrigin|undefined,
|
|
162
161
|
}|{
|
|
163
162
|
blocked: true,
|
|
164
163
|
};
|
|
@@ -193,7 +192,6 @@ export interface ConversationSuggestion {
|
|
|
193
192
|
export type ConversationSuggestions = [ConversationSuggestion, ...ConversationSuggestion[]];
|
|
194
193
|
|
|
195
194
|
export abstract class ConversationContext<T> {
|
|
196
|
-
abstract getURL(): string;
|
|
197
195
|
abstract getItem(): T;
|
|
198
196
|
abstract getTitle(): string;
|
|
199
197
|
|
|
@@ -205,47 +203,43 @@ export abstract class ConversationContext<T> {
|
|
|
205
203
|
return true;
|
|
206
204
|
}
|
|
207
205
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
/**
|
|
207
|
+
* Returns the security origin that owns this context data.
|
|
208
|
+
*
|
|
209
|
+
* The AI Assistance panel locks each conversation to the origin of the initial
|
|
210
|
+
* context. If the user selects a context with a different origin, DevTools
|
|
211
|
+
* blocks access to prevent unauthorized cross-origin data exposure.
|
|
212
|
+
*
|
|
213
|
+
* Subclasses must implement this method. If a context is detached, invalid,
|
|
214
|
+
* or anonymous, the method must return a unique opaque origin
|
|
215
|
+
* (`SDK.SecurityOrigin.SecurityOrigin.createUniqueOpaque()`).
|
|
216
|
+
*
|
|
217
|
+
* @returns The {@link SDK.SecurityOrigin.SecurityOrigin} that owns this context.
|
|
218
|
+
*/
|
|
219
|
+
abstract getOrigin(): SDK.SecurityOrigin.SecurityOrigin;
|
|
211
220
|
|
|
212
221
|
/**
|
|
213
|
-
*
|
|
214
|
-
* allowed to be included in a conversation that is locked to the provided
|
|
215
|
-
* `establishedOrigin`.
|
|
222
|
+
* Checks whether this context can participate in a conversation locked to `establishedOrigin`.
|
|
216
223
|
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
224
|
+
* Evaluation rules:
|
|
225
|
+
* 1. Returns `false` if this context origin is opaque. Opaque contexts can never
|
|
226
|
+
* participate in AI conversations.
|
|
227
|
+
* 2. Returns `true` if `establishedOrigin` is `undefined` (conversation is not yet locked).
|
|
228
|
+
* 3. Returns `true` if this context origin is same-origin with `establishedOrigin`.
|
|
220
229
|
*
|
|
221
|
-
* @param establishedOrigin The origin
|
|
222
|
-
*
|
|
230
|
+
* @param establishedOrigin The locked origin of the current conversation, or `undefined`
|
|
231
|
+
* if the conversation has not made its first query.
|
|
223
232
|
*/
|
|
224
|
-
isOriginAllowed(establishedOrigin:
|
|
233
|
+
isOriginAllowed(establishedOrigin: SDK.SecurityOrigin.SecurityOrigin|undefined): boolean {
|
|
225
234
|
const origin = this.getOrigin();
|
|
226
235
|
|
|
227
|
-
if (origin
|
|
228
|
-
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
if (!establishedOrigin) {
|
|
232
|
-
return true;
|
|
233
|
-
}
|
|
234
|
-
const established = establishedOrigin instanceof SDK.SecurityOrigin.SecurityOrigin ?
|
|
235
|
-
establishedOrigin :
|
|
236
|
-
SDK.SecurityOrigin.SecurityOrigin.create(establishedOrigin);
|
|
237
|
-
return origin.isSameOriginWith(established);
|
|
236
|
+
if (origin.isOpaque()) {
|
|
237
|
+
return false;
|
|
238
238
|
}
|
|
239
|
-
|
|
240
|
-
// If no origin is established yet, this context will be the one to lock the conversation.
|
|
241
|
-
// Opaque origins are never allowed to be used as context.
|
|
242
239
|
if (!establishedOrigin) {
|
|
243
|
-
return
|
|
240
|
+
return true;
|
|
244
241
|
}
|
|
245
|
-
|
|
246
|
-
const establishedString =
|
|
247
|
-
establishedOrigin instanceof SDK.SecurityOrigin.SecurityOrigin ? establishedOrigin.siteId() : establishedOrigin;
|
|
248
|
-
return areOriginsEquivalent(origin, establishedString);
|
|
242
|
+
return origin.isSameOriginWith(establishedOrigin);
|
|
249
243
|
}
|
|
250
244
|
|
|
251
245
|
/**
|