detached ef0e401

chore: pin released purego upstream modules

commit
ef0e4016be7594dd9670ba85feaf59f0b3517eb3
author
brice · · 2026-07-15 05:52 UTC
parent
7efcb53
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
68 files · +540 -531
M go.mod +8 -10
@@ -6,12 +6,12 @@ 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-0.20260714140305-f0b7414af67e
10- github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe
11- github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a
12- github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c
13- github.com/bnema/purego-webp v0.2.1-0.20260714152238-7bc9c402fdf6
14- github.com/bnema/puregotk v0.7.1-0.20260714200603-7370c78950ef
9+ github.com/bnema/purego-cef v0.13.4-0.20260715054414-19b947c13132
10+ github.com/bnema/purego-cef2gtk v0.8.5
11+ github.com/bnema/purego-pipewire v0.1.5
12+ github.com/bnema/purego-sqlite v0.1.4
13+ github.com/bnema/purego-webp v0.2.1
14+ github.com/bnema/puregotk v0.7.1
1515 github.com/charmbracelet/bubbles v1.0.0
1616 github.com/charmbracelet/bubbletea v1.3.10
1717 github.com/charmbracelet/lipgloss v1.1.0
@@ -43,11 +43,10 @@ require (
4343 github.com/clipperhouse/displaywidth v0.11.0 // indirect
4444 github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
4545 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
46- github.com/davecgh/go-spew v1.1.1 // indirect
46+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4747 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
4848 github.com/fatih/color v1.19.0 // indirect
4949 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
50- github.com/google/go-cmp v0.7.0 // indirect
5150 github.com/inconshreveable/mousetrap v1.1.0 // indirect
5251 github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
5352 github.com/mattn/go-colorable v0.1.14 // indirect
@@ -59,7 +58,7 @@ require (
5958 github.com/muesli/cancelreader v0.2.2 // indirect
6059 github.com/muesli/termenv v0.16.0 // indirect
6160 github.com/natefinch/atomic v1.0.1 // indirect
62- github.com/pmezard/go-difflib v1.0.0 // indirect
61+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6362 github.com/rivo/uniseg v0.4.7 // indirect
6463 github.com/rogpeppe/go-internal v1.14.1 // indirect
6564 github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -81,7 +80,6 @@ require (
8180 golang.org/x/text v0.40.0 // indirect
8281 golang.org/x/tools v0.47.0 // indirect
8382 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
84- mvdan.cc/gofumpt v0.9.2 // indirect
8583 )
8684
8785 tool github.com/a-h/templ/cmd/templ
@@ -6,12 +6,12 @@ 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.4-0.20260714140305-f0b7414af67e9+ github.com/bnema/purego-cef v0.13.4-0.20260715054414-19b947c13132
10- github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe10+ github.com/bnema/purego-cef2gtk v0.8.5
11- github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a11+ github.com/bnema/purego-pipewire v0.1.5
12- github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c12+ github.com/bnema/purego-sqlite v0.1.4
13- github.com/bnema/purego-webp v0.2.1-0.20260714152238-7bc9c402fdf613+ github.com/bnema/purego-webp v0.2.1
14- github.com/bnema/puregotk v0.7.1-0.20260714200603-7370c78950ef14+ github.com/bnema/puregotk v0.7.1
15 github.com/charmbracelet/bubbles v1.0.015 github.com/charmbracelet/bubbles v1.0.0
16 github.com/charmbracelet/bubbletea v1.3.1016 github.com/charmbracelet/bubbletea v1.3.10
17 github.com/charmbracelet/lipgloss v1.1.017 github.com/charmbracelet/lipgloss v1.1.0
@@ -43,11 +43,10 @@ require (
43 github.com/clipperhouse/displaywidth v0.11.0 // indirect43 github.com/clipperhouse/displaywidth v0.11.0 // indirect
44 github.com/clipperhouse/uax29/v2 v2.7.0 // indirect44 github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
45 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect45 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
46- github.com/davecgh/go-spew v1.1.1 // indirect46+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
47 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect47 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
48 github.com/fatih/color v1.19.0 // indirect48 github.com/fatih/color v1.19.0 // indirect
49 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect49 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
50- github.com/google/go-cmp v0.7.0 // indirect
51 github.com/inconshreveable/mousetrap v1.1.0 // indirect50 github.com/inconshreveable/mousetrap v1.1.0 // indirect
52 github.com/lucasb-eyer/go-colorful v1.4.0 // indirect51 github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
53 github.com/mattn/go-colorable v0.1.14 // indirect52 github.com/mattn/go-colorable v0.1.14 // indirect
@@ -59,7 +58,7 @@ require (
59 github.com/muesli/cancelreader v0.2.2 // indirect58 github.com/muesli/cancelreader v0.2.2 // indirect
60 github.com/muesli/termenv v0.16.0 // indirect59 github.com/muesli/termenv v0.16.0 // indirect
61 github.com/natefinch/atomic v1.0.1 // indirect60 github.com/natefinch/atomic v1.0.1 // indirect
62- github.com/pmezard/go-difflib v1.0.0 // indirect61+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
63 github.com/rivo/uniseg v0.4.7 // indirect62 github.com/rivo/uniseg v0.4.7 // indirect
64 github.com/rogpeppe/go-internal v1.14.1 // indirect63 github.com/rogpeppe/go-internal v1.14.1 // indirect
65 github.com/russross/blackfriday/v2 v2.1.0 // indirect64 github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -81,7 +80,6 @@ require (
81 golang.org/x/text v0.40.0 // indirect80 golang.org/x/text v0.40.0 // indirect
82 golang.org/x/tools v0.47.0 // indirect81 golang.org/x/tools v0.47.0 // indirect
83 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect82 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
84- mvdan.cc/gofumpt v0.9.2 // indirect
85 )83 )
86 84
87 tool github.com/a-h/templ/cmd/templ85 tool github.com/a-h/templ/cmd/templ
M go.sum +16 -18 generated file: collapsed
M internal/logging/first_presentation_collector_test.go +3 -3
@@ -144,9 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
144144 }
145145 for _, required := range []string{
146146 `"measured_source_revision"`,
147- `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`,
148- `"tag": "v0.8.4"`,
149- `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`,
147+ `"version": "v0.8.5"`,
148+ `"tag": "v0.8.5"`,
149+ `"revision": "b9fb46ef5c04ca0993943c5ca4b6f0fe83583304"`,
150150 } {
151151 require.Contains(t, artifacts.String(), required)
152152 }
@@ -144,9 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
144 }144 }
145 for _, required := range []string{145 for _, required := range []string{
146 `"measured_source_revision"`,146 `"measured_source_revision"`,
147- `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`,147+ `"version": "v0.8.5"`,
148- `"tag": "v0.8.4"`,148+ `"tag": "v0.8.5"`,
149- `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`,149+ `"revision": "b9fb46ef5c04ca0993943c5ca4b6f0fe83583304"`,
150 } {150 } {
151 require.Contains(t, artifacts.String(), required)151 require.Contains(t, artifacts.String(), required)
152 }152 }
M scripts/collect_first_presentation.sh +18 -10
@@ -38,7 +38,7 @@ readonly upstream_module="github.com/bnema/purego-cef2gtk"
3838 resolve_upstream_provenance() {
3939 local selected_metadata selected_version downloaded_metadata
4040
41- selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || {
41+ selected_metadata="$(GOFLAGS=-mod=mod go list -m -json "$upstream_module" 2>/dev/null)" || {
4242 echo "first-presentation: immutable module provenance is unavailable" >&2
4343 exit 2
4444 }
@@ -75,9 +75,11 @@ try:
7575 fail()
7676 if downloaded.get("Version") != version:
7777 fail()
78- # A selected pseudo-version is an exact immutable selector, never a branch.
79- match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)
80- if not match:
78+ # A pseudo-version identifies an immutable commit; a released semver tag is
79+ # accepted only when Go records that exact tag and its immutable hash.
80+ pseudo_match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)
81+ tag_match = re.fullmatch(r"v\d+\.\d+\.\d+", version)
82+ if not pseudo_match and not tag_match:
8183 fail()
8284 info_path = downloaded.get("Info")
8385 if not isinstance(info_path, str) or not info_path:
@@ -92,15 +94,21 @@ try:
9294 fail()
9395 if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision):
9496 fail()
95- if not revision.startswith(match.group(2)):
96- fail()
97- # A named ref can move. Only the immutable hash itself is acceptable.
98- if origin.get("Ref") not in (None, "", revision):
99- fail()
97+ if pseudo_match:
98+ if not revision.startswith(pseudo_match.group(2)):
99+ fail()
100+ # A named ref can move. Only the immutable hash itself is acceptable.
101+ if origin.get("Ref") not in (None, "", revision):
102+ fail()
103+ tag = pseudo_match.group(1)
104+ else:
105+ if origin.get("Ref") != "refs/tags/" + version:
106+ fail()
107+ tag = version
100108 except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError):
101109 fail()
102110
103-print("\t".join((version, match.group(1), revision)))
111+print("\t".join((version, tag, revision)))
104112 PY
105113 }
106114
@@ -38,7 +38,7 @@ readonly upstream_module="github.com/bnema/purego-cef2gtk"
38 resolve_upstream_provenance() {38 resolve_upstream_provenance() {
39 local selected_metadata selected_version downloaded_metadata39 local selected_metadata selected_version downloaded_metadata
40 40
41- selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || {41+ selected_metadata="$(GOFLAGS=-mod=mod go list -m -json "$upstream_module" 2>/dev/null)" || {
42 echo "first-presentation: immutable module provenance is unavailable" >&242 echo "first-presentation: immutable module provenance is unavailable" >&2
43 exit 243 exit 2
44 }44 }
@@ -75,9 +75,11 @@ try:
75 fail()75 fail()
76 if downloaded.get("Version") != version:76 if downloaded.get("Version") != version:
77 fail()77 fail()
78- # A selected pseudo-version is an exact immutable selector, never a branch.78+ # A pseudo-version identifies an immutable commit; a released semver tag is
79- match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)79+ # accepted only when Go records that exact tag and its immutable hash.
80- if not match:80+ pseudo_match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)
81+ tag_match = re.fullmatch(r"v\d+\.\d+\.\d+", version)
82+ if not pseudo_match and not tag_match:
81 fail()83 fail()
82 info_path = downloaded.get("Info")84 info_path = downloaded.get("Info")
83 if not isinstance(info_path, str) or not info_path:85 if not isinstance(info_path, str) or not info_path:
@@ -92,15 +94,21 @@ try:
92 fail()94 fail()
93 if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision):95 if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision):
94 fail()96 fail()
95- if not revision.startswith(match.group(2)):97+ if pseudo_match:
96- fail()98+ if not revision.startswith(pseudo_match.group(2)):
97- # A named ref can move. Only the immutable hash itself is acceptable.99+ fail()
98- if origin.get("Ref") not in (None, "", revision):100+ # A named ref can move. Only the immutable hash itself is acceptable.
99- fail()101+ if origin.get("Ref") not in (None, "", revision):
102+ fail()
103+ tag = pseudo_match.group(1)
104+ else:
105+ if origin.get("Ref") != "refs/tags/" + version:
106+ fail()
107+ tag = version
100 except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError):108 except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError):
101 fail()109 fail()
102 110
103-print("\t".join((version, match.group(1), revision)))111+print("\t".join((version, tag, revision)))
104 PY112 PY
105 }113 }
106 114
M vendor/github.com/bnema/purego-cef/cef/bridge.go +9 -0 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_accessibility_handler_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_app_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_audio_handler_gen.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_browser_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_browser_process_handler_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_client_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_command_handler_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_context_menu_handler_gen.go +21 -21 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_devtools_message_observer_gen.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_dialog_handler_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_display_handler_gen.go +14 -14 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_dom_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_download_handler_gen.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_drag_handler_gen.go +4 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_find_handler_gen.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_focus_handler_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_frame_handler_gen.go +11 -11 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_jsdialog_handler_gen.go +6 -6 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_keyboard_handler_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_life_span_handler_gen.go +11 -11 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_load_handler_gen.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_media_router_gen.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_menu_model_delegate_gen.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_permission_handler_gen.go +6 -6 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_print_handler_gen.go +9 -9 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_render_handler_gen.go +17 -17 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_render_process_handler_gen.go +20 -20 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_request_context_handler_gen.go +4 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_request_handler_gen.go +23 -23
@@ -92,9 +92,9 @@ func requestHandlerOnBeforeBrowseCEFCallback() uintptr {
9292 if !ownerOK {
9393 return 0
9494 }
95- browser := wrapBrowser(unsafe.Pointer(arg0))
96- frame := wrapFrame(unsafe.Pointer(arg1))
97- request := wrapRequest(unsafe.Pointer(arg2))
95+ browser := wrapBrowser(cefCallbackPointer(arg0))
96+ frame := wrapFrame(cefCallbackPointer(arg1))
97+ request := wrapRequest(cefCallbackPointer(arg2))
9898 userGesture := int32(arg3)
9999 isRedirect := int32(arg4)
100100 if impl.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect) {
@@ -113,8 +113,8 @@ func requestHandlerOnOpenUrlfromTabCEFCallback() uintptr {
113113 if !ownerOK {
114114 return 0
115115 }
116- browser := wrapBrowser(unsafe.Pointer(arg0))
117- frame := wrapFrame(unsafe.Pointer(arg1))
116+ browser := wrapBrowser(cefCallbackPointer(arg0))
117+ frame := wrapFrame(cefCallbackPointer(arg1))
118118 targetURL := goString(unsafe.Pointer(arg2))
119119 targetDisposition := WindowOpenDisposition(arg3)
120120 userGesture := int32(arg4)
@@ -131,9 +131,9 @@ func requestHandlerGetResourceRequestHandlerCEFCallback() uintptr {
131131 if !ownerOK {
132132 return 0
133133 }
134- browser := wrapBrowser(unsafe.Pointer(arg0))
135- frame := wrapFrame(unsafe.Pointer(arg1))
136- request := wrapRequest(unsafe.Pointer(arg2))
134+ browser := wrapBrowser(cefCallbackPointer(arg0))
135+ frame := wrapFrame(cefCallbackPointer(arg1))
136+ request := wrapRequest(cefCallbackPointer(arg2))
137137 isNavigation := int32(arg3)
138138 isDownload := int32(arg4)
139139 requestInitiator := goString(unsafe.Pointer(arg5))
@@ -157,14 +157,14 @@ func requestHandlerGetAuthCredentialsCEFCallback() uintptr {
157157 if !ownerOK {
158158 return 0
159159 }
160- browser := wrapBrowser(unsafe.Pointer(arg0))
160+ browser := wrapBrowser(cefCallbackPointer(arg0))
161161 originURL := goString(unsafe.Pointer(arg1))
162162 isproxy := int32(arg2)
163163 host := goString(unsafe.Pointer(arg3))
164164 port := int32(arg4)
165165 realm := goString(unsafe.Pointer(arg5))
166166 scheme := goString(unsafe.Pointer(arg6))
167- callback := wrapAuthCallback(unsafe.Pointer(arg7))
167+ callback := wrapAuthCallback(cefCallbackPointer(arg7))
168168 return uintptr(impl.GetAuthCredentials(browser, originURL, isproxy, host, port, realm, scheme, callback))
169169 })
170170 }
@@ -178,11 +178,11 @@ func requestHandlerOnCertificateErrorCEFCallback() uintptr {
178178 if !ownerOK {
179179 return 0
180180 }
181- browser := wrapBrowser(unsafe.Pointer(arg0))
181+ browser := wrapBrowser(cefCallbackPointer(arg0))
182182 certError := Errorcode(arg1)
183183 requestURL := goString(unsafe.Pointer(arg2))
184- sslInfo := wrapSslinfo(unsafe.Pointer(arg3))
185- callback := wrapCallback(unsafe.Pointer(arg4))
184+ sslInfo := wrapSslinfo(cefCallbackPointer(arg3))
185+ callback := wrapCallback(cefCallbackPointer(arg4))
186186 return uintptr(impl.OnCertificateError(browser, certError, requestURL, sslInfo, callback))
187187 })
188188 }
@@ -196,19 +196,19 @@ func requestHandlerOnSelectClientCertificateCEFCallback() uintptr {
196196 if !ownerOK {
197197 return 0
198198 }
199- browser := wrapBrowser(unsafe.Pointer(arg0))
199+ browser := wrapBrowser(cefCallbackPointer(arg0))
200200 isproxy := int32(arg1)
201201 host := goString(unsafe.Pointer(arg2))
202202 port := int32(arg3)
203203 var certificates []X509Certificate
204204 if arg5 != 0 && arg4 > 0 {
205- certificatesPtrs := unsafe.Slice((*uintptr)(unsafe.Pointer(arg5)), int(arg4))
205+ certificatesPtrs := unsafe.Slice((*uintptr)(cefCallbackPointer(arg5)), int(arg4))
206206 certificates = make([]X509Certificate, int(arg4))
207207 for i, ptr := range certificatesPtrs {
208- certificates[i] = wrapX509Certificate(unsafe.Pointer(ptr))
208+ certificates[i] = wrapX509Certificate(cefCallbackPointer(ptr))
209209 }
210210 }
211- callback := wrapSelectClientCertificateCallback(unsafe.Pointer(arg6))
211+ callback := wrapSelectClientCertificateCallback(cefCallbackPointer(arg6))
212212 return uintptr(impl.OnSelectClientCertificate(browser, isproxy, host, port, certificates, callback))
213213 })
214214 }
@@ -222,7 +222,7 @@ func requestHandlerOnRenderViewReadyCEFCallback() uintptr {
222222 if !ownerOK {
223223 return
224224 }
225- browser := wrapBrowser(unsafe.Pointer(arg0))
225+ browser := wrapBrowser(cefCallbackPointer(arg0))
226226 impl.OnRenderViewReady(browser)
227227 })
228228 }
@@ -236,8 +236,8 @@ func requestHandlerOnRenderProcessUnresponsiveCEFCallback() uintptr {
236236 if !ownerOK {
237237 return 0
238238 }
239- browser := wrapBrowser(unsafe.Pointer(arg0))
240- callback := wrapUnresponsiveProcessCallback(unsafe.Pointer(arg1))
239+ browser := wrapBrowser(cefCallbackPointer(arg0))
240+ callback := wrapUnresponsiveProcessCallback(cefCallbackPointer(arg1))
241241 return uintptr(impl.OnRenderProcessUnresponsive(browser, callback))
242242 })
243243 }
@@ -251,7 +251,7 @@ func requestHandlerOnRenderProcessResponsiveCEFCallback() uintptr {
251251 if !ownerOK {
252252 return
253253 }
254- browser := wrapBrowser(unsafe.Pointer(arg0))
254+ browser := wrapBrowser(cefCallbackPointer(arg0))
255255 impl.OnRenderProcessResponsive(browser)
256256 })
257257 }
@@ -265,7 +265,7 @@ func requestHandlerOnRenderProcessTerminatedCEFCallback() uintptr {
265265 if !ownerOK {
266266 return
267267 }
268- browser := wrapBrowser(unsafe.Pointer(arg0))
268+ browser := wrapBrowser(cefCallbackPointer(arg0))
269269 status := TerminationStatus(arg1)
270270 errorCode := int32(arg2)
271271 errorString := goString(unsafe.Pointer(arg3))
@@ -282,7 +282,7 @@ func requestHandlerOnDocumentAvailableInMainFrameCEFCallback() uintptr {
282282 if !ownerOK {
283283 return
284284 }
285- browser := wrapBrowser(unsafe.Pointer(arg0))
285+ browser := wrapBrowser(cefCallbackPointer(arg0))
286286 impl.OnDocumentAvailableInMainFrame(browser)
287287 })
288288 }
@@ -92,9 +92,9 @@ func requestHandlerOnBeforeBrowseCEFCallback() uintptr {
92 if !ownerOK {92 if !ownerOK {
93 return 093 return 0
94 }94 }
95- browser := wrapBrowser(unsafe.Pointer(arg0))95+ browser := wrapBrowser(cefCallbackPointer(arg0))
96- frame := wrapFrame(unsafe.Pointer(arg1))96+ frame := wrapFrame(cefCallbackPointer(arg1))
97- request := wrapRequest(unsafe.Pointer(arg2))97+ request := wrapRequest(cefCallbackPointer(arg2))
98 userGesture := int32(arg3)98 userGesture := int32(arg3)
99 isRedirect := int32(arg4)99 isRedirect := int32(arg4)
100 if impl.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect) {100 if impl.OnBeforeBrowse(browser, frame, request, userGesture, isRedirect) {
@@ -113,8 +113,8 @@ func requestHandlerOnOpenUrlfromTabCEFCallback() uintptr {
113 if !ownerOK {113 if !ownerOK {
114 return 0114 return 0
115 }115 }
116- browser := wrapBrowser(unsafe.Pointer(arg0))116+ browser := wrapBrowser(cefCallbackPointer(arg0))
117- frame := wrapFrame(unsafe.Pointer(arg1))117+ frame := wrapFrame(cefCallbackPointer(arg1))
118 targetURL := goString(unsafe.Pointer(arg2))118 targetURL := goString(unsafe.Pointer(arg2))
119 targetDisposition := WindowOpenDisposition(arg3)119 targetDisposition := WindowOpenDisposition(arg3)
120 userGesture := int32(arg4)120 userGesture := int32(arg4)
@@ -131,9 +131,9 @@ func requestHandlerGetResourceRequestHandlerCEFCallback() uintptr {
131 if !ownerOK {131 if !ownerOK {
132 return 0132 return 0
133 }133 }
134- browser := wrapBrowser(unsafe.Pointer(arg0))134+ browser := wrapBrowser(cefCallbackPointer(arg0))
135- frame := wrapFrame(unsafe.Pointer(arg1))135+ frame := wrapFrame(cefCallbackPointer(arg1))
136- request := wrapRequest(unsafe.Pointer(arg2))136+ request := wrapRequest(cefCallbackPointer(arg2))
137 isNavigation := int32(arg3)137 isNavigation := int32(arg3)
138 isDownload := int32(arg4)138 isDownload := int32(arg4)
139 requestInitiator := goString(unsafe.Pointer(arg5))139 requestInitiator := goString(unsafe.Pointer(arg5))
@@ -157,14 +157,14 @@ func requestHandlerGetAuthCredentialsCEFCallback() uintptr {
157 if !ownerOK {157 if !ownerOK {
158 return 0158 return 0
159 }159 }
160- browser := wrapBrowser(unsafe.Pointer(arg0))160+ browser := wrapBrowser(cefCallbackPointer(arg0))
161 originURL := goString(unsafe.Pointer(arg1))161 originURL := goString(unsafe.Pointer(arg1))
162 isproxy := int32(arg2)162 isproxy := int32(arg2)
163 host := goString(unsafe.Pointer(arg3))163 host := goString(unsafe.Pointer(arg3))
164 port := int32(arg4)164 port := int32(arg4)
165 realm := goString(unsafe.Pointer(arg5))165 realm := goString(unsafe.Pointer(arg5))
166 scheme := goString(unsafe.Pointer(arg6))166 scheme := goString(unsafe.Pointer(arg6))
167- callback := wrapAuthCallback(unsafe.Pointer(arg7))167+ callback := wrapAuthCallback(cefCallbackPointer(arg7))
168 return uintptr(impl.GetAuthCredentials(browser, originURL, isproxy, host, port, realm, scheme, callback))168 return uintptr(impl.GetAuthCredentials(browser, originURL, isproxy, host, port, realm, scheme, callback))
169 })169 })
170 }170 }
@@ -178,11 +178,11 @@ func requestHandlerOnCertificateErrorCEFCallback() uintptr {
178 if !ownerOK {178 if !ownerOK {
179 return 0179 return 0
180 }180 }
181- browser := wrapBrowser(unsafe.Pointer(arg0))181+ browser := wrapBrowser(cefCallbackPointer(arg0))
182 certError := Errorcode(arg1)182 certError := Errorcode(arg1)
183 requestURL := goString(unsafe.Pointer(arg2))183 requestURL := goString(unsafe.Pointer(arg2))
184- sslInfo := wrapSslinfo(unsafe.Pointer(arg3))184+ sslInfo := wrapSslinfo(cefCallbackPointer(arg3))
185- callback := wrapCallback(unsafe.Pointer(arg4))185+ callback := wrapCallback(cefCallbackPointer(arg4))
186 return uintptr(impl.OnCertificateError(browser, certError, requestURL, sslInfo, callback))186 return uintptr(impl.OnCertificateError(browser, certError, requestURL, sslInfo, callback))
187 })187 })
188 }188 }
@@ -196,19 +196,19 @@ func requestHandlerOnSelectClientCertificateCEFCallback() uintptr {
196 if !ownerOK {196 if !ownerOK {
197 return 0197 return 0
198 }198 }
199- browser := wrapBrowser(unsafe.Pointer(arg0))199+ browser := wrapBrowser(cefCallbackPointer(arg0))
200 isproxy := int32(arg1)200 isproxy := int32(arg1)
201 host := goString(unsafe.Pointer(arg2))201 host := goString(unsafe.Pointer(arg2))
202 port := int32(arg3)202 port := int32(arg3)
203 var certificates []X509Certificate203 var certificates []X509Certificate
204 if arg5 != 0 && arg4 > 0 {204 if arg5 != 0 && arg4 > 0 {
205- certificatesPtrs := unsafe.Slice((*uintptr)(unsafe.Pointer(arg5)), int(arg4))205+ certificatesPtrs := unsafe.Slice((*uintptr)(cefCallbackPointer(arg5)), int(arg4))
206 certificates = make([]X509Certificate, int(arg4))206 certificates = make([]X509Certificate, int(arg4))
207 for i, ptr := range certificatesPtrs {207 for i, ptr := range certificatesPtrs {
208- certificates[i] = wrapX509Certificate(unsafe.Pointer(ptr))208+ certificates[i] = wrapX509Certificate(cefCallbackPointer(ptr))
209 }209 }
210 }210 }
211- callback := wrapSelectClientCertificateCallback(unsafe.Pointer(arg6))211+ callback := wrapSelectClientCertificateCallback(cefCallbackPointer(arg6))
212 return uintptr(impl.OnSelectClientCertificate(browser, isproxy, host, port, certificates, callback))212 return uintptr(impl.OnSelectClientCertificate(browser, isproxy, host, port, certificates, callback))
213 })213 })
214 }214 }
@@ -222,7 +222,7 @@ func requestHandlerOnRenderViewReadyCEFCallback() uintptr {
222 if !ownerOK {222 if !ownerOK {
223 return223 return
224 }224 }
225- browser := wrapBrowser(unsafe.Pointer(arg0))225+ browser := wrapBrowser(cefCallbackPointer(arg0))
226 impl.OnRenderViewReady(browser)226 impl.OnRenderViewReady(browser)
227 })227 })
228 }228 }
@@ -236,8 +236,8 @@ func requestHandlerOnRenderProcessUnresponsiveCEFCallback() uintptr {
236 if !ownerOK {236 if !ownerOK {
237 return 0237 return 0
238 }238 }
239- browser := wrapBrowser(unsafe.Pointer(arg0))239+ browser := wrapBrowser(cefCallbackPointer(arg0))
240- callback := wrapUnresponsiveProcessCallback(unsafe.Pointer(arg1))240+ callback := wrapUnresponsiveProcessCallback(cefCallbackPointer(arg1))
241 return uintptr(impl.OnRenderProcessUnresponsive(browser, callback))241 return uintptr(impl.OnRenderProcessUnresponsive(browser, callback))
242 })242 })
243 }243 }
@@ -251,7 +251,7 @@ func requestHandlerOnRenderProcessResponsiveCEFCallback() uintptr {
251 if !ownerOK {251 if !ownerOK {
252 return252 return
253 }253 }
254- browser := wrapBrowser(unsafe.Pointer(arg0))254+ browser := wrapBrowser(cefCallbackPointer(arg0))
255 impl.OnRenderProcessResponsive(browser)255 impl.OnRenderProcessResponsive(browser)
256 })256 })
257 }257 }
@@ -265,7 +265,7 @@ func requestHandlerOnRenderProcessTerminatedCEFCallback() uintptr {
265 if !ownerOK {265 if !ownerOK {
266 return266 return
267 }267 }
268- browser := wrapBrowser(unsafe.Pointer(arg0))268+ browser := wrapBrowser(cefCallbackPointer(arg0))
269 status := TerminationStatus(arg1)269 status := TerminationStatus(arg1)
270 errorCode := int32(arg2)270 errorCode := int32(arg2)
271 errorString := goString(unsafe.Pointer(arg3))271 errorString := goString(unsafe.Pointer(arg3))
@@ -282,7 +282,7 @@ func requestHandlerOnDocumentAvailableInMainFrameCEFCallback() uintptr {
282 if !ownerOK {282 if !ownerOK {
283 return283 return
284 }284 }
285- browser := wrapBrowser(unsafe.Pointer(arg0))285+ browser := wrapBrowser(cefCallbackPointer(arg0))
286 impl.OnDocumentAvailableInMainFrame(browser)286 impl.OnDocumentAvailableInMainFrame(browser)
287 })287 })
288 }288 }
M vendor/github.com/bnema/purego-cef/cef/cef_resource_handler_gen.go +8 -8 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_resource_request_handler_gen.go +36 -36 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_scheme_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_server_gen.go +11 -11 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_urlrequest_gen.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/cef_v8_gen.go +16 -16 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_app.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_browser.go +5 -5 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_browser_process_handler.go +4 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_client.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_context_menu_handler.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_dialog_handler.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_display_handler.go +13 -13 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_focus_handler.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_frame.go +8 -8 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_keyboard_handler.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_life_span_handler.go +6 -6 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_load_handler.go +4 -4 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_raw_client.go +1 -1 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_raw_life_span_handler.go +6 -6 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_render_handler.go +16 -16 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_render_process_handler.go +7 -7 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_request.go +11 -11 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_request_context.go +16 -16 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_request_handler.go +11 -11 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/mocks/mock_response.go +10 -10 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/test_cef_test_server_gen.go +3 -3 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_browser_view_delegate_gen.go +13 -13 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_button_delegate_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_menu_button_delegate_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_textfield_delegate_gen.go +2 -2 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_view_delegate_gen.go +13 -13 generated file: collapsed
M vendor/github.com/bnema/purego-cef/cef/views_cef_window_delegate_gen.go +22 -22 generated file: collapsed
M vendor/modules.txt +8 -12 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