@theia/core 1.21.0-next.17 → 1.21.0-next.21

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 (65) hide show
  1. package/lib/browser/common-frontend-contribution.d.ts +5 -2
  2. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  3. package/lib/browser/common-frontend-contribution.js +21 -4
  4. package/lib/browser/common-frontend-contribution.js.map +1 -1
  5. package/lib/browser/dialogs.d.ts +1 -0
  6. package/lib/browser/dialogs.d.ts.map +1 -1
  7. package/lib/browser/dialogs.js +11 -1
  8. package/lib/browser/dialogs.js.map +1 -1
  9. package/lib/browser/frontend-application.d.ts +15 -2
  10. package/lib/browser/frontend-application.d.ts.map +1 -1
  11. package/lib/browser/frontend-application.js +8 -1
  12. package/lib/browser/frontend-application.js.map +1 -1
  13. package/lib/browser/shell/application-shell-mouse-tracker.js +2 -2
  14. package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
  15. package/lib/browser/shell/application-shell.d.ts +0 -13
  16. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  17. package/lib/browser/shell/application-shell.js +1 -16
  18. package/lib/browser/shell/application-shell.js.map +1 -1
  19. package/lib/browser/shell/shell-layout-restorer.d.ts +2 -0
  20. package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
  21. package/lib/browser/shell/shell-layout-restorer.js +13 -6
  22. package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
  23. package/lib/browser/window/default-window-service.d.ts +19 -2
  24. package/lib/browser/window/default-window-service.d.ts.map +1 -1
  25. package/lib/browser/window/default-window-service.js +67 -12
  26. package/lib/browser/window/default-window-service.js.map +1 -1
  27. package/lib/browser/window/default-window-service.spec.js +3 -3
  28. package/lib/browser/window/default-window-service.spec.js.map +1 -1
  29. package/lib/browser/window/test/mock-window-service.d.ts +3 -1
  30. package/lib/browser/window/test/mock-window-service.d.ts.map +1 -1
  31. package/lib/browser/window/test/mock-window-service.js +3 -1
  32. package/lib/browser/window/test/mock-window-service.js.map +1 -1
  33. package/lib/browser/window/window-service.d.ts +20 -6
  34. package/lib/browser/window/window-service.d.ts.map +1 -1
  35. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -0
  36. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  37. package/lib/electron-browser/menu/electron-menu-contribution.js +6 -0
  38. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  39. package/lib/electron-browser/window/electron-window-service.d.ts +7 -5
  40. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  41. package/lib/electron-browser/window/electron-window-service.js +20 -42
  42. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  43. package/lib/electron-common/messaging/electron-messages.d.ts +27 -0
  44. package/lib/electron-common/messaging/electron-messages.d.ts.map +1 -1
  45. package/lib/electron-common/messaging/electron-messages.js +24 -1
  46. package/lib/electron-common/messaging/electron-messages.js.map +1 -1
  47. package/lib/electron-main/electron-main-application.d.ts +9 -0
  48. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  49. package/lib/electron-main/electron-main-application.js +57 -14
  50. package/lib/electron-main/electron-main-application.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/browser/common-frontend-contribution.ts +23 -6
  53. package/src/browser/dialogs.ts +9 -0
  54. package/src/browser/frontend-application.ts +19 -2
  55. package/src/browser/shell/application-shell-mouse-tracker.ts +2 -2
  56. package/src/browser/shell/application-shell.ts +1 -18
  57. package/src/browser/shell/shell-layout-restorer.ts +12 -6
  58. package/src/browser/window/default-window-service.spec.ts +3 -3
  59. package/src/browser/window/default-window-service.ts +69 -13
  60. package/src/browser/window/test/mock-window-service.ts +3 -1
  61. package/src/browser/window/window-service.ts +22 -8
  62. package/src/electron-browser/menu/electron-menu-contribution.ts +6 -1
  63. package/src/electron-browser/window/electron-window-service.ts +21 -41
  64. package/src/electron-common/messaging/electron-messages.ts +29 -0
  65. package/src/electron-main/electron-main-application.ts +74 -15
@@ -16,10 +16,11 @@
16
16
  import { Event, Emitter } from '../../common';
17
17
  import { CorePreferences } from '../core-preferences';
18
18
  import { ContributionProvider } from '../../common/contribution-provider';
19
- import { FrontendApplicationContribution, FrontendApplication } from '../frontend-application';
19
+ import { FrontendApplicationContribution, FrontendApplication, OnWillStopAction } from '../frontend-application';
20
20
  import { WindowService } from './window-service';
