26 lines
691 B
JavaScript
26 lines
691 B
JavaScript
// inject the script that will provide window.nostr
|
|
let script = document.createElement('script')
|
|
script.src = 'nostr-provider.js'
|
|
document.head.appendChild(script)
|
|
|
|
// listen for messages from that script
|
|
window.addEventListener('message', async ev => {
|
|
if (ev.source !== window) return
|
|
if (!ev.data || ev.data.ext !== 'nos2x') {
|
|
// pass on to background
|
|
var response
|
|
try {
|
|
response = browser.runtime.sendMessage({
|
|
type: ev.data.type,
|
|
params: ev.data.params,
|
|
host: window.location.host
|
|
})
|
|
} catch (error) {
|
|
response = {error}
|
|
}
|
|
|
|
// return response
|
|
window.postMessage({id: ev.data.id, ext: 'nos2x', response})
|
|
}
|
|
})
|