@theia/core 1.51.0 → 1.52.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 (67) hide show
  1. package/README.md +11 -7
  2. package/i18n/nls.cs.json +4 -0
  3. package/i18n/nls.de.json +4 -0
  4. package/i18n/nls.es.json +4 -0
  5. package/i18n/nls.fr.json +4 -0
  6. package/i18n/nls.hu.json +4 -0
  7. package/i18n/nls.it.json +4 -0
  8. package/i18n/nls.ja.json +4 -0
  9. package/i18n/nls.json +4 -0
  10. package/i18n/nls.pl.json +4 -0
  11. package/i18n/nls.pt-br.json +4 -0
  12. package/i18n/nls.pt-pt.json +4 -0
  13. package/i18n/nls.ru.json +4 -0
  14. package/i18n/nls.zh-cn.json +4 -0
  15. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  16. package/lib/browser/shell/application-shell.js +5 -1
  17. package/lib/browser/shell/application-shell.js.map +1 -1
  18. package/lib/browser/shell/split-panels.d.ts +1 -1
  19. package/lib/browser/shell/split-panels.d.ts.map +1 -1
  20. package/lib/browser/shell/split-panels.js +4 -3
  21. package/lib/browser/shell/split-panels.js.map +1 -1
  22. package/lib/browser/shell/tab-bars.js +1 -1
  23. package/lib/browser/shell/tab-bars.js.map +1 -1
  24. package/lib/browser/widget-manager.d.ts +2 -1
  25. package/lib/browser/widget-manager.d.ts.map +1 -1
  26. package/lib/browser/widget-manager.js +16 -9
  27. package/lib/browser/widget-manager.js.map +1 -1
  28. package/lib/browser/widget-open-handler.js +1 -1
  29. package/lib/browser/widget-open-handler.js.map +1 -1
  30. package/lib/common/preferences/preference-schema.d.ts +5 -0
  31. package/lib/common/preferences/preference-schema.d.ts.map +1 -1
  32. package/lib/common/preferences/preference-schema.js.map +1 -1
  33. package/lib/common/quick-pick-service.d.ts +0 -9
  34. package/lib/common/quick-pick-service.d.ts.map +1 -1
  35. package/lib/common/quick-pick-service.js.map +1 -1
  36. package/lib/electron-browser/preload.js +1 -1
  37. package/lib/electron-browser/preload.js.map +1 -1
  38. package/lib/electron-browser/window/electron-window-service.js +1 -1
  39. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  40. package/lib/electron-common/electron-api.d.ts +1 -1
  41. package/lib/electron-common/electron-api.d.ts.map +1 -1
  42. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  43. package/lib/electron-main/electron-main-application.js +4 -0
  44. package/lib/electron-main/electron-main-application.js.map +1 -1
  45. package/lib/electron-main/theia-electron-window.d.ts +1 -1
  46. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  47. package/lib/electron-main/theia-electron-window.js +8 -3
  48. package/lib/electron-main/theia-electron-window.js.map +1 -1
  49. package/lib/node/messaging/websocket-frontend-connection-service.d.ts +1 -0
  50. package/lib/node/messaging/websocket-frontend-connection-service.d.ts.map +1 -1
  51. package/lib/node/messaging/websocket-frontend-connection-service.js +8 -1
  52. package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
  53. package/package.json +7 -7
  54. package/src/browser/shell/application-shell.ts +5 -1
  55. package/src/browser/shell/split-panels.ts +4 -3
  56. package/src/browser/shell/tab-bars.ts +1 -1
  57. package/src/browser/style/tabs.css +11 -0
  58. package/src/browser/widget-manager.ts +19 -11
  59. package/src/browser/widget-open-handler.ts +3 -3
  60. package/src/common/preferences/preference-schema.ts +5 -0
  61. package/src/common/quick-pick-service.ts +0 -3
  62. package/src/electron-browser/preload.ts +1 -1
  63. package/src/electron-browser/window/electron-window-service.ts +1 -1
  64. package/src/electron-common/electron-api.ts +1 -1
  65. package/src/electron-main/electron-main-application.ts +8 -2
  66. package/src/electron-main/theia-electron-window.ts +7 -3
  67. package/src/node/messaging/websocket-frontend-connection-service.ts +11 -1
