@@ -161,10 +161,6 @@ export type UpdateStateRequest<S, A extends Action<string>> =
161161 | SerializedActionMessage
162162 | SerializedStateMessage < S , A > ;
163163
164- export interface EmptyUpdateStateAction {
165- readonly type : typeof UPDATE_STATE ;
166- }
167-
168164interface UpdateStateAction < S , A extends Action < string > > {
169165 readonly type : typeof UPDATE_STATE ;
170166 request : UpdateStateRequest < S , A > ;
@@ -213,11 +209,6 @@ export type PanelMessage<S, A extends Action<string>> =
213209export type PanelMessageWithSplitAction < S , A extends Action < string > > =
214210 | PanelMessage < S , A >
215211 | SplitUpdateStateAction < S , A > ;
216- export type MonitorMessage =
217- | NAAction
218- | ErrorMessage
219- | EmptyUpdateStateAction
220- | SetPersistAction ;
221212
222213type TabPort = Omit < chrome . runtime . Port , 'postMessage' > & {
223214 postMessage : ( message : TabMessage ) => void ;
@@ -227,20 +218,15 @@ type PanelPort = Omit<chrome.runtime.Port, 'postMessage'> & {
227218 message : PanelMessageWithSplitAction < S , A > ,
228219 ) => void ;
229220} ;
230- type MonitorPort = Omit < chrome . runtime . Port , 'postMessage' > & {
231- postMessage : ( message : MonitorMessage ) => void ;
232- } ;
233221
234222export const CONNECTED = 'socket/CONNECTED' ;
235223export const DISCONNECTED = 'socket/DISCONNECTED' ;
236224const connections : {
237225 readonly tab : { [ K in number | string ] : TabPort } ;
238226 readonly panel : { [ K in number | string ] : PanelPort } ;
239- readonly monitor : { [ K in number | string ] : MonitorPort } ;
240227} = {
241228 tab : { } ,
242229 panel : { } ,
243- monitor : { } ,
244230} ;
245231const chunks : {
246232 [ instanceId : string ] : PageScriptToContentScriptMessageForwardedToMonitors <
@@ -249,7 +235,6 @@ const chunks: {
249235 > ;
250236} = { } ;
251237let monitors = 0 ;
252- let isMonitored = false ;
253238
254239const getId = ( sender : chrome . runtime . MessageSender , name ?: string ) =>
255240 sender . tab ? sender . tab . id ! : name || sender . id ! ;
@@ -264,10 +249,7 @@ type MonitorAction<S, A extends Action<string>> =
264249const maxChromeMsgSize = 32 * 1024 * 1024 ;
265250
266251function toMonitors < S , A extends Action < string > > ( action : MonitorAction < S , A > ) {
267- for ( const port of [
268- ...Object . values ( connections . monitor ) ,
269- ...Object . values ( connections . panel ) ,
270- ] ) {
252+ for ( const port of Object . values ( connections . panel ) ) {
271253 try {
272254 port . postMessage ( action ) ;
273255 } catch ( err ) {
@@ -412,19 +394,6 @@ function toAllTabs(msg: TabMessage) {
412394 }
413395}
414396
415- function monitorInstances ( shouldMonitor : boolean , id ?: string ) {
416- if ( ! id && isMonitored === shouldMonitor ) return ;
417- const action = {
418- type : shouldMonitor ? ( 'START' as const ) : ( 'STOP' as const ) ,
419- } ;
420- if ( id ) {
421- if ( connections . tab [ id ] ) connections . tab [ id ] . postMessage ( action ) ;
422- } else {
423- toAllTabs ( action ) ;
424- }
425- isMonitored = shouldMonitor ;
426- }
427-
428397function getReducerError ( ) {
429398 const instancesState = store . getState ( ) . instances ;
430399 const payload = instancesState . states [ instancesState . current ] ;
@@ -436,11 +405,11 @@ function getReducerError() {
436405function togglePersist ( ) {
437406 const state = store . getState ( ) ;
438407 if ( state . instances . persisted ) {
439- Object . keys ( state . instances . connections ) . forEach ( ( id ) => {
408+ for ( const id of Object . keys ( state . instances . connections ) ) {
440409 if ( connections . tab [ id ] ) return ;
441410 store . dispatch ( { type : REMOVE_INSTANCE , id } ) ;
442411 toMonitors ( { type : 'NA' , id } ) ;
443- } ) ;
412+ }
444413 }
445414}
446415
@@ -543,9 +512,9 @@ function messaging<S, A extends Action<string>>(
543512}
544513
545514function disconnect (
546- type : 'tab' | 'monitor' | ' panel',
515+ type : 'tab' | 'panel' ,
547516 id : number | string ,
548- listener ? : ( message : any , port : chrome . runtime . Port ) => void ,
517+ listener : ( message : any , port : chrome . runtime . Port ) => void ,
549518) {
550519 return function disconnectListener ( ) {
551520 const p = connections [ type ] [ id ] ;
@@ -559,7 +528,7 @@ function disconnect(
559528 }
560529 } else {
561530 monitors -- ;
562- if ( ! monitors ) monitorInstances ( false ) ;
531+ if ( monitors === 0 ) toAllTabs ( { type : 'STOP' } ) ;
563532 }
564533 } ;
565534}
@@ -581,7 +550,7 @@ function onConnect<S, A extends Action<string>>(port: chrome.runtime.Port) {
581550 chrome . action . enable ( id ) ;
582551 chrome . action . setIcon ( { tabId : id , path : 'img/logo/38x38.png' } ) ;
583552 }
584- if ( isMonitored ) port . postMessage ( { type : 'START' } ) ;
553+ if ( monitors > 0 ) port . postMessage ( { type : 'START' } ) ;
585554
586555 const state = store . getState ( ) ;
587556 if ( state . instances . persisted ) {
@@ -607,22 +576,11 @@ function onConnect<S, A extends Action<string>>(port: chrome.runtime.Port) {
607576 port . onMessage . addListener ( listener ) ;
608577 port . onDisconnect . addListener ( disconnect ( 'tab' , id , listener ) ) ;
609578 } else if ( port . name && port . name . indexOf ( 'monitor' ) === 0 ) {
610- id = getId ( port . sender ! , port . name ) ;
611- connections . monitor [ id ] = port ;
612- monitorInstances ( true ) ;
613- listener = ( msg : BackgroundAction | 'heartbeat' ) => {
614- if ( msg === 'heartbeat' ) return ;
615- store . dispatch ( msg ) ;
616- } ;
617- port . onMessage . addListener ( listener ) ;
618- monitors ++ ;
619- port . onDisconnect . addListener ( disconnect ( 'monitor' , id ) ) ;
620- } else {
621579 // devpanel
622- id = port . name || port . sender ! . frameId ! ;
580+ id = getId ( port . sender ! , port . name ) ;
623581 connections . panel [ id ] = port ;
624- monitorInstances ( true , port . name ) ;
625582 monitors ++ ;
583+ toAllTabs ( { type : 'START' } ) ;
626584 listener = ( msg : BackgroundAction | 'heartbeat' ) => {
627585 if ( msg === 'heartbeat' ) return ;
628586 store . dispatch ( msg ) ;
0 commit comments