From 5611b8d2f99782ebf6e690a4d563be256b9c0762 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Tue, 14 Nov 2023 20:46:46 +0100 Subject: Make `--reload-current-tab` flag work Make the tab reload work based on the flag instead of always reloading. --- internal/swextreload.go | 72 +++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 35 deletions(-) (limited to 'internal/swextreload.go') diff --git a/internal/swextreload.go b/internal/swextreload.go index 29a4931..a2b92e6 100644 --- a/internal/swextreload.go +++ b/internal/swextreload.go @@ -110,50 +110,52 @@ func reloadExtension( log.Printf("Runtime: %v", string(runtimeResp)) } - time.Sleep(200 * time.Millisecond) + if shouldReloadTab { + time.Sleep(200 * time.Millisecond) + + targets, err = chromedp.Targets(ctx) + if err != nil { + return fmt.Errorf( + "swextreload: can't get targets for '%s' tab reload: %v", + extensionID, + err, + ) + } - targets, err = chromedp.Targets(ctx) - if err != nil { - return fmt.Errorf( - "swextreload: can't get targets for '%s' tab reload: %v", - extensionID, - err, - ) - } + if isDebug { + log.Printf("Targets: %#v", targets) + } - if isDebug { - log.Printf("Targets: %#v", targets) - } + for _, target := range targets { + if strings.HasPrefix(target.URL, extensionURL) { + if isDebug { + log.Printf("Target: %#v", target) + } - for _, target := range targets { - if strings.HasPrefix(target.URL, extensionURL) { - if isDebug { - log.Printf("Target: %#v", target) + targetID = target.TargetID + break } - - targetID = target.TargetID - break } - } - targetCtx, cancel = chromedp.NewContext(ctx, chromedp.WithTargetID(targetID)) - defer cancel() + targetCtx, cancel = chromedp.NewContext(ctx, chromedp.WithTargetID(targetID)) + defer cancel() - var tabsResp []byte - err = chromedp.Run( - targetCtx, - chromedp.Evaluate(`chrome.tabs.reload();`, nil), - ) - if err != nil { - return fmt.Errorf( - "swextreload: error reloading tab '%s': %v", - extensionID, - err, + var tabsResp []byte + err = chromedp.Run( + targetCtx, + chromedp.Evaluate(`chrome.tabs.reload();`, nil), ) - } + if err != nil { + return fmt.Errorf( + "swextreload: error reloading tab '%s': %v", + extensionID, + err, + ) + } - if isDebug { - log.Printf("Tabs: %v", string(tabsResp)) + if isDebug { + log.Printf("Tabs: %v", string(tabsResp)) + } } return nil -- cgit v1.2.3