chrome-devtools-frontend 1.0.1675430 → 1.0.1676824
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/WATCHLISTS +0 -4
- package/front_end/core/common/Settings.ts +0 -66
- package/front_end/core/root/Runtime.ts +0 -5
- package/front_end/core/sdk/CSSMetadata.ts +5 -9
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +8 -28
- package/front_end/core/sdk/DebuggerModel.ts +50 -30
- package/front_end/core/sdk/ResourceTreeModel.ts +20 -1
- package/front_end/core/sdk/Script.ts +9 -53
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +213 -23
- package/front_end/entrypoints/main/MainImpl.ts +31 -0
- package/front_end/generated/InspectorBackendCommands.ts +3 -1
- package/front_end/generated/SupportedCSSProperties.ts +21 -4
- package/front_end/generated/protocol-mapping.d.ts +14 -0
- package/front_end/generated/protocol-proxy-api.d.ts +10 -0
- package/front_end/generated/protocol.ts +35 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +11 -0
- package/front_end/models/ai_assistance/AiConversation.ts +22 -5
- package/front_end/models/ai_assistance/README.md +52 -26
- package/front_end/models/ai_assistance/agents/AiAgent.ts +54 -8
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +7 -194
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +8 -87
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -1
- package/front_end/models/ai_assistance/ai_assistance.ts +16 -0
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +124 -0
- package/front_end/models/ai_assistance/contexts/StorageContext.ts +111 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +69 -1
- package/front_end/models/ai_assistance/skills/README.md +63 -1
- package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
- package/front_end/models/ai_assistance/skills/SkillRegistry.ts +4 -0
- package/front_end/models/ai_assistance/skills/performance.md +8 -0
- package/front_end/models/ai_assistance/skills/sources.md +16 -0
- package/front_end/models/ai_assistance/skills/storage.md +31 -0
- package/front_end/models/ai_assistance/tools/GetSourceContent.ts +101 -0
- package/front_end/models/ai_assistance/tools/GetTraceEventByKey.ts +83 -0
- package/front_end/models/ai_assistance/tools/GetTraceMainThreadSummary.ts +106 -0
- package/front_end/models/ai_assistance/tools/GetTraceNetworkSummary.ts +104 -0
- package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +81 -0
- package/front_end/models/ai_assistance/tools/ListSources.ts +116 -0
- package/front_end/models/ai_assistance/tools/SelectTraceEventByKey.ts +90 -0
- package/front_end/models/ai_assistance/tools/Tool.ts +22 -1
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +14 -0
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +4 -0
- package/front_end/models/bindings/CompilerScriptMapping.ts +4 -0
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -0
- package/front_end/models/bindings/ResourceScriptMapping.ts +3 -201
- package/front_end/models/bindings/SASSSourceMapping.ts +6 -0
- package/front_end/models/breakpoints/BreakpointManager.ts +2 -49
- package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +27 -0
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +10 -2
- package/front_end/models/issues_manager/descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/models/persistence/IsolatedFileSystem.ts +7 -8
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -2
- package/front_end/models/persistence/PlatformFileSystem.ts +1 -1
- package/front_end/models/persistence/persistence-meta.ts +9 -9
- package/front_end/models/trace/types/TraceEvents.ts +36 -0
- package/front_end/panels/accessibility/ARIAAttributesView.ts +3 -3
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +36 -36
- package/front_end/panels/accessibility/AccessibilityStrings.ts +168 -168
- package/front_end/panels/accessibility/SourceOrderView.ts +7 -7
- package/front_end/panels/accessibility/accessibility-meta.ts +2 -2
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +5 -5
- package/front_end/panels/ai_assistance/components/AIv2MarkdownRenderer.ts +2 -3
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +27 -2
- package/front_end/panels/application/IndexedDBViews.ts +65 -63
- package/front_end/panels/application/WebMCPView.ts +16 -7
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +5 -5
- package/front_end/panels/common/BadgeNotification.ts +8 -8
- package/front_end/panels/common/ExtensionServer.ts +21 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +16 -16
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +5 -6
- package/front_end/panels/common/PersistenceUtils.ts +2 -2
- package/front_end/panels/common/common.ts +0 -97
- package/front_end/panels/console/ConsoleInsightTeaser.ts +2 -2
- package/front_end/panels/console/ConsolePinPane.ts +2 -2
- package/front_end/panels/console/ConsoleView.ts +20 -19
- package/front_end/panels/elements/LayoutPane.ts +2 -8
- package/front_end/panels/event_listeners/EventListenersView.ts +8 -4
- package/front_end/panels/issues/AffectedTrackingSitesView.ts +25 -14
- package/front_end/panels/media/PlayerMessagesView.ts +149 -68
- package/front_end/panels/network/NetworkPanel.ts +1 -1
- package/front_end/panels/network/RequestPayloadView.ts +1 -0
- package/front_end/panels/profiler/HeapSnapshotView.ts +0 -2
- package/front_end/panels/profiler/heapProfiler.css +0 -9
- package/front_end/panels/recorder/RecorderPanel.ts +2 -3
- package/front_end/panels/screencast/ScreencastView.ts +148 -138
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +2 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +9 -58
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +3 -8
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +4 -2
- package/front_end/panels/timeline/TimelineController.ts +36 -64
- package/front_end/panels/timeline/TimelinePanel.ts +11 -8
- package/front_end/panels/timeline/TimelineUIUtils.ts +5 -2
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -2
- package/front_end/panels/timeline/timelinePanel.css +0 -10
- package/front_end/panels/utils/utils.ts +7 -7
- package/front_end/services/tracing/PerformanceTracing.ts +5 -17
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/package.json +2 -2
- package/front_end/third_party/codemirror.next/rebuild.sh +4 -1
- package/front_end/ui/comments/CommentAnchorResolver.ts +436 -10
- package/front_end/ui/comments/CommentManager.ts +640 -0
- package/front_end/ui/comments/CommentsOverlayWidget.ts +121 -0
- package/front_end/ui/comments/comments.ts +4 -0
- package/front_end/ui/comments/commentsOverlay.css +49 -0
- package/front_end/{panels/common → ui/components/dialogs}/FreDialog.ts +6 -6
- package/front_end/ui/components/dialogs/TypeToAllowDialog.ts +96 -0
- package/front_end/ui/components/dialogs/dialogs.ts +4 -0
- package/front_end/ui/components/settings/SettingCheckbox.ts +3 -3
- package/front_end/{panels/common → ui/components/text_editor}/AiCodeCompletionDisclaimer.ts +13 -13
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +7 -6
- package/front_end/{panels/common → ui/components/text_editor}/AiCodeCompletionTeaser.ts +43 -46
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +22 -26
- package/front_end/{panels/common → ui/components/text_editor}/AiCodeGenerationTeaser.ts +10 -10
- package/front_end/{panels/common → ui/components/text_editor}/AiCodeGenerationUpgradeDialog.ts +5 -5
- package/front_end/ui/components/text_editor/text_editor.ts +4 -0
- package/front_end/ui/legacy/Toolbar.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +11 -3
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +270 -162
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +5 -0
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +11 -16
- package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +5 -12
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +8 -1
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -2
- package/front_end/ui/settings/SettingUIRegistration.ts +55 -6
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/mcp/mcp.ts +6 -1
- package/package.json +1 -1
- package/front_end/Images/toolbarResizerVertical.png +0 -0
- package/front_end/emulated_devices/MotoG4-landscape.svg +0 -155
- package/front_end/emulated_devices/MotoG4-portrait.svg +0 -155
- package/front_end/emulated_devices/Nexus5X-landscape.svg +0 -19
- package/front_end/emulated_devices/Nexus5X-portrait.svg +0 -19
- package/front_end/emulated_devices/Nexus6P-landscape.svg +0 -50
- package/front_end/emulated_devices/Nexus6P-portrait.svg +0 -54
- package/front_end/emulated_devices/google-nest-hub-horizontal.png +0 -0
- package/front_end/emulated_devices/google-nest-hub-max-horizontal.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-default-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-default-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-navigation-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-horizontal-navigation-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-default-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-default-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-keyboard-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-keyboard-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-navigation-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5-vertical-navigation-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-default-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-default-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-default-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-default-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-navigation-1x.png +0 -0
- package/front_end/emulated_devices/google-nexus-5x-vertical-navigation-2x.png +0 -0
- package/front_end/emulated_devices/iPad-landscape.svg +0 -73
- package/front_end/emulated_devices/iPad-portrait.svg +0 -76
- package/front_end/emulated_devices/iPhone5-landscape.svg +0 -99
- package/front_end/emulated_devices/iPhone5-portrait.svg +0 -83
- package/front_end/emulated_devices/iPhone6-landscape.svg +0 -111
- package/front_end/emulated_devices/iPhone6-portrait.svg +0 -116
- package/front_end/emulated_devices/iPhone6Plus-landscape.svg +0 -118
- package/front_end/emulated_devices/iPhone6Plus-portrait.svg +0 -116
- package/front_end/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/README.md +0 -9
- package/front_end/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
- package/front_end/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
- package/front_end/emulated_devices/optimized/iPad-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/iPad-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
- package/front_end/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
- package/front_end/emulated_devices/optimized/optimized_images.gni +0 -53
- package/front_end/models/ai_assistance/agents/README.md +0 -136
- /package/front_end/{panels/common → ui/components/dialogs}/freDialog.css +0 -0
- /package/front_end/{panels/common/common.css → ui/components/dialogs/typeToAllowDialog.css} +0 -0
- /package/front_end/{panels/common → ui/components/text_editor}/aiCodeCompletionDisclaimer.css +0 -0
- /package/front_end/{panels/common → ui/components/text_editor}/aiCodeCompletionTeaser.css +0 -0
- /package/front_end/{panels/common → ui/components/text_editor}/aiCodeGenerationTeaser.css +0 -0
- /package/front_end/{panels/common → ui/components/text_editor}/aiCodeGenerationUpgradeDialog.css +0 -0
|
@@ -10,11 +10,13 @@ import type * as Common from '../../core/common/common.js';
|
|
|
10
10
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
11
11
|
import type * as Protocol from '../../generated/protocol.js';
|
|
12
12
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
13
|
-
import {html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
13
|
+
import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
14
14
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
15
15
|
|
|
16
16
|
import playerMessagesViewStyles from './playerMessagesView.css.js';
|
|
17
17
|
|
|
18
|
+
const {classMap} = Directives;
|
|
19
|
+
|
|
18
20
|
const UIStrings = {
|
|
19
21
|
/**
|
|
20
22
|
* @description A context menu item in the Console view of the Console panel.
|
|
@@ -104,7 +106,7 @@ class MessageLevelSelector implements UI.SoftDropDown.Delegate<SelectableLevel>
|
|
|
104
106
|
readonly #defaultTitle: Common.UIString.LocalizedString;
|
|
105
107
|
private readonly customTitle: Common.UIString.LocalizedString;
|
|
106
108
|
private readonly allTitle: Common.UIString.LocalizedString;
|
|
107
|
-
elementsForItems: WeakMap<SelectableLevel,
|
|
109
|
+
elementsForItems: WeakMap<SelectableLevel, ShadowRoot>;
|
|
108
110
|
|
|
109
111
|
constructor(items: UI.ListModel.ListModel<SelectableLevel>, view: PlayerMessagesView) {
|
|
110
112
|
this.items = items;
|
|
@@ -131,66 +133,86 @@ class MessageLevelSelector implements UI.SoftDropDown.Delegate<SelectableLevel>
|
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
populate(): void {
|
|
134
|
-
|
|
136
|
+
const defaultLevel = {
|
|
135
137
|
title: this.#defaultTitle,
|
|
136
138
|
overwrite: true,
|
|
137
139
|
stringValue: '',
|
|
138
140
|
value: MessageLevelBitfield.DEFAULT,
|
|
141
|
+
};
|
|
142
|
+
this.items.insert(this.items.length, defaultLevel);
|
|
143
|
+
this.itemMap.set(defaultLevel.value, defaultLevel);
|
|
139
144
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
this.items.insert(this.items.length, {
|
|
145
|
+
const allLevel = {
|
|
143
146
|
title: this.allTitle,
|
|
144
147
|
overwrite: true,
|
|
145
148
|
stringValue: '',
|
|
146
149
|
value: MessageLevelBitfield.ALL,
|
|
150
|
+
};
|
|
151
|
+
this.items.insert(this.items.length, allLevel);
|
|
152
|
+
this.itemMap.set(allLevel.value, allLevel);
|
|
147
153
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.items.insert(this.items.length, {
|
|
154
|
+
const errorLevel = {
|
|
151
155
|
title: i18nString(UIStrings.error),
|
|
152
156
|
overwrite: false,
|
|
153
157
|
stringValue: 'error',
|
|
154
158
|
value: MessageLevelBitfield.ERROR,
|
|
159
|
+
};
|
|
160
|
+
this.items.insert(this.items.length, errorLevel);
|
|
161
|
+
this.itemMap.set(errorLevel.value, errorLevel);
|
|
155
162
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
this.items.insert(this.items.length, {
|
|
163
|
+
const warningLevel = {
|
|
159
164
|
title: i18nString(UIStrings.warning),
|
|
160
165
|
overwrite: false,
|
|
161
166
|
stringValue: 'warning',
|
|
162
167
|
value: MessageLevelBitfield.WARNING,
|
|
163
|
-
}
|
|
168
|
+
};
|
|
169
|
+
this.items.insert(this.items.length, warningLevel);
|
|
170
|
+
this.itemMap.set(warningLevel.value, warningLevel);
|
|
164
171
|
|
|
165
|
-
|
|
172
|
+
const infoLevel = {
|
|
166
173
|
title: i18nString(UIStrings.info),
|
|
167
174
|
overwrite: false,
|
|
168
175
|
stringValue: 'info',
|
|
169
176
|
value: MessageLevelBitfield.INFO,
|
|
170
|
-
}
|
|
177
|
+
};
|
|
178
|
+
this.items.insert(this.items.length, infoLevel);
|
|
179
|
+
this.itemMap.set(infoLevel.value, infoLevel);
|
|
171
180
|
|
|
172
|
-
|
|
181
|
+
const debugLevel = {
|
|
173
182
|
title: i18nString(UIStrings.debug),
|
|
174
183
|
overwrite: false,
|
|
175
184
|
stringValue: 'debug',
|
|
176
185
|
value: MessageLevelBitfield.DEBUG,
|
|
186
|
+
};
|
|
187
|
+
this.items.insert(this.items.length, debugLevel);
|
|
188
|
+
this.itemMap.set(debugLevel.value, debugLevel);
|
|
189
|
+
}
|
|
177
190
|
|
|
178
|
-
|
|
191
|
+
#renderItem(item: SelectableLevel, target: ShadowRoot|HTMLElement): void {
|
|
192
|
+
const checked = Boolean(item.value & this.bitFieldValue);
|
|
193
|
+
// clang-format off
|
|
194
|
+
render(html`
|
|
195
|
+
<div class="media-messages-level-dropdown-element">
|
|
196
|
+
<div class="media-messages-level-dropdown-checkbox">
|
|
197
|
+
${!item.overwrite && checked ? html`<div>✓</div>` : nothing}
|
|
198
|
+
</div>
|
|
199
|
+
<span class="media-messages-level-dropdown-text">${item.title}</span>
|
|
200
|
+
</div>
|
|
201
|
+
`, target, {host: this});
|
|
202
|
+
// clang-format on
|
|
179
203
|
}
|
|
180
204
|
|
|
181
205
|
private updateCheckMarks(): void {
|
|
182
206
|
this.hiddenLevels = [];
|
|
183
207
|
for (const [key, item] of this.itemMap) {
|
|
184
208
|
if (!item.overwrite) {
|
|
185
|
-
|
|
186
|
-
if (elementForItem?.firstChild) {
|
|
187
|
-
elementForItem.firstChild.remove();
|
|
188
|
-
}
|
|
189
|
-
if (elementForItem && key & this.bitFieldValue) {
|
|
190
|
-
UI.UIUtils.createTextChild(elementForItem.createChild('div'), '✓');
|
|
191
|
-
} else {
|
|
209
|
+
if (!(key & this.bitFieldValue)) {
|
|
192
210
|
this.hiddenLevels.push(item.stringValue);
|
|
193
211
|
}
|
|
212
|
+
const target = this.elementsForItems.get(item);
|
|
213
|
+
if (target) {
|
|
214
|
+
this.#renderItem(item, target);
|
|
215
|
+
}
|
|
194
216
|
}
|
|
195
217
|
}
|
|
196
218
|
}
|
|
@@ -223,12 +245,9 @@ class MessageLevelSelector implements UI.SoftDropDown.Delegate<SelectableLevel>
|
|
|
223
245
|
createElementForItem(item: SelectableLevel): Element {
|
|
224
246
|
const element = document.createElement('div');
|
|
225
247
|
const shadowRoot = UI.UIUtils.createShadowRootWithCoreStyles(element, {cssFile: playerMessagesViewStyles});
|
|
226
|
-
|
|
227
|
-
const checkBox = container.createChild('div', 'media-messages-level-dropdown-checkbox');
|
|
228
|
-
const text = container.createChild('span', 'media-messages-level-dropdown-text');
|
|
229
|
-
UI.UIUtils.createTextChild(text, item.title);
|
|
230
|
-
this.elementsForItems.set(item, checkBox);
|
|
248
|
+
this.elementsForItems.set(item, shadowRoot);
|
|
231
249
|
this.itemMap.set(item.value, item);
|
|
250
|
+
this.#renderItem(item, shadowRoot);
|
|
232
251
|
this.updateCheckMarks();
|
|
233
252
|
this.view.regenerateMessageDisplayCss(this.hiddenLevels);
|
|
234
253
|
return element;
|
|
@@ -249,10 +268,29 @@ class MessageLevelSelector implements UI.SoftDropDown.Delegate<SelectableLevel>
|
|
|
249
268
|
}
|
|
250
269
|
}
|
|
251
270
|
|
|
271
|
+
interface MessageItem {
|
|
272
|
+
type: 'message';
|
|
273
|
+
level: string;
|
|
274
|
+
message: Protocol.Media.PlayerMessage;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
interface ErrorItem {
|
|
278
|
+
type: 'error';
|
|
279
|
+
level: 'error';
|
|
280
|
+
error: Protocol.Media.PlayerError;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
type MessageOrErrorItem = MessageItem|ErrorItem;
|
|
284
|
+
|
|
252
285
|
export class PlayerMessagesView extends UI.Widget.VBox {
|
|
253
286
|
private readonly headerPanel: HTMLElement;
|
|
254
287
|
private readonly bodyPanel: HTMLElement;
|
|
255
288
|
private messageLevelSelector?: MessageLevelSelector;
|
|
289
|
+
#items: MessageOrErrorItem[] = [];
|
|
290
|
+
#hiddenLevels: string[] = [];
|
|
291
|
+
#filterString = '';
|
|
292
|
+
#dropDownItem?: UI.Toolbar.ToolbarItem;
|
|
293
|
+
#filterInput?: UI.Toolbar.ToolbarInput;
|
|
256
294
|
|
|
257
295
|
constructor() {
|
|
258
296
|
super({jslog: `${VisualLogging.pane('messages')}`});
|
|
@@ -261,15 +299,9 @@ export class PlayerMessagesView extends UI.Widget.VBox {
|
|
|
261
299
|
this.headerPanel = this.contentElement.createChild('div', 'media-messages-header');
|
|
262
300
|
this.bodyPanel = this.contentElement.createChild('div', 'media-messages-body');
|
|
263
301
|
|
|
264
|
-
this.
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
private buildToolbar(): void {
|
|
268
|
-
const toolbar = this.headerPanel.createChild('devtools-toolbar', 'media-messages-toolbar');
|
|
269
|
-
toolbar.appendText(i18nString(UIStrings.logLevel));
|
|
270
|
-
toolbar.appendToolbarItem(this.createDropdown());
|
|
271
|
-
toolbar.appendSeparator();
|
|
272
|
-
toolbar.appendToolbarItem(this.createFilterInput());
|
|
302
|
+
this.#dropDownItem = this.createDropdown();
|
|
303
|
+
this.#filterInput = this.createFilterInput();
|
|
304
|
+
this.performUpdate();
|
|
273
305
|
}
|
|
274
306
|
|
|
275
307
|
private createDropdown(): UI.Toolbar.ToolbarItem {
|
|
@@ -300,45 +332,92 @@ export class PlayerMessagesView extends UI.Widget.VBox {
|
|
|
300
332
|
return filterInput;
|
|
301
333
|
}
|
|
302
334
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
335
|
+
override performUpdate(): void {
|
|
336
|
+
this.#renderToolbar();
|
|
337
|
+
this.#renderMessages();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
#renderToolbar(): void {
|
|
341
|
+
// clang-format off
|
|
342
|
+
render(html`
|
|
343
|
+
<devtools-toolbar class="media-messages-toolbar">
|
|
344
|
+
<div class="toolbar-text">${i18nString(UIStrings.logLevel)}</div>
|
|
345
|
+
${this.#dropDownItem?.element}
|
|
346
|
+
<div class="toolbar-divider"></div>
|
|
347
|
+
${this.#filterInput?.element}
|
|
348
|
+
</devtools-toolbar>
|
|
349
|
+
`, this.headerPanel, {host: this});
|
|
350
|
+
// clang-format on
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
#renderMessages(): void {
|
|
354
|
+
// clang-format off
|
|
355
|
+
render(html`
|
|
356
|
+
${this.#items.map(item => {
|
|
357
|
+
const isUnselected = this.#isLevelHidden(item.level);
|
|
358
|
+
let isFiltered = false;
|
|
359
|
+
if (this.#filterString !== '') {
|
|
360
|
+
if (item.type === 'message') {
|
|
361
|
+
isFiltered = !item.message.message.includes(this.#filterString);
|
|
362
|
+
} else {
|
|
363
|
+
isFiltered = !this.#errorMatchesFilter(item.error, this.#filterString);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
const classes = {
|
|
367
|
+
'media-messages-message-container': true,
|
|
368
|
+
[`media-message-${item.level}`]: true,
|
|
369
|
+
'media-messages-message-unselected': isUnselected,
|
|
370
|
+
'media-messages-message-filtered': isFiltered,
|
|
371
|
+
};
|
|
372
|
+
return html`
|
|
373
|
+
<div class=${classMap(classes)}>
|
|
374
|
+
${item.type === 'message' ? item.message.message : this.renderError(item.error)}
|
|
375
|
+
</div>
|
|
376
|
+
`;
|
|
377
|
+
})}
|
|
378
|
+
`, this.bodyPanel, {host: this});
|
|
379
|
+
// clang-format on
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
#isLevelHidden(level: string): boolean {
|
|
383
|
+
return this.#hiddenLevels.includes(level);
|
|
312
384
|
}
|
|
313
385
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
386
|
+
#errorMatchesFilter(error: Protocol.Media.PlayerError, filter: string): boolean {
|
|
387
|
+
if (error.errorType.includes(filter) || error.code.toString().includes(filter)) {
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
390
|
+
for (const [key, value] of Object.entries(error.data)) {
|
|
391
|
+
if (`${key}: ${value}`.includes(filter)) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
for (const stackEntry of error.stack) {
|
|
396
|
+
if (`${stackEntry.file}:${stackEntry.line}`.includes(filter)) {
|
|
397
|
+
return true;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
for (const cause of error.cause) {
|
|
401
|
+
if (this.#errorMatchesFilter(cause, filter)) {
|
|
317
402
|
return true;
|
|
318
403
|
}
|
|
319
404
|
}
|
|
320
405
|
return false;
|
|
321
406
|
}
|
|
322
407
|
|
|
408
|
+
regenerateMessageDisplayCss(hiddenLevels: string[]): void {
|
|
409
|
+
this.#hiddenLevels = hiddenLevels;
|
|
410
|
+
this.performUpdate();
|
|
411
|
+
}
|
|
412
|
+
|
|
323
413
|
private filterByString(userStringData: {data: string}): void {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
for (const message of messages) {
|
|
328
|
-
if (userString === '') {
|
|
329
|
-
message.classList.remove('media-messages-message-filtered');
|
|
330
|
-
} else if (message.textContent?.includes(userString)) {
|
|
331
|
-
message.classList.remove('media-messages-message-filtered');
|
|
332
|
-
} else {
|
|
333
|
-
message.classList.add('media-messages-message-filtered');
|
|
334
|
-
}
|
|
335
|
-
}
|
|
414
|
+
this.#filterString = userStringData.data;
|
|
415
|
+
this.performUpdate();
|
|
336
416
|
}
|
|
337
417
|
|
|
338
418
|
addMessage(message: Protocol.Media.PlayerMessage): void {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
UI.UIUtils.createTextChild(container, message.message);
|
|
419
|
+
this.#items.push({type: 'message', level: message.level, message});
|
|
420
|
+
this.performUpdate();
|
|
342
421
|
}
|
|
343
422
|
|
|
344
423
|
private renderError(error: Protocol.Media.PlayerError): LitTemplate {
|
|
@@ -393,7 +472,9 @@ export class PlayerMessagesView extends UI.Widget.VBox {
|
|
|
393
472
|
<span class="status-error-field-label"
|
|
394
473
|
>${i18nString(UIStrings.errorCauseLabel)}</span
|
|
395
474
|
>
|
|
396
|
-
|
|
475
|
+
<div>
|
|
476
|
+
${error.cause.map(cause => this.renderError(cause))}
|
|
477
|
+
</div>
|
|
397
478
|
`
|
|
398
479
|
: nothing
|
|
399
480
|
}
|
|
@@ -404,7 +485,7 @@ export class PlayerMessagesView extends UI.Widget.VBox {
|
|
|
404
485
|
}
|
|
405
486
|
|
|
406
487
|
addError(error: Protocol.Media.PlayerError): void {
|
|
407
|
-
|
|
408
|
-
|
|
488
|
+
this.#items.push({type: 'error', level: 'error', error});
|
|
489
|
+
this.performUpdate();
|
|
409
490
|
}
|
|
410
491
|
}
|
|
@@ -963,7 +963,7 @@ export class FilmStripRecorder implements Tracing.TracingManager.TracingManagerC
|
|
|
963
963
|
|
|
964
964
|
this.#tracingManager = tracingManager;
|
|
965
965
|
this.#resourceTreeModel = this.#tracingManager.target().model(SDK.ResourceTreeModel.ResourceTreeModel);
|
|
966
|
-
void this.#tracingManager.start(this, '
|
|
966
|
+
void this.#tracingManager.start(this, ['-*', ...Trace.Types.Events.OptionalCategories.Screenshot].join(','));
|
|
967
967
|
|
|
968
968
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.FilmStripStartedRecording);
|
|
969
969
|
}
|
|
@@ -201,6 +201,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
201
201
|
readOnly: true,
|
|
202
202
|
propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
203
203
|
});
|
|
204
|
+
objectTree.expanded = true;
|
|
204
205
|
return html`
|
|
205
206
|
<li role=treeitem class="source-code object-properties-section-root-element object-properties-section" open>
|
|
206
207
|
${object.description}
|
|
@@ -453,7 +453,6 @@ export class HeapSnapshotView extends UI.View.SimpleView implements DataDisplayD
|
|
|
453
453
|
const retainmentViewHeader = document.createElement('div');
|
|
454
454
|
retainmentViewHeader.classList.add('heap-snapshot-view-resizer');
|
|
455
455
|
const retainingPathsTitleDiv = retainmentViewHeader.createChild('div', 'title');
|
|
456
|
-
retainmentViewHeader.createChild('div', 'verticalResizerIcon');
|
|
457
456
|
const retainingPathsTitle = retainingPathsTitleDiv.createChild('span');
|
|
458
457
|
retainingPathsTitle.textContent = i18nString(UIStrings.retainers);
|
|
459
458
|
|
|
@@ -1350,7 +1349,6 @@ export class AllocationPerspective extends Perspective {
|
|
|
1350
1349
|
const resizer = document.createElement('div');
|
|
1351
1350
|
resizer.classList.add('heap-snapshot-view-resizer');
|
|
1352
1351
|
const title = resizer.createChild('div', 'title').createChild('span');
|
|
1353
|
-
resizer.createChild('div', 'verticalResizerIcon');
|
|
1354
1352
|
title.textContent = i18nString(UIStrings.liveObjects);
|
|
1355
1353
|
this.allocationSplitWidget.hideDefaultResizer();
|
|
1356
1354
|
this.allocationSplitWidget.installResizer(resizer);
|
|
@@ -100,15 +100,6 @@
|
|
|
100
100
|
white-space: nowrap;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
.heap-snapshot-view .heap-snapshot-view-resizer .verticalResizerIcon {
|
|
104
|
-
/* stylelint-disable-next-line custom-property-pattern */
|
|
105
|
-
background-image: var(--image-file-toolbarResizerVertical);
|
|
106
|
-
background-repeat: no-repeat;
|
|
107
|
-
background-position: center;
|
|
108
|
-
flex: 0 0 28px;
|
|
109
|
-
margin-left: auto;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
103
|
.heap-snapshot-view .heap-snapshot-view-resizer .title > span {
|
|
113
104
|
display: inline-block;
|
|
114
105
|
padding-top: 3px;
|
|
@@ -13,10 +13,9 @@ import * as Bindings from '../../models/bindings/bindings.js';
|
|
|
13
13
|
import * as EmulationModel from '../../models/emulation/emulation.js';
|
|
14
14
|
import * as PublicExtensions from '../../models/extensions/extensions.js';
|
|
15
15
|
import type * as Trace from '../../models/trace/trace.js';
|
|
16
|
-
import * as PanelCommon from '../../panels/common/common.js';
|
|
17
16
|
import * as Tracing from '../../services/tracing/tracing.js';
|
|
18
17
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
19
|
-
import
|
|
18
|
+
import * as Dialogs from '../../ui/components/dialogs/dialogs.js';
|
|
20
19
|
import type * as Menus from '../../ui/components/menus/menus.js';
|
|
21
20
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
22
21
|
import {Directives, html, type LitTemplate, render} from '../../ui/lit/lit.js';
|
|
@@ -1668,7 +1667,7 @@ export class RecorderPanel extends UI.Widget.VBox<DocumentFragment> {
|
|
|
1668
1667
|
return true;
|
|
1669
1668
|
}
|
|
1670
1669
|
|
|
1671
|
-
const result = await
|
|
1670
|
+
const result = await Dialogs.TypeToAllowDialog.TypeToAllowDialog.show({
|
|
1672
1671
|
jslogContext: {
|
|
1673
1672
|
input: 'confirm-import-recording-input',
|
|
1674
1673
|
dialog: 'confirm-import-recording-dialog',
|