diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 1a23414798db..ee48fc9392b7 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -67,7 +67,6 @@ import { WorkbenchModeServiceImpl } from 'vs/workbench/services/mode/common/work import { IModeService } from 'vs/editor/common/services/modeService'; import { IUntitledEditorService, UntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; import { ICrashReporterService, NullCrashReporterService, CrashReporterService } from 'vs/workbench/services/crashReporter/electron-browser/crashReporterService'; -import { NodeCachedDataManager } from 'vs/workbench/electron-browser/nodeCachedDataManager'; import { getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; import { connect as connectNet } from 'vs/base/parts/ipc/node/ipc.net'; import { IExtensionManagementChannel, ExtensionManagementChannelClient } from 'vs/platform/extensionManagement/common/extensionManagementIpc'; @@ -253,11 +252,7 @@ export class WorkbenchShell { this.messageService.show(Severity.Warning, nls.localize('runningAsRoot', "It is recommended not to run Code as 'root'.")); } - // Start cached data manager - instantiationService.createInstance(NodeCachedDataManager); - - // Set lifecycle phase to `Runnning` so that other contributions - // can now do something + // Set lifecycle phase to `Runnning` so that other contributions can now do something this.lifecycleService.phase = LifecyclePhase.Running; } diff --git a/src/vs/workbench/parts/cache/node/cache.contribution.ts b/src/vs/workbench/parts/cache/node/cache.contribution.ts new file mode 100644 index 000000000000..cfff67d93ed2 --- /dev/null +++ b/src/vs/workbench/parts/cache/node/cache.contribution.ts @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +'use strict'; + +import { Registry } from 'vs/platform/registry/common/platform'; +import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; +import { NodeCachedDataManager } from 'vs/workbench/parts/cache/node/nodeCachedDataManager'; +import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle'; + +// Register NodeCachedDataManager Contribution +Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(NodeCachedDataManager, LifecyclePhase.Running); \ No newline at end of file diff --git a/src/vs/workbench/electron-browser/nodeCachedDataManager.ts b/src/vs/workbench/parts/cache/node/nodeCachedDataManager.ts similarity index 89% rename from src/vs/workbench/electron-browser/nodeCachedDataManager.ts rename to src/vs/workbench/parts/cache/node/nodeCachedDataManager.ts index 5f5ac8e12d74..8df27a049fd2 100644 --- a/src/vs/workbench/electron-browser/nodeCachedDataManager.ts +++ b/src/vs/workbench/parts/cache/node/nodeCachedDataManager.ts @@ -6,21 +6,26 @@ import { basename } from 'path'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; +import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; declare type OnNodeCachedDataArgs = [{ errorCode: string, path: string, detail?: string }, { path: string, length: number }]; declare const MonacoEnvironment: { onNodeCachedData: OnNodeCachedDataArgs[] }; -export class NodeCachedDataManager { +export class NodeCachedDataManager implements IWorkbenchContribution { private readonly _telemetryService: ITelemetryService; constructor( - @ITelemetryService telemetryService: ITelemetryService, + @ITelemetryService telemetryService: ITelemetryService ) { this._telemetryService = telemetryService; this._handleCachedDataInfo(); } + public getId(): string { + return 'vs.cache.nodeCachedDataManager'; + } + private _handleCachedDataInfo(): void { let didRejectCachedData = false; diff --git a/src/vs/workbench/parts/stats/node/stats.contribution.ts b/src/vs/workbench/parts/stats/node/stats.contribution.ts index 973f0a65d563..7b38d263cb9a 100644 --- a/src/vs/workbench/parts/stats/node/stats.contribution.ts +++ b/src/vs/workbench/parts/stats/node/stats.contribution.ts @@ -7,8 +7,8 @@ import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; -import { WorkspaceStatsReporter } from 'vs/workbench/parts/stats/node/workspaceStats'; +import { WorkspaceStats } from 'vs/workbench/parts/stats/node/workspaceStats'; import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle'; // Register Workspace Stats Contribution -Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(WorkspaceStatsReporter, LifecyclePhase.Running); \ No newline at end of file +Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(WorkspaceStats, LifecyclePhase.Running); \ No newline at end of file diff --git a/src/vs/workbench/parts/stats/node/workspaceStats.ts b/src/vs/workbench/parts/stats/node/workspaceStats.ts index d77c076250b6..adaff06828e0 100644 --- a/src/vs/workbench/parts/stats/node/workspaceStats.ts +++ b/src/vs/workbench/parts/stats/node/workspaceStats.ts @@ -15,7 +15,6 @@ import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/ import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IWindowConfiguration, IWindowService } from 'vs/platform/windows/common/windows'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; const SshProtocolMatcher = /^([^@:]+@)?([^:]+):/; const SshUrlMatcher = /^([^@:]+@)?([^:]+):(.+)$/; @@ -133,13 +132,20 @@ export function getHashedRemotes(text: string): string[] { }); } -class WorkspaceStats { +export class WorkspaceStats implements IWorkbenchContribution { constructor( @IFileService private fileService: IFileService, @IWorkspaceContextService private contextService: IWorkspaceContextService, @ITelemetryService private telemetryService: ITelemetryService, - @IEnvironmentService private environmentService: IEnvironmentService + @IEnvironmentService private environmentService: IEnvironmentService, + @IWindowService windowService: IWindowService ) { + this.reportWorkspaceTags(windowService.getConfiguration()); + this.reportCloudStats(); + } + + public getId(): string { + return 'vs.stats.workspaceStatsReporter'; } private searchArray(arr: string[], regEx: RegExp): boolean { @@ -415,25 +421,4 @@ class WorkspaceStats { this.reportAzure(uris); } } -} - -// Telemetry: workspace tags -export class WorkspaceStatsReporter implements IWorkbenchContribution { - - constructor( - @IInstantiationService private instantiationService: IInstantiationService, - @IWindowService private windowService: IWindowService - ) { - this.reportWorkspaceStats(); - } - - public getId(): string { - return 'vs.backup.backupModelTracker'; - } - - private reportWorkspaceStats(): void { - const workspaceStats: WorkspaceStats = this.instantiationService.createInstance(WorkspaceStats); - workspaceStats.reportWorkspaceTags(this.windowService.getConfiguration()); - workspaceStats.reportCloudStats(); - } } \ No newline at end of file diff --git a/src/vs/workbench/workbench.main.ts b/src/vs/workbench/workbench.main.ts index 91c1568b2163..260fcc017931 100644 --- a/src/vs/workbench/workbench.main.ts +++ b/src/vs/workbench/workbench.main.ts @@ -43,6 +43,7 @@ import 'vs/workbench/parts/files/browser/files.contribution'; import 'vs/workbench/parts/backup/common/backup.contribution'; import 'vs/workbench/parts/stats/node/stats.contribution'; +import 'vs/workbench/parts/cache/node/cache.contribution'; import 'vs/workbench/parts/search/browser/search.contribution'; import 'vs/workbench/parts/search/browser/searchViewlet'; // can be packaged separately