@@ -12,38 +12,39 @@ function notify(message) {
1212 console . log ( 'granting acces to' , message . message . target ) ;
1313 browser . storage . local . get ( { 'granted' : [ ] } ) . then ( ( { granted} ) => {
1414 console . log ( 'granted acces to' , granted )
15- Object . entries ( unconnectedPorts ) . forEach ( ( [ key , p ] ) => {
16- const relevantURL = p . sender . url . split ( '?' ) [ 0 ] . split ( '#' ) [ 0 ]
15+ Object . values ( portConnections ) . filter ( connection => ! connection . connected ) . forEach ( ( con ) => {
16+ const relevantURL = con . port . sender . url . split ( '?' ) [ 0 ] . split ( '#' ) [ 0 ]
1717 if ( ~ granted . indexOf ( relevantURL ) ) {
18- connectPort ( p )
19- delete unconnectedPorts [ p . sender . tab . id ]
18+ connectPort ( con . stream )
19+ portConnections [ port . sender . tab . id ] . connected = true
20+ } else {
21+ con . stream . abort ( )
2022 }
2123 } )
2224 } )
2325 }
2426 }
2527}
2628
27- let unconnectedPorts = [ ]
29+ let portConnections = [ ]
2830
29- browser . runtime . onConnect . addListener ( async function connected ( p ) {
30- console . log ( 'connection from' , p . sender . url )
31- const relevantURL = p . sender . url . split ( '?' ) [ 0 ] . split ( '#' ) [ 0 ]
31+ browser . runtime . onConnect . addListener ( async function connected ( port ) {
32+ console . log ( 'connection from' , port . sender . url )
33+ const stream = createConnection ( port )
34+ const relevantURL = port . sender . url . split ( '?' ) [ 0 ] . split ( '#' ) [ 0 ]
3235 const { granted } = await browser . storage . local . get ( 'granted' )
3336 if ( ~ granted . indexOf ( relevantURL ) ) {
34- connectPort ( p )
37+ connectPort ( stream )
38+ portConnections [ port . sender . tab . id ] = { port, stream, connected : true }
3539 } else {
36- unconnectedPorts [ p . sender . tab . id ] = p
40+ portConnections [ port . sender . tab . id ] = { port , stream , connected : false }
3741 }
3842} )
3943
40- function openLocalPort ( p ) {
4144
42- }
43-
44- function connectPort ( p ) {
45+ function connectPort ( contentScriptStream ) {
4546 //p.sender.tab.onClose(() => console.log('tab closed, should close connection'))
46- const contentScriptStream = createConnection ( p )
47+
4748 const nativeScriptStream = createNativeConnection ( )
4849
4950 pull (
0 commit comments