@theia/core 1.53.0-next.5 → 1.53.0-next.55
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.
- package/README.md +7 -7
- package/i18n/nls.cs.json +582 -552
- package/i18n/nls.de.json +582 -552
- package/i18n/nls.es.json +582 -552
- package/i18n/nls.fr.json +582 -552
- package/i18n/nls.hu.json +582 -552
- package/i18n/nls.it.json +582 -552
- package/i18n/nls.ja.json +582 -552
- package/i18n/nls.json +582 -552
- package/i18n/nls.ko.json +582 -0
- package/i18n/nls.pl.json +582 -552
- package/i18n/nls.pt-br.json +582 -552
- package/i18n/nls.ru.json +582 -552
- package/i18n/nls.tr.json +582 -0
- package/i18n/nls.zh-cn.json +582 -552
- package/i18n/nls.zh-tw.json +582 -0
- package/lib/browser/authentication-service.d.ts +15 -14
- package/lib/browser/authentication-service.d.ts.map +1 -1
- package/lib/browser/authentication-service.js +5 -5
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/catalog.json +6889 -0
- package/lib/browser/common-frontend-contribution.js +3 -3
- package/lib/browser/common-styling-participants.js +166 -166
- package/lib/browser/context-key-service.d.ts +3 -2
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +9 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/json-schema-store.d.ts +0 -3
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/json-schema-store.js +2 -12
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/open-with-service.d.ts +13 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +48 -9
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.d.ts +8 -0
- package/lib/browser/opener-service.d.ts.map +1 -1
- package/lib/browser/opener-service.js +18 -3
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/progress-location-service.spec.js +7 -7
- package/lib/browser/saveable-service.d.ts.map +1 -1
- package/lib/browser/saveable-service.js +6 -2
- package/lib/browser/saveable-service.js.map +1 -1
- package/lib/browser/saveable.d.ts +17 -1
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +62 -1
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +5 -4
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +2 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +6 -16
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +12 -29
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +43 -78
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +8 -39
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +10 -10
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +43 -32
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/storage-service.js +3 -3
- package/lib/browser/tree/tree.spec.js +75 -75
- package/lib/browser/view-container.d.ts +2 -2
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts +4 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/extractable-widget.js +1 -1
- package/lib/browser/widgets/extractable-widget.js.map +1 -1
- package/lib/browser/widgets/index.d.ts +1 -0
- package/lib/browser/widgets/index.d.ts.map +1 -1
- package/lib/browser/widgets/index.js +1 -0
- package/lib/browser/widgets/index.js.map +1 -1
- package/lib/browser/widgets/split-widget.d.ts +45 -0
- package/lib/browser/widgets/split-widget.d.ts.map +1 -0
- package/lib/browser/widgets/split-widget.js +126 -0
- package/lib/browser/widgets/split-widget.js.map +1 -0
- package/lib/common/event.d.ts +2 -0
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +4 -0
- package/lib/common/event.js.map +1 -1
- package/lib/common/glob.d.ts +4 -4
- package/lib/common/json-schema.d.ts +2 -0
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/electron-browser/electron-uri-handler.d.ts +6 -0
- package/lib/electron-browser/electron-uri-handler.d.ts.map +1 -0
- package/lib/electron-browser/electron-uri-handler.js +49 -0
- package/lib/electron-browser/electron-uri-handler.js.map +1 -0
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +6 -6
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +12 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +3 -0
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts +2 -0
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +27 -3
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +5 -3
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +57 -14
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts +1 -0
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +3 -0
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.d.ts.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.js +12 -8
- package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
- package/lib/node/process-utils.spec.js +8 -8
- package/package.json +10 -8
- package/shared/ajv/index.d.ts +2 -2
- package/shared/markdown-it.d.ts +2 -2
- package/shared/markdown-it.js +1 -1
- package/shared/reflect-metadata/index.d.ts +1 -1
- package/shared/reflect-metadata/index.js +1 -1
- package/shared/vscode-languageserver-types/index.d.ts +1 -1
- package/src/browser/about-dialog.tsx +137 -137
- package/src/browser/authentication-service.ts +467 -468
- package/src/browser/breadcrumbs/breadcrumb-popup-container.ts +101 -101
- package/src/browser/breadcrumbs/breadcrumb-renderer.tsx +41 -41
- package/src/browser/breadcrumbs/breadcrumbs-constants.ts +79 -79
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +185 -185
- package/src/browser/breadcrumbs/breadcrumbs-service.ts +108 -108
- package/src/browser/breadcrumbs/index.ts +21 -21
- package/src/browser/browser-clipboard-service.ts +122 -122
- package/src/browser/browser.ts +239 -239
- package/src/browser/clipboard-service.ts +23 -23
- package/src/browser/color-application-contribution.ts +110 -110
- package/src/browser/color-registry.ts +60 -60
- package/src/browser/command-open-handler.ts +54 -54
- package/src/browser/common-frontend-contribution.ts +2680 -2680
- package/src/browser/common-styling-participants.ts +361 -361
- package/src/browser/connection-status-service.spec.ts +200 -200
- package/src/browser/connection-status-service.ts +216 -216
- package/src/browser/context-key-service.ts +142 -142
- package/src/browser/context-menu-renderer.ts +124 -124
- package/src/browser/core-preferences.ts +343 -334
- package/src/browser/credentials-service.ts +106 -106
- package/src/browser/decoration-style.ts +65 -65
- package/src/browser/decorations-service.ts +209 -209
- package/src/browser/dialogs/react-dialog.tsx +56 -56
- package/src/browser/dialogs.ts +534 -534
- package/src/browser/diff-uris.ts +117 -117
- package/src/browser/encoding-registry.ts +97 -97
- package/src/browser/endpoint.spec.ts +148 -148
- package/src/browser/endpoint.ts +136 -136
- package/src/browser/external-uri-service.ts +79 -79
- package/src/browser/file-icons-js.d.ts +20 -20
- package/src/browser/frontend-application-bindings.ts +62 -62
- package/src/browser/frontend-application-config-provider.spec.ts +45 -45
- package/src/browser/frontend-application-config-provider.ts +50 -50
- package/src/browser/frontend-application-contribution.ts +110 -110
- package/src/browser/frontend-application-module.ts +474 -475
- package/src/browser/frontend-application-state.ts +74 -74
- package/src/browser/frontend-application.ts +326 -326
- package/src/browser/hover-service.ts +218 -218
- package/src/browser/http-open-handler.ts +49 -49
- package/src/browser/i18n/i18n-frontend-module.ts +27 -27
- package/src/browser/i18n/language-quick-pick-service.ts +130 -130
- package/src/browser/icon-registry.ts +87 -87
- package/src/browser/icon-theme-contribution.ts +64 -64
- package/src/browser/icon-theme-service.ts +217 -217
- package/src/browser/icons/CollapseAll.svg +7 -7
- package/src/browser/icons/CollapseAll_inverse.svg +7 -7
- package/src/browser/icons/Refresh.svg +7 -7
- package/src/browser/icons/Refresh_inverse.svg +7 -7
- package/src/browser/icons/add-inverse.svg +4 -4
- package/src/browser/icons/add.svg +4 -4
- package/src/browser/icons/arrow-down-bright.svg +6 -6
- package/src/browser/icons/arrow-down-dark.svg +6 -6
- package/src/browser/icons/arrow-up-bright.svg +6 -6
- package/src/browser/icons/arrow-up-dark.svg +6 -6
- package/src/browser/icons/case-sensitive-dark.svg +16 -16
- package/src/browser/icons/case-sensitive.svg +16 -16
- package/src/browser/icons/chevron-right-dark.svg +5 -5
- package/src/browser/icons/chevron-right-light.svg +6 -6
- package/src/browser/icons/circle-bright.svg +7 -7
- package/src/browser/icons/circle-dark.svg +7 -7
- package/src/browser/icons/clear-search-results-dark.svg +7 -7
- package/src/browser/icons/clear-search-results.svg +7 -7
- package/src/browser/icons/close-all-bright.svg +7 -7
- package/src/browser/icons/close-all-dark.svg +7 -7
- package/src/browser/icons/close-bright.svg +7 -7
- package/src/browser/icons/close-dark.svg +7 -7
- package/src/browser/icons/collapse.svg +4 -4
- package/src/browser/icons/edit-json-dark.svg +6 -6
- package/src/browser/icons/edit-json.svg +6 -6
- package/src/browser/icons/expand.svg +4 -4
- package/src/browser/icons/loading-dark.svg +6 -6
- package/src/browser/icons/loading-light.svg +6 -6
- package/src/browser/icons/open-change-bright.svg +3 -3
- package/src/browser/icons/open-change-dark.svg +4 -4
- package/src/browser/icons/open-file-bright.svg +4 -4
- package/src/browser/icons/open-file-dark.svg +4 -4
- package/src/browser/icons/preview-bright.svg +3 -3
- package/src/browser/icons/preview-dark.svg +3 -3
- package/src/browser/icons/regex-dark.svg +10 -10
- package/src/browser/icons/regex.svg +10 -10
- package/src/browser/icons/remove-all-inverse.svg +4 -4
- package/src/browser/icons/remove-all.svg +4 -4
- package/src/browser/icons/replace-all-inverse.svg +13 -13
- package/src/browser/icons/replace-all.svg +13 -13
- package/src/browser/icons/replace-inverse.svg +15 -15
- package/src/browser/icons/replace.svg +15 -15
- package/src/browser/icons/whole-word-dark.svg +19 -19
- package/src/browser/icons/whole-word.svg +19 -19
- package/src/browser/index.ts +50 -50
- package/src/browser/json-schema-store.ts +118 -127
- package/src/browser/keybinding.spec.ts +554 -554
- package/src/browser/keybinding.ts +759 -759
- package/src/browser/keyboard/browser-keyboard-frontend-contribution.ts +108 -108
- package/src/browser/keyboard/browser-keyboard-layout-provider.spec.ts +171 -171
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +469 -469
- package/src/browser/keyboard/browser-keyboard-module.ts +30 -30
- package/src/browser/keyboard/index.ts +20 -20
- package/src/browser/keyboard/keyboard-layout-service.spec.ts +121 -121
- package/src/browser/keyboard/keyboard-layout-service.ts +455 -455
- package/src/browser/keyboard/keys.spec.ts +258 -258
- package/src/browser/keyboard/keys.ts +20 -20
- package/src/browser/keys.ts +21 -21
- package/src/browser/label-parser.spec.ts +165 -165
- package/src/browser/label-parser.ts +108 -108
- package/src/browser/label-provider.spec.ts +62 -62
- package/src/browser/label-provider.ts +385 -385
- package/src/browser/language-icon-provider.ts +55 -55
- package/src/browser/language-service.ts +77 -77
- package/src/browser/logger-frontend-module.ts +65 -65
- package/src/browser/markdown-rendering/markdown-renderer.ts +98 -98
- package/src/browser/menu/browser-context-menu-renderer.ts +48 -48
- package/src/browser/menu/browser-menu-module.ts +28 -28
- package/src/browser/menu/browser-menu-plugin.ts +491 -491
- package/src/browser/menu/context-menu-context.ts +41 -41
- package/src/browser/messaging/connection-source.ts +26 -26
- package/src/browser/messaging/frontend-id-provider.ts +37 -37
- package/src/browser/messaging/index.ts +18 -18
- package/src/browser/messaging/messaging-frontend-module.ts +41 -41
- package/src/browser/messaging/service-connection-provider.ts +140 -140
- package/src/browser/messaging/ws-connection-provider.ts +49 -49
- package/src/browser/messaging/ws-connection-source.ts +230 -230
- package/src/browser/mime-service.ts +30 -30
- package/src/browser/navigatable-types.ts +81 -81
- package/src/browser/navigatable.ts +39 -39
- package/src/browser/open-with-service.ts +140 -93
- package/src/browser/opener-service.spec.ts +49 -49
- package/src/browser/opener-service.ts +169 -146
- package/src/browser/performance/frontend-stopwatch.ts +65 -65
- package/src/browser/performance/index.ts +18 -18
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -31
- package/src/browser/preferences/index.ts +23 -23
- package/src/browser/preferences/injectable-preference-proxy.ts +283 -283
- package/src/browser/preferences/preference-configurations.ts +82 -82
- package/src/browser/preferences/preference-contribution.ts +436 -436
- package/src/browser/preferences/preference-language-override-service.ts +111 -111
- package/src/browser/preferences/preference-provider.spec.ts +36 -36
- package/src/browser/preferences/preference-provider.ts +277 -277
- package/src/browser/preferences/preference-proxy.spec.ts +367 -367
- package/src/browser/preferences/preference-proxy.ts +367 -367
- package/src/browser/preferences/preference-schema-provider.spec.ts +130 -130
- package/src/browser/preferences/preference-scope.ts +18 -18
- package/src/browser/preferences/preference-service.spec.ts +613 -613
- package/src/browser/preferences/preference-service.ts +594 -594
- package/src/browser/preferences/preference-validation-service.spec.ts +334 -334
- package/src/browser/preferences/preference-validation-service.ts +358 -358
- package/src/browser/preferences/test/index.ts +19 -19
- package/src/browser/preferences/test/mock-preference-provider.ts +50 -50
- package/src/browser/preferences/test/mock-preference-proxy.ts +48 -48
- package/src/browser/preferences/test/mock-preference-service.ts +63 -63
- package/src/browser/preload/i18n-preload-contribution.ts +50 -50
- package/src/browser/preload/os-preload-contribution.ts +37 -37
- package/src/browser/preload/preload-module.ts +45 -45
- package/src/browser/preload/preloader.ts +37 -37
- package/src/browser/preload/theme-preload-contribution.ts +31 -31
- package/src/browser/progress-bar-factory.ts +29 -29
- package/src/browser/progress-bar.ts +76 -76
- package/src/browser/progress-client.ts +53 -53
- package/src/browser/progress-location-service.spec.ts +50 -50
- package/src/browser/progress-location-service.ts +96 -96
- package/src/browser/progress-status-bar-item.ts +83 -83
- package/src/browser/quick-input/index.ts +23 -23
- package/src/browser/quick-input/quick-access.ts +75 -75
- package/src/browser/quick-input/quick-command-frontend-contribution.ts +89 -89
- package/src/browser/quick-input/quick-command-service.ts +246 -246
- package/src/browser/quick-input/quick-help-service.ts +87 -87
- package/src/browser/quick-input/quick-input-frontend-contribution.ts +33 -33
- package/src/browser/quick-input/quick-input-service.spec.ts +176 -176
- package/src/browser/quick-input/quick-input-service.ts +17 -17
- package/src/browser/quick-input/quick-pick-service-impl.ts +69 -69
- package/src/browser/quick-input/quick-view-service.ts +83 -83
- package/src/browser/request/browser-request-module.ts +23 -23
- package/src/browser/request/browser-request-service.ts +172 -172
- package/src/browser/resource-context-key.ts +77 -77
- package/src/browser/saveable-service.ts +332 -328
- package/src/browser/saveable.ts +395 -327
- package/src/browser/secondary-window-handler.ts +211 -211
- package/src/browser/shell/additional-views-menu-widget.tsx +71 -71
- package/src/browser/shell/application-shell-mouse-tracker.ts +103 -103
- package/src/browser/shell/application-shell.ts +2271 -2271
- package/src/browser/shell/current-widget-command-adapter.ts +57 -57
- package/src/browser/shell/index.ts +23 -23
- package/src/browser/shell/shell-layout-restorer.ts +399 -399
- package/src/browser/shell/side-panel-handler.ts +794 -794
- package/src/browser/shell/side-panel-toolbar.ts +111 -111
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +39 -39
- package/src/browser/shell/sidebar-menu-widget.tsx +183 -183
- package/src/browser/shell/sidebar-top-menu-widget.tsx +26 -26
- package/src/browser/shell/split-panels.ts +191 -191
- package/src/browser/shell/tab-bar-decorator.ts +106 -106
- package/src/browser/shell/tab-bar-toolbar/index.ts +19 -19
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +31 -31
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +242 -256
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +149 -207
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +62 -62
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +443 -428
- package/src/browser/shell/tab-bars.spec.ts +63 -63
- package/src/browser/shell/tab-bars.ts +1468 -1468
- package/src/browser/shell/theia-dock-panel.ts +265 -265
- package/src/browser/shell/view-column-service.ts +125 -125
- package/src/browser/shell/view-contribution.ts +178 -178
- package/src/browser/source-tree/index.ts +19 -19
- package/src/browser/source-tree/source-tree-widget.tsx +107 -107
- package/src/browser/source-tree/source-tree.ts +146 -146
- package/src/browser/source-tree/tree-source.ts +73 -73
- package/src/browser/status-bar/index.ts +29 -29
- package/src/browser/status-bar/status-bar-types.ts +97 -97
- package/src/browser/status-bar/status-bar-view-model.ts +209 -209
- package/src/browser/status-bar/status-bar.tsx +189 -189
- package/src/browser/storage-service.spec.ts +76 -76
- package/src/browser/storage-service.ts +129 -129
- package/src/browser/style/about.css +36 -36
- package/src/browser/style/alert-messages.css +62 -62
- package/src/browser/style/ansi.css +88 -88
- package/src/browser/style/breadcrumbs.css +130 -130
- package/src/browser/style/dialog.css +126 -126
- package/src/browser/style/dockpanel.css +76 -76
- package/src/browser/style/hover-service.css +101 -101
- package/src/browser/style/icons.css +61 -61
- package/src/browser/style/index.css +353 -352
- package/src/browser/style/materialcolors.css +278 -278
- package/src/browser/style/menus.css +230 -230
- package/src/browser/style/notification.css +39 -39
- package/src/browser/style/os.css +87 -87
- package/src/browser/style/progress-bar.css +43 -43
- package/src/browser/style/quick-title-bar.css +45 -45
- package/src/browser/style/scrollbars.css +172 -172
- package/src/browser/style/search-box.css +123 -123
- package/src/browser/style/select-component.css +107 -107
- package/src/browser/style/sidepanel.css +367 -367
- package/src/browser/style/split-widget.css +38 -0
- package/src/browser/style/status-bar.css +127 -127
- package/src/browser/style/tabs.css +647 -658
- package/src/browser/style/tooltip.css +28 -28
- package/src/browser/style/tree-decorators.css +81 -81
- package/src/browser/style/tree.css +232 -232
- package/src/browser/style/view-container.css +187 -194
- package/src/browser/style/widget.css +19 -19
- package/src/browser/styling-service.ts +96 -96
- package/src/browser/supported-encodings.ts +262 -262
- package/src/browser/test/jsdom.ts +69 -69
- package/src/browser/test/mock-connection-status-service.ts +33 -33
- package/src/browser/test/mock-env-variables-server.ts +47 -47
- package/src/browser/test/mock-opener-service.ts +34 -34
- package/src/browser/test/mock-storage-service.ts +49 -49
- package/src/browser/theming.ts +206 -206
- package/src/browser/tooltip-service.tsx +96 -96
- package/src/browser/tree/fuzzy-search.spec.ts +99 -99
- package/src/browser/tree/fuzzy-search.ts +136 -136
- package/src/browser/tree/index.ts +29 -29
- package/src/browser/tree/search-box-debounce.ts +96 -96
- package/src/browser/tree/search-box.ts +355 -355
- package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -109
- package/src/browser/tree/test/mock-tree-model.ts +136 -136
- package/src/browser/tree/test/tree-test-container.ts +50 -50
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -46
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +88 -88
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +203 -203
- package/src/browser/tree/tree-compression/index.ts +20 -20
- package/src/browser/tree/tree-compression/tree-compression-service.ts +125 -125
- package/src/browser/tree/tree-compression/tree-compression.css +28 -28
- package/src/browser/tree/tree-consistency.spec.ts +105 -105
- package/src/browser/tree/tree-container.spec.ts +45 -45
- package/src/browser/tree/tree-container.ts +155 -155
- package/src/browser/tree/tree-decorator.spec.ts +162 -162
- package/src/browser/tree/tree-decorator.ts +238 -238
- package/src/browser/tree/tree-expansion.spec.ts +173 -173
- package/src/browser/tree/tree-expansion.ts +165 -165
- package/src/browser/tree/tree-focus-service.ts +55 -55
- package/src/browser/tree/tree-iterator.spec.ts +170 -170
- package/src/browser/tree/tree-iterator.ts +256 -256
- package/src/browser/tree/tree-label-provider.ts +40 -40
- package/src/browser/tree/tree-model.ts +562 -562
- package/src/browser/tree/tree-navigation.ts +58 -58
- package/src/browser/tree/tree-preference.ts +50 -50
- package/src/browser/tree/tree-search.ts +128 -128
- package/src/browser/tree/tree-selectable.spec.ts +152 -152
- package/src/browser/tree/tree-selection-impl.ts +176 -176
- package/src/browser/tree/tree-selection-state.spec.ts +462 -462
- package/src/browser/tree/tree-selection-state.ts +245 -245
- package/src/browser/tree/tree-selection.ts +159 -159
- package/src/browser/tree/tree-view-welcome-widget.tsx +263 -263
- package/src/browser/tree/tree-widget-selection.ts +45 -45
- package/src/browser/tree/tree-widget.tsx +1591 -1591
- package/src/browser/tree/tree.spec.ts +241 -241
- package/src/browser/tree/tree.ts +425 -425
- package/src/browser/undo-redo-handler.ts +85 -85
- package/src/browser/user-working-directory-provider.ts +77 -77
- package/src/browser/view-container.ts +1640 -1640
- package/src/browser/widget-decoration.ts +358 -358
- package/src/browser/widget-manager.spec.ts +102 -102
- package/src/browser/widget-manager.ts +318 -318
- package/src/browser/widget-open-handler.ts +168 -165
- package/src/browser/widgets/alert-message.tsx +56 -56
- package/src/browser/widgets/enhanced-preview-widget.ts +27 -27
- package/src/browser/widgets/extractable-widget.ts +33 -33
- package/src/browser/widgets/index.ts +21 -20
- package/src/browser/widgets/previewable-widget.ts +31 -31
- package/src/browser/widgets/react-renderer.tsx +53 -53
- package/src/browser/widgets/react-widget.tsx +51 -51
- package/src/browser/widgets/select-component.tsx +367 -367
- package/src/browser/widgets/split-widget.ts +163 -0
- package/src/browser/widgets/widget.ts +406 -406
- package/src/browser/window/browser-window-module.ts +32 -32
- package/src/browser/window/default-secondary-window-service.ts +189 -189
- package/src/browser/window/default-window-service.spec.ts +78 -78
- package/src/browser/window/default-window-service.ts +171 -171
- package/src/browser/window/secondary-window-service.ts +39 -39
- package/src/browser/window/test/mock-window-service.ts +29 -29
- package/src/browser/window/window-service.ts +78 -78
- package/src/browser/window/window-title-service.ts +107 -107
- package/src/browser/window/window-title-updater.ts +95 -95
- package/src/browser/window-contribution.ts +64 -64
- package/src/browser-only/frontend-only-application-module.ts +116 -116
- package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -37
- package/src/browser-only/logger-frontend-only-module.ts +63 -63
- package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -39
- package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -42
- package/src/browser-only/preload/frontend-only-preload-module.ts +49 -49
- package/src/common/accessibility.ts +33 -33
- package/src/common/application-error.spec.ts +27 -27
- package/src/common/application-error.ts +76 -76
- package/src/common/application-protocol.ts +42 -42
- package/src/common/array-utils.ts +129 -129
- package/src/common/buffer.ts +228 -228
- package/src/common/cancellation.ts +163 -163
- package/src/common/char-code.ts +438 -438
- package/src/common/collections.ts +125 -125
- package/src/common/color.ts +103 -103
- package/src/common/command.spec.ts +208 -208
- package/src/common/command.ts +489 -489
- package/src/common/contribution-filter/contribution-filter-registry.ts +79 -79
- package/src/common/contribution-filter/contribution-filter.ts +64 -64
- package/src/common/contribution-filter/filter.ts +23 -23
- package/src/common/contribution-filter/index.ts +19 -19
- package/src/common/contribution-provider.ts +96 -96
- package/src/common/disposable.spec.ts +94 -94
- package/src/common/disposable.ts +188 -188
- package/src/common/encoding-service.ts +380 -380
- package/src/common/encodings.ts +24 -24
- package/src/common/env-variables/env-variables-protocol.ts +38 -38
- package/src/common/env-variables/index.ts +17 -17
- package/src/common/event.spec.ts +32 -32
- package/src/common/event.ts +493 -487
- package/src/common/file-uri.ts +61 -61
- package/src/common/frontend-application-state.ts +38 -38
- package/src/common/glob.ts +741 -741
- package/src/common/hash.ts +85 -85
- package/src/common/i18n/localization-server.ts +25 -25
- package/src/common/i18n/localization.ts +80 -80
- package/src/common/i18n/nls.metadata.json +34112 -34112
- package/src/common/index.ts +51 -51
- package/src/common/json-schema.ts +108 -106
- package/src/common/key-store.ts +26 -26
- package/src/common/keybinding.ts +152 -152
- package/src/common/keyboard/keyboard-layout-provider.ts +51 -51
- package/src/common/keys.ts +694 -694
- package/src/common/label-protocol.ts +35 -35
- package/src/common/logger-protocol.ts +119 -119
- package/src/common/logger-watcher.ts +48 -48
- package/src/common/logger.spec.ts +46 -46
- package/src/common/logger.ts +389 -389
- package/src/common/lsp-types.ts +34 -34
- package/src/common/markdown-rendering/icon-utilities.ts +30 -30
- package/src/common/markdown-rendering/index.ts +18 -18
- package/src/common/markdown-rendering/markdown-string.ts +152 -152
- package/src/common/menu/action-menu-node.ts +65 -65
- package/src/common/menu/composite-menu-node.spec.ts +67 -67
- package/src/common/menu/composite-menu-node.ts +114 -114
- package/src/common/menu/index.ts +21 -21
- package/src/common/menu/menu-adapter.ts +103 -103
- package/src/common/menu/menu-model-registry.ts +374 -374
- package/src/common/menu/menu-types.ts +220 -219
- package/src/common/menu/menu.spec.ts +101 -101
- package/src/common/message-rpc/channel.spec.ts +88 -88
- package/src/common/message-rpc/channel.ts +300 -300
- package/src/common/message-rpc/index.ts +22 -22
- package/src/common/message-rpc/message-buffer.ts +105 -105
- package/src/common/message-rpc/msg-pack-extension-manager.ts +70 -70
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +65 -65
- package/src/common/message-rpc/rpc-message-encoder.ts +190 -190
- package/src/common/message-rpc/rpc-protocol.ts +255 -255
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -41
- package/src/common/message-rpc/uint8-array-message-buffer.ts +213 -213
- package/src/common/message-service-protocol.ts +148 -148
- package/src/common/message-service.ts +226 -226
- package/src/common/messaging/connection-error-handler.ts +73 -73
- package/src/common/messaging/connection-management.ts +43 -43
- package/src/common/messaging/handler.ts +26 -26
- package/src/common/messaging/index.ts +19 -19
- package/src/common/messaging/proxy-factory.spec.ts +108 -108
- package/src/common/messaging/proxy-factory.ts +336 -336
- package/src/common/messaging/socket-write-buffer.ts +52 -52
- package/src/common/messaging/web-socket-channel.ts +76 -76
- package/src/common/nls.ts +151 -151
- package/src/common/numbers.ts +21 -21
- package/src/common/objects.spec.ts +112 -112
- package/src/common/objects.ts +123 -123
- package/src/common/os.ts +82 -82
- package/src/common/path.spec.ts +415 -415
- package/src/common/path.ts +334 -334
- package/src/common/paths.ts +250 -250
- package/src/common/performance/index.ts +19 -19
- package/src/common/performance/measurement-protocol.ts +104 -104
- package/src/common/performance/measurement.ts +130 -130
- package/src/common/performance/stopwatch.ts +183 -183
- package/src/common/preferences/preference-schema.ts +101 -101
- package/src/common/preferences/preference-scope.spec.ts +48 -48
- package/src/common/preferences/preference-scope.ts +68 -68
- package/src/common/prioritizeable.ts +58 -58
- package/src/common/progress-service-protocol.ts +35 -35
- package/src/common/progress-service.ts +82 -82
- package/src/common/promise-util.spec.ts +102 -102
- package/src/common/promise-util.ts +143 -143
- package/src/common/quick-pick-service.ts +353 -353
- package/src/common/reference.spec.ts +145 -145
- package/src/common/reference.ts +230 -230
- package/src/common/resource.ts +430 -430
- package/src/common/selection-command-handler.ts +101 -101
- package/src/common/selection-service.spec.ts +43 -43
- package/src/common/selection-service.ts +49 -49
- package/src/common/selection.ts +50 -50
- package/src/common/severity.ts +111 -111
- package/src/common/stream.ts +718 -718
- package/src/common/strings.ts +231 -231
- package/src/common/telemetry.ts +45 -45
- package/src/common/ternary-search-tree.ts +417 -417
- package/src/common/test/expect.ts +34 -34
- package/src/common/test/mock-logger.ts +118 -118
- package/src/common/test/mock-menu.ts +35 -35
- package/src/common/test/mock-resource-provider.ts +33 -33
- package/src/common/theme.ts +68 -68
- package/src/common/types.spec.ts +86 -86
- package/src/common/types.ts +140 -140
- package/src/common/uri-command-handler.spec.ts +90 -90
- package/src/common/uri-command-handler.ts +148 -148
- package/src/common/uri.spec.ts +278 -278
- package/src/common/uri.ts +279 -279
- package/src/common/uuid.ts +45 -45
- package/src/common/version.ts +17 -17
- package/src/common/view-column.ts +33 -33
- package/src/common/window.ts +34 -34
- package/src/electron-browser/electron-clipboard-service.ts +32 -32
- package/src/electron-browser/electron-uri-handler.ts +42 -0
- package/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts +39 -39
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +28 -28
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +122 -122
- package/src/electron-browser/menu/electron-main-menu-factory.ts +339 -338
- package/src/electron-browser/menu/electron-menu-contribution.ts +506 -506
- package/src/electron-browser/menu/electron-menu-module.ts +40 -40
- package/src/electron-browser/menu/electron-menu-style.css +110 -110
- package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -25
- package/src/electron-browser/messaging/electron-ipc-connection-source.ts +65 -65
- package/src/electron-browser/messaging/electron-local-ws-connection-source.ts +45 -45
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +78 -78
- package/src/electron-browser/messaging/electron-ws-connection-source.ts +38 -38
- package/src/electron-browser/preload.ts +264 -249
- package/src/electron-browser/request/electron-browser-request-module.ts +26 -26
- package/src/electron-browser/token/electron-token-frontend-module.ts +22 -22
- package/src/electron-browser/window/electron-frontend-application-state.ts +26 -26
- package/src/electron-browser/window/electron-secondary-window-service.ts +35 -35
- package/src/electron-browser/window/electron-window-module.ts +48 -45
- package/src/electron-browser/window/electron-window-preferences.ts +76 -76
- package/src/electron-browser/window/electron-window-service.ts +109 -109
- package/src/electron-browser/window/external-app-open-handler.ts +42 -42
- package/src/electron-common/electron-api.ts +157 -154
- package/src/electron-common/electron-main-window-service.ts +24 -24
- package/src/electron-common/electron-token.ts +27 -27
- package/src/electron-main/electron-api-main.ts +373 -347
- package/src/electron-main/electron-main-application-module.ts +65 -65
- package/src/electron-main/electron-main-application.ts +860 -818
- package/src/electron-main/electron-main-constants.ts +23 -23
- package/src/electron-main/electron-main-window-service-impl.ts +44 -44
- package/src/electron-main/electron-security-token-service.ts +36 -36
- package/src/electron-main/event-utils.ts +36 -36
- package/src/electron-main/messaging/electron-connection-handler.ts +21 -21
- package/src/electron-main/messaging/electron-messaging-contribution.ts +143 -143
- package/src/electron-main/messaging/electron-messaging-service.ts +35 -35
- package/src/electron-main/theia-electron-window.ts +219 -214
- package/src/electron-node/cli/electron-backend-cli-module.ts +24 -24
- package/src/electron-node/cli/electron-cli-contribution.ts +35 -35
- package/src/electron-node/hosting/electron-backend-hosting-module.ts +24 -24
- package/src/electron-node/hosting/electron-ws-origin-validator.ts +37 -37
- package/src/electron-node/keyboard/electron-backend-keyboard-module.ts +30 -30
- package/src/electron-node/keyboard/electron-keyboard-layout-provider.ts +35 -35
- package/src/electron-node/request/electron-backend-request-module.ts +23 -23
- package/src/electron-node/request/electron-backend-request-service.ts +78 -78
- package/src/electron-node/token/electron-token-backend-contribution.ts +48 -48
- package/src/electron-node/token/electron-token-backend-module.ts +28 -28
- package/src/electron-node/token/electron-token-validator.ts +93 -93
- package/src/node/application-server.ts +59 -59
- package/src/node/backend-application-config-provider.spec.ts +29 -29
- package/src/node/backend-application-config-provider.ts +48 -48
- package/src/node/backend-application-module.ts +139 -139
- package/src/node/backend-application.ts +374 -374
- package/src/node/cli.spec.ts +94 -94
- package/src/node/cli.ts +63 -63
- package/src/node/console-logger-server.spec.ts +59 -59
- package/src/node/console-logger-server.ts +76 -76
- package/src/node/debug.ts +30 -30
- package/src/node/dynamic-require.ts +56 -56
- package/src/node/env-variables/env-variables-server.ts +123 -123
- package/src/node/env-variables/index.ts +17 -17
- package/src/node/environment-utils.spec.ts +92 -92
- package/src/node/environment-utils.ts +66 -66
- package/src/node/file-uri.spec.ts +76 -76
- package/src/node/filesystem-locking.ts +77 -77
- package/src/node/hosting/backend-application-hosts.ts +60 -60
- package/src/node/hosting/backend-hosting-module.ts +26 -26
- package/src/node/hosting/ws-origin-validator.ts +36 -36
- package/src/node/i18n/i18n-backend-module.ts +42 -42
- package/src/node/i18n/localization-contribution.ts +112 -112
- package/src/node/i18n/localization-provider.ts +125 -125
- package/src/node/i18n/localization-server.ts +52 -52
- package/src/node/i18n/theia-localization-contribution.ts +40 -36
- package/src/node/index.ts +22 -22
- package/src/node/key-store-server.ts +162 -162
- package/src/node/logger-backend-module.ts +88 -88
- package/src/node/logger-cli-contribution.spec.ts +245 -245
- package/src/node/logger-cli-contribution.ts +168 -168
- package/src/node/main.ts +33 -33
- package/src/node/messaging/binary-message-pipe.ts +168 -168
- package/src/node/messaging/connection-container-module.ts +96 -96
- package/src/node/messaging/default-messaging-service.ts +129 -129
- package/src/node/messaging/frontend-connection-service.ts +24 -24
- package/src/node/messaging/index.ts +19 -19
- package/src/node/messaging/ipc-bootstrap.ts +27 -27
- package/src/node/messaging/ipc-channel.ts +77 -77
- package/src/node/messaging/ipc-connection-provider.ts +107 -107
- package/src/node/messaging/ipc-protocol.ts +76 -76
- package/src/node/messaging/messaging-backend-module.ts +52 -52
- package/src/node/messaging/messaging-listeners.ts +52 -52
- package/src/node/messaging/messaging-service.ts +46 -46
- package/src/node/messaging/test/test-web-socket-channel.ts +61 -61
- package/src/node/messaging/websocket-endpoint.ts +79 -79
- package/src/node/messaging/websocket-frontend-connection-service.ts +186 -186
- package/src/node/os-backend-provider.ts +25 -25
- package/src/node/performance/index.ts +18 -18
- package/src/node/performance/measurement-backend-bindings.ts +35 -35
- package/src/node/performance/node-stopwatch.ts +40 -40
- package/src/node/process-utils.spec.ts +48 -48
- package/src/node/process-utils.ts +102 -102
- package/src/node/remote/backend-remote-service.ts +25 -25
- package/src/node/remote/remote-cli-contribution.ts +34 -34
- package/src/node/remote/remote-copy-contribution.ts +45 -45
- package/src/node/request/backend-request-facade.ts +39 -39
- package/src/node/request/backend-request-module.ts +25 -25
- package/src/node/request/proxy-cli-contribution.ts +65 -65
- package/src/node/ws-request-validators.ts +56 -56
- package/src/typings/native-keymap.d.ts +108 -108
- package/i18n/nls.pt-pt.json +0 -552
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 TypeFox 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 { inject, injectable, named } from 'inversify';
|
|
18
|
-
import { Event, Emitter } from '../../common';
|
|
19
|
-
import { CorePreferences } from '../core-preferences';
|
|
20
|
-
import { ContributionProvider } from '../../common/contribution-provider';
|
|
21
|
-
import { FrontendApplicationContribution, OnWillStopAction } from '../frontend-application-contribution';
|
|
22
|
-
import { WindowService } from './window-service';
|
|
23
|
-
import { DEFAULT_WINDOW_HASH } from '../../common/window';
|
|
24
|
-
import { confirmExit } from '../dialogs';
|
|
25
|
-
import { StopReason } from '../../common/frontend-application-state';
|
|
26
|
-
import { FrontendApplication } from '../frontend-application';
|
|
27
|
-
|
|
28
|
-
@injectable()
|
|
29
|
-
export class DefaultWindowService implements WindowService, FrontendApplicationContribution {
|
|
30
|
-
|
|
31
|
-
protected frontendApplication: FrontendApplication;
|
|
32
|
-
protected allowVetoes = true;
|
|
33
|
-
|
|
34
|
-
protected onUnloadEmitter = new Emitter<void>();
|
|
35
|
-
get onUnload(): Event<void> {
|
|
36
|
-
return this.onUnloadEmitter.event;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@inject(CorePreferences)
|
|
40
|
-
protected readonly corePreferences: CorePreferences;
|
|
41
|
-
|
|
42
|
-
@inject(ContributionProvider)
|
|
43
|
-
@named(FrontendApplicationContribution)
|
|
44
|
-
protected readonly contributions: ContributionProvider<FrontendApplicationContribution>;
|
|
45
|
-
|
|
46
|
-
onStart(app: FrontendApplication): void {
|
|
47
|
-
this.frontendApplication = app;
|
|
48
|
-
this.registerUnloadListeners();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
openNewWindow(url: string): undefined {
|
|
52
|
-
window.open(url, undefined, 'noopener');
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
openNewDefaultWindow(): void {
|
|
57
|
-
this.openNewWindow(`#${DEFAULT_WINDOW_HASH}`);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
focus(): void {
|
|
61
|
-
window.focus();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Returns a list of actions that {@link FrontendApplicationContribution}s would like to take before shutdown
|
|
66
|
-
* It is expected that this will succeed - i.e. return an empty array - at most once per session. If no vetoes are received
|
|
67
|
-
* during any cycle, no further checks will be made. In that case, shutdown should proceed unconditionally.
|
|
68
|
-
*/
|
|
69
|
-
protected collectContributionUnloadVetoes(): OnWillStopAction[] {
|
|
70
|
-
const vetoes: OnWillStopAction[] = [];
|
|
71
|
-
if (this.allowVetoes) {
|
|
72
|
-
const shouldConfirmExit = this.corePreferences['application.confirmExit'];
|
|
73
|
-
for (const contribution of this.contributions.getContributions()) {
|
|
74
|
-
const veto = contribution.onWillStop?.(this.frontendApplication);
|
|
75
|
-
if (veto && shouldConfirmExit !== 'never') { // Ignore vetoes if we should not prompt the user on exit.
|
|
76
|
-
if (OnWillStopAction.is(veto)) {
|
|
77
|
-
vetoes.push(veto);
|
|
78
|
-
} else {
|
|
79
|
-
vetoes.push({ reason: 'No reason given', action: () => false });
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
vetoes.sort((a, b) => (a.priority ?? -Infinity) - (b.priority ?? -Infinity));
|
|
84
|
-
if (vetoes.length === 0 && shouldConfirmExit === 'always') {
|
|
85
|
-
vetoes.push({ reason: 'application.confirmExit preference', action: () => confirmExit() });
|
|
86
|
-
}
|
|
87
|
-
if (vetoes.length === 0) {
|
|
88
|
-
this.allowVetoes = false;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return vetoes;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Implement the mechanism to detect unloading of the page.
|
|
96
|
-
*/
|
|
97
|
-
protected registerUnloadListeners(): void {
|
|
98
|
-
window.addEventListener('beforeunload', event => this.handleBeforeUnloadEvent(event));
|
|
99
|
-
// In a browser, `unload` is correctly fired when the page unloads, unlike Electron.
|
|
100
|
-
// If `beforeunload` is cancelled, the user will be prompted to leave or stay.
|
|
101
|
-
// If the user stays, the page won't be unloaded, so `unload` is not fired.
|
|
102
|
-
// If the user leaves, the page will be unloaded, so `unload` is fired.
|
|
103
|
-
window.addEventListener('unload', () => this.onUnloadEmitter.fire());
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async isSafeToShutDown(stopReason: StopReason): Promise<boolean> {
|
|
107
|
-
const vetoes = this.collectContributionUnloadVetoes();
|
|
108
|
-
if (vetoes.length === 0) {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
const preparedValues = await Promise.all(vetoes.map(e => e.prepare?.(stopReason)));
|
|
112
|
-
console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
|
|
113
|
-
for (let i = 0; i < vetoes.length; i++) {
|
|
114
|
-
try {
|
|
115
|
-
const result = await vetoes[i].action(preparedValues[i], stopReason);
|
|
116
|
-
if (!result) {
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
} catch (e) {
|
|
120
|
-
console.error(e);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
console.debug('OnWillStop actions resolved; allowing shutdown');
|
|
124
|
-
this.allowVetoes = false;
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
setSafeToShutDown(): void {
|
|
129
|
-
this.allowVetoes = false;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Called when the `window` is about to `unload` its resources.
|
|
134
|
-
* At this point, the `document` is still visible and the [`BeforeUnloadEvent`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event)
|
|
135
|
-
* event will be canceled if the return value of this method is `false`.
|
|
136
|
-
*
|
|
137
|
-
* In Electron, handleCloseRequestEvent is is run instead.
|
|
138
|
-
*/
|
|
139
|
-
protected handleBeforeUnloadEvent(event: BeforeUnloadEvent): string | void {
|
|
140
|
-
const vetoes = this.collectContributionUnloadVetoes();
|
|
141
|
-
if (vetoes.length) {
|
|
142
|
-
// 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.
|
|
143
|
-
console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
|
|
144
|
-
return this.preventUnload(event);
|
|
145
|
-
}
|
|
146
|
-
console.debug('Shutdown will proceed.');
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Notify the browser that we do not want to unload.
|
|
151
|
-
*
|
|
152
|
-
* Notes:
|
|
153
|
-
* - Shows a confirmation popup in browsers.
|
|
154
|
-
* - Prevents the window from closing without confirmation in electron.
|
|
155
|
-
*
|
|
156
|
-
* @param event The beforeunload event
|
|
157
|
-
*/
|
|
158
|
-
protected preventUnload(event: BeforeUnloadEvent): string | void {
|
|
159
|
-
event.returnValue = '';
|
|
160
|
-
event.preventDefault();
|
|
161
|
-
return '';
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
reload(): void {
|
|
165
|
-
this.isSafeToShutDown(StopReason.Reload).then(isSafe => {
|
|
166
|
-
if (isSafe) {
|
|
167
|
-
window.location.reload();
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 TypeFox 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 { inject, injectable, named } from 'inversify';
|
|
18
|
+
import { Event, Emitter } from '../../common';
|
|
19
|
+
import { CorePreferences } from '../core-preferences';
|
|
20
|
+
import { ContributionProvider } from '../../common/contribution-provider';
|
|
21
|
+
import { FrontendApplicationContribution, OnWillStopAction } from '../frontend-application-contribution';
|
|
22
|
+
import { WindowService } from './window-service';
|
|
23
|
+
import { DEFAULT_WINDOW_HASH } from '../../common/window';
|
|
24
|
+
import { confirmExit } from '../dialogs';
|
|
25
|
+
import { StopReason } from '../../common/frontend-application-state';
|
|
26
|
+
import { FrontendApplication } from '../frontend-application';
|
|
27
|
+
|
|
28
|
+
@injectable()
|
|
29
|
+
export class DefaultWindowService implements WindowService, FrontendApplicationContribution {
|
|
30
|
+
|
|
31
|
+
protected frontendApplication: FrontendApplication;
|
|
32
|
+
protected allowVetoes = true;
|
|
33
|
+
|
|
34
|
+
protected onUnloadEmitter = new Emitter<void>();
|
|
35
|
+
get onUnload(): Event<void> {
|
|
36
|
+
return this.onUnloadEmitter.event;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@inject(CorePreferences)
|
|
40
|
+
protected readonly corePreferences: CorePreferences;
|
|
41
|
+
|
|
42
|
+
@inject(ContributionProvider)
|
|
43
|
+
@named(FrontendApplicationContribution)
|
|
44
|
+
protected readonly contributions: ContributionProvider<FrontendApplicationContribution>;
|
|
45
|
+
|
|
46
|
+
onStart(app: FrontendApplication): void {
|
|
47
|
+
this.frontendApplication = app;
|
|
48
|
+
this.registerUnloadListeners();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
openNewWindow(url: string): undefined {
|
|
52
|
+
window.open(url, undefined, 'noopener');
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
openNewDefaultWindow(): void {
|
|
57
|
+
this.openNewWindow(`#${DEFAULT_WINDOW_HASH}`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
focus(): void {
|
|
61
|
+
window.focus();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Returns a list of actions that {@link FrontendApplicationContribution}s would like to take before shutdown
|
|
66
|
+
* It is expected that this will succeed - i.e. return an empty array - at most once per session. If no vetoes are received
|
|
67
|
+
* during any cycle, no further checks will be made. In that case, shutdown should proceed unconditionally.
|
|
68
|
+
*/
|
|
69
|
+
protected collectContributionUnloadVetoes(): OnWillStopAction[] {
|
|
70
|
+
const vetoes: OnWillStopAction[] = [];
|
|
71
|
+
if (this.allowVetoes) {
|
|
72
|
+
const shouldConfirmExit = this.corePreferences['application.confirmExit'];
|
|
73
|
+
for (const contribution of this.contributions.getContributions()) {
|
|
74
|
+
const veto = contribution.onWillStop?.(this.frontendApplication);
|
|
75
|
+
if (veto && shouldConfirmExit !== 'never') { // Ignore vetoes if we should not prompt the user on exit.
|
|
76
|
+
if (OnWillStopAction.is(veto)) {
|
|
77
|
+
vetoes.push(veto);
|
|
78
|
+
} else {
|
|
79
|
+
vetoes.push({ reason: 'No reason given', action: () => false });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
vetoes.sort((a, b) => (a.priority ?? -Infinity) - (b.priority ?? -Infinity));
|
|
84
|
+
if (vetoes.length === 0 && shouldConfirmExit === 'always') {
|
|
85
|
+
vetoes.push({ reason: 'application.confirmExit preference', action: () => confirmExit() });
|
|
86
|
+
}
|
|
87
|
+
if (vetoes.length === 0) {
|
|
88
|
+
this.allowVetoes = false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return vetoes;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Implement the mechanism to detect unloading of the page.
|
|
96
|
+
*/
|
|
97
|
+
protected registerUnloadListeners(): void {
|
|
98
|
+
window.addEventListener('beforeunload', event => this.handleBeforeUnloadEvent(event));
|
|
99
|
+
// In a browser, `unload` is correctly fired when the page unloads, unlike Electron.
|
|
100
|
+
// If `beforeunload` is cancelled, the user will be prompted to leave or stay.
|
|
101
|
+
// If the user stays, the page won't be unloaded, so `unload` is not fired.
|
|
102
|
+
// If the user leaves, the page will be unloaded, so `unload` is fired.
|
|
103
|
+
window.addEventListener('unload', () => this.onUnloadEmitter.fire());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async isSafeToShutDown(stopReason: StopReason): Promise<boolean> {
|
|
107
|
+
const vetoes = this.collectContributionUnloadVetoes();
|
|
108
|
+
if (vetoes.length === 0) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
const preparedValues = await Promise.all(vetoes.map(e => e.prepare?.(stopReason)));
|
|
112
|
+
console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
|
|
113
|
+
for (let i = 0; i < vetoes.length; i++) {
|
|
114
|
+
try {
|
|
115
|
+
const result = await vetoes[i].action(preparedValues[i], stopReason);
|
|
116
|
+
if (!result) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
} catch (e) {
|
|
120
|
+
console.error(e);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
console.debug('OnWillStop actions resolved; allowing shutdown');
|
|
124
|
+
this.allowVetoes = false;
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
setSafeToShutDown(): void {
|
|
129
|
+
this.allowVetoes = false;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Called when the `window` is about to `unload` its resources.
|
|
134
|
+
* At this point, the `document` is still visible and the [`BeforeUnloadEvent`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event)
|
|
135
|
+
* event will be canceled if the return value of this method is `false`.
|
|
136
|
+
*
|
|
137
|
+
* In Electron, handleCloseRequestEvent is is run instead.
|
|
138
|
+
*/
|
|
139
|
+
protected handleBeforeUnloadEvent(event: BeforeUnloadEvent): string | void {
|
|
140
|
+
const vetoes = this.collectContributionUnloadVetoes();
|
|
141
|
+
if (vetoes.length) {
|
|
142
|
+
// 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.
|
|
143
|
+
console.debug('Shutdown prevented by', vetoes.map(({ reason }) => reason).join(', '));
|
|
144
|
+
return this.preventUnload(event);
|
|
145
|
+
}
|
|
146
|
+
console.debug('Shutdown will proceed.');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Notify the browser that we do not want to unload.
|
|
151
|
+
*
|
|
152
|
+
* Notes:
|
|
153
|
+
* - Shows a confirmation popup in browsers.
|
|
154
|
+
* - Prevents the window from closing without confirmation in electron.
|
|
155
|
+
*
|
|
156
|
+
* @param event The beforeunload event
|
|
157
|
+
*/
|
|
158
|
+
protected preventUnload(event: BeforeUnloadEvent): string | void {
|
|
159
|
+
event.returnValue = '';
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
return '';
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
reload(): void {
|
|
165
|
+
this.isSafeToShutDown(StopReason.Reload).then(isSafe => {
|
|
166
|
+
if (isSafe) {
|
|
167
|
+
window.location.reload();
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2022 STMicroelectronics, Ericsson, ARM, EclipseSource 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 { ApplicationShell } from '../shell';
|
|
18
|
-
import { ExtractableWidget } from '../widgets';
|
|
19
|
-
|
|
20
|
-
export const SecondaryWindowService = Symbol('SecondaryWindowService');
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Service for opening new secondary windows to contain widgets extracted from the application shell.
|
|
24
|
-
*
|
|
25
|
-
* @experimental The functionality provided by this service and its implementation is still under development. Use with caution.
|
|
26
|
-
*/
|
|
27
|
-
export interface SecondaryWindowService {
|
|
28
|
-
/**
|
|
29
|
-
* Creates a new secondary window for a widget to be extracted from the application shell.
|
|
30
|
-
* The created window is closed automatically when the current theia instance is closed.
|
|
31
|
-
*
|
|
32
|
-
* @param onClose optional callback that is invoked when the secondary window is closed
|
|
33
|
-
* @returns the created window or `undefined` if it could not be created
|
|
34
|
-
*/
|
|
35
|
-
createSecondaryWindow(widget: ExtractableWidget, shell: ApplicationShell): Window | undefined;
|
|
36
|
-
|
|
37
|
-
/** Handles focussing the given secondary window in the browser and on Electron. */
|
|
38
|
-
focus(win: Window): void;
|
|
39
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 STMicroelectronics, Ericsson, ARM, EclipseSource 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 { ApplicationShell } from '../shell';
|
|
18
|
+
import { ExtractableWidget } from '../widgets';
|
|
19
|
+
|
|
20
|
+
export const SecondaryWindowService = Symbol('SecondaryWindowService');
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Service for opening new secondary windows to contain widgets extracted from the application shell.
|
|
24
|
+
*
|
|
25
|
+
* @experimental The functionality provided by this service and its implementation is still under development. Use with caution.
|
|
26
|
+
*/
|
|
27
|
+
export interface SecondaryWindowService {
|
|
28
|
+
/**
|
|
29
|
+
* Creates a new secondary window for a widget to be extracted from the application shell.
|
|
30
|
+
* The created window is closed automatically when the current theia instance is closed.
|
|
31
|
+
*
|
|
32
|
+
* @param onClose optional callback that is invoked when the secondary window is closed
|
|
33
|
+
* @returns the created window or `undefined` if it could not be created
|
|
34
|
+
*/
|
|
35
|
+
createSecondaryWindow(widget: ExtractableWidget, shell: ApplicationShell): Window | undefined;
|
|
36
|
+
|
|
37
|
+
/** Handles focussing the given secondary window in the browser and on Electron. */
|
|
38
|
+
focus(win: Window): void;
|
|
39
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 Ericsson 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
|
-
import { injectable } from 'inversify';
|
|
17
|
-
import { Event } from '../../../common/event';
|
|
18
|
-
import { WindowService } from '../window-service';
|
|
19
|
-
|
|
20
|
-
@injectable()
|
|
21
|
-
export class MockWindowService implements WindowService {
|
|
22
|
-
openNewWindow(): undefined { return undefined; }
|
|
23
|
-
openNewDefaultWindow(): void { }
|
|
24
|
-
focus(): void { }
|
|
25
|
-
reload(): void { }
|
|
26
|
-
isSafeToShutDown(): Promise<boolean> { return Promise.resolve(true); }
|
|
27
|
-
setSafeToShutDown(): void { }
|
|
28
|
-
get onUnload(): Event<void> { return Event.None; }
|
|
29
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 Ericsson 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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { Event } from '../../../common/event';
|
|
18
|
+
import { WindowService } from '../window-service';
|
|
19
|
+
|
|
20
|
+
@injectable()
|
|
21
|
+
export class MockWindowService implements WindowService {
|
|
22
|
+
openNewWindow(): undefined { return undefined; }
|
|
23
|
+
openNewDefaultWindow(): void { }
|
|
24
|
+
focus(): void { }
|
|
25
|
+
reload(): void { }
|
|
26
|
+
isSafeToShutDown(): Promise<boolean> { return Promise.resolve(true); }
|
|
27
|
+
setSafeToShutDown(): void { }
|
|
28
|
+
get onUnload(): Event<void> { return Event.None; }
|
|
29
|
+
}
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 TypeFox 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 { StopReason } from '../../common/frontend-application-state';
|
|
18
|
-
import { Event } from '../../common/event';
|
|
19
|
-
import { NewWindowOptions, WindowSearchParams } from '../../common/window';
|
|
20
|
-
|
|
21
|
-
export interface WindowReloadOptions {
|
|
22
|
-
search?: WindowSearchParams,
|
|
23
|
-
hash?: string
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Service for opening new browser windows.
|
|
28
|
-
*/
|
|
29
|
-
export const WindowService = Symbol('WindowService');
|
|
30
|
-
|
|
31
|
-
export interface WindowService {
|
|
32
|
-
/**
|
|
33
|
-
* Opens a new window and loads the content from the given URL.
|
|
34
|
-
* In a browser, opening a new Theia tab or open a link is the same thing.
|
|
35
|
-
* But in Electron, we want to open links in a browser, not in Electron.
|
|
36
|
-
*/
|
|
37
|
-
openNewWindow(url: string, options?: NewWindowOptions): undefined;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Opens a new default window.
|
|
41
|
-
* - In electron and in the browser it will open the default window without a pre-defined content.
|
|
42
|
-
*/
|
|
43
|
-
openNewDefaultWindow(params?: WindowReloadOptions): void;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Reveal and focuses the current window
|
|
47
|
-
*/
|
|
48
|
-
focus(): void;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Fires when the `window` unloads. The unload event is inevitable. On this event, the frontend application can save its state and release resource.
|
|
52
|
-
* Saving the state and releasing any resources must be a synchronous call. Any asynchronous calls invoked after emitting this event might be ignored.
|
|
53
|
-
*/
|
|
54
|
-
readonly onUnload: Event<void>;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Checks `FrontendApplicationContribution#willStop` for impediments to shutdown and runs any actions returned.
|
|
58
|
-
* Can be used safely in browser and Electron when triggering reload or shutdown programmatically.
|
|
59
|
-
* Should _only_ be called before a shutdown - if this returns `true`, `FrontendApplicationContribution#willStop`
|
|
60
|
-
* will not be called again in the current session. I.e. if this return `true`, the shutdown should proceed without
|
|
61
|
-
* further condition.
|
|
62
|
-
*/
|
|
63
|
-
isSafeToShutDown(reason: StopReason): Promise<boolean>;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Will prevent subsequent checks of `FrontendApplicationContribution#willStop`. Should only be used after requesting
|
|
67
|
-
* user confirmation.
|
|
68
|
-
*
|
|
69
|
-
* This is primarily intended programmatic restarts due to e.g. change of display language. It allows for a single confirmation
|
|
70
|
-
* of intent, rather than one warning and then several warnings from other contributions.
|
|
71
|
-
*/
|
|
72
|
-
setSafeToShutDown(): void;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Reloads the window according to platform.
|
|
76
|
-
*/
|
|
77
|
-
reload(params?: WindowReloadOptions): void;
|
|
78
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 TypeFox 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 { StopReason } from '../../common/frontend-application-state';
|
|
18
|
+
import { Event } from '../../common/event';
|
|
19
|
+
import { NewWindowOptions, WindowSearchParams } from '../../common/window';
|
|
20
|
+
|
|
21
|
+
export interface WindowReloadOptions {
|
|
22
|
+
search?: WindowSearchParams,
|
|
23
|
+
hash?: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Service for opening new browser windows.
|
|
28
|
+
*/
|
|
29
|
+
export const WindowService = Symbol('WindowService');
|
|
30
|
+
|
|
31
|
+
export interface WindowService {
|
|
32
|
+
/**
|
|
33
|
+
* Opens a new window and loads the content from the given URL.
|
|
34
|
+
* In a browser, opening a new Theia tab or open a link is the same thing.
|
|
35
|
+
* But in Electron, we want to open links in a browser, not in Electron.
|
|
36
|
+
*/
|
|
37
|
+
openNewWindow(url: string, options?: NewWindowOptions): undefined;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Opens a new default window.
|
|
41
|
+
* - In electron and in the browser it will open the default window without a pre-defined content.
|
|
42
|
+
*/
|
|
43
|
+
openNewDefaultWindow(params?: WindowReloadOptions): void;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Reveal and focuses the current window
|
|
47
|
+
*/
|
|
48
|
+
focus(): void;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Fires when the `window` unloads. The unload event is inevitable. On this event, the frontend application can save its state and release resource.
|
|
52
|
+
* Saving the state and releasing any resources must be a synchronous call. Any asynchronous calls invoked after emitting this event might be ignored.
|
|
53
|
+
*/
|
|
54
|
+
readonly onUnload: Event<void>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Checks `FrontendApplicationContribution#willStop` for impediments to shutdown and runs any actions returned.
|
|
58
|
+
* Can be used safely in browser and Electron when triggering reload or shutdown programmatically.
|
|
59
|
+
* Should _only_ be called before a shutdown - if this returns `true`, `FrontendApplicationContribution#willStop`
|
|
60
|
+
* will not be called again in the current session. I.e. if this return `true`, the shutdown should proceed without
|
|
61
|
+
* further condition.
|
|
62
|
+
*/
|
|
63
|
+
isSafeToShutDown(reason: StopReason): Promise<boolean>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Will prevent subsequent checks of `FrontendApplicationContribution#willStop`. Should only be used after requesting
|
|
67
|
+
* user confirmation.
|
|
68
|
+
*
|
|
69
|
+
* This is primarily intended programmatic restarts due to e.g. change of display language. It allows for a single confirmation
|
|
70
|
+
* of intent, rather than one warning and then several warnings from other contributions.
|
|
71
|
+
*/
|
|
72
|
+
setSafeToShutDown(): void;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Reloads the window according to platform.
|
|
76
|
+
*/
|
|
77
|
+
reload(params?: WindowReloadOptions): void;
|
|
78
|
+
}
|