@theia/dev-container 1.76.0-next.7 → 1.77.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/electron-browser/container-connection-contribution.d.ts +2 -0
  2. package/lib/electron-browser/container-connection-contribution.d.ts.map +1 -1
  3. package/lib/electron-browser/container-connection-contribution.js +12 -1
  4. package/lib/electron-browser/container-connection-contribution.js.map +1 -1
  5. package/lib/electron-browser/container-output-provider.d.ts +5 -0
  6. package/lib/electron-browser/container-output-provider.d.ts.map +1 -1
  7. package/lib/electron-browser/container-output-provider.js +11 -0
  8. package/lib/electron-browser/container-output-provider.js.map +1 -1
  9. package/lib/electron-browser/dev-container-attach-screen.d.ts +52 -0
  10. package/lib/electron-browser/dev-container-attach-screen.d.ts.map +1 -0
  11. package/lib/electron-browser/dev-container-attach-screen.js +142 -0
  12. package/lib/electron-browser/dev-container-attach-screen.js.map +1 -0
  13. package/lib/electron-browser/dev-container-attach-screen.spec.d.ts +2 -0
  14. package/lib/electron-browser/dev-container-attach-screen.spec.d.ts.map +1 -0
  15. package/lib/electron-browser/dev-container-attach-screen.spec.js +51 -0
  16. package/lib/electron-browser/dev-container-attach-screen.spec.js.map +1 -0
  17. package/lib/electron-browser/dev-container-frontend-module.d.ts +1 -0
  18. package/lib/electron-browser/dev-container-frontend-module.d.ts.map +1 -1
  19. package/lib/electron-browser/dev-container-frontend-module.js +3 -0
  20. package/lib/electron-browser/dev-container-frontend-module.js.map +1 -1
  21. package/lib/electron-browser/dev-container-startup-contribution.d.ts +31 -1
  22. package/lib/electron-browser/dev-container-startup-contribution.d.ts.map +1 -1
  23. package/lib/electron-browser/dev-container-startup-contribution.js +114 -9
  24. package/lib/electron-browser/dev-container-startup-contribution.js.map +1 -1
  25. package/lib/electron-browser/dev-container-startup-contribution.spec.d.ts +2 -0
  26. package/lib/electron-browser/dev-container-startup-contribution.spec.d.ts.map +1 -0
  27. package/lib/electron-browser/dev-container-startup-contribution.spec.js +199 -0
  28. package/lib/electron-browser/dev-container-startup-contribution.spec.js.map +1 -0
  29. package/lib/electron-common/container-output-provider.d.ts +6 -0
  30. package/lib/electron-common/container-output-provider.d.ts.map +1 -1
  31. package/lib/electron-common/remote-container-connection-provider.d.ts +10 -0
  32. package/lib/electron-common/remote-container-connection-provider.d.ts.map +1 -1
  33. package/lib/electron-main/dev-container-claim-contribution.d.ts +13 -0
  34. package/lib/electron-main/dev-container-claim-contribution.d.ts.map +1 -0
  35. package/lib/electron-main/dev-container-claim-contribution.js +38 -0
  36. package/lib/electron-main/dev-container-claim-contribution.js.map +1 -0
  37. package/lib/electron-main/dev-container-electron-main-module.d.ts +4 -0
  38. package/lib/electron-main/dev-container-electron-main-module.d.ts.map +1 -0
  39. package/lib/electron-main/dev-container-electron-main-module.js +25 -0
  40. package/lib/electron-main/dev-container-electron-main-module.js.map +1 -0
  41. package/lib/electron-node/remote-container-connection-provider.d.ts +1 -1
  42. package/lib/electron-node/remote-container-connection-provider.d.ts.map +1 -1
  43. package/lib/electron-node/remote-container-connection-provider.js +10 -5
  44. package/lib/electron-node/remote-container-connection-provider.js.map +1 -1
  45. package/package.json +9 -8
  46. package/src/electron-browser/container-connection-contribution.ts +11 -1
  47. package/src/electron-browser/container-output-provider.ts +11 -0
  48. package/src/electron-browser/dev-container-attach-screen.spec.ts +60 -0
  49. package/src/electron-browser/dev-container-attach-screen.tsx +180 -0
  50. package/src/electron-browser/dev-container-frontend-module.ts +3 -0
  51. package/src/electron-browser/dev-container-startup-contribution.spec.ts +245 -0
  52. package/src/electron-browser/dev-container-startup-contribution.ts +113 -15
  53. package/src/electron-browser/style/dev-container-attach-screen.css +75 -0
  54. package/src/electron-common/container-output-provider.ts +6 -0
  55. package/src/electron-common/remote-container-connection-provider.ts +10 -0
  56. package/src/electron-main/dev-container-claim-contribution.ts +34 -0
  57. package/src/electron-main/dev-container-electron-main-module.ts +24 -0
  58. package/src/electron-node/remote-container-connection-provider.ts +10 -5
