From 36583d9f4ee473803e34cd05af6fb63a05b2799c Mon Sep 17 00:00:00 2001 From: Miha Date: Fri, 10 Jan 2014 14:59:42 +0100 Subject: [PATCH 01/26] changed inports --- README.md | 4 ++-- cmd/webkit-eval-js/evaljs.go | 6 +++--- webkit2/example_test.go | 4 ++-- webkit2/gtk_test.go | 2 +- webkit2/settings.go | 2 +- webkit2/webview.go | 4 ++-- webkit2/webview_test.go | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5c08d41..863891e 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,8 @@ import ( "fmt" "github.com/sourcegraph/go-webkit2/webkit2" "github.com/sqs/gojs" - "github.com/sqs/gotk3/glib" - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/glib" + "github.com/visionect/gotk3/gtk" "runtime" ) diff --git a/cmd/webkit-eval-js/evaljs.go b/cmd/webkit-eval-js/evaljs.go index 248b494..11fd599 100644 --- a/cmd/webkit-eval-js/evaljs.go +++ b/cmd/webkit-eval-js/evaljs.go @@ -3,10 +3,10 @@ package main import ( "flag" "fmt" - "github.com/sourcegraph/go-webkit2/webkit2" + "github.com/visionect/go-webkit2/webkit2" "github.com/sqs/gojs" - "github.com/sqs/gotk3/glib" - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/glib" + "github.com/visionect/gotk3/gtk" "io/ioutil" "log" "net/url" diff --git a/webkit2/example_test.go b/webkit2/example_test.go index 088d771..10a57c2 100644 --- a/webkit2/example_test.go +++ b/webkit2/example_test.go @@ -4,8 +4,8 @@ import ( "fmt" "github.com/sourcegraph/go-webkit2/webkit2" "github.com/sqs/gojs" - "github.com/sqs/gotk3/glib" - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/glib" + "github.com/visionect/gotk3/gtk" "runtime" ) diff --git a/webkit2/gtk_test.go b/webkit2/gtk_test.go index 2835725..000ebe4 100644 --- a/webkit2/gtk_test.go +++ b/webkit2/gtk_test.go @@ -1,7 +1,7 @@ package webkit2 import ( - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/gtk" "runtime" ) diff --git a/webkit2/settings.go b/webkit2/settings.go index 291315c..817eb57 100644 --- a/webkit2/settings.go +++ b/webkit2/settings.go @@ -3,7 +3,7 @@ package webkit2 // #include import "C" import "unsafe" -import "github.com/sqs/gotk3/glib" +import "github.com/visionect/gotk3/glib" type Settings struct { *glib.Object diff --git a/webkit2/webview.go b/webkit2/webview.go index 56b75dc..92d5830 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -12,8 +12,8 @@ import "C" import ( "errors" "github.com/sqs/gojs" - "github.com/sqs/gotk3/glib" - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/glib" + "github.com/visionect/gotk3/gtk" "image" "unsafe" ) diff --git a/webkit2/webview_test.go b/webkit2/webview_test.go index 77a45f9..eb1f481 100644 --- a/webkit2/webview_test.go +++ b/webkit2/webview_test.go @@ -3,8 +3,8 @@ package webkit2 import ( "errors" "github.com/sqs/gojs" - "github.com/sqs/gotk3/glib" - "github.com/sqs/gotk3/gtk" + "github.com/visionect/gotk3/glib" + "github.com/visionect/gotk3/gtk" "image" "net/http" "reflect" From ff622b41fc2e17d5c21bad0d6b2ad2acf2256f37 Mon Sep 17 00:00:00 2001 From: Miha Date: Fri, 24 Jan 2014 14:54:49 +0100 Subject: [PATCH 02/26] changed glib Connect api to new version of gotk3 --- README.md | 4 ++-- cmd/webkit-eval-js/evaljs.go | 4 ++-- webkit2/example_test.go | 4 ++-- webkit2/webview_test.go | 26 +++++++++++++------------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 863891e..dd832d3 100644 --- a/README.md +++ b/README.md @@ -70,8 +70,8 @@ func Example() { webView.Connect("load-failed", func() { fmt.Println("Load failed.") }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := webkit2.LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := webkit2.LoadEvent(event) switch loadEvent { case webkit2.LoadFinished: fmt.Println("Load finished.") diff --git a/cmd/webkit-eval-js/evaljs.go b/cmd/webkit-eval-js/evaljs.go index 11fd599..c5dba89 100644 --- a/cmd/webkit-eval-js/evaljs.go +++ b/cmd/webkit-eval-js/evaljs.go @@ -66,8 +66,8 @@ func main() { webView.Connect("load-failed", func() { fmt.Println("Load failed.") }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := webkit2.LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := webkit2.LoadEvent(event) switch loadEvent { case webkit2.LoadFinished: webView.RunJavaScript(string(script), func(val *gojs.Value, err error) { diff --git a/webkit2/example_test.go b/webkit2/example_test.go index 10a57c2..4695e63 100644 --- a/webkit2/example_test.go +++ b/webkit2/example_test.go @@ -19,8 +19,8 @@ func Example() { webView.Connect("load-failed", func() { fmt.Println("Load failed.") }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := webkit2.LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := webkit2.LoadEvent(event) switch loadEvent { case webkit2.LoadFinished: fmt.Println("Load finished.") diff --git a/webkit2/webview_test.go b/webkit2/webview_test.go index eb1f481..dc6dfd9 100644 --- a/webkit2/webview_test.go +++ b/webkit2/webview_test.go @@ -42,8 +42,8 @@ func TestWebView_LoadURI(t *testing.T) { webView.Connect("load-failed", func() { t.Errorf("load failed") }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: loadFinished = true @@ -75,8 +75,8 @@ func TestWebView_LoadURI_load_failed(t *testing.T) { webView.Connect("load-failed", func() { loadFailed = true }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: loadFinished = true @@ -108,8 +108,8 @@ func TestWebView_LoadHTML(t *testing.T) { webView.Connect("load-failed", func() { t.Errorf("load failed") }) - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: loadOk = true @@ -165,7 +165,7 @@ func TestWebView_URI(t *testing.T) { wantURI := server.URL + "/" var gotURI string - webView.Connect("notify::uri", func(ctx *glib.CallbackContext) { + webView.Connect("notify::uri", func() { glib.IdleAdd(func() bool { gotURI = webView.URI() if gotURI != "" { @@ -206,8 +206,8 @@ func TestWebView_RunJavaScript(t *testing.T) { defer webView.Destroy() wantResultString := "abc" - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: webView.RunJavaScript(`document.getElementById("foo").innerHTML`, func(result *gojs.Value, err error) { @@ -236,8 +236,8 @@ func TestWebView_RunJavaScript_exception(t *testing.T) { defer webView.Destroy() wantErr := errors.New("An exception was raised in JavaScript") - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int)) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: webView.RunJavaScript(`throw new Error("foo")`, func(result *gojs.Value, err error) { @@ -265,8 +265,8 @@ func TestWebView_GetSnapshot(t *testing.T) { webView := NewWebView() defer webView.Destroy() - webView.Connect("load-changed", func(ctx *glib.CallbackContext) { - loadEvent := LoadEvent(ctx.Arg(0).Int()) + webView.Connect("load-changed", func(_ *glib.Object, event int) { + loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: webView.GetSnapshot(func(img *image.RGBA, err error) { From cc3f23ca6cd85673b8d5bfd883bfe8257b25c268 Mon Sep 17 00:00:00 2001 From: Miha Date: Fri, 24 Jan 2014 15:16:40 +0100 Subject: [PATCH 03/26] tests --- README.md | 2 +- webkit2/example_test.go | 2 +- webkit2/webview_test.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dd832d3..ff07220 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ package webkit2_test import ( "fmt" - "github.com/sourcegraph/go-webkit2/webkit2" + "github.com/visionect/go-webkit2/webkit2" "github.com/sqs/gojs" "github.com/visionect/gotk3/glib" "github.com/visionect/gotk3/gtk" diff --git a/webkit2/example_test.go b/webkit2/example_test.go index 4695e63..272c883 100644 --- a/webkit2/example_test.go +++ b/webkit2/example_test.go @@ -2,7 +2,7 @@ package webkit2_test import ( "fmt" - "github.com/sourcegraph/go-webkit2/webkit2" + "github.com/visionect/go-webkit2/webkit2" "github.com/sqs/gojs" "github.com/visionect/gotk3/glib" "github.com/visionect/gotk3/gtk" diff --git a/webkit2/webview_test.go b/webkit2/webview_test.go index dc6dfd9..38be1b4 100644 --- a/webkit2/webview_test.go +++ b/webkit2/webview_test.go @@ -236,7 +236,7 @@ func TestWebView_RunJavaScript_exception(t *testing.T) { defer webView.Destroy() wantErr := errors.New("An exception was raised in JavaScript") - webView.Connect("load-changed", func(_ *glib.Object, event int)) { + webView.Connect("load-changed", func(_ *glib.Object, event int) { loadEvent := LoadEvent(event) switch loadEvent { case LoadFinished: From 52e61c03b347bca67162aa9d33a836f2425d909d Mon Sep 17 00:00:00 2001 From: Miha Date: Mon, 12 May 2014 10:44:30 +0200 Subject: [PATCH 04/26] GetSnepshot(): Protect callback from GC --- webkit2/gasyncreadycallback.go | 22 +++++++++++++++++++++- webkit2/webview.go | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/webkit2/gasyncreadycallback.go b/webkit2/gasyncreadycallback.go index 3f79cc0..0ffab4a 100644 --- a/webkit2/gasyncreadycallback.go +++ b/webkit2/gasyncreadycallback.go @@ -7,17 +7,32 @@ import ( "errors" "reflect" "unsafe" + "sync" ) type garCallback struct { f reflect.Value } +var ( + //Map stores callback pointers to protect callbacks from GC. + CallbackProtectMap map[C.gpointer]*garCallback + ProtectMapLock sync.RWMutex +) + +func init() { + CallbackProtectMap = make(map[C.gpointer]*garCallback) +} + //export _go_gasyncreadycallback_call func _go_gasyncreadycallback_call(cbinfoRaw C.gpointer, cresult unsafe.Pointer) { result := (*C.GAsyncResult)(cresult) cbinfo := (*garCallback)(unsafe.Pointer(cbinfoRaw)) cbinfo.f.Call([]reflect.Value{reflect.ValueOf(result)}) + // protect callback from Garbage collection + ProtectMapLock.Lock() + delete(CallbackProtectMap, cbinfoRaw) + ProtectMapLock.Unlock() } func newGAsyncReadyCallback(f interface{}) (cCallback C.GAsyncReadyCallback, userData C.gpointer, err error) { @@ -26,5 +41,10 @@ func newGAsyncReadyCallback(f interface{}) (cCallback C.GAsyncReadyCallback, use return nil, nil, errors.New("f is not a function") } cbinfo := &garCallback{rf} - return C.GAsyncReadyCallback(C._gasyncreadycallback_call), C.gpointer(unsafe.Pointer(cbinfo)), nil + cbinfoRaw := C.gpointer(unsafe.Pointer(cbinfo)) + // protect callback from Garbage collection + ProtectMapLock.Lock() + CallbackProtectMap[cbinfoRaw] = cbinfo + ProtectMapLock.Unlock() + return C.GAsyncReadyCallback(C._gasyncreadycallback_call), cbinfoRaw, nil } diff --git a/webkit2/webview.go b/webkit2/webview.go index 92d5830..02bfd12 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -215,7 +215,7 @@ func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error) } C.webkit_web_view_get_snapshot(v.webView, - (C.WebKitSnapshotRegion)(1), // FullDocument is the only working region at this point + (C.WebKitSnapshotRegion)(0), // FullDocument is the only working region at this point //XXX change to current view (C.WebKitSnapshotOptions)(0), nil, cCallback, From 8d91135691bcc4a1f62ea9b12f3032d616782e7f Mon Sep 17 00:00:00 2001 From: Miha Date: Mon, 12 May 2014 11:16:34 +0200 Subject: [PATCH 05/26] go-webkit2: GetSnapshot: more optins with GetSnapshotCustum --- webkit2/webview.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index 02bfd12..44f8111 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -173,6 +173,20 @@ const cairoSurfaceTypeImage = 0 // http://cairographics.org/manual/cairo-Image-Surfaces.html#cairo-format-t const cairoImageSurfaceFormatARB32 = 0 +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitSnapshotRegion +type SnapshotRegion int +const ( + SnapshotRegionVisible SnapshotRegion = C.WEBKIT_SNAPSHOT_REGION_VISIBLE + SnapshotRegionFullDocument SnapshotRegion = C.WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT +) + +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitSnapshotOptions +type SnapshotOptions int +const ( + SnapshotOptionsNone = C.WEBKIT_SNAPSHOT_OPTIONS_NONE + SnapshotOptionsIncludeRegionHighlighting = C.WEBKIT_SNAPSHOT_OPTIONS_INCLUDE_SELECTION_HIGHLIGHTING +) + // GetSnapshot runs asynchronously, taking a snapshot of the WebView. // Upon completion, resultCallback will be called with a copy of the underlying // bitmap backing store for the frame, or with an error encountered during @@ -181,6 +195,11 @@ const cairoImageSurfaceFormatARB32 = 0 // See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error)) { + v.GetSnapshotCustum(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) +} + +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot +func (v *WebView) GetSnapshotCustum(region SnapshotRegion, options SnapshotOptions, resultCallback func(result *image.RGBA, err error)) { var cCallback C.GAsyncReadyCallback var userData C.gpointer var err error @@ -215,8 +234,8 @@ func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error) } C.webkit_web_view_get_snapshot(v.webView, - (C.WebKitSnapshotRegion)(0), // FullDocument is the only working region at this point //XXX change to current view - (C.WebKitSnapshotOptions)(0), + (C.WebKitSnapshotRegion)(region), + (C.WebKitSnapshotOptions)(options), nil, cCallback, userData) From 6409aa5f8f7a638148319bef42109dad223a9005 Mon Sep 17 00:00:00 2001 From: Miha Date: Mon, 12 May 2014 15:51:45 +0200 Subject: [PATCH 06/26] small changes --- webkit2/gasyncreadycallback.go | 20 ++++++++++---------- webkit2/webview.go | 8 ++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/webkit2/gasyncreadycallback.go b/webkit2/gasyncreadycallback.go index 0ffab4a..4d350fc 100644 --- a/webkit2/gasyncreadycallback.go +++ b/webkit2/gasyncreadycallback.go @@ -15,13 +15,13 @@ type garCallback struct { } var ( - //Map stores callback pointers to protect callbacks from GC. - CallbackProtectMap map[C.gpointer]*garCallback - ProtectMapLock sync.RWMutex + //Map stores callbacks pointers, to protect them from GC. + callbackProtectMap map[C.gpointer]*garCallback + protectMapLock sync.RWMutex ) func init() { - CallbackProtectMap = make(map[C.gpointer]*garCallback) + callbackProtectMap = make(map[C.gpointer]*garCallback) } //export _go_gasyncreadycallback_call @@ -30,9 +30,9 @@ func _go_gasyncreadycallback_call(cbinfoRaw C.gpointer, cresult unsafe.Pointer) cbinfo := (*garCallback)(unsafe.Pointer(cbinfoRaw)) cbinfo.f.Call([]reflect.Value{reflect.ValueOf(result)}) // protect callback from Garbage collection - ProtectMapLock.Lock() - delete(CallbackProtectMap, cbinfoRaw) - ProtectMapLock.Unlock() + protectMapLock.Lock() + delete(callbackProtectMap, cbinfoRaw) + protectMapLock.Unlock() } func newGAsyncReadyCallback(f interface{}) (cCallback C.GAsyncReadyCallback, userData C.gpointer, err error) { @@ -43,8 +43,8 @@ func newGAsyncReadyCallback(f interface{}) (cCallback C.GAsyncReadyCallback, use cbinfo := &garCallback{rf} cbinfoRaw := C.gpointer(unsafe.Pointer(cbinfo)) // protect callback from Garbage collection - ProtectMapLock.Lock() - CallbackProtectMap[cbinfoRaw] = cbinfo - ProtectMapLock.Unlock() + protectMapLock.Lock() + callbackProtectMap[cbinfoRaw] = cbinfo + protectMapLock.Unlock() return C.GAsyncReadyCallback(C._gasyncreadycallback_call), cbinfoRaw, nil } diff --git a/webkit2/webview.go b/webkit2/webview.go index 44f8111..0963fe2 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -191,6 +191,8 @@ const ( // Upon completion, resultCallback will be called with a copy of the underlying // bitmap backing store for the frame, or with an error encountered during // execution. +// The same as GetSnapshotCustum, but with difference difference that +// region and options are pre set to SnapshotRegionFullDocument and SnapshotOptionsNone in advance. // // See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot @@ -198,6 +200,12 @@ func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error) v.GetSnapshotCustum(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) } +// GetSnapshotCustum runs asynchronously, taking a snapshot of the WebView. +// Upon completion, resultCallback will be called with a copy of the underlying +// bitmap backing store for the frame, or with an error encountered during +// execution. +// +// See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot func (v *WebView) GetSnapshotCustum(region SnapshotRegion, options SnapshotOptions, resultCallback func(result *image.RGBA, err error)) { var cCallback C.GAsyncReadyCallback From 61f07f34758cef7fcb24e99d1066e0ee5848f971 Mon Sep 17 00:00:00 2001 From: Miha Date: Wed, 14 May 2014 09:38:46 +0200 Subject: [PATCH 07/26] go fmt --- webkit2/example_test.go | 2 +- webkit2/gasyncreadycallback.go | 4 ++-- webkit2/settings_2_2_test.go | 22 +++++++++++----------- webkit2/webview.go | 8 +++++--- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/webkit2/example_test.go b/webkit2/example_test.go index 272c883..b1b8b9d 100644 --- a/webkit2/example_test.go +++ b/webkit2/example_test.go @@ -2,8 +2,8 @@ package webkit2_test import ( "fmt" - "github.com/visionect/go-webkit2/webkit2" "github.com/sqs/gojs" + "github.com/visionect/go-webkit2/webkit2" "github.com/visionect/gotk3/glib" "github.com/visionect/gotk3/gtk" "runtime" diff --git a/webkit2/gasyncreadycallback.go b/webkit2/gasyncreadycallback.go index 4d350fc..01cb9e8 100644 --- a/webkit2/gasyncreadycallback.go +++ b/webkit2/gasyncreadycallback.go @@ -6,8 +6,8 @@ import "C" import ( "errors" "reflect" - "unsafe" "sync" + "unsafe" ) type garCallback struct { @@ -17,7 +17,7 @@ type garCallback struct { var ( //Map stores callbacks pointers, to protect them from GC. callbackProtectMap map[C.gpointer]*garCallback - protectMapLock sync.RWMutex + protectMapLock sync.RWMutex ) func init() { diff --git a/webkit2/settings_2_2_test.go b/webkit2/settings_2_2_test.go index 5d73d73..cd05475 100644 --- a/webkit2/settings_2_2_test.go +++ b/webkit2/settings_2_2_test.go @@ -3,21 +3,21 @@ package webkit2 import ( - "testing" + "testing" ) func TestSettings_EnableWriteConsoleMessagesToStdout(t *testing.T) { - s := NewWebView().Settings() + s := NewWebView().Settings() - write := s.GetEnableWriteConsoleMessagesToStdout() - wantWrite := !write - s.SetEnableWriteConsoleMessagesToStdout(wantWrite) + write := s.GetEnableWriteConsoleMessagesToStdout() + wantWrite := !write + s.SetEnableWriteConsoleMessagesToStdout(wantWrite) - write = s.GetEnableWriteConsoleMessagesToStdout() - if wantWrite != write { - t.Errorf("want changed Write == %d, got %d", wantWrite, write) - } + write = s.GetEnableWriteConsoleMessagesToStdout() + if wantWrite != write { + t.Errorf("want changed Write == %d, got %d", wantWrite, write) + } - // Revert to original setting. - s.SetEnableWriteConsoleMessagesToStdout(!write) + // Revert to original setting. + s.SetEnableWriteConsoleMessagesToStdout(!write) } diff --git a/webkit2/webview.go b/webkit2/webview.go index 0963fe2..57e7ba0 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -175,15 +175,17 @@ const cairoImageSurfaceFormatARB32 = 0 // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitSnapshotRegion type SnapshotRegion int + const ( - SnapshotRegionVisible SnapshotRegion = C.WEBKIT_SNAPSHOT_REGION_VISIBLE + SnapshotRegionVisible SnapshotRegion = C.WEBKIT_SNAPSHOT_REGION_VISIBLE SnapshotRegionFullDocument SnapshotRegion = C.WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT ) // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitSnapshotOptions type SnapshotOptions int + const ( - SnapshotOptionsNone = C.WEBKIT_SNAPSHOT_OPTIONS_NONE + SnapshotOptionsNone = C.WEBKIT_SNAPSHOT_OPTIONS_NONE SnapshotOptionsIncludeRegionHighlighting = C.WEBKIT_SNAPSHOT_OPTIONS_INCLUDE_SELECTION_HIGHLIGHTING ) @@ -197,7 +199,7 @@ const ( // See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error)) { - v.GetSnapshotCustum(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) + v.GetSnapshotCustum(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) } // GetSnapshotCustum runs asynchronously, taking a snapshot of the WebView. From 7d871d449dca7aefc106b2ac2a3643c68a60c175 Mon Sep 17 00:00:00 2001 From: Miha Date: Fri, 16 May 2014 15:44:55 +0200 Subject: [PATCH 08/26] spelling error --- webkit2/webview.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index 57e7ba0..0880148 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -199,17 +199,17 @@ const ( // See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot func (v *WebView) GetSnapshot(resultCallback func(result *image.RGBA, err error)) { - v.GetSnapshotCustum(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) + v.GetSnapshotCustom(SnapshotRegionFullDocument, SnapshotOptionsNone, resultCallback) } -// GetSnapshotCustum runs asynchronously, taking a snapshot of the WebView. +// GetSnapshotCustom runs asynchronously, taking a snapshot of the WebView. // Upon completion, resultCallback will be called with a copy of the underlying // bitmap backing store for the frame, or with an error encountered during // execution. // // See also: webkit_web_view_get_snapshot at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-snapshot -func (v *WebView) GetSnapshotCustum(region SnapshotRegion, options SnapshotOptions, resultCallback func(result *image.RGBA, err error)) { +func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptions, resultCallback func(result *image.RGBA, err error)) { var cCallback C.GAsyncReadyCallback var userData C.gpointer var err error From f5fc9f6a3812ecb2c529a5fcf6a9a9acf5b12f5d Mon Sep 17 00:00:00 2001 From: Miha Date: Fri, 16 May 2014 15:56:21 +0200 Subject: [PATCH 09/26] spelling 2 --- webkit2/webview.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index 0880148..4c64ef3 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -193,7 +193,7 @@ const ( // Upon completion, resultCallback will be called with a copy of the underlying // bitmap backing store for the frame, or with an error encountered during // execution. -// The same as GetSnapshotCustum, but with difference difference that +// The same as GetSnapshotCustom, but with difference difference that // region and options are pre set to SnapshotRegionFullDocument and SnapshotOptionsNone in advance. // // See also: webkit_web_view_get_snapshot at From f7244ffc3ddc19e36f8a6f3bc3b57d44a54ed509 Mon Sep 17 00:00:00 2001 From: Matevz Mihalic Date: Mon, 23 Jun 2014 11:50:38 +0200 Subject: [PATCH 10/26] Added remote webkit inspector. --- webkit2/settings.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/webkit2/settings.go b/webkit2/settings.go index 817eb57..ff5d916 100644 --- a/webkit2/settings.go +++ b/webkit2/settings.go @@ -34,6 +34,22 @@ func (s *Settings) SetAutoLoadImages(autoLoad bool) { C.webkit_settings_set_auto_load_images(s.settings, gboolean(autoLoad)) } +// GetEnableDeveloperExtras returns the "enable-developer-extras" property. +// +// See also: webkit_settings_set_enable_developer_extras at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html#webkit-settings-get-enable-developer-extras +func (s *Settings) GetEnableDeveloperExtras() bool { + return gobool(C.webkit_settings_get_enable_developer_extras(s.settings)) +} + +// SetEnableDeveloperExtras sets the "enable-developer-extras" property. +// +// See also: webkit_settings_set_enable_developer_extras at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html#webkit-settings-set-enable-developer-extras +func (s *Settings) SetEnableDeveloperExtras(autoLoad bool) { + C.webkit_settings_set_enable_developer_extras(s.settings, gboolean(autoLoad)) +} + // SetUserAgentWithApplicationDetails sets the "user-agent" property by // appending the application details to the default user agent. // From 4306d0be2812cbaf0bb08cbf95d5e962418c980f Mon Sep 17 00:00:00 2001 From: Mihael Dimec Date: Mon, 23 Jun 2014 16:49:15 +0200 Subject: [PATCH 11/26] go fmt --- webkit2/settings.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webkit2/settings.go b/webkit2/settings.go index ff5d916..dd8a80d 100644 --- a/webkit2/settings.go +++ b/webkit2/settings.go @@ -39,7 +39,7 @@ func (s *Settings) SetAutoLoadImages(autoLoad bool) { // See also: webkit_settings_set_enable_developer_extras at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html#webkit-settings-get-enable-developer-extras func (s *Settings) GetEnableDeveloperExtras() bool { - return gobool(C.webkit_settings_get_enable_developer_extras(s.settings)) + return gobool(C.webkit_settings_get_enable_developer_extras(s.settings)) } // SetEnableDeveloperExtras sets the "enable-developer-extras" property. @@ -47,7 +47,7 @@ func (s *Settings) GetEnableDeveloperExtras() bool { // See also: webkit_settings_set_enable_developer_extras at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html#webkit-settings-set-enable-developer-extras func (s *Settings) SetEnableDeveloperExtras(autoLoad bool) { - C.webkit_settings_set_enable_developer_extras(s.settings, gboolean(autoLoad)) + C.webkit_settings_set_enable_developer_extras(s.settings, gboolean(autoLoad)) } // SetUserAgentWithApplicationDetails sets the "user-agent" property by From f08b07282db9430755867aa1b511c51a9ba1db71 Mon Sep 17 00:00:00 2001 From: Mihael Dimec Date: Wed, 6 Aug 2014 14:32:37 +0200 Subject: [PATCH 12/26] add SetExtensionsDir to go-webkit2 --- webkit2/webcontext.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/webkit2/webcontext.go b/webkit2/webcontext.go index 4a55074..1077d6d 100644 --- a/webkit2/webcontext.go +++ b/webkit2/webcontext.go @@ -56,3 +56,12 @@ func (wc *WebContext) SetCacheModel(model CacheModel) { func (wc *WebContext) ClearCache() { C.webkit_web_context_clear_cache(wc.webContext) } + +//SetWebExtensionsDirectory sets the directory where WebKit will look for Web Extensions. +// +//See also: webkit_web_context_set_web_extensions_directory +//http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-web-extensions-directory +func (wc *WebContext) SetWebExtensionsDirectory(directory string) { + C.webkit_web_context_set_web_extensions_directory(wc.webContext, (*C.gchar)(C.CString(directory))) +} + From 297d536ea752f608a0a375cef601a0c8d66d7ce3 Mon Sep 17 00:00:00 2001 From: Mihael Dimec Date: Wed, 6 Aug 2014 15:57:40 +0200 Subject: [PATCH 13/26] webkit2: fix WebKitWebContext --- webkit2/webcontext.go | 13 +++++++++++-- webkit2/webview.go | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/webkit2/webcontext.go b/webkit2/webcontext.go index 1077d6d..d54ab07 100644 --- a/webkit2/webcontext.go +++ b/webkit2/webcontext.go @@ -2,21 +2,30 @@ package webkit2 // #include import "C" - +import ( + "unsafe" + "github.com/visionect/gotk3/glib" +) // WebContext manages all aspects common to all WebViews. // // See also: WebKitWebContext at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html. type WebContext struct { + *glib.Object webContext *C.WebKitWebContext } +func newWebContext(webContext *C.WebKitWebContext) *WebContext { + obj := &glib.Object{glib.ToGObject(unsafe.Pointer(webContext))} + return &WebContext{obj, webContext} +} + // DefaultWebContext returns the default WebContext. // // See also: webkit_web_context_get_default at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-get-default. func DefaultWebContext() *WebContext { - return &WebContext{C.webkit_web_context_get_default()} + return newWebContext(C.webkit_web_context_get_default()) } // CacheModel describes the caching behavior. diff --git a/webkit2/webview.go b/webkit2/webview.go index 4c64ef3..fc57b99 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -55,7 +55,7 @@ func newWebView(webViewWidget *C.GtkWidget) *WebView { // See also: webkit_web_view_get_context at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-context. func (v *WebView) Context() *WebContext { - return &WebContext{C.webkit_web_view_get_context(v.webView)} + return newWebContext(C.webkit_web_view_get_context(v.webView)) } // LoadURI requests loading of the specified URI string. From 985457ebbcaccd9e3dc4e5eae181a43ba82cb1aa Mon Sep 17 00:00:00 2001 From: Mihael Dimec Date: Mon, 25 Aug 2014 15:20:07 +0200 Subject: [PATCH 14/26] cookie local storage gotk3/go-webkit2 Conflicts: src/github.com/visionect/go-webkit2/webkit2/webcontext.go src/okular/webkit/main.go --- webkit2/cookiemanager.go | 77 ++++++++++++++++++++++++++++++++++++++++ webkit2/webcontext.go | 34 ++++++++++++++++-- 2 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 webkit2/cookiemanager.go diff --git a/webkit2/cookiemanager.go b/webkit2/cookiemanager.go new file mode 100644 index 0000000..b371443 --- /dev/null +++ b/webkit2/cookiemanager.go @@ -0,0 +1,77 @@ +package webkit2 + +// #include +import "C" +import ( + "unsafe" + "github.com/visionect/gotk3/glib" +) +// CookieManager — Defines how to handle cookies in a WebContext +// +// See also: WebKitCookieManager at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html. +type CookieManager struct { + *glib.Object + cookieManager *C.WebKitCookieManager +} + +func newCookieManager(cookieManager *C.WebKitCookieManager) *CookieManager { + obj := &glib.Object{glib.ToGObject(unsafe.Pointer(cookieManager))} + return &CookieManager{obj, cookieManager} +} + +// CookiePersistentStorage values used to denote the cookie persistent storage types +// are described at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#WebKitCookiePersistentStorage +type CookiePersistentStorage int +const ( + CookiePersistentStorageText CookiePersistentStorage = iota + CookiePersistentStorageSqlite +) + +// SetPersistentStorage sets the filename where non-session cookies are stored +// persistently using storage as the format to read/write the cookies. +// +// See also: webkit_cookie_manager_set_persistent_storage +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-set-persistent-storage +func (cm *CookieManager) SetPersistentStorage(filename string, storage CookiePersistentStorage) { + C.webkit_cookie_manager_set_persistent_storage(cm.cookieManager, + (*C.gchar)(C.CString(filename)), + C.WebKitCookiePersistentStorage(storage)) +} + +// CookiePersistentStorage values used to denote the cookie acceptance policies. +// are described at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#WebKitCookieAcceptPolicy +type CookieAcceptPolicy int +const ( + CookiePolicyAcceptAlways CookieAcceptPolicy = iota + CookiePolicyAcceptNever + CookiePolicyAcceptNoThirdParty +) + +// SetAcceptPolicy set the cookie acceptance policy of CookieManager as policy . +// +// See also: webkit_cookie_manager_set_accept_policy +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-set-accept-policy +func (cm *CookieManager) SetAcceptPolicy(policy CookieAcceptPolicy) { + C.webkit_cookie_manager_set_accept_policy(cm.cookieManager, + C.WebKitCookieAcceptPolicy(policy)) +} + +// DeleteCookiesForDomain Remove all cookies of CookieManager for the given domain. +// +// See also: webkit_cookie_manager_delete_cookies_for_domain +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-delete-cookies-for-domain +func (cm *CookieManager) DeleteCookiesForDomain(domain string) { + C.webkit_cookie_manager_delete_cookies_for_domain(cm.cookieManager, + (*C.gchar)(C.CString(domain))) +} + +// DeleteAllCookies delete all cookies of CookieManager. +// +// See also: webkit_cookie_manager_delete_all_cookies +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-delete-all-cookies +func (cm *CookieManager) DeleteAllCookies(domain string) { + C.webkit_cookie_manager_delete_all_cookies(cm.cookieManager) +} diff --git a/webkit2/webcontext.go b/webkit2/webcontext.go index 4a55074..603f1ec 100644 --- a/webkit2/webcontext.go +++ b/webkit2/webcontext.go @@ -2,21 +2,30 @@ package webkit2 // #include import "C" - +import ( + "unsafe" + "github.com/visionect/gotk3/glib" +) // WebContext manages all aspects common to all WebViews. // // See also: WebKitWebContext at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html. type WebContext struct { + *glib.Object webContext *C.WebKitWebContext } +func newWebContext(webContext *C.WebKitWebContext) *WebContext { + obj := &glib.Object{glib.ToGObject(unsafe.Pointer(webContext))} + return &WebContext{obj, webContext} +} + // DefaultWebContext returns the default WebContext. // // See also: webkit_web_context_get_default at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-get-default. func DefaultWebContext() *WebContext { - return &WebContext{C.webkit_web_context_get_default()} + return newWebContext(C.webkit_web_context_get_default()) } // CacheModel describes the caching behavior. @@ -56,3 +65,24 @@ func (wc *WebContext) SetCacheModel(model CacheModel) { func (wc *WebContext) ClearCache() { C.webkit_web_context_clear_cache(wc.webContext) } + +// SetDiskCacheDirectory sets the directory where disk cache files will be stored . +// +// See also: webkit_web_context_set_disk_cache_directory +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-disk-cache-directory +func (wc *WebContext) SetDiskCacheDirectory(directory string) { + C.webkit_web_context_set_disk_cache_directory(wc.webContext, (*C.gchar)(C.CString(directory))) +} + +func (wc *WebContext) GetCookieManager() *CookieManager { + return newCookieManager(C.webkit_web_context_get_cookie_manager(wc.webContext)) +} + +// SetWebExtensionsDirectory sets the directory where WebKit will look for Web Extensions. +// +// See also: webkit_web_context_set_web_extensions_directory +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-web-extensions-directory +func (wc *WebContext) SetWebExtensionsDirectory(directory string) { + C.webkit_web_context_set_web_extensions_directory(wc.webContext, (*C.gchar)(C.CString(directory))) +} + From 110c3cd58ef3b45b6db436200c6d46372681c5f1 Mon Sep 17 00:00:00 2001 From: Luka Napotnik Date: Wed, 27 Aug 2014 13:03:39 +0200 Subject: [PATCH 15/26] Small fix for webview.go --- webkit2/webview.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index 4c64ef3..d064c53 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -11,11 +11,12 @@ import "C" import ( "errors" + "image" + "unsafe" + "github.com/sqs/gojs" "github.com/visionect/gotk3/glib" "github.com/visionect/gotk3/gtk" - "image" - "unsafe" ) // WebView represents a WebKit WebView. @@ -55,7 +56,7 @@ func newWebView(webViewWidget *C.GtkWidget) *WebView { // See also: webkit_web_view_get_context at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-context. func (v *WebView) Context() *WebContext { - return &WebContext{C.webkit_web_view_get_context(v.webView)} + return newWebContext(C.webkit_web_view_get_context(v.webView)) } // LoadURI requests loading of the specified URI string. From cc771f43de563f6bf92df2d30bf3b590c33827f0 Mon Sep 17 00:00:00 2001 From: Mihael Dimec Date: Mon, 8 Sep 2014 13:57:44 +0200 Subject: [PATCH 16/26] compilable with go 1.3.1 compiler --- webkit2/webview.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index d064c53..3a25d0d 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -106,7 +106,7 @@ func (v *WebView) URI() string { // See also: webkit_web_view_get_javascript_global_context at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-javascript-global-context func (v *WebView) JavaScriptGlobalContext() *gojs.Context { - return gojs.NewContextFrom(gojs.RawContext(C.webkit_web_view_get_javascript_global_context(v.webView))) + return gojs.NewContextFrom(gojs.RawContext(unsafe.Pointer(C.webkit_web_view_get_javascript_global_context(v.webView)))) } // RunJavaScript runs script asynchronously in the context of the current page @@ -131,8 +131,8 @@ func (v *WebView) RunJavaScript(script string, resultCallback func(result *gojs. resultCallback(nil, errors.New(msg)) return } - ctxRaw := gojs.RawContext(C.webkit_javascript_result_get_global_context(jsResult)) - jsValRaw := gojs.RawValue(C.webkit_javascript_result_get_value(jsResult)) + ctxRaw := gojs.RawContext(unsafe.Pointer(C.webkit_javascript_result_get_global_context(jsResult))) + jsValRaw := gojs.RawValue(unsafe.Pointer(C.webkit_javascript_result_get_value(jsResult))) ctx := gojs.NewContextFrom(ctxRaw) jsVal := ctx.NewValueFrom(jsValRaw) resultCallback(jsVal, nil) From f36d2dece99078d06a6164da6de65cc7d095b09e Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Thu, 27 Nov 2014 14:12:57 +0100 Subject: [PATCH 17/26] better load fail handling --- webkit2/webview.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/webkit2/webview.go b/webkit2/webview.go index 3a25d0d..8c25048 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -76,6 +76,15 @@ func (v *WebView) LoadHTML(content, baseURI string) { C.webkit_web_view_load_html(v.webView, (*C.gchar)(C.CString(content)), (*C.gchar)(C.CString(baseURI))) } +// LoadAlternateHTML loads the given content string for the URI content_uri . +// This allows clients to display page-loading errors in the WebKitWebView itself +// +// See also: webkit_web_view_load_alternate_html at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-load-alternate-html +func (v *WebView) LoadAlternateHTML(content, contentURI, baseURI string) { + C.webkit_web_view_load_alternate_html(v.webView, (*C.gchar)(C.CString(content)), (*C.gchar)(C.CString(contentURI)), (*C.gchar)(C.CString(baseURI))) +} + // Settings returns the current active settings of this WebView's WebViewGroup. // // See also: webkit_web_view_get_settings at @@ -168,6 +177,21 @@ const ( LoadFinished ) +func (le LoadEvent) String() string { + switch le { + case LoadStarted: + return "load-started" + case LoadRedirected: + return "load-redirected" + case LoadCommitted: + return "load-commited" + case LoadFinished: + return "load-finished" + } + + return "unknown" +} + // http://cairographics.org/manual/cairo-cairo-surface-t.html#cairo-surface-type-t const cairoSurfaceTypeImage = 0 From a9f0963dce8eeca71f1082724e817f4bdce1d86b Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Fri, 19 Dec 2014 11:02:48 +0100 Subject: [PATCH 18/26] conflict CString() free --- webkit2/cookiemanager.go | 9 +++++++-- webkit2/settings.go | 7 ++++++- webkit2/webcontext.go | 9 +++++++-- webkit2/webview.go | 22 ++++++++++++++++++---- 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/webkit2/cookiemanager.go b/webkit2/cookiemanager.go index b371443..5f7858f 100644 --- a/webkit2/cookiemanager.go +++ b/webkit2/cookiemanager.go @@ -1,5 +1,6 @@ package webkit2 +// #include // #include import "C" import ( @@ -35,8 +36,10 @@ const ( // See also: webkit_cookie_manager_set_persistent_storage // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-set-persistent-storage func (cm *CookieManager) SetPersistentStorage(filename string, storage CookiePersistentStorage) { + cstr := C.CString(filename) + defer C.free(unsafe.Pointer(cstr)) C.webkit_cookie_manager_set_persistent_storage(cm.cookieManager, - (*C.gchar)(C.CString(filename)), + (*C.gchar)(cstr), C.WebKitCookiePersistentStorage(storage)) } @@ -64,8 +67,10 @@ func (cm *CookieManager) SetAcceptPolicy(policy CookieAcceptPolicy) { // See also: webkit_cookie_manager_delete_cookies_for_domain // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitCookieManager.html#webkit-cookie-manager-delete-cookies-for-domain func (cm *CookieManager) DeleteCookiesForDomain(domain string) { + cstr := C.CString(domain) + defer C.free(unsafe.Pointer(cstr)) C.webkit_cookie_manager_delete_cookies_for_domain(cm.cookieManager, - (*C.gchar)(C.CString(domain))) + (*C.gchar)(cstr)) } // DeleteAllCookies delete all cookies of CookieManager. diff --git a/webkit2/settings.go b/webkit2/settings.go index dd8a80d..8dabe0f 100644 --- a/webkit2/settings.go +++ b/webkit2/settings.go @@ -1,5 +1,6 @@ package webkit2 +// #include // #include import "C" import "unsafe" @@ -56,5 +57,9 @@ func (s *Settings) SetEnableDeveloperExtras(autoLoad bool) { // See also: webkit_settings_set_user_agent_with_application_details at // http://webkitgtk.org/reference/webkit2gtk/unstable/WebKitSettings.html#webkit-settings-set-user-agent-with-application-details func (s *Settings) SetUserAgentWithApplicationDetails(appName, appVersion string) { - C.webkit_settings_set_user_agent_with_application_details(s.settings, (*C.gchar)(C.CString(appName)), (*C.gchar)(C.CString(appVersion))) + cName := C.CString(appName) + defer C.free(unsafe.Pointer(cName)) + cVersion := C.CString(appVersion) + defer C.free(unsafe.Pointer(cVersion)) + C.webkit_settings_set_user_agent_with_application_details(s.settings, (*C.gchar)(cName), (*C.gchar)(cVersion)) } diff --git a/webkit2/webcontext.go b/webkit2/webcontext.go index 603f1ec..54d6bc4 100644 --- a/webkit2/webcontext.go +++ b/webkit2/webcontext.go @@ -1,5 +1,6 @@ package webkit2 +// #include // #include import "C" import ( @@ -71,7 +72,9 @@ func (wc *WebContext) ClearCache() { // See also: webkit_web_context_set_disk_cache_directory // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-disk-cache-directory func (wc *WebContext) SetDiskCacheDirectory(directory string) { - C.webkit_web_context_set_disk_cache_directory(wc.webContext, (*C.gchar)(C.CString(directory))) + cstr := C.CString(directory) + defer C.free(unsafe.Pointer(cstr)) + C.webkit_web_context_set_disk_cache_directory(wc.webContext, (*C.gchar)(cstr)) } func (wc *WebContext) GetCookieManager() *CookieManager { @@ -83,6 +86,8 @@ func (wc *WebContext) GetCookieManager() *CookieManager { // See also: webkit_web_context_set_web_extensions_directory // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-web-extensions-directory func (wc *WebContext) SetWebExtensionsDirectory(directory string) { - C.webkit_web_context_set_web_extensions_directory(wc.webContext, (*C.gchar)(C.CString(directory))) + cstr := C.CString(directory) + defer C.free(unsafe.Pointer(cstr)) + C.webkit_web_context_set_web_extensions_directory(wc.webContext, (*C.gchar)(cstr)) } diff --git a/webkit2/webview.go b/webkit2/webview.go index 8c25048..9d7c2aa 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -64,7 +64,9 @@ func (v *WebView) Context() *WebContext { // See also: webkit_web_view_load_uri at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-load-uri func (v *WebView) LoadURI(uri string) { - C.webkit_web_view_load_uri(v.webView, (*C.gchar)(C.CString(uri))) + cUri := C.CString(uri) + defer C.free(unsafe.Pointer(cUri)) + C.webkit_web_view_load_uri(v.webView, (*C.gchar)(cUri)) } // LoadHTML loads the given content string with the specified baseURI. The MIME @@ -73,7 +75,11 @@ func (v *WebView) LoadURI(uri string) { // See also: webkit_web_view_load_html at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-load-html func (v *WebView) LoadHTML(content, baseURI string) { - C.webkit_web_view_load_html(v.webView, (*C.gchar)(C.CString(content)), (*C.gchar)(C.CString(baseURI))) + cContent := C.CString(content) + defer C.free(unsafe.Pointer(cContent)) + cBaseURI := C.CString(baseURI) + defer C.free(unsafe.Pointer(cBaseURI)) + C.webkit_web_view_load_html(v.webView, (*C.gchar)(cContent), (*C.gchar)(cBaseURI)) } // LoadAlternateHTML loads the given content string for the URI content_uri . @@ -82,7 +88,13 @@ func (v *WebView) LoadHTML(content, baseURI string) { // See also: webkit_web_view_load_alternate_html at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-load-alternate-html func (v *WebView) LoadAlternateHTML(content, contentURI, baseURI string) { - C.webkit_web_view_load_alternate_html(v.webView, (*C.gchar)(C.CString(content)), (*C.gchar)(C.CString(contentURI)), (*C.gchar)(C.CString(baseURI))) + cContent := C.CString(content) + defer C.free(unsafe.Pointer(cContent)) + cContentURI := C.CString(contentURI) + defer C.free(unsafe.Pointer(cContentURI)) + cBaseURI := C.CString(baseURI) + defer C.free(unsafe.Pointer(cBaseURI)) + C.webkit_web_view_load_alternate_html(v.webView, (*C.gchar)(cContent), (*C.gchar)(cContentURI), (*C.gchar)(cBaseURI)) } // Settings returns the current active settings of this WebView's WebViewGroup. @@ -151,7 +163,9 @@ func (v *WebView) RunJavaScript(script string, resultCallback func(result *gojs. panic(err) } } - C.webkit_web_view_run_javascript(v.webView, (*C.gchar)(C.CString(script)), nil, cCallback, userData) + cScript := C.CString(script) + defer C.free(unsafe.Pointer(cScript)) + C.webkit_web_view_run_javascript(v.webView, (*C.gchar)(cScript), nil, cCallback, userData) } // Destroy destroys the WebView's corresponding GtkWidget and marks its internal From 93220d2af2d3eec49fd12fc66e95ca6cd74c30ca Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Fri, 16 Jan 2015 15:23:11 +0100 Subject: [PATCH 19/26] mulltiple processes can't share the same cache location --- webkit2/webcontext.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/webkit2/webcontext.go b/webkit2/webcontext.go index 54d6bc4..f50a1f2 100644 --- a/webkit2/webcontext.go +++ b/webkit2/webcontext.go @@ -77,6 +77,17 @@ func (wc *WebContext) SetDiskCacheDirectory(directory string) { C.webkit_web_context_set_disk_cache_directory(wc.webContext, (*C.gchar)(cstr)) } +// SetFaviconDatabaseDirectory sets the directory path to be used to store the favicons database for context on disk. +// +// See also: webkit_web_context_set_favicon_database_directory +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebContext.html#webkit-web-context-set-favicon-database-directory +func (wc *WebContext) SetFaviconDatabaseDirectory(directory string) { + cstr := C.CString(directory) + defer C.free(unsafe.Pointer(cstr)) + C.webkit_web_context_set_favicon_database_directory(wc.webContext, (*C.gchar)(cstr)) +} + + func (wc *WebContext) GetCookieManager() *CookieManager { return newCookieManager(C.webkit_web_context_get_cookie_manager(wc.webContext)) } From 57ee1ebb1539bd54397bc669ef6635782fdfc395 Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Thu, 12 Feb 2015 14:03:40 +0100 Subject: [PATCH 20/26] go-webkit2 conflicts2 --- webkit2/webview.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index dcf13b3..cd1b4f7 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -56,7 +56,7 @@ func newWebView(webViewWidget *C.GtkWidget) *WebView { // See also: webkit_web_view_get_context at // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-get-context. func (v *WebView) Context() *WebContext { - return &WebContext{C.webkit_web_view_get_context(v.webView)} + return newWebContext(C.webkit_web_view_get_context(v.webView)) } // LoadURI requests loading of the specified URI string. From 19a3d753ebea52ec2c7080e53d6a4ee3d47c87c0 Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Wed, 29 Jul 2015 19:11:46 +0200 Subject: [PATCH 21/26] color order fix --- webkit2/cairo_endianes.c | 87 ++++++++++++++++++++++++++++++++++++++++ webkit2/cairo_endianes.h | 5 +++ webkit2/webview.go | 15 ++++++- 3 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 webkit2/cairo_endianes.c create mode 100644 webkit2/cairo_endianes.h diff --git a/webkit2/cairo_endianes.c b/webkit2/cairo_endianes.c new file mode 100644 index 0000000..0994ab3 --- /dev/null +++ b/webkit2/cairo_endianes.c @@ -0,0 +1,87 @@ +#include +//#include + +#include "cairo_endianes.h" + +const uint32_t gowk2_endian_test = 0x00010203; + +uint8_t* gowk2_detect_endianes() { + return (uint8_t*)&gowk2_endian_test; +} + +void gowk2_cairo_endian_depended_ARGB32_to_RGBA(unsigned char *data, unsigned int len) { + char* order; + unsigned int i,j; + char r, g, b, a; + //printf("webkit endian 0\n"); + + + order = gowk2_detect_endianes(); + + //save processing time and check for special case where data is already in desired order. Desired order is Go's natural order RGBA. + //cairo ARGB32 + //go RGBA + if(order[0]==0x01 && order[1]==0x02 && order[2]==0x03 && order[3]==0x00) + return; + //printf("webkit endian 1\n"); + for(i=0; i // #include // +//#include "cairo_endianes.h" +// // static WebKitWebView* to_WebKitWebView(GtkWidget* w) { return WEBKIT_WEB_VIEW(w); } // // #cgo pkg-config: webkit2gtk-3.0 @@ -210,7 +212,7 @@ func (le LoadEvent) String() string { const cairoSurfaceTypeImage = 0 // http://cairographics.org/manual/cairo-Image-Surfaces.html#cairo-format-t -const cairoImageSurfaceFormatARB32 = 0 +const cairoImageSurfaceFormatARGB32 = 0 // http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitSnapshotRegion type SnapshotRegion int @@ -265,7 +267,7 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio defer C.cairo_surface_destroy(snapResult) if C.cairo_surface_get_type(snapResult) != cairoSurfaceTypeImage || - C.cairo_image_surface_get_format(snapResult) != cairoImageSurfaceFormatARB32 { + C.cairo_image_surface_get_format(snapResult) != cairoImageSurfaceFormatARGB32 { panic("Snapshot in unexpected format") } @@ -273,7 +275,16 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio h := int(C.cairo_image_surface_get_height(snapResult)) stride := int(C.cairo_image_surface_get_stride(snapResult)) data := unsafe.Pointer(C.cairo_image_surface_get_data(snapResult)) + + //(miha) fix endianes depended byte order, and copy to go slice at the same time. + //data_fixed := make([]byte, stride*h) + //C.gowk2_cairo_endian_depended_ARGB32_to_RGBA_copy((*C.uchar)(data), (*C.uchar)(&data_fixed[0]), C.uint(stride*h)) + //rgba := &image.RGBA{data_fixed, stride, image.Rect(0, 0, w, h)} + + // slower but doesn't use Go pointers inside C. See https://github.com/golang/go/issues/8310 !!!!!!! + C.gowk2_cairo_endian_depended_ARGB32_to_RGBA((*C.uchar)(data), C.uint(stride*h)) rgba := &image.RGBA{C.GoBytes(data, C.int(stride*h)), stride, image.Rect(0, 0, w, h)} + resultCallback(rgba, nil) } cCallback, userData, err = newGAsyncReadyCallback(callback) From a49f24fe326c3b9756565248abc85754b33cc8ea Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Wed, 26 Aug 2015 09:43:21 +0200 Subject: [PATCH 22/26] Issue #331 not finished yet. Timer works. JS api is prepared. Connect together and add modification option to admin. --- webkit2/webview.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/webkit2/webview.go b/webkit2/webview.go index c375a56..864ea78 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -16,9 +16,9 @@ import ( "image" "unsafe" + "github.com/sqs/gojs" "github.com/visionect/gotk3/glib" "github.com/visionect/gotk3/gtk" - "github.com/sqs/gojs" ) // WebView represents a WebKit WebView. @@ -99,6 +99,14 @@ func (v *WebView) LoadAlternateHTML(content, contentURI, baseURI string) { C.webkit_web_view_load_alternate_html(v.webView, (*C.gchar)(cContent), (*C.gchar)(cContentURI), (*C.gchar)(cBaseURI)) } +// Reloads the current contents of web_view . See also webkit_web_view_reload_bypass_cache(). +// +// See also: webkit_web_view_reload_html at +// http://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-reload +func (v *WebView) Reload() { + C.webkit_web_view_reload(v.webView) +} + // Settings returns the current active settings of this WebView's WebViewGroup. // // See also: webkit_web_view_get_settings at From 08efe86b9faa9f657d20ebca6190f39643a5f120 Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Thu, 8 Oct 2015 11:06:46 +0200 Subject: [PATCH 23/26] webkit image debug messages! --- webkit2/webview.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/webkit2/webview.go b/webkit2/webview.go index 864ea78..9a9cb60 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -14,6 +14,7 @@ import "C" import ( "errors" "image" + "log" "unsafe" "github.com/sqs/gojs" @@ -265,6 +266,7 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio if resultCallback != nil { callback := func(result *C.GAsyncResult) { var snapErr *C.GError + log.Printf("webkit.GetSnapshotCustom callback\n") snapResult := C.webkit_web_view_get_snapshot_finish(v.webView, result, &snapErr) if snapResult == nil { defer C.g_error_free(snapErr) @@ -272,6 +274,7 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio resultCallback(nil, errors.New(msg)) return } + log.Printf("webkit.GetSnapshotCustom callback got surface\n") defer C.cairo_surface_destroy(snapResult) if C.cairo_surface_get_type(snapResult) != cairoSurfaceTypeImage || @@ -290,8 +293,11 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio //rgba := &image.RGBA{data_fixed, stride, image.Rect(0, 0, w, h)} // slower but doesn't use Go pointers inside C. See https://github.com/golang/go/issues/8310 !!!!!!! + log.Printf("webkit.GetSnapshotCustom callback before color reorder\n") C.gowk2_cairo_endian_depended_ARGB32_to_RGBA((*C.uchar)(data), C.uint(stride*h)) + log.Printf("webkit.GetSnapshotCustom callback after color reorder\n") rgba := &image.RGBA{C.GoBytes(data, C.int(stride*h)), stride, image.Rect(0, 0, w, h)} + log.Printf("webkit.GetSnapshotCustom callback after copying data to GO") resultCallback(rgba, nil) } From 84d7bc4fcf2abeb0078d5963012bce9550a397c6 Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Thu, 22 Oct 2015 15:46:25 +0200 Subject: [PATCH 24/26] webkit: optimize cairo endian dependent to RGBA image pixels flip. #379 --- webkit2/cairo_endianes.c | 134 ++++++++++++++++++++++++--------- webkit2/cairo_endianes.go | 15 ++++ webkit2/cairo_endianes.h | 4 +- webkit2/cairo_endianes_test.go | 48 ++++++++++++ webkit2/webview.go | 22 ++++-- 5 files changed, 177 insertions(+), 46 deletions(-) create mode 100644 webkit2/cairo_endianes.go create mode 100644 webkit2/cairo_endianes_test.go diff --git a/webkit2/cairo_endianes.c b/webkit2/cairo_endianes.c index 0994ab3..d2875f8 100644 --- a/webkit2/cairo_endianes.c +++ b/webkit2/cairo_endianes.c @@ -5,59 +5,116 @@ const uint32_t gowk2_endian_test = 0x00010203; -uint8_t* gowk2_detect_endianes() { +// Endianes constants +#define GOWK2_BIG_ENDIAN 0x00010203 +#define GOWK2_LITTLE_ENDIAN_8 0x03020100 +#define GOWK2_LITTLE_ENDIAN_16 0x02030001 +#define GOWK2_MIDLE_ENDIAN 0x01000302 + +uint8_t* gowk2_detect_endianes_byte() { return (uint8_t*)&gowk2_endian_test; } -void gowk2_cairo_endian_depended_ARGB32_to_RGBA(unsigned char *data, unsigned int len) { - char* order; - unsigned int i,j; - char r, g, b, a; +uint32_t gowk2_detect_endianes_word() { + uint8_t *b_ptr; + b_ptr = (uint8_t*)&gowk2_endian_test; + return ((uint32_t)b_ptr[0] << 24) | ((uint32_t)b_ptr[1] << 16) | ((uint32_t)b_ptr[2] << 8) | ((uint32_t)b_ptr[3]); +} + +void gowk2_cairo_endian_depended_ARGB32_to_RGBA(unsigned char *data, unsigned char *out, unsigned int len) { + // s1 and s2 are swap variables for the case, when data==out + register char sw; + register unsigned int i; + uint32_t order; //printf("webkit endian 0\n"); - order = gowk2_detect_endianes(); + order = gowk2_detect_endianes_word(); - //save processing time and check for special case where data is already in desired order. Desired order is Go's natural order RGBA. - //cairo ARGB32 - //go RGBA - if(order[0]==0x01 && order[1]==0x02 && order[2]==0x03 && order[3]==0x00) - return; //printf("webkit endian 1\n"); - for(i=0; i R G B A + // 0 1 2 3 -> 1 2 3 0 + for(i=0; i R G B A + // 3 2 1 0 -> 2 1 0 3 + if(data == out) { + // just swap + // if we are swapping bytes inside same array, then we do not need to copy all data. + // this saves time + for(i=0; i R G B A + // 2 3 0 1 -> 3 0 1 2 + for(i=0; i R G B A + // 1 0 3 2 -> 0 3 2 1 + if(data == out) { + // just swap + // if we are swapping bytes inside same array, then we do not need to copy all data. + // this saves time + for(i=0; i Date: Mon, 26 Oct 2015 11:03:34 +0100 Subject: [PATCH 25/26] Remove debug messages. --- webkit2/cairo_endianes.c | 5 ----- webkit2/webview.go | 11 ----------- 2 files changed, 16 deletions(-) diff --git a/webkit2/cairo_endianes.c b/webkit2/cairo_endianes.c index d2875f8..dbf6382 100644 --- a/webkit2/cairo_endianes.c +++ b/webkit2/cairo_endianes.c @@ -142,8 +142,3 @@ void gowk2_cairo_endian_depended_ARGB32_to_RGBA_smart(unsigned char *data, unsig //printf("webkit endian 2\n"); return; } - -/// - - - diff --git a/webkit2/webview.go b/webkit2/webview.go index 37621e9..760d968 100644 --- a/webkit2/webview.go +++ b/webkit2/webview.go @@ -14,7 +14,6 @@ import "C" import ( "errors" "image" - "log" "unsafe" "github.com/sqs/gojs" @@ -266,7 +265,6 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio if resultCallback != nil { callback := func(result *C.GAsyncResult) { var snapErr *C.GError - log.Printf("webkit.GetSnapshotCustom callback\n") snapResult := C.webkit_web_view_get_snapshot_finish(v.webView, result, &snapErr) if snapResult == nil { defer C.g_error_free(snapErr) @@ -274,7 +272,6 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio resultCallback(nil, errors.New(msg)) return } - log.Printf("webkit.GetSnapshotCustom callback got surface\n") defer C.cairo_surface_destroy(snapResult) if C.cairo_surface_get_type(snapResult) != cairoSurfaceTypeImage || @@ -285,25 +282,17 @@ func (v *WebView) GetSnapshotCustom(region SnapshotRegion, options SnapshotOptio w := int(C.cairo_image_surface_get_width(snapResult)) h := int(C.cairo_image_surface_get_height(snapResult)) stride := int(C.cairo_image_surface_get_stride(snapResult)) - log.Printf("Before surface flush\n") C.cairo_surface_flush(snapResult) - log.Printf("After surface flush\n") data := unsafe.Pointer(C.cairo_image_surface_get_data(snapResult)) //(miha) fix endianes depended byte order, and copy to go slice at the same time. - log.Printf("webkit.GetSnapshotCustom callback before allocating memory\n") data_fixed := make([]byte, stride*h) - log.Printf("webkit.GetSnapshotCustom callback before color reorder\n") C.gowk2_cairo_endian_depended_ARGB32_to_RGBA((*C.uchar)(data), (*C.uchar)(&data_fixed[0]), C.uint(stride*h)) rgba := &image.RGBA{data_fixed, stride, image.Rect(0, 0, w, h)} - log.Printf("webkit.GetSnapshotCustom callback after color reorder\n") // slower but doesn't use Go pointers inside C. See https://github.com/golang/go/issues/8310 !!!!!!! - //log.Printf("webkit.GetSnapshotCustom callback before color reorder\n") //C.gowk2_cairo_endian_depended_ARGB32_to_RGBA((*C.uchar)(data), C.uint(stride*h)) - //log.Printf("webkit.GetSnapshotCustom callback after color reorder\n") //rgba := &image.RGBA{C.GoBytes(data, C.int(stride*h)), stride, image.Rect(0, 0, w, h)} - //log.Printf("webkit.GetSnapshotCustom callback after copying data to GO") resultCallback(rgba, nil) } From ccce6e6a55726658704618b1d0889bd929288ba9 Mon Sep 17 00:00:00 2001 From: Miha Dimec Date: Thu, 8 Sep 2016 10:26:38 +0200 Subject: [PATCH 26/26] fix paths back to sourcegraph --- README.md | 6 +++--- cmd/webkit-eval-js/evaljs.go | 6 +++--- webkit2/example_test.go | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3afd069..4d68201 100644 --- a/README.md +++ b/README.md @@ -55,9 +55,9 @@ package webkit2_test import ( "fmt" - "github.com/visionect/gotk3/glib" - "github.com/visionect/gotk3/gtk" - "github.com/visionect/go-webkit2/webkit2" + "github.com/conformal/gotk3/glib" + "github.com/conformal/gotk3/gtk" + "github.com/sourcegraph/go-webkit2/webkit2" "github.com/sqs/gojs" "runtime" ) diff --git a/cmd/webkit-eval-js/evaljs.go b/cmd/webkit-eval-js/evaljs.go index 1291de3..86cbcc7 100644 --- a/cmd/webkit-eval-js/evaljs.go +++ b/cmd/webkit-eval-js/evaljs.go @@ -9,9 +9,9 @@ import ( "os" "runtime" - "github.com/visionect/gotk3/glib" - "github.com/visionect/gotk3/gtk" - "github.com/visionect/go-webkit2/webkit2" + "github.com/conformal/gotk3/glib" + "github.com/conformal/gotk3/gtk" + "github.com/sourcegraph/go-webkit2/webkit2" "github.com/sqs/gojs" ) diff --git a/webkit2/example_test.go b/webkit2/example_test.go index c60898c..bf0807c 100644 --- a/webkit2/example_test.go +++ b/webkit2/example_test.go @@ -6,7 +6,7 @@ import ( "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/gtk" - "github.com/visionect/go-webkit2/webkit2" + "github.com/sourcegraph/go-webkit2/webkit2" "github.com/sqs/gojs" )