chrome-devtools-frontend 1.0.1522585 → 1.0.1524741
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS +1 -0
- package/docs/README.md +1 -0
- package/docs/policy/README.md +1 -0
- package/docs/policy/console-policy.md +144 -0
- package/docs/policy/images/console-policy1.png +0 -0
- package/docs/policy/images/console-policy2.png +0 -0
- package/docs/policy/images/console-policy3.png +0 -0
- package/docs/ui_engineering.md +22 -0
- package/front_end/Tests.js +1 -1
- package/front_end/core/common/Color.ts +13 -9
- package/front_end/core/common/ColorConverter.ts +9 -7
- package/front_end/core/common/Gzip.ts +1 -1
- package/front_end/core/common/MapWithDefault.ts +5 -3
- package/front_end/core/common/ResourceType.ts +0 -12
- package/front_end/core/common/ReturnToPanel.ts +6 -4
- package/front_end/core/common/Trie.ts +4 -2
- package/front_end/core/host/AidaClient.ts +3 -3
- package/front_end/core/host/GdpClient.ts +7 -5
- package/front_end/core/host/InspectorFrontendHostAPI.ts +7 -5
- package/front_end/core/host/Platform.ts +5 -3
- package/front_end/core/host/UserMetrics.ts +6 -4
- package/front_end/core/platform/ArrayUtilities.ts +1 -1
- package/front_end/core/platform/StringUtilities.ts +34 -31
- package/front_end/core/root/Runtime.ts +1 -1
- package/front_end/core/sdk/CSSMetadata.ts +6 -4
- package/front_end/core/sdk/CSSPropertyParser.ts +17 -13
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +19 -13
- package/front_end/core/sdk/ChildTargetManager.ts +35 -0
- package/front_end/core/sdk/DOMModel.ts +1 -1
- package/front_end/core/sdk/EventBreakpointsModel.ts +4 -2
- package/front_end/core/sdk/HttpReasonPhraseStrings.ts +4 -2
- package/front_end/core/sdk/NetworkManager.ts +8 -48
- package/front_end/core/sdk/NetworkRequest.ts +0 -28
- package/front_end/core/sdk/PageResourceLoader.ts +1 -1
- package/front_end/core/sdk/PreloadingModel.ts +22 -18
- package/front_end/core/sdk/RehydratingConnection.ts +1 -1
- package/front_end/core/sdk/RehydratingObject.ts +1 -1
- package/front_end/core/sdk/RemoteObject.ts +1 -1
- package/front_end/core/sdk/ResourceTreeModel.ts +2 -0
- package/front_end/core/sdk/ScreenCaptureModel.ts +24 -20
- package/front_end/core/sdk/Target.ts +7 -1
- package/front_end/core/sdk/TraceObject.ts +2 -2
- package/front_end/entrypoints/formatter_worker/Substitute.ts +6 -4
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -16
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -1
- package/front_end/entrypoints/main/MainImpl.ts +6 -4
- package/front_end/generated/InspectorBackendCommands.js +2 -2
- package/front_end/generated/protocol-mapping.d.ts +3 -2
- package/front_end/generated/protocol-proxy-api.d.ts +3 -1
- package/front_end/generated/protocol.ts +7 -1
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +55 -14
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +83 -222
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +23 -0
- package/front_end/models/ai_assistance/performance/AIContext.ts +19 -4
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +4 -2
- package/front_end/models/autofill_manager/AutofillManager.ts +4 -2
- package/front_end/models/cpu_profile/CPUProfileDataModel.ts +1 -1
- package/front_end/models/crux-manager/CrUXManager.ts +1 -1
- package/front_end/models/extensions/HostUrlPattern.ts +13 -5
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
- package/front_end/models/issues_manager/CookieIssue.ts +2 -2
- package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
- package/front_end/models/issues_manager/SharedDictionaryIssue.ts +20 -0
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +8 -0
- package/front_end/models/network_time_calculator/Calculator.ts +4 -2
- package/front_end/models/network_time_calculator/RequestTimeRanges.ts +6 -4
- package/front_end/models/source_map_scopes/NamesResolver.ts +7 -5
- package/front_end/models/text_utils/ContentProvider.ts +6 -4
- package/front_end/models/trace/extras/TraceTree.ts +1 -1
- package/front_end/models/trace/handlers/FramesHandler.ts +7 -5
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +13 -7
- package/front_end/models/trace/handlers/MetaHandler.ts +16 -14
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +20 -8
- package/front_end/models/trace/handlers/helpers.ts +1 -1
- package/front_end/models/trace/handlers/types.ts +23 -19
- package/front_end/models/trace/helpers/Timing.ts +4 -2
- package/front_end/models/trace/helpers/Trace.ts +8 -4
- package/front_end/models/trace/insights/DocumentLatency.ts +1 -1
- package/front_end/models/trace/insights/INPBreakdown.ts +13 -2
- package/front_end/models/trace/insights/LCPBreakdown.ts +14 -2
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -2
- package/front_end/models/trace/types/File.ts +12 -8
- package/front_end/models/trace/types/Timing.ts +1 -1
- package/front_end/models/trace/types/TraceEvents.ts +37 -23
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +1 -1
- package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +12 -10
- package/front_end/panels/application/KeyValueStorageItemsView.ts +31 -33
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +6 -11
- package/front_end/panels/application/components/OriginTrialTreeView.ts +7 -5
- package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -0
- package/front_end/panels/application/components/ReportsGrid.ts +4 -10
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -13
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +3 -7
- package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -2
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +3 -10
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -2
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +7 -5
- package/front_end/panels/changes/ChangesSidebar.ts +97 -95
- package/front_end/panels/changes/changesSidebar.css +3 -0
- package/front_end/panels/console/ConsoleView.ts +2 -2
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +22 -35
- package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
- package/front_end/panels/elements/ElementStatePaneWidget.ts +12 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +9 -5
- package/front_end/panels/elements/ElementsTreeOutline.ts +11 -8
- package/front_end/panels/elements/PropertyRenderer.ts +19 -15
- package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -4
- package/front_end/panels/elements/StylesSidebarPane.ts +2 -2
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +4 -2
- package/front_end/panels/elements/components/AdornerManager.ts +5 -3
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +6 -4
- package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +2 -44
- package/front_end/panels/network/NetworkLogView.ts +6 -4
- package/front_end/panels/network/RequestPreviewView.ts +0 -7
- package/front_end/panels/network/components/RequestHeadersView.ts +0 -6
- package/front_end/panels/network/components/components.ts +0 -2
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +4 -2
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +12 -19
- package/front_end/panels/search/SearchResultsPane.ts +2 -3
- package/front_end/panels/security/IPProtectionView.ts +1 -1
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +4 -0
- package/front_end/panels/settings/emulation/utils/StructuredHeaders.ts +45 -37
- package/front_end/panels/sources/BreakpointsViewUtils.ts +11 -9
- package/front_end/panels/sources/DebuggerPlugin.ts +8 -4
- package/front_end/panels/sources/SourcesPanel.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +4 -2
- package/front_end/panels/timeline/CountersGraph.ts +12 -5
- package/front_end/panels/timeline/EasterEgg.d.ts +5 -3
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +8 -6
- package/front_end/panels/timeline/ModificationsManager.ts +5 -3
- package/front_end/panels/timeline/ThreadAppender.ts +7 -5
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +10 -8
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +10 -8
- package/front_end/panels/timeline/TimelineSelection.ts +4 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +5 -3
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +6 -4
- package/front_end/panels/timeline/components/Utils.ts +1 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +5 -3
- package/front_end/panels/timeline/utils/Helpers.ts +1 -1
- package/front_end/panels/utils/utils.ts +1 -7
- package/front_end/services/trace_bounds/TraceBounds.ts +4 -2
- package/front_end/services/tracing/PerformanceTracing.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/package.json +3 -2
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts +8 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js +8 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +28 -30
- 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 +27 -29
- 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 +34 -38
- 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 +34 -38
- 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/HTTPRequest.d.ts +8 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +12 -14
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +92 -108
- 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 +33 -39
- 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.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +5 -3
- 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/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +4 -2
- 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 +14 -5
- 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 +1 -0
- 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 +12 -6
- 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/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +24 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts +6 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js +6 -8
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +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/node/BrowserLauncher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +6 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts +5 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +5 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +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/es5-iife/puppeteer-core-browser.d.ts +188 -224
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +140 -166
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts +8 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js +8 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +28 -30
- 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 +27 -29
- 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 +34 -38
- 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 +34 -38
- 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/HTTPRequest.d.ts +8 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +12 -14
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +92 -108
- 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 +33 -39
- 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.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +5 -3
- 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/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +4 -2
- 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 +15 -6
- 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 +1 -0
- 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 +12 -6
- 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/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +24 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts +6 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js +6 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +6 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts +5 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +5 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.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/types.d.ts +188 -224
- package/front_end/third_party/puppeteer/package/package.json +3 -3
- package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +8 -10
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +27 -29
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +34 -38
- package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +17 -14
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +92 -108
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +5 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +5 -1
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +28 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +16 -7
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +28 -2
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/cdp/PredefinedNetworkConditions.ts +13 -22
- package/front_end/third_party/puppeteer/package/src/common/Device.ts +6 -8
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +6 -3
- package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +5 -7
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/ui/components/chrome_link/ChromeLink.ts +4 -2
- package/front_end/ui/components/dialogs/Dialog.ts +13 -9
- package/front_end/ui/components/highlighting/HighlightElement.ts +77 -0
- package/front_end/ui/components/highlighting/HighlightManager.ts +37 -0
- package/front_end/ui/components/highlighting/highlighting.ts +2 -0
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +5 -3
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +5 -3
- package/front_end/ui/components/menus/SelectMenu.ts +6 -4
- package/front_end/ui/components/survey_link/SurveyLink.ts +4 -2
- package/front_end/ui/components/text_editor/config.ts +10 -6
- package/front_end/ui/components/text_editor/javascript.ts +8 -4
- package/front_end/ui/legacy/ForwardedInputEventHandler.ts +4 -2
- package/front_end/ui/legacy/GlassPane.ts +1 -1
- package/front_end/ui/legacy/SettingsUI.ts +1 -5
- package/front_end/ui/legacy/Treeoutline.ts +12 -33
- package/front_end/ui/legacy/UIUtils.ts +19 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +12 -10
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +30 -32
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +25 -25
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +5 -0
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +4 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +4 -2
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +8 -6
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +6 -4
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +22 -16
- package/front_end/ui/legacy/components/source_frame/xmlView.css +0 -2
- package/front_end/ui/legacy/components/utils/Linkifier.ts +6 -4
- package/front_end/ui/visual_logging/Debugging.ts +10 -6
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -3
- package/inspector_overlay/common.ts +5 -3
- package/inspector_overlay/highlight_grid_common.ts +1 -1
- package/package.json +1 -1
- package/front_end/Images/src/bundle.svg +0 -3
- package/front_end/panels/network/components/WebBundleInfoView.css +0 -27
- package/front_end/panels/network/components/WebBundleInfoView.ts +0 -95
|
@@ -1458,8 +1458,17 @@ export class TreeSearch < NodeT extends TreeNode<NodeT>,
|
|
|
1458
1458
|
static highlight(ranges: TextUtils.TextRange.SourceRange[], selectedRange: TextUtils.TextRange.SourceRange|undefined):
|
|
1459
1459
|
ReturnType<typeof Lit.Directives.ref> {
|
|
1460
1460
|
return Lit.Directives.ref(element => {
|
|
1461
|
-
if (element instanceof
|
|
1462
|
-
|
|
1461
|
+
if (!(element instanceof HTMLElement)) {
|
|
1462
|
+
return;
|
|
1463
|
+
}
|
|
1464
|
+
const configListItem = element.closest<HTMLLIElement>('li[role="treeitem"]');
|
|
1465
|
+
const titleElement = configListItem ? TreeViewTreeElement.get(configListItem)?.titleElement : undefined;
|
|
1466
|
+
if (configListItem && titleElement) {
|
|
1467
|
+
const targetElement = HTMLElementWithLightDOMTemplate.findCorrespondingElement(
|
|
1468
|
+
element, configListItem, titleElement as HTMLElement);
|
|
1469
|
+
if (targetElement) {
|
|
1470
|
+
Highlighting.HighlightManager.HighlightManager.instance().set(targetElement, ranges, selectedRange);
|
|
1471
|
+
}
|
|
1463
1472
|
}
|
|
1464
1473
|
});
|
|
1465
1474
|
}
|
|
@@ -1524,31 +1533,7 @@ export class TreeSearch < NodeT extends TreeNode<NodeT>,
|
|
|
1524
1533
|
}
|
|
1525
1534
|
}
|
|
1526
1535
|
|
|
1527
|
-
class ActiveHighlights {
|
|
1528
|
-
#activeRanges: Range[] = [];
|
|
1529
|
-
#highlights: TextUtils.TextRange.SourceRange[] = [];
|
|
1530
|
-
#selectedSearchResult: TextUtils.TextRange.SourceRange|undefined = undefined;
|
|
1531
|
-
|
|
1532
|
-
apply(node: Node): void {
|
|
1533
|
-
Highlighting.HighlightManager.HighlightManager.instance().removeHighlights(this.#activeRanges);
|
|
1534
|
-
this.#activeRanges =
|
|
1535
|
-
Highlighting.HighlightManager.HighlightManager.instance().highlightOrderedTextRanges(node, this.#highlights);
|
|
1536
|
-
if (this.#selectedSearchResult) {
|
|
1537
|
-
this.#activeRanges.push(...Highlighting.HighlightManager.HighlightManager.instance().highlightOrderedTextRanges(
|
|
1538
|
-
node, [this.#selectedSearchResult], /* isSelected=*/ true));
|
|
1539
|
-
}
|
|
1540
|
-
}
|
|
1541
|
-
|
|
1542
|
-
set(element: Node, highlights: TextUtils.TextRange.SourceRange[],
|
|
1543
|
-
selectedSearchResult: TextUtils.TextRange.SourceRange|undefined): void {
|
|
1544
|
-
this.#highlights = highlights;
|
|
1545
|
-
this.#selectedSearchResult = selectedSearchResult;
|
|
1546
|
-
this.apply(element);
|
|
1547
|
-
}
|
|
1548
|
-
}
|
|
1549
|
-
|
|
1550
1536
|
class TreeViewTreeElement extends TreeElement {
|
|
1551
|
-
#activeHighlights = new ActiveHighlights();
|
|
1552
1537
|
#clonedAttributes = new Set<string>();
|
|
1553
1538
|
#clonedClasses = new Set<string>();
|
|
1554
1539
|
|
|
@@ -1562,12 +1547,6 @@ class TreeViewTreeElement extends TreeElement {
|
|
|
1562
1547
|
this.refresh();
|
|
1563
1548
|
}
|
|
1564
1549
|
|
|
1565
|
-
highlight(
|
|
1566
|
-
highlights: TextUtils.TextRange.SourceRange[],
|
|
1567
|
-
selectedSearchResult: TextUtils.TextRange.SourceRange|undefined): void {
|
|
1568
|
-
this.#activeHighlights.set(this.titleElement, highlights, selectedSearchResult);
|
|
1569
|
-
}
|
|
1570
|
-
|
|
1571
1550
|
refresh(): void {
|
|
1572
1551
|
this.titleElement.textContent = '';
|
|
1573
1552
|
this.#clonedAttributes.forEach(attr => this.listItemElement.attributes.removeNamedItem(attr));
|
|
@@ -1594,7 +1573,7 @@ class TreeViewTreeElement extends TreeElement {
|
|
|
1594
1573
|
this.titleElement.appendChild(HTMLElementWithLightDOMTemplate.cloneNode(child));
|
|
1595
1574
|
}
|
|
1596
1575
|
|
|
1597
|
-
|
|
1576
|
+
Highlighting.HighlightManager.HighlightManager.instance().apply(this.titleElement);
|
|
1598
1577
|
}
|
|
1599
1578
|
|
|
1600
1579
|
static get(configElement: Node|undefined): TreeViewTreeElement|undefined {
|
|
@@ -857,7 +857,7 @@ export function highlightRangesWithStyleClass(
|
|
|
857
857
|
return highlightNodes;
|
|
858
858
|
}
|
|
859
859
|
|
|
860
|
-
|
|
860
|
+
/** Used in chromium/src/third_party/blink/web_tests/http/tests/devtools/components/utilities-highlight-results.js **/
|
|
861
861
|
export function applyDomChanges(domChanges: HighlightChange[]): void {
|
|
862
862
|
for (let i = 0, size = domChanges.length; i < size; ++i) {
|
|
863
863
|
const entry = domChanges[i];
|
|
@@ -2302,4 +2302,22 @@ export class HTMLElementWithLightDOMTemplate extends HTMLElement {
|
|
|
2302
2302
|
|
|
2303
2303
|
protected removeNodes(_nodes: NodeList): void {
|
|
2304
2304
|
}
|
|
2305
|
+
|
|
2306
|
+
static findCorrespondingElement(
|
|
2307
|
+
sourceElement: HTMLElement, sourceRootElement: HTMLElement, targetRootElement: Element): Element|null {
|
|
2308
|
+
let currentElement = sourceElement;
|
|
2309
|
+
const childIndexesOnPathToRoot: number[] = [];
|
|
2310
|
+
while (currentElement?.parentElement && currentElement !== sourceRootElement) {
|
|
2311
|
+
childIndexesOnPathToRoot.push([...currentElement.parentElement.children].indexOf(currentElement));
|
|
2312
|
+
currentElement = currentElement.parentElement;
|
|
2313
|
+
}
|
|
2314
|
+
if (!currentElement) {
|
|
2315
|
+
return null;
|
|
2316
|
+
}
|
|
2317
|
+
let targetElement = targetRootElement;
|
|
2318
|
+
for (const index of childIndexesOnPathToRoot.reverse()) {
|
|
2319
|
+
targetElement = targetElement.children[index];
|
|
2320
|
+
}
|
|
2321
|
+
return targetElement;
|
|
2322
|
+
}
|
|
2305
2323
|
}
|
|
@@ -168,15 +168,17 @@ function convertColorFormat(colorFormat: Common.Color.Format): SpectrumColorForm
|
|
|
168
168
|
return colorFormat;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
171
|
+
/**
|
|
172
|
+
* HSV by itself, without a color space, doesn't map to a color and
|
|
173
|
+
* it is usually interpreted as an sRGB color. However, it can also
|
|
174
|
+
* represent colors in other color spaces since `HSV` -> `RGB` mapping
|
|
175
|
+
* is not color space dependent. For example, color(display-p3 1 1 1) and rgb(1 1 1)
|
|
176
|
+
* map to the same HSV values. The tricky thing is, `hsl()` syntax is interpreted
|
|
177
|
+
* as it is in sRGB in CSS. So, when you convert those two colors and use as `hsl()`, it will
|
|
178
|
+
* show an sRGB color. Though, if there was a function `color-hsl(<color-space> h s l)`
|
|
179
|
+
* it was going to show the color in the color-space represented with `hsl`.
|
|
180
|
+
* This function, gets the HSV values by interpreting them in the given gamut.
|
|
181
|
+
**/
|
|
180
182
|
function getHsvFromColor(gamut: SpectrumGamut, color: Common.Color.Color): Common.ColorUtils.Color4D {
|
|
181
183
|
switch (gamut) {
|
|
182
184
|
case SpectrumGamut.DISPLAY_P3: {
|
|
@@ -192,7 +194,7 @@ function getHsvFromColor(gamut: SpectrumGamut, color: Common.Color.Color): Commo
|
|
|
192
194
|
}
|
|
193
195
|
}
|
|
194
196
|
|
|
195
|
-
|
|
197
|
+
/** Interprets the given `hsva` values in the given gamut and returns the concrete `Color` object. **/
|
|
196
198
|
function getColorFromHsva(gamut: SpectrumGamut, hsva: Common.ColorUtils.Color4D): Common.Color.Color {
|
|
197
199
|
const color: Common.Color.Legacy = Common.Color.Legacy.fromHSVA(hsva);
|
|
198
200
|
switch (gamut) {
|
|
@@ -55,13 +55,12 @@ interface ViewInput {
|
|
|
55
55
|
renderInline?: boolean;
|
|
56
56
|
portBindingEnabled?: boolean;
|
|
57
57
|
schemeBindingEnabled?: boolean;
|
|
58
|
-
onEdit:
|
|
59
|
-
|
|
60
|
-
onCreate: (event: CustomEvent<CookieData>) => void;
|
|
58
|
+
onEdit: (data: CookieData, columnId: string, valueBeforeEditing: string, newText: string) => void;
|
|
59
|
+
onCreate: (data: CookieData) => void;
|
|
61
60
|
onRefresh: () => void;
|
|
62
|
-
onDelete: (
|
|
63
|
-
onContextMenu: (
|
|
64
|
-
onSelect: (
|
|
61
|
+
onDelete: (data: CookieData) => void;
|
|
62
|
+
onContextMenu: (data: CookieData, menu: UI.ContextMenu.ContextMenu) => void;
|
|
63
|
+
onSelect: (key: string|undefined) => void;
|
|
65
64
|
}
|
|
66
65
|
type ViewFunction = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
67
66
|
type AttributeWithIcon = SDK.Cookie.Attribute.NAME|SDK.Cookie.Attribute.VALUE|SDK.Cookie.Attribute.DOMAIN|
|
|
@@ -183,12 +182,9 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
183
182
|
id="cookies-table"
|
|
184
183
|
striped
|
|
185
184
|
?inline=${input.renderInline}
|
|
186
|
-
@edit=${input.onEdit}
|
|
187
185
|
@create=${input.onCreate}
|
|
188
186
|
@refresh=${input.onRefresh}
|
|
189
|
-
@
|
|
190
|
-
@contextmenu=${input.onContextMenu}
|
|
191
|
-
@select=${input.onSelect}
|
|
187
|
+
@deselect=${() => input.onSelect(undefined)}
|
|
192
188
|
>
|
|
193
189
|
<table>
|
|
194
190
|
<tr>
|
|
@@ -237,12 +233,16 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
237
233
|
SourcePort
|
|
238
234
|
</th>` : ''}
|
|
239
235
|
</tr>
|
|
240
|
-
${repeat(this.data,
|
|
241
|
-
|
|
242
|
-
?selected=${cookie.key === input.selectedKey}
|
|
236
|
+
${repeat(this.data, cookie => cookie.key, cookie => html`
|
|
237
|
+
<tr ?selected=${cookie.key === input.selectedKey}
|
|
243
238
|
?inactive=${cookie.inactive}
|
|
244
239
|
?dirty=${cookie.dirty}
|
|
245
|
-
?highlighted=${cookie.flagged}
|
|
240
|
+
?highlighted=${cookie.flagged}
|
|
241
|
+
@edit=${(e: CustomEvent<{columnId: string, valueBeforeEditing: string, newText: string}>) =>
|
|
242
|
+
input.onEdit(cookie, e.detail.columnId, e.detail.valueBeforeEditing, e.detail.newText)}
|
|
243
|
+
@delete=${()=> input.onDelete(cookie)}
|
|
244
|
+
@contextmenu=${(e: CustomEvent<UI.ContextMenu.ContextMenu>) => input.onContextMenu(cookie, e.detail)}
|
|
245
|
+
@select=${() => input.onSelect(cookie.key)}>
|
|
246
246
|
<td>${cookie.icons?.name}${cookie.name}</td>
|
|
247
247
|
<td>${cookie.value}</td>
|
|
248
248
|
<td>${cookie.icons?.domain}${cookie.domain}</td>
|
|
@@ -336,37 +336,35 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
336
336
|
renderInline: this.renderInline,
|
|
337
337
|
schemeBindingEnabled: this.schemeBindingEnabled,
|
|
338
338
|
portBindingEnabled: this.portBindingEnabled,
|
|
339
|
-
onEdit:
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
onContextMenu: event => this.populateContextMenu(event.detail.menu, event.detail.element),
|
|
339
|
+
onEdit: this.onUpdateCookie.bind(this),
|
|
340
|
+
onCreate: this.onCreateCookie.bind(this),
|
|
341
|
+
onRefresh: this.refresh.bind(this),
|
|
342
|
+
onDelete: this.onDeleteCookie.bind(this),
|
|
343
|
+
onSelect: this.onSelect.bind(this),
|
|
344
|
+
onContextMenu: this.populateContextMenu.bind(this),
|
|
346
345
|
};
|
|
347
346
|
const output = {};
|
|
348
347
|
this.view(input, output, this.element);
|
|
349
348
|
}
|
|
350
349
|
|
|
351
|
-
private onSelect(
|
|
352
|
-
this.selectedKey =
|
|
350
|
+
private onSelect(key: string|undefined): void {
|
|
351
|
+
this.selectedKey = key;
|
|
353
352
|
this.selectedCallback?.();
|
|
354
353
|
}
|
|
355
354
|
|
|
356
|
-
private onDeleteCookie(
|
|
357
|
-
const cookie = this.cookies.find(cookie => cookie.key() ===
|
|
355
|
+
private onDeleteCookie(data: CookieData): void {
|
|
356
|
+
const cookie = this.cookies.find(cookie => cookie.key() === data.key);
|
|
358
357
|
if (cookie && this.deleteCallback) {
|
|
359
358
|
this.deleteCallback(cookie, () => this.refresh());
|
|
360
359
|
}
|
|
361
360
|
}
|
|
362
361
|
|
|
363
|
-
private onUpdateCookie(
|
|
364
|
-
const oldCookie = this.cookies.find(cookie => cookie.key() ===
|
|
365
|
-
|
|
366
|
-
if (!oldData || !oldCookie) {
|
|
362
|
+
private onUpdateCookie(oldData: CookieData, columnIdentifier: string, _oldText: string, newText: string): void {
|
|
363
|
+
const oldCookie = this.cookies.find(cookie => cookie.key() === oldData.key);
|
|
364
|
+
if (!oldCookie) {
|
|
367
365
|
return;
|
|
368
366
|
}
|
|
369
|
-
const newCookieData = {...oldData, [columnIdentifier]: newText};
|
|
367
|
+
const newCookieData = {...oldData, [columnIdentifier]: newText};
|
|
370
368
|
if (!this.isValidCookieData(newCookieData)) {
|
|
371
369
|
newCookieData.dirty = true;
|
|
372
370
|
this.requestUpdate();
|
|
@@ -556,8 +554,8 @@ export class CookiesTable extends UI.Widget.VBox {
|
|
|
556
554
|
}
|
|
557
555
|
}
|
|
558
556
|
|
|
559
|
-
private populateContextMenu(contextMenu: UI.ContextMenu.ContextMenu
|
|
560
|
-
const maybeCookie = this.cookies.find(cookie => cookie.key() ===
|
|
557
|
+
private populateContextMenu(data: CookieData, contextMenu: UI.ContextMenu.ContextMenu): void {
|
|
558
|
+
const maybeCookie = this.cookies.find(cookie => cookie.key() === data.key);
|
|
561
559
|
if (!maybeCookie) {
|
|
562
560
|
return;
|
|
563
561
|
}
|
|
@@ -1669,7 +1669,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1669
1669
|
}
|
|
1670
1670
|
}
|
|
1671
1671
|
|
|
1672
|
-
|
|
1672
|
+
/** Keep in sync with .data-grid col.corner style rule. **/
|
|
1673
1673
|
export const CornerWidth = 14;
|
|
1674
1674
|
|
|
1675
1675
|
export const enum Events {
|
|
@@ -66,15 +66,14 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
66
66
|
|
|
67
67
|
this.#dataGrid.addEventListener(
|
|
68
68
|
DataGridEvents.SELECTED_NODE,
|
|
69
|
-
e =>
|
|
69
|
+
e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('select')));
|
|
70
70
|
this.#dataGrid.addEventListener(
|
|
71
|
-
DataGridEvents.DESELECTED_NODE, () => this.dispatchEvent(new CustomEvent('
|
|
71
|
+
DataGridEvents.DESELECTED_NODE, () => this.dispatchEvent(new CustomEvent('deselect')));
|
|
72
72
|
this.#dataGrid.addEventListener(DataGridEvents.SORTING_CHANGED, () => this.dispatchEvent(new CustomEvent('sort', {
|
|
73
73
|
detail: {columnId: this.#dataGrid.sortColumnId(), ascending: this.#dataGrid.isSortOrderAscending()}
|
|
74
74
|
})));
|
|
75
75
|
this.#dataGrid.setRowContextMenuCallback((menu, node) => {
|
|
76
|
-
|
|
77
|
-
new CustomEvent('contextmenu', {detail: {menu, element: (node as DataGridElementNode).configElement}}));
|
|
76
|
+
(node as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('contextmenu', {detail: menu}));
|
|
78
77
|
});
|
|
79
78
|
this.#dataGrid.setHeaderContextMenuCallback(menu => {
|
|
80
79
|
for (const column of this.#columns) {
|
|
@@ -226,10 +225,10 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
226
225
|
return [...nodes]
|
|
227
226
|
.flatMap(node => {
|
|
228
227
|
if (node instanceof HTMLTableRowElement) {
|
|
229
|
-
return [node];
|
|
228
|
+
return [node, ...node.querySelectorAll<HTMLTableRowElement>('table tr')];
|
|
230
229
|
}
|
|
231
230
|
if (node instanceof HTMLElement) {
|
|
232
|
-
return [...node.querySelectorAll('tr')];
|
|
231
|
+
return [...node.querySelectorAll<HTMLTableRowElement>('tr')];
|
|
233
232
|
}
|
|
234
233
|
return [] as HTMLElement[];
|
|
235
234
|
})
|
|
@@ -248,10 +247,15 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
248
247
|
|
|
249
248
|
override addNodes(nodes: NodeList): void {
|
|
250
249
|
for (const element of this.#getDataRows(nodes)) {
|
|
251
|
-
const
|
|
250
|
+
const parentRow = element.parentElement?.closest('td')?.closest('tr');
|
|
251
|
+
const parentDataGridNode = parentRow ? DataGridElementNode.get(parentRow) : undefined;
|
|
252
|
+
const parentNode = parentDataGridNode || this.#dataGrid.rootNode();
|
|
252
253
|
const nextNode = this.#findNextExistingNode(element);
|
|
253
254
|
const index = nextNode ? parentNode.children.indexOf(nextNode) : parentNode.children.length;
|
|
254
255
|
const node = new DataGridElementNode(element, this);
|
|
256
|
+
if ((parentRow || node.hasChildren()) && !this.#dataGrid.disclosureColumnId) {
|
|
257
|
+
this.#dataGrid.disclosureColumnId = this.#columns[0].id;
|
|
258
|
+
}
|
|
255
259
|
parentNode.insertChild(node, index);
|
|
256
260
|
if (hasBooleanAttribute(element, 'selected')) {
|
|
257
261
|
node.select();
|
|
@@ -345,12 +349,11 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
|
|
|
345
349
|
return;
|
|
346
350
|
}
|
|
347
351
|
|
|
348
|
-
|
|
349
|
-
new CustomEvent('edit', {detail: {node: node.configElement, columnId, valueBeforeEditing, newText}}));
|
|
352
|
+
node.configElement.dispatchEvent(new CustomEvent('edit', {detail: {columnId, valueBeforeEditing, newText}}));
|
|
350
353
|
}
|
|
351
354
|
|
|
352
355
|
#deleteCallback(node: DataGridElementNode): void {
|
|
353
|
-
|
|
356
|
+
node.configElement.dispatchEvent(new CustomEvent('delete'));
|
|
354
357
|
}
|
|
355
358
|
|
|
356
359
|
override addEventListener<K extends keyof HTMLElementEventMap>(
|
|
@@ -394,9 +397,12 @@ class DataGridElementNode extends SortableDataGridNode<DataGridElementNode> {
|
|
|
394
397
|
}
|
|
395
398
|
|
|
396
399
|
#updateData(): void {
|
|
397
|
-
const cells = this.#configElement.
|
|
398
|
-
for (let i = 0; i <
|
|
399
|
-
const cell = cells[i];
|
|
400
|
+
const cells = [...this.#configElement.children].filter(c => c.tagName === 'TD');
|
|
401
|
+
for (let i = 0; i < this.#dataGridElement.columns.length; ++i) {
|
|
402
|
+
const cell = cells[i] as HTMLElement;
|
|
403
|
+
if (!cell) {
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
400
406
|
const column = this.#dataGridElement.columns[i];
|
|
401
407
|
if (column.dataType === DataType.BOOLEAN) {
|
|
402
408
|
this.data[column.id] = hasBooleanAttribute(cell, 'data-value') || cell.textContent === 'true';
|
|
@@ -439,19 +445,12 @@ class DataGridElementNode extends SortableDataGridNode<DataGridElementNode> {
|
|
|
439
445
|
}
|
|
440
446
|
|
|
441
447
|
#onRowMouseEvent(event: MouseEvent): void {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
childIndexesOnPathToRoot.push([...currentElement.parentElement.children].indexOf(currentElement));
|
|
446
|
-
currentElement = currentElement.parentElement;
|
|
447
|
-
}
|
|
448
|
-
if (!currentElement) {
|
|
448
|
+
const targetInConfigRow = UI.UIUtils.HTMLElementWithLightDOMTemplate.findCorrespondingElement(
|
|
449
|
+
event.target as HTMLElement, event.currentTarget as HTMLElement, this.#configElement);
|
|
450
|
+
if (!targetInConfigRow) {
|
|
449
451
|
throw new Error('Cell click event target not found in the data grid');
|
|
450
452
|
}
|
|
451
|
-
|
|
452
|
-
for (const index of childIndexesOnPathToRoot.reverse()) {
|
|
453
|
-
targetInConfigRow = targetInConfigRow.children[index];
|
|
454
|
-
}
|
|
453
|
+
|
|
455
454
|
if (targetInConfigRow instanceof HTMLElement) {
|
|
456
455
|
targetInConfigRow?.dispatchEvent(new MouseEvent(event.type, {bubbles: true, composed: true}));
|
|
457
456
|
}
|
|
@@ -481,7 +480,8 @@ class DataGridElementNode extends SortableDataGridNode<DataGridElementNode> {
|
|
|
481
480
|
if (this.isCreationNode) {
|
|
482
481
|
return cell;
|
|
483
482
|
}
|
|
484
|
-
const
|
|
483
|
+
const configCells = [...this.#configElement.children].filter(c => c.tagName === 'TD') as HTMLTableCellElement[];
|
|
484
|
+
const configCell = configCells[index];
|
|
485
485
|
if (!configCell) {
|
|
486
486
|
throw new Error(`Column ${columnId} not found in the data grid`);
|
|
487
487
|
}
|
|
@@ -346,6 +346,11 @@
|
|
|
346
346
|
color: ButtonText;
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
+
.data-grid tbody tr.revealed:not(.data-grid-filler-row, .selected):hover,
|
|
350
|
+
.data-grid:focus-within tbody tr.revealed.selected {
|
|
351
|
+
background-color: Highlight;
|
|
352
|
+
}
|
|
353
|
+
|
|
349
354
|
.data-grid th.sortable:hover *,
|
|
350
355
|
.data-grid tr.parent.selected td.disclosure::before,
|
|
351
356
|
.data-grid:focus tr.parent.selected td.disclosure::before,
|
|
@@ -6,8 +6,10 @@ import * as Geometry from '../../../../models/geometry/geometry.js';
|
|
|
6
6
|
|
|
7
7
|
import {CSSLinearEasingModel} from './CSSLinearEasingModel.js';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Provides a unified interface for both linear easing and cubic bezier
|
|
11
|
+
* models and handles the parsing for animation-timing texts.
|
|
12
|
+
**/
|
|
11
13
|
export abstract class AnimationTimingModel {
|
|
12
14
|
abstract asCSSText(): string;
|
|
13
15
|
|
|
@@ -680,8 +680,10 @@ export class RootElement extends UI.TreeOutline.TreeElement {
|
|
|
680
680
|
}
|
|
681
681
|
}
|
|
682
682
|
|
|
683
|
-
|
|
684
|
-
|
|
683
|
+
/**
|
|
684
|
+
* Number of initially visible children in an ObjectPropertyTreeElement.
|
|
685
|
+
* Remaining children are shown as soon as requested via a show more properties button.
|
|
686
|
+
**/
|
|
685
687
|
export const InitialVisibleChildrenLimit = 200;
|
|
686
688
|
|
|
687
689
|
export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
@@ -103,7 +103,7 @@ const HEADER_LABEL_X_PADDING = 3;
|
|
|
103
103
|
const HEADER_LABEL_Y_PADDING = 2;
|
|
104
104
|
const PADDING_BETWEEN_TITLE_AND_SUBTITLE = 6;
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
/** The width of each of the edit mode icons. **/
|
|
107
107
|
export const EDIT_ICON_WIDTH = 16;
|
|
108
108
|
// This gap might seem quite small - but the icons themselves have some
|
|
109
109
|
// whitespace either side, so we don't need a huge gap.
|
|
@@ -136,7 +136,7 @@ const hideIconPath =
|
|
|
136
136
|
const showIconPath =
|
|
137
137
|
'M10 13.5C10.972 13.5 11.7983 13.1597 12.479 12.479C13.1597 11.7983 13.5 10.972 13.5 10C13.5 9.028 13.1597 8.20167 12.479 7.521C11.7983 6.84033 10.972 6.5 10 6.5C9.028 6.5 8.20167 6.84033 7.521 7.521C6.84033 8.20167 6.5 9.028 6.5 10C6.5 10.972 6.84033 11.7983 7.521 12.479C8.20167 13.1597 9.028 13.5 10 13.5ZM10 12C9.44467 12 8.97233 11.8057 8.583 11.417C8.19433 11.0277 8 10.5553 8 10C8 9.44467 8.19433 8.97233 8.583 8.583C8.97233 8.19433 9.44467 8 10 8C10.5553 8 11.0277 8.19433 11.417 8.583C11.8057 8.97233 12 9.44467 12 10C12 10.5553 11.8057 11.0277 11.417 11.417C11.0277 11.8057 10.5553 12 10 12ZM10 16C8.014 16 6.20833 15.455 4.583 14.365C2.95833 13.2743 1.764 11.8193 1 10C1.764 8.18067 2.95833 6.72567 4.583 5.635C6.20833 4.545 8.014 4 10 4C11.986 4 13.7917 4.545 15.417 5.635C17.0417 6.72567 18.236 8.18067 19 10C18.236 11.8193 17.0417 13.2743 15.417 14.365C13.7917 15.455 11.986 16 10 16ZM10 14.5C11.5553 14.5 12.9927 14.0973 14.312 13.292C15.632 12.486 16.646 11.3887 17.354 10C16.646 8.61133 15.632 7.514 14.312 6.708C12.9927 5.90267 11.5553 5.5 10 5.5C8.44467 5.5 7.00733 5.90267 5.688 6.708C4.368 7.514 3.354 8.61133 2.646 10C3.354 11.3887 4.368 12.486 5.688 13.292C7.00733 14.0973 8.44467 14.5 10 14.5Z';
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
/** export for test. **/
|
|
140
140
|
export const enum HoverType {
|
|
141
141
|
TRACK_CONFIG_UP_BUTTON = 'TRACK_CONFIG_UP_BUTTON',
|
|
142
142
|
TRACK_CONFIG_DOWN_BUTTON = 'TRACK_CONFIG_DOWN_BUTTON',
|
|
@@ -216,7 +216,7 @@ export interface UserFilterAction {
|
|
|
216
216
|
entry: Trace.Types.Events.Event;
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
/** Object used to indicate to the Context Menu if an action is possible on the selected entry. **/
|
|
220
220
|
export interface PossibleFilterActions {
|
|
221
221
|
[FilterAction.MERGE_FUNCTION]: boolean;
|
|
222
222
|
[FilterAction.COLLAPSE_FUNCTION]: boolean;
|
|
@@ -2569,9 +2569,11 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
2569
2569
|
const minTextWidth = 2 * textPadding + UI.UIUtils.measureTextWidth(context, '…');
|
|
2570
2570
|
const minTextWidthDuration = this.chartViewport.pixelToTimeOffset(minTextWidth);
|
|
2571
2571
|
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2572
|
+
/**
|
|
2573
|
+
* As we parse each event, we bucket them into batches based on the color and
|
|
2574
|
+
* whether they should be outlined. The key of this map is an object, so the
|
|
2575
|
+
* following helps for dedupings keys to use within a Map.
|
|
2576
|
+
**/
|
|
2575
2577
|
interface BatchKey {
|
|
2576
2578
|
color: string;
|
|
2577
2579
|
outline: boolean;
|
|
@@ -32,10 +32,12 @@ export interface PieChartData {
|
|
|
32
32
|
total: number;
|
|
33
33
|
slices: Slice[];
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
/**
|
|
36
|
+
* If the slices are not available when constructing the pie chart, set .data
|
|
37
|
+
* immediately, with total=0 and slices=[], so that the chart is rendered with
|
|
38
|
+
* the correct initial size. This avoids a layout shift when the slices are
|
|
39
|
+
* later populated.
|
|
40
|
+
**/
|
|
39
41
|
export class PieChart extends HTMLElement {
|
|
40
42
|
private readonly shadow = this.attachShadow({mode: 'open'});
|
|
41
43
|
private chartName = '';
|
|
@@ -1153,7 +1153,7 @@ const nonBreakableLineMark = new (class extends CodeMirror.GutterMarker {
|
|
|
1153
1153
|
override elementClass = 'cm-nonBreakableLine';
|
|
1154
1154
|
})();
|
|
1155
1155
|
|
|
1156
|
-
|
|
1156
|
+
/** Effect to add lines (by position) to the set of non-breakable lines. **/
|
|
1157
1157
|
export const addNonBreakableLines = CodeMirror.StateEffect.define<readonly number[]>();
|
|
1158
1158
|
|
|
1159
1159
|
const nonBreakableLines = CodeMirror.StateField.define<CodeMirror.RangeSet<CodeMirror.GutterMarker>>({
|
|
@@ -1227,13 +1227,13 @@ const sourceFrameTheme = CodeMirror.EditorView.theme({
|
|
|
1227
1227
|
export type RevealPosition = number|{lineNumber: number, columnNumber?: number}|
|
|
1228
1228
|
{from: {lineNumber: number, columnNumber: number}, to: {lineNumber: number, columnNumber: number}};
|
|
1229
1229
|
|
|
1230
|
-
|
|
1230
|
+
/** This is usually an Infobar but is also used for AiCodeCompletionSummaryToolbar **/
|
|
1231
1231
|
export interface SourceFrameInfobar {
|
|
1232
1232
|
element: HTMLElement;
|
|
1233
1233
|
order?: number;
|
|
1234
1234
|
}
|
|
1235
1235
|
|
|
1236
|
-
|
|
1236
|
+
/** Infobar panel state, used to show additional panels below the editor. **/
|
|
1237
1237
|
export const addSourceFrameInfobar = CodeMirror.StateEffect.define<SourceFrameInfobar>();
|
|
1238
1238
|
export const removeSourceFrameInfobar = CodeMirror.StateEffect.define<SourceFrameInfobar>();
|
|
1239
1239
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import '../../../components/highlighting/highlighting.js';
|
|
6
|
+
|
|
5
7
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
6
8
|
import * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
7
9
|
import * as Lit from '../../../lit/lit.js';
|
|
@@ -113,38 +115,41 @@ interface ViewInput {
|
|
|
113
115
|
}
|
|
114
116
|
export type View = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
115
117
|
export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
116
|
-
function highlight(node: XMLTreeViewNode, closeTag: boolean):
|
|
118
|
+
function highlight(node: XMLTreeViewNode, closeTag: boolean): {highlights: string, selected: string} {
|
|
119
|
+
let highlights = '';
|
|
120
|
+
let selected = '';
|
|
117
121
|
if (!input.search) {
|
|
118
|
-
return
|
|
122
|
+
return {highlights, selected};
|
|
119
123
|
}
|
|
120
124
|
const entries = input.search.getResults(node);
|
|
121
|
-
const highlights = [];
|
|
122
|
-
let selected = undefined;
|
|
123
125
|
for (const entry of entries ?? []) {
|
|
124
126
|
if (entry.isPostOrderMatch === closeTag) {
|
|
125
127
|
const range = new TextUtils.TextRange.SourceRange(entry.match.index, entry.match[0].length);
|
|
126
128
|
if (entry === input.jumpToNextSearchResult) {
|
|
127
|
-
selected = range
|
|
129
|
+
selected = `${range.offset},${range.length}`;
|
|
128
130
|
} else {
|
|
129
|
-
highlights.
|
|
131
|
+
highlights += `${range.offset},${range.length} `;
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
|
-
return
|
|
135
|
+
return {highlights, selected};
|
|
134
136
|
}
|
|
135
137
|
|
|
136
138
|
function layOutNode(node: XMLTreeViewNode, populateSubtrees = false): Lit.LitTemplate {
|
|
137
139
|
const onExpand = (event: UI.TreeOutline.TreeViewElement.ExpandEvent): void =>
|
|
138
140
|
input.onExpand(node, event.detail.expanded);
|
|
141
|
+
const {highlights, selected} = highlight(node, /* closeTag=*/ false);
|
|
139
142
|
|
|
140
143
|
// clang-format off
|
|
141
144
|
return html`
|
|
142
|
-
<li
|
|
145
|
+
<li role="treeitem"
|
|
143
146
|
?selected=${input.jumpToNextSearchResult?.node === node}
|
|
144
147
|
@expand=${onExpand}>
|
|
145
|
-
|
|
148
|
+
<devtools-highlight ranges=${highlights} current-range=${selected}>
|
|
149
|
+
${htmlView(node)}
|
|
150
|
+
</devtools-highlight>
|
|
146
151
|
${node.children().length ? html`
|
|
147
|
-
<ul role="group" ?hidden=${!node.expanded}>
|
|
152
|
+
<ul role="group" ?hidden=${!node.expanded && input.jumpToNextSearchResult?.node !== node}>
|
|
148
153
|
${populateSubtrees || input.search ? subtree(node) : Lit.nothing}
|
|
149
154
|
</ul>` : Lit.nothing}
|
|
150
155
|
</li>`;
|
|
@@ -156,15 +161,16 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
156
161
|
if (children.length === 0) {
|
|
157
162
|
return Lit.nothing;
|
|
158
163
|
}
|
|
164
|
+
const {highlights, selected} = highlight(treeNode, /* closeTag=*/ true);
|
|
159
165
|
// clang-format off
|
|
160
166
|
return html`
|
|
161
167
|
${children.map(child => layOutNode(child, treeNode.expanded))}
|
|
162
|
-
${treeNode.node instanceof Element
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
+
${treeNode.node instanceof Element ? html`
|
|
169
|
+
<li role="treeitem">
|
|
170
|
+
<devtools-highlight ranges=${highlights} current-range=${selected}>
|
|
171
|
+
<span part='shadow-xml-view-close-tag'>${'</' + treeNode.node.tagName + '>'}</span>
|
|
172
|
+
</devtools-highlight>
|
|
173
|
+
</li>` : Lit.nothing}`;
|
|
168
174
|
// clang-format on
|
|
169
175
|
}
|
|
170
176
|
|
|
@@ -1107,10 +1107,12 @@ interface LinkDisplayOptions {
|
|
|
1107
1107
|
revealBreakpoint?: boolean;
|
|
1108
1108
|
}
|
|
1109
1109
|
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1110
|
+
/**
|
|
1111
|
+
* The filter function for the openResourceHandlers. Returns true if the `url`
|
|
1112
|
+
* should be considered for a particular handler. `specificSchemeHandlers`
|
|
1113
|
+
* is the set of all schemes handled by all registered DevTools extensions
|
|
1114
|
+
* (that specify a particular scheme).
|
|
1115
|
+
**/
|
|
1114
1116
|
export type LinkHandlerPredicate = (url: Platform.DevToolsPath.UrlString, specificSchemeHandlers: Set<string>) =>
|
|
1115
1117
|
boolean;
|
|
1116
1118
|
|