21
21
  export declare class DefaultWindowService implements WindowService, FrontendApplicationContribution {
22
22
  protected frontendApplication: FrontendApplication;
23
+ protected allowVetoes: boolean;
23
24
  protected onUnloadEmitter: Emitter<void>;
24
25
  get onUnload(): Event<void>;
25
26
  protected readonly corePreferences: CorePreferences;
@@ -27,11 +28,26 @@ export declare class DefaultWindowService implements WindowService, FrontendAppl
27
28
  onStart(app: FrontendApplication): void;
28
29
  openNewWindow(url: string): undefined;
29
30
  openNewDefaultWindow(): void;
30
- canUnload(): boolean;
31
+ /**
32
+ * Returns a list of actions that {@link FrontendApplicationContribution}s would like to take before shutdown
33
+ * It is expected that this will succeed - i.e. return an empty array - at most once per session. If no vetoes are received
34
+ * during any cycle, no further checks will be made. In that case, shutdown should proceed unconditionally.
35
+ */
36
+ protected collectContributionUnloadVetoes(): OnWillStopAction[];
31
37
  /**
32
38
  * Implement the mechanism to detect unloading of the page.
33
39
  */
34
40
  protected registerUnloadListeners(): void;
41
+ isSafeToShutDown(): Promise<boolean>;
42
+ setSafeToShutDown(): void;
43
+ /**
44
+ * Called when the `window` is about to `unload` its resources.
45
+ * At this point, the `document` is still visible and the [`BeforeUnloadEvent`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event)
46
+ * event will be canceled if the return value of this method is `false`.
47
+ *
48
+ * In Electron, handleCloseRequestEvent is is run instead.
49
+ */
50
+ protected handleBeforeUnloadEvent(event: BeforeUnloadEvent): string | void;
35
51
  /**
36
52
  * Notify the browser that we do not want to unload.
37
53
  *
@@ -42,5 +58,6 @@ export declare class DefaultWindowService implements WindowService, FrontendAppl
42
58
  * @param event The beforeunload event
43
59
  */
44
60
  protected preventUnload(event: BeforeUnloadEvent): string | void;
61
+ reload(): void;
45
62
  }
46
63
  //# sourceMappingURL=default-window-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,qBACa,oBAAqB,YAAW,aAAa,EAAE,+BAA+B;IAEvF,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAEnD,SAAS,CAAC,eAAe,gBAAuB;IAChD,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAE1B;IAGD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAIpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAKvC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAKrC,oBAAoB,IAAI,IAAI;IAI5B,SAAS,IAAI,OAAO;IAWpB;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAazC;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;CAMnE"}
1
+ {"version":3,"file":"default-window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,qBACa,oBAAqB,YAAW,aAAa,EAAE,+BAA+B;IAEvF,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACnD,SAAS,CAAC,WAAW,UAAQ;IAE7B,SAAS,CAAC,eAAe,gBAAuB;IAChD,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAE1B;IAGD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAIpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAKvC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAKrC,oBAAoB,IAAI,IAAI;IAI5B;;;;OAIG;IACH,SAAS,CAAC,+BAA+B,IAAI,gBAAgB,EAAE;IAwB/D;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,IAAI;IASnC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB1C,iBAAiB,IAAI,IAAI;IAIzB;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAU1E;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAMhE,MAAM,IAAI,IAAI;CAGjB"}
@@ -31,8 +31,10 @@ const core_preferences_1 = require("../core-preferences");
31
31
  const contribution_provider_1 = require("../../common/contribution-provider");
32
32
  const frontend_application_1 = require("../frontend-application");
33
33
  const window_1 = require("../../common/window");
