From 765c7bc1d36b8c931f3a36c0c5e29d73b8b25652 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 17 Nov 2023 00:22:50 +0100 Subject: swextreload: Reload all targets matching a given extension ID There may be multiple instances of the same extension ID. Ensure all of them are reloaded. --- internal/swextreload.go | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'internal/swextreload.go') diff --git a/internal/swextreload.go b/internal/swextreload.go index 7db896b..2f333a3 100644 --- a/internal/swextreload.go +++ b/internal/swextreload.go @@ -101,40 +101,36 @@ func reloadExtension( ) error { extensionURL := "chrome-extension://" + extensionID + "/" - var targetID target.ID for _, target := range targets { if strings.HasPrefix(target.URL, extensionURL) { if isDebug { log.Printf("Target: %#v", target) } - targetID = target.TargetID - break - } - } + targetCtx, _ := chromedp.NewContext(ctx, chromedp.WithTargetID(target.TargetID)) + // defer cancel() - targetCtx, _ := chromedp.NewContext(ctx, chromedp.WithTargetID(targetID)) - // defer cancel() + log.Printf("Connected to target '%s'", target.TargetID) - log.Printf("Connected to target '%s'", targetID) - - var runtimeResp []byte - err := chromedp.Run( - targetCtx, - chromedp.Evaluate(`chrome.runtime.reload();`, nil), - ) - if err != nil { - return fmt.Errorf( - "swextreload: error reloading extension '%s': %v", - extensionID, - err, - ) - } + var runtimeResp []byte + err := chromedp.Run( + targetCtx, + chromedp.Evaluate(`chrome.runtime.reload();`, nil), + ) + if err != nil { + return fmt.Errorf( + "swextreload: error reloading extension '%s': %v", + extensionID, + err, + ) + } - log.Printf("Reloaded extension") + log.Printf("Reloaded extension") - if isDebug { - log.Printf("Runtime: %v", string(runtimeResp)) + if isDebug { + log.Printf("Runtime: %v", string(runtimeResp)) + } + } } return nil -- cgit v1.2.3