do not encode request url
This commit is contained in:
parent
9b6a9dba52
commit
0cf9052553
1 changed files with 13 additions and 7 deletions
|
@ -10,7 +10,7 @@ import { isWeb } from 'vs/base/common/platform';
|
||||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||||
import { joinPath } from 'vs/base/common/resources';
|
import { joinPath } from 'vs/base/common/resources';
|
||||||
import { URI, UriComponents } from 'vs/base/common/uri';
|
import { URI, UriComponents } from 'vs/base/common/uri';
|
||||||
import { IFileService } from 'vs/platform/files/common/files';
|
import { FileOperationError, FileOperationResult, IFileService } from 'vs/platform/files/common/files';
|
||||||
import { Queue } from 'vs/base/common/async';
|
import { Queue } from 'vs/base/common/async';
|
||||||
import { VSBuffer } from 'vs/base/common/buffer';
|
import { VSBuffer } from 'vs/base/common/buffer';
|
||||||
import { asText, isSuccess, IRequestService } from 'vs/platform/request/common/request';
|
import { asText, isSuccess, IRequestService } from 'vs/platform/request/common/request';
|
||||||
|
@ -286,7 +286,7 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
|
|
||||||
async scanExtensionManifest(extensionLocation: URI): Promise<IExtensionManifest | null> {
|
async scanExtensionManifest(extensionLocation: URI): Promise<IExtensionManifest | null> {
|
||||||
const packageJSONUri = joinPath(extensionLocation, 'package.json');
|
const packageJSONUri = joinPath(extensionLocation, 'package.json');
|
||||||
const context = await this.requestService.request({ type: 'GET', url: packageJSONUri.toString() }, CancellationToken.None);
|
const context = await this.requestService.request({ type: 'GET', url: this.toRequestUrl(packageJSONUri) }, CancellationToken.None);
|
||||||
if (isSuccess(context)) {
|
if (isSuccess(context)) {
|
||||||
const content = await asText(context);
|
const content = await asText(context);
|
||||||
if (content) {
|
if (content) {
|
||||||
|
@ -375,8 +375,8 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
const packageNLSUri: URI = joinPath(extensionLocation, 'package.nls.json');
|
const packageNLSUri: URI = joinPath(extensionLocation, 'package.nls.json');
|
||||||
|
|
||||||
const [packageJSONResult, packageNLSResult] = await Promise.allSettled([
|
const [packageJSONResult, packageNLSResult] = await Promise.allSettled([
|
||||||
this.requestService.request({ type: 'GET', url: packageJSONUri.toString() }, CancellationToken.None),
|
this.requestService.request({ type: 'GET', url: this.toRequestUrl(packageJSONUri) }, CancellationToken.None),
|
||||||
this.requestService.request({ type: 'GET', url: packageNLSUri.toString() }, CancellationToken.None),
|
this.requestService.request({ type: 'GET', url: this.toRequestUrl(packageNLSUri) }, CancellationToken.None),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (packageJSONResult.status === 'rejected' || !isSuccess(packageJSONResult.value)) {
|
if (packageJSONResult.status === 'rejected' || !isSuccess(packageJSONResult.value)) {
|
||||||
|
@ -405,7 +405,7 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
}
|
}
|
||||||
|
|
||||||
private async toScannedExtension(webExtension: IWebExtension, isBuiltin: boolean): Promise<IScannedExtension> {
|
private async toScannedExtension(webExtension: IWebExtension, isBuiltin: boolean): Promise<IScannedExtension> {
|
||||||
const context = await this.requestService.request({ type: 'GET', url: joinPath(webExtension.location, 'package.json').toString() }, CancellationToken.None);
|
const context = await this.requestService.request({ type: 'GET', url: this.toRequestUrl(joinPath(webExtension.location, 'package.json')) }, CancellationToken.None);
|
||||||
if (!isSuccess(context)) {
|
if (!isSuccess(context)) {
|
||||||
throw new Error(`Error while fetching package.json for extension '${webExtension.identifier.id}'. Server returned ${context.res.statusCode}`);
|
throw new Error(`Error while fetching package.json for extension '${webExtension.identifier.id}'. Server returned ${context.res.statusCode}`);
|
||||||
}
|
}
|
||||||
|
@ -433,7 +433,7 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
|
|
||||||
private async translateManifest(manifest: IExtensionManifest, nlsURL: URI): Promise<IExtensionManifest> {
|
private async translateManifest(manifest: IExtensionManifest, nlsURL: URI): Promise<IExtensionManifest> {
|
||||||
try {
|
try {
|
||||||
const context = await this.requestService.request({ type: 'GET', url: nlsURL.toString() }, CancellationToken.None);
|
const context = await this.requestService.request({ type: 'GET', url: this.toRequestUrl(nlsURL) }, CancellationToken.None);
|
||||||
if (isSuccess(context)) {
|
if (isSuccess(context)) {
|
||||||
const content = await asText(context);
|
const content = await asText(context);
|
||||||
if (content) {
|
if (content) {
|
||||||
|
@ -487,7 +487,9 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
return webExtensions;
|
return webExtensions;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
/* Ignore */
|
/* Ignore */
|
||||||
this.logService.error(error);
|
if ((<FileOperationError>error).fileOperationResult !== FileOperationResult.FILE_NOT_FOUND) {
|
||||||
|
this.logService.error(error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
});
|
});
|
||||||
|
@ -521,6 +523,10 @@ export class WebExtensionsScannerService extends Disposable implements IWebExten
|
||||||
return resourceQueue;
|
return resourceQueue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private toRequestUrl(uri: URI): string {
|
||||||
|
return uri.toString(true /* skip encoding the uri */);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
registerSingleton(IWebExtensionsScannerService, WebExtensionsScannerService);
|
registerSingleton(IWebExtensionsScannerService, WebExtensionsScannerService);
|
||||||
|
|
Loading…
Reference in a new issue