src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.ts/StartupPageContribution/run
class StartupPageContribution:	private async run() {

		// Always open Welcome page for first-launch, no matter what is open or which startupEditor is set.
		if (
			this.productService.enableTelemetry
			&& this.productService.showTelemetryOptOut
			&& getTelemetryLevel(this.configurationService) !== TelemetryLevel.NONE
			&& !this.environmentService.skipWelcome
			&& !this.storageService.get(telemetryOptOutStorageKey, StorageScope.GLOBAL)
		) {
			this.storageService.store(telemetryOptOutStorageKey, true, StorageScope.GLOBAL, StorageTarget.USER);
			await this.openGettingStarted(true);
			return;
		}

		if (this.tryOpenWalkthroughForFolder()) {
			return;
		}

		const enabled = isStartupPageEnabled(this.configurationService, this.contextService, this.environmentService);
		if (enabled && this.lifecycleService.startupKind !== StartupKind.ReloadedWindow) {
			const hasBackups = await this.workingCopyBackupService.hasBackups();
			if (hasBackups) { return; }

			// Open the welcome even if we opened a set of default editors
			if (!this.editorService.activeEditor || this.layoutService.openedDefaultEditors) {
				const startupEditorSetting = this.configurationService.inspect<string>(configurationKey);

				// 'readme' should not be set in workspace settings to prevent tracking,
				// but it can be set as a default (as in codespaces) or a user setting
				const openWithReadme = startupEditorSetting.value === 'readme' &&
					(startupEditorSetting.userValue === 'readme' || startupEditorSetting.defaultValue === 'readme');

				if (openWithReadme) {
					await this.openReadme();
				} else {
					await this.openGettingStarted();
				}
			}
		}
	}