34
+ const dialogs_1 = require("../dialogs");
34
35
  let DefaultWindowService = class DefaultWindowService {
35
36
  constructor() {
37
+ this.allowVetoes = true;
36
38
  this.onUnloadEmitter = new common_1.Emitter();
37
39
  }
38
40
  get onUnload() {
@@ -49,32 +51,82 @@ let DefaultWindowService = class DefaultWindowService {
49
51
  openNewDefaultWindow() {
50
52
  this.openNewWindow(`#${window_1.DEFAULT_WINDOW_HASH}`);
51
53
  }
52
- canUnload() {
54
+ /**
55
+ * Returns a list of actions that {@link FrontendApplicationContribution}s would like to take before shutdown
56
+ * It is expected that this will succeed - i.e. return an empty array - at most once per session. If no vetoes are received
57
+ * during any cycle, no further checks will be made. In that case, shutdown should proceed unconditionally.
58
+ */
59
+ collectContributionUnloadVetoes() {
53
60
  var _a;
54
- const confirmExit = this.corePreferences['application.confirmExit'];
55
- let preventUnload = confirmExit === 'always';
56
- for (const contribution of this.contributions.getContributions()) {
57
- if ((_a = contribution.onWillStop) === null || _a === void 0 ? void 0 : _a.call(contribution, this.frontendApplication)) {
58
- preventUnload = true;
61
+ const vetoes = [];
62
+ if (this.allowVetoes) {
63
+ const shouldConfirmExit = this.corePreferences['application.confirmExit'];
64
+ for (const contribution of this.contributions.getContributions()) {
65
+ const veto = (_a = contribution.onWillStop) === null || _a === void 0 ? void 0 : _a.call(contribution, this.frontendApplication);
66
+ if (veto && shouldConfirmExit !== 'never') { // Ignore vetoes if we should not prompt the user on exit.
67
+ if (frontend_application_1.OnWillStopAction.is(veto)) {
68
+ vetoes.push(veto);
69
+ }
70
+ else {
71
+ vetoes.push({ reason: 'No reason given', action: () => false });
72
+ }
73
+ }
74
+ }
75
+ if (vetoes.length === 0 && shouldConfirmExit === 'always') {
76
+ vetoes.push({ reason: 'application.confirmExit preference', action: () => dialogs_1.confirmExit() });
77
+ }
78
+ if (vetoes.length === 0) {
79
+ this.allowVetoes = false;
59
80
  }
60
81
  }
61
- return confirmExit === 'never' || !preventUnload;
82
+ return vetoes;
62
83
  }
63
84
  /**
64
85
  * Implement the mechanism to detect unloading of the page.
65
86
  */
66
87
  registerUnloadListeners() {
67
- window.addEventListener('beforeunload', event => {
68
- if (!this.canUnload()) {
69
- return this.preventUnload(event);
70
- }
71
- });
88
+ window.addEventListener('beforeunload', event => this.handleBeforeUnloadEvent(event));
72
89
  // In a browser, `unload` is correctly fired when the page unloads, unlike Electron.
73
90
  // If `beforeunload` is cancelled, the user will be prompted to leave or stay.
74
91
  // If the user stays, the page won't be unloaded, so `unload` is not fired.
75
92
  // If the user leaves, the page will be unloaded, so `unload` is fired.
76
93
  window.addEventListener('unload', () => this.onUnloadEmitter.fire());
77
94
  }
95
+ async isSafeToShutDown() {
96
+ const vetoes = this.collectContributionUnloadVetoes();
97
+ if (vetoes.length === 0) {
98
+ return true;
99
+ }
100
+ console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
101
+ const resolvedVetoes = await Promise.allSettled(vetoes.map(({ action }) => action()));
102
+ if (resolvedVetoes.every(resolution => resolution.status === 'rejected' || resolution.value === true)) {
103
+ console.debug('OnWillStop actions resolved; allowing shutdown');
104
+ this.allowVetoes = false;
105
+ return true;
106
+ }
107
+ else {
108
+ return false;
109
+ }
110
+ }
111
+ setSafeToShutDown() {
112
+ this.allowVetoes = false;
113
+ }
114
+ /**
115
+ * Called when the `window` is about to `unload` its resources.
116
+ * At this point, the `document` is still visible and the [`BeforeUnloadEvent`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event)
117
+ * event will be canceled if the return value of this method is `false`.
118
+ *
119
+ * In Electron, handleCloseRequestEvent is is run instead.
120
+ */
121
+ handleBeforeUnloadEvent(event) {
122
+ const vetoes = this.collectContributionUnloadVetoes();
123
+ if (vetoes.length) {
124
+ // In the browser, we don't call the functions because this has to finish in a single tick, so we treat any desired action as a veto.
125
+ console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
126
+ return this.preventUnload(event);
127
+ }
128
+ console.debug('Shutdown will proceed.');
129
+ }
78
130
  /**
79
131
  * Notify the browser that we do not want to unload.
80
132
  *
@@ -89,6 +141,9 @@ let DefaultWindowService = class DefaultWindowService {
89
141
  event.preventDefault();
90
142
  return '';
91
143
  }
144
+ reload() {
145
+ window.location.reload();
146
+ }
92
147
  };
93
148
  __decorate([
94
149
  inversify_1.inject(core_preferences_1.CorePreferences),
@@ -1 +1 @@
1
- {"version":3,"file":"default-window-service.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,yCAAsD;AACtD,yCAA8C;AAC9C,0DAAsD;AACtD,8EAA0E;AAC1E,kEAA+F;AAE/F,gDAA0D;AAG1D,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAAjC;QAIc,oBAAe,GAAG,IAAI,gBAAO,EAAQ,CAAC;IAoEpD,CAAC;IAnEG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACtC,CAAC;IASD,OAAO,CAAC,GAAwB;QAC5B,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,GAAW;QACrB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,4BAAmB,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,SAAS;;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,WAAW,KAAK,QAAQ,CAAC;QAC7C,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE;YAC9D,UAAI,YAAY,CAAC,UAAU,+CAAvB,YAAY,EAAc,IAAI,CAAC,mBAAmB,GAAG;gBACrD,aAAa,GAAG,IAAI,CAAC;aACxB;SACJ;QACD,OAAO,WAAW,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC;IACrD,CAAC;IAED;;OAEG;IACO,uBAAuB;QAC7B,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpC;QACL,CAAC,CAAC,CAAC;QACH,oFAAoF;QACpF,8EAA8E;QAC9E,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;OAQG;IACO,aAAa,CAAC,KAAwB;QAC5C,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACd,CAAC;CAEJ,CAAA;AA9DG;IADC,kBAAM,CAAC,kCAAe,CAAC;;6DAC4B;AAIpD;IAFC,kBAAM,CAAC,4CAAoB,CAAC;IAC5B,iBAAK,CAAC,sDAA+B,CAAC;;2DACiD;AAd/E,oBAAoB;IADhC,sBAAU,EAAE;GACA,oBAAoB,CAwEhC;AAxEY,oDAAoB"}
1
+ {"version":3,"file":"default-window-service.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ describe('DefaultWindowService', () => {
53
53
  ];
54
54
  const windowService = setupWindowService('never', frontendContributions);
55
55
  assert(frontendContributions.every(contribution => !contribution.onWillStopCalled), 'contributions should not be called yet');
56
- assert(windowService.canUnload(), 'canUnload should return true');
56
+ assert(windowService['collectContributionUnloadVetoes']().length === 0, 'there should be no vetoes');
57
57
  assert(frontendContributions.every(contribution => contribution.onWillStopCalled), 'contributions should have been called');
58
58
  });
59
59
  it('onWillStop should be called on every contribution (ifRequired)', () => {
@@ -64,7 +64,7 @@ describe('DefaultWindowService', () => {
64
64
  ];
65
65
  const windowService = setupWindowService('ifRequired', frontendContributions);
66
66
  assert(frontendContributions.every(contribution => !contribution.onWillStopCalled), 'contributions should not be called yet');
67
- assert(!windowService.canUnload(), 'canUnload should return false');
67
+ assert(windowService['collectContributionUnloadVetoes']().length > 0, 'There should be vetoes');
68
68
  assert(frontendContributions.every(contribution => contribution.onWillStopCalled), 'contributions should have been called');
69
69
  });
70
70
  it('onWillStop should be called on every contribution (always)', () => {
@@ -74,7 +74,7 @@ describe('DefaultWindowService', () => {
74
74
  ];
75
75
  const windowService = setupWindowService('always', frontendContributions);
76
76
  assert(frontendContributions.every(contribution => !contribution.onWillStopCalled), 'contributions should not be called yet');
77
- assert(!windowService.canUnload(), 'canUnload should return false');
77
+ assert(windowService['collectContributionUnloadVetoes']().length > 0, 'there should be vetoes');
78
78
  assert(frontendContributions.every(contribution => contribution.onWillStopCalled), 'contributions should have been called');
79
79
  });
80
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"default-window-service.spec.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-window-service.spec.js","sourceRoot":"","sources":["../../../src/browser/window/default-window-service.spec.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ import { WindowService } from '../window-service';
3
3
  export declare class MockWindowService implements WindowService {
4
4
  openNewWindow(): undefined;
5
5
  openNewDefaultWindow(): void;
6
- canUnload(): boolean;
6
+ reload(): void;
7
+ isSafeToShutDown(): Promise<boolean>;
8
+ setSafeToShutDown(): void;
7
9
  get onUnload(): Event<void>;
8
10
  }
9
11
  //# sourceMappingURL=mock-window-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-window-service.d.ts","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,qBACa,iBAAkB,YAAW,aAAa;IACnD,aAAa,IAAI,SAAS;IAC1B,oBAAoB,IAAI,IAAI;IAC5B,SAAS,IAAI,OAAO;IACpB,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAuB;CACrD"}
1
+ {"version":3,"file":"mock-window-service.d.ts","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,qBACa,iBAAkB,YAAW,aAAa;IACnD,aAAa,IAAI,SAAS;IAC1B,oBAAoB,IAAI,IAAI;IAC5B,MAAM,IAAI,IAAI;IACd,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IACpC,iBAAiB,IAAI,IAAI;IACzB,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAuB;CACrD"}
@@ -27,7 +27,9 @@ const event_1 = require("../../../common/event");
27
27
  let MockWindowService = class MockWindowService {
28
28
  openNewWindow() { return undefined; }
29
29
  openNewDefaultWindow() { }
30
- canUnload() { return true; }
30
+ reload() { }
31
+ isSafeToShutDown() { return Promise.resolve(true); }
32
+ setSafeToShutDown() { }
31
33
  get onUnload() { return event_1.Event.None; }
32
34
  };
33
35
  MockWindowService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"mock-window-service.js","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAAuC;AACvC,iDAA8C;AAI9C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,aAAa,KAAgB,OAAO,SAAS,CAAC,CAAC,CAAC;IAChD,oBAAoB,KAAW,CAAC;IAChC,SAAS,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAkB,OAAO,aAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD,CAAA;AALY,iBAAiB;IAD7B,sBAAU,EAAE;GACA,iBAAiB,CAK7B;AALY,8CAAiB"}
1
+ {"version":3,"file":"mock-window-service.js","sourceRoot":"","sources":["../../../../src/browser/window/test/mock-window-service.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAAuC;AACvC,iDAA8C;AAI9C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,aAAa,KAAgB,OAAO,SAAS,CAAC,CAAC,CAAC;IAChD,oBAAoB,KAAW,CAAC;IAChC,MAAM,KAAW,CAAC;IAClB,gBAAgB,KAAuB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,iBAAiB,KAAW,CAAC;IAC7B,IAAI,QAAQ,KAAkB,OAAO,aAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD,CAAA;AAPY,iBAAiB;IAD7B,sBAAU,EAAE;GACA,iBAAiB,CAO7B;AAPY,8CAAiB"}
@@ -31,16 +31,30 @@ export interface WindowService {
31
31
  * - In electron and in the browser it will open the default window without a pre-defined content.
32
32
  */
33
33
  openNewDefaultWindow(): void;
34
- /**
35
- * Called when the `window` is about to `unload` its resources.
36
- * At this point, the `document` is still visible and the [`BeforeUnloadEvent`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event)
37
- * event will be canceled if the return value of this method is `false`.
38
- */
39
- canUnload(): boolean;
40
34
  /**
41
35
  * Fires when the `window` unloads. The unload event is inevitable. On this event, the frontend application can save its state and release resource.
42
36
  * Saving the state and releasing any resources must be a synchronous call. Any asynchronous calls invoked after emitting this event might be ignored.
43
37
  */
44
38
  readonly onUnload: Event<void>;
39
+ /**
40
+ * Checks `FrontendApplicationContribution#willStop` for impediments to shutdown and runs any actions returned.
41
+ * Can be used safely in browser and Electron when triggering reload or shutdown programmatically.
42
+ * Should _only_ be called before a shutdown - if this returns `true`, `FrontendApplicationContribution#willStop`
43
+ * will not be called again in the current session. I.e. if this return `true`, the shutdown should proceed without
44
+ * further condition.
45
+ */
46
+ isSafeToShutDown(): Promise<boolean>;
47
+ /**
48
+ * Will prevent subsequent checks of `FrontendApplicationContribution#willStop`. Should only be used after requesting
49
+ * user confirmation.
50
+ *
51
+ * This is primarily intended programmatic restarts due to e.g. change of display language. It allows for a single confirmation
52
+ * of intent, rather than one warning and then several warnings from other contributions.
53
+ */
54
+ setSafeToShutDown(): void;
55
+ /**
56
+ * Reloads the window according to platform.
57
+ */
58
+ reload(): void;
45
59
  }
46
60
  //# sourceMappingURL=window-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,MAAM,WAAW,aAAa;IAE1B;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAElE;;;OAGG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAElC"}
1
+ {"version":3,"file":"window-service.d.ts","sourceRoot":"","sources":["../../../src/browser/window/window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAElE;;;OAGG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;CAClB"}
@@ -19,6 +19,7 @@ import { ApplicationShell, KeybindingContribution, KeybindingRegistry, FrontendA
19
19
  import { ElectronMainMenuFactory } from './electron-main-menu-factory';
20
20
  import { FrontendApplicationStateService } from '../../browser/frontend-application-state';
21
21
  import { BrowserMenuBarContribution } from '../../browser/menu/browser-menu-plugin';
22
+ import { WindowService } from '../../browser/window/window-service';
22
23
  import '../../../src/electron-browser/menu/electron-menu-style.css';
23
24
  export declare namespace ElectronCommands {
24
25
  const TOGGLE_DEVELOPER_TOOLS: Command;
@@ -43,6 +44,7 @@ export declare class ElectronMenuContribution extends BrowserMenuBarContribution
43
44
  protected readonly factory: ElectronMainMenuFactory;
44
45
  protected shell: ApplicationShell;
45
46
  protected readonly stateService: FrontendApplicationStateService;
47
+ protected readonly windowService: WindowService;
46
48
  protected titleBarStyleChangeFlag: boolean;
47
49
  protected titleBarStyle?: string;
48
50
  constructor(factory: ElectronMainMenuFactory, shell: ApplicationShell);
@@ -1 +1 @@
1
- {"version":3,"file":"electron-menu-contribution.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/menu/electron-menu-contribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,OAAO,EACH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAC3B,iBAAiB,EAAE,gBAAgB,EACxD,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,gBAAgB,EAA0B,sBAAsB,EAAE,kBAAkB,EAC3D,mBAAmB,EAAE,+BAA+B,EAChF,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAA4B,MAAM,0CAA0C,CAAC;AAIrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,OAAO,4DAA4D,CAAC;AAEpE,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,sBAAsB,SAGjC,CAAC;IACI,MAAM,MAAM,SAGjB,CAAC;IACI,MAAM,OAAO,SAGlB,CAAC;IACI,MAAM,QAAQ,SAGnB,CAAC;IACI,MAAM,UAAU,SAGrB,CAAC;IACI,MAAM,YAAY,SAGvB,CAAC;IACI,MAAM,kBAAkB,SAI7B,CAAC;CACN;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,WAAW,UAAkC,CAAC;IACpD,MAAM,SAAS,UAAgC,CAAC;CAC1D;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,WAAW,UAAoC,CAAC;CAChE;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,UAAU,UAA8C,CAAC;CACzE;AAED,qBACa,wBAAyB,SAAQ,0BAA2B,YAAW,+BAA+B,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB;IASzI,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB;IAC1D,SAAS,CAAC,KAAK,EAAE,gBAAgB;IAP/D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IAEjE,SAAS,CAAC,uBAAuB,UAAS;IAC1C,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAGuB,OAAO,EAAE,uBAAuB,EAChD,KAAK,EAAE,gBAAgB;IAK/D,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IA2BvC,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAwBrD,qBAAqB,IAAI,IAAI;IAO7B;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IActD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,YAAY,GAAE,QAAQ,CAAC,IAAI,GAAG,IAA2C,EACjH,cAAc,GAAE,QAAQ,CAAC,aAAkD,GAAG,IAAI;IAatF,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI;IAiBtG,SAAS,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI;IAc5E,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,WAAW;cAQ3D,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAwDjD,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAiCvD,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CA0BnD"}
1
+ {"version":3,"file":"electron-menu-contribution.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/menu/electron-menu-contribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,OAAO,EACH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAC3B,iBAAiB,EAAE,gBAAgB,EACxD,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,gBAAgB,EAA0B,sBAAsB,EAAE,kBAAkB,EAC3D,mBAAmB,EAAE,+BAA+B,EAChF,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAA4B,MAAM,0CAA0C,CAAC;AAIrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,4DAA4D,CAAC;AAEpE,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,sBAAsB,SAGjC,CAAC;IACI,MAAM,MAAM,SAGjB,CAAC;IACI,MAAM,OAAO,SAGlB,CAAC;IACI,MAAM,QAAQ,SAGnB,CAAC;IACI,MAAM,UAAU,SAGrB,CAAC;IACI,MAAM,YAAY,SAGvB,CAAC;IACI,MAAM,kBAAkB,SAI7B,CAAC;CACN;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,WAAW,UAAkC,CAAC;IACpD,MAAM,SAAS,UAAgC,CAAC;CAC1D;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,WAAW,UAAoC,CAAC;CAChE;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,UAAU,UAA8C,CAAC;CACzE;AAED,qBACa,wBAAyB,SAAQ,0BAA2B,YAAW,+BAA+B,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB;IAYzI,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB;IAC1D,SAAS,CAAC,KAAK,EAAE,gBAAgB;IAV/D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IAGjE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,uBAAuB,UAAS;IAC1C,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAGuB,OAAO,EAAE,uBAAuB,EAChD,KAAK,EAAE,gBAAgB;IAK/D,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IA2BvC,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAwBrD,qBAAqB,IAAI,IAAI;IAO7B;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IActD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,YAAY,GAAE,QAAQ,CAAC,IAAI,GAAG,IAA2C,EACjH,cAAc,GAAE,QAAQ,CAAC,aAAkD,GAAG,IAAI;IAatF,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI;IAiBtG,SAAS,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI;IAc5E,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,WAAW;cAQ3D,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAwDjD,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAiCvD,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CA0BnD"}
@@ -38,6 +38,7 @@ const frontend_application_config_provider_1 = require("../../browser/frontend-a
38
38
  const electron_messages_1 = require("../../electron-common/messaging/electron-messages");
39
39
  const electron_window_preferences_1 = require("../window/electron-window-preferences");
40
40
  const browser_menu_plugin_1 = require("../../browser/menu/browser-menu-plugin");
41
+ const window_service_1 = require("../../browser/window/window-service");
41
42
  require("../../../src/electron-browser/menu/electron-menu-style.css");
42
43
  var ElectronCommands;
43
44
  (function (ElectronCommands) {
@@ -223,6 +224,7 @@ let ElectronMenuContribution = class ElectronMenuContribution extends browser_me
223
224
  cancel: browser_1.Dialog.CANCEL
224
225
  });
225
226
  if (await dialog.open()) {
227
+ this.windowService.setSafeToShutDown();
226
228
  electron.ipcRenderer.send(electron_messages_1.Restart);
227
229
  }
228
230
  }
@@ -333,6 +335,10 @@ __decorate([
333
335
  inversify_1.inject(frontend_application_state_1.FrontendApplicationStateService),
334
336
  __metadata("design:type", frontend_application_state_1.FrontendApplicationStateService)
335
337
  ], ElectronMenuContribution.prototype, "stateService", void 0);
338
+ __decorate([
339
+ inversify_1.inject(window_service_1.WindowService),
340
+ __metadata("design:type", Object)
341
+ ], ElectronMenuContribution.prototype, "windowService", void 0);
336
342
  ElectronMenuContribution = __decorate([
337
343
  inversify_1.injectable(),
338
344
  __param(0, inversify_1.inject(electron_main_menu_factory_1.ElectronMainMenuFactory)),
@@ -1 +1 @@
1
- {"version":3,"file":"electron-menu-contribution.js","sourceRoot":"","sources":["../../../src/electron-browser/menu/electron-menu-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"electron-menu-contribution.js","sourceRoot":"","sources":["../../../src/electron-browser/menu/electron-menu-contribution.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ import { NewWindowOptions } from '../../common/window';
17
17
  import { DefaultWindowService } from '../../browser/window/default-window-service';
18
18
  import { ElectronMainWindowService } from '../../electron-common/electron-main-window-service';
19
19
  import { ElectronWindowPreferences } from './electron-window-preferences';
20
+ import { CloseRequestArguments } from '../../electron-common/messaging/electron-messages';
20
21
  export declare class ElectronWindowService extends DefaultWindowService {
21
22
  /**
22
23
  * Lock to prevent multiple parallel executions of the `beforeunload` listener.
@@ -31,16 +32,17 @@ export declare class ElectronWindowService extends DefaultWindowService {
31
32
  openNewWindow(url: string, { external }?: NewWindowOptions): undefined;
32
33
  openNewDefaultWindow(): void;
33
34
  protected init(): void;
34
- registerUnloadListeners(): void;
35
+ protected registerUnloadListeners(): void;
35
36
  /**
36
- * When preventing `beforeunload` on Electron, no popup is shown.
37
- *
38
- * This method implements a modal to ask the user if he wants to quit the page.
37
+ * Run when ElectronMain detects a `close` event and emits a `close-requested` event.
38
+ * Should send an event to `electron.ipcRenderer` on the event's `confirmChannel` if it is safe to exit
39
+ * after running FrontentApplication `onWillStop` handlers or on the `cancelChannel` if it is not safe to exit.
39
40
  */
40
- protected shouldUnload(): boolean;
41
+ protected handleCloseRequestedEvent(event: CloseRequestArguments): Promise<void>;
41
42
  /**
42
43
  * Updates the window zoom level based on the preference value.
43
44
  */
44
45
  protected updateWindowZoomLevel(): void;
46
+ reload(): void;
45
47
  }
46
48
  //# sourceMappingURL=electron-window-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"electron-window-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAIlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,qBACa,qBAAsB,SAAQ,oBAAoB;IAE3D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,OAAO,CAAS;IAEvC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAGzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAExE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAE,gBAAqB,GAAG,SAAS;IAK1E,oBAAoB,IAAI,IAAI;IAK5B,SAAS,CAAC,IAAI,IAAI,IAAI;IAStB,uBAAuB,IAAI,IAAI;IA4B/B;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO;IAYjC;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;CAO1C"}
1
+ {"version":3,"file":"electron-window-service.d.ts","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAIlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAA+D,MAAM,mDAAmD,CAAC;AAEvJ,qBACa,qBAAsB,SAAQ,oBAAoB;IAE3D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,OAAO,CAAS;IAEvC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAGzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAExE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAE,gBAAqB,GAAG,SAAS;IAK1E,oBAAoB,IAAI,IAAI;IAK5B,SAAS,CAAC,IAAI,IAAI,IAAI;IAStB,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAKzC;;;;OAIG;cACa,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtF;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAQvC,MAAM,IAAI,IAAI;CAGjB"}
@@ -26,10 +26,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.ElectronWindowService = void 0;
28
28
  const inversify_1 = require("inversify");
29
- const electron_1 = require("../../../shared/electron");
29
+ const electron = require("../../../shared/electron");
30
30
  const default_window_service_1 = require("../../browser/window/default-window-service");
31
31
  const electron_main_window_service_1 = require("../../electron-common/electron-main-window-service");
32
32
  const electron_window_preferences_1 = require("./electron-window-preferences");
33
+ const electron_messages_1 = require("../../electron-common/messaging/electron-messages");
33
34
  let ElectronWindowService = class ElectronWindowService extends default_window_service_1.DefaultWindowService {
34
35
  constructor() {
35
36
  super(...arguments);
@@ -58,60 +59,37 @@ let ElectronWindowService = class ElectronWindowService extends default_window_s
58
59
  });
59
60
  }
60
61
  registerUnloadListeners() {
61
- window.addEventListener('beforeunload', event => {
62
- if (this.isUnloading) {
63
- // Unloading process ongoing, do nothing:
64
- return this.preventUnload(event);
65
- }
66
- else if (this.closeOnUnload || this.canUnload()) {
67
- // Let the window close and notify clients:
68
- delete event.returnValue;
69
- this.onUnloadEmitter.fire();
70
- return;
71
- }
72
- else {
73
- this.isUnloading = true;
74
- // Fix https://github.com/eclipse-theia/theia/issues/8186#issuecomment-742624480
75
- // On Electron/Linux doing `showMessageBoxSync` does not seems to block the closing
76
- // process long enough and closes the window no matter what you click on (yes/no).
77
- // Instead we'll prevent closing right away, ask for confirmation and finally close.
78
- setTimeout(() => {
79
- if (this.shouldUnload()) {
80
- this.closeOnUnload = true;
81
- window.close();
82
- }
83
- this.isUnloading = false;
84
- });
85
- return this.preventUnload(event);
86
- }
87
- });
62
+ electron.ipcRenderer.on(electron_messages_1.CLOSE_REQUESTED_SIGNAL, (_event, closeRequestEvent) => this.handleCloseRequestedEvent(closeRequestEvent));
63
+ window.addEventListener('unload', () => this.onUnloadEmitter.fire());
88
64
  }
89
65
  /**
90
- * When preventing `beforeunload` on Electron, no popup is shown.
91
- *
92
- * This method implements a modal to ask the user if he wants to quit the page.
66
+ * Run when ElectronMain detects a `close` event and emits a `close-requested` event.
67
+ * Should send an event to `electron.ipcRenderer` on the event's `confirmChannel` if it is safe to exit
68
+ * after running FrontentApplication `onWillStop` handlers or on the `cancelChannel` if it is not safe to exit.
93
69
  */
94
- shouldUnload() {
95
- const electronWindow = electron_1.remote.getCurrentWindow();
96
- const response = electron_1.remote.dialog.showMessageBoxSync(electronWindow, {
97
- type: 'question',
98
- buttons: ['Yes', 'No'],
99
- title: 'Confirm',
100
- message: 'Are you sure you want to quit?',
101
- detail: 'Any unsaved changes will not be saved.'
102
- });
103
- return response === 0; // 'Yes', close the window.
70
+ async handleCloseRequestedEvent(event) {
71
+ const safeToClose = await this.isSafeToShutDown();
72
+ if (safeToClose) {
73
+ console.debug(`Shutting down because of ${electron_messages_1.StopReason[event.reason]} request.`);
74
+ electron.ipcRenderer.send(event.confirmChannel);
75
+ }
76
+ else {
77
+ electron.ipcRenderer.send(event.cancelChannel);
78
+ }
104
79
  }
105
80
  /**
106
81
  * Updates the window zoom level based on the preference value.
107
82
  */
108
83
  updateWindowZoomLevel() {
109
84
  const preferredZoomLevel = this.electronWindowPreferences['window.zoomLevel'];
110
- const webContents = electron_1.remote.getCurrentWindow().webContents;
85
+ const webContents = electron.remote.getCurrentWindow().webContents;
111
86
  if (webContents.getZoomLevel() !== preferredZoomLevel) {
112
87
  webContents.setZoomLevel(preferredZoomLevel);
113
88
  }
114
89
  }
90
+ reload() {
91
+ electron.ipcRenderer.send(electron_messages_1.RELOAD_REQUESTED_SIGNAL);
92
+ }
115
93
  };
116
94
  __decorate([
117
95
  inversify_1.inject(electron_main_window_service_1.ElectronMainWindowService),
@@ -1 +1 @@
1
- {"version":3,"file":"electron-window-service.js","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"electron-window-service.js","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,yCAA8D;AAC9D,qDAAqD;AAErD,wFAAmF;AACnF,qGAA+F;AAC/F,+EAA0E;AAC1E,yFAAuJ;AAGvJ,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,6CAAoB;IAA/D;;QAEI;;WAEG;QACO,gBAAW,GAAY,KAAK,CAAC;QAEvC;;WAEG;QACO,kBAAa,GAAY,KAAK,CAAC;IA6D7C,CAAC;IArDG,aAAa,CAAC,GAAW,EAAE,EAAE,QAAQ,KAAuB,EAAE;QAC1D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAGS,IAAI;QACV,gFAAgF;QAChF,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;YACnD,IAAI,CAAC,CAAC,cAAc,KAAK,kBAAkB,EAAE;gBACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,uBAAuB;QAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,0CAAsB,EAAE,CAAC,MAAM,EAAE,iBAAwC,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzJ,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,yBAAyB,CAAC,KAA4B;QAClE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClD,IAAI,WAAW,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,8BAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/E,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACnD;aAAM;YACH,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAClD;IACL,CAAC;IAED;;OAEG;IACO,qBAAqB;QAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC;QACnE,IAAI,WAAW,CAAC,YAAY,EAAE,KAAK,kBAAkB,EAAE;YACnD,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;SAChD;IACL,CAAC;IAED,MAAM;QACF,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,2CAAuB,CAAC,CAAC;IACvD,CAAC;CACJ,CAAA;AA1DG;IADC,kBAAM,CAAC,wDAAyB,CAAC;;uDACqB;AAGvD;IADC,kBAAM,CAAC,uDAAyB,CAAC;;wEACsC;AAYxE;IADC,yBAAa,EAAE;;;;iDAQf;AAnCQ,qBAAqB;IADjC,sBAAU,EAAE;GACA,qBAAqB,CAuEjC;AAvEY,sDAAqB"}
@@ -17,4 +17,31 @@ export declare const RequestTitleBarStyle = "requestTitleBarStyle";
17
17
  export declare const TitleBarStyleChanged = "titleBarStyleChanged";
18
18
  export declare const TitleBarStyleAtStartup = "titleBarStyleAtStartup";
19
19
  export declare const Restart = "restart";
20
+ /**
21
+ * Emitted by main when close requested.
22
+ */
23
+ export declare const CLOSE_REQUESTED_SIGNAL = "close-requested";
24
+ /**
25
+ * Emitted by window when a reload is requested.
26
+ */
27
+ export declare const RELOAD_REQUESTED_SIGNAL = "reload-requested";
28
+ export declare enum StopReason {
29
+ /**
30
+ * Closing the window with no prospect of restart.
31
+ */
32
+ Close = 0,
33
+ /**
34
+ * Reload without closing the window.
35
+ */
36
+ Reload = 1,
37
+ /**
38
+ * Reload that includes closing the window.
39
+ */
40
+ Restart = 2
41
+ }
42
+ export interface CloseRequestArguments {
43
+ confirmChannel: string;
44
+ cancelChannel: string;
45
+ reason: StopReason;
46
+ }
20
47
  //# sourceMappingURL=electron-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"electron-messages.d.ts","sourceRoot":"","sources":["../../../src/electron-common/messaging/electron-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"electron-messages.d.ts","sourceRoot":"","sources":["../../../src/electron-common/messaging/electron-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC;;GAEG;AACH,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD;;GAEG;AACH,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D,oBAAY,UAAU;IAClB;;OAEG;IACH,KAAK,IAAA;IACL;;OAEG;IACH,MAAM,IAAA;IACN;;OAEG;IACH,OAAO,IAAA;CACV;AAED,MAAM,WAAW,qBAAqB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACtB"}