[MM-18152] Desktop notifications (#1040)

* temp

* add in html5 notification tests

* strip out custom permissions handling

* disable middle click

* validate as URI instead of URL

allow’s custom protocol’s to pass through

* add context isolation to new window requests

* add new permissions handling

* prevent setting user to away from quit/shutdown

* dispatch desktop notifications from renderer

* remove test code

* log desktop notification errors

* should deny as a last resort

* only trigger callback once
This commit is contained in:
Dean Whillier
2019-09-23 14:59:12 -04:00
committed by GitHub
parent 77d823a076
commit 761ef8d0e6
14 changed files with 116 additions and 468 deletions

View File

@@ -62,16 +62,6 @@ const configDataSchemaV1 = Joi.object({
spellCheckerLocale: Joi.string().regex(/^[a-z]{2}-[A-Z]{2}$/).default('en-US'),
});
// eg. data['https://community.mattermost.com']['notifications'] = 'granted';
// eg. data['http://localhost:8065']['notifications'] = 'denied';
const permissionsSchema = Joi.object().pattern(
Joi.string().uri(),
Joi.object().pattern(
Joi.string(),
Joi.any().valid('granted', 'denied'),
),
);
// eg. data['community.mattermost.com'] = { data: 'certificate data', issuerName: 'COMODO RSA Domain Validation Secure Server CA'};
const certificateStoreSchema = Joi.object().pattern(
Joi.string().uri(),
@@ -124,11 +114,6 @@ export function validateV1ConfigData(data) {
return validateAgainstSchema(data, configDataSchemaV1);
}
// validate permission.json
export function validatePermissionsList(data) {
return validateAgainstSchema(data, permissionsSchema);
}
// validate certificate.json
export function validateCertificateStore(data) {
return validateAgainstSchema(data, certificateStoreSchema);