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
|
@@ -22,45 +22,45 @@ import styles from './gdpSignUpDialog.css.js';
|
|
|
22
22
|
|
|
23
23
|
const UIStrings = {
|
|
24
24
|
/**
|
|
25
|
-
* @description
|
|
25
|
+
* @description ARIA label for the Google Developer Program sign up dialog.
|
|
26
26
|
*/
|
|
27
27
|
gdpDialogAriaLabel: 'Google Developer Program sign up dialog',
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
30
|
-
* @description Button text for canceling GDP sign up.
|
|
29
|
+
* @description Button text for canceling Google Developer Program sign up.
|
|
31
30
|
*/
|
|
32
31
|
cancel: 'Cancel',
|
|
33
32
|
/**
|
|
34
|
-
* @description Button text for confirming
|
|
33
|
+
* @description Button text for confirming Google Developer Program sign up.
|
|
35
34
|
*/
|
|
36
35
|
signUp: 'Sign up',
|
|
37
36
|
/**
|
|
38
|
-
* @description Title for the first section of the
|
|
37
|
+
* @description Title for the first section of the Google Developer Program sign up dialog.
|
|
39
38
|
*/
|
|
40
39
|
designedForSuccess: 'Designed for your success',
|
|
41
40
|
/**
|
|
42
|
-
* @description Body for the first section of the
|
|
41
|
+
* @description Body for the first section of the Google Developer Program sign up dialog.
|
|
43
42
|
*/
|
|
44
|
-
designedForSuccessBody:
|
|
43
|
+
designedForSuccessBody:
|
|
44
|
+
'Grow your skills, build with AI, and earn badges you can showcase in your developer profile.',
|
|
45
45
|
/**
|
|
46
|
-
* @description Title for the second section of the
|
|
46
|
+
* @description Title for the second section of the Google Developer Program sign up dialog.
|
|
47
47
|
*/
|
|
48
48
|
keepUpdated: 'Keep me updated',
|
|
49
49
|
/**
|
|
50
|
-
* @description Body for the second section of the
|
|
50
|
+
* @description Body for the second section of the Google Developer Program sign up dialog.
|
|
51
51
|
*/
|
|
52
|
-
keepUpdatedBody: 'The latest DevTools features, event invites, and tailored insights land directly in your inbox',
|
|
52
|
+
keepUpdatedBody: 'The latest DevTools features, event invites, and tailored insights land directly in your inbox.',
|
|
53
53
|
/**
|
|
54
|
-
* @description Title for the third section of the
|
|
54
|
+
* @description Title for the third section of the Google Developer Program sign up dialog.
|
|
55
55
|
*/
|
|
56
56
|
tailorProfile: 'Tailor your profile',
|
|
57
57
|
/**
|
|
58
|
-
* @description Body for the third section of the
|
|
58
|
+
* @description Body for the third section of the Google Developer Program sign up dialog.
|
|
59
59
|
*/
|
|
60
60
|
tailorProfileBody:
|
|
61
|
-
'The name on your Google
|
|
61
|
+
'The name on your Google account and your interests will be used in your Google Developer Profile. Your name may appear where you contribute and can be changed at any time.',
|
|
62
62
|
/**
|
|
63
|
-
* @description
|
|
63
|
+
* @description Disclaimer text for tailoring profile in the Google Developer Program sign up dialog.
|
|
64
64
|
* @example {Content Policy} PH1
|
|
65
65
|
* @example {Terms of Service} PH2
|
|
66
66
|
* @example {Privacy Policy} PH3
|
|
@@ -88,9 +88,9 @@ const UIStrings = {
|
|
|
88
88
|
*/
|
|
89
89
|
privacyPolicy: 'Privacy Policy',
|
|
90
90
|
/**
|
|
91
|
-
* @description Error message shown in a snackbar when
|
|
91
|
+
* @description Error message shown in a snackbar when Google Developer Profile creation fails.
|
|
92
92
|
*/
|
|
93
|
-
signUpFailed: 'Your Google Developer
|
|
93
|
+
signUpFailed: 'Your Google Developer Profile couldn’t be created. Please try again later.',
|
|
94
94
|
} as const;
|
|
95
95
|
|
|
96
96
|
const str_ = i18n.i18n.registerUIStrings('panels/common/GdpSignUpDialog.ts', UIStrings);
|
|
@@ -24,11 +24,10 @@ import styles from './geminiRebrandPromoDialog.css.js';
|
|
|
24
24
|
|
|
25
25
|
const UIStrings = {
|
|
26
26
|
/**
|
|
27
|
-
* @description
|
|
27
|
+
* @description ARIA label for the dialog.
|
|
28
28
|
*/
|
|
29
29
|
dialogAriaLabel: 'Gemini 3 Flash in DevTools',
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
32
31
|
* @description Button text for dismissing the dialog.
|
|
33
32
|
*/
|
|
34
33
|
dismiss: 'Dismiss',
|
|
@@ -37,19 +36,19 @@ const UIStrings = {
|
|
|
37
36
|
*/
|
|
38
37
|
getStarted: 'Get started',
|
|
39
38
|
/**
|
|
40
|
-
* @description
|
|
39
|
+
* @description Feature item describing Gemini as an AI companion for web development.
|
|
41
40
|
*/
|
|
42
41
|
detailAiCompanion: 'Meet your AI-powered companion for web dev',
|
|
43
42
|
/**
|
|
44
|
-
* @description
|
|
43
|
+
* @description Feature item describing instant answers for console errors.
|
|
45
44
|
*/
|
|
46
45
|
detailConsoleErrors: 'Get instant, accurate answers for console errors',
|
|
47
46
|
/**
|
|
48
|
-
* @description
|
|
47
|
+
* @description Feature item describing CSS and JS snippet generation.
|
|
49
48
|
*/
|
|
50
49
|
detailGenerateCode: 'Generate CSS and JS snippets on the fly',
|
|
51
50
|
/**
|
|
52
|
-
* @description
|
|
51
|
+
* @description Feature item describing automatic issue detection in performance traces.
|
|
53
52
|
*/
|
|
54
53
|
detailPerformance: 'Automatically find issues in performance traces',
|
|
55
54
|
} as const;
|
|
@@ -14,12 +14,12 @@ import {html, type LitTemplate} from '../../ui/lit/lit.js';
|
|
|
14
14
|
|
|
15
15
|
const UIStrings = {
|
|
16
16
|
/**
|
|
17
|
-
* @description
|
|
17
|
+
* @description Tooltip text indicating that a file is linked to a source map.
|
|
18
18
|
* @example {example.url} PH1
|
|
19
19
|
*/
|
|
20
20
|
linkedToSourceMapS: 'Linked to source map: {PH1}',
|
|
21
21
|
/**
|
|
22
|
-
* @description
|
|
22
|
+
* @description Tooltip text indicating that a file is linked to another file.
|
|
23
23
|
* @example {example.url} PH1
|
|
24
24
|
*/
|
|
25
25
|
linkedToS: 'Linked to {PH1}',
|
|
@@ -2,105 +2,8 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
6
|
-
|
|
7
|
-
import * as Host from '../../core/host/host.js';
|
|
8
|
-
import * as i18n from '../../core/i18n/i18n.js';
|
|
9
|
-
import type * as Platform from '../../core/platform/platform.js';
|
|
10
|
-
import * as Geometry from '../../models/geometry/geometry.js';
|
|
11
|
-
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
12
|
-
import * as UI from '../../ui/legacy/legacy.js';
|
|
13
|
-
|
|
14
|
-
import commonStyles from './common.css.js';
|
|
15
|
-
|
|
16
|
-
const UIStrings = {
|
|
17
|
-
/**
|
|
18
|
-
* @description Text for the cancel button in the dialog.
|
|
19
|
-
*/
|
|
20
|
-
cancel: 'Cancel',
|
|
21
|
-
/**
|
|
22
|
-
* @description Text for the allow button in the "type to allow" dialog.
|
|
23
|
-
*/
|
|
24
|
-
allow: 'Allow',
|
|
25
|
-
} as const;
|
|
26
|
-
|
|
27
|
-
const str_ = i18n.i18n.registerUIStrings('panels/common/common.ts', UIStrings);
|
|
28
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
29
|
-
|
|
30
|
-
export class TypeToAllowDialog {
|
|
31
|
-
static async show(options: {
|
|
32
|
-
jslogContext: {
|
|
33
|
-
dialog: string,
|
|
34
|
-
input: string,
|
|
35
|
-
},
|
|
36
|
-
header: Platform.UIString.LocalizedString,
|
|
37
|
-
message: Platform.UIString.LocalizedString,
|
|
38
|
-
typePhrase: Platform.UIString.LocalizedString,
|
|
39
|
-
inputPlaceholder: Platform.UIString.LocalizedString,
|
|
40
|
-
}): Promise<boolean> {
|
|
41
|
-
const dialog = new UI.Dialog.Dialog(options.jslogContext.dialog);
|
|
42
|
-
dialog.setMaxContentSize(new Geometry.Size(504, 340));
|
|
43
|
-
dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.SET_EXACT_WIDTH_MAX_HEIGHT);
|
|
44
|
-
dialog.setDimmed(true);
|
|
45
|
-
const shadowRoot = UI.UIUtils.createShadowRootWithCoreStyles(dialog.contentElement, {cssFile: commonStyles});
|
|
46
|
-
const content = shadowRoot.createChild('div', 'type-to-allow-dialog');
|
|
47
|
-
|
|
48
|
-
const result = await new Promise<boolean>(resolve => {
|
|
49
|
-
const header = content.createChild('div', 'header');
|
|
50
|
-
header.createChild('div', 'title').textContent = options.header;
|
|
51
|
-
|
|
52
|
-
const closeButton = header.createChild('dt-close-button', 'dialog-close-button');
|
|
53
|
-
closeButton.setTabbable(true);
|
|
54
|
-
self.onInvokeElement(closeButton, event => {
|
|
55
|
-
dialog.hide();
|
|
56
|
-
event.consume(true);
|
|
57
|
-
resolve(false);
|
|
58
|
-
});
|
|
59
|
-
closeButton.setSize(Buttons.Button.Size.SMALL);
|
|
60
|
-
|
|
61
|
-
content.createChild('div', 'message').textContent = options.message;
|
|
62
|
-
|
|
63
|
-
const input = UI.UIUtils.createInput('text-input', 'text', options.jslogContext.input);
|
|
64
|
-
input.placeholder = options.inputPlaceholder;
|
|
65
|
-
content.appendChild(input);
|
|
66
|
-
|
|
67
|
-
const buttonsBar = content.createChild('div', 'button');
|
|
68
|
-
const cancelButton =
|
|
69
|
-
UI.UIUtils.createTextButton(i18nString(UIStrings.cancel), () => resolve(false), {jslogContext: 'cancel'});
|
|
70
|
-
|
|
71
|
-
const allowButton = UI.UIUtils.createTextButton(i18nString(UIStrings.allow), () => {
|
|
72
|
-
resolve(input.value === options.typePhrase || input.value === `'${options.typePhrase}'`);
|
|
73
|
-
}, {jslogContext: 'confirm', variant: Buttons.Button.Variant.PRIMARY});
|
|
74
|
-
allowButton.disabled = true;
|
|
75
|
-
|
|
76
|
-
buttonsBar.appendChild(allowButton);
|
|
77
|
-
buttonsBar.appendChild(cancelButton);
|
|
78
|
-
|
|
79
|
-
input.addEventListener('input', () => {
|
|
80
|
-
allowButton.disabled = !Boolean(input.value);
|
|
81
|
-
}, false);
|
|
82
|
-
input.addEventListener('paste', e => e.preventDefault());
|
|
83
|
-
input.addEventListener('drop', e => e.preventDefault());
|
|
84
|
-
|
|
85
|
-
dialog.setOutsideClickCallback(event => {
|
|
86
|
-
event.consume();
|
|
87
|
-
resolve(false);
|
|
88
|
-
});
|
|
89
|
-
dialog.show();
|
|
90
|
-
Host.userMetrics.actionTaken(Host.UserMetrics.Action.SelfXssWarningDialogShown);
|
|
91
|
-
});
|
|
92
|
-
dialog.hide();
|
|
93
|
-
return result;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export {AiCodeCompletionTeaser} from './AiCodeCompletionTeaser.js';
|
|
98
|
-
export * as AiCodeGenerationTeaser from './AiCodeGenerationTeaser.js';
|
|
99
|
-
export {AiCodeGenerationUpgradeDialog} from './AiCodeGenerationUpgradeDialog.js';
|
|
100
|
-
export {FreDialog} from './FreDialog.js';
|
|
101
5
|
export {GdpSignUpDialog} from './GdpSignUpDialog.js';
|
|
102
6
|
export {GeminiRebrandPromoDialog} from './GeminiRebrandPromoDialog.js';
|
|
103
|
-
export {AiCodeCompletionDisclaimer, type DisclaimerTextVariant} from './AiCodeCompletionDisclaimer.js';
|
|
104
7
|
export * as AiCodeCompletionSummaryToolbar from './AiCodeCompletionSummaryToolbar.js';
|
|
105
8
|
export * from './BadgeNotification.js';
|
|
106
9
|
export * as CPUThrottlingOption from './CPUThrottlingOption.js';
|
|
@@ -12,11 +12,11 @@ import * as Root from '../../core/root/root.js';
|
|
|
12
12
|
import * as Protocol from '../../generated/protocol.js';
|
|
13
13
|
import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
|
|
14
14
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
15
|
+
import * as Dialogs from '../../ui/components/dialogs/dialogs.js';
|
|
15
16
|
import type * as Tooltips from '../../ui/components/tooltips/tooltips.js';
|
|
16
17
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
17
18
|
import * as Lit from '../../ui/lit/lit.js';
|
|
18
19
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
19
|
-
import * as PanelCommon from '../common/common.js';
|
|
20
20
|
|
|
21
21
|
import consoleInsightTeaserStyles from './consoleInsightTeaser.css.js';
|
|
22
22
|
import {ConsoleViewMessage} from './ConsoleViewMessage.js';
|
|
@@ -500,7 +500,7 @@ export class ConsoleInsightTeaser extends UI.Widget.Widget {
|
|
|
500
500
|
const noLogging = Root.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue ===
|
|
501
501
|
Root.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;
|
|
502
502
|
const iconName = AiAssistanceModel.AiUtils.getIconName();
|
|
503
|
-
const result = await
|
|
503
|
+
const result = await Dialogs.FreDialog.FreDialog.show({
|
|
504
504
|
header: {iconName, text: lockedString(UIStringsNotTranslate.freDisclaimerHeader)},
|
|
505
505
|
reminderItems: [
|
|
506
506
|
{
|
|
@@ -10,6 +10,7 @@ import * as Root from '../../core/root/root.js';
|
|
|
10
10
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
11
11
|
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
|
12
12
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
13
|
+
import * as Dialogs from '../../ui/components/dialogs/dialogs.js';
|
|
13
14
|
import * as TextEditor from '../../ui/components/text_editor/text_editor.js';
|
|
14
15
|
import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
|
15
16
|
// eslint-disable-next-line @devtools/es-modules-import
|
|
@@ -17,7 +18,6 @@ import objectValueStyles from '../../ui/legacy/components/object_ui/objectValue.
|
|
|
17
18
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
18
19
|
import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
|
|
19
20
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
20
|
-
import * as PanelCommon from '../common/common.js';
|
|
21
21
|
|
|
22
22
|
import consolePinPaneStyles from './consolePinPane.css.js';
|
|
23
23
|
|
|
@@ -437,7 +437,7 @@ export class ConsolePinPresenter extends UI.Widget.Widget {
|
|
|
437
437
|
}
|
|
438
438
|
|
|
439
439
|
async #showSelfXssWarning(): Promise<void> {
|
|
440
|
-
const allowPasting = await
|
|
440
|
+
const allowPasting = await Dialogs.TypeToAllowDialog.TypeToAllowDialog.show({
|
|
441
441
|
jslogContext: {
|
|
442
442
|
dialog: 'self-xss-warning',
|
|
443
443
|
input: 'allow-pasting',
|
|
@@ -58,6 +58,7 @@ import objectValueStyles from '../../ui/legacy/components/object_ui/objectValue.
|
|
|
58
58
|
import * as SettingsUI from '../../ui/legacy/components/settings_ui/settings_ui.js';
|
|
59
59
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
60
60
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
61
|
+
import * as SettingUIRegistration from '../../ui/settings/settings.js';
|
|
61
62
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
62
63
|
import {AiCodeCompletionSummaryToolbar} from '../common/common.js';
|
|
63
64
|
|
|
@@ -498,30 +499,30 @@ export class ConsoleView extends UI.Widget.VBox implements
|
|
|
498
499
|
settingsPane.append(
|
|
499
500
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
500
501
|
i18nString(UIStrings.networkMessages), this.filter.networkMessagesSetting,
|
|
501
|
-
this.filter.networkMessagesSetting.
|
|
502
|
+
SettingUIRegistration.SettingUIRegistration.resolve(this.filter.networkMessagesSetting.descriptor()).title),
|
|
503
|
+
SettingsUI.SettingsUI.createSettingCheckbox(i18nString(UIStrings.logXMLHttpRequests),
|
|
504
|
+
monitoringXHREnabledSetting),
|
|
505
|
+
SettingsUI.SettingsUI.createSettingCheckbox(i18nString(UIStrings.preserveLog), preserveConsoleLogSetting,
|
|
506
|
+
i18nString(UIStrings.doNotClearLogOnPageReload)),
|
|
502
507
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
503
|
-
|
|
508
|
+
SettingUIRegistration.SettingUIRegistration.resolve(consoleEagerEvalSetting.descriptor()).title,
|
|
509
|
+
consoleEagerEvalSetting, i18nString(UIStrings.eagerlyEvaluateTextInThePrompt)),
|
|
510
|
+
SettingsUI.SettingsUI.createSettingCheckbox(i18nString(UIStrings.selectedContextOnly),
|
|
511
|
+
this.filter.filterByExecutionContextSetting,
|
|
512
|
+
i18nString(UIStrings.onlyShowMessagesFromTheCurrentContext)),
|
|
504
513
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
505
|
-
|
|
506
|
-
|
|
514
|
+
SettingUIRegistration.SettingUIRegistration.resolve(this.consoleHistoryAutocompleteSetting.descriptor())
|
|
515
|
+
.title,
|
|
516
|
+
this.consoleHistoryAutocompleteSetting, i18nString(UIStrings.autocompleteFromHistory)),
|
|
507
517
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
508
|
-
|
|
509
|
-
i18nString(UIStrings.
|
|
518
|
+
SettingUIRegistration.SettingUIRegistration.resolve(this.groupSimilarSetting.descriptor()).title,
|
|
519
|
+
this.groupSimilarSetting, i18nString(UIStrings.groupSimilarMessagesInConsole)),
|
|
510
520
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
511
|
-
|
|
512
|
-
i18nString(UIStrings.
|
|
521
|
+
SettingUIRegistration.SettingUIRegistration.resolve(userActivationEvalSetting.descriptor()).title,
|
|
522
|
+
userActivationEvalSetting, i18nString(UIStrings.treatEvaluationAsUserActivation)),
|
|
513
523
|
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
514
|
-
this.
|
|
515
|
-
i18nString(UIStrings.
|
|
516
|
-
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
517
|
-
this.groupSimilarSetting.title(), this.groupSimilarSetting,
|
|
518
|
-
i18nString(UIStrings.groupSimilarMessagesInConsole)),
|
|
519
|
-
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
520
|
-
userActivationEvalSetting.title(), userActivationEvalSetting,
|
|
521
|
-
i18nString(UIStrings.treatEvaluationAsUserActivation)),
|
|
522
|
-
SettingsUI.SettingsUI.createSettingCheckbox(
|
|
523
|
-
this.showCorsErrorsSetting.title(), this.showCorsErrorsSetting,
|
|
524
|
-
i18nString(UIStrings.showCorsErrorsInConsole)),
|
|
524
|
+
SettingUIRegistration.SettingUIRegistration.resolve(this.showCorsErrorsSetting.descriptor()).title,
|
|
525
|
+
this.showCorsErrorsSetting, i18nString(UIStrings.showCorsErrorsInConsole)),
|
|
525
526
|
);
|
|
526
527
|
|
|
527
528
|
if (!this.showSettingsPaneSetting.get()) {
|
|
@@ -461,15 +461,9 @@ export class LayoutPane extends UI.Widget.Widget {
|
|
|
461
461
|
const mappedSetting = {
|
|
462
462
|
type: settingType,
|
|
463
463
|
name: setting.name,
|
|
464
|
-
title: uiDescriptor?.title
|
|
464
|
+
title: uiDescriptor?.title ?? '',
|
|
465
465
|
};
|
|
466
|
-
const options = uiDescriptor?.options
|
|
467
|
-
value: opt.value,
|
|
468
|
-
title: opt.title(),
|
|
469
|
-
text: typeof opt.text === 'function' ? opt.text() : opt.text,
|
|
470
|
-
raw: opt.raw,
|
|
471
|
-
})) ??
|
|
472
|
-
setting.options();
|
|
466
|
+
const options = uiDescriptor?.options ?? [];
|
|
473
467
|
|
|
474
468
|
if (typeof settingValue === 'boolean') {
|
|
475
469
|
settings.push({
|
|
@@ -14,6 +14,7 @@ import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
|
|
14
14
|
import objectValueStyles from '../../ui/legacy/components/object_ui/objectValue.css.js';
|
|
15
15
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
16
16
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
17
|
+
import {render} from '../../ui/lit/lit.js';
|
|
17
18
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
18
19
|
|
|
19
20
|
import {frameworkEventListeners, type FrameworkEventListenersObject} from './EventListenersUtils.js';
|
|
@@ -325,10 +326,13 @@ export class ObjectEventListenerBar extends UI.TreeOutline.TreeElement {
|
|
|
325
326
|
private setTitle(object: SDK.RemoteObject.RemoteObject, linkifier: Components.Linkifier.Linkifier): void {
|
|
326
327
|
const title = this.listItemElement.createChild('span', 'event-listener-details');
|
|
327
328
|
|
|
328
|
-
const propertyValue = ObjectUI.ObjectPropertiesSection.
|
|
329
|
-
object, /* wasThrown */ false, /* showPreview */ false
|
|
330
|
-
|
|
331
|
-
|
|
329
|
+
const propertyValue = ObjectUI.ObjectPropertiesSection.renderPropertyValue(
|
|
330
|
+
object, /* wasThrown */ false, /* showPreview */ false, linkifier, /* isSyntheticProperty */ false,
|
|
331
|
+
/* variableName */ undefined, /* includeNullOrUndefined */ undefined, /* useCustomPreview */ false, element => {
|
|
332
|
+
this.valueTitle = element;
|
|
333
|
+
});
|
|
334
|
+
// eslint-disable-next-line @devtools/no-lit-render-outside-of-view
|
|
335
|
+
render(propertyValue, title);
|
|
332
336
|
|
|
333
337
|
if (this.#eventListener.canRemove()) {
|
|
334
338
|
const deleteButton = new Buttons.Button.Button();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Copyright 2023 The Chromium Authors
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
|
-
/* eslint-disable @devtools/no-imperative-dom-api */
|
|
5
4
|
|
|
6
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
6
|
import type * as Platform from '../../core/platform/platform.js';
|
|
7
|
+
import {html, render} from '../../ui/lit/lit.js';
|
|
8
8
|
|
|
9
9
|
import {AffectedResourcesView} from './AffectedResourcesView.js';
|
|
10
10
|
|
|
@@ -21,24 +21,35 @@ const UIStrings = {
|
|
|
21
21
|
const str_ = i18n.i18n.registerUIStrings('panels/issues/AffectedTrackingSitesView.ts', UIStrings);
|
|
22
22
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
23
23
|
|
|
24
|
+
export interface ViewInput {
|
|
25
|
+
trackingSites: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
export type ViewOutput = object;
|
|
28
|
+
export type View = (input: ViewInput, output: ViewOutput, target: HTMLElement) => void;
|
|
29
|
+
|
|
30
|
+
export function defaultView(input: ViewInput, output: ViewOutput, target: HTMLElement): void {
|
|
31
|
+
render(html`
|
|
32
|
+
<tbody>
|
|
33
|
+
${input.trackingSites.map(site => html`
|
|
34
|
+
<tr class="affected-resource-directive">
|
|
35
|
+
<td class="affected-resource-cell" title=${site}>${site}</td>
|
|
36
|
+
</tr>
|
|
37
|
+
`)}
|
|
38
|
+
</tbody>
|
|
39
|
+
`,
|
|
40
|
+
target);
|
|
41
|
+
}
|
|
42
|
+
|
|
24
43
|
export class AffectedTrackingSitesView extends AffectedResourcesView {
|
|
44
|
+
#view: View = defaultView;
|
|
45
|
+
|
|
25
46
|
protected override getResourceNameWithCount(count: number): Platform.UIString.LocalizedString {
|
|
26
47
|
return i18nString(UIStrings.nTrackingSites, {n: count});
|
|
27
48
|
}
|
|
28
49
|
|
|
29
50
|
override update(): void {
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
for (const site of trackingSites) {
|
|
35
|
-
const row = document.createElement('tr');
|
|
36
|
-
row.classList.add('affected-resource-directive');
|
|
37
|
-
|
|
38
|
-
this.appendIssueDetailCell(row, site);
|
|
39
|
-
this.affectedResources.appendChild(row);
|
|
40
|
-
count++;
|
|
41
|
-
}
|
|
42
|
-
this.updateAffectedResourceCount(count);
|
|
51
|
+
const trackingSites = Array.from(this.issue.getBounceTrackingSites());
|
|
52
|
+
this.#view({trackingSites}, {}, this.affectedResources);
|
|
53
|
+
this.updateAffectedResourceCount(trackingSites.length);
|
|
43
54
|
}
|
|
44
55
|
}
|