mirror of
https://github.com/coder/code-server.git
synced 2024-12-27 03:34:06 +03:00
9955cd91a4
Mostly just the usual shifting or changing of the surrounding context but I did refactor the getting started block we insert because it keeps getting mangled on each update. Instead of shifting things around the columns I just prepend it to the right column. Getting 404s on some vsda module but everything seems to work without it and I do not see it referenced in the package.json nor a nywhere on npmjs.com so it seems to be optional.
89 lines
4.6 KiB
Diff
89 lines
4.6 KiB
Diff
Add Open VSX default and an env var for marketplace, fix old marketplace
|
|
|
|
Our old marketplace only supports `serviceUrl` but this causes the marketplace
|
|
to be disabled entirely so this moves the template var check to fix that.
|
|
|
|
This also removes serverRootPath from the web extension route because that will
|
|
include the commit. When you update code-server (including this update) the web
|
|
extension will continue using the old path since it is stored in the browser but
|
|
the path will 404 because the commit no longer matches. This change is only to
|
|
support current installations though because this patch also removes the
|
|
in-between and has web extensions install directly from the marketplace.
|
|
|
|
This can be tested by setting EXTENSIONS_GALLERY set to:
|
|
|
|
'{"serviceUrl": "https://extensions.coder.com/api"}'
|
|
|
|
|
|
Index: code-server/lib/vscode/src/vs/platform/product/common/product.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/platform/product/common/product.ts
|
|
+++ code-server/lib/vscode/src/vs/platform/product/common/product.ts
|
|
@@ -47,6 +47,16 @@ else if (globalThis._VSCODE_PRODUCT_JSON
|
|
version: pkg.version
|
|
});
|
|
}
|
|
+
|
|
+ Object.assign(product, {
|
|
+ extensionsGallery: env.EXTENSIONS_GALLERY ? JSON.parse(env.EXTENSIONS_GALLERY) : (product.extensionsGallery || {
|
|
+ serviceUrl: "https://open-vsx.org/vscode/gallery",
|
|
+ itemUrl: "https://open-vsx.org/vscode/item",
|
|
+ resourceUrlTemplate: "https://open-vsx.org/vscode/asset/{publisher}/{name}/{version}/Microsoft.VisualStudio.Code.WebResources/{path}",
|
|
+ controlUrl: "",
|
|
+ recommendationsUrl: "",
|
|
+ })
|
|
+ });
|
|
}
|
|
|
|
// Web environment or unknown
|
|
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
@@ -111,7 +111,7 @@ export class WebClientServer {
|
|
const serverRootPath = getRemoteServerRootPath(_productService);
|
|
this._staticRoute = `${serverRootPath}/static`;
|
|
this._callbackRoute = `${serverRootPath}/callback`;
|
|
- this._webExtensionRoute = `${serverRootPath}/web-extension-resource`;
|
|
+ this._webExtensionRoute = `/web-extension-resource`;
|
|
}
|
|
|
|
/**
|
|
@@ -304,14 +304,7 @@ export class WebClientServer {
|
|
codeServerVersion: this._productService.codeServerVersion,
|
|
rootEndpoint: base,
|
|
embedderIdentifier: 'server-distro',
|
|
- extensionsGallery: this._webExtensionResourceUrlTemplate ? {
|
|
- ...this._productService.extensionsGallery,
|
|
- 'resourceUrlTemplate': this._webExtensionResourceUrlTemplate.with({
|
|
- scheme: 'http',
|
|
- authority: remoteAuthority,
|
|
- path: `${this._webExtensionRoute}/${this._webExtensionResourceUrlTemplate.authority}${this._webExtensionResourceUrlTemplate.path}`
|
|
- }).toString(true)
|
|
- } : undefined
|
|
+ extensionsGallery: this._productService.extensionsGallery,
|
|
};
|
|
|
|
if (!this._environmentService.isBuilt) {
|
|
Index: code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
+++ code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
@@ -16,7 +16,6 @@ import { getServiceMachineId } from 'vs/
|
|
import { IStorageService } from 'vs/platform/storage/common/storage';
|
|
import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry';
|
|
import { getTelemetryLevel, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
|
|
-import { getRemoteServerRootPath } from 'vs/platform/remote/common/remoteHosts';
|
|
import { TargetPlatform } from 'vs/platform/extensions/common/extensions';
|
|
|
|
const WEB_EXTENSION_RESOURCE_END_POINT = 'web-extension-resource';
|
|
@@ -77,7 +76,7 @@ export abstract class AbstractExtensionR
|
|
private readonly _environmentService: IEnvironmentService,
|
|
private readonly _configurationService: IConfigurationService,
|
|
) {
|
|
- this._webExtensionResourceEndPoint = `${getRemoteServerRootPath(_productService)}/${WEB_EXTENSION_RESOURCE_END_POINT}/`;
|
|
+ this._webExtensionResourceEndPoint = `/${WEB_EXTENSION_RESOURCE_END_POINT}/`;
|
|
if (_productService.extensionsGallery) {
|
|
this._extensionGalleryResourceUrlTemplate = _productService.extensionsGallery.resourceUrlTemplate;
|
|
this._extensionGalleryAuthority = this._extensionGalleryResourceUrlTemplate ? this._getExtensionGalleryAuthority(URI.parse(this._extensionGalleryResourceUrlTemplate)) : undefined;
|