From 1270859d39c9cd462b689d4cd90a3cb317d30456 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Mon, 15 Aug 2022 09:06:31 -0400 Subject: [PATCH] [MM-46101] Move allowed protocols to build config (#2217) --- electron-builder.json | 7 +------ src/common/config/buildConfig.ts | 7 +++++++ src/main/allowProtocolDialog.test.js | 13 +++++-------- src/main/allowProtocolDialog.ts | 8 ++------ src/types/config.ts | 1 + 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/electron-builder.json b/electron-builder.json index fc4085e4..15fef237 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -28,12 +28,7 @@ { "name": "Mattermost", "schemes": [ - "mattermost", - "http", - "https", - "ftp", - "mailto", - "tel" + "mattermost" ] } ], diff --git a/src/common/config/buildConfig.ts b/src/common/config/buildConfig.ts index 70d439f3..e6fc3204 100644 --- a/src/common/config/buildConfig.ts +++ b/src/common/config/buildConfig.ts @@ -18,6 +18,7 @@ import {BuildConfig} from 'types/config'; * Specify at least one server for "defaultTeams" * when "enableServerManagement is set to false * @prop {[]} managedResources - Defines which paths are managed + * @prop {[]} allowedProtocols - Defines which protocols should be automatically allowed */ const buildConfig: BuildConfig = { defaultTeams: [/* @@ -30,6 +31,12 @@ const buildConfig: BuildConfig = { enableServerManagement: true, enableAutoUpdater: true, managedResources: ['trusted'], + allowedProtocols: [ + 'mattermost', + 'ftp', + 'mailto', + 'tel', + ], }; export default buildConfig; diff --git a/src/main/allowProtocolDialog.test.js b/src/main/allowProtocolDialog.test.js index 09319210..dbd09f9b 100644 --- a/src/main/allowProtocolDialog.test.js +++ b/src/main/allowProtocolDialog.test.js @@ -31,14 +31,11 @@ jest.mock('electron', () => ({ }, })); -jest.mock('../../electron-builder.json', () => ({ - protocols: [{ - name: 'Mattermost', - schemes: [ - 'pone', - 'ptwo', - ], - }], +jest.mock('common/config/buildConfig', () => ({ + allowedProtocols: [ + 'pone', + 'ptwo', + ], })); jest.mock('./Validator', () => ({ diff --git a/src/main/allowProtocolDialog.ts b/src/main/allowProtocolDialog.ts index df0dcda7..a51451bc 100644 --- a/src/main/allowProtocolDialog.ts +++ b/src/main/allowProtocolDialog.ts @@ -10,7 +10,7 @@ import log from 'electron-log'; import {localizeMessage} from 'main/i18nManager'; -import {protocols} from '../../electron-builder.json'; +import buildConfig from 'common/config/buildConfig'; import * as Validator from './Validator'; import WindowManager from './windows/windowManager'; @@ -31,11 +31,7 @@ export class AllowProtocolDialog { } this.addScheme('http'); this.addScheme('https'); - protocols.forEach((protocol) => { - if (protocol.schemes && protocol.schemes.length > 0) { - protocol.schemes.forEach(this.addScheme); - } - }); + buildConfig.allowedProtocols.forEach(this.addScheme); }); } diff --git a/src/types/config.ts b/src/types/config.ts index 4703f741..2fe4daa5 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -105,6 +105,7 @@ export type BuildConfig = { enableServerManagement: boolean; enableAutoUpdater: boolean; managedResources: string[]; + allowedProtocols: string[]; } export type RegistryConfig = {