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
@@ -163,10 +163,10 @@ func contextMenuHandlerOnBeforeContextMenuCEFCallback() uintptr {
163163 if !ownerOK {
164164 return
165165 }
166- browser := wrapBrowser(unsafe.Pointer(arg0))
167- frame := wrapFrame(unsafe.Pointer(arg1))
168- params := wrapContextMenuParams(unsafe.Pointer(arg2))
169- model := wrapMenuModel(unsafe.Pointer(arg3))
166+ browser := wrapBrowser(cefCallbackPointer(arg0))
167+ frame := wrapFrame(cefCallbackPointer(arg1))
168+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
169+ model := wrapMenuModel(cefCallbackPointer(arg3))
170170 impl.OnBeforeContextMenu(browser, frame, params, model)
171171 })
172172 }
@@ -180,11 +180,11 @@ func contextMenuHandlerRunContextMenuCEFCallback() uintptr {
180180 if !ownerOK {
181181 return 0
182182 }
183- browser := wrapBrowser(unsafe.Pointer(arg0))
184- frame := wrapFrame(unsafe.Pointer(arg1))
185- params := wrapContextMenuParams(unsafe.Pointer(arg2))
186- model := wrapMenuModel(unsafe.Pointer(arg3))
187- callback := wrapRunContextMenuCallback(unsafe.Pointer(arg4))
183+ browser := wrapBrowser(cefCallbackPointer(arg0))
184+ frame := wrapFrame(cefCallbackPointer(arg1))
185+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
186+ model := wrapMenuModel(cefCallbackPointer(arg3))
187+ callback := wrapRunContextMenuCallback(cefCallbackPointer(arg4))
188188 return uintptr(impl.RunContextMenu(browser, frame, params, model, callback))
189189 })
190190 }
@@ -198,9 +198,9 @@ func contextMenuHandlerOnContextMenuCommandCEFCallback() uintptr {
198198 if !ownerOK {
199199 return 0
200200 }
201- browser := wrapBrowser(unsafe.Pointer(arg0))
202- frame := wrapFrame(unsafe.Pointer(arg1))
203- params := wrapContextMenuParams(unsafe.Pointer(arg2))
201+ browser := wrapBrowser(cefCallbackPointer(arg0))
202+ frame := wrapFrame(cefCallbackPointer(arg1))
203+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
204204 commandID := int32(arg3)
205205 eventFlags := EventFlags(arg4)
206206 return uintptr(impl.OnContextMenuCommand(browser, frame, params, commandID, eventFlags))
@@ -216,8 +216,8 @@ func contextMenuHandlerOnContextMenuDismissedCEFCallback() uintptr {
216216 if !ownerOK {
217217 return
218218 }
219- browser := wrapBrowser(unsafe.Pointer(arg0))
220- frame := wrapFrame(unsafe.Pointer(arg1))
219+ browser := wrapBrowser(cefCallbackPointer(arg0))
220+ frame := wrapFrame(cefCallbackPointer(arg1))
221221 impl.OnContextMenuDismissed(browser, frame)
222222 })
223223 }
@@ -231,12 +231,12 @@ func contextMenuHandlerRunQuickMenuCEFCallback() uintptr {
231231 if !ownerOK {
232232 return 0
233233 }
234- browser := wrapBrowser(unsafe.Pointer(arg0))
235- frame := wrapFrame(unsafe.Pointer(arg1))
234+ browser := wrapBrowser(cefCallbackPointer(arg0))
235+ frame := wrapFrame(cefCallbackPointer(arg1))
236236 location := (*Point)(unsafe.Pointer(arg2))
237237 size := (*Size)(unsafe.Pointer(arg3))
238238 editStateFlags := QuickMenuEditStateFlags(arg4)
239- callback := wrapRunQuickMenuCallback(unsafe.Pointer(arg5))
239+ callback := wrapRunQuickMenuCallback(cefCallbackPointer(arg5))
240240 return uintptr(impl.RunQuickMenu(browser, frame, location, size, editStateFlags, callback))
241241 })
242242 }
@@ -250,8 +250,8 @@ func contextMenuHandlerOnQuickMenuCommandCEFCallback() uintptr {
250250 if !ownerOK {
251251 return 0
252252 }
253- browser := wrapBrowser(unsafe.Pointer(arg0))
254- frame := wrapFrame(unsafe.Pointer(arg1))
253+ browser := wrapBrowser(cefCallbackPointer(arg0))
254+ frame := wrapFrame(cefCallbackPointer(arg1))
255255 commandID := int32(arg2)
256256 eventFlags := EventFlags(arg3)
257257 return uintptr(impl.OnQuickMenuCommand(browser, frame, commandID, eventFlags))
@@ -267,8 +267,8 @@ func contextMenuHandlerOnQuickMenuDismissedCEFCallback() uintptr {
267267 if !ownerOK {
268268 return
269269 }
270- browser := wrapBrowser(unsafe.Pointer(arg0))
271- frame := wrapFrame(unsafe.Pointer(arg1))
270+ browser := wrapBrowser(cefCallbackPointer(arg0))
271+ frame := wrapFrame(cefCallbackPointer(arg1))
272272 impl.OnQuickMenuDismissed(browser, frame)
273273 })
274274 }
@@ -163,10 +163,10 @@ func contextMenuHandlerOnBeforeContextMenuCEFCallback() uintptr {
163 if !ownerOK {163 if !ownerOK {
164 return164 return
165 }165 }
166- browser := wrapBrowser(unsafe.Pointer(arg0))166+ browser := wrapBrowser(cefCallbackPointer(arg0))
167- frame := wrapFrame(unsafe.Pointer(arg1))167+ frame := wrapFrame(cefCallbackPointer(arg1))
168- params := wrapContextMenuParams(unsafe.Pointer(arg2))168+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
169- model := wrapMenuModel(unsafe.Pointer(arg3))169+ model := wrapMenuModel(cefCallbackPointer(arg3))
170 impl.OnBeforeContextMenu(browser, frame, params, model)170 impl.OnBeforeContextMenu(browser, frame, params, model)
171 })171 })
172 }172 }
@@ -180,11 +180,11 @@ func contextMenuHandlerRunContextMenuCEFCallback() uintptr {
180 if !ownerOK {180 if !ownerOK {
181 return 0181 return 0
182 }182 }
183- browser := wrapBrowser(unsafe.Pointer(arg0))183+ browser := wrapBrowser(cefCallbackPointer(arg0))
184- frame := wrapFrame(unsafe.Pointer(arg1))184+ frame := wrapFrame(cefCallbackPointer(arg1))
185- params := wrapContextMenuParams(unsafe.Pointer(arg2))185+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
186- model := wrapMenuModel(unsafe.Pointer(arg3))186+ model := wrapMenuModel(cefCallbackPointer(arg3))
187- callback := wrapRunContextMenuCallback(unsafe.Pointer(arg4))187+ callback := wrapRunContextMenuCallback(cefCallbackPointer(arg4))
188 return uintptr(impl.RunContextMenu(browser, frame, params, model, callback))188 return uintptr(impl.RunContextMenu(browser, frame, params, model, callback))
189 })189 })
190 }190 }
@@ -198,9 +198,9 @@ func contextMenuHandlerOnContextMenuCommandCEFCallback() uintptr {
198 if !ownerOK {198 if !ownerOK {
199 return 0199 return 0
200 }200 }
201- browser := wrapBrowser(unsafe.Pointer(arg0))201+ browser := wrapBrowser(cefCallbackPointer(arg0))
202- frame := wrapFrame(unsafe.Pointer(arg1))202+ frame := wrapFrame(cefCallbackPointer(arg1))
203- params := wrapContextMenuParams(unsafe.Pointer(arg2))203+ params := wrapContextMenuParams(cefCallbackPointer(arg2))
204 commandID := int32(arg3)204 commandID := int32(arg3)
205 eventFlags := EventFlags(arg4)205 eventFlags := EventFlags(arg4)
206 return uintptr(impl.OnContextMenuCommand(browser, frame, params, commandID, eventFlags))206 return uintptr(impl.OnContextMenuCommand(browser, frame, params, commandID, eventFlags))
@@ -216,8 +216,8 @@ func contextMenuHandlerOnContextMenuDismissedCEFCallback() uintptr {
216 if !ownerOK {216 if !ownerOK {
217 return217 return
218 }218 }
219- browser := wrapBrowser(unsafe.Pointer(arg0))219+ browser := wrapBrowser(cefCallbackPointer(arg0))
220- frame := wrapFrame(unsafe.Pointer(arg1))220+ frame := wrapFrame(cefCallbackPointer(arg1))
221 impl.OnContextMenuDismissed(browser, frame)221 impl.OnContextMenuDismissed(browser, frame)
222 })222 })
223 }223 }
@@ -231,12 +231,12 @@ func contextMenuHandlerRunQuickMenuCEFCallback() uintptr {
231 if !ownerOK {231 if !ownerOK {
232 return 0232 return 0
233 }233 }
234- browser := wrapBrowser(unsafe.Pointer(arg0))234+ browser := wrapBrowser(cefCallbackPointer(arg0))
235- frame := wrapFrame(unsafe.Pointer(arg1))235+ frame := wrapFrame(cefCallbackPointer(arg1))
236 location := (*Point)(unsafe.Pointer(arg2))236 location := (*Point)(unsafe.Pointer(arg2))
237 size := (*Size)(unsafe.Pointer(arg3))237 size := (*Size)(unsafe.Pointer(arg3))
238 editStateFlags := QuickMenuEditStateFlags(arg4)238 editStateFlags := QuickMenuEditStateFlags(arg4)
239- callback := wrapRunQuickMenuCallback(unsafe.Pointer(arg5))239+ callback := wrapRunQuickMenuCallback(cefCallbackPointer(arg5))
240 return uintptr(impl.RunQuickMenu(browser, frame, location, size, editStateFlags, callback))240 return uintptr(impl.RunQuickMenu(browser, frame, location, size, editStateFlags, callback))
241 })241 })
242 }242 }
@@ -250,8 +250,8 @@ func contextMenuHandlerOnQuickMenuCommandCEFCallback() uintptr {
250 if !ownerOK {250 if !ownerOK {
251 return 0251 return 0
252 }252 }
253- browser := wrapBrowser(unsafe.Pointer(arg0))253+ browser := wrapBrowser(cefCallbackPointer(arg0))
254- frame := wrapFrame(unsafe.Pointer(arg1))254+ frame := wrapFrame(cefCallbackPointer(arg1))
255 commandID := int32(arg2)255 commandID := int32(arg2)
256 eventFlags := EventFlags(arg3)256 eventFlags := EventFlags(arg3)
257 return uintptr(impl.OnQuickMenuCommand(browser, frame, commandID, eventFlags))257 return uintptr(impl.OnQuickMenuCommand(browser, frame, commandID, eventFlags))
@@ -267,8 +267,8 @@ func contextMenuHandlerOnQuickMenuDismissedCEFCallback() uintptr {
267 if !ownerOK {267 if !ownerOK {
268 return268 return
269 }269 }
270- browser := wrapBrowser(unsafe.Pointer(arg0))270+ browser := wrapBrowser(cefCallbackPointer(arg0))
271- frame := wrapFrame(unsafe.Pointer(arg1))271+ frame := wrapFrame(cefCallbackPointer(arg1))
272 impl.OnQuickMenuDismissed(browser, frame)272 impl.OnQuickMenuDismissed(browser, frame)
273 })273 })
274 }274 }
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 generated file: collapsed
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