-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontentScript.js
More file actions
130 lines (119 loc) · 2.96 KB
/
contentScript.js
File metadata and controls
130 lines (119 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//
// Script to intercat with the website (read and write)
//
// Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
const EDITOR_EXTENSION_ID = 'mokbpemgjhbbbgeggjknipddeledcgge'
const SOURCE_ID = 'cryptpnicsWalletSSI-agent'
const NAN = 'NAN'
let myMessage = null
window.addEventListener('load', function load(event) {
//closePopAux()
//initIframe()
sendMessageAux()
})
function sendMessageAux() {
window.addEventListener('message', (event) => {
try {
// Only accept messages from the same frame
if (event.source !== window) {
return
}
var message = event.data
if (message.source !== SOURCE_ID) {
return
}
switch (message.type) {
case 'prepareSignMessage':
myMessage = message
sendMessage(myMessage, 'prepareSignMessage')
break
case 'connectRequest':
//connectRequest()
break
default:
break
}
} catch (err) {
console.log('ERR', err)
return
}
})
}
async function sendMessage(message, type) {
let x = await sendMessageCore(message, type)
}
async function sendMessageCore(message, typeAux) {
return new Promise(async function (resolve, reject) {
chrome.runtime.sendMessage(
EDITOR_EXTENSION_ID,
{
type: typeAux,
data: message,
},
function (response) {
resolve({ response })
},
)
}).catch((error) => {
console.log('Err')
console.log(error)
let x = { status: 0.1, err: error }
resolve({ x })
})
}
function sendMessageToWebsite(type, message) {
window.postMessage(
{
source: SOURCE_ID,
type: type,
payload: {message: message },
},
'*',
)
}
function checkMessageIsWaiting(){
if(myMessage === null){
return false
}else{
return true
}
}
var onMessageListener = async function (message, sender, sendResponse) {
if (sender.id === EDITOR_EXTENSION_ID) {
message = message.data
switch (message.type) {
case 'signedMessage':
// we post this message data to the website
myMessage = null
sendMessageToWebsite('signedMessage', message.data)
sendResponse(1)
break
case 'cancelSignedMessage':
myMessage = null
sendMessageToWebsite('cancelSignedMessage', NAN)
sendResponse(1)
break
case 'sendCancelAccess':
sendMessageToWebsite('sendCancelAccess', NAN)
sendResponse(1)
break
case 'checkMessageIsWaiting':
let x = checkMessageIsWaiting()
sendResponse(x)
break
case 'pullMessageFromContent':
await sendMessage(myMessage, 'prepareSignMessage')
sendResponse(1)
break
default:
// NaN
break
}
return true
} else {
console.log('ERR: wrong sender')
return false
}
}
//message from background script to webstie via content script
chrome.runtime.onMessage.addListener(onMessageListener)