aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/swextreload/main.go11
-rw-r--r--internal/swextreload.go72
2 files changed, 44 insertions, 39 deletions
diff --git a/cmd/swextreload/main.go b/cmd/swextreload/main.go
index 0ccd0f9..66a589b 100644
--- a/cmd/swextreload/main.go
+++ b/cmd/swextreload/main.go
@@ -21,9 +21,10 @@ func main() {
Description: "DevTools protocol WebSocket URL",
},
{
- LongName: "reload-current-tab",
- Type: "bool",
- Description: "pass this to reload the active Chrome tab",
+ LongName: "reload-current-tab",
+ Type: "bool",
+ DefaultValue: false,
+ Description: "pass this to reload the active Chrome tab",
},
{
LongName: "version",
@@ -63,6 +64,8 @@ func main() {
os.Exit(sysexits.Usage)
}
+ shouldReloadTab := args["reload-current-tab"].(bool)
+
extension_ids := args["extension_id"].([]string)
if len(extension_ids) == 0 {
fmt.Fprintln(os.Stderr, "error: missing extension IDs")
@@ -81,7 +84,7 @@ func main() {
err = swextreload.Reload(
socket_url,
extension_ids,
- true,
+ shouldReloadTab,
)
if err != nil {
fmt.Fprintf(os.Stderr, "error: can't reload extension: %v\n", err)
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