From f72e3f87b6858b2d1bb594e0a90b36e107ef994c Mon Sep 17 00:00:00 2001 From: Olivier Benz Date: Fri, 4 Oct 2024 07:02:55 +0200 Subject: [PATCH] Update Code to 1.94.0 - Fixes https://github.com/coder/code-server/issues/7018 --- .node-version | 2 +- lib/vscode | 2 +- patches/clipboard.diff | 16 ++--- patches/disable-builtin-ext-update.diff | 2 +- patches/display-language.diff | 93 +++++++++---------------- patches/external-file-actions.diff | 84 +++++++++++----------- patches/getting-started.diff | 48 ++++++------- patches/integration.diff | 28 ++++---- patches/logout.diff | 2 +- patches/marketplace.diff | 27 ++----- patches/proxy-uri.diff | 22 +++--- patches/sourcemaps.diff | 6 +- patches/store-socket.diff | 31 ++++----- patches/telemetry.diff | 22 +++--- patches/unique-db.diff | 8 +-- patches/update-check.diff | 4 +- 16 files changed, 179 insertions(+), 218 deletions(-) diff --git a/.node-version b/.node-version index b8e593f52..8ce703082 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -20.15.1 +20.16.0 diff --git a/lib/vscode b/lib/vscode index 38c31bc77..d78a74bcd 160000 --- a/lib/vscode +++ b/lib/vscode @@ -1 +1 @@ -Subproject commit 38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40 +Subproject commit d78a74bcdfad14d5d3b1b782f87255d802b57511 diff --git a/patches/clipboard.diff b/patches/clipboard.diff index 4f6f3638a..921f2c3aa 100644 --- a/patches/clipboard.diff +++ b/patches/clipboard.diff @@ -2,14 +2,14 @@ Index: code-server/lib/vscode/src/vs/workbench/api/browser/mainThreadCLICommands =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.ts +++ code-server/lib/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.ts -@@ -8,6 +8,7 @@ import { isWeb } from 'vs/base/common/pl - import { isString } from 'vs/base/common/types'; - import { URI, UriComponents } from 'vs/base/common/uri'; - import { localize } from 'vs/nls'; -+import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; - import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands'; - import { IExtensionGalleryService, IExtensionManagementService } from 'vs/platform/extensionManagement/common/extensionManagement'; - import { ExtensionManagementCLI } from 'vs/platform/extensionManagement/common/extensionManagementCLI'; +@@ -8,6 +8,7 @@ import { isWeb } from '../../../base/com + import { isString } from '../../../base/common/types.js'; + import { URI, UriComponents } from '../../../base/common/uri.js'; + import { localize } from '../../../nls.js'; ++import { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js'; + import { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js'; + import { IExtensionGalleryService, IExtensionManagementService } from '../../../platform/extensionManagement/common/extensionManagement.js'; + import { ExtensionManagementCLI } from '../../../platform/extensionManagement/common/extensionManagementCLI.js'; @@ -89,6 +90,11 @@ CommandsRegistry.registerCommand('_remot return lines.join('\n'); }); diff --git a/patches/disable-builtin-ext-update.diff b/patches/disable-builtin-ext-update.diff index 145aad2d5..2ccb344bc 100644 --- a/patches/disable-builtin-ext-update.diff +++ b/patches/disable-builtin-ext-update.diff @@ -7,7 +7,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts -@@ -314,6 +314,10 @@ export class Extension implements IExten +@@ -315,6 +315,10 @@ export class Extension implements IExten if (this.type === ExtensionType.System && this.productService.quality === 'stable') { return false; } diff --git a/patches/display-language.diff b/patches/display-language.diff index fb58e2f81..03fdaa5d4 100644 --- a/patches/display-language.diff +++ b/patches/display-language.diff @@ -9,15 +9,15 @@ Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/serverServices.ts +++ code-server/lib/vscode/src/vs/server/node/serverServices.ts -@@ -12,7 +12,7 @@ import * as path from 'vs/base/common/pa - import { IURITransformer } from 'vs/base/common/uriIpc'; - import { getMachineId, getSqmMachineId, getdevDeviceId } from 'vs/base/node/id'; - import { Promises } from 'vs/base/node/pfs'; --import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, StaticRouter } from 'vs/base/parts/ipc/common/ipc'; -+import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, ProxyChannel, StaticRouter } from 'vs/base/parts/ipc/common/ipc'; - import { ProtocolConstants } from 'vs/base/parts/ipc/common/ipc.net'; - import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; - import { ConfigurationService } from 'vs/platform/configuration/common/configurationService'; +@@ -12,7 +12,7 @@ import * as path from '../../base/common + import { IURITransformer } from '../../base/common/uriIpc.js'; + import { getMachineId, getSqmMachineId, getdevDeviceId } from '../../base/node/id.js'; + import { Promises } from '../../base/node/pfs.js'; +-import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, StaticRouter } from '../../base/parts/ipc/common/ipc.js'; ++import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, ProxyChannel, StaticRouter } from '../../base/parts/ipc/common/ipc.js'; + import { ProtocolConstants } from '../../base/parts/ipc/common/ipc.net.js'; + import { IConfigurationService } from '../../platform/configuration/common/configuration.js'; + import { ConfigurationService } from '../../platform/configuration/common/configurationService.js'; @@ -243,6 +243,9 @@ export async function setupServerService const channel = new ExtensionManagementChannel(extensionManagementService, (ctx: RemoteAgentConnectionContext) => getUriTransformer(ctx.remoteAuthority)); socketServer.registerChannel('extensions', channel); @@ -51,9 +51,9 @@ Index: code-server/lib/vscode/src/vs/server/node/remoteLanguagePacks.ts +import { promises as fs } from 'fs'; +import * as path from 'path'; - import { FileAccess } from 'vs/base/common/network'; - import { join } from 'vs/base/common/path'; - import type { INLSConfiguration } from 'vs/nls'; + import { FileAccess } from '../../base/common/network.js'; + import { join } from '../../base/common/path.js'; + import type { INLSConfiguration } from '../../nls.js'; @@ -33,7 +35,94 @@ export async function getNLSConfiguratio if (!result) { result = resolveNLSConfiguration({ userLocale: language, osLocale: language, commit: product.commit, userDataPath, nlsMetadataPath }); @@ -153,14 +153,14 @@ 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 -@@ -26,6 +26,7 @@ import { URI } from 'vs/base/common/uri' - import { streamToBuffer } from 'vs/base/common/buffer'; - import { IProductConfiguration } from 'vs/base/common/product'; - import { isString } from 'vs/base/common/types'; -+import { getLocaleFromConfig, getBrowserNLSConfiguration } from 'vs/server/node/remoteLanguagePacks'; - import { CharCode } from 'vs/base/common/charCode'; - import { IExtensionManifest } from 'vs/platform/extensions/common/extensions'; - import { isESM } from 'vs/base/common/amd'; +@@ -26,6 +26,7 @@ import { URI } from '../../base/common/u + import { streamToBuffer } from '../../base/common/buffer.js'; + import { IProductConfiguration } from '../../base/common/product.js'; + import { isString } from '../../base/common/types.js'; ++import { getLocaleFromConfig, getBrowserNLSConfiguration } from './remoteLanguagePacks.js'; + import { CharCode } from '../../base/common/charCode.js'; + import { IExtensionManifest } from '../../platform/extensions/common/extensions.js'; + import { isESM } from '../../base/common/amd.js'; @@ -99,6 +100,7 @@ export class WebClientServer { private readonly _webExtensionResourceUrlTemplate: URI | undefined; @@ -222,46 +222,21 @@ Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts /* ----- server setup ----- */ -Index: code-server/lib/vscode/src/vs/workbench/workbench.web.main.ts -=================================================================== ---- code-server.orig/lib/vscode/src/vs/workbench/workbench.web.main.ts -+++ code-server/lib/vscode/src/vs/workbench/workbench.web.main.ts -@@ -52,7 +52,7 @@ import 'vs/workbench/services/dialogs/br - import 'vs/workbench/services/host/browser/browserHostService'; - import 'vs/workbench/services/lifecycle/browser/lifecycleService'; - import 'vs/workbench/services/clipboard/browser/clipboardService'; --import 'vs/workbench/services/localization/browser/localeService'; -+import 'vs/workbench/services/localization/electron-sandbox/localeService'; - import 'vs/workbench/services/path/browser/pathService'; - import 'vs/workbench/services/themes/browser/browserHostColorSchemeService'; - import 'vs/workbench/services/encryption/browser/encryptionService'; -@@ -118,8 +118,9 @@ registerSingleton(ILanguagePackService, - // Logs - import 'vs/workbench/contrib/logs/browser/logs.contribution'; - --// Localization --import 'vs/workbench/contrib/localization/browser/localization.contribution'; -+// Localization. This does not actually import anything specific to Electron so -+// it should be safe. -+import 'vs/workbench/contrib/localization/electron-sandbox/localization.contribution'; - - // Performance - import 'vs/workbench/contrib/performance/browser/performance.web.contribution'; Index: code-server/lib/vscode/src/vs/platform/languagePacks/browser/languagePacks.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/platform/languagePacks/browser/languagePacks.ts +++ code-server/lib/vscode/src/vs/platform/languagePacks/browser/languagePacks.ts @@ -5,18 +5,24 @@ - import { CancellationTokenSource } from 'vs/base/common/cancellation'; - import { URI } from 'vs/base/common/uri'; -+import { ProxyChannel } from 'vs/base/parts/ipc/common/ipc'; - import { IExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionManagement'; - import { IExtensionResourceLoaderService } from 'vs/platform/extensionResourceLoader/common/extensionResourceLoader'; --import { ILanguagePackItem, LanguagePackBaseService } from 'vs/platform/languagePacks/common/languagePacks'; -+import { ILanguagePackItem, ILanguagePackService, LanguagePackBaseService } from 'vs/platform/languagePacks/common/languagePacks'; - import { ILogService } from 'vs/platform/log/common/log'; -+import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; + import { CancellationTokenSource } from '../../../base/common/cancellation.js'; + import { URI } from '../../../base/common/uri.js'; ++import { ProxyChannel } from '../../../base/parts/ipc/common/ipc.js'; + import { IExtensionGalleryService } from '../../extensionManagement/common/extensionManagement.js'; + import { IExtensionResourceLoaderService } from '../../extensionResourceLoader/common/extensionResourceLoader.js'; +-import { ILanguagePackItem, LanguagePackBaseService } from '../common/languagePacks.js'; ++import { ILanguagePackItem, ILanguagePackService, LanguagePackBaseService } from '../common/languagePacks.js'; + import { ILogService } from '../../log/common/log.js'; ++import { IRemoteAgentService } from '../../../workbench/services/remote/common/remoteAgentService.js'; export class WebLanguagePacksService extends LanguagePackBaseService { + private readonly languagePackService: ILanguagePackService; @@ -313,7 +288,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts -@@ -411,9 +411,6 @@ export class InstallAction extends Exten +@@ -433,9 +433,6 @@ export class InstallAction extends Exten if (this.extension.isBuiltin) { return; } @@ -323,7 +298,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens if (this.extension.state !== ExtensionState.Uninstalled) { return; } -@@ -695,7 +692,7 @@ export abstract class InstallInOtherServ +@@ -740,7 +737,7 @@ export abstract class InstallInOtherServ } if (isLanguagePackExtension(this.extension.local.manifest)) { @@ -332,7 +307,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens } // Prefers to run on UI -@@ -1951,17 +1948,6 @@ export class SetLanguageAction extends E +@@ -2001,17 +1998,6 @@ export class SetLanguageAction extends E update(): void { this.enabled = false; this.class = SetLanguageAction.DisabledClass; @@ -350,7 +325,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens } override async run(): Promise { -@@ -1978,7 +1964,6 @@ export class ClearLanguageAction extends +@@ -2028,7 +2014,6 @@ export class ClearLanguageAction extends private static readonly DisabledClass = `${this.EnabledClass} disabled`; constructor( @@ -358,7 +333,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/extensions/browser/extens @ILocaleService private readonly localeService: ILocaleService, ) { super(ClearLanguageAction.ID, ClearLanguageAction.TITLE.value, ClearLanguageAction.DisabledClass, false); -@@ -1988,17 +1973,6 @@ export class ClearLanguageAction extends +@@ -2038,17 +2023,6 @@ export class ClearLanguageAction extends update(): void { this.enabled = false; this.class = ClearLanguageAction.DisabledClass; diff --git a/patches/external-file-actions.diff b/patches/external-file-actions.diff index e869cf963..bb78042ee 100644 --- a/patches/external-file-actions.diff +++ b/patches/external-file-actions.diff @@ -125,20 +125,20 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/contextkeys.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/browser/contextkeys.ts +++ code-server/lib/vscode/src/vs/workbench/browser/contextkeys.ts -@@ -7,11 +7,11 @@ import { Event } from 'vs/base/common/ev - import { Disposable } from 'vs/base/common/lifecycle'; - import { IContextKeyService, IContextKey, setConstant as setConstantContextKey } from 'vs/platform/contextkey/common/contextkey'; - import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext, ProductQualityContext, IsMobileContext } from 'vs/platform/contextkey/common/contextkeys'; --import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext } from 'vs/workbench/common/contextkeys'; -+import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads } from 'vs/workbench/common/contextkeys'; - import { trackFocus, addDisposableListener, EventType, onDidRegisterWindow, getActiveWindow } from 'vs/base/browser/dom'; - import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; - import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; --import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; -+import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; - import { WorkbenchState, IWorkspaceContextService, isTemporaryWorkspace } from 'vs/platform/workspace/common/workspace'; - import { IWorkbenchLayoutService, Parts, positionToString } from 'vs/workbench/services/layout/browser/layoutService'; - import { getRemoteName } from 'vs/platform/remote/common/remoteHosts'; +@@ -7,11 +7,11 @@ import { Event } from '../../base/common + import { Disposable } from '../../base/common/lifecycle.js'; + import { IContextKeyService, IContextKey, setConstant as setConstantContextKey } from '../../platform/contextkey/common/contextkey.js'; + import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext, ProductQualityContext, IsMobileContext } from '../../platform/contextkey/common/contextkeys.js'; +-import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext } from '../common/contextkeys.js'; ++import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads } from '../common/contextkeys.js'; + import { trackFocus, addDisposableListener, EventType, onDidRegisterWindow, getActiveWindow, isEditableElement } from '../../base/browser/dom.js'; + import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from '../services/editor/common/editorGroupsService.js'; + import { IConfigurationService } from '../../platform/configuration/common/configuration.js'; +-import { IWorkbenchEnvironmentService } from '../services/environment/common/environmentService.js'; ++import { IBrowserWorkbenchEnvironmentService } from '../services/environment/browser/environmentService.js'; + import { WorkbenchState, IWorkspaceContextService, isTemporaryWorkspace } from '../../platform/workspace/common/workspace.js'; + import { IWorkbenchLayoutService, Parts, positionToString } from '../services/layout/browser/layoutService.js'; + import { getRemoteName } from '../../platform/remote/common/remoteHosts.js'; @@ -70,7 +70,7 @@ export class WorkbenchContextKeysHandler @IContextKeyService private readonly contextKeyService: IContextKeyService, @IWorkspaceContextService private readonly contextService: IWorkspaceContextService, @@ -164,15 +164,15 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions --- code-server.orig/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts @@ -20,7 +20,7 @@ import { CLOSE_SAVED_EDITORS_COMMAND_ID, - import { AutoSaveAfterShortDelayContext } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; - import { WorkbenchListDoubleSelection } from 'vs/platform/list/browser/listService'; - import { Schemas } from 'vs/base/common/network'; --import { DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from 'vs/workbench/common/contextkeys'; -+import { IsEnabledFileDownloads, IsEnabledFileUploads, DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from 'vs/workbench/common/contextkeys'; - import { IsWebContext } from 'vs/platform/contextkey/common/contextkeys'; - import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; - import { ThemeIcon } from 'vs/base/common/themables'; -@@ -566,13 +566,16 @@ MenuRegistry.appendMenuItem(MenuId.Explo + import { AutoSaveAfterShortDelayContext } from '../../../services/filesConfiguration/common/filesConfigurationService.js'; + import { WorkbenchListDoubleSelection, WorkbenchTreeFindOpen } from '../../../../platform/list/browser/listService.js'; + import { Schemas } from '../../../../base/common/network.js'; +-import { DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from '../../../common/contextkeys.js'; ++import { IsEnabledFileDownloads, IsEnabledFileUploads, DirtyWorkingCopiesContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, WorkbenchStateContext, WorkspaceFolderCountContext, SidebarFocusContext, ActiveEditorCanRevertContext, ActiveEditorContext, ResourceContextKey, ActiveEditorAvailableEditorIdsContext, MultipleEditorsSelectedInGroupContext, TwoEditorsSelectedInGroupContext, SelectedEditorsInGroupFileOrUntitledResourceContextKey } from '../../../common/contextkeys.js'; + import { IsWebContext } from '../../../../platform/contextkey/common/contextkeys.js'; + import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js'; + import { ThemeIcon } from '../../../../base/common/themables.js'; +@@ -572,13 +572,16 @@ MenuRegistry.appendMenuItem(MenuId.Explo id: DOWNLOAD_COMMAND_ID, title: DOWNLOAD_LABEL }, @@ -196,7 +196,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/fileActions ) })); -@@ -584,6 +587,7 @@ MenuRegistry.appendMenuItem(MenuId.Explo +@@ -590,6 +593,7 @@ MenuRegistry.appendMenuItem(MenuId.Explo title: UPLOAD_LABEL, }, when: ContextKeyExpr.and( @@ -222,16 +222,16 @@ Index: code-server/lib/vscode/src/vs/workbench/services/dialogs/browser/simpleFi =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts +++ code-server/lib/vscode/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts -@@ -18,7 +18,7 @@ import { IModelService } from 'vs/editor - import { ILanguageService } from 'vs/editor/common/languages/language'; - import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; - import { Schemas } from 'vs/base/common/network'; --import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; -+import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; - import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; - import { IContextKeyService, IContextKey, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; - import { equalsIgnoreCase, format, startsWithIgnoreCase } from 'vs/base/common/strings'; -@@ -143,7 +143,7 @@ export class SimpleFileDialog implements +@@ -18,7 +18,7 @@ import { IModelService } from '../../../ + import { ILanguageService } from '../../../../editor/common/languages/language.js'; + import { getIconClasses } from '../../../../editor/common/services/getIconClasses.js'; + import { Schemas } from '../../../../base/common/network.js'; +-import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js'; ++import { IBrowserWorkbenchEnvironmentService } from '../../environment/browser/environmentService.js'; + import { IRemoteAgentService } from '../../remote/common/remoteAgentService.js'; + import { IContextKeyService, IContextKey, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js'; + import { equalsIgnoreCase, format, startsWithIgnoreCase } from '../../../../base/common/strings.js'; +@@ -139,7 +139,7 @@ export class SimpleFileDialog extends Di @IFileDialogService private readonly fileDialogService: IFileDialogService, @IModelService private readonly modelService: IModelService, @ILanguageService private readonly languageService: ILanguageService, @@ -240,7 +240,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/dialogs/browser/simpleFi @IRemoteAgentService private readonly remoteAgentService: IRemoteAgentService, @IPathService protected readonly pathService: IPathService, @IKeybindingService private readonly keybindingService: IKeybindingService, -@@ -286,20 +286,22 @@ export class SimpleFileDialog implements +@@ -283,20 +283,22 @@ export class SimpleFileDialog extends Di this.filePickBox.sortByLabel = false; this.filePickBox.ignoreFocusOut = true; this.filePickBox.ok = true; @@ -281,15 +281,15 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts -@@ -65,6 +65,7 @@ import { timeout } from 'vs/base/common/ - import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; - import { mainWindow } from 'vs/base/browser/window'; - import { IExplorerFileContribution, explorerFileContribRegistry } from 'vs/workbench/contrib/files/browser/explorerFileContrib'; -+import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; +@@ -65,6 +65,7 @@ import { timeout } from '../../../../../ + import { IFilesConfigurationService } from '../../../../services/filesConfiguration/common/filesConfigurationService.js'; + import { mainWindow } from '../../../../../base/browser/window.js'; + import { IExplorerFileContribution, explorerFileContribRegistry } from '../explorerFileContrib.js'; ++import { IBrowserWorkbenchEnvironmentService } from '../../../../services/environment/browser/environmentService.js'; export class ExplorerDelegate implements IListVirtualDelegate { -@@ -1005,7 +1006,8 @@ export class FileDragAndDrop implements +@@ -1030,7 +1031,8 @@ export class FileDragAndDrop implements @IConfigurationService private configurationService: IConfigurationService, @IInstantiationService private instantiationService: IInstantiationService, @IWorkspaceEditingService private workspaceEditingService: IWorkspaceEditingService, @@ -299,7 +299,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo ) { const updateDropEnablement = (e: IConfigurationChangeEvent | undefined) => { if (!e || e.affectsConfiguration('explorer.enableDragAndDrop')) { -@@ -1230,15 +1232,17 @@ export class FileDragAndDrop implements +@@ -1255,15 +1257,17 @@ export class FileDragAndDrop implements // External file DND (Import/Upload file) if (data instanceof NativeDragAndDropData) { diff --git a/patches/getting-started.diff b/patches/getting-started.diff index cca715535..abf5aeecf 100644 --- a/patches/getting-started.diff +++ b/patches/getting-started.diff @@ -14,21 +14,21 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ --import { $, Dimension, addDisposableListener, append, clearNode, reset } from 'vs/base/browser/dom'; -+import { $, Dimension, addDisposableListener, append, clearNode, reset, prepend } from 'vs/base/browser/dom'; - import { renderFormattedText } from 'vs/base/browser/formattedTextRenderer'; - import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; - import { Button } from 'vs/base/browser/ui/button/button'; +-import { $, Dimension, addDisposableListener, append, clearNode, reset } from '../../../../base/browser/dom.js'; ++import { $, Dimension, addDisposableListener, append, clearNode, reset, prepend } from '../../../../base/browser/dom.js'; + import { renderFormattedText } from '../../../../base/browser/formattedTextRenderer.js'; + import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js'; + import { Button } from '../../../../base/browser/ui/button/button.js'; @@ -54,7 +54,7 @@ import { IRecentFolder, IRecentWorkspace - import { OpenRecentAction } from 'vs/workbench/browser/actions/windowActions'; - import { OpenFileFolderAction, OpenFolderAction, OpenFolderViaWorkspaceAction } from 'vs/workbench/browser/actions/workspaceActions'; - import { EditorPane } from 'vs/workbench/browser/parts/editor/editorPane'; --import { WorkbenchStateContext } from 'vs/workbench/common/contextkeys'; -+import { IsEnabledCoderGettingStarted, WorkbenchStateContext } from 'vs/workbench/common/contextkeys'; - import { IEditorOpenContext, IEditorSerializer } from 'vs/workbench/common/editor'; - import { IWebviewElement, IWebviewService } from 'vs/workbench/contrib/webview/browser/webview'; - import 'vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors'; -@@ -804,6 +804,72 @@ export class GettingStartedPage extends + import { OpenRecentAction } from '../../../browser/actions/windowActions.js'; + import { OpenFileFolderAction, OpenFolderAction, OpenFolderViaWorkspaceAction } from '../../../browser/actions/workspaceActions.js'; + import { EditorPane } from '../../../browser/parts/editor/editorPane.js'; +-import { WorkbenchStateContext } from '../../../common/contextkeys.js'; ++import { IsEnabledCoderGettingStarted, WorkbenchStateContext } from '../../../common/contextkeys.js'; + import { IEditorOpenContext, IEditorSerializer } from '../../../common/editor.js'; + import { IWebviewElement, IWebviewService } from '../../webview/browser/webview.js'; + import './gettingStartedColors.js'; +@@ -820,6 +820,72 @@ export class GettingStartedPage extends $('p.subtitle.description', {}, localize({ key: 'gettingStarted.editingEvolved', comment: ['Shown as subtitle on the Welcome page.'] }, "Editing evolved")) ); @@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro const leftColumn = $('.categories-column.categories-column-left', {},); const rightColumn = $('.categories-column.categories-column-right', {},); -@@ -839,6 +905,9 @@ export class GettingStartedPage extends +@@ -855,6 +921,9 @@ export class GettingStartedPage extends recentList.setLimit(5); reset(leftColumn, startList.getDomElement(), recentList.getDomElement()); } @@ -213,15 +213,15 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/contextkeys.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/browser/contextkeys.ts +++ code-server/lib/vscode/src/vs/workbench/browser/contextkeys.ts -@@ -7,7 +7,7 @@ import { Event } from 'vs/base/common/ev - import { Disposable } from 'vs/base/common/lifecycle'; - import { IContextKeyService, IContextKey, setConstant as setConstantContextKey } from 'vs/platform/contextkey/common/contextkey'; - import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext, ProductQualityContext, IsMobileContext } from 'vs/platform/contextkey/common/contextkeys'; --import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads } from 'vs/workbench/common/contextkeys'; -+import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads, IsEnabledCoderGettingStarted, } from 'vs/workbench/common/contextkeys'; - import { trackFocus, addDisposableListener, EventType, onDidRegisterWindow, getActiveWindow } from 'vs/base/browser/dom'; - import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; - import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; +@@ -7,7 +7,7 @@ import { Event } from '../../base/common + import { Disposable } from '../../base/common/lifecycle.js'; + import { IContextKeyService, IContextKey, setConstant as setConstantContextKey } from '../../platform/contextkey/common/contextkey.js'; + import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext, ProductQualityContext, IsMobileContext } from '../../platform/contextkey/common/contextkeys.js'; +-import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads } from '../common/contextkeys.js'; ++import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext, IsEnabledFileDownloads, IsEnabledFileUploads, IsEnabledCoderGettingStarted, } from '../common/contextkeys.js'; + import { trackFocus, addDisposableListener, EventType, onDidRegisterWindow, getActiveWindow, isEditableElement } from '../../base/browser/dom.js'; + import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from '../services/editor/common/editorGroupsService.js'; + import { IConfigurationService } from '../../platform/configuration/common/configuration.js'; @@ -200,6 +200,7 @@ export class WorkbenchContextKeysHandler // code-server IsEnabledFileDownloads.bindTo(this.contextKeyService).set(this.environmentService.isEnabledFileDownloads ?? true) diff --git a/patches/integration.diff b/patches/integration.diff index e29b4b035..8372cae35 100644 --- a/patches/integration.diff +++ b/patches/integration.diff @@ -14,13 +14,13 @@ Index: code-server/lib/vscode/src/vs/server/node/server.main.ts --- code-server.orig/lib/vscode/src/vs/server/node/server.main.ts +++ code-server/lib/vscode/src/vs/server/node/server.main.ts @@ -12,7 +12,7 @@ import { createServer as doCreateServer, - import { parseArgs, ErrorReporter } from 'vs/platform/environment/node/argv'; - import { join, dirname } from 'vs/base/common/path'; + import { parseArgs, ErrorReporter } from '../../platform/environment/node/argv.js'; + import { join, dirname } from '../../base/common/path.js'; import { performance } from 'perf_hooks'; --import { serverOptions } from 'vs/server/node/serverEnvironmentService'; -+import { serverOptions, ServerParsedArgs } from 'vs/server/node/serverEnvironmentService'; - import product from 'vs/platform/product/common/product'; - import * as perf from 'vs/base/common/performance'; +-import { serverOptions } from './serverEnvironmentService.js'; ++import { serverOptions, ServerParsedArgs } from './serverEnvironmentService.js'; + import product from '../../platform/product/common/product.js'; + import * as perf from '../../base/common/performance.js'; @@ -34,38 +34,43 @@ const errorReporter: ErrorReporter = { } @@ -176,14 +176,14 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/web.main.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/browser/web.main.ts +++ code-server/lib/vscode/src/vs/workbench/browser/web.main.ts -@@ -64,6 +64,7 @@ import { IOpenerService } from 'vs/platf - import { mixin, safeStringify } from 'vs/base/common/objects'; - import { IndexedDB } from 'vs/base/browser/indexedDB'; - import { WebFileSystemAccess } from 'vs/platform/files/browser/webFileSystemAccess'; -+import { CodeServerClient } from 'vs/workbench/browser/client'; - import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; - import { IProgressService } from 'vs/platform/progress/common/progress'; - import { DelayedLogChannel } from 'vs/workbench/services/output/common/delayedLogChannel'; +@@ -64,6 +64,7 @@ import { IOpenerService } from '../../pl + import { mixin, safeStringify } from '../../base/common/objects.js'; + import { IndexedDB } from '../../base/browser/indexedDB.js'; + import { WebFileSystemAccess } from '../../platform/files/browser/webFileSystemAccess.js'; ++import { CodeServerClient } from '../../workbench/browser/client.js'; + import { ITelemetryService } from '../../platform/telemetry/common/telemetry.js'; + import { IProgressService } from '../../platform/progress/common/progress.js'; + import { DelayedLogChannel } from '../services/output/common/delayedLogChannel.js'; @@ -131,6 +132,9 @@ export class BrowserMain extends Disposa // Startup const instantiationService = workbench.startup(); diff --git a/patches/logout.diff b/patches/logout.diff index 01b4a9593..afa839ef5 100644 --- a/patches/logout.diff +++ b/patches/logout.diff @@ -20,7 +20,7 @@ Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts +++ code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts -@@ -15,6 +15,7 @@ import { URI } from 'vs/base/common/uri' +@@ -15,6 +15,7 @@ import { URI } from '../../base/common/u export const serverOptions: OptionDescriptions> = { /* ----- code-server ----- */ 'disable-update-check': { type: 'boolean' }, diff --git a/patches/marketplace.diff b/patches/marketplace.diff index b27abf5cd..cc746add2 100644 --- a/patches/marketplace.diff +++ b/patches/marketplace.diff @@ -69,12 +69,12 @@ Index: code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/ext =================================================================== --- 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'; +@@ -15,7 +15,6 @@ import { getServiceMachineId } from '../ + import { IStorageService } from '../../storage/common/storage.js'; + import { TelemetryLevel } from '../../telemetry/common/telemetry.js'; + import { getTelemetryLevel, supportsTelemetry } from '../../telemetry/common/telemetryUtils.js'; +-import { RemoteAuthorities } from '../../../base/common/network.js'; + import { TargetPlatform } from '../../extensions/common/extensions.js'; const WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT = '/web-extension-resource/'; @@ -140,9 +139,9 @@ export abstract class AbstractExtensionR @@ -90,18 +90,3 @@ Index: code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/ext } } -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; - } - diff --git a/patches/proxy-uri.diff b/patches/proxy-uri.diff index 92db29e25..d80f1eb4a 100644 --- a/patches/proxy-uri.diff +++ b/patches/proxy-uri.diff @@ -97,12 +97,12 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts --- code-server.orig/lib/vscode/src/vs/code/browser/workbench/workbench.ts +++ code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts @@ -19,6 +19,7 @@ import { ISecretStorageProvider } from ' - import { isFolderToOpen, isWorkspaceToOpen } from 'vs/platform/window/common/window'; - import type { IWorkbenchConstructionOptions, IWorkspace, IWorkspaceProvider } from 'vs/workbench/browser/web.api'; - import { AuthenticationSessionInfo } from 'vs/workbench/services/authentication/browser/authenticationService'; -+import { extractLocalHostUriMetaDataForPortMapping, TunnelOptions, TunnelCreationOptions } from 'vs/platform/tunnel/common/tunnel'; - import type { IURLCallbackProvider } from 'vs/workbench/services/url/browser/urlService'; - import { create } from 'vs/workbench/workbench.web.main'; + import { isFolderToOpen, isWorkspaceToOpen } from '../../../platform/window/common/window.js'; + import type { IWorkbenchConstructionOptions, IWorkspace, IWorkspaceProvider } from '../../../workbench/browser/web.api.js'; + import { AuthenticationSessionInfo } from '../../../workbench/services/authentication/browser/authenticationService.js'; ++import { extractLocalHostUriMetaDataForPortMapping, TunnelOptions, TunnelCreationOptions } from '../../../platform/tunnel/common/tunnel.js'; + import type { IURLCallbackProvider } from '../../../workbench/services/url/browser/urlService.js'; + import { create } from '../../../workbench/workbench.web.main.internal.js'; @@ -571,6 +572,39 @@ class WorkspaceProvider implements IWork settingsSyncOptions: config.settingsSyncOptions ? { enabled: config.settingsSyncOptions.enabled, } : undefined, @@ -148,12 +148,14 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/remote/browser/remoteExpl =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts -@@ -77,7 +77,7 @@ export class ForwardedPortsView extends - private async enableForwardedPortsView() { +@@ -77,8 +77,8 @@ export class ForwardedPortsView extends + private async enableForwardedPortsFeatures() { this.contextKeyListener.clear(); +- const featuresEnabled: boolean = !!forwardedPortsFeaturesEnabled.getValue(this.contextKeyService); - const viewEnabled: boolean = !!forwardedPortsViewEnabled.getValue(this.contextKeyService); ++ const featuresEnabled: boolean = true; + const viewEnabled: boolean = true; - if (viewEnabled) { - const viewContainer = await this.getViewContainer(); + if (featuresEnabled || viewEnabled) { + // Also enable the view if it isn't already. diff --git a/patches/sourcemaps.diff b/patches/sourcemaps.diff index db2266d29..29884d2fa 100644 --- a/patches/sourcemaps.diff +++ b/patches/sourcemaps.diff @@ -10,7 +10,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js =================================================================== --- code-server.orig/lib/vscode/build/gulpfile.reh.js +++ code-server/lib/vscode/build/gulpfile.reh.js -@@ -288,8 +288,7 @@ function packageTask(type, platform, arc +@@ -289,8 +289,7 @@ function packageTask(type, platform, arc const src = gulp.src(sourceFolderName + '/**', { base: '.' }) .pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + sourceFolderName), 'out'); })) @@ -20,7 +20,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js const workspaceExtensionPoints = ['debuggers', 'jsonValidation']; const isUIExtension = (manifest) => { -@@ -328,9 +327,9 @@ function packageTask(type, platform, arc +@@ -329,9 +328,9 @@ function packageTask(type, platform, arc .map(name => `.build/extensions/${name}/**`); const extensions = gulp.src(extensionPaths, { base: '.build', dot: true }); @@ -32,7 +32,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.js let version = packageJson.version; const quality = product.quality; -@@ -504,7 +503,7 @@ function tweakProductForServerWeb(produc +@@ -505,7 +504,7 @@ function tweakProductForServerWeb(produc const minifyTask = task.define(`minify-vscode-${type}`, task.series( optimizeTask, util.rimraf(`out-vscode-${type}-min`), diff --git a/patches/store-socket.diff b/patches/store-socket.diff index ffdbe1dba..bb5e0dd41 100644 --- a/patches/store-socket.diff +++ b/patches/store-socket.diff @@ -15,24 +15,23 @@ Index: code-server/lib/vscode/src/vs/workbench/api/node/extHostExtensionService. =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/api/node/extHostExtensionService.ts +++ code-server/lib/vscode/src/vs/workbench/api/node/extHostExtensionService.ts -@@ -2,7 +2,7 @@ - * Copyright (c) Microsoft Corporation. All rights reserved. +@@ -3,6 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -- + +import * as _http from 'http'; - import * as performance from 'vs/base/common/performance'; - import { createApiFactoryAndRegisterActors } from 'vs/workbench/api/common/extHost.api.impl'; - import { RequireInterceptor } from 'vs/workbench/api/common/extHostRequireInterceptor'; -@@ -17,6 +17,7 @@ import { ExtensionRuntime } from 'vs/wor - import { CLIServer } from 'vs/workbench/api/node/extHostCLIServer'; - import { realpathSync } from 'vs/base/node/extpath'; - import { ExtHostConsoleForwarder } from 'vs/workbench/api/node/extHostConsoleForwarder'; -+import { IExtHostWorkspace } from '../common/extHostWorkspace'; - import { ExtHostDiskFileSystemProvider } from 'vs/workbench/api/node/extHostDiskFileSystemProvider'; + import * as performance from '../../../base/common/performance.js'; + import { createApiFactoryAndRegisterActors } from '../common/extHost.api.impl.js'; + import { RequireInterceptor } from '../common/extHostRequireInterceptor.js'; +@@ -17,6 +18,7 @@ import { ExtensionRuntime } from '../com + import { CLIServer } from './extHostCLIServer.js'; + import { realpathSync } from '../../../base/node/extpath.js'; + import { ExtHostConsoleForwarder } from './extHostConsoleForwarder.js'; ++import { IExtHostWorkspace } from '../common/extHostWorkspace.js'; + import { ExtHostDiskFileSystemProvider } from './extHostDiskFileSystemProvider.js'; // ESM-uncomment-begin - // import { createRequire } from 'node:module'; -@@ -87,6 +88,52 @@ export class ExtHostExtensionService ext + import { createRequire } from 'node:module'; +@@ -101,6 +103,52 @@ export class ExtHostExtensionService ext await interceptor.install(); performance.mark('code/extHost/didInitAPI'); @@ -84,7 +83,7 @@ Index: code-server/lib/vscode/src/vs/workbench/api/node/extHostExtensionService. + // Do this when extension service exists, but extensions are not being activated yet. const configProvider = await this._extHostConfiguration.getConfigProvider(); - await connectProxyResolver(this._extHostWorkspace, configProvider, this, this._logService, this._mainThreadTelemetryProxy, this._initData); + await connectProxyResolver(this._extHostWorkspace, configProvider, this, this._logService, this._mainThreadTelemetryProxy, this._initData, this._store); Index: code-server/lib/vscode/src/vs/workbench/api/node/extensionHostProcess.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/api/node/extensionHostProcess.ts @@ -97,7 +96,7 @@ Index: code-server/lib/vscode/src/vs/workbench/api/node/extensionHostProcess.ts import minimist from 'minimist'; import * as nativeWatchdog from 'native-watchdog'; import * as net from 'net'; -@@ -421,7 +422,28 @@ async function startExtensionHostProcess +@@ -424,7 +425,28 @@ async function startExtensionHostProcess ); // rewrite onTerminate-function to be a proper shutdown diff --git a/patches/telemetry.diff b/patches/telemetry.diff index a45f6b758..b840476b4 100644 --- a/patches/telemetry.diff +++ b/patches/telemetry.diff @@ -17,19 +17,19 @@ Index: code-server/lib/vscode/src/vs/server/node/serverServices.ts import { hostname, release } from 'os'; +import { promises as fs } from 'fs'; - import { Emitter, Event } from 'vs/base/common/event'; - import { DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; - import { Schemas } from 'vs/base/common/network'; + import { Emitter, Event } from '../../base/common/event.js'; + import { DisposableStore, toDisposable } from '../../base/common/lifecycle.js'; + import { Schemas } from '../../base/common/network.js'; @@ -65,6 +66,7 @@ import { IExtensionsScannerService } fro - import { ExtensionsScannerService } from 'vs/server/node/extensionsScannerService'; - import { IExtensionsProfileScannerService } from 'vs/platform/extensionManagement/common/extensionsProfileScannerService'; - import { IUserDataProfilesService } from 'vs/platform/userDataProfile/common/userDataProfile'; -+import { TelemetryClient } from 'vs/server/node/telemetryClient'; - import { NullPolicyService } from 'vs/platform/policy/common/policy'; - import { OneDataSystemAppender } from 'vs/platform/telemetry/node/1dsAppender'; - import { LoggerService } from 'vs/platform/log/node/loggerService'; + import { ExtensionsScannerService } from './extensionsScannerService.js'; + import { IExtensionsProfileScannerService } from '../../platform/extensionManagement/common/extensionsProfileScannerService.js'; + import { IUserDataProfilesService } from '../../platform/userDataProfile/common/userDataProfile.js'; ++import { TelemetryClient } from './telemetryClient.js'; + import { NullPolicyService } from '../../platform/policy/common/policy.js'; + import { OneDataSystemAppender } from '../../platform/telemetry/node/1dsAppender.js'; + import { LoggerService } from '../../platform/log/node/loggerService.js'; @@ -151,11 +153,23 @@ export async function setupServerService - const requestService = new RequestService(configurationService, environmentService, logService, loggerService); + const requestService = new RequestService(configurationService, environmentService, logService); services.set(IRequestService, requestService); + let isContainer = undefined; diff --git a/patches/unique-db.diff b/patches/unique-db.diff index 17b21b5d1..8d46a0b7a 100644 --- a/patches/unique-db.diff +++ b/patches/unique-db.diff @@ -14,10 +14,10 @@ Index: code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageS --- code-server.orig/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts +++ code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageService.ts @@ -18,6 +18,7 @@ import { AbstractStorageService, isProfi - import { isUserDataProfile, IUserDataProfile } from 'vs/platform/userDataProfile/common/userDataProfile'; - import { IAnyWorkspaceIdentifier } from 'vs/platform/workspace/common/workspace'; - import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile'; -+import { hash } from 'vs/base/common/hash'; + import { isUserDataProfile, IUserDataProfile } from '../../../../platform/userDataProfile/common/userDataProfile.js'; + import { IAnyWorkspaceIdentifier } from '../../../../platform/workspace/common/workspace.js'; + import { IUserDataProfileService } from '../../userDataProfile/common/userDataProfile.js'; ++import { hash } from '../../../../base/common/hash.js'; export class BrowserStorageService extends AbstractStorageService { diff --git a/patches/update-check.diff b/patches/update-check.diff index 351c9130d..4f14e4055 100644 --- a/patches/update-check.diff +++ b/patches/update-check.diff @@ -117,8 +117,8 @@ Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts +++ code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts -@@ -13,6 +13,8 @@ import { memoize } from 'vs/base/common/ - import { URI } from 'vs/base/common/uri'; +@@ -13,6 +13,8 @@ import { memoize } from '../../base/comm + import { URI } from '../../base/common/uri.js'; export const serverOptions: OptionDescriptions> = { + /* ----- code-server ----- */