From 1e405b318fc4c071dc3e1a7f875de50e44494c74 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 14 Sep 2021 17:36:17 -0400 Subject: [PATCH 1/9] chore: Allow disabling electron frame on all desktop OSs --- addons/api/mirage/scenarios/ipc.js | 6 +++--- ui/desktop/README.md | 1 + ui/desktop/app/controllers/application.js | 11 +++++------ ui/desktop/app/routes/application.js | 3 ++- ui/desktop/app/templates/application.hbs | 4 +++- ui/desktop/electron-app/src/index.js | 11 +++++++++-- ui/desktop/electron-app/src/ipc/handlers.js | 9 ++++++++- 7 files changed, 31 insertions(+), 14 deletions(-) diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index 04ff375d4..e10ef7508 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -127,10 +127,10 @@ export default function initializeMockIPC(server) { } /** - * Check for browsers running on windows OS + * Check for OS frame */ - isWindowsOS() { - return Boolean(window.navigator.userAgent.match(/(windows)/i)); + isFrameless() { + return true; } /** diff --git a/ui/desktop/README.md b/ui/desktop/README.md index 8efc3e47f..2751287f2 100644 --- a/ui/desktop/README.md +++ b/ui/desktop/README.md @@ -78,6 +78,7 @@ These environment variables may be used to customized the build. | `APP_UPDATER_LATEST_VERSION_TAG` | Next version for comparison with current version. | | `APP_UPDATER_LATEST_VERSION_LOCATION` | Location of app release to use for updating client. Can be a filepath or url. | | `BYPASS_CLI_SETUP` | Disable download and extraction of cli. For development use only. | +| `BYPASS_OS_SHELL` | Disable OS shell with window actions. For internal use only. | ### Building for Production diff --git a/ui/desktop/app/controllers/application.js b/ui/desktop/app/controllers/application.js index 10cf5fcc7..27471994d 100644 --- a/ui/desktop/app/controllers/application.js +++ b/ui/desktop/app/controllers/application.js @@ -15,13 +15,12 @@ export default class ApplicationController extends Controller { // =attributes /** - * Display OS window actions (minimize, fullscreen, close) for - * Windows and Linux as OS frame/shell is disable. - * Does not apply to MacOS. + * Check for MacOS frame * @type {boolean} */ - @computed('isMacOS') - get isFrameless() { - return !this.isMacOS; + @computed('isMacOS', 'isFrameless') + get hasMacOSFrame() { + console.log('hasMacOSFrame ', this.isMacOS && !this.isFrameless); + return this.isMacOS && !this.isFrameless; } } diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index 4acb8a175..55bae783d 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -31,10 +31,11 @@ export default class ApplicationRoute extends Route { } /** - * Add OS config on controller. + * Add window frame config on controller. */ async setupController(controller) { controller.set('isMacOS', await this.ipc.invoke('isMacOS')); + controller.set('isFrameless', await this.ipc.invoke('isFrameless')); } // =actions diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index 501eb1db1..78f749688 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -1,3 +1,5 @@ + + {{page-title (app-name)}} diff --git a/ui/desktop/electron-app/src/index.js b/ui/desktop/electron-app/src/index.js index 66272336a..752a09fdf 100644 --- a/ui/desktop/electron-app/src/index.js +++ b/ui/desktop/electron-app/src/index.js @@ -113,11 +113,18 @@ app.on('ready', async () => { } Menu.setApplicationMenu(menuTemplate); + /** + * Enable electron OS frame for MacOS only. + * Disable frame regardless of OS using `BYPASS_OS_SHELL` + */ + let showFrame = isMac(); + if (process.env.BYPASS_OS_SHELL) showFrame = false; + const browserWindowOptions = { width: 1280, height: 760, - titleBarStyle: 'hiddenInset', - frame: isMac(), + frame: showFrame, + titleBarStyle: showFrame ? 'hiddenInset' : 'none', webPreferences: { partition, sandbox: true, diff --git a/ui/desktop/electron-app/src/ipc/handlers.js b/ui/desktop/electron-app/src/ipc/handlers.js index d66182f4c..c5e795e99 100644 --- a/ui/desktop/electron-app/src/ipc/handlers.js +++ b/ui/desktop/electron-app/src/ipc/handlers.js @@ -69,7 +69,14 @@ handle('connect', ({ target_id, token, host_id }) => handle('stop', ({ session_id }) => sessionManager.stopById(session_id)); /** - * Check for MacOS OS + * Check for frameless window state. Only MacOS uses default OS frame. + * Frameless window disables OS window actions (minimize, fullscreen, close). + * Enable `BYPASS_OS_SHELL` to bypass OS verification for frame. + */ +handle('isFrameless', () => !isMac() || process.env.BYPASS_OS_SHELL); + +/** + * Check for MacOS */ handle('isMacOS', () => isMac()); From aecfdbb6352eff9fa17b902574ca12f46db9eed0 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 15 Sep 2021 09:09:16 -0400 Subject: [PATCH 2/9] fix: Lint fix --- ui/desktop/app/templates/application.hbs | 2 -- 1 file changed, 2 deletions(-) diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index 78f749688..482661bd4 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -1,5 +1,3 @@ - - {{page-title (app-name)}} Date: Wed, 15 Sep 2021 10:54:28 -0400 Subject: [PATCH 3/9] chore: Fix tests for macos frame --- ui/desktop/app/controllers/application.js | 3 +-- ui/desktop/app/templates/application.hbs | 2 +- .../tests/acceptance/application-test.js | 26 +++++++++++++------ ui/desktop/tests/helpers/window-mock-ipc.js | 1 + 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ui/desktop/app/controllers/application.js b/ui/desktop/app/controllers/application.js index 27471994d..8d9c53da5 100644 --- a/ui/desktop/app/controllers/application.js +++ b/ui/desktop/app/controllers/application.js @@ -19,8 +19,7 @@ export default class ApplicationController extends Controller { * @type {boolean} */ @computed('isMacOS', 'isFrameless') - get hasMacOSFrame() { - console.log('hasMacOSFrame ', this.isMacOS && !this.isFrameless); + get isFrameMacOS() { return this.isMacOS && !this.isFrameless; } } diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index 482661bd4..e4cf86c72 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -8,7 +8,7 @@ diff --git a/ui/desktop/tests/acceptance/application-test.js b/ui/desktop/tests/acceptance/application-test.js index 23a254e0e..4f9cabdee 100644 --- a/ui/desktop/tests/acceptance/application-test.js +++ b/ui/desktop/tests/acceptance/application-test.js @@ -48,20 +48,30 @@ module('Acceptance | origin', function (hooks) { }); test('visiting index on MacOS hides custom window actions', async function (assert) { - assert.expect(3); + assert.expect(4); stubs.ipcService.withArgs('isMacOS').returns(true); + stubs.ipcService.withArgs('isFrameless').returns(false); await visit(urls.origin); - assert.notOk(find('.button-window-close')); - assert.notOk(find('.button-window-minimize')); - assert.notOk(find('.button-window-fullscreen')); + assert.notOk(find('.button-window-close'), 'Window close button'); + assert.notOk(find('.button-window-minimize'), 'Window minimize button'); + assert.notOk(find('.button-window-fullscreen'), 'Window fullscreen button'); + assert.ok( + find('.rose-header.header-cushion'), + 'Adds header padding around native window actions' + ); }); test('visiting index on non-MacOS shows custom window actions', async function (assert) { - assert.expect(3); + assert.expect(4); stubs.ipcService.withArgs('isMacOS').returns(false); + stubs.ipcService.withArgs('isFrameless').returns(true); await visit(urls.origin); - assert.ok(find('.button-window-close')); - assert.ok(find('.button-window-minimize')); - assert.ok(find('.button-window-fullscreen')); + assert.ok(find('.button-window-close'), 'Window close button'); + assert.ok(find('.button-window-minimize'), 'Window minimize button'); + assert.ok(find('.button-window-fullscreen'), 'Window fullscreen button'); + assert.notOk( + find('.rose-header.header-cushion'), + 'Disables header padding around native window actions' + ); }); }); diff --git a/ui/desktop/tests/helpers/window-mock-ipc.js b/ui/desktop/tests/helpers/window-mock-ipc.js index 8151c8cbc..bb9214b15 100644 --- a/ui/desktop/tests/helpers/window-mock-ipc.js +++ b/ui/desktop/tests/helpers/window-mock-ipc.js @@ -18,6 +18,7 @@ class MockIPC { resetOrigin() {} isMacOS() {} + isFrameless() {} } /** From 631d90869f99de9829263af6303f0a550397468c Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 16 Sep 2021 10:33:56 -0400 Subject: [PATCH 4/9] chore: Refactor DISABLE_WINDOW_CHROME var --- addons/api/mirage/scenarios/ipc.js | 12 +++---- ui/desktop/README.md | 2 +- ui/desktop/app/controllers/application.js | 12 ------- ui/desktop/app/routes/application.js | 7 ++-- ui/desktop/app/templates/application.hbs | 6 ++-- ui/desktop/electron-app/src/index.js | 12 +++---- ui/desktop/electron-app/src/ipc/handlers.js | 14 ++++---- .../tests/acceptance/application-test.js | 34 ++++++++++++------- ui/desktop/tests/helpers/window-mock-ipc.js | 4 +-- 9 files changed, 53 insertions(+), 50 deletions(-) diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index e10ef7508..36846194d 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -120,17 +120,17 @@ export default function initializeMockIPC(server) { } /** - * Check for browsers running on mac OS + * Check for window chrome on MacOS */ - isMacOS() { - return Boolean(window.navigator.userAgent.match(/(macintosh)/i)); + hasMacOSChrome() { + return false; } /** - * Check for OS frame + * Check for OS chrome state */ - isFrameless() { - return true; + isWindowChromeless() { + return false; } /** diff --git a/ui/desktop/README.md b/ui/desktop/README.md index 2751287f2..d2d754eed 100644 --- a/ui/desktop/README.md +++ b/ui/desktop/README.md @@ -78,7 +78,7 @@ These environment variables may be used to customized the build. | `APP_UPDATER_LATEST_VERSION_TAG` | Next version for comparison with current version. | | `APP_UPDATER_LATEST_VERSION_LOCATION` | Location of app release to use for updating client. Can be a filepath or url. | | `BYPASS_CLI_SETUP` | Disable download and extraction of cli. For development use only. | -| `BYPASS_OS_SHELL` | Disable OS shell with window actions. For internal use only. | +| `DISABLE_WINDOW_CHROME` | Disable window chrome. For internal use only. | ### Building for Production diff --git a/ui/desktop/app/controllers/application.js b/ui/desktop/app/controllers/application.js index 8d9c53da5..0eb5226e0 100644 --- a/ui/desktop/app/controllers/application.js +++ b/ui/desktop/app/controllers/application.js @@ -1,7 +1,6 @@ import Controller from '@ember/controller'; import { inject as service } from '@ember/service'; import config from '../config/environment'; -import { computed } from '@ember/object'; export default class ApplicationController extends Controller { // =services @@ -11,15 +10,4 @@ export default class ApplicationController extends Controller { // =attributes notifyTimeout = config.notifyTimeout; - - // =attributes - - /** - * Check for MacOS frame - * @type {boolean} - */ - @computed('isMacOS', 'isFrameless') - get isFrameMacOS() { - return this.isMacOS && !this.isFrameless; - } } diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index 55bae783d..20719a9d3 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -34,8 +34,11 @@ export default class ApplicationRoute extends Route { * Add window frame config on controller. */ async setupController(controller) { - controller.set('isMacOS', await this.ipc.invoke('isMacOS')); - controller.set('isFrameless', await this.ipc.invoke('isFrameless')); + controller.set('hasMacOSChrome', await this.ipc.invoke('hasMacOSChrome')); + controller.set( + 'isWindowChromeless', + await this.ipc.invoke('isWindowChromeless') + ); } // =actions diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index e4cf86c72..c57622e33 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -1,14 +1,14 @@ {{page-title (app-name)}} @@ -19,7 +19,7 @@ {{/if}} - {{#if this.isFrameless}} + {{#if this.isWindowChromeless}} { Menu.setApplicationMenu(menuTemplate); /** - * Enable electron OS frame for MacOS only. - * Disable frame regardless of OS using `BYPASS_OS_SHELL` + * Enable electron OS window frame/chrome for MacOS only. + * Disable frame/chrome regardless of OS when `DISABLE_WINDOW_CHROME` is set. */ - let showFrame = isMac(); - if (process.env.BYPASS_OS_SHELL) showFrame = false; + let showWindowChrome = isMac(); + if (process.env.DISABLE_WINDOW_CHROME) showWindowChrome = false; const browserWindowOptions = { width: 1280, height: 760, - frame: showFrame, - titleBarStyle: showFrame ? 'hiddenInset' : 'none', + frame: showWindowChrome, + titleBarStyle: showWindowChrome ? 'hiddenInset' : 'none', webPreferences: { partition, sandbox: true, diff --git a/ui/desktop/electron-app/src/ipc/handlers.js b/ui/desktop/electron-app/src/ipc/handlers.js index c5e795e99..02780d834 100644 --- a/ui/desktop/electron-app/src/ipc/handlers.js +++ b/ui/desktop/electron-app/src/ipc/handlers.js @@ -69,16 +69,18 @@ handle('connect', ({ target_id, token, host_id }) => handle('stop', ({ session_id }) => sessionManager.stopById(session_id)); /** - * Check for frameless window state. Only MacOS uses default OS frame. - * Frameless window disables OS window actions (minimize, fullscreen, close). - * Enable `BYPASS_OS_SHELL` to bypass OS verification for frame. + * Check frame/chrome state. Only enabled on non-MacOS. */ -handle('isFrameless', () => !isMac() || process.env.BYPASS_OS_SHELL); +handle('isWindowChromeless', () => + process.env.DISABLE_WINDOW_CHROME ? false : !isMac() +); /** - * Check for MacOS + * Check for MacOS chrome */ -handle('isMacOS', () => isMac()); +handle('hasMacOSChrome', () => + process.env.DISABLE_WINDOW_CHROME ? false : isMac() +); /** * Minimize window diff --git a/ui/desktop/tests/acceptance/application-test.js b/ui/desktop/tests/acceptance/application-test.js index 4f9cabdee..bb0431529 100644 --- a/ui/desktop/tests/acceptance/application-test.js +++ b/ui/desktop/tests/acceptance/application-test.js @@ -47,31 +47,41 @@ module('Acceptance | origin', function (hooks) { sinon.restore(); }); - test('visiting index on MacOS hides custom window actions', async function (assert) { - assert.expect(4); - stubs.ipcService.withArgs('isMacOS').returns(true); - stubs.ipcService.withArgs('isFrameless').returns(false); + test('visiting index with chrome disabled hides custom window actions', async function (assert) { + assert.expect(3); + stubs.ipcService.withArgs('isWindowChromeless').returns(false); await visit(urls.origin); assert.notOk(find('.button-window-close'), 'Window close button'); assert.notOk(find('.button-window-minimize'), 'Window minimize button'); assert.notOk(find('.button-window-fullscreen'), 'Window fullscreen button'); + }); + + test('visiting index with chrome enabled shows custom window actions', async function (assert) { + assert.expect(3); + stubs.ipcService.withArgs('isWindowChromeless').returns(true); + await visit(urls.origin); + assert.ok(find('.button-window-close'), 'Window close button'); + assert.ok(find('.button-window-minimize'), 'Window minimize button'); + assert.ok(find('.button-window-fullscreen'), 'Window fullscreen button'); + }); + + test('visiting index with MacOS chrome enabled', async function (assert) { + assert.expect(1); + stubs.ipcService.withArgs('hasMacOSChrome').returns(true); + await visit(urls.origin); assert.ok( find('.rose-header.header-cushion'), 'Adds header padding around native window actions' ); }); - test('visiting index on non-MacOS shows custom window actions', async function (assert) { - assert.expect(4); - stubs.ipcService.withArgs('isMacOS').returns(false); - stubs.ipcService.withArgs('isFrameless').returns(true); + test('visiting index with MacOS chrome disabled', async function (assert) { + assert.expect(1); + stubs.ipcService.withArgs('hasMacOSChrome').returns(false); await visit(urls.origin); - assert.ok(find('.button-window-close'), 'Window close button'); - assert.ok(find('.button-window-minimize'), 'Window minimize button'); - assert.ok(find('.button-window-fullscreen'), 'Window fullscreen button'); assert.notOk( find('.rose-header.header-cushion'), - 'Disables header padding around native window actions' + 'Does not add header padding around native window actions' ); }); }); diff --git a/ui/desktop/tests/helpers/window-mock-ipc.js b/ui/desktop/tests/helpers/window-mock-ipc.js index bb9214b15..22910f249 100644 --- a/ui/desktop/tests/helpers/window-mock-ipc.js +++ b/ui/desktop/tests/helpers/window-mock-ipc.js @@ -17,8 +17,8 @@ class MockIPC { } resetOrigin() {} - isMacOS() {} - isFrameless() {} + hasMacOSChrome() {} + isWindowChromeless() {} } /** From 52b5a06755c427348d1b77409294b6b3f166b161 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 22 Sep 2021 17:10:40 -0400 Subject: [PATCH 5/9] 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() {} } /** From f987b908fc0dfb0261a87b583a02b31ff64da2ec Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 23 Sep 2021 21:08:21 -0400 Subject: [PATCH 6/9] fix: Use DISABLE_WINDOW_CHROME check before platform -desktop --- ui/desktop/electron-app/src/index.js | 3 ++- ui/desktop/electron-app/src/ipc/handlers.js | 13 ++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/desktop/electron-app/src/index.js b/ui/desktop/electron-app/src/index.js index 6fdf81578..61d9a2c57 100644 --- a/ui/desktop/electron-app/src/index.js +++ b/ui/desktop/electron-app/src/index.js @@ -115,7 +115,8 @@ app.on('ready', async () => { /** * Enable electron OS window frame/chrome for MacOS only. - * Disable frame/chrome regardless of OS when `DISABLE_WINDOW_CHROME` is set. + * Disable frame/chrome regardless of OS when + * `DISABLE_WINDOW_CHROME=true`. */ let showWindowChrome = isMac(); if (process.env.DISABLE_WINDOW_CHROME) showWindowChrome = false; diff --git a/ui/desktop/electron-app/src/ipc/handlers.js b/ui/desktop/electron-app/src/ipc/handlers.js index 3d3ba3b4a..599e9c765 100644 --- a/ui/desktop/electron-app/src/ipc/handlers.js +++ b/ui/desktop/electron-app/src/ipc/handlers.js @@ -70,8 +70,8 @@ handle('stop', ({ session_id }) => sessionManager.stopById(session_id)); /** * Check for OS window chrome. Enabled on MacOS only. - * Window chrome is disabled regardless of platform when - * `DISABLE_WINDOW_CHROME` env var is enabled. + * Window chrome is disabled regardless of platform for + * `DISABLE_WINDOW_CHROME=true`. */ handle('hasMacOSChrome', () => process.env.DISABLE_WINDOW_CHROME ? false : isMac() @@ -79,12 +79,11 @@ handle('hasMacOSChrome', () => /** * Show window actions for non-MacOS platforms. - * Window actions are disabled regardless of platform when - * `DISABLE_WINDOW_CHROME` env var is enabled. + * Window actions are disabled regardless of platform for + * `DISABLE_WINDOW_CHROME=true`. */ -handle( - 'showWindowActions', - () => !isMac() || process.env.DISABLE_WINDOW_CHROME +handle('showWindowActions', () => + process.env.DISABLE_WINDOW_CHROME ? false : !isMac() ); /** From 545f10b6750fc950dca6fc49c5c361876c815acd Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 27 Sep 2021 15:42:37 +0200 Subject: [PATCH 7/9] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Add=20ansi-regex=20?= =?UTF-8?q?to=20desktop=20resolutions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add ansi-regex transitive dependency to electron-app resolutions to avoid security vulnerability --- ui/desktop/electron-app/package.json | 3 ++- ui/desktop/electron-app/yarn.lock | 18 ++++-------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 84a869fb4..e5e0bdfa2 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -48,6 +48,7 @@ "normalize-url": "^4.5.1", "jszip": "^3.7.0", "path-parse": "^1.0.7", - "tar": "^6.1.9" + "tar": "^6.1.9", + "ansi-regex": "^5.0.1" } } diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index 494209a03..cf1d1007e 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -416,20 +416,10 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^2.0.0, ansi-regex@^3.0.0, ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" From cc42e2fbe0c7e07b314e6af925c3eb880057c884 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 27 Sep 2021 16:17:52 +0200 Subject: [PATCH 8/9] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Add=20ansi-regex=20?= =?UTF-8?q?transtitive=20dependency=20to=20resolutions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add ansi-regex transitive dependency to resolutions to avoid security vulnerability. --- package.json | 3 ++- yarn.lock | 23 ++++------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 6db6c4f30..cef044455 100755 --- a/package.json +++ b/package.json @@ -80,7 +80,8 @@ "path-parse": "^1.0.7", "nth-check": "^2.0.1", "tmpl": "^1.0.5", - "set-value": "^4.0.1" + "set-value": "^4.0.1", + "ansi-regex": "^5.0.1" }, "config": { "commitizen": { diff --git a/yarn.lock b/yarn.lock index e1af5f636..d41364d00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4179,25 +4179,10 @@ ansi-html@0.0.7, ansi-html@^0.0.7: resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^2.0.0, ansi-regex@^3.0.0, ansi-regex@^4.1.0, ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: version "2.2.1" From 224169c636dbb03a86fd8d3da292aa8b5338ba39 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 27 Sep 2021 16:32:40 +0200 Subject: [PATCH 9/9] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Update=20electron?= =?UTF-8?q?=20minor=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update electron minor version --- ui/desktop/electron-app/package.json | 2 +- ui/desktop/electron-app/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 84a869fb4..e027ad790 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -39,7 +39,7 @@ "@electron-forge/maker-zip": "^6.0.0-beta.54", "decompress": "^4.2.1", "devtron": "^1.4.0", - "electron": "12.0.2" + "electron": "12.1.2" }, "resolutions": { "highlight.js": "^10.4.1", diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index 494209a03..c19191736 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -1267,10 +1267,10 @@ electron-winstaller@^5.0.0: lodash.template "^4.2.2" temp "^0.9.0" -electron@12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.2.tgz#d92be205f1937627bd6718aad44ac161382b4c2d" - integrity sha512-14luh9mGzfL4e0sncyy0+kW37IU7Y0Y1tvI97FDRSW0ZBQxi5cmAwSs5dmPmNBFBIGtzkaGaEB01j9RjZuCmow== +electron@12.1.2: + version "12.1.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-12.1.2.tgz#aca178efc40fe422f7bfeddeeec63e40c11a16c5" + integrity sha512-yWlnKfJYDsvJjV2GyiBqpbqYI4DkTwk1OP/YRVodp9tfDLqAp9VdE8VZXbl1y29pZtIY+/YtUedBQc1RY3RMqQ== dependencies: "@electron/get" "^1.0.1" "@types/node" "^14.6.2"