chrome-devtools-frontend 1.0.1695017 → 1.0.1696961
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/eslint.config.mjs +4 -1
- package/front_end/core/common/Base64.ts +14 -4
- package/front_end/core/common/Gzip.ts +1 -1
- package/front_end/core/common/Object.ts +0 -1
- package/front_end/core/platform/Size.ts +43 -0
- package/front_end/core/platform/api/HostRuntime.ts +14 -0
- package/front_end/core/platform/browser/HostRuntime.ts +66 -0
- package/front_end/core/platform/node/HostRuntime.ts +12 -3
- package/front_end/core/platform/platform.ts +1 -0
- package/front_end/core/sdk/AccessibilityModel.ts +2 -2
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -0
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +29 -0
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +2 -2
- package/front_end/core/sdk/ConsoleModel.ts +3 -3
- package/front_end/core/sdk/DOMModel.ts +10 -6
- package/front_end/core/sdk/DebuggerModel.ts +6 -0
- package/front_end/core/sdk/NetworkRequest.ts +19 -19
- package/front_end/core/sdk/RuntimeModel.ts +5 -0
- package/front_end/core/sdk/Script.ts +2 -2
- package/front_end/core/sdk/ServerTiming.ts +6 -6
- package/front_end/core/sdk/SourceMap.ts +112 -14
- package/front_end/core/sdk/SourceMapRangeMappings.ts +43 -0
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +15 -10
- package/front_end/core/sdk/SourceMapScopesInfo.ts +92 -10
- package/front_end/core/sdk/sdk.ts +2 -0
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +1 -1
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +6 -6
- package/front_end/entrypoints/main/MainImpl.ts +1 -1
- package/front_end/generated/InspectorBackendCommands.ts +6 -3
- package/front_end/generated/protocol-mapping.d.ts +7 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +36 -3
- package/front_end/models/ai_assistance/AiAgent2.ts +27 -27
- package/front_end/models/ai_assistance/agents/AiAgent.ts +4 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +1 -0
- package/front_end/models/ai_assistance/contexts/DOMNodeContext.ts +5 -4
- package/front_end/models/ai_assistance/contexts/FileContext.ts +1 -0
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +1 -0
- package/front_end/models/ai_assistance/contexts/RequestContext.ts +1 -0
- package/front_end/models/ai_assistance/contexts/StorageContext.ts +1 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +5 -5
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -6
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +5 -8
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +4 -8
- package/front_end/models/ai_assistance/tools/GetSourceContent.ts +7 -5
- package/front_end/models/ai_assistance/tools/GetStyles.ts +10 -6
- package/front_end/models/ai_assistance/tools/ListSources.ts +26 -7
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +5 -10
- package/front_end/models/ai_assistance/tools/Tool.ts +8 -1
- package/front_end/models/bindings/FileUtils.ts +18 -40
- package/front_end/models/bindings/TempFile.ts +5 -12
- package/front_end/models/comment_manager/CommentManager.ts +30 -6
- package/front_end/models/crux-manager/CrUXManager.ts +8 -5
- package/front_end/models/emulation/DeviceModeModel.ts +55 -105
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +1 -1
- package/front_end/models/issues_manager/CookieIssue.ts +1 -1
- package/front_end/models/issues_manager/DeprecationIssue.ts +2 -2
- package/front_end/models/javascript_metadata/NativeFunctions.ts +1 -5
- package/front_end/models/live-metrics/LiveMetrics.ts +1 -1
- package/front_end/models/persistence/IsolatedFileSystem.ts +16 -23
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +1 -1
- package/front_end/models/trace/insights/INPBreakdown.ts +1 -1
- package/front_end/models/trace/insights/ImageDelivery.ts +3 -3
- package/front_end/models/trace/insights/LCPDiscovery.ts +2 -2
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +3 -3
- package/front_end/models/trace/insights/Viewport.ts +1 -1
- package/front_end/models/trace/types/Overlays.ts +2 -2
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +2 -2
- package/front_end/panels/accessibility/AccessibilitySubPane.ts +0 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +74 -18
- package/front_end/panels/ai_assistance/components/AIv2MarkdownRenderer.ts +14 -3
- package/front_end/panels/ai_assistance/components/ChatInput.ts +1 -1
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +1 -1
- package/front_end/panels/animation/AnimationUI.ts +1 -1
- package/front_end/panels/application/AppManifestView.ts +9 -11
- package/front_end/panels/application/ApplicationPanelSidebar.ts +9 -9
- package/front_end/panels/application/BackgroundServiceView.ts +1 -1
- package/front_end/panels/application/CookieItemsView.ts +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +1 -1
- package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -2
- package/front_end/panels/application/FrameDetailsView.ts +5 -5
- package/front_end/panels/application/IndexedDBViews.ts +2 -2
- package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -2
- package/front_end/panels/application/ReportingApiView.ts +1 -1
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -1
- package/front_end/panels/application/ServiceWorkersView.ts +1 -1
- package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
- package/front_end/panels/application/WebMCPView.ts +1 -1
- package/front_end/panels/application/components/AdsView.ts +136 -7
- package/front_end/panels/application/components/BackForwardCacheStrings.ts +116 -117
- package/front_end/panels/application/components/BackForwardCacheView.ts +7 -7
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +2 -2
- package/front_end/panels/application/components/PermissionsPolicySection.ts +2 -2
- package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
- package/front_end/panels/application/components/ReportsGrid.ts +1 -1
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -1
- package/front_end/panels/application/components/TrustTokensView.ts +3 -3
- package/front_end/panels/application/components/adScriptsTable.css +22 -0
- package/front_end/panels/application/preloading/PreloadingView.ts +20 -22
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +9 -9
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +31 -33
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +23 -23
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +4 -4
- package/front_end/panels/application/preloading/components/PreloadingString.ts +161 -161
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -6
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +8 -8
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +32 -32
- package/front_end/panels/application/resourcesPanel.css +17 -17
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/changes/ChangesView.ts +1 -1
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +1 -1
- package/front_end/panels/common/CPUThrottlingOption.ts +0 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +3 -4
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +0 -1
- package/front_end/panels/console/ConsoleView.ts +2 -3
- package/front_end/panels/console/ConsoleViewMessage.ts +2 -3
- package/front_end/panels/coverage/CoverageListView.ts +6 -6
- package/front_end/panels/coverage/CoverageView.ts +7 -7
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/elements/CSSRuleValidator.ts +10 -10
- package/front_end/panels/elements/ElementsPanel.ts +3 -3
- package/front_end/panels/elements/ElementsTreeElement.ts +1 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/LayoutPane.ts +1 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +85 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +3 -3
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -1
- package/front_end/panels/emulation/DeviceModeView.ts +1 -1
- package/front_end/panels/event_listeners/EventListenersView.ts +57 -89
- package/front_end/panels/explain/components/ConsoleInsight.ts +4 -4
- package/front_end/panels/issues/AffectedPartitioningBlobURLView.ts +3 -3
- package/front_end/panels/issues/IssuesPane.ts +1 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +4 -4
- package/front_end/panels/layers/LayerTreeModel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +4 -4
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +10 -10
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +2 -2
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +1 -1
- package/front_end/panels/media/MainView.ts +2 -2
- package/front_end/panels/mobile_throttling/CalibrationController.ts +4 -1
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +10 -0
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +3 -3
- package/front_end/panels/network/NetworkConfigView.ts +26 -16
- package/front_end/panels/network/NetworkItemView.ts +1 -1
- package/front_end/panels/network/NetworkLogView.ts +4 -5
- package/front_end/panels/network/NetworkPanel.ts +1 -1
- package/front_end/panels/network/RequestConditionsDrawer.ts +3 -3
- package/front_end/panels/network/RequestCookiesView.ts +2 -2
- package/front_end/panels/network/RequestPayloadView.ts +0 -2
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/network/ResourceChunkView.ts +1 -1
- package/front_end/panels/network/components/HeaderSectionRow.ts +2 -2
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
- package/front_end/panels/network/components/RequestTrustTokensView.ts +7 -7
- package/front_end/panels/network/components/ResponseHeaderSection.ts +3 -4
- package/front_end/panels/network/network-meta.ts +1 -1
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +10 -10
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
- package/front_end/panels/profiler/IsolateSelector.ts +4 -4
- package/front_end/panels/profiler/ModuleUIStrings.ts +1 -1
- package/front_end/panels/profiler/ProfilesPanel.ts +2 -3
- package/front_end/panels/recorder/RecorderPanel.ts +1 -1
- package/front_end/panels/search/SearchView.ts +6 -6
- package/front_end/panels/security/SecurityModel.ts +4 -4
- package/front_end/panels/security/SecurityPanel.ts +83 -54
- package/front_end/panels/security/SecurityPanelSidebar.ts +41 -5
- package/front_end/panels/security/sidebar.css +9 -10
- package/front_end/panels/sensors/SensorsView.ts +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +9 -9
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +1 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +2 -2
- package/front_end/panels/settings/SettingsScreen.ts +156 -109
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +1 -1
- package/front_end/panels/settings/components/SyncSection.ts +3 -3
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +13 -13
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
- package/front_end/panels/sources/CSSPlugin.ts +3 -3
- package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
- package/front_end/panels/sources/NavigatorView.ts +3 -3
- package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
- package/front_end/panels/sources/PersistenceActions.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.ts +5 -5
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +0 -1
- package/front_end/panels/sources/components/HeadersView.ts +1 -1
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +0 -1
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +2 -2
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +4 -4
- package/front_end/panels/timeline/components/IgnoreListSetting.ts +1 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +7 -7
- package/front_end/panels/timeline/components/MetricCard.ts +3 -3
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +12 -14
- package/front_end/panels/timeline/components/OriginMap.ts +3 -3
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +4 -4
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +6 -0
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +3 -1
- package/front_end/panels/timeline/timelineMiniMap.css +9 -9
- package/front_end/panels/timeline/timelineStatusDialog.css +9 -9
- package/front_end/panels/web_audio/WebAudioView.ts +1 -1
- package/front_end/panels/webauthn/WebauthnPane.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/comments/CommentAnchorResolver.ts +114 -3
- package/front_end/ui/comments/CommentOverlayManager.ts +95 -16
- package/front_end/ui/components/dialogs/TypeToAllowDialog.ts +1 -1
- package/front_end/ui/components/markdown_view/codeBlock.css +3 -8
- package/front_end/ui/components/markdown_view/markdownView.css +2 -7
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +2 -2
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionTeaser.ts +4 -4
- package/front_end/ui/components/text_editor/AiCodeGenerationTeaser.ts +3 -3
- package/front_end/{models → ui}/geometry/GeometryImpl.ts +4 -40
- package/front_end/ui/legacy/GlassPane.ts +1 -1
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +2 -2
- package/front_end/ui/legacy/SoftDropDown.ts +1 -1
- package/front_end/ui/legacy/SplitWidget.ts +1 -1
- package/front_end/ui/legacy/SuggestBox.ts +1 -1
- package/front_end/ui/legacy/TabbedPane.ts +1 -1
- package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -2
- package/front_end/ui/legacy/Treeoutline.ts +5 -1
- package/front_end/ui/legacy/UIUtils.ts +1 -1
- package/front_end/ui/legacy/Widget.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/BezierUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleUtils.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.ts +204 -17
- package/front_end/ui/legacy/components/inline_editor/positionAreaEditor.css +6 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +7 -9
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +12 -0
- package/package.json +7 -4
- /package/front_end/{models → ui}/geometry/geometry.ts +0 -0
|
@@ -111,7 +111,7 @@ const UIStrings = {
|
|
|
111
111
|
/**
|
|
112
112
|
* @description Disclaimer text right after the chat input.
|
|
113
113
|
*/
|
|
114
|
-
inputDisclaimerForEmptyState: 'This is an experimental AI feature and won’t always get it right
|
|
114
|
+
inputDisclaimerForEmptyState: 'This is an experimental AI feature and won’t always get it right',
|
|
115
115
|
/**
|
|
116
116
|
* @description The message shown in a toast when the response is copied to the clipboard.
|
|
117
117
|
*/
|
|
@@ -182,10 +182,6 @@ const UIStringsNotTranslate = {
|
|
|
182
182
|
* @description Placeholder text for the chat UI input with branding Gemini (do not translate)
|
|
183
183
|
*/
|
|
184
184
|
inputPlaceholderForNoContextBranded: 'Ask Gemini',
|
|
185
|
-
/**
|
|
186
|
-
* @description Placeholder text for the chat UI input when AIAgent2 is enabled.
|
|
187
|
-
*/
|
|
188
|
-
inputPlaceholderForV2: 'Ask a question (AIAgent2 enabled)',
|
|
189
185
|
/**
|
|
190
186
|
* @description Placeholder text for the chat UI input.
|
|
191
187
|
*/
|
|
@@ -289,6 +285,9 @@ async function getEmptyStateSuggestions(conversation?: AiAssistanceModel.AiConve
|
|
|
289
285
|
function createV2MarkdownRenderer(conversation?: AiAssistanceModel.AiConversation.AiConversation):
|
|
290
286
|
AIv2MarkdownRenderer {
|
|
291
287
|
const options: AIv2MarkdownRendererOptions = {};
|
|
288
|
+
if (conversation) {
|
|
289
|
+
options.getEstablishedOrigin = () => conversation.origin;
|
|
290
|
+
}
|
|
292
291
|
const primaryTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
|
|
293
292
|
const domModel = primaryTarget?.model(SDK.DOMModel.DOMModel);
|
|
294
293
|
const resourceTreeModel = primaryTarget?.model(SDK.ResourceTreeModel.ResourceTreeModel);
|
|
@@ -998,7 +997,8 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
998
997
|
#updateConversationState(
|
|
999
998
|
conversation?: AiAssistanceModel.AiConversation.AiConversation,
|
|
1000
999
|
): void {
|
|
1001
|
-
|
|
1000
|
+
const isNewConversation = this.#conversation !== conversation;
|
|
1001
|
+
if (isNewConversation) {
|
|
1002
1002
|
// Cancel any previous conversation
|
|
1003
1003
|
this.#cancel();
|
|
1004
1004
|
this.#messages = [];
|
|
@@ -1030,13 +1030,22 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1030
1030
|
const context = this.#getConversationContext(this.#getDefaultConversationType());
|
|
1031
1031
|
this.#conversation.setContext(context);
|
|
1032
1032
|
} else {
|
|
1033
|
+
const previousContext = this.#conversation.selectedContext;
|
|
1034
|
+
const previousItem = previousContext?.getItem();
|
|
1033
1035
|
const context = this.#getConversationContext(this.#conversation.type);
|
|
1036
|
+
const newItem = context?.getItem();
|
|
1034
1037
|
// Don't reset to the context selection agent if
|
|
1035
1038
|
// we remove context automatically.
|
|
1036
1039
|
// Require explicit user action.
|
|
1037
1040
|
if (context || !AiAssistanceModel.AiUtils.isContextSelectionEnabled()) {
|
|
1038
1041
|
this.#conversation.setContext(context);
|
|
1039
1042
|
}
|
|
1043
|
+
|
|
1044
|
+
// Log when the user selects a different target mid-conversation (ContextA -> ContextB).
|
|
1045
|
+
if (AiAssistanceModel.AiUtils.isContextSelectionEnabled() && !this.#conversation.isReadOnly &&
|
|
1046
|
+
previousItem !== newItem && previousContext && context) {
|
|
1047
|
+
void VisualLogging.logFunctionCall('ai-v2-context-user-change', getContextTypeString(context));
|
|
1048
|
+
}
|
|
1040
1049
|
}
|
|
1041
1050
|
}
|
|
1042
1051
|
|
|
@@ -1297,6 +1306,12 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1297
1306
|
return true;
|
|
1298
1307
|
}
|
|
1299
1308
|
|
|
1309
|
+
#getContextlessPlaceholder(): Platform.UIString.LocalizedString {
|
|
1310
|
+
return AiAssistanceModel.AiUtils.isGeminiBranding() ?
|
|
1311
|
+
lockedString(UIStringsNotTranslate.inputPlaceholderForNoContextBranded) :
|
|
1312
|
+
lockedString(UIStringsNotTranslate.inputPlaceholderForNoContext);
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1300
1315
|
#getChatInputPlaceholder(): Platform.UIString.LocalizedString {
|
|
1301
1316
|
if (!this.#conversation) {
|
|
1302
1317
|
return i18nString(UIStrings.followTheSteps);
|
|
@@ -1306,8 +1321,12 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1306
1321
|
return lockedString(UIStringsNotTranslate.crossOriginError);
|
|
1307
1322
|
}
|
|
1308
1323
|
|
|
1324
|
+
// The unified V2 agent answers questions across every domain, but the
|
|
1325
|
+
// conversation type still tracks whichever context happens to be attached.
|
|
1326
|
+
// Falling through to the switch below would therefore describe that single
|
|
1327
|
+
// context, for example 'Ask a question about the selected element'.
|
|
1309
1328
|
if (Root.Runtime.hostConfig.devToolsAiV2Architecture?.enabled) {
|
|
1310
|
-
return
|
|
1329
|
+
return this.#getContextlessPlaceholder();
|
|
1311
1330
|
}
|
|
1312
1331
|
|
|
1313
1332
|
switch (this.#conversation.type) {
|
|
@@ -1341,11 +1360,7 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1341
1360
|
case AiAssistanceModel.AiHistoryStorage.ConversationType.STORAGE:
|
|
1342
1361
|
return lockedString(UIStringsNotTranslate.inputPlaceholderForNoContext);
|
|
1343
1362
|
case AiAssistanceModel.AiHistoryStorage.ConversationType.NONE:
|
|
1344
|
-
|
|
1345
|
-
if (AiAssistanceModel.AiUtils.isGeminiBranding()) {
|
|
1346
|
-
return lockedString(UIStringsNotTranslate.inputPlaceholderForNoContextBranded);
|
|
1347
|
-
}
|
|
1348
|
-
return lockedString(UIStringsNotTranslate.inputPlaceholderForNoContext);
|
|
1363
|
+
return this.#getContextlessPlaceholder();
|
|
1349
1364
|
}
|
|
1350
1365
|
}
|
|
1351
1366
|
|
|
@@ -1407,12 +1422,22 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1407
1422
|
}
|
|
1408
1423
|
|
|
1409
1424
|
#handleContextRemoved(): void {
|
|
1425
|
+
const previousContext = this.#conversation?.selectedContext;
|
|
1410
1426
|
this.#conversation?.setContext(null);
|
|
1427
|
+
// Log when the user removes the active context (ContextA -> null).
|
|
1428
|
+
if (AiAssistanceModel.AiUtils.isContextSelectionEnabled() && previousContext) {
|
|
1429
|
+
void VisualLogging.logFunctionCall('ai-v2-context-user-removal', getContextTypeString(previousContext));
|
|
1430
|
+
}
|
|
1411
1431
|
this.requestUpdate();
|
|
1412
1432
|
}
|
|
1413
1433
|
|
|
1414
1434
|
#handleContextAdd(): void {
|
|
1415
|
-
this.#
|
|
1435
|
+
const context = this.#getConversationContext(this.#getDefaultConversationType());
|
|
1436
|
+
this.#conversation?.setContext(context);
|
|
1437
|
+
// Log when the user adds context (null -> ContextB).
|
|
1438
|
+
if (AiAssistanceModel.AiUtils.isContextSelectionEnabled() && context) {
|
|
1439
|
+
void VisualLogging.logFunctionCall('ai-v2-context-user-add', getContextTypeString(context));
|
|
1440
|
+
}
|
|
1416
1441
|
this.requestUpdate();
|
|
1417
1442
|
}
|
|
1418
1443
|
|
|
@@ -1487,7 +1512,9 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1487
1512
|
}
|
|
1488
1513
|
|
|
1489
1514
|
let conversation = this.#conversation;
|
|
1490
|
-
|
|
1515
|
+
const shouldCreateConversation =
|
|
1516
|
+
!this.#conversation || this.#conversation.type !== targetConversationType || this.#conversation.isEmpty;
|
|
1517
|
+
if (shouldCreateConversation) {
|
|
1491
1518
|
conversation = new AiAssistanceModel.AiConversation.AiConversation({
|
|
1492
1519
|
type: targetConversationType,
|
|
1493
1520
|
data: [],
|
|
@@ -1639,16 +1666,20 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
1639
1666
|
this.#selectedRequest = data;
|
|
1640
1667
|
} else if (data instanceof AiAssistanceModel.PerformanceTraceContext.PerformanceTraceContext) {
|
|
1641
1668
|
this.#selectedPerformanceTrace = data;
|
|
1642
|
-
|
|
1643
1669
|
} else if (data instanceof AiAssistanceModel.AccessibilityContext.AccessibilityContext) {
|
|
1644
1670
|
this.#selectedAccessibility = data;
|
|
1645
1671
|
} else if (data instanceof AiAssistanceModel.StorageContext.StorageContext) {
|
|
1646
1672
|
this.#selectedStorage = data;
|
|
1647
1673
|
}
|
|
1648
1674
|
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1675
|
+
if (this.#conversation) {
|
|
1676
|
+
void VisualLogging.logFunctionCall(`context-change-${this.#conversation.type}`);
|
|
1677
|
+
// Log when the agent selects context (* -> ContextB).
|
|
1678
|
+
if (AiAssistanceModel.AiUtils.isContextSelectionEnabled() &&
|
|
1679
|
+
data instanceof AiAssistanceModel.AiAgent.ConversationContext) {
|
|
1680
|
+
void VisualLogging.logFunctionCall('ai-v2-context-agent-change', getContextTypeString(data));
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1652
1683
|
};
|
|
1653
1684
|
|
|
1654
1685
|
async #handleInspectElement(): Promise<SDK.DOMModel.DOMNode|null> {
|
|
@@ -2016,6 +2047,31 @@ export function getResponseMarkdown(message: ModelChatMessage): string {
|
|
|
2016
2047
|
return contentParts.join('\n\n');
|
|
2017
2048
|
}
|
|
2018
2049
|
|
|
2050
|
+
/**
|
|
2051
|
+
* Visual logging context identifiers used to track conversation context lifecycle events.
|
|
2052
|
+
*
|
|
2053
|
+
* Context change telemetry tracks four transitions:
|
|
2054
|
+
* - User removal: ContextA -> null ('ai-v2-context-user-removal').
|
|
2055
|
+
* - User addition: null -> ContextB ('ai-v2-context-user-add').
|
|
2056
|
+
* - User selection change: ContextA -> ContextB ('ai-v2-context-user-change').
|
|
2057
|
+
* - Agent auto-selection: * -> ContextB ('ai-v2-context-agent-change').
|
|
2058
|
+
*
|
|
2059
|
+
* Telemetry only logs when context selection is enabled and the conversation is active.
|
|
2060
|
+
*/
|
|
2061
|
+
export type ConversationContextTypeString =
|
|
2062
|
+
'ai-context-none'|AiAssistanceModel.AiAgent.ConversationContextJslog|'ai-context-unknown';
|
|
2063
|
+
|
|
2064
|
+
/**
|
|
2065
|
+
* Resolves the visual logging context identifier for a given conversation context.
|
|
2066
|
+
*/
|
|
2067
|
+
export function getContextTypeString(context: AiAssistanceModel.AiAgent.ConversationContext<unknown>|null|
|
|
2068
|
+
undefined): ConversationContextTypeString {
|
|
2069
|
+
if (!context) {
|
|
2070
|
+
return 'ai-context-none';
|
|
2071
|
+
}
|
|
2072
|
+
return context.jslogContext ?? 'ai-context-unknown';
|
|
2073
|
+
}
|
|
2074
|
+
|
|
2019
2075
|
export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
|
|
2020
2076
|
handleAction(_context: UI.Context.Context, actionId: string, opts?: Record<string, unknown>): boolean {
|
|
2021
2077
|
switch (actionId) {
|
|
@@ -20,6 +20,14 @@ const {until} = Lit.Directives;
|
|
|
20
20
|
export interface AIv2MarkdownRendererOptions {
|
|
21
21
|
mainFrameId?: string;
|
|
22
22
|
mainDocumentURL?: Platform.DevToolsPath.UrlString;
|
|
23
|
+
/**
|
|
24
|
+
* Retrieves the established origin locked for the active conversation.
|
|
25
|
+
* Required to authorize #file-<id> links and prevent cross-origin file leakage.
|
|
26
|
+
*
|
|
27
|
+
* TODO(crbug.com/559522248): Defer renderer instantiation until a conversation
|
|
28
|
+
* starts so this origin can be passed as a mandatory, non-getter property.
|
|
29
|
+
*/
|
|
30
|
+
getEstablishedOrigin?: () => SDK.SecurityOrigin.SecurityOrigin | undefined;
|
|
23
31
|
lookupTraceEvent?: (key: string) => Trace.Types.Events.Event | null;
|
|
24
32
|
}
|
|
25
33
|
|
|
@@ -110,8 +118,11 @@ export class AIv2MarkdownRenderer extends MarkdownView.MarkdownView.MarkdownInsi
|
|
|
110
118
|
return html`${fallbackText}`;
|
|
111
119
|
}
|
|
112
120
|
if (href.startsWith('#file-')) {
|
|
113
|
-
const
|
|
114
|
-
|
|
121
|
+
const fileId = Number(href.substring(6));
|
|
122
|
+
const origin = this.options.getEstablishedOrigin?.();
|
|
123
|
+
const file = (origin && Number.isInteger(fileId) && fileId > 0) ?
|
|
124
|
+
AiAssistanceModel.ListSources.ListSourcesTool.getSourceById(fileId, origin) :
|
|
125
|
+
undefined;
|
|
115
126
|
|
|
116
127
|
if (file) {
|
|
117
128
|
return this.#revealableLink(file, file.name());
|
|
@@ -209,7 +220,7 @@ export class AIv2MarkdownRenderer extends MarkdownView.MarkdownView.MarkdownInsi
|
|
|
209
220
|
|
|
210
221
|
if (token.type === 'codespan') {
|
|
211
222
|
// LLM likes outputting the link inside a codespan block.
|
|
212
|
-
// Remove the codespan and render the link directly
|
|
223
|
+
// Remove the codespan and render the link directly.
|
|
213
224
|
const matches = token.text.match(/^\[(.*)\]\((.+)\)$/);
|
|
214
225
|
if (matches?.[2]) {
|
|
215
226
|
const link = this.#renderLink(
|
|
@@ -75,7 +75,7 @@ const UIStringsNotTranslate = {
|
|
|
75
75
|
/**
|
|
76
76
|
* @description Text displayed when the chat input is disabled due to reading past conversation.
|
|
77
77
|
*/
|
|
78
|
-
pastConversation: 'You’re viewing a past conversation
|
|
78
|
+
pastConversation: 'You’re viewing a past conversation',
|
|
79
79
|
/**
|
|
80
80
|
* @description Message displayed in toast in case of any failures while taking a screenshot of the page.
|
|
81
81
|
*/
|
|
@@ -114,7 +114,7 @@ const UIStringsNotTranslate = {
|
|
|
114
114
|
/**
|
|
115
115
|
* @description The error message when the LLM selects context from a different origin.
|
|
116
116
|
*/
|
|
117
|
-
crossOriginError: 'I have selected the new context but you will have to start a new chat
|
|
117
|
+
crossOriginError: 'I have selected the new context but you will have to start a new chat',
|
|
118
118
|
/**
|
|
119
119
|
* @description The error message when the request payload is too large.
|
|
120
120
|
*/
|
|
@@ -6,7 +6,7 @@ import * as Common from '../../core/common/common.js';
|
|
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
7
|
import * as Platform from '../../core/platform/platform.js';
|
|
8
8
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
9
|
-
import * as Geometry from '../../
|
|
9
|
+
import * as Geometry from '../../ui/geometry/geometry.js';
|
|
10
10
|
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
|
11
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
12
12
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -33,7 +33,7 @@ const UIStrings = {
|
|
|
33
33
|
* @description Description text on manifests in App Manifest View of the Application panel which describes the app manifest view tab
|
|
34
34
|
*/
|
|
35
35
|
manifestDescription:
|
|
36
|
-
'A manifest defines how your app appears on phone’s home screens and what the app looks like on launch
|
|
36
|
+
'A manifest defines how your app appears on phone’s home screens and what the app looks like on launch',
|
|
37
37
|
/**
|
|
38
38
|
* @description Text in App Manifest View of the Application panel
|
|
39
39
|
*/
|
|
@@ -86,7 +86,7 @@ const UIStrings = {
|
|
|
86
86
|
* @description Popup-text explaining what the App Id is used for.
|
|
87
87
|
*/
|
|
88
88
|
appIdExplainer:
|
|
89
|
-
'This is used by the browser to know whether the manifest should be updating an existing application, or whether it refers to a new web app that can be installed
|
|
89
|
+
'This is used by the browser to know whether the manifest should be updating an existing application, or whether it refers to a new web app that can be installed',
|
|
90
90
|
/**
|
|
91
91
|
* @description Text which is a hyperlink to more documentation
|
|
92
92
|
*/
|
|
@@ -142,7 +142,7 @@ const UIStrings = {
|
|
|
142
142
|
/**
|
|
143
143
|
* @description Text in App Manifest View of the Application panel
|
|
144
144
|
*/
|
|
145
|
-
descriptionMayBeTruncated: 'Description may be truncated
|
|
145
|
+
descriptionMayBeTruncated: 'Description may be truncated',
|
|
146
146
|
/**
|
|
147
147
|
* @description Warning text about too many shortcuts
|
|
148
148
|
*/
|
|
@@ -210,7 +210,7 @@ const UIStrings = {
|
|
|
210
210
|
* @example {100} PH1
|
|
211
211
|
*/
|
|
212
212
|
manifestDoesNotContainASuitable:
|
|
213
|
-
'Manifest does not contain a suitable icon—PNG, SVG, or WebP format of at least {PH1}px is required, the \'`sizes`\' attribute must be set, and the \'`purpose`\' attribute, if set, must include \'`any`\'
|
|
213
|
+
'Manifest does not contain a suitable icon—PNG, SVG, or WebP format of at least {PH1}px is required, the \'`sizes`\' attribute must be set, and the \'`purpose`\' attribute, if set, must include \'`any`\'',
|
|
214
214
|
/**
|
|
215
215
|
* @description Manifest installability error in the Application panel
|
|
216
216
|
*/
|
|
@@ -221,7 +221,7 @@ const UIStrings = {
|
|
|
221
221
|
* @example {100} PH1
|
|
222
222
|
*/
|
|
223
223
|
noSuppliedIconIsAtLeastSpxSquare:
|
|
224
|
-
'No supplied icon is at least {PH1} pixels square in `PNG`, `SVG`, or `WebP` format, with the purpose attribute unset or set to \'`any`\'
|
|
224
|
+
'No supplied icon is at least {PH1} pixels square in `PNG`, `SVG`, or `WebP` format, with the purpose attribute unset or set to \'`any`\'',
|
|
225
225
|
/**
|
|
226
226
|
* @description Manifest installability error in the Application panel
|
|
227
227
|
*/
|
|
@@ -270,7 +270,7 @@ const UIStrings = {
|
|
|
270
270
|
* @description Manifest installability error in the Application panel
|
|
271
271
|
*/
|
|
272
272
|
preferrelatedapplicationsIsOnly:
|
|
273
|
-
'\'`prefer_related_applications`\' is only supported on `Chrome` Beta and Stable channels on `Android
|
|
273
|
+
'\'`prefer_related_applications`\' is only supported on `Chrome` Beta and Stable channels on `Android`',
|
|
274
274
|
/**
|
|
275
275
|
* @description Manifest installability error in the Application panel
|
|
276
276
|
*/
|
|
@@ -398,8 +398,7 @@ const UIStrings = {
|
|
|
398
398
|
* @description Manifest installability error in the Application panel
|
|
399
399
|
* @example {https://example.com/image.png} url
|
|
400
400
|
*/
|
|
401
|
-
screenshotPixelSize:
|
|
402
|
-
'Screenshot {url} should specify a pixel size `[width]x[height]` instead of `any` as first size.',
|
|
401
|
+
screenshotPixelSize: 'Screenshot {url} should specify a pixel size `[width]x[height]` instead of `any` as first size',
|
|
403
402
|
/**
|
|
404
403
|
* @description Warning text about screenshots for Richer PWA Install UI on desktop
|
|
405
404
|
*/
|
|
@@ -429,13 +428,12 @@ const UIStrings = {
|
|
|
429
428
|
* @example {https://developer.mozilla.org/en-US/docs/Web/Manifest/display_override} PH2
|
|
430
429
|
* @example {https://developer.mozilla.org/en-US/docs/Web/Manifest} PH3
|
|
431
430
|
*/
|
|
432
|
-
wcoFound: 'Chrome has successfully found the {PH1} value for the {PH2} field in the {PH3}
|
|
431
|
+
wcoFound: 'Chrome has successfully found the {PH1} value for the {PH2} field in the {PH3}',
|
|
433
432
|
/**
|
|
434
433
|
* @description Message for Windows Control Overlay value not found with link to documentation
|
|
435
434
|
* @example {https://developer.mozilla.org/en-US/docs/Web/Manifest/display_override} PH1
|
|
436
435
|
*/
|
|
437
|
-
wcoNotFound:
|
|
438
|
-
'Define {PH1} in the manifest to use the Window Controls Overlay API and customize your app’s title bar.',
|
|
436
|
+
wcoNotFound: 'Define {PH1} in the manifest to use the Window Controls Overlay API and customize your app’s title bar',
|
|
439
437
|
/**
|
|
440
438
|
* @description Link text for more information on customizing Window Controls Overlay title bar in the Application panel
|
|
441
439
|
*/
|
|
@@ -126,7 +126,7 @@ const UIStrings = {
|
|
|
126
126
|
/**
|
|
127
127
|
* @description Text in the Application panel describing the local storage tab.
|
|
128
128
|
*/
|
|
129
|
-
localStorageDescription: 'On this page you can view, add, edit, and delete local storage key-value pairs
|
|
129
|
+
localStorageDescription: 'On this page you can view, add, edit, and delete local storage key-value pairs',
|
|
130
130
|
/**
|
|
131
131
|
* @description Text in Application Panel Sidebar of the Application panel
|
|
132
132
|
*/
|
|
@@ -138,7 +138,7 @@ const UIStrings = {
|
|
|
138
138
|
/**
|
|
139
139
|
* @description Text in the Application panel describing the session storage tab.
|
|
140
140
|
*/
|
|
141
|
-
sessionStorageDescription: 'On this page you can view, add, edit, and delete session storage key-value pairs
|
|
141
|
+
sessionStorageDescription: 'On this page you can view, add, edit, and delete session storage key-value pairs',
|
|
142
142
|
/**
|
|
143
143
|
* @description Text in Application Panel Sidebar of the Application panel
|
|
144
144
|
*/
|
|
@@ -150,7 +150,7 @@ const UIStrings = {
|
|
|
150
150
|
/**
|
|
151
151
|
* @description Text in the Application panel describing the extension storage tab.
|
|
152
152
|
*/
|
|
153
|
-
extensionStorageDescription: 'On this page you can view, add, edit, and delete extension storage key-value pairs
|
|
153
|
+
extensionStorageDescription: 'On this page you can view, add, edit, and delete extension storage key-value pairs',
|
|
154
154
|
/**
|
|
155
155
|
* @description Text for extension session storage in Application panel
|
|
156
156
|
*/
|
|
@@ -178,7 +178,7 @@ const UIStrings = {
|
|
|
178
178
|
/**
|
|
179
179
|
* @description Text for web cookies
|
|
180
180
|
*/
|
|
181
|
-
cookiesDescription: 'On this page you can view, add, edit, and delete cookies
|
|
181
|
+
cookiesDescription: 'On this page you can view, add, edit, and delete cookies',
|
|
182
182
|
/**
|
|
183
183
|
* @description Text in Application Panel Sidebar of the Application panel
|
|
184
184
|
*/
|
|
@@ -202,7 +202,7 @@ const UIStrings = {
|
|
|
202
202
|
/**
|
|
203
203
|
* @description Text in the Application panel describing the extension storage tab.
|
|
204
204
|
*/
|
|
205
|
-
indexeddbDescription: 'On this page you can view and delete indexedDB key-value pairs and databases
|
|
205
|
+
indexeddbDescription: 'On this page you can view and delete indexedDB key-value pairs and databases',
|
|
206
206
|
/**
|
|
207
207
|
* @description A context menu item in the Application Panel Sidebar of the Application panel
|
|
208
208
|
*/
|
|
@@ -242,7 +242,7 @@ const UIStrings = {
|
|
|
242
242
|
/**
|
|
243
243
|
* @description Text in Frames View of the Application panel
|
|
244
244
|
*/
|
|
245
|
-
openedWindowsDescription: 'On this page you can view windows opened via window\.open\(\)
|
|
245
|
+
openedWindowsDescription: 'On this page you can view windows opened via window\.open\(\)',
|
|
246
246
|
/**
|
|
247
247
|
* @description Label for plural of worker type: web workers
|
|
248
248
|
*/
|
|
@@ -255,7 +255,7 @@ const UIStrings = {
|
|
|
255
255
|
* @description Description of content of unavailable document in Application panel
|
|
256
256
|
*/
|
|
257
257
|
theContentOfThisDocumentHasBeen:
|
|
258
|
-
'The content of this document has been generated dynamically via \'document.write()\'
|
|
258
|
+
'The content of this document has been generated dynamically via \'document.write()\'',
|
|
259
259
|
/**
|
|
260
260
|
* @description Text in Frames View of the Application panel
|
|
261
261
|
*/
|
|
@@ -267,7 +267,7 @@ const UIStrings = {
|
|
|
267
267
|
/**
|
|
268
268
|
* @description Description text for describing the dedicated worker tab.
|
|
269
269
|
*/
|
|
270
|
-
workerDescription: 'On this page you can view dedicated workers that are created by the parent frame
|
|
270
|
+
workerDescription: 'On this page you can view dedicated workers that are created by the parent frame',
|
|
271
271
|
/**
|
|
272
272
|
* @description Aria text for screen reader to announce they can scroll to top of manifest if invoked
|
|
273
273
|
*/
|
|
@@ -289,7 +289,7 @@ const UIStrings = {
|
|
|
289
289
|
/**
|
|
290
290
|
* @description Description text in the Application Panel describing a frame's resources
|
|
291
291
|
*/
|
|
292
|
-
resourceDescription: 'On this page you can view the frame’s resources
|
|
292
|
+
resourceDescription: 'On this page you can view the frame’s resources',
|
|
293
293
|
} as const;
|
|
294
294
|
const str_ = i18n.i18n.registerUIStrings('panels/application/ApplicationPanelSidebar.ts', UIStrings);
|
|
295
295
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -127,7 +127,7 @@ const UIStrings = {
|
|
|
127
127
|
* @example {Start recording events} PH1
|
|
128
128
|
* @example {Ctrl + E} PH2
|
|
129
129
|
*/
|
|
130
|
-
startRecordingToDebug: 'Start to debug background services by using the "{PH1}" button or by pressing {PH2}
|
|
130
|
+
startRecordingToDebug: 'Start to debug background services by using the "{PH1}" button or by pressing {PH2}',
|
|
131
131
|
/**
|
|
132
132
|
* @description Text to show an item is empty
|
|
133
133
|
*/
|
|
@@ -35,8 +35,8 @@ import * as Common from '../../core/common/common.js';
|
|
|
35
35
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
36
36
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
37
37
|
import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
|
|
38
|
-
import * as Geometry from '../../models/geometry/geometry.js';
|
|
39
38
|
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
|
39
|
+
import * as Geometry from '../../ui/geometry/geometry.js';
|
|
40
40
|
import * as CookieTable from '../../ui/legacy/components/cookie_table/cookie_table.js';
|
|
41
41
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
42
42
|
import {html, render} from '../../ui/lit/lit.js';
|
|
@@ -53,7 +53,7 @@ const UIStrings = {
|
|
|
53
53
|
/**
|
|
54
54
|
* @description Text for announcing a DOM Storage key/value item has been deleted
|
|
55
55
|
*/
|
|
56
|
-
domStorageItemDeleted: 'The storage item was deleted
|
|
56
|
+
domStorageItemDeleted: 'The storage item was deleted',
|
|
57
57
|
/**
|
|
58
58
|
* @description Text of a context menu item to start a chat with AI
|
|
59
59
|
*/
|
|
@@ -133,7 +133,7 @@ const UIStrings = {
|
|
|
133
133
|
/**
|
|
134
134
|
*@description Placeholder text when no row is selected in a table of events.
|
|
135
135
|
*/
|
|
136
|
-
selectEventToViewDetails: 'Select an event row to view more details
|
|
136
|
+
selectEventToViewDetails: 'Select an event row to view more details',
|
|
137
137
|
/**
|
|
138
138
|
*@description Column heading for the type of event that has occurred.
|
|
139
139
|
*/
|
|
@@ -157,7 +157,7 @@ const UIStrings = {
|
|
|
157
157
|
/**
|
|
158
158
|
*@description Default message when no events have appeared yet.
|
|
159
159
|
*/
|
|
160
|
-
noEvents: 'No events have been logged yet
|
|
160
|
+
noEvents: 'No events have been logged yet',
|
|
161
161
|
/**
|
|
162
162
|
*@description Text to keep the log of events after refreshing.
|
|
163
163
|
*/
|
|
@@ -42,7 +42,7 @@ const UIStrings = {
|
|
|
42
42
|
* @description Explanation for why the additional information section is being shown
|
|
43
43
|
*/
|
|
44
44
|
thisAdditionalDebugging:
|
|
45
|
-
'This additional (debugging) information is shown because the \'Protocol Monitor\' experiment is enabled
|
|
45
|
+
'This additional (debugging) information is shown because the \'Protocol Monitor\' experiment is enabled',
|
|
46
46
|
/**
|
|
47
47
|
* @description Label for subtitle of frame details view
|
|
48
48
|
*/
|
|
@@ -154,7 +154,7 @@ const UIStrings = {
|
|
|
154
154
|
*(https://web.dev/why-coop-coep/)
|
|
155
155
|
*(for a lot of languages 'cross-origin isolation' does not need to be translated, please translate only where necessary)
|
|
156
156
|
*/
|
|
157
|
-
availabilityOfCertainApisDepends: 'Availability of certain APIs depends on the document being cross-origin isolated
|
|
157
|
+
availabilityOfCertainApisDepends: 'Availability of certain APIs depends on the document being cross-origin isolated',
|
|
158
158
|
/**
|
|
159
159
|
* @description Description of the SharedArrayBuffer status
|
|
160
160
|
*/
|
|
@@ -230,12 +230,12 @@ const UIStrings = {
|
|
|
230
230
|
/**
|
|
231
231
|
* @description Text descripting why a frame has been indentified as an advertisement.
|
|
232
232
|
*/
|
|
233
|
-
parentIsAdExplanation: 'This frame is considered an ad frame because its parent frame is an ad frame
|
|
233
|
+
parentIsAdExplanation: 'This frame is considered an ad frame because its parent frame is an ad frame',
|
|
234
234
|
/**
|
|
235
235
|
* @description Text descripting why a frame has been indentified as an advertisement.
|
|
236
236
|
*/
|
|
237
237
|
matchedBlockingRuleExplanation:
|
|
238
|
-
'This frame is considered an ad frame because its current (or previous) main document is an ad resource
|
|
238
|
+
'This frame is considered an ad frame because its current (or previous) main document is an ad resource',
|
|
239
239
|
/**
|
|
240
240
|
* @description Text descripting why a frame has been indentified as an advertisement.
|
|
241
241
|
*/
|
|
@@ -258,7 +258,7 @@ const UIStrings = {
|
|
|
258
258
|
*(https://developer.chrome.com/docs/web-platform/origin-trials/)
|
|
259
259
|
*(please don't translate 'origin trials').
|
|
260
260
|
*/
|
|
261
|
-
originTrialsExplanation: 'Origin trials give you access to a new or experimental feature
|
|
261
|
+
originTrialsExplanation: 'Origin trials give you access to a new or experimental feature',
|
|
262
262
|
} as const;
|
|
263
263
|
const str_ = i18n.i18n.registerUIStrings('panels/application/FrameDetailsView.ts', UIStrings);
|
|
264
264
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -46,7 +46,7 @@ const UIStrings = {
|
|
|
46
46
|
/**
|
|
47
47
|
* @description Explanation text in Application panel IndexedDB delete confirmation dialog
|
|
48
48
|
*/
|
|
49
|
-
databaseWillBeRemoved: 'The selected database and contained data will be removed
|
|
49
|
+
databaseWillBeRemoved: 'The selected database and contained data will be removed',
|
|
50
50
|
/**
|
|
51
51
|
* @description Title of the confirmation dialog in the IndexedDB tab of the Application panel
|
|
52
52
|
* that the user is about to clear an object store and this cannot be undone.
|
|
@@ -57,7 +57,7 @@ const UIStrings = {
|
|
|
57
57
|
* @description Description in the confirmation dialog in the IndexedDB tab of the Application
|
|
58
58
|
* panel that the user is about to clear an object store and this cannot be undone.
|
|
59
59
|
*/
|
|
60
|
-
objectStoreWillBeCleared: 'The data contained in the selected object store will be removed
|
|
60
|
+
objectStoreWillBeCleared: 'The data contained in the selected object store will be removed',
|
|
61
61
|
/**
|
|
62
62
|
* @description Text in Indexed DBViews of the Application panel
|
|
63
63
|
*/
|
|
@@ -32,8 +32,7 @@ import '../../ui/components/buttons/buttons.js';
|
|
|
32
32
|
|
|
33
33
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
34
34
|
import * as AIAssistance from '../../models/ai_assistance/ai_assistance.js';
|
|
35
|
-
import * as Geometry from '../../
|
|
36
|
-
// eslint-disable-next-line @devtools/es-modules-import
|
|
35
|
+
import * as Geometry from '../../ui/geometry/geometry.js';
|
|
37
36
|
import dataGridAiButtonStyles from '../../ui/legacy/components/data_grid/dataGridAiButton.css.js';
|
|
38
37
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
39
38
|
import {Directives as LitDirectives, html, nothing, render} from '../../ui/lit/lit.js';
|
|
@@ -29,7 +29,7 @@ const UIStrings = {
|
|
|
29
29
|
* An endpoint is a URL where the report is sent to.
|
|
30
30
|
* (https://developer.chrome.com/docs/capabilities/web-apis/reporting-api)
|
|
31
31
|
*/
|
|
32
|
-
reportingApiDescription: 'On this page you will be able to inspect `Reporting API` reports and endpoints
|
|
32
|
+
reportingApiDescription: 'On this page you will be able to inspect `Reporting API` reports and endpoints',
|
|
33
33
|
/**
|
|
34
34
|
* @description Placeholder text that shows if no report was selected for viewing
|
|
35
35
|
*report body (https://developers.google.com/web/updates/2018/09/reportingapi#sending).
|
|
@@ -26,7 +26,7 @@ const UIStrings = {
|
|
|
26
26
|
/**
|
|
27
27
|
* @description Description text in Application Panel describing the cache storage tab
|
|
28
28
|
*/
|
|
29
|
-
cacheStorageDescription: 'On this page you can view and delete cache data
|
|
29
|
+
cacheStorageDescription: 'On this page you can view and delete cache data',
|
|
30
30
|
/**
|
|
31
31
|
* @description A context menu item in the Application Panel Sidebar of the Application panel
|
|
32
32
|
*/
|
|
@@ -51,7 +51,7 @@ const UIStrings = {
|
|
|
51
51
|
/**
|
|
52
52
|
* @description Text in Service Workers View of the Application panel
|
|
53
53
|
*/
|
|
54
|
-
testPushMessageFromDevtools: 'Test push message from DevTools
|
|
54
|
+
testPushMessageFromDevtools: 'Test push message from DevTools',
|
|
55
55
|
/**
|
|
56
56
|
* @description Button label for service worker network requests
|
|
57
57
|
*/
|
|
@@ -37,7 +37,7 @@ const UIStrings = {
|
|
|
37
37
|
* deleted independently. https://developer.chrome.com/docs/web-platform/storage-buckets.
|
|
38
38
|
*/
|
|
39
39
|
storageBucketsDescription:
|
|
40
|
-
'On this page you can view and delete storage buckets, and their associated `Storage APIs
|
|
40
|
+
'On this page you can view and delete storage buckets, and their associated `Storage APIs`',
|
|
41
41
|
} as const;
|
|
42
42
|
const str_ = i18n.i18n.registerUIStrings('panels/application/StorageBucketsTreeElement.ts', UIStrings);
|
|
43
43
|
export const i18nString: i18n.LocalizeString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -61,7 +61,7 @@ const UIStrings = {
|
|
|
61
61
|
/**
|
|
62
62
|
* @description Text to display when no calls have been made
|
|
63
63
|
*/
|
|
64
|
-
noCallsPlaceholder: 'Start interacting with your `WebMCP` agent to see real-time tool calls and executions here
|
|
64
|
+
noCallsPlaceholder: 'Start interacting with your `WebMCP` agent to see real-time tool calls and executions here',
|
|
65
65
|
/**
|
|
66
66
|
* @description Text for the header of the tool details section
|
|
67
67
|
*/
|