diff options
| -rw-r--r-- | internal/swextreload.go | 23 | 
1 files changed, 17 insertions, 6 deletions
| diff --git a/internal/swextreload.go b/internal/swextreload.go index 1932b32..98bff1f 100644 --- a/internal/swextreload.go +++ b/internal/swextreload.go @@ -3,6 +3,7 @@ package swextreload  import (  	"context" +	"errors"  	"fmt"  	"log"  	"strings" @@ -66,15 +67,13 @@ func Reload(  	}  	if shouldReloadTab { -		time.Sleep(200 * time.Millisecond) -  		extensionURL := "chrome-extension://" + extensionIDs[0] + "/"  		var firstExtensionTarget *target.Info  		for _, target := range targets { -		// for i := len(targets) - 1; i >= 0; i-- { +			// for i := len(targets) - 1; i >= 0; i-- { -			logDebugf("A target: %#v", target) +			// logDebugf("A target: %#v", target)  			if strings.HasPrefix(target.URL, extensionURL) {  				firstExtensionTarget = target @@ -89,11 +88,23 @@ func Reload(  			}  		} +		if firstExtensionTarget == nil { +			// TODO: continue loop until target != null +			return errors.New("swextreload: can't reload tab, no target available") +		} + +		isMV2 := isExtensionManifestV2(firstExtensionTarget) + +		// TODO: Only do this in MV3. +		if !isMV2 { +			time.Sleep(200 * time.Millisecond) +		} +  		err = reloadTab(  			allocatorContext,  			extensionIDs[0],  			firstExtensionTarget, -			isExtensionManifestV2(firstExtensionTarget), +			isMV2,  		)  		if err != nil {  			return err @@ -151,7 +162,7 @@ func reloadTab(  	isExtensionManifestV2 bool,  ) error {  	ctx, cancel := chromedp.NewContext(ctx) -	defer cancel() +	// defer cancel()  	logDebugf("Reload tab (Manifest V2: %t)", isExtensionManifestV2) | 
