[MM-58158] Make sure closing the permissions dialog results in a Deny instead of an Allow (#3032) (#3033)
(cherry picked from commit 3cf7ec7451
)
Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
This commit is contained in:
parent
a1f5430824
commit
dd4870f96f
|
@ -145,7 +145,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 0}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 2}));
|
||||
await permissionsManager.handlePermissionRequest({id: 2}, 'media', cb, {securityOrigin: 'http://anyurl.com'});
|
||||
expect(permissionsManager.json['http://anyurl.com'].media.allowed).toBe(true);
|
||||
expect(permissionsManager.writeToFile).toHaveBeenCalled();
|
||||
|
@ -156,7 +156,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 1}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 0}));
|
||||
await permissionsManager.handlePermissionRequest({id: 2}, 'media', cb, {securityOrigin: 'http://anyurl.com'});
|
||||
expect(permissionsManager.json['http://anyurl.com'].media.allowed).toBe(false);
|
||||
expect(permissionsManager.writeToFile).toHaveBeenCalled();
|
||||
|
@ -167,7 +167,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 2}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 1}));
|
||||
await permissionsManager.handlePermissionRequest({id: 2}, 'media', cb, {securityOrigin: 'http://anyurl.com'});
|
||||
expect(permissionsManager.json['http://anyurl.com'].media.allowed).toBe(false);
|
||||
expect(permissionsManager.json['http://anyurl.com'].media.alwaysDeny).toBe(true);
|
||||
|
@ -179,7 +179,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 0}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 2}));
|
||||
await Promise.all([
|
||||
permissionsManager.handlePermissionRequest({id: 2}, 'notifications', cb, {requestingUrl: 'http://anyurl.com'}),
|
||||
permissionsManager.handlePermissionRequest({id: 2}, 'notifications', cb, {requestingUrl: 'http://anyurl.com'}),
|
||||
|
@ -199,7 +199,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 0}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 2}));
|
||||
await permissionsManager.handlePermissionRequest({id: 2}, 'media', cb, {securityOrigin: 'http://anyurl.com'});
|
||||
expect(dialog.showMessageBox).toHaveBeenCalled();
|
||||
});
|
||||
|
@ -208,7 +208,7 @@ describe('main/PermissionsManager', () => {
|
|||
const permissionsManager = new PermissionsManager('anyfile.json');
|
||||
permissionsManager.writeToFile = jest.fn();
|
||||
const cb = jest.fn();
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 0}));
|
||||
dialog.showMessageBox.mockReturnValue(Promise.resolve({response: 2}));
|
||||
await permissionsManager.handlePermissionRequest({id: 2}, 'openExternal', cb, {requestingUrl: 'http://anyurl.com', externalURL: 'ms-excel://differenturl.com'});
|
||||
expect(dialog.showMessageBox).toHaveBeenCalled();
|
||||
});
|
||||
|
|
|
@ -152,16 +152,16 @@ export class PermissionsManager extends JsonFileManager<Permissions> {
|
|||
detail: localizeMessage(`main.permissionsManager.checkPermission.dialog.detail.${permission}`, 'Would you like to grant {appName} this permission?', {appName: app.name}),
|
||||
type: 'question',
|
||||
buttons: [
|
||||
localizeMessage('label.allow', 'Allow'),
|
||||
localizeMessage('label.deny', 'Deny'),
|
||||
localizeMessage('label.denyPermanently', 'Deny Permanently'),
|
||||
localizeMessage('label.allow', 'Allow'),
|
||||
],
|
||||
});
|
||||
|
||||
// Save their response
|
||||
const newPermission = {
|
||||
allowed: response === 0,
|
||||
alwaysDeny: (response === 2) ? true : undefined,
|
||||
allowed: response === 2,
|
||||
alwaysDeny: (response === 1) ? true : undefined,
|
||||
};
|
||||
this.json[parsedURL.origin] = {
|
||||
...this.json[parsedURL.origin],
|
||||
|
@ -171,7 +171,7 @@ export class PermissionsManager extends JsonFileManager<Permissions> {
|
|||
|
||||
this.inflightPermissionChecks.delete(permissionKey);
|
||||
|
||||
if (response > 0) {
|
||||
if (response < 2) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue