1
1
import { runtime , tabs } from 'webextension-polyfill' ;
2
-
3
- // Handling messages from usb permissions iframe
4
-
5
- const url = 'https://connect.trezor.io/8/' ;
2
+ import { AllowedOrigins } from './types' ;
6
3
7
4
/* Handling messages from usb permissions iframe */
8
5
const switchToPopupTab = async ( event ?: BeforeUnloadEvent ) => {
@@ -21,13 +18,15 @@ const switchToPopupTab = async (event?: BeforeUnloadEvent) => {
21
18
22
19
// find tab by popup pattern and switch to it
23
20
const currentTabs = await tabs . query ( {
24
- url : `${ url } popup.html`
21
+ url : `${ AllowedOrigins . TREZOR_CONNECT_POPUP_BASE_URL } / popup.html`
25
22
} ) ;
26
23
if ( currentTabs . length < 0 ) return ;
27
24
tabs . update ( currentTabs [ 0 ] . id , { active : true } ) ;
28
25
} ;
29
26
30
27
window . addEventListener ( 'message' , async ( event ) => {
28
+ if ( event . origin !== AllowedOrigins . TREZOR_CONNECT ) throw new Error ( 'Origin not allowed' ) ;
29
+
31
30
if ( event . data === 'usb-permissions-init' ) {
32
31
const iframe = document . querySelector ( '#trezor-usb-permissions' ) ;
33
32
if ( ! iframe || ! ( iframe instanceof HTMLIFrameElement ) ) {
@@ -55,7 +54,7 @@ window.addEventListener('load', () => {
55
54
instance . style . border = '0px' ;
56
55
instance . style . width = '100%' ;
57
56
instance . style . height = '100%' ;
58
- instance . setAttribute ( 'src' , `${ url } extension-permissions.html` ) ;
57
+ instance . setAttribute ( 'src' , `${ AllowedOrigins . TREZOR_CONNECT_POPUP_BASE_URL } / extension-permissions.html` ) ;
59
58
instance . setAttribute ( 'allow' , 'usb' ) ;
60
59
61
60
if ( document . body ) {
0 commit comments