Skip to content

Commit 0f20955

Browse files
authored
Add sanity checks for permissions (#279)
1 parent 31d7e11 commit 0f20955

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

source/lib/notifications-service.js

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {makeApiRequest, getNotifications, getTabUrl, getGitHubOrigin} from './ap
77
import {getNotificationReasonText} from './defaults.js';
88
import {openTab} from './tabs-service.js';
99
import localStore from './local-store.js';
10+
import {queryPermission} from './permissions-service.js';
1011

1112
function getLastReadForNotification(notification) {
1213
// Extract the specific fragment URL for a notification
@@ -107,6 +108,11 @@ export function getNotificationObject(notificationInfo) {
107108
}
108109

109110
export async function showNotifications(notifications) {
111+
const permissionGranted = await queryPermission('notifications');
112+
if (!permissionGranted) {
113+
return;
114+
}
115+
110116
for (const notification of notifications) {
111117
const notificationId = `github-notifier-${notification.id}`;
112118
const notificationObject = getNotificationObject(notification);

source/lib/tabs-service.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import browser from 'webextension-polyfill';
22
import optionsStorage from '../options-storage.js';
33
import {isChrome} from '../util.js';
4+
import {queryPermission} from './permissions-service.js';
45

56
export const emptyTabUrls = isChrome() ? [
67
'chrome://newtab/',
@@ -22,8 +23,8 @@ export async function queryTabs(urlList) {
2223

2324
export async function openTab(url) {
2425
const {reuseTabs} = await optionsStorage.getAll();
25-
26-
if (reuseTabs) {
26+
const permissionGranted = await queryPermission('tabs');
27+
if (reuseTabs && permissionGranted) {
2728
const matchingUrls = [url];
2829
if (url.endsWith('/notifications')) {
2930
matchingUrls.push(url + '?query=is%3Aunread');

0 commit comments

Comments
 (0)