UNPKG

chrome-devtools-frontend

Version:
52 lines (43 loc) 1.73 kB
// Copyright 2026 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as i18n from '../../core/i18n/i18n.js'; import type * as Root from '../../core/root/root.js'; import * as UI from '../../ui/legacy/legacy.js'; import type * as Comments from './comments.js'; const UIStrings = { /** * @description Title of an action that toggles comment mode. */ toggleCommentMode: 'Add comments to send to your AI coding agent', } as const; const str_ = i18n.i18n.registerUIStrings('ui/comments/comments-meta.ts', UIStrings); const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_); let loadedCommentsModule: (typeof Comments|undefined); async function loadCommentsModule(): Promise<typeof Comments> { if (!loadedCommentsModule) { loadedCommentsModule = await import('./comments.js'); } return loadedCommentsModule; } function isCommentsEnabled(config?: Root.Runtime.HostConfig): boolean { return Boolean(config?.devToolsComments?.enabled); } UI.ActionRegistration.registerActionExtension({ category: UI.ActionRegistration.ActionCategory.GLOBAL, actionId: 'comments.toggle-comment-mode', title: i18nLazyString(UIStrings.toggleCommentMode), iconClass: UI.ActionRegistration.IconClass.COMMENT_MODE, toggleable: true, condition: isCommentsEnabled, async loadActionDelegate() { const Comments = await loadCommentsModule(); return new Comments.CommentsOverlayWidget.ActionDelegate(); }, }); UI.Toolbar.registerToolbarItem({ actionId: 'comments.toggle-comment-mode', location: UI.Toolbar.ToolbarItemLocation.MAIN_TOOLBAR_LEFT, order: 1, condition: isCommentsEnabled, });