Change:
For reference: I have found some peculiar things with the implementation, which I am not sure is by design or not. But here comes one: When working with remotes, such as remote ssh, I can see an extension in the "local" windows (greyed out) and in the remote window (not greyed out) in case it prefers to run on the remote extension host. But when I right-click on the local extension and select "Apply Extension to all Profiles" it does nothing. If I click it in the remote extension window and do the same, it gets the check mark. (But still not in the local window). As I suspect the intention behind "Apply Extension to all Profiles" is to actually apply it to all profiles, I should be able to right click and select it, so it gets selected, in all views under "Extensions". ( was also something I found needed.)
Thanks for the feedback. First request is a valid request. Can you please give more details about the second request? I would suggest to extract it into a new issue and provide exact steps to reproduce the issue.
I broke up the second item to a new issue: Let me know if still is not clear enough, and possibly which part.
is this an easy fix? I think it will clear up some confusion. I am surprised more people have not noticed and upvoted this, as local team members found this by themselves. It is causing quite a bit of confusion UX wise.
To verify: Open a remote window (WSL or Dev Container or SSH) Have an extension installed locally and remotely In Local Installed Extensions Section, Right click on the extension and apply it to all profiles. Verify that it also applies for the extension is remote installed extensions section. Verify vice-versa

Discussion:
import { IExtensionIgnoredRecommendationsService, IExtensionRecommendationsService } from 'vs/workbench/services/extensionRecommendations/common/extensionRecommendations'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; <del> import { VIEWLET_ID, IExtensionsWorkbenchService, IExtensionsViewPaneContainer, TOGGLE_IGNORE_EXTENSION_ACTION_ID, INSTALL_EXTENSION_FROM_VSIX_COMMAND_ID, WORKSPACE_RECOMMENDATIONS_VIEW_ID, IWorkspaceRecommendedExtensionsView, AutoUpdateConfigurationKey, HasOutdatedExtensionsContext, SELECT_INSTALL_VSIX_EXTENSION_COMMAND_ID, LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID, ExtensionEditorTab, THEME_ACTIONS_GROUP, INSTALL_ACTIONS_GROUP, OUTDATED_EXTENSIONS_VIEW_ID, CONTEXT_HAS_GALLERY, IExtension, extensionsSearchActionsMenu, UPDATE_ACTIONS_GROUP } from 'vs/workbench/contrib/extensions/common/extensions'; </del> <ins> import { VIEWLET_ID, IExtensionsWorkbenchService, IExtensionsViewPaneContainer, TOGGLE_IGNORE_EXTENSION_ACTION_ID, INSTALL_EXTENSION_FROM_VSIX_COMMAND_ID, WORKSPACE_RECOMMENDATIONS_VIEW_ID, IWorkspaceRecommendedExtensionsView, AutoUpdateConfigurationKey, HasOutdatedExtensionsContext, SELECT_INSTALL_VSIX_EXTENSION_COMMAND_ID, LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID, ExtensionEditorTab, THEME_ACTIONS_GROUP, INSTALL_ACTIONS_GROUP, OUTDATED_EXTENSIONS_VIEW_ID, CONTEXT_HAS_GALLERY, IExtension, extensionsSearchActionsMenu, UPDATE_ACTIONS_GROUP, IExtensionArg } from 'vs/workbench/contrib/extensions/common/extensions'; </ins> import { ReinstallAction, InstallSpecificVersionOfExtensionAction, ConfigureWorkspaceRecommendedExtensionsAction, ConfigureWorkspaceFolderRecommendedExtensionsAction, PromptExtensionInstallFailureAction, SearchExtensionsAction, SetColorThemeAction, SetFileIconThemeAction, SetProductIconThemeAction, ClearLanguageAction, ToggleAutoUpdateForExtensionAction, ToggleAutoUpdatesForPublisherAction, TogglePreReleaseExtensionAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; import { ExtensionsInput } from 'vs/workbench/contrib/extensions/common/extensionsInput'; import { ExtensionEditor } from 'vs/workbench/contrib/extensions/browser/extensionEditor';

import { CONTEXT_KEYBINDINGS_EDITOR } from 'vs/workbench/contrib/preferences/common/preferences'; import { DeprecatedExtensionsChecker } from 'vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker'; import { ProgressLocation } from 'vs/platform/progress/common/progress'; <ins> import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; </ins> // Singletons registerSingleton(IExtensionsWorkbenchService, ExtensionsWorkbenchService, InstantiationType.Eager /* Auto updates extensions */);

when: ContextKeyExpr.and(ContextKeyExpr.equals('extensionStatus', 'installed'), ContextKeyExpr.has('isDefaultApplicationScopedExtension').negate(), ContextKeyExpr.has('isBuiltinExtension').negate(), ContextKeyExpr.equals('isWorkspaceScopedExtension', false)), order: 3 }, <del> run: async (accessor: ServicesAccessor, id: string) => { const extension = this.extensionsWorkbenchService.local.find(e => areSameExtensions({ id }, e.identifier)); </del> <ins> run: async (accessor: ServicesAccessor, _: string, extensionArg: IExtensionArg) => { const uriIdentityService = accessor.get(IUriIdentityService); const extension = extensionArg.location ? this.extensionsWorkbenchService.installed.find(e => uriIdentityService.extUri.isEqual(e.local?.location, extensionArg.location)) : undefined; </ins> if (extension) { return this.extensionsWorkbenchService.toggleApplyExtensionToAllProfiles(extension); }

import * as json from 'vs/base/common/json'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { disposeIfDisposable } from 'vs/base/common/lifecycle'; <del> import { IExtension, ExtensionState, IExtensionsWorkbenchService, VIEWLET_ID, IExtensionsViewPaneContainer, IExtensionContainer, TOGGLE_IGNORE_EXTENSION_ACTION_ID, SELECT_INSTALL_VSIX_EXTENSION_COMMAND_ID, THEME_ACTIONS_GROUP, INSTALL_ACTIONS_GROUP, UPDATE_ACTIONS_GROUP, AutoUpdateConfigurationKey, AutoUpdateConfigurationValue, ExtensionEditorTab, ExtensionRuntimeActionType } from 'vs/workbench/contrib/extensions/common/extensions'; </del> <ins> import { IExtension, ExtensionState, IExtensionsWorkbenchService, VIEWLET_ID, IExtensionsViewPaneContainer, IExtensionContainer, TOGGLE_IGNORE_EXTENSION_ACTION_ID, SELECT_INSTALL_VSIX_EXTENSION_COMMAND_ID, THEME_ACTIONS_GROUP, INSTALL_ACTIONS_GROUP, UPDATE_ACTIONS_GROUP, AutoUpdateConfigurationKey, AutoUpdateConfigurationValue, ExtensionEditorTab, ExtensionRuntimeActionType, IExtensionArg } from 'vs/workbench/contrib/extensions/common/extensions'; </ins> import { ExtensionsConfigurationInitialContent } from 'vs/workbench/contrib/extensions/common/extensionsFileTemplate'; import { IGalleryExtension, IExtensionGalleryService, ILocalExtension, InstallOptions, InstallOperation, TargetPlatformToString, ExtensionManagementErrorCode } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IWorkbenchExtensionEnablementService, EnablementState, IExtensionManagementServerService, IExtensionManagementServer } from 'vs/workbench/services/extensionManagement/common/extensionManagement';

override async run(): Promise<void> { if (this.extension) { <del> await this.action.run(this.extension.local ? getExtensionId(this.extension.local.manifest.publisher, this.extension.local.manifest.name) </del> <ins> const id = this.extension.local ? getExtensionId(this.extension.local.manifest.publisher, this.extension.local.manifest.name) </ins> : this.extension.gallery ? getExtensionId(this.extension.gallery.publisher, this.extension.gallery.name) <del> : this.extension.identifier.id); </del> <ins> : this.extension.identifier.id; const extensionArg: IExtensionArg = { id: this.extension.identifier.id, version: this.extension.version, location: this.extension.local?.location }; await this.action.run(id, extensionArg); </ins> } } }

