From 52b5a06755c427348d1b77409294b6b3f166b161 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 22 Sep 2021 17:10:40 -0400 Subject: [PATCH] chore: Refactor custom desktop window actions check --- addons/api/mirage/scenarios/ipc.js | 4 ++-- ui/desktop/app/routes/application.js | 4 ++-- ui/desktop/app/templates/application.hbs | 4 ++-- ui/desktop/electron-app/src/ipc/handlers.js | 21 ++++++++++++------- .../tests/acceptance/application-test.js | 4 ++-- ui/desktop/tests/helpers/window-mock-ipc.js | 2 +- 6 files changed, 22 insertions(+), 17 deletions(-) diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index 36846194d..6e44988e4 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -129,8 +129,8 @@ export default function initializeMockIPC(server) { /** * Check for OS chrome state */ - isWindowChromeless() { - return false; + showWindowActions() { + return true; } /** diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index 20719a9d3..a52baa954 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -36,8 +36,8 @@ export default class ApplicationRoute extends Route { async setupController(controller) { controller.set('hasMacOSChrome', await this.ipc.invoke('hasMacOSChrome')); controller.set( - 'isWindowChromeless', - await this.ipc.invoke('isWindowChromeless') + 'showWindowActions', + await this.ipc.invoke('showWindowActions') ); } diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index abc20d4b0..959fb2b05 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -1,7 +1,7 @@ {{page-title (app-name)}} @@ -19,7 +19,7 @@ {{/if}} - {{#if this.isWindowChromeless}} + {{#if this.showWindowActions}} handle('stop', ({ session_id }) => sessionManager.stopById(session_id)); /** - * Check frame/chrome state. Only enabled on non-MacOS. - */ -handle('isWindowChromeless', () => - process.env.DISABLE_WINDOW_CHROME ? false : !isMac() -); - -/** - * Check for MacOS chrome + * Check for OS window chrome. Enabled on MacOS only. + * Window chrome is disabled regardless of platform when + * `DISABLE_WINDOW_CHROME` env var is enabled. */ handle('hasMacOSChrome', () => process.env.DISABLE_WINDOW_CHROME ? false : isMac() ); +/** + * Show window actions for non-MacOS platforms. + * Window actions are disabled regardless of platform when + * `DISABLE_WINDOW_CHROME` env var is enabled. + */ +handle( + 'showWindowActions', + () => !isMac() || process.env.DISABLE_WINDOW_CHROME +); + /** * Minimize window */ diff --git a/ui/desktop/tests/acceptance/application-test.js b/ui/desktop/tests/acceptance/application-test.js index bb0431529..0cf4c0837 100644 --- a/ui/desktop/tests/acceptance/application-test.js +++ b/ui/desktop/tests/acceptance/application-test.js @@ -49,7 +49,7 @@ module('Acceptance | origin', function (hooks) { test('visiting index with chrome disabled hides custom window actions', async function (assert) { assert.expect(3); - stubs.ipcService.withArgs('isWindowChromeless').returns(false); + stubs.ipcService.withArgs('showWindowActions').returns(false); await visit(urls.origin); assert.notOk(find('.button-window-close'), 'Window close button'); assert.notOk(find('.button-window-minimize'), 'Window minimize button'); @@ -58,7 +58,7 @@ module('Acceptance | origin', function (hooks) { test('visiting index with chrome enabled shows custom window actions', async function (assert) { assert.expect(3); - stubs.ipcService.withArgs('isWindowChromeless').returns(true); + stubs.ipcService.withArgs('showWindowActions').returns(true); await visit(urls.origin); assert.ok(find('.button-window-close'), 'Window close button'); assert.ok(find('.button-window-minimize'), 'Window minimize button'); diff --git a/ui/desktop/tests/helpers/window-mock-ipc.js b/ui/desktop/tests/helpers/window-mock-ipc.js index 22910f249..ac05e8a78 100644 --- a/ui/desktop/tests/helpers/window-mock-ipc.js +++ b/ui/desktop/tests/helpers/window-mock-ipc.js @@ -18,7 +18,7 @@ class MockIPC { resetOrigin() {} hasMacOSChrome() {} - isWindowChromeless() {} + showWindowActions() {} } /**