فهرست منبع

fix: add property to disable extra connection (#2335)

Baptiste Augrain 1 ماه پیش
والد
کامیت
68a4e26ded
3فایلهای تغییر یافته به همراه52 افزوده شده و 15 حذف شده
  1. 11 10
      patches/feat-announcements.patch
  2. 27 0
      patches/feat-ext-unsafe.patch
  3. 14 5
      patches/version-1-update.patch

+ 11 - 10
patches/feat-announcements.patch

@@ -1,21 +1,22 @@
 diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
-index c581ac0..f11c0f0 100644
+index e025130..f42db8d 100644
 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
 +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
-@@ -319,2 +319,8 @@ configurationRegistry.registerConfiguration({
+@@ -343,2 +343,9 @@ configurationRegistry.registerConfiguration({
  		},
 +		'workbench.welcomePage.extraAnnouncements': {
 +			scope: ConfigurationScope.MACHINE,
 +			type: 'boolean',
 +			default: true,
-+			description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from !!APP_NAME!!'s repository.")
++			description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from !!APP_NAME!!'s repository."),
++			tags: ['usesOnlineServices']
 +		},
  		'workbench.startupEditor': {
 diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
-index 664c55b..43f9e2e 100644
+index 01778b2..615828d 100644
 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
 +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
-@@ -113,4 +113,8 @@ type GettingStartedActionEvent = {
+@@ -117,4 +117,8 @@ type GettingStartedActionEvent = {
  type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
 +type AnnouncementEntry = { id: string, title: string, url: string };
  
@@ -24,26 +25,26 @@ index 664c55b..43f9e2e 100644
 +const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
 +
  export class GettingStartedPage extends EditorPane {
-@@ -149,2 +153,4 @@ export class GettingStartedPage extends EditorPane {
+@@ -154,2 +158,4 @@ export class GettingStartedPage extends EditorPane {
  	private gettingStartedList?: GettingStartedIndexList<IResolvedWalkthrough>;
 +	private announcementList?: GettingStartedIndexList<AnnouncementEntry>;
 +	private announcementData?: AnnouncementEntry[];
  
-@@ -812,2 +818,3 @@ export class GettingStartedPage extends EditorPane {
+@@ -880,2 +886,3 @@ export class GettingStartedPage extends EditorPane {
  		const gettingStartedList = this.buildGettingStartedWalkthroughsList();
 +		const announcementList = await this.buildAnnouncementList();
  
-@@ -822,3 +829,3 @@ export class GettingStartedPage extends EditorPane {
+@@ -890,3 +897,3 @@ export class GettingStartedPage extends EditorPane {
  				this.container.classList.remove('noWalkthroughs');
 -				reset(rightColumn, gettingStartedList.getDomElement());
 +				reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
  			}
-@@ -826,3 +833,3 @@ export class GettingStartedPage extends EditorPane {
+@@ -894,3 +901,3 @@ export class GettingStartedPage extends EditorPane {
  				this.container.classList.add('noWalkthroughs');
 -				reset(rightColumn);
 +				reset(rightColumn, announcementList.getDomElement());
  			}
-@@ -978,2 +985,55 @@ export class GettingStartedPage extends EditorPane {
+@@ -1047,2 +1054,55 @@ export class GettingStartedPage extends EditorPane {
  
 +	private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
 +		const renderAnnouncement = (announcement: AnnouncementEntry) => {

+ 27 - 0
patches/feat-ext-unsafe.patch

@@ -0,0 +1,27 @@
+diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
+index 5974768..876f779 100644
+--- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
++++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
+@@ -1788,2 +1788,8 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle
+ 
++		const excludeUnsafes = this.configurationService.getValue('extensions.excludeUnsafes') ?? true;
++
++		if (!excludeUnsafes) {
++			return { malicious: [], deprecated: {}, search: [] };
++		}
++
+ 		const context = await this.requestService.request({
+diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
+index 4c44d3b..fe989e0 100644
+--- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
++++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
+@@ -294,2 +294,9 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
+ 			},
++			'extensions.excludeUnsafes': {
++				scope: ConfigurationScope.MACHINE,
++				type: 'boolean',
++				default: true,
++				description: localize('extensionsExcludeUnsafes', "When enabled, it will download and cache the list of malicious and deprecated extensions. It's recommended to leave it enabled."),
++				tags: ['usesOnlineServices']
++			},
+ 		}

+ 14 - 5
patches/version-1-update.patch

@@ -67,7 +67,7 @@ index a1ec3fe..f954720 100644
 +	}
  }
 diff --git a/src/vs/platform/update/electron-main/updateService.darwin.ts b/src/vs/platform/update/electron-main/updateService.darwin.ts
-index 57398fb..a65965e 100644
+index 57398fb..fddd521 100644
 --- a/src/vs/platform/update/electron-main/updateService.darwin.ts
 +++ b/src/vs/platform/update/electron-main/updateService.darwin.ts
 @@ -15,3 +15,3 @@ import { ILogService } from '../../log/common/log.js';
@@ -80,7 +80,7 @@ index 57398fb..a65965e 100644
 +import { CancellationToken } from '../../../base/common/cancellation.js';
 +import * as semver from 'semver';
  
-@@ -76,9 +78,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
+@@ -76,17 +78,3 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
  	protected buildUpdateFeedUrl(quality: string): string | undefined {
 -		let assetID: string;
 -		if (!this.productService.darwinUniversalAssetId) {
@@ -89,9 +89,17 @@ index 57398fb..a65965e 100644
 -			assetID = this.productService.darwinUniversalAssetId;
 -		}
 -		const url = createUpdateURL(assetID, quality, this.productService);
-+		const url = createUpdateURL(this.productService, quality, process.platform, process.arch);
- 		try {
-@@ -94,4 +90,35 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
+-		try {
+-			electron.autoUpdater.setFeedURL({ url });
+-		} catch (e) {
+-			// application is very likely not signed
+-			this.logService.error('Failed to set update feed URL', e);
+-			return undefined;
+-		}
+-		return url;
++		return createUpdateURL(this.productService, quality, process.platform, process.arch);
+ 	}
+@@ -94,4 +82,36 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau
  	protected doCheckForUpdates(context: any): void {
 +		if (!this.url) {
 +			return;
@@ -116,6 +124,7 @@ index 57398fb..a65965e 100644
 +					this.setState(State.Idle(UpdateType.Setup));
 +				}
 +				else {
++					electron.autoUpdater.setFeedURL({ url: this.url as string });
 +					electron.autoUpdater.checkForUpdates();
 +				}
 +