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 Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
75 files · +1836 -1983
M go.mod +1 -1
| @@ -6,7 +6,7 @@ require ( | |||
| 6 | 6 | github.com/a-h/templ v0.3.1020 | |
| 7 | 7 | github.com/andybalholm/brotli v1.2.2 | |
| 8 | 8 | 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 | |
| 10 | 10 | github.com/bnema/purego-cef2gtk v0.8.5 | |
| 11 | 11 | github.com/bnema/purego-pipewire v0.1.5 | |
| 12 | 12 | github.com/bnema/purego-sqlite v0.1.4 | |
| @@ -6,7 +6,7 @@ require ( | |||||
| 6 | github.com/a-h/templ v0.3.1020 | 6 | github.com/a-h/templ v0.3.1020 | ||
| 7 | github.com/andybalholm/brotli v1.2.2 | 7 | github.com/andybalholm/brotli v1.2.2 | ||
| 8 | github.com/bnema/purego v0.11.0-bnema.4 | 8 | 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 |
| 10 | github.com/bnema/purego-cef2gtk v0.8.5 | 10 | github.com/bnema/purego-cef2gtk v0.8.5 | ||
| 11 | github.com/bnema/purego-pipewire v0.1.5 | 11 | github.com/bnema/purego-pipewire v0.1.5 | ||
| 12 | github.com/bnema/purego-sqlite v0.1.4 | 12 | 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
| @@ -314,6 +314,44 @@ func (v *CEFV8ArrayBufferReleaseCallbackT) CallReleaseBuffer(args ...uintptr) ui | |||
| 314 | 314 | return r1 | |
| 315 | 315 | } | |
| 316 | 316 | ||
| 317 | + | type CEFV8BackingStoreT struct { | |
| 318 | + | _ structs.HostLayout | |
| 319 | + | Base CEFBaseRefCountedT | |
| 320 | + | Data uintptr | |
| 321 | + | ByteLength uintptr | |
| 322 | + | IsValid uintptr | |
| 323 | + | } | |
| 324 | + | ||
| 325 | + | func (v *CEFV8BackingStoreT) OverrideData(fn uintptr) { v.Data = fn } | |
| 326 | + | ||
| 327 | + | func (v *CEFV8BackingStoreT) CallData(args ...uintptr) uintptr { | |
| 328 | + | if v.Data == 0 { | |
| 329 | + | return 0 | |
| 330 | + | } | |
| 331 | + | r1, _, _ := purego.SyscallN(v.Data, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |
| 332 | + | return r1 | |
| 333 | + | } | |
| 334 | + | ||
| 335 | + | func (v *CEFV8BackingStoreT) OverrideByteLength(fn uintptr) { v.ByteLength = fn } | |
| 336 | + | ||
| 337 | + | func (v *CEFV8BackingStoreT) CallByteLength(args ...uintptr) uintptr { | |
| 338 | + | if v.ByteLength == 0 { | |
| 339 | + | return 0 | |
| 340 | + | } | |
| 341 | + | r1, _, _ := purego.SyscallN(v.ByteLength, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |
| 342 | + | return r1 | |
| 343 | + | } | |
| 344 | + | ||
| 345 | + | func (v *CEFV8BackingStoreT) OverrideIsValid(fn uintptr) { v.IsValid = fn } | |
| 346 | + | ||
| 347 | + | func (v *CEFV8BackingStoreT) CallIsValid(args ...uintptr) uintptr { | |
| 348 | + | if v.IsValid == 0 { | |
| 349 | + | return 0 | |
| 350 | + | } | |
| 351 | + | r1, _, _ := purego.SyscallN(v.IsValid, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |
| 352 | + | return r1 | |
| 353 | + | } | |
| 354 | + | ||
| 317 | 355 | type CEFV8ValueT struct { | |
| 318 | 356 | _ structs.HostLayout | |
| 319 | 357 | Base CEFBaseRefCountedT | |
| @@ -1038,6 +1076,8 @@ var CEFV8ContextGetEnteredContext func() unsafe.Pointer | |||
| 1038 | 1076 | ||
| 1039 | 1077 | var CEFV8ContextInContext func() int32 | |
| 1040 | 1078 | ||
| 1079 | + | var CEFV8BackingStoreCreate func(ByteLength uintptr) unsafe.Pointer | |
| 1080 | + | ||
| 1041 | 1081 | var CEFV8ValueCreateUndefined func() unsafe.Pointer | |
| 1042 | 1082 | ||
| 1043 | 1083 | var CEFV8ValueCreateNull func() unsafe.Pointer | |
| @@ -1062,6 +1102,8 @@ var CEFV8ValueCreateArrayBuffer func(Buffer unsafe.Pointer, Length uintptr, Rele | |||
| 1062 | 1102 | ||
| 1063 | 1103 | var CEFV8ValueCreateArrayBufferWithCopy func(Buffer unsafe.Pointer, Length uintptr) unsafe.Pointer | |
| 1064 | 1104 | ||
| 1105 | + | var CEFV8ValueCreateArrayBufferFromBackingStore func(BackingStore unsafe.Pointer) unsafe.Pointer | |
| 1106 | + | ||
| 1065 | 1107 | var CEFV8ValueCreateFunction func(Name unsafe.Pointer, Handler unsafe.Pointer) unsafe.Pointer | |
| 1066 | 1108 | ||
| 1067 | 1109 | var CEFV8ValueCreatePromise func() unsafe.Pointer | |
| @@ -1074,6 +1116,7 @@ func RegisterV8(handle uintptr) { | |||
| 1074 | 1116 | tryRegisterLibFunc(&CEFV8ContextGetCurrentContext, handle, "cef_v8_context_get_current_context") | |
| 1075 | 1117 | tryRegisterLibFunc(&CEFV8ContextGetEnteredContext, handle, "cef_v8_context_get_entered_context") | |
| 1076 | 1118 | tryRegisterLibFunc(&CEFV8ContextInContext, handle, "cef_v8_context_in_context") | |
| 1119 | + | tryRegisterLibFunc(&CEFV8BackingStoreCreate, handle, "cef_v8_backing_store_create") | |
| 1077 | 1120 | tryRegisterLibFunc(&CEFV8ValueCreateUndefined, handle, "cef_v8_value_create_undefined") | |
| 1078 | 1121 | tryRegisterLibFunc(&CEFV8ValueCreateNull, handle, "cef_v8_value_create_null") | |
| 1079 | 1122 | tryRegisterLibFunc(&CEFV8ValueCreateBool, handle, "cef_v8_value_create_bool") | |
| @@ -1086,6 +1129,7 @@ func RegisterV8(handle uintptr) { | |||
| 1086 | 1129 | tryRegisterLibFunc(&CEFV8ValueCreateArray, handle, "cef_v8_value_create_array") | |
| 1087 | 1130 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBuffer, handle, "cef_v8_value_create_array_buffer") | |
| 1088 | 1131 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBufferWithCopy, handle, "cef_v8_value_create_array_buffer_with_copy") | |
| 1132 | + | tryRegisterLibFunc(&CEFV8ValueCreateArrayBufferFromBackingStore, handle, "cef_v8_value_create_array_buffer_from_backing_store") | |
| 1089 | 1133 | tryRegisterLibFunc(&CEFV8ValueCreateFunction, handle, "cef_v8_value_create_function") | |
| 1090 | 1134 | tryRegisterLibFunc(&CEFV8ValueCreatePromise, handle, "cef_v8_value_create_promise") | |
| 1091 | 1135 | tryRegisterLibFunc(&CEFV8StackTraceGetCurrent, handle, "cef_v8_stack_trace_get_current") | |
| @@ -314,6 +314,44 @@ func (v *CEFV8ArrayBufferReleaseCallbackT) CallReleaseBuffer(args ...uintptr) ui | |||||
| 314 | return r1 | 314 | return r1 | ||
| 315 | } | 315 | } | ||
| 316 | 316 | ||||
| 317 | + | type CEFV8BackingStoreT struct { | |||
| 318 | + | _ structs.HostLayout | |||
| 319 | + | Base CEFBaseRefCountedT | |||
| 320 | + | Data uintptr | |||
| 321 | + | ByteLength uintptr | |||
| 322 | + | IsValid uintptr | |||
| 323 | + | } | |||
| 324 | + | ||||
| 325 | + | func (v *CEFV8BackingStoreT) OverrideData(fn uintptr) { v.Data = fn } | |||
| 326 | + | ||||
| 327 | + | func (v *CEFV8BackingStoreT) CallData(args ...uintptr) uintptr { | |||
| 328 | + | if v.Data == 0 { | |||
| 329 | + | return 0 | |||
| 330 | + | } | |||
| 331 | + | r1, _, _ := purego.SyscallN(v.Data, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |||
| 332 | + | return r1 | |||
| 333 | + | } | |||
| 334 | + | ||||
| 335 | + | func (v *CEFV8BackingStoreT) OverrideByteLength(fn uintptr) { v.ByteLength = fn } | |||
| 336 | + | ||||
| 337 | + | func (v *CEFV8BackingStoreT) CallByteLength(args ...uintptr) uintptr { | |||
| 338 | + | if v.ByteLength == 0 { | |||
| 339 | + | return 0 | |||
| 340 | + | } | |||
| 341 | + | r1, _, _ := purego.SyscallN(v.ByteLength, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |||
| 342 | + | return r1 | |||
| 343 | + | } | |||
| 344 | + | ||||
| 345 | + | func (v *CEFV8BackingStoreT) OverrideIsValid(fn uintptr) { v.IsValid = fn } | |||
| 346 | + | ||||
| 347 | + | func (v *CEFV8BackingStoreT) CallIsValid(args ...uintptr) uintptr { | |||
| 348 | + | if v.IsValid == 0 { | |||
| 349 | + | return 0 | |||
| 350 | + | } | |||
| 351 | + | r1, _, _ := purego.SyscallN(v.IsValid, append([]uintptr{uintptr(unsafe.Pointer(v))}, args...)...) | |||
| 352 | + | return r1 | |||
| 353 | + | } | |||
| 354 | + | ||||
| 317 | type CEFV8ValueT struct { | 355 | type CEFV8ValueT struct { | ||
| 318 | _ structs.HostLayout | 356 | _ structs.HostLayout | ||
| 319 | Base CEFBaseRefCountedT | 357 | Base CEFBaseRefCountedT | ||
| @@ -1038,6 +1076,8 @@ var CEFV8ContextGetEnteredContext func() unsafe.Pointer | |||||
| 1038 | 1076 | ||||
| 1039 | var CEFV8ContextInContext func() int32 | 1077 | var CEFV8ContextInContext func() int32 | ||
| 1040 | 1078 | ||||
| 1079 | + | var CEFV8BackingStoreCreate func(ByteLength uintptr) unsafe.Pointer | |||
| 1080 | + | ||||
| 1041 | var CEFV8ValueCreateUndefined func() unsafe.Pointer | 1081 | var CEFV8ValueCreateUndefined func() unsafe.Pointer | ||
| 1042 | 1082 | ||||
| 1043 | var CEFV8ValueCreateNull func() unsafe.Pointer | 1083 | var CEFV8ValueCreateNull func() unsafe.Pointer | ||
| @@ -1062,6 +1102,8 @@ var CEFV8ValueCreateArrayBuffer func(Buffer unsafe.Pointer, Length uintptr, Rele | |||||
| 1062 | 1102 | ||||
| 1063 | var CEFV8ValueCreateArrayBufferWithCopy func(Buffer unsafe.Pointer, Length uintptr) unsafe.Pointer | 1103 | var CEFV8ValueCreateArrayBufferWithCopy func(Buffer unsafe.Pointer, Length uintptr) unsafe.Pointer | ||
| 1064 | 1104 | ||||
| 1105 | + | var CEFV8ValueCreateArrayBufferFromBackingStore func(BackingStore unsafe.Pointer) unsafe.Pointer | |||
| 1106 | + | ||||
| 1065 | var CEFV8ValueCreateFunction func(Name unsafe.Pointer, Handler unsafe.Pointer) unsafe.Pointer | 1107 | var CEFV8ValueCreateFunction func(Name unsafe.Pointer, Handler unsafe.Pointer) unsafe.Pointer | ||
| 1066 | 1108 | ||||
| 1067 | var CEFV8ValueCreatePromise func() unsafe.Pointer | 1109 | var CEFV8ValueCreatePromise func() unsafe.Pointer | ||
| @@ -1074,6 +1116,7 @@ func RegisterV8(handle uintptr) { | |||||
| 1074 | tryRegisterLibFunc(&CEFV8ContextGetCurrentContext, handle, "cef_v8_context_get_current_context") | 1116 | tryRegisterLibFunc(&CEFV8ContextGetCurrentContext, handle, "cef_v8_context_get_current_context") | ||
| 1075 | tryRegisterLibFunc(&CEFV8ContextGetEnteredContext, handle, "cef_v8_context_get_entered_context") | 1117 | tryRegisterLibFunc(&CEFV8ContextGetEnteredContext, handle, "cef_v8_context_get_entered_context") | ||
| 1076 | tryRegisterLibFunc(&CEFV8ContextInContext, handle, "cef_v8_context_in_context") | 1118 | tryRegisterLibFunc(&CEFV8ContextInContext, handle, "cef_v8_context_in_context") | ||
| 1119 | + | tryRegisterLibFunc(&CEFV8BackingStoreCreate, handle, "cef_v8_backing_store_create") | |||
| 1077 | tryRegisterLibFunc(&CEFV8ValueCreateUndefined, handle, "cef_v8_value_create_undefined") | 1120 | tryRegisterLibFunc(&CEFV8ValueCreateUndefined, handle, "cef_v8_value_create_undefined") | ||
| 1078 | tryRegisterLibFunc(&CEFV8ValueCreateNull, handle, "cef_v8_value_create_null") | 1121 | tryRegisterLibFunc(&CEFV8ValueCreateNull, handle, "cef_v8_value_create_null") | ||
| 1079 | tryRegisterLibFunc(&CEFV8ValueCreateBool, handle, "cef_v8_value_create_bool") | 1122 | tryRegisterLibFunc(&CEFV8ValueCreateBool, handle, "cef_v8_value_create_bool") | ||
| @@ -1086,6 +1129,7 @@ func RegisterV8(handle uintptr) { | |||||
| 1086 | tryRegisterLibFunc(&CEFV8ValueCreateArray, handle, "cef_v8_value_create_array") | 1129 | tryRegisterLibFunc(&CEFV8ValueCreateArray, handle, "cef_v8_value_create_array") | ||
| 1087 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBuffer, handle, "cef_v8_value_create_array_buffer") | 1130 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBuffer, handle, "cef_v8_value_create_array_buffer") | ||
| 1088 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBufferWithCopy, handle, "cef_v8_value_create_array_buffer_with_copy") | 1131 | tryRegisterLibFunc(&CEFV8ValueCreateArrayBufferWithCopy, handle, "cef_v8_value_create_array_buffer_with_copy") | ||
| 1132 | + | tryRegisterLibFunc(&CEFV8ValueCreateArrayBufferFromBackingStore, handle, "cef_v8_value_create_array_buffer_from_backing_store") | |||
| 1089 | tryRegisterLibFunc(&CEFV8ValueCreateFunction, handle, "cef_v8_value_create_function") | 1133 | tryRegisterLibFunc(&CEFV8ValueCreateFunction, handle, "cef_v8_value_create_function") | ||
| 1090 | tryRegisterLibFunc(&CEFV8ValueCreatePromise, handle, "cef_v8_value_create_promise") | 1134 | tryRegisterLibFunc(&CEFV8ValueCreatePromise, handle, "cef_v8_value_create_promise") | ||
| 1091 | tryRegisterLibFunc(&CEFV8StackTraceGetCurrent, handle, "cef_v8_stack_trace_get_current") | 1135 | tryRegisterLibFunc(&CEFV8StackTraceGetCurrent, handle, "cef_v8_stack_trace_get_current") | ||