chrome-devtools-frontend 1.0.1473514 → 1.0.1506453
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/.gemini/commands/migrate-e2e-non-hosted.toml +43 -0
- package/.gemini/commands/review.toml +85 -0
- package/.geminiignore +6 -0
- package/.github/workflows/auto-close-prs.yml +30 -0
- package/.stylelintignore +0 -1
- package/.vscode/devtools-workspace-settings.json +2 -1
- package/AUTHORS +3 -0
- package/WATCHLISTS +0 -4
- package/config/gni/devtools_grd_files.gni +92 -47
- package/config/gni/devtools_image_files.gni +8 -0
- package/config/gni/i18n.gni +3 -2
- package/config/owner/COMMON_OWNERS +2 -0
- package/docs/README.md +2 -2
- package/docs/architecture_of_devtools.md +8 -8
- package/docs/committers_policy.md +2 -0
- package/docs/contributing/README.md +29 -5
- package/docs/contributing/changes.md +1 -1
- package/docs/contributing/images/quickstart-vscode-tsversion.png +0 -0
- package/docs/contributing/infrastructure.md +89 -0
- package/docs/cookbook/localization.md +86 -79
- package/docs/get_the_code.md +9 -9
- package/docs/styleguide/ux/components.md +190 -2
- package/docs/styleguide/ux/glossary.md +16 -0
- package/docs/styleguide/ux/images/context-menu-example.png +0 -0
- package/docs/ui_engineering.md +80 -19
- package/eslint.config.mjs +64 -23
- package/extension-api/ExtensionAPI.d.ts +3 -0
- package/extensions/cxx_debugging/CMakeLists.txt +0 -6
- package/extensions/cxx_debugging/e2e/MochaRootHooks.ts +3 -1
- package/extensions/cxx_debugging/e2e/TestDriver.ts +1 -2
- package/extensions/cxx_debugging/src/GlobMatch.ts +1 -1
- package/extensions/cxx_debugging/src/ModuleConfiguration.ts +2 -2
- package/extensions/cxx_debugging/third_party/llvm/README.chromium +2 -0
- package/extensions/cxx_debugging/tools/bootstrap.py +7 -0
- package/front_end/Images/generate-css-vars.js +1 -1
- package/front_end/Images/readme.md +1 -2
- package/front_end/Images/rollup.config.mjs +12 -1
- package/front_end/Images/src/baseline-high-availability.svg +17 -0
- package/front_end/Images/src/baseline-limited-availability.svg +19 -0
- package/front_end/Images/src/baseline-low-availability.svg +31 -0
- package/front_end/Images/src/bucket.svg +4 -0
- package/front_end/Images/src/label-auto.svg +3 -0
- package/front_end/Images/src/shield.svg +3 -0
- package/front_end/Images/src/smart-assistant.svg +3 -1
- package/front_end/Images/src/speculative-loads.svg +1 -0
- package/front_end/Images/src/text-analysis.svg +3 -0
- package/front_end/Tests.js +78 -230
- package/front_end/application_tokens.css +7 -1
- package/front_end/core/common/Base64.test.ts +1 -1
- package/front_end/core/common/Base64.ts +3 -3
- package/front_end/core/common/Color.ts +38 -0
- package/front_end/core/common/Debouncer.ts +3 -3
- package/front_end/core/common/EventTarget.test.ts +1 -0
- package/front_end/core/common/Gzip.test.ts +63 -0
- package/front_end/core/common/Gzip.ts +72 -0
- package/front_end/core/common/ResourceType.ts +29 -29
- package/front_end/core/common/ReturnToPanel.ts +15 -0
- package/front_end/core/common/Revealer.ts +10 -10
- package/front_end/core/common/SettingRegistration.ts +22 -22
- package/front_end/core/common/Settings.test.ts +151 -18
- package/front_end/core/common/Settings.ts +99 -8
- package/front_end/core/common/SimpleHistoryManager.ts +0 -17
- package/front_end/core/common/common.ts +4 -0
- package/front_end/core/host/AidaClient.test.ts +103 -2
- package/front_end/core/host/AidaClient.ts +161 -31
- package/front_end/core/host/InspectorFrontendHost.ts +57 -48
- package/front_end/core/host/InspectorFrontendHostAPI.ts +11 -0
- package/front_end/core/host/ResourceLoader.ts +15 -15
- package/front_end/core/host/UserMetrics.ts +27 -13
- package/front_end/core/i18n/NumberFormatter.test.ts +92 -0
- package/front_end/core/i18n/NumberFormatter.ts +9 -9
- package/front_end/core/i18n/collect-ui-strings.js +3 -3
- package/front_end/core/i18n/time-utilities.ts +3 -14
- package/front_end/core/platform/Brand.ts +8 -1
- package/front_end/core/platform/DevToolsPath.ts +1 -1
- package/front_end/core/platform/StringUtilities.test.ts +54 -1
- package/front_end/core/platform/StringUtilities.ts +34 -8
- package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
- package/front_end/core/root/Runtime.ts +52 -8
- package/front_end/core/sdk/AnimationModel.test.ts +0 -24
- package/front_end/core/sdk/AnimationModel.ts +1 -95
- package/front_end/core/sdk/AutofillModel.ts +8 -2
- package/front_end/core/sdk/CPUProfilerModel.ts +2 -2
- package/front_end/core/sdk/CSSContainerQuery.test.ts +15 -0
- package/front_end/core/sdk/CSSContainerQuery.ts +3 -1
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +2 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +79 -50
- package/front_end/core/sdk/CSSModel.ts +20 -7
- package/front_end/core/sdk/CSSPropertyParser.test.ts +4 -3
- package/front_end/core/sdk/CSSPropertyParser.ts +12 -4
- package/front_end/core/sdk/CSSPropertyParserMatchers.test.ts +46 -15
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +131 -58
- package/front_end/core/sdk/CSSRule.ts +44 -44
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +2 -6
- package/front_end/core/sdk/ChildTargetManager.ts +1 -1
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +3 -8
- package/front_end/core/sdk/Connections.ts +17 -30
- package/front_end/core/sdk/ConsoleModel.ts +9 -9
- package/front_end/core/sdk/DOMModel.ts +45 -16
- package/front_end/core/sdk/DebuggerModel.test.ts +7 -4
- package/front_end/core/sdk/DebuggerModel.ts +55 -11
- package/front_end/core/sdk/EmulationModel.ts +13 -0
- package/front_end/core/sdk/EventBreakpointsModel.ts +2 -2
- package/front_end/core/sdk/IOModel.ts +28 -2
- package/front_end/core/sdk/NetworkManager.test.ts +0 -27
- package/front_end/core/sdk/NetworkManager.ts +137 -105
- package/front_end/core/sdk/NetworkRequest.ts +747 -616
- package/front_end/core/sdk/OverlayModel.ts +4 -8
- package/front_end/core/sdk/PageResourceLoader.ts +32 -13
- package/front_end/core/sdk/PreloadingModel.ts +1 -0
- package/front_end/core/sdk/RehydratingConnection.ts +13 -14
- package/front_end/core/sdk/RemoteObject.test.ts +24 -2
- package/front_end/core/sdk/RemoteObject.ts +0 -3
- package/front_end/core/sdk/Resource.ts +0 -5
- package/front_end/core/sdk/RuntimeModel.ts +2 -1
- package/front_end/core/sdk/Script.ts +2 -7
- package/front_end/core/sdk/ServerTiming.ts +12 -12
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +7 -3
- package/front_end/core/sdk/ServiceWorkerManager.ts +14 -18
- package/front_end/core/sdk/SourceMap.test.ts +55 -73
- package/front_end/core/sdk/SourceMap.ts +14 -11
- package/front_end/core/sdk/SourceMapFunctionRanges.ts +15 -9
- package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +6 -5
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +14 -14
- package/front_end/core/sdk/SourceMapScopesInfo.test.ts +232 -317
- package/front_end/core/sdk/SourceMapScopesInfo.ts +26 -25
- package/front_end/core/sdk/StorageBucketsModel.ts +4 -0
- package/front_end/core/sdk/Target.ts +2 -2
- package/front_end/core/sdk/TargetManager.ts +1 -1
- package/front_end/core/sdk/sdk-meta.ts +86 -86
- package/front_end/core/sdk/sdk.ts +0 -2
- package/front_end/design_system_tokens.css +1 -1
- package/front_end/devtools_compatibility.js +201 -177
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +12 -0
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +3 -3
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -1
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +1 -1
- package/front_end/entrypoints/js_app/js_app.ts +3 -3
- package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +1 -1
- package/front_end/entrypoints/main/GlobalAiButton.test.ts +132 -0
- package/front_end/entrypoints/main/GlobalAiButton.ts +141 -0
- package/front_end/entrypoints/main/MainImpl.test.ts +27 -0
- package/front_end/entrypoints/main/MainImpl.ts +179 -47
- package/front_end/entrypoints/main/globalAiButton.css +72 -0
- package/front_end/entrypoints/main/main-meta.ts +82 -42
- package/front_end/entrypoints/main/main.ts +2 -0
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +6 -6
- package/front_end/entrypoints/node_app/NodeMain.ts +8 -7
- package/front_end/entrypoints/node_app/node_app.ts +5 -5
- package/front_end/entrypoints/wasmparser_worker/WasmParserWorker.ts +1 -1
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/generated/Deprecation.ts +7 -29
- package/front_end/generated/InspectorBackendCommands.js +183 -167
- package/front_end/generated/SupportedCSSProperties.js +252 -166
- package/front_end/generated/protocol-mapping.d.ts +687 -608
- package/front_end/generated/protocol-proxy-api.d.ts +782 -672
- package/front_end/generated/protocol.ts +11862 -11509
- package/front_end/global_typings/global_defs.d.ts +5 -0
- package/front_end/legacy_test_runner/accessibility_test_runner/accessibility_test_runner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/CacheStorageTestRunner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/IndexedDBTestRunner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/ResourcesTestRunner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/ServiceWorkersTestRunner.js +1 -1
- package/front_end/legacy_test_runner/application_test_runner/StorageTestRunner.js +1 -1
- package/front_end/legacy_test_runner/axe_core_test_runner/axe_core_test_runner.js +1 -1
- package/front_end/legacy_test_runner/bindings_test_runner/AutomappingTestRunner.js +1 -1
- package/front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js +1 -1
- package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +1 -1
- package/front_end/legacy_test_runner/bindings_test_runner/OverridesTestRunner.js +1 -1
- package/front_end/legacy_test_runner/bindings_test_runner/PersistenceTestRunner.js +1 -1
- package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +20 -20
- package/front_end/legacy_test_runner/coverage_test_runner/coverage_test_runner.js +11 -11
- package/front_end/legacy_test_runner/data_grid_test_runner/data_grid_test_runner.js +1 -1
- package/front_end/legacy_test_runner/device_mode_test_runner/device_mode_test_runner.js +1 -1
- package/front_end/legacy_test_runner/elements_test_runner/EditDOMTestRunner.js +1 -1
- package/front_end/legacy_test_runner/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +1 -1
- package/front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js +6 -80
- package/front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js +1 -1
- package/front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js +1 -1
- package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js +1 -1
- package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js +1 -1
- package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +2 -2
- package/front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js +1 -1
- package/front_end/legacy_test_runner/network_test_runner/network_test_runner.js +1 -1
- package/front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js +1 -1
- package/front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js +1 -10
- package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +1 -1
- package/front_end/legacy_test_runner/security_test_runner/security_test_runner.js +1 -1
- package/front_end/legacy_test_runner/sources_test_runner/AutocompleteTestRunner.js +1 -1
- package/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js +4 -4
- package/front_end/legacy_test_runner/sources_test_runner/EditorTestRunner.js +1 -1
- package/front_end/legacy_test_runner/sources_test_runner/LiveEditTestRunner.js +1 -1
- package/front_end/legacy_test_runner/sources_test_runner/SearchTestRunner.js +1 -1
- package/front_end/legacy_test_runner/sources_test_runner/SourcesTestRunner.js +2 -2
- package/front_end/legacy_test_runner/test_runner/TestRunner.js +45 -45
- package/front_end/legacy_test_runner/test_runner/test_runner.js +4 -4
- package/front_end/models/ai_assistance/AiHistoryStorage.snapshot.txt +66 -0
- package/front_end/models/ai_assistance/AiHistoryStorage.test.ts +82 -3
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +95 -6
- package/front_end/models/ai_assistance/AiUtils.ts +1 -1
- package/front_end/models/ai_assistance/ConversationHandler.test.ts +355 -0
- package/front_end/models/ai_assistance/ConversationHandler.ts +380 -0
- package/front_end/models/ai_assistance/ExtensionScope.ts +1 -4
- package/front_end/models/ai_assistance/README.md +79 -0
- package/front_end/models/ai_assistance/agents/AiAgent.test.ts +22 -1
- package/front_end/models/ai_assistance/agents/AiAgent.ts +76 -95
- package/front_end/models/ai_assistance/agents/FileAgent.test.ts +3 -2
- package/front_end/models/ai_assistance/agents/FileAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +7 -7
- package/front_end/models/ai_assistance/agents/PerformanceAgent.test.ts +591 -62
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +1111 -117
- package/front_end/models/ai_assistance/agents/PerformanceAnnotationsAgent.test.ts +4 -2
- package/front_end/models/ai_assistance/agents/PerformanceAnnotationsAgent.ts +75 -5
- package/front_end/models/ai_assistance/agents/StylingAgent.test.ts +166 -507
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +125 -319
- package/front_end/models/ai_assistance/ai_assistance.ts +2 -1
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.test.ts +3 -2
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +725 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.test.ts +249 -274
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +494 -83
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +556 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.test.ts +92 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +359 -0
- package/front_end/models/ai_assistance/debug.ts +1 -1
- package/front_end/models/ai_assistance/injected.ts +1 -1
- package/front_end/models/ai_code_completion/AiCodeCompletion.test.ts +328 -0
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +289 -0
- package/front_end/models/ai_code_completion/ai_code_completion.ts +6 -0
- package/front_end/models/ai_code_completion/debug.ts +30 -0
- package/front_end/models/autofill_manager/AutofillManager.test.ts +0 -6
- package/front_end/models/autofill_manager/AutofillManager.ts +16 -9
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -4
- package/front_end/models/bindings/CompilerScriptMapping.test.ts +8 -4
- package/front_end/models/bindings/CompilerScriptMapping.ts +12 -5
- package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +7 -2
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +33 -24
- package/front_end/models/bindings/DebuggerWorkspaceBinding.test.ts +95 -3
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +94 -21
- package/front_end/models/bindings/DefaultScriptMapping.test.ts +3 -2
- package/front_end/models/bindings/FileUtils.test.ts +1 -10
- package/front_end/models/bindings/FileUtils.ts +6 -22
- package/front_end/models/bindings/LiveLocation.ts +0 -5
- package/front_end/models/bindings/PresentationConsoleMessageHelper.test.ts +7 -2
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +0 -4
- package/front_end/models/bindings/ResourceMapping.test.ts +7 -2
- package/front_end/models/bindings/ResourceMapping.ts +0 -4
- package/front_end/models/bindings/ResourceScriptMapping.test.ts +2 -1
- package/front_end/models/bindings/ResourceScriptMapping.ts +4 -4
- package/front_end/models/bindings/SASSSourceMapping.ts +1 -1
- package/front_end/models/bindings/StylesSourceMapping.ts +0 -5
- package/front_end/models/bindings/bindings.ts +0 -2
- package/front_end/models/breakpoints/BreakpointManager.test.ts +9 -2
- package/front_end/models/cpu_profile/CPUProfileDataModel.ts +4 -2
- package/front_end/models/elements/ElementUpdateRecord.ts +101 -0
- package/front_end/models/elements/elements.ts +9 -0
- package/front_end/models/emulation/DeviceModeModel.ts +6 -22
- package/front_end/models/emulation/EmulatedDevices.ts +12 -12
- package/front_end/models/extensions/ExtensionAPI.ts +9 -5
- package/front_end/models/extensions/ExtensionPanel.ts +5 -2
- package/front_end/models/extensions/ExtensionServer.test.ts +122 -16
- package/front_end/models/extensions/ExtensionServer.ts +114 -31
- package/front_end/models/extensions/ExtensionView.ts +1 -1
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +14 -7
- package/front_end/models/har/HARFormat.ts +1 -1
- package/front_end/models/har/Importer.test.ts +40 -0
- package/front_end/models/har/Importer.ts +35 -1
- package/front_end/models/har/Writer.test.ts +3 -2
- package/front_end/models/har/Writer.ts +2 -2
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
- package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -5
- package/front_end/models/issues_manager/CookieIssue.ts +2 -2
- package/front_end/models/issues_manager/CorsIssue.ts +3 -3
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +2 -2
- package/front_end/models/issues_manager/{SelectElementAccessibilityIssue.test.ts → ElementAccessibilityIssue.test.ts} +22 -21
- package/front_end/models/issues_manager/{SelectElementAccessibilityIssue.ts → ElementAccessibilityIssue.ts} +29 -21
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/GenericIssue.ts +4 -4
- package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
- package/front_end/models/issues_manager/Issue.ts +6 -6
- package/front_end/models/issues_manager/IssuesManager.ts +8 -3
- package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
- package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +2 -2
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +3 -3
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +1 -1
- package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
- package/front_end/models/issues_manager/UnencodedDigestIssue.test.ts +49 -0
- package/front_end/models/issues_manager/UnencodedDigestIssue.ts +88 -0
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +1 -1
- package/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +1 -3
- package/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
- package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
- package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
- package/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
- package/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
- package/front_end/models/issues_manager/descriptions/userReidentificationBlocked.md +1 -1
- package/front_end/models/issues_manager/issues_manager.ts +4 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +201 -127
- package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +1 -1
- package/front_end/models/logs/NetworkLog.ts +74 -83
- package/front_end/models/logs/logs-meta.ts +4 -4
- package/front_end/models/persistence/AutomaticFileSystemManager.test.ts +0 -39
- package/front_end/models/persistence/AutomaticFileSystemManager.ts +14 -21
- package/front_end/models/persistence/EditFileSystemView.ts +6 -6
- package/front_end/models/persistence/IsolatedFileSystem.ts +27 -9
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +16 -3
- package/front_end/models/persistence/NetworkPersistenceManager.ts +7 -3
- package/front_end/models/persistence/PersistenceAction.test.ts +10 -7
- package/front_end/models/persistence/PersistenceActions.ts +26 -15
- package/front_end/models/persistence/PersistenceImpl.test.ts +2 -1
- package/front_end/models/persistence/PersistenceImpl.ts +7 -4
- package/front_end/models/persistence/PersistenceUtils.ts +10 -7
- package/front_end/models/persistence/PlatformFileSystem.ts +11 -2
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +6 -6
- package/front_end/models/persistence/editFileSystemView.css +17 -15
- package/front_end/models/persistence/persistence-meta.ts +10 -10
- package/front_end/models/persistence/workspaceSettingsTab.css +29 -27
- package/front_end/models/project_settings/ProjectSettingsModel.ts +2 -2
- package/front_end/models/source_map_scopes/NamesResolver.test.ts +3 -2
- package/front_end/models/source_map_scopes/NamesResolver.ts +1 -1
- package/front_end/models/source_map_scopes/ScopeChainModel.test.ts +2 -1
- package/front_end/models/stack_trace/README.md +14 -0
- package/front_end/models/stack_trace/StackTrace.ts +35 -0
- package/front_end/models/stack_trace/StackTraceImpl.test.ts +74 -0
- package/front_end/models/stack_trace/StackTraceImpl.ts +82 -0
- package/front_end/models/stack_trace/StackTraceModel.test.ts +296 -0
- package/front_end/models/stack_trace/StackTraceModel.ts +127 -0
- package/front_end/models/stack_trace/Trie.test.ts +129 -0
- package/front_end/models/stack_trace/Trie.ts +154 -0
- package/front_end/models/stack_trace/stack_trace.ts +9 -0
- package/front_end/models/stack_trace/stack_trace_impl.ts +13 -0
- package/front_end/models/text_utils/ContentProvider.ts +1 -3
- package/front_end/models/text_utils/StaticContentProvider.test.ts +1 -1
- package/front_end/models/text_utils/StaticContentProvider.ts +1 -5
- package/front_end/models/text_utils/TextUtils.ts +2 -3
- package/front_end/models/trace/LanternComputationData.ts +1 -0
- package/front_end/models/trace/ModelImpl.ts +18 -7
- package/front_end/models/trace/Processor.test.ts +15 -14
- package/front_end/models/trace/Processor.ts +49 -32
- package/front_end/models/trace/extras/ScriptDuplication.test.ts +13 -10
- package/front_end/models/trace/extras/StackTraceForEvent.test.ts +10 -8
- package/front_end/models/trace/extras/ThirdParties.ts +2 -3
- package/front_end/models/trace/extras/TraceTree.ts +7 -6
- package/front_end/models/trace/extras/extras.ts +0 -2
- package/front_end/models/trace/handlers/AnimationFramesHandler.test.ts +5 -5
- package/front_end/models/trace/handlers/AnimationFramesHandler.ts +10 -0
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.test.ts +177 -85
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +28 -27
- package/front_end/models/trace/handlers/FramesHandler.test.ts +2 -7
- package/front_end/models/trace/handlers/FramesHandler.ts +46 -37
- package/front_end/models/trace/handlers/ImagePaintingHandler.test.ts +41 -0
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +44 -1
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +62 -15
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +24 -0
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +6 -18
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +21 -17
- package/front_end/models/trace/handlers/MetaHandler.test.ts +12 -0
- package/front_end/models/trace/handlers/MetaHandler.ts +5 -4
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +21 -21
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +79 -32
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.test.ts +6 -18
- package/front_end/models/trace/handlers/RendererHandler.test.ts +26 -39
- package/front_end/models/trace/handlers/RendererHandler.ts +10 -17
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +3 -4
- package/front_end/models/trace/handlers/SamplesHandler.ts +13 -12
- package/front_end/models/trace/handlers/ScriptsHandler.test.ts +1 -1
- package/front_end/models/trace/handlers/ScriptsHandler.ts +8 -4
- package/front_end/models/trace/handlers/SelectorStatsHandler.test.ts +1 -3
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +65 -0
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -2
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +4 -2
- package/front_end/models/trace/handlers/UserTimingsHandler.test.ts +326 -0
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +61 -24
- package/front_end/models/trace/handlers/helpers.test.ts +7 -6
- package/front_end/models/trace/handlers/helpers.ts +19 -14
- package/front_end/models/trace/handlers/types.ts +5 -1
- package/front_end/models/trace/helpers/SamplesIntegrator.test.ts +3 -3
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +24 -33
- package/front_end/models/trace/helpers/SyntheticEvents.ts +2 -2
- package/front_end/models/trace/helpers/Timing.ts +66 -3
- package/front_end/models/trace/helpers/Trace.test.ts +6 -7
- package/front_end/models/trace/helpers/Trace.ts +47 -19
- package/front_end/models/trace/helpers/TreeHelpers.test.ts +0 -8
- package/front_end/models/trace/helpers/TreeHelpers.ts +1 -1
- package/front_end/models/trace/insights/CLSCulprits.test.ts +10 -7
- package/front_end/models/trace/insights/CLSCulprits.ts +85 -23
- package/front_end/models/trace/insights/Cache.ts +12 -0
- package/front_end/models/trace/insights/Common.test.ts +3 -3
- package/front_end/models/trace/insights/Common.ts +56 -22
- package/front_end/models/trace/insights/DOMSize.test.ts +4 -1
- package/front_end/models/trace/insights/DOMSize.ts +48 -1
- package/front_end/models/trace/insights/DocumentLatency.test.ts +5 -1
- package/front_end/models/trace/insights/DocumentLatency.ts +59 -4
- package/front_end/models/trace/insights/DuplicatedJavaScript.test.ts +2 -3
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +15 -4
- package/front_end/models/trace/insights/FontDisplay.test.ts +1 -1
- package/front_end/models/trace/insights/FontDisplay.ts +8 -0
- package/front_end/models/trace/insights/ForcedReflow.ts +25 -4
- package/front_end/models/trace/insights/{InteractionToNextPaint.test.ts → INPBreakdown.test.ts} +2 -2
- package/front_end/models/trace/insights/{InteractionToNextPaint.ts → INPBreakdown.ts} +63 -16
- package/front_end/models/trace/insights/ImageDelivery.ts +39 -7
- package/front_end/models/trace/insights/LCPBreakdown.test.ts +100 -0
- package/front_end/models/trace/insights/LCPBreakdown.ts +255 -0
- package/front_end/models/trace/insights/LCPDiscovery.ts +84 -8
- package/front_end/models/trace/insights/LegacyJavaScript.ts +14 -4
- package/front_end/models/trace/insights/Models.ts +2 -2
- package/front_end/models/trace/insights/ModernHTTP.test.ts +3 -2
- package/front_end/models/trace/insights/ModernHTTP.ts +35 -18
- package/front_end/models/trace/insights/NetworkDependencyTree.test.ts +10 -1
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +41 -13
- package/front_end/models/trace/insights/RenderBlocking.test.ts +8 -12
- package/front_end/models/trace/insights/RenderBlocking.ts +13 -1
- package/front_end/models/trace/insights/SlowCSSSelector.test.ts +12 -34
- package/front_end/models/trace/insights/SlowCSSSelector.ts +46 -27
- package/front_end/models/trace/insights/ThirdParties.test.ts +1 -1
- package/front_end/models/trace/insights/ThirdParties.ts +36 -0
- package/front_end/models/trace/insights/Viewport.test.ts +16 -1
- package/front_end/models/trace/insights/Viewport.ts +41 -3
- package/front_end/models/trace/insights/types.ts +5 -2
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.test.ts +4 -0
- package/front_end/models/trace/lantern/graph/BaseNode.ts +1 -1
- package/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +1 -1
- package/front_end/models/trace/trace.ts +0 -2
- package/front_end/models/trace/types/Configuration.ts +8 -0
- package/front_end/models/trace/types/Extensions.ts +24 -3
- package/front_end/models/trace/types/File.ts +5 -2
- package/front_end/models/trace/types/Overlays.ts +140 -0
- package/front_end/models/trace/types/Timing.ts +1 -0
- package/front_end/models/trace/types/TraceEvents.test.ts +2 -1
- package/front_end/models/trace/types/TraceEvents.ts +98 -62
- package/front_end/models/trace/types/types.ts +1 -0
- package/front_end/models/workspace/FileManager.ts +5 -3
- package/front_end/models/{bindings → workspace}/IgnoreListManager.test.ts +11 -7
- package/front_end/models/{bindings → workspace}/IgnoreListManager.ts +36 -33
- package/front_end/models/workspace/UISourceCode.test.ts +18 -17
- package/front_end/models/workspace/UISourceCode.ts +17 -7
- package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
- package/front_end/models/workspace/workspace.ts +2 -0
- package/front_end/models/workspace_diff/WorkspaceDiff.test.ts +2 -0
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +7 -2
- package/front_end/panels/accessibility/ARIAAttributesView.test.ts +101 -0
- package/front_end/panels/accessibility/ARIAAttributesView.ts +16 -4
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +12 -9
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +31 -28
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -12
- package/front_end/panels/accessibility/AccessibilityStrings.ts +87 -87
- package/front_end/panels/accessibility/AccessibilitySubPane.ts +6 -6
- package/front_end/panels/accessibility/SourceOrderView.ts +95 -61
- package/front_end/panels/accessibility/accessibilityProperties.css +5 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.snapshot.txt +32 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.test.ts +465 -377
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +289 -339
- package/front_end/panels/ai_assistance/PatchWidget.ts +30 -29
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.test.ts +11 -1
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +29 -19
- package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -0
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +40 -20
- package/front_end/panels/ai_assistance/components/ChatView.test.ts +1 -0
- package/front_end/panels/ai_assistance/components/ChatView.ts +55 -44
- package/front_end/panels/ai_assistance/components/ExploreWidget.ts +10 -24
- package/front_end/panels/ai_assistance/components/UserActionRow.test.ts +4 -0
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +25 -3
- package/front_end/panels/ai_assistance/components/chatView.css +0 -9
- package/front_end/panels/ai_assistance/components/exploreWidget.css +104 -102
- package/front_end/panels/ai_assistance/components/userActionRow.css +95 -94
- package/front_end/panels/ai_assistance/selectWorkspaceDialog.css +70 -69
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -10
- package/front_end/panels/animation/AnimationTimeline.test.ts +6 -13
- package/front_end/panels/animation/AnimationTimeline.ts +183 -169
- package/front_end/panels/animation/AnimationUI.ts +4 -4
- package/front_end/panels/animation/animation.ts +0 -2
- package/front_end/panels/animation/animationTimeline.css +0 -67
- package/front_end/panels/application/AppManifestView.test.ts +21 -0
- package/front_end/panels/application/AppManifestView.ts +158 -139
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +13 -8
- package/front_end/panels/application/ApplicationPanelSidebar.ts +53 -54
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
- package/front_end/panels/application/BackgroundServiceView.test.ts +4 -8
- package/front_end/panels/application/BackgroundServiceView.ts +46 -44
- package/front_end/panels/application/CookieItemsView.ts +13 -14
- package/front_end/panels/application/DOMStorageItemsView.ts +5 -5
- package/front_end/panels/application/ExtensionStorageItemsView.ts +3 -3
- package/front_end/panels/application/IndexedDBModel.test.ts +2 -2
- package/front_end/panels/application/IndexedDBModel.ts +3 -0
- package/front_end/panels/application/IndexedDBViews.ts +58 -32
- package/front_end/panels/application/InterestGroupStorageModel.ts +3 -0
- package/front_end/panels/application/InterestGroupStorageView.ts +4 -4
- package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
- package/front_end/panels/application/KeyValueStorageItemsView.ts +10 -10
- package/front_end/panels/application/OpenedWindowDetailsView.ts +18 -18
- package/front_end/panels/application/PreloadingTreeElement.ts +5 -5
- package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
- package/front_end/panels/application/ReportingApiView.test.ts +161 -30
- package/front_end/panels/application/ReportingApiView.ts +153 -50
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +5 -5
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +20 -17
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +7 -7
- package/front_end/panels/application/ServiceWorkersView.ts +40 -76
- package/front_end/panels/application/SharedStorageEventsView.test.ts +2 -2
- package/front_end/panels/application/SharedStorageEventsView.ts +10 -20
- package/front_end/panels/application/SharedStorageItemsView.ts +11 -11
- package/front_end/panels/application/SharedStorageListTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageModel.ts +3 -0
- package/front_end/panels/application/StorageBucketsTreeElement.test.ts +5 -4
- package/front_end/panels/application/StorageBucketsTreeElement.ts +4 -4
- package/front_end/panels/application/StorageItemsToolbar.ts +7 -7
- package/front_end/panels/application/StorageView.test.ts +5 -1
- package/front_end/panels/application/StorageView.ts +15 -13
- package/front_end/panels/application/application-meta.ts +7 -7
- package/front_end/panels/application/application.ts +0 -2
- package/front_end/panels/application/components/BackForwardCacheStrings.ts +5 -0
- package/front_end/panels/application/components/BackForwardCacheView.ts +11 -37
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +1 -0
- package/front_end/panels/application/components/EndpointsGrid.ts +6 -2
- package/front_end/panels/application/components/FrameDetailsView.test.ts +4 -2
- package/front_end/panels/application/components/FrameDetailsView.ts +88 -57
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +9 -10
- package/front_end/panels/application/components/OriginTrialTreeView.ts +13 -22
- package/front_end/panels/application/components/PermissionsPolicySection.ts +11 -16
- package/front_end/panels/application/components/ProtocolHandlersView.ts +10 -10
- package/front_end/panels/application/components/ReportsGrid.ts +10 -11
- package/front_end/panels/application/components/SharedStorageAccessGrid.test.ts +4 -4
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +107 -101
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +8 -8
- package/front_end/panels/application/components/StackTrace.ts +6 -12
- package/front_end/panels/application/components/StorageMetadataView.ts +22 -26
- package/front_end/panels/application/components/TrustTokensView.ts +3 -3
- package/front_end/panels/application/components/frameDetailsReportView.css +1 -1
- package/front_end/panels/application/components/sharedStorageAccessGrid.css +19 -17
- package/front_end/panels/application/preloading/PreloadingView.ts +29 -24
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +9 -9
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +22 -22
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +28 -29
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +5 -7
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.test.ts +2 -2
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +4 -4
- package/front_end/panels/application/preloading/components/PreloadingString.ts +34 -34
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.test.ts +28 -1
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +4 -10
- package/front_end/panels/application/preloading/components/RuleSetGrid.test.ts +21 -0
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +10 -10
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +22 -23
- package/front_end/panels/application/resourcesSidebar.css +0 -4
- package/front_end/panels/autofill/AutofillView.test.ts +188 -259
- package/front_end/panels/autofill/AutofillView.ts +207 -217
- package/front_end/panels/autofill/autofill-meta.ts +3 -4
- package/front_end/panels/autofill/autofillView.css +85 -82
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.test.ts +179 -0
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +146 -35
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +27 -27
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +3 -2
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +16 -14
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +17 -17
- package/front_end/panels/browser_debugger/browser_debugger.ts +2 -0
- package/front_end/panels/changes/ChangesSidebar.ts +7 -7
- package/front_end/panels/changes/ChangesView.ts +6 -5
- package/front_end/panels/changes/CombinedDiffView.test.ts +2 -0
- package/front_end/panels/changes/CombinedDiffView.ts +2 -2
- package/front_end/panels/common/AiCodeCompletionDisclaimer.test.ts +57 -0
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +186 -0
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.test.ts +85 -0
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +139 -0
- package/front_end/panels/common/AiCodeCompletionTeaser.test.ts +98 -0
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +258 -0
- package/front_end/panels/common/FreDialog.ts +139 -0
- package/front_end/panels/common/aiCodeCompletionDisclaimer.css +57 -0
- package/front_end/panels/common/aiCodeCompletionSummaryToolbar.css +101 -0
- package/front_end/panels/common/aiCodeCompletionTeaser.css +42 -0
- package/front_end/panels/common/common.css +0 -83
- package/front_end/panels/common/common.ts +8 -107
- package/front_end/panels/common/freDialog.css +88 -0
- package/front_end/panels/console/ConsoleContextSelector.ts +5 -5
- package/front_end/panels/console/ConsoleFormat.test.ts +1 -1
- package/front_end/panels/console/ConsolePanel.ts +1 -2
- package/front_end/panels/console/ConsolePinPane.ts +9 -9
- package/front_end/panels/console/ConsolePrompt.test.ts +47 -1
- package/front_end/panels/console/ConsolePrompt.ts +188 -19
- package/front_end/panels/console/ConsoleSidebar.test.ts +130 -0
- package/front_end/panels/console/ConsoleSidebar.ts +170 -207
- package/front_end/panels/console/ConsoleView.test.ts +4 -4
- package/front_end/panels/console/ConsoleView.ts +146 -54
- package/front_end/panels/console/ConsoleViewMessage.test.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +66 -71
- package/front_end/panels/console/console-meta.ts +27 -27
- package/front_end/panels/console/consoleSidebar.css +2 -0
- package/front_end/panels/console/consoleView.css +22 -15
- package/front_end/panels/console_counters/WarningErrorCounter.ts +133 -100
- package/front_end/panels/coverage/CoverageDecorationManager.test.ts +2 -1
- package/front_end/panels/coverage/CoverageListView.ts +30 -30
- package/front_end/panels/coverage/CoverageView.test.ts +3 -2
- package/front_end/panels/coverage/CoverageView.ts +35 -34
- package/front_end/panels/coverage/coverage-meta.ts +7 -7
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +49 -49
- package/front_end/panels/css_overview/CSSOverviewPanel.test.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewStartView.ts +8 -8
- package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +7 -7
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +289 -287
- package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +43 -42
- package/front_end/panels/css_overview/cssOverviewStartView.css +68 -66
- package/front_end/panels/css_overview/css_overview-meta.ts +2 -2
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +14 -14
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +5 -5
- package/front_end/panels/developer_resources/developerResourcesListView.css +19 -18
- package/front_end/panels/developer_resources/developerResourcesView.css +32 -30
- package/front_end/panels/elements/AccessibilityTreeView.ts +2 -1
- package/front_end/panels/elements/CSSRuleValidator.test.ts +39 -0
- package/front_end/panels/elements/CSSRuleValidator.ts +41 -37
- package/front_end/panels/elements/CSSRuleValidatorHelper.ts +8 -0
- package/front_end/panels/elements/CSSValueTraceView.test.ts +2 -1
- package/front_end/panels/elements/CSSValueTraceView.ts +1 -2
- package/front_end/panels/elements/ClassesPaneWidget.ts +5 -3
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +18 -9
- package/front_end/panels/elements/ComputedStyleWidget.ts +4 -3
- package/front_end/panels/elements/DOMLinkifier.ts +6 -4
- package/front_end/panels/elements/DOMTreeWidget.test.ts +58 -0
- package/front_end/panels/elements/ElementIssueUtils.ts +14 -9
- package/front_end/panels/elements/ElementStatePaneWidget.ts +3 -3
- package/front_end/panels/elements/ElementsPanel.test.ts +69 -2
- package/front_end/panels/elements/ElementsPanel.ts +105 -187
- package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
- package/front_end/panels/elements/ElementsTreeElement.test.ts +401 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +434 -82
- package/front_end/panels/elements/ElementsTreeOutline.test.ts +9 -6
- package/front_end/panels/elements/ElementsTreeOutline.ts +425 -258
- package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +80 -0
- package/front_end/panels/elements/EventListenersWidget.test.ts +129 -0
- package/front_end/panels/elements/EventListenersWidget.ts +112 -78
- package/front_end/panels/elements/ImagePreviewPopover.ts +1 -1
- package/front_end/panels/elements/InspectElementModeController.test.ts +77 -2
- package/front_end/panels/elements/InspectElementModeController.ts +13 -2
- package/front_end/panels/elements/LayersWidget.ts +95 -63
- package/front_end/panels/elements/{components/LayoutPane.test.ts → LayoutPane.test.ts} +60 -49
- package/front_end/panels/elements/LayoutPane.ts +593 -0
- package/front_end/panels/elements/MarkerDecorator.ts +2 -2
- package/front_end/panels/elements/MetricsSidebarPane.ts +6 -6
- package/front_end/panels/elements/NodeStackTraceWidget.ts +16 -14
- package/front_end/panels/elements/PlatformFontsWidget.ts +8 -8
- package/front_end/panels/elements/PropertiesWidget.ts +2 -2
- package/front_end/panels/elements/PropertyRenderer.test.ts +1 -1
- package/front_end/panels/elements/PropertyRenderer.ts +8 -11
- package/front_end/panels/elements/ShortcutTreeElement.ts +157 -0
- package/front_end/panels/elements/StyleEditorWidget.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.test.ts +10 -10
- package/front_end/panels/elements/StylePropertiesSection.ts +42 -44
- package/front_end/panels/elements/StylePropertyHighlighter.test.ts +32 -21
- package/front_end/panels/elements/StylePropertyHighlighter.ts +9 -11
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +111 -53
- package/front_end/panels/elements/StylePropertyTreeElement.ts +166 -100
- package/front_end/panels/elements/StylesSidebarPane.ts +47 -48
- package/front_end/panels/elements/TopLayerContainer.ts +8 -7
- package/front_end/panels/elements/WebCustomData.test.ts +2 -2
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
- package/front_end/panels/elements/components/AdornerManager.ts +15 -0
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +1 -1
- package/front_end/panels/elements/components/CSSPropertyDocsView.test.ts +101 -2
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +188 -5
- package/front_end/panels/elements/components/CSSPropertyIconResolver.test.ts +1 -1
- package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +2 -2
- package/front_end/panels/elements/components/CSSVariableValueView.ts +5 -5
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -7
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
- package/front_end/panels/elements/components/QueryContainer.ts +1 -4
- package/front_end/panels/elements/components/components.ts +0 -4
- package/front_end/panels/elements/components/cssPropertyDocsView.css +12 -1
- package/front_end/panels/elements/components/cssVariableValueView.css +1 -0
- package/front_end/panels/elements/domLinkifier.css +36 -35
- package/front_end/panels/elements/elementStatePaneWidget.css +46 -45
- package/front_end/panels/elements/elements-meta.ts +4 -13
- package/front_end/panels/elements/elements.ts +4 -3
- package/front_end/panels/elements/elementsTreeOutline.css +2 -1
- package/front_end/panels/elements/layersWidget.css +2 -11
- package/front_end/panels/elements/layoutPane.css +145 -0
- package/front_end/panels/elements/metricsSidebarPane.css +1 -1
- package/front_end/panels/elements/nodeStackTraceWidget.css +5 -4
- package/front_end/panels/elements/platformFontsWidget.css +32 -31
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
- package/front_end/panels/elements/stylesSidebarPane.css +1 -0
- package/front_end/panels/emulation/DeviceModeToolbar.ts +13 -50
- package/front_end/panels/emulation/DeviceModeView.ts +3 -4
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
- package/front_end/panels/emulation/MediaQueryInspector.ts +4 -2
- package/front_end/panels/emulation/emulation-meta.ts +7 -7
- package/front_end/panels/event_listeners/EventListenersView.test.ts +4 -4
- package/front_end/panels/event_listeners/EventListenersView.ts +34 -31
- package/front_end/panels/explain/PromptBuilder.test.ts +7 -2
- package/front_end/panels/explain/PromptBuilder.ts +3 -1
- package/front_end/panels/explain/components/ConsoleInsight.test.ts +14 -10
- package/front_end/panels/explain/components/ConsoleInsight.ts +13 -34
- package/front_end/panels/explain/explain-meta.ts +3 -3
- package/front_end/panels/issues/AffectedBlockedByResponseView.ts +4 -4
- package/front_end/panels/issues/AffectedCookiesView.ts +6 -6
- package/front_end/panels/issues/AffectedDescendantsWithinSelectElementView.ts +6 -6
- package/front_end/panels/issues/AffectedDirectivesView.ts +9 -9
- package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +4 -4
- package/front_end/panels/issues/AffectedElementsView.ts +1 -1
- package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +6 -6
- package/front_end/panels/issues/AffectedHeavyAdView.ts +7 -7
- package/front_end/panels/issues/AffectedMetadataAllowedSitesView.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +6 -6
- package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +10 -10
- package/front_end/panels/issues/AffectedSourcesView.ts +1 -1
- package/front_end/panels/issues/AffectedTrackingSitesView.ts +1 -1
- package/front_end/panels/issues/CorsIssueDetailsView.ts +27 -27
- package/front_end/panels/issues/GenericIssueDetailsView.ts +3 -3
- package/front_end/panels/issues/HiddenIssuesRow.ts +55 -29
- package/front_end/panels/issues/IssueAggregator.ts +5 -11
- package/front_end/panels/issues/IssueKindView.ts +2 -2
- package/front_end/panels/issues/IssueView.ts +13 -13
- package/front_end/panels/issues/IssuesPane.ts +5 -4
- package/front_end/panels/issues/components/HideIssuesMenu.ts +1 -1
- package/front_end/panels/issues/issues-meta.ts +2 -2
- package/front_end/panels/js_timeline/js_timeline-meta.ts +6 -6
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +43 -41
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +7 -7
- package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +19 -13
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -9
- package/front_end/panels/layer_viewer/TransformController.ts +14 -8
- package/front_end/panels/layer_viewer/layer_viewer-meta.ts +9 -9
- package/front_end/panels/layers/LayersPanel.ts +3 -3
- package/front_end/panels/layers/layers-meta.ts +2 -2
- package/front_end/panels/lighthouse/LighthouseController.ts +27 -27
- package/front_end/panels/lighthouse/LighthousePanel.ts +7 -7
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +31 -33
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +4 -2
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -4
- package/front_end/panels/lighthouse/LighthouseStartView.ts +4 -3
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +31 -31
- package/front_end/panels/lighthouse/lighthouse-meta.ts +1 -1
- package/front_end/panels/lighthouse/lighthousePanel.css +9 -0
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +2 -2
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +6 -10
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +6 -7
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
- package/front_end/panels/media/EventDisplayTable.ts +5 -7
- package/front_end/panels/media/EventTimelineView.ts +4 -4
- package/front_end/panels/media/MainView.test.ts +1 -1
- package/front_end/panels/media/MainView.ts +4 -4
- package/front_end/panels/media/MediaModel.ts +2 -2
- package/front_end/panels/media/PlayerDetailView.ts +8 -8
- package/front_end/panels/media/PlayerListView.ts +8 -8
- package/front_end/panels/media/PlayerMessagesView.ts +15 -17
- package/front_end/panels/media/PlayerPropertiesView.ts +66 -51
- package/front_end/panels/media/TickingFlameChart.ts +6 -5
- package/front_end/panels/media/media-meta.ts +3 -3
- package/front_end/panels/mobile_throttling/CalibrationController.ts +3 -4
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +3 -3
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +4 -4
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +189 -51
- package/front_end/panels/mobile_throttling/ThrottlingManager.test.ts +37 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +114 -126
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +8 -8
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.test.ts +115 -0
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +178 -143
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +6 -6
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +30 -36
- package/front_end/panels/network/BinaryResourceView.ts +7 -7
- package/front_end/panels/network/BlockedURLsPane.ts +18 -17
- package/front_end/panels/network/EventSourceMessagesView.ts +9 -10
- package/front_end/panels/network/NetworkConfigView.test.ts +35 -0
- package/front_end/panels/network/NetworkConfigView.ts +19 -17
- package/front_end/panels/network/NetworkDataGridNode.test.ts +19 -8
- package/front_end/panels/network/NetworkDataGridNode.ts +129 -90
- package/front_end/panels/network/NetworkItemView.test.ts +3 -3
- package/front_end/panels/network/NetworkItemView.ts +79 -79
- package/front_end/panels/network/NetworkLogView.test.ts +61 -23
- package/front_end/panels/network/NetworkLogView.ts +207 -130
- package/front_end/panels/network/NetworkLogViewColumns.ts +60 -63
- package/front_end/panels/network/NetworkManageCustomHeadersView.ts +5 -5
- package/front_end/panels/network/NetworkPanel.test.ts +3 -3
- package/front_end/panels/network/NetworkPanel.ts +69 -68
- package/front_end/panels/network/NetworkSearchScope.ts +1 -1
- package/front_end/panels/network/NetworkTimeCalculator.ts +35 -40
- package/front_end/panels/network/NetworkWaterfallColumn.ts +2 -12
- package/front_end/panels/network/RequestCookiesView.ts +10 -11
- package/front_end/panels/network/RequestHTMLView.ts +2 -2
- package/front_end/panels/network/RequestInitiatorView.ts +16 -16
- package/front_end/panels/network/RequestPayloadView.ts +12 -13
- package/front_end/panels/network/RequestPreviewView.ts +3 -4
- package/front_end/panels/network/RequestResponseView.test.ts +36 -0
- package/front_end/panels/network/RequestResponseView.ts +5 -5
- package/front_end/panels/network/RequestTimingView.ts +54 -54
- package/front_end/panels/network/ResourceChunkView.ts +13 -13
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +26 -17
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +9 -9
- package/front_end/panels/network/SignedExchangeInfoView.ts +24 -24
- package/front_end/panels/network/binaryResourceView.css +1 -0
- package/front_end/panels/network/components/DirectSocketConnectionView.ts +18 -16
- package/front_end/panels/network/components/HeaderSectionRow.ts +17 -42
- package/front_end/panels/network/components/RequestHeaderSection.ts +6 -11
- package/front_end/panels/network/components/RequestHeadersView.css +2 -2
- package/front_end/panels/network/components/RequestHeadersView.test.ts +5 -2
- package/front_end/panels/network/components/RequestHeadersView.ts +24 -34
- package/front_end/panels/network/components/RequestTrustTokensView.ts +19 -23
- package/front_end/panels/network/components/ResponseHeaderSection.ts +16 -15
- package/front_end/panels/network/components/WebBundleInfoView.ts +4 -9
- package/front_end/panels/network/network-meta.ts +27 -27
- package/front_end/panels/network/networkConfigView.css +13 -6
- package/front_end/panels/network/networkLogView.css +1 -1
- package/front_end/panels/network/networkPanel.css +3 -2
- package/front_end/panels/network/requestHTMLView.css +9 -8
- package/front_end/panels/network/resourceChunkView.css +21 -28
- package/front_end/panels/performance_monitor/PerformanceMonitor.test.ts +121 -6
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +252 -168
- package/front_end/panels/performance_monitor/performanceMonitor.css +7 -9
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +7 -7
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +19 -52
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +9 -6
- package/front_end/panels/profiler/HeapProfileView.ts +24 -24
- package/front_end/panels/profiler/HeapProfilerPanel.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +20 -20
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +27 -27
- package/front_end/panels/profiler/HeapSnapshotProxy.ts +2 -6
- package/front_end/panels/profiler/HeapSnapshotView.ts +59 -56
- package/front_end/panels/profiler/HeapTimelineOverview.ts +1 -2
- package/front_end/panels/profiler/IsolateSelector.ts +16 -16
- package/front_end/panels/profiler/LiveHeapProfileView.ts +14 -14
- package/front_end/panels/profiler/ModuleUIStrings.ts +26 -26
- package/front_end/panels/profiler/ProfileDataGrid.ts +5 -5
- package/front_end/panels/profiler/ProfileHeader.ts +0 -9
- package/front_end/panels/profiler/ProfileLauncherView.ts +6 -6
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
- package/front_end/panels/profiler/ProfileView.ts +23 -20
- package/front_end/panels/profiler/ProfilesPanel.ts +9 -9
- package/front_end/panels/profiler/heapProfiler.css +8 -0
- package/front_end/panels/profiler/profiler-meta.ts +12 -12
- package/front_end/panels/protocol_monitor/JSONEditor.test.ts +2 -2
- package/front_end/panels/protocol_monitor/JSONEditor.ts +36 -19
- package/front_end/panels/protocol_monitor/ProtocolMonitor.test.ts +105 -103
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +24 -25
- package/front_end/panels/protocol_monitor/protocolMonitor.css +15 -9
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +1 -1
- package/front_end/panels/recorder/RecorderController.test.ts +9 -2
- package/front_end/panels/recorder/RecorderController.ts +82 -85
- package/front_end/panels/recorder/components/CreateRecordingView.ts +2 -2
- package/front_end/panels/recorder/components/RecordingListView.test.ts +42 -53
- package/front_end/panels/recorder/components/RecordingListView.ts +141 -125
- package/front_end/panels/recorder/components/RecordingView.test.ts +73 -122
- package/front_end/panels/recorder/components/RecordingView.ts +912 -929
- package/front_end/panels/recorder/components/StepEditor.ts +13 -13
- package/front_end/panels/recorder/components/StepView.ts +23 -24
- package/front_end/panels/recorder/components/recordingListView.css +76 -75
- package/front_end/panels/recorder/components/recordingView.css +303 -308
- package/front_end/panels/recorder/components/stepView.css +197 -196
- package/front_end/panels/recorder/components/timelineSection.css +1 -1
- package/front_end/panels/recorder/injected/rollup.config.mjs +1 -1
- package/front_end/panels/recorder/injected/selectors/ARIASelector.ts +2 -2
- package/front_end/panels/recorder/injected/selectors/CSSSelector.ts +4 -4
- package/front_end/panels/recorder/injected/selectors/PierceSelector.ts +2 -2
- package/front_end/panels/recorder/injected/selectors/TextSelector.ts +2 -2
- package/front_end/panels/recorder/injected/selectors/XPath.ts +3 -3
- package/front_end/panels/recorder/models/RecorderSettings.ts +0 -1
- package/front_end/panels/recorder/models/RecordingPlayer.test.ts +48 -68
- package/front_end/panels/recorder/models/RecordingPlayer.ts +9 -9
- package/front_end/panels/recorder/models/RecordingSession.ts +3 -3
- package/front_end/panels/recorder/recorder-meta.ts +5 -5
- package/front_end/panels/recorder/recorderController.css +3 -3
- package/front_end/panels/screencast/ScreencastApp.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +13 -18
- package/front_end/panels/search/SearchResultsPane.ts +8 -8
- package/front_end/panels/search/SearchView.test.ts +2 -2
- package/front_end/panels/search/SearchView.ts +130 -127
- package/front_end/panels/search/searchResultsPane.css +2 -2
- package/front_end/panels/search/searchView.css +2 -2
- package/front_end/panels/security/CookieControlsView.ts +27 -27
- package/front_end/panels/security/CookieReportView.ts +40 -73
- package/front_end/panels/security/IPProtectionTreeElement.ts +21 -0
- package/front_end/panels/security/IPProtectionView.ts +179 -0
- package/front_end/panels/security/SecurityModel.ts +10 -10
- package/front_end/panels/security/SecurityPanel.test.ts +22 -0
- package/front_end/panels/security/SecurityPanel.ts +107 -107
- package/front_end/panels/security/SecurityPanelSidebar.ts +27 -11
- package/front_end/panels/security/ipProtectionView.css +109 -0
- package/front_end/panels/security/security-meta.ts +4 -4
- package/front_end/panels/security/security.ts +2 -0
- package/front_end/panels/sensors/LocationsSettingsTab.ts +32 -31
- package/front_end/panels/sensors/SensorsView.ts +50 -42
- package/front_end/panels/sensors/sensors-meta.ts +20 -20
- package/front_end/panels/settings/AISettingsTab.test.ts +19 -6
- package/front_end/panels/settings/AISettingsTab.ts +118 -72
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +22 -20
- package/front_end/panels/settings/KeybindsSettingsTab.ts +31 -30
- package/front_end/panels/settings/SettingsScreen.ts +19 -20
- package/front_end/panels/settings/components/SyncSection.test.ts +43 -9
- package/front_end/panels/settings/components/SyncSection.ts +63 -29
- package/front_end/panels/settings/components/syncSection.css +16 -7
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +14 -16
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.test.ts +61 -0
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +134 -28
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +19 -0
- package/front_end/panels/settings/emulation/emulation-meta.ts +2 -2
- package/front_end/panels/settings/settings-meta.ts +12 -12
- package/front_end/panels/settings/settingsScreen.css +0 -1
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +5 -5
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +4 -4
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +5 -5
- package/front_end/panels/sources/AiCodeCompletionPlugin.test.ts +119 -0
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +400 -0
- package/front_end/panels/sources/AiWarningInfobarPlugin.ts +3 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +13 -11
- package/front_end/panels/sources/{components/BreakpointsView.test.ts → BreakpointsView.test.ts} +237 -225
- package/front_end/panels/sources/{components/BreakpointsView.ts → BreakpointsView.ts} +336 -301
- package/front_end/panels/sources/{components/BreakpointsViewUtils.test.ts → BreakpointsViewUtils.test.ts} +29 -29
- package/front_end/panels/sources/{components/BreakpointsViewUtils.ts → BreakpointsViewUtils.ts} +3 -3
- package/front_end/panels/sources/CSSPlugin.ts +26 -17
- package/front_end/panels/sources/CallStackSidebarPane.ts +34 -58
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +18 -18
- package/front_end/panels/sources/CoveragePlugin.test.ts +2 -0
- package/front_end/panels/sources/CoveragePlugin.ts +5 -5
- package/front_end/panels/sources/DebuggerPausedMessage.test.ts +2 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +33 -39
- package/front_end/panels/sources/DebuggerPlugin.test.ts +4 -3
- package/front_end/panels/sources/DebuggerPlugin.ts +68 -49
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.test.ts +3 -4
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +7 -7
- package/front_end/panels/sources/GoToLineQuickOpen.ts +15 -15
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +9 -6
- package/front_end/panels/sources/NavigatorView.test.ts +2 -1
- package/front_end/panels/sources/NavigatorView.ts +39 -35
- package/front_end/panels/sources/OpenFileQuickOpen.ts +6 -6
- package/front_end/panels/sources/OutlineQuickOpen.ts +3 -3
- package/front_end/panels/sources/ProfilePlugin.ts +3 -3
- package/front_end/panels/sources/ResourceOriginPlugin.ts +1 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +11 -9
- package/front_end/panels/sources/SnippetsPlugin.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.test.ts +3 -2
- package/front_end/panels/sources/SourcesNavigator.ts +32 -20
- package/front_end/panels/sources/SourcesPanel.test.ts +90 -0
- package/front_end/panels/sources/SourcesPanel.ts +71 -28
- package/front_end/panels/sources/SourcesSearchScope.ts +1 -1
- package/front_end/panels/sources/SourcesView.test.ts +5 -2
- package/front_end/panels/sources/SourcesView.ts +7 -8
- package/front_end/panels/sources/TabbedEditorContainer.ts +11 -8
- package/front_end/panels/sources/ThreadsSidebarPane.ts +7 -10
- package/front_end/panels/sources/UISourceCodeFrame.test.ts +104 -0
- package/front_end/panels/sources/UISourceCodeFrame.ts +40 -17
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +14 -9
- package/front_end/panels/sources/breakpointsView.css +276 -0
- package/front_end/panels/sources/components/HeadersView.ts +17 -13
- package/front_end/panels/sources/components/components.ts +0 -4
- package/front_end/panels/sources/scopeChainSidebarPane.css +1 -1
- package/front_end/panels/sources/sources-meta.ts +103 -112
- package/front_end/panels/sources/sources.ts +6 -0
- package/front_end/panels/timeline/ActiveFilters.ts +2 -1
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/AnnotationHelpers.test.ts +14 -8
- package/front_end/panels/timeline/AnnotationHelpers.ts +28 -23
- package/front_end/panels/timeline/AppenderUtils.ts +2 -2
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +1 -14
- package/front_end/panels/timeline/CountersGraph.test.ts +80 -0
- package/front_end/panels/timeline/CountersGraph.ts +27 -18
- package/front_end/panels/timeline/EntriesFilter.test.ts +22 -15
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +4 -25
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +4 -9
- package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
- package/front_end/panels/timeline/Initiators.test.ts +22 -19
- package/front_end/panels/timeline/Initiators.ts +19 -6
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +6 -6
- package/front_end/panels/timeline/IsolateSelector.ts +2 -2
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +6 -5
- package/front_end/panels/timeline/ModificationsManager.test.ts +98 -188
- package/front_end/panels/timeline/ModificationsManager.ts +51 -48
- package/front_end/panels/timeline/NetworkTrackAppender.ts +3 -3
- package/front_end/panels/timeline/README.md +5 -13
- package/front_end/{models/trace/extras/Metadata.test.ts → panels/timeline/RecordingMetadata.test.ts} +61 -29
- package/front_end/panels/timeline/RecordingMetadata.ts +79 -0
- package/front_end/panels/timeline/SaveFileFormatter.test.ts +1 -3
- package/front_end/panels/timeline/SaveFileFormatter.ts +0 -8
- package/front_end/panels/timeline/StatusDialog.ts +12 -8
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +5 -5
- package/front_end/panels/timeline/ThreadAppender.ts +29 -29
- package/front_end/panels/timeline/TimelineController.ts +14 -18
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +49 -15
- package/front_end/panels/timeline/TimelineDetailsView.ts +213 -105
- package/front_end/panels/timeline/TimelineEventOverview.ts +6 -6
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +56 -95
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +94 -65
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +3 -62
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +10 -30
- package/front_end/panels/timeline/TimelineFlameChartView.test.ts +105 -80
- package/front_end/panels/timeline/TimelineFlameChartView.ts +107 -102
- package/front_end/panels/timeline/TimelineHistoryManager.test.ts +0 -5
- package/front_end/panels/timeline/TimelineHistoryManager.ts +8 -8
- package/front_end/panels/timeline/TimelineLoader.test.ts +4 -7
- package/front_end/panels/timeline/TimelineLoader.ts +22 -3
- package/front_end/panels/timeline/TimelineMiniMap.ts +13 -5
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.test.ts +381 -117
- package/front_end/panels/timeline/TimelinePanel.ts +576 -345
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +195 -80
- package/front_end/panels/timeline/TimelineTreeView.test.ts +5 -5
- package/front_end/panels/timeline/TimelineTreeView.ts +25 -25
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +58 -55
- package/front_end/panels/timeline/TimelineUIUtils.ts +159 -345
- package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -7
- package/front_end/panels/timeline/TrackConfigBanner.test.ts +68 -0
- package/front_end/panels/timeline/TrackConfigBanner.ts +97 -0
- package/front_end/panels/timeline/TrackConfiguration.test.ts +3 -3
- package/front_end/panels/timeline/TrackConfiguration.ts +1 -0
- package/front_end/panels/timeline/UIDevtoolsUtils.ts +15 -15
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +4 -9
- package/front_end/panels/timeline/components/DetailsView.ts +13 -13
- package/front_end/panels/timeline/components/ExportTraceOptions.test.ts +281 -0
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +262 -0
- package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +1 -1
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +2 -1
- package/front_end/panels/timeline/components/IgnoreListSetting.test.ts +5 -4
- package/front_end/panels/timeline/components/IgnoreListSetting.ts +7 -7
- package/front_end/panels/timeline/components/InteractionBreakdown.ts +3 -3
- package/front_end/panels/timeline/components/Invalidations.test.ts +2 -1
- package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +21 -11
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +325 -307
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +14 -22
- package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.test.ts +2 -2
- package/front_end/panels/timeline/components/NetworkRequestDetails.test.ts +38 -44
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +318 -278
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +8 -8
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +3 -0
- package/front_end/panels/timeline/components/OriginMap.ts +1 -1
- package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +17 -31
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +87 -66
- package/front_end/panels/timeline/components/Sidebar.test.ts +43 -4
- package/front_end/panels/timeline/components/Sidebar.ts +47 -20
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +47 -72
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +228 -218
- package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +1 -0
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +18 -54
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +7 -53
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +61 -44
- package/front_end/panels/timeline/components/TimelineSummary.ts +4 -4
- package/front_end/panels/timeline/components/Utils.ts +9 -9
- package/front_end/panels/timeline/components/components.ts +2 -0
- package/front_end/panels/timeline/components/exportTraceOptions.css +26 -0
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +40 -16
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +28 -34
- package/front_end/panels/timeline/components/insights/CLSCulprits.test.ts +5 -5
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +32 -23
- package/front_end/panels/timeline/components/insights/Cache.ts +4 -22
- package/front_end/panels/timeline/components/insights/Checklist.ts +6 -7
- package/front_end/panels/timeline/components/insights/DOMSize.ts +35 -15
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +1 -61
- package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +5 -17
- package/front_end/panels/timeline/components/insights/EventRef.ts +7 -9
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +20 -21
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +5 -28
- package/front_end/panels/timeline/components/insights/{InteractionToNextPaint.test.ts → INPBreakdown.test.ts} +8 -5
- package/front_end/panels/timeline/components/insights/INPBreakdown.ts +70 -0
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +7 -21
- package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +146 -0
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +28 -80
- package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +3 -15
- package/front_end/panels/timeline/components/insights/ModernHTTP.ts +18 -23
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.test.ts +76 -0
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +35 -29
- package/front_end/panels/timeline/components/insights/NodeLink.test.ts +113 -0
- package/front_end/panels/timeline/components/insights/NodeLink.ts +50 -10
- package/front_end/panels/timeline/components/insights/README.md +1 -1
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +4 -22
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -2
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +16 -28
- package/front_end/panels/timeline/components/insights/Table.ts +2 -3
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +7 -47
- package/front_end/panels/timeline/components/insights/Viewport.ts +0 -6
- package/front_end/panels/timeline/components/insights/insights.ts +4 -4
- package/front_end/panels/timeline/components/insights/table.css +18 -0
- package/front_end/panels/timeline/components/insights/types.ts +2 -2
- package/front_end/panels/timeline/components/layoutShiftDetails.css +99 -92
- package/front_end/panels/timeline/components/networkRequestDetails.css +110 -104
- package/front_end/panels/timeline/components/networkRequestTooltip.css +88 -83
- package/front_end/panels/timeline/components/relatedInsightChips.css +60 -58
- package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +80 -78
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +0 -25
- package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +1 -1
- package/front_end/panels/timeline/docs/flame_chart_migration.md +2 -2
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +149 -42
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +218 -283
- package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +69 -104
- package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +13 -0
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +2 -1
- package/front_end/panels/timeline/timeline-meta.ts +14 -14
- package/front_end/panels/timeline/timeline.ts +4 -4
- package/front_end/panels/timeline/timelineDetailsView.css +118 -0
- package/front_end/panels/timeline/timelineFlameChartView.css +18 -117
- package/front_end/panels/timeline/timelineMiniMap.css +5 -0
- package/front_end/panels/timeline/timelinePanel.css +2 -10
- package/front_end/panels/timeline/timelineTreeView.css +0 -4
- package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +16 -15
- package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +6 -4
- package/front_end/panels/timeline/track_appenders/InteractionsTrackAppender.test.ts +0 -1
- package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +34 -49
- package/front_end/panels/timeline/utils/AICallTree.test.ts +54 -120
- package/front_end/panels/timeline/utils/AICallTree.ts +31 -74
- package/front_end/panels/timeline/utils/AIContext.ts +67 -0
- package/front_end/panels/timeline/utils/EntityMapper.test.ts +5 -4
- package/front_end/panels/timeline/utils/EntityMapper.ts +3 -3
- package/front_end/panels/timeline/utils/EntryName.test.ts +3 -3
- package/front_end/panels/timeline/utils/EntryName.ts +10 -10
- package/front_end/panels/timeline/utils/EntryNodes.test.ts +137 -0
- package/front_end/panels/timeline/utils/EntryNodes.ts +107 -0
- package/front_end/panels/timeline/utils/EntryStyles.ts +110 -110
- package/front_end/panels/timeline/{EventsSerializer.test.ts → utils/EventsSerializer.test.ts} +7 -7
- package/front_end/panels/timeline/{EventsSerializer.ts → utils/EventsSerializer.ts} +1 -1
- package/front_end/panels/timeline/{FreshRecording.test.ts → utils/FreshRecording.test.ts} +5 -5
- package/front_end/panels/timeline/{FreshRecording.ts → utils/FreshRecording.ts} +1 -1
- package/front_end/panels/timeline/utils/Helpers.ts +6 -0
- package/front_end/panels/timeline/utils/IgnoreList.test.ts +7 -6
- package/front_end/panels/timeline/utils/IgnoreList.ts +6 -6
- package/front_end/panels/timeline/utils/InsightAIContext.test.ts +61 -25
- package/front_end/panels/timeline/utils/InsightAIContext.ts +102 -81
- package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +5 -4
- package/front_end/panels/timeline/utils/Treemap.ts +5 -20
- package/front_end/panels/timeline/utils/utils.ts +8 -0
- package/front_end/panels/utils/utils.test.ts +1 -7
- package/front_end/panels/utils/utils.ts +17 -21
- package/front_end/panels/web_audio/WebAudioView.test.ts +224 -11
- package/front_end/panels/web_audio/WebAudioView.ts +219 -267
- package/front_end/panels/web_audio/web_audio-meta.ts +3 -3
- package/front_end/panels/web_audio/web_audio.ts +0 -12
- package/front_end/panels/webauthn/WebauthnPane.test.ts +75 -72
- package/front_end/panels/webauthn/WebauthnPane.ts +517 -578
- package/front_end/panels/webauthn/webauthn-meta.ts +2 -2
- package/front_end/panels/webauthn/webauthnPane.css +157 -155
- package/front_end/panels/whats_new/ReleaseNoteText.ts +11 -11
- package/front_end/panels/whats_new/ReleaseNoteView.ts +2 -2
- package/front_end/panels/whats_new/releaseNoteView.css +92 -91
- package/front_end/panels/whats_new/resources/WNDT.md +6 -10
- package/front_end/panels/whats_new/whats_new-meta.ts +7 -7
- package/front_end/services/trace_bounds/TraceBounds.ts +1 -1
- package/front_end/services/tracing/ExternalRequests.test.ts +39 -0
- package/front_end/services/tracing/ExternalRequests.ts +74 -0
- package/front_end/services/tracing/PerformanceTracing.ts +5 -4
- package/front_end/{models/trace → services/tracing}/TracingManager.test.ts +9 -7
- package/front_end/{models/trace → services/tracing}/TracingManager.ts +3 -4
- package/front_end/services/tracing/tracing.ts +4 -0
- package/front_end/testing/AiAssistanceHelpers.ts +10 -8
- package/front_end/testing/DOMHelpers.ts +8 -6
- package/front_end/testing/EnvironmentHelpers.ts +21 -6
- package/front_end/testing/ExpectStubCall.ts +2 -1
- package/front_end/testing/InsightHelpers.ts +11 -4
- package/front_end/testing/MockConnection.ts +3 -2
- package/front_end/testing/MockSettingStorage.ts +23 -0
- package/front_end/testing/MutationHelpers.test.ts +1 -3
- package/front_end/testing/OverridesHelpers.ts +9 -3
- package/front_end/testing/PropertyParser.ts +1 -1
- package/front_end/testing/README.md +34 -0
- package/front_end/testing/SnapshotTester.snapshot.txt +9 -0
- package/front_end/testing/SnapshotTester.test.ts +32 -0
- package/front_end/testing/SnapshotTester.ts +150 -0
- package/front_end/testing/SourceMapEncoder.ts +1 -237
- package/front_end/testing/SourceMapHelpers.ts +3 -5
- package/front_end/testing/StackTraceHelpers.ts +47 -0
- package/front_end/testing/StyleHelpers.ts +43 -22
- package/front_end/testing/TraceHelpers.ts +135 -122
- package/front_end/testing/TraceLoader.ts +23 -65
- package/front_end/testing/test_setup.ts +31 -4
- package/front_end/ui/components/buttons/Button.ts +1 -1
- package/front_end/ui/components/buttons/FloatingButton.ts +37 -6
- package/front_end/ui/components/cards/Card.ts +2 -2
- package/front_end/ui/components/copy_to_clipboard/copyToClipboard.ts +1 -1
- package/front_end/ui/components/dialogs/ButtonDialog.test.ts +2 -6
- package/front_end/ui/components/dialogs/ButtonDialog.ts +15 -0
- package/front_end/ui/components/dialogs/Dialog.ts +68 -8
- package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +1 -3
- package/front_end/ui/components/diff_view/DiffView.ts +6 -6
- package/front_end/ui/components/docs/console_insight/basic.ts +1 -1
- package/front_end/ui/components/docs/console_insight/error.ts +1 -1
- package/front_end/ui/components/docs/console_insight/loading.ts +1 -1
- package/front_end/ui/components/docs/context_menu/basic.html +45 -0
- package/front_end/ui/components/docs/context_menu/basic.ts +102 -0
- package/front_end/ui/components/docs/icon_component/basic.html +1 -3
- package/front_end/ui/components/docs/icon_component/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_recording_list_view/basic.ts +4 -1
- package/front_end/ui/components/docs/select_menu/basic.html +1 -27
- package/front_end/ui/components/docs/select_menu/basic.ts +86 -194
- package/front_end/ui/components/icon_button/Icon.ts +16 -10
- package/front_end/ui/components/icon_button/IconButton.ts +1 -3
- package/front_end/ui/components/icon_button/icon.css +73 -0
- package/front_end/ui/components/issue_counter/IssueCounter.ts +13 -14
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +3 -3
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +4 -4
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +9 -6
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +73 -0
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +5 -11
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +4 -9
- package/front_end/ui/components/settings/SettingCheckbox.ts +3 -3
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +2 -4
- package/front_end/ui/components/snackbars/Snackbar.ts +32 -17
- package/front_end/ui/components/snackbars/snackbar.css +1 -1
- package/front_end/ui/components/spinners/Spinner.ts +50 -2
- package/front_end/ui/components/spinners/spinner.css +10 -1
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +0 -1
- package/front_end/ui/components/survey_link/SurveyLink.ts +4 -8
- package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.test.ts +84 -0
- package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +83 -0
- package/front_end/ui/components/text_editor/ExecutionPositionHighlighter.ts +0 -1
- package/front_end/ui/components/text_editor/TextEditor.test.ts +72 -12
- package/front_end/ui/components/text_editor/TextEditor.ts +2 -0
- package/front_end/ui/components/text_editor/config.ts +120 -12
- package/front_end/ui/{legacy/components/inline_editor/bezierSwatch.css → components/text_editor/textEditor.css} +2 -6
- package/front_end/ui/components/text_editor/text_editor.ts +1 -0
- package/front_end/ui/components/tooltips/Tooltip.test.ts +70 -40
- package/front_end/ui/components/tooltips/Tooltip.ts +208 -33
- package/front_end/ui/components/tooltips/tooltip.css +13 -77
- package/front_end/ui/components/tree_outline/TreeOutline.ts +11 -0
- package/front_end/ui/legacy/ARIAUtils.test.ts +101 -20
- package/front_end/ui/legacy/ARIAUtils.ts +77 -49
- package/front_end/ui/legacy/ActionRegistration.test.ts +0 -2
- package/front_end/ui/legacy/ActionRegistration.ts +24 -24
- package/front_end/ui/legacy/ContextMenu.test.ts +60 -1
- package/front_end/ui/legacy/ContextMenu.ts +349 -29
- package/front_end/ui/legacy/DockController.ts +13 -7
- package/front_end/ui/legacy/EmptyWidget.ts +62 -32
- package/front_end/ui/legacy/FilterBar.ts +14 -9
- package/front_end/ui/legacy/GlassPane.ts +10 -4
- package/front_end/ui/legacy/Infobar.ts +2 -2
- package/front_end/ui/legacy/InspectorView.test.ts +99 -0
- package/front_end/ui/legacy/InspectorView.ts +71 -25
- package/front_end/ui/legacy/ListWidget.ts +9 -9
- package/front_end/ui/legacy/Panel.ts +1 -1
- package/front_end/ui/legacy/ProgressIndicator.ts +44 -41
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +4 -4
- package/front_end/ui/legacy/ReportView.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +24 -24
- package/front_end/ui/legacy/SettingsUI.ts +2 -2
- package/front_end/ui/legacy/ShortcutRegistry.ts +2 -1
- package/front_end/ui/legacy/SoftContextMenu.ts +23 -9
- package/front_end/ui/legacy/SoftDropDown.ts +1 -1
- package/front_end/ui/legacy/SplitWidget.test.ts +8 -0
- package/front_end/ui/legacy/SplitWidget.ts +3 -3
- package/front_end/ui/legacy/SuggestBox.ts +15 -15
- package/front_end/ui/legacy/TabbedPane.ts +27 -31
- package/front_end/ui/legacy/TargetCrashedScreen.ts +4 -4
- package/front_end/ui/legacy/TextPrompt.ts +4 -2
- package/front_end/ui/legacy/ThrottledWidget.ts +1 -1
- package/front_end/ui/legacy/Toolbar.test.ts +13 -0
- package/front_end/ui/legacy/Toolbar.ts +39 -19
- package/front_end/ui/legacy/Treeoutline.test.ts +140 -0
- package/front_end/ui/legacy/Treeoutline.ts +244 -8
- package/front_end/ui/legacy/UIUtils.test.ts +59 -0
- package/front_end/ui/legacy/UIUtils.ts +235 -25
- package/front_end/ui/legacy/View.test.ts +14 -1
- package/front_end/ui/legacy/View.ts +33 -9
- package/front_end/ui/legacy/ViewManager.test.ts +235 -0
- package/front_end/ui/legacy/ViewManager.ts +109 -15
- package/front_end/ui/legacy/ViewRegistration.ts +17 -7
- package/front_end/ui/legacy/Widget.test.ts +35 -3
- package/front_end/ui/legacy/Widget.ts +127 -16
- package/front_end/ui/legacy/XLink.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +36 -26
- package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +4 -8
- package/front_end/ui/legacy/components/color_picker/Spectrum.test.ts +36 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +72 -49
- package/front_end/ui/legacy/components/color_picker/spectrum.css +1 -1
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +14 -19
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +31 -30
- package/front_end/ui/legacy/components/data_grid/DataGridElement.test.ts +19 -15
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +15 -3
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +6 -3
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +9 -3
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/BezierUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.test.ts +25 -25
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +11 -5
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +5 -5
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.test.ts +1 -9
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +35 -20
- package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +32 -31
- package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/Swatches.ts +3 -47
- package/front_end/ui/legacy/components/inline_editor/cssAngle.css +4 -5
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.test.ts +19 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +31 -28
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +2 -0
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +7 -3
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +7 -7
- package/front_end/ui/legacy/components/perf_ui/FlameChart.test.ts +162 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +153 -99
- package/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts +5 -5
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +0 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +54 -6
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +6 -6
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +29 -3
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +14 -5
- package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +2 -5
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -0
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/FontView.ts +8 -5
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +17 -29
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.test.ts +0 -4
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +41 -31
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/fontView.css +1 -1
- package/front_end/ui/legacy/components/source_frame/source_frame-meta.ts +9 -9
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -4
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.test.ts +6 -5
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +76 -34
- package/front_end/ui/legacy/components/utils/Linkifier.test.ts +154 -2
- package/front_end/ui/legacy/components/utils/Linkifier.ts +108 -50
- package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +2 -1
- package/front_end/ui/legacy/confirmDialog.css +1 -1
- package/front_end/ui/legacy/filter.css +12 -4
- package/front_end/ui/legacy/inspectorCommon.css +25 -20
- package/front_end/ui/legacy/remoteDebuggingTerminatedScreen.css +18 -17
- package/front_end/ui/legacy/softContextMenu.css +4 -0
- package/front_end/ui/legacy/tabbedPane.css +5 -1
- package/front_end/ui/legacy/targetCrashedScreen.css +9 -8
- package/front_end/ui/legacy/viewContainers.css +8 -0
- package/front_end/ui/visual_logging/Debugging.ts +122 -26
- package/front_end/ui/visual_logging/KnownContextValues.ts +139 -1
- package/front_end/ui/visual_logging/LoggingConfig.ts +1 -1
- package/front_end/ui/visual_logging/LoggingDriver.test.ts +74 -44
- package/front_end/ui/visual_logging/LoggingDriver.ts +3 -2
- package/front_end/ui/visual_logging/LoggingState.ts +6 -4
- package/front_end/ui/visual_logging/README.md +1 -3
- package/front_end/ui/visual_logging/visual_logging.ts +9 -0
- package/front_end/ui/visual_logging/visual_logging_debugging.png +0 -0
- package/inspector_overlay/css_grid_label_helpers.ts +4 -4
- package/inspector_overlay/highlight_flex_common.ts +2 -2
- package/inspector_overlay/loadCSS.rollup.js +2 -2
- package/inspector_overlay/main.ts +0 -4
- package/inspector_overlay/tool_highlight.css +1 -1
- package/inspector_overlay/tool_highlight.ts +7 -7
- package/package.json +32 -36
- package/scripts/add_icon_paths.py +1 -1
- package/scripts/ai_assistance/README.md +1 -0
- package/scripts/ai_assistance/auto-run/auto-run.ts +46 -6
- package/scripts/ai_assistance/auto-run/shared/comment-parsers.test.ts +2 -2
- package/scripts/ai_assistance/auto-run/shared/comment-parsers.ts +2 -2
- package/scripts/ai_assistance/auto-run/shared/puppeteer-helpers.ts +18 -15
- package/scripts/ai_assistance/auto-run/targets/elements-executor.ts +2 -0
- package/scripts/ai_assistance/auto-run/targets/elements-multimodal-executor.ts +2 -0
- package/scripts/ai_assistance/auto-run/targets/interface.ts +1 -0
- package/scripts/ai_assistance/auto-run/targets/patching-executor.ts +1 -0
- package/scripts/ai_assistance/auto-run/targets/performance-insights-executor.ts +2 -0
- package/scripts/ai_assistance/auto-run/targets/performance-main-thread-executor.ts +2 -0
- package/scripts/ai_assistance/eval/index.js +5 -1
- package/scripts/ai_assistance/package.json +2 -1
- package/scripts/ai_assistance/suite/README.md +57 -0
- package/scripts/ai_assistance/suite/helpers/evaluators.ts +183 -0
- package/scripts/ai_assistance/suite/helpers/gemini.ts +122 -0
- package/scripts/ai_assistance/suite/helpers/outputs.ts +112 -0
- package/scripts/ai_assistance/suite/instructions/lcp-breakdown.md +12 -0
- package/scripts/ai_assistance/suite/instructions/load.ts +13 -0
- package/scripts/ai_assistance/suite/instructions/scoring.md +27 -0
- package/scripts/ai_assistance/suite/performance.eval.ts +18 -0
- package/scripts/ai_assistance/suite/to_eval_output.ts +166 -0
- package/scripts/ai_assistance/suite/types.d.ts +40 -0
- package/scripts/ai_assistance/suite/upload_to_gcp.ts +104 -0
- package/scripts/ai_assistance/tsconfig.json +1 -1
- package/scripts/ai_assistance/types.d.ts +8 -3
- package/scripts/build/assert_grd.py +1 -1
- package/scripts/build/compress_files.js +9 -4
- package/scripts/build/cross_reference_ninja_and_tsc.js +5 -5
- package/scripts/build/devtools_plugin.js +9 -2
- package/scripts/build/esbuild.js +4 -1
- package/scripts/build/generate_html_entrypoint.js +5 -4
- package/scripts/build/ninja/README.md +2 -3
- package/scripts/build/ninja/bundle.gni +7 -30
- package/scripts/build/ninja/devtools_entrypoint.gni +4 -4
- package/scripts/build/ninja/devtools_pre_built.gni +2 -1
- package/scripts/build/ninja/generate_css.gni +4 -2
- package/scripts/build/ninja/vars.gni +5 -1
- package/scripts/build/ninja/write-if-changed.js +2 -2
- package/scripts/build/typescript/ts_library.py +7 -1
- package/scripts/build/typescript/typescript.gni +2 -1
- package/scripts/component_server/server.js +8 -7
- package/scripts/devtools_build.mjs +93 -26
- package/scripts/devtools_build.test.mjs +48 -48
- package/scripts/devtools_paths.py +0 -5
- package/scripts/eslint_rules/README.md +4 -2
- package/scripts/eslint_rules/lib/canvas-context-tracking.ts +1 -1
- package/scripts/eslint_rules/lib/check-css-import.ts +2 -2
- package/scripts/eslint_rules/lib/check-license-header.ts +3 -3
- package/scripts/eslint_rules/lib/check-test-definitions.ts +2 -2
- package/scripts/eslint_rules/lib/enforce-custom-element-definitions-location.ts +1 -1
- package/scripts/eslint_rules/lib/enforce-optional-properties-last.ts +1 -1
- package/scripts/eslint_rules/lib/enforce-ui-strings-as-const.ts +1 -1
- package/scripts/eslint_rules/lib/es-modules-import.ts +3 -2
- package/scripts/eslint_rules/lib/html-tagged-template.ts +2 -2
- package/scripts/eslint_rules/lib/inject-checkbox-styles.ts +36 -24
- package/scripts/eslint_rules/lib/inline-type-imports.ts +1 -1
- package/scripts/eslint_rules/lib/jslog-context-list.ts +32 -7
- package/scripts/eslint_rules/lib/no-adopted-style-sheets.ts +2 -2
- package/scripts/eslint_rules/lib/no-assert-deep-strict-equal.ts +17 -16
- package/scripts/eslint_rules/lib/no-assert-equal-boolean-null-undefined.ts +1 -1
- package/scripts/eslint_rules/lib/no-assert-equal.ts +1 -1
- package/scripts/eslint_rules/lib/no-assert-strict-equal-for-arrays-and-objects.ts +1 -1
- package/scripts/eslint_rules/lib/no-commented-out-console.ts +4 -2
- package/scripts/eslint_rules/lib/no-customized-builtin-elements.ts +1 -4
- package/scripts/eslint_rules/lib/no-imperative-dom-api/adorner.ts +5 -9
- package/scripts/eslint_rules/lib/no-imperative-dom-api/aria-utils.ts +5 -8
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ast.ts +24 -1
- package/scripts/eslint_rules/lib/no-imperative-dom-api/button.ts +5 -4
- package/scripts/eslint_rules/lib/no-imperative-dom-api/class-member.ts +1 -1
- package/scripts/eslint_rules/lib/no-imperative-dom-api/data-grid.ts +23 -25
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api-devtools-extensions.ts +5 -9
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api.ts +11 -16
- package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-fragment.ts +2 -2
- package/scripts/eslint_rules/lib/no-imperative-dom-api/split-widget.ts +14 -18
- package/scripts/eslint_rules/lib/no-imperative-dom-api/toolbar.ts +17 -18
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-fragment.ts +7 -12
- package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-utils.ts +7 -7
- package/scripts/eslint_rules/lib/no-imperative-dom-api/widget.ts +8 -13
- package/scripts/eslint_rules/lib/no-imperative-dom-api.ts +3 -22
- package/scripts/eslint_rules/lib/no-importing-images-from-src.ts +1 -1
- package/scripts/eslint_rules/lib/no-imports-in-directory.ts +18 -7
- package/scripts/eslint_rules/lib/no-lit-render-outside-of-view.ts +48 -37
- package/scripts/eslint_rules/lib/no-new-lit-element-components.ts +5 -2
- package/scripts/eslint_rules/lib/no-underscored-properties.ts +36 -28
- package/scripts/eslint_rules/lib/prefer-assert-instance-of.ts +24 -20
- package/scripts/eslint_rules/lib/prefer-assert-is-ok.ts +54 -45
- package/scripts/eslint_rules/lib/prefer-assert-length-of.ts +24 -17
- package/scripts/eslint_rules/lib/prefer-assert-strict-equal.ts +22 -16
- package/scripts/eslint_rules/lib/prefer-private-class-members.ts +11 -4
- package/scripts/eslint_rules/lib/prefer-sinon-assert.ts +37 -29
- package/scripts/eslint_rules/lib/prefer-url-string.ts +1 -1
- package/scripts/eslint_rules/lib/utils/lit.ts +26 -9
- package/scripts/eslint_rules/lib/validate-timing-types.ts +330 -0
- package/scripts/eslint_rules/rules-dir.mjs +4 -1
- package/scripts/eslint_rules/tests/check-license-header.test.ts +8 -8
- package/scripts/eslint_rules/tests/check-test-definitions.test.ts +0 -10
- package/scripts/eslint_rules/tests/enforce-optional-properties-last.test.ts +1 -1
- package/scripts/eslint_rules/tests/inject-checkbox-styles.test.ts +49 -0
- package/scripts/eslint_rules/tests/no-imports-in-directory.test.ts +20 -5
- package/scripts/eslint_rules/tests/no-lit-render-outside-of-view.test.ts +60 -10
- package/scripts/eslint_rules/tests/no-new-lit-element-components.test.ts +4 -0
- package/scripts/eslint_rules/tests/prefer-private-class-members.test.ts +2 -2
- package/scripts/eslint_rules/tests/utils/RuleTester.ts +19 -1
- package/scripts/eslint_rules/tests/utils.test.ts +1 -1
- package/scripts/eslint_rules/tests/validate-timing-types.test.ts +289 -0
- package/scripts/eslint_rules/tsconfig.json +3 -2
- package/scripts/extract_bugs.ts +2 -3
- package/scripts/javascript_natives/helpers.js +9 -9
- package/scripts/migration/e2e_non_hosted_gemini.mjs +102 -0
- package/scripts/migration/web-tests-esm/rename-legacy-global.mjs +1 -1
- package/scripts/npm_test.js +1 -1
- package/scripts/protocol_typescript/protocol_dts_generator.ts +27 -16
- package/scripts/protocol_typescript/protocol_schema.d.ts +9 -4
- package/scripts/reformat-clang-js-ts.js +1 -1
- package/scripts/run_build.mjs +14 -2
- package/scripts/run_start.mjs +6 -3
- package/scripts/scaffold/scaffold-widget.js +7 -7
- package/scripts/scaffold/templates/WidgetTemplate.ts.txt +1 -1
- package/scripts/tools/update_goldens.py +143 -168
- package/scripts/tsconfig.json +2 -1
- package/scripts/whitespaces.txt +1 -1
- package/front_end/core/sdk/SourceMapScopes.test.ts +0 -507
- package/front_end/core/sdk/SourceMapScopes.ts +0 -472
- package/front_end/models/ai_assistance/agents/PerformanceInsightsAgent.test.ts +0 -448
- package/front_end/models/ai_assistance/agents/PerformanceInsightsAgent.ts +0 -498
- package/front_end/models/trace/extras/FetchNodes.test.ts +0 -261
- package/front_end/models/trace/extras/FetchNodes.ts +0 -254
- package/front_end/models/trace/extras/Metadata.ts +0 -79
- package/front_end/models/trace/insights/LCPPhases.test.ts +0 -71
- package/front_end/models/trace/insights/LCPPhases.ts +0 -222
- package/front_end/panels/animation/AnimationScreenshotPopover.ts +0 -65
- package/front_end/panels/animation/animationScreenshotPopover.css +0 -18
- package/front_end/panels/application/ReportingApiReportsView.test.ts +0 -117
- package/front_end/panels/application/ReportingApiReportsView.ts +0 -88
- package/front_end/panels/elements/ElementsTreeElementHighlighter.test.ts +0 -51
- package/front_end/panels/elements/ElementsTreeElementHighlighter.ts +0 -107
- package/front_end/panels/elements/components/LayoutPane.ts +0 -515
- package/front_end/panels/elements/components/LayoutPaneUtils.ts +0 -41
- package/front_end/panels/elements/components/layoutPane.css +0 -168
- package/front_end/panels/sources/components/breakpointsView.css +0 -275
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +0 -118
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +0 -256
- package/front_end/panels/web_audio/AudioContextContentBuilder.ts +0 -113
- package/front_end/panels/web_audio/AudioContextSelector.ts +0 -140
- package/front_end/panels/web_audio/audioContextSelector.css +0 -20
- package/front_end/panels/web_audio/graph_visualizer/EdgeView.ts +0 -80
- package/front_end/panels/web_audio/graph_visualizer/GraphManager.ts +0 -46
- package/front_end/panels/web_audio/graph_visualizer/GraphStyle.ts +0 -96
- package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +0 -197
- package/front_end/panels/web_audio/graph_visualizer/NodeRendererUtility.ts +0 -43
- package/front_end/panels/web_audio/graph_visualizer/NodeView.ts +0 -258
- package/front_end/panels/web_audio/graph_visualizer/graph_visualizer.ts +0 -19
- package/front_end/ui/components/docs/recorder_recording_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_recording_view/basic.ts +0 -99
- package/front_end/ui/legacy/inspectorViewTabbedPane.css +0 -13
- package/inspector_overlay/debug/tool_distances.html +0 -25
- package/inspector_overlay/tool_distances.ts +0 -125
- package/scripts/eslint_rules/lib/no-it-screenshot-only-or-repeat.ts +0 -47
- package/scripts/eslint_rules/lib/no-screenshot-test-outside-perf-panel.ts +0 -77
- package/scripts/eslint_rules/lib/screenshot-assertion-in-it-screenshot.ts +0 -110
- package/scripts/eslint_rules/lib/single-screenshot-assertion-per-test.ts +0 -85
- package/scripts/eslint_rules/tests/no-it-screenshot-only-or-repeat.test.ts +0 -34
- package/scripts/eslint_rules/tests/no-screenshot-test-outside-perf-panel.test.ts +0 -99
- package/scripts/eslint_rules/tests/screenshot-assertion-in-it-screenshot.test.ts +0 -79
- package/scripts/eslint_rules/tests/single-screenshot-assertion-per-test.test.ts +0 -97
- package/scripts/tools/update_goldens_unittest.py +0 -88
- package/scripts/tools/update_goldens_v2.py +0 -68
- package/scripts/watch_build.js +0 -230
- /package/front_end/panels/recorder/models/{RecorderShorcutHelper.test.ts → RecorderShortcutHelper.test.ts} +0 -0
package/front_end/panels/sources/{components/BreakpointsView.test.ts → BreakpointsView.test.ts}
RENAMED
@@ -2,34 +2,34 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
-
import * as Common from '
|
6
|
-
import * as Platform from '
|
7
|
-
import * as SDK from '
|
8
|
-
import type * as Protocol from '
|
9
|
-
import * as Bindings from '
|
10
|
-
import * as Breakpoints from '
|
11
|
-
import * as TextUtils from '
|
12
|
-
import * as Workspace from '
|
5
|
+
import * as Common from '../../core/common/common.js';
|
6
|
+
import * as Platform from '../../core/platform/platform.js';
|
7
|
+
import * as SDK from '../../core/sdk/sdk.js';
|
8
|
+
import type * as Protocol from '../../generated/protocol.js';
|
9
|
+
import * as Bindings from '../../models/bindings/bindings.js';
|
10
|
+
import * as Breakpoints from '../../models/breakpoints/breakpoints.js';
|
11
|
+
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
12
|
+
import * as Workspace from '../../models/workspace/workspace.js';
|
13
13
|
import {
|
14
14
|
assertElements,
|
15
15
|
dispatchClickEvent,
|
16
16
|
dispatchKeyDownEvent,
|
17
17
|
renderElementIntoDOM,
|
18
|
-
} from '
|
18
|
+
} from '../../testing/DOMHelpers.js';
|
19
19
|
import {
|
20
20
|
createTarget,
|
21
21
|
describeWithEnvironment,
|
22
|
-
} from '
|
23
|
-
import {describeWithMockConnection} from '
|
24
|
-
import {MockProtocolBackend} from '
|
22
|
+
} from '../../testing/EnvironmentHelpers.js';
|
23
|
+
import {describeWithMockConnection} from '../../testing/MockConnection.js';
|
24
|
+
import {MockProtocolBackend} from '../../testing/MockScopeChain.js';
|
25
25
|
import {
|
26
26
|
createContentProviderUISourceCode,
|
27
27
|
setupMockedUISourceCode,
|
28
|
-
} from '
|
29
|
-
import * as RenderCoordinator from '
|
30
|
-
import * as UI from '
|
28
|
+
} from '../../testing/UISourceCodeHelpers.js';
|
29
|
+
import * as RenderCoordinator from '../../ui/components/render_coordinator/render_coordinator.js';
|
30
|
+
import * as UI from '../../ui/legacy/legacy.js';
|
31
31
|
|
32
|
-
import * as
|
32
|
+
import * as Sources from './sources.js';
|
33
33
|
|
34
34
|
const {urlString} = Platform.DevToolsPath;
|
35
35
|
const DETAILS_SELECTOR = 'details';
|
@@ -132,8 +132,8 @@ async function setUpTestWithOneBreakpointLocation(
|
|
132
132
|
];
|
133
133
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
134
134
|
|
135
|
-
const controller =
|
136
|
-
{forceNew: true, breakpointManager, settings});
|
135
|
+
const controller =
|
136
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
137
137
|
const data = await controller.getUpdatedBreakpointViewData();
|
138
138
|
|
139
139
|
assert.lengthOf(data.groups, 1);
|
@@ -148,18 +148,19 @@ class MockRevealer<T> implements Common.Revealer.Revealer<T> {
|
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
151
|
-
async function createAndInitializeBreakpointsView(): Promise<
|
151
|
+
async function createAndInitializeBreakpointsView(): Promise<Sources.BreakpointsView.BreakpointsView> {
|
152
152
|
// Force creation of a new BreakpointsView singleton so that it gets correctly re-wired with
|
153
153
|
// the current controller singleton (to pick up the latest breakpoint state).
|
154
|
-
const component =
|
154
|
+
const component = Sources.BreakpointsView.BreakpointsView.instance({forceNew: true});
|
155
155
|
await RenderCoordinator.done(); // Wait until the initial rendering finishes.
|
156
156
|
renderElementIntoDOM(component);
|
157
|
+
await component.updateComplete;
|
157
158
|
return component;
|
158
159
|
}
|
159
160
|
|
160
161
|
async function renderNoBreakpoints({pauseOnUncaughtExceptions, pauseOnCaughtExceptions}:
|
161
162
|
{pauseOnUncaughtExceptions: boolean, pauseOnCaughtExceptions: boolean}):
|
162
|
-
Promise<
|
163
|
+
Promise<Sources.BreakpointsView.BreakpointsView> {
|
163
164
|
const component = await createAndInitializeBreakpointsView();
|
164
165
|
|
165
166
|
component.data = {
|
@@ -169,20 +170,21 @@ async function renderNoBreakpoints({pauseOnUncaughtExceptions, pauseOnCaughtExce
|
|
169
170
|
groups: [],
|
170
171
|
};
|
171
172
|
await RenderCoordinator.done();
|
173
|
+
await component.updateComplete;
|
172
174
|
return component;
|
173
175
|
}
|
174
176
|
|
175
177
|
async function renderSingleBreakpoint(
|
176
178
|
type: SDK.DebuggerModel.BreakpointType = SDK.DebuggerModel.BreakpointType.REGULAR_BREAKPOINT,
|
177
179
|
hoverText?: string): Promise<{
|
178
|
-
component:
|
179
|
-
data:
|
180
|
+
component: Sources.BreakpointsView.BreakpointsView,
|
181
|
+
data: Sources.BreakpointsView.BreakpointsViewData,
|
180
182
|
}> {
|
181
183
|
// Only provide a hover text if it's not a regular breakpoint.
|
182
184
|
assert.isTrue(!hoverText || type !== SDK.DebuggerModel.BreakpointType.REGULAR_BREAKPOINT);
|
183
185
|
const component = await createAndInitializeBreakpointsView();
|
184
186
|
|
185
|
-
const data:
|
187
|
+
const data: Sources.BreakpointsView.BreakpointsViewData = {
|
186
188
|
breakpointsActive: true,
|
187
189
|
pauseOnUncaughtExceptions: false,
|
188
190
|
pauseOnCaughtExceptions: false,
|
@@ -198,7 +200,7 @@ async function renderSingleBreakpoint(
|
|
198
200
|
location: '1',
|
199
201
|
codeSnippet: 'const a = 0;',
|
200
202
|
isHit: true,
|
201
|
-
status:
|
203
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
202
204
|
type,
|
203
205
|
hoverText,
|
204
206
|
},
|
@@ -209,16 +211,17 @@ async function renderSingleBreakpoint(
|
|
209
211
|
|
210
212
|
component.data = data;
|
211
213
|
await RenderCoordinator.done();
|
214
|
+
await component.updateComplete;
|
212
215
|
return {component, data};
|
213
216
|
}
|
214
217
|
|
215
218
|
async function renderMultipleBreakpoints(): Promise<{
|
216
|
-
component:
|
217
|
-
data:
|
219
|
+
component: Sources.BreakpointsView.BreakpointsView,
|
220
|
+
data: Sources.BreakpointsView.BreakpointsViewData,
|
218
221
|
}> {
|
219
222
|
const component = await createAndInitializeBreakpointsView();
|
220
223
|
|
221
|
-
const data:
|
224
|
+
const data: Sources.BreakpointsView.BreakpointsViewData = {
|
222
225
|
breakpointsActive: true,
|
223
226
|
pauseOnUncaughtExceptions: false,
|
224
227
|
pauseOnCaughtExceptions: false,
|
@@ -235,7 +238,7 @@ async function renderMultipleBreakpoints(): Promise<{
|
|
235
238
|
location: '234',
|
236
239
|
codeSnippet: 'const a = x;',
|
237
240
|
isHit: false,
|
238
|
-
status:
|
241
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
239
242
|
},
|
240
243
|
{
|
241
244
|
id: '2',
|
@@ -243,7 +246,7 @@ async function renderMultipleBreakpoints(): Promise<{
|
|
243
246
|
location: '3:3',
|
244
247
|
codeSnippet: 'if (x > a) {',
|
245
248
|
isHit: true,
|
246
|
-
status:
|
249
|
+
status: Sources.BreakpointsView.BreakpointStatus.DISABLED,
|
247
250
|
},
|
248
251
|
],
|
249
252
|
},
|
@@ -259,7 +262,7 @@ async function renderMultipleBreakpoints(): Promise<{
|
|
259
262
|
location: '11',
|
260
263
|
codeSnippet: 'const y;',
|
261
264
|
isHit: false,
|
262
|
-
status:
|
265
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
263
266
|
},
|
264
267
|
],
|
265
268
|
},
|
@@ -275,7 +278,7 @@ async function renderMultipleBreakpoints(): Promise<{
|
|
275
278
|
location: '3',
|
276
279
|
codeSnippet: 'if (a == 0) {',
|
277
280
|
isHit: false,
|
278
|
-
status:
|
281
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
279
282
|
},
|
280
283
|
],
|
281
284
|
},
|
@@ -283,37 +286,37 @@ async function renderMultipleBreakpoints(): Promise<{
|
|
283
286
|
};
|
284
287
|
component.data = data;
|
285
288
|
await RenderCoordinator.done();
|
289
|
+
await component.updateComplete;
|
286
290
|
return {component, data};
|
287
291
|
}
|
288
292
|
|
289
|
-
function extractBreakpointItems(data:
|
290
|
-
|
293
|
+
function extractBreakpointItems(data: Sources.BreakpointsView.BreakpointsViewData):
|
294
|
+
Sources.BreakpointsView.BreakpointItem[] {
|
291
295
|
const breakpointItems = data.groups.flatMap(group => group.breakpointItems);
|
292
296
|
assert.isAbove(breakpointItems.length, 0);
|
293
297
|
return breakpointItems;
|
294
298
|
}
|
295
299
|
|
296
300
|
function checkCodeSnippet(
|
297
|
-
renderedBreakpointItem: HTMLDivElement, breakpointItem:
|
301
|
+
renderedBreakpointItem: HTMLDivElement, breakpointItem: Sources.BreakpointsView.BreakpointItem): void {
|
298
302
|
const snippetElement = renderedBreakpointItem.querySelector(CODE_SNIPPET_SELECTOR);
|
299
303
|
assert.instanceOf(snippetElement, HTMLSpanElement);
|
300
304
|
assert.strictEqual(snippetElement.textContent, breakpointItem.codeSnippet);
|
301
305
|
}
|
302
306
|
|
303
|
-
function checkCheckboxState(
|
304
|
-
checkbox: HTMLInputElement, breakpointItem: SourcesComponents.BreakpointsView.BreakpointItem): void {
|
307
|
+
function checkCheckboxState(checkbox: HTMLInputElement, breakpointItem: Sources.BreakpointsView.BreakpointItem): void {
|
305
308
|
const checked = checkbox.checked;
|
306
309
|
const indeterminate = checkbox.indeterminate;
|
307
|
-
if (breakpointItem.status ===
|
310
|
+
if (breakpointItem.status === Sources.BreakpointsView.BreakpointStatus.INDETERMINATE) {
|
308
311
|
assert.isTrue(indeterminate);
|
309
312
|
} else {
|
310
313
|
assert.isFalse(indeterminate);
|
311
|
-
assert.strictEqual((breakpointItem.status ===
|
314
|
+
assert.strictEqual((breakpointItem.status === Sources.BreakpointsView.BreakpointStatus.ENABLED), checked);
|
312
315
|
}
|
313
316
|
}
|
314
317
|
|
315
318
|
function checkGroupNames(
|
316
|
-
renderedGroupElements: Element[], breakpointGroups:
|
319
|
+
renderedGroupElements: Element[], breakpointGroups: Sources.BreakpointsView.BreakpointGroup[]): void {
|
317
320
|
assert.lengthOf(renderedGroupElements, breakpointGroups.length);
|
318
321
|
for (let i = 0; i < renderedGroupElements.length; ++i) {
|
319
322
|
const renderedGroup = renderedGroupElements[i];
|
@@ -324,17 +327,17 @@ function checkGroupNames(
|
|
324
327
|
}
|
325
328
|
}
|
326
329
|
|
327
|
-
function hover(component:
|
328
|
-
assert.isNotNull(component.
|
330
|
+
function hover(component: Sources.BreakpointsView.BreakpointsView, selector: string): Promise<void> {
|
331
|
+
assert.isNotNull(component.contentElement);
|
329
332
|
// Dispatch a mouse over.
|
330
|
-
component.
|
333
|
+
component.contentElement.querySelector(selector)?.dispatchEvent(new Event('mouseover'));
|
331
334
|
// Wait until the re-rendering has happened.
|
332
335
|
return RenderCoordinator.done();
|
333
336
|
}
|
334
337
|
|
335
338
|
describeWithEnvironment('BreakpointsSidebarController', () => {
|
336
339
|
after(() => {
|
337
|
-
|
340
|
+
Sources.BreakpointsView.BreakpointsSidebarController.removeInstance();
|
338
341
|
});
|
339
342
|
|
340
343
|
it('can remove a breakpoint', async () => {
|
@@ -342,18 +345,17 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
342
345
|
const breakpoint = location.breakpoint as sinon.SinonStubbedInstance<Breakpoints.BreakpointManager.Breakpoint>;
|
343
346
|
const breakpointItem = groups[0].breakpointItems[0];
|
344
347
|
|
345
|
-
|
348
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance().breakpointsRemoved([breakpointItem]);
|
346
349
|
assert.isTrue(breakpoint.remove.calledOnceWith(false));
|
347
350
|
});
|
348
351
|
|
349
352
|
it('changes breakpoint state', async () => {
|
350
353
|
const {groups, location} = await setUpTestWithOneBreakpointLocation();
|
351
354
|
const breakpointItem = groups[0].breakpointItems[0];
|
352
|
-
assert.strictEqual(breakpointItem.status,
|
355
|
+
assert.strictEqual(breakpointItem.status, Sources.BreakpointsView.BreakpointStatus.ENABLED);
|
353
356
|
|
354
357
|
const breakpoint = location.breakpoint as sinon.SinonStubbedInstance<Breakpoints.BreakpointManager.Breakpoint>;
|
355
|
-
|
356
|
-
breakpointItem, false);
|
358
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance().breakpointStateChanged(breakpointItem, false);
|
357
359
|
sinon.assert.calledWith(breakpoint.setEnabled, false);
|
358
360
|
});
|
359
361
|
|
@@ -372,7 +374,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
372
374
|
},
|
373
375
|
});
|
374
376
|
|
375
|
-
await
|
377
|
+
await Sources.BreakpointsView.BreakpointsSidebarController.instance().jumpToSource(breakpointItem);
|
376
378
|
assert.isTrue(revealer.reveal.calledOnceWith(uiLocation));
|
377
379
|
});
|
378
380
|
|
@@ -391,7 +393,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
391
393
|
},
|
392
394
|
});
|
393
395
|
|
394
|
-
await
|
396
|
+
await Sources.BreakpointsView.BreakpointsSidebarController.instance().breakpointEdited(
|
395
397
|
breakpointItem, false /* editButtonClicked */);
|
396
398
|
assert.isTrue(revealer.reveal.calledOnceWith(location));
|
397
399
|
});
|
@@ -404,12 +406,12 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
404
406
|
];
|
405
407
|
|
406
408
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
407
|
-
const controller =
|
408
|
-
{forceNew: true, breakpointManager, settings});
|
409
|
+
const controller =
|
410
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
409
411
|
const actual = await controller.getUpdatedBreakpointViewData();
|
410
412
|
const createExpectedBreakpointGroups = (testData: LocationTestData) => {
|
411
|
-
const status = testData.enabled ?
|
412
|
-
|
413
|
+
const status = testData.enabled ? Sources.BreakpointsView.BreakpointStatus.ENABLED :
|
414
|
+
Sources.BreakpointsView.BreakpointStatus.DISABLED;
|
413
415
|
let type = SDK.DebuggerModel.BreakpointType.REGULAR_BREAKPOINT;
|
414
416
|
|
415
417
|
if (testData.condition) {
|
@@ -438,7 +440,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
438
440
|
],
|
439
441
|
};
|
440
442
|
};
|
441
|
-
const expected:
|
443
|
+
const expected: Sources.BreakpointsView.BreakpointsViewData = {
|
442
444
|
breakpointsActive: true,
|
443
445
|
pauseOnUncaughtExceptions: false,
|
444
446
|
pauseOnCaughtExceptions: false,
|
@@ -449,8 +451,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
449
451
|
|
450
452
|
it('respects the breakpointsActive setting', async () => {
|
451
453
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata([]);
|
452
|
-
const controller =
|
453
|
-
{forceNew: true, breakpointManager, settings});
|
454
|
+
const controller =
|
455
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
454
456
|
settings.moduleSetting('breakpoints-active').set(true);
|
455
457
|
let data = await controller.getUpdatedBreakpointViewData();
|
456
458
|
assert.isTrue(data.breakpointsActive);
|
@@ -466,8 +468,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
466
468
|
];
|
467
469
|
|
468
470
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
469
|
-
const controller =
|
470
|
-
{forceNew: true, breakpointManager, settings});
|
471
|
+
const controller =
|
472
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
471
473
|
breakpointManager.supportsConditionalBreakpoints.returns(false);
|
472
474
|
for (const group of (await controller.getUpdatedBreakpointViewData()).groups) {
|
473
475
|
assert.isFalse(group.editable);
|
@@ -485,8 +487,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
485
487
|
];
|
486
488
|
|
487
489
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
488
|
-
const controller =
|
489
|
-
{forceNew: true, breakpointManager, settings});
|
490
|
+
const controller =
|
491
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
490
492
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
491
493
|
assert.lengthOf(actualViewData.groups, 2);
|
492
494
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
@@ -513,7 +515,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
513
515
|
];
|
514
516
|
|
515
517
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
516
|
-
const controller =
|
518
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance(
|
517
519
|
{forceNew: true, breakpointManager, settings});
|
518
520
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
519
521
|
assert.lengthOf(actualViewData.groups, 1);
|
@@ -529,8 +531,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
529
531
|
];
|
530
532
|
|
531
533
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
532
|
-
const controller =
|
533
|
-
{forceNew: true, breakpointManager, settings});
|
534
|
+
const controller =
|
535
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
534
536
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
535
537
|
assert.lengthOf(actualViewData.groups, 1);
|
536
538
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 2);
|
@@ -545,8 +547,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
545
547
|
];
|
546
548
|
|
547
549
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
548
|
-
const controller =
|
549
|
-
{forceNew: true, breakpointManager, settings});
|
550
|
+
const controller =
|
551
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
550
552
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
551
553
|
assert.lengthOf(actualViewData.groups, 2);
|
552
554
|
const names = actualViewData.groups.map(group => group.name);
|
@@ -560,8 +562,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
560
562
|
];
|
561
563
|
|
562
564
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
563
|
-
const controller =
|
564
|
-
{forceNew: true, breakpointManager, settings});
|
565
|
+
const controller =
|
566
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
565
567
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
566
568
|
assert.lengthOf(actualViewData.groups, 1);
|
567
569
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
@@ -571,14 +573,14 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
571
573
|
const {groups} =
|
572
574
|
await setUpTestWithOneBreakpointLocation({file: '', lineNumber: 0, columnNumber: 0, enabled: true});
|
573
575
|
const breakpointItem = groups[0].breakpointItems[0];
|
574
|
-
assert.strictEqual(breakpointItem.status,
|
576
|
+
assert.strictEqual(breakpointItem.status, Sources.BreakpointsView.BreakpointStatus.ENABLED);
|
575
577
|
});
|
576
578
|
|
577
579
|
it('correctly extracts the enabled state', async () => {
|
578
580
|
const {groups} =
|
579
581
|
await setUpTestWithOneBreakpointLocation({file: '', lineNumber: 0, columnNumber: 0, enabled: false});
|
580
582
|
const breakpointItem = groups[0].breakpointItems[0];
|
581
|
-
assert.strictEqual(breakpointItem.status,
|
583
|
+
assert.strictEqual(breakpointItem.status, Sources.BreakpointsView.BreakpointStatus.DISABLED);
|
582
584
|
});
|
583
585
|
|
584
586
|
it('correctly extracts the enabled state', async () => {
|
@@ -588,14 +590,13 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
588
590
|
];
|
589
591
|
|
590
592
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
591
|
-
const controller =
|
592
|
-
{forceNew: true, breakpointManager, settings});
|
593
|
+
const controller =
|
594
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
593
595
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
594
596
|
assert.lengthOf(actualViewData.groups, 1);
|
595
597
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
596
598
|
assert.strictEqual(
|
597
|
-
actualViewData.groups[0].breakpointItems[0].status,
|
598
|
-
SourcesComponents.BreakpointsView.BreakpointStatus.INDETERMINATE);
|
599
|
+
actualViewData.groups[0].breakpointItems[0].status, Sources.BreakpointsView.BreakpointStatus.INDETERMINATE);
|
599
600
|
});
|
600
601
|
|
601
602
|
it('correctly extracts the disabled state', async () => {
|
@@ -612,14 +613,13 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
612
613
|
];
|
613
614
|
|
614
615
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
615
|
-
const controller =
|
616
|
-
{forceNew: true, breakpointManager, settings});
|
616
|
+
const controller =
|
617
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
617
618
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
618
619
|
assert.lengthOf(actualViewData.groups, 1);
|
619
620
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
620
621
|
assert.strictEqual(
|
621
|
-
actualViewData.groups[0].breakpointItems[0].status,
|
622
|
-
SourcesComponents.BreakpointsView.BreakpointStatus.INDETERMINATE);
|
622
|
+
actualViewData.groups[0].breakpointItems[0].status, Sources.BreakpointsView.BreakpointStatus.INDETERMINATE);
|
623
623
|
});
|
624
624
|
|
625
625
|
it('correctly extracts conditional breakpoints', async () => {
|
@@ -630,8 +630,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
630
630
|
];
|
631
631
|
|
632
632
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
633
|
-
const controller =
|
634
|
-
{forceNew: true, breakpointManager, settings});
|
633
|
+
const controller =
|
634
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
635
635
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
636
636
|
assert.lengthOf(actualViewData.groups, 1);
|
637
637
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
@@ -648,8 +648,8 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
648
648
|
];
|
649
649
|
|
650
650
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata(testData);
|
651
|
-
const controller =
|
652
|
-
{forceNew: true, breakpointManager, settings});
|
651
|
+
const controller =
|
652
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
653
653
|
const actualViewData = await controller.getUpdatedBreakpointViewData();
|
654
654
|
assert.lengthOf(actualViewData.groups, 1);
|
655
655
|
assert.lengthOf(actualViewData.groups[0].breakpointItems, 1);
|
@@ -690,7 +690,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
690
690
|
// A new controller is created and initialized with the expanded settings.
|
691
691
|
{const breakpointManager = Breakpoints.BreakpointManager.BreakpointManager.instance();
|
692
692
|
const settings = Common.Settings.Settings.instance();
|
693
|
-
const controller =
|
693
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance({
|
694
694
|
forceNew: true,
|
695
695
|
breakpointManager,
|
696
696
|
settings,
|
@@ -709,7 +709,7 @@ describeWithEnvironment('BreakpointsSidebarController', () => {
|
|
709
709
|
// A new controller is created and initialized with the expanded settings.
|
710
710
|
{
|
711
711
|
|
712
|
-
const controller =
|
712
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance({
|
713
713
|
forceNew: true,
|
714
714
|
breakpointManager: Breakpoints.BreakpointManager.BreakpointManager.instance(),
|
715
715
|
settings: Common.Settings.Settings.instance(),
|
@@ -728,10 +728,12 @@ describeWithMockConnection('BreakpointsSidebarController', () => {
|
|
728
728
|
const workspace = Workspace.Workspace.WorkspaceImpl.instance();
|
729
729
|
const targetManager = SDK.TargetManager.TargetManager.instance();
|
730
730
|
const resourceMapping = new Bindings.ResourceMapping.ResourceMapping(targetManager, workspace);
|
731
|
+
const ignoreListManager = Workspace.IgnoreListManager.IgnoreListManager.instance({forceNew: true});
|
731
732
|
const debuggerWorkspaceBinding = Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance({
|
732
733
|
forceNew: true,
|
733
734
|
resourceMapping,
|
734
735
|
targetManager,
|
736
|
+
ignoreListManager,
|
735
737
|
});
|
736
738
|
Breakpoints.BreakpointManager.BreakpointManager.instance(
|
737
739
|
{forceNew: true, targetManager, workspace, debuggerWorkspaceBinding});
|
@@ -746,14 +748,13 @@ describeWithMockConnection('BreakpointsSidebarController', () => {
|
|
746
748
|
Breakpoints.BreakpointManager.BreakpointOrigin.USER_ACTION,
|
747
749
|
];
|
748
750
|
|
749
|
-
|
750
|
-
it.skip('[crbug.com/345456307] auto-expands if a user adds a new breakpoint', async () => {
|
751
|
+
it('auto-expands if a user adds a new breakpoint', async () => {
|
751
752
|
const breakpointManager = Breakpoints.BreakpointManager.BreakpointManager.instance();
|
752
753
|
const settings = Common.Settings.Settings.instance();
|
753
754
|
const {uiSourceCode, project} =
|
754
755
|
createContentProviderUISourceCode({url: urlString`test.js`, mimeType: 'text/javascript'});
|
755
|
-
const controller =
|
756
|
-
{forceNew: true, breakpointManager, settings});
|
756
|
+
const controller =
|
757
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
757
758
|
|
758
759
|
// Add one breakpoint and collapse the tree.
|
759
760
|
const b1 = await breakpointManager.setBreakpoint(uiSourceCode, 0, 0, ...DEFAULT_BREAKPOINT);
|
@@ -787,8 +788,8 @@ describeWithMockConnection('BreakpointsSidebarController', () => {
|
|
787
788
|
const settings = Common.Settings.Settings.instance();
|
788
789
|
const {uiSourceCode, project} =
|
789
790
|
createContentProviderUISourceCode({url: urlString`test.js`, mimeType: 'text/javascript'});
|
790
|
-
const controller =
|
791
|
-
{forceNew: true, breakpointManager, settings});
|
791
|
+
const controller =
|
792
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
792
793
|
|
793
794
|
// Add one breakpoint and collapse the tree.
|
794
795
|
const b1 = await breakpointManager.setBreakpoint(uiSourceCode, 0, 0, ...DEFAULT_BREAKPOINT);
|
@@ -858,7 +859,7 @@ describeWithMockConnection('BreakpointsSidebarController', () => {
|
|
858
859
|
assert.exists(b1);
|
859
860
|
await responderPromise;
|
860
861
|
|
861
|
-
const controller =
|
862
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance(
|
862
863
|
{forceNew: true, breakpointManager, settings: Common.Settings.Settings.instance()});
|
863
864
|
controller.expandedStateChanged(uiSourceCode.url(), false /* expanded */);
|
864
865
|
|
@@ -892,8 +893,8 @@ describeWithMockConnection('BreakpointsSidebarController', () => {
|
|
892
893
|
it('changes pause on exception state', async () => {
|
893
894
|
const {breakpointManager, settings} = createStubBreakpointManagerAndSettings();
|
894
895
|
breakpointManager.allBreakpointLocations.returns([]);
|
895
|
-
const controller =
|
896
|
-
{forceNew: true, breakpointManager, settings});
|
896
|
+
const controller =
|
897
|
+
Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
|
897
898
|
for (const pauseOnUncaughtExceptions of [true, false]) {
|
898
899
|
for (const pauseOnCaughtExceptions of [true, false]) {
|
899
900
|
controller.setPauseOnUncaughtExceptions(pauseOnUncaughtExceptions);
|
@@ -914,10 +915,12 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
914
915
|
const workspace = Workspace.Workspace.WorkspaceImpl.instance();
|
915
916
|
const targetManager = SDK.TargetManager.TargetManager.instance();
|
916
917
|
const resourceMapping = new Bindings.ResourceMapping.ResourceMapping(targetManager, workspace);
|
918
|
+
const ignoreListManager = Workspace.IgnoreListManager.IgnoreListManager.instance({forceNew: true});
|
917
919
|
const debuggerWorkspaceBinding = Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance({
|
918
920
|
forceNew: true,
|
919
921
|
resourceMapping,
|
920
922
|
targetManager,
|
923
|
+
ignoreListManager,
|
921
924
|
});
|
922
925
|
Breakpoints.BreakpointManager.BreakpointManager.instance(
|
923
926
|
{forceNew: true, targetManager, workspace, debuggerWorkspaceBinding});
|
@@ -925,12 +928,12 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
925
928
|
|
926
929
|
it('correctly expands breakpoint groups', async () => {
|
927
930
|
const {component, data} = await renderMultipleBreakpoints();
|
928
|
-
assert.isNotNull(component.
|
931
|
+
assert.isNotNull(component.contentElement);
|
929
932
|
|
930
933
|
const expandedGroups = data.groups.filter(group => group.expanded);
|
931
934
|
assert.isAbove(expandedGroups.length, 0);
|
932
935
|
|
933
|
-
const renderedExpandedGroups = Array.from(component.
|
936
|
+
const renderedExpandedGroups = Array.from(component.contentElement.querySelectorAll(EXPANDED_GROUPS_SELECTOR));
|
934
937
|
assert.lengthOf(renderedExpandedGroups, expandedGroups.length);
|
935
938
|
|
936
939
|
checkGroupNames(renderedExpandedGroups, expandedGroups);
|
@@ -938,21 +941,21 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
938
941
|
|
939
942
|
it('correctly collapses breakpoint groups', async () => {
|
940
943
|
const {component, data} = await renderMultipleBreakpoints();
|
941
|
-
assert.isNotNull(component.
|
944
|
+
assert.isNotNull(component.contentElement);
|
942
945
|
|
943
946
|
const collapsedGroups = data.groups.filter(group => !group.expanded);
|
944
947
|
assert.isAbove(collapsedGroups.length, 0);
|
945
948
|
|
946
|
-
const renderedCollapsedGroups = Array.from(component.
|
949
|
+
const renderedCollapsedGroups = Array.from(component.contentElement.querySelectorAll(COLLAPSED_GROUPS_SELECTOR));
|
947
950
|
|
948
951
|
checkGroupNames(renderedCollapsedGroups, collapsedGroups);
|
949
952
|
});
|
950
953
|
|
951
954
|
it('renders the group names', async () => {
|
952
955
|
const {component, data} = await renderMultipleBreakpoints();
|
953
|
-
assert.isNotNull(component.
|
956
|
+
assert.isNotNull(component.contentElement);
|
954
957
|
|
955
|
-
const renderedGroupNames = component.
|
958
|
+
const renderedGroupNames = component.contentElement.querySelectorAll(GROUP_NAME_SELECTOR);
|
956
959
|
assertElements(renderedGroupNames, HTMLSpanElement);
|
957
960
|
|
958
961
|
const expectedNames = data.groups.flatMap(group => group.name);
|
@@ -965,9 +968,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
965
968
|
|
966
969
|
it('renders the breakpoints with their checkboxes', async () => {
|
967
970
|
const {component, data} = await renderMultipleBreakpoints();
|
968
|
-
assert.isNotNull(component.
|
971
|
+
assert.isNotNull(component.contentElement);
|
969
972
|
|
970
|
-
const renderedBreakpointItems = Array.from(component.
|
973
|
+
const renderedBreakpointItems = Array.from(component.contentElement.querySelectorAll(BREAKPOINT_ITEM_SELECTOR));
|
971
974
|
|
972
975
|
const breakpointItems = extractBreakpointItems(data);
|
973
976
|
assert.lengthOf(renderedBreakpointItems, breakpointItems.length);
|
@@ -984,9 +987,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
984
987
|
|
985
988
|
it('renders breakpoints with their code snippet', async () => {
|
986
989
|
const {component, data} = await renderMultipleBreakpoints();
|
987
|
-
assert.isNotNull(component.
|
990
|
+
assert.isNotNull(component.contentElement);
|
988
991
|
|
989
|
-
const renderedBreakpointItems = Array.from(component.
|
992
|
+
const renderedBreakpointItems = Array.from(component.contentElement.querySelectorAll(BREAKPOINT_ITEM_SELECTOR));
|
990
993
|
|
991
994
|
const breakpointItems = extractBreakpointItems(data);
|
992
995
|
assert.lengthOf(renderedBreakpointItems, breakpointItems.length);
|
@@ -1013,7 +1016,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1013
1016
|
location: '234',
|
1014
1017
|
codeSnippet: 'const a = x;',
|
1015
1018
|
isHit: false,
|
1016
|
-
status:
|
1019
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
1017
1020
|
},
|
1018
1021
|
],
|
1019
1022
|
};
|
@@ -1025,7 +1028,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1025
1028
|
const group2 = {...groupTemplate};
|
1026
1029
|
group2.url = urlString`https://google.com/src/index.js`;
|
1027
1030
|
|
1028
|
-
const data:
|
1031
|
+
const data: Sources.BreakpointsView.BreakpointsViewData = {
|
1029
1032
|
breakpointsActive: true,
|
1030
1033
|
pauseOnUncaughtExceptions: false,
|
1031
1034
|
pauseOnCaughtExceptions: false,
|
@@ -1036,9 +1039,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1036
1039
|
};
|
1037
1040
|
component.data = data;
|
1038
1041
|
await RenderCoordinator.done();
|
1042
|
+
await component.updateComplete;
|
1039
1043
|
|
1040
|
-
assert.isNotNull(component.
|
1041
|
-
const groupSummaries = Array.from(component.
|
1044
|
+
assert.isNotNull(component.contentElement);
|
1045
|
+
const groupSummaries = Array.from(component.contentElement.querySelectorAll(SUMMARY_SELECTOR));
|
1042
1046
|
const differentiatingPath = groupSummaries.map(group => {
|
1043
1047
|
const differentiatorElement = group.querySelector(GROUP_DIFFERENTIATOR_SELECTOR);
|
1044
1048
|
assert.instanceOf(differentiatorElement, HTMLSpanElement);
|
@@ -1049,9 +1053,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1049
1053
|
|
1050
1054
|
it('renders breakpoints with a differentiating path', async () => {
|
1051
1055
|
const {component, data} = await renderMultipleBreakpoints();
|
1052
|
-
assert.isNotNull(component.
|
1056
|
+
assert.isNotNull(component.contentElement);
|
1053
1057
|
|
1054
|
-
const renderedBreakpointItems = Array.from(component.
|
1058
|
+
const renderedBreakpointItems = Array.from(component.contentElement.querySelectorAll(BREAKPOINT_ITEM_SELECTOR));
|
1055
1059
|
|
1056
1060
|
const breakpointItems = extractBreakpointItems(data);
|
1057
1061
|
assert.lengthOf(renderedBreakpointItems, breakpointItems.length);
|
@@ -1072,16 +1076,16 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1072
1076
|
|
1073
1077
|
it('triggers an event on clicking the checkbox of a breakpoint', async () => {
|
1074
1078
|
const {component, data} = await renderSingleBreakpoint();
|
1075
|
-
assert.isNotNull(component.
|
1079
|
+
assert.isNotNull(component.contentElement);
|
1076
1080
|
|
1077
|
-
const renderedItem = component.
|
1081
|
+
const renderedItem = component.contentElement.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
1078
1082
|
assert.instanceOf(renderedItem, HTMLDivElement);
|
1079
1083
|
|
1080
1084
|
const checkbox = renderedItem.querySelector('input');
|
1081
1085
|
assert.instanceOf(checkbox, HTMLInputElement);
|
1082
1086
|
const checked = checkbox.checked;
|
1083
1087
|
|
1084
|
-
const controller =
|
1088
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1085
1089
|
const breakpointStateChanged = sinon.stub(controller, 'breakpointStateChanged');
|
1086
1090
|
checkbox.click();
|
1087
1091
|
|
@@ -1090,12 +1094,12 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1090
1094
|
|
1091
1095
|
it('triggers an event on clicking on the snippet text', async () => {
|
1092
1096
|
const {component, data} = await renderSingleBreakpoint();
|
1093
|
-
assert.isNotNull(component.
|
1097
|
+
assert.isNotNull(component.contentElement);
|
1094
1098
|
|
1095
|
-
const snippet = component.
|
1099
|
+
const snippet = component.contentElement.querySelector(CODE_SNIPPET_SELECTOR);
|
1096
1100
|
assert.instanceOf(snippet, HTMLSpanElement);
|
1097
1101
|
|
1098
|
-
const controller =
|
1102
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1099
1103
|
const jumpToSource = sinon.stub(controller, 'jumpToSource');
|
1100
1104
|
snippet.click();
|
1101
1105
|
|
@@ -1104,14 +1108,14 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1104
1108
|
|
1105
1109
|
it('triggers an event on expanding/unexpanding', async () => {
|
1106
1110
|
const {component, data} = await renderSingleBreakpoint();
|
1107
|
-
assert.isNotNull(component.
|
1111
|
+
assert.isNotNull(component.contentElement);
|
1108
1112
|
|
1109
|
-
const renderedGroupName = component.
|
1113
|
+
const renderedGroupName = component.contentElement.querySelector(GROUP_NAME_SELECTOR);
|
1110
1114
|
assert.instanceOf(renderedGroupName, HTMLSpanElement);
|
1111
1115
|
|
1112
1116
|
const expandedInitialValue = data.groups[0].expanded;
|
1113
1117
|
|
1114
|
-
const controller =
|
1118
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1115
1119
|
const expandedStateChanged = sinon.stub(controller, 'expandedStateChanged');
|
1116
1120
|
renderedGroupName.click();
|
1117
1121
|
|
@@ -1123,22 +1127,22 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1123
1127
|
|
1124
1128
|
it('highlights breakpoint if it is set to be hit', async () => {
|
1125
1129
|
const {component} = await renderSingleBreakpoint();
|
1126
|
-
assert.isNotNull(component.
|
1130
|
+
assert.isNotNull(component.contentElement);
|
1127
1131
|
|
1128
|
-
const renderedBreakpointItem = component.
|
1132
|
+
const renderedBreakpointItem = component.contentElement.querySelector(HIT_BREAKPOINT_SELECTOR);
|
1129
1133
|
assert.instanceOf(renderedBreakpointItem, HTMLDivElement);
|
1130
1134
|
});
|
1131
1135
|
|
1132
1136
|
it('triggers an event on removing file breakpoints', async () => {
|
1133
1137
|
const {component, data} = await renderMultipleBreakpoints();
|
1134
|
-
assert.isNotNull(component.
|
1138
|
+
assert.isNotNull(component.contentElement);
|
1135
1139
|
|
1136
1140
|
await hover(component, SUMMARY_SELECTOR);
|
1137
1141
|
|
1138
|
-
const removeFileBreakpointsButton = component.
|
1142
|
+
const removeFileBreakpointsButton = component.contentElement.querySelector(REMOVE_FILE_BREAKPOINTS_SELECTOR);
|
1139
1143
|
assert.instanceOf(removeFileBreakpointsButton, HTMLButtonElement);
|
1140
1144
|
|
1141
|
-
const controller =
|
1145
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1142
1146
|
const breakpointsRemoved = sinon.stub(controller, 'breakpointsRemoved');
|
1143
1147
|
removeFileBreakpointsButton.click();
|
1144
1148
|
// await new Promise(resolve => setTimeout(resolve, 0));
|
@@ -1147,14 +1151,14 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1147
1151
|
|
1148
1152
|
it('triggers an event on removing one breakpoint', async () => {
|
1149
1153
|
const {component, data} = await renderMultipleBreakpoints();
|
1150
|
-
assert.isNotNull(component.
|
1154
|
+
assert.isNotNull(component.contentElement);
|
1151
1155
|
|
1152
1156
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1153
1157
|
|
1154
|
-
const removeFileBreakpointsButton = component.
|
1158
|
+
const removeFileBreakpointsButton = component.contentElement.querySelector(REMOVE_SINGLE_BREAKPOINT_SELECTOR);
|
1155
1159
|
assert.instanceOf(removeFileBreakpointsButton, HTMLButtonElement);
|
1156
1160
|
|
1157
|
-
const controller =
|
1161
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1158
1162
|
const breakpointsRemoved = sinon.stub(controller, 'breakpointsRemoved');
|
1159
1163
|
removeFileBreakpointsButton.click();
|
1160
1164
|
// await new Promise(resolve => setTimeout(resolve, 0));
|
@@ -1164,14 +1168,14 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1164
1168
|
|
1165
1169
|
it('triggers an event on editing one breakpoint', async () => {
|
1166
1170
|
const {component, data} = await renderMultipleBreakpoints();
|
1167
|
-
assert.isNotNull(component.
|
1171
|
+
assert.isNotNull(component.contentElement);
|
1168
1172
|
|
1169
1173
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1170
1174
|
|
1171
|
-
const editBreakpointButton = component.
|
1175
|
+
const editBreakpointButton = component.contentElement.querySelector(EDIT_SINGLE_BREAKPOINT_SELECTOR);
|
1172
1176
|
assert.instanceOf(editBreakpointButton, HTMLButtonElement);
|
1173
1177
|
|
1174
|
-
const controller =
|
1178
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1175
1179
|
const breakpointEdited = sinon.stub(controller, 'breakpointEdited');
|
1176
1180
|
editBreakpointButton.click();
|
1177
1181
|
// await new Promise(resolve => setTimeout(resolve, 0));
|
@@ -1180,11 +1184,11 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1180
1184
|
|
1181
1185
|
it('shows a tooltip with edit condition on regular breakpoints', async () => {
|
1182
1186
|
const {component} = await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.REGULAR_BREAKPOINT);
|
1183
|
-
assert.isNotNull(component.
|
1187
|
+
assert.isNotNull(component.contentElement);
|
1184
1188
|
|
1185
1189
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1186
1190
|
|
1187
|
-
const editBreakpointButton = component.
|
1191
|
+
const editBreakpointButton = component.contentElement.querySelector(EDIT_SINGLE_BREAKPOINT_SELECTOR);
|
1188
1192
|
assert.instanceOf(editBreakpointButton, HTMLButtonElement);
|
1189
1193
|
|
1190
1194
|
assert.strictEqual(editBreakpointButton.title, 'Edit condition');
|
@@ -1194,7 +1198,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1194
1198
|
async function waitForCheckboxToggledEventsWithCheckedUpdate(numBreakpointItems: number, checked: boolean) {
|
1195
1199
|
return await new Promise<void>(resolve => {
|
1196
1200
|
let numCheckboxToggledEvents = 0;
|
1197
|
-
const controller =
|
1201
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1198
1202
|
sinon.stub(controller, 'breakpointStateChanged').callsFake((_, checkedArg) => {
|
1199
1203
|
assert.strictEqual(checkedArg, checked);
|
1200
1204
|
++numCheckboxToggledEvents;
|
@@ -1208,14 +1212,15 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1208
1212
|
const {component, data} = await renderMultipleBreakpoints();
|
1209
1213
|
|
1210
1214
|
// Make sure that at least one breakpoint is enabled.
|
1211
|
-
data.groups[0].breakpointItems[0].status =
|
1215
|
+
data.groups[0].breakpointItems[0].status = Sources.BreakpointsView.BreakpointStatus.ENABLED;
|
1212
1216
|
component.data = data;
|
1213
1217
|
await RenderCoordinator.done();
|
1218
|
+
await component.updateComplete;
|
1214
1219
|
|
1215
1220
|
await hover(component, SUMMARY_SELECTOR);
|
1216
1221
|
|
1217
|
-
assert.isNotNull(component.
|
1218
|
-
const firstGroupSummary = component.
|
1222
|
+
assert.isNotNull(component.contentElement);
|
1223
|
+
const firstGroupSummary = component.contentElement.querySelector(SUMMARY_SELECTOR);
|
1219
1224
|
assert.exists(firstGroupSummary);
|
1220
1225
|
const groupCheckbox = firstGroupSummary.querySelector('input');
|
1221
1226
|
assert.instanceOf(groupCheckbox, HTMLInputElement);
|
@@ -1229,16 +1234,17 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1229
1234
|
// Make sure that all breakpoints are disabled.
|
1230
1235
|
const breakpointItems = data.groups[0].breakpointItems;
|
1231
1236
|
for (let i = 0; i < breakpointItems.length; ++i) {
|
1232
|
-
breakpointItems[i].status =
|
1237
|
+
breakpointItems[i].status = Sources.BreakpointsView.BreakpointStatus.DISABLED;
|
1233
1238
|
}
|
1234
1239
|
|
1235
1240
|
component.data = data;
|
1236
1241
|
await RenderCoordinator.done();
|
1242
|
+
await component.updateComplete;
|
1237
1243
|
|
1238
1244
|
await hover(component, SUMMARY_SELECTOR);
|
1239
1245
|
|
1240
|
-
assert.isNotNull(component.
|
1241
|
-
const firstGroupSummary = component.
|
1246
|
+
assert.isNotNull(component.contentElement);
|
1247
|
+
const firstGroupSummary = component.contentElement.querySelector(SUMMARY_SELECTOR);
|
1242
1248
|
assert.exists(firstGroupSummary);
|
1243
1249
|
const groupCheckbox = firstGroupSummary.querySelector('input');
|
1244
1250
|
assert.instanceOf(groupCheckbox, HTMLInputElement);
|
@@ -1254,16 +1260,17 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1254
1260
|
|
1255
1261
|
// Make sure that all breakpoints are enabled.
|
1256
1262
|
for (let i = 0; i < numBreakpointItems; ++i) {
|
1257
|
-
data.groups[0].breakpointItems[i].status =
|
1263
|
+
data.groups[0].breakpointItems[i].status = Sources.BreakpointsView.BreakpointStatus.ENABLED;
|
1258
1264
|
}
|
1259
1265
|
component.data = data;
|
1260
1266
|
await RenderCoordinator.done();
|
1267
|
+
await component.updateComplete;
|
1261
1268
|
|
1262
1269
|
await hover(component, SUMMARY_SELECTOR);
|
1263
1270
|
|
1264
1271
|
// Uncheck the group checkbox.
|
1265
|
-
assert.isNotNull(component.
|
1266
|
-
const firstGroupSummary = component.
|
1272
|
+
assert.isNotNull(component.contentElement);
|
1273
|
+
const firstGroupSummary = component.contentElement.querySelector(SUMMARY_SELECTOR);
|
1267
1274
|
assert.exists(firstGroupSummary);
|
1268
1275
|
const groupCheckbox = firstGroupSummary.querySelector('input');
|
1269
1276
|
assert.instanceOf(groupCheckbox, HTMLInputElement);
|
@@ -1283,16 +1290,17 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1283
1290
|
|
1284
1291
|
// Make sure that all breakpoints are disabled.
|
1285
1292
|
for (let i = 0; i < numBreakpointItems; ++i) {
|
1286
|
-
data.groups[0].breakpointItems[i].status =
|
1293
|
+
data.groups[0].breakpointItems[i].status = Sources.BreakpointsView.BreakpointStatus.DISABLED;
|
1287
1294
|
}
|
1288
1295
|
component.data = data;
|
1289
1296
|
await RenderCoordinator.done();
|
1297
|
+
await component.updateComplete;
|
1290
1298
|
|
1291
1299
|
await hover(component, SUMMARY_SELECTOR);
|
1292
1300
|
|
1293
1301
|
// Uncheck the group checkbox.
|
1294
|
-
assert.isNotNull(component.
|
1295
|
-
const firstGroupSummary = component.
|
1302
|
+
assert.isNotNull(component.contentElement);
|
1303
|
+
const firstGroupSummary = component.contentElement.querySelector(SUMMARY_SELECTOR);
|
1296
1304
|
assert.exists(firstGroupSummary);
|
1297
1305
|
const groupCheckbox = firstGroupSummary.querySelector('input');
|
1298
1306
|
assert.instanceOf(groupCheckbox, HTMLInputElement);
|
@@ -1308,7 +1316,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1308
1316
|
it('only renders edit button for breakpoints in editable groups', async () => {
|
1309
1317
|
const component = await createAndInitializeBreakpointsView();
|
1310
1318
|
|
1311
|
-
const data:
|
1319
|
+
const data: Sources.BreakpointsView.BreakpointsViewData = {
|
1312
1320
|
breakpointsActive: true,
|
1313
1321
|
pauseOnUncaughtExceptions: false,
|
1314
1322
|
pauseOnCaughtExceptions: false,
|
@@ -1324,7 +1332,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1324
1332
|
location: '1',
|
1325
1333
|
codeSnippet: 'const a = 0;',
|
1326
1334
|
isHit: true,
|
1327
|
-
status:
|
1335
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
1328
1336
|
type: SDK.DebuggerModel.BreakpointType.REGULAR_BREAKPOINT,
|
1329
1337
|
},
|
1330
1338
|
],
|
@@ -1334,18 +1342,18 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1334
1342
|
|
1335
1343
|
component.data = data;
|
1336
1344
|
await RenderCoordinator.done();
|
1337
|
-
assert.isNotNull(component.
|
1345
|
+
assert.isNotNull(component.contentElement);
|
1338
1346
|
|
1339
1347
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1340
1348
|
|
1341
|
-
const editBreakpointButton = component.
|
1349
|
+
const editBreakpointButton = component.contentElement.querySelector(EDIT_SINGLE_BREAKPOINT_SELECTOR);
|
1342
1350
|
assert.isNull(editBreakpointButton);
|
1343
1351
|
});
|
1344
1352
|
|
1345
1353
|
it('initializes data from the controller on construction', async () => {
|
1346
1354
|
await setUpTestWithOneBreakpointLocation();
|
1347
1355
|
const component = await createAndInitializeBreakpointsView();
|
1348
|
-
const renderedGroupName = component.
|
1356
|
+
const renderedGroupName = component.contentElement?.querySelector(GROUP_NAME_SELECTOR);
|
1349
1357
|
assert.strictEqual(renderedGroupName?.textContent, HELLO_JS_FILE);
|
1350
1358
|
});
|
1351
1359
|
|
@@ -1355,7 +1363,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1355
1363
|
it('are rendered', async () => {
|
1356
1364
|
const {component} =
|
1357
1365
|
await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.CONDITIONAL_BREAKPOINT, breakpointDetails);
|
1358
|
-
const breakpointItem = component.
|
1366
|
+
const breakpointItem = component.contentElement?.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
1359
1367
|
assert.exists(breakpointItem);
|
1360
1368
|
assert.instanceOf(breakpointItem, HTMLDivElement);
|
1361
1369
|
assert.isTrue(breakpointItem.classList.contains('conditional-breakpoint'));
|
@@ -1364,7 +1372,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1364
1372
|
it('show a tooltip', async () => {
|
1365
1373
|
const {component} =
|
1366
1374
|
await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.CONDITIONAL_BREAKPOINT, breakpointDetails);
|
1367
|
-
const codeSnippet = component.
|
1375
|
+
const codeSnippet = component.contentElement?.querySelector(CODE_SNIPPET_SELECTOR);
|
1368
1376
|
assert.exists(codeSnippet);
|
1369
1377
|
assert.instanceOf(codeSnippet, HTMLSpanElement);
|
1370
1378
|
assert.strictEqual(codeSnippet.title, `Condition: ${breakpointDetails}`);
|
@@ -1373,11 +1381,11 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1373
1381
|
it('show a tooltip on editing the condition', async () => {
|
1374
1382
|
const {component} =
|
1375
1383
|
await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.CONDITIONAL_BREAKPOINT, breakpointDetails);
|
1376
|
-
assert.isNotNull(component.
|
1384
|
+
assert.isNotNull(component.contentElement);
|
1377
1385
|
|
1378
1386
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1379
1387
|
|
1380
|
-
const editBreakpointButton = component.
|
1388
|
+
const editBreakpointButton = component.contentElement.querySelector(EDIT_SINGLE_BREAKPOINT_SELECTOR);
|
1381
1389
|
assert.instanceOf(editBreakpointButton, HTMLButtonElement);
|
1382
1390
|
|
1383
1391
|
assert.strictEqual(editBreakpointButton.title, 'Edit condition');
|
@@ -1389,7 +1397,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1389
1397
|
|
1390
1398
|
it('are rendered', async () => {
|
1391
1399
|
const {component} = await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.LOGPOINT, breakpointDetails);
|
1392
|
-
const breakpointItem = component.
|
1400
|
+
const breakpointItem = component.contentElement?.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
1393
1401
|
assert.exists(breakpointItem);
|
1394
1402
|
assert.instanceOf(breakpointItem, HTMLDivElement);
|
1395
1403
|
assert.isTrue(breakpointItem.classList.contains('logpoint'));
|
@@ -1397,7 +1405,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1397
1405
|
|
1398
1406
|
it('show a tooltip', async () => {
|
1399
1407
|
const {component} = await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.LOGPOINT, breakpointDetails);
|
1400
|
-
const codeSnippet = component.
|
1408
|
+
const codeSnippet = component.contentElement?.querySelector(CODE_SNIPPET_SELECTOR);
|
1401
1409
|
assert.exists(codeSnippet);
|
1402
1410
|
assert.instanceOf(codeSnippet, HTMLSpanElement);
|
1403
1411
|
assert.strictEqual(codeSnippet.title, `Logpoint: ${breakpointDetails}`);
|
@@ -1405,11 +1413,11 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1405
1413
|
|
1406
1414
|
it('show a tooltip on editing the logpoint', async () => {
|
1407
1415
|
const {component} = await renderSingleBreakpoint(SDK.DebuggerModel.BreakpointType.LOGPOINT, breakpointDetails);
|
1408
|
-
assert.isNotNull(component.
|
1416
|
+
assert.isNotNull(component.contentElement);
|
1409
1417
|
|
1410
1418
|
await hover(component, BREAKPOINT_ITEM_SELECTOR);
|
1411
1419
|
|
1412
|
-
const editBreakpointButton = component.
|
1420
|
+
const editBreakpointButton = component.contentElement.querySelector(EDIT_SINGLE_BREAKPOINT_SELECTOR);
|
1413
1421
|
assert.instanceOf(editBreakpointButton, HTMLButtonElement);
|
1414
1422
|
|
1415
1423
|
assert.strictEqual(editBreakpointButton.title, 'Edit logpoint');
|
@@ -1419,16 +1427,17 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1419
1427
|
describe('pause on exceptions', () => {
|
1420
1428
|
it('state is rendered correctly when disabled', async () => {
|
1421
1429
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: false, pauseOnCaughtExceptions: false});
|
1422
|
-
assert.isNotNull(component.
|
1430
|
+
assert.isNotNull(component.contentElement);
|
1423
1431
|
|
1424
|
-
const pauseOnUncaughtExceptionsItem =
|
1432
|
+
const pauseOnUncaughtExceptionsItem =
|
1433
|
+
component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1425
1434
|
assert.exists(pauseOnUncaughtExceptionsItem);
|
1426
1435
|
|
1427
1436
|
const pauseOnUncaughtExceptionsCheckbox = pauseOnUncaughtExceptionsItem.querySelector('input');
|
1428
1437
|
assert.instanceOf(pauseOnUncaughtExceptionsCheckbox, HTMLInputElement);
|
1429
1438
|
assert.isFalse(pauseOnUncaughtExceptionsCheckbox.checked);
|
1430
1439
|
|
1431
|
-
const pauseOnCaughtExceptionsItem = component.
|
1440
|
+
const pauseOnCaughtExceptionsItem = component.contentElement?.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1432
1441
|
assert.exists(pauseOnCaughtExceptionsItem);
|
1433
1442
|
|
1434
1443
|
const pauseOnCaughtExceptionsCheckbox = pauseOnUncaughtExceptionsItem.querySelector('input');
|
@@ -1438,9 +1447,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1438
1447
|
|
1439
1448
|
it('state is rendered correctly when pausing on uncaught exceptions', async () => {
|
1440
1449
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: true, pauseOnCaughtExceptions: false});
|
1441
|
-
assert.isNotNull(component.
|
1450
|
+
assert.isNotNull(component.contentElement);
|
1442
1451
|
|
1443
|
-
const pauseOnUncaughtExceptionsItem =
|
1452
|
+
const pauseOnUncaughtExceptionsItem =
|
1453
|
+
component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1444
1454
|
assert.exists(pauseOnUncaughtExceptionsItem);
|
1445
1455
|
|
1446
1456
|
const pauseOnUncaughtExceptionsCheckbox = pauseOnUncaughtExceptionsItem.querySelector('input');
|
@@ -1448,7 +1458,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1448
1458
|
assert.instanceOf(pauseOnUncaughtExceptionsCheckbox, HTMLInputElement);
|
1449
1459
|
assert.isTrue(pauseOnUncaughtExceptionsCheckbox.checked);
|
1450
1460
|
|
1451
|
-
const pauseOnCaughtExceptionsItem = component.
|
1461
|
+
const pauseOnCaughtExceptionsItem = component.contentElement?.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1452
1462
|
assert.exists(pauseOnCaughtExceptionsItem);
|
1453
1463
|
|
1454
1464
|
const pauseOnCaughtExceptionsCheckbox = pauseOnCaughtExceptionsItem.querySelector('input');
|
@@ -1459,9 +1469,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1459
1469
|
|
1460
1470
|
it('state is rendered correctly when pausing on all exceptions', async () => {
|
1461
1471
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: true, pauseOnCaughtExceptions: true});
|
1462
|
-
assert.isNotNull(component.
|
1472
|
+
assert.isNotNull(component.contentElement);
|
1463
1473
|
|
1464
|
-
const pauseOnUncaughtExceptionsItem =
|
1474
|
+
const pauseOnUncaughtExceptionsItem =
|
1475
|
+
component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1465
1476
|
assert.exists(pauseOnUncaughtExceptionsItem);
|
1466
1477
|
|
1467
1478
|
const pauseOnUncaughtExceptionsCheckbox = pauseOnUncaughtExceptionsItem.querySelector('input');
|
@@ -1469,7 +1480,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1469
1480
|
assert.instanceOf(pauseOnUncaughtExceptionsCheckbox, HTMLInputElement);
|
1470
1481
|
assert.isTrue(pauseOnUncaughtExceptionsCheckbox.checked);
|
1471
1482
|
|
1472
|
-
const pauseOnCaughtExceptionsItem = component.
|
1483
|
+
const pauseOnCaughtExceptionsItem = component.contentElement?.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1473
1484
|
assert.exists(pauseOnCaughtExceptionsItem);
|
1474
1485
|
|
1475
1486
|
const pauseOnCaughtExceptionsCheckbox = pauseOnCaughtExceptionsItem.querySelector('input');
|
@@ -1480,16 +1491,16 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1480
1491
|
|
1481
1492
|
it('triggers an event when disabling pausing on all exceptions', async () => {
|
1482
1493
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: true, pauseOnCaughtExceptions: false});
|
1483
|
-
assert.isNotNull(component.
|
1494
|
+
assert.isNotNull(component.contentElement);
|
1484
1495
|
|
1485
|
-
const item = component.
|
1496
|
+
const item = component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1486
1497
|
assert.exists(item);
|
1487
1498
|
|
1488
1499
|
const checkbox = item.querySelector('input');
|
1489
1500
|
assert.instanceOf(checkbox, HTMLInputElement);
|
1490
1501
|
const {checked} = checkbox;
|
1491
1502
|
|
1492
|
-
const controller =
|
1503
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1493
1504
|
const setPauseOnUncaughtExceptions = sinon.stub(controller, 'setPauseOnUncaughtExceptions');
|
1494
1505
|
|
1495
1506
|
checkbox.click();
|
@@ -1499,16 +1510,16 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1499
1510
|
|
1500
1511
|
it('triggers an event when enabling pausing on caught exceptions', async () => {
|
1501
1512
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: true, pauseOnCaughtExceptions: false});
|
1502
|
-
assert.isNotNull(component.
|
1513
|
+
assert.isNotNull(component.contentElement);
|
1503
1514
|
|
1504
|
-
const item = component.
|
1515
|
+
const item = component.contentElement.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1505
1516
|
assert.exists(item);
|
1506
1517
|
|
1507
1518
|
const checkbox = item.querySelector('input');
|
1508
1519
|
assert.instanceOf(checkbox, HTMLInputElement);
|
1509
1520
|
const {checked} = checkbox;
|
1510
1521
|
|
1511
|
-
const controller =
|
1522
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1512
1523
|
const setPauseOnCaughtExceptions = sinon.stub(controller, 'setPauseOnCaughtExceptions');
|
1513
1524
|
|
1514
1525
|
checkbox.click();
|
@@ -1518,16 +1529,16 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1518
1529
|
|
1519
1530
|
it('triggers an event when enabling pausing on uncaught exceptions', async () => {
|
1520
1531
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: false, pauseOnCaughtExceptions: true});
|
1521
|
-
assert.isNotNull(component.
|
1532
|
+
assert.isNotNull(component.contentElement);
|
1522
1533
|
|
1523
|
-
const item = component.
|
1534
|
+
const item = component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1524
1535
|
assert.exists(item);
|
1525
1536
|
|
1526
1537
|
const checkbox = item.querySelector('input');
|
1527
1538
|
assert.instanceOf(checkbox, HTMLInputElement);
|
1528
1539
|
const {checked} = checkbox;
|
1529
1540
|
|
1530
|
-
const controller =
|
1541
|
+
const controller = Sources.BreakpointsView.BreakpointsSidebarController.instance();
|
1531
1542
|
const setPauseOnUncaughtExceptions = sinon.stub(controller, 'setPauseOnUncaughtExceptions');
|
1532
1543
|
|
1533
1544
|
checkbox.click();
|
@@ -1539,12 +1550,12 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1539
1550
|
describe('navigating with keyboard', () => {
|
1540
1551
|
// One expanded group with 2 breakpoints, and one collapsed with 2 breakpoints.
|
1541
1552
|
async function renderBreakpointsForKeyboardNavigation(): Promise<{
|
1542
|
-
component:
|
1543
|
-
data:
|
1553
|
+
component: Sources.BreakpointsView.BreakpointsView,
|
1554
|
+
data: Sources.BreakpointsView.BreakpointsViewData,
|
1544
1555
|
}> {
|
1545
1556
|
const component = await createAndInitializeBreakpointsView();
|
1546
1557
|
|
1547
|
-
const data:
|
1558
|
+
const data: Sources.BreakpointsView.BreakpointsViewData = {
|
1548
1559
|
breakpointsActive: true,
|
1549
1560
|
pauseOnUncaughtExceptions: false,
|
1550
1561
|
pauseOnCaughtExceptions: false,
|
@@ -1561,7 +1572,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1561
1572
|
location: '234',
|
1562
1573
|
codeSnippet: 'const a = x;',
|
1563
1574
|
isHit: false,
|
1564
|
-
status:
|
1575
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
1565
1576
|
},
|
1566
1577
|
{
|
1567
1578
|
id: '2',
|
@@ -1569,7 +1580,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1569
1580
|
location: '3:3',
|
1570
1581
|
codeSnippet: 'if (x > a) {',
|
1571
1582
|
isHit: true,
|
1572
|
-
status:
|
1583
|
+
status: Sources.BreakpointsView.BreakpointStatus.DISABLED,
|
1573
1584
|
},
|
1574
1585
|
],
|
1575
1586
|
},
|
@@ -1585,7 +1596,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1585
1596
|
location: '11',
|
1586
1597
|
codeSnippet: 'const y;',
|
1587
1598
|
isHit: false,
|
1588
|
-
status:
|
1599
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
1589
1600
|
},
|
1590
1601
|
{
|
1591
1602
|
id: '4',
|
@@ -1593,7 +1604,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1593
1604
|
location: '12',
|
1594
1605
|
codeSnippet: 'const y;',
|
1595
1606
|
isHit: false,
|
1596
|
-
status:
|
1607
|
+
status: Sources.BreakpointsView.BreakpointStatus.ENABLED,
|
1597
1608
|
},
|
1598
1609
|
],
|
1599
1610
|
},
|
@@ -1601,26 +1612,27 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1601
1612
|
};
|
1602
1613
|
component.data = data;
|
1603
1614
|
await RenderCoordinator.done();
|
1615
|
+
await component.updateComplete;
|
1604
1616
|
return {component, data};
|
1605
1617
|
}
|
1606
1618
|
|
1607
1619
|
it('pause on exceptions is tabbable', async () => {
|
1608
1620
|
const component = await renderNoBreakpoints({pauseOnUncaughtExceptions: true, pauseOnCaughtExceptions: false});
|
1609
|
-
assert.isNotNull(component.
|
1621
|
+
assert.isNotNull(component.contentElement);
|
1610
1622
|
|
1611
|
-
const focusableElements = component.
|
1623
|
+
const focusableElements = component.contentElement.querySelectorAll(TABBABLE_SELECTOR);
|
1612
1624
|
assert.lengthOf(focusableElements, 1);
|
1613
1625
|
|
1614
|
-
const pauseOnUncaughtExceptions = component.
|
1626
|
+
const pauseOnUncaughtExceptions = component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1615
1627
|
assert.deepEqual(focusableElements[0], pauseOnUncaughtExceptions);
|
1616
1628
|
});
|
1617
1629
|
|
1618
1630
|
describe('pressing the HOME key', () => {
|
1619
1631
|
it('takes the user to the pause-on-exceptions line', async () => {
|
1620
1632
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1621
|
-
assert.isNotNull(component.
|
1633
|
+
assert.isNotNull(component.contentElement);
|
1622
1634
|
const secondGroupsSummary =
|
1623
|
-
component.
|
1635
|
+
component.contentElement.querySelector(`${DETAILS_SELECTOR}:nth-of-type(2) > ${SUMMARY_SELECTOR}`);
|
1624
1636
|
assert.instanceOf(secondGroupsSummary, HTMLElement);
|
1625
1637
|
|
1626
1638
|
// Focus on second group by clicking on it, then press Home button.
|
@@ -1628,9 +1640,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1628
1640
|
dispatchKeyDownEvent(secondGroupsSummary, {key: 'Home', bubbles: true});
|
1629
1641
|
await RenderCoordinator.done();
|
1630
1642
|
|
1631
|
-
const selected = component.
|
1643
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1632
1644
|
assert.instanceOf(selected, HTMLElement);
|
1633
|
-
const pauseOnUncaughtExceptions = component.
|
1645
|
+
const pauseOnUncaughtExceptions = component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1634
1646
|
assert.instanceOf(pauseOnUncaughtExceptions, HTMLElement);
|
1635
1647
|
assert.strictEqual(selected, pauseOnUncaughtExceptions);
|
1636
1648
|
});
|
@@ -1639,8 +1651,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1639
1651
|
describe('pressing the END key', () => {
|
1640
1652
|
it('takes the user to the summary node of the last group (if last group is collapsed)', async () => {
|
1641
1653
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1642
|
-
assert.isNotNull(component.
|
1643
|
-
const pauseOnUncaughtExceptions = component.
|
1654
|
+
assert.isNotNull(component.contentElement);
|
1655
|
+
const pauseOnUncaughtExceptions = component.contentElement.querySelector(PAUSE_ON_UNCAUGHT_EXCEPTIONS_SELECTOR);
|
1644
1656
|
assert.instanceOf(pauseOnUncaughtExceptions, HTMLElement);
|
1645
1657
|
|
1646
1658
|
// Focus on the pause-on-exceptions line by clicking on it, then press End key.
|
@@ -1648,11 +1660,11 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1648
1660
|
dispatchKeyDownEvent(pauseOnUncaughtExceptions, {key: 'End', bubbles: true});
|
1649
1661
|
await RenderCoordinator.done();
|
1650
1662
|
|
1651
|
-
const selected = component.
|
1663
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1652
1664
|
assert.instanceOf(selected, HTMLElement);
|
1653
1665
|
|
1654
1666
|
const lastGroupSummary =
|
1655
|
-
component.
|
1667
|
+
component.contentElement.querySelector(`${DETAILS_SELECTOR}:nth-of-type(2) > ${SUMMARY_SELECTOR}`);
|
1656
1668
|
assert.instanceOf(lastGroupSummary, HTMLElement);
|
1657
1669
|
assert.strictEqual(selected, lastGroupSummary);
|
1658
1670
|
});
|
@@ -1664,8 +1676,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1664
1676
|
component.data = data;
|
1665
1677
|
await RenderCoordinator.done();
|
1666
1678
|
|
1667
|
-
assert.isNotNull(component.
|
1668
|
-
const firstGroupSummary = component.
|
1679
|
+
assert.isNotNull(component.contentElement);
|
1680
|
+
const firstGroupSummary = component.contentElement.querySelector(SUMMARY_SELECTOR);
|
1669
1681
|
assert.instanceOf(firstGroupSummary, HTMLElement);
|
1670
1682
|
|
1671
1683
|
// First focus on the first group by clicking on it, then press the End button.
|
@@ -1673,10 +1685,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1673
1685
|
dispatchKeyDownEvent(firstGroupSummary, {key: 'End', bubbles: true});
|
1674
1686
|
await RenderCoordinator.done();
|
1675
1687
|
|
1676
|
-
const selected = component.
|
1688
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1677
1689
|
assert.instanceOf(selected, HTMLElement);
|
1678
1690
|
|
1679
|
-
const breakpointItems = component.
|
1691
|
+
const breakpointItems = component.contentElement.querySelectorAll(BREAKPOINT_ITEM_SELECTOR);
|
1680
1692
|
assertElements(breakpointItems, HTMLDivElement);
|
1681
1693
|
|
1682
1694
|
const lastBreakpointItem = breakpointItems.item(breakpointItems.length - 1);
|
@@ -1688,9 +1700,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1688
1700
|
it('on the pause-on-uncaught-exception takes the user to the summary node of the top most details element',
|
1689
1701
|
async () => {
|
1690
1702
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1691
|
-
assert.isNotNull(component.
|
1703
|
+
assert.isNotNull(component.contentElement);
|
1692
1704
|
|
1693
|
-
const pauseOnCaughtException = component.
|
1705
|
+
const pauseOnCaughtException = component.contentElement.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1694
1706
|
assert.instanceOf(pauseOnCaughtException, HTMLElement);
|
1695
1707
|
|
1696
1708
|
// Focus on the pause on exception, and navigate one down.
|
@@ -1698,8 +1710,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1698
1710
|
dispatchKeyDownEvent(pauseOnCaughtException, {key: 'ArrowDown', bubbles: true});
|
1699
1711
|
await RenderCoordinator.done();
|
1700
1712
|
|
1701
|
-
const selected = component.
|
1702
|
-
const firstSummary = component.
|
1713
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1714
|
+
const firstSummary = component.contentElement.querySelector(`${DETAILS_SELECTOR} > ${SUMMARY_SELECTOR}`);
|
1703
1715
|
assert.instanceOf(firstSummary, HTMLElement);
|
1704
1716
|
assert.strictEqual(selected, firstSummary);
|
1705
1717
|
});
|
@@ -1707,8 +1719,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1707
1719
|
it('on the summary node of an expanded group takes the user to the top most breakpoint item of that group',
|
1708
1720
|
async () => {
|
1709
1721
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1710
|
-
assert.isNotNull(component.
|
1711
|
-
const collapsedDetailsElement = component.
|
1722
|
+
assert.isNotNull(component.contentElement);
|
1723
|
+
const collapsedDetailsElement = component.contentElement.querySelector(COLLAPSED_GROUPS_SELECTOR);
|
1712
1724
|
assert.instanceOf(collapsedDetailsElement, HTMLDetailsElement);
|
1713
1725
|
|
1714
1726
|
const collapsedGroupSummary = collapsedDetailsElement.querySelector(SUMMARY_SELECTOR);
|
@@ -1719,7 +1731,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1719
1731
|
dispatchKeyDownEvent(collapsedGroupSummary, {key: 'ArrowDown', bubbles: true});
|
1720
1732
|
await RenderCoordinator.done();
|
1721
1733
|
|
1722
|
-
const selected = component.
|
1734
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1723
1735
|
assert.instanceOf(selected, HTMLElement);
|
1724
1736
|
|
1725
1737
|
const firstBreakpointItem = collapsedDetailsElement.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
@@ -1730,10 +1742,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1730
1742
|
|
1731
1743
|
it('on the summary node of a collapsed group takes the user to the summary node of the next group', async () => {
|
1732
1744
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1733
|
-
assert.isNotNull(component.
|
1745
|
+
assert.isNotNull(component.contentElement);
|
1734
1746
|
|
1735
1747
|
const firstGroupSummary =
|
1736
|
-
component.
|
1748
|
+
component.contentElement.querySelector(`${DETAILS_SELECTOR}:nth-of-type(1) > ${SUMMARY_SELECTOR}`);
|
1737
1749
|
assert.instanceOf(firstGroupSummary, HTMLElement);
|
1738
1750
|
|
1739
1751
|
// Focus on the expanded group and collapse it by clicking on it. Then navigate down.
|
@@ -1741,20 +1753,20 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1741
1753
|
dispatchKeyDownEvent(firstGroupSummary, {key: 'ArrowDown', bubbles: true});
|
1742
1754
|
await RenderCoordinator.done();
|
1743
1755
|
|
1744
|
-
const selected = component.
|
1756
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1745
1757
|
assert.instanceOf(selected, HTMLElement);
|
1746
1758
|
|
1747
1759
|
const secondGroupSummary =
|
1748
|
-
component.
|
1760
|
+
component.contentElement.querySelector(`${DETAILS_SELECTOR}:nth-of-type(2) > ${SUMMARY_SELECTOR}`);
|
1749
1761
|
assert.instanceOf(secondGroupSummary, HTMLElement);
|
1750
1762
|
assert.strictEqual(selected, secondGroupSummary);
|
1751
1763
|
});
|
1752
1764
|
|
1753
1765
|
it('on a breakpoint item takes the user to the next breakpoint item', async () => {
|
1754
1766
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1755
|
-
assert.isNotNull(component.
|
1767
|
+
assert.isNotNull(component.contentElement);
|
1756
1768
|
|
1757
|
-
const firstDetailsElement = component.
|
1769
|
+
const firstDetailsElement = component.contentElement.querySelector('details');
|
1758
1770
|
assert.instanceOf(firstDetailsElement, HTMLDetailsElement);
|
1759
1771
|
const firstBreakpointItem = firstDetailsElement.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
1760
1772
|
assert.instanceOf(firstBreakpointItem, HTMLDivElement);
|
@@ -1764,7 +1776,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1764
1776
|
dispatchKeyDownEvent(firstBreakpointItem, {key: 'ArrowDown', bubbles: true});
|
1765
1777
|
await RenderCoordinator.done();
|
1766
1778
|
|
1767
|
-
const selected = component.
|
1779
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1768
1780
|
assert.instanceOf(selected, HTMLElement);
|
1769
1781
|
|
1770
1782
|
const secondBreakpointItem = firstDetailsElement.querySelector(`${BREAKPOINT_ITEM_SELECTOR}:nth-of-type(2)`);
|
@@ -1777,8 +1789,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1777
1789
|
describe('pressing the ArrowUp key', () => {
|
1778
1790
|
it('on the first summary takes a user to the pause on exceptions', async () => {
|
1779
1791
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1780
|
-
assert.isNotNull(component.
|
1781
|
-
const firstSummary = component.
|
1792
|
+
assert.isNotNull(component.contentElement);
|
1793
|
+
const firstSummary = component.contentElement.querySelector(`${DETAILS_SELECTOR} > ${SUMMARY_SELECTOR}`);
|
1782
1794
|
assert.instanceOf(firstSummary, HTMLElement);
|
1783
1795
|
|
1784
1796
|
// Focus on the summary element.
|
@@ -1786,8 +1798,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1786
1798
|
dispatchKeyDownEvent(firstSummary, {key: 'ArrowUp', bubbles: true});
|
1787
1799
|
await RenderCoordinator.done();
|
1788
1800
|
|
1789
|
-
const selected = component.
|
1790
|
-
const pauseOnUncaughtExceptions = component.
|
1801
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1802
|
+
const pauseOnUncaughtExceptions = component.contentElement.querySelector(PAUSE_ON_CAUGHT_EXCEPTIONS_SELECTOR);
|
1791
1803
|
assert.instanceOf(pauseOnUncaughtExceptions, HTMLDivElement);
|
1792
1804
|
|
1793
1805
|
assert.strictEqual(selected, pauseOnUncaughtExceptions);
|
@@ -1795,8 +1807,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1795
1807
|
|
1796
1808
|
it('on the first breakpoint item in an expanded group takes the user to the summary node', async () => {
|
1797
1809
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1798
|
-
assert.isNotNull(component.
|
1799
|
-
const expandedDetails = component.
|
1810
|
+
assert.isNotNull(component.contentElement);
|
1811
|
+
const expandedDetails = component.contentElement.querySelector(EXPANDED_GROUPS_SELECTOR);
|
1800
1812
|
assert.instanceOf(expandedDetails, HTMLDetailsElement);
|
1801
1813
|
|
1802
1814
|
const firstBreakpointItem = expandedDetails.querySelector(BREAKPOINT_ITEM_SELECTOR);
|
@@ -1807,7 +1819,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1807
1819
|
dispatchKeyDownEvent(firstBreakpointItem, {key: 'ArrowUp', bubbles: true});
|
1808
1820
|
await RenderCoordinator.done();
|
1809
1821
|
|
1810
|
-
const selected = component.
|
1822
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1811
1823
|
assert.instanceOf(selected, HTMLElement);
|
1812
1824
|
|
1813
1825
|
const summary = expandedDetails.querySelector(SUMMARY_SELECTOR);
|
@@ -1818,8 +1830,8 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1818
1830
|
|
1819
1831
|
it('on a breakpoint item in an expanded group takes the user to the previous breakpoint item', async () => {
|
1820
1832
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1821
|
-
assert.isNotNull(component.
|
1822
|
-
const expandedDetails = component.
|
1833
|
+
assert.isNotNull(component.contentElement);
|
1834
|
+
const expandedDetails = component.contentElement.querySelector(EXPANDED_GROUPS_SELECTOR);
|
1823
1835
|
assert.instanceOf(expandedDetails, HTMLDetailsElement);
|
1824
1836
|
|
1825
1837
|
const breakpointItems = expandedDetails.querySelectorAll(BREAKPOINT_ITEM_SELECTOR);
|
@@ -1831,7 +1843,7 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1831
1843
|
dispatchKeyDownEvent(lastBreakpointItem, {key: 'ArrowUp', bubbles: true});
|
1832
1844
|
await RenderCoordinator.done();
|
1833
1845
|
|
1834
|
-
const selected = component.
|
1846
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1835
1847
|
assert.instanceOf(selected, HTMLElement);
|
1836
1848
|
|
1837
1849
|
const nextToLastBreakpointItem = breakpointItems.item(breakpointItems.length - 2);
|
@@ -1841,9 +1853,9 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1841
1853
|
|
1842
1854
|
it('on a summary node takes the user to the last breakpoint item of the previous group', async () => {
|
1843
1855
|
const {component} = await renderBreakpointsForKeyboardNavigation();
|
1844
|
-
assert.isNotNull(component.
|
1856
|
+
assert.isNotNull(component.contentElement);
|
1845
1857
|
const secondGroupSummary =
|
1846
|
-
component.
|
1858
|
+
component.contentElement.querySelector(`${DETAILS_SELECTOR}:nth-of-type(2) > ${SUMMARY_SELECTOR}`);
|
1847
1859
|
assert.instanceOf(secondGroupSummary, HTMLElement);
|
1848
1860
|
|
1849
1861
|
// Focus on the group. Then navigate up.
|
@@ -1851,10 +1863,10 @@ describeWithMockConnection('BreakpointsView', () => {
|
|
1851
1863
|
dispatchKeyDownEvent(secondGroupSummary, {key: 'ArrowUp', bubbles: true});
|
1852
1864
|
await RenderCoordinator.done();
|
1853
1865
|
|
1854
|
-
const selected = component.
|
1866
|
+
const selected = component.contentElement.querySelector(TABBABLE_SELECTOR);
|
1855
1867
|
assert.instanceOf(selected, HTMLElement);
|
1856
1868
|
|
1857
|
-
const firstDetailsElement = component.
|
1869
|
+
const firstDetailsElement = component.contentElement.querySelector(DETAILS_SELECTOR);
|
1858
1870
|
assert.exists(firstDetailsElement);
|
1859
1871
|
const lastBreakpointItem = firstDetailsElement.querySelector(`${BREAKPOINT_ITEM_SELECTOR}:last-child`);
|
1860
1872
|
assert.instanceOf(lastBreakpointItem, HTMLDivElement);
|