diff options
author | brunobar79 <brunobar79@gmail.com> | 2018-08-10 23:44:32 +0800 |
---|---|---|
committer | brunobar79 <brunobar79@gmail.com> | 2018-08-10 23:44:32 +0800 |
commit | 814c642d952b8271508b8b091d640084897aedd5 (patch) | |
tree | 57462bda439031c6cbea4e3fac5ab1985db9d7a7 /app/vendor/trezor/usb-permissions.js | |
parent | 728aeb9344fffc897a2bea6d5cae1eee211556b7 (diff) | |
download | tangerine-wallet-browser-814c642d952b8271508b8b091d640084897aedd5.tar.gz tangerine-wallet-browser-814c642d952b8271508b8b091d640084897aedd5.tar.zst tangerine-wallet-browser-814c642d952b8271508b8b091d640084897aedd5.zip |
fixes
Diffstat (limited to 'app/vendor/trezor/usb-permissions.js')
-rw-r--r-- | app/vendor/trezor/usb-permissions.js | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/app/vendor/trezor/usb-permissions.js b/app/vendor/trezor/usb-permissions.js index 9039c0094..9de47e0a1 100644 --- a/app/vendor/trezor/usb-permissions.js +++ b/app/vendor/trezor/usb-permissions.js @@ -2,6 +2,39 @@ Handling messages from usb permissions iframe */ +const switchToPopupTab = (event) => { + + window.removeEventListener('beforeunload', switchToPopupTab); + + if (!event) { + // triggered from 'usb-permissions-close' message + // switch tab to previous index and close current + chrome.tabs.query({ + currentWindow: true, + active: true, + }, (current) => { + if (current.length < 0) return; + chrome.tabs.query({ + index: current[0].index - 1 + }, popup => { + if (popup.length < 0) return; + chrome.tabs.update(popup[0].id, { active: true }); + }) + chrome.tabs.remove(current[0].id); + }); + return; + } + + // triggered from 'beforeunload' event + // find tab by popup pattern and switch to it + chrome.tabs.query({ + url: "*://connect.trezor.io/*/popup.html" + }, (tabs) => { + if (tabs.length < 0) return; + chrome.tabs.update(tabs[0].id, { active: true }); + }); +} + window.addEventListener('message', event => { if (event.data === 'usb-permissions-init') { const iframe = document.getElementById('trezor-usb-permissions'); @@ -10,11 +43,8 @@ window.addEventListener('message', event => { extension: chrome.runtime.id, }, '*'); } else if (event.data === 'usb-permissions-close') { - chrome.tabs.query({ - currentWindow: true, - active: true, - }, (tabs) => { - chrome.tabs.remove(tabs[0].id); - }); + switchToPopupTab(); } }); + +window.addEventListener('beforeunload', switchToPopupTab);
\ No newline at end of file |