diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 43b01031087..1df16a4716f 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -80,7 +80,7 @@ export function createApiFactory( // Addressable instances const extHostHeapService = threadService.set(ExtHostContext.ExtHostHeapService, new ExtHostHeapService()); - const extHostDocumentsAndEditors = threadService.set(ExtHostContext.ExtHostDocumentsAndEditors, new ExtHostDocumentsAndEditors(threadService, extensionService)); + const extHostDocumentsAndEditors = threadService.set(ExtHostContext.ExtHostDocumentsAndEditors, new ExtHostDocumentsAndEditors(threadService)); const extHostDocuments = threadService.set(ExtHostContext.ExtHostDocuments, new ExtHostDocuments(threadService, extHostDocumentsAndEditors)); const extHostDocumentContentProviders = threadService.set(ExtHostContext.ExtHostDocumentContentProviders, new ExtHostDocumentContentProvider(threadService, extHostDocumentsAndEditors)); const extHostDocumentSaveParticipant = threadService.set(ExtHostContext.ExtHostDocumentSaveParticipant, new ExtHostDocumentSaveParticipant(extHostDocuments, threadService.get(MainContext.MainThreadWorkspace))); diff --git a/src/vs/workbench/api/node/extHostDocumentsAndEditors.ts b/src/vs/workbench/api/node/extHostDocumentsAndEditors.ts index 13c0f647215..da9cc09702c 100644 --- a/src/vs/workbench/api/node/extHostDocumentsAndEditors.ts +++ b/src/vs/workbench/api/node/extHostDocumentsAndEditors.ts @@ -11,7 +11,6 @@ import { ExtHostDocumentData } from './extHostDocumentData'; import { ExtHostTextEditor } from './extHostTextEditor'; import * as assert from 'assert'; import * as typeConverters from './extHostTypeConverters'; -import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsShape { @@ -30,8 +29,7 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha readonly onDidChangeActiveTextEditor: Event = this._onDidChangeActiveTextEditor.event; constructor( - private readonly _mainContext: IMainContext, - private readonly _extHostExtensions: ExtHostExtensionService + private readonly _mainContext: IMainContext ) { } @@ -83,8 +81,6 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha const documentData = this._documents.get(data.document.toString()); const editor = new ExtHostTextEditor( this._mainContext.get(MainContext.MainThreadEditors), - this._mainContext.get(MainContext.MainThreadTelemetry), - this._extHostExtensions, data.id, documentData, data.selections.map(typeConverters.toSelection), diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index a2ff61b1935..c61be379275 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -19,7 +19,6 @@ import { Barrier } from 'vs/workbench/services/extensions/node/barrier'; import { ExtHostThreadService } from 'vs/workbench/services/thread/node/extHostThreadService'; import { realpath } from 'fs'; import { TrieMap } from 'vs/base/common/map'; -import { V8CallSite } from 'vs/base/common/errors'; class ExtensionMemento implements IExtensionMemento { @@ -228,27 +227,6 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { return this._extensionPathIndex; } - public getActiveExtensionFromCallstack(): TPromise { - const err = new Error(); - return this.getExtensionPathIndex().then(index => { - let oldHandler = (Error).prepareStackTrace; - let result: IExtensionDescription; - (Error).prepareStackTrace = (err: Error, stacktrace: V8CallSite[]) => { - for (const call of stacktrace) { - result = index.findSubstr(call.getFileName()); - if (result) { - return; - } - } - }; - - // tslint:disable-next-line:no-unused-expression - err.stack; - - (Error).prepareStackTrace = oldHandler; - return result; - }); - } public deactivate(extensionId: string): TPromise { let result: TPromise = TPromise.as(void 0); diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index f1848950748..f6049cdab17 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -205,7 +205,7 @@ class HoverAdapter { // we wanna know which extension uses command links // because that is a potential trick-attack on users if (result.contents.some(containsCommandLink)) { - this._telemetryLog('MarkedString/commandLink', { from: 'hover' }); + this._telemetryLog('usesCommandLink', { from: 'hover' }); } return result; }); diff --git a/src/vs/workbench/api/node/extHostTextEditor.ts b/src/vs/workbench/api/node/extHostTextEditor.ts index eaf05d1d1d8..763969acc96 100644 --- a/src/vs/workbench/api/node/extHostTextEditor.ts +++ b/src/vs/workbench/api/node/extHostTextEditor.ts @@ -13,12 +13,10 @@ import { ExtHostDocumentData } from 'vs/workbench/api/node/extHostDocumentData'; import { Selection, Range, Position, EndOfLine, TextEditorRevealType, TextEditorLineNumbersStyle, SnippetString } from './extHostTypes'; import { ISingleEditOperation } from 'vs/editor/common/editorCommon'; import * as TypeConverters from './extHostTypeConverters'; -import { MainThreadEditorsShape, IResolvedTextEditorConfiguration, ITextEditorConfigurationUpdate, MainThreadTelemetryShape } from './extHost.protocol'; +import { MainThreadEditorsShape, IResolvedTextEditorConfiguration, ITextEditorConfigurationUpdate } from './extHost.protocol'; import * as vscode from 'vscode'; import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions'; import { IRange } from 'vs/editor/common/core/range'; -import { containsCommandLink } from 'vs/base/common/htmlContent'; -import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; export class TextEditorDecorationType implements vscode.TextEditorDecorationType { @@ -316,8 +314,6 @@ export class ExtHostTextEditorOptions implements vscode.TextEditorOptions { export class ExtHostTextEditor implements vscode.TextEditor { private readonly _proxy: MainThreadEditorsShape; - private readonly _telemetry: MainThreadTelemetryShape; - private readonly _extHostExtensions: ExtHostExtensionService; private readonly _id: string; private readonly _documentData: ExtHostDocumentData; @@ -328,19 +324,8 @@ export class ExtHostTextEditor implements vscode.TextEditor { get id(): string { return this._id; } - constructor( - proxy: MainThreadEditorsShape, - telemetry: MainThreadTelemetryShape, - extHostExtensions: ExtHostExtensionService, - id: string, - document: ExtHostDocumentData, - selections: Selection[], - options: IResolvedTextEditorConfiguration, - viewColumn: vscode.ViewColumn - ) { + constructor(proxy: MainThreadEditorsShape, id: string, document: ExtHostDocumentData, selections: Selection[], options: IResolvedTextEditorConfiguration, viewColumn: vscode.ViewColumn) { this._proxy = proxy; - this._telemetry = telemetry; - this._extHostExtensions = extHostExtensions; this._id = id; this._documentData = document; this._selections = selections; @@ -429,36 +414,12 @@ export class ExtHostTextEditor implements vscode.TextEditor { this._trySetSelection(); } - setDecorations(decorationType: vscode.TextEditorDecorationType, rangesOrOptions: Range[] | vscode.DecorationOptions[]): void { - - const options = TypeConverters.fromRangeOrRangeWithMessage(rangesOrOptions); - - let usesCommands = false; - for (let i = 0; i < options.length && !usesCommands; i++) { - const { hoverMessage } = options[i]; - if (Array.isArray(hoverMessage)) { - usesCommands = hoverMessage.some(containsCommandLink); - } else if (hoverMessage) { - usesCommands = containsCommandLink(hoverMessage); - } - } - if (usesCommands) { - this._extHostExtensions.getActiveExtensionFromCallstack().then(extension => { - if (!extension) { - return; - } - this._telemetry.$publicLog('MarkedString/commandLink', { - extension: extension.id, - from: 'decoration' - }); - }); - } - + setDecorations(decorationType: vscode.TextEditorDecorationType, ranges: Range[] | vscode.DecorationOptions[]): void { this._runOnProxy( () => this._proxy.$trySetDecorations( this._id, decorationType.key, - options + TypeConverters.fromRangeOrRangeWithMessage(ranges) ) ); }