aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--go.mod16
-rw-r--r--go.sum20
-rw-r--r--main.go101
3 files changed, 137 insertions, 0 deletions
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..f3b023c
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,16 @@
+module gopkg.teddywing.com/swextreload
+
+go 1.21.4
+
+require github.com/chromedp/chromedp v0.9.3
+
+require (
+ github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998 // indirect
+ github.com/chromedp/sysutil v1.0.0 // indirect
+ github.com/gobwas/httphead v0.1.0 // indirect
+ github.com/gobwas/pool v0.2.1 // indirect
+ github.com/gobwas/ws v1.3.0 // indirect
+ github.com/josharian/intern v1.0.0 // indirect
+ github.com/mailru/easyjson v0.7.7 // indirect
+ golang.org/x/sys v0.6.0 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..75083eb
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,20 @@
+github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998 h1:2zipcnjfFdqAjOQa8otCCh0Lk1M7RBzciy3s80YAKHk=
+github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs=
+github.com/chromedp/chromedp v0.9.3 h1:Wq58e0dZOdHsxaj9Owmfcf+ibtpYN1N0FWVbaxa/esg=
+github.com/chromedp/chromedp v0.9.3/go.mod h1:NipeUkUcuzIdFbBP8eNNvl9upcceOfWzoJn6cRe4ksA=
+github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic=
+github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
+github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU=
+github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=
+github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
+github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
+github.com/gobwas/ws v1.3.0 h1:sbeU3Y4Qzlb+MOzIe6mQGf7QR4Hkv6ZD0qhGkBFL2O0=
+github.com/gobwas/ws v1.3.0/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..a6a0f85
--- /dev/null
+++ b/main.go
@@ -0,0 +1,101 @@
+package main
+
+import (
+ "context"
+ "log"
+ "time"
+
+ "github.com/chromedp/cdproto/target"
+ "github.com/chromedp/chromedp"
+)
+
+func main() {
+ allocatorContext, cancel := chromedp.NewRemoteAllocator(
+ context.Background(),
+ "ws://127.0.0.1:55755/devtools/browser/4536efdf-6ddf-40b6-9a16-258a1935d866",
+ )
+ defer cancel()
+
+ ctx, cancel := chromedp.NewContext(allocatorContext)
+ defer cancel()
+
+ targets, err := chromedp.Targets(ctx)
+ if err != nil {
+ log.Fatalf("error: targets: %v", err)
+ }
+
+ log.Printf("Targets: %#v", targets)
+ println()
+
+ var targetID target.ID
+ for _, target := range targets {
+ if target.URL == "chrome-extension://imcibeelfmccdpnnlemllnepgbfdbkgo/background.bundle.js" {
+ log.Printf("Target: %#v", target)
+ targetID = target.TargetID
+ break
+ }
+ }
+
+ targetCtx, cancel := chromedp.NewContext(ctx, chromedp.WithTargetID(targetID))
+ defer cancel()
+
+ var runtimeResp []byte
+ err = chromedp.Run(
+ targetCtx,
+ // chromedp.Evaluate(`chrome.runtime.reload();`, &runtimeResp),
+ // chromedp.Evaluate(`chrome.tabs.reload();`, &tabsResp),
+ // chromedp.Evaluate(`chrome.runtime.reload();`, nil),
+ // chromedp.EvaluateAsDevTools(`chrome.runtime.reload();`, nil),
+ chromedp.Evaluate(`chrome.runtime.reload();`, nil),
+ // chromedp.Evaluate(`chrome.tabs.reload();`, nil),
+ )
+ if err != nil {
+ log.Fatalf("error: run: %v", err)
+ }
+
+ // var tabsResp []byte
+ // err = chromedp.Run(
+ // targetCtx,
+ // // chromedp.Evaluate(`chrome.tabs.reload();`, &tabsResp),
+ // // chromedp.Evaluate(`chrome.tabs.reload();`, nil),
+ // chromedp.EvaluateAsDevTools(`chrome.tabs.reload();`, nil),
+ // )
+ // if err != nil {
+ // log.Fatalf("error: run tabs: %v", err)
+ // }
+
+ log.Printf("Runtime: %v", string(runtimeResp))
+ // log.Printf("Tabs: %v", string(tabsResp))
+
+ time.Sleep(200 * time.Millisecond)
+
+ targets, err = chromedp.Targets(ctx)
+ if err != nil {
+ log.Fatalf("error: targets2: %v", err)
+ }
+
+ log.Printf("Targets: %#v", targets)
+ println()
+
+ for _, target := range targets {
+ if target.URL == "chrome-extension://imcibeelfmccdpnnlemllnepgbfdbkgo/background.bundle.js" {
+ log.Printf("Target: %#v", target)
+ targetID = target.TargetID
+ break
+ }
+ }
+
+ 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 {
+ log.Fatalf("error: run tabs: %v", err)
+ }
+
+ log.Printf("Tabs: %v", string(tabsResp))
+}