chrome-devtools-frontend 1.0.1555430 → 1.0.1558690
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/front_end/core/common/Object.ts +5 -1
- package/front_end/core/host/ResourceLoader.ts +1 -1
- package/front_end/core/host/UserMetrics.ts +3 -1
- package/front_end/core/sdk/DOMModel.ts +7 -0
- package/front_end/core/sdk/NetworkManager.ts +0 -7
- package/front_end/core/sdk/SourceMap.ts +16 -2
- package/front_end/core/sdk/SourceMapManager.ts +1 -1
- package/front_end/core/sdk/SourceMapScopesInfo.ts +11 -4
- package/front_end/entrypoints/formatter_worker/FormatterActions.ts +3 -0
- package/front_end/entrypoints/formatter_worker/ScopeParser.ts +119 -8
- package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
- package/front_end/entrypoints/main/GlobalAiButton.ts +5 -1
- package/front_end/generated/Deprecation.ts +0 -7
- package/front_end/generated/InspectorBackendCommands.ts +4 -4
- package/front_end/generated/protocol.ts +9 -1
- package/front_end/models/ai_assistance/AiConversation.ts +71 -10
- package/front_end/models/ai_assistance/ArtifactsManager.ts +67 -0
- package/front_end/models/ai_assistance/ConversationHandler.ts +3 -2
- package/front_end/models/ai_assistance/agents/AiAgent.ts +17 -27
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +151 -3
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +1 -1
- package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +0 -2
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +3 -3
- package/front_end/models/annotations/AnnotationRepository.ts +2 -2
- package/front_end/models/bindings/CompilerScriptMapping.ts +7 -6
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +4 -4
- package/front_end/models/greendev/Prototypes.ts +56 -0
- package/front_end/models/greendev/README.md +5 -0
- package/front_end/models/greendev/greendev.ts +5 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +2 -2
- package/front_end/models/stack_trace/StackTraceImpl.ts +5 -3
- package/front_end/models/stack_trace/StackTraceModel.ts +53 -40
- package/front_end/models/trace/EventsSerializer.ts +8 -2
- package/front_end/models/trace/extras/TraceTree.ts +4 -2
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +2 -2
- package/front_end/models/trace/insights/LCPDiscovery.ts +0 -2
- package/front_end/models/trace/types/TraceEvents.ts +0 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +96 -91
- package/front_end/panels/ai_assistance/aiAssistancePanel.css +16 -0
- package/front_end/panels/ai_assistance/components/ArtifactsViewer.ts +109 -7
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
- package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +7 -8
- package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +15 -8
- package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +9 -9
- package/front_end/panels/ai_assistance/components/artifactsViewer.css +6 -1
- package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +5 -6
- package/front_end/panels/application/AppManifestView.ts +360 -391
- package/front_end/panels/application/ApplicationPanelSidebar.ts +24 -57
- package/front_end/panels/application/CookieItemsView.ts +1 -0
- package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -0
- package/front_end/panels/application/ServiceWorkersView.ts +2 -0
- package/front_end/panels/application/SharedStorageTreeElement.ts +3 -0
- package/front_end/panels/application/StorageView.ts +1 -0
- package/front_end/panels/application/appManifestView.css +49 -1
- package/front_end/panels/application/components/ProtocolHandlersView.ts +2 -2
- package/front_end/panels/console/ConsoleViewMessage.ts +4 -3
- package/front_end/panels/elements/ElementsTreeElement.ts +30 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +7 -1
- package/front_end/panels/elements/components/AdornerManager.ts +8 -0
- package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +0 -1
- package/front_end/panels/lighthouse/LighthousePanel.ts +10 -0
- package/front_end/panels/lighthouse/lighthousePanel.css +46 -3
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +4 -8
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +148 -97
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryValueInterpreter.css +37 -35
- package/front_end/panels/network/NetworkLogViewColumns.ts +9 -9
- package/front_end/panels/network/RequestCookiesView.ts +125 -141
- package/front_end/panels/network/components/RequestHeadersView.ts +2 -2
- package/front_end/panels/network/requestCookiesView.css +22 -20
- package/front_end/panels/recorder/components/RecordingView.ts +3 -3
- package/front_end/panels/recorder/components/StepView.ts +2 -1
- package/front_end/panels/settings/SettingsScreen.ts +133 -1
- package/front_end/panels/settings/keybindsSettingsTab.css +4 -0
- package/front_end/panels/settings/settings-meta.ts +24 -0
- package/front_end/panels/settings/settingsScreen.css +4 -0
- package/front_end/panels/sources/CallStackSidebarPane.ts +7 -3
- package/front_end/panels/sources/DebuggerPausedMessage.ts +125 -90
- package/front_end/panels/sources/SourcesPanel.ts +10 -7
- package/front_end/panels/sources/UISourceCodeFrame.ts +3 -17
- package/front_end/panels/sources/debuggerPausedMessage.css +8 -0
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +2 -1
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +2 -0
- package/front_end/third_party/acorn/estree-legacy.d.ts +4 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +12 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +14 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +0 -20
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +10 -14
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +12 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +9 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +21 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +26 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +86 -20
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +12 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +14 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +0 -20
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +11 -15
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +12 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +9 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +21 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +26 -0
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +18 -0
- package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +1 -2
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +2 -4
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +2 -4
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +18 -6
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +13 -0
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +0 -33
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +14 -28
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +19 -0
- package/front_end/third_party/puppeteer/package/src/bidi/core/Connection.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +19 -0
- package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +15 -6
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +29 -10
- package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +3 -3
- 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/components/icon_button/iconButton.css +3 -1
- package/front_end/ui/components/report_view/ReportView.docs.ts +37 -0
- package/front_end/ui/components/report_view/ReportView.ts +12 -6
- package/front_end/ui/components/report_view/report.css +16 -0
- package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +135 -7
- package/front_end/ui/components/text_editor/config.ts +6 -6
- package/front_end/ui/legacy/ContextMenu.ts +11 -2
- package/front_end/ui/legacy/Floaty.ts +5 -9
- package/front_end/ui/legacy/InspectorView.ts +2 -1
- package/front_end/ui/legacy/ReportView.ts +5 -4
- package/front_end/ui/legacy/TextPrompt.ts +1 -1
- package/front_end/ui/legacy/Toolbar.ts +4 -0
- package/front_end/ui/legacy/UIUtils.ts +0 -2
- package/front_end/ui/legacy/Widget.ts +7 -0
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +18 -3
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +3 -3
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +6 -0
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -1
- package/front_end/ui/legacy/reportView.css +0 -24
- package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
- package/package.json +1 -1
|
@@ -105,7 +105,11 @@ export class ObjectWrapper<Events> implements EventTarget<Events> {
|
|
|
105
105
|
// new listeners.
|
|
106
106
|
for (const listener of [...listeners]) {
|
|
107
107
|
if (!listener.disposed) {
|
|
108
|
-
|
|
108
|
+
try {
|
|
109
|
+
listener.listener.call(listener.thisObject, event);
|
|
110
|
+
} catch (err) {
|
|
111
|
+
console.error(`Event listener for ${String(eventType)} throw an error:`, err);
|
|
112
|
+
}
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
}
|
|
@@ -206,7 +206,7 @@ async function fetchToString(url: string): Promise<string> {
|
|
|
206
206
|
|
|
207
207
|
function canBeRemoteFilePath(url: string): boolean {
|
|
208
208
|
try {
|
|
209
|
-
const urlObject = new URL(url);
|
|
209
|
+
const urlObject = new URL(new URL(url).toString()); // Normalize first.
|
|
210
210
|
return urlObject.protocol === 'file:' && urlObject.host !== '';
|
|
211
211
|
} catch {
|
|
212
212
|
return false;
|
|
@@ -531,7 +531,9 @@ export enum Action {
|
|
|
531
531
|
AiCodeGenerationSuggestionAccepted = 196,
|
|
532
532
|
InsightTeaserModelDownloadStarted = 197,
|
|
533
533
|
InsightTeaserModelDownloadCompleted = 198,
|
|
534
|
-
|
|
534
|
+
AiCodeGenerationError = 199,
|
|
535
|
+
AiCodeGenerationRequestTriggered = 200,
|
|
536
|
+
MAX_VALUE = 201,
|
|
535
537
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
536
538
|
}
|
|
537
539
|
|
|
@@ -322,6 +322,13 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
|
|
|
322
322
|
return false;
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
+
isRootNode(): boolean {
|
|
326
|
+
if (this.nodeType() === Node.ELEMENT_NODE && this.nodeName() === 'HTML') {
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
|
|
325
332
|
isSVGNode(): boolean {
|
|
326
333
|
return this.#isSVGNode;
|
|
327
334
|
}
|
|
@@ -2716,13 +2716,6 @@ export interface Conditions {
|
|
|
2716
2716
|
packetLoss?: number;
|
|
2717
2717
|
packetQueueLength?: number;
|
|
2718
2718
|
packetReordering?: boolean;
|
|
2719
|
-
// TODO(crbug.com/1219425): In the future, it might be worthwhile to
|
|
2720
|
-
// consider avoiding mixing up presentation state (e.g.: displayed
|
|
2721
|
-
// titles) with behavioral state (e.g.: the throttling amounts). In
|
|
2722
|
-
// this particular case, the title (along with other properties)
|
|
2723
|
-
// doubles as both part of group of fields which (loosely) uniquely
|
|
2724
|
-
// identify instances, as well as the literal string displayed in the
|
|
2725
|
-
// UI, which leads to complications around persistance.
|
|
2726
2719
|
// TODO(crbug.com/422682525): make this just a function because we use lazy string everywhere.
|
|
2727
2720
|
title: string|(() => string);
|
|
2728
2721
|
// Instances may be serialized to local storage, so localized titles
|
|
@@ -138,7 +138,7 @@ export class SourceMap {
|
|
|
138
138
|
|
|
139
139
|
readonly #debugId?: DebugId;
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
#scopesFallbackPromise?: Promise<void>;
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
144
|
* Implements Source Map V3 model. See https://github.com/google/closure-compiler/wiki/Source-Maps
|
|
@@ -225,6 +225,11 @@ export class SourceMap {
|
|
|
225
225
|
return this.#scopesInfo !== null && !this.#scopesInfo.isEmpty();
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
+
waitForScopeInfo(): Promise<void> {
|
|
229
|
+
this.#ensureSourceMapProcessed();
|
|
230
|
+
return this.#scopesFallbackPromise ?? Promise.resolve();
|
|
231
|
+
}
|
|
232
|
+
|
|
228
233
|
findEntry(lineNumber: number, columnNumber: number, inlineFrameIndex?: number): SourceMapEntry|null {
|
|
229
234
|
this.#ensureSourceMapProcessed();
|
|
230
235
|
if (inlineFrameIndex && this.#scopesInfo !== null) {
|
|
@@ -252,6 +257,15 @@ export class SourceMap {
|
|
|
252
257
|
return index ? mappings[index - 1] : null;
|
|
253
258
|
}
|
|
254
259
|
|
|
260
|
+
/** Returns the entry at the given position but only if an entry exists for that exact position */
|
|
261
|
+
findEntryExact(lineNumber: number, columnNumber: number): SourceMapEntry|null {
|
|
262
|
+
const entry = this.findEntry(lineNumber, columnNumber);
|
|
263
|
+
if (entry?.lineNumber === lineNumber && entry.columnNumber === columnNumber) {
|
|
264
|
+
return entry;
|
|
265
|
+
}
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
|
|
255
269
|
findEntryRanges(lineNumber: number, columnNumber: number): {
|
|
256
270
|
range: TextUtils.TextRange.TextRange,
|
|
257
271
|
sourceRange: TextUtils.TextRange.TextRange,
|
|
@@ -411,7 +425,7 @@ export class SourceMap {
|
|
|
411
425
|
try {
|
|
412
426
|
this.eachSection(this.parseMap.bind(this));
|
|
413
427
|
if (!this.hasScopeInfo()) {
|
|
414
|
-
this
|
|
428
|
+
this.#scopesFallbackPromise = this.#buildScopesFallback().then(info => {
|
|
415
429
|
this.#scopesInfo = info;
|
|
416
430
|
});
|
|
417
431
|
}
|
|
@@ -182,7 +182,7 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
waitForSourceMapsProcessedForTest(): Promise<unknown> {
|
|
185
|
-
return Promise.all(this.#sourceMaps.keys().map(sourceMap => sourceMap.
|
|
185
|
+
return Promise.all(this.#sourceMaps.keys().map(sourceMap => sourceMap.waitForScopeInfo()));
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
@@ -123,16 +123,23 @@ export class SourceMapScopesInfo {
|
|
|
123
123
|
sourceIndex < numSourceUrls;
|
|
124
124
|
const isStackFrame = node.kind === Formatter.FormatterWorkerPool.ScopeKind.FUNCTION ||
|
|
125
125
|
node.kind === Formatter.FormatterWorkerPool.ScopeKind.ARROW_FUNCTION;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
let name: string|undefined = undefined;
|
|
127
|
+
for (const offset of node.nameMappingLocations ?? []) {
|
|
128
|
+
const position = positionFromOffset(offset);
|
|
129
|
+
const entry = sourceMap.findEntryExact(position.line, position.column);
|
|
130
|
+
if (entry?.name !== undefined) {
|
|
131
|
+
// Only consider named mappings.
|
|
132
|
+
name = entry.name;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
129
136
|
|
|
130
137
|
let scope: ScopesCodec.OriginalScope|undefined;
|
|
131
138
|
if (canMapOriginalPosition) {
|
|
132
139
|
scope = {
|
|
133
140
|
start: {line: startEntry.sourceLineNumber, column: startEntry.sourceColumnNumber},
|
|
134
141
|
end: {line: endEntry.sourceLineNumber, column: endEntry.sourceColumnNumber},
|
|
135
|
-
name,
|
|
142
|
+
name: name ?? node.name,
|
|
136
143
|
isStackFrame,
|
|
137
144
|
variables: [],
|
|
138
145
|
children: [],
|
|
@@ -55,6 +55,9 @@ export interface ScopeTreeNode {
|
|
|
55
55
|
variables: Array<{name: string, kind: DefinitionKind, offsets: number[]}>;
|
|
56
56
|
start: number;
|
|
57
57
|
end: number;
|
|
58
|
+
// If present, apply source map mappings to these locations to figure out the original function name.
|
|
59
|
+
nameMappingLocations?: number[];
|
|
60
|
+
name?: string;
|
|
58
61
|
kind: ScopeKind;
|
|
59
62
|
children: ScopeTreeNode[];
|
|
60
63
|
}
|
|
@@ -17,7 +17,7 @@ export function parseScopes(expression: string, sourceType: 'module'|'script' =
|
|
|
17
17
|
} catch {
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
|
-
return new ScopeVariableAnalysis(root).run();
|
|
20
|
+
return new ScopeVariableAnalysis(root, expression).run();
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface Use {
|
|
@@ -37,13 +37,18 @@ export class Scope {
|
|
|
37
37
|
readonly start: number;
|
|
38
38
|
readonly end: number;
|
|
39
39
|
readonly kind: ScopeKind;
|
|
40
|
+
readonly name?: string;
|
|
41
|
+
readonly nameMappingLocations?: number[];
|
|
40
42
|
readonly children: Scope[] = [];
|
|
41
43
|
|
|
42
|
-
constructor(
|
|
44
|
+
constructor(
|
|
45
|
+
start: number, end: number, parent: Scope|null, kind: ScopeKind, name?: string, nameMappingLocations?: number[]) {
|
|
43
46
|
this.start = start;
|
|
44
47
|
this.end = end;
|
|
45
48
|
this.parent = parent;
|
|
46
49
|
this.kind = kind;
|
|
50
|
+
this.name = name;
|
|
51
|
+
this.nameMappingLocations = nameMappingLocations;
|
|
47
52
|
if (parent) {
|
|
48
53
|
parent.children.push(this);
|
|
49
54
|
}
|
|
@@ -64,6 +69,8 @@ export class Scope {
|
|
|
64
69
|
end: this.end,
|
|
65
70
|
variables,
|
|
66
71
|
kind: this.kind,
|
|
72
|
+
name: this.name,
|
|
73
|
+
nameMappingLocations: this.nameMappingLocations,
|
|
67
74
|
children,
|
|
68
75
|
};
|
|
69
76
|
}
|
|
@@ -137,9 +144,13 @@ export class ScopeVariableAnalysis {
|
|
|
137
144
|
readonly #allNames = new Set<string>();
|
|
138
145
|
#currentScope: Scope;
|
|
139
146
|
readonly #rootNode: Acorn.ESTree.Node;
|
|
147
|
+
readonly #sourceText: string;
|
|
148
|
+
#methodName: string|undefined;
|
|
149
|
+
#additionalMappingLocations: number[] = [];
|
|
140
150
|
|
|
141
|
-
constructor(node: Acorn.ESTree.Node) {
|
|
151
|
+
constructor(node: Acorn.ESTree.Node, sourceText: string) {
|
|
142
152
|
this.#rootNode = node;
|
|
153
|
+
this.#sourceText = sourceText;
|
|
143
154
|
this.#rootScope = new Scope(node.start, node.end, null, ScopeKind.GLOBAL);
|
|
144
155
|
this.#currentScope = this.#rootScope;
|
|
145
156
|
}
|
|
@@ -172,7 +183,9 @@ export class ScopeVariableAnalysis {
|
|
|
172
183
|
node.elements.forEach(item => this.#processNode(item));
|
|
173
184
|
break;
|
|
174
185
|
case 'ArrowFunctionExpression': {
|
|
175
|
-
this.#pushScope(
|
|
186
|
+
this.#pushScope(
|
|
187
|
+
node.start, node.end, ScopeKind.ARROW_FUNCTION, undefined,
|
|
188
|
+
mappingLocationsForArrowFunctions(node, this.#sourceText));
|
|
176
189
|
node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.VAR, false));
|
|
177
190
|
if (node.body.type === 'BlockStatement') {
|
|
178
191
|
// Include the body of the arrow function in the same scope as the arguments.
|
|
@@ -253,7 +266,9 @@ export class ScopeVariableAnalysis {
|
|
|
253
266
|
break;
|
|
254
267
|
case 'FunctionDeclaration':
|
|
255
268
|
this.#processNodeAsDefinition(DefinitionKind.VAR, false, node.id);
|
|
256
|
-
this.#pushScope(
|
|
269
|
+
this.#pushScope(
|
|
270
|
+
node.id?.end ?? node.start, node.end, ScopeKind.FUNCTION, node.id.name,
|
|
271
|
+
mappingLocationsForFunctionDeclaration(node, this.#sourceText));
|
|
257
272
|
this.#addVariable('this', node.start, DefinitionKind.FIXED);
|
|
258
273
|
this.#addVariable('arguments', node.start, DefinitionKind.FIXED);
|
|
259
274
|
node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.LET, false));
|
|
@@ -262,7 +277,11 @@ export class ScopeVariableAnalysis {
|
|
|
262
277
|
this.#popScope(true);
|
|
263
278
|
break;
|
|
264
279
|
case 'FunctionExpression':
|
|
265
|
-
this.#pushScope(
|
|
280
|
+
this.#pushScope(
|
|
281
|
+
node.id?.end ?? node.start, node.end, ScopeKind.FUNCTION, this.#methodName ?? node.id?.name,
|
|
282
|
+
[...this.#additionalMappingLocations, ...mappingLocationsForFunctionExpression(node, this.#sourceText)]);
|
|
283
|
+
this.#additionalMappingLocations = [];
|
|
284
|
+
this.#methodName = undefined;
|
|
266
285
|
this.#addVariable('this', node.start, DefinitionKind.FIXED);
|
|
267
286
|
this.#addVariable('arguments', node.start, DefinitionKind.FIXED);
|
|
268
287
|
node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.LET, false));
|
|
@@ -286,6 +305,9 @@ export class ScopeVariableAnalysis {
|
|
|
286
305
|
case 'MethodDefinition':
|
|
287
306
|
if (node.computed) {
|
|
288
307
|
this.#processNode(node.key);
|
|
308
|
+
} else {
|
|
309
|
+
this.#additionalMappingLocations = mappingLocationsForMethodDefinition(node);
|
|
310
|
+
this.#methodName = nameForMethodDefinition(node);
|
|
289
311
|
}
|
|
290
312
|
this.#processNode(node.value);
|
|
291
313
|
break;
|
|
@@ -322,6 +344,9 @@ export class ScopeVariableAnalysis {
|
|
|
322
344
|
} else {
|
|
323
345
|
if (node.computed) {
|
|
324
346
|
this.#processNode(node.key);
|
|
347
|
+
} else if (node.value.type === 'FunctionExpression') {
|
|
348
|
+
this.#additionalMappingLocations = mappingLocationsForMethodDefinition(node);
|
|
349
|
+
this.#methodName = nameForMethodDefinition(node);
|
|
325
350
|
}
|
|
326
351
|
this.#processNode(node.value);
|
|
327
352
|
}
|
|
@@ -424,8 +449,8 @@ export class ScopeVariableAnalysis {
|
|
|
424
449
|
return this.#allNames;
|
|
425
450
|
}
|
|
426
451
|
|
|
427
|
-
#pushScope(start: number, end: number, kind: ScopeKind): void {
|
|
428
|
-
this.#currentScope = new Scope(start, end, this.#currentScope, kind);
|
|
452
|
+
#pushScope(start: number, end: number, kind: ScopeKind, name?: string, nameMappingLocations?: number[]): void {
|
|
453
|
+
this.#currentScope = new Scope(start, end, this.#currentScope, kind, name, nameMappingLocations);
|
|
429
454
|
}
|
|
430
455
|
|
|
431
456
|
#popScope(isFunctionContext: boolean): void {
|
|
@@ -488,3 +513,89 @@ export class ScopeVariableAnalysis {
|
|
|
488
513
|
this.#processNode(decl.init ?? null);
|
|
489
514
|
}
|
|
490
515
|
}
|
|
516
|
+
|
|
517
|
+
function mappingLocationsForFunctionDeclaration(node: Acorn.ESTree.FunctionDeclaration, sourceText: string): number[] {
|
|
518
|
+
// For function declarations we prefer the position of the identifier as per spec, but we'll also return
|
|
519
|
+
// the beginning of the opening parenthesis '('.
|
|
520
|
+
const result = [node.id.start];
|
|
521
|
+
|
|
522
|
+
const searchParenEndPos = node.params.length ? node.params[0].start : node.body.start;
|
|
523
|
+
const parenPos = indexOfCharInBounds(sourceText, '(', node.id.end, searchParenEndPos);
|
|
524
|
+
if (parenPos >= 0) {
|
|
525
|
+
// Note that this is not 100% accurate as there might be a comment containing a open parenthesis between
|
|
526
|
+
// the identifier the and the argument list (unlikely though).
|
|
527
|
+
result.push(parenPos);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
return result;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
function mappingLocationsForFunctionExpression(node: Acorn.ESTree.FunctionExpression, sourceText: string): number[] {
|
|
534
|
+
// For function expressions we prefer the position of the identifier or '(' if none is present, as per spec.
|
|
535
|
+
const result = [];
|
|
536
|
+
if (node.id) {
|
|
537
|
+
result.push(node.id.start);
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
const searchParenStartPos = node.id ? node.id.end : node.start;
|
|
541
|
+
const searchParenEndPos = node.params.length ? node.params[0].start : node.body.start;
|
|
542
|
+
const parenPos = indexOfCharInBounds(sourceText, '(', searchParenStartPos, searchParenEndPos);
|
|
543
|
+
if (parenPos >= 0) {
|
|
544
|
+
// Note that this is not 100% accurate as there might be a comment containing a open parenthesis between
|
|
545
|
+
// the identifier the and the argument list (unlikely though).
|
|
546
|
+
result.push(parenPos);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
return result;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function mappingLocationsForMethodDefinition(node: Acorn.ESTree.MethodDefinition|Acorn.ESTree.Property): number[] {
|
|
553
|
+
// Method definitions use a FunctionExpression as their "value" child. So we only
|
|
554
|
+
// record the start of the "key" here and let 'mappingLocationsForFunctionExpression' handle
|
|
555
|
+
// the parenthesis.
|
|
556
|
+
if (node.key.type === 'Identifier' || node.key.type === 'PrivateIdentifier') {
|
|
557
|
+
const id = node.key as Acorn.ESTree.Identifier | Acorn.ESTree.PrivateIdentifier;
|
|
558
|
+
return [id.start];
|
|
559
|
+
}
|
|
560
|
+
return [];
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function nameForMethodDefinition(node: Acorn.ESTree.MethodDefinition|Acorn.ESTree.Property): string|undefined {
|
|
564
|
+
if (node.key.type === 'Identifier') {
|
|
565
|
+
return node.key.name;
|
|
566
|
+
}
|
|
567
|
+
if (node.key.type === 'PrivateIdentifier') {
|
|
568
|
+
return '#' + node.key.name;
|
|
569
|
+
}
|
|
570
|
+
return undefined;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
function mappingLocationsForArrowFunctions(node: Acorn.ESTree.ArrowFunctionExpression, sourceText: string): number[] {
|
|
574
|
+
// For arrow functions we use the `(' parenthesis if present, and the `=>` arrow as per spec.
|
|
575
|
+
// Both are not 100% accurate as acorn doesn't tell us their location so we have to search, which is brittle.
|
|
576
|
+
const result = [];
|
|
577
|
+
|
|
578
|
+
const searchParenStartPos = node.async ? node.start + 5 : node.start;
|
|
579
|
+
const searchParenEndPos = node.params.length ? node.params[0].start : node.body.start;
|
|
580
|
+
const parenPos = indexOfCharInBounds(sourceText, '(', searchParenStartPos, searchParenEndPos);
|
|
581
|
+
if (parenPos >= 0) {
|
|
582
|
+
result.push(parenPos);
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
const searchArrowStartPos = node.params.length ? node.params[node.params.length - 1].end : node.start;
|
|
586
|
+
const arrowPos = indexOfCharInBounds(sourceText, '=', searchArrowStartPos, node.body.start);
|
|
587
|
+
if (arrowPos >= 0 && sourceText[arrowPos + 1] === '>') {
|
|
588
|
+
result.push(arrowPos);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
return result;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
function indexOfCharInBounds(str: string, needle: string, start: number, end: number): number {
|
|
595
|
+
for (let i = start; i < end; ++i) {
|
|
596
|
+
if (str[i] === needle) {
|
|
597
|
+
return i;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
return -1;
|
|
601
|
+
}
|
|
@@ -35,7 +35,7 @@ function computeSubstitution(expression: string, nameMap: Map<string, string|nul
|
|
|
35
35
|
checkPrivateFields: false,
|
|
36
36
|
ranges: false,
|
|
37
37
|
} as acorn.Options) as Acorn.ESTree.Node;
|
|
38
|
-
const scopeVariables = new ScopeVariableAnalysis(root);
|
|
38
|
+
const scopeVariables = new ScopeVariableAnalysis(root, expression);
|
|
39
39
|
scopeVariables.run();
|
|
40
40
|
const freeVariables = scopeVariables.getFreeVariables();
|
|
41
41
|
const result: Replacement[] = [];
|
|
@@ -18,6 +18,10 @@ const UIStrings = {
|
|
|
18
18
|
* @description Button's string in promotion state.
|
|
19
19
|
*/
|
|
20
20
|
aiAssistance: 'AI assistance',
|
|
21
|
+
/**
|
|
22
|
+
* @description Button's tooltip text.
|
|
23
|
+
*/
|
|
24
|
+
openAiAssistance: 'Open AI assistance panel',
|
|
21
25
|
} as const;
|
|
22
26
|
const str_ = i18n.i18n.registerUIStrings('entrypoints/main/GlobalAiButton.ts', UIStrings);
|
|
23
27
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -55,7 +59,7 @@ export const DEFAULT_VIEW = (input: ViewInput, output: undefined, target: HTMLEl
|
|
|
55
59
|
render(html`
|
|
56
60
|
<style>${globalAiButtonStyles}</style>
|
|
57
61
|
<div class="global-ai-button-container">
|
|
58
|
-
<button class=${classes} @click=${input.onClick} jslog=${VisualLogging.action().track({click: true}).context('global-ai-button')}>
|
|
62
|
+
<button class=${classes} @click=${input.onClick} title=${i18nString(UIStrings.openAiAssistance)} jslog=${VisualLogging.action().track({click: true}).context('global-ai-button')}>
|
|
59
63
|
<devtools-icon name="smart-assistant"></devtools-icon>
|
|
60
64
|
<span class="button-text">${` ${i18nString(UIStrings.aiAssistance)}`}</span>
|
|
61
65
|
</button>
|
|
@@ -30,10 +30,6 @@ export const UIStrings = {
|
|
|
30
30
|
* @description This warning occurs when the website attempts to invoke the deprecated `chrome.loadTimes().wasAlternateProtocolAvailable` API.
|
|
31
31
|
*/
|
|
32
32
|
ChromeLoadTimesWasAlternateProtocolAvailable: "`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.",
|
|
33
|
-
/**
|
|
34
|
-
* @description This warning occurs when the browser attempts to store a cookie containing a banned character. Rather than the cookie string being truncated at the banned character, the entire cookie will be rejected now.
|
|
35
|
-
*/
|
|
36
|
-
CookieWithTruncatingChar: "Cookies containing a `\\(0|r|n)` character will be rejected instead of truncated.",
|
|
37
33
|
/**
|
|
38
34
|
* @description This warning occurs when a frame accesses another frame's data after having set `document.domain` without having set the `Origin-Agent-Cluster` http header. This is a companion warning to `documentDomainSettingWithoutOriginAgentClusterHeader`, where that warning occurs when `document.domain` is set, and this warning occurs when an access has been made, based on that previous `document.domain` setting.
|
|
39
35
|
*/
|
|
@@ -286,9 +282,6 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
|
|
|
286
282
|
"ChromeLoadTimesWasAlternateProtocolAvailable": {
|
|
287
283
|
"chromeStatusFeature": 5637885046816768
|
|
288
284
|
},
|
|
289
|
-
"CookieWithTruncatingChar": {
|
|
290
|
-
"milestone": 103
|
|
291
|
-
},
|
|
292
285
|
"CrossOriginAccessBasedOnDocumentDomain": {
|
|
293
286
|
"milestone": 115
|
|
294
287
|
},
|
|
@@ -81,7 +81,7 @@ inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {Permissio
|
|
|
81
81
|
inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOriginNoCorsRequest: "UseErrorCrossOriginNoCorsRequest", UseErrorDictionaryLoadFailure: "UseErrorDictionaryLoadFailure", UseErrorMatchingDictionaryNotUsed: "UseErrorMatchingDictionaryNotUsed", UseErrorUnexpectedContentDictionaryHeader: "UseErrorUnexpectedContentDictionaryHeader", WriteErrorCossOriginNoCorsRequest: "WriteErrorCossOriginNoCorsRequest", WriteErrorDisallowedBySettings: "WriteErrorDisallowedBySettings", WriteErrorExpiredResponse: "WriteErrorExpiredResponse", WriteErrorFeatureDisabled: "WriteErrorFeatureDisabled", WriteErrorInsufficientResources: "WriteErrorInsufficientResources", WriteErrorInvalidMatchField: "WriteErrorInvalidMatchField", WriteErrorInvalidStructuredHeader: "WriteErrorInvalidStructuredHeader", WriteErrorInvalidTTLField: "WriteErrorInvalidTTLField", WriteErrorNavigationRequest: "WriteErrorNavigationRequest", WriteErrorNoMatchField: "WriteErrorNoMatchField", WriteErrorNonIntegerTTLField: "WriteErrorNonIntegerTTLField", WriteErrorNonListMatchDestField: "WriteErrorNonListMatchDestField", WriteErrorNonSecureContext: "WriteErrorNonSecureContext", WriteErrorNonStringIdField: "WriteErrorNonStringIdField", WriteErrorNonStringInMatchDestList: "WriteErrorNonStringInMatchDestList", WriteErrorNonStringMatchField: "WriteErrorNonStringMatchField", WriteErrorNonTokenTypeField: "WriteErrorNonTokenTypeField", WriteErrorRequestAborted: "WriteErrorRequestAborted", WriteErrorShuttingDown: "WriteErrorShuttingDown", WriteErrorTooLongIdField: "WriteErrorTooLongIdField", WriteErrorUnsupportedType: "WriteErrorUnsupportedType"});
|
|
82
82
|
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"});
|
|
83
83
|
inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionary: "MalformedDictionary", UnknownAlgorithm: "UnknownAlgorithm", IncorrectDigestType: "IncorrectDigestType", IncorrectDigestLength: "IncorrectDigestLength"});
|
|
84
|
-
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"});
|
|
84
|
+
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", AutofillAndManualTextPolicyControlledFeaturesInfo: "AutofillAndManualTextPolicyControlledFeaturesInfo", AutofillPolicyControlledFeatureInfo: "AutofillPolicyControlledFeatureInfo", ManualTextPolicyControlledFeatureInfo: "ManualTextPolicyControlledFeatureInfo"});
|
|
85
85
|
inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
|
|
86
86
|
inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", ClientMetadataHttpNotFound: "ClientMetadataHttpNotFound", ClientMetadataNoResponse: "ClientMetadataNoResponse", ClientMetadataInvalidResponse: "ClientMetadataInvalidResponse", ClientMetadataInvalidContentType: "ClientMetadataInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", ThirdPartyCookiesBlocked: "ThirdPartyCookiesBlocked", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", InvalidFieldsSpecified: "InvalidFieldsSpecified", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
|
|
87
87
|
inspectorBackend.registerEnum("Audits.FederatedAuthUserInfoRequestIssueReason", {NotSameOrigin: "NotSameOrigin", NotIframe: "NotIframe", NotPotentiallyTrustworthy: "NotPotentiallyTrustworthy", NoAPIPermission: "NoApiPermission", NotSignedInWithIdp: "NotSignedInWithIdp", NoAccountSharingPermission: "NoAccountSharingPermission", InvalidConfigOrWellKnown: "InvalidConfigOrWellKnown", InvalidAccountsResponse: "InvalidAccountsResponse", NoReturningUserFromFetchedAccounts: "NoReturningUserFromFetchedAccounts"});
|
|
@@ -191,7 +191,7 @@ inspectorBackend.registerType("BluetoothEmulation.CharacteristicProperties", [{"
|
|
|
191
191
|
|
|
192
192
|
// Browser.
|
|
193
193
|
inspectorBackend.registerEnum("Browser.WindowState", {Normal: "normal", Minimized: "minimized", Maximized: "maximized", Fullscreen: "fullscreen"});
|
|
194
|
-
inspectorBackend.registerEnum("Browser.PermissionType", {Ar: "ar", AudioCapture: "audioCapture", AutomaticFullscreen: "automaticFullscreen", BackgroundFetch: "backgroundFetch", BackgroundSync: "backgroundSync", CameraPanTiltZoom: "cameraPanTiltZoom", CapturedSurfaceControl: "capturedSurfaceControl", ClipboardReadWrite: "clipboardReadWrite", ClipboardSanitizedWrite: "clipboardSanitizedWrite", DisplayCapture: "displayCapture", DurableStorage: "durableStorage", Geolocation: "geolocation", HandTracking: "handTracking", IdleDetection: "idleDetection", KeyboardLock: "keyboardLock", LocalFonts: "localFonts", LocalNetworkAccess: "localNetworkAccess", Midi: "midi", MidiSysex: "midiSysex", Nfc: "nfc", Notifications: "notifications", PaymentHandler: "paymentHandler", PeriodicBackgroundSync: "periodicBackgroundSync", PointerLock: "pointerLock", ProtectedMediaIdentifier: "protectedMediaIdentifier", Sensors: "sensors", SmartCard: "smartCard", SpeakerSelection: "speakerSelection", StorageAccess: "storageAccess", TopLevelStorageAccess: "topLevelStorageAccess", VideoCapture: "videoCapture", Vr: "vr", WakeLockScreen: "wakeLockScreen", WakeLockSystem: "wakeLockSystem", WebAppInstallation: "webAppInstallation", WebPrinting: "webPrinting", WindowManagement: "windowManagement"});
|
|
194
|
+
inspectorBackend.registerEnum("Browser.PermissionType", {Ar: "ar", AudioCapture: "audioCapture", AutomaticFullscreen: "automaticFullscreen", BackgroundFetch: "backgroundFetch", BackgroundSync: "backgroundSync", CameraPanTiltZoom: "cameraPanTiltZoom", CapturedSurfaceControl: "capturedSurfaceControl", ClipboardReadWrite: "clipboardReadWrite", ClipboardSanitizedWrite: "clipboardSanitizedWrite", DisplayCapture: "displayCapture", DurableStorage: "durableStorage", Geolocation: "geolocation", HandTracking: "handTracking", IdleDetection: "idleDetection", KeyboardLock: "keyboardLock", LocalFonts: "localFonts", LocalNetwork: "localNetwork", LocalNetworkAccess: "localNetworkAccess", LoopbackNetwork: "loopbackNetwork", Midi: "midi", MidiSysex: "midiSysex", Nfc: "nfc", Notifications: "notifications", PaymentHandler: "paymentHandler", PeriodicBackgroundSync: "periodicBackgroundSync", PointerLock: "pointerLock", ProtectedMediaIdentifier: "protectedMediaIdentifier", Sensors: "sensors", SmartCard: "smartCard", SpeakerSelection: "speakerSelection", StorageAccess: "storageAccess", TopLevelStorageAccess: "topLevelStorageAccess", VideoCapture: "videoCapture", Vr: "vr", WakeLockScreen: "wakeLockScreen", WakeLockSystem: "wakeLockSystem", WebAppInstallation: "webAppInstallation", WebPrinting: "webPrinting", WindowManagement: "windowManagement"});
|
|
195
195
|
inspectorBackend.registerEnum("Browser.PermissionSetting", {Granted: "granted", Denied: "denied", Prompt: "prompt"});
|
|
196
196
|
inspectorBackend.registerEnum("Browser.BrowserCommandId", {OpenTabSearch: "openTabSearch", CloseTabSearch: "closeTabSearch", OpenGlic: "openGlic"});
|
|
197
197
|
inspectorBackend.registerEnum("Browser.PrivacySandboxAPI", {BiddingAndAuctionServices: "BiddingAndAuctionServices", TrustedKeyValue: "TrustedKeyValue"});
|
|
@@ -340,7 +340,7 @@ inspectorBackend.registerCommand("Cast.stopCasting", [{"name": "sinkName", "type
|
|
|
340
340
|
inspectorBackend.registerType("Cast.Sink", [{"name": "name", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "id", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "session", "type": "string", "optional": true, "description": "Text describing the current session. Present only if there is an active session on the sink.", "typeRef": null}]);
|
|
341
341
|
|
|
342
342
|
// DOM.
|
|
343
|
-
inspectorBackend.registerEnum("DOM.PseudoType", {FirstLine: "first-line", FirstLetter: "first-letter", Checkmark: "checkmark", Before: "before", After: "after", PickerIcon: "picker-icon", InterestHint: "interest-hint", Marker: "marker", Backdrop: "backdrop", Column: "column", Selection: "selection", SearchText: "search-text", TargetText: "target-text", SpellingError: "spelling-error", GrammarError: "grammar-error", Highlight: "highlight", FirstLineInherited: "first-line-inherited", ScrollMarker: "scroll-marker", ScrollMarkerGroup: "scroll-marker-group", ScrollButton: "scroll-button", Scrollbar: "scrollbar", ScrollbarThumb: "scrollbar-thumb", ScrollbarButton: "scrollbar-button", ScrollbarTrack: "scrollbar-track", ScrollbarTrackPiece: "scrollbar-track-piece", ScrollbarCorner: "scrollbar-corner", Resizer: "resizer", InputListButton: "input-list-button", ViewTransition: "view-transition", ViewTransitionGroup: "view-transition-group", ViewTransitionImagePair: "view-transition-image-pair", ViewTransitionGroupChildren: "view-transition-group-children", ViewTransitionOld: "view-transition-old", ViewTransitionNew: "view-transition-new", Placeholder: "placeholder", FileSelectorButton: "file-selector-button", DetailsContent: "details-content", Picker: "picker", PermissionIcon: "permission-icon", OverscrollAreaParent: "overscroll-area-parent"
|
|
343
|
+
inspectorBackend.registerEnum("DOM.PseudoType", {FirstLine: "first-line", FirstLetter: "first-letter", Checkmark: "checkmark", Before: "before", After: "after", PickerIcon: "picker-icon", InterestHint: "interest-hint", Marker: "marker", Backdrop: "backdrop", Column: "column", Selection: "selection", SearchText: "search-text", TargetText: "target-text", SpellingError: "spelling-error", GrammarError: "grammar-error", Highlight: "highlight", FirstLineInherited: "first-line-inherited", ScrollMarker: "scroll-marker", ScrollMarkerGroup: "scroll-marker-group", ScrollButton: "scroll-button", Scrollbar: "scrollbar", ScrollbarThumb: "scrollbar-thumb", ScrollbarButton: "scrollbar-button", ScrollbarTrack: "scrollbar-track", ScrollbarTrackPiece: "scrollbar-track-piece", ScrollbarCorner: "scrollbar-corner", Resizer: "resizer", InputListButton: "input-list-button", ViewTransition: "view-transition", ViewTransitionGroup: "view-transition-group", ViewTransitionImagePair: "view-transition-image-pair", ViewTransitionGroupChildren: "view-transition-group-children", ViewTransitionOld: "view-transition-old", ViewTransitionNew: "view-transition-new", Placeholder: "placeholder", FileSelectorButton: "file-selector-button", DetailsContent: "details-content", Picker: "picker", PermissionIcon: "permission-icon", OverscrollAreaParent: "overscroll-area-parent"});
|
|
344
344
|
inspectorBackend.registerEnum("DOM.ShadowRootType", {UserAgent: "user-agent", Open: "open", Closed: "closed"});
|
|
345
345
|
inspectorBackend.registerEnum("DOM.CompatibilityMode", {QuirksMode: "QuirksMode", LimitedQuirksMode: "LimitedQuirksMode", NoQuirksMode: "NoQuirksMode"});
|
|
346
346
|
inspectorBackend.registerEnum("DOM.PhysicalAxes", {Horizontal: "Horizontal", Vertical: "Vertical", Both: "Both"});
|
|
@@ -1345,7 +1345,7 @@ inspectorBackend.registerCommand("Target.attachToBrowserTarget", [], ["sessionId
|
|
|
1345
1345
|
inspectorBackend.registerCommand("Target.closeTarget", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}], ["success"], "Closes the target. If the target is a page that gets closed too.");
|
|
1346
1346
|
inspectorBackend.registerCommand("Target.exposeDevToolsProtocol", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "bindingName", "type": "string", "optional": true, "description": "Binding name, 'cdp' if not specified.", "typeRef": null}, {"name": "inheritPermissions", "type": "boolean", "optional": true, "description": "If true, inherits the current root session's permissions (default: false).", "typeRef": null}], [], "Inject object to the target's main frame that provides a communication channel with browser target. Injected object will be available as `window[bindingName]`. The object has the following API: - `binding.send(json)` - a method to send messages over the remote debugging protocol - `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses.");
|
|
1347
1347
|
inspectorBackend.registerCommand("Target.createBrowserContext", [{"name": "disposeOnDetach", "type": "boolean", "optional": true, "description": "If specified, disposes this context when debugging session disconnects.", "typeRef": null}, {"name": "proxyServer", "type": "string", "optional": true, "description": "Proxy server, similar to the one passed to --proxy-server", "typeRef": null}, {"name": "proxyBypassList", "type": "string", "optional": true, "description": "Proxy bypass list, similar to the one passed to --proxy-bypass-list", "typeRef": null}, {"name": "originsWithUniversalNetworkAccess", "type": "array", "optional": true, "description": "An optional list of origins to grant unlimited cross-origin access to. Parts of the URL other than those constituting origin are ignored.", "typeRef": "string"}], ["browserContextId"], "Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than one.");
|
|
1348
|
-
inspectorBackend.registerCommand("Target.getBrowserContexts", [], ["browserContextIds"], "Returns all browser contexts created with `Target.createBrowserContext` method.");
|
|
1348
|
+
inspectorBackend.registerCommand("Target.getBrowserContexts", [], ["browserContextIds", "defaultBrowserContextId"], "Returns all browser contexts created with `Target.createBrowserContext` method.");
|
|
1349
1349
|
inspectorBackend.registerCommand("Target.createTarget", [{"name": "url", "type": "string", "optional": false, "description": "The initial URL the page will be navigated to. An empty string indicates about:blank.", "typeRef": null}, {"name": "left", "type": "number", "optional": true, "description": "Frame left origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "top", "type": "number", "optional": true, "description": "Frame top origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "width", "type": "number", "optional": true, "description": "Frame width in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "height", "type": "number", "optional": true, "description": "Frame height in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "windowState", "type": "string", "optional": true, "description": "Frame window state (requires newWindow to be true or headless shell). Default is normal.", "typeRef": "Target.WindowState"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "The browser context to create the page in.", "typeRef": "Browser.BrowserContextID"}, {"name": "enableBeginFrameControl", "type": "boolean", "optional": true, "description": "Whether BeginFrames for this target will be controlled via DevTools (headless shell only, not supported on MacOS yet, false by default).", "typeRef": null}, {"name": "newWindow", "type": "boolean", "optional": true, "description": "Whether to create a new Window or Tab (false by default, not supported by headless shell).", "typeRef": null}, {"name": "background", "type": "boolean", "optional": true, "description": "Whether to create the target in background or foreground (false by default, not supported by headless shell).", "typeRef": null}, {"name": "forTab", "type": "boolean", "optional": true, "description": "Whether to create the target of type \\\"tab\\\".", "typeRef": null}, {"name": "hidden", "type": "boolean", "optional": true, "description": "Whether to create a hidden target. The hidden target is observable via protocol, but not present in the tab UI strip. Cannot be created with `forTab: true`, `newWindow: true` or `background: false`. The life-time of the tab is limited to the life-time of the session.", "typeRef": null}], ["targetId"], "Creates a new page.");
|
|
1350
1350
|
inspectorBackend.registerCommand("Target.detachFromTarget", [{"name": "sessionId", "type": "string", "optional": true, "description": "Session to detach.", "typeRef": "Target.SessionID"}, {"name": "targetId", "type": "string", "optional": true, "description": "Deprecated.", "typeRef": "Target.TargetID"}], [], "Detaches session with given id.");
|
|
1351
1351
|
inspectorBackend.registerCommand("Target.disposeBrowserContext", [{"name": "browserContextId", "type": "string", "optional": false, "description": "", "typeRef": "Browser.BrowserContextID"}], [], "Deletes a BrowserContext. All the belonging pages will be closed without calling their beforeunload hooks.");
|
|
@@ -1194,6 +1194,9 @@ export namespace Audits {
|
|
|
1194
1194
|
FormInputHasWrongButWellIntendedAutocompleteValueError = 'FormInputHasWrongButWellIntendedAutocompleteValueError',
|
|
1195
1195
|
ResponseWasBlockedByORB = 'ResponseWasBlockedByORB',
|
|
1196
1196
|
NavigationEntryMarkedSkippable = 'NavigationEntryMarkedSkippable',
|
|
1197
|
+
AutofillAndManualTextPolicyControlledFeaturesInfo = 'AutofillAndManualTextPolicyControlledFeaturesInfo',
|
|
1198
|
+
AutofillPolicyControlledFeatureInfo = 'AutofillPolicyControlledFeatureInfo',
|
|
1199
|
+
ManualTextPolicyControlledFeatureInfo = 'ManualTextPolicyControlledFeatureInfo',
|
|
1197
1200
|
}
|
|
1198
1201
|
|
|
1199
1202
|
/**
|
|
@@ -2226,7 +2229,9 @@ export namespace Browser {
|
|
|
2226
2229
|
IdleDetection = 'idleDetection',
|
|
2227
2230
|
KeyboardLock = 'keyboardLock',
|
|
2228
2231
|
LocalFonts = 'localFonts',
|
|
2232
|
+
LocalNetwork = 'localNetwork',
|
|
2229
2233
|
LocalNetworkAccess = 'localNetworkAccess',
|
|
2234
|
+
LoopbackNetwork = 'loopbackNetwork',
|
|
2230
2235
|
Midi = 'midi',
|
|
2231
2236
|
MidiSysex = 'midiSysex',
|
|
2232
2237
|
Nfc = 'nfc',
|
|
@@ -4531,7 +4536,6 @@ export namespace DOM {
|
|
|
4531
4536
|
Picker = 'picker',
|
|
4532
4537
|
PermissionIcon = 'permission-icon',
|
|
4533
4538
|
OverscrollAreaParent = 'overscroll-area-parent',
|
|
4534
|
-
OverscrollClientArea = 'overscroll-client-area',
|
|
4535
4539
|
}
|
|
4536
4540
|
|
|
4537
4541
|
/**
|
|
@@ -18391,6 +18395,10 @@ export namespace Target {
|
|
|
18391
18395
|
* An array of browser context ids.
|
|
18392
18396
|
*/
|
|
18393
18397
|
browserContextIds: Browser.BrowserContextID[];
|
|
18398
|
+
/**
|
|
18399
|
+
* The id of the default browser context if available.
|
|
18400
|
+
*/
|
|
18401
|
+
defaultBrowserContextId?: Browser.BrowserContextID;
|
|
18394
18402
|
}
|
|
18395
18403
|
|
|
18396
18404
|
export interface CreateTargetRequest {
|