chrome-devtools-frontend 1.0.1662965 → 1.0.1664496
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/{creating-a-model → devtools-model-management}/SKILL.md +0 -1
- package/.agents/skills/devtools-ux-writing-refactor/SKILL.md +2 -1
- package/.agents/skills/fixing-skipped-tests/SKILL.md +3 -3
- package/.agents/skills/merging-devtools-module/SKILL.md +1 -1
- package/.agents/skills/migrate-chromium-test/SKILL.md +3 -2
- package/.agents/skills/repro-flaky-tests/SKILL.md +71 -31
- package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +1 -0
- package/docs/ui_engineering.md +2 -0
- package/eslint.config.mjs +1 -0
- package/front_end/core/common/Settings.ts +75 -0
- package/front_end/core/protocol_client/PuppeteerDevToolsConnection.ts +112 -0
- package/front_end/core/sdk/CPUProfilerModel.ts +21 -13
- package/front_end/core/sdk/CSSContainerQuery.ts +1 -1
- package/front_end/core/sdk/CSSLayer.ts +1 -1
- package/front_end/core/sdk/CSSMedia.ts +1 -1
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSNavigation.ts +1 -1
- package/front_end/core/sdk/CSSProperty.ts +1 -1
- package/front_end/core/sdk/CSSQuery.ts +1 -1
- package/front_end/core/sdk/CSSRule.ts +1 -1
- package/front_end/core/sdk/CSSScope.ts +1 -1
- package/front_end/core/sdk/CSSStartingStyle.ts +1 -1
- package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +1 -1
- package/front_end/core/sdk/CSSSupports.ts +1 -1
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +1 -1
- package/front_end/core/sdk/NetworkManager.ts +1 -1
- package/front_end/core/sdk/NetworkRequest.ts +7 -7
- package/front_end/core/sdk/Resource.ts +1 -1
- package/front_end/core/sdk/ScopeTreeCache.ts +1 -1
- package/front_end/core/sdk/Script.ts +1 -1
- package/front_end/core/sdk/ServerSentEvents.ts +1 -1
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
- package/front_end/core/sdk/sdk-meta.ts +3 -3
- package/front_end/{models → core}/text_utils/ContentProvider.ts +4 -6
- package/front_end/{models → core}/text_utils/StaticContentProvider.ts +4 -6
- package/front_end/{models → core}/text_utils/StreamingContentData.ts +1 -2
- package/front_end/{models → core}/text_utils/TextRange.ts +6 -3
- package/front_end/{models → core}/text_utils/TextUtils.ts +7 -7
- package/front_end/{models → core}/text_utils/WasmDisassembly.ts +2 -2
- package/front_end/core/text_utils/text_utils.ts +27 -0
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
- package/front_end/entrypoints/main/MainImpl.ts +14 -1
- package/front_end/foundation/Universe.ts +1 -1
- package/front_end/models/ai_assistance/AgentProject.ts +1 -1
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +3 -6
- package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +19 -11
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +23 -10
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +19 -18
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -3
- package/front_end/models/ai_assistance/contexts/FileContext.ts +7 -3
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +39 -11
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +6 -3
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +4 -4
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +8 -8
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +76 -3
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +11 -1
- package/front_end/models/badges/AiExplorerBadge.ts +8 -3
- package/front_end/models/badges/Badge.ts +1 -0
- package/front_end/models/badges/UserBadges.ts +11 -5
- package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
- package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
- package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
- package/front_end/models/bindings/FileUtils.ts +1 -1
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +7 -10
- package/front_end/models/bindings/ResourceMapping.ts +1 -1
- package/front_end/models/bindings/ResourceScriptMapping.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +1 -1
- package/front_end/models/bindings/StylesSourceMapping.ts +1 -1
- package/front_end/models/breakpoints/BreakpointManager.ts +1 -1
- package/front_end/models/crux-manager/CrUXManager.ts +1 -1
- package/front_end/models/emulation/EmulatedDevices.ts +3 -2
- package/front_end/models/har/Importer.ts +1 -1
- package/front_end/models/har/Writer.ts +1 -1
- package/front_end/models/issues_manager/IssueAggregator.ts +9 -0
- package/front_end/models/issues_manager/IssuesManager.ts +5 -0
- package/front_end/models/issues_manager/LazyLoadImageIssue.ts +76 -0
- package/front_end/models/issues_manager/descriptions/lazyLoadImageZeroSize.md +7 -0
- package/front_end/models/issues_manager/issues_manager.ts +2 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +9 -10
- package/front_end/models/live-metrics/LiveMetrics.ts +2 -3
- package/front_end/models/logs/NetworkLog.ts +4 -3
- package/front_end/models/logs/logs-meta.ts +3 -3
- package/front_end/models/network_time_calculator/NetworkTimeCalculator.ts +4 -4
- package/front_end/models/persistence/Automapping.ts +1 -1
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +2 -2
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +1 -1
- package/front_end/models/persistence/IsolatedFileSystem.ts +2 -2
- package/front_end/models/persistence/NetworkPersistenceManager.ts +1 -1
- package/front_end/models/persistence/PersistenceImpl.ts +1 -1
- package/front_end/models/persistence/PlatformFileSystem.ts +1 -1
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +1 -1
- package/front_end/models/source_map_scopes/NamesResolver.ts +1 -1
- package/front_end/models/text_utils/text_utils.ts +2 -24
- package/front_end/models/trace/insights/ImageDelivery.ts +2 -2
- package/front_end/models/trace/insights/LegacyJavaScript.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
- package/front_end/models/trace/insights/ThirdParties.ts +1 -1
- package/front_end/models/workspace/FileManager.ts +1 -1
- package/front_end/models/workspace/UISourceCode.ts +1 -1
- package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +1 -1
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
- package/front_end/panels/accessibility/AccessibilityStrings.ts +2 -2
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +1 -1
- package/front_end/panels/ai_assistance/ExportConversation.ts +1 -1
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +1 -1
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +1 -1
- package/front_end/panels/application/AppManifestView.ts +4 -4
- package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -2
- package/front_end/panels/application/CrashReportContextView.ts +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +1 -1
- package/front_end/panels/application/DeviceBoundSessionsView.ts +4 -4
- package/front_end/panels/application/ExtensionStorageItemsView.ts +1 -1
- package/front_end/panels/application/FrameDetailsView.ts +1 -1
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +12 -2
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/BackForwardCacheView.ts +21 -5
- package/front_end/panels/application/components/CrashReportContextGrid.ts +1 -1
- package/front_end/panels/application/components/TrustTokensView.ts +2 -2
- package/front_end/panels/application/preloading/PreloadingView.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
- package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -2
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -4
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +1 -1
- package/front_end/panels/common/ExtensionServer.ts +1 -1
- package/front_end/panels/console/ConsoleFilter.ts +1 -1
- package/front_end/panels/console/ConsoleSidebar.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
- package/front_end/panels/console/PromptBuilder.ts +1 -1
- package/front_end/panels/coverage/CoverageDecorationManager.ts +9 -1
- package/front_end/panels/coverage/CoverageModel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
- package/front_end/panels/elements/AccessibilityTreeView.ts +38 -3
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +1 -1
- package/front_end/panels/elements/ElementIssueUtils.ts +2 -2
- package/front_end/panels/elements/ElementsTreeElement.ts +10 -3
- package/front_end/panels/elements/StandaloneStylesContainer.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -1
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +1 -1
- package/front_end/panels/elements/StylesContainer.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +1 -1
- package/front_end/panels/explain/components/ConsoleInsight.ts +2 -2
- package/front_end/panels/issues/AffectedLazyLoadImagesView.ts +76 -0
- package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
- package/front_end/panels/issues/CorsIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/IssueView.ts +2 -0
- package/front_end/panels/issues/issues.ts +2 -0
- package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +5 -0
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
- package/front_end/panels/network/BinaryResourceView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +29 -7
- package/front_end/panels/network/NetworkLogView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +6 -6
- package/front_end/panels/network/NetworkPanel.ts +4 -4
- package/front_end/panels/network/NetworkSearchScope.ts +1 -1
- package/front_end/panels/network/RequestConditionsDrawer.ts +1 -1
- package/front_end/panels/network/RequestHTMLView.ts +1 -1
- package/front_end/panels/network/RequestPayloadView.ts +1 -1
- package/front_end/panels/network/RequestPreviewView.ts +1 -1
- package/front_end/panels/network/RequestResponseView.ts +1 -1
- package/front_end/panels/network/ResourceChunkView.ts +1 -1
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -1
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -1
- package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
- package/front_end/panels/network/forward/UIRequestLocation.ts +1 -1
- package/front_end/panels/network/network-meta.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +6 -6
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
- package/front_end/panels/profiler/ProfileDataGrid.ts +12 -8
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -1
- package/front_end/panels/recorder/RecorderPanel.ts +493 -381
- package/front_end/panels/recorder/RecordingListView.ts +8 -37
- package/front_end/panels/recorder/RecordingView.ts +54 -27
- package/front_end/panels/recorder/SelectorPicker.ts +0 -13
- package/front_end/panels/recorder/StepEditor.ts +6 -14
- package/front_end/panels/recorder/StepView.ts +36 -105
- package/front_end/panels/search/SearchResultsPane.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +3 -3
- package/front_end/panels/settings/AISettingsTab.ts +4 -4
- package/front_end/panels/settings/components/SyncSection.ts +4 -4
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +3 -3
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +1 -1
- package/front_end/panels/sources/BreakpointsView.ts +1 -1
- package/front_end/panels/sources/CoveragePlugin.ts +1 -1
- package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +27 -3
- package/front_end/panels/sources/NavigatorView.ts +1 -1
- package/front_end/panels/sources/PersistenceActions.ts +1 -1
- package/front_end/panels/sources/SourcesNavigator.ts +1 -1
- package/front_end/panels/sources/SourcesSearchScope.ts +1 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -3
- package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
- package/front_end/panels/sources/components/HeadersView.ts +1 -1
- package/front_end/panels/sources/filteredUISourceCodeListProvider.css +12 -1
- package/front_end/panels/sources/sources-meta.ts +1 -1
- package/front_end/panels/timeline/StatusDialog.ts +1 -1
- package/front_end/panels/timeline/TimelineController.ts +24 -3
- package/front_end/panels/timeline/TimelinePanel.ts +116 -25
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +2 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +1 -1
- package/front_end/panels/timeline/components/CWVMetrics.ts +1 -1
- package/front_end/panels/timeline/components/IgnoreListSetting.ts +1 -1
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -2
- package/front_end/panels/timeline/timeline-meta.ts +13 -0
- package/front_end/services/tracing/TracingManager.ts +27 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1418 -1413
- package/front_end/third_party/lighthouse/locales/en-US.json +12 -6
- package/front_end/third_party/lighthouse/locales/en-XL.json +12 -6
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
- package/front_end/third_party/puppeteer/puppeteer.ts +20 -1
- package/front_end/ui/components/highlighting/HighlightElement.ts +4 -1
- package/front_end/ui/components/highlighting/HighlightManager.ts +1 -1
- package/front_end/ui/components/highlighting/MarkupHighlight.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownView.ts +46 -2
- package/front_end/ui/components/markdown_view/markdownView.css +23 -0
- package/front_end/ui/components/text_editor/config.ts +1 -1
- package/front_end/ui/components/tree_outline/TreeOutline.ts +7 -1
- package/front_end/ui/legacy/Infobar.ts +1 -1
- package/front_end/ui/legacy/InspectorView.ts +12 -7
- package/front_end/ui/legacy/SuggestBox.ts +1 -1
- package/front_end/ui/legacy/TextPrompt.ts +1 -1
- package/front_end/ui/legacy/Toolbar.ts +5 -2
- package/front_end/ui/legacy/Treeoutline.ts +26 -7
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +27 -13
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +5 -2
- package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts +23 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +161 -54
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +1 -1
- 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 +105 -115
- package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +5 -1
- package/front_end/ui/legacy/components/source_frame/jsonView.css +4 -0
- package/front_end/ui/legacy/components/utils/Linkifier.ts +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +6 -2
- package/front_end/ui/settings/SettingUIRegistration.ts +105 -0
- package/front_end/ui/settings/settings.ts +9 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- /package/.agents/skills/{verification → devtools-verification}/SKILL.md +0 -0
- /package/front_end/{models → core}/text_utils/CodeMirrorUtils.ts +0 -0
- /package/front_end/{models → core}/text_utils/ContentData.ts +0 -0
- /package/front_end/{models → core}/text_utils/Text.ts +0 -0
- /package/front_end/{models → core}/text_utils/TextCursor.ts +0 -0
- /package/front_end/{models → core}/text_utils/TextUtils.snapshot.txt +0 -0
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
5
5
|
|
|
6
6
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
7
|
-
import * as Platform from '../../../../core/platform/platform.js';
|
|
8
7
|
import * as SDK from '../../../../core/sdk/sdk.js';
|
|
9
|
-
import
|
|
8
|
+
import {html, render} from '../../../lit/lit.js';
|
|
10
9
|
import * as VisualLogging from '../../../visual_logging/visual_logging.js';
|
|
11
10
|
import * as UI from '../../legacy.js';
|
|
12
11
|
import * as ObjectUI from '../object_ui/object_ui.js';
|
|
@@ -22,26 +21,48 @@ const UIStrings = {
|
|
|
22
21
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/source_frame/JSONView.ts', UIStrings);
|
|
23
22
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
24
23
|
|
|
24
|
+
export interface ViewInput {
|
|
25
|
+
objectTree: ObjectUI.ObjectPropertiesSection.ObjectTree;
|
|
26
|
+
parsedJSON: ParsedJSON;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type ViewOutput = undefined;
|
|
30
|
+
|
|
31
|
+
const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTMLElement): void => {
|
|
32
|
+
const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(input.parsedJSON.data);
|
|
33
|
+
const titleText = input.parsedJSON.prefix + obj.description + input.parsedJSON.suffix;
|
|
34
|
+
const title = html`<span>${titleText}</span>`;
|
|
35
|
+
render(html`
|
|
36
|
+
<style>${jsonViewStyles}</style>
|
|
37
|
+
${ObjectUI.ObjectPropertiesSection.renderObjectPropertiesSection(input.objectTree, title)}
|
|
38
|
+
`,
|
|
39
|
+
target, {
|
|
40
|
+
|
|
41
|
+
container: {
|
|
42
|
+
classes: ['json-view'],
|
|
43
|
+
attributes: {
|
|
44
|
+
jslog: VisualLogging.section('json-view'),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
type View = typeof DEFAULT_VIEW;
|
|
51
|
+
|
|
25
52
|
export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Searchable {
|
|
26
|
-
|
|
27
|
-
private readonly
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
-
private
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
this.initialized = false;
|
|
37
|
-
this.registerRequiredCSS(jsonViewStyles);
|
|
38
|
-
this.parsedJSON = parsedJSON;
|
|
53
|
+
#parsedJSON: ParsedJSON;
|
|
54
|
+
private readonly startCollapsed: boolean;
|
|
55
|
+
private searchableView: UI.SearchableView.SearchableView|null = null;
|
|
56
|
+
private objectTree: ObjectUI.ObjectPropertiesSection.ObjectTree|null = null;
|
|
57
|
+
private readonly search: UI.TreeOutline.TreeSearch<ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase>;
|
|
58
|
+
private readonly view: View;
|
|
59
|
+
|
|
60
|
+
constructor(parsedJSON: ParsedJSON, startCollapsed?: boolean, element?: HTMLElement, view: View = DEFAULT_VIEW) {
|
|
61
|
+
super(element);
|
|
62
|
+
this.#parsedJSON = parsedJSON;
|
|
39
63
|
this.startCollapsed = Boolean(startCollapsed);
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
this.currentSearchFocusIndex = 0;
|
|
43
|
-
this.currentSearchTreeElements = [];
|
|
44
|
-
this.searchRegex = null;
|
|
64
|
+
this.search = new UI.TreeOutline.TreeSearch();
|
|
65
|
+
this.view = view;
|
|
45
66
|
}
|
|
46
67
|
|
|
47
68
|
static async createView(content: string): Promise<UI.SearchableView.SearchableView|null> {
|
|
@@ -69,6 +90,17 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
|
|
|
69
90
|
return searchableView;
|
|
70
91
|
}
|
|
71
92
|
|
|
93
|
+
set parsedJSON(parsedJSON: ParsedJSON) {
|
|
94
|
+
if (this.objectTree) {
|
|
95
|
+
this.objectTree.removeEventListener(ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase.Events.CHILDREN_CHANGED,
|
|
96
|
+
this.#onChildrenChanged, this);
|
|
97
|
+
}
|
|
98
|
+
this.#parsedJSON = parsedJSON;
|
|
99
|
+
this.objectTree = null;
|
|
100
|
+
this.onSearchCanceled();
|
|
101
|
+
this.requestUpdate();
|
|
102
|
+
}
|
|
103
|
+
|
|
72
104
|
setSearchableView(searchableView: UI.SearchableView.SearchableView): void {
|
|
73
105
|
this.searchableView = searchableView;
|
|
74
106
|
}
|
|
@@ -137,129 +169,89 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
|
|
|
137
169
|
override wasShown(): void {
|
|
138
170
|
super.wasShown();
|
|
139
171
|
this.initialize();
|
|
172
|
+
this.requestUpdate();
|
|
140
173
|
}
|
|
141
174
|
|
|
142
175
|
private initialize(): void {
|
|
143
|
-
if (this.
|
|
176
|
+
if (this.objectTree) {
|
|
144
177
|
return;
|
|
145
178
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
this.treeOutline.enableContextMenu();
|
|
179
|
+
const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(this.#parsedJSON.data);
|
|
180
|
+
this.objectTree = new ObjectUI.ObjectPropertiesSection.ObjectTree(obj, {
|
|
181
|
+
readOnly: true,
|
|
182
|
+
propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
183
|
+
search: this.search,
|
|
184
|
+
});
|
|
153
185
|
if (!this.startCollapsed) {
|
|
154
|
-
this.
|
|
155
|
-
}
|
|
156
|
-
this.element.appendChild(this.treeOutline.element);
|
|
157
|
-
const firstChild = this.treeOutline.firstChild();
|
|
158
|
-
if (firstChild) {
|
|
159
|
-
firstChild.select(true /* omitFocus */, false /* selectedByUser */);
|
|
186
|
+
this.objectTree.expanded = true;
|
|
160
187
|
}
|
|
188
|
+
this.objectTree.addEventListener(ObjectUI.ObjectPropertiesSection.ObjectTreeNodeBase.Events.CHILDREN_CHANGED,
|
|
189
|
+
this.#onChildrenChanged, this);
|
|
161
190
|
}
|
|
162
191
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
const previousFocusElement = this.currentSearchTreeElements[this.currentSearchFocusIndex];
|
|
168
|
-
if (previousFocusElement) {
|
|
169
|
-
previousFocusElement.setSearchRegex(this.searchRegex);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
const newFocusElement = this.currentSearchTreeElements[index];
|
|
173
|
-
if (newFocusElement) {
|
|
174
|
-
this.updateSearchIndex(index);
|
|
175
|
-
newFocusElement.setSearchRegex(this.searchRegex, Highlighting.highlightedCurrentSearchResultClassName);
|
|
176
|
-
newFocusElement.reveal();
|
|
177
|
-
} else {
|
|
178
|
-
this.updateSearchIndex(0);
|
|
179
|
-
}
|
|
192
|
+
#onChildrenChanged(): void {
|
|
193
|
+
this.requestUpdate();
|
|
180
194
|
}
|
|
181
195
|
|
|
182
|
-
|
|
183
|
-
|
|
196
|
+
override performUpdate(): void {
|
|
197
|
+
this.initialize();
|
|
198
|
+
if (!this.objectTree) {
|
|
184
199
|
return;
|
|
185
200
|
}
|
|
186
|
-
this.
|
|
201
|
+
this.view({objectTree: this.objectTree, parsedJSON: this.#parsedJSON}, undefined, this.contentElement);
|
|
187
202
|
}
|
|
188
203
|
|
|
189
|
-
private
|
|
190
|
-
this.
|
|
191
|
-
|
|
192
|
-
|
|
204
|
+
private jumpToMatch(): void {
|
|
205
|
+
if (this.searchableView) {
|
|
206
|
+
this.search.updateSearchableView(this.searchableView);
|
|
207
|
+
}
|
|
208
|
+
const currentMatch = this.search.currentMatch();
|
|
209
|
+
if (currentMatch) {
|
|
210
|
+
let current = currentMatch.node.parent;
|
|
211
|
+
while (current) {
|
|
212
|
+
current.expanded = true;
|
|
213
|
+
current = current.parent;
|
|
214
|
+
}
|
|
193
215
|
}
|
|
194
|
-
this.searchableView.updateCurrentMatchIndex(index);
|
|
195
216
|
}
|
|
196
217
|
|
|
197
218
|
onSearchCanceled(): void {
|
|
198
|
-
this.
|
|
199
|
-
this.
|
|
200
|
-
|
|
201
|
-
let element: UI.TreeOutline.TreeElement|null;
|
|
202
|
-
for (element = this.treeOutline.rootElement(); element; element = element.traverseNextTreeElement(false)) {
|
|
203
|
-
if (!(element instanceof ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement)) {
|
|
204
|
-
continue;
|
|
205
|
-
}
|
|
206
|
-
element.revertHighlightChanges();
|
|
219
|
+
this.search.reset();
|
|
220
|
+
if (this.searchableView) {
|
|
221
|
+
this.search.updateSearchableView(this.searchableView);
|
|
207
222
|
}
|
|
208
|
-
this.updateSearchCount(0);
|
|
209
|
-
this.updateSearchIndex(0);
|
|
210
223
|
}
|
|
211
224
|
|
|
212
|
-
performSearch(searchConfig: UI.SearchableView.SearchConfig,
|
|
213
|
-
|
|
214
|
-
const previousSearchFocusElement = this.currentSearchTreeElements[newIndex];
|
|
225
|
+
performSearch(searchConfig: UI.SearchableView.SearchConfig, shouldJump: boolean, jumpBackwards?: boolean): void {
|
|
226
|
+
this.initialize();
|
|
215
227
|
this.onSearchCanceled();
|
|
216
|
-
|
|
228
|
+
const searchRegex = searchConfig.toSearchRegex(true).regex;
|
|
229
|
+
if (!this.objectTree) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
217
232
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
continue;
|
|
222
|
-
}
|
|
223
|
-
const hasMatch = element.setSearchRegex(this.searchRegex);
|
|
224
|
-
if (hasMatch) {
|
|
225
|
-
this.currentSearchTreeElements.push(element);
|
|
233
|
+
this.search.search(this.objectTree, jumpBackwards ?? false, (node, closeTag) => {
|
|
234
|
+
if (closeTag || !searchRegex) {
|
|
235
|
+
return [];
|
|
226
236
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (hasMatch || jumpBackwards) {
|
|
230
|
-
newIndex = currentIndex;
|
|
231
|
-
} else {
|
|
232
|
-
newIndex = currentIndex + 1;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
this.updateSearchCount(this.currentSearchTreeElements.length);
|
|
237
|
+
return node.match(searchRegex);
|
|
238
|
+
});
|
|
237
239
|
|
|
238
|
-
if (
|
|
239
|
-
this.
|
|
240
|
-
|
|
240
|
+
if (shouldJump) {
|
|
241
|
+
this.jumpToMatch();
|
|
242
|
+
} else if (this.searchableView) {
|
|
243
|
+
this.search.updateSearchableView(this.searchableView);
|
|
241
244
|
}
|
|
242
|
-
newIndex = Platform.NumberUtilities.mod(newIndex, this.currentSearchTreeElements.length);
|
|
243
|
-
|
|
244
|
-
this.jumpToMatch(newIndex);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
jumpToNextSearchResult(): void {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}
|
|
251
|
-
const newIndex =
|
|
252
|
-
Platform.NumberUtilities.mod(this.currentSearchFocusIndex + 1, this.currentSearchTreeElements.length);
|
|
253
|
-
this.jumpToMatch(newIndex);
|
|
248
|
+
this.search.next();
|
|
249
|
+
this.jumpToMatch();
|
|
254
250
|
}
|
|
255
251
|
|
|
256
252
|
jumpToPreviousSearchResult(): void {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
const newIndex =
|
|
261
|
-
Platform.NumberUtilities.mod(this.currentSearchFocusIndex - 1, this.currentSearchTreeElements.length);
|
|
262
|
-
this.jumpToMatch(newIndex);
|
|
253
|
+
this.search.prev();
|
|
254
|
+
this.jumpToMatch();
|
|
263
255
|
}
|
|
264
256
|
|
|
265
257
|
supportsCaseSensitiveSearch(): boolean {
|
|
@@ -301,11 +293,9 @@ export class SearchableJsonView extends UI.SearchableView.SearchableView {
|
|
|
301
293
|
}
|
|
302
294
|
|
|
303
295
|
set jsonObject(obj: Object|null|undefined) {
|
|
304
|
-
|
|
305
|
-
this.#jsonView
|
|
306
|
-
this.#jsonView
|
|
307
|
-
this.searchProvider = jsonView;
|
|
308
|
-
jsonView.show(this.element);
|
|
296
|
+
this.#jsonView.parsedJSON = new ParsedJSON(obj, '', '');
|
|
297
|
+
this.searchProvider = this.#jsonView;
|
|
298
|
+
this.#jsonView.show(this.element);
|
|
309
299
|
this.requestUpdate();
|
|
310
300
|
}
|
|
311
301
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import * as Common from '../../../../core/common/common.js';
|
|
7
7
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
8
|
-
import * as TextUtils from '../../../../
|
|
8
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
9
9
|
import * as UI from '../../legacy.js';
|
|
10
10
|
|
|
11
11
|
import {FontView} from './FontView.js';
|
|
@@ -36,8 +36,8 @@ import '../../legacy.js';
|
|
|
36
36
|
|
|
37
37
|
import * as Common from '../../../../core/common/common.js';
|
|
38
38
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
39
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
39
40
|
import * as FormatterActions from '../../../../entrypoints/formatter_worker/FormatterActions.js'; // eslint-disable-line @devtools/es-modules-import
|
|
40
|
-
import * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
41
41
|
import {render} from '../../../../ui/lit/lit.js';
|
|
42
42
|
import * as UI from '../../legacy.js';
|
|
43
43
|
|
|
@@ -9,8 +9,8 @@ import * as i18n from '../../../../core/i18n/i18n.js';
|
|
|
9
9
|
import * as Platform from '../../../../core/platform/platform.js';
|
|
10
10
|
import * as Root from '../../../../core/root/root.js';
|
|
11
11
|
import * as SDK from '../../../../core/sdk/sdk.js';
|
|
12
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
12
13
|
import * as Formatter from '../../../../models/formatter/formatter.js';
|
|
13
|
-
import * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
14
14
|
import * as PanelCommon from '../../../../panels/common/common.js';
|
|
15
15
|
import * as CodeMirror from '../../../../third_party/codemirror.next/codemirror.next.js';
|
|
16
16
|
import * as CodeHighlighter from '../../../components/code_highlighter/code_highlighter.js';
|
|
@@ -73,7 +73,7 @@ const UIStrings = {
|
|
|
73
73
|
* @example {allow pasting} PH1
|
|
74
74
|
*/
|
|
75
75
|
doNotPaste:
|
|
76
|
-
'Don
|
|
76
|
+
'Don’t paste code you do not understand or have not reviewed yourself into DevTools. This could allow attackers to steal your identity or take control of your computer. Please type “{PH1}” below to allow pasting.',
|
|
77
77
|
/**
|
|
78
78
|
* @description Text a user needs to type in order to confirm that they are aware of the danger of pasting code into the DevTools console.
|
|
79
79
|
*/
|
|
@@ -88,7 +88,7 @@ const UIStrings = {
|
|
|
88
88
|
* a text editor.
|
|
89
89
|
*/
|
|
90
90
|
binaryContentError:
|
|
91
|
-
'Editor can
|
|
91
|
+
'Editor can’t show binary data. Use the "Response" tab in the "Network" panel to inspect this resource.',
|
|
92
92
|
} as const;
|
|
93
93
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/source_frame/SourceFrame.ts', UIStrings);
|
|
94
94
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
5
5
|
|
|
6
6
|
import type * as Common from '../../../../core/common/common.js';
|
|
7
|
-
import * as TextUtils from '../../../../
|
|
7
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
8
8
|
import * as LinearMemoryInspectorComponents from '../../../../panels/linear_memory_inspector/components/components.js';
|
|
9
9
|
import * as UI from '../../legacy.js';
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import '../../../components/highlighting/highlighting.js';
|
|
6
6
|
|
|
7
7
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
8
|
-
import * as TextUtils from '../../../../
|
|
8
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
9
9
|
import * as Lit from '../../../lit/lit.js';
|
|
10
10
|
import * as VisualLogging from '../../../visual_logging/visual_logging.js';
|
|
11
11
|
import * as UI from '../../legacy.js';
|
|
@@ -249,6 +249,10 @@ export class XMLTreeViewNode {
|
|
|
249
249
|
return this.#children;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
+
treeNodeChildren(): Iterable<XMLTreeViewNode> {
|
|
253
|
+
return this.children();
|
|
254
|
+
}
|
|
255
|
+
|
|
252
256
|
match(regex: RegExp, closeTag: boolean): RegExpStringIterator<RegExpExecArray> {
|
|
253
257
|
return textView(this, closeTag).matchAll(regex);
|
|
254
258
|
}
|
|
@@ -9,11 +9,11 @@ import * as Host from '../../../../core/host/host.js';
|
|
|
9
9
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
10
10
|
import * as Platform from '../../../../core/platform/platform.js';
|
|
11
11
|
import * as SDK from '../../../../core/sdk/sdk.js';
|
|
12
|
+
import * as TextUtils from '../../../../core/text_utils/text_utils.js';
|
|
12
13
|
import type * as Protocol from '../../../../generated/protocol.js';
|
|
13
14
|
import * as Bindings from '../../../../models/bindings/bindings.js';
|
|
14
15
|
import * as Breakpoints from '../../../../models/breakpoints/breakpoints.js';
|
|
15
16
|
import type * as StackTrace from '../../../../models/stack_trace/stack_trace.js';
|
|
16
|
-
import * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
17
17
|
import type * as Trace from '../../../../models/trace/trace.js';
|
|
18
18
|
import * as Workspace from '../../../../models/workspace/workspace.js';
|
|
19
19
|
import * as UIHelpers from '../../../helpers/helpers.js';
|
|
@@ -141,9 +141,11 @@ iframe.widget {
|
|
|
141
141
|
display: none !important; /* stylelint-disable-line declaration-no-important */
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
.highlighted-search-result
|
|
144
|
+
.highlighted-search-result,
|
|
145
|
+
:host::highlight(highlighted-search-result) {
|
|
145
146
|
border-radius: 1px;
|
|
146
147
|
background-color: var(--sys-color-yellow-container);
|
|
148
|
+
color: var(--sys-color-on-yellow-container);
|
|
147
149
|
outline: 1px solid var(--sys-color-yellow-container);
|
|
148
150
|
}
|
|
149
151
|
|
|
@@ -320,7 +322,8 @@ input[type='range']:disabled::-webkit-slider-thumb {
|
|
|
320
322
|
}
|
|
321
323
|
}
|
|
322
324
|
|
|
323
|
-
.highlighted-search-result.current-search-result
|
|
325
|
+
.highlighted-search-result.current-search-result,
|
|
326
|
+
:host::highlight(current-search-result) {
|
|
324
327
|
/* Note: this value is used in light & dark mode */
|
|
325
328
|
--override-current-search-result-background-color: rgb(255 127 0 / 80%);
|
|
326
329
|
|
|
@@ -329,6 +332,7 @@ input[type='range']:disabled::-webkit-slider-thumb {
|
|
|
329
332
|
padding: 1px;
|
|
330
333
|
margin: -1px;
|
|
331
334
|
background-color: var(--override-current-search-result-background-color);
|
|
335
|
+
color: var(--sys-color-on-surface);
|
|
332
336
|
}
|
|
333
337
|
|
|
334
338
|
.dimmed {
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Copyright 2026 The Chromium Authors
|
|
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 Common from '../../core/common/common.js';
|
|
6
|
+
import type * as Platform from '../../core/platform/platform.js';
|
|
7
|
+
|
|
8
|
+
export interface SettingUIDescriptor {
|
|
9
|
+
/**
|
|
10
|
+
* The category with which the setting is displayed in the UI.
|
|
11
|
+
*/
|
|
12
|
+
category?: Common.SettingRegistration.SettingCategory;
|
|
13
|
+
/**
|
|
14
|
+
* Used to sort on screen the settings that belong to the same category.
|
|
15
|
+
*/
|
|
16
|
+
order?: number;
|
|
17
|
+
/**
|
|
18
|
+
* The title with which the setting is shown on screen.
|
|
19
|
+
*/
|
|
20
|
+
title?: () => Platform.UIString.LocalizedString;
|
|
21
|
+
/**
|
|
22
|
+
* Words used to find a setting in the Command Menu.
|
|
23
|
+
*/
|
|
24
|
+
tags?: Array<() => Platform.UIString.LocalizedString>;
|
|
25
|
+
/**
|
|
26
|
+
* The possible values the setting can have, each with a description composed of a title and an optional text.
|
|
27
|
+
*/
|
|
28
|
+
options?: Common.SettingRegistration.SettingExtensionOption[];
|
|
29
|
+
/**
|
|
30
|
+
* Whether DevTools must be reloaded for a change in the setting to take effect.
|
|
31
|
+
*/
|
|
32
|
+
reloadRequired?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* If a setting is deprecated, define this notice to show an appropriate warning according to the `warning` property.
|
|
35
|
+
* If `disabled` is set, the setting will be disabled in the settings UI. In that case, `experiment` optionally can be
|
|
36
|
+
* set to link to an experiment (by experiment name). The information icon in the settings UI can then be clicked to
|
|
37
|
+
* jump to the experiment. If a setting is not disabled, the experiment entry will be ignored.
|
|
38
|
+
*/
|
|
39
|
+
deprecationNotice?: {disabled: boolean, warning: () => Platform.UIString.LocalizedString, experiment?: string};
|
|
40
|
+
/**
|
|
41
|
+
* See {@link LearnMore} for more info.
|
|
42
|
+
*/
|
|
43
|
+
learnMore?: Common.SettingRegistration.LearnMore;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface RegisteredSettingUI {
|
|
47
|
+
descriptor: Common.Settings.SettingDescriptor<unknown>;
|
|
48
|
+
uiDescriptor: SettingUIDescriptor;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const registeredSettings = new Map<string, RegisteredSettingUI>();
|
|
52
|
+
|
|
53
|
+
export function register(
|
|
54
|
+
settingDescriptor: Common.Settings.SettingDescriptor<unknown>,
|
|
55
|
+
settingUIDescriptor: SettingUIDescriptor,
|
|
56
|
+
): void {
|
|
57
|
+
const settingName = settingDescriptor.name;
|
|
58
|
+
if (registeredSettings.has(settingName)) {
|
|
59
|
+
throw new Error(`Duplicate setting name '${settingName}'`);
|
|
60
|
+
}
|
|
61
|
+
registeredSettings.set(settingName, {descriptor: settingDescriptor, uiDescriptor: settingUIDescriptor});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function getRegisteredSettings(): readonly RegisteredSettingUI[] {
|
|
65
|
+
const combined = new Map<string, RegisteredSettingUI>();
|
|
66
|
+
for (const legacy of Common.SettingRegistration.getRegisteredSettings()) {
|
|
67
|
+
combined.set(legacy.settingName, {
|
|
68
|
+
descriptor: {
|
|
69
|
+
name: legacy.settingName,
|
|
70
|
+
type: legacy.settingType,
|
|
71
|
+
defaultValue: legacy.defaultValue,
|
|
72
|
+
storageType: legacy.storageType,
|
|
73
|
+
},
|
|
74
|
+
uiDescriptor: {
|
|
75
|
+
category: legacy.category,
|
|
76
|
+
order: legacy.order,
|
|
77
|
+
title: legacy.title,
|
|
78
|
+
tags: legacy.tags,
|
|
79
|
+
options: legacy.options,
|
|
80
|
+
reloadRequired: legacy.reloadRequired,
|
|
81
|
+
deprecationNotice: legacy.deprecationNotice,
|
|
82
|
+
learnMore: legacy.learnMore,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
for (const [name, registeredUI] of registeredSettings) {
|
|
88
|
+
combined.set(name, registeredUI);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return Array.from(combined.values());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function resolve(settingDescriptor: Common.Settings.SettingDescriptor<unknown>): SettingUIDescriptor {
|
|
95
|
+
const settingUI = registeredSettings.get(settingDescriptor.name) ??
|
|
96
|
+
getRegisteredSettings().find(registered => registered.descriptor.name === settingDescriptor.name);
|
|
97
|
+
if (!settingUI) {
|
|
98
|
+
throw new Error(`No UI descriptor registered for setting '${settingDescriptor.name}'`);
|
|
99
|
+
}
|
|
100
|
+
return settingUI.uiDescriptor;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function resetSettings(): void {
|
|
104
|
+
registeredSettings.clear();
|
|
105
|
+
}
|
|
@@ -1468,6 +1468,8 @@ export const knownContextValues = new Set([
|
|
|
1468
1468
|
'dynamic-synced-setting',
|
|
1469
1469
|
'e-ink',
|
|
1470
1470
|
'early-hints-headers',
|
|
1471
|
+
'ease-in-out',
|
|
1472
|
+
'ease-out',
|
|
1471
1473
|
'edit',
|
|
1472
1474
|
'edit-and-resend',
|
|
1473
1475
|
'edit-attribute',
|
|
@@ -1679,6 +1681,7 @@ export const knownContextValues = new Set([
|
|
|
1679
1681
|
'fangsong',
|
|
1680
1682
|
'fantasy',
|
|
1681
1683
|
'fast-4g',
|
|
1684
|
+
'fast-out-linear-in',
|
|
1682
1685
|
'feedback',
|
|
1683
1686
|
'fetch',
|
|
1684
1687
|
'fetch-and-xhr',
|
|
@@ -2322,6 +2325,7 @@ export const knownContextValues = new Set([
|
|
|
2322
2325
|
'layout',
|
|
2323
2326
|
'layout-count',
|
|
2324
2327
|
'layout-shifts',
|
|
2328
|
+
'lazy-load-image-details',
|
|
2325
2329
|
'lcp-breakdown',
|
|
2326
2330
|
'lcp-breakdown-widget',
|
|
2327
2331
|
'lcp-discovery-widget',
|
|
@@ -2563,6 +2567,7 @@ export const knownContextValues = new Set([
|
|
|
2563
2567
|
'line-height-value-type',
|
|
2564
2568
|
'line-names',
|
|
2565
2569
|
'line-numbers',
|
|
2570
|
+
'linear',
|
|
2566
2571
|
'linear-memory-inspector',
|
|
2567
2572
|
'linear-memory-inspector.address',
|
|
2568
2573
|
'linear-memory-inspector.byte-cell',
|
|
@@ -3477,6 +3482,7 @@ export const knownContextValues = new Set([
|
|
|
3477
3482
|
'screen',
|
|
3478
3483
|
'screen-rotation',
|
|
3479
3484
|
'screencast-enabled',
|
|
3485
|
+
'screenshot-capture-mode',
|
|
3480
3486
|
'screenshots',
|
|
3481
3487
|
'script',
|
|
3482
3488
|
'script-blocked-by-csp',
|
|
@@ -3952,6 +3958,8 @@ export const knownContextValues = new Set([
|
|
|
3952
3958
|
'sv',
|
|
3953
3959
|
'sw',
|
|
3954
3960
|
'sw-scope',
|
|
3961
|
+
'switch-to-accessibility-tree',
|
|
3962
|
+
'switch-to-dom-tree',
|
|
3955
3963
|
'symbols',
|
|
3956
3964
|
'sync-preferences',
|
|
3957
3965
|
'sync-tag',
|
|
@@ -4088,6 +4096,7 @@ export const knownContextValues = new Set([
|
|
|
4088
4096
|
'timeline-range-summary',
|
|
4089
4097
|
'timeline-save-as-gz',
|
|
4090
4098
|
'timeline-scope',
|
|
4099
|
+
'timeline-screenshot-capture-mode',
|
|
4091
4100
|
'timeline-settings-pane',
|
|
4092
4101
|
'timeline-settings-toggle',
|
|
4093
4102
|
'timeline-show-all-events',
|
|
@@ -4316,6 +4325,10 @@ export const knownContextValues = new Set([
|
|
|
4316
4325
|
'touchmove',
|
|
4317
4326
|
'touchstart',
|
|
4318
4327
|
'tr',
|
|
4328
|
+
'tracing.screenshot-size.100-11250',
|
|
4329
|
+
'tracing.screenshot-size.1000-100',
|
|
4330
|
+
'tracing.screenshot-size.250-1800',
|
|
4331
|
+
'tracing.screenshot-size.500-450',
|
|
4319
4332
|
'track-configuration-enter',
|
|
4320
4333
|
'track-configuration-exit',
|
|
4321
4334
|
'tracking-sites-details',
|
package/mcp/mcp.ts
CHANGED
|
@@ -21,6 +21,7 @@ export * as I18n from '../front_end/core/i18n/i18n.js';
|
|
|
21
21
|
export type * as CDPConnection from '../front_end/core/protocol_client/CDPConnection.js';
|
|
22
22
|
export {ConnectionTransport} from '../front_end/core/protocol_client/ConnectionTransport.js';
|
|
23
23
|
export * as ProtocolClient from '../front_end/core/protocol_client/protocol_client.js';
|
|
24
|
+
export {PuppeteerDevToolsConnection} from '../front_end/core/protocol_client/PuppeteerDevToolsConnection.js';
|
|
24
25
|
export {DebuggerModel} from '../front_end/core/sdk/DebuggerModel.js';
|
|
25
26
|
export * as NetworkManager from '../front_end/core/sdk/NetworkManager.js';
|
|
26
27
|
export {RuntimeModel} from '../front_end/core/sdk/RuntimeModel.js';
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|