chrome-devtools-frontend 1.0.1535712 → 1.0.1537268
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/docs/contributing/images/issues-nearestslo.png +0 -0
- package/docs/contributing/issues.md +17 -21
- package/front_end/core/common/Console.ts +1 -8
- package/front_end/core/common/ParsedURL.ts +10 -20
- package/front_end/core/common/SegmentedRange.ts +1 -2
- package/front_end/core/common/StringOutputStream.ts +1 -4
- package/front_end/core/host/AidaClient.ts +64 -5
- package/front_end/core/host/DispatchHttpRequestClient.ts +62 -0
- package/front_end/core/host/GdpClient.ts +8 -57
- package/front_end/core/host/host.ts +2 -0
- package/front_end/core/i18n/i18nImpl.ts +0 -24
- package/front_end/core/protocol_client/CDPConnection.ts +10 -8
- package/front_end/core/protocol_client/InspectorBackend.ts +36 -42
- package/front_end/core/sdk/AnimationModel.ts +1 -2
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSProperty.ts +3 -6
- package/front_end/core/sdk/CSSStyleDeclaration.ts +4 -4
- package/front_end/core/sdk/DebuggerModel.ts +1 -2
- package/front_end/core/sdk/EnhancedTracesParser.ts +24 -5
- package/front_end/core/sdk/RehydratingConnection.ts +112 -4
- package/front_end/core/sdk/RehydratingObject.ts +8 -0
- package/front_end/core/sdk/SourceMap.ts +2 -3
- package/front_end/core/sdk/TraceObject.ts +5 -1
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +2 -1
- package/front_end/generated/InspectorBackendCommands.js +1 -2
- package/front_end/generated/SupportedCSSProperties.js +19 -0
- package/front_end/generated/protocol.ts +0 -27
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/models/trace/types/File.ts +9 -0
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +18 -17
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +9 -12
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +5 -9
- package/front_end/panels/ai_assistance/components/ChatView.ts +63 -74
- package/front_end/panels/application/AppManifestView.ts +7 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -4
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -6
- package/front_end/panels/application/OpenedWindowDetailsView.ts +6 -6
- package/front_end/panels/application/StorageView.ts +9 -8
- package/front_end/panels/application/components/BackForwardCacheView.ts +366 -342
- package/front_end/panels/application/components/FrameDetailsView.ts +8 -11
- package/front_end/panels/application/components/OriginTrialTreeView.ts +65 -69
- package/front_end/panels/application/components/ProtocolHandlersView.ts +3 -2
- package/front_end/panels/application/components/backForwardCacheView.css +4 -0
- package/front_end/panels/application/components/badge.css +1 -1
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -1
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +44 -53
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +8 -8
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +8 -2
- package/front_end/panels/console/ConsolePinPane.ts +12 -7
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +9 -9
- package/front_end/panels/elements/ComputedStyleWidget.ts +7 -7
- package/front_end/panels/elements/EventListenersWidget.ts +9 -9
- package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -6
- package/front_end/panels/elements/PlatformFontsWidget.ts +5 -5
- package/front_end/panels/elements/PropertiesWidget.ts +8 -8
- package/front_end/panels/layer_viewer/Layers3DView.ts +2 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +3 -3
- package/front_end/panels/network/RequestCookiesView.ts +2 -1
- package/front_end/panels/network/RequestTimingView.ts +2 -1
- package/front_end/panels/recorder/RecorderController.ts +33 -23
- package/front_end/panels/recorder/components/CreateRecordingView.ts +259 -226
- package/front_end/panels/security/CookieControlsView.ts +2 -1
- package/front_end/panels/security/CookieReportView.ts +3 -2
- package/front_end/panels/settings/AISettingsTab.ts +164 -172
- package/front_end/panels/settings/KeybindsSettingsTab.ts +6 -0
- package/front_end/panels/settings/SettingsScreen.ts +3 -7
- package/front_end/panels/settings/aiSettingsTab.css +151 -148
- package/front_end/panels/settings/components/SyncSection.ts +2 -1
- package/front_end/panels/settings/settings-meta.ts +1 -2
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +23 -26
- package/front_end/panels/sources/DebuggerPausedMessage.ts +4 -3
- package/front_end/panels/sources/ResourceOriginPlugin.ts +3 -2
- package/front_end/panels/sources/SourcesNavigator.ts +2 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +9 -9
- package/front_end/panels/timeline/TimelinePanel.ts +60 -11
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/DetailsView.ts +5 -4
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +33 -34
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +2 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +5 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +25 -24
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -1
- package/front_end/third_party/chromium/README.chromium +2 -2
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +9 -1
- 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/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +13 -1
- 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/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -2
- 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 +3 -1
- 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/Realm.d.ts +1 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +2 -2
- 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 +6 -1
- 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/BrowserContext.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -2
- 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 +3 -1
- 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/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/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js.map +1 -1
- 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 +28 -3
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +21 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +9 -1
- 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/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +13 -1
- 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/BrowserContext.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -2
- 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 +3 -1
- 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/Realm.d.ts +1 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +2 -2
- 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 +6 -1
- 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/BrowserContext.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -2
- 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 +3 -1
- 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/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/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.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 +28 -3
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +7 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +14 -1
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +8 -5
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +5 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +8 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -2
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/disposable.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/util.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/docs/tooltip/basic.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +280 -0
- package/front_end/ui/components/text_editor/text_editor.ts +1 -0
- package/front_end/ui/components/tooltips/Tooltip.ts +33 -18
- package/front_end/ui/i18n/i18n.ts +31 -0
- package/front_end/ui/legacy/Dialog.ts +0 -1
- package/front_end/ui/legacy/SettingsUI.ts +0 -14
- package/front_end/ui/legacy/SoftDropDown.ts +1 -12
- package/front_end/ui/legacy/ViewManager.ts +2 -4
- package/front_end/ui/legacy/Widget.ts +33 -17
- package/front_end/ui/legacy/XLink.ts +0 -3
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +9 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +9 -3
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +4 -1
- package/mcp/mcp.ts +6 -0
- package/package.json +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatterBounds.snapshot.txt +0 -4
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.html +0 -20
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.ts +0 -25
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.html +0 -20
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.ts +0 -36
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +0 -27
- package/front_end/ui/legacy/ThrottledWidget.ts +0 -48
|
@@ -836,12 +836,11 @@ export class AnimationGroup {
|
|
|
836
836
|
readonly #id: string;
|
|
837
837
|
#scrollNode: AnimationDOMNode|undefined;
|
|
838
838
|
#animations: AnimationImpl[];
|
|
839
|
-
#paused
|
|
839
|
+
#paused = false;
|
|
840
840
|
constructor(animationModel: AnimationModel, id: string, animations: AnimationImpl[]) {
|
|
841
841
|
this.#animationModel = animationModel;
|
|
842
842
|
this.#id = id;
|
|
843
843
|
this.#animations = animations;
|
|
844
|
-
this.#paused = false;
|
|
845
844
|
}
|
|
846
845
|
|
|
847
846
|
isScrollDriven(): boolean {
|
|
@@ -361,7 +361,7 @@ export class CSSMatchedStyles {
|
|
|
361
361
|
inheritedResult.matchedCSSRules = cleanUserAgentPayload(inheritedResult.matchedCSSRules);
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
this.#environmentVariables = await this.cssModel().
|
|
364
|
+
this.#environmentVariables = await this.cssModel().getEnvironmentVariables();
|
|
365
365
|
|
|
366
366
|
this.#mainDOMCascade = await this.buildMainCascade(
|
|
367
367
|
inlinePayload, attributesPayload, matchedPayload, inheritedPayload, animationStylesPayload,
|
|
@@ -450,7 +450,7 @@ export class CSSMatchedStyles {
|
|
|
450
450
|
nodeCascades.push(new NodeCascade(this, nodeStyles, this.#node, false /* #isInherited */));
|
|
451
451
|
|
|
452
452
|
// Walk the node structure and identify styles with inherited properties.
|
|
453
|
-
let parentNode:
|
|
453
|
+
let parentNode: DOMNode|null = this.#node.parentNode;
|
|
454
454
|
const traverseParentInFlatTree = async(node: DOMNode): Promise<DOMNode|null> => {
|
|
455
455
|
if (node.hasAssignedSlot()) {
|
|
456
456
|
return await node.assignedSlot?.deferredNode.resolvePromise() ?? null;
|
|
@@ -407,7 +407,7 @@ export class CSSModel extends SDKModel<EventTypes> {
|
|
|
407
407
|
};
|
|
408
408
|
}
|
|
409
409
|
|
|
410
|
-
async
|
|
410
|
+
async getEnvironmentVariables(): Promise<Record<string, string>> {
|
|
411
411
|
const response = await this.agent.invoke_getEnvironmentVariables();
|
|
412
412
|
if (response.getError()) {
|
|
413
413
|
return {};
|
|
@@ -41,9 +41,9 @@ export class CSSProperty extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
41
41
|
implicit: boolean;
|
|
42
42
|
text: string|null|undefined;
|
|
43
43
|
range: TextUtils.TextRange.TextRange|null;
|
|
44
|
-
#active
|
|
45
|
-
#nameRange: TextUtils.TextRange.TextRange|null;
|
|
46
|
-
#valueRange: TextUtils.TextRange.TextRange|null;
|
|
44
|
+
#active = true;
|
|
45
|
+
#nameRange: TextUtils.TextRange.TextRange|null = null;
|
|
46
|
+
#valueRange: TextUtils.TextRange.TextRange|null = null;
|
|
47
47
|
#invalidString?: Common.UIString.LocalizedString;
|
|
48
48
|
#longhandProperties: CSSProperty[] = [];
|
|
49
49
|
|
|
@@ -62,9 +62,6 @@ export class CSSProperty extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
62
62
|
this.implicit = implicit; // A longhand, implicitly set by missing values of shorthand.
|
|
63
63
|
this.text = text;
|
|
64
64
|
this.range = range ? TextUtils.TextRange.TextRange.fromObject(range) : null;
|
|
65
|
-
this.#active = true;
|
|
66
|
-
this.#nameRange = null;
|
|
67
|
-
this.#valueRange = null;
|
|
68
65
|
|
|
69
66
|
if (longhandProperties && longhandProperties.length > 0) {
|
|
70
67
|
for (const property of longhandProperties) {
|
|
@@ -14,14 +14,14 @@ import type {Target} from './Target.js';
|
|
|
14
14
|
export class CSSStyleDeclaration {
|
|
15
15
|
readonly #cssModel: CSSModel;
|
|
16
16
|
parentRule: CSSRule|null;
|
|
17
|
-
#allProperties
|
|
17
|
+
#allProperties: CSSProperty[] = [];
|
|
18
18
|
styleSheetId?: Protocol.CSS.StyleSheetId;
|
|
19
|
-
range
|
|
19
|
+
range: TextUtils.TextRange.TextRange|null = null;
|
|
20
20
|
cssText?: string;
|
|
21
21
|
#shorthandValues = new Map<string, string>();
|
|
22
22
|
#shorthandIsImportant = new Set<string>();
|
|
23
23
|
#activePropertyMap = new Map<string, CSSProperty>();
|
|
24
|
-
#leadingProperties
|
|
24
|
+
#leadingProperties: CSSProperty[]|null = null;
|
|
25
25
|
type: Type;
|
|
26
26
|
// For CSSStyles coming from animations,
|
|
27
27
|
// This holds the name of the animation.
|
|
@@ -97,7 +97,7 @@ export class CSSStyleDeclaration {
|
|
|
97
97
|
this.#computeInactiveProperties();
|
|
98
98
|
|
|
99
99
|
// TODO(changhaohan): verify if this #activePropertyMap is still necessary, or if it is
|
|
100
|
-
// providing different information against the activeness in
|
|
100
|
+
// providing different information against the activeness in #allProperties.
|
|
101
101
|
this.#activePropertyMap = new Map();
|
|
102
102
|
for (const property of this.#allProperties) {
|
|
103
103
|
if (!property.activeInStyle()) {
|
|
@@ -1402,14 +1402,13 @@ export class Scope implements ScopeChainEntry {
|
|
|
1402
1402
|
readonly #name: string|undefined;
|
|
1403
1403
|
#ordinal: number;
|
|
1404
1404
|
readonly #locationRange: LocationRange|null;
|
|
1405
|
-
#object: RemoteObject|null;
|
|
1405
|
+
#object: RemoteObject|null = null;
|
|
1406
1406
|
constructor(callFrame: CallFrame, ordinal: number) {
|
|
1407
1407
|
this.#callFrame = callFrame;
|
|
1408
1408
|
this.#payload = callFrame.getPayload().scopeChain[ordinal];
|
|
1409
1409
|
this.#type = this.#payload.type;
|
|
1410
1410
|
this.#name = this.#payload.name;
|
|
1411
1411
|
this.#ordinal = ordinal;
|
|
1412
|
-
this.#object = null;
|
|
1413
1412
|
|
|
1414
1413
|
const start =
|
|
1415
1414
|
this.#payload.startLocation ? Location.fromPayload(callFrame.debuggerModel, this.#payload.startLocation) : null;
|
|
@@ -8,7 +8,7 @@ import type * as Platform from '../platform/platform.js';
|
|
|
8
8
|
import {UserVisibleError} from '../platform/platform.js';
|
|
9
9
|
|
|
10
10
|
import type {
|
|
11
|
-
HydratingDataPerTarget, RehydratingExecutionContext, RehydratingScript, RehydratingTarget} from
|
|
11
|
+
HydratingDataPerTarget, RehydratingExecutionContext, RehydratingResource, RehydratingScript, RehydratingTarget} from
|
|
12
12
|
'./RehydratingObject.js';
|
|
13
13
|
import type {SourceMapV3} from './SourceMap.js';
|
|
14
14
|
import type {TraceObject} from './TraceObject.js';
|
|
@@ -142,6 +142,7 @@ export class EnhancedTracesParser {
|
|
|
142
142
|
#targets: RehydratingTarget[] = [];
|
|
143
143
|
#executionContexts: RehydratingExecutionContext[] = [];
|
|
144
144
|
#scripts: RehydratingScript[] = [];
|
|
145
|
+
#resources: RehydratingResource[] = [];
|
|
145
146
|
static readonly enhancedTraceVersion: number = 1;
|
|
146
147
|
|
|
147
148
|
constructor(trace: TraceObject) {
|
|
@@ -164,6 +165,10 @@ export class EnhancedTracesParser {
|
|
|
164
165
|
if (frame.url === 'about:blank') {
|
|
165
166
|
continue;
|
|
166
167
|
}
|
|
168
|
+
if (!frame.isInPrimaryMainFrame) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
|
|
167
172
|
const frameId = frame.frame as string as Protocol.Target.TargetID;
|
|
168
173
|
if (!this.#targets.find(target => target.targetId === frameId)) {
|
|
169
174
|
const frameType = frame.isOutermostMainFrame ? 'page' : 'iframe';
|
|
@@ -315,7 +320,10 @@ export class EnhancedTracesParser {
|
|
|
315
320
|
this.resolveSourceMap(script);
|
|
316
321
|
}
|
|
317
322
|
|
|
318
|
-
|
|
323
|
+
this.#resources = this.#trace.metadata.resources ?? [];
|
|
324
|
+
|
|
325
|
+
return this.groupContextsAndScriptsUnderTarget(
|
|
326
|
+
this.#targets, this.#executionContexts, this.#scripts, this.#resources);
|
|
319
327
|
}
|
|
320
328
|
|
|
321
329
|
private resolveSourceMap(script: RehydratingScript): void {
|
|
@@ -407,8 +415,8 @@ export class EnhancedTracesParser {
|
|
|
407
415
|
}
|
|
408
416
|
|
|
409
417
|
private groupContextsAndScriptsUnderTarget(
|
|
410
|
-
targets: RehydratingTarget[], executionContexts: RehydratingExecutionContext[],
|
|
411
|
-
|
|
418
|
+
targets: RehydratingTarget[], executionContexts: RehydratingExecutionContext[], scripts: RehydratingScript[],
|
|
419
|
+
resources: RehydratingResource[]): HydratingDataPerTarget[] {
|
|
412
420
|
const data: HydratingDataPerTarget[] = [];
|
|
413
421
|
const targetIds = new Set<Protocol.Target.TargetID>();
|
|
414
422
|
const targetToExecutionContexts: Map<string, RehydratingExecutionContext[]> =
|
|
@@ -420,12 +428,15 @@ export class EnhancedTracesParser {
|
|
|
420
428
|
const targetToScripts: Map<Protocol.Target.TargetID, RehydratingScript[]> =
|
|
421
429
|
new Map<Protocol.Target.TargetID, RehydratingScript[]>();
|
|
422
430
|
const orphanScripts: RehydratingScript[] = [];
|
|
431
|
+
const targetToResources: Map<Protocol.Target.TargetID, RehydratingResource[]> =
|
|
432
|
+
new Map<Protocol.Target.TargetID, RehydratingResource[]>();
|
|
423
433
|
|
|
424
434
|
// Initialize all the mapping needed
|
|
425
435
|
for (const target of targets) {
|
|
426
436
|
targetIds.add(target.targetId);
|
|
427
437
|
targetToExecutionContexts.set(target.targetId, []);
|
|
428
438
|
targetToScripts.set(target.targetId, []);
|
|
439
|
+
targetToResources.set(target.targetId, []);
|
|
429
440
|
}
|
|
430
441
|
|
|
431
442
|
// Put all of the known execution contexts under respective targets
|
|
@@ -481,12 +492,20 @@ export class EnhancedTracesParser {
|
|
|
481
492
|
}
|
|
482
493
|
}
|
|
483
494
|
|
|
495
|
+
for (const resource of resources) {
|
|
496
|
+
const frameId = resource.frame as Protocol.Target.TargetID;
|
|
497
|
+
if (targetIds.has(frameId)) {
|
|
498
|
+
targetToResources.get(frameId)?.push(resource);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
484
502
|
// Now all the scripts are linked to a target, we want to make sure all the scripts are pointing to a valid
|
|
485
503
|
// execution context. If not, we will create an artificial execution context for the script
|
|
486
504
|
for (const target of targets) {
|
|
487
505
|
const targetId = target.targetId;
|
|
488
506
|
const executionContexts = targetToExecutionContexts.get(targetId) || [];
|
|
489
507
|
const scripts = targetToScripts.get(targetId) || [];
|
|
508
|
+
const resources = targetToResources.get(targetId) || [];
|
|
490
509
|
for (const script of scripts) {
|
|
491
510
|
if (!executionContexts.find(context => context.id === script.executionContextId)) {
|
|
492
511
|
const artificialContext: RehydratingExecutionContext = {
|
|
@@ -507,7 +526,7 @@ export class EnhancedTracesParser {
|
|
|
507
526
|
}
|
|
508
527
|
|
|
509
528
|
// Finally, we put all the information into the data structure we want to return as.
|
|
510
|
-
data.push({target, executionContexts, scripts});
|
|
529
|
+
data.push({target, executionContexts, scripts, resources});
|
|
511
530
|
}
|
|
512
531
|
|
|
513
532
|
return data;
|
|
@@ -32,8 +32,8 @@ import * as Root from '../root/root.js';
|
|
|
32
32
|
|
|
33
33
|
import * as EnhancedTraces from './EnhancedTracesParser.js';
|
|
34
34
|
import type {
|
|
35
|
-
ProtocolMessage, RehydratingExecutionContext, RehydratingScript, RehydratingTarget,
|
|
36
|
-
'./RehydratingObject.js';
|
|
35
|
+
ProtocolMessage, RehydratingExecutionContext, RehydratingResource, RehydratingScript, RehydratingTarget,
|
|
36
|
+
ServerMessage} from './RehydratingObject.js';
|
|
37
37
|
import {TraceObject} from './TraceObject.js';
|
|
38
38
|
|
|
39
39
|
const UIStrings = {
|
|
@@ -157,6 +157,7 @@ export class RehydratingConnection implements ProtocolClient.ConnectionTransport
|
|
|
157
157
|
const target = hydratingDataPerTarget.target;
|
|
158
158
|
const executionContexts = hydratingDataPerTarget.executionContexts;
|
|
159
159
|
const scripts = hydratingDataPerTarget.scripts;
|
|
160
|
+
const resources = hydratingDataPerTarget.resources;
|
|
160
161
|
this.postToFrontend({
|
|
161
162
|
method: 'Target.targetCreated',
|
|
162
163
|
params: {
|
|
@@ -172,7 +173,7 @@ export class RehydratingConnection implements ProtocolClient.ConnectionTransport
|
|
|
172
173
|
});
|
|
173
174
|
|
|
174
175
|
sessionId += 1;
|
|
175
|
-
const session = new RehydratingSession(sessionId, target, executionContexts, scripts, this);
|
|
176
|
+
const session = new RehydratingSession(sessionId, target, executionContexts, scripts, resources, this);
|
|
176
177
|
this.sessions.set(sessionId, session);
|
|
177
178
|
session.declareSessionAttachedToTarget();
|
|
178
179
|
}
|
|
@@ -267,15 +268,17 @@ export class RehydratingSession extends RehydratingSessionBase {
|
|
|
267
268
|
target: RehydratingTarget;
|
|
268
269
|
executionContexts: RehydratingExecutionContext[] = [];
|
|
269
270
|
scripts: RehydratingScript[] = [];
|
|
271
|
+
resources: RehydratingResource[] = [];
|
|
270
272
|
|
|
271
273
|
constructor(
|
|
272
274
|
sessionId: number, target: RehydratingTarget, executionContexts: RehydratingExecutionContext[],
|
|
273
|
-
scripts: RehydratingScript[], connection: RehydratingConnectionInterface) {
|
|
275
|
+
scripts: RehydratingScript[], resources: RehydratingResource[], connection: RehydratingConnectionInterface) {
|
|
274
276
|
super(connection);
|
|
275
277
|
this.sessionId = sessionId;
|
|
276
278
|
this.target = target;
|
|
277
279
|
this.executionContexts = executionContexts;
|
|
278
280
|
this.scripts = scripts;
|
|
281
|
+
this.resources = resources;
|
|
279
282
|
}
|
|
280
283
|
|
|
281
284
|
override sendMessageToFrontend(payload: ServerMessage, attachSessionId = true): void {
|
|
@@ -294,12 +297,31 @@ export class RehydratingSession extends RehydratingSessionBase {
|
|
|
294
297
|
case 'Debugger.enable':
|
|
295
298
|
this.handleDebuggerEnable(data.id);
|
|
296
299
|
break;
|
|
300
|
+
case 'CSS.enable':
|
|
301
|
+
this.sendMessageToFrontend({
|
|
302
|
+
id: data.id,
|
|
303
|
+
result: {},
|
|
304
|
+
});
|
|
305
|
+
break;
|
|
297
306
|
case 'Debugger.getScriptSource':
|
|
298
307
|
if (data.params) {
|
|
299
308
|
const params = data.params as Protocol.Debugger.GetScriptSourceRequest;
|
|
300
309
|
this.handleDebuggerGetScriptSource(data.id, params.scriptId);
|
|
301
310
|
}
|
|
302
311
|
break;
|
|
312
|
+
case 'Page.getResourceTree':
|
|
313
|
+
this.handleGetResourceTree(data.id);
|
|
314
|
+
break;
|
|
315
|
+
case 'Page.getResourceContent': {
|
|
316
|
+
const request = data.params as unknown as Protocol.Page.GetResourceContentRequest;
|
|
317
|
+
this.handleGetResourceContent(request.frameId, request.url, data.id);
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
case 'CSS.getStyleSheetText': {
|
|
321
|
+
const request = data.params as unknown as Protocol.CSS.GetStyleSheetTextRequest;
|
|
322
|
+
this.handleGetStyleSheetText(request.styleSheetId, data.id);
|
|
323
|
+
break;
|
|
324
|
+
}
|
|
303
325
|
default:
|
|
304
326
|
this.sendMessageToFrontend({
|
|
305
327
|
id: data.id,
|
|
@@ -368,7 +390,22 @@ export class RehydratingSession extends RehydratingSessionBase {
|
|
|
368
390
|
// script parsed event to communicate the current script state and respond with a mock
|
|
369
391
|
// debugger id.
|
|
370
392
|
private handleDebuggerEnable(id: number): void {
|
|
393
|
+
const htmlResourceUrls = new Set(this.resources.filter(r => r.mimeType === 'text/html').map(r => r.url));
|
|
394
|
+
|
|
371
395
|
for (const script of this.scripts) {
|
|
396
|
+
// Handle inline scripts.
|
|
397
|
+
if (htmlResourceUrls.has(script.url)) {
|
|
398
|
+
script.embedderName = script.url;
|
|
399
|
+
// We don't have the actual embedded offset from this trace event. Non-zero
|
|
400
|
+
// values are important though: that is what `Script.isInlineScript()`
|
|
401
|
+
// checks. Otherwise these scripts would try to show individually within the
|
|
402
|
+
// Sources panel.
|
|
403
|
+
script.startColumn = 1;
|
|
404
|
+
script.startLine = 1;
|
|
405
|
+
script.endColumn = 1;
|
|
406
|
+
script.endLine = 1;
|
|
407
|
+
}
|
|
408
|
+
|
|
372
409
|
this.sendMessageToFrontend({
|
|
373
410
|
method: 'Debugger.scriptParsed',
|
|
374
411
|
params: script,
|
|
@@ -383,4 +420,75 @@ export class RehydratingSession extends RehydratingSessionBase {
|
|
|
383
420
|
},
|
|
384
421
|
});
|
|
385
422
|
}
|
|
423
|
+
|
|
424
|
+
private handleGetResourceTree(id: number): void {
|
|
425
|
+
const resources = this.resources.filter(r => r.mimeType === 'text/html' || r.mimeType === 'text/css');
|
|
426
|
+
if (!resources.length) {
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
const frameTree = {
|
|
431
|
+
frame: {
|
|
432
|
+
id: this.target.targetId,
|
|
433
|
+
url: this.target.url,
|
|
434
|
+
},
|
|
435
|
+
childFrames: [],
|
|
436
|
+
resources: resources.map(r => ({
|
|
437
|
+
url: r.url,
|
|
438
|
+
type: r.mimeType === 'text/html' ? 'Document' : 'Stylesheet',
|
|
439
|
+
mimeType: r.mimeType,
|
|
440
|
+
contentSize: r.content.length,
|
|
441
|
+
})),
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
this.sendMessageToFrontend({
|
|
445
|
+
id,
|
|
446
|
+
result: {
|
|
447
|
+
frameTree,
|
|
448
|
+
},
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
const stylesheets = this.resources.filter(r => r.mimeType === 'text/css');
|
|
452
|
+
for (const stylesheet of stylesheets) {
|
|
453
|
+
this.sendMessageToFrontend({
|
|
454
|
+
method: 'CSS.styleSheetAdded',
|
|
455
|
+
params: {
|
|
456
|
+
header: {
|
|
457
|
+
styleSheetId: `sheet.${stylesheet.frame}.${stylesheet.url}`,
|
|
458
|
+
frameId: stylesheet.frame,
|
|
459
|
+
sourceURL: stylesheet.url,
|
|
460
|
+
},
|
|
461
|
+
},
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
private handleGetResourceContent(frame: string, url: string, id: number): void {
|
|
467
|
+
const resource = this.resources.find(r => r.frame === frame && r.url === url);
|
|
468
|
+
if (!resource) {
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
this.sendMessageToFrontend({
|
|
473
|
+
id,
|
|
474
|
+
result: {
|
|
475
|
+
content: resource.content,
|
|
476
|
+
base64Encoded: false,
|
|
477
|
+
},
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
private handleGetStyleSheetText(stylesheetId: string, id: number): void {
|
|
482
|
+
const resource = this.resources.find(r => `sheet.${r.frame}.${r.url}` === stylesheetId);
|
|
483
|
+
if (!resource) {
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
this.sendMessageToFrontend({
|
|
488
|
+
id,
|
|
489
|
+
result: {
|
|
490
|
+
text: resource.content,
|
|
491
|
+
},
|
|
492
|
+
});
|
|
493
|
+
}
|
|
386
494
|
}
|
|
@@ -14,6 +14,13 @@ export interface RehydratingScript extends Protocol.Debugger.ScriptParsedEvent {
|
|
|
14
14
|
pid: number;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
export interface RehydratingResource {
|
|
18
|
+
url: string;
|
|
19
|
+
content: string;
|
|
20
|
+
frame: string;
|
|
21
|
+
mimeType: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
export interface RehydratingExecutionContextAuxData {
|
|
18
25
|
frameId?: Protocol.Page.FrameId;
|
|
19
26
|
isDefault?: boolean;
|
|
@@ -39,6 +46,7 @@ export interface HydratingDataPerTarget {
|
|
|
39
46
|
target: RehydratingTarget;
|
|
40
47
|
executionContexts: RehydratingExecutionContext[];
|
|
41
48
|
scripts: RehydratingScript[];
|
|
49
|
+
resources: RehydratingResource[];
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
export interface ProtocolMessage {
|
|
@@ -128,7 +128,7 @@ export class SourceMap {
|
|
|
128
128
|
readonly #compiledURL: Platform.DevToolsPath.UrlString;
|
|
129
129
|
readonly #sourceMappingURL: Platform.DevToolsPath.UrlString;
|
|
130
130
|
readonly #baseURL: Platform.DevToolsPath.UrlString;
|
|
131
|
-
#mappings: SourceMapEntry[]|null;
|
|
131
|
+
#mappings: SourceMapEntry[]|null = null;
|
|
132
132
|
|
|
133
133
|
readonly #sourceInfos: SourceInfo[] = [];
|
|
134
134
|
readonly #sourceInfoByURL = new Map<Platform.DevToolsPath.UrlString, SourceInfo>();
|
|
@@ -154,7 +154,6 @@ export class SourceMap {
|
|
|
154
154
|
this.#baseURL = (Common.ParsedURL.schemeIs(sourceMappingURL, 'data:')) ? compiledURL : sourceMappingURL;
|
|
155
155
|
this.#debugId = 'debugId' in payload ? (payload.debugId as DebugId | undefined) : undefined;
|
|
156
156
|
|
|
157
|
-
this.#mappings = null;
|
|
158
157
|
if ('sections' in this.#json) {
|
|
159
158
|
if (this.#json.sections.find(section => 'url' in section)) {
|
|
160
159
|
Common.Console.Console.instance().warn(
|
|
@@ -435,7 +434,7 @@ export class SourceMap {
|
|
|
435
434
|
#computeReverseMappings(mappings: SourceMapEntry[]): void {
|
|
436
435
|
const reverseMappingsPerUrl = new Map<Platform.DevToolsPath.UrlString, number[]>();
|
|
437
436
|
for (let i = 0; i < mappings.length; i++) {
|
|
438
|
-
const entryUrl = mappings[i]
|
|
437
|
+
const entryUrl = mappings[i]?.sourceURL;
|
|
439
438
|
if (!entryUrl) {
|
|
440
439
|
continue;
|
|
441
440
|
}
|
|
@@ -7,13 +7,17 @@ import type * as Platform from '../../core/platform/platform.js';
|
|
|
7
7
|
import type * as Protocol from '../../generated/protocol.js';
|
|
8
8
|
|
|
9
9
|
import type {NetworkRequest} from './NetworkRequest.js';
|
|
10
|
+
import type {RehydratingResource} from './RehydratingObject.js';
|
|
10
11
|
import {ResourceTreeModel} from './ResourceTreeModel.js';
|
|
11
12
|
import type {SourceMapV3} from './SourceMap.js';
|
|
12
13
|
|
|
13
14
|
/** A thin wrapper class, mostly to enable instanceof-based revealing of traces to open in Timeline. **/
|
|
14
15
|
export class TraceObject {
|
|
15
16
|
readonly traceEvents: Protocol.Tracing.DataCollectedEvent['value'];
|
|
16
|
-
readonly metadata: {
|
|
17
|
+
readonly metadata: {
|
|
18
|
+
sourceMaps?: Array<{sourceMapUrl: string, sourceMap: SourceMapV3, url: string}>,
|
|
19
|
+
resources?: RehydratingResource[],
|
|
20
|
+
};
|
|
17
21
|
constructor(payload: Protocol.Tracing.DataCollectedEvent['value']|TraceObject, meta?: Object) {
|
|
18
22
|
if (Array.isArray(payload)) {
|
|
19
23
|
this.traceEvents = payload;
|
|
@@ -7,6 +7,7 @@ import type * as Common from '../../core/common/common.js';
|
|
|
7
7
|
import * as Host from '../../core/host/host.js';
|
|
8
8
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
9
9
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
10
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
10
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
11
12
|
|
|
12
13
|
import nodeConnectionsPanelStyles from './nodeConnectionsPanel.css.js';
|
|
@@ -97,7 +98,7 @@ export class NodeConnectionsView extends UI.Widget.VBox implements UI.ListWidget
|
|
|
97
98
|
'https://nodejs.org/en/docs/inspector/', i18nString(UIStrings.nodejsDebuggingGuide), undefined, undefined,
|
|
98
99
|
'node-js-debugging');
|
|
99
100
|
networkDiscoveryFooter.appendChild(
|
|
100
|
-
|
|
101
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.specifyNetworkEndpointAnd, {PH1: documentationLink}));
|
|
101
102
|
|
|
102
103
|
this.#list = new UI.ListWidget.ListWidget(this);
|
|
103
104
|
this.#list.registerRequiredCSS(nodeConnectionsPanelStyles);
|
|
@@ -1340,8 +1340,7 @@ inspectorBackend.registerType("SystemInfo.GPUDevice", [{"name": "vendorId", "typ
|
|
|
1340
1340
|
inspectorBackend.registerType("SystemInfo.Size", [{"name": "width", "type": "number", "optional": false, "description": "Width in pixels.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "Height in pixels.", "typeRef": null}]);
|
|
1341
1341
|
inspectorBackend.registerType("SystemInfo.VideoDecodeAcceleratorCapability", [{"name": "profile", "type": "string", "optional": false, "description": "Video codec profile that is supported, e.g. VP9 Profile 2.", "typeRef": null}, {"name": "maxResolution", "type": "object", "optional": false, "description": "Maximum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}, {"name": "minResolution", "type": "object", "optional": false, "description": "Minimum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}]);
|
|
1342
1342
|
inspectorBackend.registerType("SystemInfo.VideoEncodeAcceleratorCapability", [{"name": "profile", "type": "string", "optional": false, "description": "Video codec profile that is supported, e.g H264 Main.", "typeRef": null}, {"name": "maxResolution", "type": "object", "optional": false, "description": "Maximum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}, {"name": "maxFramerateNumerator", "type": "number", "optional": false, "description": "Maximum encoding framerate in frames per second supported for this |profile|, as fraction's numerator and denominator, e.g. 24/1 fps, 24000/1001 fps, etc.", "typeRef": null}, {"name": "maxFramerateDenominator", "type": "number", "optional": false, "description": "", "typeRef": null}]);
|
|
1343
|
-
inspectorBackend.registerType("SystemInfo.
|
|
1344
|
-
inspectorBackend.registerType("SystemInfo.GPUInfo", [{"name": "devices", "type": "array", "optional": false, "description": "The graphics devices on the system. Element 0 is the primary GPU.", "typeRef": "SystemInfo.GPUDevice"}, {"name": "auxAttributes", "type": "object", "optional": true, "description": "An optional dictionary of additional GPU related attributes.", "typeRef": null}, {"name": "featureStatus", "type": "object", "optional": true, "description": "An optional dictionary of graphics features and their status.", "typeRef": null}, {"name": "driverBugWorkarounds", "type": "array", "optional": false, "description": "An optional array of GPU driver bug workarounds.", "typeRef": "string"}, {"name": "videoDecoding", "type": "array", "optional": false, "description": "Supported accelerated video decoding capabilities.", "typeRef": "SystemInfo.VideoDecodeAcceleratorCapability"}, {"name": "videoEncoding", "type": "array", "optional": false, "description": "Supported accelerated video encoding capabilities.", "typeRef": "SystemInfo.VideoEncodeAcceleratorCapability"}, {"name": "imageDecoding", "type": "array", "optional": false, "description": "Supported accelerated image decoding capabilities.", "typeRef": "SystemInfo.ImageDecodeAcceleratorCapability"}]);
|
|
1343
|
+
inspectorBackend.registerType("SystemInfo.GPUInfo", [{"name": "devices", "type": "array", "optional": false, "description": "The graphics devices on the system. Element 0 is the primary GPU.", "typeRef": "SystemInfo.GPUDevice"}, {"name": "auxAttributes", "type": "object", "optional": true, "description": "An optional dictionary of additional GPU related attributes.", "typeRef": null}, {"name": "featureStatus", "type": "object", "optional": true, "description": "An optional dictionary of graphics features and their status.", "typeRef": null}, {"name": "driverBugWorkarounds", "type": "array", "optional": false, "description": "An optional array of GPU driver bug workarounds.", "typeRef": "string"}, {"name": "videoDecoding", "type": "array", "optional": false, "description": "Supported accelerated video decoding capabilities.", "typeRef": "SystemInfo.VideoDecodeAcceleratorCapability"}, {"name": "videoEncoding", "type": "array", "optional": false, "description": "Supported accelerated video encoding capabilities.", "typeRef": "SystemInfo.VideoEncodeAcceleratorCapability"}]);
|
|
1345
1344
|
inspectorBackend.registerType("SystemInfo.ProcessInfo", [{"name": "type", "type": "string", "optional": false, "description": "Specifies process type.", "typeRef": null}, {"name": "id", "type": "number", "optional": false, "description": "Specifies process id.", "typeRef": null}, {"name": "cpuTime", "type": "number", "optional": false, "description": "Specifies cumulative CPU usage in seconds across all threads of the process since the process start.", "typeRef": null}]);
|
|
1346
1345
|
|
|
1347
1346
|
// Target.
|
|
@@ -640,6 +640,7 @@ export const generatedProperties = [
|
|
|
640
640
|
"row-rule-color",
|
|
641
641
|
"row-rule-outset",
|
|
642
642
|
"row-rule-style",
|
|
643
|
+
"row-rule-visibility-items",
|
|
643
644
|
"row-rule-width",
|
|
644
645
|
"ruby-align",
|
|
645
646
|
"ruby-overhang",
|
|
@@ -3726,6 +3727,16 @@ export const generatedProperties = [
|
|
|
3726
3727
|
],
|
|
3727
3728
|
"name": "row-rule-style"
|
|
3728
3729
|
},
|
|
3730
|
+
{
|
|
3731
|
+
"inherited": false,
|
|
3732
|
+
"keywords": [
|
|
3733
|
+
"all",
|
|
3734
|
+
"around",
|
|
3735
|
+
"between",
|
|
3736
|
+
"none"
|
|
3737
|
+
],
|
|
3738
|
+
"name": "row-rule-visibility-items"
|
|
3739
|
+
},
|
|
3729
3740
|
{
|
|
3730
3741
|
"keywords": [
|
|
3731
3742
|
"thin",
|
|
@@ -6510,6 +6521,14 @@ export const generatedPropertyValues = {
|
|
|
6510
6521
|
"double"
|
|
6511
6522
|
]
|
|
6512
6523
|
},
|
|
6524
|
+
"row-rule-visibility-items": {
|
|
6525
|
+
"values": [
|
|
6526
|
+
"all",
|
|
6527
|
+
"around",
|
|
6528
|
+
"between",
|
|
6529
|
+
"none"
|
|
6530
|
+
]
|
|
6531
|
+
},
|
|
6513
6532
|
"row-rule-width": {
|
|
6514
6533
|
"values": [
|
|
6515
6534
|
"thin",
|
|
@@ -18029,29 +18029,6 @@ export namespace SystemInfo {
|
|
|
18029
18029
|
Unknown = 'unknown',
|
|
18030
18030
|
}
|
|
18031
18031
|
|
|
18032
|
-
/**
|
|
18033
|
-
* Describes a supported image decoding profile with its associated minimum and
|
|
18034
|
-
* maximum resolutions and subsampling.
|
|
18035
|
-
*/
|
|
18036
|
-
export interface ImageDecodeAcceleratorCapability {
|
|
18037
|
-
/**
|
|
18038
|
-
* Image coded, e.g. Jpeg.
|
|
18039
|
-
*/
|
|
18040
|
-
imageType: ImageType;
|
|
18041
|
-
/**
|
|
18042
|
-
* Maximum supported dimensions of the image in pixels.
|
|
18043
|
-
*/
|
|
18044
|
-
maxDimensions: Size;
|
|
18045
|
-
/**
|
|
18046
|
-
* Minimum supported dimensions of the image in pixels.
|
|
18047
|
-
*/
|
|
18048
|
-
minDimensions: Size;
|
|
18049
|
-
/**
|
|
18050
|
-
* Optional array of supported subsampling formats, e.g. 4:2:0, if known.
|
|
18051
|
-
*/
|
|
18052
|
-
subsamplings: SubsamplingFormat[];
|
|
18053
|
-
}
|
|
18054
|
-
|
|
18055
18032
|
/**
|
|
18056
18033
|
* Provides information about the GPU(s) on the system.
|
|
18057
18034
|
*/
|
|
@@ -18080,10 +18057,6 @@ export namespace SystemInfo {
|
|
|
18080
18057
|
* Supported accelerated video encoding capabilities.
|
|
18081
18058
|
*/
|
|
18082
18059
|
videoEncoding: VideoEncodeAcceleratorCapability[];
|
|
18083
|
-
/**
|
|
18084
|
-
* Supported accelerated image decoding capabilities.
|
|
18085
|
-
*/
|
|
18086
|
-
imageDecoding: ImageDecodeAcceleratorCapability[];
|
|
18087
18060
|
}
|
|
18088
18061
|
|
|
18089
18062
|
/**
|
|
@@ -219,6 +219,8 @@ export interface MetaData {
|
|
|
219
219
|
cruxFieldData?: CrUXManager.PageResult[];
|
|
220
220
|
/** Currently only stores JS maps, not CSS. This never stores data url source maps. */
|
|
221
221
|
sourceMaps?: MetadataSourceMap[];
|
|
222
|
+
/** Currently only stores HTML and CSS resources. */
|
|
223
|
+
resources?: MetadataResource[];
|
|
222
224
|
visualTrackConfig?: PersistedTraceVisualConfig;
|
|
223
225
|
hostDPR?: number;
|
|
224
226
|
}
|
|
@@ -230,6 +232,13 @@ export interface MetadataSourceMap {
|
|
|
230
232
|
sourceMap: SDK.SourceMap.SourceMapV3;
|
|
231
233
|
}
|
|
232
234
|
|
|
235
|
+
export interface MetadataResource {
|
|
236
|
+
url: string;
|
|
237
|
+
frame: string;
|
|
238
|
+
content: string;
|
|
239
|
+
mimeType: string;
|
|
240
|
+
}
|
|
241
|
+
|
|
233
242
|
export type Contents = TraceFile|Event[];
|
|
234
243
|
|
|
235
244
|
export function traceEventKeyToValues(key: SerializableKey): SerializableKeyValues {
|