diff --git a/jrx/notes.txt b/jrx/notes.txt index e2fd419..14f20a9 100644 --- a/jrx/notes.txt +++ b/jrx/notes.txt @@ -29,3 +29,9 @@ background script - raseev requests - send responses back to page - + +---- +vdk general lib + +sleep +bulrtot diff --git a/jrx/pages/msg_confirm.html b/jrx/pages/msg_confirm.html index be05063..c275d69 100644 --- a/jrx/pages/msg_confirm.html +++ b/jrx/pages/msg_confirm.html @@ -14,7 +14,7 @@
- + diff --git a/jrx/pages/msg_confirm.js b/jrx/pages/msg_confirm.js deleted file mode 100644 index f8f49db..0000000 --- a/jrx/pages/msg_confirm.js +++ /dev/null @@ -1,14 +0,0 @@ -console.log('ur mom'); -var result = null; -document.getElementById('good').onclick = () => { console.log('click good'); result = 'good' } -document.getElementById('bad').onclick = () => { console.log('click bad'); result = 'bad' } - -// for some reason the listener here never gets triggered -async function listener(msg, _sender, _sendResponse) { - console.log('listener triggered'); - console.log(msg); -} - -console.log('adding listener'); -browser.runtime.onMessage.addListener(listener); -console.log('added listener'); diff --git a/jrx/src/b_lib.ts b/jrx/src/b_lib.ts index d46aab9..608195a 100644 --- a/jrx/src/b_lib.ts +++ b/jrx/src/b_lib.ts @@ -359,10 +359,15 @@ msg_sign let confirm_window = await browser.windows.create({url : '../pages/msg_confirm.html', type : 'popup'}); console.log('b'); + console.log(confirm_window.tabs); // @ts-ignore shut the fuck up let tabid : number = confirm_window.tabs[0].id; console.log('tabid', tabid); + // stupid hack because otherwise the message gets sent before the listener in the page script is created + await sleep(500); + console.log('slept'); + let result = await browser.tabs.sendMessage(tabid, {msg_str : msg_str}); console.log('result', result); @@ -769,3 +774,17 @@ bi_s2i return {keypairs: i_keypairs}; } + + + +/** + * Hack from stack overflow somewhere to sleep for the given number of ms + */ +async function +sleep + (ms: number) + : Promise +{ + return new Promise(resolve => setTimeout(resolve, ms)); +} + diff --git a/jrx/src/msg_confirm.ts b/jrx/src/msg_confirm.ts new file mode 100644 index 0000000..0f42c19 --- /dev/null +++ b/jrx/src/msg_confirm.ts @@ -0,0 +1,33 @@ +/** + * Page script for "confirm sign message" popup window + */ + + +main(); + +async function +main + () + : Promise +{ + 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'); + browser.runtime.onMessage.addListener(listener); + console.log('added listener'); +} + +// for some reason the listener here never gets triggered +async function +listener + (msg : any, + _sender : any, + _sendResponse : any) + : Promise +{ + console.log('listener triggered'); + console.log(msg); +}