Revert "get rid of polyfill since this is just chrome anyway."
This reverts commit a935a8c026.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
import {validateEvent, signEvent, getEventHash, getPublicKey} from 'nostr-tools'
|
||||
import {encrypt, decrypt} from 'nostr-tools/nip04'
|
||||
import {Mutex} from 'async-mutex'
|
||||
@@ -12,11 +13,11 @@ let openPrompt = null
|
||||
let promptMutex = new Mutex()
|
||||
let releasePromptMutex = () => {}
|
||||
|
||||
chrome.runtime.onInstalled.addListener((_, __, reason) => {
|
||||
if (reason === 'install') chrome.runtime.openOptionsPage()
|
||||
browser.runtime.onInstalled.addListener((_, __, reason) => {
|
||||
if (reason === 'install') browser.runtime.openOptionsPage()
|
||||
})
|
||||
|
||||
chrome.runtime.onMessage.addListener(async (req, sender) => {
|
||||
browser.runtime.onMessage.addListener(async (req, sender) => {
|
||||
let {prompt} = req
|
||||
|
||||
if (prompt) {
|
||||
@@ -26,14 +27,14 @@ chrome.runtime.onMessage.addListener(async (req, sender) => {
|
||||
}
|
||||
})
|
||||
|
||||
chrome.runtime.onMessageExternal.addListener(
|
||||
browser.runtime.onMessageExternal.addListener(
|
||||
async ({type, params}, sender) => {
|
||||
let extensionId = new URL(sender.url).host
|
||||
return handleContentScriptMessage({type, params, host: extensionId})
|
||||
}
|
||||
)
|
||||
|
||||
chrome.windows.onRemoved.addListener(windowId => {
|
||||
browser.windows.onRemoved.addListener(windowId => {
|
||||
if (openPrompt) {
|
||||
handlePromptMessage({condition: 'no'}, null)
|
||||
}
|
||||
@@ -57,7 +58,7 @@ async function handleContentScriptMessage({type, params, host}) {
|
||||
}
|
||||
}
|
||||
|
||||
let results = await chrome.storage.local.get('private_key')
|
||||
let results = await browser.storage.local.get('private_key')
|
||||
if (!results || !results.private_key) {
|
||||
return {error: 'no private key found'}
|
||||
}
|
||||
@@ -70,7 +71,7 @@ async function handleContentScriptMessage({type, params, host}) {
|
||||
return getPublicKey(sk)
|
||||
}
|
||||
case 'getRelays': {
|
||||
let results = await chrome.storage.local.get('relays')
|
||||
let results = await browser.storage.local.get('relays')
|
||||
return results.relays || {}
|
||||
}
|
||||
case 'signEvent': {
|
||||
@@ -119,7 +120,7 @@ function handlePromptMessage({id, condition, host, level}, sender) {
|
||||
releasePromptMutex()
|
||||
|
||||
if (sender) {
|
||||
chrome.windows.remove(sender.tab.windowId)
|
||||
browser.windows.remove(sender.tab.windowId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,8 +138,8 @@ async function promptPermission(host, level, params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
openPrompt = {resolve, reject}
|
||||
|
||||
chrome.windows.create({
|
||||
url: `${chrome.runtime.getURL('prompt.html')}?${qs.toString()}`,
|
||||
browser.windows.create({
|
||||
url: `${browser.runtime.getURL('prompt.html')}?${qs.toString()}`,
|
||||
type: 'popup',
|
||||
width: 340,
|
||||
height: 330
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
|
||||
export const PERMISSIONS_REQUIRED = {
|
||||
getPublicKey: 1,
|
||||
@@ -50,7 +51,7 @@ export function getPermissionsString(permission) {
|
||||
}
|
||||
|
||||
export async function readPermissions() {
|
||||
let {permissions = {}} = await chrome.storage.local.get('permissions')
|
||||
let {permissions = {}} = await browser.storage.local.get('permissions')
|
||||
|
||||
// delete expired
|
||||
var needsUpdate = false
|
||||
@@ -63,7 +64,7 @@ export async function readPermissions() {
|
||||
needsUpdate = true
|
||||
}
|
||||
}
|
||||
if (needsUpdate) chrome.storage.local.set({permissions})
|
||||
if (needsUpdate) browser.storage.local.set({permissions})
|
||||
|
||||
return permissions
|
||||
}
|
||||
@@ -73,10 +74,10 @@ export async function readPermissionLevel(host) {
|
||||
}
|
||||
|
||||
export async function updatePermission(host, permission) {
|
||||
let {permissions = {}} = await chrome.storage.local.get('permissions')
|
||||
let {permissions = {}} = await browser.storage.local.get('permissions')
|
||||
permissions[host] = {
|
||||
...permission,
|
||||
created_at: Math.round(Date.now() / 1000)
|
||||
}
|
||||
chrome.storage.local.set({permissions})
|
||||
browser.storage.local.set({permissions})
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
|
||||
// inject the script that will provide window.nostr
|
||||
let script = document.createElement('script')
|
||||
script.setAttribute('async', 'false')
|
||||
script.setAttribute('type', 'text/javascript')
|
||||
script.setAttribute('src', chrome.runtime.getURL('nostr-provider.js'))
|
||||
script.setAttribute('src', browser.runtime.getURL('nostr-provider.js'))
|
||||
document.head.appendChild(script)
|
||||
|
||||
// listen for messages from that script
|
||||
@@ -16,7 +17,7 @@ window.addEventListener('message', async message => {
|
||||
// pass on to background
|
||||
var response
|
||||
try {
|
||||
response = await chrome.runtime.sendMessage({
|
||||
response = await browser.runtime.sendMessage({
|
||||
type: message.data.type,
|
||||
params: message.data.params,
|
||||
host: location.host
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "nos2x",
|
||||
"description": "Nostr Signer Extension",
|
||||
"version": "1.6.0",
|
||||
"version": "1.6.1",
|
||||
"homepage_url": "https://github.com/fiatjaf/nos2x",
|
||||
"manifest_version": 3,
|
||||
"icons": {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
import React, {useState, useCallback, useEffect} from 'react'
|
||||
import {render} from 'react-dom'
|
||||
import {normalizeRelayURL} from 'nostr-tools/relay'
|
||||
@@ -18,7 +19,7 @@ function Options() {
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
chrome.storage.local.get(['private_key', 'relays']).then(results => {
|
||||
browser.storage.local.get(['private_key', 'relays']).then(results => {
|
||||
if (results.private_key) setKey(results.private_key)
|
||||
if (results.relays) {
|
||||
let relaysList = []
|
||||
@@ -160,7 +161,7 @@ function Options() {
|
||||
}
|
||||
|
||||
async function saveKey() {
|
||||
await chrome.storage.local.set({
|
||||
await browser.storage.local.set({
|
||||
private_key: key
|
||||
})
|
||||
showMessage('saved private key!')
|
||||
@@ -195,7 +196,7 @@ function Options() {
|
||||
}
|
||||
|
||||
async function saveRelays() {
|
||||
await chrome.storage.local.set({
|
||||
await browser.storage.local.set({
|
||||
relays: Object.fromEntries(
|
||||
relays
|
||||
.filter(({url}) => url.trim() !== '')
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
import {render} from 'react-dom'
|
||||
import {getPublicKey} from 'nostr-tools'
|
||||
import {bech32} from 'bech32'
|
||||
@@ -8,7 +9,7 @@ function Popup() {
|
||||
let keys = useRef([])
|
||||
|
||||
useEffect(() => {
|
||||
chrome.storage.local.get('private_key').then(results => {
|
||||
browser.storage.local.get('private_key').then(results => {
|
||||
if (results.private_key) {
|
||||
let hexKey = getPublicKey(results.private_key)
|
||||
let npubKey = bech32.encode(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import browser from 'webextension-polyfill'
|
||||
import {render} from 'react-dom'
|
||||
import React from 'react'
|
||||
|
||||
@@ -71,7 +72,7 @@ function Prompt() {
|
||||
function authorizeHandler(condition) {
|
||||
return function (ev) {
|
||||
ev.preventDefault()
|
||||
chrome.runtime.sendMessage({
|
||||
browser.runtime.sendMessage({
|
||||
prompt: true,
|
||||
id,
|
||||
host,
|
||||
|
||||
Reference in New Issue
Block a user