Skip to content

Commit 16ff0ce

Browse files
committed
Disable syncing extensions in Web
1 parent 26f6d2b commit 16ff0ce

5 files changed

Lines changed: 42 additions & 4 deletions

File tree

src/vs/platform/userDataSync/common/userDataSyncResourceEnablementService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class UserDataSyncResourceEnablementService extends Disposable implements
3232
}
3333

3434
isResourceEnabled(resource: SyncResource): boolean {
35-
return this.storageService.getBoolean(getEnablementKey(resource), StorageScope.GLOBAL, true);
35+
return this.storageService.getBoolean(getEnablementKey(resource), StorageScope.GLOBAL, this.getDefaultResourceEnablementValue(resource));
3636
}
3737

3838
setResourceEnablement(resource: SyncResource, enabled: boolean): void {
@@ -53,4 +53,8 @@ export class UserDataSyncResourceEnablementService extends Disposable implements
5353
}
5454
}
5555

56+
protected getDefaultResourceEnablementValue(resource: SyncResource): boolean {
57+
return true;
58+
}
59+
5660
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { IUserDataSyncResourceEnablementService, SyncResource } from 'vs/platform/userDataSync/common/userDataSync';
7+
import { IStorageService } from 'vs/platform/storage/common/storage';
8+
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
9+
import { UserDataSyncResourceEnablementService } from 'vs/platform/userDataSync/common/userDataSyncResourceEnablementService';
10+
import { IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
11+
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
12+
13+
export class WebUserDataSyncResourceEnablementService extends UserDataSyncResourceEnablementService implements IUserDataSyncResourceEnablementService {
14+
15+
constructor(
16+
@IStorageService storageService: IStorageService,
17+
@ITelemetryService telemetryService: ITelemetryService,
18+
@IExtensionManagementServerService private readonly extensionManagementServerService: IExtensionManagementServerService,
19+
) {
20+
super(storageService, telemetryService);
21+
}
22+
23+
protected getDefaultResourceEnablementValue(resource: SyncResource): boolean {
24+
if (resource === SyncResource.Extensions) {
25+
// In Web, disable syncing extensions by default when there is a remote server
26+
return !this.extensionManagementServerService.remoteExtensionManagementServer;
27+
}
28+
return super.getDefaultResourceEnablementValue(resource);
29+
}
30+
31+
}
32+
33+
registerSingleton(IUserDataSyncResourceEnablementService, WebUserDataSyncResourceEnablementService);

src/vs/workbench/workbench.common.main.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,7 @@ import { IDownloadService } from 'vs/platform/download/common/download';
112112
import { DownloadService } from 'vs/platform/download/common/downloadService';
113113
import { OpenerService } from 'vs/editor/browser/services/openerService';
114114
import { IOpenerService } from 'vs/platform/opener/common/opener';
115-
import { IUserDataSyncResourceEnablementService } from 'vs/platform/userDataSync/common/userDataSync';
116-
import { UserDataSyncResourceEnablementService } from 'vs/platform/userDataSync/common/userDataSyncResourceEnablementService';
117115

118-
registerSingleton(IUserDataSyncResourceEnablementService, UserDataSyncResourceEnablementService);
119116
registerSingleton(IGlobalExtensionEnablementService, GlobalExtensionEnablementService);
120117
registerSingleton(IExtensionGalleryService, ExtensionGalleryService, true);
121118
registerSingleton(IContextViewService, ContextViewService, true);

src/vs/workbench/workbench.desktop.main.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,12 @@ import { KeytarCredentialsService } from 'vs/platform/credentials/node/credentia
6262
import { ITunnelService } from 'vs/platform/remote/common/tunnel';
6363
import { TunnelService } from 'vs/platform/remote/node/tunnelService';
6464
import { IUserDataInitializationService, UserDataInitializationService } from 'vs/workbench/services/userData/browser/userDataInit';
65+
import { IUserDataSyncResourceEnablementService } from 'vs/platform/userDataSync/common/userDataSync';
66+
import { UserDataSyncResourceEnablementService } from 'vs/platform/userDataSync/common/userDataSyncResourceEnablementService';
6567

6668
registerSingleton(ICredentialsService, KeytarCredentialsService, true);
6769
registerSingleton(ITunnelService, TunnelService);
70+
registerSingleton(IUserDataSyncResourceEnablementService, UserDataSyncResourceEnablementService);
6871
registerSingleton(IUserDataInitializationService, UserDataInitializationService);
6972

7073
//#endregion

src/vs/workbench/workbench.web.main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import 'vs/workbench/services/clipboard/browser/clipboardService';
5151
import 'vs/workbench/services/extensionResourceLoader/browser/extensionResourceLoaderService';
5252
import 'vs/workbench/services/path/browser/pathService';
5353
import 'vs/workbench/services/themes/browser/browserHostColorSchemeService';
54+
import 'vs/workbench/services/userDataSync/browser/userDataSyncResourceEnablementService';
5455

5556
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
5657
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';

0 commit comments

Comments
 (0)