@@ -204,7 +204,7 @@ let DevContainerConnectionProvider = class DevContainerConnectionProvider {
204
204
  const context = { containerId: container.id };
205
205
  const devContainerConfig = await this.devContainerFileService.getConfiguration(options.devcontainerFile, context);
206
206
  report('Connecting to remote system...');
207
- const result = await this.setupRemoteConnection(container, docker, devContainerConfig, options.nodeDownloadTemplate, report);
207
+ const result = await this.setupRemoteConnection(container, docker, devContainerConfig, options.nodeDownloadTemplate, report, options.additionalArgs);
208
208
  remote = result.remote;
209
209
  await this.containerService.postConnect(options.devcontainerFile, remote, this.outputProvider, context);
210
210
  return {
@@ -243,7 +243,11 @@ let DevContainerConnectionProvider = class DevContainerConnectionProvider {
243
243
  async attachToContainer(options) {
244
244
  const progress = await this.messageService.showProgress({ text: 'Attaching to container' });
245
245
  try {
246
- const report = message => progress.report({ message });
246
+ const report = message => {
247
+ progress.report({ message });
248
+ // Mirror the status to the frontend so the CLI "attaching" screen can show live progress.
249
+ this.outputProvider?.onRemoteStatus?.(message);
250
+ };
247
251
  const docker = await this.createDockerConnection();
248
252
  const container = docker.getContainer(options.containerId);
249
253
  const containerInfo = await container.inspect();
@@ -262,7 +266,7 @@ let DevContainerConnectionProvider = class DevContainerConnectionProvider {
262
266
  let remote;
263
267
  try {
264
268
  report('Connecting to remote system...');
265
- const result = await this.setupRemoteConnection(container, docker, config, options.nodeDownloadTemplate, report);
269
+ const result = await this.setupRemoteConnection(container, docker, config, options.nodeDownloadTemplate, report, options.additionalArgs);
266
270
  remote = result.remote;
267
271
  if (options.devcontainerFile) {
268
272
  await this.containerService.postConnect(options.devcontainerFile, remote, this.outputProvider, context);
@@ -318,7 +322,7 @@ let DevContainerConnectionProvider = class DevContainerConnectionProvider {
318
322
  *
319
323
  * @returns the local proxy port and the remote connection
320
324
  */
321
- async setupRemoteConnection(container, docker, config, nodeDownloadTemplate, report) {
325
+ async setupRemoteConnection(container, docker, config, nodeDownloadTemplate, report, additionalArgs) {
322
326
  const remote = new remote_docker_container_connection_1.RemoteDockerContainerConnection({
323
327
  id: (0, core_1.generateUuid)(),
324
328
  name: config.name ?? 'dev-container',
@@ -333,7 +337,8 @@ let DevContainerConnectionProvider = class DevContainerConnectionProvider {
333
337
  result = await this.remoteSetup.setup({
334
338
  connection: remote,
335
339
  report,
336
- nodeDownloadTemplate
340
+ nodeDownloadTemplate,
341
+ additionalArgs
337
342
  });
338
343
  }
339
344
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"remote-container-connection-provider.js","sourceRoot":"","sources":["../../src/electron-node/remote-container-connection-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-container-connection-provider.js","sourceRoot":"","sources":["../../src/electron-node/remote-container-connection-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@theia/dev-container",
3
- "version": "1.76.0-next.7+7c303b183",
3
+ "version": "1.77.0-next.0+d8106d7ff",
4
4
  "description": "Theia - Dev Container Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.76.0-next.7+7c303b183",
7
- "@theia/output": "1.76.0-next.7+7c303b183",
8
- "@theia/remote": "1.76.0-next.7+7c303b183",
9
- "@theia/workspace": "1.76.0-next.7+7c303b183",
6
+ "@theia/core": "1.77.0-next.0+d8106d7ff",
7
+ "@theia/output": "1.77.0-next.0+d8106d7ff",
8
+ "@theia/remote": "1.77.0-next.0+d8106d7ff",
9
+ "@theia/workspace": "1.77.0-next.0+d8106d7ff",
10
10
  "dockerode": "^5.0.1",
11
11
  "jsonc-parser": "^3.3.1"
12
12
  },
@@ -16,7 +16,8 @@
16
16
  "theiaExtensions": [
17
17
  {
18
18
  "frontendElectron": "lib/electron-browser/dev-container-frontend-module",
19
- "backendElectron": "lib/electron-node/dev-container-backend-module"
19
+ "backendElectron": "lib/electron-node/dev-container-backend-module",
20
+ "electronMain": "lib/electron-main/dev-container-electron-main-module"
20
21
  }
21
22
  ],
22
23
  "keywords": [
@@ -44,11 +45,11 @@
44
45
  "watch": "theiaext watch"
45
46
  },
46
47
  "devDependencies": {
47
- "@theia/ext-scripts": "1.75.0",
48
+ "@theia/ext-scripts": "1.76.0",
48
49
  "@types/dockerode": "^3.3.47"
49
50
  },
50
51
  "nyc": {
51
52
  "extends": "../../configs/nyc.json"
52
53
  },
53
- "gitHead": "7c303b1836421183d7013f0bd679a9a30ff0b5dc"
54
+ "gitHead": "d8106d7ffa62b3413ff1ca5b63a0e6c2fe0b0649"
54
55
  }
@@ -24,6 +24,7 @@ import { WorkspaceStorageService } from '@theia/workspace/lib/browser/workspace-
24
24
  import { Command, ILogger, MaybePromise, MessageService, nls, QuickInputService, URI } from '@theia/core';
25
25
  import { WorkspaceInput, WorkspaceOpenHandlerContribution, WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
26
26
  import { ContainerOutputProvider } from './container-output-provider';
27
+ import { RemoteCliArgsCollector } from '@theia/remote/lib/electron-browser/remote-cli-args-collector';
27
28
  import { WorkspaceServer } from '@theia/workspace/lib/common';
28
29
  import { DEV_CONTAINER_PATH_QUERY, DEV_CONTAINER_WORKSPACE_SCHEME } from '../electron-common/dev-container-workspaces';
29
30
  import { RemotePreferences } from '@theia/remote/lib/electron-common/remote-preferences';
@@ -89,6 +90,9 @@ export class ContainerConnectionContribution extends AbstractRemoteRegistryContr
89
90
  @inject(ContainerOutputProvider)
90
91
  protected readonly containerOutputProvider: ContainerOutputProvider;
91
92
 
93
+ @inject(RemoteCliArgsCollector)
94
+ protected readonly remoteCliArgsCollector: RemoteCliArgsCollector;
95
+
92
96
  @inject(DevContainerPreferences)
93
97
  protected readonly devContainerPreferences: DevContainerPreferences;
94
98
 
@@ -261,7 +265,10 @@ export class ContainerConnectionContribution extends AbstractRemoteRegistryContr
261
265
  nodeDownloadTemplate: this.remotePreferences['remote.nodeDownloadTemplate'],
262
266
  lastContainerInfo,
263
267
  devcontainerFile: devcontainerFile.path,
264
- workspacePath: hostWorkspacePath
268
+ workspacePath: hostWorkspacePath,
269
+ // Forward per-window CLI options (e.g. session preferences of a second-instance window),
270
+ // consistent with the attach flows, so "Reopen in Container" applies the same overrides.
271
+ additionalArgs: await this.remoteCliArgsCollector.collect()
265
272
  });
266
273
 
267
274
  await this.storageService.setData<LastContainerInfo>(lastContainerInfoKey, {
@@ -394,6 +401,9 @@ export class ContainerConnectionContribution extends AbstractRemoteRegistryContr
394
401
  workspacePath: selectedPath,
395
402
  nodeDownloadTemplate: this.remotePreferences['remote.nodeDownloadTemplate'],
396
403
  devcontainerFile,
404
+ // Forward per-window CLI options (e.g. session preferences of a second-instance window),
405
+ // consistent with the CLI startup attach, so a manual attach applies the same overrides.
406
+ additionalArgs: await this.remoteCliArgsCollector.collect(),
397
407
  });
398
408
 
399
409
  // Store context so rebuild works from inside the container
@@ -15,6 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject } from '@theia/core/shared/inversify';
18
+ import { Emitter, Event } from '@theia/core';
18
19
  import { OutputChannel, OutputChannelManager } from '@theia/output/lib/browser/output-channel';
19
20
 
20
21
  @injectable()
@@ -25,6 +26,10 @@ export class ContainerOutputProvider implements ContainerOutputProvider {
25
26
 
26
27
  protected currentChannel?: OutputChannel;
27
28
 
29
+ protected readonly onDidReportStatusEmitter = new Emitter<string>();
30
+ /** Fires with each curated attach status message (from {@link RemoteStatusReport}). */
31
+ readonly onDidReportStatus: Event<string> = this.onDidReportStatusEmitter.event;
32
+
28
33
  openChannel(): void {
29
34
  this.currentChannel = this.outputChannelManager.getChannel('Container');
30
35
  this.currentChannel.show();
@@ -35,4 +40,10 @@ export class ContainerOutputProvider implements ContainerOutputProvider {
35
40
  this.currentChannel?.appendLine(output);
36
41
  }
37
42
  }
43
+
44
+ onRemoteStatus(message: string): void {
45
+ if (message) {
46
+ this.onDidReportStatusEmitter.fire(message);
47
+ }
48
+ }
38
49
  }
@@ -0,0 +1,60 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
18
+
19
+ let disableJSDOM = enableJSDOM();
20
+
21
+ import { expect } from 'chai';
22
+ import { DevContainerAttachScreen } from './dev-container-attach-screen';
23
+
24
+ disableJSDOM();
25
+
26
+ describe('DevContainerAttachScreen.resolveSplashUrl', () => {
27
+
28
+ before(() => disableJSDOM = enableJSDOM());
29
+ after(() => disableJSDOM());
30
+
31
+ // The frontend HTML lives at `<appRoot>/lib/frontend/index.html`; splash content is resolved
32
+ // from `<appRoot>`, i.e. two levels up.
33
+ const base = 'file:///app/lib/frontend/index.html?port=3000#!empty';
34
+
35
+ it('resolves the splash content relative to the application root', () => {
36
+ expect(DevContainerAttachScreen.resolveSplashUrl('resources/theia-logo.svg', base))
37
+ .to.equal('file:///app/resources/theia-logo.svg');
38
+ });
39
+
40
+ it('uses an absolute path as-is, without the "../../" prefix', () => {
41
+ expect(DevContainerAttachScreen.resolveSplashUrl('/opt/app/logo.svg', base))
42
+ .to.equal('file:///opt/app/logo.svg');
43
+ });
44
+
45
+ it('uses an already-absolute URL as-is', () => {
46
+ expect(DevContainerAttachScreen.resolveSplashUrl('https://example.com/logo.svg', base))
47
+ .to.equal('https://example.com/logo.svg');
48
+ expect(DevContainerAttachScreen.resolveSplashUrl('data:image/svg+xml,<svg/>', base))
49
+ .to.equal('data:image/svg+xml,<svg/>');
50
+ });
51
+
52
+ it('returns undefined when no splash content is configured', () => {
53
+ expect(DevContainerAttachScreen.resolveSplashUrl(undefined, base)).to.be.undefined;
54
+ expect(DevContainerAttachScreen.resolveSplashUrl('', base)).to.be.undefined;
55
+ });
56
+
57
+ it('returns undefined when the base href is not a valid URL', () => {
58
+ expect(DevContainerAttachScreen.resolveSplashUrl('resources/logo.svg', 'not a url')).to.be.undefined;
59
+ });
60
+ });
@@ -0,0 +1,180 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import * as React from '@theia/core/shared/react';
18
+ import { injectable, postConstruct } from '@theia/core/shared/inversify';
19
+ import { codicon, ReactWidget, Widget } from '@theia/core/lib/browser';
20
+ import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
21
+ import { AlertMessage } from '@theia/core/lib/browser/widgets/alert-message';
22
+ import { MaybePromise, nls } from '@theia/core';
23
+
24
+ export interface AttachScreenErrorActions {
25
+ /** Re-run the attach. May be asynchronous; callers/tests can await it, the button handler ignores the result. */
26
+ retry: () => MaybePromise<void>;
27
+ /** Dismiss the screen and reveal the (empty) local window. */
28
+ close: () => void;
29
+ }
30
+
31
+ /**
32
+ * Full-window, interaction-blocking "attaching" screen shown during a CLI-driven dev-container
33
+ * attach. It hides the transient local workbench (which is discarded once the window reloads into
34
+ * the container) so the user is never left interacting with the wrong window, and it surfaces the
35
+ * attach progress and any failure with a clear retry/close choice.
36
+ */
37
+ @injectable()
38
+ export class DevContainerAttachScreen extends ReactWidget {
39
+
40
+ static readonly ID = 'dev-container-attach-screen';
41
+
42
+ protected containerName: string | undefined;
43
+ protected stage: string = nls.localize('theia/remote/dev-container/attachScreen/preparing', 'Preparing to attach...');
44
+ protected error: { message: string, actions: AttachScreenErrorActions } | undefined;
45
+
46
+ /** URL of the application's configured splash image, reused here for consistent startup branding. */
47
+ protected splashUrl: string | undefined;
48
+ protected splashFailed = false;
49
+
50
+ @postConstruct()
51
+ protected init(): void {
52
+ this.id = DevContainerAttachScreen.ID;
53
+ this.addClass('theia-dev-container-attach-screen');
54
+ this.splashUrl = DevContainerAttachScreen.resolveSplashUrl(
55
+ FrontendApplicationConfigProvider.get().electron?.splashScreenOptions?.content,
56
+ location.href
57
+ );
58
+ }
59
+
60
+ /** Shows the screen (attaching it to the document on first use) and optionally sets the target name. */
61
+ showAttaching(containerName?: string): void {
62
+ if (containerName) {
63
+ this.containerName = containerName;
64
+ }
65
+ this.error = undefined;
66
+ if (!this.isAttached) {
67
+ Widget.attach(this, document.body);
68
+ }
69
+ this.update();
70
+ }
71
+
72
+ /** Updates the current progress line, e.g. from a {@link RemoteStatusReport} message. */
73
+ reportStage(message: string): void {
74
+ if (message) {
75
+ this.stage = message;
76
+ this.update();
77
+ }
78
+ }
79
+
80
+ /** Switches the screen to an error state offering retry and close. */
81
+ reportError(message: string, actions: AttachScreenErrorActions): void {
82
+ this.error = { message, actions };
83
+ if (!this.isAttached) {
84
+ Widget.attach(this, document.body);
85
+ }
86
+ this.update();
87
+ }
88
+
89
+ override dispose(): void {
90
+ if (this.isAttached) {
91
+ Widget.detach(this);
92
+ }
93
+ super.dispose();
94
+ }
95
+
96
+ protected render(): React.ReactNode {
97
+ return <div className='theia-dev-container-attach-screen-content'>
98
+ {this.renderSplash()}
99
+ {this.error ? this.renderError(this.error.message, this.error.actions) : this.renderProgress()}
100
+ </div>;
101
+ }
102
+
103
+ protected renderSplash(): React.ReactNode {
104
+ if (!this.splashUrl || this.splashFailed) {
105
+ return undefined;
106
+ }
107
+ return <img className='theia-dev-container-attach-screen-logo' src={this.splashUrl} alt='' onError={this.onSplashError} />;
108
+ }
109
+
110
+ protected onSplashError = () => {
111
+ // The image may be blocked (e.g. by CSP) or the content may not be an image; fall back to the spinner only.
112
+ this.splashFailed = true;
113
+ this.update();
114
+ };
115
+
116
+ protected renderProgress(): React.ReactNode {
117
+ const title = this.containerName
118
+ ? nls.localize('theia/remote/dev-container/attachScreen/titleNamed', 'Attaching to {0}', this.containerName)
119
+ : nls.localize('theia/remote/dev-container/attachScreen/title', 'Attaching to container');
120
+ return <React.Fragment>
121
+ <span className={`${codicon('loading')} theia-animation-spin theia-dev-container-attach-screen-spinner`} />
122
+ <h1 className='theia-dev-container-attach-screen-title'>{title}</h1>
123
+ <div className='theia-dev-container-attach-screen-stage'>{this.stage}</div>
124
+ <div className='theia-dev-container-attach-screen-note'>
125
+ {nls.localize('theia/remote/dev-container/attachScreen/firstStartNote',
126
+ 'The first start for a container can take a minute or two. Later starts are much faster.')}
127
+ </div>
128
+ </React.Fragment>;
129
+ }
130
+
131
+ protected renderError(message: string, actions: AttachScreenErrorActions): React.ReactNode {
132
+ return <React.Fragment>
133
+ <div className='theia-dev-container-attach-screen-alert'>
134
+ <AlertMessage
135
+ type='ERROR'
136
+ header={nls.localize('theia/remote/dev-container/attachScreen/errorHeader', 'Failed to attach to container')}
137
+ >
138
+ {message}
139
+ </AlertMessage>
140
+ </div>
141
+ <div className='theia-dev-container-attach-screen-actions'>
142
+ <button className='theia-button' onClick={actions.retry}>
143
+ {nls.localizeByDefault('Retry')}
144
+ </button>
145
+ <button className='theia-button secondary' onClick={actions.close}>
146
+ {nls.localizeByDefault('Close')}
147
+ </button>
148
+ </div>
149
+ </React.Fragment>;
150
+ }
151
+ }
152
+
153
+ export namespace DevContainerAttachScreen {
154
+ /**
155
+ * Resolves the application's splash screen `content` (as configured in
156
+ * `electron.splashScreenOptions`) to a URL loadable from the frontend, given the frontend
157
+ * document's `baseHref`. A relative path is resolved against the application root: the frontend
158
+ * HTML lives at `<appRoot>/lib/frontend/`, so it is two levels up. An absolute path or an
159
+ * already-absolute URL is used as-is (mirroring the main process, which passes `content` through
160
+ * `path.resolve`). Returns `undefined` when no content is configured or the URL cannot be built.
161
+ */
162
+ export function resolveSplashUrl(content: string | undefined, baseHref: string): string | undefined {
163
+ if (!content) {
164
+ return undefined;
165
+ }
166
+ // A relative path is anchored below `lib/frontend/`; anything already absolute (an absolute
167
+ // filesystem path or a full URL) must not get the `../../` prefix or it would be mangled.
168
+ const specifier = isAbsolute(content) ? content : `../../${content}`;
169
+ try {
170
+ return new URL(specifier, baseHref).toString();
171
+ } catch {
172
+ return undefined;
173
+ }
174
+ }
175
+
176
+ function isAbsolute(content: string): boolean {
177
+ // POSIX/UNC path, Windows drive path (e.g. `C:\...`), or a URL with a scheme (e.g. `file:`, `https:`, `data:`).
178
+ return content.startsWith('/') || content.startsWith('\\') || /^[a-zA-Z]:[\\/]/.test(content) || /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(content);
179
+ }
180
+ }
@@ -13,8 +13,10 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
+ import '../../src/electron-browser/style/dev-container-attach-screen.css';
16
17
  import { ContainerModule } from '@theia/core/shared/inversify';
17
18
  import { RemoteRegistryContribution } from '@theia/remote/lib/electron-browser/remote-registry-contribution';
19
+ import { DevContainerAttachScreen } from './dev-container-attach-screen';
18
20
  import { RemoteContainerConnectionProvider, RemoteContainerConnectionProviderPath } from '../electron-common/remote-container-connection-provider';
19
21
  import { ContainerConnectionContribution } from './container-connection-contribution';
20
22
  import { ServiceConnectionProvider } from '@theia/core/lib/browser/messaging/service-connection-provider';
@@ -48,6 +50,7 @@ export default new ContainerModule(bind => {
48
50
  bind(DevContainerSuggestionContribution).toSelf().inSingletonScope();
49
51
  bind(FrontendApplicationContribution).toService(DevContainerSuggestionContribution);
50
52
 
53
+ bind(DevContainerAttachScreen).toSelf().inSingletonScope();
51
54
  bind(DevContainerStartupContribution).toSelf().inSingletonScope();
52
55
  bind(FrontendApplicationContribution).toService(DevContainerStartupContribution);
53
56
  });