@@ -18,13 +18,11 @@ class AppConnection extends EventListener {
18
18
// (Closing and close events will still function.)
19
19
#usesSDK;
20
20
21
- static from ( values , { appInstanceID, messageTarget } ) {
22
- const connection = new AppConnection (
23
- messageTarget ,
24
- appInstanceID ,
25
- values . appInstanceID ,
26
- values . usesSDK
27
- ) ;
21
+ static from ( values , context ) {
22
+ const connection = new AppConnection ( context , {
23
+ target : values . appInstanceID ,
24
+ usesSDK : values . usesSDK ,
25
+ } ) ;
28
26
29
27
// When a connection is established the app is able to
30
28
// provide some additional information about itself
@@ -33,25 +31,25 @@ class AppConnection extends EventListener {
33
31
return connection ;
34
32
}
35
33
36
- constructor ( messageTarget , appInstanceID , targetAppInstanceID , usesSDK ) {
34
+ constructor ( context , { target , usesSDK } ) {
37
35
super ( [
38
36
'message' , // The target sent us something with postMessage()
39
37
'close' , // The target app was closed
40
38
] ) ;
41
- this . messageTarget = messageTarget ;
42
- this . appInstanceID = appInstanceID ;
43
- this . targetAppInstanceID = targetAppInstanceID ;
39
+ this . messageTarget = context . messageTarget ;
40
+ this . appInstanceID = context . appInstanceID ;
41
+ this . targetAppInstanceID = target ;
44
42
this . #isOpen = true ;
45
43
this . #usesSDK = usesSDK ;
46
44
47
- this . log = globalThis . puter . log . fields ( {
45
+ this . log = context . puter . log . fields ( {
48
46
category : 'ipc' ,
49
47
} ) ;
50
48
this . log . fields ( {
51
- constructor_appInstanceID : appInstanceID ,
52
- puter_appInstanceID : puter . appInstanceID ,
53
- targetAppInstanceID ,
54
- } ) . info ( `AppConnection created to ${ targetAppInstanceID } ` , this ) ;
49
+ cons_source : context . appInstanceID ,
50
+ source : context . puter . appInstanceID ,
51
+ target ,
52
+ } ) . info ( `AppConnection created to ${ target } ` , this ) ;
55
53
56
54
// TODO: Set this.#puterOrigin to the puter origin
57
55
@@ -225,6 +223,7 @@ class UI extends EventListener {
225
223
] ;
226
224
super ( eventNames ) ;
227
225
this . #eventNames = eventNames ;
226
+ this . context = context ;
228
227
this . appInstanceID = appInstanceID ;
229
228
this . parentInstanceID = parentInstanceID ;
230
229
this . appID = context . appID ;
@@ -238,8 +237,17 @@ class UI extends EventListener {
238
237
return ;
239
238
}
240
239
240
+ // Context to pass to AppConnection instances
241
+ this . context = this . context . sub ( {
242
+ appInstanceID : this . appInstanceID ,
243
+ messageTarget : this . messageTarget ,
244
+ } ) ;
245
+
241
246
if ( this . parentInstanceID ) {
242
- this . #parentAppConnection = new AppConnection ( this . messageTarget , this . appInstanceID , this . parentInstanceID , true ) ;
247
+ this . #parentAppConnection = new AppConnection ( this . context , {
248
+ target : this . parentInstanceID ,
249
+ usesSDK : true
250
+ } ) ;
243
251
}
244
252
245
253
// Tell the host environment that this app is using the Puter SDK and is ready to receive messages,
@@ -481,10 +489,7 @@ class UI extends EventListener {
481
489
}
482
490
else if ( e . data . msg === 'connection' ) {
483
491
e . data . usesSDK = true ; // we can safely assume this
484
- const conn = AppConnection . from ( e . data , {
485
- appInstanceID : this . appInstanceID ,
486
- messageTarget : window . parent ,
487
- } ) ;
492
+ const conn = AppConnection . from ( e . data , this . context ) ;
488
493
const accept = value => {
489
494
this . messageTarget ?. postMessage ( {
490
495
$ : 'connection-resp' ,
@@ -995,10 +1000,7 @@ class UI extends EventListener {
995
1000
} ,
996
1001
} ) ;
997
1002
998
- return AppConnection . from ( app_info , {
999
- appInstanceID : this . appInstanceID ,
1000
- messageTarget : this . messageTarget ,
1001
- } ) ;
1003
+ return AppConnection . from ( app_info , this . context ) ;
1002
1004
}
1003
1005
1004
1006
connectToInstance = async function connectToInstance ( app_name ) {
@@ -1009,10 +1011,7 @@ class UI extends EventListener {
1009
1011
}
1010
1012
} ) ;
1011
1013
1012
- return AppConnection . from ( app_info , {
1013
- appInstanceID : this . appInstanceID ,
1014
- messageTarget : this . messageTarget ,
1015
- } ) ;
1014
+ return AppConnection . from ( app_info , this . context ) ;
1016
1015
}
1017
1016
1018
1017
parentApp ( ) {
0 commit comments