diff options
-rw-r--r-- | l/src/main.lisp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/l/src/main.lisp b/l/src/main.lisp index ab765fb..c2177e5 100644 --- a/l/src/main.lisp +++ b/l/src/main.lisp @@ -3,6 +3,7 @@ (defvar *wg* (wait-group:make-wait-group)) (defvar *devtools-root-call-id* (make-instance 'call-id)) (defvar *reloaded-count* 0) +(defvar *extension-targets-count* 0) (defvar *last-session-id* "") (opts:define-opts @@ -54,10 +55,11 @@ (defun ws-on-message (message extension-ids reload-current-tab) (let* ((response (jsown:parse message)) (targets (parse-get-targets-response response))) - (if targets - (reload-extensions - (extension-targets targets) - extension-ids)) + (when targets + (let ((targets (extension-targets targets))) + (setf *extension-targets-count* (length targets)) + + (reload-extensions targets extension-ids))) ;; TODO: How to know it's the last message so we only reload the current tab once? @@ -77,9 +79,8 @@ ; (when (and (= (or (json-obj-get response "id") -1) 1) (when (and (= *reloaded-count* - ;; TODO: Might not work because there could be multiple instances of a single extension ID I think - ;; Yes, extension-ids could be less than *reloaded-count*. But we could use the count of extension-targets - (length extension-ids)) + ;; TODO: Probably want to reload on all extension reload calls + *extension-targets-count*) (string= (json-obj-get (json-obj-get response "result") |