@@ -11,10 +11,10 @@ This script is injected into every page and is responsible for:
1111
1212import {
1313 Place_Name , ConnectionName ,
14- port_on_message , port_post_message_obj , message ,
14+ port_on_message , port_post_message_obj , port_post_message ,
1515 window_post_message_obj , window_on_message , window_post_message ,
1616 place_error , place_log ,
17- type Message ,
17+ type Message , type Versions ,
1818} from './shared.ts'
1919
2020// @ts -expect-error ?script&module query ensures output in ES module format and only import the script path
@@ -59,11 +59,15 @@ function on_loaded() {
5959}
6060
6161
62- let extension_version = chrome . runtime . getManifest ( ) . version
63-
64- let bg_port : chrome . runtime . Port | null = null
6562let devtools_opened = false
63+ let bg_port : chrome . runtime . Port | null = null
6664let message_queue : Message [ ] = [ ]
65+ let versions : Versions = {
66+ client : null ,
67+ solid : null ,
68+ extension : chrome . runtime . getManifest ( ) . version ,
69+ client_expected : import . meta. env . EXPECTED_CLIENT ,
70+ }
6771
6872let connecting = false
6973function connect_port ( ) {
@@ -77,6 +81,9 @@ function connect_port() {
7781 bg_port = new_port
7882 DEV: { place_log ( Place_Name . Content , 'Port connected successfully' ) }
7983
84+ // Post versions to each background port
85+ port_post_message ( new_port , 'Versions' , versions )
86+
8087 // Flush queued messages
8188 for ( let m of message_queue . splice ( 0 , message_queue . length ) ) {
8289 port_post_message_obj ( new_port , m )
@@ -97,8 +104,11 @@ function connect_port() {
97104 } )
98105
99106 new_port . onDisconnect . addListener ( ( ) => {
107+ DEV: { place_log ( Place_Name . Content , 'Port disconnected...' ) }
108+
100109 if ( bg_port === new_port ) {
101110 bg_port = null
111+ devtools_opened = false
102112 setTimeout ( connect_port , 100 )
103113 }
104114 } )
@@ -117,24 +127,12 @@ window_on_message(e => {
117127 switch ( e . kind ) {
118128 case 'Debugger_Connected' : {
119129
120- // eslint-disable-next-line no-console
121- console . log (
122- '🚧 %csolid-devtools%c is in early development! 🚧\nPlease report any bugs to https://github.com/thetarnav/solid-devtools/issues' ,
123- 'color: #fff; background: rgba(181, 111, 22, 0.7); padding: 1px 4px;' ,
124- 'color: #e38b1b' ,
125- )
126-
127- let versions_message = message ( 'Versions' , {
128- client : e . data . client ,
129- solid : e . data . solid ,
130- extension : extension_version ,
131- client_expected : import . meta. env . EXPECTED_CLIENT ,
132- } )
130+ versions . client = e . data . client
131+ versions . solid = e . data . solid
133132
134133 if ( bg_port ) {
135- port_post_message_obj ( bg_port , versions_message )
134+ port_post_message ( bg_port , 'Versions' , versions )
136135 } else {
137- message_queue . push ( versions_message )
138136 connect_port ( )
139137 }
140138
0 commit comments