chrome-devtools-frontend 1.0.1402249 → 1.0.1418433
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/.git-blame-ignore-revs +6 -1
- package/.vscode/devtools-workspace-launch.json +13 -31
- package/.vscode/devtools-workspace-settings.json +2 -4
- package/.vscode/devtools-workspace-tasks.json +5 -4
- package/AUTHORS +1 -0
- package/config/gni/devtools_grd_files.gni +97 -84
- package/config/gni/devtools_image_files.gni +14 -0
- package/config/owner/INFRA_OWNERS +1 -0
- package/config/typescript/tsconfig.eslint.json +2 -1
- package/docs/README.md +4 -0
- package/docs/cookbook/localization.md +1 -1
- package/docs/get_the_code.md +0 -17
- package/docs/playbook.md +176 -0
- package/docs/styleguide/ux/README.md +1 -0
- package/docs/styleguide/ux/components.md +54 -2
- package/docs/styleguide/ux/images/combo-box-variations.png +0 -0
- package/docs/styleguide/ux/patterns.md +87 -0
- package/docs/styleguide/ux/styles.md +19 -8
- package/eslint.config.mjs +93 -72
- package/extension-api/ExtensionAPI.d.ts +22 -0
- package/extensions/cxx_debugging/e2e/TestDriver.ts +1 -3
- package/extensions/cxx_debugging/e2e/cxx-debugging-extension-helpers.ts +1 -0
- package/extensions/cxx_debugging/e2e/standalone/MemoryInspector_test.ts +0 -1
- package/extensions/cxx_debugging/src/CreditsItem.ts +5 -6
- package/extensions/cxx_debugging/src/CustomFormatters.ts +4 -4
- package/extensions/cxx_debugging/src/DWARFSymbols.ts +10 -10
- package/extensions/cxx_debugging/src/DevToolsPluginHost.ts +6 -6
- package/extensions/cxx_debugging/src/DevToolsPluginWorker.ts +3 -6
- package/extensions/cxx_debugging/src/DevToolsPluginWorkerMain.ts +1 -0
- package/extensions/cxx_debugging/src/ExtensionOptions.ts +6 -10
- package/extensions/cxx_debugging/src/Formatters.ts +15 -8
- package/extensions/cxx_debugging/src/MEMFSResourceLoader.ts +7 -7
- package/extensions/cxx_debugging/src/ModuleConfiguration.ts +6 -6
- package/extensions/cxx_debugging/src/ModuleConfigurationList.ts +4 -4
- package/extensions/cxx_debugging/src/WasmTypes.ts +21 -11
- package/extensions/cxx_debugging/src/WorkerRPC.ts +3 -4
- package/extensions/cxx_debugging/tests/CreditsItem_test.ts +2 -3
- package/extensions/cxx_debugging/tests/DevToolsPluginTestWorker.ts +4 -4
- package/extensions/cxx_debugging/tests/DevToolsPlugin_test.ts +12 -12
- package/extensions/cxx_debugging/tests/Externref_test.ts +3 -6
- package/extensions/cxx_debugging/tests/Formatters_test.ts +3 -3
- package/extensions/cxx_debugging/tests/Interpreter_test.ts +1 -1
- package/extensions/cxx_debugging/tests/RealBackend.ts +9 -9
- package/extensions/cxx_debugging/tests/SymbolsBackend_test.ts +31 -29
- package/extensions/cxx_debugging/tests/TestUtils.ts +8 -7
- package/extensions/cxx_debugging/tests/inputs/externref.js +14 -4
- package/extensions/cxx_debugging/tests/inputs/page.js +3 -1
- package/front_end/Images/generate-css-vars.js +1 -0
- package/front_end/Images/rollup.config.mjs +0 -1
- package/front_end/Images/src/account-tree.svg +1 -0
- package/front_end/Images/src/arrow-collapse.svg +3 -0
- package/front_end/Images/src/arrow-drop-down.svg +3 -0
- package/front_end/Images/src/difference.svg +3 -0
- package/front_end/Images/src/global.svg +5 -0
- package/front_end/Images/src/grid-on.svg +10 -0
- package/front_end/Images/src/keyboard-full.svg +10 -0
- package/front_end/Images/src/label.svg +10 -0
- package/front_end/Images/src/node-stack-icon.svg +1 -0
- package/front_end/Images/src/override.svg +11 -0
- package/front_end/Images/src/palette.svg +10 -0
- package/front_end/Images/src/photo-camera.svg +10 -0
- package/front_end/Images/src/terminal.svg +10 -0
- package/front_end/Images/src/tonality.svg +10 -0
- package/front_end/Tests.js +1 -8
- package/front_end/application_tokens.css +407 -0
- package/front_end/core/common/Base64.test.ts +3 -3
- package/front_end/core/common/Color.ts +8 -0
- package/front_end/core/common/Console.ts +3 -3
- package/front_end/core/common/EventTarget.test.ts +7 -7
- package/front_end/core/common/EventTarget.ts +3 -3
- package/front_end/core/common/ParsedURL.test.ts +33 -37
- package/front_end/core/common/ParsedURL.ts +1 -1
- package/front_end/core/common/ResolverBase.test.ts +1 -1
- package/front_end/core/common/ResolverBase.ts +2 -7
- package/front_end/core/common/ResourceType.test.ts +19 -23
- package/front_end/core/common/Revealer.ts +5 -0
- package/front_end/core/common/SettingRegistration.test.ts +1 -1
- package/front_end/core/common/Settings.ts +6 -6
- package/front_end/core/common/Throttler.ts +3 -3
- package/front_end/core/dom_extension/DOMExtension.test.ts +36 -41
- package/front_end/core/host/AidaClient.test.ts +16 -3
- package/front_end/core/host/AidaClient.ts +31 -16
- package/front_end/core/host/InspectorFrontendHost.ts +6 -0
- package/front_end/core/host/InspectorFrontendHostAPI.ts +32 -34
- package/front_end/core/host/ResourceLoader.ts +1 -1
- package/front_end/core/host/UserMetrics.ts +100 -126
- package/front_end/core/i18n/collect-ui-strings.js +5 -4
- package/front_end/core/i18n/generate-locales-js.js +4 -2
- package/front_end/core/i18n/i18nImpl.ts +1 -1
- package/front_end/core/i18n/i18nTypes.ts +3 -3
- package/front_end/core/i18n/locales/af.json +848 -518
- package/front_end/core/i18n/locales/am.json +857 -527
- package/front_end/core/i18n/locales/ar.json +864 -534
- package/front_end/core/i18n/locales/as.json +853 -523
- package/front_end/core/i18n/locales/az.json +856 -526
- package/front_end/core/i18n/locales/be.json +854 -524
- package/front_end/core/i18n/locales/bg.json +844 -514
- package/front_end/core/i18n/locales/bn.json +851 -521
- package/front_end/core/i18n/locales/bs.json +861 -531
- package/front_end/core/i18n/locales/ca.json +851 -521
- package/front_end/core/i18n/locales/cs.json +854 -524
- package/front_end/core/i18n/locales/cy.json +849 -519
- package/front_end/core/i18n/locales/da.json +850 -520
- package/front_end/core/i18n/locales/de.json +848 -518
- package/front_end/core/i18n/locales/el.json +851 -521
- package/front_end/core/i18n/locales/en-GB.json +845 -515
- package/front_end/core/i18n/locales/es-419.json +847 -517
- package/front_end/core/i18n/locales/es.json +847 -517
- package/front_end/core/i18n/locales/et.json +843 -513
- package/front_end/core/i18n/locales/eu.json +861 -531
- package/front_end/core/i18n/locales/fa.json +860 -530
- package/front_end/core/i18n/locales/fi.json +848 -518
- package/front_end/core/i18n/locales/fil.json +849 -519
- package/front_end/core/i18n/locales/fr-CA.json +849 -519
- package/front_end/core/i18n/locales/fr.json +849 -519
- package/front_end/core/i18n/locales/gl.json +852 -522
- package/front_end/core/i18n/locales/gu.json +846 -516
- package/front_end/core/i18n/locales/he.json +867 -537
- package/front_end/core/i18n/locales/hi.json +853 -523
- package/front_end/core/i18n/locales/hr.json +854 -524
- package/front_end/core/i18n/locales/hu.json +848 -518
- package/front_end/core/i18n/locales/hy.json +850 -520
- package/front_end/core/i18n/locales/id.json +849 -519
- package/front_end/core/i18n/locales/is.json +850 -520
- package/front_end/core/i18n/locales/it.json +852 -522
- package/front_end/core/i18n/locales/ja.json +844 -514
- package/front_end/core/i18n/locales/ka.json +847 -517
- package/front_end/core/i18n/locales/kk.json +850 -520
- package/front_end/core/i18n/locales/km.json +853 -523
- package/front_end/core/i18n/locales/kn.json +857 -527
- package/front_end/core/i18n/locales/ko.json +850 -520
- package/front_end/core/i18n/locales/ky.json +846 -516
- package/front_end/core/i18n/locales/lo.json +851 -521
- package/front_end/core/i18n/locales/lt.json +845 -515
- package/front_end/core/i18n/locales/lv.json +849 -519
- package/front_end/core/i18n/locales/mk.json +851 -521
- package/front_end/core/i18n/locales/ml.json +850 -520
- package/front_end/core/i18n/locales/mn.json +860 -530
- package/front_end/core/i18n/locales/mr.json +852 -522
- package/front_end/core/i18n/locales/ms.json +848 -518
- package/front_end/core/i18n/locales/my.json +857 -527
- package/front_end/core/i18n/locales/ne.json +857 -527
- package/front_end/core/i18n/locales/nl.json +847 -517
- package/front_end/core/i18n/locales/no.json +848 -518
- package/front_end/core/i18n/locales/or.json +969 -639
- package/front_end/core/i18n/locales/pa.json +850 -520
- package/front_end/core/i18n/locales/pl.json +849 -519
- package/front_end/core/i18n/locales/pt-PT.json +850 -520
- package/front_end/core/i18n/locales/pt.json +844 -514
- package/front_end/core/i18n/locales/ro.json +850 -520
- package/front_end/core/i18n/locales/ru.json +861 -531
- package/front_end/core/i18n/locales/si.json +850 -520
- package/front_end/core/i18n/locales/sk.json +850 -520
- package/front_end/core/i18n/locales/sl.json +851 -521
- package/front_end/core/i18n/locales/sq.json +847 -517
- package/front_end/core/i18n/locales/sr-Latn.json +848 -518
- package/front_end/core/i18n/locales/sr.json +848 -518
- package/front_end/core/i18n/locales/sv.json +849 -519
- package/front_end/core/i18n/locales/sw.json +856 -526
- package/front_end/core/i18n/locales/ta.json +853 -523
- package/front_end/core/i18n/locales/te.json +854 -524
- package/front_end/core/i18n/locales/th.json +839 -509
- package/front_end/core/i18n/locales/tr.json +850 -520
- package/front_end/core/i18n/locales/uk.json +850 -520
- package/front_end/core/i18n/locales/ur.json +849 -519
- package/front_end/core/i18n/locales/uz.json +854 -524
- package/front_end/core/i18n/locales/vi.json +847 -517
- package/front_end/core/i18n/locales/zh-HK.json +852 -522
- package/front_end/core/i18n/locales/zh-TW.json +852 -522
- package/front_end/core/i18n/locales/zh.json +849 -519
- package/front_end/core/i18n/locales/zu.json +855 -525
- package/front_end/core/platform/DevToolsPath.test.ts +80 -41
- package/front_end/core/platform/DevToolsPath.ts +32 -9
- package/front_end/core/platform/ServerTiming.ts +8 -8
- package/front_end/core/platform/StringUtilities.ts +1 -1
- package/front_end/core/protocol_client/InspectorBackend.ts +15 -22
- package/front_end/core/protocol_client/protocol_client.ts +1 -0
- package/front_end/core/root/Runtime.test.ts +17 -0
- package/front_end/core/root/Runtime.ts +79 -50
- package/front_end/core/sdk/AccessibilityModel.ts +3 -3
- package/front_end/core/sdk/AnimationModel.ts +5 -5
- package/front_end/core/sdk/AutofillModel.ts +3 -3
- package/front_end/core/sdk/CPUProfilerModel.ts +4 -4
- package/front_end/core/sdk/CPUThrottlingManager.ts +157 -17
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +3 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +73 -6
- package/front_end/core/sdk/CSSMetadata.ts +21 -0
- package/front_end/core/sdk/CSSModel.test.ts +7 -9
- package/front_end/core/sdk/CSSModel.ts +53 -34
- package/front_end/core/sdk/CSSProperty.ts +16 -6
- package/front_end/core/sdk/CSSPropertyParser.ts +4 -4
- package/front_end/{panels/elements/PropertyMatchers.test.ts → core/sdk/CSSPropertyParserMatchers.test.ts} +126 -63
- package/front_end/{panels/elements/PropertyMatchers.ts → core/sdk/CSSPropertyParserMatchers.ts} +126 -59
- package/front_end/core/sdk/CSSStyleDeclaration.ts +13 -1
- package/front_end/core/sdk/CSSStyleSheetHeader.test.ts +29 -0
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +1 -1
- package/front_end/core/sdk/ChildTargetManager.test.ts +20 -4
- package/front_end/core/sdk/ChildTargetManager.ts +8 -11
- package/front_end/core/sdk/Connections.ts +22 -9
- package/front_end/core/sdk/ConsoleModel.test.ts +6 -4
- package/front_end/core/sdk/ConsoleModel.ts +11 -6
- package/front_end/core/sdk/CookieModel.test.ts +8 -7
- package/front_end/core/sdk/CookieModel.ts +3 -3
- package/front_end/core/sdk/DOMDebuggerModel.ts +5 -5
- package/front_end/core/sdk/DOMModel.ts +35 -17
- package/front_end/core/sdk/DebuggerModel.test.ts +4 -3
- package/front_end/core/sdk/DebuggerModel.ts +13 -13
- package/front_end/core/sdk/EmulationModel.ts +2 -3
- package/front_end/core/sdk/FrameManager.ts +7 -7
- package/front_end/core/sdk/HeapProfilerModel.ts +7 -7
- package/front_end/core/sdk/IOModel.ts +2 -3
- package/front_end/core/sdk/IsolateManager.ts +4 -4
- package/front_end/core/sdk/IssuesModel.ts +7 -4
- package/front_end/core/sdk/LogModel.ts +5 -5
- package/front_end/core/sdk/NetworkManager.test.ts +103 -54
- package/front_end/core/sdk/NetworkManager.ts +57 -22
- package/front_end/core/sdk/NetworkRequest.test.ts +19 -20
- package/front_end/core/sdk/NetworkRequest.ts +10 -10
- package/front_end/core/sdk/OverlayModel.test.ts +6 -6
- package/front_end/core/sdk/OverlayModel.ts +10 -10
- package/front_end/core/sdk/OverlayPersistentHighlighter.test.ts +5 -3
- package/front_end/core/sdk/PageResourceLoader.test.ts +20 -25
- package/front_end/core/sdk/PageResourceLoader.ts +3 -3
- package/front_end/core/sdk/PaintProfiler.ts +4 -4
- package/front_end/core/sdk/PerformanceMetricsModel.ts +2 -2
- package/front_end/core/sdk/PreloadingModel.test.ts +19 -17
- package/front_end/core/sdk/PreloadingModel.ts +4 -4
- package/front_end/core/sdk/RehydratingConnection.ts +6 -4
- package/front_end/core/sdk/RemoteObject.ts +2 -2
- package/front_end/core/sdk/ResourceTreeModel.ts +39 -32
- package/front_end/core/sdk/RuntimeModel.test.ts +4 -2
- package/front_end/core/sdk/RuntimeModel.ts +14 -12
- package/front_end/core/sdk/ScreenCaptureModel.ts +3 -0
- package/front_end/core/sdk/Script.ts +1 -1
- package/front_end/core/sdk/SecurityOriginManager.ts +6 -6
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +5 -5
- package/front_end/core/sdk/ServiceWorkerManager.ts +10 -11
- package/front_end/core/sdk/SourceMap.test.ts +141 -77
- package/front_end/core/sdk/SourceMap.ts +110 -193
- package/front_end/core/sdk/SourceMapFunctionRanges.test.ts +171 -0
- package/front_end/core/sdk/SourceMapFunctionRanges.ts +150 -0
- package/front_end/core/sdk/SourceMapManager.test.ts +14 -14
- package/front_end/core/sdk/SourceMapManager.ts +12 -12
- package/front_end/core/sdk/SourceMapScopes.ts +29 -7
- package/front_end/core/sdk/SourceMapScopesInfo.test.ts +36 -28
- package/front_end/core/sdk/SourceMapScopesInfo.ts +35 -23
- package/front_end/core/sdk/StorageBucketsModel.ts +8 -8
- package/front_end/core/sdk/StorageKeyManager.test.ts +4 -2
- package/front_end/core/sdk/StorageKeyManager.ts +8 -7
- package/front_end/core/sdk/Target.test.ts +39 -3
- package/front_end/core/sdk/Target.ts +41 -1
- package/front_end/core/sdk/TargetManager.test.ts +6 -4
- package/front_end/core/sdk/TargetManager.ts +6 -6
- package/front_end/core/sdk/TraceObject.test.ts +1 -1
- package/front_end/core/sdk/TraceObject.ts +32 -0
- package/front_end/core/sdk/WebAuthnModel.ts +6 -6
- package/front_end/core/sdk/sdk-meta.ts +1 -1
- package/front_end/core/sdk/sdk.ts +4 -5
- package/front_end/design_system_tokens.css +775 -0
- package/front_end/devtools_compatibility.js +5 -5
- package/front_end/entrypoint_template.html +2 -0
- package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -2
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.test.ts +12 -2
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +3 -3
- package/front_end/entrypoints/formatter_worker/ScopeParser.ts +0 -1
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +0 -1
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +67 -52
- package/front_end/entrypoints/inspector_main/InspectorMain.test.ts +276 -142
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +41 -2
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -4
- package/front_end/entrypoints/js_app/js_app.ts +2 -1
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +1 -1
- package/front_end/entrypoints/main/MainImpl.ts +83 -78
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +5 -7
- package/front_end/entrypoints/node_app/NodeMain.ts +4 -5
- package/front_end/entrypoints/node_app/node_app.ts +1 -0
- package/front_end/entrypoints/wasmparser_worker/WasmParserWorker.ts +1 -1
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/generated/InspectorBackendCommands.js +20 -20
- package/front_end/generated/SupportedCSSProperties.js +205 -9
- package/front_end/generated/protocol-mapping.d.ts +41 -23
- package/front_end/generated/protocol-proxy-api.d.ts +34 -25
- package/front_end/generated/protocol.ts +173 -79
- package/front_end/global_typings/global_defs.d.ts +0 -5
- package/front_end/legacy/legacy-defs.d.ts +0 -2
- package/front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js +2 -1
- package/front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js +3 -4
- package/front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js +1 -2
- package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +15 -3
- package/front_end/models/autofill_manager/AutofillManager.ts +3 -3
- package/front_end/models/bindings/CompilerScriptMapping.test.ts +6 -6
- package/front_end/models/bindings/CompilerScriptMapping.ts +8 -0
- package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +5 -3
- package/front_end/models/bindings/DebuggerWorkspaceBinding.test.ts +29 -3
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -0
- package/front_end/models/bindings/DefaultScriptMapping.test.ts +4 -2
- package/front_end/models/bindings/FileUtils.ts +1 -1
- package/front_end/models/bindings/IgnoreListManager.test.ts +17 -15
- package/front_end/models/bindings/IgnoreListManager.ts +6 -6
- package/front_end/models/bindings/NetworkProject.ts +4 -4
- package/front_end/models/bindings/PresentationConsoleMessageHelper.test.ts +4 -2
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +4 -5
- package/front_end/models/bindings/ResourceMapping.test.ts +6 -4
- package/front_end/models/bindings/ResourceScriptMapping.test.ts +4 -2
- package/front_end/models/bindings/ResourceScriptMapping.ts +4 -4
- package/front_end/models/bindings/ResourceUtils.test.ts +26 -28
- package/front_end/models/bindings/ResourceUtils.ts +1 -8
- package/front_end/models/bindings/SASSSourceMapping.ts +0 -1
- package/front_end/models/breakpoints/BreakpointManager.test.ts +23 -22
- package/front_end/models/breakpoints/BreakpointManager.ts +4 -4
- package/front_end/models/cpu_profile/CPUProfileDataModel.test.ts +8 -1
- package/front_end/models/cpu_profile/CPUProfileDataModel.ts +14 -4
- package/front_end/models/cpu_profile/ProfileTreeModel.ts +1 -3
- package/front_end/models/crux-manager/CrUXManager.test.ts +27 -15
- package/front_end/models/crux-manager/CrUXManager.ts +23 -8
- package/front_end/models/emulation/DeviceModeModel.ts +3 -3
- package/front_end/models/emulation/EmulatedDevices.ts +7 -7
- package/front_end/models/extensions/ExtensionAPI.ts +300 -174
- package/front_end/models/extensions/ExtensionEndpoint.ts +8 -8
- package/front_end/models/extensions/ExtensionPanel.ts +4 -2
- package/front_end/models/extensions/ExtensionServer.test.ts +163 -28
- package/front_end/models/extensions/ExtensionServer.ts +59 -5
- package/front_end/models/extensions/HostUrlPattern.test.ts +59 -58
- package/front_end/models/extensions/LanguageExtensionEndpoint.test.ts +9 -5
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +3 -3
- package/front_end/models/extensions/RecorderPluginManager.ts +13 -13
- package/front_end/models/formatter/FormatterWorkerPool.ts +1 -3
- package/front_end/models/har/Log.test.ts +3 -1
- package/front_end/models/har/Log.ts +3 -3
- package/front_end/models/har/Writer.test.ts +2 -1
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +4 -10
- package/front_end/models/issues_manager/ClientHintIssue.ts +2 -3
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +0 -1
- package/front_end/models/issues_manager/CookieIssue.ts +1 -0
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +0 -1
- package/front_end/models/issues_manager/DeprecationIssue.ts +2 -3
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +2 -3
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +2 -3
- package/front_end/models/issues_manager/GenericIssue.ts +0 -1
- package/front_end/models/issues_manager/IssueResolver.test.ts +1 -1
- package/front_end/models/issues_manager/IssuesManager.ts +29 -10
- package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
- package/front_end/models/issues_manager/SelectElementAccessibilityIssue.test.ts +86 -0
- package/front_end/models/issues_manager/SelectElementAccessibilityIssue.ts +110 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
- package/front_end/models/issues_manager/issues_manager.ts +2 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +149 -130
- package/front_end/models/live-metrics/LiveMetrics.ts +21 -21
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +13 -13
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +10 -3
- package/front_end/models/logs/NetworkLog.test.ts +3 -1
- package/front_end/models/logs/NetworkLog.ts +6 -6
- package/front_end/models/logs/RequestResolver.test.ts +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +3 -6
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +9 -13
- package/front_end/models/persistence/NetworkPersistenceManager.test.ts +36 -44
- package/front_end/models/persistence/NetworkPersistenceManager.ts +6 -6
- package/front_end/models/persistence/PersistenceAction.test.ts +11 -9
- package/front_end/models/persistence/PersistenceImpl.test.ts +10 -8
- package/front_end/models/persistence/PersistenceImpl.ts +4 -4
- package/front_end/models/persistence/PersistenceUtils.ts +3 -3
- package/front_end/models/persistence/PlatformFileSystem.test.ts +4 -3
- package/front_end/models/persistence/PlatformFileSystem.ts +1 -1
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +14 -20
- package/front_end/models/project_settings/ProjectSettingsModel.test.ts +138 -0
- package/front_end/models/project_settings/ProjectSettingsModel.ts +157 -0
- package/front_end/models/project_settings/project_settings.ts +9 -0
- package/front_end/models/source_map_scopes/NamesResolver.test.ts +11 -3
- package/front_end/models/source_map_scopes/NamesResolver.ts +5 -7
- package/front_end/models/source_map_scopes/ScopeChainModel.ts +3 -3
- package/front_end/models/text_utils/StaticContentProvider.test.ts +4 -2
- package/front_end/models/text_utils/StreamingContentData.ts +3 -3
- package/front_end/models/text_utils/TextUtils.ts +1 -1
- package/front_end/models/trace/LanternComputationData.ts +11 -10
- package/front_end/models/trace/ModelImpl.test.ts +6 -6
- package/front_end/models/trace/ModelImpl.ts +11 -15
- package/front_end/models/trace/Processor.test.ts +8 -0
- package/front_end/models/trace/Processor.ts +11 -23
- package/front_end/models/trace/extras/FilmStrip.test.ts +54 -32
- package/front_end/models/trace/extras/FilmStrip.ts +11 -10
- package/front_end/models/trace/extras/MainThreadActivity.test.ts +7 -7
- package/front_end/models/trace/extras/MainThreadActivity.ts +5 -5
- package/front_end/models/trace/extras/StackTraceForEvent.ts +5 -1
- package/front_end/models/trace/extras/ThirdParties.test.ts +100 -65
- package/front_end/models/trace/extras/ThirdParties.ts +132 -56
- package/front_end/models/trace/extras/TimelineJSProfile.ts +10 -5
- package/front_end/models/trace/extras/TraceFilter.test.ts +3 -2
- package/front_end/models/trace/extras/TraceTree.test.ts +65 -39
- package/front_end/models/trace/extras/TraceTree.ts +32 -21
- package/front_end/models/trace/handlers/AnimationFramesHandler.test.ts +1 -1
- package/front_end/models/trace/handlers/AnimationFramesHandler.ts +1 -1
- package/front_end/models/trace/handlers/DOMStatsHandler.test.ts +30 -0
- package/front_end/models/trace/handlers/DOMStatsHandler.ts +31 -0
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.test.ts +741 -381
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +180 -15
- package/front_end/models/trace/handlers/FlowsHandler.ts +9 -10
- package/front_end/models/trace/handlers/FramesHandler.test.ts +42 -43
- package/front_end/models/trace/handlers/FramesHandler.ts +24 -25
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -41
- package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +29 -12
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +31 -39
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +33 -24
- package/front_end/models/trace/handlers/MetaHandler.test.ts +5 -4
- package/front_end/models/trace/handlers/MetaHandler.ts +46 -47
- package/front_end/models/trace/handlers/ModelHandlers.ts +1 -0
- package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +62 -62
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +38 -40
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +26 -27
- package/front_end/models/trace/handlers/RendererHandler.ts +5 -5
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +49 -16
- package/front_end/models/trace/handlers/SamplesHandler.ts +69 -60
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +31 -42
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +38 -13
- package/front_end/models/trace/handlers/ServerTimingsHandler.test.ts +6 -6
- package/front_end/models/trace/handlers/ServerTimingsHandler.ts +4 -5
- package/front_end/models/trace/handlers/Threads.test.ts +5 -5
- package/front_end/models/trace/handlers/Threads.ts +13 -4
- package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -4
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +17 -18
- package/front_end/models/trace/handlers/UserTimings.md +1 -1
- package/front_end/models/trace/handlers/UserTimingsHandler.test.ts +32 -24
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +25 -4
- package/front_end/models/trace/handlers/WarningsHandler.ts +2 -2
- package/front_end/models/trace/handlers/WorkersHandler.test.ts +4 -4
- package/front_end/models/trace/handlers/helpers.ts +17 -18
- package/front_end/models/trace/handlers/types.ts +2 -1
- package/front_end/models/trace/helpers/SamplesIntegrator.test.ts +68 -0
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +59 -18
- package/front_end/models/trace/helpers/SyntheticEvents.test.ts +1 -1
- package/front_end/models/trace/helpers/SyntheticEvents.ts +1 -1
- package/front_end/models/trace/helpers/Timing.test.ts +33 -45
- package/front_end/models/trace/helpers/Timing.ts +50 -76
- package/front_end/models/trace/helpers/Trace.test.ts +13 -13
- package/front_end/models/trace/helpers/Trace.ts +36 -35
- package/front_end/models/trace/helpers/TreeHelpers.test.ts +10 -81
- package/front_end/models/trace/helpers/TreeHelpers.ts +13 -181
- package/front_end/models/trace/insights/CLSCulprits.test.ts +1 -1
- package/front_end/models/trace/insights/CLSCulprits.ts +206 -107
- package/front_end/models/trace/insights/Common.test.ts +6 -2
- package/front_end/models/trace/insights/Common.ts +165 -31
- package/front_end/models/trace/insights/DOMSize.test.ts +54 -22
- package/front_end/models/trace/insights/DOMSize.ts +71 -17
- package/front_end/models/trace/insights/DocumentLatency.test.ts +4 -4
- package/front_end/models/trace/insights/DocumentLatency.ts +87 -22
- package/front_end/models/trace/insights/FontDisplay.ts +24 -14
- package/front_end/models/trace/insights/ForcedReflow.test.ts +35 -0
- package/front_end/models/trace/insights/ForcedReflow.ts +224 -0
- package/front_end/models/trace/insights/ImageDelivery.test.ts +18 -16
- package/front_end/models/trace/insights/ImageDelivery.ts +63 -26
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +39 -6
- package/front_end/models/trace/insights/LCPDiscovery.test.ts +23 -4
- package/front_end/models/trace/insights/LCPDiscovery.ts +57 -19
- package/front_end/models/trace/insights/LCPPhases.test.ts +2 -2
- package/front_end/models/trace/insights/LCPPhases.ts +57 -29
- package/front_end/models/trace/insights/LongCriticalNetworkTree.ts +60 -0
- package/front_end/models/trace/insights/Models.ts +2 -0
- package/front_end/models/trace/insights/RenderBlocking.ts +22 -10
- package/front_end/models/trace/insights/SlowCSSSelector.ts +42 -10
- package/front_end/models/trace/insights/ThirdParties.test.ts +56 -39
- package/front_end/models/trace/insights/ThirdParties.ts +41 -24
- package/front_end/models/trace/insights/Viewport.ts +8 -7
- package/front_end/models/trace/insights/types.ts +36 -17
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.test.ts +80 -52
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +6 -7
- package/front_end/models/trace/lantern/graph/BaseNode.test.ts +59 -52
- package/front_end/models/trace/lantern/graph/BaseNode.ts +2 -1
- package/front_end/models/trace/lantern/graph/CPUNode.ts +2 -1
- package/front_end/models/trace/lantern/graph/NetworkNode.ts +2 -1
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.test.ts +84 -88
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +2 -1
- package/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +1 -1
- package/front_end/models/trace/lantern/simulation/ConnectionPool.test.ts +40 -28
- package/front_end/models/trace/lantern/simulation/ConnectionPool.ts +1 -1
- package/front_end/models/trace/lantern/simulation/DNSCache.test.ts +3 -5
- package/front_end/models/trace/lantern/simulation/DNSCache.ts +2 -2
- package/front_end/models/trace/lantern/simulation/Simulator.test.ts +68 -37
- package/front_end/models/trace/lantern/simulation/Simulator.ts +4 -3
- package/front_end/models/trace/lantern/simulation/TCPConnection.ts +0 -4
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +2 -2
- package/front_end/models/trace/lantern/types/Lantern.ts +56 -56
- package/front_end/models/trace/root-causes/LayoutShift.test.ts +17 -20
- package/front_end/models/trace/root-causes/LayoutShift.ts +20 -19
- package/front_end/models/trace/root-causes/RootCauses.ts +8 -8
- package/front_end/models/trace/types/Configuration.ts +23 -6
- package/front_end/models/trace/types/Extensions.ts +4 -6
- package/front_end/models/trace/types/File.ts +30 -30
- package/front_end/models/trace/types/Timing.ts +12 -20
- package/front_end/models/trace/types/TraceEvents.ts +254 -188
- package/front_end/models/workspace/FileManager.ts +3 -3
- package/front_end/models/workspace/SearchConfig.test.ts +3 -2
- package/front_end/models/workspace/UISourceCode.ts +10 -13
- package/front_end/models/workspace/WorkspaceImpl.test.ts +12 -13
- package/front_end/models/workspace/WorkspaceImpl.ts +10 -10
- package/front_end/models/workspace_diff/WorkspaceDiff.test.ts +5 -3
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +49 -47
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +4 -7
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -4
- package/front_end/panels/accessibility/AccessibilitySubPane.ts +6 -8
- package/front_end/panels/accessibility/axBreadcrumbs.css +3 -14
- package/front_end/panels/ai_assistance/AiAssistancePanel.test.ts +67 -89
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +245 -203
- package/front_end/panels/ai_assistance/AiHistoryStorage.test.ts +16 -16
- package/front_end/panels/ai_assistance/AiHistoryStorage.ts +62 -4
- package/front_end/panels/ai_assistance/ChangeManager.test.ts +101 -23
- package/front_end/panels/ai_assistance/ChangeManager.ts +32 -13
- package/front_end/panels/ai_assistance/ExtensionScope.ts +50 -31
- package/front_end/panels/ai_assistance/agents/AiAgent.test.ts +88 -272
- package/front_end/panels/ai_assistance/agents/AiAgent.ts +389 -382
- package/front_end/panels/ai_assistance/agents/FileAgent.test.ts +22 -217
- package/front_end/panels/ai_assistance/agents/FileAgent.ts +5 -69
- package/front_end/panels/ai_assistance/agents/NetworkAgent.test.ts +19 -163
- package/front_end/panels/ai_assistance/agents/NetworkAgent.ts +9 -253
- package/front_end/panels/ai_assistance/agents/PatchAgent.ts +120 -198
- package/front_end/panels/ai_assistance/agents/PerformanceAgent.test.ts +44 -67
- package/front_end/panels/ai_assistance/agents/PerformanceAgent.ts +31 -12
- package/front_end/panels/ai_assistance/agents/PerformanceInsightsAgent.ts +117 -0
- package/front_end/panels/ai_assistance/agents/StylingAgent.test.ts +220 -418
- package/front_end/panels/ai_assistance/agents/StylingAgent.ts +245 -69
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +0 -14
- package/front_end/panels/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/panels/ai_assistance/components/ChatView.ts +945 -772
- package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +57 -0
- package/front_end/panels/ai_assistance/components/UserActionRow.test.ts +67 -29
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +294 -244
- package/front_end/panels/ai_assistance/components/chatView.css +87 -22
- package/front_end/panels/ai_assistance/components/userActionRow.css +72 -78
- package/front_end/panels/ai_assistance/data_formatters/FileFormatter.test.ts +115 -0
- package/front_end/panels/ai_assistance/data_formatters/FileFormatter.ts +81 -0
- package/front_end/panels/ai_assistance/data_formatters/NetworkRequestFormatter.test.ts +87 -0
- package/front_end/panels/ai_assistance/data_formatters/NetworkRequestFormatter.ts +272 -0
- package/front_end/panels/ai_assistance/debug.ts +30 -0
- package/front_end/panels/animation/AnimationScreenshotPopover.ts +2 -1
- package/front_end/panels/animation/AnimationTimeline.test.ts +8 -8
- package/front_end/panels/animation/AnimationTimeline.ts +8 -3
- package/front_end/panels/animation/AnimationUI.ts +6 -6
- package/front_end/panels/animation/animationTimeline.css +1 -5
- package/front_end/panels/application/AppManifestView.test.ts +7 -5
- package/front_end/panels/application/AppManifestView.ts +16 -20
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +5 -3
- package/front_end/panels/application/ApplicationPanelSidebar.ts +94 -25
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +34 -2
- package/front_end/panels/application/BackgroundServiceModel.ts +4 -4
- package/front_end/panels/application/BackgroundServiceView.test.ts +23 -2
- package/front_end/panels/application/BackgroundServiceView.ts +37 -33
- package/front_end/panels/application/CookieItemsView.ts +7 -6
- package/front_end/panels/application/DOMStorageItemsView.ts +38 -53
- package/front_end/panels/application/DOMStorageModel.ts +11 -11
- package/front_end/panels/application/ExtensionStorageItemsView.test.ts +18 -25
- package/front_end/panels/application/ExtensionStorageItemsView.ts +41 -96
- package/front_end/panels/application/ExtensionStorageModel.test.ts +4 -2
- package/front_end/panels/application/ExtensionStorageModel.ts +4 -4
- package/front_end/panels/application/IndexedDBModel.ts +8 -8
- package/front_end/panels/application/IndexedDBViews.ts +11 -14
- package/front_end/panels/application/InterestGroupStorageModel.ts +4 -4
- package/front_end/panels/application/InterestGroupStorageView.test.ts +9 -33
- package/front_end/panels/application/InterestGroupStorageView.ts +38 -33
- package/front_end/panels/application/KeyValueStorageItemsView.test.ts +122 -0
- package/front_end/panels/application/KeyValueStorageItemsView.ts +356 -0
- package/front_end/panels/application/OpenedWindowDetailsView.ts +4 -10
- package/front_end/panels/application/PreloadingTreeElement.ts +2 -2
- package/front_end/panels/application/ReportingApiReportsView.test.ts +1 -13
- package/front_end/panels/application/ReportingApiReportsView.ts +14 -19
- package/front_end/panels/application/ReportingApiView.test.ts +13 -0
- package/front_end/panels/application/ResourcesPanel.ts +11 -12
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +11 -1
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +12 -5
- package/front_end/panels/application/ServiceWorkersView.ts +1 -6
- package/front_end/panels/application/SharedStorageEventsView.test.ts +4 -19
- package/front_end/panels/application/SharedStorageEventsView.ts +24 -28
- package/front_end/panels/application/SharedStorageItemsView.test.ts +1 -1
- package/front_end/panels/application/SharedStorageItemsView.ts +14 -10
- package/front_end/panels/application/SharedStorageModel.ts +9 -9
- package/front_end/panels/application/StorageBucketsTreeElement.ts +19 -3
- package/front_end/panels/application/StorageItemsView.ts +4 -2
- package/front_end/panels/application/StorageView.ts +4 -11
- package/front_end/panels/application/appManifestView.css +1 -1
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/BackForwardCacheView.ts +28 -25
- package/front_end/panels/application/components/BounceTrackingMitigationsView.test.ts +7 -8
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +24 -38
- package/front_end/panels/application/components/EndpointsGrid.test.ts +10 -9
- package/front_end/panels/application/components/EndpointsGrid.ts +40 -51
- package/front_end/panels/application/components/FrameDetailsView.ts +59 -56
- package/front_end/panels/application/components/InterestGroupAccessGrid.test.ts +3 -7
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +65 -73
- package/front_end/panels/application/components/OriginTrialTreeView.test.ts +1 -1
- package/front_end/panels/application/components/OriginTrialTreeView.ts +23 -15
- package/front_end/panels/application/components/PermissionsPolicySection.ts +17 -13
- package/front_end/panels/application/components/ProtocolHandlersView.test.ts +5 -3
- package/front_end/panels/application/components/ProtocolHandlersView.ts +16 -10
- package/front_end/panels/application/components/ReportsGrid.test.ts +10 -9
- package/front_end/panels/application/components/ReportsGrid.ts +67 -81
- package/front_end/panels/application/components/ServiceWorkerRouterView.ts +8 -4
- package/front_end/panels/application/components/SharedStorageAccessGrid.test.ts +6 -12
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +96 -97
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +10 -6
- package/front_end/panels/application/components/StackTrace.test.ts +4 -3
- package/front_end/panels/application/components/StackTrace.ts +16 -10
- package/front_end/panels/application/components/StorageMetadataView.ts +18 -18
- package/front_end/panels/application/components/TrustTokensView.test.ts +7 -11
- package/front_end/panels/application/components/TrustTokensView.ts +75 -76
- package/front_end/panels/application/components/bounceTrackingMitigationsView.css +1 -2
- package/front_end/panels/application/components/interestGroupAccessGrid.css +3 -2
- package/front_end/panels/application/components/reportingApiGrid.css +3 -13
- package/front_end/panels/application/components/sharedStorageAccessGrid.css +3 -2
- package/front_end/panels/application/components/trustTokensView.css +3 -2
- package/front_end/panels/application/interestGroupStorageView.css +0 -13
- package/front_end/panels/application/preloading/PreloadingView.test.ts +19 -27
- package/front_end/panels/application/preloading/PreloadingView.ts +17 -26
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.test.ts +9 -12
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +63 -93
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.test.ts +75 -12
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +43 -25
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +18 -19
- package/front_end/panels/application/preloading/components/PreloadingGrid.test.ts +24 -20
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +57 -124
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.test.ts +4 -2
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +31 -63
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +12 -8
- package/front_end/panels/application/preloading/components/RuleSetGrid.test.ts +10 -6
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +126 -219
- package/front_end/panels/application/preloading/components/UsedPreloadingView.test.ts +36 -34
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +20 -16
- package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +8 -0
- package/front_end/panels/application/preloading/components/preloadingDisabledInfobar.css +6 -19
- package/front_end/panels/application/preloading/components/preloadingGrid.css +2 -2
- package/front_end/panels/application/preloading/components/ruleSetGrid.css +2 -2
- package/front_end/panels/application/sharedStorageEventsView.css +0 -13
- package/front_end/panels/autofill/AutofillView.test.ts +14 -11
- package/front_end/panels/autofill/AutofillView.ts +56 -114
- package/front_end/panels/autofill/autofillView.css +5 -0
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +3 -6
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +22 -14
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +2 -5
- package/front_end/panels/browser_debugger/domBreakpointsSidebarPane.css +4 -0
- package/front_end/panels/changes/ChangesSidebar.ts +6 -9
- package/front_end/panels/changes/ChangesView.ts +45 -22
- package/front_end/panels/changes/changesView.css +2 -2
- package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
- package/front_end/panels/console/ConsoleFilter.ts +3 -3
- package/front_end/panels/console/ConsolePinPane.ts +6 -7
- package/front_end/panels/console/ConsolePrompt.ts +5 -8
- package/front_end/panels/console/ConsoleSidebar.ts +4 -8
- package/front_end/panels/console/ConsoleView.test.ts +31 -4
- package/front_end/panels/console/ConsoleView.ts +61 -59
- package/front_end/panels/console/ConsoleViewMessage.test.ts +5 -3
- package/front_end/panels/console/ConsoleViewMessage.ts +34 -1
- package/front_end/panels/console/ErrorStackParser.test.ts +13 -13
- package/front_end/panels/console/consoleSidebar.css +4 -0
- package/front_end/panels/console/consoleView.css +13 -5
- package/front_end/panels/console_counters/WarningErrorCounter.ts +1 -0
- package/front_end/panels/coverage/CoverageDecorationManager.test.ts +4 -3
- package/front_end/panels/coverage/CoverageListView.ts +2 -5
- package/front_end/panels/coverage/CoverageModel.ts +8 -8
- package/front_end/panels/coverage/CoverageView.ts +11 -7
- package/front_end/panels/coverage/coverageView.css +1 -2
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +5 -11
- package/front_end/panels/css_overview/CSSOverviewController.ts +8 -8
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -4
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -5
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +8 -9
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +6 -4
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +151 -239
- package/front_end/panels/developer_resources/DeveloperResourcesView.test.ts +7 -6
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +15 -14
- package/front_end/panels/developer_resources/developerResourcesListView.css +4 -8
- package/front_end/panels/developer_resources/developerResourcesView.css +0 -1
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +3 -3
- package/front_end/panels/elements/AccessibilityTreeView.test.ts +3 -1
- package/front_end/panels/elements/AccessibilityTreeView.ts +5 -1
- package/front_end/panels/elements/ClassesPaneWidget.ts +2 -2
- package/front_end/panels/elements/ColorSwatchPopoverIcon.test.ts +63 -0
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +44 -18
- package/front_end/panels/elements/ComputedStyleModel.ts +4 -4
- package/front_end/panels/elements/ComputedStyleWidget.test.ts +153 -0
- package/front_end/panels/elements/ComputedStyleWidget.ts +27 -13
- package/front_end/panels/elements/DOMLinkifier.ts +2 -2
- package/front_end/panels/elements/ElementStatePaneWidget.test.ts +8 -19
- package/front_end/panels/elements/ElementStatePaneWidget.ts +10 -2
- package/front_end/panels/elements/ElementsPanel.ts +2 -2
- package/front_end/panels/elements/ElementsSidebarPane.ts +6 -2
- package/front_end/panels/elements/ElementsTreeElement.ts +18 -20
- package/front_end/panels/elements/ElementsTreeOutline.test.ts +93 -0
- package/front_end/panels/elements/ElementsTreeOutline.ts +18 -7
- package/front_end/panels/elements/EventListenersWidget.ts +1 -1
- package/front_end/panels/elements/LayersWidget.ts +3 -3
- package/front_end/panels/elements/MetricsSidebarPane.ts +1 -4
- package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -1
- package/front_end/panels/elements/PlatformFontsWidget.ts +4 -9
- package/front_end/panels/elements/PropertiesWidget.ts +4 -6
- package/front_end/panels/elements/PropertyRenderer.ts +31 -16
- package/front_end/panels/elements/StylePropertiesSection.test.ts +15 -49
- package/front_end/panels/elements/StylePropertiesSection.ts +19 -14
- package/front_end/panels/elements/StylePropertyHighlighter.test.ts +3 -0
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +171 -172
- package/front_end/panels/elements/StylePropertyTreeElement.ts +329 -177
- package/front_end/panels/elements/StylesSidebarPane.test.ts +423 -27
- package/front_end/panels/elements/StylesSidebarPane.ts +173 -30
- package/front_end/panels/elements/TopLayerContainer.ts +1 -2
- package/front_end/panels/elements/WebCustomData.test.ts +1 -1
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +7 -5
- package/front_end/panels/elements/components/AnchorFunctionLinkSwatch.ts +17 -13
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +6 -4
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +8 -6
- package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +31 -9
- package/front_end/panels/elements/components/CSSQuery.ts +14 -6
- package/front_end/panels/elements/components/CSSVariableValueView.ts +9 -5
- package/front_end/panels/elements/components/ComputedStyleProperty.ts +5 -3
- package/front_end/panels/elements/components/ComputedStyleTrace.ts +6 -4
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +12 -8
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +6 -4
- package/front_end/panels/elements/components/LayoutPane.ts +15 -8
- package/front_end/panels/elements/components/QueryContainer.ts +17 -13
- package/front_end/panels/elements/components/StylePropertyEditor.ts +11 -7
- package/front_end/panels/elements/components/layoutPane.css +1 -1
- package/front_end/panels/elements/elements.ts +0 -2
- package/front_end/panels/elements/elementsTreeOutline.css +3 -5
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +4 -0
- package/front_end/panels/emulation/DeviceModeToolbar.ts +28 -42
- package/front_end/panels/emulation/DeviceModeView.ts +2 -3
- package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +5 -5
- package/front_end/panels/emulation/MediaQueryInspector.ts +1 -1
- package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +3 -6
- package/front_end/panels/emulation/deviceModeView.css +17 -13
- package/front_end/panels/emulation/emulation-meta.ts +0 -1
- package/front_end/panels/event_listeners/EventListenersUtils.ts +4 -3
- package/front_end/panels/event_listeners/EventListenersView.ts +2 -5
- package/front_end/panels/explain/PromptBuilder.test.ts +39 -16
- package/front_end/panels/explain/PromptBuilder.ts +10 -11
- package/front_end/panels/explain/components/ConsoleInsight.test.ts +226 -0
- package/front_end/panels/explain/components/ConsoleInsight.ts +234 -47
- package/front_end/panels/explain/components/consoleInsight.css +55 -0
- package/front_end/panels/explain/components/consoleInsightSourcesList.css +2 -0
- package/front_end/panels/issues/AffectedBlockedByResponseView.ts +3 -3
- package/front_end/panels/issues/AffectedDescendantsWithinSelectElementView.ts +64 -0
- package/front_end/panels/issues/AffectedDirectivesView.ts +2 -2
- package/front_end/panels/issues/AffectedHeavyAdView.ts +1 -1
- package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/AffectedTrackingSitesView.ts +1 -0
- package/front_end/panels/issues/IssueAggregator.ts +17 -7
- package/front_end/panels/issues/IssueView.ts +2 -0
- package/front_end/panels/issues/IssuesPane.ts +9 -8
- package/front_end/panels/issues/components/ElementsPanelLink.ts +6 -4
- package/front_end/panels/issues/components/HideIssuesMenu.ts +6 -4
- package/front_end/panels/issues/issuesPane.css +1 -1
- package/front_end/panels/issues/issuesTree.css +7 -4
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +12 -6
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
- package/front_end/panels/layer_viewer/LayerViewHost.ts +0 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +7 -7
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +5 -8
- package/front_end/panels/layer_viewer/TransformController.ts +8 -5
- package/front_end/panels/layer_viewer/layerDetailsView.css +4 -0
- package/front_end/panels/layer_viewer/layers3DView.css +1 -1
- package/front_end/panels/layers/LayerTreeModel.ts +5 -5
- package/front_end/panels/layers/LayersPanel.ts +1 -2
- package/front_end/panels/lighthouse/LighthouseController.ts +9 -9
- package/front_end/panels/lighthouse/LighthousePanel.ts +10 -9
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +3 -7
- package/front_end/panels/lighthouse/LighthouseStartView.ts +5 -2
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
- package/front_end/panels/lighthouse/lighthousePanel.css +2 -2
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.test.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +14 -14
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.test.ts +3 -3
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +9 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +26 -26
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +10 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +9 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +15 -11
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +16 -9
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +4 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +8 -4
- package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +1 -0
- package/front_end/panels/media/EventDisplayTable.ts +2 -5
- package/front_end/panels/media/EventTimelineView.ts +3 -3
- package/front_end/panels/media/MediaModel.ts +7 -7
- package/front_end/panels/media/PlayerListView.ts +1 -5
- package/front_end/panels/media/PlayerMessagesView.ts +5 -7
- package/front_end/panels/media/PlayerPropertiesView.ts +5 -8
- package/front_end/panels/mobile_throttling/CalibrationController.ts +368 -0
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +5 -4
- package/front_end/panels/mobile_throttling/ThrottlingManager.test.ts +7 -9
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +63 -39
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +40 -14
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +334 -11
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +1 -0
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +32 -0
- package/front_end/panels/network/BinaryResourceView.ts +7 -9
- package/front_end/panels/network/BlockedURLsPane.test.ts +4 -2
- package/front_end/panels/network/BlockedURLsPane.ts +9 -7
- package/front_end/panels/network/EventSourceMessagesView.ts +6 -5
- package/front_end/panels/network/NetworkConfigView.ts +3 -5
- package/front_end/panels/network/NetworkDataGridNode.test.ts +38 -58
- package/front_end/panels/network/NetworkDataGridNode.ts +4 -4
- package/front_end/panels/network/NetworkItemView.test.ts +26 -28
- package/front_end/panels/network/NetworkItemView.ts +9 -11
- package/front_end/panels/network/NetworkLogView.test.ts +24 -24
- package/front_end/panels/network/NetworkLogView.ts +9 -6
- package/front_end/panels/network/NetworkManageCustomHeadersView.ts +3 -3
- package/front_end/panels/network/NetworkOverview.ts +12 -12
- package/front_end/panels/network/NetworkPanel.test.ts +1 -2
- package/front_end/panels/network/NetworkPanel.ts +43 -46
- package/front_end/panels/network/NetworkSearchScope.test.ts +5 -5
- package/front_end/panels/network/NetworkTimeCalculator.ts +3 -3
- package/front_end/panels/network/NetworkWaterfallColumn.ts +5 -3
- package/front_end/panels/network/RequestCookiesView.test.ts +5 -4
- package/front_end/panels/network/RequestCookiesView.ts +4 -6
- package/front_end/panels/network/RequestHTMLView.ts +2 -1
- package/front_end/panels/network/RequestInitiatorView.ts +5 -5
- package/front_end/panels/network/RequestPayloadView.ts +20 -12
- package/front_end/panels/network/RequestPreviewView.test.ts +8 -9
- package/front_end/panels/network/RequestPreviewView.ts +5 -3
- package/front_end/panels/network/RequestResponseView.test.ts +8 -8
- package/front_end/panels/network/RequestResponseView.ts +8 -3
- package/front_end/panels/network/RequestTimingView.test.ts +5 -3
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +11 -5
- package/front_end/panels/network/SignedExchangeInfoView.ts +6 -10
- package/front_end/panels/network/binaryResourceView.css +1 -1
- package/front_end/panels/network/components/EditableSpan.ts +5 -3
- package/front_end/panels/network/components/HeaderSectionRow.ts +25 -24
- package/front_end/panels/network/components/RequestHeaderSection.ts +9 -5
- package/front_end/panels/network/components/RequestHeadersView.test.ts +15 -20
- package/front_end/panels/network/components/RequestHeadersView.ts +28 -24
- package/front_end/panels/network/components/RequestTrustTokensView.ts +29 -19
- package/front_end/panels/network/components/ResponseHeaderSection.test.ts +25 -32
- package/front_end/panels/network/components/ResponseHeaderSection.ts +8 -8
- package/front_end/panels/network/components/WebBundleInfoView.css +8 -0
- package/front_end/panels/network/components/WebBundleInfoView.ts +32 -49
- package/front_end/panels/network/network-meta.ts +5 -2
- package/front_end/panels/network/networkConfigView.css +3 -3
- package/front_end/panels/network/networkLogView.css +1 -1
- package/front_end/panels/network/networkManageCustomHeadersView.css +7 -11
- package/front_end/panels/network/networkPanel.css +9 -12
- package/front_end/panels/network/requestInitiatorView.css +1 -1
- package/front_end/panels/network/webSocketFrameView.css +1 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +4 -4
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +5 -5
- package/front_end/panels/profiler/HeapProfileView.ts +7 -7
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +5 -5
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +15 -15
- package/front_end/panels/profiler/HeapSnapshotProxy.ts +3 -3
- package/front_end/panels/profiler/HeapSnapshotView.ts +36 -17
- package/front_end/panels/profiler/HeapTimelineOverview.ts +4 -4
- package/front_end/panels/profiler/IsolateSelector.ts +1 -1
- package/front_end/panels/profiler/LiveHeapProfileView.ts +5 -3
- package/front_end/panels/profiler/ProfileDataGrid.ts +1 -2
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +5 -5
- package/front_end/panels/profiler/ProfileHeader.ts +12 -12
- package/front_end/panels/profiler/ProfileLauncherView.ts +4 -7
- package/front_end/panels/profiler/ProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfilesPanel.ts +12 -11
- package/front_end/panels/profiler/TopDownProfileDataGrid.ts +2 -2
- package/front_end/panels/profiler/liveHeapProfile.css +1 -1
- package/front_end/panels/profiler/profileLauncherView.css +1 -2
- package/front_end/panels/protocol_monitor/{components/JSONEditor.css → JSONEditor.css} +6 -1
- package/front_end/panels/protocol_monitor/{components/JSONEditor.test.ts → JSONEditor.test.ts} +90 -91
- package/front_end/panels/protocol_monitor/{components/JSONEditor.ts → JSONEditor.ts} +159 -81
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +293 -360
- package/front_end/panels/protocol_monitor/protocol_monitor.ts +2 -2
- package/front_end/panels/recorder/RecorderController.test.ts +0 -2
- package/front_end/panels/recorder/RecorderController.ts +48 -18
- package/front_end/panels/recorder/components/ControlButton.ts +7 -3
- package/front_end/panels/recorder/components/CreateRecordingView.ts +8 -6
- package/front_end/panels/recorder/components/ExtensionView.ts +8 -4
- package/front_end/panels/recorder/components/RecordingListView.ts +8 -4
- package/front_end/panels/recorder/components/RecordingView.ts +22 -18
- package/front_end/panels/recorder/components/ReplaySection.ts +3 -3
- package/front_end/panels/recorder/components/SelectButton.ts +14 -10
- package/front_end/panels/recorder/components/StepEditor.ts +18 -14
- package/front_end/panels/recorder/components/StepView.ts +20 -17
- package/front_end/panels/recorder/components/TimelineSection.ts +9 -5
- package/front_end/panels/recorder/components/components.ts +0 -2
- package/front_end/panels/recorder/controllers/SelectorPicker.ts +3 -4
- package/front_end/panels/recorder/converters/Converter.ts +1 -1
- package/front_end/panels/recorder/extensions/ExtensionManager.ts +3 -3
- package/front_end/panels/recorder/injected/injected.ts +2 -2
- package/front_end/panels/recorder/injected/selectors/CSSSelector.test.ts +0 -2
- package/front_end/panels/recorder/models/RecordingPlayer.ts +10 -13
- package/front_end/panels/recorder/models/RecordingSession.ts +31 -34
- package/front_end/panels/recorder/models/Schema.ts +1 -1
- package/front_end/panels/recorder/models/SchemaUtils.ts +4 -3
- package/front_end/panels/recorder/recorderController.css +2 -1
- package/front_end/panels/recorder/util/util.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +5 -21
- package/front_end/panels/search/SearchResultsPane.ts +1 -4
- package/front_end/panels/search/SearchView.ts +8 -5
- package/front_end/panels/security/CookieControlsTreeElement.ts +7 -4
- package/front_end/panels/security/CookieControlsView.test.ts +38 -1
- package/front_end/panels/security/CookieControlsView.ts +183 -68
- package/front_end/panels/security/CookieReportTreeElement.ts +7 -4
- package/front_end/panels/security/CookieReportView.test.ts +2 -2
- package/front_end/panels/security/CookieReportView.ts +87 -42
- package/front_end/panels/security/OriginTreeElement.ts +2 -3
- package/front_end/panels/security/SecurityModel.ts +3 -3
- package/front_end/panels/security/SecurityPanel.test.ts +43 -3
- package/front_end/panels/security/SecurityPanel.ts +48 -50
- package/front_end/panels/security/SecurityPanelSidebar.ts +82 -23
- package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +21 -2
- package/front_end/panels/security/cookieControlsView.css +29 -4
- package/front_end/panels/security/cookieReportView.css +4 -3
- package/front_end/panels/security/security-meta.ts +20 -7
- package/front_end/panels/sensors/LocationsSettingsTab.ts +18 -19
- package/front_end/panels/sensors/SensorsView.ts +3 -7
- package/front_end/panels/sensors/sensors.css +1 -1
- package/front_end/panels/settings/AISettingsTab.test.ts +3 -4
- package/front_end/panels/settings/AISettingsTab.ts +47 -29
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +18 -29
- package/front_end/panels/settings/KeybindsSettingsTab.ts +11 -12
- package/front_end/panels/settings/SettingsScreen.ts +9 -9
- package/front_end/panels/settings/components/SyncSection.ts +9 -6
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +11 -16
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +14 -10
- package/front_end/panels/settings/emulation/utils/UserAgentMetadata.ts +5 -5
- package/front_end/panels/settings/settingsScreen.css +1 -1
- package/front_end/panels/snippets/ScriptSnippetFileSystem.test.ts +4 -2
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +9 -3
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +1 -4
- package/front_end/panels/sources/BreakpointEditDialog.test.ts +2 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +6 -11
- package/front_end/panels/sources/CSSPlugin.test.ts +3 -2
- package/front_end/panels/sources/CallStackSidebarPane.ts +3 -6
- package/front_end/panels/sources/CoveragePlugin.test.ts +4 -2
- package/front_end/panels/sources/CoveragePlugin.ts +4 -0
- package/front_end/panels/sources/DebuggerPausedMessage.ts +1 -1
- package/front_end/panels/sources/DebuggerPlugin.test.ts +4 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +19 -15
- package/front_end/panels/sources/FilePathScoreFunction.ts +39 -19
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.test.ts +3 -3
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +2 -1
- package/front_end/panels/sources/GoToLineQuickOpen.ts +16 -22
- package/front_end/panels/sources/NavigatorView.test.ts +9 -7
- package/front_end/panels/sources/NavigatorView.ts +34 -31
- package/front_end/panels/sources/OpenFileQuickOpen.ts +2 -2
- package/front_end/panels/sources/OutlineQuickOpen.ts +9 -6
- package/front_end/panels/sources/Plugin.ts +1 -1
- package/front_end/panels/sources/ProfilePlugin.ts +5 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +2 -5
- package/front_end/panels/sources/SnippetsPlugin.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.test.ts +40 -38
- package/front_end/panels/sources/SourcesNavigator.ts +45 -49
- package/front_end/panels/sources/SourcesPanel.ts +13 -10
- package/front_end/panels/sources/SourcesView.test.ts +11 -10
- package/front_end/panels/sources/SourcesView.ts +39 -28
- package/front_end/panels/sources/TabbedEditorContainer.test.ts +12 -19
- package/front_end/panels/sources/TabbedEditorContainer.ts +6 -6
- package/front_end/panels/sources/ThreadsSidebarPane.ts +1 -4
- package/front_end/panels/sources/UISourceCodeFrame.ts +7 -3
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +5 -9
- package/front_end/panels/sources/components/BreakpointsView.test.ts +19 -18
- package/front_end/panels/sources/components/BreakpointsView.ts +15 -11
- package/front_end/panels/sources/components/BreakpointsViewUtils.test.ts +44 -42
- package/front_end/panels/sources/components/HeadersView.test.ts +4 -2
- package/front_end/panels/sources/components/HeadersView.ts +18 -18
- package/front_end/panels/sources/components/breakpointsView.css +7 -7
- package/front_end/panels/sources/dialog.css +1 -1
- package/front_end/panels/sources/sources-meta.ts +12 -5
- package/front_end/panels/sources/sourcesPanel.css +5 -0
- package/front_end/panels/sources/sourcesView.css +0 -4
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +0 -5
- package/front_end/panels/timeline/AnnotationHelpers.test.ts +4 -4
- package/front_end/panels/timeline/AnnotationHelpers.ts +8 -9
- package/front_end/panels/timeline/AppenderUtils.ts +16 -13
- package/front_end/panels/timeline/BenchmarkEvents.ts +1 -1
- package/front_end/panels/timeline/Breadcrumbs.test.ts +29 -29
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +41 -58
- package/front_end/panels/timeline/CountersGraph.ts +3 -2
- package/front_end/panels/timeline/EntriesFilter.test.ts +12 -63
- package/front_end/panels/timeline/EntriesFilter.ts +18 -33
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +5 -5
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +2 -2
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +22 -19
- package/front_end/panels/timeline/ModificationsManager.test.ts +18 -18
- package/front_end/panels/timeline/ModificationsManager.ts +8 -9
- package/front_end/panels/timeline/NetworkTrackAppender.ts +8 -10
- package/front_end/panels/timeline/README.md +30 -0
- package/front_end/panels/timeline/ServerTimingsTrackAppender.ts +0 -4
- package/front_end/panels/timeline/ThirdPartyTreeView.test.ts +68 -0
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +300 -0
- package/front_end/panels/timeline/ThreadAppender.ts +6 -13
- package/front_end/panels/timeline/TimelineController.ts +3 -4
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +36 -13
- package/front_end/panels/timeline/TimelineDetailsView.ts +91 -31
- package/front_end/panels/timeline/TimelineEventOverview.ts +27 -27
- package/front_end/panels/timeline/TimelineFilters.test.ts +5 -7
- package/front_end/panels/timeline/TimelineFilters.ts +2 -2
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +4 -3
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +85 -64
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +7 -8
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +18 -20
- package/front_end/panels/timeline/TimelineFlameChartView.test.ts +75 -21
- package/front_end/panels/timeline/TimelineFlameChartView.ts +259 -74
- package/front_end/panels/timeline/TimelineHistoryManager.ts +4 -3
- package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
- package/front_end/panels/timeline/TimelineLoader.ts +5 -5
- package/front_end/panels/timeline/TimelineMiniMap.test.ts +1 -1
- package/front_end/panels/timeline/TimelineMiniMap.ts +8 -12
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +2 -5
- package/front_end/panels/timeline/TimelinePanel.test.ts +140 -0
- package/front_end/panels/timeline/TimelinePanel.ts +160 -164
- package/front_end/panels/timeline/TimelineSelection.test.ts +1 -1
- package/front_end/panels/timeline/TimelineSelection.ts +9 -9
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +148 -186
- package/front_end/panels/timeline/TimelineTreeView.test.ts +24 -22
- package/front_end/panels/timeline/TimelineTreeView.ts +153 -46
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +130 -101
- package/front_end/panels/timeline/TimelineUIUtils.ts +108 -200
- package/front_end/panels/timeline/TimingsTrackAppender.ts +9 -9
- package/front_end/panels/timeline/components/Breadcrumbs.ts +3 -3
- package/front_end/panels/timeline/components/BreadcrumbsUI.test.ts +6 -6
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +10 -6
- package/front_end/panels/timeline/components/CPUThrottlingSelector.test.ts +12 -4
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +117 -44
- package/front_end/panels/timeline/components/DetailsView.ts +2 -2
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +13 -9
- package/front_end/panels/timeline/components/IgnoreListSetting.test.ts +43 -45
- package/front_end/panels/timeline/components/IgnoreListSetting.ts +35 -13
- package/front_end/panels/timeline/components/InteractionBreakdown.ts +8 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +58 -38
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +2 -2
- package/front_end/panels/timeline/components/LiveMetricsView.ts +36 -28
- package/front_end/panels/timeline/components/MetricCard.ts +25 -45
- package/front_end/panels/timeline/components/NetworkRequestDetails.test.ts +4 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +47 -27
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +18 -15
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +9 -5
- package/front_end/panels/timeline/components/OriginMap.ts +10 -10
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +9 -5
- package/front_end/panels/timeline/components/Sidebar.test.ts +86 -8
- package/front_end/panels/timeline/components/Sidebar.ts +19 -24
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +6 -6
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +23 -15
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +30 -13
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +29 -7
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +238 -48
- package/front_end/panels/timeline/components/TimelineSummary.test.ts +4 -2
- package/front_end/panels/timeline/components/TimelineSummary.ts +40 -36
- package/front_end/panels/timeline/components/Utils.test.ts +2 -2
- package/front_end/panels/timeline/components/Utils.ts +52 -5
- package/front_end/panels/timeline/components/fieldSettingsDialog.css +7 -4
- package/front_end/panels/timeline/components/ignoreListSetting.css +1 -2
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +8 -6
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +47 -20
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +11 -101
- package/front_end/panels/timeline/components/insights/Checklist.ts +108 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +83 -18
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +18 -101
- package/front_end/panels/timeline/components/insights/EventRef.ts +12 -8
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +9 -18
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +105 -0
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +8 -26
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +10 -40
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +25 -94
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +17 -53
- package/front_end/panels/timeline/components/insights/LongCriticalNetworkTree.ts +53 -0
- package/front_end/panels/timeline/components/insights/NodeLink.ts +42 -27
- package/front_end/panels/timeline/components/insights/README.md +6 -8
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +9 -25
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +4 -4
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +15 -44
- package/front_end/panels/timeline/components/insights/Table.ts +21 -14
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +11 -25
- package/front_end/panels/timeline/components/insights/Viewport.ts +16 -11
- package/front_end/panels/timeline/components/insights/baseInsightComponent.css +3 -39
- package/front_end/panels/timeline/components/insights/checklist.css +33 -0
- package/front_end/panels/timeline/components/insights/insights.ts +6 -0
- package/front_end/panels/timeline/components/insights/table.css +1 -0
- package/front_end/panels/timeline/components/layoutShiftDetails.css +1 -0
- package/front_end/panels/timeline/components/liveMetricsView.css +1 -1
- package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +1 -1
- package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +54 -3
- package/front_end/panels/timeline/components/timelineSummary.css +14 -7
- package/front_end/panels/timeline/docs/flame_chart_migration.md +1 -3
- package/front_end/panels/timeline/docs/sync_tracks.md +1 -1
- package/front_end/panels/timeline/enable-easter-egg.js +1 -0
- package/front_end/panels/timeline/fixtures/traces/README.md +18 -2
- package/front_end/panels/timeline/fixtures/traces/crux.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/dom-size-overlap.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/dom-size.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/forced-reflow.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/lcp-fetchpriority-high.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/lcp-late-paint-event.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/multi-frame-dom-stats.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/timings-track.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/web-dev-initial-url.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/web-dev-screenshot-source-ids.json.gz +0 -0
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +42 -7
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +125 -55
- package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +37 -35
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +9 -6
- package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +10 -7
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +15 -11
- package/front_end/panels/timeline/timeline.ts +2 -0
- package/front_end/panels/timeline/timelineFlameChartView.css +2 -3
- package/front_end/panels/timeline/timelineFlamechartPopover.css +3 -0
- package/front_end/panels/timeline/timelinePanel.css +224 -21
- package/front_end/panels/timeline/timelineSelectorStatsView.css +9 -0
- package/front_end/panels/timeline/timelineStatusDialog.css +23 -11
- package/front_end/panels/timeline/track_appenders/AnimationsTrackAppender.test.ts +3 -4
- package/front_end/panels/timeline/track_appenders/AppenderUtils.test.ts +34 -35
- package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +6 -7
- package/front_end/panels/timeline/track_appenders/GPUTrackAppender.test.ts +2 -3
- package/front_end/panels/timeline/track_appenders/InteractionsTrackAppender.test.ts +3 -4
- package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +9 -7
- package/front_end/panels/timeline/track_appenders/NetworkTrackAppender.test.ts +2 -3
- package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +5 -9
- package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +8 -7
- package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +7 -8
- package/front_end/panels/timeline/utils/AICallTree.test.ts +112 -11
- package/front_end/panels/timeline/utils/AICallTree.ts +57 -12
- package/front_end/panels/timeline/utils/EntityMapper.test.ts +1 -1
- package/front_end/panels/timeline/utils/EntityMapper.ts +1 -1
- package/front_end/panels/timeline/utils/EntryName.test.ts +15 -0
- package/front_end/panels/timeline/utils/EntryName.ts +13 -1
- package/front_end/panels/timeline/utils/EntryStyles.ts +11 -5
- package/front_end/panels/timeline/utils/Helpers.ts +15 -9
- package/front_end/panels/timeline/utils/IgnoreList.test.ts +5 -5
- package/front_end/panels/timeline/utils/ImageCache.test.ts +3 -2
- package/front_end/panels/timeline/utils/ImageCache.ts +12 -7
- package/front_end/panels/timeline/utils/InsightAIContext.ts +5 -0
- package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +6 -5
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +5 -5
- package/front_end/panels/timeline/utils/utils.ts +2 -2
- package/front_end/panels/utils/utils.test.ts +26 -32
- package/front_end/panels/web_audio/AudioContextContentBuilder.ts +1 -1
- package/front_end/panels/web_audio/AudioContextSelector.ts +4 -4
- package/front_end/panels/web_audio/WebAudioModel.ts +17 -17
- package/front_end/panels/web_audio/WebAudioView.ts +8 -4
- package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +3 -3
- package/front_end/panels/webauthn/WebauthnPane.ts +13 -12
- package/front_end/panels/webauthn/webauthnPane.css +1 -1
- package/front_end/panels/whats_new/ReleaseNote.test.ts +4 -3
- package/front_end/panels/whats_new/ReleaseNoteText.ts +10 -10
- package/front_end/panels/whats_new/ReleaseNoteView.test.ts +6 -5
- package/front_end/panels/whats_new/ReleaseNoteView.ts +34 -37
- package/front_end/panels/whats_new/WhatsNewImpl.ts +2 -2
- package/front_end/panels/whats_new/releaseNoteView.css +9 -4
- package/front_end/panels/whats_new/resources/WNDT.md +6 -6
- package/front_end/panels/whats_new/whats_new-meta.ts +0 -1
- package/front_end/services/puppeteer/PuppeteerConnection.ts +0 -1
- package/front_end/services/trace_bounds/TraceBounds.test.ts +20 -20
- package/front_end/services/trace_bounds/TraceBounds.ts +10 -12
- package/front_end/testing/AiAssistanceHelpers.ts +142 -0
- package/front_end/testing/DOMHelpers.ts +31 -14
- package/front_end/testing/DataGridHelpers.ts +7 -76
- package/front_end/testing/EnvironmentHelpers.ts +27 -7
- package/front_end/testing/ExpectStubCall.ts +2 -3
- package/front_end/testing/LanguagePluginHelpers.ts +4 -2
- package/front_end/testing/MockConnection.ts +11 -16
- package/front_end/testing/MockExecutionContext.ts +4 -4
- package/front_end/testing/MutationHelpers.test.ts +5 -7
- package/front_end/testing/MutationHelpers.ts +1 -1
- package/front_end/testing/OverridesHelpers.ts +4 -2
- package/front_end/testing/RealConnection.ts +1 -1
- package/front_end/testing/ResourceTreeHelpers.ts +4 -2
- package/front_end/testing/StyleHelpers.ts +90 -0
- package/front_end/testing/TraceHelpers.ts +36 -38
- package/front_end/testing/TrackAsyncOperations.ts +15 -15
- package/front_end/testing/UISourceCodeHelpers.ts +5 -3
- package/front_end/testing/test_setup.ts +4 -3
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/i18n/localized-string-set.ts +2 -2
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +13 -14
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +5 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +13 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +11 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +7 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/CDPSession.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +5 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +1 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CDPSession.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CDPSession.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +7 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +0 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +1 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManageEvents.d.ts +34 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManageEvents.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManageEvents.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManageEvents.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts +14 -33
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js +308 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +0 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +15 -12
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js +47 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +5 -9
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.js +4 -18
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +2 -16
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +36 -63
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +411 -542
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +13 -14
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +5 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +13 -13
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +11 -11
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +7 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/CDPSession.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +6 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +5 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +1 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CDPSession.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CDPSession.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CDPSession.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +7 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +0 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +1 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManageEvents.d.ts +34 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManageEvents.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManageEvents.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManageEvents.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts +14 -33
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js +306 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +0 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +15 -12
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +47 -11
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +5 -9
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.js +4 -18
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +2 -16
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +36 -63
- package/front_end/third_party/puppeteer/package/package.json +14 -8
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +27 -27
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +13 -13
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/bidi/CDPSession.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/ExposedFunction.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +12 -4
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +2 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +8 -21
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +0 -6
- package/front_end/third_party/puppeteer/package/src/cdp/CDPSession.ts +2 -1
- package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +2 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +0 -7
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +1 -3
- package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +4 -10
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManageEvents.ts +38 -0
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +417 -35
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +0 -2
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +0 -6
- package/front_end/third_party/puppeteer/package/src/common/PDFOptions.ts +63 -25
- package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +2 -6
- package/front_end/third_party/puppeteer/package/src/common/util.ts +3 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +5 -14
- package/front_end/third_party/puppeteer/package/src/node/FirefoxLauncher.ts +3 -21
- package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +2 -19
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -2
- package/front_end/third_party/third-party-web/README.chromium +2 -2
- package/front_end/third_party/third-party-web/lib/nostats-subset.js +1 -1
- package/front_end/third_party/third-party-web/package/README.md +586 -573
- package/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +1 -1
- package/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +1 -1
- package/front_end/third_party/third-party-web/package/dist/entities-nostats.json +1 -1
- package/front_end/third_party/third-party-web/package/dist/entities.json +1 -1
- package/front_end/third_party/third-party-web/package/facades.md +46 -0
- package/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +1 -1
- package/front_end/third_party/third-party-web/package/lib/index.test.js +6 -6
- package/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +36 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +9 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +5 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/template.md +151 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +1 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +1 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +1 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +14 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +1 -0
- package/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +3 -0
- package/front_end/third_party/third-party-web/package/nostats-subset.d.ts +1 -0
- package/front_end/third_party/third-party-web/package/package.json +5 -4
- package/front_end/third_party/third-party-web/package.json +2 -1
- package/front_end/third_party/third-party-web/rebuild.sh +8 -0
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +9 -5
- package/front_end/ui/components/adorners/Adorner.ts +15 -17
- package/front_end/ui/components/buttons/Button.test.ts +26 -6
- package/front_end/ui/components/buttons/Button.ts +16 -34
- package/front_end/ui/components/buttons/button.css +8 -18
- package/front_end/ui/components/buttons/buttons.ts +2 -0
- package/front_end/ui/components/cards/Card.test.ts +81 -72
- package/front_end/ui/components/cards/Card.ts +85 -54
- package/front_end/ui/components/cards/card.css +40 -36
- package/front_end/ui/components/chrome_link/ChromeLink.test.ts +6 -6
- package/front_end/ui/components/chrome_link/ChromeLink.ts +4 -6
- package/front_end/ui/components/code_highlighter/code_highlighter.ts +2 -2
- package/front_end/ui/components/dialogs/ButtonDialog.ts +6 -4
- package/front_end/ui/components/dialogs/Dialog.ts +18 -13
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +7 -5
- package/front_end/ui/components/dialogs/dialog.css +6 -1
- package/front_end/ui/components/dialogs/shortcutDialog.css +1 -22
- package/front_end/ui/components/diff_view/DiffView.ts +20 -14
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.ts +4 -4
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.ts +8 -8
- package/front_end/ui/components/docs/building-ui-documentation/StylingComponents.md +5 -1
- package/front_end/ui/components/docs/{data_grid → combo_box}/basic.html +2 -11
- package/front_end/ui/components/docs/combo_box/basic.ts +49 -0
- package/front_end/ui/components/docs/create_breadcrumbs.ts +4 -4
- package/front_end/ui/components/docs/dialog/basic.ts +1 -1
- package/front_end/ui/components/docs/dialog/button_dialog.ts +1 -1
- package/front_end/ui/components/docs/dialog/shortcut_dialog.ts +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/helpers.ts +1 -1
- package/front_end/ui/components/docs/expandable_list/basic.ts +2 -2
- package/front_end/ui/components/docs/icon_component/basic.ts +8 -34
- package/front_end/ui/components/docs/linkifier/simple-url.ts +1 -1
- package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +3 -3
- package/front_end/ui/components/docs/performance_panel/flamechart.ts +8 -8
- package/front_end/ui/components/docs/performance_panel/network_request_details.ts +2 -1
- package/front_end/ui/components/docs/performance_panel/overview.ts +2 -2
- package/front_end/ui/components/docs/performance_panel/track_example.ts +4 -4
- package/front_end/ui/components/docs/recorder_control_button/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_recording_list_view/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_recording_view/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_select_button/basic.ts +4 -4
- package/front_end/ui/components/docs/recorder_split_view/basic.ts +1 -1
- package/front_end/ui/components/docs/report/basic.ts +3 -3
- package/front_end/ui/components/docs/theme_colors/basic.ts +4 -4
- package/front_end/ui/components/docs/{data_grid_controller → tooltip}/basic.html +2 -12
- package/front_end/ui/components/docs/tooltip/basic.ts +64 -0
- package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +4 -4
- package/front_end/ui/components/expandable_list/ExpandableList.test.ts +1 -3
- package/front_end/ui/components/expandable_list/ExpandableList.ts +11 -7
- package/front_end/ui/components/floating_button/FloatingButton.ts +8 -4
- package/front_end/ui/components/helpers/directives.ts +7 -7
- package/front_end/ui/components/helpers/helpers.test.ts +3 -5
- package/front_end/ui/components/highlighting/HighlightManager.ts +5 -1
- package/front_end/ui/components/icon_button/FileSourceIcon.ts +5 -6
- package/front_end/ui/components/icon_button/Icon.ts +5 -19
- package/front_end/ui/components/icon_button/IconButton.ts +9 -12
- package/front_end/ui/components/icon_button/iconButton.css +13 -9
- package/front_end/ui/components/input/input.ts +10 -2
- package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -8
- package/front_end/ui/components/issue_counter/IssueLinkIcon.test.ts +1 -4
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +9 -5
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.test.ts +6 -4
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +21 -6
- package/front_end/ui/components/linkifier/LinkifierUtils.ts +1 -1
- package/front_end/ui/components/markdown_view/CodeBlock.test.ts +12 -22
- package/front_end/ui/components/markdown_view/CodeBlock.ts +14 -15
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +10 -6
- package/front_end/ui/components/markdown_view/MarkdownLink.test.ts +4 -2
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +6 -4
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +19 -17
- package/front_end/ui/components/markdown_view/MarkdownView.ts +81 -35
- package/front_end/ui/components/markdown_view/markdownView.css +15 -0
- package/front_end/ui/components/menus/Menu.ts +39 -9
- package/front_end/ui/components/menus/README.md +10 -2
- package/front_end/ui/components/menus/SelectMenu.test.ts +1 -3
- package/front_end/ui/components/menus/SelectMenu.ts +20 -12
- package/front_end/ui/components/menus/menu.css +1 -1
- package/front_end/ui/components/menus/menuGroup.css +0 -1
- package/front_end/ui/components/menus/menuItem.css +11 -3
- package/front_end/ui/components/node_text/NodeText.ts +9 -5
- package/front_end/ui/components/panel_feedback/FeedbackButton.test.ts +5 -3
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +3 -7
- package/front_end/ui/components/panel_feedback/PanelFeedback.test.ts +5 -3
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +6 -4
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +5 -3
- package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +7 -4
- package/front_end/ui/components/report_view/ReportView.test.ts +2 -4
- package/front_end/ui/components/report_view/ReportView.ts +37 -20
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.test.ts +1 -4
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +11 -7
- package/front_end/ui/components/settings/SettingCheckbox.ts +10 -6
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +9 -5
- package/front_end/ui/components/spinners/Spinner.ts +6 -4
- package/front_end/ui/components/split_view/SplitView.ts +2 -4
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +11 -9
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +16 -9
- package/front_end/ui/components/survey_link/SurveyLink.ts +4 -10
- package/front_end/ui/components/switch/SwitchImpl.test.ts +0 -1
- package/front_end/ui/components/switch/SwitchImpl.ts +7 -5
- package/front_end/ui/components/switch/switch.css +18 -0
- package/front_end/ui/components/text_editor/TextEditor.test.ts +5 -3
- package/front_end/ui/components/text_editor/TextEditor.ts +2 -4
- package/front_end/ui/components/text_prompt/TextPrompt.ts +4 -9
- package/front_end/ui/components/text_prompt/textPrompt.css +6 -1
- package/front_end/ui/components/tooltip/Tooltip.test.ts +55 -0
- package/front_end/ui/components/tooltip/Tooltip.ts +146 -0
- package/front_end/ui/components/tooltip/tooltip.css +41 -0
- package/front_end/ui/components/tooltip/tooltips.ts +7 -0
- package/front_end/ui/components/tree_outline/TreeOutline.test.ts +2 -4
- package/front_end/ui/components/tree_outline/TreeOutline.ts +15 -14
- package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +8 -8
- package/front_end/ui/components/tree_outline/treeOutline.css +5 -3
- package/front_end/ui/legacy/ARIAUtils.ts +5 -5
- package/front_end/ui/legacy/ActionRegistration.ts +4 -4
- package/front_end/ui/legacy/Context.ts +3 -3
- package/front_end/ui/legacy/ContextMenu.ts +8 -2
- package/front_end/ui/legacy/Dialog.ts +4 -4
- package/front_end/ui/legacy/DockController.ts +5 -5
- package/front_end/ui/legacy/DropTarget.ts +1 -1
- package/front_end/ui/legacy/EmptyWidget.ts +16 -12
- package/front_end/ui/legacy/FilterBar.test.ts +3 -3
- package/front_end/ui/legacy/FilterBar.ts +29 -12
- package/front_end/ui/legacy/Geometry.ts +3 -11
- package/front_end/ui/legacy/GlassPane.ts +3 -7
- package/front_end/ui/legacy/Infobar.ts +5 -13
- package/front_end/ui/legacy/InspectorView.ts +15 -11
- package/front_end/ui/legacy/ListModel.ts +3 -3
- package/front_end/ui/legacy/ListWidget.ts +24 -15
- package/front_end/ui/legacy/PopoverHelper.ts +1 -1
- package/front_end/ui/legacy/ProgressIndicator.ts +8 -5
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +1 -1
- package/front_end/ui/legacy/ReportView.ts +5 -5
- package/front_end/ui/legacy/ResizerWidget.ts +6 -6
- package/front_end/ui/legacy/RootView.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +7 -5
- package/front_end/ui/legacy/SettingsUI.ts +8 -17
- package/front_end/ui/legacy/SoftContextMenu.ts +1 -1
- package/front_end/ui/legacy/SoftDropDown.ts +2 -2
- package/front_end/ui/legacy/SplitWidget.test.ts +1 -2
- package/front_end/ui/legacy/SplitWidget.ts +10 -5
- package/front_end/ui/legacy/SuggestBox.ts +1 -1
- package/front_end/ui/legacy/TabbedPane.ts +36 -16
- package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -1
- package/front_end/ui/legacy/TextPrompt.ts +4 -4
- package/front_end/ui/legacy/ThrottledWidget.ts +7 -2
- package/front_end/ui/legacy/Toolbar.test.ts +100 -17
- package/front_end/ui/legacy/Toolbar.ts +141 -178
- package/front_end/ui/legacy/Treeoutline.ts +12 -14
- package/front_end/ui/legacy/UIUtils.test.ts +13 -17
- package/front_end/ui/legacy/UIUtils.ts +21 -36
- package/front_end/ui/legacy/ViewManager.ts +14 -11
- package/front_end/ui/legacy/Widget.test.ts +39 -29
- package/front_end/ui/legacy/Widget.ts +83 -30
- package/front_end/ui/legacy/XLink.test.ts +4 -6
- package/front_end/ui/legacy/XLink.ts +1 -3
- package/front_end/ui/legacy/ZoomManager.ts +3 -3
- package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts +5 -5
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +7 -5
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +3 -3
- package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +5 -5
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +22 -18
- package/front_end/ui/legacy/components/color_picker/spectrum.css +3 -3
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +2 -5
- package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +1 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +88 -38
- package/front_end/ui/legacy/components/data_grid/DataGridElement.test.ts +269 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +470 -0
- package/front_end/ui/legacy/components/data_grid/SortableDataGrid.ts +6 -0
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +110 -15
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +4 -2
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +2 -2
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +15 -15
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +4 -4
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +9 -5
- package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +10 -6
- package/front_end/ui/legacy/components/inline_editor/CSSAngleSwatch.ts +8 -4
- package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts +9 -9
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +5 -4
- package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +7 -5
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +10 -6
- package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +8 -9
- package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.ts +0 -13
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +11 -7
- package/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts +4 -4
- package/front_end/ui/legacy/components/inline_editor/Swatches.ts +11 -13
- package/front_end/ui/legacy/components/inline_editor/fontEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +0 -2
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +1 -2
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +3 -3
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +3 -3
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +3 -4
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +7 -7
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +23 -15
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +26 -9
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +19 -17
- package/front_end/ui/legacy/components/perf_ui/FlameChart.test.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +158 -147
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +7 -13
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +6 -4
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.test.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +1 -14
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +17 -17
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +32 -37
- package/front_end/ui/legacy/components/perf_ui/overviewGrid.css +1 -1
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +31 -28
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +9 -7
- package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +8 -12
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +39 -54
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +8 -7
- package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +7 -3
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.test.ts +4 -2
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +6 -4
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +1 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -7
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
- package/front_end/ui/legacy/components/utils/Linkifier.test.ts +7 -7
- package/front_end/ui/legacy/components/utils/Linkifier.ts +6 -7
- package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +3 -12
- package/front_end/ui/legacy/dialog.css +2 -1
- package/front_end/ui/legacy/emptyWidget.css +0 -21
- package/front_end/ui/legacy/filter.css +3 -1
- package/front_end/ui/legacy/infobar.css +14 -2
- package/front_end/ui/legacy/inspectorCommon.css +635 -144
- package/front_end/ui/legacy/inspectorViewTabbedPane.css +1 -1
- package/front_end/ui/legacy/reportView.css +1 -1
- package/front_end/ui/legacy/searchableView.css +1 -1
- package/front_end/ui/legacy/softContextMenu.css +1 -1
- package/front_end/ui/legacy/tabbedPane.css +118 -21
- package/front_end/ui/legacy/textPrompt.css +1 -0
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +0 -5
- package/front_end/ui/legacy/toolbar.css +11 -543
- package/front_end/ui/legacy/treeoutline.css +7 -7
- package/front_end/ui/legacy/viewContainers.css +3 -3
- package/front_end/ui/{lit-html → lit}/i18n-template.test.ts +5 -7
- package/front_end/ui/visual_logging/Debugging.ts +58 -33
- package/front_end/ui/visual_logging/KnownContextValues.ts +65 -10
- package/front_end/ui/visual_logging/visual_logging.ts +2 -2
- package/inspector_overlay/common.ts +0 -1
- package/inspector_overlay/css_grid_label_helpers.ts +1 -1
- package/inspector_overlay/drag_resize_handler.ts +4 -4
- package/inspector_overlay/highlight_common.ts +0 -1
- package/inspector_overlay/main.ts +12 -13
- package/inspector_overlay/resources.grd +1 -1
- package/inspector_overlay/testing/InspectorOverlayHelpers.ts +3 -3
- package/inspector_overlay/tool_highlight.css +2 -2
- package/inspector_overlay/tool_highlight.ts +0 -1
- package/inspector_overlay/tool_persistent.ts +7 -13
- package/inspector_overlay/tool_screenshot.ts +6 -6
- package/inspector_overlay/tool_source_order.ts +1 -2
- package/package.json +21 -24
- package/scripts/add_icon_paths.py +71 -0
- package/scripts/ai_assistance/README.md +4 -4
- package/scripts/ai_assistance/auto-run-helpers.js +82 -0
- package/scripts/ai_assistance/auto-run.js +349 -113
- package/scripts/ai_assistance/auto-run.test.js +88 -0
- package/scripts/ai_assistance/to_tsv.mjs +2 -3
- package/scripts/ai_assistance/tsconfig.json +15 -0
- package/scripts/ai_assistance/types.d.ts +2 -1
- package/scripts/build/compress_files.js +2 -2
- package/scripts/build/cross_reference_ninja_and_tsc.js +27 -16
- package/scripts/build/devtools_plugin.js +2 -2
- package/scripts/build/esbuild.js +2 -1
- package/scripts/build/generate_css_js_files.js +13 -57
- package/scripts/build/generate_deprecations.py +0 -2
- package/scripts/build/generate_devtools_grd.py +1 -2
- package/scripts/build/generate_html_entrypoint.js +1 -0
- package/scripts/build/generate_supported_css.py +1 -1
- package/scripts/build/ninja/copy-file.js +6 -4
- package/scripts/build/ninja/copy-files.js +1 -0
- package/scripts/build/ninja/generate-declaration.js +1 -0
- package/scripts/build/ninja/generate-tsconfig.js +0 -1
- package/scripts/build/ninja/generate_css.gni +1 -16
- package/scripts/build/ninja/minify-json-files.js +1 -0
- package/scripts/build/rollup.config.mjs +1 -1
- package/scripts/build/tests/generate_css_js_files_test.js +5 -56
- package/scripts/build/typescript/ts_library.py +24 -1
- package/scripts/check_esbuild_versions.js +1 -1
- package/scripts/check_experiments.js +10 -7
- package/scripts/component_server/server.js +4 -7
- package/scripts/devtools_paths.js +6 -6
- package/scripts/eslint_rules/README.md +5 -1
- package/scripts/eslint_rules/lib/canvas-context-tracking.js +3 -0
- package/scripts/eslint_rules/lib/check-css-import.js +7 -3
- package/scripts/eslint_rules/lib/check-enumerated-histograms.js +3 -0
- package/scripts/eslint_rules/lib/check-license-header.js +7 -2
- package/scripts/eslint_rules/lib/check-test-definitions.js +5 -1
- package/scripts/eslint_rules/lib/check-was-shown-methods.js +3 -0
- package/scripts/eslint_rules/lib/enforce-bound-render-for-schedule-render.js +3 -0
- package/scripts/eslint_rules/lib/enforce-custom-event-names.js +3 -0
- package/scripts/eslint_rules/lib/enforce-default-import-name.js +5 -1
- package/scripts/eslint_rules/lib/enforce-optional-properties-last.js +4 -1
- package/scripts/eslint_rules/lib/es-modules-import.js +26 -1
- package/scripts/eslint_rules/lib/html-tagged-template.js +8 -4
- package/scripts/eslint_rules/lib/inject-checkbox-styles.js +7 -2
- package/scripts/eslint_rules/lib/inline-type-imports.js +3 -0
- package/scripts/eslint_rules/lib/jslog-context-list.js +4 -1
- package/scripts/eslint_rules/lib/l10n-filename-matches.js +42 -23
- package/scripts/eslint_rules/lib/l10n-helper.js +5 -3
- package/scripts/eslint_rules/lib/l10n-i18nString-call-only-with-uistrings.js +3 -0
- package/scripts/eslint_rules/lib/l10n-no-i18nString-calls-module-instantiation.js +5 -1
- package/scripts/eslint_rules/lib/l10n-no-locked-or-placeholder-only-phrase.js +3 -0
- package/scripts/eslint_rules/lib/l10n-no-uistrings-export.js +14 -5
- package/scripts/eslint_rules/lib/l10n-no-unused-message.js +12 -2
- package/scripts/eslint_rules/lib/{lit-html-no-attribute-quotes.js → lit-no-attribute-quotes.js} +4 -1
- package/scripts/eslint_rules/lib/lit-template-result-or-nothing.js +44 -26
- package/scripts/eslint_rules/lib/{no-a-tags-in-lit-html.js → no-a-tags-in-lit.js} +3 -0
- package/scripts/eslint_rules/lib/no-assert-equal.js +3 -0
- package/scripts/eslint_rules/lib/no-assert-strict-equal-for-arrays-and-objects.js +3 -0
- package/scripts/eslint_rules/lib/no-bound-component-methods.js +4 -1
- package/scripts/eslint_rules/lib/no-commented-out-console.js +4 -1
- package/scripts/eslint_rules/lib/no-commented-out-import.js +4 -1
- package/scripts/eslint_rules/lib/no-customized-builtin-elements.js +3 -0
- package/scripts/eslint_rules/lib/no-importing-images-from-src.js +3 -0
- package/scripts/eslint_rules/lib/no-imports-in-directory.js +5 -1
- package/scripts/eslint_rules/lib/no-it-screenshot-only-or-repeat.js +3 -0
- package/scripts/eslint_rules/lib/no-new-lit-element-components.js +4 -2
- package/scripts/eslint_rules/lib/no-only-eslint-tests.js +4 -1
- package/scripts/eslint_rules/lib/no-screenshot-test-outside-perf-panel.js +8 -3
- package/scripts/eslint_rules/lib/no-self-closing-custom-element-tagnames.js +3 -0
- package/scripts/eslint_rules/lib/no-underscored-properties.js +3 -0
- package/scripts/eslint_rules/lib/prefer-private-class-members.js +12 -2
- package/scripts/eslint_rules/lib/prefer-url-string.js +95 -0
- package/scripts/eslint_rules/lib/screenshot-assertion-in-it-screenshot.js +3 -0
- package/scripts/eslint_rules/lib/set-data-type-reference.js +3 -0
- package/scripts/eslint_rules/lib/single-screenshot-assertion-per-test.js +3 -0
- package/scripts/eslint_rules/lib/static-custom-event-names.js +3 -0
- package/scripts/eslint_rules/lib/trace-engine-test-timeouts.js +3 -0
- package/scripts/eslint_rules/lib/utils.js +8 -8
- package/scripts/eslint_rules/tests/canvas-context-tracking.test.js +8 -6
- package/scripts/eslint_rules/tests/check-css-import.test.js +12 -21
- package/scripts/eslint_rules/tests/check-enumerated-histograms.test.js +16 -14
- package/scripts/eslint_rules/tests/check-license-header.test.js +9 -11
- package/scripts/eslint_rules/tests/check-test-definitions.test.js +11 -6
- package/scripts/eslint_rules/tests/check-was-shown-methods.test.js +9 -11
- package/scripts/eslint_rules/tests/enforce-bound-render-for-schedule-render.test.js +8 -6
- package/scripts/eslint_rules/tests/enforce-custom-event-names.test.js +9 -11
- package/scripts/eslint_rules/tests/enforce-default-import-name.test.js +23 -7
- package/scripts/eslint_rules/tests/enforce-optional-properties-last.test.js +3 -7
- package/scripts/eslint_rules/tests/es-modules-import.test.js +108 -65
- package/scripts/eslint_rules/tests/html-tagged-template.test.js +25 -26
- package/scripts/eslint_rules/tests/inject-checkbox-styles.test.js +25 -21
- package/scripts/eslint_rules/tests/inline-type-imports.test.js +3 -6
- package/scripts/eslint_rules/tests/jslog-context-list.test.js +46 -35
- package/scripts/eslint_rules/tests/l10n-filename-matches.test.js +92 -18
- package/scripts/eslint_rules/tests/l10n-i18nString-call-only-with-uistrings.test.js +6 -7
- package/scripts/eslint_rules/tests/l10n-no-i18nString-calls-module-instantiation.test.js +10 -8
- package/scripts/eslint_rules/tests/l10n-no-locked-or-placeholder-only-phrase.test.js +12 -7
- package/scripts/eslint_rules/tests/l10n-no-uistrings-export.test.js +13 -8
- package/scripts/eslint_rules/tests/l10n-no-unused-message.test.js +7 -7
- package/scripts/eslint_rules/tests/{lit-html-no-attribute-quotes.test.js → lit-no-attribute-quotes.test.js} +11 -12
- package/scripts/eslint_rules/tests/lit-template-result-or-nothing.test.js +32 -35
- package/scripts/eslint_rules/tests/no-a-tags-in-lit.test.js +69 -0
- package/scripts/eslint_rules/tests/no-assert-deep-strict-equal.test.js +2 -3
- package/scripts/eslint_rules/tests/no-assert-equal-boolean-null-undefined.test.js +2 -3
- package/scripts/eslint_rules/tests/no-assert-equal.test.js +2 -3
- package/scripts/eslint_rules/tests/no-assert-strict-equal-for-arrays-and-objects.test.js +3 -4
- package/scripts/eslint_rules/tests/no-bound-component-methods.test.js +24 -12
- package/scripts/eslint_rules/tests/no-commented-out-console.test.js +3 -6
- package/scripts/eslint_rules/tests/no-commented-out-import.test.js +3 -6
- package/scripts/eslint_rules/tests/no-customized-builtin-elements.test.js +2 -3
- package/scripts/eslint_rules/tests/no-importing-images-from-src.test.js +12 -11
- package/scripts/eslint_rules/tests/no-imports-in-directory.test.js +84 -22
- package/scripts/eslint_rules/tests/no-it-screenshot-only-or-repeat.test.js +3 -6
- package/scripts/eslint_rules/tests/no-new-lit-element-components.test.js +3 -6
- package/scripts/eslint_rules/tests/no-only-eslint-tests.test.js +11 -6
- package/scripts/eslint_rules/tests/no-screenshot-test-outside-perf-panel.test.js +3 -4
- package/scripts/eslint_rules/tests/no-self-closing-custom-element-tagnames.test.js +17 -20
- package/scripts/eslint_rules/tests/no-underscored-properties.test.js +19 -12
- package/scripts/eslint_rules/tests/prefer-assert-instance-of.test.js +2 -3
- package/scripts/eslint_rules/tests/prefer-assert-is-ok.test.js +2 -3
- package/scripts/eslint_rules/tests/prefer-assert-length-of.test.js +2 -3
- package/scripts/eslint_rules/tests/prefer-private-class-members.test.js +3 -6
- package/scripts/eslint_rules/tests/prefer-readonly-keyword.test.js +7 -10
- package/scripts/eslint_rules/tests/prefer-url-string.test.js +87 -0
- package/scripts/eslint_rules/tests/screenshot-assertion-in-it-screenshot.test.js +3 -6
- package/scripts/eslint_rules/tests/set-data-type-reference.test.js +18 -10
- package/scripts/eslint_rules/tests/single-screenshot-assertion-per-test.test.js +3 -6
- package/scripts/eslint_rules/tests/static-custom-event-names.test.js +13 -13
- package/scripts/eslint_rules/tests/trace-engine-test-timeouts.test.js +3 -5
- package/scripts/eslint_rules/tests/utils/utils.js +18 -0
- package/scripts/eslint_rules/tests/utils.test.js +9 -9
- package/scripts/javascript_natives/index.js +14 -6
- package/scripts/migration/web-tests-esm/rename-legacy-global.mjs +4 -4
- package/scripts/npm_test.js +1 -0
- package/scripts/reformat-clang-js-ts.js +1 -2
- package/scripts/run_on_target.mjs +1 -1
- package/scripts/search-trace-files.js +1 -1
- package/scripts/stylelint_rules/lib/use_theme_colors.mjs +25 -41
- package/scripts/stylelint_rules/tests/{use_theme_colors_test.js → use_theme_colors.test.js} +14 -2
- package/scripts/utils.js +23 -14
- package/scripts/watch_build.js +19 -76
- package/tsconfig.json +2 -1
- package/front_end/core/sdk/CPUProfileDataModel.ts +0 -17
- package/front_end/core/sdk/ProfileTreeModel.ts +0 -17
- package/front_end/panels/application/reportingApiReportsView.css +0 -18
- package/front_end/panels/emulation/deviceModeToolbar.css +0 -14
- package/front_end/panels/protocol_monitor/components/Toolbar.ts +0 -91
- package/front_end/panels/protocol_monitor/components/components.ts +0 -11
- package/front_end/panels/protocol_monitor/components/toolbar.css +0 -31
- package/front_end/panels/recorder/components/StartView.ts +0 -133
- package/front_end/panels/timeline/historyToolbarButton.css +0 -81
- package/front_end/panels/timeline/utils/NetworkRequest.ts +0 -40
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.d.ts +0 -26
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.js +0 -311
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.js.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FirefoxTargetManager.d.ts +0 -36
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FirefoxTargetManager.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FirefoxTargetManager.js +0 -154
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FirefoxTargetManager.js.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.d.ts +0 -26
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.js +0 -307
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.js.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FirefoxTargetManager.d.ts +0 -36
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FirefoxTargetManager.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FirefoxTargetManager.js +0 -150
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FirefoxTargetManager.js.map +0 -1
- package/front_end/third_party/puppeteer/package/src/cdp/ChromeTargetManager.ts +0 -438
- package/front_end/third_party/puppeteer/package/src/cdp/FirefoxTargetManager.ts +0 -214
- package/front_end/third_party/third-party-web/package/.prettierrc +0 -10
- package/front_end/ui/components/data_grid/DataGrid.test.ts +0 -1056
- package/front_end/ui/components/data_grid/DataGrid.ts +0 -963
- package/front_end/ui/components/data_grid/DataGridContextMenuUtils.ts +0 -67
- package/front_end/ui/components/data_grid/DataGridController.test.ts +0 -431
- package/front_end/ui/components/data_grid/DataGridController.ts +0 -302
- package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +0 -49
- package/front_end/ui/components/data_grid/DataGridEvents.ts +0 -121
- package/front_end/ui/components/data_grid/DataGridRenderers.ts +0 -27
- package/front_end/ui/components/data_grid/DataGridUtils.ts +0 -259
- package/front_end/ui/components/data_grid/README.md +0 -118
- package/front_end/ui/components/data_grid/dataGrid.css +0 -188
- package/front_end/ui/components/data_grid/dataGridController.css +0 -11
- package/front_end/ui/components/data_grid/data_grid.ts +0 -18
- package/front_end/ui/components/docs/data_grid/adding-data.html +0 -35
- package/front_end/ui/components/docs/data_grid/adding-data.ts +0 -61
- package/front_end/ui/components/docs/data_grid/basic.ts +0 -27
- package/front_end/ui/components/docs/data_grid/empty.html +0 -31
- package/front_end/ui/components/docs/data_grid/empty.ts +0 -21
- package/front_end/ui/components/docs/data_grid/hide-cols.html +0 -35
- package/front_end/ui/components/docs/data_grid/hide-cols.ts +0 -59
- package/front_end/ui/components/docs/data_grid/large-data.html +0 -30
- package/front_end/ui/components/docs/data_grid/large-data.ts +0 -43
- package/front_end/ui/components/docs/data_grid/sticky-headers.html +0 -30
- package/front_end/ui/components/docs/data_grid/sticky-headers.ts +0 -44
- package/front_end/ui/components/docs/data_grid/three_columns.html +0 -29
- package/front_end/ui/components/docs/data_grid/three_columns.ts +0 -44
- package/front_end/ui/components/docs/data_grid_controller/basic.ts +0 -45
- package/front_end/ui/components/docs/data_grid_controller/custom-context-menu-items.html +0 -28
- package/front_end/ui/components/docs/data_grid_controller/custom-context-menu-items.ts +0 -34
- package/front_end/ui/components/docs/data_grid_controller/filter.html +0 -40
- package/front_end/ui/components/docs/data_grid_controller/filter.ts +0 -298
- package/front_end/ui/components/docs/recorder_start_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_start_view/basic.ts +0 -13
- package/front_end/ui/legacy/applicationColorTokens.css +0 -61
- package/front_end/ui/legacy/components/data_grid/DataGridWithPreview.ts +0 -297
- package/front_end/ui/legacy/components/inline_editor/CSSLength.test.ts +0 -75
- package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +0 -156
- package/front_end/ui/legacy/components/inline_editor/cssLength.css +0 -27
- package/front_end/ui/legacy/designTokens.css +0 -115
- package/front_end/ui/legacy/inspectorSyntaxHighlight.css +0 -131
- package/front_end/ui/legacy/themeColors.css +0 -796
- package/front_end/ui/legacy/tokens.css +0 -202
- package/scripts/check_enumerated_histograms.js +0 -101
- package/scripts/eslint_rules/lib/lit-html-host-this.js +0 -86
- package/scripts/eslint_rules/lib/no-style-tags-in-lit-html.js +0 -51
- package/scripts/eslint_rules/tests/lit-html-host-this.test.js +0 -48
- package/scripts/eslint_rules/tests/no-a-tags-in-lit-html.test.js +0 -64
- package/scripts/eslint_rules/tests/no-style-tags-in-lit-html.test.js +0 -61
- /package/front_end/ui/{legacy → components/buttons}/textButton.css +0 -0
- /package/front_end/ui/{lit-html → lit}/i18n-template.ts +0 -0
- /package/front_end/ui/{lit-html/lit-html.ts → lit/lit.ts} +0 -0
- /package/front_end/ui/{lit-html → lit}/visibility.gni +0 -0
@@ -1,963 +0,0 @@
|
|
1
|
-
// Copyright (c) 2020 The Chromium Authors. All rights reserved.
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
3
|
-
// found in the LICENSE file.
|
4
|
-
|
5
|
-
import * as Host from '../../../core/host/host.js';
|
6
|
-
import * as i18n from '../../../core/i18n/i18n.js';
|
7
|
-
import * as Platform from '../../../core/platform/platform.js';
|
8
|
-
import * as UI from '../../legacy/legacy.js';
|
9
|
-
import * as LitHtml from '../../lit-html/lit-html.js';
|
10
|
-
import * as VisualLogging from '../../visual_logging/visual_logging.js';
|
11
|
-
import * as RenderCoordinator from '../render_coordinator/render_coordinator.js';
|
12
|
-
|
13
|
-
import dataGridStyles from './dataGrid.css.js';
|
14
|
-
import {addColumnVisibilityCheckboxes, addSortableColumnItems} from './DataGridContextMenuUtils.js';
|
15
|
-
import {
|
16
|
-
BodyCellFocusedEvent,
|
17
|
-
ColumnHeaderClickEvent,
|
18
|
-
ContextMenuHeaderResetClickEvent,
|
19
|
-
RowMouseEnterEvent,
|
20
|
-
RowMouseLeaveEvent,
|
21
|
-
} from './DataGridEvents.js';
|
22
|
-
import {
|
23
|
-
calculateColumnWidthPercentageFromWeighting,
|
24
|
-
calculateFirstFocusableCell,
|
25
|
-
type CellPosition,
|
26
|
-
type Column,
|
27
|
-
getCellTitleFromCellContent,
|
28
|
-
getRowEntryForColumnId,
|
29
|
-
handleArrowKeyNavigation,
|
30
|
-
renderCellValue,
|
31
|
-
type Row,
|
32
|
-
SortDirection,
|
33
|
-
type SortState,
|
34
|
-
} from './DataGridUtils.js';
|
35
|
-
|
36
|
-
const {html, Directives: {ifDefined, classMap, styleMap, repeat}} = LitHtml;
|
37
|
-
const UIStrings = {
|
38
|
-
/**
|
39
|
-
*@description A context menu item in the Data Grid of a data grid
|
40
|
-
*/
|
41
|
-
sortBy: 'Sort By',
|
42
|
-
/**
|
43
|
-
*@description A context menu item in data grids to reset the columns to their default weight
|
44
|
-
*/
|
45
|
-
resetColumns: 'Reset Columns',
|
46
|
-
/**
|
47
|
-
*@description A context menu item in data grids to list header options.
|
48
|
-
*/
|
49
|
-
headerOptions: 'Header Options',
|
50
|
-
/**
|
51
|
-
*@description Text for screen reader to announce when focusing on a sortable column in data grid.
|
52
|
-
*@example {ascending} PH1
|
53
|
-
*/
|
54
|
-
enterToSort: 'Column sort state: {PH1}. Press enter to apply sorting filter',
|
55
|
-
/**
|
56
|
-
*@description The current sort state of a column in data grid
|
57
|
-
*/
|
58
|
-
sortAsc: 'ascending',
|
59
|
-
/**
|
60
|
-
*@description The current sort state of a column in data grid
|
61
|
-
*/
|
62
|
-
sortDesc: 'descending',
|
63
|
-
/**
|
64
|
-
*@description The current sort state of a column in data grid
|
65
|
-
*/
|
66
|
-
sortNone: 'none',
|
67
|
-
};
|
68
|
-
const str_ = i18n.i18n.registerUIStrings('ui/components/data_grid/DataGrid.ts', UIStrings);
|
69
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
70
|
-
export interface DataGridContextMenusConfiguration {
|
71
|
-
headerRow?: (menu: UI.ContextMenu.ContextMenu, columns: readonly Column[]) => void;
|
72
|
-
bodyRow?:
|
73
|
-
(menu: UI.ContextMenu.ContextMenu, columns: readonly Column[], row: Readonly<Row>, rows: readonly Row[]) => void;
|
74
|
-
}
|
75
|
-
|
76
|
-
export interface DataGridData {
|
77
|
-
columns: Column[];
|
78
|
-
rows: Row[];
|
79
|
-
activeSort: SortState|null;
|
80
|
-
contextMenus?: DataGridContextMenusConfiguration;
|
81
|
-
label?: string;
|
82
|
-
paddingRowsCount?: number;
|
83
|
-
showScrollbar?: boolean;
|
84
|
-
striped?: boolean;
|
85
|
-
/**
|
86
|
-
* Disable the auto-scroll on new data feature. This is enabled by default.
|
87
|
-
*/
|
88
|
-
autoScrollToBottom?: boolean;
|
89
|
-
}
|
90
|
-
|
91
|
-
const enum UserScrollState {
|
92
|
-
NOT_SCROLLED = 'NOT_SCROLLED',
|
93
|
-
MANUAL_SCROLL_NOT_BOTTOM = 'MANUAL_SCROLL_NOT_BOTTOM',
|
94
|
-
SCROLLED_TO_BOTTOM = 'SCROLLED_TO_BOTTOM',
|
95
|
-
}
|
96
|
-
|
97
|
-
const KEYS_TREATED_AS_CLICKS = new Set([' ', 'Enter']);
|
98
|
-
|
99
|
-
const ROW_HEIGHT_PIXELS = 20;
|
100
|
-
|
101
|
-
export class DataGrid extends HTMLElement {
|
102
|
-
|
103
|
-
readonly #shadow = this.attachShadow({mode: 'open'});
|
104
|
-
#columns: readonly Column[] = [];
|
105
|
-
#rows: readonly Row[] = [];
|
106
|
-
#sortState: Readonly<SortState>|null = null;
|
107
|
-
#isRendering = false;
|
108
|
-
#userScrollState: UserScrollState = UserScrollState.NOT_SCROLLED;
|
109
|
-
#contextMenus?: DataGridContextMenusConfiguration = undefined;
|
110
|
-
#label?: string = undefined;
|
111
|
-
#paddingRowsCount = 10;
|
112
|
-
#showScrollbar?: boolean = false;
|
113
|
-
#striped?: boolean = false;
|
114
|
-
#autoScrollToBottom: boolean = true;
|
115
|
-
|
116
|
-
#currentResize: {
|
117
|
-
rightCellCol: HTMLTableColElement,
|
118
|
-
leftCellCol: HTMLTableColElement,
|
119
|
-
leftCellColInitialPercentageWidth: number,
|
120
|
-
rightCellColInitialPercentageWidth: number,
|
121
|
-
initialLeftCellWidth: number,
|
122
|
-
initialRightCellWidth: number,
|
123
|
-
initialMouseX: number,
|
124
|
-
documentForCursorChange: Document,
|
125
|
-
cursorToRestore: string,
|
126
|
-
}|null = null;
|
127
|
-
// Because we only render a subset of rows, we need a way to look up the
|
128
|
-
// actual row index from the original dataset. We could use this.rows[index]
|
129
|
-
// but that's O(n) and will slow as the dataset grows. A weakmap makes the
|
130
|
-
// lookup constant.
|
131
|
-
readonly #rowIndexMap = new WeakMap<Row, number>();
|
132
|
-
readonly #resizeObserver = new ResizeObserver(() => {
|
133
|
-
void this.#alignScrollHandlers();
|
134
|
-
});
|
135
|
-
|
136
|
-
// Thie have to be bound as they are put onto the global document, not onto
|
137
|
-
// this element, so LitHtml does not bind them for us.
|
138
|
-
#boundOnResizePointerMove = this.#onResizePointerMove.bind(this);
|
139
|
-
|
140
|
-
/**
|
141
|
-
* Following guidance from
|
142
|
-
* https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html, we
|
143
|
-
* allow a single cell inside the table to be focusable, such that when a user
|
144
|
-
* tabs in they select that cell. IMPORTANT: if the data-grid has sortable
|
145
|
-
* columns, the user has to be able to navigate to the headers to toggle the
|
146
|
-
* sort. [0,0] is considered the first cell INCLUDING the column header
|
147
|
-
* Therefore if a user is on the first header cell, the position is considered [0, 0],
|
148
|
-
* and if a user is on the first body cell, the position is considered [0, 1].
|
149
|
-
*
|
150
|
-
* We set the selectable cell to the first tbody value by default, but then on the
|
151
|
-
* first render if any of the columns are sortable we'll set the active cell
|
152
|
-
* to [0, 0].
|
153
|
-
*/
|
154
|
-
#cellToFocusIfUserTabsIn: CellPosition = [0, 1];
|
155
|
-
#cellUserHasFocused: CellPosition|null = null;
|
156
|
-
|
157
|
-
#hasRenderedAtLeastOnce = false;
|
158
|
-
#userHasFocusInDataGrid = false;
|
159
|
-
#scheduleRender = false;
|
160
|
-
|
161
|
-
connectedCallback(): void {
|
162
|
-
this.#shadow.adoptedStyleSheets = [dataGridStyles];
|
163
|
-
this.style.setProperty('--table-row-height', `${ROW_HEIGHT_PIXELS}px`);
|
164
|
-
void this.#render();
|
165
|
-
}
|
166
|
-
|
167
|
-
get data(): DataGridData {
|
168
|
-
return {
|
169
|
-
columns: this.#columns as Column[],
|
170
|
-
rows: this.#rows as Row[],
|
171
|
-
activeSort: this.#sortState,
|
172
|
-
contextMenus: this.#contextMenus,
|
173
|
-
autoScrollToBottom: this.#autoScrollToBottom,
|
174
|
-
label: this.#label,
|
175
|
-
paddingRowsCount: this.#paddingRowsCount,
|
176
|
-
showScrollbar: this.#showScrollbar,
|
177
|
-
striped: this.#striped,
|
178
|
-
};
|
179
|
-
}
|
180
|
-
|
181
|
-
set data(data: DataGridData) {
|
182
|
-
this.#columns = data.columns;
|
183
|
-
this.#rows = data.rows;
|
184
|
-
this.#rows.forEach((row, index) => {
|
185
|
-
this.#rowIndexMap.set(row, index);
|
186
|
-
});
|
187
|
-
this.#sortState = data.activeSort;
|
188
|
-
this.#contextMenus = data.contextMenus;
|
189
|
-
this.#label = data.label;
|
190
|
-
this.#showScrollbar = data.showScrollbar;
|
191
|
-
this.#striped = data.striped;
|
192
|
-
if (typeof data.autoScrollToBottom === 'boolean') {
|
193
|
-
this.#autoScrollToBottom = data.autoScrollToBottom;
|
194
|
-
}
|
195
|
-
|
196
|
-
/**
|
197
|
-
* On first render, now we have data, we can figure out which cell is the
|
198
|
-
* focusable cell for the table.
|
199
|
-
*
|
200
|
-
* If any columns are sortable, we pick [0, 0], which is the first cell of
|
201
|
-
* the columns row. However, if any columns are hidden, we adjust
|
202
|
-
* accordingly. e.g., if the first column is hidden, we'll set the starting
|
203
|
-
* index as [1, 0].
|
204
|
-
*
|
205
|
-
* If the columns aren't sortable, we pick the first visible body row as the
|
206
|
-
* index.
|
207
|
-
*
|
208
|
-
* We only do this on the first render; otherwise if we re-render and the
|
209
|
-
* user has focused a cell, this logic will reset it.
|
210
|
-
*/
|
211
|
-
if (!this.#hasRenderedAtLeastOnce) {
|
212
|
-
this.#cellToFocusIfUserTabsIn = calculateFirstFocusableCell({columns: this.#columns, rows: this.#rows});
|
213
|
-
}
|
214
|
-
|
215
|
-
if (data.paddingRowsCount !== undefined) {
|
216
|
-
this.#paddingRowsCount = data.paddingRowsCount;
|
217
|
-
}
|
218
|
-
|
219
|
-
if (this.#hasRenderedAtLeastOnce && this.#userHasCellFocused()) {
|
220
|
-
const [selectedColIndex, selectedRowIndex] = this.#tabbableCell();
|
221
|
-
const columnOutOfBounds = selectedColIndex > this.#columns.length;
|
222
|
-
const rowOutOfBounds = selectedRowIndex > this.#rows.length;
|
223
|
-
|
224
|
-
/** If the row or column was removed, so the user is out of bounds, we
|
225
|
-
* move them to the last focusable cell, which should be close to where
|
226
|
-
* they were. */
|
227
|
-
if (columnOutOfBounds || rowOutOfBounds) {
|
228
|
-
this.#cellUserHasFocused = [
|
229
|
-
columnOutOfBounds ? this.#columns.length : selectedColIndex,
|
230
|
-
rowOutOfBounds ? this.#rows.length : selectedRowIndex,
|
231
|
-
];
|
232
|
-
}
|
233
|
-
}
|
234
|
-
|
235
|
-
void this.#render();
|
236
|
-
}
|
237
|
-
|
238
|
-
#shouldAutoScrollToBottom(): boolean {
|
239
|
-
if (!this.#autoScrollToBottom) {
|
240
|
-
return false;
|
241
|
-
}
|
242
|
-
|
243
|
-
/**
|
244
|
-
* If the user's last scroll took them to the bottom, then we assume they
|
245
|
-
* want to automatically scroll.
|
246
|
-
*/
|
247
|
-
if (this.#userScrollState === UserScrollState.SCROLLED_TO_BOTTOM) {
|
248
|
-
return true;
|
249
|
-
}
|
250
|
-
|
251
|
-
/**
|
252
|
-
* If the user does not have focus in the data grid (e.g. they haven't
|
253
|
-
* selected a cell), we automatically scroll, as long as the user hasn't
|
254
|
-
* manually scrolled the data-grid to somewhere that isn't the bottom.
|
255
|
-
*/
|
256
|
-
if (!this.#userHasFocusInDataGrid && this.#userScrollState !== UserScrollState.MANUAL_SCROLL_NOT_BOTTOM) {
|
257
|
-
return true;
|
258
|
-
}
|
259
|
-
|
260
|
-
/**
|
261
|
-
* Else, the user has focused a cell, or their last scroll action took them
|
262
|
-
* not to the bottom, so we assume that they don't want to be auto-scrolled.
|
263
|
-
*/
|
264
|
-
return false;
|
265
|
-
}
|
266
|
-
|
267
|
-
#scrollToBottomIfRequired(): void {
|
268
|
-
if (this.#hasRenderedAtLeastOnce === false || !this.#shouldAutoScrollToBottom()) {
|
269
|
-
return;
|
270
|
-
}
|
271
|
-
|
272
|
-
const wrapper = this.#shadow.querySelector('.wrapping-container');
|
273
|
-
if (!wrapper) {
|
274
|
-
return;
|
275
|
-
}
|
276
|
-
|
277
|
-
void RenderCoordinator.scroll(() => {
|
278
|
-
const scrollHeight = wrapper.scrollHeight;
|
279
|
-
wrapper.scrollTo(0, scrollHeight);
|
280
|
-
});
|
281
|
-
}
|
282
|
-
|
283
|
-
#engageResizeObserver(): void {
|
284
|
-
if (!this.#hasRenderedAtLeastOnce) {
|
285
|
-
this.#resizeObserver.observe(this.#shadow.host);
|
286
|
-
}
|
287
|
-
}
|
288
|
-
|
289
|
-
#userHasCellFocused(): boolean {
|
290
|
-
return this.#cellUserHasFocused !== null;
|
291
|
-
}
|
292
|
-
|
293
|
-
#getTableElementForCellUserHasFocused(): HTMLTableCellElement|null {
|
294
|
-
if (!this.#cellUserHasFocused) {
|
295
|
-
return null;
|
296
|
-
}
|
297
|
-
const [columnIndex, rowIndex] = this.#cellUserHasFocused;
|
298
|
-
const cell = this.#shadow.querySelector<HTMLTableCellElement>(
|
299
|
-
`[data-row-index="${rowIndex}"][data-col-index="${columnIndex}"]`);
|
300
|
-
return cell;
|
301
|
-
}
|
302
|
-
|
303
|
-
#focusTableCellInDOM(cell: HTMLTableCellElement): void {
|
304
|
-
cell.focus();
|
305
|
-
}
|
306
|
-
|
307
|
-
#focusCellIfRequired([newColumnIndex, newRowIndex]: CellPosition): void {
|
308
|
-
this.#userHasFocusInDataGrid = true;
|
309
|
-
|
310
|
-
if (this.#cellUserHasFocused && this.#cellUserHasFocused[0] === newColumnIndex &&
|
311
|
-
this.#cellUserHasFocused[1] === newRowIndex) {
|
312
|
-
// The cell is already active and focused so we don't need to do anything.
|
313
|
-
return;
|
314
|
-
}
|
315
|
-
|
316
|
-
this.#cellUserHasFocused = [newColumnIndex, newRowIndex];
|
317
|
-
void this.#render();
|
318
|
-
const tableCell = this.#getTableElementForCellUserHasFocused();
|
319
|
-
if (!tableCell) {
|
320
|
-
// Return in case the cell is out of bounds and we do nothing
|
321
|
-
return;
|
322
|
-
}
|
323
|
-
/* The cell may already be focused if the user clicked into it, but we also
|
324
|
-
* add arrow key support, so in the case where we're programatically moving the
|
325
|
-
* focus, ensure we actually focus the cell.
|
326
|
-
*/
|
327
|
-
this.#focusTableCellInDOM(tableCell);
|
328
|
-
// If it's a sortable column header, screen reader announce the information for sorting
|
329
|
-
if (newRowIndex === 0 && this.#columns[newColumnIndex].sortable) {
|
330
|
-
const localizedSortState = this.#getLocalizedSortState(this.#columns[newColumnIndex]);
|
331
|
-
UI.ARIAUtils.alert(i18nString(UIStrings.enterToSort, {PH1: localizedSortState || ''}));
|
332
|
-
}
|
333
|
-
}
|
334
|
-
|
335
|
-
#getLocalizedSortState(col: Column): string|undefined {
|
336
|
-
const currentSortLabel = this.#ariaSortForHeader(col);
|
337
|
-
switch (currentSortLabel) {
|
338
|
-
case 'ascending':
|
339
|
-
return UIStrings.sortAsc;
|
340
|
-
case 'descending':
|
341
|
-
return UIStrings.sortDesc;
|
342
|
-
case 'none':
|
343
|
-
return UIStrings.sortNone;
|
344
|
-
}
|
345
|
-
return undefined;
|
346
|
-
}
|
347
|
-
|
348
|
-
#onTableKeyDown(event: KeyboardEvent): void {
|
349
|
-
const key = event.key;
|
350
|
-
|
351
|
-
if (!this.#cellUserHasFocused) {
|
352
|
-
return;
|
353
|
-
}
|
354
|
-
|
355
|
-
if (KEYS_TREATED_AS_CLICKS.has(key)) {
|
356
|
-
const [focusedColumnIndex, focusedRowIndex] = this.#cellUserHasFocused;
|
357
|
-
const activeColumn = this.#columns[focusedColumnIndex];
|
358
|
-
if (focusedRowIndex === 0 && activeColumn && activeColumn.sortable) {
|
359
|
-
this.#onColumnHeaderClick(activeColumn, focusedColumnIndex);
|
360
|
-
}
|
361
|
-
}
|
362
|
-
|
363
|
-
if (!Platform.KeyboardUtilities.keyIsArrowKey(key)) {
|
364
|
-
return;
|
365
|
-
}
|
366
|
-
|
367
|
-
const nextFocusedCell = handleArrowKeyNavigation({
|
368
|
-
key,
|
369
|
-
currentFocusedCell: this.#cellUserHasFocused,
|
370
|
-
columns: this.#columns,
|
371
|
-
rows: this.#rows,
|
372
|
-
});
|
373
|
-
event.preventDefault();
|
374
|
-
this.#focusCellIfRequired(nextFocusedCell);
|
375
|
-
}
|
376
|
-
|
377
|
-
#onColumnHeaderClick(col: Column, index: number): void {
|
378
|
-
this.dispatchEvent(new ColumnHeaderClickEvent(col, index));
|
379
|
-
}
|
380
|
-
|
381
|
-
/**
|
382
|
-
* Applies the aria-sort label to a column's th.
|
383
|
-
* Guidance on values of attribute taken from
|
384
|
-
* https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html.
|
385
|
-
*/
|
386
|
-
#ariaSortForHeader(col: Column): 'none'|'ascending'|'descending'|undefined {
|
387
|
-
if (col.sortable && (!this.#sortState || this.#sortState.columnId !== col.id)) {
|
388
|
-
// Column is sortable but is not currently sorted
|
389
|
-
return 'none';
|
390
|
-
}
|
391
|
-
|
392
|
-
if (this.#sortState && this.#sortState.columnId === col.id) {
|
393
|
-
return this.#sortState.direction === SortDirection.ASC ? 'ascending' : 'descending';
|
394
|
-
}
|
395
|
-
|
396
|
-
// Column is not sortable, so don't apply any label
|
397
|
-
return undefined;
|
398
|
-
}
|
399
|
-
|
400
|
-
#renderEmptyFillerRow(numberOfVisibleRows: number): LitHtml.TemplateResult {
|
401
|
-
const emptyCells = this.#columns.map((col, colIndex) => {
|
402
|
-
if (!col.visible) {
|
403
|
-
return LitHtml.nothing;
|
404
|
-
}
|
405
|
-
const emptyCellClasses = LitHtml.Directives.classMap({
|
406
|
-
firstVisibleColumn: colIndex === 0,
|
407
|
-
});
|
408
|
-
return html`<td aria-hidden="true" class=${emptyCellClasses} data-filler-row-column-index=${colIndex}></td>`;
|
409
|
-
});
|
410
|
-
const emptyRowClasses = LitHtml.Directives.classMap({
|
411
|
-
'filler-row': true,
|
412
|
-
'padding-row': true,
|
413
|
-
'empty-table': numberOfVisibleRows === 0,
|
414
|
-
});
|
415
|
-
return html`<tr aria-hidden="true" class=${emptyRowClasses}>${emptyCells}</tr>`;
|
416
|
-
}
|
417
|
-
|
418
|
-
#cleanUpAfterResizeColumnComplete(): void {
|
419
|
-
if (!this.#currentResize) {
|
420
|
-
return;
|
421
|
-
}
|
422
|
-
this.#currentResize.documentForCursorChange.body.style.cursor = this.#currentResize.cursorToRestore;
|
423
|
-
this.#currentResize = null;
|
424
|
-
// Realign the scroll handlers now the table columns have been resized.
|
425
|
-
void this.#alignScrollHandlers();
|
426
|
-
}
|
427
|
-
|
428
|
-
#onResizePointerDown(event: PointerEvent): void {
|
429
|
-
if (event.buttons !== 1 || (Host.Platform.isMac() && event.ctrlKey)) {
|
430
|
-
// Ensure we only react to a left click drag mouse down event.
|
431
|
-
// On Mac we ignore Ctrl-click which can be used to bring up context menus, etc.
|
432
|
-
return;
|
433
|
-
}
|
434
|
-
event.preventDefault();
|
435
|
-
const resizerElement = event.target as HTMLElement;
|
436
|
-
if (!resizerElement) {
|
437
|
-
return;
|
438
|
-
}
|
439
|
-
const leftColumnIndex = resizerElement.dataset.columnIndex;
|
440
|
-
if (!leftColumnIndex) {
|
441
|
-
return;
|
442
|
-
}
|
443
|
-
const leftColumnIndexAsNumber = globalThis.parseInt(leftColumnIndex, 10);
|
444
|
-
/* To find the cell to the right we can't just go +1 as it might be hidden,
|
445
|
-
* so find the next index that is visible.
|
446
|
-
*/
|
447
|
-
const rightColumnIndexAsNumber = this.#columns.findIndex((column, index) => {
|
448
|
-
return index > leftColumnIndexAsNumber && column.visible === true;
|
449
|
-
});
|
450
|
-
|
451
|
-
const leftCell = this.#shadow.querySelector(`td[data-filler-row-column-index="${leftColumnIndexAsNumber}"]`);
|
452
|
-
const rightCell = this.#shadow.querySelector(`td[data-filler-row-column-index="${rightColumnIndexAsNumber}"]`);
|
453
|
-
if (!leftCell || !rightCell) {
|
454
|
-
return;
|
455
|
-
}
|
456
|
-
// We query for the <col> elements as they are the elements that we put the actual width on.
|
457
|
-
const leftCellCol =
|
458
|
-
this.#shadow.querySelector<HTMLTableColElement>(`col[data-col-column-index="${leftColumnIndexAsNumber}"]`);
|
459
|
-
const rightCellCol =
|
460
|
-
this.#shadow.querySelector<HTMLTableColElement>(`col[data-col-column-index="${rightColumnIndexAsNumber}"]`);
|
461
|
-
if (!leftCellCol || !rightCellCol) {
|
462
|
-
return;
|
463
|
-
}
|
464
|
-
|
465
|
-
const targetDocumentForCursorChange = (event.target as Node).ownerDocument;
|
466
|
-
if (!targetDocumentForCursorChange) {
|
467
|
-
return;
|
468
|
-
}
|
469
|
-
// We now store values that we'll make use of in the mousemouse event to calculate how much to resize the table by.
|
470
|
-
this.#currentResize = {
|
471
|
-
leftCellCol,
|
472
|
-
rightCellCol,
|
473
|
-
leftCellColInitialPercentageWidth: globalThis.parseInt(leftCellCol.style.width, 10),
|
474
|
-
rightCellColInitialPercentageWidth: globalThis.parseInt(rightCellCol.style.width, 10),
|
475
|
-
initialLeftCellWidth: leftCell.clientWidth,
|
476
|
-
initialRightCellWidth: rightCell.clientWidth,
|
477
|
-
initialMouseX: event.x,
|
478
|
-
documentForCursorChange: targetDocumentForCursorChange,
|
479
|
-
cursorToRestore: resizerElement.style.cursor,
|
480
|
-
};
|
481
|
-
|
482
|
-
targetDocumentForCursorChange.body.style.cursor = 'col-resize';
|
483
|
-
resizerElement.setPointerCapture(event.pointerId);
|
484
|
-
resizerElement.addEventListener('pointermove', this.#boundOnResizePointerMove);
|
485
|
-
}
|
486
|
-
|
487
|
-
#onResizePointerMove(event: PointerEvent): void {
|
488
|
-
event.preventDefault();
|
489
|
-
if (!this.#currentResize) {
|
490
|
-
return;
|
491
|
-
}
|
492
|
-
|
493
|
-
const MIN_CELL_WIDTH_PERCENTAGE = 10;
|
494
|
-
const MAX_CELL_WIDTH_PERCENTAGE = (this.#currentResize.leftCellColInitialPercentageWidth +
|
495
|
-
this.#currentResize.rightCellColInitialPercentageWidth) -
|
496
|
-
MIN_CELL_WIDTH_PERCENTAGE;
|
497
|
-
const deltaOfMouseMove = event.x - this.#currentResize.initialMouseX;
|
498
|
-
const absoluteDelta = Math.abs(deltaOfMouseMove);
|
499
|
-
const percentageDelta =
|
500
|
-
(absoluteDelta / (this.#currentResize.initialLeftCellWidth + this.#currentResize.initialRightCellWidth)) * 100;
|
501
|
-
|
502
|
-
let newLeftColumnPercentage;
|
503
|
-
let newRightColumnPercentage;
|
504
|
-
if (deltaOfMouseMove > 0) {
|
505
|
-
/**
|
506
|
-
* A positive delta means the user moved their mouse to the right, so we
|
507
|
-
* want to make the right column smaller, and the left column larger.
|
508
|
-
*/
|
509
|
-
newLeftColumnPercentage = Platform.NumberUtilities.clamp(
|
510
|
-
this.#currentResize.leftCellColInitialPercentageWidth + percentageDelta, MIN_CELL_WIDTH_PERCENTAGE,
|
511
|
-
MAX_CELL_WIDTH_PERCENTAGE);
|
512
|
-
newRightColumnPercentage = Platform.NumberUtilities.clamp(
|
513
|
-
this.#currentResize.rightCellColInitialPercentageWidth - percentageDelta, MIN_CELL_WIDTH_PERCENTAGE,
|
514
|
-
MAX_CELL_WIDTH_PERCENTAGE);
|
515
|
-
} else if (deltaOfMouseMove < 0) {
|
516
|
-
/**
|
517
|
-
* Negative delta means the user moved their mouse to the left, which
|
518
|
-
* means we want to make the right column larger, and the left column
|
519
|
-
* smaller.
|
520
|
-
*/
|
521
|
-
newLeftColumnPercentage = Platform.NumberUtilities.clamp(
|
522
|
-
this.#currentResize.leftCellColInitialPercentageWidth - percentageDelta, MIN_CELL_WIDTH_PERCENTAGE,
|
523
|
-
MAX_CELL_WIDTH_PERCENTAGE);
|
524
|
-
newRightColumnPercentage = Platform.NumberUtilities.clamp(
|
525
|
-
this.#currentResize.rightCellColInitialPercentageWidth + percentageDelta, MIN_CELL_WIDTH_PERCENTAGE,
|
526
|
-
MAX_CELL_WIDTH_PERCENTAGE);
|
527
|
-
}
|
528
|
-
|
529
|
-
if (!newLeftColumnPercentage || !newRightColumnPercentage) {
|
530
|
-
// The delta was 0, so nothing to do.
|
531
|
-
return;
|
532
|
-
}
|
533
|
-
|
534
|
-
// We limit the values to two decimal places to not work with huge decimals.
|
535
|
-
// It also prevents stuttering if the user barely moves the mouse, as the
|
536
|
-
// browser won't try to move the column by 0.0000001% or similar.
|
537
|
-
this.#currentResize.leftCellCol.style.width = newLeftColumnPercentage.toFixed(2) + '%';
|
538
|
-
this.#currentResize.rightCellCol.style.width = newRightColumnPercentage.toFixed(2) + '%';
|
539
|
-
}
|
540
|
-
|
541
|
-
#onResizePointerUp(event: PointerEvent): void {
|
542
|
-
event.preventDefault();
|
543
|
-
const resizer = event.target as HTMLElement;
|
544
|
-
if (!resizer) {
|
545
|
-
return;
|
546
|
-
}
|
547
|
-
resizer.releasePointerCapture(event.pointerId);
|
548
|
-
resizer.removeEventListener('pointermove', this.#boundOnResizePointerMove);
|
549
|
-
this.#cleanUpAfterResizeColumnComplete();
|
550
|
-
}
|
551
|
-
|
552
|
-
#renderResizeForCell(column: Column, position: CellPosition): LitHtml.LitTemplate {
|
553
|
-
/**
|
554
|
-
* A resizer for a column is placed at the far right of the _previous column
|
555
|
-
* cell_. So when we get called with [1, 0] that means this dragger is
|
556
|
-
* resizing column 1, but the dragger itself is located within column 0. We
|
557
|
-
* need the column to the left because when you resize a column you're not
|
558
|
-
* only resizing it but also the column to its left.
|
559
|
-
*/
|
560
|
-
const [columnIndex] = position;
|
561
|
-
const lastVisibleColumnIndex = this.#getIndexOfLastVisibleColumn();
|
562
|
-
// If we are in the very last column, there is no column to the right to resize, so don't render a resizer.
|
563
|
-
if (columnIndex === lastVisibleColumnIndex || !column.visible) {
|
564
|
-
return LitHtml.nothing;
|
565
|
-
}
|
566
|
-
|
567
|
-
return html`<span class="cell-resize-handle"
|
568
|
-
@pointerdown=${this.#onResizePointerDown}
|
569
|
-
@pointerup=${this.#onResizePointerUp}
|
570
|
-
data-column-index=${columnIndex}
|
571
|
-
></span>`;
|
572
|
-
}
|
573
|
-
|
574
|
-
#getIndexOfLastVisibleColumn(): number {
|
575
|
-
let index = this.#columns.length - 1;
|
576
|
-
for (; index > -1; index--) {
|
577
|
-
const col = this.#columns[index];
|
578
|
-
if (col.visible) {
|
579
|
-
break;
|
580
|
-
}
|
581
|
-
}
|
582
|
-
return index;
|
583
|
-
}
|
584
|
-
|
585
|
-
/**
|
586
|
-
* This function is called when the user right clicks on the header row of the
|
587
|
-
* data grid.
|
588
|
-
*/
|
589
|
-
#onHeaderContextMenu(event: MouseEvent): void {
|
590
|
-
if (event.button !== 2 && event.button !== -1) {
|
591
|
-
// -1 = right click invoked by keyboard, for example 'Shift + F10'.
|
592
|
-
// 2 = secondary button = right click. We only show context menus if the
|
593
|
-
// user has right clicked.
|
594
|
-
return;
|
595
|
-
}
|
596
|
-
|
597
|
-
const menu = new UI.ContextMenu.ContextMenu(event);
|
598
|
-
addColumnVisibilityCheckboxes(this, menu);
|
599
|
-
const sortMenu = menu.defaultSection().appendSubMenuItem(i18nString(UIStrings.sortBy), false, 'sort-by');
|
600
|
-
addSortableColumnItems(this, sortMenu);
|
601
|
-
|
602
|
-
menu.defaultSection().appendItem(i18nString(UIStrings.resetColumns), () => {
|
603
|
-
this.dispatchEvent(new ContextMenuHeaderResetClickEvent());
|
604
|
-
}, {jslogContext: 'reset-columns'});
|
605
|
-
|
606
|
-
if (this.#contextMenus && this.#contextMenus.headerRow) {
|
607
|
-
// Let the user append things to the menu
|
608
|
-
this.#contextMenus.headerRow(menu, this.#columns);
|
609
|
-
}
|
610
|
-
void menu.show();
|
611
|
-
}
|
612
|
-
|
613
|
-
#onBodyRowContextMenu(event: MouseEvent): void {
|
614
|
-
if (event.button !== 2 && event.button !== -1) {
|
615
|
-
// -1 = right click invoked by keyboard, for example 'Shift + F10'.
|
616
|
-
// 2 = secondary button = right click. We only show context menus if the
|
617
|
-
// user has right clicked.
|
618
|
-
return;
|
619
|
-
}
|
620
|
-
/**
|
621
|
-
* We now make sure that the event came from an HTML element with a
|
622
|
-
* data-row-index attribute, else we bail.
|
623
|
-
*/
|
624
|
-
if (!event.target || !(event.target instanceof HTMLElement)) {
|
625
|
-
return;
|
626
|
-
}
|
627
|
-
const rowIndexAttribute = event.target.dataset.rowIndex;
|
628
|
-
if (!rowIndexAttribute) {
|
629
|
-
return;
|
630
|
-
}
|
631
|
-
|
632
|
-
const rowIndex = parseInt(rowIndexAttribute, 10);
|
633
|
-
// rowIndex - 1 here because in the UI the 0th row is the column headers.
|
634
|
-
const rowThatWasClicked = this.#rows[rowIndex - 1];
|
635
|
-
|
636
|
-
const menu = new UI.ContextMenu.ContextMenu(event);
|
637
|
-
const sortMenu = menu.defaultSection().appendSubMenuItem(i18nString(UIStrings.sortBy), false, 'sort-by');
|
638
|
-
addSortableColumnItems(this, sortMenu);
|
639
|
-
|
640
|
-
const headerOptionsMenu =
|
641
|
-
menu.defaultSection().appendSubMenuItem(i18nString(UIStrings.headerOptions), false, 'header-options');
|
642
|
-
addColumnVisibilityCheckboxes(this, headerOptionsMenu);
|
643
|
-
headerOptionsMenu.defaultSection().appendItem(i18nString(UIStrings.resetColumns), () => {
|
644
|
-
this.dispatchEvent(new ContextMenuHeaderResetClickEvent());
|
645
|
-
}, {jslogContext: 'reset-columns'});
|
646
|
-
|
647
|
-
if (this.#contextMenus && this.#contextMenus.bodyRow) {
|
648
|
-
this.#contextMenus.bodyRow(menu, this.#columns, rowThatWasClicked, this.#rows);
|
649
|
-
}
|
650
|
-
void menu.show();
|
651
|
-
}
|
652
|
-
|
653
|
-
#onScroll(event: Event): void {
|
654
|
-
const wrapper = event.target as HTMLElement;
|
655
|
-
if (!wrapper) {
|
656
|
-
return;
|
657
|
-
}
|
658
|
-
|
659
|
-
// Need to Math.round because on high res screens we can end up with decimal
|
660
|
-
// point numbers for scroll positions.
|
661
|
-
const userIsAtBottom = Math.round(wrapper.scrollTop + wrapper.clientHeight) === Math.round(wrapper.scrollHeight);
|
662
|
-
this.#userScrollState =
|
663
|
-
userIsAtBottom ? UserScrollState.SCROLLED_TO_BOTTOM : UserScrollState.MANUAL_SCROLL_NOT_BOTTOM;
|
664
|
-
|
665
|
-
void this.#render();
|
666
|
-
}
|
667
|
-
|
668
|
-
#alignScrollHandlers(): Promise<void> {
|
669
|
-
return RenderCoordinator.read(() => {
|
670
|
-
const columnHeaders = this.#shadow.querySelectorAll<HTMLElement>('th:not(.hidden)');
|
671
|
-
const handlers = this.#shadow.querySelectorAll<HTMLElement>('.cell-resize-handle');
|
672
|
-
const table = this.#shadow.querySelector<HTMLTableElement>('table');
|
673
|
-
if (!table) {
|
674
|
-
return;
|
675
|
-
}
|
676
|
-
|
677
|
-
columnHeaders.forEach(async (header, index) => {
|
678
|
-
const columnWidth = header.clientWidth;
|
679
|
-
const columnLeftOffset = header.offsetLeft;
|
680
|
-
if (handlers[index]) {
|
681
|
-
const handlerWidth = handlers[index].clientWidth;
|
682
|
-
void RenderCoordinator.write(() => {
|
683
|
-
/**
|
684
|
-
* Render the resizer at the far right of the column; we subtract
|
685
|
-
* its width so it sits on the inner edge of the column.
|
686
|
-
*/
|
687
|
-
handlers[index].style.left = `${columnLeftOffset + columnWidth - handlerWidth}px`;
|
688
|
-
});
|
689
|
-
}
|
690
|
-
});
|
691
|
-
});
|
692
|
-
}
|
693
|
-
|
694
|
-
/**
|
695
|
-
* Calculates the index of the first row we want to render, and the last row we want to render.
|
696
|
-
* Pads in each direction by PADDING_ROWS_COUNT so we render some rows that are off scren.
|
697
|
-
*/
|
698
|
-
#calculateTopAndBottomRowIndexes(): Promise<{topVisibleRow: number, bottomVisibleRow: number}> {
|
699
|
-
return RenderCoordinator.read(() => {
|
700
|
-
const wrapper = this.#shadow.querySelector('.wrapping-container');
|
701
|
-
|
702
|
-
// On first render we don't have a wrapper, so we can't get at its
|
703
|
-
// scroll/height values. So we default to the inner height of the window as
|
704
|
-
// the limit for rendering. This means we may over-render by a few rows, but
|
705
|
-
// better that than either render everything, or rendering too few rows.
|
706
|
-
let scrollTop = 0;
|
707
|
-
let clientHeight = window.innerHeight;
|
708
|
-
if (wrapper) {
|
709
|
-
scrollTop = wrapper.scrollTop;
|
710
|
-
clientHeight = wrapper.clientHeight;
|
711
|
-
}
|
712
|
-
const padding = ROW_HEIGHT_PIXELS * this.#paddingRowsCount;
|
713
|
-
let topVisibleRow = Math.floor((scrollTop - padding) / ROW_HEIGHT_PIXELS);
|
714
|
-
let bottomVisibleRow = Math.ceil((scrollTop + clientHeight + padding) / ROW_HEIGHT_PIXELS);
|
715
|
-
|
716
|
-
topVisibleRow = Math.max(0, topVisibleRow);
|
717
|
-
bottomVisibleRow = Math.min(this.#rows.filter(r => !r.hidden).length, bottomVisibleRow);
|
718
|
-
|
719
|
-
return {
|
720
|
-
topVisibleRow,
|
721
|
-
bottomVisibleRow,
|
722
|
-
};
|
723
|
-
});
|
724
|
-
}
|
725
|
-
|
726
|
-
#onFocusOut(): void {
|
727
|
-
/**
|
728
|
-
* When any element in the data-grid loses focus, we set this to false. If
|
729
|
-
* the user then focuses another cell, that code will set the focus to true.
|
730
|
-
* We need to know if the user is focused because if they are and they've
|
731
|
-
* scrolled their focused cell out of rendering view and back in, we want to
|
732
|
-
* refocus it. But if they aren't focused and that happens, we don't, else
|
733
|
-
* we can steal focus away from the user if they are typing into an input
|
734
|
-
* box to filter the data-grid, for example.
|
735
|
-
*/
|
736
|
-
this.#userHasFocusInDataGrid = false;
|
737
|
-
}
|
738
|
-
|
739
|
-
#tabbableCell(): CellPosition {
|
740
|
-
/**
|
741
|
-
* If the user has selected a cell, this is the cell that should be
|
742
|
-
* "tabbable" if the user tabs out and into the data-grid. If the user
|
743
|
-
* hasn't selected a cell, we fallback to the default cell that we set as
|
744
|
-
* tabbable when we render.
|
745
|
-
*/
|
746
|
-
return this.#cellUserHasFocused || this.#cellToFocusIfUserTabsIn;
|
747
|
-
}
|
748
|
-
|
749
|
-
/**
|
750
|
-
* Renders the data-grid table. Note that we do not render all rows; the
|
751
|
-
* performance cost are too high once you have a large enough table. Instead
|
752
|
-
* we calculate the size of the container we are rendering into, and then
|
753
|
-
* render only the rows required to fill that table (plus a bit extra for
|
754
|
-
* padding).
|
755
|
-
*/
|
756
|
-
async #render(): Promise<void> {
|
757
|
-
if (!this.isConnected) {
|
758
|
-
return;
|
759
|
-
}
|
760
|
-
if (this.#isRendering) {
|
761
|
-
// If we receive a request to render during a previous render call, we block
|
762
|
-
// the newly requested render (since we could receive a lot of them in quick
|
763
|
-
// succession), but we do ensure that at the end of the current render we
|
764
|
-
// go again with the latest data.
|
765
|
-
this.#scheduleRender = true;
|
766
|
-
return;
|
767
|
-
}
|
768
|
-
this.#isRendering = true;
|
769
|
-
|
770
|
-
const {topVisibleRow, bottomVisibleRow} = await this.#calculateTopAndBottomRowIndexes();
|
771
|
-
const nonHiddenRows = this.#rows.filter(row => !row.hidden);
|
772
|
-
const renderableRows = nonHiddenRows.filter((_, idx) => idx >= topVisibleRow && idx <= bottomVisibleRow);
|
773
|
-
const indexOfFirstVisibleColumn = this.#columns.findIndex(col => col.visible);
|
774
|
-
const anyColumnsSortable = this.#columns.some(col => col.sortable === true);
|
775
|
-
const containerClassMap = {
|
776
|
-
'wrapping-container': true,
|
777
|
-
'show-scrollbar': this.#showScrollbar === true,
|
778
|
-
striped: this.#striped === true,
|
779
|
-
};
|
780
|
-
|
781
|
-
await RenderCoordinator.write(() => {
|
782
|
-
// Disabled until https://crbug.com/1079231 is fixed.
|
783
|
-
// clang-format off
|
784
|
-
LitHtml.render(html`
|
785
|
-
${this.#columns.map((col, columnIndex) => {
|
786
|
-
/**
|
787
|
-
* We render the resizers outside of the table. One is rendered for each
|
788
|
-
* column, and they are positioned absolutely at the right position. They
|
789
|
-
* have 100% height so they sit over the entire table and can be grabbed
|
790
|
-
* by the user.
|
791
|
-
*/
|
792
|
-
return this.#renderResizeForCell(col, [columnIndex, 0]);
|
793
|
-
})}
|
794
|
-
<div class=${classMap(containerClassMap)} @scroll=${this.#onScroll} @focusout=${this.#onFocusOut}>
|
795
|
-
<table
|
796
|
-
aria-label=${ifDefined(this.#label)}
|
797
|
-
aria-rowcount=${this.#rows.length}
|
798
|
-
aria-colcount=${this.#columns.length}
|
799
|
-
@keydown=${this.#onTableKeyDown}
|
800
|
-
>
|
801
|
-
<!-- @ts-ignore -->
|
802
|
-
<colgroup>
|
803
|
-
${this.#columns.map((col, colIndex) => {
|
804
|
-
const width = calculateColumnWidthPercentageFromWeighting(this.#columns, col.id);
|
805
|
-
const style = `width: ${width}%`;
|
806
|
-
if (!col.visible) {
|
807
|
-
return LitHtml.nothing;
|
808
|
-
}
|
809
|
-
return html`<col style=${style} data-col-column-index=${colIndex}>`;
|
810
|
-
})}
|
811
|
-
</colgroup>
|
812
|
-
<thead>
|
813
|
-
<tr @contextmenu=${this.#onHeaderContextMenu}>
|
814
|
-
${this.#columns.map((col, columnIndex) => {
|
815
|
-
const thClasses = classMap({
|
816
|
-
hidden: !col.visible,
|
817
|
-
firstVisibleColumn: columnIndex === indexOfFirstVisibleColumn,
|
818
|
-
sortable: anyColumnsSortable,
|
819
|
-
});
|
820
|
-
const tabbableCell = this.#tabbableCell();
|
821
|
-
const cellIsFocusableCell = anyColumnsSortable && columnIndex === tabbableCell[0] && tabbableCell[1] === 0;
|
822
|
-
|
823
|
-
return html`<th class=${thClasses}
|
824
|
-
jslog=${VisualLogging.tableHeader().track({click: anyColumnsSortable, resize: true}).context(col.id)}
|
825
|
-
style=${ifDefined(col.styles ? styleMap(col.styles) : undefined)}
|
826
|
-
data-grid-header-cell=${col.id}
|
827
|
-
@focus=${() => {
|
828
|
-
this.#focusCellIfRequired([columnIndex, 0]);
|
829
|
-
}}
|
830
|
-
@click=${() => {
|
831
|
-
/**
|
832
|
-
* We use click here rather than focus because if you've
|
833
|
-
* clicked on the header to sort, you've also focused it. If
|
834
|
-
* you then click it again to change the sorting, this
|
835
|
-
* doesn't emit a focus event as the cell is already
|
836
|
-
* focused.
|
837
|
-
*/
|
838
|
-
this.#onColumnHeaderClick(col, columnIndex);
|
839
|
-
}}
|
840
|
-
title=${col.title}
|
841
|
-
aria-sort=${ifDefined(this.#ariaSortForHeader(col))}
|
842
|
-
aria-colindex=${columnIndex + 1}
|
843
|
-
data-row-index='0'
|
844
|
-
data-col-index=${columnIndex}
|
845
|
-
tabindex=${ifDefined(anyColumnsSortable ? (cellIsFocusableCell ? '0' : '-1') : undefined)}
|
846
|
-
>${col.titleElement || col.title}</th>`;
|
847
|
-
})}
|
848
|
-
</tr>
|
849
|
-
</thead>
|
850
|
-
<tbody>
|
851
|
-
<tr class="filler-row-top padding-row" style=${styleMap({
|
852
|
-
height: `${topVisibleRow * ROW_HEIGHT_PIXELS}px`,
|
853
|
-
})} aria-hidden="true"></tr>
|
854
|
-
${repeat(renderableRows, row => this.#rowIndexMap.get(row), row => {
|
855
|
-
const rowIndex = this.#rowIndexMap.get(row);
|
856
|
-
if (rowIndex === undefined) {
|
857
|
-
throw new Error('Trying to render a row that has no index in the rowIndexMap');
|
858
|
-
}
|
859
|
-
const tabbableCell = this.#tabbableCell();
|
860
|
-
// Remember that row 0 is considered the header row, so the first tbody row is row 1.
|
861
|
-
const tableRowIndex = rowIndex + 1;
|
862
|
-
|
863
|
-
// Check for cellUserHasFocused instead of tabbableCell so that we
|
864
|
-
// don't highlight the active cell before they've even clicked it.
|
865
|
-
const rowIsSelected = this.#cellUserHasFocused ? tableRowIndex === this.#cellUserHasFocused[1] : false;
|
866
|
-
|
867
|
-
const rowClasses = LitHtml.Directives.classMap({
|
868
|
-
selected: rowIsSelected,
|
869
|
-
hidden: row.hidden === true,
|
870
|
-
});
|
871
|
-
return html`
|
872
|
-
<tr
|
873
|
-
aria-rowindex=${rowIndex + 1}
|
874
|
-
class=${rowClasses}
|
875
|
-
style=${ifDefined(row.styles ? styleMap(row.styles) : undefined)}
|
876
|
-
jslog=${VisualLogging.tableRow().track({keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space'})}
|
877
|
-
@contextmenu=${this.#onBodyRowContextMenu}
|
878
|
-
@mouseenter=${() => {
|
879
|
-
this.dispatchEvent(new RowMouseEnterEvent(row));
|
880
|
-
}}
|
881
|
-
@mouseleave=${() => {
|
882
|
-
this.dispatchEvent(new RowMouseLeaveEvent(row));
|
883
|
-
}}
|
884
|
-
>${this.#columns.map((col, columnIndex) => {
|
885
|
-
const cell = getRowEntryForColumnId(row, col.id);
|
886
|
-
const cellClasses = classMap({
|
887
|
-
hidden: !col.visible,
|
888
|
-
firstVisibleColumn: columnIndex === indexOfFirstVisibleColumn,
|
889
|
-
});
|
890
|
-
const cellIsFocusableCell = columnIndex === tabbableCell[0] && tableRowIndex === tabbableCell[1];
|
891
|
-
const cellOutput = col.visible ? renderCellValue(cell) : null;
|
892
|
-
return html`<td
|
893
|
-
class=${cellClasses}
|
894
|
-
jslog=${VisualLogging.tableCell().track({click: true})}).context(col.id)}
|
895
|
-
style=${ifDefined(col.styles ? styleMap(col.styles) : undefined)}
|
896
|
-
tabindex=${cellIsFocusableCell ? '0' : '-1'}
|
897
|
-
aria-colindex=${columnIndex + 1}
|
898
|
-
title=${cell.title || getCellTitleFromCellContent(String(cell.value))}
|
899
|
-
data-row-index=${tableRowIndex}
|
900
|
-
data-col-index=${columnIndex}
|
901
|
-
data-grid-value-cell-for-column=${col.id}
|
902
|
-
@focus=${() => {
|
903
|
-
this.#focusCellIfRequired([columnIndex, tableRowIndex]);
|
904
|
-
this.dispatchEvent(new BodyCellFocusedEvent(cell, row));
|
905
|
-
}}
|
906
|
-
>${cellOutput}</td>`;
|
907
|
-
})}
|
908
|
-
</tr>`;
|
909
|
-
})}
|
910
|
-
${this.#renderEmptyFillerRow(renderableRows.length)}
|
911
|
-
<tr class="filler-row-bottom padding-row" style=${styleMap({
|
912
|
-
height: `${Math.max(0, nonHiddenRows.length - bottomVisibleRow) * ROW_HEIGHT_PIXELS}px`,
|
913
|
-
})} aria-hidden="true"></tr>
|
914
|
-
</tbody>
|
915
|
-
</table>
|
916
|
-
</div>
|
917
|
-
`, this.#shadow, {
|
918
|
-
host: this,
|
919
|
-
});
|
920
|
-
});
|
921
|
-
// clang-format on
|
922
|
-
|
923
|
-
// This ensures if the user has a cell focused, but then scrolls so that
|
924
|
-
// the focused cell is now not rendered, that when it then gets scrolled
|
925
|
-
// back in, that it becomes rendered.
|
926
|
-
// However, if the cell is a column header, we don't do this, as that
|
927
|
-
// can never be not-rendered.
|
928
|
-
const tabbableCell = this.#tabbableCell();
|
929
|
-
const currentlyFocusedRowIndex = tabbableCell[1];
|
930
|
-
const tabbableCellElement = this.#getTableElementForCellUserHasFocused();
|
931
|
-
if (this.#userHasFocusInDataGrid && currentlyFocusedRowIndex > 0 && tabbableCellElement) {
|
932
|
-
this.#focusTableCellInDOM(tabbableCellElement);
|
933
|
-
}
|
934
|
-
this.#scrollToBottomIfRequired();
|
935
|
-
this.#engageResizeObserver();
|
936
|
-
if (this.#hasRenderedAtLeastOnce) {
|
937
|
-
// We may have had a cell's width change on a re-render, or it may have
|
938
|
-
// been hidden entirely, so we need to ensure that the resize handlers are
|
939
|
-
// re-positioned correctly if so.
|
940
|
-
|
941
|
-
// We don't have to do this on first render as it will fire when the resize observer is engaged.
|
942
|
-
void this.#alignScrollHandlers();
|
943
|
-
}
|
944
|
-
|
945
|
-
this.#isRendering = false;
|
946
|
-
this.#hasRenderedAtLeastOnce = true;
|
947
|
-
|
948
|
-
// If we've received more data mid-render we will do one extra render at
|
949
|
-
// the end with the most recent data.
|
950
|
-
if (this.#scheduleRender) {
|
951
|
-
this.#scheduleRender = false;
|
952
|
-
void this.#render();
|
953
|
-
}
|
954
|
-
}
|
955
|
-
}
|
956
|
-
|
957
|
-
customElements.define('devtools-data-grid', DataGrid);
|
958
|
-
|
959
|
-
declare global {
|
960
|
-
interface HTMLElementTagNameMap {
|
961
|
-
'devtools-data-grid': DataGrid;
|
962
|
-
}
|
963
|
-
}
|