@@ -84,7 +84,7 @@ export interface TheiaCoreAPI {
84
84
  isFullScreen(): boolean; // TODO: this should really be async, since it blocks the renderer process
85
85
  toggleFullScreen(): void;
86
86
 
87
- requestReload(): void;
87
+ requestReload(newUrl?: string): void;
88
88
  restart(): void;
89
89
 
90
90
  applicationStateChanged(state: FrontendApplicationState): void;
@@ -15,8 +15,10 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { inject, injectable, named } from 'inversify';
18
- import { screen, app, BrowserWindow, WebContents, Event as ElectronEvent, BrowserWindowConstructorOptions, nativeImage,
19
- nativeTheme, shell, dialog } from '../../electron-shared/electron';
18
+ import {
19
+ screen, app, BrowserWindow, WebContents, Event as ElectronEvent, BrowserWindowConstructorOptions, nativeImage,
20
+ nativeTheme, shell, dialog
21
+ } from '../../electron-shared/electron';
20
22
  import * as path from 'path';
21
23
  import { Argv } from 'yargs';
22
24
  import { AddressInfo } from 'net';
@@ -350,6 +352,9 @@ export class ElectronMainApplication {
350
352
  alwaysOnTop: true,
351
353
  show: false,
352
354
  transparent: true,
355
+ webPreferences: {
356
+ backgroundThrottling: false
357
+ }
353
358
  });
354
359
 
355
360
  if (this.isShowWindowEarly()) {
@@ -458,6 +463,7 @@ export class ElectronMainApplication {
458
463
  // Setting the following option to `true` causes some features to break, somehow.
459
464
  // Issue: https://github.com/eclipse-theia/theia/issues/8577
460
465
  nodeIntegrationInWorker: false,
466
+ backgroundThrottling: false,
461
467
  preload: path.resolve(this.globals.THEIA_APP_PROJECT_PATH, 'lib', 'frontend', 'preload.js').toString()
462
468
  },
463
469
  ...this.config.electron?.windowOptions || {},
@@ -147,10 +147,14 @@ export class TheiaElectronWindow {
147
147
  return this.handleStopRequest(() => this.doCloseWindow(), reason);
148
148
  }
149
149
 
150
- protected reload(): void {
150
+ protected reload(newUrl?: string): void {
151
151
  this.handleStopRequest(async () => {
152
152
  this.applicationState = 'init';
153
- this._window.reload();
153
+ if (newUrl) {
154
+ this._window.loadURL(newUrl);
155
+ } else {
156
+ this._window.reload();
157
+ }
154
158
  }, StopReason.Reload);
155
159
  }
156
160
 
@@ -195,7 +199,7 @@ export class TheiaElectronWindow {
195
199
  }
196
200
 
197
201
  protected attachReloadListener(): void {
198
- this.toDispose.push(TheiaRendererAPI.onRequestReload(this.window.webContents, () => this.reload()));
202
+ this.toDispose.push(TheiaRendererAPI.onRequestReload(this.window.webContents, (newUrl?: string) => this.reload(newUrl)));
199
203
  }
200
204
 
201
205
  dispose(): void {
@@ -105,7 +105,8 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
105
105
  socket.on('disconnect', evt => {
106
106
  console.info('socked closed');
107
107
  channel.disconnect();
108
- const timeout = BackendApplicationConfigProvider.get().frontendConnectionTimeout;
108
+
109
+ const timeout = this.frontendConnectionTimeout();
109
110
  const isMarkedForClose = this.channelsMarkedForClose.delete(frontEndId);
110
111
  if (timeout === 0 || isMarkedForClose) {
111
112
  this.closeConnection(frontEndId, evt);
@@ -124,6 +125,15 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
124
125
  markForClose(channelId: string): void {
125
126
  this.channelsMarkedForClose.add(channelId);
126
127
  }
128
+
129
+ private frontendConnectionTimeout(): number {
130
+ const envValue = Number(process.env['FRONTEND_CONNECTION_TIMEOUT']);
131
+ if (!isNaN(envValue)) {
132
+ return envValue;
133
+ }
134
+
135
+ return BackendApplicationConfigProvider.get().frontendConnectionTimeout;
136
+ }
127
137
  }
128
138
 
129
139
  class ReconnectableSocketChannel extends AbstractChannel {