|
3 | 3 | * Licensed under the MIT License. See License.txt in the project root for license information. |
4 | 4 | *--------------------------------------------------------------------------------------------*/ |
5 | 5 |
|
6 | | -import { ExtensionType, IExtensionIdentifier, IExtensionManifest } from 'vs/platform/extensions/common/extensions'; |
| 6 | +import { ExtensionType, IExtensionIdentifier, IExtensionManifest, IExtension } from 'vs/platform/extensions/common/extensions'; |
7 | 7 | import { IExtensionManagementService, ILocalExtension, InstallExtensionEvent, DidInstallExtensionEvent, DidUninstallExtensionEvent, IGalleryExtension, IReportedExtension, IGalleryMetadata } from 'vs/platform/extensionManagement/common/extensionManagement'; |
8 | | -import builtinExtensions from 'vs/platform/extensions/common/builtinExtensions'; |
9 | 8 | import { Event } from 'vs/base/common/event'; |
10 | 9 | import { URI } from 'vs/base/common/uri'; |
11 | 10 | import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; |
| 11 | +import { isWeb } from 'vs/base/common/platform'; |
| 12 | + |
| 13 | +let builtinExtensions: IExtension[] = []; |
| 14 | + |
| 15 | +// Web |
| 16 | +if (isWeb) { |
| 17 | + |
| 18 | + // Running out of sources |
| 19 | + if (Object.keys(builtinExtensions).length === 0) { |
| 20 | + // Find builtin extensions by checking for DOM |
| 21 | + const builtinExtensionsElement = document.getElementById('vscode-workbench-builtin-extensions'); |
| 22 | + const builtinExtensionsElementAttribute = builtinExtensionsElement ? builtinExtensionsElement.getAttribute('data-settings') : undefined; |
| 23 | + if (builtinExtensionsElementAttribute) { |
| 24 | + try { |
| 25 | + builtinExtensions = JSON.parse(builtinExtensionsElementAttribute); |
| 26 | + } catch (error) { /* ignore error*/ } |
| 27 | + } |
| 28 | + } |
| 29 | +} |
| 30 | + |
| 31 | +// Unknown |
| 32 | +else { |
| 33 | + throw new Error('Unable to resolve builtin extensions'); |
| 34 | +} |
| 35 | + |
| 36 | +builtinExtensions = builtinExtensions.map(extension => ({ |
| 37 | + ...extension, |
| 38 | + location: URI.revive(extension.location), |
| 39 | + readmeUrl: URI.revive(extension.readmeUrl), |
| 40 | + changelogUrl: URI.revive(extension.changelogUrl), |
| 41 | +})); |
12 | 42 |
|
13 | 43 | export class WebExtensionManagementService implements IExtensionManagementService { |
14 | 44 |
|
|
0 commit comments