chrome-devtools-frontend 1.0.1506453 → 1.0.1510180
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/config/owner/COMMON_OWNERS +1 -0
- package/eslint.config.mjs +39 -5
- package/front_end/Images/src/gdp-logo-standalone.svg +9 -0
- package/front_end/core/host/AidaClient.ts +26 -0
- package/front_end/core/host/GdpClient.ts +151 -0
- package/front_end/core/host/InspectorFrontendHost.ts +7 -0
- package/front_end/core/host/InspectorFrontendHostAPI.ts +29 -1
- package/front_end/core/host/UserMetrics.ts +0 -25
- package/front_end/core/host/host.ts +2 -0
- package/front_end/core/root/Runtime.ts +15 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +183 -48
- package/front_end/core/sdk/CSSPropertyParser.ts +7 -7
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +175 -37
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +5 -0
- package/front_end/core/sdk/DOMModel.ts +58 -0
- package/front_end/core/sdk/FrameAssociated.ts +4 -1
- package/front_end/core/sdk/Script.ts +5 -1
- package/front_end/core/sdk/SourceMap.ts +10 -2
- package/front_end/core/sdk/SourceMapCache.ts +54 -0
- package/front_end/core/sdk/SourceMapManager.ts +20 -7
- package/front_end/core/sdk/sdk.ts +2 -0
- package/front_end/devtools_compatibility.js +0 -1
- package/front_end/entrypoints/main/GlobalAiButton.ts +71 -1
- package/front_end/entrypoints/main/MainImpl.ts +6 -27
- package/front_end/entrypoints/main/globalAiButton.css +1 -1
- package/front_end/entrypoints/main/main-meta.ts +15 -0
- package/front_end/generated/InspectorBackendCommands.js +3 -2
- package/front_end/generated/SupportedCSSProperties.js +23 -7
- package/front_end/generated/protocol-mapping.d.ts +8 -1
- package/front_end/generated/protocol-proxy-api.d.ts +6 -1
- package/front_end/generated/protocol.ts +17 -4
- package/front_end/models/ai_assistance/ConversationHandler.ts +34 -54
- package/front_end/models/ai_assistance/ExtensionScope.ts +3 -12
- package/front_end/models/ai_assistance/README.md +1 -1
- package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -3
- package/front_end/models/ai_assistance/agents/FileAgent.ts +0 -6
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +16 -15
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +32 -16
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +199 -23
- package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +4 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +8 -5
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +248 -83
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +303 -94
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +442 -93
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +35 -17
- package/front_end/models/ai_assistance/data_formatters/Types.ts +9 -0
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +114 -2
- package/front_end/models/autofill_manager/AutofillManager.ts +0 -11
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +64 -6
- package/front_end/models/bindings/ResourceScriptMapping.ts +6 -0
- package/front_end/models/emulation/DeviceModeModel.ts +13 -14
- package/front_end/models/extensions/ExtensionPanel.ts +6 -6
- package/front_end/models/extensions/ExtensionServer.ts +2 -0
- package/front_end/models/extensions/ExtensionView.ts +4 -0
- package/front_end/{ui/legacy/Geometry.ts → models/geometry/GeometryImpl.ts} +4 -4
- package/front_end/models/geometry/geometry.ts +5 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +4 -4
- package/front_end/models/network_time_calculator/Calculator.ts +14 -0
- package/front_end/{panels/network → models/network_time_calculator}/NetworkTimeCalculator.ts +4 -4
- package/front_end/models/network_time_calculator/network_time_calculator.ts +6 -0
- package/front_end/models/persistence/EditFileSystemView.ts +4 -0
- package/front_end/models/persistence/NetworkPersistenceManager.ts +2 -0
- package/front_end/models/persistence/PersistenceActions.ts +2 -0
- package/front_end/models/persistence/PersistenceUtils.ts +2 -0
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +6 -0
- package/front_end/models/persistence/persistence-meta.ts +2 -0
- package/front_end/models/stack_trace/StackTrace.ts +18 -0
- package/front_end/models/stack_trace/StackTraceImpl.ts +4 -1
- package/front_end/models/stack_trace/StackTraceModel.ts +4 -3
- package/front_end/models/trace/ModelImpl.ts +2 -1
- package/front_end/models/trace/Processor.ts +3 -30
- package/front_end/models/trace/handlers/AnimationFramesHandler.ts +10 -11
- package/front_end/models/trace/handlers/AnimationHandler.ts +4 -4
- package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +8 -9
- package/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +10 -10
- package/front_end/models/trace/handlers/DOMStatsHandler.ts +2 -2
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +59 -51
- package/front_end/models/trace/handlers/FlowsHandler.ts +10 -10
- package/front_end/models/trace/handlers/FramesHandler.ts +2 -2
- package/front_end/models/trace/handlers/GPUHandler.ts +2 -2
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +12 -12
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +18 -20
- package/front_end/models/trace/handlers/InvalidationsHandler.ts +6 -6
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +4 -3
- package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +2 -2
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +10 -10
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +28 -28
- package/front_end/models/trace/handlers/MemoryHandler.ts +2 -2
- package/front_end/models/trace/handlers/MetaHandler.ts +18 -18
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +25 -23
- package/front_end/models/trace/handlers/PageFramesHandler.ts +2 -2
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +5 -5
- package/front_end/models/trace/handlers/RendererHandler.ts +18 -18
- package/front_end/models/trace/handlers/SamplesHandler.ts +6 -9
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +8 -8
- package/front_end/models/trace/handlers/ScriptsHandler.ts +2 -2
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +4 -4
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +14 -14
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +10 -10
- package/front_end/models/trace/handlers/WarningsHandler.ts +12 -12
- package/front_end/models/trace/handlers/WorkersHandler.ts +6 -6
- package/front_end/models/trace/helpers/Extensions.ts +10 -10
- package/front_end/models/trace/helpers/Trace.ts +3 -3
- package/front_end/models/trace/insights/ForcedReflow.ts +4 -0
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +4 -0
- package/front_end/models/trace/insights/ThirdParties.ts +4 -0
- package/front_end/models/trace/types/Extensions.ts +27 -17
- package/front_end/models/trace/types/Overlays.ts +1 -3
- package/front_end/models/trace/types/TraceEvents.ts +2 -5
- package/front_end/models/workspace/FileManager.ts +1 -0
- package/front_end/panels/accessibility/ARIAAttributesView.ts +2 -60
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +22 -4
- package/front_end/panels/ai_assistance/PatchWidget.ts +1 -1
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +2 -1
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -9
- package/front_end/panels/ai_assistance/components/ChatView.ts +44 -2
- package/front_end/panels/animation/AnimationUI.ts +2 -1
- package/front_end/panels/application/KeyValueStorageItemsView.ts +2 -1
- package/front_end/panels/application/components/BackForwardCacheStrings.ts +9 -9
- package/front_end/panels/autofill/AutofillView.ts +15 -10
- package/front_end/panels/browser_debugger/CSPViolationBreakpointsSidebarPane.ts +5 -6
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +174 -272
- package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +9 -6
- package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/common/BadgeNotification.ts +121 -0
- package/front_end/panels/common/FreDialog.ts +4 -3
- package/front_end/panels/common/badgeNotification.css +74 -0
- package/front_end/panels/common/common.ts +3 -1
- package/front_end/panels/console/ConsolePrompt.ts +2 -3
- package/front_end/panels/console/ConsoleView.ts +8 -8
- package/front_end/panels/console/ConsoleViewMessage.ts +14 -13
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
- package/front_end/panels/elements/CSSRuleValidator.ts +0 -57
- package/front_end/panels/elements/ElementsTreeElement.ts +12 -4
- package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +8 -5
- package/front_end/panels/elements/PropertyRenderer.ts +1 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +110 -9
- package/front_end/panels/emulation/DeviceModeView.ts +6 -5
- package/front_end/panels/layer_viewer/Layers3DView.ts +9 -9
- package/front_end/panels/layers/LayerTreeModel.ts +5 -5
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +2 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +2 -1
- package/front_end/panels/media/MainView.ts +48 -18
- package/front_end/panels/media/MediaModel.ts +4 -4
- package/front_end/panels/media/PlayerListView.ts +7 -0
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
- package/front_end/panels/network/NetworkDataGridNode.ts +4 -5
- package/front_end/panels/network/NetworkItemView.ts +2 -2
- package/front_end/panels/network/NetworkLogView.ts +10 -15
- package/front_end/panels/network/NetworkLogViewColumns.ts +6 -8
- package/front_end/panels/network/NetworkOverview.ts +6 -4
- package/front_end/panels/network/NetworkPanel.ts +5 -5
- package/front_end/panels/network/NetworkWaterfallColumn.ts +5 -5
- package/front_end/panels/network/RequestTimingView.ts +7 -6
- package/front_end/panels/network/network.ts +1 -3
- package/front_end/panels/profiler/HeapTimelineOverview.ts +2 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +2 -1
- package/front_end/panels/sensors/SensorsView.ts +10 -9
- package/front_end/panels/settings/AISettingsTab.ts +2 -2
- package/front_end/panels/settings/SettingsScreen.ts +19 -9
- package/front_end/panels/settings/components/SyncSection.ts +136 -3
- package/front_end/panels/settings/components/syncSection.css +54 -0
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +26 -9
- package/front_end/panels/sources/CSSPlugin.ts +5 -4
- package/front_end/panels/timeline/CountersGraph.ts +1 -1
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +2 -2
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +3 -3
- package/front_end/panels/timeline/TimelineDetailsView.ts +41 -26
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +2 -1
- package/front_end/panels/timeline/TimelinePanel.ts +58 -59
- package/front_end/panels/timeline/TimelineUIUtils.ts +89 -20
- package/front_end/panels/timeline/TimingsTrackAppender.ts +10 -7
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +1 -11
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +4 -0
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -3
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +4 -0
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +4 -0
- package/front_end/panels/timeline/extensions/ExtensionUI.ts +1 -1
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +3 -12
- package/front_end/panels/timeline/utils/AIContext.ts +14 -1
- package/front_end/panels/whats_new/ReleaseNoteText.ts +11 -11
- package/front_end/panels/whats_new/resources/WNDT.md +6 -6
- package/front_end/services/tracing/tracing.ts +0 -2
- package/front_end/tsconfig.json +1 -0
- package/front_end/ui/components/buttons/button.css +4 -0
- package/front_end/ui/components/highlighting/HighlightManager.ts +19 -9
- package/front_end/ui/legacy/ARIAUtils.ts +1 -1
- package/front_end/ui/legacy/DockController.ts +1 -1
- package/front_end/ui/legacy/GlassPane.ts +2 -1
- package/front_end/ui/legacy/InspectorView.ts +41 -14
- package/front_end/ui/legacy/ResizerWidget.ts +45 -50
- package/front_end/ui/legacy/SoftDropDown.ts +2 -2
- package/front_end/ui/legacy/SplitWidget.ts +341 -357
- package/front_end/ui/legacy/SuggestBox.ts +2 -2
- package/front_end/ui/legacy/TabbedPane.ts +5 -5
- package/front_end/ui/legacy/Treeoutline.ts +227 -32
- package/front_end/ui/legacy/UIUtils.ts +72 -17
- package/front_end/ui/legacy/Widget.ts +15 -14
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +6 -14
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +3 -3
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +15 -14
- package/front_end/ui/legacy/components/inline_editor/BezierUI.ts +6 -5
- package/front_end/ui/legacy/components/inline_editor/CSSAngleUtils.ts +7 -6
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +13 -12
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +2 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -2
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +7 -5
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +3 -13
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +2 -3
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +2 -1
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +268 -295
- package/front_end/ui/legacy/components/source_frame/xmlTree.css +10 -8
- package/front_end/ui/legacy/components/source_frame/xmlView.css +3 -1
- package/front_end/ui/legacy/inspectorCommon.css +3 -2
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +8 -4
- package/package.json +2 -2
- package/.gemini/commands/migrate-e2e-non-hosted.toml +0 -43
- package/.gemini/commands/review.toml +0 -85
- package/.github/workflows/auto-close-prs.yml +0 -30
- package/.vscode/devtools-workspace-launch.json +0 -43
- package/.vscode/devtools-workspace-settings.json +0 -12
- package/.vscode/devtools-workspace-tasks.json +0 -66
- package/.vscode/extensions.json +0 -3
- package/codereview.settings +0 -4
- package/config/gni/devtools_grd_files.gni +0 -2646
- package/config/gni/devtools_image_files.gni +0 -309
- package/config/gni/i18n.gni +0 -115
- package/extensions/cxx_debugging/CMakeLists.txt +0 -162
- package/extensions/cxx_debugging/README.md +0 -81
- package/extensions/cxx_debugging/e2e/MochaRootHooks.ts +0 -110
- package/extensions/cxx_debugging/e2e/OptionsPageTests.ts +0 -36
- package/extensions/cxx_debugging/e2e/StandaloneTestDriver.ts +0 -20
- package/extensions/cxx_debugging/e2e/TestDriver.ts +0 -311
- package/extensions/cxx_debugging/e2e/cxx-debugging-extension-helpers.ts +0 -62
- package/extensions/cxx_debugging/e2e/resources/huge-source-file.cc +0 -29
- package/extensions/cxx_debugging/e2e/resources/pointers.cc +0 -40
- package/extensions/cxx_debugging/e2e/resources/scope-view-non-primitives.c +0 -30
- package/extensions/cxx_debugging/e2e/resources/scope-view-non-primitives.cpp +0 -49
- package/extensions/cxx_debugging/e2e/resources/scope-view-primitives.c +0 -19
- package/extensions/cxx_debugging/e2e/resources/stepping-with-state.c +0 -31
- package/extensions/cxx_debugging/e2e/resources/test_wasm_simd.c +0 -13
- package/extensions/cxx_debugging/e2e/resources/vector.cc +0 -14
- package/extensions/cxx_debugging/e2e/resources/wchar.cc +0 -22
- package/extensions/cxx_debugging/e2e/runner.py +0 -542
- package/extensions/cxx_debugging/e2e/runner.py.vpython +0 -5
- package/extensions/cxx_debugging/e2e/runner.py.vpython3 +0 -5
- package/extensions/cxx_debugging/e2e/standalone/MemoryInspector_test.ts +0 -59
- package/extensions/cxx_debugging/e2e/tests/cpp_eval.yaml +0 -37
- package/extensions/cxx_debugging/e2e/tests/pointer.yaml +0 -42
- package/extensions/cxx_debugging/e2e/tests/scope_view_non_primitives.yaml +0 -35
- package/extensions/cxx_debugging/e2e/tests/scope_view_non_primitives_cpp.yaml +0 -44
- package/extensions/cxx_debugging/e2e/tests/scope_view_primitives.yaml +0 -31
- package/extensions/cxx_debugging/e2e/tests/stepping_with_state.yaml +0 -64
- package/extensions/cxx_debugging/e2e/tests/string_view.yaml +0 -32
- package/extensions/cxx_debugging/e2e/tests/test_big_dwo.yaml +0 -21
- package/extensions/cxx_debugging/e2e/tests/test_linear_memory_inspector.yaml +0 -11
- package/extensions/cxx_debugging/e2e/tests/test_loop.yaml +0 -34
- package/extensions/cxx_debugging/e2e/tests/test_wasm_simd.yaml +0 -42
- package/extensions/cxx_debugging/e2e/tests/vector.yaml +0 -26
- package/extensions/cxx_debugging/e2e/tests/wchar.yaml +0 -52
- package/extensions/cxx_debugging/e2e/tsconfig.json +0 -24
- package/extensions/cxx_debugging/lib/ApiContext.cc +0 -627
- package/extensions/cxx_debugging/lib/ApiContext.h +0 -119
- package/extensions/cxx_debugging/lib/CMakeLists.txt +0 -53
- package/extensions/cxx_debugging/lib/Expressions.cc +0 -303
- package/extensions/cxx_debugging/lib/Expressions.h +0 -53
- package/extensions/cxx_debugging/lib/Variables.cc +0 -101
- package/extensions/cxx_debugging/lib/Variables.h +0 -65
- package/extensions/cxx_debugging/lib/WasmModule.cc +0 -573
- package/extensions/cxx_debugging/lib/WasmModule.h +0 -126
- package/extensions/cxx_debugging/lib/WasmVendorPlugins.cc +0 -172
- package/extensions/cxx_debugging/lib/WasmVendorPlugins.h +0 -329
- package/extensions/cxx_debugging/lib/api.h +0 -593
- package/extensions/cxx_debugging/lib/api.h.in +0 -86
- package/extensions/cxx_debugging/src/CMakeLists.txt +0 -158
- package/extensions/cxx_debugging/src/CreditsItem.ts +0 -126
- package/extensions/cxx_debugging/src/CustomFormatters.ts +0 -689
- package/extensions/cxx_debugging/src/DWARFSymbols.ts +0 -613
- package/extensions/cxx_debugging/src/DevToolsPlugin.html +0 -7
- package/extensions/cxx_debugging/src/DevToolsPluginForTests.html +0 -6
- package/extensions/cxx_debugging/src/DevToolsPluginHost.ts +0 -145
- package/extensions/cxx_debugging/src/DevToolsPluginWorker.ts +0 -120
- package/extensions/cxx_debugging/src/DevToolsPluginWorkerMain.ts +0 -9
- package/extensions/cxx_debugging/src/ExtensionOptions.html +0 -24
- package/extensions/cxx_debugging/src/ExtensionOptions.ts +0 -705
- package/extensions/cxx_debugging/src/Formatters.ts +0 -282
- package/extensions/cxx_debugging/src/GlobMatch.ts +0 -51
- package/extensions/cxx_debugging/src/MEMFSResourceLoader.ts +0 -102
- package/extensions/cxx_debugging/src/ModuleConfiguration.ts +0 -117
- package/extensions/cxx_debugging/src/ModuleConfigurationList.ts +0 -239
- package/extensions/cxx_debugging/src/SymbolsBackend.cc +0 -262
- package/extensions/cxx_debugging/src/SymbolsBackend.cc.in +0 -139
- package/extensions/cxx_debugging/src/SymbolsBackend.d.ts +0 -179
- package/extensions/cxx_debugging/src/SymbolsBackend.d.ts.in +0 -108
- package/extensions/cxx_debugging/src/TestDriver.js +0 -21
- package/extensions/cxx_debugging/src/WasmTypes.ts +0 -119
- package/extensions/cxx_debugging/src/WorkerRPC.ts +0 -158
- package/extensions/cxx_debugging/src/index.html +0 -69
- package/extensions/cxx_debugging/src/manifest.json.in +0 -22
- package/extensions/cxx_debugging/src/rollup.config.in.js +0 -33
- package/extensions/cxx_debugging/tests/CMakeLists.txt +0 -146
- package/extensions/cxx_debugging/tests/CreditsItem_test.ts +0 -50
- package/extensions/cxx_debugging/tests/CustomFormatters_test.ts +0 -307
- package/extensions/cxx_debugging/tests/DevToolsPluginTestWorker.ts +0 -43
- package/extensions/cxx_debugging/tests/DevToolsPlugin_test.ts +0 -345
- package/extensions/cxx_debugging/tests/Externref_test.ts +0 -63
- package/extensions/cxx_debugging/tests/Formatters_test.ts +0 -284
- package/extensions/cxx_debugging/tests/GlobMatch_test.ts +0 -58
- package/extensions/cxx_debugging/tests/Interpreter_test.ts +0 -219
- package/extensions/cxx_debugging/tests/LLDBEvalExtensions.h +0 -154
- package/extensions/cxx_debugging/tests/LLDBEvalTests.d.ts +0 -24
- package/extensions/cxx_debugging/tests/ModuleConfiguration_test.ts +0 -136
- package/extensions/cxx_debugging/tests/RealBackend.ts +0 -482
- package/extensions/cxx_debugging/tests/SymbolsBackendTests.d.ts +0 -12
- package/extensions/cxx_debugging/tests/SymbolsBackend_test.ts +0 -39
- package/extensions/cxx_debugging/tests/TestUtils.ts +0 -250
- package/extensions/cxx_debugging/tests/WasmModule_test.cc +0 -332
- package/extensions/cxx_debugging/tests/build-artifacts.js.in +0 -10
- package/extensions/cxx_debugging/tests/inputs/CMakeLists.txt +0 -141
- package/extensions/cxx_debugging/tests/inputs/addr_index.s +0 -97
- package/extensions/cxx_debugging/tests/inputs/addresses.cc +0 -25
- package/extensions/cxx_debugging/tests/inputs/classstatic.s +0 -119
- package/extensions/cxx_debugging/tests/inputs/dw_opcodes.def +0 -66
- package/extensions/cxx_debugging/tests/inputs/embedded.s +0 -124
- package/extensions/cxx_debugging/tests/inputs/enums.s +0 -376
- package/extensions/cxx_debugging/tests/inputs/externref.js +0 -22
- package/extensions/cxx_debugging/tests/inputs/externref.s +0 -207
- package/extensions/cxx_debugging/tests/inputs/globals.s +0 -443
- package/extensions/cxx_debugging/tests/inputs/hello-split-missing-dwo.s +0 -92
- package/extensions/cxx_debugging/tests/inputs/hello-split.s +0 -134
- package/extensions/cxx_debugging/tests/inputs/hello.s +0 -70
- package/extensions/cxx_debugging/tests/inputs/helper.s +0 -130
- package/extensions/cxx_debugging/tests/inputs/inline.s +0 -196
- package/extensions/cxx_debugging/tests/inputs/namespaces.s +0 -207
- package/extensions/cxx_debugging/tests/inputs/page.html +0 -6
- package/extensions/cxx_debugging/tests/inputs/page.js +0 -35
- package/extensions/cxx_debugging/tests/inputs/shadowing.s +0 -121
- package/extensions/cxx_debugging/tests/inputs/split-dwarf.s +0 -126
- package/extensions/cxx_debugging/tests/inputs/string_view.cc +0 -40
- package/extensions/cxx_debugging/tests/inputs/windows_paths.s +0 -70
- package/extensions/cxx_debugging/tests/karma.conf.in.js +0 -133
- package/extensions/cxx_debugging/tests/karma_preload.html +0 -12
- package/extensions/cxx_debugging/third_party/.clang-format +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/CHANGELOG.md +0 -247
- package/extensions/cxx_debugging/third_party/lit-html/LICENSE +0 -28
- package/extensions/cxx_debugging/third_party/lit-html/README.chromium +0 -13
- package/extensions/cxx_debugging/third_party/lit-html/README.md +0 -47
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.d.ts +0 -33
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.js +0 -108
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.d.ts +0 -34
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.js +0 -91
- package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/cache.d.ts +0 -30
- package/extensions/cxx_debugging/third_party/lit-html/directives/cache.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/cache.js +0 -77
- package/extensions/cxx_debugging/third_party/lit-html/directives/cache.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.d.ts +0 -28
- package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.js +0 -101
- package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/guard.d.ts +0 -49
- package/extensions/cxx_debugging/third_party/lit-html/directives/guard.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/guard.js +0 -69
- package/extensions/cxx_debugging/third_party/lit-html/directives/guard.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.d.ts +0 -22
- package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.js +0 -37
- package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/live.d.ts +0 -38
- package/extensions/cxx_debugging/third_party/lit-html/directives/live.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/live.js +0 -73
- package/extensions/cxx_debugging/third_party/lit-html/directives/live.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.d.ts +0 -37
- package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.js +0 -415
- package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.d.ts +0 -36
- package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.js +0 -78
- package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.js +0 -41
- package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.js +0 -44
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.js +0 -61
- package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/until.d.ts +0 -35
- package/extensions/cxx_debugging/third_party/lit-html/directives/until.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/directives/until.js +0 -86
- package/extensions/cxx_debugging/third_party/lit-html/directives/until.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.d.ts +0 -39
- package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.js +0 -52
- package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/directive.d.ts +0 -59
- package/extensions/cxx_debugging/third_party/lit-html/lib/directive.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/directive.js +0 -63
- package/extensions/cxx_debugging/third_party/lit-html/lib/directive.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/dom.d.ts +0 -29
- package/extensions/cxx_debugging/third_party/lit-html/lib/dom.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/dom.js +0 -44
- package/extensions/cxx_debugging/third_party/lit-html/lib/dom.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.d.ts +0 -38
- package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.js +0 -125
- package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/part.d.ts +0 -46
- package/extensions/cxx_debugging/third_party/lit-html/lib/part.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/part.js +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/lib/part.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/parts.d.ts +0 -148
- package/extensions/cxx_debugging/third_party/lit-html/lib/parts.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/parts.js +0 -476
- package/extensions/cxx_debugging/third_party/lit-html/lib/parts.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.d.ts +0 -19
- package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.js +0 -14
- package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/render.d.ts +0 -33
- package/extensions/cxx_debugging/third_party/lit-html/lib/render.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/render.js +0 -43
- package/extensions/cxx_debugging/third_party/lit-html/lib/render.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.d.ts +0 -83
- package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.js +0 -286
- package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.d.ts +0 -57
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.js +0 -48
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.d.ts +0 -30
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.js +0 -134
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.d.ts +0 -46
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.js +0 -14
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.d.ts +0 -42
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.js +0 -131
- package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template.d.ts +0 -92
- package/extensions/cxx_debugging/third_party/lit-html/lib/template.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lib/template.js +0 -215
- package/extensions/cxx_debugging/third_party/lit-html/lib/template.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lit-html.d.ts +0 -42
- package/extensions/cxx_debugging/third_party/lit-html/lit-html.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/lit-html.js +0 -59
- package/extensions/cxx_debugging/third_party/lit-html/lit-html.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/package.json +0 -84
- package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.d.ts +0 -24
- package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.d.ts.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.js +0 -60
- package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.js.map +0 -1
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/async-append.ts +0 -100
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/async-replace.ts +0 -82
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/cache.ts +0 -90
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/class-map.ts +0 -118
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/guard.ts +0 -74
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/if-defined.ts +0 -40
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/live.ts +0 -76
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/repeat.ts +0 -442
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/style-map.ts +0 -88
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/template-content.ts +0 -52
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/unsafe-html.ts +0 -54
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/unsafe-svg.ts +0 -71
- package/extensions/cxx_debugging/third_party/lit-html/src/directives/until.ts +0 -104
- package/extensions/cxx_debugging/third_party/lit-html/src/env.d.ts +0 -20
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/default-template-processor.ts +0 -59
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/directive.ts +0 -73
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/dom.ts +0 -55
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/modify-template.ts +0 -135
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/part.ts +0 -50
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/parts.ts +0 -545
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/render-options.ts +0 -20
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/render.ts +0 -52
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/shady-render.ts +0 -316
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-factory.ts +0 -92
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-instance.ts +0 -155
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-processor.ts +0 -51
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-result.ts +0 -148
- package/extensions/cxx_debugging/third_party/lit-html/src/lib/template.ts +0 -255
- package/extensions/cxx_debugging/third_party/lit-html/src/lit-html.ts +0 -74
- package/extensions/cxx_debugging/third_party/lit-html/src/polyfills/template_polyfill.ts +0 -70
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/async-append.d.ts +0 -33
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/async-replace.d.ts +0 -34
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/cache.d.ts +0 -30
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/class-map.d.ts +0 -28
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/guard.d.ts +0 -49
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/if-defined.d.ts +0 -22
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/live.d.ts +0 -38
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/repeat.d.ts +0 -37
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/style-map.d.ts +0 -36
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/template-content.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/unsafe-html.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/unsafe-svg.d.ts +0 -23
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/until.d.ts +0 -35
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/default-template-processor.d.ts +0 -39
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/directive.d.ts +0 -59
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/dom.d.ts +0 -29
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/modify-template.d.ts +0 -38
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/part.d.ts +0 -46
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/parts.d.ts +0 -148
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/render-options.d.ts +0 -19
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/render.d.ts +0 -33
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/shady-render.d.ts +0 -83
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-factory.d.ts +0 -57
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-instance.d.ts +0 -30
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-processor.d.ts +0 -46
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-result.d.ts +0 -42
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template.d.ts +0 -92
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lit-html.d.ts +0 -42
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/polyfills/template_polyfill.d.ts +0 -24
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/src/env.d.ts +0 -19
- package/extensions/cxx_debugging/third_party/lit-html/ts3.4/tsconfig.json +0 -24
- package/extensions/cxx_debugging/third_party/lldb-eval/README.chromium +0 -15
- package/extensions/cxx_debugging/third_party/llvm/README.chromium +0 -17
- package/extensions/cxx_debugging/tools/api.pdl +0 -224
- package/extensions/cxx_debugging/tools/bootstrap.py +0 -352
- package/extensions/cxx_debugging/tools/generate-api.py +0 -74
- package/extensions/cxx_debugging/tools/pdl_cxx.py +0 -171
- package/extensions/cxx_debugging/tools/whitespaces.txt +0 -1
- package/extensions/cxx_debugging/tsconfig.json +0 -16
- package/front_end/core/common/Base64.test.ts +0 -41
- package/front_end/core/common/CharacterIdMap.test.ts +0 -46
- package/front_end/core/common/Color.test.ts +0 -904
- package/front_end/core/common/ColorConverter.test.ts +0 -525
- package/front_end/core/common/ColorUtils.test.ts +0 -112
- package/front_end/core/common/Console.test.ts +0 -86
- package/front_end/core/common/Debouncer.test.ts +0 -26
- package/front_end/core/common/EventTarget.test.ts +0 -166
- package/front_end/core/common/Gzip.test.ts +0 -63
- package/front_end/core/common/Lazy.test.ts +0 -28
- package/front_end/core/common/MapWithDefault.test.ts +0 -61
- package/front_end/core/common/Mutex.test.ts +0 -98
- package/front_end/core/common/Object.test.ts +0 -87
- package/front_end/core/common/ParsedURL.test.ts +0 -751
- package/front_end/core/common/Progress.test.ts +0 -269
- package/front_end/core/common/ResolverBase.test.ts +0 -115
- package/front_end/core/common/ResourceType.test.ts +0 -557
- package/front_end/core/common/Revealer.test.ts +0 -122
- package/front_end/core/common/SegmentedRange.test.ts +0 -210
- package/front_end/core/common/SettingRegistration.test.ts +0 -138
- package/front_end/core/common/Settings.test.ts +0 -858
- package/front_end/core/common/SimpleHistoryManager.test.ts +0 -66
- package/front_end/core/common/StringOutputStream.test.ts +0 -29
- package/front_end/core/common/TextDictionary.test.ts +0 -85
- package/front_end/core/common/Throttler.test.ts +0 -227
- package/front_end/core/common/Trie.test.ts +0 -110
- package/front_end/core/dom_extension/DOMExtension.test.ts +0 -343
- package/front_end/core/host/AidaClient.test.ts +0 -731
- package/front_end/core/i18n/ByteUtilities.test.ts +0 -59
- package/front_end/core/i18n/DevToolsLocale.test.ts +0 -104
- package/front_end/core/i18n/NumberFormatter.test.ts +0 -92
- package/front_end/core/i18n/i18n.test.ts +0 -207
- package/front_end/core/i18n/time-utilities.test.ts +0 -164
- package/front_end/core/platform/ArrayUtilities.test.ts +0 -499
- package/front_end/core/platform/DOMUtilities.test.ts +0 -95
- package/front_end/core/platform/DateUtilities.test.ts +0 -31
- package/front_end/core/platform/DevToolsPath.test.ts +0 -84
- package/front_end/core/platform/KeyboardUtilities.test.ts +0 -57
- package/front_end/core/platform/MapUtilities.test.ts +0 -50
- package/front_end/core/platform/MimeType.test.ts +0 -192
- package/front_end/core/platform/NumberUtilities.test.ts +0 -127
- package/front_end/core/platform/StringUtilities.test.ts +0 -729
- package/front_end/core/platform/TypedArrayUtilities.test.ts +0 -61
- package/front_end/core/protocol_client/NodeURL.test.ts +0 -74
- package/front_end/core/root/Runtime.test.ts +0 -68
- package/front_end/core/sdk/AccessibilityModel.test.ts +0 -17
- package/front_end/core/sdk/AnimationModel.test.ts +0 -257
- package/front_end/core/sdk/AutofillModel.test.ts +0 -82
- package/front_end/core/sdk/CPUThrottlingManager.test.ts +0 -49
- package/front_end/core/sdk/CSSContainerQuery.test.ts +0 -67
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +0 -772
- package/front_end/core/sdk/CSSModel.test.ts +0 -120
- package/front_end/core/sdk/CSSProperty.test.ts +0 -130
- package/front_end/core/sdk/CSSPropertyParser.test.ts +0 -525
- package/front_end/core/sdk/CSSPropertyParserMatchers.test.ts +0 -766
- package/front_end/core/sdk/CSSStyleDeclaration.test.ts +0 -261
- package/front_end/core/sdk/CSSStyleSheetHeader.test.ts +0 -137
- package/front_end/core/sdk/ChildTargetManager.test.ts +0 -259
- package/front_end/core/sdk/ConsoleModel.test.ts +0 -202
- package/front_end/core/sdk/Cookie.test.ts +0 -294
- package/front_end/core/sdk/CookieModel.test.ts +0 -258
- package/front_end/core/sdk/CookieParser.test.ts +0 -211
- package/front_end/core/sdk/DOMModel.test.ts +0 -171
- package/front_end/core/sdk/DebuggerModel.test.ts +0 -461
- package/front_end/core/sdk/EmulationModel.test.ts +0 -45
- package/front_end/core/sdk/EnhancedTracesParser.test.ts +0 -318
- package/front_end/core/sdk/FrameManager.test.ts +0 -305
- package/front_end/core/sdk/NetworkManager.test.ts +0 -2196
- package/front_end/core/sdk/NetworkRequest.test.ts +0 -550
- package/front_end/core/sdk/OverlayColorGenerator.test.ts +0 -21
- package/front_end/core/sdk/OverlayModel.test.ts +0 -179
- package/front_end/core/sdk/OverlayPersistentHighlighter.test.ts +0 -232
- package/front_end/core/sdk/PageResourceLoader.test.ts +0 -369
- package/front_end/core/sdk/PreloadingModel.test.ts +0 -877
- package/front_end/core/sdk/RehydratingConnection.test.ts +0 -190
- package/front_end/core/sdk/RemoteObject.test.ts +0 -493
- package/front_end/core/sdk/ResourceTreeModel.test.ts +0 -222
- package/front_end/core/sdk/RuntimeModel.test.ts +0 -84
- package/front_end/core/sdk/ScreenCaptureModel.test.ts +0 -216
- package/front_end/core/sdk/Script.test.ts +0 -155
- package/front_end/core/sdk/ServerSentEventsProtocol.test.ts +0 -220
- package/front_end/core/sdk/ServerTiming.test.ts +0 -377
- package/front_end/core/sdk/ServiceWorkerCacheModel.test.ts +0 -200
- package/front_end/core/sdk/ServiceWorkerManager.test.ts +0 -287
- package/front_end/core/sdk/SourceMap.test.ts +0 -1350
- package/front_end/core/sdk/SourceMapFunctionRanges.test.ts +0 -171
- package/front_end/core/sdk/SourceMapManager.test.ts +0 -334
- package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +0 -129
- package/front_end/core/sdk/SourceMapScopesInfo.test.ts +0 -747
- package/front_end/core/sdk/StorageBucketsModel.test.ts +0 -383
- package/front_end/core/sdk/StorageKeyManager.test.ts +0 -95
- package/front_end/core/sdk/Target.test.ts +0 -97
- package/front_end/core/sdk/TargetManager.test.ts +0 -279
- package/front_end/core/sdk/TraceObject.test.ts +0 -30
- package/front_end/entrypoints/formatter_worker/CSSFormatter.test.ts +0 -216
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.test.ts +0 -177
- package/front_end/entrypoints/formatter_worker/FormatterWorker.test.ts +0 -19
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.test.ts +0 -344
- package/front_end/entrypoints/formatter_worker/JSONFormatter.test.ts +0 -147
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.test.ts +0 -789
- package/front_end/entrypoints/formatter_worker/ScopeParser.test.ts +0 -121
- package/front_end/entrypoints/formatter_worker/Substitute.test.ts +0 -179
- package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.test.ts +0 -11
- package/front_end/entrypoints/inspector_main/InspectorMain.test.ts +0 -344
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.test.ts +0 -80
- package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +0 -64
- package/front_end/entrypoints/main/GlobalAiButton.test.ts +0 -132
- package/front_end/entrypoints/main/MainImpl.test.ts +0 -87
- package/front_end/entrypoints/wasmparser_worker/wasmparser_worker.test.ts +0 -11
- package/front_end/integration_test_runner.html +0 -40
- package/front_end/legacy_test_runner/accessibility_test_runner/accessibility_test_runner.js +0 -83
- package/front_end/legacy_test_runner/application_test_runner/CacheStorageTestRunner.js +0 -297
- package/front_end/legacy_test_runner/application_test_runner/IndexedDBTestRunner.js +0 -478
- package/front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js +0 -106
- package/front_end/legacy_test_runner/application_test_runner/ResourcesTestRunner.js +0 -173
- package/front_end/legacy_test_runner/application_test_runner/ServiceWorkersTestRunner.js +0 -133
- package/front_end/legacy_test_runner/application_test_runner/StorageTestRunner.js +0 -13
- package/front_end/legacy_test_runner/application_test_runner/application_test_runner.js +0 -19
- package/front_end/legacy_test_runner/axe_core_test_runner/axe_core_test_runner.js +0 -176
- package/front_end/legacy_test_runner/bindings_test_runner/AutomappingTestRunner.js +0 -137
- package/front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js +0 -251
- package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +0 -289
- package/front_end/legacy_test_runner/bindings_test_runner/OverridesTestRunner.js +0 -30
- package/front_end/legacy_test_runner/bindings_test_runner/PersistenceTestRunner.js +0 -111
- package/front_end/legacy_test_runner/bindings_test_runner/bindings_test_runner.js +0 -17
- package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +0 -732
- package/front_end/legacy_test_runner/coverage_test_runner/coverage_test_runner.js +0 -156
- package/front_end/legacy_test_runner/data_grid_test_runner/data_grid_test_runner.js +0 -85
- package/front_end/legacy_test_runner/device_mode_test_runner/device_mode_test_runner.js +0 -47
- package/front_end/legacy_test_runner/elements_test_runner/EditDOMTestRunner.js +0 -79
- package/front_end/legacy_test_runner/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +0 -39
- package/front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js +0 -1256
- package/front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js +0 -116
- package/front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js +0 -136
- package/front_end/legacy_test_runner/elements_test_runner/elements_test_runner.js +0 -14
- package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js +0 -27
- package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js +0 -71
- package/front_end/legacy_test_runner/extensions_test_runner/extensions_test_runner.js +0 -11
- package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +0 -785
- package/front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js +0 -161
- package/front_end/legacy_test_runner/legacy_test_runner.ts +0 -14
- package/front_end/legacy_test_runner/network_test_runner/network_test_runner.js +0 -295
- package/front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js +0 -5263
- package/front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js +0 -357
- package/front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js +0 -11
- package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +0 -314
- package/front_end/legacy_test_runner/security_test_runner/security_test_runner.js +0 -36
- package/front_end/legacy_test_runner/sources_test_runner/AutocompleteTestRunner.js +0 -50
- package/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js +0 -655
- package/front_end/legacy_test_runner/sources_test_runner/EditorTestRunner.js +0 -240
- package/front_end/legacy_test_runner/sources_test_runner/LiveEditTestRunner.js +0 -34
- package/front_end/legacy_test_runner/sources_test_runner/SearchTestRunner.js +0 -161
- package/front_end/legacy_test_runner/sources_test_runner/SourcesTestRunner.js +0 -111
- package/front_end/legacy_test_runner/sources_test_runner/sources_test_runner.js +0 -19
- package/front_end/legacy_test_runner/test_runner/TestRunner.js +0 -1480
- package/front_end/legacy_test_runner/test_runner/test_runner.js +0 -115
- package/front_end/models/ai_assistance/AgentProject.test.ts +0 -370
- package/front_end/models/ai_assistance/AiHistoryStorage.test.ts +0 -619
- package/front_end/models/ai_assistance/ChangeManager.test.ts +0 -330
- package/front_end/models/ai_assistance/ConversationHandler.test.ts +0 -355
- package/front_end/models/ai_assistance/EvaluateAction.test.ts +0 -173
- package/front_end/models/ai_assistance/ExtensionScope.test.ts +0 -447
- package/front_end/models/ai_assistance/agents/AiAgent.test.ts +0 -491
- package/front_end/models/ai_assistance/agents/FileAgent.test.ts +0 -217
- package/front_end/models/ai_assistance/agents/NetworkAgent.test.ts +0 -237
- package/front_end/models/ai_assistance/agents/PatchAgent.test.ts +0 -130
- package/front_end/models/ai_assistance/agents/PerformanceAgent.test.ts +0 -759
- package/front_end/models/ai_assistance/agents/PerformanceAnnotationsAgent.test.ts +0 -32
- package/front_end/models/ai_assistance/agents/StylingAgent.test.ts +0 -1065
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.test.ts +0 -116
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.test.ts +0 -87
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.test.ts +0 -367
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.test.ts +0 -92
- package/front_end/models/ai_code_completion/AiCodeCompletion.test.ts +0 -328
- package/front_end/models/autofill_manager/AutofillManager.test.ts +0 -266
- package/front_end/models/bindings/CompilerScriptMapping.test.ts +0 -550
- package/front_end/models/bindings/ContentProviderBasedProject.test.ts +0 -118
- package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +0 -144
- package/front_end/models/bindings/DebuggerWorkspaceBinding.test.ts +0 -179
- package/front_end/models/bindings/DefaultScriptMapping.test.ts +0 -193
- package/front_end/models/bindings/FileUtils.test.ts +0 -69
- package/front_end/models/bindings/LiveLocation.test.ts +0 -47
- package/front_end/models/bindings/PresentationConsoleMessageHelper.test.ts +0 -276
- package/front_end/models/bindings/ResourceMapping.test.ts +0 -253
- package/front_end/models/bindings/ResourceScriptMapping.test.ts +0 -118
- package/front_end/models/bindings/ResourceUtils.test.ts +0 -105
- package/front_end/models/breakpoints/BreakpointManager.test.ts +0 -1919
- package/front_end/models/cpu_profile/CPUProfileDataModel.test.ts +0 -376
- package/front_end/models/crux-manager/CrUXManager.test.ts +0 -613
- package/front_end/models/emulation/DeviceModeModel.test.ts +0 -104
- package/front_end/models/emulation/EmulatedDevices.test.ts +0 -61
- package/front_end/models/extensions/ExtensionServer.test.ts +0 -1170
- package/front_end/models/extensions/HostUrlPattern.test.ts +0 -312
- package/front_end/models/extensions/LanguageExtensionEndpoint.test.ts +0 -65
- package/front_end/models/extensions/RecorderPluginManager.test.ts +0 -34
- package/front_end/models/formatter/ScriptFormatter.test.ts +0 -93
- package/front_end/models/har/Importer.test.ts +0 -353
- package/front_end/models/har/Log.test.ts +0 -208
- package/front_end/models/har/Writer.test.ts +0 -49
- package/front_end/models/heap_snapshot_model/heap_snapshot_model.test.ts +0 -11
- package/front_end/models/issues_manager/CheckFormsIssuesTrigger.test.ts +0 -22
- package/front_end/models/issues_manager/DeprecationIssue.test.ts +0 -81
- package/front_end/models/issues_manager/ElementAccessibilityIssue.test.ts +0 -87
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.test.ts +0 -52
- package/front_end/models/issues_manager/GenericIssue.test.ts +0 -82
- package/front_end/models/issues_manager/Issue.test.ts +0 -56
- package/front_end/models/issues_manager/IssueResolver.test.ts +0 -91
- package/front_end/models/issues_manager/IssuesManager.test.ts +0 -360
- package/front_end/models/issues_manager/LowTextContrastIssue.test.ts +0 -58
- package/front_end/models/issues_manager/MarkdownIssueDescription.test.ts +0 -92
- package/front_end/models/issues_manager/PropertyRuleIssue.test.ts +0 -109
- package/front_end/models/issues_manager/RelatedIssue.test.ts +0 -64
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.test.ts +0 -68
- package/front_end/models/issues_manager/SharedDictionaryIssue.test.ts +0 -68
- package/front_end/models/issues_manager/StylesheetLoadingIssue.test.ts +0 -138
- package/front_end/models/issues_manager/UnencodedDigestIssue.test.ts +0 -49
- package/front_end/models/javascript_metadata/JavaScriptMetadata.test.ts +0 -62
- package/front_end/models/logs/NetworkLog.test.ts +0 -376
- package/front_end/models/logs/RequestResolver.test.ts +0 -92
- package/front_end/models/persistence/AutomaticFileSystemManager.test.ts +0 -208
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.test.ts +0 -227
- package/front_end/models/persistence/EditFileSystemView.test.ts +0 -181
- package/front_end/models/persistence/NetworkPersistenceManager.test.ts +0 -989
- package/front_end/models/persistence/PersistenceAction.test.ts +0 -93
- package/front_end/models/persistence/PersistenceImpl.test.ts +0 -229
- package/front_end/models/persistence/PlatformFileSystem.test.ts +0 -19
- package/front_end/models/persistence/WorkspaceSettingsTab.test.ts +0 -146
- package/front_end/models/project_settings/ProjectSettingsModel.test.ts +0 -260
- package/front_end/models/source_map_scopes/NamesResolver.test.ts +0 -624
- package/front_end/models/source_map_scopes/ScopeChainModel.test.ts +0 -87
- package/front_end/models/source_map_scopes/ScopeTreeCache.test.ts +0 -63
- package/front_end/models/stack_trace/StackTraceImpl.test.ts +0 -74
- package/front_end/models/stack_trace/StackTraceModel.test.ts +0 -296
- package/front_end/models/stack_trace/Trie.test.ts +0 -129
- package/front_end/models/text_utils/ContentData.test.ts +0 -162
- package/front_end/models/text_utils/StaticContentProvider.test.ts +0 -34
- package/front_end/models/text_utils/StreamingContentData.test.ts +0 -81
- package/front_end/models/text_utils/Text.test.ts +0 -103
- package/front_end/models/text_utils/TextCursor.test.ts +0 -48
- package/front_end/models/text_utils/TextRange.test.ts +0 -461
- package/front_end/models/text_utils/TextUtils.test.ts +0 -730
- package/front_end/models/text_utils/WasmDisassembly.test.ts +0 -56
- package/front_end/models/trace/ModelImpl.test.ts +0 -161
- package/front_end/models/trace/Processor.test.ts +0 -429
- package/front_end/models/trace/extras/FilmStrip.test.ts +0 -90
- package/front_end/models/trace/extras/MainThreadActivity.test.ts +0 -82
- package/front_end/models/trace/extras/ScriptDuplication.test.ts +0 -407
- package/front_end/models/trace/extras/StackTraceForEvent.test.ts +0 -330
- package/front_end/models/trace/extras/ThirdParties.test.ts +0 -114
- package/front_end/models/trace/extras/TraceFilter.test.ts +0 -103
- package/front_end/models/trace/extras/TraceTree.test.ts +0 -489
- package/front_end/models/trace/handlers/AnimationFramesHandler.test.ts +0 -40
- package/front_end/models/trace/handlers/AnimationHandler.test.ts +0 -54
- package/front_end/models/trace/handlers/AsyncJSCallsHandler.test.ts +0 -300
- package/front_end/models/trace/handlers/AuctionWorkletsHandler.test.ts +0 -167
- package/front_end/models/trace/handlers/DOMStatsHandler.test.ts +0 -30
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.test.ts +0 -987
- package/front_end/models/trace/handlers/FlowsHandler.test.ts +0 -185
- package/front_end/models/trace/handlers/FramesHandler.test.ts +0 -243
- package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -26
- package/front_end/models/trace/handlers/ImagePaintingHandler.test.ts +0 -87
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -309
- package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -185
- package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +0 -62
- package/front_end/models/trace/handlers/LargestTextPaintHandler.test.ts +0 -27
- package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -46
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -252
- package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -29
- package/front_end/models/trace/handlers/MetaHandler.test.ts +0 -650
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -514
- package/front_end/models/trace/handlers/PageFramesHandler.test.ts +0 -40
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.test.ts +0 -274
- package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -1007
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -355
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -114
- package/front_end/models/trace/handlers/ScriptsHandler.test.ts +0 -103
- package/front_end/models/trace/handlers/SelectorStatsHandler.test.ts +0 -39
- package/front_end/models/trace/handlers/Threads.test.ts +0 -59
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +0 -439
- package/front_end/models/trace/handlers/UserTimingsHandler.test.ts +0 -525
- package/front_end/models/trace/handlers/WarningsHandler.test.ts +0 -86
- package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -80
- package/front_end/models/trace/handlers/helpers.test.ts +0 -102
- package/front_end/models/trace/helpers/SamplesIntegrator.test.ts +0 -372
- package/front_end/models/trace/helpers/SyntheticEvents.test.ts +0 -62
- package/front_end/models/trace/helpers/Timing.test.ts +0 -371
- package/front_end/models/trace/helpers/Trace.test.ts +0 -760
- package/front_end/models/trace/helpers/TreeHelpers.test.ts +0 -449
- package/front_end/models/trace/insights/CLSCulprits.test.ts +0 -254
- package/front_end/models/trace/insights/Cache.test.ts +0 -221
- package/front_end/models/trace/insights/Common.test.ts +0 -125
- package/front_end/models/trace/insights/DOMSize.test.ts +0 -66
- package/front_end/models/trace/insights/DocumentLatency.test.ts +0 -110
- package/front_end/models/trace/insights/DuplicatedJavaScript.test.ts +0 -128
- package/front_end/models/trace/insights/FontDisplay.test.ts +0 -64
- package/front_end/models/trace/insights/ForcedReflow.test.ts +0 -34
- package/front_end/models/trace/insights/INPBreakdown.test.ts +0 -32
- package/front_end/models/trace/insights/ImageDelivery.test.ts +0 -128
- package/front_end/models/trace/insights/LCPBreakdown.test.ts +0 -100
- package/front_end/models/trace/insights/LCPDiscovery.test.ts +0 -67
- package/front_end/models/trace/insights/LegacyJavaScript.test.ts +0 -81
- package/front_end/models/trace/insights/ModernHTTP.test.ts +0 -348
- package/front_end/models/trace/insights/NetworkDependencyTree.test.ts +0 -563
- package/front_end/models/trace/insights/RenderBlocking.test.ts +0 -133
- package/front_end/models/trace/insights/SlowCSSSelector.test.ts +0 -48
- package/front_end/models/trace/insights/Statistics.test.ts +0 -145
- package/front_end/models/trace/insights/ThirdParties.test.ts +0 -56
- package/front_end/models/trace/insights/Viewport.test.ts +0 -52
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.test.ts +0 -530
- package/front_end/models/trace/lantern/graph/BaseNode.test.ts +0 -391
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.test.ts +0 -670
- package/front_end/models/trace/lantern/metrics/FirstContentfulPaint.test.ts +0 -65
- package/front_end/models/trace/lantern/metrics/Interactive.test.ts +0 -70
- package/front_end/models/trace/lantern/metrics/LargestContentfulPaint.test.ts +0 -42
- package/front_end/models/trace/lantern/metrics/SpeedIndex.test.ts +0 -87
- package/front_end/models/trace/lantern/metrics/TBTUtils.test.ts +0 -138
- package/front_end/models/trace/lantern/simulation/ConnectionPool.test.ts +0 -199
- package/front_end/models/trace/lantern/simulation/DNSCache.test.ts +0 -76
- package/front_end/models/trace/lantern/simulation/Simulator.test.ts +0 -454
- package/front_end/models/trace/lantern/simulation/TCPConnection.test.ts +0 -368
- package/front_end/models/trace/types/File.test.ts +0 -42
- package/front_end/models/trace/types/TraceEvents.test.ts +0 -92
- package/front_end/models/workspace/IgnoreListManager.test.ts +0 -616
- package/front_end/models/workspace/SearchConfig.test.ts +0 -114
- package/front_end/models/workspace/UISourceCode.test.ts +0 -415
- package/front_end/models/workspace/WorkspaceImpl.test.ts +0 -187
- package/front_end/models/workspace_diff/WorkspaceDiff.test.ts +0 -84
- package/front_end/panels/accessibility/ARIAAttributesView.test.ts +0 -101
- package/front_end/panels/accessibility/AccessibilitySidebarView.test.ts +0 -67
- package/front_end/panels/ai_assistance/AiAssistancePanel.test.ts +0 -1891
- package/front_end/panels/ai_assistance/PatchWidget.test.ts +0 -445
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.test.ts +0 -201
- package/front_end/panels/ai_assistance/components/ChatView.test.ts +0 -103
- package/front_end/panels/ai_assistance/components/ExploreWidget.test.ts +0 -118
- package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.test.ts +0 -80
- package/front_end/panels/ai_assistance/components/UserActionRow.test.ts +0 -123
- package/front_end/panels/animation/AnimationTimeline.test.ts +0 -752
- package/front_end/panels/application/AppManifestView.test.ts +0 -342
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -484
- package/front_end/panels/application/BackgroundServiceView.test.ts +0 -160
- package/front_end/panels/application/DOMStorageModel.test.ts +0 -45
- package/front_end/panels/application/ExtensionStorageItemsView.test.ts +0 -152
- package/front_end/panels/application/ExtensionStorageModel.test.ts +0 -249
- package/front_end/panels/application/IndexedDBModel.test.ts +0 -252
- package/front_end/panels/application/IndexedDBViews.test.ts +0 -182
- package/front_end/panels/application/InterestGroupStorageView.test.ts +0 -155
- package/front_end/panels/application/InterestGroupTreeElement.test.ts +0 -37
- package/front_end/panels/application/KeyValueStorageItemsView.test.ts +0 -120
- package/front_end/panels/application/PreloadingTreeElement.test.ts +0 -30
- package/front_end/panels/application/ReportingApiView.test.ts +0 -233
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.test.ts +0 -130
- package/front_end/panels/application/ServiceWorkersView.test.ts +0 -179
- package/front_end/panels/application/SharedStorageEventsView.test.ts +0 -231
- package/front_end/panels/application/SharedStorageItemsView.test.ts +0 -913
- package/front_end/panels/application/SharedStorageListTreeElement.test.ts +0 -161
- package/front_end/panels/application/SharedStorageModel.test.ts +0 -434
- package/front_end/panels/application/SharedStorageTreeElement.test.ts +0 -140
- package/front_end/panels/application/StorageBucketsTreeElement.test.ts +0 -149
- package/front_end/panels/application/StorageView.test.ts +0 -156
- package/front_end/panels/application/components/BackForwardCacheView.test.ts +0 -303
- package/front_end/panels/application/components/BounceTrackingMitigationsView.test.ts +0 -138
- package/front_end/panels/application/components/EndpointsGrid.test.ts +0 -83
- package/front_end/panels/application/components/FrameDetailsView.test.ts +0 -263
- package/front_end/panels/application/components/InterestGroupAccessGrid.test.ts +0 -70
- package/front_end/panels/application/components/OriginTrialTreeView.test.ts +0 -442
- package/front_end/panels/application/components/ProtocolHandlersView.test.ts +0 -73
- package/front_end/panels/application/components/ReportsGrid.test.ts +0 -131
- package/front_end/panels/application/components/ServiceWorkerRouterView.test.ts +0 -57
- package/front_end/panels/application/components/SharedStorageAccessGrid.test.ts +0 -84
- package/front_end/panels/application/components/SharedStorageMetadataView.test.ts +0 -122
- package/front_end/panels/application/components/StackTrace.test.ts +0 -222
- package/front_end/panels/application/components/StorageMetadataView.test.ts +0 -208
- package/front_end/panels/application/components/TrustTokensView.test.ts +0 -127
- package/front_end/panels/application/preloading/PreloadingView.test.ts +0 -1180
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.test.ts +0 -194
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.test.ts +0 -532
- package/front_end/panels/application/preloading/components/PreloadingGrid.test.ts +0 -503
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.test.ts +0 -150
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.test.ts +0 -185
- package/front_end/panels/application/preloading/components/RuleSetGrid.test.ts +0 -190
- package/front_end/panels/application/preloading/components/UsedPreloadingView.test.ts +0 -751
- package/front_end/panels/autofill/AutofillView.test.ts +0 -224
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.test.ts +0 -179
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.test.ts +0 -52
- package/front_end/panels/browser_debugger/browser_debugger.test.ts +0 -11
- package/front_end/panels/changes/CombinedDiffView.test.ts +0 -154
- package/front_end/panels/changes/changes.test.ts +0 -11
- package/front_end/panels/common/AiCodeCompletionDisclaimer.test.ts +0 -57
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.test.ts +0 -85
- package/front_end/panels/common/AiCodeCompletionTeaser.test.ts +0 -98
- package/front_end/panels/console/ConsoleContextSelector.test.ts +0 -96
- package/front_end/panels/console/ConsoleFormat.test.ts +0 -462
- package/front_end/panels/console/ConsolePrompt.test.ts +0 -188
- package/front_end/panels/console/ConsoleSidebar.test.ts +0 -130
- package/front_end/panels/console/ConsoleView.test.ts +0 -276
- package/front_end/panels/console/ConsoleViewMessage.test.ts +0 -433
- package/front_end/panels/console/ConsoleViewport.test.ts +0 -399
- package/front_end/panels/console/ErrorStackParser.test.ts +0 -343
- package/front_end/panels/console_counters/console_counters.test.ts +0 -11
- package/front_end/panels/coverage/CoverageDecorationManager.test.ts +0 -211
- package/front_end/panels/coverage/CoverageModel.test.ts +0 -91
- package/front_end/panels/coverage/CoverageView.test.ts +0 -202
- package/front_end/panels/css_overview/CSSOverviewPanel.test.ts +0 -40
- package/front_end/panels/developer_resources/DeveloperResourcesView.test.ts +0 -43
- package/front_end/panels/developer_resources/developer_resources.test.ts +0 -11
- package/front_end/panels/elements/AccessibilityTreeView.test.ts +0 -50
- package/front_end/panels/elements/CSSRuleValidator.test.ts +0 -482
- package/front_end/panels/elements/CSSValueTraceView.test.ts +0 -215
- package/front_end/panels/elements/ClassesPaneWidget.test.ts +0 -48
- package/front_end/panels/elements/ColorSwatchPopoverIcon.test.ts +0 -63
- package/front_end/panels/elements/ComputedStyleModel.test.ts +0 -155
- package/front_end/panels/elements/ComputedStyleWidget.test.ts +0 -153
- package/front_end/panels/elements/DOMLinkifier.test.ts +0 -60
- package/front_end/panels/elements/DOMTreeWidget.test.ts +0 -58
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +0 -363
- package/front_end/panels/elements/ElementsPanel.test.ts +0 -211
- package/front_end/panels/elements/ElementsTreeElement.test.ts +0 -443
- package/front_end/panels/elements/ElementsTreeOutline.test.ts +0 -218
- package/front_end/panels/elements/EventListenersWidget.test.ts +0 -129
- package/front_end/panels/elements/InspectElementModeController.test.ts +0 -163
- package/front_end/panels/elements/LayoutPane.test.ts +0 -219
- package/front_end/panels/elements/PlatformFontsWidget.test.ts +0 -46
- package/front_end/panels/elements/PropertiesWidget.test.ts +0 -76
- package/front_end/panels/elements/PropertyRenderer.test.ts +0 -340
- package/front_end/panels/elements/StylePropertiesSection.test.ts +0 -324
- package/front_end/panels/elements/StylePropertyHighlighter.test.ts +0 -160
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +0 -2250
- package/front_end/panels/elements/StylePropertyUtils.test.ts +0 -41
- package/front_end/panels/elements/StylesSidebarPane.test.ts +0 -716
- package/front_end/panels/elements/TopLayerContainer.test.ts +0 -55
- package/front_end/panels/elements/WebCustomData.test.ts +0 -77
- package/front_end/panels/elements/components/AccessibilityTreeNode.test.ts +0 -44
- package/front_end/panels/elements/components/AdornerManager.test.ts +0 -82
- package/front_end/panels/elements/components/CSSHintDetailsView.test.ts +0 -40
- package/front_end/panels/elements/components/CSSPropertyDocsView.test.ts +0 -131
- package/front_end/panels/elements/components/CSSPropertyIconResolver.test.ts +0 -931
- package/front_end/panels/elements/components/CSSQuery.test.ts +0 -58
- package/front_end/panels/elements/components/CSSVariableValueView.test.ts +0 -20
- package/front_end/panels/elements/components/ComputedStyleProperty.test.ts +0 -38
- package/front_end/panels/elements/components/ComputedStyleTrace.test.ts +0 -58
- package/front_end/panels/elements/components/ElementsBreadcrumbs.test.ts +0 -435
- package/front_end/panels/elements/components/ElementsTreeExpandButton.test.ts +0 -50
- package/front_end/panels/elements/components/QueryContainer.test.ts +0 -151
- package/front_end/panels/elements/components/StylePropertyEditor.test.ts +0 -188
- package/front_end/panels/emulation/AdvancedApp.test.ts +0 -80
- package/front_end/panels/emulation/MediaQueryInspector.test.ts +0 -55
- package/front_end/panels/event_listeners/EventListenersView.test.ts +0 -50
- package/front_end/panels/explain/PromptBuilder.test.ts +0 -587
- package/front_end/panels/explain/components/ConsoleInsight.test.ts +0 -926
- package/front_end/panels/issues/IssueAggregator.test.ts +0 -427
- package/front_end/panels/issues/IssueView.test.ts +0 -75
- package/front_end/panels/issues/IssuesPane.test.ts +0 -32
- package/front_end/panels/layer_viewer/layer_viewer.test.ts +0 -11
- package/front_end/panels/layers/LayersPanel.test.ts +0 -55
- package/front_end/panels/lighthouse/LighthouseController.test.ts +0 -36
- package/front_end/panels/lighthouse/LighthousePanel.test.ts +0 -89
- package/front_end/panels/lighthouse/LighthouseProtocolService.test.ts +0 -70
- package/front_end/panels/lighthouse/LighthouseReportRenderer.test.ts +0 -123
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.test.ts +0 -201
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.test.ts +0 -54
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.test.ts +0 -124
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts +0 -421
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.test.ts +0 -194
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.test.ts +0 -118
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.test.ts +0 -397
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.test.ts +0 -450
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.test.ts +0 -91
- package/front_end/panels/media/MainView.test.ts +0 -127
- package/front_end/panels/media/TickingFlameChartHelpers.test.ts +0 -90
- package/front_end/panels/mobile_throttling/ThrottlingManager.test.ts +0 -119
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.test.ts +0 -115
- package/front_end/panels/network/BlockedURLsPane.test.ts +0 -80
- package/front_end/panels/network/NetworkConfigView.test.ts +0 -50
- package/front_end/panels/network/NetworkDataGridNode.test.ts +0 -474
- package/front_end/panels/network/NetworkItemView.test.ts +0 -169
- package/front_end/panels/network/NetworkLogView.test.ts +0 -1101
- package/front_end/panels/network/NetworkOverview.test.ts +0 -60
- package/front_end/panels/network/NetworkPanel.test.ts +0 -103
- package/front_end/panels/network/NetworkSearchScope.test.ts +0 -182
- package/front_end/panels/network/RequestCookiesView.test.ts +0 -49
- package/front_end/panels/network/RequestHTMLView.test.ts +0 -28
- package/front_end/panels/network/RequestPayloadView.test.ts +0 -13
- package/front_end/panels/network/RequestPreviewView.test.ts +0 -105
- package/front_end/panels/network/RequestResponseView.test.ts +0 -130
- package/front_end/panels/network/RequestTimingView.test.ts +0 -172
- package/front_end/panels/network/ResourceDirectSocketChunkView.test.ts +0 -335
- package/front_end/panels/network/components/DirectSocketConnectionView.test.ts +0 -253
- package/front_end/panels/network/components/HeaderSectionRow.test.ts +0 -659
- package/front_end/panels/network/components/RequestHeaderSection.test.ts +0 -101
- package/front_end/panels/network/components/RequestHeadersView.test.ts +0 -537
- package/front_end/panels/network/components/RequestTrustTokensView.test.ts +0 -80
- package/front_end/panels/network/components/ResponseHeaderSection.test.ts +0 -1359
- package/front_end/panels/performance_monitor/PerformanceMonitor.test.ts +0 -152
- package/front_end/panels/profiler/HeapDetachedElementsView.test.ts +0 -34
- package/front_end/panels/profiler/HeapProfileView.test.ts +0 -34
- package/front_end/panels/profiler/HeapSnapshotView.test.ts +0 -35
- package/front_end/panels/protocol_monitor/JSONEditor.test.ts +0 -1321
- package/front_end/panels/protocol_monitor/ProtocolMonitor.test.ts +0 -548
- package/front_end/panels/recorder/RecorderController.test.ts +0 -483
- package/front_end/panels/recorder/components/CreateRecordingView.test.ts +0 -141
- package/front_end/panels/recorder/components/RecordingListView.test.ts +0 -64
- package/front_end/panels/recorder/components/RecordingView.test.ts +0 -186
- package/front_end/panels/recorder/components/ReplaySection.test.ts +0 -113
- package/front_end/panels/recorder/components/SelectButton.test.ts +0 -56
- package/front_end/panels/recorder/components/StepEditor.test.ts +0 -711
- package/front_end/panels/recorder/components/StepView.test.ts +0 -208
- package/front_end/panels/recorder/converters/LighthouseConverter.test.ts +0 -79
- package/front_end/panels/recorder/converters/PuppeteerConverter.test.ts +0 -88
- package/front_end/panels/recorder/converters/PuppeteerReplayConverter.test.ts +0 -59
- package/front_end/panels/recorder/injected/selectors/CSSSelector.test.ts +0 -39
- package/front_end/panels/recorder/injected.test.ts +0 -364
- package/front_end/panels/recorder/models/RecorderSettings.test.ts +0 -65
- package/front_end/panels/recorder/models/RecorderShortcutHelper.test.ts +0 -59
- package/front_end/panels/recorder/models/RecordingPlayer.test.ts +0 -235
- package/front_end/panels/recorder/models/SchemaUtils.test.ts +0 -35
- package/front_end/panels/recorder/models/ScreenshotUtils.test.ts +0 -74
- package/front_end/panels/recorder/models/Section.test.ts +0 -98
- package/front_end/panels/recorder/models/recording-storage.test.ts +0 -66
- package/front_end/panels/recorder/models/screenshot-storage.test.ts +0 -159
- package/front_end/panels/recorder/util/SharedObject.test.ts +0 -88
- package/front_end/panels/screencast/ScreencastApp.test.ts +0 -24
- package/front_end/panels/search/SearchResultsPane.test.ts +0 -228
- package/front_end/panels/search/SearchView.test.ts +0 -197
- package/front_end/panels/security/CookieControlsView.test.ts +0 -65
- package/front_end/panels/security/CookieReportView.test.ts +0 -161
- package/front_end/panels/security/SecurityModel.test.ts +0 -45
- package/front_end/panels/security/SecurityPanel.test.ts +0 -264
- package/front_end/panels/settings/AISettingsTab.test.ts +0 -293
- package/front_end/panels/settings/components/SyncSection.test.ts +0 -110
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.test.ts +0 -146
- package/front_end/panels/settings/emulation/utils/StructuredHeaders.test.ts +0 -462
- package/front_end/panels/settings/emulation/utils/UserAgentMetadata.test.ts +0 -94
- package/front_end/panels/snippets/ScriptSnippetFileSystem.test.ts +0 -29
- package/front_end/panels/sources/AiCodeCompletionPlugin.test.ts +0 -119
- package/front_end/panels/sources/BreakpointEditDialog.test.ts +0 -127
- package/front_end/panels/sources/BreakpointsView.test.ts +0 -1878
- package/front_end/panels/sources/BreakpointsViewUtils.test.ts +0 -209
- package/front_end/panels/sources/CSSPlugin.test.ts +0 -90
- package/front_end/panels/sources/CoveragePlugin.test.ts +0 -82
- package/front_end/panels/sources/DebuggerPausedMessage.test.ts +0 -138
- package/front_end/panels/sources/DebuggerPlugin.test.ts +0 -725
- package/front_end/panels/sources/FilePathScoreFunction.test.ts +0 -171
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.test.ts +0 -150
- package/front_end/panels/sources/NavigatorView.test.ts +0 -277
- package/front_end/panels/sources/OutlineQuickOpen.test.ts +0 -1064
- package/front_end/panels/sources/ResourceOriginPlugin.test.ts +0 -38
- package/front_end/panels/sources/SourcesNavigator.test.ts +0 -615
- package/front_end/panels/sources/SourcesPanel.test.ts +0 -90
- package/front_end/panels/sources/SourcesView.test.ts +0 -242
- package/front_end/panels/sources/TabbedEditorContainer.test.ts +0 -122
- package/front_end/panels/sources/UISourceCodeFrame.test.ts +0 -104
- package/front_end/panels/sources/components/HeadersView.test.ts +0 -573
- package/front_end/panels/timeline/AnnotationHelpers.test.ts +0 -190
- package/front_end/panels/timeline/Breadcrumbs.test.ts +0 -281
- package/front_end/panels/timeline/CountersGraph.test.ts +0 -80
- package/front_end/panels/timeline/EntriesFilter.test.ts +0 -710
- package/front_end/panels/timeline/Initiators.test.ts +0 -176
- package/front_end/panels/timeline/ModificationsManager.test.ts +0 -254
- package/front_end/panels/timeline/RecordingMetadata.test.ts +0 -147
- package/front_end/panels/timeline/SaveFileFormatter.test.ts +0 -77
- package/front_end/panels/timeline/ThirdPartyTreeView.test.ts +0 -84
- package/front_end/panels/timeline/TimelineController.test.ts +0 -98
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +0 -188
- package/front_end/panels/timeline/TimelineFilters.test.ts +0 -72
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +0 -377
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +0 -266
- package/front_end/panels/timeline/TimelineFlameChartView.test.ts +0 -1209
- package/front_end/panels/timeline/TimelineHistoryManager.test.ts +0 -160
- package/front_end/panels/timeline/TimelineLoader.test.ts +0 -167
- package/front_end/panels/timeline/TimelineMiniMap.test.ts +0 -135
- package/front_end/panels/timeline/TimelinePanel.test.ts +0 -550
- package/front_end/panels/timeline/TimelineSelection.test.ts +0 -112
- package/front_end/panels/timeline/TimelineTreeView.test.ts +0 -339
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +0 -1793
- package/front_end/panels/timeline/TrackConfigBanner.test.ts +0 -68
- package/front_end/panels/timeline/TrackConfiguration.test.ts +0 -46
- package/front_end/panels/timeline/components/BreadcrumbsUI.test.ts +0 -101
- package/front_end/panels/timeline/components/CPUThrottlingSelector.test.ts +0 -100
- package/front_end/panels/timeline/components/ExportTraceOptions.test.ts +0 -281
- package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +0 -295
- package/front_end/panels/timeline/components/IgnoreListSetting.test.ts +0 -325
- package/front_end/panels/timeline/components/InteractionBreakdown.test.ts +0 -37
- package/front_end/panels/timeline/components/Invalidations.test.ts +0 -38
- package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +0 -72
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +0 -1006
- package/front_end/panels/timeline/components/MetricCard.test.ts +0 -637
- package/front_end/panels/timeline/components/NetworkRequestDetails.test.ts +0 -178
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +0 -188
- package/front_end/panels/timeline/components/OriginMap.test.ts +0 -359
- package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +0 -91
- package/front_end/panels/timeline/components/Sidebar.test.ts +0 -185
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +0 -261
- package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +0 -44
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +0 -165
- package/front_end/panels/timeline/components/TimelineSummary.test.ts +0 -77
- package/front_end/panels/timeline/components/Utils.test.ts +0 -112
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +0 -382
- package/front_end/panels/timeline/components/insights/CLSCulprits.test.ts +0 -44
- package/front_end/panels/timeline/components/insights/INPBreakdown.test.ts +0 -74
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.test.ts +0 -76
- package/front_end/panels/timeline/components/insights/NodeLink.test.ts +0 -113
- package/front_end/panels/timeline/components/insights/Table.test.ts +0 -60
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +0 -1424
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.test.ts +0 -41
- package/front_end/panels/timeline/track_appenders/AnimationsTrackAppender.test.ts +0 -101
- package/front_end/panels/timeline/track_appenders/AppenderUtils.test.ts +0 -197
- package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +0 -229
- package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +0 -249
- package/front_end/panels/timeline/track_appenders/GPUTrackAppender.test.ts +0 -116
- package/front_end/panels/timeline/track_appenders/InteractionsTrackAppender.test.ts +0 -124
- package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +0 -104
- package/front_end/panels/timeline/track_appenders/NetworkTrackAppender.test.ts +0 -65
- package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +0 -595
- package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +0 -347
- package/front_end/panels/timeline/utils/AICallTree.test.ts +0 -453
- package/front_end/panels/timeline/utils/EntityMapper.test.ts +0 -123
- package/front_end/panels/timeline/utils/EntryName.test.ts +0 -177
- package/front_end/panels/timeline/utils/EntryNodes.test.ts +0 -137
- package/front_end/panels/timeline/utils/EventsSerializer.test.ts +0 -71
- package/front_end/panels/timeline/utils/FreshRecording.test.ts +0 -23
- package/front_end/panels/timeline/utils/Helpers.test.ts +0 -85
- package/front_end/panels/timeline/utils/IgnoreList.test.ts +0 -192
- package/front_end/panels/timeline/utils/ImageCache.test.ts +0 -107
- package/front_end/panels/timeline/utils/InsightAIContext.test.ts +0 -120
- package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +0 -334
- package/front_end/panels/timeline/utils/Treemap.test.ts +0 -321
- package/front_end/panels/utils/utils.test.ts +0 -232
- package/front_end/panels/web_audio/WebAudioView.test.ts +0 -247
- package/front_end/panels/web_audio/web_audio.test.ts +0 -11
- package/front_end/panels/webauthn/WebauthnPane.test.ts +0 -377
- package/front_end/panels/whats_new/ReleaseNote.test.ts +0 -92
- package/front_end/panels/whats_new/ReleaseNoteView.test.ts +0 -160
- package/front_end/services/trace_bounds/TraceBounds.test.ts +0 -155
- package/front_end/services/tracing/ExternalRequests.test.ts +0 -39
- package/front_end/services/tracing/ExternalRequests.ts +0 -74
- package/front_end/services/tracing/TracingManager.test.ts +0 -102
- package/front_end/testing/AiAssistanceHelpers.ts +0 -349
- package/front_end/testing/ConsoleHelpers.ts +0 -39
- package/front_end/testing/ContextMenuHelpers.ts +0 -46
- package/front_end/testing/Cookies.ts +0 -72
- package/front_end/testing/DOMHelpers.ts +0 -359
- package/front_end/testing/DataGridHelpers.ts +0 -83
- package/front_end/testing/EnvironmentHelpers.ts +0 -565
- package/front_end/testing/ExpectStubCall.ts +0 -46
- package/front_end/testing/ExtensionHelpers.ts +0 -77
- package/front_end/testing/FileManagerHelpers.ts +0 -22
- package/front_end/testing/InsightHelpers.ts +0 -88
- package/front_end/testing/LanguagePluginHelpers.ts +0 -91
- package/front_end/testing/MockConnection.ts +0 -163
- package/front_end/testing/MockExecutionContext.ts +0 -24
- package/front_end/testing/MockIssuesManager.ts +0 -64
- package/front_end/testing/MockIssuesModel.ts +0 -22
- package/front_end/testing/MockNetworkLog.ts +0 -41
- package/front_end/testing/MockScopeChain.test.ts +0 -25
- package/front_end/testing/MockScopeChain.ts +0 -402
- package/front_end/testing/MockSettingStorage.ts +0 -23
- package/front_end/testing/MutationHelpers.test.ts +0 -271
- package/front_end/testing/MutationHelpers.ts +0 -250
- package/front_end/testing/NetworkHelpers.ts +0 -36
- package/front_end/testing/OverridesHelpers.ts +0 -85
- package/front_end/testing/PersistenceHelpers.ts +0 -64
- package/front_end/testing/PropertyParser.ts +0 -34
- package/front_end/testing/README.md +0 -123
- package/front_end/testing/ResourceTreeHelpers.ts +0 -126
- package/front_end/testing/SnapshotTester.snapshot.txt +0 -9
- package/front_end/testing/SnapshotTester.test.ts +0 -32
- package/front_end/testing/SnapshotTester.ts +0 -150
- package/front_end/testing/SourceMapEncoder.test.ts +0 -169
- package/front_end/testing/SourceMapEncoder.ts +0 -130
- package/front_end/testing/SourceMapHelpers.ts +0 -113
- package/front_end/testing/StackTraceHelpers.ts +0 -47
- package/front_end/testing/StorageItemsViewHelpers.ts +0 -24
- package/front_end/testing/StubIssue.ts +0 -123
- package/front_end/testing/StyleHelpers.ts +0 -160
- package/front_end/testing/TraceHelpers.ts +0 -1003
- package/front_end/testing/TraceLoader.ts +0 -344
- package/front_end/testing/TrackAsyncOperations.ts +0 -276
- package/front_end/testing/UISourceCodeHelpers.ts +0 -157
- package/front_end/testing/UserMetricsHelpers.ts +0 -17
- package/front_end/testing/ViewFunctionHelpers.ts +0 -62
- package/front_end/testing/VisualLoggingHelpers.ts +0 -11
- package/front_end/testing/test_setup.ts +0 -117
- package/front_end/ui/components/adorners/Adorner.test.ts +0 -134
- package/front_end/ui/components/buttons/Button.test.ts +0 -268
- package/front_end/ui/components/cards/Card.test.ts +0 -101
- package/front_end/ui/components/chrome_link/ChromeLink.test.ts +0 -57
- package/front_end/ui/components/code_highlighter/CodeHighlighter.test.ts +0 -318
- package/front_end/ui/components/dialogs/ButtonDialog.test.ts +0 -170
- package/front_end/ui/components/dialogs/Dialog.test.ts +0 -903
- package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +0 -79
- package/front_end/ui/components/diff_view/DiffView.test.ts +0 -94
- package/front_end/ui/components/expandable_list/ExpandableList.test.ts +0 -77
- package/front_end/ui/components/helpers/helpers.test.ts +0 -118
- package/front_end/ui/components/highlighting/HighlightManager.test.ts +0 -89
- package/front_end/ui/components/highlighting/highlighting.css +0 -9
- package/front_end/ui/components/icon_button/FileSourceIcon.test.ts +0 -32
- package/front_end/ui/components/icon_button/Icon.test.ts +0 -126
- package/front_end/ui/components/icon_button/IconButton.test.ts +0 -277
- package/front_end/ui/components/issue_counter/IssueCounter.test.ts +0 -234
- package/front_end/ui/components/issue_counter/IssueLinkIcon.test.ts +0 -187
- package/front_end/ui/components/linkifier/LinkifierImpl.test.ts +0 -84
- package/front_end/ui/components/markdown_view/CodeBlock.test.ts +0 -92
- package/front_end/ui/components/markdown_view/MarkdownImage.test.ts +0 -56
- package/front_end/ui/components/markdown_view/MarkdownLink.test.ts +0 -30
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +0 -445
- package/front_end/ui/components/menus/SelectMenu.test.ts +0 -106
- package/front_end/ui/components/node_text/NodeText.test.ts +0 -80
- package/front_end/ui/components/panel_feedback/FeedbackButton.test.ts +0 -36
- package/front_end/ui/components/panel_feedback/PanelFeedback.test.ts +0 -47
- package/front_end/ui/components/panel_feedback/PreviewToggle.test.ts +0 -75
- package/front_end/ui/components/render_coordinator/render_coordinator.test.ts +0 -243
- package/front_end/ui/components/report_view/ReportView.test.ts +0 -44
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.test.ts +0 -298
- package/front_end/ui/components/settings/SettingCheckbox.test.ts +0 -205
- package/front_end/ui/components/settings/SettingDeprecationWarning.test.ts +0 -68
- package/front_end/ui/components/snackbars/Snackbar.test.ts +0 -141
- package/front_end/ui/components/survey_link/SurveyLink.test.ts +0 -118
- package/front_end/ui/components/switch/SwitchImpl.test.ts +0 -54
- package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.test.ts +0 -84
- package/front_end/ui/components/text_editor/AutocompleteHistory.test.ts +0 -126
- package/front_end/ui/components/text_editor/ExecutionPositionHighlighter.test.ts +0 -140
- package/front_end/ui/components/text_editor/TextEditor.test.ts +0 -340
- package/front_end/ui/components/text_editor/TextEditorHistory.test.ts +0 -170
- package/front_end/ui/components/text_editor/javascript.test.ts +0 -121
- package/front_end/ui/components/text_prompt/TextPrompt.test.ts +0 -81
- package/front_end/ui/components/tooltips/Tooltip.test.ts +0 -307
- package/front_end/ui/components/tree_outline/TreeOutline.test.ts +0 -1472
- package/front_end/ui/legacy/ARIAUtils.test.ts +0 -140
- package/front_end/ui/legacy/ActionRegistration.test.ts +0 -173
- package/front_end/ui/legacy/Context.test.ts +0 -14
- package/front_end/ui/legacy/ContextMenu.test.ts +0 -261
- package/front_end/ui/legacy/DockController.test.ts +0 -88
- package/front_end/ui/legacy/FilterBar.test.ts +0 -52
- package/front_end/ui/legacy/Fragment.test.ts +0 -60
- package/front_end/ui/legacy/Geometry.test.ts +0 -658
- package/front_end/ui/legacy/Infobar.test.ts +0 -53
- package/front_end/ui/legacy/InspectorView.test.ts +0 -99
- package/front_end/ui/legacy/KeyboardShortcut.test.ts +0 -28
- package/front_end/ui/legacy/ListModel.test.ts +0 -78
- package/front_end/ui/legacy/ListWidget.test.ts +0 -78
- package/front_end/ui/legacy/SettingsUI.test.ts +0 -157
- package/front_end/ui/legacy/ShortcutRegistry.test.ts +0 -35
- package/front_end/ui/legacy/SplitWidget.test.ts +0 -62
- package/front_end/ui/legacy/SuggestBox.test.ts +0 -126
- package/front_end/ui/legacy/Toolbar.test.ts +0 -244
- package/front_end/ui/legacy/Treeoutline.test.ts +0 -252
- package/front_end/ui/legacy/UIUtils.test.ts +0 -255
- package/front_end/ui/legacy/View.test.ts +0 -76
- package/front_end/ui/legacy/ViewManager.test.ts +0 -235
- package/front_end/ui/legacy/ViewRegistration.test.ts +0 -76
- package/front_end/ui/legacy/Widget.test.ts +0 -206
- package/front_end/ui/legacy/XLink.test.ts +0 -68
- package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.test.ts +0 -217
- package/front_end/ui/legacy/components/color_picker/Spectrum.test.ts +0 -101
- package/front_end/ui/legacy/components/data_grid/DataGridElement.test.ts +0 -272
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.test.ts +0 -23
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.test.ts +0 -58
- package/front_end/ui/legacy/components/inline_editor/BezierUI.test.ts +0 -124
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.test.ts +0 -399
- package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.test.ts +0 -64
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.test.ts +0 -36
- package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.test.ts +0 -40
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.test.ts +0 -259
- package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.test.ts +0 -47
- package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.test.ts +0 -27
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +0 -86
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.test.ts +0 -45
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.test.ts +0 -72
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.test.ts +0 -63
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +0 -218
- package/front_end/ui/legacy/components/perf_ui/FlameChart.test.ts +0 -1630
- package/front_end/ui/legacy/components/perf_ui/PieChart.test.ts +0 -220
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.test.ts +0 -152
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +0 -70
- package/front_end/ui/legacy/components/quick_open/CommandMenu.test.ts +0 -74
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.test.ts +0 -111
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +0 -81
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.test.ts +0 -77
- package/front_end/ui/legacy/components/source_frame/SourceFrame.test.ts +0 -146
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.test.ts +0 -67
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.test.ts +0 -52
- package/front_end/ui/legacy/components/utils/Linkifier.test.ts +0 -547
- package/front_end/ui/legacy/theme_support/ThemeSupport.test.ts +0 -129
- package/front_end/ui/lit/i18n-template.test.ts +0 -51
- package/front_end/ui/lit/strip-whitespace.test.ts +0 -110
- package/front_end/ui/visual_logging/Debugging.test.ts +0 -21
- package/front_end/ui/visual_logging/DomState.test.ts +0 -241
- package/front_end/ui/visual_logging/LoggingConfig.test.ts +0 -118
- package/front_end/ui/visual_logging/LoggingDriver.test.ts +0 -1069
- package/front_end/ui/visual_logging/LoggingEvents.test.ts +0 -271
- package/front_end/ui/visual_logging/LoggingState.test.ts +0 -122
- package/front_end/ui/visual_logging/NonDomState.test.ts +0 -44
- package/inspector_overlay/common.test.ts +0 -38
- package/inspector_overlay/css_grid_label_helpers.test.ts +0 -962
- package/inspector_overlay/highlight_common.test.ts +0 -42
- package/inspector_overlay/highlight_flex_common.test.ts +0 -511
- package/inspector_overlay/tool_highlight.test.ts +0 -105
- package/inspector_overlay/tool_source_order.test.ts +0 -130
- package/inspector_overlay/tool_window_controls.test.ts +0 -81
- package/scripts/DIR_METADATA +0 -3
- package/scripts/README.md +0 -26
- package/scripts/__init__.py +0 -0
- package/scripts/add_icon_paths.py +0 -71
- package/scripts/ai_assistance/README.md +0 -60
- package/scripts/ai_assistance/auto-run/auto-run.ts +0 -429
- package/scripts/ai_assistance/auto-run/shared/comment-parsers.test.ts +0 -168
- package/scripts/ai_assistance/auto-run/shared/comment-parsers.ts +0 -97
- package/scripts/ai_assistance/auto-run/shared/puppeteer-helpers.ts +0 -307
- package/scripts/ai_assistance/auto-run/targets/elements-executor.ts +0 -62
- package/scripts/ai_assistance/auto-run/targets/elements-multimodal-executor.ts +0 -62
- package/scripts/ai_assistance/auto-run/targets/factory.ts +0 -33
- package/scripts/ai_assistance/auto-run/targets/interface.ts +0 -29
- package/scripts/ai_assistance/auto-run/targets/patching-executor.ts +0 -69
- package/scripts/ai_assistance/auto-run/targets/performance-insights-executor.ts +0 -99
- package/scripts/ai_assistance/auto-run/targets/performance-main-thread-executor.ts +0 -99
- package/scripts/ai_assistance/auto-run/trace-downloader.ts +0 -91
- package/scripts/ai_assistance/eval/index.html +0 -32
- package/scripts/ai_assistance/eval/index.js +0 -568
- package/scripts/ai_assistance/package.json +0 -8
- package/scripts/ai_assistance/suite/README.md +0 -57
- package/scripts/ai_assistance/suite/helpers/evaluators.ts +0 -183
- package/scripts/ai_assistance/suite/helpers/gemini.ts +0 -122
- package/scripts/ai_assistance/suite/helpers/outputs.ts +0 -112
- package/scripts/ai_assistance/suite/instructions/lcp-breakdown.md +0 -12
- package/scripts/ai_assistance/suite/instructions/load.ts +0 -13
- package/scripts/ai_assistance/suite/instructions/scoring.md +0 -27
- package/scripts/ai_assistance/suite/performance.eval.ts +0 -18
- package/scripts/ai_assistance/suite/to_eval_output.ts +0 -166
- package/scripts/ai_assistance/suite/types.d.ts +0 -40
- package/scripts/ai_assistance/suite/upload_to_gcp.ts +0 -104
- package/scripts/ai_assistance/to_tsv.mjs +0 -39
- package/scripts/ai_assistance/tsconfig.json +0 -14
- package/scripts/ai_assistance/types.d.ts +0 -81
- package/scripts/build/README.md +0 -2
- package/scripts/build/__init__.py +0 -3
- package/scripts/build/assert_grd.py +0 -57
- package/scripts/build/assert_third_party_readmes.py +0 -70
- package/scripts/build/build_inspector_overlay.py +0 -106
- package/scripts/build/code_generator_frontend.py +0 -413
- package/scripts/build/compress_files.js +0 -89
- package/scripts/build/cross_reference_ninja_and_tsc.js +0 -180
- package/scripts/build/devtools_plugin.js +0 -164
- package/scripts/build/efficiently_recompile.py +0 -29
- package/scripts/build/esbuild.js +0 -56
- package/scripts/build/generate_aria.py +0 -36
- package/scripts/build/generate_css_js_files.js +0 -83
- package/scripts/build/generate_deprecations.py +0 -99
- package/scripts/build/generate_devtools_grd.py +0 -123
- package/scripts/build/generate_devtools_json.js +0 -27
- package/scripts/build/generate_html_entrypoint.js +0 -49
- package/scripts/build/generate_supported_css.py +0 -135
- package/scripts/build/ninja/README.md +0 -190
- package/scripts/build/ninja/bundle.gni +0 -85
- package/scripts/build/ninja/copy-file.js +0 -38
- package/scripts/build/ninja/copy-files.js +0 -39
- package/scripts/build/ninja/copy.gni +0 -59
- package/scripts/build/ninja/devtools_entrypoint.gni +0 -221
- package/scripts/build/ninja/devtools_module.gni +0 -33
- package/scripts/build/ninja/devtools_pre_built.gni +0 -55
- package/scripts/build/ninja/generate-declaration.js +0 -18
- package/scripts/build/ninja/generate-tsconfig.js +0 -46
- package/scripts/build/ninja/generate_css.gni +0 -45
- package/scripts/build/ninja/minify-json-files.js +0 -20
- package/scripts/build/ninja/minify_json.gni +0 -32
- package/scripts/build/ninja/node.gni +0 -36
- package/scripts/build/ninja/vars.gni +0 -19
- package/scripts/build/ninja/wasm.gni +0 -25
- package/scripts/build/ninja/write-if-changed.js +0 -27
- package/scripts/build/rollup.config.mjs +0 -31
- package/scripts/build/tests/generate_css_js_files_test.js +0 -40
- package/scripts/build/tests/plugins_test.js +0 -149
- package/scripts/build/typescript/README.md +0 -94
- package/scripts/build/typescript/tests/README.md +0 -10
- package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/BUILDCONFIG.gn +0 -10
- package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/build_output.txt.expected +0 -14
- package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/front_end/module/exporting.ts +0 -1
- package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/front_end/module/index.ts +0 -3
- package/scripts/build/typescript/tests/fixtures/recompile/BUILDCONFIG.gn +0 -10
- package/scripts/build/typescript/tests/fixtures/recompile/build_output.txt.expected +0 -8
- package/scripts/build/typescript/tests/fixtures/recompile/build_output.txt.expected.regen +0 -4
- package/scripts/build/typescript/tests/fixtures/recompile/front_end/module/exporting.ts +0 -1
- package/scripts/build/typescript/tests/fixtures/recompile/front_end/module/module.ts +0 -5
- package/scripts/build/typescript/tests/fixtures/recompile_dep/BUILDCONFIG.gn +0 -10
- package/scripts/build/typescript/tests/fixtures/recompile_dep/build_output.txt.expected +0 -8
- package/scripts/build/typescript/tests/fixtures/recompile_dep/build_output.txt.expected.regen +0 -6
- package/scripts/build/typescript/tests/fixtures/recompile_dep/expected.tsbuildinfo +0 -2084
- package/scripts/build/typescript/tests/fixtures/recompile_dep/front_end/module/exporting.ts +0 -1
- package/scripts/build/typescript/tests/fixtures/recompile_dep/front_end/module/module.ts +0 -7
- package/scripts/build/typescript/tests/fixtures/simple_dep/BUILDCONFIG.gn +0 -10
- package/scripts/build/typescript/tests/fixtures/simple_dep/build_output.txt.expected +0 -6
- package/scripts/build/typescript/tests/fixtures/simple_dep/build_output.txt.expected.regen +0 -2
- package/scripts/build/typescript/tests/fixtures/simple_dep/front_end/module/exporting.ts +0 -1
- package/scripts/build/typescript/tests/fixtures/simple_dep/front_end/module/index.ts +0 -3
- package/scripts/build/typescript/tests/fixtures/test_dep/BUILDCONFIG.gn +0 -10
- package/scripts/build/typescript/tests/fixtures/test_dep/build_output.txt.expected +0 -8
- package/scripts/build/typescript/tests/fixtures/test_dep/front_end/module/exporting.ts +0 -1
- package/scripts/build/typescript/tests/fixtures/test_dep/front_end/module/module.ts +0 -5
- package/scripts/build/typescript/tests/verify_ts_libary.sh +0 -88
- package/scripts/build/typescript/ts_library.py +0 -336
- package/scripts/build/typescript/typescript.gni +0 -290
- package/scripts/build/wasm-as.py +0 -87
- package/scripts/build/wasm_sourcemap.mjs +0 -22
- package/scripts/check_esbuild_versions.js +0 -51
- package/scripts/check_experiments.js +0 -292
- package/scripts/check_external_links.js +0 -150
- package/scripts/component_server/README.md +0 -43
- package/scripts/component_server/server.js +0 -597
- package/scripts/devtools_build.mjs +0 -396
- package/scripts/devtools_build.test.mjs +0 -243
- package/scripts/devtools_paths.js +0 -193
- package/scripts/devtools_paths.py +0 -127
- package/scripts/eslint_rules/README.md +0 -29
- package/scripts/eslint_rules/lib/canvas-context-tracking.ts +0 -154
- package/scripts/eslint_rules/lib/check-css-import.ts +0 -52
- package/scripts/eslint_rules/lib/check-enumerated-histograms.ts +0 -42
- package/scripts/eslint_rules/lib/check-license-header.ts +0 -222
- package/scripts/eslint_rules/lib/check-test-definitions.ts +0 -91
- package/scripts/eslint_rules/lib/check-was-shown-methods.ts +0 -57
- package/scripts/eslint_rules/lib/enforce-custom-element-definitions-location.ts +0 -95
- package/scripts/eslint_rules/lib/enforce-custom-event-names.ts +0 -174
- package/scripts/eslint_rules/lib/enforce-default-import-name.ts +0 -86
- package/scripts/eslint_rules/lib/enforce-optional-properties-last.ts +0 -87
- package/scripts/eslint_rules/lib/enforce-ui-strings-as-const.ts +0 -69
- package/scripts/eslint_rules/lib/es-modules-import.ts +0 -405
- package/scripts/eslint_rules/lib/html-tagged-template.ts +0 -85
- package/scripts/eslint_rules/lib/inject-checkbox-styles.ts +0 -187
- package/scripts/eslint_rules/lib/inline-type-imports.ts +0 -217
- package/scripts/eslint_rules/lib/jslog-context-list.ts +0 -192
- package/scripts/eslint_rules/lib/l10n-filename-matches.ts +0 -136
- package/scripts/eslint_rules/lib/l10n-i18nString-call-only-with-uistrings.ts +0 -62
- package/scripts/eslint_rules/lib/l10n-no-i18nString-calls-module-instantiation.ts +0 -61
- package/scripts/eslint_rules/lib/l10n-no-locked-or-placeholder-only-phrase.ts +0 -72
- package/scripts/eslint_rules/lib/l10n-no-uistrings-export.ts +0 -89
- package/scripts/eslint_rules/lib/l10n-no-unused-message.ts +0 -159
- package/scripts/eslint_rules/lib/lit-no-attribute-quotes.ts +0 -111
- package/scripts/eslint_rules/lib/lit-template-result-or-nothing.ts +0 -158
- package/scripts/eslint_rules/lib/no-a-tags-in-lit.ts +0 -43
- package/scripts/eslint_rules/lib/no-adopted-style-sheets.ts +0 -37
- package/scripts/eslint_rules/lib/no-assert-deep-strict-equal.ts +0 -61
- package/scripts/eslint_rules/lib/no-assert-equal-boolean-null-undefined.ts +0 -178
- package/scripts/eslint_rules/lib/no-assert-equal.ts +0 -88
- package/scripts/eslint_rules/lib/no-assert-strict-equal-for-arrays-and-objects.ts +0 -86
- package/scripts/eslint_rules/lib/no-bound-component-methods.ts +0 -161
- package/scripts/eslint_rules/lib/no-commented-out-console.ts +0 -49
- package/scripts/eslint_rules/lib/no-commented-out-import.ts +0 -46
- package/scripts/eslint_rules/lib/no-customized-builtin-elements.ts +0 -140
- package/scripts/eslint_rules/lib/no-deprecated-component-usages.ts +0 -46
- package/scripts/eslint_rules/lib/no-document-body-mutation.ts +0 -102
- package/scripts/eslint_rules/lib/no-imperative-dom-api/adorner.ts +0 -48
- package/scripts/eslint_rules/lib/no-imperative-dom-api/aria-utils.ts +0 -109
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ast.ts +0 -86
- package/scripts/eslint_rules/lib/no-imperative-dom-api/button.ts +0 -81
- package/scripts/eslint_rules/lib/no-imperative-dom-api/class-member.ts +0 -54
- package/scripts/eslint_rules/lib/no-imperative-dom-api/data-grid.ts +0 -151
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api-devtools-extensions.ts +0 -32
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api.ts +0 -141
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-fragment.ts +0 -307
- package/scripts/eslint_rules/lib/no-imperative-dom-api/split-widget.ts +0 -125
- package/scripts/eslint_rules/lib/no-imperative-dom-api/toolbar.ts +0 -193
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-fragment.ts +0 -55
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-utils.ts +0 -213
- package/scripts/eslint_rules/lib/no-imperative-dom-api/widget.ts +0 -96
- package/scripts/eslint_rules/lib/no-imperative-dom-api.ts +0 -270
- package/scripts/eslint_rules/lib/no-importing-images-from-src.ts +0 -83
- package/scripts/eslint_rules/lib/no-imports-in-directory.ts +0 -84
- package/scripts/eslint_rules/lib/no-lit-render-outside-of-view.ts +0 -105
- package/scripts/eslint_rules/lib/no-new-lit-element-components.ts +0 -48
- package/scripts/eslint_rules/lib/no-self-closing-custom-element-tagnames.ts +0 -42
- package/scripts/eslint_rules/lib/no-underscored-properties.ts +0 -78
- package/scripts/eslint_rules/lib/prefer-assert-instance-of.ts +0 -80
- package/scripts/eslint_rules/lib/prefer-assert-is-ok.ts +0 -103
- package/scripts/eslint_rules/lib/prefer-assert-length-of.ts +0 -76
- package/scripts/eslint_rules/lib/prefer-assert-strict-equal.ts +0 -92
- package/scripts/eslint_rules/lib/prefer-private-class-members.ts +0 -45
- package/scripts/eslint_rules/lib/prefer-sinon-assert.ts +0 -151
- package/scripts/eslint_rules/lib/prefer-url-string.ts +0 -109
- package/scripts/eslint_rules/lib/set-data-type-reference.ts +0 -69
- package/scripts/eslint_rules/lib/static-custom-event-names.ts +0 -215
- package/scripts/eslint_rules/lib/trace-engine-test-timeouts.ts +0 -125
- package/scripts/eslint_rules/lib/utils/l10n-helper.ts +0 -48
- package/scripts/eslint_rules/lib/utils/lit.ts +0 -73
- package/scripts/eslint_rules/lib/utils/ruleCreator.ts +0 -16
- package/scripts/eslint_rules/lib/utils/treeHelpers.ts +0 -13
- package/scripts/eslint_rules/lib/validate-timing-types.ts +0 -330
- package/scripts/eslint_rules/rules-dir.mjs +0 -78
- package/scripts/eslint_rules/tests/canvas-context-tracking.test.ts +0 -124
- package/scripts/eslint_rules/tests/check-css-import.test.ts +0 -43
- package/scripts/eslint_rules/tests/check-enumerated-histograms.test.ts +0 -31
- package/scripts/eslint_rules/tests/check-license-header.test.ts +0 -293
- package/scripts/eslint_rules/tests/check-test-definitions.test.ts +0 -155
- package/scripts/eslint_rules/tests/check-was-shown-methods.test.ts +0 -103
- package/scripts/eslint_rules/tests/check_css_import_test_file.css +0 -5
- package/scripts/eslint_rules/tests/enforce-custom-element-definitions-location.test.ts +0 -56
- package/scripts/eslint_rules/tests/enforce-custom-event-names.test.ts +0 -124
- package/scripts/eslint_rules/tests/enforce-default-import-name.test.ts +0 -53
- package/scripts/eslint_rules/tests/enforce-optional-properties-last.test.ts +0 -137
- package/scripts/eslint_rules/tests/enforce-ui-strings-as-const.test.ts +0 -35
- package/scripts/eslint_rules/tests/es-modules-import.test.ts +0 -332
- package/scripts/eslint_rules/tests/html-tagged-template.test.ts +0 -103
- package/scripts/eslint_rules/tests/inject-checkbox-styles.test.ts +0 -219
- package/scripts/eslint_rules/tests/inline-type-imports.test.ts +0 -82
- package/scripts/eslint_rules/tests/jslog-context-list.test.ts +0 -218
- package/scripts/eslint_rules/tests/l10n-filename-matches.test.ts +0 -90
- package/scripts/eslint_rules/tests/l10n-i18nString-call-only-with-uistrings.test.ts +0 -44
- package/scripts/eslint_rules/tests/l10n-no-i18nString-calls-module-instantiation.test.ts +0 -77
- package/scripts/eslint_rules/tests/l10n-no-locked-or-placeholder-only-phrase.test.ts +0 -45
- package/scripts/eslint_rules/tests/l10n-no-uistrings-export.test.ts +0 -50
- package/scripts/eslint_rules/tests/l10n-no-unused-message.test.ts +0 -119
- package/scripts/eslint_rules/tests/lit-no-attribute-quotes.test.ts +0 -43
- package/scripts/eslint_rules/tests/lit-template-result-or-nothing.test.ts +0 -142
- package/scripts/eslint_rules/tests/no-a-tags-in-lit.test.ts +0 -67
- package/scripts/eslint_rules/tests/no-adopted-style-sheets.test.ts +0 -52
- package/scripts/eslint_rules/tests/no-assert-deep-strict-equal.test.ts +0 -51
- package/scripts/eslint_rules/tests/no-assert-equal-boolean-null-undefined.test.ts +0 -207
- package/scripts/eslint_rules/tests/no-assert-equal.test.ts +0 -101
- package/scripts/eslint_rules/tests/no-assert-strict-equal-for-arrays-and-objects.test.ts +0 -87
- package/scripts/eslint_rules/tests/no-bound-component-methods.test.ts +0 -105
- package/scripts/eslint_rules/tests/no-commented-out-console.test.ts +0 -35
- package/scripts/eslint_rules/tests/no-commented-out-import.test.ts +0 -45
- package/scripts/eslint_rules/tests/no-customized-builtin-elements.test.ts +0 -150
- package/scripts/eslint_rules/tests/no-deprecated-component-usages.test.ts +0 -46
- package/scripts/eslint_rules/tests/no-document-body-mutation.test.ts +0 -45
- package/scripts/eslint_rules/tests/no-imperative-dom-api.test.ts +0 -1237
- package/scripts/eslint_rules/tests/no-importing-images-from-src.test.ts +0 -40
- package/scripts/eslint_rules/tests/no-imports-in-directory.test.ts +0 -104
- package/scripts/eslint_rules/tests/no-lit-render-outside-of-view.test.ts +0 -130
- package/scripts/eslint_rules/tests/no-new-lit-element-components.test.ts +0 -31
- package/scripts/eslint_rules/tests/no-self-closing-custom-element-tagnames.test.ts +0 -59
- package/scripts/eslint_rules/tests/no-underscored-properties.test.ts +0 -99
- package/scripts/eslint_rules/tests/prefer-assert-instance-of.test.ts +0 -195
- package/scripts/eslint_rules/tests/prefer-assert-is-ok.test.ts +0 -182
- package/scripts/eslint_rules/tests/prefer-assert-length-of.test.ts +0 -143
- package/scripts/eslint_rules/tests/prefer-assert-strict-equal.test.ts +0 -367
- package/scripts/eslint_rules/tests/prefer-private-class-members.test.ts +0 -59
- package/scripts/eslint_rules/tests/prefer-sinon-assert.test.ts +0 -333
- package/scripts/eslint_rules/tests/prefer-url-string.test.ts +0 -87
- package/scripts/eslint_rules/tests/set-data-type-reference.test.ts +0 -60
- package/scripts/eslint_rules/tests/static-custom-event-names.test.ts +0 -179
- package/scripts/eslint_rules/tests/trace-engine-test-timeouts.test.ts +0 -59
- package/scripts/eslint_rules/tests/utils/RuleTester.ts +0 -28
- package/scripts/eslint_rules/tests/utils.test.ts +0 -79
- package/scripts/eslint_rules/tests/validate-timing-types.test.ts +0 -289
- package/scripts/eslint_rules/tsconfig.json +0 -14
- package/scripts/extract_bugs.ts +0 -126
- package/scripts/generate_metric_compare_strings.js +0 -130
- package/scripts/hosted_mode/cert.pem +0 -21
- package/scripts/hosted_mode/key.pem +0 -28
- package/scripts/hosted_mode/server.js +0 -258
- package/scripts/javascript_natives/helpers.js +0 -232
- package/scripts/javascript_natives/index.js +0 -105
- package/scripts/javascript_natives/package.json +0 -9
- package/scripts/javascript_natives/test.d.ts +0 -13
- package/scripts/javascript_natives/tests.js +0 -195
- package/scripts/migration/class-fields/migrate.js +0 -77
- package/scripts/migration/class-fields/migrate.sh +0 -8
- package/scripts/migration/class-fields/package.json +0 -5
- package/scripts/migration/e2e_non_hosted_gemini.mjs +0 -102
- package/scripts/migration/web-tests-esm/rename-legacy-global.mjs +0 -129
- package/scripts/npm_test.js +0 -141
- package/scripts/protocol_typescript/protocol_dts_generator.ts +0 -470
- package/scripts/protocol_typescript/protocol_schema.d.ts +0 -97
- package/scripts/reformat-clang-js-ts.js +0 -71
- package/scripts/run_build.mjs +0 -128
- package/scripts/run_on_target.mjs +0 -88
- package/scripts/run_start.mjs +0 -236
- package/scripts/scaffold/README.md +0 -4
- package/scripts/scaffold/scaffold-widget.js +0 -167
- package/scripts/scaffold/templates/WidgetTemplate.css.txt +0 -9
- package/scripts/scaffold/templates/WidgetTemplate.ts.txt +0 -60
- package/scripts/search-trace-files.js +0 -66
- package/scripts/stylelint_rules/lib/use_theme_colors.mjs +0 -322
- package/scripts/stylelint_rules/tests/use_theme_colors.test.js +0 -515
- package/scripts/tools/update_goldens.py +0 -432
- package/scripts/tsconfig.json +0 -11
- package/scripts/utils.js +0 -160
- package/scripts/whitespaces.txt +0 -12
@@ -1,2250 +0,0 @@
|
|
1
|
-
// Copyright 2022 The Chromium Authors. All rights reserved.
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
3
|
-
// found in the LICENSE file.
|
4
|
-
|
5
|
-
import type {SinonStub, SinonStubbedInstance} from 'sinon';
|
6
|
-
|
7
|
-
import * as Common from '../../core/common/common.js';
|
8
|
-
import * as SDK from '../../core/sdk/sdk.js';
|
9
|
-
import * as Protocol from '../../generated/protocol.js';
|
10
|
-
import * as Bindings from '../../models/bindings/bindings.js';
|
11
|
-
import * as Workspace from '../../models/workspace/workspace.js';
|
12
|
-
import {renderElementIntoDOM} from '../../testing/DOMHelpers.js';
|
13
|
-
import {createTarget} from '../../testing/EnvironmentHelpers.js';
|
14
|
-
import {spyCall} from '../../testing/ExpectStubCall.js';
|
15
|
-
import {describeWithMockConnection, setMockConnectionResponseHandler} from '../../testing/MockConnection.js';
|
16
|
-
import {
|
17
|
-
getMatchedStyles,
|
18
|
-
getMatchedStylesWithBlankRule,
|
19
|
-
} from '../../testing/StyleHelpers.js';
|
20
|
-
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
21
|
-
import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
22
|
-
import * as Tooltips from '../../ui/components/tooltips/tooltips.js';
|
23
|
-
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
24
|
-
import * as LegacyUI from '../../ui/legacy/legacy.js';
|
25
|
-
|
26
|
-
import * as ElementsComponents from './components/components.js';
|
27
|
-
import * as Elements from './elements.js';
|
28
|
-
|
29
|
-
describeWithMockConnection('StylePropertyTreeElement', () => {
|
30
|
-
let stylesSidebarPane: Elements.StylesSidebarPane.StylesSidebarPane;
|
31
|
-
let mockVariableMap: Record<string, string|SDK.CSSProperty.CSSProperty>;
|
32
|
-
let matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles;
|
33
|
-
let fakeComputeCSSVariable: SinonStub<
|
34
|
-
[style: SDK.CSSStyleDeclaration.CSSStyleDeclaration, variableName: string],
|
35
|
-
SDK.CSSMatchedStyles.CSSVariableValue|null>;
|
36
|
-
let cssModel: SDK.CSSModel.CSSModel;
|
37
|
-
|
38
|
-
const environmentVariables = {a: 'A'};
|
39
|
-
|
40
|
-
beforeEach(async () => {
|
41
|
-
const computedStyleModel = new Elements.ComputedStyleModel.ComputedStyleModel();
|
42
|
-
stylesSidebarPane = new Elements.StylesSidebarPane.StylesSidebarPane(computedStyleModel);
|
43
|
-
mockVariableMap = {
|
44
|
-
'--a': 'red',
|
45
|
-
'--b': 'blue',
|
46
|
-
'--blue': 'blue',
|
47
|
-
'--space': 'shorter hue',
|
48
|
-
'--garbage-space': 'this-is-garbage-text',
|
49
|
-
'--prop': 'customproperty',
|
50
|
-
'--zero': '0',
|
51
|
-
'--empty': '',
|
52
|
-
};
|
53
|
-
|
54
|
-
matchedStyles = await getMatchedStylesWithBlankRule({
|
55
|
-
cssModel: new SDK.CSSModel.CSSModel(createTarget()),
|
56
|
-
range: {
|
57
|
-
startLine: 0,
|
58
|
-
startColumn: 0,
|
59
|
-
endLine: 0,
|
60
|
-
endColumn: 1,
|
61
|
-
},
|
62
|
-
getEnvironmentVariablesCallback: () => ({environmentVariables})
|
63
|
-
});
|
64
|
-
sinon.stub(matchedStyles, 'availableCSSVariables').returns(Object.keys(mockVariableMap));
|
65
|
-
fakeComputeCSSVariable = sinon.stub(matchedStyles, 'computeCSSVariable').callsFake((_style, name) => {
|
66
|
-
const value = mockVariableMap[name];
|
67
|
-
if (!value) {
|
68
|
-
return null;
|
69
|
-
}
|
70
|
-
if (typeof value === 'string') {
|
71
|
-
return {
|
72
|
-
value,
|
73
|
-
declaration: new SDK.CSSMatchedStyles.CSSValueSource(sinon.createStubInstance(SDK.CSSProperty.CSSProperty)),
|
74
|
-
};
|
75
|
-
}
|
76
|
-
return {value: value.value, declaration: new SDK.CSSMatchedStyles.CSSValueSource(value)};
|
77
|
-
});
|
78
|
-
|
79
|
-
const workspace = Workspace.Workspace.WorkspaceImpl.instance({forceNew: true});
|
80
|
-
const resourceMapping =
|
81
|
-
new Bindings.ResourceMapping.ResourceMapping(SDK.TargetManager.TargetManager.instance(), workspace);
|
82
|
-
Bindings.CSSWorkspaceBinding.CSSWorkspaceBinding.instance(
|
83
|
-
{forceNew: true, resourceMapping, targetManager: SDK.TargetManager.TargetManager.instance()});
|
84
|
-
|
85
|
-
setMockConnectionResponseHandler('CSS.enable', () => ({}));
|
86
|
-
cssModel = new SDK.CSSModel.CSSModel(createTarget());
|
87
|
-
await cssModel.resumeModel();
|
88
|
-
const domModel = cssModel.domModel();
|
89
|
-
const node = new SDK.DOMModel.DOMNode(domModel);
|
90
|
-
node.id = 0 as Protocol.DOM.NodeId;
|
91
|
-
LegacyUI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
|
92
|
-
});
|
93
|
-
|
94
|
-
function addProperty(name: string, value: string, longhandProperties: Protocol.CSS.CSSProperty[] = []) {
|
95
|
-
const property = new SDK.CSSProperty.CSSProperty(
|
96
|
-
matchedStyles.nodeStyles()[0], matchedStyles.nodeStyles()[0].pastLastSourcePropertyIndex(), name, value, true,
|
97
|
-
false, true, false, '', undefined, longhandProperties);
|
98
|
-
matchedStyles.nodeStyles()[0].allProperties().push(property);
|
99
|
-
return property;
|
100
|
-
}
|
101
|
-
|
102
|
-
async function getTreeElementForFunctionRule(functionName: string, result: string, propertyName = 'result') {
|
103
|
-
const matchedStyles = await getMatchedStyles({
|
104
|
-
functionRules:
|
105
|
-
[{name: {text: functionName}, origin: Protocol.CSS.StyleSheetOrigin.Regular, parameters: [], children: []}]
|
106
|
-
});
|
107
|
-
|
108
|
-
const property = new SDK.CSSProperty.CSSProperty(
|
109
|
-
matchedStyles.functionRules()[0].style, matchedStyles.functionRules()[0].style.pastLastSourcePropertyIndex(),
|
110
|
-
propertyName, result, true, false, true, false, '', undefined, []);
|
111
|
-
matchedStyles.functionRules()[0].style.allProperties().push(property);
|
112
|
-
return new Elements.StylePropertyTreeElement.StylePropertyTreeElement({
|
113
|
-
stylesPane: stylesSidebarPane,
|
114
|
-
section: sinon.createStubInstance(Elements.StylePropertiesSection.StylePropertiesSection),
|
115
|
-
matchedStyles,
|
116
|
-
property,
|
117
|
-
isShorthand: false,
|
118
|
-
inherited: false,
|
119
|
-
overloaded: false,
|
120
|
-
newProperty: true,
|
121
|
-
});
|
122
|
-
}
|
123
|
-
|
124
|
-
function getTreeElement(name: string, value: string, longhandProperties: Protocol.CSS.CSSProperty[] = []) {
|
125
|
-
const property = addProperty(name, value, longhandProperties);
|
126
|
-
const section = new Elements.StylePropertiesSection.StylePropertiesSection(
|
127
|
-
stylesSidebarPane, matchedStyles, property.ownerStyle, 0, null, null);
|
128
|
-
return new Elements.StylePropertyTreeElement.StylePropertyTreeElement({
|
129
|
-
stylesPane: stylesSidebarPane,
|
130
|
-
section,
|
131
|
-
matchedStyles,
|
132
|
-
property,
|
133
|
-
isShorthand: longhandProperties.length > 0,
|
134
|
-
inherited: false,
|
135
|
-
overloaded: false,
|
136
|
-
newProperty: true,
|
137
|
-
});
|
138
|
-
}
|
139
|
-
|
140
|
-
describe('updateTitle', () => {
|
141
|
-
it('timing swatch, shadow swatch and length swatch are not shown for longhands expanded inside shorthands',
|
142
|
-
async () => {
|
143
|
-
const stylePropertyTreeElement = getTreeElement('', '', [
|
144
|
-
{name: 'animation-timing-function', value: 'linear'},
|
145
|
-
{name: 'text-shadow', value: '2px 2px #ff0000'},
|
146
|
-
{name: 'box-shadow', value: '2px 2px #ff0000'},
|
147
|
-
{name: 'margin-top', value: '10px'},
|
148
|
-
]);
|
149
|
-
await stylePropertyTreeElement.onpopulate();
|
150
|
-
|
151
|
-
stylePropertyTreeElement.updateTitle();
|
152
|
-
stylePropertyTreeElement.expand();
|
153
|
-
|
154
|
-
const assertNullSwatchOnChildAt = (n: number, swatchSelector: string) => {
|
155
|
-
const childValueElement =
|
156
|
-
(stylePropertyTreeElement.childAt(n) as Elements.StylePropertyTreeElement.StylePropertyTreeElement)
|
157
|
-
.valueElement;
|
158
|
-
assert.exists(childValueElement);
|
159
|
-
assert.notExists(childValueElement.querySelector(swatchSelector));
|
160
|
-
};
|
161
|
-
assertNullSwatchOnChildAt(0, 'devtools-bezier-swatch');
|
162
|
-
assertNullSwatchOnChildAt(1, '[is="css-shadow-swatch"]');
|
163
|
-
assertNullSwatchOnChildAt(2, '[is="css-shadow-swatch"]');
|
164
|
-
assertNullSwatchOnChildAt(3, 'devtools-css-length');
|
165
|
-
});
|
166
|
-
|
167
|
-
it('is able to expand longhands with vars', async () => {
|
168
|
-
setMockConnectionResponseHandler(
|
169
|
-
'CSS.getLonghandProperties', (request: Protocol.CSS.GetLonghandPropertiesRequest) => {
|
170
|
-
if (request.shorthandName !== 'shorthand') {
|
171
|
-
return {getError: () => 'Invalid shorthand'};
|
172
|
-
}
|
173
|
-
const longhands = request.value.split(' ');
|
174
|
-
if (longhands.length !== 3) {
|
175
|
-
return {getError: () => 'Invalid value'};
|
176
|
-
}
|
177
|
-
return {
|
178
|
-
longhandProperties: [
|
179
|
-
{name: 'first', value: longhands[0]},
|
180
|
-
{name: 'second', value: longhands[1]},
|
181
|
-
{name: 'third', value: longhands[2]},
|
182
|
-
]
|
183
|
-
};
|
184
|
-
});
|
185
|
-
const stylePropertyTreeElement = getTreeElement(
|
186
|
-
'shorthand', 'var(--a) var(--space)',
|
187
|
-
[{name: 'first', value: ''}, {name: 'second', value: ''}, {name: 'third', value: ''}]);
|
188
|
-
await stylePropertyTreeElement.onpopulate();
|
189
|
-
stylePropertyTreeElement.updateTitle();
|
190
|
-
stylePropertyTreeElement.expand();
|
191
|
-
const children = stylePropertyTreeElement.children().map(
|
192
|
-
child => (child as Elements.StylePropertyTreeElement.StylePropertyTreeElement).valueElement?.innerText);
|
193
|
-
assert.deepEqual(children, ['red', 'shorter', 'hue']);
|
194
|
-
});
|
195
|
-
|
196
|
-
describe('color-mix swatch', () => {
|
197
|
-
it('should show color mix swatch when color-mix is used with a color', () => {
|
198
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, red, blue)');
|
199
|
-
stylePropertyTreeElement.updateTitle();
|
200
|
-
|
201
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
202
|
-
const colorSwatches =
|
203
|
-
Array.from(stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-swatch') || []);
|
204
|
-
assert.exists(colorMixSwatch);
|
205
|
-
assert.exists(colorSwatches.find(colorSwatch => colorSwatch.nextElementSibling?.textContent === 'red'));
|
206
|
-
assert.exists(colorSwatches.find(colorSwatch => colorSwatch.nextElementSibling?.textContent === 'blue'));
|
207
|
-
});
|
208
|
-
|
209
|
-
it('should show color mix swatch when color-mix is used with a known variable as color', () => {
|
210
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, var(--a), var(--b))');
|
211
|
-
stylePropertyTreeElement.updateTitle();
|
212
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement!);
|
213
|
-
|
214
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
215
|
-
const cssVarSwatches =
|
216
|
-
Array.from(stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-link-swatch') || []);
|
217
|
-
assert.exists(colorMixSwatch);
|
218
|
-
assert.exists(cssVarSwatches.find(cssVarSwatch => cssVarSwatch.innerText === '--a'));
|
219
|
-
assert.exists(cssVarSwatches.find(cssVarSwatch => cssVarSwatch.innerText === '--b'));
|
220
|
-
});
|
221
|
-
|
222
|
-
it('should not show color mix swatch when color-mix is used with an unknown variable as color', () => {
|
223
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, var(--unknown-a), var(--b))');
|
224
|
-
stylePropertyTreeElement.updateTitle();
|
225
|
-
|
226
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
227
|
-
assert.isNull(colorMixSwatch);
|
228
|
-
});
|
229
|
-
|
230
|
-
it('should show color mix swatch when color-mix is used with a known variable in interpolation method', () => {
|
231
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in lch var(--space), var(--a), var(--b))');
|
232
|
-
stylePropertyTreeElement.updateTitle();
|
233
|
-
|
234
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
235
|
-
assert.exists(colorMixSwatch);
|
236
|
-
});
|
237
|
-
|
238
|
-
it('should show color mix swatch when color-mix is used with an known variable in interpolation method even if it is not a valid method',
|
239
|
-
() => {
|
240
|
-
const stylePropertyTreeElement =
|
241
|
-
getTreeElement('color', 'color-mix(in lch var(--garbage-space), var(--a), var(--b))');
|
242
|
-
stylePropertyTreeElement.updateTitle();
|
243
|
-
|
244
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
245
|
-
assert.exists(colorMixSwatch);
|
246
|
-
});
|
247
|
-
|
248
|
-
it('should not show color mix swatch when color-mix is used with an unknown variable in interpolation method',
|
249
|
-
() => {
|
250
|
-
const stylePropertyTreeElement =
|
251
|
-
getTreeElement('color', 'color-mix(in lch var(--not-existing-space), var(--a), var(--b))');
|
252
|
-
|
253
|
-
stylePropertyTreeElement.updateTitle();
|
254
|
-
|
255
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
256
|
-
assert.isNull(colorMixSwatch);
|
257
|
-
});
|
258
|
-
|
259
|
-
it('shows a popover with it\'s computed color as RGB if possible', () => {
|
260
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, red 50%, yellow)');
|
261
|
-
stylePropertyTreeElement.treeOutline = new LegacyUI.TreeOutline.TreeOutline();
|
262
|
-
|
263
|
-
stylePropertyTreeElement.updateTitle();
|
264
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
265
|
-
assert.exists(colorMixSwatch);
|
266
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement as HTMLElement);
|
267
|
-
|
268
|
-
const tooltip: Tooltips.Tooltip.Tooltip|null|undefined = stylePropertyTreeElement.valueElement?.querySelector(
|
269
|
-
'devtools-tooltip:not([jslogcontext="elements.css-value-trace"])');
|
270
|
-
assert.exists(tooltip);
|
271
|
-
tooltip.showPopover();
|
272
|
-
assert.strictEqual(tooltip.textContent, '#ff8000');
|
273
|
-
});
|
274
|
-
|
275
|
-
it('shows a popover with it\'s computed color as wide gamut if necessary', () => {
|
276
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, oklch(.5 .5 .5) 50%, yellow)');
|
277
|
-
|
278
|
-
stylePropertyTreeElement.updateTitle();
|
279
|
-
const colorMixSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-mix-swatch');
|
280
|
-
assert.exists(colorMixSwatch);
|
281
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement as HTMLElement);
|
282
|
-
|
283
|
-
const tooltip = stylePropertyTreeElement.valueElement?.querySelector(
|
284
|
-
'devtools-tooltip:not([jslogcontext="elements.css-value-trace"])') as HTMLElement |
|
285
|
-
null | undefined;
|
286
|
-
tooltip?.showPopover();
|
287
|
-
assert.strictEqual(tooltip?.textContent, 'color(srgb 1 0.24 0.17)');
|
288
|
-
});
|
289
|
-
|
290
|
-
it('propagates updates to outer color-mixes', () => {
|
291
|
-
const stylePropertyTreeElement =
|
292
|
-
getTreeElement('color', 'color-mix(in srgb, color-mix(in oklch, red, green), blue)');
|
293
|
-
stylePropertyTreeElement.updateTitle();
|
294
|
-
|
295
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
296
|
-
|
297
|
-
const [outerColorMix, innerColorMix] =
|
298
|
-
Array.from(stylePropertyTreeElement.valueElement.querySelectorAll('devtools-color-mix-swatch'));
|
299
|
-
assert.exists(outerColorMix);
|
300
|
-
assert.exists(innerColorMix);
|
301
|
-
const handler = sinon.fake();
|
302
|
-
outerColorMix.addEventListener(InlineEditor.ColorMixSwatch.ColorMixChangedEvent.eventName, handler);
|
303
|
-
assert.strictEqual(outerColorMix.getText(), 'color-mix(in srgb, color-mix(in oklch, red, green), blue)');
|
304
|
-
assert.strictEqual(innerColorMix.getText(), 'color-mix(in oklch, red, green)');
|
305
|
-
innerColorMix.setFirstColor('blue');
|
306
|
-
assert.deepEqual(handler.args[0][0].data, {text: 'color-mix(in srgb, color-mix(in oklch, blue, green), blue)'});
|
307
|
-
assert.strictEqual(outerColorMix.getText(), 'color-mix(in srgb, color-mix(in oklch, blue, green), blue)');
|
308
|
-
|
309
|
-
// setFirstColor does not actually update the rendered color swatches or the textContent, which is why the first
|
310
|
-
// color is still red here.
|
311
|
-
const colorSwatch = stylePropertyTreeElement.valueElement.querySelector('devtools-color-swatch');
|
312
|
-
assert.isOk(colorSwatch);
|
313
|
-
const newColor = colorSwatch.getColor()?.as(Common.Color.Format.HEX);
|
314
|
-
assert.isOk(newColor);
|
315
|
-
colorSwatch.setColor(newColor);
|
316
|
-
assert.strictEqual(outerColorMix.getText(), 'color-mix(in srgb, color-mix(in oklch, #ff0000, green), blue)');
|
317
|
-
assert.deepEqual(
|
318
|
-
handler.args[1][0].data, {text: 'color-mix(in srgb, color-mix(in oklch, #ff0000, green), blue)'});
|
319
|
-
});
|
320
|
-
|
321
|
-
it('supports evaluation during tracing', async () => {
|
322
|
-
const property = addProperty('color', 'color-mix(in srgb, black, white)');
|
323
|
-
setMockConnectionResponseHandler(
|
324
|
-
'CSS.resolveValues',
|
325
|
-
(request: Protocol.CSS.ResolveValuesRequest) =>
|
326
|
-
({results: request.values.map(v => v === property.value ? 'grey' : v)}));
|
327
|
-
const matchedResult = property.parseValue(matchedStyles, new Map());
|
328
|
-
|
329
|
-
const context =
|
330
|
-
new Elements.PropertyRenderer.TracingContext(new Elements.PropertyRenderer.Highlighting(), false);
|
331
|
-
assert.isTrue(context.nextEvaluation());
|
332
|
-
const {valueElement} = Elements.PropertyRenderer.Renderer.renderValueElement(
|
333
|
-
property, matchedResult,
|
334
|
-
Elements.StylePropertyTreeElement.getPropertyRenderers(
|
335
|
-
property.name, matchedStyles.nodeStyles()[0], stylesSidebarPane, matchedStyles, null, new Map()),
|
336
|
-
context);
|
337
|
-
|
338
|
-
const colorSwatch = valueElement.querySelector('devtools-color-swatch');
|
339
|
-
assert.exists(colorSwatch);
|
340
|
-
const setColorTextCall = spyCall(colorSwatch, 'setColor');
|
341
|
-
|
342
|
-
assert.isTrue(await context.runAsyncEvaluations());
|
343
|
-
assert.strictEqual((await setColorTextCall).args[0].asString(), '#808080');
|
344
|
-
assert.strictEqual(valueElement.innerText, '#808080');
|
345
|
-
});
|
346
|
-
|
347
|
-
it('shows a value tracing tooltip on the var function', async () => {
|
348
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, yellow, green)');
|
349
|
-
stylePropertyTreeElement.updateTitle();
|
350
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
351
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
352
|
-
const tooltip = stylePropertyTreeElement.valueElement.querySelector('devtools-tooltip');
|
353
|
-
assert.exists(tooltip);
|
354
|
-
const widget = tooltip.firstElementChild && LegacyUI.Widget.Widget.get(tooltip.firstElementChild);
|
355
|
-
assert.instanceOf(widget, Elements.CSSValueTraceView.CSSValueTraceView);
|
356
|
-
});
|
357
|
-
});
|
358
|
-
|
359
|
-
describe('animation-name', () => {
|
360
|
-
it('should link-swatch be rendered for animation-name declaration', () => {
|
361
|
-
const stylePropertyTreeElement = getTreeElement('animation-name', 'first-keyframe');
|
362
|
-
stylePropertyTreeElement.updateTitle();
|
363
|
-
|
364
|
-
const animationNameSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
365
|
-
assert.isNotNull(animationNameSwatch);
|
366
|
-
});
|
367
|
-
|
368
|
-
it('should two link-swatches be rendered for animation-name declaration that contains two keyframe references',
|
369
|
-
() => {
|
370
|
-
const stylePropertyTreeElement = getTreeElement('animation-name', 'first-keyframe, second-keyframe');
|
371
|
-
stylePropertyTreeElement.updateTitle();
|
372
|
-
|
373
|
-
const animationNameSwatches =
|
374
|
-
stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-link-swatch');
|
375
|
-
assert.strictEqual(animationNameSwatches?.length, 2);
|
376
|
-
});
|
377
|
-
|
378
|
-
describe('jumping to animations panel', () => {
|
379
|
-
let domModel: SDK.DOMModel.DOMModel;
|
380
|
-
beforeEach(async () => {
|
381
|
-
const target = createTarget();
|
382
|
-
const domModelBeforeAssertion = target.model(SDK.DOMModel.DOMModel);
|
383
|
-
assert.exists(domModelBeforeAssertion);
|
384
|
-
domModel = domModelBeforeAssertion;
|
385
|
-
});
|
386
|
-
|
387
|
-
it('should render a jump-to icon when the animation with the given name exists for the node', async () => {
|
388
|
-
const stubAnimationGroup = sinon.createStubInstance(SDK.AnimationModel.AnimationGroup);
|
389
|
-
const getAnimationGroupForAnimationStub =
|
390
|
-
sinon.stub(SDK.AnimationModel.AnimationModel.prototype, 'getAnimationGroupForAnimation')
|
391
|
-
.resolves(stubAnimationGroup);
|
392
|
-
const domNode = SDK.DOMModel.DOMNode.create(domModel, null, false, {
|
393
|
-
nodeId: 1 as Protocol.DOM.NodeId,
|
394
|
-
backendNodeId: 2 as Protocol.DOM.BackendNodeId,
|
395
|
-
nodeType: Node.ELEMENT_NODE,
|
396
|
-
nodeName: 'div',
|
397
|
-
localName: 'div',
|
398
|
-
nodeValue: '',
|
399
|
-
});
|
400
|
-
const stylePropertyTreeElement = getTreeElement('animation-name', 'first-keyframe, second-keyframe');
|
401
|
-
sinon.stub(stylePropertyTreeElement, 'node').returns(domNode);
|
402
|
-
|
403
|
-
stylePropertyTreeElement.updateTitle();
|
404
|
-
await Promise.all(getAnimationGroupForAnimationStub.returnValues);
|
405
|
-
|
406
|
-
const jumpToIcon =
|
407
|
-
stylePropertyTreeElement.valueElement?.querySelector('devtools-icon.open-in-animations-panel');
|
408
|
-
assert.exists(jumpToIcon);
|
409
|
-
});
|
410
|
-
|
411
|
-
it('should clicking on the jump-to icon reveal the resolved animation group', async () => {
|
412
|
-
const stubAnimationGroup = sinon.createStubInstance(SDK.AnimationModel.AnimationGroup);
|
413
|
-
const revealerSpy = sinon.stub(Common.Revealer.RevealerRegistry.instance(), 'reveal');
|
414
|
-
const getAnimationGroupForAnimationStub =
|
415
|
-
sinon.stub(SDK.AnimationModel.AnimationModel.prototype, 'getAnimationGroupForAnimation')
|
416
|
-
.resolves(stubAnimationGroup);
|
417
|
-
const domNode = SDK.DOMModel.DOMNode.create(domModel, null, false, {
|
418
|
-
nodeId: 1 as Protocol.DOM.NodeId,
|
419
|
-
backendNodeId: 2 as Protocol.DOM.BackendNodeId,
|
420
|
-
nodeType: Node.ELEMENT_NODE,
|
421
|
-
nodeName: 'div',
|
422
|
-
localName: 'div',
|
423
|
-
nodeValue: '',
|
424
|
-
});
|
425
|
-
const stylePropertyTreeElement = getTreeElement('animation-name', 'first-keyframe, second-keyframe');
|
426
|
-
sinon.stub(stylePropertyTreeElement, 'node').returns(domNode);
|
427
|
-
|
428
|
-
stylePropertyTreeElement.updateTitle();
|
429
|
-
await Promise.all(getAnimationGroupForAnimationStub.returnValues);
|
430
|
-
|
431
|
-
const jumpToIcon =
|
432
|
-
stylePropertyTreeElement.valueElement?.querySelector('devtools-icon.open-in-animations-panel');
|
433
|
-
jumpToIcon?.dispatchEvent(new Event('mouseup'));
|
434
|
-
assert.isTrue(
|
435
|
-
revealerSpy.calledWith(stubAnimationGroup),
|
436
|
-
'Common.Revealer.reveal is not called for the animation group');
|
437
|
-
});
|
438
|
-
|
439
|
-
it('should not render a jump-to icon when the animation with the given name does not exist for the node',
|
440
|
-
async () => {
|
441
|
-
const getAnimationGroupForAnimationStub =
|
442
|
-
sinon.stub(SDK.AnimationModel.AnimationModel.prototype, 'getAnimationGroupForAnimation')
|
443
|
-
.resolves(null);
|
444
|
-
const domNode = SDK.DOMModel.DOMNode.create(domModel, null, false, {
|
445
|
-
nodeId: 1 as Protocol.DOM.NodeId,
|
446
|
-
backendNodeId: 2 as Protocol.DOM.BackendNodeId,
|
447
|
-
nodeType: Node.ELEMENT_NODE,
|
448
|
-
nodeName: 'div',
|
449
|
-
localName: 'div',
|
450
|
-
nodeValue: '',
|
451
|
-
});
|
452
|
-
const stylePropertyTreeElement = getTreeElement('animation-name', 'first-keyframe, second-keyframe');
|
453
|
-
sinon.stub(stylePropertyTreeElement, 'node').returns(domNode);
|
454
|
-
|
455
|
-
stylePropertyTreeElement.updateTitle();
|
456
|
-
await Promise.all(getAnimationGroupForAnimationStub.returnValues);
|
457
|
-
|
458
|
-
const jumpToIcon =
|
459
|
-
stylePropertyTreeElement.valueElement?.querySelector('devtools-icon.open-in-animations-panel');
|
460
|
-
assert.notExists(jumpToIcon);
|
461
|
-
});
|
462
|
-
});
|
463
|
-
});
|
464
|
-
});
|
465
|
-
|
466
|
-
it('applies the new style when the color format is changed', async () => {
|
467
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color(srgb .5 .5 1)');
|
468
|
-
const applyStyleTextStub = sinon.stub(stylePropertyTreeElement, 'applyStyleText');
|
469
|
-
// Make sure we don't leave a dangling promise behind:
|
470
|
-
const returnValue = (async () => {})();
|
471
|
-
await returnValue;
|
472
|
-
applyStyleTextStub.returns(returnValue);
|
473
|
-
|
474
|
-
stylePropertyTreeElement.updateTitle();
|
475
|
-
|
476
|
-
const {valueElement} = stylePropertyTreeElement;
|
477
|
-
assert.exists(valueElement);
|
478
|
-
|
479
|
-
const swatch = valueElement.querySelector<InlineEditor.ColorSwatch.ColorSwatch>('devtools-color-swatch');
|
480
|
-
|
481
|
-
assert.exists(swatch);
|
482
|
-
|
483
|
-
const expectedColorString = swatch.getColor()?.asString(Common.Color.Format.LAB);
|
484
|
-
assert.exists(expectedColorString);
|
485
|
-
assert.match(expectedColorString, /lab\([-.0-9]* [-.0-9]* [-.0-9]*\)/);
|
486
|
-
|
487
|
-
const newColor = swatch.getColor()?.as(Common.Color.Format.LAB);
|
488
|
-
assert.isOk(newColor);
|
489
|
-
swatch.dispatchEvent(new InlineEditor.ColorSwatch.ColorFormatChangedEvent(newColor));
|
490
|
-
assert.deepEqual(stylePropertyTreeElement.renderedPropertyText(), `color: ${expectedColorString}`);
|
491
|
-
|
492
|
-
sinon.assert.alwaysCalledWith(applyStyleTextStub, `color: ${expectedColorString}`, false);
|
493
|
-
});
|
494
|
-
|
495
|
-
describe('Context menu', () => {
|
496
|
-
const expectedHeaderSectionItemsLabels =
|
497
|
-
['Copy declaration', 'Copy property', 'Copy value', 'Copy rule', 'Copy declaration as JS'];
|
498
|
-
const expectedClipboardSectionItemsLabels = ['Copy all declarations', 'Copy all declarations as JS'];
|
499
|
-
const expectedFooterSectionItemsLabels = ['View computed value'];
|
500
|
-
|
501
|
-
it('should create a context menu', () => {
|
502
|
-
const verifySection = (expectedSectionItemLabels: string[], sectionItems: LegacyUI.ContextMenu.Item[]) => {
|
503
|
-
const sectionItemLabels = sectionItems.map(item => item.buildDescriptor().label);
|
504
|
-
assert.deepEqual(sectionItemLabels, expectedSectionItemLabels);
|
505
|
-
};
|
506
|
-
const stylePropertyTreeElement = getTreeElement('', '');
|
507
|
-
const event = new CustomEvent('contextmenu');
|
508
|
-
const contextMenu = stylePropertyTreeElement.createCopyContextMenu(event);
|
509
|
-
|
510
|
-
const headerSection = contextMenu.headerSection();
|
511
|
-
const clipboardSection = contextMenu.clipboardSection();
|
512
|
-
const footerSection = contextMenu.footerSection();
|
513
|
-
verifySection(expectedHeaderSectionItemsLabels, headerSection.items);
|
514
|
-
verifySection(expectedClipboardSectionItemsLabels, clipboardSection.items);
|
515
|
-
verifySection(expectedFooterSectionItemsLabels, footerSection.items);
|
516
|
-
});
|
517
|
-
});
|
518
|
-
|
519
|
-
describe('CSS hints', () => {
|
520
|
-
it('should create a hint for inline elements', () => {
|
521
|
-
sinon.stub(stylesSidebarPane, 'node').returns({
|
522
|
-
localName() {
|
523
|
-
return 'span';
|
524
|
-
},
|
525
|
-
isSVGNode() {
|
526
|
-
return false;
|
527
|
-
},
|
528
|
-
} as SDK.DOMModel.DOMNode);
|
529
|
-
const stylePropertyTreeElement = getTreeElement('width', '100px');
|
530
|
-
stylePropertyTreeElement.setComputedStyles(new Map([
|
531
|
-
['width', '100px'],
|
532
|
-
['display', 'inline'],
|
533
|
-
]));
|
534
|
-
stylePropertyTreeElement.updateAuthoringHint();
|
535
|
-
assert(
|
536
|
-
stylePropertyTreeElement.listItemElement.classList.contains('inactive-property'),
|
537
|
-
'CSS hint was not rendered.');
|
538
|
-
});
|
539
|
-
|
540
|
-
it('should not create a hint for SVG elements', () => {
|
541
|
-
sinon.stub(stylesSidebarPane, 'node').returns({
|
542
|
-
localName() {
|
543
|
-
return 'rect';
|
544
|
-
},
|
545
|
-
isSVGNode() {
|
546
|
-
return true;
|
547
|
-
},
|
548
|
-
} as SDK.DOMModel.DOMNode);
|
549
|
-
const stylePropertyTreeElement = getTreeElement('width', '100px');
|
550
|
-
stylePropertyTreeElement.setComputedStyles(new Map([
|
551
|
-
['width', '100px'],
|
552
|
-
['display', 'inline'],
|
553
|
-
]));
|
554
|
-
stylePropertyTreeElement.updateAuthoringHint();
|
555
|
-
assert.isNotOk(
|
556
|
-
stylePropertyTreeElement.listItemElement.classList.contains('inactive-property'),
|
557
|
-
'CSS hint was rendered unexpectedly.');
|
558
|
-
});
|
559
|
-
});
|
560
|
-
|
561
|
-
describe('custom-properties', () => {
|
562
|
-
it('linkifies var functions to declarations', async () => {
|
563
|
-
const cssCustomPropertyDef = addProperty('--prop', 'value');
|
564
|
-
fakeComputeCSSVariable.callsFake(
|
565
|
-
(_, name) => name === '--prop' ? {
|
566
|
-
value: 'computedvalue',
|
567
|
-
declaration: new SDK.CSSMatchedStyles.CSSValueSource(cssCustomPropertyDef),
|
568
|
-
fromFallback: false,
|
569
|
-
} :
|
570
|
-
null);
|
571
|
-
const renderValueSpy = sinon.spy(Elements.PropertyRenderer.Renderer, 'renderValueElement');
|
572
|
-
|
573
|
-
const stylePropertyTreeElement = getTreeElement('prop', 'var(--prop)');
|
574
|
-
stylePropertyTreeElement.updateTitle();
|
575
|
-
|
576
|
-
const varSwatch = renderValueSpy.returnValues
|
577
|
-
.map(fragment => Array.from(fragment.valueElement.querySelectorAll('devtools-link-swatch')))
|
578
|
-
.flat()[0];
|
579
|
-
assert.exists(varSwatch);
|
580
|
-
const revealPropertySpy = sinon.spy(stylesSidebarPane, 'revealProperty');
|
581
|
-
varSwatch.linkElement?.click();
|
582
|
-
sinon.assert.calledWith(revealPropertySpy, cssCustomPropertyDef);
|
583
|
-
});
|
584
|
-
|
585
|
-
it('linkifies property definition to registrations', async () => {
|
586
|
-
const registration = sinon.createStubInstance(SDK.CSSMatchedStyles.CSSRegisteredProperty);
|
587
|
-
sinon.stub(matchedStyles, 'getRegisteredProperty')
|
588
|
-
.callsFake(name => name === '--prop' ? registration : undefined);
|
589
|
-
fakeComputeCSSVariable.returns({
|
590
|
-
value: 'computedvalue',
|
591
|
-
declaration: new SDK.CSSMatchedStyles.CSSValueSource(sinon.createStubInstance(SDK.CSSProperty.CSSProperty)),
|
592
|
-
});
|
593
|
-
|
594
|
-
const stylePropertyTreeElement = getTreeElement('--prop', 'value');
|
595
|
-
stylePropertyTreeElement.treeOutline = new LegacyUI.TreeOutline.TreeOutline();
|
596
|
-
stylePropertyTreeElement.updateTitle();
|
597
|
-
|
598
|
-
const popoverContents =
|
599
|
-
stylePropertyTreeElement.listItemElement.querySelector('devtools-tooltip > devtools-css-variable-value-view');
|
600
|
-
assert.instanceOf(popoverContents, ElementsComponents.CSSVariableValueView.CSSVariableValueView);
|
601
|
-
const {details} = popoverContents;
|
602
|
-
assert.exists(details);
|
603
|
-
|
604
|
-
const jumpToSectionSpy = sinon.spy(stylesSidebarPane, 'jumpToSection');
|
605
|
-
details.goToDefinition();
|
606
|
-
sinon.assert.calledOnceWithExactly(
|
607
|
-
jumpToSectionSpy, '--prop', Elements.StylesSidebarPane.REGISTERED_PROPERTY_SECTION_NAME);
|
608
|
-
});
|
609
|
-
|
610
|
-
it('linkifies var functions to initial-value registrations', async () => {
|
611
|
-
fakeComputeCSSVariable.returns({
|
612
|
-
value: 'computedvalue',
|
613
|
-
declaration: new SDK.CSSMatchedStyles.CSSValueSource(
|
614
|
-
sinon.createStubInstance(SDK.CSSMatchedStyles.CSSRegisteredProperty, {propertyName: '--prop'})),
|
615
|
-
});
|
616
|
-
const renderValueSpy = sinon.spy(Elements.PropertyRenderer.Renderer, 'renderValueElement');
|
617
|
-
|
618
|
-
const stylePropertyTreeElement = getTreeElement('prop', 'var(--prop)');
|
619
|
-
stylePropertyTreeElement.updateTitle();
|
620
|
-
|
621
|
-
const varSwatch = renderValueSpy.returnValues
|
622
|
-
.map(fragment => Array.from(fragment.valueElement.querySelectorAll('devtools-link-swatch')))
|
623
|
-
.flat()[0];
|
624
|
-
assert.exists(varSwatch);
|
625
|
-
const jumpToPropertySpy = sinon.spy(stylesSidebarPane, 'jumpToProperty');
|
626
|
-
varSwatch.linkElement?.click();
|
627
|
-
sinon.assert.calledWith(
|
628
|
-
jumpToPropertySpy, 'initial-value', '--prop', Elements.StylesSidebarPane.REGISTERED_PROPERTY_SECTION_NAME);
|
629
|
-
});
|
630
|
-
});
|
631
|
-
|
632
|
-
describe('CSSVarSwatch', () => {
|
633
|
-
it('should render a CSSVarSwatch for variable usage without fallback', () => {
|
634
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--a)');
|
635
|
-
stylePropertyTreeElement.updateTitle();
|
636
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
637
|
-
|
638
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
639
|
-
assert.exists(linkSwatch);
|
640
|
-
|
641
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
642
|
-
assert.exists(cssVarSwatch);
|
643
|
-
|
644
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
645
|
-
assert.strictEqual(cssVarSwatch.innerText, 'var(--a)');
|
646
|
-
assert.strictEqual(linkSwatch.innerText, '--a');
|
647
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement.innerText, 'var(--a)');
|
648
|
-
});
|
649
|
-
|
650
|
-
it('should render a CSSVarSwatch for variable usage with fallback', () => {
|
651
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--not-existing, red)');
|
652
|
-
stylePropertyTreeElement.updateTitle();
|
653
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
654
|
-
|
655
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
656
|
-
assert.exists(linkSwatch);
|
657
|
-
|
658
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
659
|
-
assert.exists(cssVarSwatch);
|
660
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
661
|
-
|
662
|
-
assert.strictEqual(linkSwatch.innerText, '--not-existing');
|
663
|
-
assert.strictEqual(cssVarSwatch.innerText, 'var(--not-existing, red)');
|
664
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement.innerText, 'var(--not-existing, red)');
|
665
|
-
});
|
666
|
-
|
667
|
-
it('should render a CSSVarSwatch inside CSSVarSwatch for variable usage with another variable fallback', () => {
|
668
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--not-existing, var(--a))');
|
669
|
-
stylePropertyTreeElement.updateTitle();
|
670
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
671
|
-
|
672
|
-
const [firstLinkSwatch, secondLinkSwatch] =
|
673
|
-
stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-link-swatch');
|
674
|
-
assert.exists(firstLinkSwatch);
|
675
|
-
assert.exists(secondLinkSwatch);
|
676
|
-
const cssVarSwatch = firstLinkSwatch.parentElement;
|
677
|
-
assert.exists(cssVarSwatch);
|
678
|
-
const insideCssVarSwatch = secondLinkSwatch.parentElement;
|
679
|
-
assert.exists(insideCssVarSwatch);
|
680
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
681
|
-
|
682
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement.innerText, 'var(--not-existing, var(--a))');
|
683
|
-
assert.strictEqual(firstLinkSwatch?.innerText, '--not-existing');
|
684
|
-
assert.strictEqual(cssVarSwatch.innerText, 'var(--not-existing, var(--a))');
|
685
|
-
assert.strictEqual(secondLinkSwatch?.innerText, '--a');
|
686
|
-
assert.strictEqual(insideCssVarSwatch?.innerText, 'var(--a)');
|
687
|
-
});
|
688
|
-
|
689
|
-
it('should render a CSSVarSwatch inside CSSVarSwatch for variable usage with calc expression as fallback', () => {
|
690
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--not-existing, calc(15px + 20px))');
|
691
|
-
stylePropertyTreeElement.updateTitle();
|
692
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
693
|
-
|
694
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
695
|
-
assert.exists(linkSwatch);
|
696
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
697
|
-
assert.exists(cssVarSwatch);
|
698
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
699
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
700
|
-
|
701
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement.innerText, 'var(--not-existing, calc(15px + 20px))');
|
702
|
-
assert.strictEqual(linkSwatch?.innerText, '--not-existing');
|
703
|
-
assert.strictEqual(cssVarSwatch.innerText, 'var(--not-existing, calc(15px + 20px))');
|
704
|
-
});
|
705
|
-
|
706
|
-
it('should render a CSSVarSwatch inside CSSVarSwatch for variable usage with color and also a color swatch', () => {
|
707
|
-
for (const varName of ['--a', '--not-existing']) {
|
708
|
-
const stylePropertyTreeElement = getTreeElement('color', `var(${varName}, var(--blue))`);
|
709
|
-
stylePropertyTreeElement.updateTitle();
|
710
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
711
|
-
|
712
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
713
|
-
assert.exists(colorSwatch);
|
714
|
-
assert.isTrue(InlineEditor.ColorSwatch.ColorSwatch.isColorSwatch(colorSwatch));
|
715
|
-
|
716
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
717
|
-
assert.exists(linkSwatch);
|
718
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
719
|
-
assert.exists(cssVarSwatch);
|
720
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
721
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
722
|
-
|
723
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement.innerText, `var(${varName}, var(--blue))`);
|
724
|
-
assert.strictEqual(linkSwatch?.innerText, varName);
|
725
|
-
assert.strictEqual(cssVarSwatch.innerText, `var(${varName}, var(--blue))`);
|
726
|
-
stylePropertyTreeElement.valueElement.remove();
|
727
|
-
}
|
728
|
-
});
|
729
|
-
|
730
|
-
it('should render CSSVarSwatches for multiple var() usages in the same property declaration', () => {
|
731
|
-
const stylePropertyTreeElement = getTreeElement('--shadow', 'var(--a) var(--b)');
|
732
|
-
stylePropertyTreeElement.updateTitle();
|
733
|
-
|
734
|
-
const cssVarSwatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-link-swatch');
|
735
|
-
assert.strictEqual(cssVarSwatches?.length, 2);
|
736
|
-
});
|
737
|
-
|
738
|
-
it('connects nested color swatches', () => {
|
739
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--void, red)');
|
740
|
-
stylePropertyTreeElement.updateTitle();
|
741
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
742
|
-
|
743
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
744
|
-
assert.exists(linkSwatch);
|
745
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
746
|
-
assert.exists(cssVarSwatch);
|
747
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
748
|
-
|
749
|
-
const outerColorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
750
|
-
assert.exists(outerColorSwatch);
|
751
|
-
const innerColorSwatch = cssVarSwatch.querySelector('devtools-color-swatch');
|
752
|
-
assert.exists(innerColorSwatch);
|
753
|
-
assert.notStrictEqual(outerColorSwatch, innerColorSwatch);
|
754
|
-
const color = new Common.Color.Lab(1, 0, 0, null, undefined);
|
755
|
-
innerColorSwatch.setColor(color);
|
756
|
-
assert.strictEqual(outerColorSwatch.getColor(), color);
|
757
|
-
});
|
758
|
-
|
759
|
-
it('only connects nested color swatches if the fallback is actually taken', () => {
|
760
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--blue, red)');
|
761
|
-
stylePropertyTreeElement.updateTitle();
|
762
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
763
|
-
|
764
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
765
|
-
assert.exists(linkSwatch);
|
766
|
-
const cssVarSwatch = linkSwatch.parentElement;
|
767
|
-
assert.exists(cssVarSwatch);
|
768
|
-
|
769
|
-
const outerColorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
770
|
-
assert.exists(outerColorSwatch);
|
771
|
-
const innerColorSwatch = cssVarSwatch.querySelector('devtools-color-swatch');
|
772
|
-
assert.exists(innerColorSwatch);
|
773
|
-
assert.notStrictEqual(outerColorSwatch, innerColorSwatch);
|
774
|
-
const color = new Common.Color.Lab(1, 0, 0, null, undefined);
|
775
|
-
innerColorSwatch.setColor(color);
|
776
|
-
assert.strictEqual(outerColorSwatch.getColor()?.asString(), 'blue');
|
777
|
-
});
|
778
|
-
});
|
779
|
-
|
780
|
-
describe('VariableRenderer', () => {
|
781
|
-
it('computes the text for var()s correctly', async () => {
|
782
|
-
async function matchProperty(value: string, name = 'color') {
|
783
|
-
addProperty('--blue', 'blue');
|
784
|
-
const stylePropertyTreeElement = getTreeElement(name, value);
|
785
|
-
|
786
|
-
const ast =
|
787
|
-
SDK.CSSPropertyParser.tokenizeDeclaration(stylePropertyTreeElement.name, stylePropertyTreeElement.value);
|
788
|
-
assert.exists(ast);
|
789
|
-
const matching = SDK.CSSPropertyParser.BottomUpTreeMatching.walk(
|
790
|
-
ast, [new SDK.CSSPropertyParserMatchers.VariableMatcher(
|
791
|
-
stylePropertyTreeElement.matchedStyles(), stylePropertyTreeElement.property.ownerStyle)]);
|
792
|
-
|
793
|
-
const res = {
|
794
|
-
hasUnresolvedVars: matching.hasUnresolvedVars(ast.tree),
|
795
|
-
computedText: matching.getComputedText(ast.tree),
|
796
|
-
};
|
797
|
-
return res;
|
798
|
-
}
|
799
|
-
|
800
|
-
assert.deepEqual(
|
801
|
-
await matchProperty('var( --blue )'), {hasUnresolvedVars: false, computedText: 'color: blue'});
|
802
|
-
assert.deepEqual(
|
803
|
-
await matchProperty('var(--no, var(--blue))'), {hasUnresolvedVars: false, computedText: 'color: blue'});
|
804
|
-
assert.deepEqual(
|
805
|
-
await matchProperty('pre var(--no) post'),
|
806
|
-
{hasUnresolvedVars: true, computedText: 'color: pre var(--no) post'});
|
807
|
-
assert.deepEqual(
|
808
|
-
await matchProperty('var(--no, var(--no2))'),
|
809
|
-
{hasUnresolvedVars: true, computedText: 'color: var(--no, var(--no2))'});
|
810
|
-
assert.deepEqual(await matchProperty(''), {hasUnresolvedVars: false, computedText: 'color:'});
|
811
|
-
});
|
812
|
-
|
813
|
-
it('layers correctly with the font renderer', () => {
|
814
|
-
const stylePropertyTreeElement = getTreeElement('font-size', 'calc(1 + var(--no))');
|
815
|
-
stylePropertyTreeElement.updateTitle();
|
816
|
-
assert.exists(stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch'));
|
817
|
-
});
|
818
|
-
|
819
|
-
it('shows a value tracing tooltip on the var function', async () => {
|
820
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--blue)');
|
821
|
-
stylePropertyTreeElement.updateTitle();
|
822
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
823
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
824
|
-
const tooltip = stylePropertyTreeElement.valueElement.querySelector('devtools-tooltip');
|
825
|
-
assert.exists(tooltip);
|
826
|
-
const widget = tooltip.firstElementChild && LegacyUI.Widget.Widget.get(tooltip.firstElementChild);
|
827
|
-
assert.instanceOf(widget, Elements.CSSValueTraceView.CSSValueTraceView);
|
828
|
-
});
|
829
|
-
|
830
|
-
it('does not render inside function rules', async () => {
|
831
|
-
const stylePropertyTreeElement = await getTreeElementForFunctionRule('--func', 'var(--b)');
|
832
|
-
stylePropertyTreeElement.updateTitle();
|
833
|
-
assert.notExists(stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch'));
|
834
|
-
});
|
835
|
-
|
836
|
-
it('retains empty fallbacks', async () => {
|
837
|
-
const stylePropertyTreeElement = getTreeElement('color', 'var(--blue,)');
|
838
|
-
stylePropertyTreeElement.updateTitle();
|
839
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
840
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
841
|
-
assert.strictEqual(stylePropertyTreeElement.renderedPropertyText(), 'color: var(--blue, )');
|
842
|
-
});
|
843
|
-
});
|
844
|
-
|
845
|
-
describe('ColorRenderer', () => {
|
846
|
-
it('correctly renders children of the color swatch', () => {
|
847
|
-
const value = 'rgb(255, var(--zero), var(--zero))';
|
848
|
-
const stylePropertyTreeElement = getTreeElement('color', value);
|
849
|
-
stylePropertyTreeElement.updateTitle();
|
850
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
851
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
852
|
-
|
853
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement?.innerText, value);
|
854
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
855
|
-
assert.exists(colorSwatch);
|
856
|
-
assert.strictEqual(colorSwatch.getColor()?.asString(Common.Color.Format.HEX), '#ff0000');
|
857
|
-
|
858
|
-
const varSwatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-link-swatch');
|
859
|
-
assert.exists(varSwatches);
|
860
|
-
assert.lengthOf(varSwatches, 2);
|
861
|
-
});
|
862
|
-
|
863
|
-
it('connects correctly with an inner angle swatch', () => {
|
864
|
-
const stylePropertyTreeElement = getTreeElement('color', 'hsl(120deg, 50%, 25%)');
|
865
|
-
stylePropertyTreeElement.updateTitle();
|
866
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
867
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
868
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
869
|
-
|
870
|
-
assert.exists(colorSwatch);
|
871
|
-
assert.strictEqual(colorSwatch.getColor()?.asString(Common.Color.Format.HSL), 'hsl(120deg 50% 25%)');
|
872
|
-
const eventHandler = sinon.stub<[InlineEditor.ColorSwatch.ColorChangedEvent]>();
|
873
|
-
colorSwatch.addEventListener(InlineEditor.ColorSwatch.ColorChangedEvent.eventName, eventHandler);
|
874
|
-
|
875
|
-
const angleSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-css-angle');
|
876
|
-
assert.exists(angleSwatch);
|
877
|
-
angleSwatch.updateAngle({value: 130, unit: InlineEditor.CSSAngleUtils.AngleUnit.DEG});
|
878
|
-
assert.strictEqual(colorSwatch.getColor()?.asString(Common.Color.Format.HSL), 'hsl(130deg 50% 25%)');
|
879
|
-
sinon.assert.calledOnce(eventHandler);
|
880
|
-
assert.strictEqual(eventHandler.args[0][0].data.color, colorSwatch.getColor());
|
881
|
-
});
|
882
|
-
|
883
|
-
it('renders relative colors', () => {
|
884
|
-
const stylePropertyTreeElement = getTreeElement('color', 'hsl( from var(--blue) h calc(s/2) l / alpha)');
|
885
|
-
stylePropertyTreeElement.updateTitle();
|
886
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
887
|
-
assert.isOk(colorSwatch);
|
888
|
-
assert.isOk(colorSwatch.getColor());
|
889
|
-
assert.strictEqual(colorSwatch?.getColor()?.asString(Common.Color.Format.HSL), 'hsl(240deg 50% 50%)');
|
890
|
-
});
|
891
|
-
|
892
|
-
it('does not render relative colors if property text is invalid', () => {
|
893
|
-
const invalidColor = 'hsl( from var(--zero) h calc(s/2) l / alpha)';
|
894
|
-
const stylePropertyTreeElement = getTreeElement('color', invalidColor);
|
895
|
-
stylePropertyTreeElement.updateTitle();
|
896
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
897
|
-
assert.isNull(colorSwatch);
|
898
|
-
});
|
899
|
-
|
900
|
-
it('correctly renders currentcolor', () => {
|
901
|
-
const stylePropertyTreeElement = getTreeElement('background-color', 'currentcolor');
|
902
|
-
stylePropertyTreeElement.setComputedStyles(new Map([['color', 'red']]));
|
903
|
-
stylePropertyTreeElement.updateTitle();
|
904
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
905
|
-
assert.isOk(colorSwatch);
|
906
|
-
assert.isOk(colorSwatch.getColor());
|
907
|
-
assert.strictEqual(colorSwatch?.getColor()?.asString(), 'red');
|
908
|
-
});
|
909
|
-
|
910
|
-
it('renders relative colors using currentcolor', () => {
|
911
|
-
const stylePropertyTreeElement = getTreeElement('color', 'hsl(from currentcolor h calc(s/2) l / alpha)');
|
912
|
-
stylePropertyTreeElement.setComputedStyles(new Map([['color', 'blue']]));
|
913
|
-
stylePropertyTreeElement.updateTitle();
|
914
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
915
|
-
assert.isOk(colorSwatch);
|
916
|
-
assert.isOk(colorSwatch.getColor());
|
917
|
-
assert.strictEqual(colorSwatch?.getColor()?.asString(Common.Color.Format.HSL), 'hsl(240deg 50% 50%)');
|
918
|
-
});
|
919
|
-
|
920
|
-
it('renders fallbacks correctly when the color fails to parse', () => {
|
921
|
-
const stylePropertyTreeElement = getTreeElement('color', 'lch(50 min(1, 8) 8deg)');
|
922
|
-
stylePropertyTreeElement.updateTitle();
|
923
|
-
const angle = stylePropertyTreeElement.valueElement?.querySelector('devtools-css-angle');
|
924
|
-
assert.exists(angle);
|
925
|
-
});
|
926
|
-
|
927
|
-
it('shows a value tracing tooltip on color functions', async () => {
|
928
|
-
for (const property of ['rgb(255 0 0)', 'color(srgb 0.5 0.5 0.5)', 'oklch(from purple calc(l * 2) c h)']) {
|
929
|
-
const stylePropertyTreeElement = getTreeElement('color', property);
|
930
|
-
stylePropertyTreeElement.updateTitle();
|
931
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
932
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
933
|
-
const tooltip = stylePropertyTreeElement.valueElement.querySelector('devtools-tooltip');
|
934
|
-
assert.exists(tooltip);
|
935
|
-
const widget = tooltip.firstElementChild && LegacyUI.Widget.Widget.get(tooltip.firstElementChild);
|
936
|
-
assert.instanceOf(widget, Elements.CSSValueTraceView.CSSValueTraceView);
|
937
|
-
stylePropertyTreeElement.valueElement.remove();
|
938
|
-
}
|
939
|
-
});
|
940
|
-
});
|
941
|
-
|
942
|
-
describe('RelativeColorChannelRenderer', () => {
|
943
|
-
it('provides a tooltip for relative color channels', () => {
|
944
|
-
const stylePropertyTreeElement = getTreeElement('color', 'rgb(from #ff0c0c calc(r / 2) g b)');
|
945
|
-
stylePropertyTreeElement.updateTitle();
|
946
|
-
|
947
|
-
const tooltips = stylePropertyTreeElement.valueElement?.querySelectorAll(
|
948
|
-
'devtools-tooltip:not([jslogcontext="elements.css-value-trace"])');
|
949
|
-
assert.exists(tooltips);
|
950
|
-
assert.lengthOf(tooltips, 3);
|
951
|
-
assert.deepEqual(Array.from(tooltips).map(tooltip => tooltip.textContent), ['1.000', '0.047', '0.047']);
|
952
|
-
});
|
953
|
-
|
954
|
-
it('evaluates relative color channels during tracing', async () => {
|
955
|
-
setMockConnectionResponseHandler(
|
956
|
-
'CSS.resolveValues',
|
957
|
-
(request: Protocol.CSS.ResolveValuesRequest) =>
|
958
|
-
({results: request.values.map(v => v === 'calc(1.000 / 2)' ? '0.5' : '')}));
|
959
|
-
const property = addProperty('color', 'rgb(from #ff0c0c calc(r / 2) g b)');
|
960
|
-
|
961
|
-
const {promise, resolve} = Promise.withResolvers<void>();
|
962
|
-
const view = sinon.stub<Parameters<Elements.CSSValueTraceView.View>>().callsFake(() => resolve());
|
963
|
-
void new Elements.CSSValueTraceView.CSSValueTraceView(undefined, view)
|
964
|
-
.showTrace(
|
965
|
-
property, null, matchedStyles, new Map(),
|
966
|
-
Elements.StylePropertyTreeElement.getPropertyRenderers(
|
967
|
-
property.name, property.ownerStyle, stylesSidebarPane, matchedStyles, null, new Map()),
|
968
|
-
false, 0, false);
|
969
|
-
|
970
|
-
await promise;
|
971
|
-
|
972
|
-
const {evaluations} = view.args[0][0];
|
973
|
-
|
974
|
-
assert.deepEqual(evaluations.flat().map(args => args?.textContent).flat(), [
|
975
|
-
'', 'rgb(from #ff0c0c calc(1.000 / 2) 0.047 0.047)', '', 'rgb(from #ff0c0c 0.5 0.047 0.047)', '', '#800c0c'
|
976
|
-
]);
|
977
|
-
});
|
978
|
-
});
|
979
|
-
|
980
|
-
describe('BezierRenderer', () => {
|
981
|
-
it('renders the easing function swatch', () => {
|
982
|
-
const stylePropertyTreeElement = getTreeElement('animation-timing-function', 'ease-out');
|
983
|
-
stylePropertyTreeElement.updateTitle();
|
984
|
-
assert.instanceOf(stylePropertyTreeElement.valueElement?.firstChild, IconButton.Icon.Icon);
|
985
|
-
});
|
986
|
-
});
|
987
|
-
|
988
|
-
describe('UrlRenderer', () => {
|
989
|
-
it('linkifies and unescapes urls', () => {
|
990
|
-
const stylePropertyTreeElement = getTreeElement('--url', 'url(devtools:\\/\\/abc)');
|
991
|
-
stylePropertyTreeElement.updateTitle();
|
992
|
-
|
993
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement?.innerText, 'url(devtools://abc)');
|
994
|
-
});
|
995
|
-
});
|
996
|
-
|
997
|
-
describe('StringRenderer', () => {
|
998
|
-
it('unescapes strings', () => {
|
999
|
-
const stylePropertyTreeElement = getTreeElement('content', '"\\2716"');
|
1000
|
-
stylePropertyTreeElement.updateTitle();
|
1001
|
-
|
1002
|
-
assert.strictEqual(
|
1003
|
-
(stylePropertyTreeElement.valueElement?.firstElementChild as HTMLElement | null | undefined)?.title,
|
1004
|
-
'"\u2716"');
|
1005
|
-
});
|
1006
|
-
});
|
1007
|
-
|
1008
|
-
describe('ShadowRenderer', () => {
|
1009
|
-
it('parses shadows correctly', () => {
|
1010
|
-
const parseShadow = (property: string, value: string, success: boolean) => {
|
1011
|
-
const stylePropertyTreeElement = getTreeElement(property, value);
|
1012
|
-
stylePropertyTreeElement.updateTitle();
|
1013
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1014
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement, {allowMultipleChildren: true});
|
1015
|
-
|
1016
|
-
assert.strictEqual(
|
1017
|
-
stylePropertyTreeElement.valueElement?.firstElementChild instanceof InlineEditor.Swatches.CSSShadowSwatch,
|
1018
|
-
success);
|
1019
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement?.innerText, value);
|
1020
|
-
};
|
1021
|
-
|
1022
|
-
const parseTextShadowSuccess = (value: string) => parseShadow('text-shadow', value, true);
|
1023
|
-
const parseTextShadowFailure = (value: string) => parseShadow('text-shadow', value, false);
|
1024
|
-
const parseBoxShadowSuccess = (value: string) => parseShadow('box-shadow', value, true);
|
1025
|
-
const parseBoxShadowFailure = (value: string) => parseShadow('box-shadow', value, false);
|
1026
|
-
|
1027
|
-
parseTextShadowSuccess('0 0');
|
1028
|
-
parseTextShadowSuccess('1px 2px');
|
1029
|
-
parseTextShadowSuccess('1px 2px black');
|
1030
|
-
parseTextShadowSuccess('1px 2px 2px');
|
1031
|
-
parseTextShadowSuccess('rgb(0, 0, 0) 1px 2px 2px');
|
1032
|
-
parseTextShadowSuccess('1px 2px 2px rgb(0, 0, 0)');
|
1033
|
-
parseTextShadowSuccess('1px 2px black, 0 0 #ffffff');
|
1034
|
-
parseTextShadowSuccess('1px -2px black, 0 0 rgb(0, 0, 0), 3px 3.5px 3px');
|
1035
|
-
parseTextShadowSuccess('1px -2px black, 0 0 rgb(0, 0, 0), 3px 3.5px 3px !important');
|
1036
|
-
parseTextShadowSuccess('1px 2px black, , 0 0 #ffffff');
|
1037
|
-
|
1038
|
-
parseTextShadowFailure('');
|
1039
|
-
parseTextShadowFailure('0');
|
1040
|
-
parseTextShadowFailure('1 2 black !important');
|
1041
|
-
parseTextShadowFailure('1px black 2px');
|
1042
|
-
parseTextShadowFailure('1px 2px 2px 3px');
|
1043
|
-
parseTextShadowFailure('inset 1px 2px 2px');
|
1044
|
-
parseTextShadowFailure('red 1px 2px 2px red');
|
1045
|
-
parseTextShadowFailure('1px 2px rgb(0, 0, 0) 2px');
|
1046
|
-
parseTextShadowFailure('hello 1px 2px');
|
1047
|
-
parseTextShadowFailure('1px 2px black 0 0 #ffffff');
|
1048
|
-
// TODO(crbug.com/40945390) Add coverage after rolling codemirror: parseTextShadowFailure('1px2px');
|
1049
|
-
parseTextShadowFailure('1px 2pxrgb(0, 0, 0)');
|
1050
|
-
|
1051
|
-
parseBoxShadowSuccess('0 0');
|
1052
|
-
parseBoxShadowSuccess('1px 2px');
|
1053
|
-
parseBoxShadowSuccess('1px 2px black');
|
1054
|
-
parseBoxShadowSuccess('1px 2px 2px');
|
1055
|
-
parseBoxShadowSuccess('1px 2px 2px 3px');
|
1056
|
-
parseBoxShadowSuccess('inset 1px 2px');
|
1057
|
-
parseBoxShadowSuccess('1px 2px inset');
|
1058
|
-
parseBoxShadowSuccess('INSET 1px 2px 2px 3px');
|
1059
|
-
parseBoxShadowSuccess('rgb(0, 0, 0) 1px 2px 2px');
|
1060
|
-
parseBoxShadowSuccess('inset rgb(0, 0, 0) 1px 2px 2px');
|
1061
|
-
parseBoxShadowSuccess('inset 1px 2px 2px 3px rgb(0, 0, 0)');
|
1062
|
-
parseBoxShadowSuccess('1px 2px 2px 3px rgb(0, 0, 0) inset');
|
1063
|
-
parseBoxShadowSuccess('1px 2px black, inset 0 0 #ffffff');
|
1064
|
-
parseBoxShadowSuccess('1px -2px black, inset 0 0 rgb(0, 0, 0), 3px 3.5px 3px 4px');
|
1065
|
-
parseBoxShadowSuccess('1px 2px black, , 0 0 #ffffff');
|
1066
|
-
|
1067
|
-
parseBoxShadowFailure('');
|
1068
|
-
parseBoxShadowFailure('0');
|
1069
|
-
parseBoxShadowFailure('1 2 black');
|
1070
|
-
parseBoxShadowFailure('1px black 2px');
|
1071
|
-
parseBoxShadowFailure('1px 2px 2px 3px 4px');
|
1072
|
-
parseBoxShadowFailure('1px 2px 2px inset 3px');
|
1073
|
-
parseBoxShadowFailure('inset 1px 2px 2px inset');
|
1074
|
-
parseBoxShadowFailure('1px 2px rgb(0, 0, 0) 2px');
|
1075
|
-
parseBoxShadowFailure('hello 1px 2px');
|
1076
|
-
parseBoxShadowFailure('1px 2px black 0 0 #ffffff');
|
1077
|
-
// TODO(crbug.com/40945390) Add coverage after rolling codemirror: parseBoxShadowFailure('1px2px');
|
1078
|
-
parseBoxShadowFailure('1px 2pxrgb(0, 0, 0)');
|
1079
|
-
});
|
1080
|
-
|
1081
|
-
it('renders the shadow swatch and color swatch', () => {
|
1082
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', 'inset 10px 10px blue');
|
1083
|
-
stylePropertyTreeElement.updateTitle();
|
1084
|
-
|
1085
|
-
assert.instanceOf(
|
1086
|
-
stylePropertyTreeElement.valueElement?.firstElementChild, InlineEditor.Swatches.CSSShadowSwatch);
|
1087
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
1088
|
-
assert.exists(colorSwatch);
|
1089
|
-
assert.strictEqual(colorSwatch.getColor()?.asString(), 'blue');
|
1090
|
-
});
|
1091
|
-
|
1092
|
-
it('renders multiple icons for multiple shadows', () => {
|
1093
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', 'inset 10px 11px blue, notashadow, 6px 5px red');
|
1094
|
-
stylePropertyTreeElement.updateTitle();
|
1095
|
-
|
1096
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1097
|
-
assert.exists(swatches);
|
1098
|
-
assert.lengthOf(swatches, 2);
|
1099
|
-
assert.strictEqual((swatches[0].nextElementSibling as HTMLElement).innerText, 'inset 10px 11px blue');
|
1100
|
-
assert.strictEqual((swatches[1].nextElementSibling as HTMLElement).innerText, '6px 5px red');
|
1101
|
-
});
|
1102
|
-
|
1103
|
-
it('correctly parses text-shadow', () => {
|
1104
|
-
const stylePropertyTreeElement =
|
1105
|
-
getTreeElement('text-shadow', 'inset 10px 11px blue, 6px 5px red, 5px 5px 0 0 yellow');
|
1106
|
-
stylePropertyTreeElement.updateTitle();
|
1107
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1108
|
-
assert.exists(swatches);
|
1109
|
-
assert.lengthOf(swatches, 1);
|
1110
|
-
assert.strictEqual((swatches[0].nextElementSibling as HTMLElement).innerText, '6px 5px red');
|
1111
|
-
});
|
1112
|
-
|
1113
|
-
it('renders a color-mix child', () => {
|
1114
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', '10px 11px color-mix(in srgb, red, blue)');
|
1115
|
-
stylePropertyTreeElement.updateTitle();
|
1116
|
-
assert.instanceOf(
|
1117
|
-
stylePropertyTreeElement.valueElement?.firstElementChild, InlineEditor.Swatches.CSSShadowSwatch);
|
1118
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-mix-swatch');
|
1119
|
-
assert.exists(swatches);
|
1120
|
-
});
|
1121
|
-
|
1122
|
-
it('renders shadow icon in the presence of a var()', () => {
|
1123
|
-
mockVariableMap['--offset'] = '10px 10px';
|
1124
|
-
mockVariableMap['--shadow'] = '10px 10px blue';
|
1125
|
-
|
1126
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', 'var(--offset) red, var(--shadow)');
|
1127
|
-
stylePropertyTreeElement.updateTitle();
|
1128
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1129
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1130
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1131
|
-
assert.exists(swatches);
|
1132
|
-
assert.lengthOf(swatches, 2);
|
1133
|
-
assert.strictEqual((swatches[0].nextElementSibling as HTMLElement).innerText, 'var(--offset) red');
|
1134
|
-
assert.strictEqual((swatches[1].nextElementSibling as HTMLElement).innerText, 'var(--shadow)');
|
1135
|
-
});
|
1136
|
-
|
1137
|
-
it('opens a shadow editor with the correct values', () => {
|
1138
|
-
mockVariableMap['--offset'] = '10px 10px';
|
1139
|
-
|
1140
|
-
const stylePropertyTreeElement =
|
1141
|
-
getTreeElement('box-shadow', 'var(--offset) red, inset 8px 9px 10px 11px yellow');
|
1142
|
-
stylePropertyTreeElement.updateTitle();
|
1143
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1144
|
-
assert.exists(swatches);
|
1145
|
-
assert.lengthOf(swatches, 2);
|
1146
|
-
|
1147
|
-
const showPopoverStub = sinon.stub(stylePropertyTreeElement.parentPane().swatchPopoverHelper(), 'show');
|
1148
|
-
|
1149
|
-
const editorProperties = (editor: InlineEditor.CSSShadowEditor.CSSShadowEditor): string[] =>
|
1150
|
-
Array.from(editor.contentElement.querySelectorAll('.shadow-editor-field'))
|
1151
|
-
.map(
|
1152
|
-
field => field.querySelector('input')?.value ??
|
1153
|
-
Array.from(field.querySelectorAll('button'))
|
1154
|
-
.map(button => button.classList.contains('enabled') ? button.innerText : undefined)
|
1155
|
-
.filter((b): b is string => Boolean(b)))
|
1156
|
-
.flat();
|
1157
|
-
|
1158
|
-
{
|
1159
|
-
swatches[0].iconElement().click();
|
1160
|
-
sinon.assert.calledOnce(showPopoverStub);
|
1161
|
-
assert.instanceOf(showPopoverStub.args[0][0], InlineEditor.CSSShadowEditor.CSSShadowEditor);
|
1162
|
-
const editor = showPopoverStub.args[0][0];
|
1163
|
-
const text = editorProperties(editor);
|
1164
|
-
assert.deepEqual(text, ['Outset', '10px', '10px', '0', '0']);
|
1165
|
-
}
|
1166
|
-
|
1167
|
-
{
|
1168
|
-
swatches[1].iconElement().click();
|
1169
|
-
sinon.assert.calledTwice(showPopoverStub);
|
1170
|
-
assert.instanceOf(showPopoverStub.args[1][0], InlineEditor.CSSShadowEditor.CSSShadowEditor);
|
1171
|
-
const editor = showPopoverStub.args[1][0];
|
1172
|
-
const text = editorProperties(editor);
|
1173
|
-
assert.deepEqual(text, ['Inset', '8px', '9px', '10px', '11px']);
|
1174
|
-
}
|
1175
|
-
});
|
1176
|
-
|
1177
|
-
it('updates the style for shadow editor changes', () => {
|
1178
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', '10px 11px red');
|
1179
|
-
stylePropertyTreeElement.updateTitle();
|
1180
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1181
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1182
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1183
|
-
assert.exists(swatches);
|
1184
|
-
assert.lengthOf(swatches, 1);
|
1185
|
-
const showPopoverStub = sinon.stub(stylePropertyTreeElement.parentPane().swatchPopoverHelper(), 'show');
|
1186
|
-
swatches[0].iconElement().click();
|
1187
|
-
sinon.assert.calledOnce(showPopoverStub);
|
1188
|
-
|
1189
|
-
const applyStyleTextStub = sinon.stub(stylePropertyTreeElement, 'applyStyleText');
|
1190
|
-
const button =
|
1191
|
-
showPopoverStub.args[0][0].contentElement.querySelector('.shadow-editor-button-right') as HTMLElement | null;
|
1192
|
-
button?.click();
|
1193
|
-
|
1194
|
-
sinon.assert.calledOnceWithExactly(applyStyleTextStub, 'box-shadow: inset 10px 11px red', false);
|
1195
|
-
});
|
1196
|
-
|
1197
|
-
it('updates the style for shadow editor changes and respects ordering', () => {
|
1198
|
-
mockVariableMap['--y-color'] = '11px red';
|
1199
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', '10px var(--y-color)');
|
1200
|
-
stylePropertyTreeElement.updateTitle();
|
1201
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1202
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1203
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1204
|
-
assert.exists(swatches);
|
1205
|
-
assert.lengthOf(swatches, 1);
|
1206
|
-
const showPopoverStub = sinon.stub(stylePropertyTreeElement.parentPane().swatchPopoverHelper(), 'show');
|
1207
|
-
swatches[0].iconElement().click();
|
1208
|
-
sinon.assert.calledOnce(showPopoverStub);
|
1209
|
-
|
1210
|
-
const applyStyleTextStub = sinon.stub(stylePropertyTreeElement, 'applyStyleText');
|
1211
|
-
const inputs = Array.from(showPopoverStub.args[0][0].contentElement.querySelectorAll('.shadow-editor-field'))
|
1212
|
-
.map(field => field.querySelector('input'));
|
1213
|
-
assert.exists(inputs[3]);
|
1214
|
-
inputs[3].value = '13px';
|
1215
|
-
inputs[3].dispatchEvent(new InputEvent('input', {data: '13px'}));
|
1216
|
-
|
1217
|
-
sinon.assert.calledOnceWithExactly(applyStyleTextStub, 'box-shadow: 10px 11px 13px red', false);
|
1218
|
-
});
|
1219
|
-
|
1220
|
-
it('correctly builds and updates the shadow model', () => {
|
1221
|
-
mockVariableMap['--props'] = '12px 13px red';
|
1222
|
-
const stylePropertyTreeElement = getTreeElement('box-shadow', '10px 11px red, var(--props)');
|
1223
|
-
stylePropertyTreeElement.updateTitle();
|
1224
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('css-shadow-swatch');
|
1225
|
-
assert.exists(swatches);
|
1226
|
-
assert.lengthOf(swatches, 2);
|
1227
|
-
|
1228
|
-
assert.isTrue(swatches[0].model().isBoxShadow());
|
1229
|
-
assert.isFalse(swatches[0].model().inset());
|
1230
|
-
assert.strictEqual(swatches[0].model().offsetX().asCSSText(), '10px');
|
1231
|
-
assert.strictEqual(swatches[0].model().offsetY().asCSSText(), '11px');
|
1232
|
-
assert.strictEqual(swatches[0].model().blurRadius().asCSSText(), '0');
|
1233
|
-
assert.strictEqual(swatches[0].model().spreadRadius().asCSSText(), '0');
|
1234
|
-
|
1235
|
-
swatches[0].model().setSpreadRadius(new InlineEditor.CSSShadowEditor.CSSLength(8, 'px'));
|
1236
|
-
swatches[0].model().setBlurRadius(new InlineEditor.CSSShadowEditor.CSSLength(5, 'px'));
|
1237
|
-
assert.strictEqual(swatches[0].model().blurRadius().asCSSText(), '5px');
|
1238
|
-
assert.strictEqual(swatches[0].model().spreadRadius().asCSSText(), '8px');
|
1239
|
-
|
1240
|
-
assert.isTrue(swatches[1].model().isBoxShadow());
|
1241
|
-
assert.isFalse(swatches[1].model().inset());
|
1242
|
-
assert.strictEqual(swatches[1].model().offsetX().asCSSText(), '12px');
|
1243
|
-
assert.strictEqual(swatches[1].model().offsetY().asCSSText(), '13px');
|
1244
|
-
assert.strictEqual(swatches[1].model().blurRadius().asCSSText(), '0');
|
1245
|
-
assert.strictEqual(swatches[1].model().spreadRadius().asCSSText(), '0');
|
1246
|
-
|
1247
|
-
swatches[1].model().setBlurRadius(new InlineEditor.CSSShadowEditor.CSSLength(5, 'px'));
|
1248
|
-
swatches[1].model().setSpreadRadius(new InlineEditor.CSSShadowEditor.CSSLength(8, 'px'));
|
1249
|
-
assert.strictEqual(swatches[1].model().blurRadius().asCSSText(), '5px');
|
1250
|
-
assert.strictEqual(swatches[1].model().spreadRadius().asCSSText(), '8px');
|
1251
|
-
});
|
1252
|
-
|
1253
|
-
class StubSyntaxNode implements CodeMirror.SyntaxNode {
|
1254
|
-
parent: CodeMirror.SyntaxNode|null = null;
|
1255
|
-
firstChild: CodeMirror.SyntaxNode|null = null;
|
1256
|
-
lastChild: CodeMirror.SyntaxNode|null = null;
|
1257
|
-
childAfter(): CodeMirror.SyntaxNode|null {
|
1258
|
-
return null;
|
1259
|
-
}
|
1260
|
-
childBefore(): CodeMirror.SyntaxNode|null {
|
1261
|
-
return null;
|
1262
|
-
}
|
1263
|
-
enter(): CodeMirror.SyntaxNode|null {
|
1264
|
-
return null;
|
1265
|
-
}
|
1266
|
-
nextSibling: CodeMirror.SyntaxNode|null = null;
|
1267
|
-
prevSibling: CodeMirror.SyntaxNode|null = null;
|
1268
|
-
cursor(): CodeMirror.TreeCursor {
|
1269
|
-
throw new Error('Method not implemented.');
|
1270
|
-
}
|
1271
|
-
resolve(): CodeMirror.SyntaxNode {
|
1272
|
-
return this;
|
1273
|
-
}
|
1274
|
-
resolveInner(): CodeMirror.SyntaxNode {
|
1275
|
-
return this;
|
1276
|
-
}
|
1277
|
-
enterUnfinishedNodesBefore(): CodeMirror.SyntaxNode {
|
1278
|
-
return this;
|
1279
|
-
}
|
1280
|
-
toTree(): CodeMirror.Tree {
|
1281
|
-
throw new Error('Method not implemented.');
|
1282
|
-
}
|
1283
|
-
getChild(): CodeMirror.SyntaxNode|null {
|
1284
|
-
throw new Error('Method not implemented.');
|
1285
|
-
}
|
1286
|
-
getChildren(): CodeMirror.SyntaxNode[] {
|
1287
|
-
throw new Error('Method not implemented.');
|
1288
|
-
}
|
1289
|
-
from = 0;
|
1290
|
-
to = 0;
|
1291
|
-
type = new CodeMirror.NodeType();
|
1292
|
-
name = '';
|
1293
|
-
tree: CodeMirror.Tree|null = null;
|
1294
|
-
node: CodeMirror.SyntaxNode = this;
|
1295
|
-
matchContext(): boolean {
|
1296
|
-
return false;
|
1297
|
-
}
|
1298
|
-
}
|
1299
|
-
|
1300
|
-
it('shadow model renders text properties, authored properties, and computed text properties correctly', () => {
|
1301
|
-
const renderingContext = sinon.createStubInstance(Elements.PropertyRenderer.RenderingContext);
|
1302
|
-
const expansionContext = sinon.createStubInstance(Elements.PropertyRenderer.RenderingContext);
|
1303
|
-
const y = new StubSyntaxNode();
|
1304
|
-
const spread = new StubSyntaxNode();
|
1305
|
-
const blur = new StubSyntaxNode();
|
1306
|
-
const variable = new StubSyntaxNode();
|
1307
|
-
const properties = [
|
1308
|
-
{
|
1309
|
-
value: '10px',
|
1310
|
-
source: null,
|
1311
|
-
expansionContext: null,
|
1312
|
-
propertyType: Elements.StylePropertyTreeElement.ShadowPropertyType.X,
|
1313
|
-
},
|
1314
|
-
{
|
1315
|
-
value: y,
|
1316
|
-
source: null,
|
1317
|
-
expansionContext: null,
|
1318
|
-
propertyType: Elements.StylePropertyTreeElement.ShadowPropertyType.Y,
|
1319
|
-
},
|
1320
|
-
{
|
1321
|
-
value: blur,
|
1322
|
-
source: variable,
|
1323
|
-
expansionContext,
|
1324
|
-
propertyType: Elements.StylePropertyTreeElement.ShadowPropertyType.BLUR,
|
1325
|
-
},
|
1326
|
-
{
|
1327
|
-
value: spread,
|
1328
|
-
source: variable,
|
1329
|
-
expansionContext,
|
1330
|
-
propertyType: Elements.StylePropertyTreeElement.ShadowPropertyType.SPREAD,
|
1331
|
-
},
|
1332
|
-
];
|
1333
|
-
|
1334
|
-
sinon.stub(Elements.PropertyRenderer.Renderer, 'render').callsFake((nodeOrNodes, context) => {
|
1335
|
-
if (!Array.isArray(nodeOrNodes)) {
|
1336
|
-
nodeOrNodes = [nodeOrNodes];
|
1337
|
-
}
|
1338
|
-
const nodes = nodeOrNodes
|
1339
|
-
.map(node => {
|
1340
|
-
switch (node) {
|
1341
|
-
case y:
|
1342
|
-
return context === renderingContext && document.createTextNode('y');
|
1343
|
-
case blur:
|
1344
|
-
return context === expansionContext && document.createTextNode('blur');
|
1345
|
-
case spread:
|
1346
|
-
return context === expansionContext && document.createTextNode('spread');
|
1347
|
-
case variable:
|
1348
|
-
return context === renderingContext && document.createTextNode('var()');
|
1349
|
-
default:
|
1350
|
-
return undefined;
|
1351
|
-
}
|
1352
|
-
})
|
1353
|
-
.filter(b => !!b);
|
1354
|
-
return {
|
1355
|
-
nodes,
|
1356
|
-
nodeGroups: [nodes],
|
1357
|
-
cssControls: new Map(),
|
1358
|
-
};
|
1359
|
-
});
|
1360
|
-
const model = new Elements.StylePropertyTreeElement.ShadowModel(
|
1361
|
-
SDK.CSSPropertyParserMatchers.ShadowType.BOX_SHADOW, properties, renderingContext);
|
1362
|
-
|
1363
|
-
const container = document.createElement('div');
|
1364
|
-
model.renderContents(container);
|
1365
|
-
assert.strictEqual(container.innerText, '10px y var()');
|
1366
|
-
|
1367
|
-
model.setBlurRadius(new InlineEditor.CSSShadowEditor.CSSLength(12, 'px'));
|
1368
|
-
model.renderContents(container);
|
1369
|
-
assert.strictEqual(container.innerText, '10px y 12px spread');
|
1370
|
-
assert.deepEqual(properties.map(p => p.source), [null, null, null, null]);
|
1371
|
-
});
|
1372
|
-
});
|
1373
|
-
|
1374
|
-
describe('AnchorFunctionRenderer', () => {
|
1375
|
-
let revealStub: sinon.SinonStub;
|
1376
|
-
let hideDOMNodeHighlightStub: sinon.SinonStub;
|
1377
|
-
let highlightMock: sinon.SinonExpectation;
|
1378
|
-
let fakeParentNode: SDK.DOMModel.DOMNode;
|
1379
|
-
let fakeDOMNode: SDK.DOMModel.DOMNode;
|
1380
|
-
|
1381
|
-
beforeEach(() => {
|
1382
|
-
fakeParentNode = {
|
1383
|
-
localName() {
|
1384
|
-
return 'span';
|
1385
|
-
},
|
1386
|
-
isSVGNode() {
|
1387
|
-
return false;
|
1388
|
-
},
|
1389
|
-
getAnchorBySpecifier() {
|
1390
|
-
return Promise.resolve(fakeDOMNode);
|
1391
|
-
},
|
1392
|
-
} as SDK.DOMModel.DOMNode;
|
1393
|
-
|
1394
|
-
fakeDOMNode = {
|
1395
|
-
localName() {
|
1396
|
-
return 'span';
|
1397
|
-
},
|
1398
|
-
isSVGNode() {
|
1399
|
-
return false;
|
1400
|
-
},
|
1401
|
-
highlight() {
|
1402
|
-
highlightMock();
|
1403
|
-
},
|
1404
|
-
} as SDK.DOMModel.DOMNode;
|
1405
|
-
highlightMock = sinon.mock();
|
1406
|
-
revealStub = sinon.stub(Common.Revealer.RevealerRegistry.prototype, 'reveal');
|
1407
|
-
hideDOMNodeHighlightStub = sinon.stub(SDK.OverlayModel.OverlayModel, 'hideDOMNodeHighlight');
|
1408
|
-
setMockConnectionResponseHandler('DOM.getAnchorElement', () => ({result: undefined}));
|
1409
|
-
});
|
1410
|
-
|
1411
|
-
it('renders anchor() function correctly', async () => {
|
1412
|
-
const stylePropertyTreeElement = getTreeElement('left', 'anchor(top)');
|
1413
|
-
|
1414
|
-
stylePropertyTreeElement.updateTitle();
|
1415
|
-
|
1416
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement!.innerText, 'anchor(top)');
|
1417
|
-
});
|
1418
|
-
|
1419
|
-
it('renders `AnchorFunctionLinkSwatch` after decorating the element', async () => {
|
1420
|
-
const waitForDecorationPromise =
|
1421
|
-
spyCall(Elements.StylePropertyTreeElement.AnchorFunctionRenderer, 'decorateAnchorForAnchorLink');
|
1422
|
-
const stylePropertyTreeElement = getTreeElement('left', 'anchor(--identifier top)');
|
1423
|
-
sinon.stub(stylePropertyTreeElement, 'node').returns(fakeParentNode);
|
1424
|
-
|
1425
|
-
stylePropertyTreeElement.updateTitle();
|
1426
|
-
await (await waitForDecorationPromise).result;
|
1427
|
-
const anchorFunctionLinkSwatch = stylePropertyTreeElement.valueElement!.querySelector('devtools-link-swatch')!;
|
1428
|
-
|
1429
|
-
renderElementIntoDOM(anchorFunctionLinkSwatch);
|
1430
|
-
assert.strictEqual(anchorFunctionLinkSwatch.linkElement?.textContent, '--identifier');
|
1431
|
-
});
|
1432
|
-
|
1433
|
-
it('should highlight node when `onMouseEnter` triggered from `AnchorFunctionLinkSwatch`', async () => {
|
1434
|
-
const waitForDecorationPromise =
|
1435
|
-
spyCall(Elements.StylePropertyTreeElement.AnchorFunctionRenderer, 'decorateAnchorForAnchorLink');
|
1436
|
-
const stylePropertyTreeElement = getTreeElement('left', 'anchor(--identifier top)');
|
1437
|
-
sinon.stub(stylesSidebarPane, 'node').returns(fakeParentNode);
|
1438
|
-
|
1439
|
-
stylePropertyTreeElement.updateTitle();
|
1440
|
-
await (await waitForDecorationPromise).result;
|
1441
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1442
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1443
|
-
const anchorFunctionLinkSwatch = stylePropertyTreeElement.valueElement.querySelector('devtools-link-swatch')!;
|
1444
|
-
anchorFunctionLinkSwatch.dispatchEvent(new Event('mouseenter'));
|
1445
|
-
|
1446
|
-
sinon.assert.calledOnce(highlightMock);
|
1447
|
-
});
|
1448
|
-
|
1449
|
-
it('should clear DOM highlight when `onMouseLeave` triggered from `AnchorFunctionLinkSwatch`', async () => {
|
1450
|
-
const waitForDecorationPromise =
|
1451
|
-
spyCall(Elements.StylePropertyTreeElement.AnchorFunctionRenderer, 'decorateAnchorForAnchorLink');
|
1452
|
-
const stylePropertyTreeElement = getTreeElement('left', 'anchor(--identifier top)');
|
1453
|
-
sinon.stub(stylesSidebarPane, 'node').returns(fakeParentNode);
|
1454
|
-
|
1455
|
-
stylePropertyTreeElement.updateTitle();
|
1456
|
-
await (await waitForDecorationPromise).result;
|
1457
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1458
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1459
|
-
const anchorFunctionLinkSwatch = stylePropertyTreeElement.valueElement!.querySelector('devtools-link-swatch')!;
|
1460
|
-
anchorFunctionLinkSwatch.dispatchEvent(new Event('mouseleave'));
|
1461
|
-
|
1462
|
-
sinon.assert.calledOnce(hideDOMNodeHighlightStub);
|
1463
|
-
});
|
1464
|
-
|
1465
|
-
it('should reveal anchor node when `onLinkActivate` triggered from `AnchorFunctionLinkSwatch`', async () => {
|
1466
|
-
const waitForDecorationPromise =
|
1467
|
-
spyCall(Elements.StylePropertyTreeElement.AnchorFunctionRenderer, 'decorateAnchorForAnchorLink');
|
1468
|
-
const stylePropertyTreeElement = getTreeElement('left', 'anchor(--identifier top)');
|
1469
|
-
sinon.stub(stylesSidebarPane, 'node').returns(fakeParentNode);
|
1470
|
-
|
1471
|
-
stylePropertyTreeElement.updateTitle();
|
1472
|
-
await (await waitForDecorationPromise).result;
|
1473
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1474
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1475
|
-
const anchorFunctionLinkSwatch = stylePropertyTreeElement.valueElement!.querySelector('devtools-link-swatch')!;
|
1476
|
-
anchorFunctionLinkSwatch.linkElement?.click();
|
1477
|
-
|
1478
|
-
sinon.assert.calledOnce(revealStub);
|
1479
|
-
sinon.assert.calledWith(revealStub, fakeDOMNode);
|
1480
|
-
});
|
1481
|
-
|
1482
|
-
async function createAnchorFunctionLinkSwatch(
|
1483
|
-
data: {identifier: string|undefined, anchorNode: SinonStubbedInstance<SDK.DOMModel.DOMNode>|undefined}):
|
1484
|
-
Promise<HTMLDivElement> {
|
1485
|
-
sinon.stub(stylesSidebarPane.node()!, 'getAnchorBySpecifier').resolves(data.anchorNode);
|
1486
|
-
const content = document.createElement('div');
|
1487
|
-
await Elements.StylePropertyTreeElement.AnchorFunctionRenderer.decorateAnchorForAnchorLink(
|
1488
|
-
stylesSidebarPane, content, data);
|
1489
|
-
return content;
|
1490
|
-
}
|
1491
|
-
|
1492
|
-
describe('when identifier exists', () => {
|
1493
|
-
let linkSwatchDataStub: {set: sinon.SinonSpy};
|
1494
|
-
|
1495
|
-
beforeEach(() => {
|
1496
|
-
linkSwatchDataStub = sinon.spy(InlineEditor.LinkSwatch.LinkSwatch.prototype, 'data', ['set']);
|
1497
|
-
});
|
1498
|
-
|
1499
|
-
it('should render a defined link when `anchorNode` is resolved correctly', async () => {
|
1500
|
-
const data = {
|
1501
|
-
identifier: '--identifier',
|
1502
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1503
|
-
};
|
1504
|
-
await createAnchorFunctionLinkSwatch(data);
|
1505
|
-
|
1506
|
-
sinon.assert.calledWith(linkSwatchDataStub.set, {
|
1507
|
-
text: data.identifier,
|
1508
|
-
isDefined: true,
|
1509
|
-
tooltip: undefined,
|
1510
|
-
jslogContext: 'anchor-link',
|
1511
|
-
onLinkActivate: sinon.match.func,
|
1512
|
-
});
|
1513
|
-
});
|
1514
|
-
|
1515
|
-
it('should render an undefined link when `anchorNode` is not resolved correctly', async () => {
|
1516
|
-
const data = {
|
1517
|
-
identifier: '--identifier',
|
1518
|
-
anchorNode: undefined,
|
1519
|
-
};
|
1520
|
-
await createAnchorFunctionLinkSwatch(data);
|
1521
|
-
|
1522
|
-
sinon.assert.calledWith(linkSwatchDataStub.set, {
|
1523
|
-
text: data.identifier,
|
1524
|
-
isDefined: false,
|
1525
|
-
tooltip: {title: '--identifier is not defined'},
|
1526
|
-
jslogContext: 'anchor-link',
|
1527
|
-
onLinkActivate: sinon.match.func,
|
1528
|
-
});
|
1529
|
-
});
|
1530
|
-
|
1531
|
-
it('should call `onMouseEnter` when mouse enters linkSwatch', async () => {
|
1532
|
-
const data = {
|
1533
|
-
identifier: '--identifier',
|
1534
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1535
|
-
};
|
1536
|
-
|
1537
|
-
const linkSwatch = await createAnchorFunctionLinkSwatch(data);
|
1538
|
-
linkSwatch.querySelector('devtools-link-swatch')?.dispatchEvent(new Event('mouseenter'));
|
1539
|
-
|
1540
|
-
sinon.assert.calledOnce(data.anchorNode.highlight);
|
1541
|
-
});
|
1542
|
-
|
1543
|
-
it('should call `onMouseLeave` when mouse leaves linkSwatch', async () => {
|
1544
|
-
const data = {
|
1545
|
-
identifier: '--identifier',
|
1546
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1547
|
-
};
|
1548
|
-
const linkSwatch = await createAnchorFunctionLinkSwatch(data);
|
1549
|
-
linkSwatch.querySelector('devtools-link-swatch')?.dispatchEvent(new Event('mouseleave'));
|
1550
|
-
|
1551
|
-
sinon.assert.calledOnce(hideDOMNodeHighlightStub);
|
1552
|
-
});
|
1553
|
-
});
|
1554
|
-
|
1555
|
-
describe('when identifier does not exist', () => {
|
1556
|
-
it('should not render anything when `anchorNode` is not resolved correctly', async () => {
|
1557
|
-
const data = {
|
1558
|
-
identifier: undefined,
|
1559
|
-
anchorNode: undefined,
|
1560
|
-
};
|
1561
|
-
const component = await createAnchorFunctionLinkSwatch(data);
|
1562
|
-
|
1563
|
-
assert.isEmpty(component.innerHTML);
|
1564
|
-
});
|
1565
|
-
|
1566
|
-
it('should render icon link when `anchorNode` is resolved correctly', async () => {
|
1567
|
-
const data = {
|
1568
|
-
identifier: undefined,
|
1569
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1570
|
-
};
|
1571
|
-
const component = await createAnchorFunctionLinkSwatch(data);
|
1572
|
-
|
1573
|
-
const icon = component?.querySelector('devtools-icon');
|
1574
|
-
|
1575
|
-
assert.exists(icon);
|
1576
|
-
});
|
1577
|
-
|
1578
|
-
it('should call `onMouseEnter` when mouse enters the icon', async () => {
|
1579
|
-
const data = {
|
1580
|
-
identifier: undefined,
|
1581
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1582
|
-
};
|
1583
|
-
const component = await createAnchorFunctionLinkSwatch(data);
|
1584
|
-
|
1585
|
-
const icon = component?.querySelector('devtools-icon')!;
|
1586
|
-
icon?.dispatchEvent(new Event('mouseenter'));
|
1587
|
-
|
1588
|
-
sinon.assert.calledOnce(data.anchorNode.highlight);
|
1589
|
-
});
|
1590
|
-
|
1591
|
-
it('should call `onMouseLeave` when mouse leaves the icon', async () => {
|
1592
|
-
const data = {
|
1593
|
-
identifier: undefined,
|
1594
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1595
|
-
};
|
1596
|
-
const component = await createAnchorFunctionLinkSwatch(data);
|
1597
|
-
|
1598
|
-
const icon = component?.querySelector('devtools-icon')!;
|
1599
|
-
icon?.dispatchEvent(new Event('mouseleave'));
|
1600
|
-
|
1601
|
-
sinon.assert.calledOnce(hideDOMNodeHighlightStub);
|
1602
|
-
});
|
1603
|
-
|
1604
|
-
it('should call `onLinkActivate` when clicking on the icon', async () => {
|
1605
|
-
const data = {
|
1606
|
-
identifier: undefined,
|
1607
|
-
anchorNode: sinon.createStubInstance(SDK.DOMModel.DOMNode),
|
1608
|
-
};
|
1609
|
-
const component = await createAnchorFunctionLinkSwatch(data);
|
1610
|
-
|
1611
|
-
const icon = component?.querySelector('devtools-icon')!;
|
1612
|
-
icon?.dispatchEvent(new Event('click'));
|
1613
|
-
|
1614
|
-
sinon.assert.calledOnce(revealStub);
|
1615
|
-
assert.strictEqual(revealStub.args[0][0], data.anchorNode);
|
1616
|
-
});
|
1617
|
-
});
|
1618
|
-
});
|
1619
|
-
|
1620
|
-
describe('AnchorFunctionRenderer', () => {
|
1621
|
-
let highlightMock: sinon.SinonExpectation;
|
1622
|
-
let fakeDOMNode: SDK.DOMModel.DOMNode;
|
1623
|
-
|
1624
|
-
beforeEach(() => {
|
1625
|
-
fakeDOMNode = {
|
1626
|
-
localName() {
|
1627
|
-
return 'span';
|
1628
|
-
},
|
1629
|
-
isSVGNode() {
|
1630
|
-
return false;
|
1631
|
-
},
|
1632
|
-
highlight() {
|
1633
|
-
highlightMock();
|
1634
|
-
},
|
1635
|
-
} as SDK.DOMModel.DOMNode;
|
1636
|
-
highlightMock = sinon.mock();
|
1637
|
-
sinon.stub(SDK.DOMModel.DOMNode.prototype, 'getAnchorBySpecifier').resolves(fakeDOMNode);
|
1638
|
-
});
|
1639
|
-
|
1640
|
-
it('renders `position-anchor` property correctly before anchor is decorated', async () => {
|
1641
|
-
const stylePropertyTreeElement = getTreeElement('position-anchor', '--anchor');
|
1642
|
-
|
1643
|
-
stylePropertyTreeElement.updateTitle();
|
1644
|
-
|
1645
|
-
assert.strictEqual(stylePropertyTreeElement.valueElement!.innerText, '--anchor');
|
1646
|
-
});
|
1647
|
-
|
1648
|
-
it('renders `position-anchor` property correctly after anchor is decorated', async () => {
|
1649
|
-
const waitForDecorationPromise =
|
1650
|
-
spyCall(Elements.StylePropertyTreeElement.AnchorFunctionRenderer, 'decorateAnchorForAnchorLink');
|
1651
|
-
const stylePropertyTreeElement = getTreeElement('position-anchor', '--anchor');
|
1652
|
-
|
1653
|
-
stylePropertyTreeElement.updateTitle();
|
1654
|
-
await (await waitForDecorationPromise).result;
|
1655
|
-
|
1656
|
-
const anchorFunctionLinkSwatch = stylePropertyTreeElement.valueElement!.querySelector('devtools-link-swatch');
|
1657
|
-
assert.exists(anchorFunctionLinkSwatch);
|
1658
|
-
});
|
1659
|
-
});
|
1660
|
-
|
1661
|
-
describe('LightDarkColorRenderer', () => {
|
1662
|
-
it('renders light-dark correctly', async () => {
|
1663
|
-
const colorSchemeSpy =
|
1664
|
-
sinon.spy(Elements.StylePropertyTreeElement.LightDarkColorRenderer.prototype, 'applyColorScheme');
|
1665
|
-
const resolvePropertySpy = sinon.spy(SDK.CSSMatchedStyles.CSSMatchedStyles.prototype, 'resolveProperty');
|
1666
|
-
const colorSchemeProperty = addProperty('color-scheme', 'light dark');
|
1667
|
-
|
1668
|
-
async function check(colorScheme: SDK.CSSModel.ColorScheme, lightText: string, darkText: string) {
|
1669
|
-
const variableName = (text: string) => text.substring('var('.length, text.length - 1);
|
1670
|
-
const lightDark = `light-dark(${lightText}, ${darkText})`;
|
1671
|
-
colorSchemeProperty.setLocalValue(colorScheme);
|
1672
|
-
resolvePropertySpy.resetHistory();
|
1673
|
-
const stylePropertyTreeElement = getTreeElement('color', lightDark);
|
1674
|
-
stylePropertyTreeElement.updateTitle();
|
1675
|
-
await Promise.all(colorSchemeSpy.returnValues);
|
1676
|
-
|
1677
|
-
sinon.assert.calledOnceWithExactly(
|
1678
|
-
resolvePropertySpy, 'color-scheme', stylePropertyTreeElement.property.ownerStyle);
|
1679
|
-
|
1680
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1681
|
-
const swatches = stylePropertyTreeElement.valueElement.querySelectorAll('devtools-color-swatch');
|
1682
|
-
assert.exists(swatches);
|
1683
|
-
assert.lengthOf(swatches, 3);
|
1684
|
-
const [swatch, light, dark] = swatches;
|
1685
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1686
|
-
assert.strictEqual((swatch?.nextElementSibling as HTMLElement | null)?.innerText, lightDark);
|
1687
|
-
const activeColor = colorScheme === SDK.CSSModel.ColorScheme.LIGHT ? lightText : darkText;
|
1688
|
-
assert.strictEqual(
|
1689
|
-
swatch.getColor()?.getAuthoredText(), mockVariableMap[variableName(activeColor)] ?? activeColor);
|
1690
|
-
const active = colorScheme === SDK.CSSModel.ColorScheme.LIGHT ? light : dark;
|
1691
|
-
const inactive = colorScheme === SDK.CSSModel.ColorScheme.LIGHT ? dark : light;
|
1692
|
-
assert.isTrue(inactive.parentElement?.classList.contains('inactive-value'));
|
1693
|
-
assert.isFalse(active.parentElement?.classList.contains('inactive-value'));
|
1694
|
-
stylePropertyTreeElement.valueElement.remove();
|
1695
|
-
}
|
1696
|
-
|
1697
|
-
await check(SDK.CSSModel.ColorScheme.LIGHT, 'red', 'blue');
|
1698
|
-
await check(SDK.CSSModel.ColorScheme.DARK, 'red', 'blue');
|
1699
|
-
await check(SDK.CSSModel.ColorScheme.LIGHT, 'red', 'var(--blue)');
|
1700
|
-
await check(SDK.CSSModel.ColorScheme.DARK, 'red', 'var(--blue)');
|
1701
|
-
await check(SDK.CSSModel.ColorScheme.LIGHT, 'var(--blue)', 'red');
|
1702
|
-
await check(SDK.CSSModel.ColorScheme.DARK, 'var(--blue)', 'red');
|
1703
|
-
});
|
1704
|
-
|
1705
|
-
it('renders light-dark correctly if the color scheme cannot be resolved', async () => {
|
1706
|
-
const lightDark = 'light-dark(red, blue)';
|
1707
|
-
const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel);
|
1708
|
-
sinon.stub(stylesSidebarPane, 'cssModel').returns(cssModel);
|
1709
|
-
cssModel.colorScheme.resolves(undefined);
|
1710
|
-
addProperty('color-scheme', 'light dark');
|
1711
|
-
const stylePropertyTreeElement = getTreeElement('color', lightDark);
|
1712
|
-
const colorSchemeSpy =
|
1713
|
-
sinon.spy(Elements.StylePropertyTreeElement.LightDarkColorRenderer.prototype, 'applyColorScheme');
|
1714
|
-
stylePropertyTreeElement.updateTitle();
|
1715
|
-
await Promise.all(colorSchemeSpy.returnValues);
|
1716
|
-
|
1717
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-swatch');
|
1718
|
-
assert.exists(swatches);
|
1719
|
-
assert.lengthOf(swatches, 3);
|
1720
|
-
assert.isNull(swatches[0].getColor());
|
1721
|
-
assert.strictEqual(swatches[0].nextElementSibling?.textContent, 'light-dark(red, blue)');
|
1722
|
-
assert.strictEqual(swatches[1].nextElementSibling?.textContent, 'red');
|
1723
|
-
assert.strictEqual(swatches[2].nextElementSibling?.textContent, 'blue');
|
1724
|
-
});
|
1725
|
-
|
1726
|
-
it('renders light-dark without color-scheme correctly', async () => {
|
1727
|
-
const lightDark = 'light-dark(red, blue)';
|
1728
|
-
const stylePropertyTreeElement = getTreeElement('color', lightDark);
|
1729
|
-
// leave color-scheme unset
|
1730
|
-
const colorSchemeSpy =
|
1731
|
-
sinon.spy(Elements.StylePropertyTreeElement.LightDarkColorRenderer.prototype, 'applyColorScheme');
|
1732
|
-
stylePropertyTreeElement.updateTitle();
|
1733
|
-
await Promise.all(colorSchemeSpy.returnValues);
|
1734
|
-
|
1735
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-swatch');
|
1736
|
-
assert.exists(swatches);
|
1737
|
-
assert.lengthOf(swatches, 3);
|
1738
|
-
assert.strictEqual(swatches[0].getText(), 'red');
|
1739
|
-
assert.strictEqual(swatches[0].nextElementSibling?.textContent, 'light-dark(red, blue)');
|
1740
|
-
assert.strictEqual(swatches[1].nextElementSibling?.textContent, 'red');
|
1741
|
-
assert.strictEqual(swatches[2].nextElementSibling?.textContent, 'blue');
|
1742
|
-
});
|
1743
|
-
|
1744
|
-
it('renders light-dark with undefined vars correctly', async () => {
|
1745
|
-
const lightDark = 'light-dark(red, var(--undefined))';
|
1746
|
-
addProperty('color-scheme', 'light dark');
|
1747
|
-
const stylePropertyTreeElement = getTreeElement('color', lightDark);
|
1748
|
-
const colorSchemeSpy =
|
1749
|
-
sinon.spy(Elements.StylePropertyTreeElement.LightDarkColorRenderer.prototype, 'applyColorScheme');
|
1750
|
-
stylePropertyTreeElement.updateTitle();
|
1751
|
-
await Promise.all(colorSchemeSpy.returnValues);
|
1752
|
-
|
1753
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-swatch');
|
1754
|
-
assert.exists(swatches);
|
1755
|
-
assert.lengthOf(swatches, 1);
|
1756
|
-
assert.strictEqual(swatches[0].nextElementSibling?.textContent, 'red');
|
1757
|
-
assert.strictEqual(swatches[0].parentElement?.style.textDecoration, '');
|
1758
|
-
});
|
1759
|
-
|
1760
|
-
it('connects inner and outer swatches', async () => {
|
1761
|
-
const colorSchemeSpy =
|
1762
|
-
sinon.spy(Elements.StylePropertyTreeElement.LightDarkColorRenderer.prototype, 'applyColorScheme');
|
1763
|
-
const colorSchemeProperty = addProperty('color-scheme', 'light dark');
|
1764
|
-
for (const colorScheme of [SDK.CSSModel.ColorScheme.LIGHT, SDK.CSSModel.ColorScheme.DARK]) {
|
1765
|
-
const lightDark = 'light-dark(red, blue)';
|
1766
|
-
colorSchemeProperty.setLocalValue(colorScheme);
|
1767
|
-
const stylePropertyTreeElement = getTreeElement('color', lightDark);
|
1768
|
-
stylePropertyTreeElement.updateTitle();
|
1769
|
-
await Promise.all(colorSchemeSpy.returnValues);
|
1770
|
-
|
1771
|
-
const swatches = stylePropertyTreeElement.valueElement?.querySelectorAll('devtools-color-swatch');
|
1772
|
-
assert.exists(swatches);
|
1773
|
-
assert.lengthOf(swatches, 3);
|
1774
|
-
const [outerSwatch, lightSwatch, darkSwatch] = swatches;
|
1775
|
-
const newLightColor = Common.Color.parse('white') as Common.Color.Color;
|
1776
|
-
const newDarkColor = Common.Color.parse('black') as Common.Color.Color;
|
1777
|
-
lightSwatch.setColor(newLightColor);
|
1778
|
-
darkSwatch.setColor(newDarkColor);
|
1779
|
-
|
1780
|
-
if (colorScheme === SDK.CSSModel.ColorScheme.DARK) {
|
1781
|
-
assert.strictEqual(outerSwatch.getColor(), newDarkColor);
|
1782
|
-
} else {
|
1783
|
-
assert.strictEqual(outerSwatch.getColor(), newLightColor);
|
1784
|
-
}
|
1785
|
-
}
|
1786
|
-
});
|
1787
|
-
});
|
1788
|
-
|
1789
|
-
describe('LinearGradientRenderer', () => {
|
1790
|
-
it('correctly connects to an angle match', () => {
|
1791
|
-
const stylePropertyTreeElement = getTreeElement('background', 'linear-gradient(45deg, red, var(--blue))');
|
1792
|
-
stylePropertyTreeElement.updateTitle();
|
1793
|
-
const swatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-css-angle');
|
1794
|
-
assert.exists(swatch);
|
1795
|
-
swatch.data = {
|
1796
|
-
angleText: swatch.innerText ?? '',
|
1797
|
-
containingPane: document.createElement('div'),
|
1798
|
-
};
|
1799
|
-
|
1800
|
-
sinon.stub(swatch, 'dispatchEvent');
|
1801
|
-
swatch.popOver();
|
1802
|
-
const popover = swatch.querySelector('devtools-css-angle-editor');
|
1803
|
-
assert.exists(popover);
|
1804
|
-
const clock = popover.shadowRoot?.querySelector<HTMLElement>('.clock');
|
1805
|
-
assert.exists(clock);
|
1806
|
-
assert.strictEqual(clock.style.background, 'linear-gradient(45deg, red, blue)');
|
1807
|
-
});
|
1808
|
-
});
|
1809
|
-
|
1810
|
-
describe('CSSWideKeywordRenderer', () => {
|
1811
|
-
function mockResolvedKeyword(propertyName: string, _keyword: SDK.CSSMetadata.CSSWideKeyword, propertyValue = ''):
|
1812
|
-
sinon.SinonStubbedInstance<SDK.CSSProperty.CSSProperty> {
|
1813
|
-
const originalDeclaration = sinon.createStubInstance(SDK.CSSProperty.CSSProperty);
|
1814
|
-
sinon.stub(matchedStyles, 'resolveGlobalKeyword')
|
1815
|
-
.callsFake(
|
1816
|
-
(property, keyword) => property.name === propertyName && property.value === keyword ?
|
1817
|
-
new SDK.CSSMatchedStyles.CSSValueSource(originalDeclaration) :
|
1818
|
-
null);
|
1819
|
-
originalDeclaration.name = propertyName;
|
1820
|
-
originalDeclaration.value = propertyValue;
|
1821
|
-
originalDeclaration.ownerStyle = sinon.createStubInstance(SDK.CSSStyleDeclaration.CSSStyleDeclaration);
|
1822
|
-
return originalDeclaration;
|
1823
|
-
}
|
1824
|
-
|
1825
|
-
it('linkifies keywords to the referenced declarations', () => {
|
1826
|
-
const keyword = SDK.CSSMetadata.CSSWideKeywords[0];
|
1827
|
-
const originalDeclaration = mockResolvedKeyword('width', keyword);
|
1828
|
-
const stylePropertyTreeElement = getTreeElement(originalDeclaration.name, keyword);
|
1829
|
-
stylePropertyTreeElement.updateTitle();
|
1830
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1831
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1832
|
-
|
1833
|
-
const linkSwatch = stylePropertyTreeElement.valueElement.querySelector('devtools-link-swatch');
|
1834
|
-
assert.isOk(linkSwatch);
|
1835
|
-
assert.strictEqual(linkSwatch.innerText, keyword);
|
1836
|
-
const spy = sinon.spy(stylePropertyTreeElement.parentPane(), 'revealProperty');
|
1837
|
-
(linkSwatch.querySelector('button') as HTMLElement | undefined)?.click();
|
1838
|
-
sinon.assert.calledOnceWithExactly(spy, originalDeclaration);
|
1839
|
-
});
|
1840
|
-
|
1841
|
-
it('shows non-existant referenced declarations as unlinked', () => {
|
1842
|
-
const stylePropertyTreeElement = getTreeElement('width', SDK.CSSMetadata.CSSWideKeywords[0]);
|
1843
|
-
stylePropertyTreeElement.updateTitle();
|
1844
|
-
const linkSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch');
|
1845
|
-
assert.isNotOk(linkSwatch);
|
1846
|
-
});
|
1847
|
-
|
1848
|
-
it('renders colors', () => {
|
1849
|
-
const keyword = SDK.CSSMetadata.CSSWideKeywords[0];
|
1850
|
-
const originalDeclaration = mockResolvedKeyword('color', keyword, 'red');
|
1851
|
-
const stylePropertyTreeElement = getTreeElement(originalDeclaration.name, keyword);
|
1852
|
-
stylePropertyTreeElement.updateTitle();
|
1853
|
-
const colorSwatch = stylePropertyTreeElement.valueElement?.querySelector('devtools-color-swatch');
|
1854
|
-
assert.isOk(colorSwatch);
|
1855
|
-
assert.strictEqual(colorSwatch.getColor()?.asString(), 'red');
|
1856
|
-
});
|
1857
|
-
|
1858
|
-
it('does not render inside function rules', async () => {
|
1859
|
-
const stylePropertyTreeElement = await getTreeElementForFunctionRule('--func', 'initial');
|
1860
|
-
stylePropertyTreeElement.updateTitle();
|
1861
|
-
assert.notExists(stylePropertyTreeElement.valueElement?.querySelector('devtools-link-swatch'));
|
1862
|
-
});
|
1863
|
-
});
|
1864
|
-
|
1865
|
-
describe('PositionTryRenderer', () => {
|
1866
|
-
it('renders the position-try fallback values with correct styles', () => {
|
1867
|
-
sinon.stub(matchedStyles, 'activePositionFallbackIndex').returns(1);
|
1868
|
-
sinon.stub(matchedStyles, 'positionTryRules').returns([]);
|
1869
|
-
const stylePropertyTreeElement = getTreeElement('position-try-fallbacks', '--top, --left, --bottom');
|
1870
|
-
stylePropertyTreeElement.updateTitle();
|
1871
|
-
const values = stylePropertyTreeElement.valueElement?.querySelectorAll(':scope > span');
|
1872
|
-
assert.exists(values);
|
1873
|
-
assert.strictEqual(values?.length, 3);
|
1874
|
-
assert.isTrue(values[0].classList.contains('inactive-value'));
|
1875
|
-
assert.isFalse(values[1].classList.contains('inactive-value'));
|
1876
|
-
assert.isTrue(values[2].classList.contains('inactive-value'));
|
1877
|
-
});
|
1878
|
-
|
1879
|
-
it('renders the position-try correctly with keyword', () => {
|
1880
|
-
sinon.stub(matchedStyles, 'activePositionFallbackIndex').returns(1);
|
1881
|
-
sinon.stub(matchedStyles, 'positionTryRules').returns([]);
|
1882
|
-
const stylePropertyTreeElement =
|
1883
|
-
getTreeElement('position-try', '/* comment */ most-height --top, --left, --bottom');
|
1884
|
-
stylePropertyTreeElement.updateTitle();
|
1885
|
-
const values =
|
1886
|
-
stylePropertyTreeElement.valueElement?.querySelectorAll(':scope > span:has(> devtools-link-swatch)');
|
1887
|
-
assert.exists(values);
|
1888
|
-
assert.strictEqual(values?.length, 3);
|
1889
|
-
assert.isTrue(values[0].classList.contains('inactive-value'));
|
1890
|
-
assert.isFalse(values[1].classList.contains('inactive-value'));
|
1891
|
-
assert.isTrue(values[2].classList.contains('inactive-value'));
|
1892
|
-
});
|
1893
|
-
});
|
1894
|
-
|
1895
|
-
describe('LengthRenderer', () => {
|
1896
|
-
it('shows a popover with pixel values for relative units', async () => {
|
1897
|
-
setMockConnectionResponseHandler(
|
1898
|
-
'CSS.resolveValues',
|
1899
|
-
(request: Protocol.CSS.ResolveValuesRequest) =>
|
1900
|
-
({results: request.values.map(v => v === '2em' ? '15px' : v)}));
|
1901
|
-
const cssModel = new SDK.CSSModel.CSSModel(createTarget());
|
1902
|
-
const domModel = cssModel.domModel();
|
1903
|
-
const node = new SDK.DOMModel.DOMNode(domModel);
|
1904
|
-
node.id = 0 as Protocol.DOM.NodeId;
|
1905
|
-
LegacyUI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
|
1906
|
-
const addPopoverPromise = Promise.withResolvers<void>();
|
1907
|
-
sinon.stub(Elements.StylePropertyTreeElement.LengthRenderer.prototype, 'popOverAttachedForTest')
|
1908
|
-
.callsFake(() => addPopoverPromise.resolve());
|
1909
|
-
const stylePropertyTreeElement = getTreeElement('property', '5px 2em');
|
1910
|
-
setMockConnectionResponseHandler('CSS.getComputedStyleForNode', () => ({computedStyle: {}}));
|
1911
|
-
|
1912
|
-
await stylePropertyTreeElement.onpopulate();
|
1913
|
-
stylePropertyTreeElement.updateTitle();
|
1914
|
-
await addPopoverPromise.promise;
|
1915
|
-
const popover = stylePropertyTreeElement.valueElement?.querySelector('devtools-tooltip');
|
1916
|
-
assert.strictEqual(popover?.innerText, '15px');
|
1917
|
-
});
|
1918
|
-
|
1919
|
-
it('passes the property name to evaluations', async () => {
|
1920
|
-
const cssModel = stylesSidebarPane.cssModel();
|
1921
|
-
assert.exists(cssModel);
|
1922
|
-
const resolveValuesStub = sinon.stub(cssModel, 'resolveValues').resolves([]);
|
1923
|
-
const stylePropertyTreeElement = getTreeElement('left', '2%');
|
1924
|
-
stylePropertyTreeElement.updateTitle();
|
1925
|
-
|
1926
|
-
sinon.assert.calledOnce(resolveValuesStub);
|
1927
|
-
assert.strictEqual(resolveValuesStub.args[0][0], 'left');
|
1928
|
-
});
|
1929
|
-
|
1930
|
-
it('uses the right longhand name in length shorthands', () => {
|
1931
|
-
const cssModel = stylesSidebarPane.cssModel();
|
1932
|
-
assert.exists(cssModel);
|
1933
|
-
const resolveValuesStub = sinon.stub(cssModel, 'resolveValues').resolves([]);
|
1934
|
-
|
1935
|
-
for (const shorthand of Elements.StylePropertyTreeElement.SHORTHANDS_FOR_PERCENTAGES) {
|
1936
|
-
const longhands = SDK.CSSMetadata.cssMetadata().getLonghands(shorthand);
|
1937
|
-
assert.exists(longhands);
|
1938
|
-
const stylePropertyTreeElement = getTreeElement(shorthand, longhands.map((_, i) => `${i * 2}%`).join(' '));
|
1939
|
-
stylePropertyTreeElement.updateTitle();
|
1940
|
-
|
1941
|
-
const args = resolveValuesStub.args.map(args => args[0]);
|
1942
|
-
assert.deepEqual(args, longhands);
|
1943
|
-
resolveValuesStub.resetHistory();
|
1944
|
-
}
|
1945
|
-
});
|
1946
|
-
|
1947
|
-
it('uses the right longhand name in length shorthands inside of substitutions during tracing', async () => {
|
1948
|
-
const cssModel = stylesSidebarPane.cssModel();
|
1949
|
-
assert.exists(cssModel);
|
1950
|
-
const resolveValuesStub = sinon.stub(cssModel, 'resolveValues').callsFake((name, nodeId, ...values) => {
|
1951
|
-
return Promise.resolve(values.map(v => v === '20%' ? '100px' : v));
|
1952
|
-
});
|
1953
|
-
|
1954
|
-
const customPropertyDef = addProperty('--left', '20%');
|
1955
|
-
mockVariableMap['--left'] = customPropertyDef;
|
1956
|
-
const stylePropertyTreeElement = getTreeElement('padding', '10px var(--left)');
|
1957
|
-
stylePropertyTreeElement.updateTitle();
|
1958
|
-
|
1959
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
1960
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
1961
|
-
|
1962
|
-
const tooltip = stylePropertyTreeElement.valueElement.querySelector('devtools-tooltip');
|
1963
|
-
const performUpdateStub = sinon.stub(Elements.CSSValueTraceView.CSSValueTraceView.prototype, 'performUpdate');
|
1964
|
-
const performUpdatePromise = new Promise<void>(resolve => performUpdateStub.callsFake(() => {
|
1965
|
-
performUpdateStub.callThrough();
|
1966
|
-
resolve();
|
1967
|
-
}));
|
1968
|
-
tooltip?.showPopover();
|
1969
|
-
await performUpdatePromise;
|
1970
|
-
const args = resolveValuesStub.args.map(args => args[0]);
|
1971
|
-
assert.deepEqual(args, ['padding-right']);
|
1972
|
-
resolveValuesStub.resetHistory();
|
1973
|
-
});
|
1974
|
-
});
|
1975
|
-
|
1976
|
-
describe('MathFunctionRenderer', () => {
|
1977
|
-
it('strikes out non-selected values', async () => {
|
1978
|
-
setMockConnectionResponseHandler(
|
1979
|
-
'CSS.resolveValues',
|
1980
|
-
(request: Protocol.CSS.ResolveValuesRequest) => ({
|
1981
|
-
results: request.values.map(
|
1982
|
-
value => value.startsWith('min') ? '4px' : value.trim().replaceAll(/(em|pt)$/g, 'px'))
|
1983
|
-
}));
|
1984
|
-
const strikeOutSpy =
|
1985
|
-
sinon.spy(Elements.StylePropertyTreeElement.MathFunctionRenderer.prototype, 'applyMathFunction');
|
1986
|
-
const stylePropertyTreeElement = getTreeElement('width', 'min(5em, 4px, 8pt)');
|
1987
|
-
stylePropertyTreeElement.updateTitle();
|
1988
|
-
|
1989
|
-
sinon.assert.calledOnce(strikeOutSpy);
|
1990
|
-
await strikeOutSpy.returnValues[0];
|
1991
|
-
const args = stylePropertyTreeElement.valueElement?.querySelectorAll(
|
1992
|
-
':scope > span > span:not(.tracing-anchor)') as NodeListOf<HTMLSpanElement>;
|
1993
|
-
assert.lengthOf(args, 3);
|
1994
|
-
assert.deepEqual(
|
1995
|
-
Array.from(args.values()).map(arg => arg.classList.contains('inactive-value')), [true, false, true]);
|
1996
|
-
});
|
1997
|
-
|
1998
|
-
it('shows a value tracing tooltip on the calc function', async () => {
|
1999
|
-
for (const property of ['calc(1px + 2px)', 'min(1px, 2px)', 'max(3px, 1px)']) {
|
2000
|
-
const stylePropertyTreeElement = getTreeElement('width', property);
|
2001
|
-
stylePropertyTreeElement.updateTitle();
|
2002
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
2003
|
-
renderElementIntoDOM(stylePropertyTreeElement.valueElement);
|
2004
|
-
const tooltip = stylePropertyTreeElement.valueElement.querySelector('devtools-tooltip');
|
2005
|
-
assert.exists(tooltip);
|
2006
|
-
const widget = tooltip.firstElementChild && LegacyUI.Widget.Widget.get(tooltip.firstElementChild);
|
2007
|
-
assert.instanceOf(widget, Elements.CSSValueTraceView.CSSValueTraceView);
|
2008
|
-
stylePropertyTreeElement.valueElement.remove();
|
2009
|
-
}
|
2010
|
-
});
|
2011
|
-
|
2012
|
-
it('shows the original text during tracing when evaluation fails', async () => {
|
2013
|
-
setMockConnectionResponseHandler(
|
2014
|
-
'CSS.resolveValues',
|
2015
|
-
(request: Protocol.CSS.ResolveValuesRequest) => ({results: request.values.map(() => '')}));
|
2016
|
-
const evaluationSpy =
|
2017
|
-
sinon.spy(Elements.StylePropertyTreeElement.MathFunctionRenderer.prototype, 'applyEvaluation');
|
2018
|
-
const property = addProperty('width', 'calc(1 + 1)');
|
2019
|
-
|
2020
|
-
const view = new Elements.CSSValueTraceView.CSSValueTraceView(undefined, () => {});
|
2021
|
-
await view.showTrace(
|
2022
|
-
property, null, matchedStyles, new Map(),
|
2023
|
-
Elements.StylePropertyTreeElement.getPropertyRenderers(
|
2024
|
-
property.name, property.ownerStyle, stylesSidebarPane, matchedStyles, null, new Map()),
|
2025
|
-
false, 0, false);
|
2026
|
-
|
2027
|
-
sinon.assert.calledOnce(evaluationSpy);
|
2028
|
-
const originalText = evaluationSpy.args[0][0].textContent;
|
2029
|
-
await evaluationSpy.returnValues[0];
|
2030
|
-
assert.strictEqual(originalText, evaluationSpy.args[0][0].textContent);
|
2031
|
-
});
|
2032
|
-
|
2033
|
-
it('shows the original text during tracing when evaluation fails', async () => {
|
2034
|
-
const cssModel = stylesSidebarPane.cssModel();
|
2035
|
-
assert.exists(cssModel);
|
2036
|
-
const resolveValuesStub = sinon.stub(cssModel, 'resolveValues').resolves([]);
|
2037
|
-
const property = addProperty('width', 'calc(1 + 1)');
|
2038
|
-
|
2039
|
-
const view = new Elements.CSSValueTraceView.CSSValueTraceView(undefined, () => {});
|
2040
|
-
await view.showTrace(
|
2041
|
-
property, null, matchedStyles, new Map(),
|
2042
|
-
Elements.StylePropertyTreeElement.getPropertyRenderers(
|
2043
|
-
property.name, property.ownerStyle, stylesSidebarPane, matchedStyles, null, new Map()),
|
2044
|
-
false, 0, false);
|
2045
|
-
|
2046
|
-
sinon.assert.calledOnce(resolveValuesStub);
|
2047
|
-
assert.strictEqual(resolveValuesStub.args[0][0], 'width');
|
2048
|
-
});
|
2049
|
-
});
|
2050
|
-
|
2051
|
-
describe('AutoBaseRenderer', () => {
|
2052
|
-
it('strikes out non-selected values', async () => {
|
2053
|
-
const stylePropertyTreeElement = getTreeElement('display', '-internal-auto-base(inline, block)');
|
2054
|
-
|
2055
|
-
stylePropertyTreeElement.updateTitle();
|
2056
|
-
|
2057
|
-
let args = stylePropertyTreeElement.valueElement?.querySelectorAll('span') as NodeListOf<HTMLSpanElement>;
|
2058
|
-
assert.lengthOf(args, 5);
|
2059
|
-
assert.deepEqual(
|
2060
|
-
Array.from(args.values()).map(arg => arg.classList.contains('inactive-value')),
|
2061
|
-
[false, false, false, true, false]);
|
2062
|
-
|
2063
|
-
stylePropertyTreeElement.setComputedStyles(new Map([['appearance', 'base-select']]));
|
2064
|
-
stylePropertyTreeElement.updateTitle();
|
2065
|
-
|
2066
|
-
args = stylePropertyTreeElement.valueElement?.querySelectorAll('span') as NodeListOf<HTMLSpanElement>;
|
2067
|
-
assert.lengthOf(args, 5);
|
2068
|
-
assert.deepEqual(
|
2069
|
-
Array.from(args.values()).map(arg => arg.classList.contains('inactive-value')),
|
2070
|
-
[false, true, false, false, false]);
|
2071
|
-
});
|
2072
|
-
});
|
2073
|
-
|
2074
|
-
describe('EnvFunctionRenderer', () => {
|
2075
|
-
it('strikes out non-selected values', async () => {
|
2076
|
-
const stylePropertyTreeElement = getTreeElement('--env', 'env(a, b) env(c, b)');
|
2077
|
-
stylePropertyTreeElement.updateTitle();
|
2078
|
-
|
2079
|
-
const args = stylePropertyTreeElement.valueElement?.querySelectorAll('span')
|
2080
|
-
.values()
|
2081
|
-
.filter(span => ['a', 'b', 'c'].includes(span.textContent ?? ''))
|
2082
|
-
.toArray();
|
2083
|
-
assert.exists(args);
|
2084
|
-
assert.lengthOf(args, 4);
|
2085
|
-
assert.deepEqual(
|
2086
|
-
Array.from(args.values()).map(arg => arg.classList.contains('inactive-value')), [false, true, true, false]);
|
2087
|
-
});
|
2088
|
-
|
2089
|
-
it('shows a value tracing tooltip', async () => {
|
2090
|
-
const stylePropertyTreeElement = getTreeElement('--env', 'env(a, b) env(c, b)');
|
2091
|
-
stylePropertyTreeElement.updateTitle();
|
2092
|
-
assert.exists(stylePropertyTreeElement.valueElement);
|
2093
|
-
const tooltips = stylePropertyTreeElement.valueElement.querySelectorAll('devtools-tooltip');
|
2094
|
-
assert.lengthOf(tooltips, 2);
|
2095
|
-
const anchors = stylePropertyTreeElement.valueElement.querySelectorAll('.tracing-anchor');
|
2096
|
-
assert.lengthOf(anchors, 2);
|
2097
|
-
assert.deepEqual(anchors.values().map(anchor => anchor.textContent).toArray(), ['env', 'env']);
|
2098
|
-
});
|
2099
|
-
});
|
2100
|
-
|
2101
|
-
describe('Autocompletion', function(this: Mocha.Suite) {
|
2102
|
-
let promptStub: sinon.SinonStub<Parameters<Elements.StylesSidebarPane.CSSPropertyPrompt['initialize']>>;
|
2103
|
-
beforeEach(async () => {
|
2104
|
-
promptStub = sinon.stub(Elements.StylesSidebarPane.CSSPropertyPrompt.prototype, 'initialize').resolves([]);
|
2105
|
-
|
2106
|
-
const gridNode = LegacyUI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
|
2107
|
-
const currentNode = new SDK.DOMModel.DOMNode(cssModel.domModel());
|
2108
|
-
currentNode.id = 1 as Protocol.DOM.NodeId;
|
2109
|
-
currentNode.parentNode = gridNode;
|
2110
|
-
LegacyUI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, currentNode);
|
2111
|
-
});
|
2112
|
-
|
2113
|
-
function suggestions() {
|
2114
|
-
assert.lengthOf(promptStub.args, 1);
|
2115
|
-
return promptStub.args[0][0].call(null, '', '');
|
2116
|
-
}
|
2117
|
-
|
2118
|
-
function setParentComputedStyle(style: Record<string, string>) {
|
2119
|
-
const computedStyle = Object.keys(style).map(name => ({name, value: style[name]}));
|
2120
|
-
setMockConnectionResponseHandler('CSS.getComputedStyleForNode', ({nodeId}) => {
|
2121
|
-
if (nodeId === 0) {
|
2122
|
-
return {computedStyle};
|
2123
|
-
}
|
2124
|
-
return {};
|
2125
|
-
});
|
2126
|
-
}
|
2127
|
-
|
2128
|
-
it('includes grid row names', async () => {
|
2129
|
-
setParentComputedStyle({display: 'grid', 'grid-template-rows': '[row-name] 1fr [row-name-2]'});
|
2130
|
-
const stylePropertyTreeElement = getTreeElement('grid-row', 'somename');
|
2131
|
-
await stylePropertyTreeElement.onpopulate();
|
2132
|
-
stylePropertyTreeElement.updateTitle();
|
2133
|
-
stylePropertyTreeElement.startEditingValue();
|
2134
|
-
const autocompletions = await suggestions();
|
2135
|
-
assert.deepEqual(
|
2136
|
-
autocompletions.map(({text}) => text),
|
2137
|
-
['row-name', 'row-name-2', 'auto', 'none', 'inherit', 'initial', 'revert', 'revert-layer', 'unset']);
|
2138
|
-
});
|
2139
|
-
|
2140
|
-
it('includes grid column names', async () => {
|
2141
|
-
setParentComputedStyle({display: 'grid', 'grid-template-columns': '[col-name] 1fr [col-name-2]'});
|
2142
|
-
const stylePropertyTreeElement = getTreeElement('grid-column', 'somename');
|
2143
|
-
await stylePropertyTreeElement.onpopulate();
|
2144
|
-
stylePropertyTreeElement.updateTitle();
|
2145
|
-
stylePropertyTreeElement.startEditingValue();
|
2146
|
-
const autocompletions = await suggestions();
|
2147
|
-
assert.deepEqual(
|
2148
|
-
autocompletions.map(({text}) => text),
|
2149
|
-
['col-name', 'col-name-2', 'auto', 'none', 'inherit', 'initial', 'revert', 'revert-layer', 'unset']);
|
2150
|
-
});
|
2151
|
-
|
2152
|
-
it('includes grid area names', async () => {
|
2153
|
-
setParentComputedStyle({display: 'grid', 'grid-template-areas': '"area-name-a area-name-b" "area-name-c ."'});
|
2154
|
-
const stylePropertyTreeElement = getTreeElement('grid-area', 'somename');
|
2155
|
-
await stylePropertyTreeElement.onpopulate();
|
2156
|
-
stylePropertyTreeElement.updateTitle();
|
2157
|
-
stylePropertyTreeElement.startEditingValue();
|
2158
|
-
const autocompletions = await suggestions();
|
2159
|
-
assert.deepEqual(autocompletions.map(({text}) => text), [
|
2160
|
-
'area-name-a',
|
2161
|
-
'area-name-b',
|
2162
|
-
'area-name-c',
|
2163
|
-
'auto',
|
2164
|
-
'none',
|
2165
|
-
'inherit',
|
2166
|
-
'initial',
|
2167
|
-
'revert',
|
2168
|
-
'revert-layer',
|
2169
|
-
'unset',
|
2170
|
-
]);
|
2171
|
-
});
|
2172
|
-
});
|
2173
|
-
|
2174
|
-
it('reopens open tooltips on updates', async () => {
|
2175
|
-
const openTooltipStub = sinon.stub(Tooltips.Tooltip.Tooltip.prototype, 'showPopover');
|
2176
|
-
const openTooltipPromise1 = new Promise<void>(r => openTooltipStub.callsFake(r));
|
2177
|
-
const stylePropertyTreeElement = getTreeElement('color', 'color-mix(in srgb, red, blue)');
|
2178
|
-
stylePropertyTreeElement.updateTitle();
|
2179
|
-
const tooltip = stylePropertyTreeElement.valueElement?.querySelector(
|
2180
|
-
'devtools-tooltip:not([jslogcontext="elements.css-value-trace"])') as Tooltips.Tooltip.Tooltip |
|
2181
|
-
null | undefined;
|
2182
|
-
assert.exists(tooltip);
|
2183
|
-
renderElementIntoDOM(tooltip);
|
2184
|
-
tooltip.showTooltip();
|
2185
|
-
await openTooltipPromise1;
|
2186
|
-
tooltip.remove();
|
2187
|
-
|
2188
|
-
const openTooltipPromise2 = new Promise<void>(r => openTooltipStub.callsFake(r));
|
2189
|
-
stylePropertyTreeElement.updateTitle();
|
2190
|
-
const tooltip2 =
|
2191
|
-
stylePropertyTreeElement.valueElement?.querySelector(
|
2192
|
-
'devtools-tooltip:not([jslogcontext="elements.css-value-trace"])') as Tooltips.Tooltip.Tooltip |
|
2193
|
-
null | undefined;
|
2194
|
-
assert.exists(tooltip2);
|
2195
|
-
renderElementIntoDOM(tooltip2);
|
2196
|
-
await openTooltipPromise2;
|
2197
|
-
assert.notStrictEqual(tooltip, tooltip2);
|
2198
|
-
});
|
2199
|
-
|
2200
|
-
it('shows a property docs tooltip', async () => {
|
2201
|
-
const webCustomDataStub = sinon.createStubInstance(Elements.WebCustomData.WebCustomData);
|
2202
|
-
webCustomDataStub.findCssProperty.returns({name: 'color', description: 'test color'});
|
2203
|
-
sinon.stub(stylesSidebarPane, 'webCustomData').get(() => webCustomDataStub);
|
2204
|
-
Common.Settings.Settings.instance().moduleSetting('show-css-property-documentation-on-hover').set(false);
|
2205
|
-
const treeElementWithoutTooltip = getTreeElement('color', 'blue');
|
2206
|
-
treeElementWithoutTooltip.treeOutline = new LegacyUI.TreeOutline.TreeOutline();
|
2207
|
-
treeElementWithoutTooltip.updateTitle();
|
2208
|
-
assert.notExists(treeElementWithoutTooltip.listItemElement.querySelector(
|
2209
|
-
'devtools-tooltip[jslogcontext="elements.css-property-doc"]'));
|
2210
|
-
|
2211
|
-
Common.Settings.Settings.instance().moduleSetting('show-css-property-documentation-on-hover').set(true);
|
2212
|
-
const treeElementWithTooltip = getTreeElement('color', 'blue');
|
2213
|
-
treeElementWithTooltip.treeOutline = new LegacyUI.TreeOutline.TreeOutline();
|
2214
|
-
treeElementWithTooltip.updateTitle();
|
2215
|
-
renderElementIntoDOM(treeElementWithTooltip.listItemElement);
|
2216
|
-
const tooltip = treeElementWithTooltip.listItemElement.querySelector(
|
2217
|
-
'devtools-tooltip[jslogcontext="elements.css-property-doc"]');
|
2218
|
-
assert.instanceOf(tooltip, Tooltips.Tooltip.Tooltip);
|
2219
|
-
|
2220
|
-
tooltip.showPopover();
|
2221
|
-
assert.isTrue(tooltip.open);
|
2222
|
-
tooltip.hidePopover();
|
2223
|
-
assert.isFalse(tooltip.open);
|
2224
|
-
|
2225
|
-
Common.Settings.Settings.instance().moduleSetting('show-css-property-documentation-on-hover').set(false);
|
2226
|
-
tooltip.showPopover();
|
2227
|
-
assert.isFalse(tooltip.open);
|
2228
|
-
});
|
2229
|
-
|
2230
|
-
it('does not show a variable tooltip on custom property names in function rules', async () => {
|
2231
|
-
const stylePropertyTreeElement = await getTreeElementForFunctionRule('--func', 'red', '--foo');
|
2232
|
-
stylePropertyTreeElement.treeOutline = new LegacyUI.TreeOutline.TreeOutline();
|
2233
|
-
stylePropertyTreeElement.updateTitle();
|
2234
|
-
assert.exists(stylePropertyTreeElement.nameElement);
|
2235
|
-
assert.notExists(stylePropertyTreeElement.nameElement.getAttribute('aria-details'));
|
2236
|
-
assert.exists(stylePropertyTreeElement.nameElement.parentElement);
|
2237
|
-
assert.notExists(stylePropertyTreeElement.nameElement.parentElement.querySelector('devtools-tooltip'));
|
2238
|
-
});
|
2239
|
-
|
2240
|
-
it('correctly identifies when a semicolon terminates editing a property', () => {
|
2241
|
-
const inputText = '" " ( ) [ ] { } { ( ) } { [ ( " ) " ) ] } { [ } ] } ( " ) " )';
|
2242
|
-
const positions = '+--++--++--++--++------++----------------++--------++--------';
|
2243
|
-
// + identifies a position in which a semicolon should terminate editing
|
2244
|
-
for (let i = 0; i < inputText.length; i++) {
|
2245
|
-
const shouldCommit =
|
2246
|
-
Elements.StylePropertyTreeElement.StylePropertyTreeElement.shouldCommitValueSemicolon(inputText, i);
|
2247
|
-
assert.strictEqual(shouldCommit, positions[i] === '+', `\n${inputText}\n${' '.repeat(i)}^`);
|
2248
|
-
}
|
2249
|
-
});
|
2250
|
-
});
|