detached 902c404

chore(deps): bump purego-cef to v0.14.1

v0.14.0 pinned the CEF API 15000 contract and fixed the struct ABI
corruption that made BrowserSettings.BackgroundColor land on
chrome_status_bubble (transparent windowless canvas). v0.14.1 restores
the global function bindings dropped by that regeneration
(DictionaryValueCreate, V8ContextGetCurrentContext, all *Create
factories) and fixes global factory ownership so created objects are
adopted without a leaked reference.

This makes the white-canvas fix in this branch effective: the opaque
white BrowserSettings.BackgroundColor now actually reaches libcef.
commit
902c404508da47722a324d2f14b2a4cfc04a2812
author
brice · · 2026-07-21 19:07 UTC
parent
1dc7dd4
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
75 files · +1836 -1983
M go.mod +1 -1
@@ -6,7 +6,7 @@ require (
66 github.com/a-h/templ v0.3.1020
77 github.com/andybalholm/brotli v1.2.2
88 github.com/bnema/purego v0.11.0-bnema.4
9- github.com/bnema/purego-cef v0.13.4
9+ github.com/bnema/purego-cef v0.14.1
1010 github.com/bnema/purego-cef2gtk v0.8.5
1111 github.com/bnema/purego-pipewire v0.1.5
1212 github.com/bnema/purego-sqlite v0.1.4
@@ -6,7 +6,7 @@ require (
6 github.com/a-h/templ v0.3.10206 github.com/a-h/templ v0.3.1020
7 github.com/andybalholm/brotli v1.2.27 github.com/andybalholm/brotli v1.2.2
8 github.com/bnema/purego v0.11.0-bnema.48 github.com/bnema/purego v0.11.0-bnema.4
9- github.com/bnema/purego-cef v0.13.49+ github.com/bnema/purego-cef v0.14.1
10 github.com/bnema/purego-cef2gtk v0.8.510 github.com/bnema/purego-cef2gtk v0.8.5
11 github.com/bnema/purego-pipewire v0.1.511 github.com/bnema/purego-pipewire v0.1.5
12 github.com/bnema/purego-sqlite v0.1.412 github.com/bnema/purego-sqlite v0.1.4
M go.sum +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_browser_gen.go +15 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_command_line_gen.go +15 -2 generated file: collapsed
A vendor/github.com/bnema/purego-cef/cef/cef_component_updater_gen.go +323 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_cookie_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_drag_data_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_image_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_media_router_gen.go +24 -41 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_menu_model_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_parser_gen.go +10 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_preference_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_print_settings_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_process_message_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_request_context_gen.go +16 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_request_gen.go +42 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_resource_bundle_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_response_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_shared_memory_region_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_shared_process_message_builder_gen.go +20 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_stream_gen.go +34 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_task_gen.go +15 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_task_manager_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_thread_gen.go +14 -1 generated file: collapsed
A vendor/github.com/bnema/purego-cef/cef/cef_types_component_gen.go +45 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_types_content_settings_gen.go +72 -79 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_types_gen.go +59 -52 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_urlrequest_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_v8_gen.go +166 -19 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_values_gen.go +62 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_waitable_event_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_xml_reader_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_zip_reader_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/test_cef_api_version_test__gen.go +86 -871 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/test_cef_test_server_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/test_cef_translator_test__gen.go +92 -50
@@ -377,21 +377,12 @@ func (obj *translatorTestImpl) SetChildRefPtrLibraryAndReturnParent(val Translat
377377 return wrapTranslatorTestRefPtrLibrary(unsafe.Pointer(ret))
378378 }
379379
380-func (obj *translatorTestImpl) SetRefPtrLibraryList(val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int32 {
380+func (obj *translatorTestImpl) SetRefPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
381381 if obj == nil || obj.rawPtr == nil {
382382 return 0
383383 }
384384 rawPtr := obj.rawPtr
385- var valRaw []uintptr
386- var valPtr unsafe.Pointer
387- if len(val) > 0 {
388- valRaw = make([]uintptr, len(val))
389- for i, elem := range val {
390- valRaw[i] = uintptr(extractRawPointer(elem))
391- }
392- valPtr = unsafe.Pointer(&valRaw[0])
393- }
394- ret := rawPtr.CallSetRefPtrLibraryList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
385+ ret := rawPtr.CallSetRefPtrLibraryList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
395386 return int32(ret)
396387 }
397388
@@ -471,21 +462,12 @@ func (obj *translatorTestImpl) SetChildRefPtrClientAndReturnParent(val Translato
471462 return wrapTranslatorTestRefPtrClient(unsafe.Pointer(ret))
472463 }
473464
474-func (obj *translatorTestImpl) SetRefPtrClientList(val []TranslatorTestRefPtrClient, val1 int32, val2 int32) int32 {
465+func (obj *translatorTestImpl) SetRefPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
475466 if obj == nil || obj.rawPtr == nil {
476467 return 0
477468 }
478469 rawPtr := obj.rawPtr
479- var valRaw []uintptr
480- var valPtr unsafe.Pointer
481- if len(val) > 0 {
482- valRaw = make([]uintptr, len(val))
483- for i, elem := range val {
484- valRaw[i] = uintptr(extractRawPointer(elem))
485- }
486- valPtr = unsafe.Pointer(&valRaw[0])
487- }
488- ret := rawPtr.CallSetRefPtrClientList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
470+ ret := rawPtr.CallSetRefPtrClientList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
489471 return int32(ret)
490472 }
491473
@@ -628,21 +610,12 @@ func (obj *translatorTestImpl) SetChildRawPtrLibrary(val TranslatorTestScopedLib
628610 return int32(ret)
629611 }
630612
631-func (obj *translatorTestImpl) SetRawPtrLibraryList(val []TranslatorTestScopedLibrary, val1 int32, val2 int32) int32 {
613+func (obj *translatorTestImpl) SetRawPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
632614 if obj == nil || obj.rawPtr == nil {
633615 return 0
634616 }
635617 rawPtr := obj.rawPtr
636- var valRaw []uintptr
637- var valPtr unsafe.Pointer
638- if len(val) > 0 {
639- valRaw = make([]uintptr, len(val))
640- for i, elem := range val {
641- valRaw[i] = uintptr(extractRawPointer(elem))
642- }
643- valPtr = unsafe.Pointer(&valRaw[0])
644- }
645- ret := rawPtr.CallSetRawPtrLibraryList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
618+ ret := rawPtr.CallSetRawPtrLibraryList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
646619 return int32(ret)
647620 }
648621
@@ -664,21 +637,12 @@ func (obj *translatorTestImpl) SetChildRawPtrClient(val TranslatorTestScopedClie
664637 return int32(ret)
665638 }
666639
667-func (obj *translatorTestImpl) SetRawPtrClientList(val []TranslatorTestScopedClient, val1 int32, val2 int32) int32 {
640+func (obj *translatorTestImpl) SetRawPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
668641 if obj == nil || obj.rawPtr == nil {
669642 return 0
670643 }
671644 rawPtr := obj.rawPtr
672- var valRaw []uintptr
673- var valPtr unsafe.Pointer
674- if len(val) > 0 {
675- valRaw = make([]uintptr, len(val))
676- for i, elem := range val {
677- valRaw[i] = uintptr(extractRawPointer(elem))
678- }
679- valPtr = unsafe.Pointer(&valRaw[0])
680- }
681- ret := rawPtr.CallSetRawPtrClientList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
645+ ret := rawPtr.CallSetRawPtrClientList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
682646 return int32(ret)
683647 }
684648
@@ -718,6 +682,19 @@ func wrapTranslatorTest(ptr unsafe.Pointer) TranslatorTest {
718682 return impl
719683 }
720684
685+// takeTranslatorTest adopts a CEF TranslatorTest pointer whose reference is already owned by
686+// the caller (as returned by a global factory function). Unlike wrapTranslatorTest it
687+// does NOT call AddRef, because the C API already transferred one reference to us.
688+func takeTranslatorTest(ptr unsafe.Pointer) TranslatorTest {
689+ if ptr == nil {
690+ return nil
691+ }
692+ r := (*capi.CEFTranslatorTestT)(ptr)
693+ impl := &translatorTestImpl{rawPtr: r}
694+ runtime.SetFinalizer(impl, (*translatorTestImpl).Release)
695+ return impl
696+}
697+
721698 // TranslatorTestRefPtrLibrary Library-side test object for RefPtr.
722699 type TranslatorTestRefPtrLibrary = portin.TranslatorTestRefPtrLibrary
723700
@@ -782,6 +759,19 @@ func wrapTranslatorTestRefPtrLibrary(ptr unsafe.Pointer) TranslatorTestRefPtrLib
782759 return impl
783760 }
784761
762+// takeTranslatorTestRefPtrLibrary adopts a CEF TranslatorTestRefPtrLibrary pointer whose reference is already owned by
763+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibrary it
764+// does NOT call AddRef, because the C API already transferred one reference to us.
765+func takeTranslatorTestRefPtrLibrary(ptr unsafe.Pointer) TranslatorTestRefPtrLibrary {
766+ if ptr == nil {
767+ return nil
768+ }
769+ r := (*capi.CEFTranslatorTestRefPtrLibraryT)(ptr)
770+ impl := &translatorTestRefPtrLibraryImpl{rawPtr: r}
771+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryImpl).Release)
772+ return impl
773+}
774+
785775 // TranslatorTestRefPtrLibraryChild Library-side child test object for RefPtr.
786776 type TranslatorTestRefPtrLibraryChild = portin.TranslatorTestRefPtrLibraryChild
787777
@@ -846,6 +836,19 @@ func wrapTranslatorTestRefPtrLibraryChild(ptr unsafe.Pointer) TranslatorTestRefP
846836 return impl
847837 }
848838
839+// takeTranslatorTestRefPtrLibraryChild adopts a CEF TranslatorTestRefPtrLibraryChild pointer whose reference is already owned by
840+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibraryChild it
841+// does NOT call AddRef, because the C API already transferred one reference to us.
842+func takeTranslatorTestRefPtrLibraryChild(ptr unsafe.Pointer) TranslatorTestRefPtrLibraryChild {
843+ if ptr == nil {
844+ return nil
845+ }
846+ r := (*capi.CEFTranslatorTestRefPtrLibraryChildT)(ptr)
847+ impl := &translatorTestRefPtrLibraryChildImpl{rawPtr: r}
848+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryChildImpl).Release)
849+ return impl
850+}
851+
849852 // TranslatorTestRefPtrLibraryChildChild Another library-side child test object for RefPtr.
850853 type TranslatorTestRefPtrLibraryChildChild = portin.TranslatorTestRefPtrLibraryChildChild
851854
@@ -910,6 +913,19 @@ func wrapTranslatorTestRefPtrLibraryChildChild(ptr unsafe.Pointer) TranslatorTes
910913 return impl
911914 }
912915
916+// takeTranslatorTestRefPtrLibraryChildChild adopts a CEF TranslatorTestRefPtrLibraryChildChild pointer whose reference is already owned by
917+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibraryChildChild it
918+// does NOT call AddRef, because the C API already transferred one reference to us.
919+func takeTranslatorTestRefPtrLibraryChildChild(ptr unsafe.Pointer) TranslatorTestRefPtrLibraryChildChild {
920+ if ptr == nil {
921+ return nil
922+ }
923+ r := (*capi.CEFTranslatorTestRefPtrLibraryChildChildT)(ptr)
924+ impl := &translatorTestRefPtrLibraryChildChildImpl{rawPtr: r}
925+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryChildChildImpl).Release)
926+ return impl
927+}
928+
913929 // TranslatorTestRefPtrClient Client-side test object for RefPtr.
914930 type TranslatorTestRefPtrClient = portin.TranslatorTestRefPtrClient
915931
@@ -1212,6 +1228,19 @@ func wrapTranslatorTestScopedLibraryChild(ptr unsafe.Pointer) TranslatorTestScop
12121228 return impl
12131229 }
12141230
1231+// takeTranslatorTestScopedLibraryChild adopts a CEF TranslatorTestScopedLibraryChild pointer whose reference is already owned by
1232+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestScopedLibraryChild it
1233+// does NOT call AddRef, because the C API already transferred one reference to us.
1234+func takeTranslatorTestScopedLibraryChild(ptr unsafe.Pointer) TranslatorTestScopedLibraryChild {
1235+ if ptr == nil {
1236+ return nil
1237+ }
1238+ r := (*capi.CEFTranslatorTestScopedLibraryChildT)(ptr)
1239+ impl := &translatorTestScopedLibraryChildImpl{rawPtr: r}
1240+ runtime.SetFinalizer(impl, (*translatorTestScopedLibraryChildImpl).Release)
1241+ return impl
1242+}
1243+
12151244 // TranslatorTestScopedLibraryChildChild Another library-side child test object for OwnPtr/RawPtr.
12161245 type TranslatorTestScopedLibraryChildChild = portin.TranslatorTestScopedLibraryChildChild
12171246
@@ -1276,6 +1305,19 @@ func wrapTranslatorTestScopedLibraryChildChild(ptr unsafe.Pointer) TranslatorTes
12761305 return impl
12771306 }
12781307
1308+// takeTranslatorTestScopedLibraryChildChild adopts a CEF TranslatorTestScopedLibraryChildChild pointer whose reference is already owned by
1309+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestScopedLibraryChildChild it
1310+// does NOT call AddRef, because the C API already transferred one reference to us.
1311+func takeTranslatorTestScopedLibraryChildChild(ptr unsafe.Pointer) TranslatorTestScopedLibraryChildChild {
1312+ if ptr == nil {
1313+ return nil
1314+ }
1315+ r := (*capi.CEFTranslatorTestScopedLibraryChildChildT)(ptr)
1316+ impl := &translatorTestScopedLibraryChildChildImpl{rawPtr: r}
1317+ runtime.SetFinalizer(impl, (*translatorTestScopedLibraryChildChildImpl).Release)
1318+ return impl
1319+}
1320+
12791321 // TranslatorTestScopedClient Client-side test object for OwnPtr/RawPtr.
12801322 type TranslatorTestScopedClient = portin.TranslatorTestScopedClient
12811323
@@ -1452,25 +1494,25 @@ func wrapTranslatorTestScopedClientChild(ptr unsafe.Pointer) TranslatorTestScope
14521494 // TranslatorTestCreate Create the test object.
14531495 func TranslatorTestCreate() TranslatorTest {
14541496 ret := capi.CEFTranslatorTestCreate()
1455- return wrapTranslatorTest(ret)
1497+ return takeTranslatorTest(ret)
14561498 }
14571499
14581500 // TranslatorTestRefPtrLibraryCreate Create the test object.
14591501 func TranslatorTestRefPtrLibraryCreate(value int32) TranslatorTestRefPtrLibrary {
14601502 ret := capi.CEFTranslatorTestRefPtrLibraryCreate(value)
1461- return wrapTranslatorTestRefPtrLibrary(ret)
1503+ return takeTranslatorTestRefPtrLibrary(ret)
14621504 }
14631505
14641506 // TranslatorTestRefPtrLibraryChildCreate Create the test object.
14651507 func TranslatorTestRefPtrLibraryChildCreate(value int32, otherValue int32) TranslatorTestRefPtrLibraryChild {
14661508 ret := capi.CEFTranslatorTestRefPtrLibraryChildCreate(value, otherValue)
1467- return wrapTranslatorTestRefPtrLibraryChild(ret)
1509+ return takeTranslatorTestRefPtrLibraryChild(ret)
14681510 }
14691511
14701512 // TranslatorTestRefPtrLibraryChildChildCreate Create the test object.
14711513 func TranslatorTestRefPtrLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestRefPtrLibraryChildChild {
14721514 ret := capi.CEFTranslatorTestRefPtrLibraryChildChildCreate(value, otherValue, otherOtherValue)
1473- return wrapTranslatorTestRefPtrLibraryChildChild(ret)
1515+ return takeTranslatorTestRefPtrLibraryChildChild(ret)
14741516 }
14751517
14761518 // TranslatorTestScopedLibraryCreate Create the test object.
@@ -1482,11 +1524,11 @@ func TranslatorTestScopedLibraryCreate(value int32) TranslatorTestScopedLibrary
14821524 // TranslatorTestScopedLibraryChildCreate Create the test object.
14831525 func TranslatorTestScopedLibraryChildCreate(value int32, otherValue int32) TranslatorTestScopedLibraryChild {
14841526 ret := capi.CEFTranslatorTestScopedLibraryChildCreate(value, otherValue)
1485- return wrapTranslatorTestScopedLibraryChild(ret)
1527+ return takeTranslatorTestScopedLibraryChild(ret)
14861528 }
14871529
14881530 // TranslatorTestScopedLibraryChildChildCreate Create the test object.
14891531 func TranslatorTestScopedLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestScopedLibraryChildChild {
14901532 ret := capi.CEFTranslatorTestScopedLibraryChildChildCreate(value, otherValue, otherOtherValue)
1491- return wrapTranslatorTestScopedLibraryChildChild(ret)
1533+ return takeTranslatorTestScopedLibraryChildChild(ret)
14921534 }
@@ -377,21 +377,12 @@ func (obj *translatorTestImpl) SetChildRefPtrLibraryAndReturnParent(val Translat
377 return wrapTranslatorTestRefPtrLibrary(unsafe.Pointer(ret))377 return wrapTranslatorTestRefPtrLibrary(unsafe.Pointer(ret))
378 }378 }
379 379
380-func (obj *translatorTestImpl) SetRefPtrLibraryList(val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int32 {380+func (obj *translatorTestImpl) SetRefPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
381 if obj == nil || obj.rawPtr == nil {381 if obj == nil || obj.rawPtr == nil {
382 return 0382 return 0
383 }383 }
384 rawPtr := obj.rawPtr384 rawPtr := obj.rawPtr
385- var valRaw []uintptr385+ ret := rawPtr.CallSetRefPtrLibraryList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
386- var valPtr unsafe.Pointer
387- if len(val) > 0 {
388- valRaw = make([]uintptr, len(val))
389- for i, elem := range val {
390- valRaw[i] = uintptr(extractRawPointer(elem))
391- }
392- valPtr = unsafe.Pointer(&valRaw[0])
393- }
394- ret := rawPtr.CallSetRefPtrLibraryList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
395 return int32(ret)386 return int32(ret)
396 }387 }
397 388
@@ -471,21 +462,12 @@ func (obj *translatorTestImpl) SetChildRefPtrClientAndReturnParent(val Translato
471 return wrapTranslatorTestRefPtrClient(unsafe.Pointer(ret))462 return wrapTranslatorTestRefPtrClient(unsafe.Pointer(ret))
472 }463 }
473 464
474-func (obj *translatorTestImpl) SetRefPtrClientList(val []TranslatorTestRefPtrClient, val1 int32, val2 int32) int32 {465+func (obj *translatorTestImpl) SetRefPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
475 if obj == nil || obj.rawPtr == nil {466 if obj == nil || obj.rawPtr == nil {
476 return 0467 return 0
477 }468 }
478 rawPtr := obj.rawPtr469 rawPtr := obj.rawPtr
479- var valRaw []uintptr470+ ret := rawPtr.CallSetRefPtrClientList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
480- var valPtr unsafe.Pointer
481- if len(val) > 0 {
482- valRaw = make([]uintptr, len(val))
483- for i, elem := range val {
484- valRaw[i] = uintptr(extractRawPointer(elem))
485- }
486- valPtr = unsafe.Pointer(&valRaw[0])
487- }
488- ret := rawPtr.CallSetRefPtrClientList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
489 return int32(ret)471 return int32(ret)
490 }472 }
491 473
@@ -628,21 +610,12 @@ func (obj *translatorTestImpl) SetChildRawPtrLibrary(val TranslatorTestScopedLib
628 return int32(ret)610 return int32(ret)
629 }611 }
630 612
631-func (obj *translatorTestImpl) SetRawPtrLibraryList(val []TranslatorTestScopedLibrary, val1 int32, val2 int32) int32 {613+func (obj *translatorTestImpl) SetRawPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
632 if obj == nil || obj.rawPtr == nil {614 if obj == nil || obj.rawPtr == nil {
633 return 0615 return 0
634 }616 }
635 rawPtr := obj.rawPtr617 rawPtr := obj.rawPtr
636- var valRaw []uintptr618+ ret := rawPtr.CallSetRawPtrLibraryList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
637- var valPtr unsafe.Pointer
638- if len(val) > 0 {
639- valRaw = make([]uintptr, len(val))
640- for i, elem := range val {
641- valRaw[i] = uintptr(extractRawPointer(elem))
642- }
643- valPtr = unsafe.Pointer(&valRaw[0])
644- }
645- ret := rawPtr.CallSetRawPtrLibraryList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
646 return int32(ret)619 return int32(ret)
647 }620 }
648 621
@@ -664,21 +637,12 @@ func (obj *translatorTestImpl) SetChildRawPtrClient(val TranslatorTestScopedClie
664 return int32(ret)637 return int32(ret)
665 }638 }
666 639
667-func (obj *translatorTestImpl) SetRawPtrClientList(val []TranslatorTestScopedClient, val1 int32, val2 int32) int32 {640+func (obj *translatorTestImpl) SetRawPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32 {
668 if obj == nil || obj.rawPtr == nil {641 if obj == nil || obj.rawPtr == nil {
669 return 0642 return 0
670 }643 }
671 rawPtr := obj.rawPtr644 rawPtr := obj.rawPtr
672- var valRaw []uintptr645+ ret := rawPtr.CallSetRawPtrClientList(uintptr(valcount), uintptr(val), uintptr(val1), uintptr(val2))
673- var valPtr unsafe.Pointer
674- if len(val) > 0 {
675- valRaw = make([]uintptr, len(val))
676- for i, elem := range val {
677- valRaw[i] = uintptr(extractRawPointer(elem))
678- }
679- valPtr = unsafe.Pointer(&valRaw[0])
680- }
681- ret := rawPtr.CallSetRawPtrClientList(uintptr(len(val)), uintptr(valPtr), uintptr(val1), uintptr(val2))
682 return int32(ret)646 return int32(ret)
683 }647 }
684 648
@@ -718,6 +682,19 @@ func wrapTranslatorTest(ptr unsafe.Pointer) TranslatorTest {
718 return impl682 return impl
719 }683 }
720 684
685+// takeTranslatorTest adopts a CEF TranslatorTest pointer whose reference is already owned by
686+// the caller (as returned by a global factory function). Unlike wrapTranslatorTest it
687+// does NOT call AddRef, because the C API already transferred one reference to us.
688+func takeTranslatorTest(ptr unsafe.Pointer) TranslatorTest {
689+ if ptr == nil {
690+ return nil
691+ }
692+ r := (*capi.CEFTranslatorTestT)(ptr)
693+ impl := &translatorTestImpl{rawPtr: r}
694+ runtime.SetFinalizer(impl, (*translatorTestImpl).Release)
695+ return impl
696+}
697+
721 // TranslatorTestRefPtrLibrary Library-side test object for RefPtr.698 // TranslatorTestRefPtrLibrary Library-side test object for RefPtr.
722 type TranslatorTestRefPtrLibrary = portin.TranslatorTestRefPtrLibrary699 type TranslatorTestRefPtrLibrary = portin.TranslatorTestRefPtrLibrary
723 700
@@ -782,6 +759,19 @@ func wrapTranslatorTestRefPtrLibrary(ptr unsafe.Pointer) TranslatorTestRefPtrLib
782 return impl759 return impl
783 }760 }
784 761
762+// takeTranslatorTestRefPtrLibrary adopts a CEF TranslatorTestRefPtrLibrary pointer whose reference is already owned by
763+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibrary it
764+// does NOT call AddRef, because the C API already transferred one reference to us.
765+func takeTranslatorTestRefPtrLibrary(ptr unsafe.Pointer) TranslatorTestRefPtrLibrary {
766+ if ptr == nil {
767+ return nil
768+ }
769+ r := (*capi.CEFTranslatorTestRefPtrLibraryT)(ptr)
770+ impl := &translatorTestRefPtrLibraryImpl{rawPtr: r}
771+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryImpl).Release)
772+ return impl
773+}
774+
785 // TranslatorTestRefPtrLibraryChild Library-side child test object for RefPtr.775 // TranslatorTestRefPtrLibraryChild Library-side child test object for RefPtr.
786 type TranslatorTestRefPtrLibraryChild = portin.TranslatorTestRefPtrLibraryChild776 type TranslatorTestRefPtrLibraryChild = portin.TranslatorTestRefPtrLibraryChild
787 777
@@ -846,6 +836,19 @@ func wrapTranslatorTestRefPtrLibraryChild(ptr unsafe.Pointer) TranslatorTestRefP
846 return impl836 return impl
847 }837 }
848 838
839+// takeTranslatorTestRefPtrLibraryChild adopts a CEF TranslatorTestRefPtrLibraryChild pointer whose reference is already owned by
840+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibraryChild it
841+// does NOT call AddRef, because the C API already transferred one reference to us.
842+func takeTranslatorTestRefPtrLibraryChild(ptr unsafe.Pointer) TranslatorTestRefPtrLibraryChild {
843+ if ptr == nil {
844+ return nil
845+ }
846+ r := (*capi.CEFTranslatorTestRefPtrLibraryChildT)(ptr)
847+ impl := &translatorTestRefPtrLibraryChildImpl{rawPtr: r}
848+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryChildImpl).Release)
849+ return impl
850+}
851+
849 // TranslatorTestRefPtrLibraryChildChild Another library-side child test object for RefPtr.852 // TranslatorTestRefPtrLibraryChildChild Another library-side child test object for RefPtr.
850 type TranslatorTestRefPtrLibraryChildChild = portin.TranslatorTestRefPtrLibraryChildChild853 type TranslatorTestRefPtrLibraryChildChild = portin.TranslatorTestRefPtrLibraryChildChild
851 854
@@ -910,6 +913,19 @@ func wrapTranslatorTestRefPtrLibraryChildChild(ptr unsafe.Pointer) TranslatorTes
910 return impl913 return impl
911 }914 }
912 915
916+// takeTranslatorTestRefPtrLibraryChildChild adopts a CEF TranslatorTestRefPtrLibraryChildChild pointer whose reference is already owned by
917+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestRefPtrLibraryChildChild it
918+// does NOT call AddRef, because the C API already transferred one reference to us.
919+func takeTranslatorTestRefPtrLibraryChildChild(ptr unsafe.Pointer) TranslatorTestRefPtrLibraryChildChild {
920+ if ptr == nil {
921+ return nil
922+ }
923+ r := (*capi.CEFTranslatorTestRefPtrLibraryChildChildT)(ptr)
924+ impl := &translatorTestRefPtrLibraryChildChildImpl{rawPtr: r}
925+ runtime.SetFinalizer(impl, (*translatorTestRefPtrLibraryChildChildImpl).Release)
926+ return impl
927+}
928+
913 // TranslatorTestRefPtrClient Client-side test object for RefPtr.929 // TranslatorTestRefPtrClient Client-side test object for RefPtr.
914 type TranslatorTestRefPtrClient = portin.TranslatorTestRefPtrClient930 type TranslatorTestRefPtrClient = portin.TranslatorTestRefPtrClient
915 931
@@ -1212,6 +1228,19 @@ func wrapTranslatorTestScopedLibraryChild(ptr unsafe.Pointer) TranslatorTestScop
1212 return impl1228 return impl
1213 }1229 }
1214 1230
1231+// takeTranslatorTestScopedLibraryChild adopts a CEF TranslatorTestScopedLibraryChild pointer whose reference is already owned by
1232+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestScopedLibraryChild it
1233+// does NOT call AddRef, because the C API already transferred one reference to us.
1234+func takeTranslatorTestScopedLibraryChild(ptr unsafe.Pointer) TranslatorTestScopedLibraryChild {
1235+ if ptr == nil {
1236+ return nil
1237+ }
1238+ r := (*capi.CEFTranslatorTestScopedLibraryChildT)(ptr)
1239+ impl := &translatorTestScopedLibraryChildImpl{rawPtr: r}
1240+ runtime.SetFinalizer(impl, (*translatorTestScopedLibraryChildImpl).Release)
1241+ return impl
1242+}
1243+
1215 // TranslatorTestScopedLibraryChildChild Another library-side child test object for OwnPtr/RawPtr.1244 // TranslatorTestScopedLibraryChildChild Another library-side child test object for OwnPtr/RawPtr.
1216 type TranslatorTestScopedLibraryChildChild = portin.TranslatorTestScopedLibraryChildChild1245 type TranslatorTestScopedLibraryChildChild = portin.TranslatorTestScopedLibraryChildChild
1217 1246
@@ -1276,6 +1305,19 @@ func wrapTranslatorTestScopedLibraryChildChild(ptr unsafe.Pointer) TranslatorTes
1276 return impl1305 return impl
1277 }1306 }
1278 1307
1308+// takeTranslatorTestScopedLibraryChildChild adopts a CEF TranslatorTestScopedLibraryChildChild pointer whose reference is already owned by
1309+// the caller (as returned by a global factory function). Unlike wrapTranslatorTestScopedLibraryChildChild it
1310+// does NOT call AddRef, because the C API already transferred one reference to us.
1311+func takeTranslatorTestScopedLibraryChildChild(ptr unsafe.Pointer) TranslatorTestScopedLibraryChildChild {
1312+ if ptr == nil {
1313+ return nil
1314+ }
1315+ r := (*capi.CEFTranslatorTestScopedLibraryChildChildT)(ptr)
1316+ impl := &translatorTestScopedLibraryChildChildImpl{rawPtr: r}
1317+ runtime.SetFinalizer(impl, (*translatorTestScopedLibraryChildChildImpl).Release)
1318+ return impl
1319+}
1320+
1279 // TranslatorTestScopedClient Client-side test object for OwnPtr/RawPtr.1321 // TranslatorTestScopedClient Client-side test object for OwnPtr/RawPtr.
1280 type TranslatorTestScopedClient = portin.TranslatorTestScopedClient1322 type TranslatorTestScopedClient = portin.TranslatorTestScopedClient
1281 1323
@@ -1452,25 +1494,25 @@ func wrapTranslatorTestScopedClientChild(ptr unsafe.Pointer) TranslatorTestScope
1452 // TranslatorTestCreate Create the test object.1494 // TranslatorTestCreate Create the test object.
1453 func TranslatorTestCreate() TranslatorTest {1495 func TranslatorTestCreate() TranslatorTest {
1454 ret := capi.CEFTranslatorTestCreate()1496 ret := capi.CEFTranslatorTestCreate()
1455- return wrapTranslatorTest(ret)1497+ return takeTranslatorTest(ret)
1456 }1498 }
1457 1499
1458 // TranslatorTestRefPtrLibraryCreate Create the test object.1500 // TranslatorTestRefPtrLibraryCreate Create the test object.
1459 func TranslatorTestRefPtrLibraryCreate(value int32) TranslatorTestRefPtrLibrary {1501 func TranslatorTestRefPtrLibraryCreate(value int32) TranslatorTestRefPtrLibrary {
1460 ret := capi.CEFTranslatorTestRefPtrLibraryCreate(value)1502 ret := capi.CEFTranslatorTestRefPtrLibraryCreate(value)
1461- return wrapTranslatorTestRefPtrLibrary(ret)1503+ return takeTranslatorTestRefPtrLibrary(ret)
1462 }1504 }
1463 1505
1464 // TranslatorTestRefPtrLibraryChildCreate Create the test object.1506 // TranslatorTestRefPtrLibraryChildCreate Create the test object.
1465 func TranslatorTestRefPtrLibraryChildCreate(value int32, otherValue int32) TranslatorTestRefPtrLibraryChild {1507 func TranslatorTestRefPtrLibraryChildCreate(value int32, otherValue int32) TranslatorTestRefPtrLibraryChild {
1466 ret := capi.CEFTranslatorTestRefPtrLibraryChildCreate(value, otherValue)1508 ret := capi.CEFTranslatorTestRefPtrLibraryChildCreate(value, otherValue)
1467- return wrapTranslatorTestRefPtrLibraryChild(ret)1509+ return takeTranslatorTestRefPtrLibraryChild(ret)
1468 }1510 }
1469 1511
1470 // TranslatorTestRefPtrLibraryChildChildCreate Create the test object.1512 // TranslatorTestRefPtrLibraryChildChildCreate Create the test object.
1471 func TranslatorTestRefPtrLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestRefPtrLibraryChildChild {1513 func TranslatorTestRefPtrLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestRefPtrLibraryChildChild {
1472 ret := capi.CEFTranslatorTestRefPtrLibraryChildChildCreate(value, otherValue, otherOtherValue)1514 ret := capi.CEFTranslatorTestRefPtrLibraryChildChildCreate(value, otherValue, otherOtherValue)
1473- return wrapTranslatorTestRefPtrLibraryChildChild(ret)1515+ return takeTranslatorTestRefPtrLibraryChildChild(ret)
1474 }1516 }
1475 1517
1476 // TranslatorTestScopedLibraryCreate Create the test object.1518 // TranslatorTestScopedLibraryCreate Create the test object.
@@ -1482,11 +1524,11 @@ func TranslatorTestScopedLibraryCreate(value int32) TranslatorTestScopedLibrary
1482 // TranslatorTestScopedLibraryChildCreate Create the test object.1524 // TranslatorTestScopedLibraryChildCreate Create the test object.
1483 func TranslatorTestScopedLibraryChildCreate(value int32, otherValue int32) TranslatorTestScopedLibraryChild {1525 func TranslatorTestScopedLibraryChildCreate(value int32, otherValue int32) TranslatorTestScopedLibraryChild {
1484 ret := capi.CEFTranslatorTestScopedLibraryChildCreate(value, otherValue)1526 ret := capi.CEFTranslatorTestScopedLibraryChildCreate(value, otherValue)
1485- return wrapTranslatorTestScopedLibraryChild(ret)1527+ return takeTranslatorTestScopedLibraryChild(ret)
1486 }1528 }
1487 1529
1488 // TranslatorTestScopedLibraryChildChildCreate Create the test object.1530 // TranslatorTestScopedLibraryChildChildCreate Create the test object.
1489 func TranslatorTestScopedLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestScopedLibraryChildChild {1531 func TranslatorTestScopedLibraryChildChildCreate(value int32, otherValue int32, otherOtherValue int32) TranslatorTestScopedLibraryChildChild {
1490 ret := capi.CEFTranslatorTestScopedLibraryChildChildCreate(value, otherValue, otherOtherValue)1532 ret := capi.CEFTranslatorTestScopedLibraryChildChildCreate(value, otherValue, otherOtherValue)
1491- return wrapTranslatorTestScopedLibraryChildChild(ret)1533+ return takeTranslatorTestScopedLibraryChildChild(ret)
1492 }1534 }
A vendor/github.com/bnema/purego-cef/cef/v8_helpers.go +19 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_browser_view_gen.go +15 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_display_gen.go +17 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_label_button_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_menu_button_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_panel_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_scroll_view_gen.go +14 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_textfield_gen.go +14 -60 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_window_gen.go +14 -1 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/capi/cef_component_updater_gen.go +130 -0 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/capi/cef_types_component_gen.go +11 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/capi/cef_types_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/capi/cef_v8_gen.go +44 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/capi/register_gen.go +2 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/capi/test_cef_api_version_test__gen.go +0 -459 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/capi/views_cef_textfield_gen.go +33 -107 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/cefapi/contract.go +11 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/loader/loader.go +23 -18 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/ports/in/cef_component_updater_gen.go +24 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/cef_media_router_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/cef_shared_memory_region_gen.go +1 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/cef_shared_process_message_builder_gen.go +1 -5 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/ports/in/cef_types_component_gen.go +9 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/cef_v8_gen.go +8 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/cef_values_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/test_cef_api_version_test__gen.go +8 -63 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/test_cef_translator_test__gen.go +8 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/in/views_cef_textfield_gen.go +0 -7 generated file: collapsed
A vendor/github.com/bnema/purego-cef/internal/ports/out/cef_component_updater_gen.go +29 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_parser_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_preference_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_shared_process_message_builder_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_stream_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_v8_gen.go +11 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/cef_values_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/test_cef_api_version_test__gen.go +4 -51 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/test_cef_translator_test__gen.go +4 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/internal/ports/out/views_cef_textfield_gen.go +0 -7 generated file: collapsed
M vendor/modules.txt +2 -1 generated file: collapsed

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close