if (!extension.local || isApplicationScopedExtension(extension.local.manifest) || extension.isBuiltin) { return; } <del> await this.extensionManagementService.toggleAppliationScope(extension.local, this.userDataProfileService.currentProfile.extensionsResource); </del> <ins> const isApplicationScoped = extension.local.isApplicationScoped; await Promise.all(this.getAllExtensions().map(async extensions => { const local = extensions.local.find(e => areSameExtensions(e.identifier, extension.identifier))?.local; if (local && local.isApplicationScoped === isApplicationScoped) { await this.extensionManagementService.toggleAppliationScope(local, this.userDataProfileService.currentProfile.extensionsResource); } })); } private getAllExtensions(): Extensions[] { const extensions: Extensions[] = []; if (this.localExtensions) { extensions.push(this.localExtensions); } if (this.remoteExtensions) { extensions.push(this.remoteExtensions); } if (this.webExtensions) { extensions.push(this.webExtensions); } return extensions; </ins> } private isInstalledExtensionSynced(extension: ILocalExtension): boolean {

export const UPDATE_ACTIONS_GROUP = '0_update'; export const extensionsSearchActionsMenu = new MenuId('extensionsSearchActionsMenu'); <ins> export interface IExtensionArg { id: string; version: string; location: URI | undefined; } </ins>