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 generated file: collapsed
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
@@ -2,6 +2,10 @@
22
33 package in
44
5+import (
6+ "unsafe"
7+)
8+
59 // TranslatorTest defines the inbound port interface.
610 type TranslatorTest interface {
711 GetVoid()
@@ -39,14 +43,14 @@ type TranslatorTest interface {
3943 SetRefPtrLibraryAndReturn(val TranslatorTestRefPtrLibrary) TranslatorTestRefPtrLibrary
4044 SetChildRefPtrLibrary(val TranslatorTestRefPtrLibraryChild) int32
4145 SetChildRefPtrLibraryAndReturnParent(val TranslatorTestRefPtrLibraryChild) TranslatorTestRefPtrLibrary
42- SetRefPtrLibraryList(val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int32
46+ SetRefPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
4347 GetRefPtrLibraryListByRef(valcount *int, val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int32
4448 GetRefPtrLibraryListSize() int
4549 SetRefPtrClient(val TranslatorTestRefPtrClient) int32
4650 SetRefPtrClientAndReturn(val TranslatorTestRefPtrClient) TranslatorTestRefPtrClient
4751 SetChildRefPtrClient(val TranslatorTestRefPtrClientChild) int32
4852 SetChildRefPtrClientAndReturnParent(val TranslatorTestRefPtrClientChild) TranslatorTestRefPtrClient
49- SetRefPtrClientList(val []TranslatorTestRefPtrClient, val1 int32, val2 int32) int32
53+ SetRefPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
5054 GetRefPtrClientListByRef(valcount *int, val []TranslatorTestRefPtrClient, val1 TranslatorTestRefPtrClient, val2 TranslatorTestRefPtrClient) int32
5155 GetRefPtrClientListSize() int
5256 GetOwnPtrLibrary(val int32) TranslatorTestScopedLibrary
@@ -60,10 +64,10 @@ type TranslatorTest interface {
6064 SetChildOwnPtrClientAndReturnParent(val TranslatorTestScopedClientChild) TranslatorTestScopedClient
6165 SetRawPtrLibrary(val TranslatorTestScopedLibrary) int32
6266 SetChildRawPtrLibrary(val TranslatorTestScopedLibraryChild) int32
63- SetRawPtrLibraryList(val []TranslatorTestScopedLibrary, val1 int32, val2 int32) int32
67+ SetRawPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
6468 SetRawPtrClient(val TranslatorTestScopedClient) int32
6569 SetChildRawPtrClient(val TranslatorTestScopedClientChild) int32
66- SetRawPtrClientList(val []TranslatorTestScopedClient, val1 int32, val2 int32) int32
70+ SetRawPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
6771 }
6872
6973 // TranslatorTestRefPtrLibrary defines the inbound port interface.
@@ -2,6 +2,10 @@
2 2
3 package in3 package in
4 4
5+import (
6+ "unsafe"
7+)
8+
5 // TranslatorTest defines the inbound port interface.9 // TranslatorTest defines the inbound port interface.
6 type TranslatorTest interface {10 type TranslatorTest interface {
7 GetVoid()11 GetVoid()
@@ -39,14 +43,14 @@ type TranslatorTest interface {
39 SetRefPtrLibraryAndReturn(val TranslatorTestRefPtrLibrary) TranslatorTestRefPtrLibrary43 SetRefPtrLibraryAndReturn(val TranslatorTestRefPtrLibrary) TranslatorTestRefPtrLibrary
40 SetChildRefPtrLibrary(val TranslatorTestRefPtrLibraryChild) int3244 SetChildRefPtrLibrary(val TranslatorTestRefPtrLibraryChild) int32
41 SetChildRefPtrLibraryAndReturnParent(val TranslatorTestRefPtrLibraryChild) TranslatorTestRefPtrLibrary45 SetChildRefPtrLibraryAndReturnParent(val TranslatorTestRefPtrLibraryChild) TranslatorTestRefPtrLibrary
42- SetRefPtrLibraryList(val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int3246+ SetRefPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
43 GetRefPtrLibraryListByRef(valcount *int, val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int3247 GetRefPtrLibraryListByRef(valcount *int, val []TranslatorTestRefPtrLibrary, val1 int32, val2 int32) int32
44 GetRefPtrLibraryListSize() int48 GetRefPtrLibraryListSize() int
45 SetRefPtrClient(val TranslatorTestRefPtrClient) int3249 SetRefPtrClient(val TranslatorTestRefPtrClient) int32
46 SetRefPtrClientAndReturn(val TranslatorTestRefPtrClient) TranslatorTestRefPtrClient50 SetRefPtrClientAndReturn(val TranslatorTestRefPtrClient) TranslatorTestRefPtrClient
47 SetChildRefPtrClient(val TranslatorTestRefPtrClientChild) int3251 SetChildRefPtrClient(val TranslatorTestRefPtrClientChild) int32
48 SetChildRefPtrClientAndReturnParent(val TranslatorTestRefPtrClientChild) TranslatorTestRefPtrClient52 SetChildRefPtrClientAndReturnParent(val TranslatorTestRefPtrClientChild) TranslatorTestRefPtrClient
49- SetRefPtrClientList(val []TranslatorTestRefPtrClient, val1 int32, val2 int32) int3253+ SetRefPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
50 GetRefPtrClientListByRef(valcount *int, val []TranslatorTestRefPtrClient, val1 TranslatorTestRefPtrClient, val2 TranslatorTestRefPtrClient) int3254 GetRefPtrClientListByRef(valcount *int, val []TranslatorTestRefPtrClient, val1 TranslatorTestRefPtrClient, val2 TranslatorTestRefPtrClient) int32
51 GetRefPtrClientListSize() int55 GetRefPtrClientListSize() int
52 GetOwnPtrLibrary(val int32) TranslatorTestScopedLibrary56 GetOwnPtrLibrary(val int32) TranslatorTestScopedLibrary
@@ -60,10 +64,10 @@ type TranslatorTest interface {
60 SetChildOwnPtrClientAndReturnParent(val TranslatorTestScopedClientChild) TranslatorTestScopedClient64 SetChildOwnPtrClientAndReturnParent(val TranslatorTestScopedClientChild) TranslatorTestScopedClient
61 SetRawPtrLibrary(val TranslatorTestScopedLibrary) int3265 SetRawPtrLibrary(val TranslatorTestScopedLibrary) int32
62 SetChildRawPtrLibrary(val TranslatorTestScopedLibraryChild) int3266 SetChildRawPtrLibrary(val TranslatorTestScopedLibraryChild) int32
63- SetRawPtrLibraryList(val []TranslatorTestScopedLibrary, val1 int32, val2 int32) int3267+ SetRawPtrLibraryList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
64 SetRawPtrClient(val TranslatorTestScopedClient) int3268 SetRawPtrClient(val TranslatorTestScopedClient) int32
65 SetChildRawPtrClient(val TranslatorTestScopedClientChild) int3269 SetChildRawPtrClient(val TranslatorTestScopedClientChild) int32
66- SetRawPtrClientList(val []TranslatorTestScopedClient, val1 int32, val2 int32) int3270+ SetRawPtrClientList(valcount int, val unsafe.Pointer, val1 int32, val2 int32) int32
67 }71 }
68 72
69 // TranslatorTestRefPtrLibrary defines the inbound port interface.73 // TranslatorTestRefPtrLibrary defines the inbound port interface.
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