This library uses Chrome's remote debugging which allows to reload tabs remotely.
Make sure you have a correctly configured Go environment. See here for instructions.
Then, to install:
go get gitlab.com/stop.start/go-chrome-remote-reload
RemoteConfig structure configures Chrome's remote debugging protocol and is used to open a new window as well as reload and close tabs. The remote debugging protocol can be used also with Chromium or any Chrome-like browser supporting this protocol. See documetation for details on the configuration.
The following will get the default config and open the browser on localhost:8080:
package main
import(
"gitlab.com/stop.start/go-chrome-remote-reload"
)
rc := NewRemoteConfig()
rc.RemoteChrome()
To reload the only opened tab ReloadAllTabs is the easiest:
rc.ReloadAllTabs()
Use chromium instead of chrome:
rc := RemoteConfigDefault()
rc.ExecName = "chromium"
rc.RemoteChrome()
Open two tabs and reload one of them:
rc := reloader.NewRemoteConfig()
rc.Addr = "google.com"
rc.Port = 80
rc.RemoteChrome()
rc.Addr = "github.com"
rc.Port = 80 // not required since already set but more readable.
rc.RemoteChrome()
rc.ReloadTab("github.com/")
Reload tabs under same path: Here only github.com/golang/go won't reload.
rc := reloader.NewRemoteConfig()
rc.Addr = "github.com"
rc.Port = 80
rc.Route = "/golang/go"
rc.RemoteChrome()
rc.Addr = "github.com"
rc.Port = 80
rc.Route = "/golang/go/tree/master/misc"
rc.RemoteChrome()
rc.Addr = "github.com"
rc.Port = 80
rc.Route = "/golang/go/tree/master/test"
rc.RemoteChrome()
rc.ReloadTab("tree/")
Close all tabs which also means closing Chrome :
rc.CloseAllTabs()