chrome-devtools-frontend 1.0.1713292 → 1.0.1716465
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/AUTHORS +1 -0
- package/DIR_METADATA +0 -4
- package/eslint.config.mjs +2 -0
- package/front_end/core/host/Platform.ts +37 -0
- package/front_end/core/host/UserMetricsEnums.ts +5 -2
- package/front_end/core/platform/browser/HostRuntime.ts +3 -3
- package/front_end/core/sdk/CSSProperty.ts +2 -1
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +4 -1
- package/front_end/core/sdk/DebuggerModel.ts +26 -11
- package/front_end/core/sdk/PageFunctions.ts +7 -2
- package/front_end/core/sdk/ResourceTreeModel.ts +9 -0
- package/front_end/core/sdk/RuntimeModel.ts +6 -3
- package/front_end/core/sdk/SDKSettings.ts +7 -0
- package/front_end/core/sdk/ServerSentEventsProtocol.ts +4 -2
- package/front_end/core/sdk/SourceMap.ts +0 -5
- package/front_end/core/sdk/SourceMapFunctionRanges.ts +4 -1
- package/front_end/core/sdk/SourceMapScopesInfo.ts +8 -18
- package/front_end/devtools_compatibility.js +5 -2
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +56 -6
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +29 -6
- package/front_end/entrypoints/main/MainImpl.ts +6 -14
- package/front_end/generated/Deprecation.ts +8 -7
- package/front_end/generated/InspectorBackendCommands.ts +4 -3
- package/front_end/generated/protocol-mapping.d.ts +10 -0
- package/front_end/generated/protocol-proxy-api.d.ts +8 -0
- package/front_end/generated/protocol.ts +14 -2
- package/front_end/models/ai_assistance/AiAgent2.ts +0 -1
- package/front_end/models/ai_assistance/README.md +2 -2
- package/front_end/models/ai_assistance/agents/AiAgent.ts +179 -13
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +7 -2
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +11 -16
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
- package/front_end/models/ai_assistance/skills/SkillRegistry.ts +0 -2
- package/front_end/models/ai_assistance/skills/lighthouse.md +28 -9
- package/front_end/models/ai_assistance/skills/performance.md +10 -6
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +0 -3
- package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +1 -1
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +12 -0
- package/front_end/models/ai_assistance/tools/RunLighthouse.ts +1 -1
- package/front_end/models/ai_assistance/tools/Tool.ts +11 -2
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +25 -11
- package/front_end/models/bindings/DefaultScriptMapping.ts +8 -2
- package/front_end/models/bindings/SourceMapStepping.ts +66 -5
- package/front_end/models/comment_manager/CommentManager.ts +8 -0
- package/front_end/models/emulation/DeviceModeModel.ts +4 -19
- package/front_end/models/formatter/ScriptFormatter.ts +6 -7
- package/front_end/models/javascript_metadata/NativeFunctions.ts +18 -58
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +9 -12
- package/front_end/models/trace/LanternComputationData.ts +9 -14
- package/front_end/models/trace/ModelImpl.ts +1 -1
- package/front_end/models/trace/extras/TraceTree.ts +44 -13
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -1
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +2 -2
- package/front_end/models/trace/handlers/Threads.ts +1 -1
- package/front_end/models/trace/handlers/helpers.ts +1 -1
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +71 -59
- package/front_end/models/trace/insights/CLSCulprits.ts +2 -2
- package/front_end/models/trace/insights/Common.ts +3 -2
- package/front_end/models/trace/insights/ImageDelivery.ts +3 -2
- package/front_end/models/trace/insights/RenderBlocking.ts +28 -6
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +12 -20
- package/front_end/models/trace/lantern/graph/CPUNode.ts +26 -7
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +27 -2
- package/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +8 -2
- package/front_end/models/trace/lantern/simulation/Simulator.ts +5 -2
- package/front_end/models/trace/lantern/simulation/TCPConnection.ts +1 -1
- package/front_end/models/trace/lantern/types/Lantern.ts +10 -0
- package/front_end/models/trace/types/File.ts +3 -3
- package/front_end/models/trace/types/Overlays.ts +4 -3
- package/front_end/models/trace/types/TraceEvents.ts +39 -35
- package/front_end/models/workspace/IgnoreListManager.ts +38 -6
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +5 -3
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +34 -4
- package/front_end/panels/ai_assistance/README.md +55 -14
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +4 -6
- package/front_end/panels/application/DeviceBoundSessionsTreeElement.ts +0 -8
- package/front_end/panels/application/FrameDetailsView.ts +84 -0
- package/front_end/panels/application/ResourcesPanel.ts +3 -4
- package/front_end/panels/application/WebMCPView.ts +5 -5
- package/front_end/panels/application/preloading/PreloadingView.ts +6 -3
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +5 -2
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +5 -2
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +7 -3
- package/front_end/panels/comments/CommentsPane.ts +65 -23
- package/front_end/panels/comments/commentsPane.css +11 -0
- package/front_end/panels/common/CommentThreadWidget.ts +129 -18
- package/front_end/panels/common/CommentsOverlayWidget.ts +33 -9
- package/front_end/panels/common/CommentsStatusBarPill.ts +8 -39
- package/front_end/panels/common/ExtensionServer.ts +84 -26
- package/front_end/panels/console/PromptBuilder.ts +5 -2
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +1 -118
- package/front_end/panels/elements/DOMPath.ts +38 -5
- package/front_end/panels/elements/DOMTreeContextMenu.ts +13 -8
- package/front_end/panels/elements/{ElementsTreeElement.ts → DOMTreeElementWidget.ts} +110 -472
- package/front_end/panels/elements/DOMTreeWidget.ts +74 -1253
- package/front_end/panels/elements/StylePropertiesSection.ts +3 -3
- package/front_end/panels/elements/StylePropertyTreeElement.ts +2 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +3 -1
- package/front_end/panels/elements/{elementsTreeOutline.css → domTreeWidget.css} +3 -178
- package/front_end/panels/elements/elements.ts +3 -6
- package/front_end/panels/emulation/DeviceModeToolbar.ts +0 -8
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +13 -17
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +234 -182
- package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +2 -2
- package/front_end/panels/linear_memory_inspector/components/linearMemoryViewer.css +63 -56
- package/front_end/panels/media/PlayerPropertiesView.ts +4 -4
- package/front_end/panels/network/RequestPreviewView.ts +2 -6
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +5 -2
- package/front_end/panels/profiler/HeapSnapshotView.ts +5 -2
- package/front_end/panels/profiler/ProfilesPanel.ts +2 -6
- package/front_end/panels/protocol_monitor/JSONEditor.ts +10 -3
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +6 -5
- package/front_end/panels/recorder/RecorderPanel.ts +2 -1
- package/front_end/panels/recorder/RecordingView.ts +1 -1
- package/front_end/panels/recorder/StepView.ts +5 -3
- package/front_end/panels/recorder/stepView.css +4 -0
- package/front_end/panels/security/SecurityPanel.ts +163 -100
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +36 -19
- package/front_end/panels/sources/DebuggerPlugin.ts +129 -82
- package/front_end/panels/sources/EditorHistory.ts +172 -0
- package/front_end/panels/sources/Plugin.ts +2 -2
- package/front_end/panels/sources/SnippetsPlugin.ts +20 -6
- package/front_end/panels/sources/SourcesPanel.ts +58 -8
- package/front_end/panels/sources/SourcesView.ts +135 -127
- package/front_end/panels/sources/TabbedEditorContainer.ts +262 -420
- package/front_end/panels/sources/UISourceCodeFrame.ts +9 -7
- package/front_end/panels/sources/sources-meta.ts +26 -63
- package/front_end/panels/sources/sources.ts +2 -0
- package/front_end/panels/sources/tabbedEditorContainer.css +98 -0
- package/front_end/panels/timeline/README.md +3 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +8 -13
- package/front_end/panels/timeline/components/DetailsView.ts +4 -4
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -2
- package/front_end/panels/timeline/components/TimelineRangeSummaryView.ts +5 -8
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +22 -36
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +9 -0
- package/front_end/panels/timeline/timelineFlameChartView.css +1 -42
- package/front_end/panels/whats_new/ReleaseNoteText.ts +8 -8
- package/front_end/panels/whats_new/resources/WNDT.md +5 -5
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/legacy-javascript/README.chromium +2 -2
- package/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +337 -161
- package/front_end/third_party/legacy-javascript/package.json +1 -1
- 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 +77 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +474 -358
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.d.ts +15 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js +27 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts +13 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.js +38 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +20 -0
- 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.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js +9 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js +6 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Input.js +4 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js +9 -8
- 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/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js +9 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Request.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Request.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/UserPrompt.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/UserPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/util.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/util.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +11 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts +1 -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 -2
- 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/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js +9 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/utils.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/utils.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +9 -2
- 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/ConnectOptions.d.ts +8 -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/ConsoleMessage.d.ts +24 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConsoleMessage.js +30 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConsoleMessage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CustomQueryHandler.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CustomQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js.map +1 -1
- 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 +7 -2
- 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 +10 -0
- 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 +7 -1
- 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.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +77 -0
- package/front_end/third_party/puppeteer/package/package.json +7 -7
- package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/api/HTTPResponse.ts +41 -0
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +20 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +6 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +2 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/util.ts +3 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +9 -2
- package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +10 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +11 -2
- package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +19 -2
- package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +6 -1
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +10 -2
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +9 -0
- package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +35 -0
- package/front_end/third_party/puppeteer/package/src/common/CustomQueryHandler.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/util.ts +6 -2
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +7 -2
- package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +12 -1
- 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/ui/comments/CommentAnchorResolver.ts +105 -39
- package/front_end/ui/comments/CommentOverlayManager.ts +37 -15
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +1 -2
- package/front_end/ui/components/text_editor/config.ts +32 -26
- package/front_end/ui/legacy/InspectorView.ts +13 -12
- package/front_end/ui/legacy/ProgressIndicator.ts +18 -0
- package/front_end/ui/legacy/SearchableView.ts +406 -308
- package/front_end/ui/legacy/SplitWidget.ts +30 -11
- package/front_end/ui/legacy/StackPane.ts +1 -2
- package/front_end/ui/legacy/StackedPane.ts +1 -2
- package/front_end/ui/legacy/TabbedPane.ts +19 -3
- package/front_end/ui/legacy/Toolbar.ts +2 -2
- package/front_end/ui/legacy/UIUtils.ts +1 -46
- package/front_end/ui/legacy/View.ts +5 -5
- package/front_end/ui/legacy/ViewManager.ts +8 -14
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +4 -0
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +98 -65
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +59 -26
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +165 -56
- package/front_end/ui/legacy/components/source_frame/imageView.css +27 -25
- package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +8 -6
- package/front_end/ui/legacy/components/source_frame/source_frame-meta.ts +3 -5
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/tabbedPane.css +0 -91
- package/front_end/ui/settings/SourcesSettings.ts +62 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/package.json +1 -1
- package/front_end/models/ai_assistance/skills/accessibility.md +0 -33
- package/front_end/panels/common/commentsStatusBarPill.css +0 -13
- package/front_end/panels/elements/ShortcutTreeElement.ts +0 -172
- package/front_end/panels/elements/TopLayerContainer.ts +0 -54
|
@@ -89,7 +89,7 @@ inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOrig
|
|
|
89
89
|
inspectorBackend.registerEnum("Audits.SRIMessageSignatureError", {MissingSignatureHeader: "MissingSignatureHeader", MissingSignatureInputHeader: "MissingSignatureInputHeader", InvalidSignatureHeader: "InvalidSignatureHeader", InvalidSignatureInputHeader: "InvalidSignatureInputHeader", SignatureHeaderValueIsNotByteSequence: "SignatureHeaderValueIsNotByteSequence", SignatureHeaderValueIsParameterized: "SignatureHeaderValueIsParameterized", SignatureHeaderValueIsIncorrectLength: "SignatureHeaderValueIsIncorrectLength", SignatureInputHeaderMissingLabel: "SignatureInputHeaderMissingLabel", SignatureInputHeaderValueNotInnerList: "SignatureInputHeaderValueNotInnerList", SignatureInputHeaderValueMissingComponents: "SignatureInputHeaderValueMissingComponents", SignatureInputHeaderInvalidComponentType: "SignatureInputHeaderInvalidComponentType", SignatureInputHeaderInvalidComponentName: "SignatureInputHeaderInvalidComponentName", SignatureInputHeaderInvalidHeaderComponentParameter: "SignatureInputHeaderInvalidHeaderComponentParameter", SignatureInputHeaderInvalidDerivedComponentParameter: "SignatureInputHeaderInvalidDerivedComponentParameter", SignatureInputHeaderKeyIdLength: "SignatureInputHeaderKeyIdLength", SignatureInputHeaderInvalidParameter: "SignatureInputHeaderInvalidParameter", SignatureInputHeaderMissingRequiredParameters: "SignatureInputHeaderMissingRequiredParameters", ValidationFailedSignatureExpired: "ValidationFailedSignatureExpired", ValidationFailedInvalidLength: "ValidationFailedInvalidLength", ValidationFailedSignatureMismatch: "ValidationFailedSignatureMismatch", ValidationFailedIntegrityMismatch: "ValidationFailedIntegrityMismatch", SignatureBaseUnknownDerivedComponent: "SignatureBaseUnknownDerivedComponent", SignatureBaseMissingHeader: "SignatureBaseMissingHeader", SignatureBaseInvalidUnencodedDigest: "SignatureBaseInvalidUnencodedDigest", SignatureBaseUnsupportedComponent: "SignatureBaseUnsupportedComponent"});
|
|
90
90
|
inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionary: "MalformedDictionary", UnknownAlgorithm: "UnknownAlgorithm", IncorrectDigestType: "IncorrectDigestType", IncorrectDigestLength: "IncorrectDigestLength"});
|
|
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
|
-
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"});
|
|
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", GeolocationPromptWithoutUserGesture: "GeolocationPromptWithoutUserGesture"});
|
|
93
93
|
inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
|
|
94
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"});
|
|
@@ -845,7 +845,7 @@ inspectorBackend.registerEnum("Network.ChallengeEventDetailsChallengeResult", {S
|
|
|
845
845
|
inspectorBackend.registerEvent("Network.dataReceived", ["requestId", "timestamp", "dataLength", "encodedDataLength", "data"]);
|
|
846
846
|
inspectorBackend.registerEvent("Network.eventSourceMessageReceived", ["requestId", "timestamp", "eventName", "eventId", "data"]);
|
|
847
847
|
inspectorBackend.registerEvent("Network.loadingFailed", ["requestId", "timestamp", "type", "errorText", "canceled", "blockedReason", "corsErrorStatus"]);
|
|
848
|
-
inspectorBackend.registerEvent("Network.loadingFinished", ["requestId", "timestamp", "encodedDataLength"]);
|
|
848
|
+
inspectorBackend.registerEvent("Network.loadingFinished", ["requestId", "timestamp", "encodedDataLength", "encodedBodyLength"]);
|
|
849
849
|
inspectorBackend.registerEvent("Network.requestServedFromCache", ["requestId"]);
|
|
850
850
|
inspectorBackend.registerEvent("Network.requestWillBeSent", ["requestId", "loaderId", "documentURL", "request", "timestamp", "wallTime", "initiator", "redirectHasExtraInfo", "redirectResponse", "type", "frameId", "hasUserGesture", "renderBlockingBehavior"]);
|
|
851
851
|
inspectorBackend.registerEvent("Network.resourceChangedPriority", ["requestId", "newPriority", "timestamp"]);
|
|
@@ -1059,7 +1059,7 @@ inspectorBackend.registerEnum("Page.AdFrameExplanation", {ParentIsAd: "ParentIsA
|
|
|
1059
1059
|
inspectorBackend.registerEnum("Page.SecureContextType", {Secure: "Secure", SecureLocalhost: "SecureLocalhost", InsecureScheme: "InsecureScheme", InsecureAncestor: "InsecureAncestor"});
|
|
1060
1060
|
inspectorBackend.registerEnum("Page.CrossOriginIsolatedContextType", {Isolated: "Isolated", NotIsolated: "NotIsolated", NotIsolatedFeatureDisabled: "NotIsolatedFeatureDisabled"});
|
|
1061
1061
|
inspectorBackend.registerEnum("Page.GatedAPIFeatures", {SharedArrayBuffers: "SharedArrayBuffers", SharedArrayBuffersTransferAllowed: "SharedArrayBuffersTransferAllowed", PerformanceMeasureMemory: "PerformanceMeasureMemory", PerformanceProfile: "PerformanceProfile"});
|
|
1062
|
-
inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AllScreensCapture: "all-screens-capture", AmbientLightSensor: "ambient-light-sensor", AriaNotify: "aria-notify", Autofill: "autofill", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", CapturedSurfaceControl: "captured-surface-control", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChPrefersReducedMotion: "ch-prefers-reduced-motion", ChPrefersReducedTransparency: "ch-prefers-reduced-transparency", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaHighEntropyValues: "ch-ua-high-entropy-values", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFormFactors: "ch-ua-form-factors", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", ComputePressure: "compute-pressure", ControlledFrame: "controlled-frame", CrossOriginIsolated: "cross-origin-isolated", DeferredFetch: "deferred-fetch", DeferredFetchMinimal: "deferred-fetch-minimal", DeviceAttributes: "device-attributes", DigitalCredentialsCreate: "digital-credentials-create", DigitalCredentialsGet: "digital-credentials-get", DirectSockets: "direct-sockets", DirectSocketsMulticast: "direct-sockets-multicast", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Haptics: "haptics", Hid: "hid", IdentityCredentialsGet: "identity-credentials-get", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", KeyboardMap: "keyboard-map", LanguageDetector: "language-detector", LanguageModel: "language-model", LocalFonts: "local-fonts", LocalNetwork: "local-network", LocalNetworkAccess: "local-network-access", LoopbackNetwork: "loopback-network", Magnetometer: "magnetometer", ManualText: "manual-text", MediaPlaybackWhileNotVisible: "media-playback-while-not-visible", Microphone: "microphone", Midi: "midi", OnDeviceSpeechRecognition: "on-device-speech-recognition", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PrivateStateTokenIssuance: "private-state-token-issuance", PrivateStateTokenRedemption: "private-state-token-redemption", PublickeyCredentialsCreate: "publickey-credentials-create", PublickeyCredentialsGet: "publickey-credentials-get", PublickeyCredentialsRemoteClientDataJson: "publickey-credentials-remote-client-data-json", Rewriter: "rewriter", ScreenWakeLock: "screen-wake-lock", Serial: "serial",
|
|
1062
|
+
inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AllScreensCapture: "all-screens-capture", AmbientLightSensor: "ambient-light-sensor", AriaNotify: "aria-notify", Autofill: "autofill", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", CapturedSurfaceControl: "captured-surface-control", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChPrefersReducedMotion: "ch-prefers-reduced-motion", ChPrefersReducedTransparency: "ch-prefers-reduced-transparency", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaHighEntropyValues: "ch-ua-high-entropy-values", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFormFactors: "ch-ua-form-factors", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", ComputePressure: "compute-pressure", ControlledFrame: "controlled-frame", CrossOriginIsolated: "cross-origin-isolated", DeferredFetch: "deferred-fetch", DeferredFetchMinimal: "deferred-fetch-minimal", DeviceAttributes: "device-attributes", DigitalCredentialsCreate: "digital-credentials-create", DigitalCredentialsGet: "digital-credentials-get", DirectSockets: "direct-sockets", DirectSocketsMulticast: "direct-sockets-multicast", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Haptics: "haptics", Hid: "hid", IdentityCredentialsGet: "identity-credentials-get", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", KeyboardMap: "keyboard-map", LanguageDetector: "language-detector", LanguageModel: "language-model", LocalFonts: "local-fonts", LocalNetwork: "local-network", LocalNetworkAccess: "local-network-access", LoopbackNetwork: "loopback-network", Magnetometer: "magnetometer", ManualText: "manual-text", MediaPlaybackWhileNotVisible: "media-playback-while-not-visible", Microphone: "microphone", Midi: "midi", OnDeviceSpeechRecognition: "on-device-speech-recognition", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PrivateStateTokenIssuance: "private-state-token-issuance", PrivateStateTokenRedemption: "private-state-token-redemption", PublickeyCredentialsCreate: "publickey-credentials-create", PublickeyCredentialsGet: "publickey-credentials-get", PublickeyCredentialsRemoteClientDataJson: "publickey-credentials-remote-client-data-json", Rewriter: "rewriter", ScreenWakeLock: "screen-wake-lock", Serial: "serial", SmartCard: "smart-card", SpeakerSelection: "speaker-selection", StorageAccess: "storage-access", SubApps: "sub-apps", Summarizer: "summarizer", SyncXhr: "sync-xhr", Tools: "tools", Translator: "translator", Unload: "unload", Usb: "usb", UsbUnrestricted: "usb-unrestricted", VerticalScroll: "vertical-scroll", WebAppInstallation: "web-app-installation", Webnn: "webnn", WebPrinting: "web-printing", WebShare: "web-share", WindowManagement: "window-management", Writer: "writer", XrSpatialTracking: "xr-spatial-tracking"});
|
|
1063
1063
|
inspectorBackend.registerEnum("Page.PermissionsPolicyBlockReason", {Header: "Header", IframeAttribute: "IframeAttribute", InFencedFrameTree: "InFencedFrameTree", InIsolatedApp: "InIsolatedApp"});
|
|
1064
1064
|
inspectorBackend.registerEnum("Page.OriginTrialTokenStatus", {Success: "Success", NotSupported: "NotSupported", Insecure: "Insecure", Expired: "Expired", WrongOrigin: "WrongOrigin", InvalidSignature: "InvalidSignature", Malformed: "Malformed", WrongVersion: "WrongVersion", FeatureDisabled: "FeatureDisabled", TokenDisabled: "TokenDisabled", FeatureDisabledForUser: "FeatureDisabledForUser", UnknownTrial: "UnknownTrial"});
|
|
1065
1065
|
inspectorBackend.registerEnum("Page.OriginTrialStatus", {Enabled: "Enabled", ValidTokenNotProvided: "ValidTokenNotProvided", OSNotSupported: "OSNotSupported", TrialNotAllowed: "TrialNotAllowed"});
|
|
@@ -1126,6 +1126,7 @@ inspectorBackend.registerCommand("Page.getAppId", [], ["appId", "recommendedId",
|
|
|
1126
1126
|
inspectorBackend.registerCommand("Page.getSubApps", [], ["subApps"], "Returns the list of installed child Sub-Apps for the inspected parent app.");
|
|
1127
1127
|
inspectorBackend.registerCommand("Page.getSiblingSubApps", [], ["subApps"], "Returns the list of sibling Sub-Apps sharing the same parent app if the inspected context is a Sub-App.");
|
|
1128
1128
|
inspectorBackend.registerCommand("Page.getAdScriptAncestry", [{"name": "frameId", "type": "string", "optional": false, "description": "", "typeRef": "Page.FrameId"}], ["adScriptAncestry"], "");
|
|
1129
|
+
inspectorBackend.registerCommand("Page.getSpellCheckCustomDictionary", [{"name": "frameId", "type": "string", "optional": false, "description": "", "typeRef": "Page.FrameId"}], ["words"], "Returns the words that the frame's document added to its spell check custom dictionary with `document.spellCheckCustomDictionary.addWords()`, sorted. Page script cannot read the dictionary back; this lets developers inspect it.");
|
|
1129
1130
|
inspectorBackend.registerCommand("Page.getFrameTree", [], ["frameTree"], "Returns present frame tree structure.");
|
|
1130
1131
|
inspectorBackend.registerCommand("Page.getLayoutMetrics", [], ["layoutViewport", "visualViewport", "contentSize", "cssLayoutViewport", "cssVisualViewport", "cssContentSize"], "Returns metrics relating to the layouting of the page, such as viewport bounds/scale.");
|
|
1131
1132
|
inspectorBackend.registerCommand("Page.getNavigationHistory", [], ["currentIndex", "entries"], "Returns navigation history for the current page.");
|
|
@@ -4228,6 +4228,16 @@ export namespace ProtocolMapping {
|
|
|
4228
4228
|
paramsType: [Protocol.Page.GetAdScriptAncestryRequest];
|
|
4229
4229
|
returnType: Protocol.Page.GetAdScriptAncestryResponse;
|
|
4230
4230
|
};
|
|
4231
|
+
/**
|
|
4232
|
+
* Returns the words that the frame's document added to its spell check custom
|
|
4233
|
+
* dictionary with `document.spellCheckCustomDictionary.addWords()`, sorted.
|
|
4234
|
+
* Page script cannot read the dictionary back; this lets developers inspect
|
|
4235
|
+
* it.
|
|
4236
|
+
*/
|
|
4237
|
+
'Page.getSpellCheckCustomDictionary': {
|
|
4238
|
+
paramsType: [Protocol.Page.GetSpellCheckCustomDictionaryRequest];
|
|
4239
|
+
returnType: Protocol.Page.GetSpellCheckCustomDictionaryResponse;
|
|
4240
|
+
};
|
|
4231
4241
|
/**
|
|
4232
4242
|
* Returns present frame tree structure.
|
|
4233
4243
|
*/
|
|
@@ -3422,6 +3422,14 @@ declare namespace ProtocolProxyApi {
|
|
|
3422
3422
|
|
|
3423
3423
|
invoke_getAdScriptAncestry(params: Protocol.Page.GetAdScriptAncestryRequest): Promise<Protocol.Page.GetAdScriptAncestryResponse>;
|
|
3424
3424
|
|
|
3425
|
+
/**
|
|
3426
|
+
* Returns the words that the frame's document added to its spell check custom
|
|
3427
|
+
* dictionary with `document.spellCheckCustomDictionary.addWords()`, sorted.
|
|
3428
|
+
* Page script cannot read the dictionary back; this lets developers inspect
|
|
3429
|
+
* it.
|
|
3430
|
+
*/
|
|
3431
|
+
invoke_getSpellCheckCustomDictionary(params: Protocol.Page.GetSpellCheckCustomDictionaryRequest): Promise<Protocol.Page.GetSpellCheckCustomDictionaryResponse>;
|
|
3432
|
+
|
|
3425
3433
|
/**
|
|
3426
3434
|
* Returns present frame tree structure.
|
|
3427
3435
|
*/
|
|
@@ -1291,6 +1291,7 @@ export namespace Audits {
|
|
|
1291
1291
|
FormModelContextMissingToolDescription = 'FormModelContextMissingToolDescription',
|
|
1292
1292
|
FormModelContextRequiredParameterMissingName = 'FormModelContextRequiredParameterMissingName',
|
|
1293
1293
|
FormModelContextParameterMissingName = 'FormModelContextParameterMissingName',
|
|
1294
|
+
GeolocationPromptWithoutUserGesture = 'GeolocationPromptWithoutUserGesture',
|
|
1294
1295
|
}
|
|
1295
1296
|
|
|
1296
1297
|
/**
|
|
@@ -13002,6 +13003,11 @@ export namespace Network {
|
|
|
13002
13003
|
* Total number of bytes received for this request.
|
|
13003
13004
|
*/
|
|
13004
13005
|
encodedDataLength: number;
|
|
13006
|
+
/**
|
|
13007
|
+
* Size of the response body before removing content encodings.
|
|
13008
|
+
* Includes cached bodies, but excludes headers and transfer framing.
|
|
13009
|
+
*/
|
|
13010
|
+
encodedBodyLength?: number;
|
|
13005
13011
|
}
|
|
13006
13012
|
|
|
13007
13013
|
/**
|
|
@@ -14834,8 +14840,6 @@ export namespace Page {
|
|
|
14834
14840
|
Rewriter = 'rewriter',
|
|
14835
14841
|
ScreenWakeLock = 'screen-wake-lock',
|
|
14836
14842
|
Serial = 'serial',
|
|
14837
|
-
SharedStorage = 'shared-storage',
|
|
14838
|
-
SharedStorageSelectUrl = 'shared-storage-select-url',
|
|
14839
14843
|
SmartCard = 'smart-card',
|
|
14840
14844
|
SpeakerSelection = 'speaker-selection',
|
|
14841
14845
|
StorageAccess = 'storage-access',
|
|
@@ -16027,6 +16031,14 @@ export namespace Page {
|
|
|
16027
16031
|
adScriptAncestry?: Network.AdAncestry;
|
|
16028
16032
|
}
|
|
16029
16033
|
|
|
16034
|
+
export interface GetSpellCheckCustomDictionaryRequest {
|
|
16035
|
+
frameId: FrameId;
|
|
16036
|
+
}
|
|
16037
|
+
|
|
16038
|
+
export interface GetSpellCheckCustomDictionaryResponse extends ProtocolResponseWithError {
|
|
16039
|
+
words: string[];
|
|
16040
|
+
}
|
|
16041
|
+
|
|
16030
16042
|
export interface GetFrameTreeResponse extends ProtocolResponseWithError {
|
|
16031
16043
|
/**
|
|
16032
16044
|
* Present frame tree structure.
|
|
@@ -39,7 +39,6 @@ import {ToolRegistry} from './tools/ToolRegistry.js';
|
|
|
39
39
|
const SKILL_DISPLAY_NAMES: Record<SkillName, string> = {
|
|
40
40
|
styling: 'CSS and styling',
|
|
41
41
|
network: 'Network requests',
|
|
42
|
-
accessibility: 'Accessibility',
|
|
43
42
|
performance: 'Performance',
|
|
44
43
|
storage: 'Storage',
|
|
45
44
|
sources: 'Sources',
|
|
@@ -143,6 +143,6 @@ To aid debugging, you can enable the AI Assistance logging. This setting is stor
|
|
|
143
143
|
|
|
144
144
|
Now, when interacting with the AI and sending requests, you will see output logged to the console. You can use the `debugLog` helper to add your own logging as you are building out your feature.
|
|
145
145
|
|
|
146
|
-
### Testing the
|
|
146
|
+
### Testing the Lighthouse Skill
|
|
147
147
|
|
|
148
|
-
The
|
|
148
|
+
The Lighthouse skill (`lighthouse.md`) handles Lighthouse audits across all categories (including accessibility) as well as live DOM accessibility inspection. It can either inspect an existing Lighthouse report via `getLighthouseAudits` or record a new report via `runLighthouse`.
|
|
@@ -23,6 +23,65 @@ import {
|
|
|
23
23
|
type UrlString = Platform.DevToolsPath.UrlString;
|
|
24
24
|
const MAX_SUGGESTION_LENGTH = 200;
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* The types of event in the response stream that `AiConversation#run()`
|
|
28
|
+
* yields to the AI assistance panel. The same events, minus a few, are saved
|
|
29
|
+
* as the conversation history and replayed when a saved conversation opens.
|
|
30
|
+
*
|
|
31
|
+
* ## Order of events in one run
|
|
32
|
+
*
|
|
33
|
+
* ```
|
|
34
|
+
* USER_QUERY (AiConversation, first run of a query only)
|
|
35
|
+
* CONTEXT* (agent's handleContextDetails())
|
|
36
|
+
* repeated for each model request, up to MAX_STEPS:
|
|
37
|
+
* QUERYING
|
|
38
|
+
* one of:
|
|
39
|
+
* ANSWER (complete: false)*, ANSWER (complete: true) text-only reply; the run ends
|
|
40
|
+
* [ANSWER (complete: true)], <tool call events> function call, optionally with text
|
|
41
|
+
* ERROR the run ends
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* An `ERROR` can also follow the tool call events, for example when the user
|
|
45
|
+
* aborts, the page navigates cross-origin, or the run reaches `MAX_STEPS`.
|
|
46
|
+
*
|
|
47
|
+
* ## Events for one tool call
|
|
48
|
+
*
|
|
49
|
+
* `AiAgent#callFunction()` yields these. All events for one call carry the
|
|
50
|
+
* same `callId`.
|
|
51
|
+
*
|
|
52
|
+
* ```
|
|
53
|
+
* TITLE?, THOUGHT? from the tool's displayInfoFromArgs()
|
|
54
|
+
* if the tool needs approval:
|
|
55
|
+
* ACTION {code} code only, shown above the approval prompt;
|
|
56
|
+
* skipped if displayInfoFromArgs() has no action
|
|
57
|
+
* SIDE_EFFECT the panel shows the prompt and calls confirm()
|
|
58
|
+
* if denied: ACTION {code, output, canceled: true}, and the call ends
|
|
59
|
+
* ACTION {code, output, widgets, toolName} result or error
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* If the tool switches context instead of returning a result, there is no
|
|
63
|
+
* result `ACTION`. `AiAgent#run()` yields `CONTEXT_CHANGE` and returns, and
|
|
64
|
+
* `AiConversation` starts a new run with the agent for the new context.
|
|
65
|
+
*
|
|
66
|
+
* ## Saved history
|
|
67
|
+
*
|
|
68
|
+
* `AiConversation` saves every event except `CONTEXT_CHANGE` and partial
|
|
69
|
+
* `ANSWER`s. `AiConversation#serialize()` removes `confirm`, images and
|
|
70
|
+
* widgets, and redacts the `ACTION` output of tools annotated with
|
|
71
|
+
* `REDACT_FROM_HISTORY`. Saved data has no version field, so new fields must
|
|
72
|
+
* be optional.
|
|
73
|
+
*
|
|
74
|
+
* ## How the panel renders events
|
|
75
|
+
*
|
|
76
|
+
* `AiAssistancePanel#consumeResponseStream()` builds one chat message per
|
|
77
|
+
* `USER_QUERY` and one step per tool call:
|
|
78
|
+
* - `QUERYING` starts a new step with a spinner. The panel shows the step only
|
|
79
|
+
* if it is the first part of the message. Otherwise, the step stays hidden
|
|
80
|
+
* until a tool call fills it in.
|
|
81
|
+
* - `TITLE`, `THOUGHT`, `ACTION` and `SIDE_EFFECT` update the step for their
|
|
82
|
+
* `callId`. Events saved before `callId` existed update the current step.
|
|
83
|
+
* - `ANSWER` adds the answer text. `ERROR` sets the message error.
|
|
84
|
+
*/
|
|
26
85
|
export const enum ResponseType {
|
|
27
86
|
CONTEXT = 'context',
|
|
28
87
|
TITLE = 'title',
|
|
@@ -68,6 +127,10 @@ export interface AnswerResponse {
|
|
|
68
127
|
widgets?: AiWidget[];
|
|
69
128
|
}
|
|
70
129
|
|
|
130
|
+
/**
|
|
131
|
+
* No agent yields this event. The panel still handles it by attaching the
|
|
132
|
+
* suggestions to the last answer.
|
|
133
|
+
*/
|
|
71
134
|
export interface SuggestionsResponse {
|
|
72
135
|
type: ResponseType.SUGGESTIONS;
|
|
73
136
|
suggestions: [string, ...string[]];
|
|
@@ -83,32 +146,79 @@ export interface ContextDetail {
|
|
|
83
146
|
text: string;
|
|
84
147
|
codeLang?: string;
|
|
85
148
|
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Describes the context sent with the user's query, such as the selected
|
|
152
|
+
* element. The agent's `handleContextDetails()` yields it before the first
|
|
153
|
+
* model request. The panel shows it as a completed "Analyzing data" step.
|
|
154
|
+
*/
|
|
86
155
|
export interface ContextResponse {
|
|
87
156
|
type: ResponseType.CONTEXT;
|
|
88
157
|
details: [ContextDetail, ...ContextDetail[]];
|
|
89
158
|
widgets?: AiWidget[];
|
|
90
159
|
}
|
|
91
160
|
|
|
92
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Identifies the tool call that an event belongs to. `AiAgent#callFunction()`
|
|
163
|
+
* generates one per call and sets it on every event for that call. Only the
|
|
164
|
+
* UI reads it; the agent never sends it to the model.
|
|
165
|
+
*
|
|
166
|
+
* Conversations saved before this field existed do not have it. The panel
|
|
167
|
+
* applies events without a `callId` to the current step.
|
|
168
|
+
*/
|
|
169
|
+
interface ToolCallEvent {
|
|
170
|
+
callId?: string;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* The heading of a tool call's step, from `displayInfoFromArgs().title`.
|
|
175
|
+
*/
|
|
176
|
+
export interface TitleResponse extends ToolCallEvent {
|
|
93
177
|
type: ResponseType.TITLE;
|
|
94
178
|
title: string;
|
|
179
|
+
/**
|
|
180
|
+
* No agent sets this field.
|
|
181
|
+
*/
|
|
95
182
|
rpcId?: Host.AidaClient.RpcGlobalId;
|
|
96
183
|
}
|
|
97
184
|
|
|
98
|
-
|
|
185
|
+
/**
|
|
186
|
+
* Explanation text for a tool call's step, from
|
|
187
|
+
* `displayInfoFromArgs().thought`. The panel marks the step as completed when
|
|
188
|
+
* it receives a thought, even though the tool has not run yet.
|
|
189
|
+
*/
|
|
190
|
+
export interface ThoughtResponse extends ToolCallEvent {
|
|
99
191
|
type: ResponseType.THOUGHT;
|
|
100
192
|
thought: string;
|
|
193
|
+
/**
|
|
194
|
+
* No agent sets this field.
|
|
195
|
+
*/
|
|
101
196
|
rpcId?: Host.AidaClient.RpcGlobalId;
|
|
102
197
|
}
|
|
103
198
|
|
|
104
|
-
|
|
199
|
+
/**
|
|
200
|
+
* Asks the user to approve a tool call that has side effects. The agent waits
|
|
201
|
+
* until `confirm()` is called. If `displayInfoFromArgs()` returns an
|
|
202
|
+
* `action`, the agent yields it in a code-only `ACTION` just before this
|
|
203
|
+
* event.
|
|
204
|
+
*/
|
|
205
|
+
export interface SideEffectResponse extends ToolCallEvent {
|
|
105
206
|
type: ResponseType.SIDE_EFFECT;
|
|
106
207
|
description: string|null;
|
|
208
|
+
/**
|
|
209
|
+
* No agent sets this field. The code comes from the preceding `ACTION`.
|
|
210
|
+
*/
|
|
107
211
|
code?: string;
|
|
108
212
|
confirm: (decision: PermissionDecision) => void;
|
|
109
213
|
permissionPrompt?: PermissionPrompt;
|
|
110
214
|
permissionTitle?: string;
|
|
111
215
|
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Yielded when a tool selects a new context, for example a network request.
|
|
219
|
+
* `AiConversation` switches to the agent for that context and starts a new
|
|
220
|
+
* run. `AiConversation` does not save this event in the history.
|
|
221
|
+
*/
|
|
112
222
|
export interface ContextChangeResponse {
|
|
113
223
|
type: ResponseType.CONTEXT_CHANGE;
|
|
114
224
|
/**
|
|
@@ -123,22 +233,51 @@ export interface ContextChangeResponse {
|
|
|
123
233
|
|
|
124
234
|
interface SerializedSideEffectResponse extends Omit<SideEffectResponse, 'confirm'> {}
|
|
125
235
|
|
|
126
|
-
|
|
236
|
+
/**
|
|
237
|
+
* The code and result of a tool call. A call yields one or two:
|
|
238
|
+
* - Calls that need approval and have code first yield a code-only `ACTION`
|
|
239
|
+
* (no `output`), so the panel can show the code above the approval prompt.
|
|
240
|
+
* - Every call that runs, fails or is denied ends with an `ACTION` that has
|
|
241
|
+
* an `output`.
|
|
242
|
+
*/
|
|
243
|
+
export interface ActionResponse extends ToolCallEvent {
|
|
127
244
|
type: ResponseType.ACTION;
|
|
245
|
+
/**
|
|
246
|
+
* The text shown in the step's code box, from
|
|
247
|
+
* `displayInfoFromArgs().action`. It is real code only for tools that run
|
|
248
|
+
* code, such as `executeJavaScript`. For other tools it is a readable form of
|
|
249
|
+
* the call.
|
|
250
|
+
*/
|
|
128
251
|
code?: string;
|
|
252
|
+
/**
|
|
253
|
+
* The tool's result, error message, or the denial message. Missing on the
|
|
254
|
+
* code-only `ACTION` that precedes an approval prompt.
|
|
255
|
+
*/
|
|
129
256
|
output?: string;
|
|
257
|
+
/**
|
|
258
|
+
* True if the user denied the call, so the tool did not run.
|
|
259
|
+
*/
|
|
130
260
|
canceled: boolean;
|
|
131
261
|
widgets?: AiWidget[];
|
|
132
262
|
/**
|
|
133
|
-
* The name of the
|
|
263
|
+
* The name of the tool. Set on the result `ACTION` but not on the code-only
|
|
264
|
+
* or denied `ACTION`. `AiConversation#serialize()` uses it to redact the
|
|
265
|
+
* output of tools annotated with `REDACT_FROM_HISTORY`.
|
|
134
266
|
*/
|
|
135
267
|
toolName?: string;
|
|
136
268
|
}
|
|
137
269
|
|
|
270
|
+
/**
|
|
271
|
+
* Yielded before each model request. The panel starts a new step for it.
|
|
272
|
+
*/
|
|
138
273
|
export interface QueryingResponse {
|
|
139
274
|
type: ResponseType.QUERYING;
|
|
140
275
|
}
|
|
141
276
|
|
|
277
|
+
/**
|
|
278
|
+
* The user's query. Yielded by `AiConversation`, not by the agent, before
|
|
279
|
+
* the first run for the query. The panel starts a new chat message for it.
|
|
280
|
+
*/
|
|
142
281
|
export interface UserQuery {
|
|
143
282
|
type: ResponseType.USER_QUERY;
|
|
144
283
|
query: string;
|
|
@@ -476,7 +615,17 @@ export interface FunctionDeclaration<Args extends Record<string, unknown>, Retur
|
|
|
476
615
|
*/
|
|
477
616
|
parameters: Host.AidaClient.FunctionObjectParam<keyof Args>;
|
|
478
617
|
/**
|
|
479
|
-
*
|
|
618
|
+
* Returns the text the UI shows for a call to this function. The agent
|
|
619
|
+
* calls it before the handler runs.
|
|
620
|
+
*
|
|
621
|
+
* - `title`: the step heading, sent as `TITLE`.
|
|
622
|
+
* - `thought`: optional explanation shown in the step, sent as `THOUGHT`.
|
|
623
|
+
* - `action`: the text shown in the step's code box, sent as
|
|
624
|
+
* `ACTION.code`. It is real code only for tools that run code, such as
|
|
625
|
+
* `executeJavaScript`. For other tools it is a readable form of the call,
|
|
626
|
+
* for example `getInsightDetails('NAVIGATION_0', 'LCPBreakdown')`, and is
|
|
627
|
+
* never executed.
|
|
628
|
+
* - `suggestions`: `AiAgent` does not use this field.
|
|
480
629
|
*/
|
|
481
630
|
displayInfoFromArgs?: (
|
|
482
631
|
args: Args,
|
|
@@ -981,6 +1130,17 @@ export abstract class AiAgent<T> {
|
|
|
981
1130
|
response: {...result, widgets: undefined},
|
|
982
1131
|
},
|
|
983
1132
|
};
|
|
1133
|
+
if (i === MAX_STEPS - 1) {
|
|
1134
|
+
// Normally, the functionResponse is pushed at the start of the next
|
|
1135
|
+
// iteration. Since no further iteration will run, push it here so the
|
|
1136
|
+
// last functionCall is not left unpaired in history.
|
|
1137
|
+
this.#history.push({
|
|
1138
|
+
parts: [query],
|
|
1139
|
+
role: Host.AidaClient.Role.ROLE_UNSPECIFIED,
|
|
1140
|
+
});
|
|
1141
|
+
yield this.#createErrorResponse(ErrorType.MAX_STEPS);
|
|
1142
|
+
break;
|
|
1143
|
+
}
|
|
984
1144
|
request = this.buildRequest(query, Host.AidaClient.Role.ROLE_UNSPECIFIED);
|
|
985
1145
|
} catch (err) {
|
|
986
1146
|
if (err instanceof CrossOriginError) {
|
|
@@ -995,11 +1155,6 @@ export abstract class AiAgent<T> {
|
|
|
995
1155
|
yield this.#createErrorResponse(ErrorType.UNKNOWN);
|
|
996
1156
|
break;
|
|
997
1157
|
}
|
|
998
|
-
|
|
999
|
-
if (i === MAX_STEPS - 1) {
|
|
1000
|
-
yield this.#createErrorResponse(ErrorType.MAX_STEPS);
|
|
1001
|
-
break;
|
|
1002
|
-
}
|
|
1003
1158
|
}
|
|
1004
1159
|
|
|
1005
1160
|
if (isStructuredLogEnabled()) {
|
|
@@ -1042,6 +1197,7 @@ export abstract class AiAgent<T> {
|
|
|
1042
1197
|
role: Host.AidaClient.Role.MODEL,
|
|
1043
1198
|
});
|
|
1044
1199
|
|
|
1200
|
+
const callId = crypto.randomUUID();
|
|
1045
1201
|
let code;
|
|
1046
1202
|
if (call.displayInfoFromArgs) {
|
|
1047
1203
|
const {title, thought, action: callCode} = call.displayInfoFromArgs(args);
|
|
@@ -1049,6 +1205,7 @@ export abstract class AiAgent<T> {
|
|
|
1049
1205
|
if (title) {
|
|
1050
1206
|
yield {
|
|
1051
1207
|
type: ResponseType.TITLE,
|
|
1208
|
+
callId,
|
|
1052
1209
|
title,
|
|
1053
1210
|
};
|
|
1054
1211
|
}
|
|
@@ -1056,6 +1213,7 @@ export abstract class AiAgent<T> {
|
|
|
1056
1213
|
if (thought) {
|
|
1057
1214
|
yield {
|
|
1058
1215
|
type: ResponseType.THOUGHT,
|
|
1216
|
+
callId,
|
|
1059
1217
|
thought,
|
|
1060
1218
|
};
|
|
1061
1219
|
}
|
|
@@ -1078,6 +1236,7 @@ export abstract class AiAgent<T> {
|
|
|
1078
1236
|
if (code) {
|
|
1079
1237
|
yield {
|
|
1080
1238
|
type: ResponseType.ACTION,
|
|
1239
|
+
callId,
|
|
1081
1240
|
code,
|
|
1082
1241
|
canceled: false,
|
|
1083
1242
|
};
|
|
@@ -1104,6 +1263,7 @@ export abstract class AiAgent<T> {
|
|
|
1104
1263
|
|
|
1105
1264
|
yield {
|
|
1106
1265
|
type: ResponseType.SIDE_EFFECT,
|
|
1266
|
+
callId,
|
|
1107
1267
|
confirm: sideEffectConfirmationPromiseWithResolvers.resolve,
|
|
1108
1268
|
description: result.description,
|
|
1109
1269
|
permissionPrompt: call.permissionPrompt,
|
|
@@ -1119,6 +1279,7 @@ export abstract class AiAgent<T> {
|
|
|
1119
1279
|
if (decision === PermissionDecision.REJECT) {
|
|
1120
1280
|
yield {
|
|
1121
1281
|
type: ResponseType.ACTION,
|
|
1282
|
+
callId,
|
|
1122
1283
|
code,
|
|
1123
1284
|
output: 'Error: User denied code execution with side effects.',
|
|
1124
1285
|
canceled: true,
|
|
@@ -1152,6 +1313,7 @@ export abstract class AiAgent<T> {
|
|
|
1152
1313
|
if ('result' in result) {
|
|
1153
1314
|
yield {
|
|
1154
1315
|
type: ResponseType.ACTION,
|
|
1316
|
+
callId,
|
|
1155
1317
|
code,
|
|
1156
1318
|
output: typeof result.result === 'string' ? result.result : JSON.stringify(result.result),
|
|
1157
1319
|
widgets: result.widgets,
|
|
@@ -1163,6 +1325,7 @@ export abstract class AiAgent<T> {
|
|
|
1163
1325
|
if ('error' in result) {
|
|
1164
1326
|
yield {
|
|
1165
1327
|
type: ResponseType.ACTION,
|
|
1328
|
+
callId,
|
|
1166
1329
|
code,
|
|
1167
1330
|
output: result.error,
|
|
1168
1331
|
canceled: false,
|
|
@@ -1228,8 +1391,11 @@ export abstract class AiAgent<T> {
|
|
|
1228
1391
|
}
|
|
1229
1392
|
|
|
1230
1393
|
#createErrorResponse(error: ErrorType): ResponseData {
|
|
1231
|
-
this
|
|
1232
|
-
|
|
1394
|
+
// If we hit MAX_STEPS, we still want to keep the call history as this may be relevant for follow-up requests.
|
|
1395
|
+
if (error !== ErrorType.MAX_STEPS) {
|
|
1396
|
+
this.#removeLastRunParts();
|
|
1397
|
+
this.clearCache();
|
|
1398
|
+
}
|
|
1233
1399
|
if (error !== ErrorType.ABORT) {
|
|
1234
1400
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.AiAssistanceError);
|
|
1235
1401
|
}
|
|
@@ -150,10 +150,10 @@ Content:
|
|
|
150
150
|
"",
|
|
151
151
|
"## insight set id: NAVIGATION_1",
|
|
152
152
|
"",
|
|
153
|
-
"- name: Google CDN, main thread time:
|
|
153
|
+
"- name: Google CDN, main thread time: 43 ms, network transfer size: 990 B",
|
|
154
154
|
"- name: web.dev, main thread time: 3 ms, network transfer size: 84.3 kB",
|
|
155
155
|
"- name: Google Analytics, main thread time: 0.6 ms, network transfer size: 52.9 kB",
|
|
156
|
-
"- name: Google Fonts, main thread time: 0 ms, network transfer size: 42.2 kB",
|
|
156
|
+
"- name: Google Fonts, main thread time: 0.4 ms, network transfer size: 42.2 kB",
|
|
157
157
|
"",
|
|
158
158
|
"# Longest tasks",
|
|
159
159
|
"",
|
|
@@ -256,6 +256,10 @@ Content:
|
|
|
256
256
|
" relevant trace bounds: {min: 658799775876µs, max: 658799791419µs}",
|
|
257
257
|
" example question: Show me the most impactful render-blocking requests that I should focus on",
|
|
258
258
|
" example question: How can I reduce the number of render-blocking requests?",
|
|
259
|
+
" - insight name: ThirdParties",
|
|
260
|
+
" description: 3rd party code can significantly impact load performance. [Reduce and defer loading of 3rd party code](https://developer.chrome.com/docs/performance/insights/third-parties) to prioritize your page’s content.",
|
|
261
|
+
" relevant trace bounds: {min: 658799775876µs, max: 658799789804µs}",
|
|
262
|
+
" example question: Which third parties are having the largest impact on my page performance?",
|
|
259
263
|
" - insight name: Cache",
|
|
260
264
|
" description: A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).",
|
|
261
265
|
" relevant trace bounds: {min: 658799777502µs, max: 658799791419µs}",
|
|
@@ -280,6 +284,7 @@ Content:
|
|
|
280
284
|
"# 3rd party summary",
|
|
281
285
|
"",
|
|
282
286
|
"- name: GitHub, main thread time: 3 ms, network transfer size: 0 B",
|
|
287
|
+
"- name: Google Fonts, main thread time: 0.6 ms, network transfer size: 0 B",
|
|
283
288
|
"",
|
|
284
289
|
"# Longest tasks",
|
|
285
290
|
"",
|
|
@@ -359,10 +359,12 @@ Content:
|
|
|
359
359
|
},
|
|
360
360
|
{
|
|
361
361
|
"type": "thought",
|
|
362
|
+
"callId": "00000000-0000-0000-0000-000000000001",
|
|
362
363
|
"thought": "I am thinking."
|
|
363
364
|
},
|
|
364
365
|
{
|
|
365
366
|
"type": "action",
|
|
367
|
+
"callId": "00000000-0000-0000-0000-000000000001",
|
|
366
368
|
"code": "console.log('hello');",
|
|
367
369
|
"output": "hello",
|
|
368
370
|
"canceled": false,
|
package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt
CHANGED
|
@@ -796,43 +796,38 @@ This insight identified legacy JavaScript in your application's modules that may
|
|
|
796
796
|
Polyfills and transforms enable older browsers to use new JavaScript features. However, many are not necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers.
|
|
797
797
|
|
|
798
798
|
## Detailed analysis:
|
|
799
|
-
Total legacy JavaScript:
|
|
799
|
+
Total legacy JavaScript: 7 files.
|
|
800
800
|
|
|
801
801
|
Legacy JavaScript by file:
|
|
802
802
|
|
|
803
|
-
- Script: https://s.yimg.com/aaq/
|
|
804
|
-
Matches:
|
|
805
|
-
Line: 0, Column: 133, Name: Promise.allSettled
|
|
806
|
-
|
|
807
|
-
- Script: https://s.yimg.com/aaq/c/25fa214.caas-news_web.min.js (eventKey: s-3412, ts: 157423743431) - Wasted bytes: 36084 bytes
|
|
803
|
+
- Script: https://s.yimg.com/aaq/c/25fa214.caas-news_web.min.js (eventKey: s-3412, ts: 157423743431) - Wasted bytes: 37667 bytes
|
|
808
804
|
Matches:
|
|
809
805
|
Line: 0, Column: 13310, Name: Array.from
|
|
810
806
|
Line: 0, Column: 14623, Name: Object.assign
|
|
811
807
|
|
|
812
|
-
- Script: https://s.yimg.com/
|
|
808
|
+
- Script: https://s.yimg.com/aaq/benji/benji-2.2.99.js (eventKey: s-3387, ts: 157423742567) - Wasted bytes: 36554 bytes
|
|
809
|
+
Matches:
|
|
810
|
+
Line: 0, Column: 133, Name: Promise.allSettled
|
|
811
|
+
|
|
812
|
+
- Script: https://s.yimg.com/du/ay/wnsrvbjmeprtfrnfx.js (eventKey: s-6273, ts: 157423760794) - Wasted bytes: 12851 bytes
|
|
813
813
|
Matches:
|
|
814
814
|
Line: 111, Column: 7829, Name: @babel/plugin-transform-spread
|
|
815
815
|
Line: 111, Column: 1794, Name: Array.prototype.find
|
|
816
|
-
Line: 111, Column: 2127, Name: Array.prototype.includes
|
|
817
816
|
Line: 111, Column: 2748, Name: Object.values
|
|
818
817
|
Line: 111, Column: 2473, Name: String.prototype.includes
|
|
819
818
|
Line: 111, Column: 2627, Name: String.prototype.startsWith
|
|
820
819
|
|
|
821
|
-
- Script: https://static.criteo.net/js/ld/publishertag.prebid.144.js (eventKey: s-257378, ts: 157426026656) - Wasted bytes:
|
|
820
|
+
- Script: https://static.criteo.net/js/ld/publishertag.prebid.144.js (eventKey: s-257378, ts: 157426026656) - Wasted bytes: 10904 bytes
|
|
822
821
|
Matches:
|
|
823
822
|
Line: 1, Column: 74871, Name: Array.isArray
|
|
824
823
|
Line: 1, Column: 75344, Name: Array.prototype.filter
|
|
825
824
|
Line: 1, Column: 75013, Name: Array.prototype.indexOf
|
|
826
825
|
|
|
827
|
-
- Script: https://
|
|
828
|
-
Matches:
|
|
829
|
-
Line: 1, Column: 132267, Name: Array.prototype.includes
|
|
830
|
-
|
|
831
|
-
- Script: https://pm-widget.taboola.com/yahooweb-network/pmk-20220605.1.js (eventKey: s-52229, ts: 157424128231) - Wasted bytes: 7625 bytes
|
|
826
|
+
- Script: https://pm-widget.taboola.com/yahooweb-network/pmk-20220605.1.js (eventKey: s-52229, ts: 157424128231) - Wasted bytes: 7655 bytes
|
|
832
827
|
Matches:
|
|
833
828
|
Line: 181, Column: 26, Name: Object.keys
|
|
834
829
|
|
|
835
|
-
- Script: https://news.yahoo.com/ (eventKey: s-2116, ts: 157423489126) - Wasted bytes:
|
|
830
|
+
- Script: https://news.yahoo.com/ (eventKey: s-2116, ts: 157423489126) - Wasted bytes: 7235 bytes
|
|
836
831
|
Matches:
|
|
837
832
|
Line: 0, Column: 8382, Name: @babel/plugin-transform-classes
|
|
838
833
|
Line: 0, Column: 107712, Name: Array.prototype.filter
|
|
@@ -840,7 +835,7 @@ Line: 0, Column: 107393, Name: Array.prototype.forEach
|
|
|
840
835
|
Line: 0, Column: 108005, Name: Array.prototype.map
|
|
841
836
|
Line: 0, Column: 108358, Name: String.prototype.includes
|
|
842
837
|
|
|
843
|
-
- Script: https://cdn.taboola.com/libtrc/yahooweb-network/loader.js (eventKey: s-6352, ts: 157423761978) - Wasted bytes:
|
|
838
|
+
- Script: https://cdn.taboola.com/libtrc/yahooweb-network/loader.js (eventKey: s-6352, ts: 157423761978) - Wasted bytes: 7087 bytes
|
|
844
839
|
Matches:
|
|
845
840
|
Line: 0, Column: 390544, Name: Object.entries
|
|
846
841
|
Line: 0, Column: 390688, Name: Object.values
|
package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt
CHANGED
|
@@ -265,7 +265,7 @@ Here are all the insights that contain some related request from the given range
|
|
|
265
265
|
- ThirdParties: cmp.js (consent.cmp.oath.com) (eventKey: s-3382, ts: 157423742399), gpt.js (securepubads.g.doubleclick.net) (eventKey: s-6244, ts: 157423760529), loader.js (cdn.taboola.com) (eventKey: s-6352, ts: 157423761978)
|
|
266
266
|
- Cache: prebid-2.0.js (s.yimg.com) (eventKey: s-6279, ts: 157423760925), cmp.js (consent.cmp.oath.com) (eventKey: s-3382, ts: 157423742399), d1irmdsmbztlvx.js (s.yimg.com) (eventKey: s-6185, ts: 157423759200), consent.js (s.yimg.com) (eventKey: s-3384, ts: 157423742450), wnsrvbjmeprtfrnfx.js (s.yimg.com) (eventKey: s-6273, ts: 157423760794)
|
|
267
267
|
- CharacterSet: news.yahoo.com/ (news.yahoo.com) (eventKey: s-2116, ts: 157423489126)
|
|
268
|
-
- LegacyJavaScript:
|
|
268
|
+
- LegacyJavaScript: 25fa214.caas-news_web.min.js (s.yimg.com) (eventKey: s-3412, ts: 157423743431), benji-2.2.99.js (s.yimg.com) (eventKey: s-3387, ts: 157423742567), wnsrvbjmeprtfrnfx.js (s.yimg.com) (eventKey: s-6273, ts: 157423760794), news.yahoo.com/ (news.yahoo.com) (eventKey: s-2116, ts: 157423489126), loader.js (cdn.taboola.com) (eventKey: s-6352, ts: 157423761978)
|
|
269
269
|
=== end content
|
|
270
270
|
|
|
271
271
|
Title: PerformanceTraceFormatter formatTraceSummary web-dev.json.gz
|
|
@@ -380,7 +380,7 @@ Available insights:
|
|
|
380
380
|
description: Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren’t necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript).
|
|
381
381
|
relevant trace bounds: {min: 157423489126µs, max: 157426132225µs}
|
|
382
382
|
estimated metric savings: FCP 0 ms, LCP 0 ms
|
|
383
|
-
estimated wasted bytes:
|
|
383
|
+
estimated wasted bytes: 120 kB
|
|
384
384
|
example question: Is my site polyfilling modern JavaScript features?
|
|
385
385
|
example question: How can I reduce the amount of legacy JavaScript on my page?
|
|
386
386
|
=== end content
|