src/vs/platform/backup/electron-main/backupMainService.ts/BackupMainService/initialize
class BackupMainService:	async initialize(): Promise<void> {
		let backups: IBackupWorkspacesFormat;
		try {
			backups = JSON.parse(await Promises.readFile(this.workspacesJsonPath, 'utf8')); // invalid JSON or permission issue can happen here
		} catch (error) {
			backups = Object.create(null);
		}

		// validate empty workspaces backups first
		this.emptyWindows = await this.validateEmptyWorkspaces(backups.emptyWorkspaceInfos);

		// read workspace backups
		let rootWorkspaces: IWorkspaceBackupInfo[] = [];
		try {
			if (Array.isArray(backups.rootURIWorkspaces)) {
				rootWorkspaces = backups.rootURIWorkspaces.map(workspace => ({
					workspace: { id: workspace.id, configPath: URI.parse(workspace.configURIPath) },
					remoteAuthority: workspace.remoteAuthority
				}));
			}
		} catch (e) {
			// ignore URI parsing exceptions
		}

		// validate workspace backups
		this.workspaces = await this.validateWorkspaces(rootWorkspaces);

		// read folder backups
		let workspaceFolders: URI[] = [];
		try {
			if (Array.isArray(backups.folderURIWorkspaces)) {
				workspaceFolders = backups.folderURIWorkspaces.map(folder => URI.parse(folder));
			}
		} catch (e) {
			// ignore URI parsing exceptions
		}

		// validate folder backups
		this.folders = await this.validateFolders(workspaceFolders);

		// save again in case some workspaces or folders have been removed
		await this.save();
	}