diff --git a/src/vs/workbench/api/browser/mainThreadWebviewPanels.ts b/src/vs/workbench/api/browser/mainThreadWebviewPanels.ts index 3a7ddf961e8e7..e96588a20c910 100644 --- a/src/vs/workbench/api/browser/mainThreadWebviewPanels.ts +++ b/src/vs/workbench/api/browser/mainThreadWebviewPanels.ts @@ -10,9 +10,6 @@ import { URI } from '../../../base/common/uri.js'; import { generateUuid } from '../../../base/common/uuid.js'; import { IConfigurationService } from '../../../platform/configuration/common/configuration.js'; import { IStorageService } from '../../../platform/storage/common/storage.js'; -import { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js'; -import { MainThreadWebviews, reviveWebviewContentOptions, reviveWebviewExtension } from './mainThreadWebviews.js'; -import * as extHostProtocol from '../common/extHost.protocol.js'; import { DiffEditorInput } from '../../common/editor/diffEditorInput.js'; import { EditorInput } from '../../common/editor/editorInput.js'; import { ExtensionKeyedWebviewOriginStore, WebviewOptions } from '../../contrib/webview/browser/webview.js'; @@ -24,6 +21,8 @@ import { GroupLocation, GroupsOrder, IEditorGroup, IEditorGroupsService, preferr import { ACTIVE_GROUP, IEditorService, PreferredGroup, SIDE_GROUP } from '../../services/editor/common/editorService.js'; import { IExtensionService } from '../../services/extensions/common/extensions.js'; import { IExtHostContext } from '../../services/extensions/common/extHostCustomers.js'; +import * as extHostProtocol from '../common/extHost.protocol.js'; +import { MainThreadWebviews, reviveWebviewContentOptions, reviveWebviewExtension } from './mainThreadWebviews.js'; /** * Bi-directional map between webview handles and inputs. @@ -98,7 +97,6 @@ export class MainThreadWebviewPanels extends Disposable implements extHostProtoc @IEditorService private readonly _editorService: IEditorService, @IExtensionService extensionService: IExtensionService, @IStorageService storageService: IStorageService, - @ITelemetryService private readonly _telemetryService: ITelemetryService, @IWebviewWorkbenchService private readonly _webviewWorkbenchService: IWebviewWorkbenchService, ) { super(); @@ -174,20 +172,6 @@ export class MainThreadWebviewPanels extends Disposable implements extHostProtoc }, this.webviewPanelViewType.fromExternal(viewType), initData.title, mainThreadShowOptions); this.addWebviewInput(handle, webview, { serializeBuffersForPostMessage: initData.serializeBuffersForPostMessage }); - - const payload = { - extensionId: extension.id.value, - viewType - } as const; - - type Classification = { - extensionId: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Id of the extension that created the webview panel' }; - viewType: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Id of the webview' }; - owner: 'mjbvz'; - comment: 'Triggered when a webview is created. Records the type of webview and the extension which created it'; - }; - - this._telemetryService.publicLog2('webviews:createWebviewPanel', payload); } public $disposeWebview(handle: extHostProtocol.WebviewHandle): void { diff --git a/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.ts b/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.ts index 6849ca7b08179..f3479e017bdd9 100644 --- a/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.ts +++ b/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.ts @@ -7,10 +7,8 @@ import * as dom from '../../../../base/browser/dom.js'; import { StandardMouseEvent } from '../../../../base/browser/mouseEvent.js'; import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js'; import { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js'; -import { Lazy } from '../../../../base/common/lazy.js'; import { Disposable } from '../../../../base/common/lifecycle.js'; import { URI } from '../../../../base/common/uri.js'; -import { generateUuid } from '../../../../base/common/uuid.js'; import { ICodeEditorService } from '../../../../editor/browser/services/codeEditorService.js'; import { IRange } from '../../../../editor/common/core/range.js'; import { EditorContextKeys } from '../../../../editor/common/editorContextKeys.js'; @@ -92,8 +90,6 @@ export class InlineAnchorWidget extends Disposable { const contextKeyService = this._register(originalContextKeyService.createScoped(element)); this._chatResourceContext = chatAttachmentResourceContextKey.bindTo(contextKeyService); - const anchorId = new Lazy(generateUuid); - element.classList.add(InlineAnchorWidget.className, 'show-file-icons'); let iconText: string; @@ -109,18 +105,6 @@ export class InlineAnchorWidget extends Disposable { iconText = this.data.symbol.name; iconClasses = ['codicon', ...getIconClasses(modelService, languageService, undefined, undefined, SymbolKinds.toIcon(symbol.kind))]; - this._register(dom.addDisposableListener(element, 'click', () => { - telemetryService.publicLog2<{ - anchorId: string; - }, { - anchorId: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Unique identifier for the current anchor.' }; - owner: 'mjbvz'; - comment: 'Provides insight into the usage of Chat features.'; - }>('chat.inlineAnchor.openSymbol', { - anchorId: anchorId.value - }); - })); - this._store.add(instantiationService.invokeFunction(accessor => hookUpSymbolAttachmentDragAndContextMenu(accessor, element, contextKeyService, { value: symbol.location, name: symbol.name, kind: symbol.kind }, MenuId.ChatInlineSymbolAnchorContext))); } else { location = this.data; @@ -148,18 +132,6 @@ export class InlineAnchorWidget extends Disposable { }) .catch(() => { }); - this._register(dom.addDisposableListener(element, 'click', () => { - telemetryService.publicLog2<{ - anchorId: string; - }, { - anchorId: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Unique identifier for the current anchor.' }; - owner: 'mjbvz'; - comment: 'Provides insight into the usage of Chat features.'; - }>('chat.inlineAnchor.openResource', { - anchorId: anchorId.value - }); - })); - // Context menu this._register(dom.addDisposableListener(element, dom.EventType.CONTEXT_MENU, async domEvent => { const event = new StandardMouseEvent(dom.getWindow(domEvent), domEvent); diff --git a/src/vs/workbench/contrib/webview/browser/webviewElement.ts b/src/vs/workbench/contrib/webview/browser/webviewElement.ts index 4985fa12fc7b6..1273b8c7a9a5f 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewElement.ts @@ -5,7 +5,9 @@ import { isFirefox } from '../../../../base/browser/browser.js'; import { addDisposableListener, EventType, getWindowById } from '../../../../base/browser/dom.js'; +import { parentOriginHash } from '../../../../base/browser/iframe.js'; import { IMouseWheelEvent } from '../../../../base/browser/mouseEvent.js'; +import { CodeWindow } from '../../../../base/browser/window.js'; import { promiseWithResolvers, ThrottledDelayer } from '../../../../base/common/async.js'; import { streamToBuffer, VSBufferReadableStream } from '../../../../base/common/buffer.js'; import { CancellationTokenSource } from '../../../../base/common/cancellation.js'; @@ -26,18 +28,15 @@ import { IInstantiationService } from '../../../../platform/instantiation/common import { ILogService } from '../../../../platform/log/common/log.js'; import { INotificationService } from '../../../../platform/notification/common/notification.js'; import { IRemoteAuthorityResolverService } from '../../../../platform/remote/common/remoteAuthorityResolver.js'; -import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js'; import { ITunnelService } from '../../../../platform/tunnel/common/tunnel.js'; import { WebviewPortMappingManager } from '../../../../platform/webview/common/webviewPortMapping.js'; -import { parentOriginHash } from '../../../../base/browser/iframe.js'; +import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js'; +import { decodeAuthority, webviewGenericCspSource, webviewRootResourceAuthority } from '../common/webview.js'; import { loadLocalResource, WebviewResourceResponse } from './resourceLoading.js'; import { WebviewThemeDataProvider } from './themeing.js'; import { areWebviewContentOptionsEqual, IWebview, WebviewContentOptions, WebviewExtensionDescription, WebviewInitInfo, WebviewMessageReceivedEvent, WebviewOptions } from './webview.js'; import { WebviewFindDelegate, WebviewFindWidget } from './webviewFindWidget.js'; import { FromWebviewMessage, KeyEvent, ToWebviewMessage, WebViewDragEvent } from './webviewMessages.js'; -import { decodeAuthority, webviewGenericCspSource, webviewRootResourceAuthority } from '../common/webview.js'; -import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js'; -import { CodeWindow } from '../../../../base/browser/window.js'; interface WebviewContent { readonly html: string; @@ -158,7 +157,6 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD @IFileService private readonly _fileService: IFileService, @ILogService private readonly _logService: ILogService, @IRemoteAuthorityResolverService private readonly _remoteAuthorityResolverService: IRemoteAuthorityResolverService, - @ITelemetryService private readonly _telemetryService: ITelemetryService, @ITunnelService private readonly _tunnelService: ITunnelService, @IInstantiationService instantiationService: IInstantiationService, @IAccessibilityService private readonly _accessibilityService: IAccessibilityService, @@ -588,18 +586,6 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD if (this._environmentService.isExtensionDevelopment) { this._onMissingCsp.fire(this.extension.id); } - - const payload = { - extension: this.extension.id.value - } as const; - - type Classification = { - extension: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'The id of the extension that created the webview.' }; - owner: 'mjbvz'; - comment: 'Helps find which extensions are contributing webviews with invalid CSPs'; - }; - - this._telemetryService.publicLog2('webviewMissingCsp', payload); } }