msg confirm message working, need to figure out how to branch reply
This commit is contained in:
+68
-12
@@ -5,29 +5,85 @@
|
||||
|
||||
main();
|
||||
|
||||
|
||||
async function
|
||||
main
|
||||
()
|
||||
: Promise<void>
|
||||
{
|
||||
console.log('msg_confirm main');
|
||||
var result = null;
|
||||
document.getElementById('good')!.onclick = () => { console.log('click good'); result = 'good' }
|
||||
document.getElementById('bad')!.onclick = () => { console.log('click bad'); result = 'bad' }
|
||||
|
||||
console.log('adding listener');
|
||||
let result : '' | 'good' | 'bad'
|
||||
= '';
|
||||
|
||||
document.getElementById('good')!.onclick
|
||||
= function() {
|
||||
console.log('click good');
|
||||
result = 'good';
|
||||
};
|
||||
document.getElementById('bad')!.onclick
|
||||
= function() {
|
||||
console.log('click bad');
|
||||
result = 'bad';
|
||||
};
|
||||
|
||||
|
||||
type bg_msg
|
||||
= {msg_str : string};
|
||||
|
||||
async function listener
|
||||
(msg : bg_msg,
|
||||
_sender : any,
|
||||
_sendResponse : any)
|
||||
: Promise<'good' | 'bad'>
|
||||
{
|
||||
console.log('listener triggered', msg);
|
||||
console.log('msg_str:', msg.msg_str);
|
||||
document.getElementById('message')!.innerHTML = msg.msg_str;
|
||||
|
||||
// every 5 ms check
|
||||
// timeout of 10 minutes = 10*60 secs * 20 iterations =
|
||||
// number of iters in a full second
|
||||
let ITERS = 1;
|
||||
let SEC = 200*ITERS;
|
||||
let MIN = 60*SEC;
|
||||
//let n_max = 10*MIN;
|
||||
let n = 1;
|
||||
let n_max = 30*SEC;
|
||||
|
||||
while
|
||||
(result === '') {
|
||||
// if haven't timed out yet
|
||||
if (n <= n_max) {
|
||||
await sleep(5);
|
||||
n = n + 1;
|
||||
}
|
||||
// if timed out
|
||||
else {
|
||||
result = 'bad';
|
||||
// this break is implied but you're not smart enough to figure
|
||||
// that out yourself
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// send result back
|
||||
return result;
|
||||
}
|
||||
|
||||
// add listener
|
||||
browser.runtime.onMessage.addListener(listener);
|
||||
console.log('added listener');
|
||||
}
|
||||
|
||||
// for some reason the listener here never gets triggered
|
||||
|
||||
|
||||
/**
|
||||
* Hack from stack overflow somewhere to sleep for the given number of ms
|
||||
*/
|
||||
async function
|
||||
listener
|
||||
(msg : any,
|
||||
_sender : any,
|
||||
_sendResponse : any)
|
||||
sleep
|
||||
(ms: number)
|
||||
: Promise<void>
|
||||
{
|
||||
console.log('listener triggered');
|
||||
console.log(msg);
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user