Skip to content

Commit

Permalink
add web only in web while inferring
Browse files Browse the repository at this point in the history
  • Loading branch information
sandy081 committed Sep 22, 2021
1 parent fad4a5f commit 575477f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { WORKSPACE_TRUST_EXTENSION_SUPPORT } from 'vs/workbench/services/workspa
import { isBoolean } from 'vs/base/common/types';
import { IWorkspaceTrustEnablementService } from 'vs/platform/workspace/common/workspaceTrust';
import { ILogService } from 'vs/platform/log/common/log';
import { isWeb } from 'vs/base/common/platform';

export const IExtensionManifestPropertiesService = createDecorator<IExtensionManifestPropertiesService>('extensionManifestPropertiesService');

Expand Down Expand Up @@ -221,7 +222,7 @@ export class ExtensionManifestPropertiesService extends Disposable implements IE
// Not an UI extension if it has main
if (manifest.main) {
if (manifest.browser) {
return ['workspace', 'web'];
return isWeb ? ['workspace', 'web'] : ['workspace'];
}
return ['workspace'];
}
Expand All @@ -232,9 +233,9 @@ export class ExtensionManifestPropertiesService extends Disposable implements IE

let result = [...ALL_EXTENSION_KINDS];

// Extension pack defaults to workspace, web extensionKind
if (isNonEmptyArray(manifest.extensionPack) || isNonEmptyArray(manifest.extensionDependencies)) {
result = ['workspace', 'web'];
// Extension pack defaults to [workspace, web] in web and only [workspace] in desktop
result = isWeb ? ['workspace', 'web'] : ['workspace'];
}

if (manifest.contributes) {
Expand Down Expand Up @@ -270,7 +271,8 @@ export class ExtensionManifestPropertiesService extends Disposable implements IE
return extensionPointExtensionKind;
}

return ['workspace', 'web'] /* Unknown extension point => workspace, web */;
/* Unknown extension point */
return isWeb ? ['workspace', 'web'] : ['workspace'];
}

private getConfiguredExtensionKind(manifest: IExtensionManifest): (ExtensionKind | '-web')[] | null {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ suite('ExtensionManifestPropertiesService - ExtensionKind', () => {
let testObject = new ExtensionManifestPropertiesService(TestProductService, new TestConfigurationService(), new TestWorkspaceTrustEnablementService(), new NullLogService());

test('declarative with extension dependencies', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionDependencies: ['ext1'] }), ['workspace', 'web']);
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionDependencies: ['ext1'] }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('declarative extension pack', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'] }), ['workspace', 'web']);
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'] }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('declarative extension pack and extension dependencies', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'], extensionDependencies: ['ext1', 'ext2'] }), ['workspace', 'web']);
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'], extensionDependencies: ['ext1', 'ext2'] }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('declarative with unknown contribution point => workspace, web', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ contributes: <any>{ 'unknownPoint': { something: true } } }), ['workspace', 'web']);
test('declarative with unknown contribution point => workspace, web in web and => workspace in desktop', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ contributes: <any>{ 'unknownPoint': { something: true } } }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('declarative extension pack with unknown contribution point', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'], contributes: <any>{ 'unknownPoint': { something: true } } }), ['workspace', 'web']);
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ extensionPack: ['ext1', 'ext2'], contributes: <any>{ 'unknownPoint': { something: true } } }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('simple declarative => ui, workspace, web', () => {
Expand All @@ -52,12 +52,12 @@ suite('ExtensionManifestPropertiesService - ExtensionKind', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ main: 'main.js' }), ['workspace']);
});

test('main and browser => workspace, web', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ main: 'main.js', browser: 'main.browser.js' }), ['workspace', 'web']);
test('main and browser => workspace, web in web and workspace in desktop', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ main: 'main.js', browser: 'main.browser.js' }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('browser entry point with workspace extensionKind => workspace, web', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ main: 'main.js', browser: 'main.browser.js', extensionKind: ['workspace'] }), ['workspace', 'web']);
test('browser entry point with workspace extensionKind => workspace, web in web and workspace in desktop', () => {
assert.deepStrictEqual(testObject.getExtensionKind(<IExtensionManifest>{ main: 'main.js', browser: 'main.browser.js', extensionKind: ['workspace'] }), isWeb ? ['workspace', 'web'] : ['workspace']);
});

test('only browser entry point with out extensionKind => web', () => {
Expand Down

0 comments on commit 575477f

Please sign in to comment.