chrome-devtools-frontend 1.0.1652307 → 1.0.1656291
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/fixing-skipped-tests/SKILL.md +32 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +144 -0
- package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +116 -0
- package/.agents/skills/ui-eng-vision-logic-consolidator/SKILL.md +82 -0
- package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +123 -0
- package/.agents/skills/ui-eng-vision-test-scaffolder/SKILL.md +125 -0
- package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +75 -0
- package/AUTHORS +1 -0
- package/config/owner/COMMON_OWNERS +0 -4
- package/docs/get_the_code.md +1 -2
- package/docs/playbook.md +1 -1
- package/docs/ui_engineering.md +3 -1
- package/eslint.config.mjs +0 -5
- package/front_end/Tests.js +1 -0
- package/front_end/core/common/Settings.ts +47 -30
- package/front_end/core/sdk/CPUThrottlingManager.ts +23 -167
- package/front_end/core/sdk/CSSMetadata.ts +23 -0
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +8 -4
- package/front_end/core/sdk/ConsoleModel.ts +13 -11
- package/front_end/core/sdk/DOMDebuggerModel.ts +11 -5
- package/front_end/core/sdk/DOMModel.ts +4 -0
- package/front_end/core/sdk/EmulationModel.ts +4 -0
- package/front_end/core/sdk/EventBreakpointsModel.ts +9 -5
- package/front_end/core/sdk/IsolateManager.ts +6 -6
- package/front_end/core/sdk/ResourceTreeModel.ts +8 -5
- package/front_end/core/sdk/TargetManager.ts +17 -0
- package/front_end/entrypoints/devtools_app/devtools_app.ts +0 -1
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +459 -74
- package/front_end/entrypoints/main/MainImpl.ts +12 -42
- package/front_end/foundation/Universe.ts +116 -3
- package/front_end/generated/InspectorBackendCommands.ts +11 -6
- package/front_end/generated/SupportedCSSProperties.js +124 -34
- package/front_end/generated/protocol-mapping.d.ts +8 -0
- package/front_end/generated/protocol-proxy-api.d.ts +15 -0
- package/front_end/generated/protocol.ts +94 -1
- package/front_end/models/ai_assistance/AiConversation.ts +2 -7
- package/front_end/models/ai_assistance/README.md +4 -3
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/NetworkAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +13 -320
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +0 -24
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -358
- package/front_end/models/ai_assistance/ai_assistance.ts +6 -8
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +295 -0
- package/front_end/models/ai_assistance/contexts/RequestContext.snapshot.txt +0 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +0 -2
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +10 -10
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +12 -11
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -6
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -14
- package/front_end/models/ai_assistance/skills/accessibility.md +4 -2
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +142 -0
- package/front_end/models/ai_assistance/tools/GetStyles.ts +1 -1
- package/front_end/models/ai_assistance/tools/README.md +21 -1
- package/front_end/models/ai_assistance/tools/{ResolveLighthousePath.ts → ResolveDevtoolsNodePath.ts} +18 -17
- package/front_end/models/ai_assistance/tools/Tool.ts +6 -1
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +4 -2
- package/front_end/models/autofill_manager/AutofillManager.ts +6 -15
- package/front_end/models/bindings/NetworkProject.ts +4 -8
- package/front_end/models/breakpoints/BreakpointManager.ts +9 -9
- package/front_end/models/emulation/DeviceModeModel.ts +24 -0
- package/front_end/models/emulation/EmulatedDevices.ts +108 -0
- package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +36 -0
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +8 -0
- package/front_end/models/issues_manager/IssuesManager.ts +10 -6
- package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +4 -5
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/models/live-metrics/LiveMetrics.ts +6 -6
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +5 -5
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +3 -3
- package/front_end/models/logs/LogManager.ts +25 -10
- package/front_end/models/logs/NetworkLog.ts +24 -19
- package/front_end/models/persistence/AutomaticFileSystemManager.ts +14 -13
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +26 -14
- package/front_end/models/persistence/IsolatedFileSystem.ts +9 -11
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +22 -11
- package/front_end/models/persistence/NetworkPersistenceManager.ts +73 -44
- package/front_end/models/persistence/PersistenceImpl.ts +4 -5
- package/front_end/models/project_settings/ProjectSettingsModel.ts +12 -11
- package/front_end/models/trace/EntityMapper.ts +1 -1
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +14 -59
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +12 -38
- package/front_end/panels/ai_assistance/ExportConversation.ts +4 -1
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/application/DeviceBoundSessionsView.ts +15 -3
- package/front_end/panels/application/FrameDetailsView.ts +2 -1
- package/front_end/panels/application/IndexedDBViews.ts +38 -36
- package/front_end/panels/application/ServiceWorkersView.ts +23 -16
- package/front_end/panels/application/components/AdsView.ts +4 -0
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/autofill/autofill-meta.ts +3 -2
- package/front_end/panels/common/CPUThrottlingOption.ts +142 -0
- package/front_end/panels/common/ThrottlingUtils.ts +9 -4
- package/front_end/panels/common/common.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +45 -0
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +26 -15
- package/front_end/panels/elements/AccessibilityTreeView.ts +12 -9
- package/front_end/panels/elements/ElementsPanel.ts +0 -74
- package/front_end/panels/elements/ElementsTreeOutline.ts +5 -4
- package/front_end/panels/emulation/DeviceModeToolbar.ts +46 -45
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +118 -68
- package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
- package/front_end/panels/layer_viewer/layerTreeOutline.css +20 -13
- package/front_end/panels/layers/LayersPanel.ts +1 -1
- package/front_end/panels/mobile_throttling/CalibrationController.ts +6 -5
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +40 -13
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +13 -17
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +79 -30
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +5 -0
- package/front_end/panels/network/LinkPreloadGenerator.ts +101 -0
- package/front_end/panels/network/NetworkLogView.ts +28 -9
- package/front_end/panels/network/NetworkPanel.ts +1 -63
- package/front_end/panels/network/RequestInitiatorView.ts +29 -4
- package/front_end/panels/network/components/HeaderSectionRow.css +9 -7
- package/front_end/panels/network/components/HeaderSectionRow.ts +20 -1
- package/front_end/panels/network/components/RequestHeaderSection.css +5 -3
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -2
- package/front_end/panels/network/components/RequestHeadersView.css +1 -1
- package/front_end/panels/network/network.ts +2 -0
- package/front_end/panels/profiler/HeapSnapshotView.ts +121 -33
- package/front_end/panels/profiler/ModuleUIStrings.ts +4 -0
- package/front_end/panels/security/SecurityPanel.ts +36 -23
- package/front_end/panels/settings/SettingsScreen.ts +18 -103
- package/front_end/panels/settings/settings-meta.ts +0 -24
- package/front_end/panels/timeline/TimelineController.ts +3 -2
- package/front_end/panels/timeline/TimelineHistoryManager.ts +38 -37
- package/front_end/panels/timeline/TimelinePanel.ts +52 -11
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +20 -18
- package/front_end/panels/timeline/components/LiveMetricsView.ts +38 -38
- package/front_end/panels/timeline/components/MetricCard.ts +18 -18
- package/front_end/panels/timeline/components/liveMetricsView.css +6 -6
- package/front_end/panels/timeline/components/metricCard.css +4 -4
- package/front_end/panels/timeline/timelineFlamechartPopover.css +2 -0
- package/front_end/panels/utils/utils.ts +25 -24
- package/front_end/panels/whats_new/ReleaseNoteText.ts +3 -3
- package/front_end/panels/whats_new/resources/WNDT.md +1 -1
- 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/es5-iife/puppeteer-core-browser.d.ts +34 -55
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +96 -83
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +10 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js +23 -13
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Input.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +3 -41
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +4 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +34 -55
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +2 -3
- package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +3 -1
- package/front_end/third_party/puppeteer/package/src/api/HTTPResponse.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/api/Realm.ts +1 -2
- package/front_end/third_party/puppeteer/package/src/api/Target.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +1 -2
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +3 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +1 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +13 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +24 -13
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +4 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/LifecycleWatcher.ts +1 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +2 -4
- package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +7 -76
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +1 -4
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +4 -1
- package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +5 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/httpUtils.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/third_party/puppeteer/third_party/parsel/README.chromium +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +3 -0
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +0 -7
- package/front_end/ui/helpers/OpenInNewTab.ts +15 -7
- package/front_end/ui/legacy/InspectorDrawerView.ts +7 -5
- package/front_end/ui/legacy/ListWidget.ts +12 -0
- package/front_end/ui/legacy/SplitWidget.ts +12 -11
- package/front_end/ui/legacy/TabbedPane.ts +1 -108
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +9 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +192 -139
- package/front_end/ui/legacy/components/data_grid/DataGridExporter.ts +89 -0
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +10 -0
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +3 -1
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +8 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +110 -17
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +89 -40
- package/front_end/ui/legacy/treeoutline.css +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/package.json +4 -3
- package/front_end/Images/navigationControls.png +0 -0
- package/front_end/Images/navigationControls_2x.png +0 -0
- package/front_end/Images/popoverArrows.png +0 -0
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +0 -746
- package/front_end/entrypoints/greendev_floaty/floaty.css +0 -301
- package/front_end/entrypoints/greendev_floaty/floaty.html +0 -38
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +0 -415
- package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +0 -834
- package/front_end/models/ai_assistance/agents/GreenDevAgentAntigravityCliSocketClient.ts +0 -53
- package/front_end/models/ai_assistance/agents/GreenDevAgentGeminiCliSocketClient.ts +0 -117
- package/front_end/models/annotations/AnnotationRepository.ts +0 -238
- package/front_end/models/annotations/AnnotationType.ts +0 -10
- package/front_end/models/annotations/README.md +0 -7
- package/front_end/models/annotations/annotations.ts +0 -6
- package/front_end/models/greendev/Prototypes.ts +0 -68
- package/front_end/models/greendev/README.md +0 -5
- package/front_end/models/greendev/greendev.ts +0 -5
- package/front_end/panels/common/Annotation.ts +0 -184
- package/front_end/panels/common/AnnotationManager.ts +0 -208
- package/front_end/panels/common/annotation.css +0 -40
- package/front_end/panels/greendev/GreenDevPanel.css +0 -282
- package/front_end/panels/greendev/GreenDevPanel.ts +0 -364
- package/front_end/panels/greendev/GreenDevShared.ts +0 -13
- package/front_end/panels/greendev/greendev-meta.ts +0 -52
- package/front_end/panels/greendev/greendev.ts +0 -9
|
@@ -142,7 +142,7 @@ const UIStrings = {
|
|
|
142
142
|
} as const;
|
|
143
143
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/object_ui/ObjectPropertiesSection.ts', UIStrings);
|
|
144
144
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
145
|
-
const EXPANDABLE_MAX_DEPTH = 100;
|
|
145
|
+
export const EXPANDABLE_MAX_DEPTH = 100;
|
|
146
146
|
|
|
147
147
|
const objectPropertiesSectionMap = new WeakMap<Element, ObjectPropertiesSection>();
|
|
148
148
|
|
|
@@ -406,7 +406,10 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
406
406
|
} else {
|
|
407
407
|
this.options.expansionTracker?.collapse(this);
|
|
408
408
|
}
|
|
409
|
-
this.#expanded
|
|
409
|
+
if (this.#expanded !== val) {
|
|
410
|
+
this.#expanded = val;
|
|
411
|
+
this.dispatchEventToListeners(ObjectTreeNodeBase.Events.EXPANDED_CHANGED, val);
|
|
412
|
+
}
|
|
410
413
|
}
|
|
411
414
|
|
|
412
415
|
get readOnly(): boolean {
|
|
@@ -425,6 +428,10 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
425
428
|
this.setFilter({includeNullOrUndefinedValues: value, regex: this.filter?.regex ?? null});
|
|
426
429
|
}
|
|
427
430
|
|
|
431
|
+
get canExpandRecursively(): boolean {
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
434
|
+
|
|
428
435
|
get sortPropertiesAlphabetically(): boolean {
|
|
429
436
|
if (this.isWasm) {
|
|
430
437
|
return false;
|
|
@@ -440,14 +447,16 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
440
447
|
setting.set(value);
|
|
441
448
|
this.removeChildren();
|
|
442
449
|
}
|
|
443
|
-
|
|
444
450
|
// Performs a pre-order tree traversal over the populated children. If any children need to be populated, callers must
|
|
445
451
|
// do that while walking (pre-order visitation enables that).
|
|
446
|
-
* #walk(maxDepth = -1): Generator<ObjectTreeNodeBase> {
|
|
452
|
+
* #walk(maxDepth = -1, filter?: (node: ObjectTreeNodeBase) => boolean): Generator<ObjectTreeNodeBase> {
|
|
453
|
+
if (filter && !filter(this)) {
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
447
456
|
function* walkChildren(children: ObjectTreeNodeBase[]|undefined): Generator<ObjectTreeNodeBase> {
|
|
448
457
|
if (children) {
|
|
449
458
|
for (const child of children) {
|
|
450
|
-
yield* child.#walk(Math.max(-1, maxDepth - 1));
|
|
459
|
+
yield* child.#walk(Math.max(-1, maxDepth - 1), filter);
|
|
451
460
|
}
|
|
452
461
|
}
|
|
453
462
|
}
|
|
@@ -460,7 +469,7 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
460
469
|
}
|
|
461
470
|
|
|
462
471
|
async expandRecursively(maxDepth: number): Promise<void> {
|
|
463
|
-
for (const node of this.#walk(maxDepth)) {
|
|
472
|
+
for (const node of this.#walk(maxDepth, n => n.canExpandRecursively)) {
|
|
464
473
|
await node.populateChildrenIfNeeded();
|
|
465
474
|
node.expanded = true;
|
|
466
475
|
}
|
|
@@ -655,11 +664,13 @@ export namespace ObjectTreeNodeBase {
|
|
|
655
664
|
VALUE_CHANGED = 'value-changed',
|
|
656
665
|
CHILDREN_CHANGED = 'children-changed',
|
|
657
666
|
FILTER_CHANGED = 'filter-changed',
|
|
667
|
+
EXPANDED_CHANGED = 'expanded-changed',
|
|
658
668
|
}
|
|
659
669
|
export interface EventTypes {
|
|
660
670
|
[Events.VALUE_CHANGED]: void;
|
|
661
671
|
[Events.CHILDREN_CHANGED]: void;
|
|
662
672
|
[Events.FILTER_CHANGED]: void;
|
|
673
|
+
[Events.EXPANDED_CHANGED]: boolean;
|
|
663
674
|
}
|
|
664
675
|
}
|
|
665
676
|
|
|
@@ -758,6 +769,10 @@ export class ObjectTreeNode extends ObjectTreeNodeBase {
|
|
|
758
769
|
return Boolean(this.filter && !this.property.match(this.filter));
|
|
759
770
|
}
|
|
760
771
|
|
|
772
|
+
override get canExpandRecursively(): boolean {
|
|
773
|
+
return this.property.name !== '[[Prototype]]';
|
|
774
|
+
}
|
|
775
|
+
|
|
761
776
|
get name(): string {
|
|
762
777
|
return this.property.name;
|
|
763
778
|
}
|
|
@@ -1664,6 +1679,7 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1664
1679
|
this.property.addEventListener(ObjectTreeNodeBase.Events.VALUE_CHANGED, this.#updateValue, this);
|
|
1665
1680
|
this.property.addEventListener(ObjectTreeNodeBase.Events.CHILDREN_CHANGED, this.#updateChildren, this);
|
|
1666
1681
|
this.property.addEventListener(ObjectTreeNodeBase.Events.FILTER_CHANGED, this.#updateFilter, this);
|
|
1682
|
+
this.property.addEventListener(ObjectTreeNodeBase.Events.EXPANDED_CHANGED, this.#onExpandedChanged, this);
|
|
1667
1683
|
this.toggleOnClick = true;
|
|
1668
1684
|
this.linkifier = linkifier;
|
|
1669
1685
|
this.maxNumPropertiesToShow = InitialVisibleChildrenLimit;
|
|
@@ -1684,12 +1700,51 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1684
1700
|
linkifier?: Components.Linkifier.Linkifier,
|
|
1685
1701
|
emptyPlaceholder?: string|null,
|
|
1686
1702
|
): Promise<void> {
|
|
1687
|
-
|
|
1703
|
+
await ObjectPropertyTreeElement.populateChildrenIfNeeded(value);
|
|
1704
|
+
ObjectPropertyTreeElement.populateImpl(treeElement, value, skipProto, skipGettersAndSetters, linkifier,
|
|
1705
|
+
emptyPlaceholder);
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
static async populateChildrenIfNeeded(value: ObjectTreeNodeBase): Promise<void> {
|
|
1709
|
+
const children = await value.populateChildrenIfNeeded();
|
|
1710
|
+
await ArrayGroupingTreeElement.populateChildrenIfNeeded(children);
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
static populateImpl(
|
|
1714
|
+
treeElement: UI.TreeOutline.TreeElement,
|
|
1715
|
+
value: ObjectTreeNodeBase,
|
|
1716
|
+
skipProto: boolean,
|
|
1717
|
+
skipGettersAndSetters: boolean,
|
|
1718
|
+
linkifier?: Components.Linkifier.Linkifier,
|
|
1719
|
+
emptyPlaceholder?: string|null,
|
|
1720
|
+
): void {
|
|
1721
|
+
for (const childNode of ObjectPropertyTreeElement.createNodes(
|
|
1722
|
+
value, skipProto, skipGettersAndSetters, linkifier, emptyPlaceholder,
|
|
1723
|
+
property => treeElement instanceof ObjectPropertyTreeElement &&
|
|
1724
|
+
!ObjectPropertiesSection.isDisplayableProperty(property, treeElement.property?.property))) {
|
|
1725
|
+
treeElement.appendChild(childNode);
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
static *
|
|
1730
|
+
createNodes(
|
|
1731
|
+
value: ObjectTreeNodeBase,
|
|
1732
|
+
skipProto: boolean,
|
|
1733
|
+
skipGettersAndSetters: boolean,
|
|
1734
|
+
linkifier?: Components.Linkifier.Linkifier,
|
|
1735
|
+
emptyPlaceholder?: string|null,
|
|
1736
|
+
isNotDisplayablePropertyCallback?: (property: SDK.RemoteObject.RemoteObjectProperty) => boolean,
|
|
1737
|
+
): Generator<UI.TreeOutline.TreeElement> {
|
|
1738
|
+
const properties = value.children;
|
|
1739
|
+
if (!properties) {
|
|
1740
|
+
return;
|
|
1741
|
+
}
|
|
1688
1742
|
if (properties.arrayRanges) {
|
|
1689
|
-
|
|
1743
|
+
yield* ArrayGroupingTreeElement.createNodes(properties, linkifier, isNotDisplayablePropertyCallback);
|
|
1690
1744
|
} else {
|
|
1691
|
-
|
|
1692
|
-
|
|
1745
|
+
yield*
|
|
1746
|
+
ObjectPropertyTreeElement.createPropertyNodes(properties, skipProto, skipGettersAndSetters, linkifier,
|
|
1747
|
+
emptyPlaceholder, isNotDisplayablePropertyCallback);
|
|
1693
1748
|
}
|
|
1694
1749
|
}
|
|
1695
1750
|
|
|
@@ -1869,6 +1924,15 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1869
1924
|
this.hidden = this.property.isFiltered;
|
|
1870
1925
|
}
|
|
1871
1926
|
|
|
1927
|
+
#onExpandedChanged(event: Common.EventTarget.EventTargetEvent<boolean>): void {
|
|
1928
|
+
const expanded = event.data;
|
|
1929
|
+
if (expanded) {
|
|
1930
|
+
this.expand();
|
|
1931
|
+
} else {
|
|
1932
|
+
this.collapse();
|
|
1933
|
+
}
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1872
1936
|
getContextMenu(event: Event): UI.ContextMenu.ContextMenu {
|
|
1873
1937
|
const contextMenu = new UI.ContextMenu.ContextMenu(event);
|
|
1874
1938
|
contextMenu.appendApplicableItems(this);
|
|
@@ -2082,6 +2146,7 @@ export class ArrayGroupingTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
2082
2146
|
super(Platform.StringUtilities.sprintf('[%d … %d]', child.range.fromIndex, child.range.toIndex), true);
|
|
2083
2147
|
this.#child = child;
|
|
2084
2148
|
this.#child.addEventListener(ObjectTreeNodeBase.Events.CHILDREN_CHANGED, this.onpopulate, this);
|
|
2149
|
+
this.#child.addEventListener(ObjectTreeNodeBase.Events.EXPANDED_CHANGED, this.#onExpandedChanged, this);
|
|
2085
2150
|
this.toggleOnClick = true;
|
|
2086
2151
|
this.linkifier = linkifier;
|
|
2087
2152
|
if (child.expanded) {
|
|
@@ -2089,25 +2154,53 @@ export class ArrayGroupingTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
2089
2154
|
}
|
|
2090
2155
|
}
|
|
2091
2156
|
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2157
|
+
#onExpandedChanged(event: Common.EventTarget.EventTargetEvent<boolean>): void {
|
|
2158
|
+
const expanded = event.data;
|
|
2159
|
+
if (expanded) {
|
|
2160
|
+
this.expand();
|
|
2161
|
+
} else {
|
|
2162
|
+
this.collapse();
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
|
|
2166
|
+
static *
|
|
2167
|
+
createNodes(children: NodeChildren, linkifier?: Components.Linkifier.Linkifier,
|
|
2168
|
+
isNotDisplayablePropertyCallback?: (property: SDK.RemoteObject.RemoteObjectProperty) => boolean):
|
|
2169
|
+
Generator<UI.TreeOutline.TreeElement> {
|
|
2095
2170
|
if (!children.arrayRanges) {
|
|
2096
2171
|
return;
|
|
2097
2172
|
}
|
|
2098
2173
|
if (children.arrayRanges.length === 1) {
|
|
2099
|
-
|
|
2174
|
+
yield*
|
|
2175
|
+
ObjectPropertyTreeElement.createNodes(children.arrayRanges[0], false, false, linkifier, null,
|
|
2176
|
+
isNotDisplayablePropertyCallback);
|
|
2100
2177
|
} else {
|
|
2101
2178
|
for (const child of children.arrayRanges) {
|
|
2102
2179
|
if (child.singular) {
|
|
2103
|
-
|
|
2180
|
+
yield*
|
|
2181
|
+
ObjectPropertyTreeElement.createNodes(child, false, false, linkifier, null,
|
|
2182
|
+
isNotDisplayablePropertyCallback);
|
|
2104
2183
|
} else {
|
|
2105
|
-
|
|
2184
|
+
yield new ArrayGroupingTreeElement(child, linkifier);
|
|
2106
2185
|
}
|
|
2107
2186
|
}
|
|
2108
2187
|
}
|
|
2109
2188
|
|
|
2110
|
-
|
|
2189
|
+
yield*
|
|
2190
|
+
ObjectPropertyTreeElement.createPropertyNodes(children, false, false, linkifier, null,
|
|
2191
|
+
isNotDisplayablePropertyCallback);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
static async populateChildrenIfNeeded(children: NodeChildren): Promise<void> {
|
|
2195
|
+
if (!children.arrayRanges) {
|
|
2196
|
+
return;
|
|
2197
|
+
}
|
|
2198
|
+
if (children.arrayRanges.length === 1) {
|
|
2199
|
+
await ObjectPropertyTreeElement.populateChildrenIfNeeded(children.arrayRanges[0]);
|
|
2200
|
+
} else {
|
|
2201
|
+
await Promise.all(children.arrayRanges.filter(child => child.singular)
|
|
2202
|
+
.map(child => ObjectPropertyTreeElement.populateChildrenIfNeeded(child)));
|
|
2203
|
+
}
|
|
2111
2204
|
}
|
|
2112
2205
|
|
|
2113
2206
|
override onexpand(): void {
|
|
@@ -947,7 +947,6 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
947
947
|
mouseX = coordinate?.x ? coordinate.x - canvasViewportOffsetX : mouseX;
|
|
948
948
|
mouseY = coordinate?.y ? coordinate.y - canvasViewportOffsetY : mouseY;
|
|
949
949
|
}
|
|
950
|
-
// The parent dimensions are the maximum the popover can use.
|
|
951
950
|
const parentWidth = this.popoverElement.parentElement ? this.popoverElement.parentElement.clientWidth : 0;
|
|
952
951
|
const parentHeight = this.popoverElement.parentElement ? this.popoverElement.parentElement.clientHeight : 0;
|
|
953
952
|
const infoWidth = this.popoverElement.clientWidth;
|
|
@@ -957,40 +956,18 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
957
956
|
const offsetX = 10;
|
|
958
957
|
// Incorporate any network flamechart height into dynamic positioning
|
|
959
958
|
const offsetY = 6 + this.#tooltipPopoverYAdjustment;
|
|
960
|
-
let x;
|
|
961
|
-
let y;
|
|
962
959
|
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
for (let pass = 0; pass < 2; ++pass) {
|
|
975
|
-
for (let quadrant = 0; quadrant < 4; ++quadrant) {
|
|
976
|
-
// The bitwise AND operator is used to generate the 4 unique combinations of two booleans. (true+false, true+true, etc)
|
|
977
|
-
const dx = quadrant & 2 ? -offsetX - infoWidth : offsetX;
|
|
978
|
-
const dy = quadrant & 1 ? -offsetY - infoHeight : offsetY;
|
|
979
|
-
// mouseX+dx is ideal, but clamp against the available space (It will be adapted to fit)
|
|
980
|
-
x = Platform.NumberUtilities.clamp(mouseX + dx, 0, parentWidth - infoWidth);
|
|
981
|
-
y = Platform.NumberUtilities.clamp(mouseY + dy, 0, parentHeight - infoHeight);
|
|
982
|
-
|
|
983
|
-
const popoverFits = pass === 0 ?
|
|
984
|
-
// Will the whole popover be visible?
|
|
985
|
-
(x >= mouseX || mouseX >= x + infoWidth) && (y >= mouseY || mouseY >= y + infoHeight) :
|
|
986
|
-
// Will the popover fit well in 1 dimension? (Though we typically see it fit in both, here. Shrug.)
|
|
987
|
-
x >= mouseX || mouseX >= x + infoWidth || y >= mouseY || mouseY >= y + infoHeight;
|
|
988
|
-
|
|
989
|
-
if (popoverFits) {
|
|
990
|
-
break;
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
}
|
|
960
|
+
const {x, y} = calculatePopoverOffset({
|
|
961
|
+
mouseX,
|
|
962
|
+
mouseY,
|
|
963
|
+
parentWidth,
|
|
964
|
+
parentHeight,
|
|
965
|
+
infoWidth,
|
|
966
|
+
infoHeight,
|
|
967
|
+
offsetX,
|
|
968
|
+
offsetY,
|
|
969
|
+
});
|
|
970
|
+
|
|
994
971
|
this.popoverElement.style.left = x + 'px';
|
|
995
972
|
this.popoverElement.style.top = y + 'px';
|
|
996
973
|
}
|
|
@@ -1187,6 +1164,10 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
1187
1164
|
this.expandGroup(groupIndex, !this.rawTimelineData.groups[groupIndex].expanded /* setExpanded */);
|
|
1188
1165
|
}
|
|
1189
1166
|
|
|
1167
|
+
blurCanvasForTesting(): void {
|
|
1168
|
+
this.canvas.blur();
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1190
1171
|
bulkExpandGroups(indexes: number[]): void {
|
|
1191
1172
|
if (indexes.length === 0) {
|
|
1192
1173
|
return;
|
|
@@ -2136,12 +2117,8 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
2136
2117
|
if (y >= this.groupOffsets[groupIndex] && y < this.groupOffsets[nextIndex]) {
|
|
2137
2118
|
// This section is used to calculate the position of current group's header
|
|
2138
2119
|
// If we are in edit mode, the track label is pushed right to make room for the icons.
|
|
2139
|
-
const context = this.context;
|
|
2140
|
-
context.save();
|
|
2141
|
-
context.font = this.#font;
|
|
2142
2120
|
const headerRight = HEADER_LEFT_PADDING + (this.#inTrackConfigEditMode ? EDIT_MODE_TOTAL_ICON_WIDTH : 0) +
|
|
2143
|
-
this.labelWidthForGroup(context, groups[groupIndex]);
|
|
2144
|
-
context.restore();
|
|
2121
|
+
this.labelWidthForGroup(this.context, groups[groupIndex]);
|
|
2145
2122
|
|
|
2146
2123
|
const mouseInHeaderRow =
|
|
2147
2124
|
y >= this.groupOffsets[groupIndex] && y < this.groupOffsets[groupIndex] + groups[groupIndex].style.height;
|
|
@@ -3143,8 +3120,12 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
3143
3120
|
* @returns the width of the label of the group.
|
|
3144
3121
|
*/
|
|
3145
3122
|
labelWidthForGroup(context: CanvasRenderingContext2D, group: Group): number {
|
|
3146
|
-
|
|
3123
|
+
context.save();
|
|
3124
|
+
context.font = this.#font;
|
|
3125
|
+
const width = EXPANSION_ARROW_INDENT * (group.style.nestingLevel + 1) + ARROW_SIDE / 2 + HEADER_LABEL_X_PADDING +
|
|
3147
3126
|
UI.UIUtils.measureTextWidth(context, group.name) + HEADER_LABEL_X_PADDING - HEADER_LEFT_PADDING;
|
|
3127
|
+
context.restore();
|
|
3128
|
+
return width;
|
|
3148
3129
|
}
|
|
3149
3130
|
|
|
3150
3131
|
private drawCollapsedOverviewForGroup(group: Group, y: number, endLevel: number): void {
|
|
@@ -4502,3 +4483,71 @@ export interface PersistedGroupConfig {
|
|
|
4502
4483
|
originalIndex: number;
|
|
4503
4484
|
visualIndex: number;
|
|
4504
4485
|
}
|
|
4486
|
+
|
|
4487
|
+
export interface PopoverOffsetOptions {
|
|
4488
|
+
/** The horizontal offset of the mouse relative to the flame chart. */
|
|
4489
|
+
mouseX: number;
|
|
4490
|
+
/** The vertical offset of the mouse relative to the flame chart. */
|
|
4491
|
+
mouseY: number;
|
|
4492
|
+
/** The width of the parent container holding the popover. */
|
|
4493
|
+
parentWidth: number;
|
|
4494
|
+
/** The height of the parent container holding the popover. */
|
|
4495
|
+
parentHeight: number;
|
|
4496
|
+
/** The measured width of the popover element itself. */
|
|
4497
|
+
infoWidth: number;
|
|
4498
|
+
/** The measured height of the popover element itself. */
|
|
4499
|
+
infoHeight: number;
|
|
4500
|
+
/** The horizontal offset spacing to keep between the popover and the mouse position. */
|
|
4501
|
+
offsetX: number;
|
|
4502
|
+
/** The vertical offset spacing to keep between the popover and the mouse position. */
|
|
4503
|
+
offsetY: number;
|
|
4504
|
+
}
|
|
4505
|
+
|
|
4506
|
+
/**
|
|
4507
|
+
* Calculates the positioning coordinates (x, y) for a popover window relative to the mouse.
|
|
4508
|
+
*
|
|
4509
|
+
* It uses a two-pass quadrant placement algorithm:
|
|
4510
|
+
* - Pass 0: Tries to find a quadrant where the popover fits fully on screen without overlapping the mouse.
|
|
4511
|
+
* - Pass 1: Relaxed fit; allows overlapping the mouse if the popover is too large for the available space,
|
|
4512
|
+
* clamping it strictly to remain within the parent bounds [0, parentWidth - infoWidth].
|
|
4513
|
+
*
|
|
4514
|
+
* Quadrants:
|
|
4515
|
+
* 0: bottom-right (x + offsetX, y + offsetY)
|
|
4516
|
+
* 1: top-right (x + offsetX, y - offsetY - height)
|
|
4517
|
+
* 2: bottom-left (x - offsetX - width, y + offsetY)
|
|
4518
|
+
* 3: top-left (x - offsetX - width, y - offsetY - height)
|
|
4519
|
+
*/
|
|
4520
|
+
export function calculatePopoverOffset(options: PopoverOffsetOptions): {x: number, y: number} {
|
|
4521
|
+
const {mouseX, mouseY, parentWidth, parentHeight, infoWidth, infoHeight, offsetX, offsetY} = options;
|
|
4522
|
+
|
|
4523
|
+
const quadrants = [
|
|
4524
|
+
{left: false, top: false}, // 0: Bottom-Right
|
|
4525
|
+
{left: false, top: true}, // 1: Top-Right
|
|
4526
|
+
{left: true, top: false}, // 2: Bottom-Left
|
|
4527
|
+
{left: true, top: true}, // 3: Top-Left
|
|
4528
|
+
];
|
|
4529
|
+
|
|
4530
|
+
let x = 0;
|
|
4531
|
+
let y = 0;
|
|
4532
|
+
|
|
4533
|
+
for (let pass = 0; pass < 2; ++pass) {
|
|
4534
|
+
for (const {left, top} of quadrants) {
|
|
4535
|
+
const dx = left ? -offsetX - infoWidth : offsetX;
|
|
4536
|
+
const dy = top ? -offsetY - infoHeight : offsetY;
|
|
4537
|
+
|
|
4538
|
+
// Ensure upper bound of clamp is never negative (minimum of 0) to avoid errors when infoWidth/infoHeight > parent container bounds
|
|
4539
|
+
x = Platform.NumberUtilities.clamp(mouseX + dx, 0, Math.max(0, parentWidth - infoWidth));
|
|
4540
|
+
y = Platform.NumberUtilities.clamp(mouseY + dy, 0, Math.max(0, parentHeight - infoHeight));
|
|
4541
|
+
|
|
4542
|
+
const mouseOverlapsX = mouseX > x && mouseX < x + infoWidth;
|
|
4543
|
+
const mouseOverlapsY = mouseY > y && mouseY < y + infoHeight;
|
|
4544
|
+
|
|
4545
|
+
const popoverFits = pass === 0 ? (!mouseOverlapsX && !mouseOverlapsY) : !(mouseOverlapsX && mouseOverlapsY);
|
|
4546
|
+
|
|
4547
|
+
if (popoverFits) {
|
|
4548
|
+
return {x, y};
|
|
4549
|
+
}
|
|
4550
|
+
}
|
|
4551
|
+
}
|
|
4552
|
+
return {x, y};
|
|
4553
|
+
}
|
|
@@ -1031,13 +1031,16 @@ export const knownContextValues = new Set([
|
|
|
1031
1031
|
'copy-all-declarations',
|
|
1032
1032
|
'copy-all-urls',
|
|
1033
1033
|
'copy-as-base',
|
|
1034
|
+
'copy-as-csv',
|
|
1034
1035
|
'copy-as-curl',
|
|
1035
1036
|
'copy-as-curl-bash',
|
|
1036
1037
|
'copy-as-curl-cmd',
|
|
1037
1038
|
'copy-as-fetch',
|
|
1038
1039
|
'copy-as-hex',
|
|
1040
|
+
'copy-as-markdown',
|
|
1039
1041
|
'copy-as-nodejs-fetch',
|
|
1040
1042
|
'copy-as-powershell',
|
|
1043
|
+
'copy-as-preload',
|
|
1041
1044
|
'copy-as-utf',
|
|
1042
1045
|
'copy-color',
|
|
1043
1046
|
'copy-console',
|
package/package.json
CHANGED
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"start": "vpython3 third_party/node/node.py --output scripts/run_start.mjs",
|
|
31
31
|
"webtest": "vpython3 third_party/node/node.py --output scripts/npm_test.js",
|
|
32
32
|
"watch": "npm run build -- --watch",
|
|
33
|
-
"test": "vpython3 third_party/node/node.py --output scripts/run_on_target.mjs gen/test/run.js"
|
|
33
|
+
"test": "vpython3 third_party/node/node.py --output scripts/run_on_target.mjs gen/test/run.js",
|
|
34
|
+
"test-health": "node scripts/test_health.ts"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
@@ -75,7 +76,7 @@
|
|
|
75
76
|
"mocha": "11.7.5",
|
|
76
77
|
"ora": "9.0.0",
|
|
77
78
|
"postcss": "8.5.15",
|
|
78
|
-
"puppeteer-core": "25.0
|
|
79
|
+
"puppeteer-core": "25.2.0",
|
|
79
80
|
"rollup": "4.60.4",
|
|
80
81
|
"rollup-plugin-sourcemaps2": "0.5.4",
|
|
81
82
|
"sinon": "22.0.0",
|
|
@@ -91,5 +92,5 @@
|
|
|
91
92
|
"webidl2": "24.5.0",
|
|
92
93
|
"yargs": "17.7.2"
|
|
93
94
|
},
|
|
94
|
-
"version": "1.0.
|
|
95
|
+
"version": "1.0.1656291"
|
|
95
96
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|