Skip to content

Commit

Permalink
fix notifications for people who haven't allowed them.
Browse files Browse the repository at this point in the history
  • Loading branch information
fiatjaf committed Jun 11, 2023
1 parent 08a7960 commit 7117187
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 37 deletions.
40 changes: 4 additions & 36 deletions extension/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {Mutex} from 'async-mutex'
import {
NO_PERMISSIONS_REQUIRED,
getPermissionStatus,
updatePermission
updatePermission,
showNotification
} from './common'

const {encrypt, decrypt} = nip04
Expand Down Expand Up @@ -101,44 +102,11 @@ async function handleContentScriptMessage({type, params, host}) {
if (allowed === true) {
// authorized, proceed
releasePromptMutex()
browser.notifications
.create(undefined, {
type: 'basic',
title: `${type} allowed for ${host}`,
message: JSON.stringify(
params?.event
? {
kind: params.event.kind,
content: params.event.content,
tags: params.event.tags
}
: params,
null,
2
),
iconUrl: 'icons/48x48.png'
})
.then(console.log)
.catch(console.log)
showNotification(host, allowed, type, params)
} else if (allowed === false) {
// denied, just refuse immediately
releasePromptMutex()
browser.notifications.create(undefined, {
type: 'basic',
title: `${type} denied for ${host}`,
message: JSON.stringify(
params?.event
? {
kind: params.event.kind,
content: params.event.content,
tags: params.event.tags
}
: params,
null,
2
),
iconUrl: 'icons/denied48.png'
})
showNotification(host, allowed, type, params)
return {
error: 'denied'
}
Expand Down
23 changes: 23 additions & 0 deletions extension/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,26 @@ export async function removePermissions(host, accept, type) {
delete policies[host]?.[accept]?.[type]
browser.storage.local.set({policies})
}

export async function showNotification(host, answer, type, params) {
let ok = await browser.storage.local.get('notifications')
if (ok) {
let action = answer ? 'allowed' : 'denied'
browser.notifications.create(undefined, {
type: 'basic',
title: `${type} ${action} for ${host}`,
message: JSON.stringify(
params?.event
? {
kind: params.event.kind,
content: params.event.content,
tags: params.event.tags
}
: params,
null,
2
),
iconUrl: 'icons/48x48.png'
})
}
}
2 changes: 1 addition & 1 deletion extension/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "nos2x",
"description": "Nostr Signer Extension",
"version": "2.0.1",
"version": "2.0.2",
"homepage_url": "https://github.com/fiatjaf/nos2x",
"manifest_version": 3,
"icons": {
Expand Down

0 comments on commit 7117187

Please sign in to comment.