mirror of
https://github.com/coder/code-server.git
synced 2024-12-27 19:56:57 +03:00
34c6751bf8
* Update VS Code to 1.92.2 * Use server-main.js to load VS Code It looks like the bootstrap files are now bundled so we can no longer require them. We could make them included again, but maybe it is better to go through the main entrypoint anyway because it includes some nls stuff which is maybe necessary. This also fixes what looks like a bug where we could create two servers if two requests came in. I am not sure what the practical consequences of that would be, but it will no longer do that. * Drop es2020 patch Unfortunately, VS Code will not load with this. It seems to be because `this` is being used in static properties, and it becomes `void 0` for some reason under the es2020 target. For example: static PREFIX_BY_CATEGORY = `${this.PREFIX}${this.SCOPE_PREFIX}`; becomes AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY = `${(void 0).PREFIX}${(void 0).SCOPE_PREFIX}`; Which, obviously, will not work. Older versions of Safari (and maybe other browsers) are likely affected. * Fix display language * Update Playwright I think maybe because of the dropped es2020 patch that Webkit is now failing because it is too old. * Do not wait for networkidle in e2e tests I am not sure what is going on but some tests on Webkit are timing out and it seems the page is loaded but something is still trying to download. Not good, but for now try to at least get the tests passing.
108 lines
5.1 KiB
Diff
108 lines
5.1 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://my-extensions/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
|
|
@@ -113,7 +113,7 @@ export class WebClientServer {
|
|
|
|
this._staticRoute = `${serverRootPath}/static`;
|
|
this._callbackRoute = `${serverRootPath}/callback`;
|
|
- this._webExtensionRoute = `${serverRootPath}/web-extension-resource`;
|
|
+ this._webExtensionRoute = `/web-extension-resource`;
|
|
}
|
|
|
|
/**
|
|
@@ -311,14 +311,7 @@ export class WebClientServer {
|
|
codeServerVersion: this._productService.codeServerVersion,
|
|
rootEndpoint: base,
|
|
embedderIdentifier: 'server-distro',
|
|
- extensionsGallery: this._webExtensionResourceUrlTemplate && this._productService.extensionsGallery ? {
|
|
- ...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,
|
|
} satisfies Partial<IProductConfiguration>;
|
|
|
|
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
|
|
@@ -15,7 +15,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 { RemoteAuthorities } from 'vs/base/common/network';
|
|
import { TargetPlatform } from 'vs/platform/extensions/common/extensions';
|
|
|
|
const WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT = '/web-extension-resource/';
|
|
@@ -140,9 +139,9 @@ export abstract class AbstractExtensionR
|
|
}
|
|
|
|
protected _isWebExtensionResourceEndPoint(uri: URI): boolean {
|
|
- const uriPath = uri.path, serverRootPath = RemoteAuthorities.getServerRootPath();
|
|
- // test if the path starts with the server root path followed by the web extension resource end point segment
|
|
- return uriPath.startsWith(serverRootPath) && uriPath.startsWith(WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT, serverRootPath.length);
|
|
+ const uriPath = uri.path;
|
|
+ // test if the path starts with the web extension resource end point segment
|
|
+ return uriPath.startsWith(WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT);
|
|
}
|
|
|
|
}
|
|
Index: code-server/lib/vscode/src/vs/platform/extensionManagement/node/extensionDownloader.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/platform/extensionManagement/node/extensionDownloader.ts
|
|
+++ code-server/lib/vscode/src/vs/platform/extensionManagement/node/extensionDownloader.ts
|
|
@@ -114,7 +114,10 @@ export class ExtensionsDownloader extend
|
|
return false;
|
|
}
|
|
|
|
+ return false
|
|
+ // @ts-expect-error
|
|
const value = this.configurationService.getValue('extensions.verifySignature');
|
|
+ // @ts-expect-error
|
|
return isBoolean(value) ? value : true;
|
|
}
|
|
|