v0.2.0 759cc92

webkit-api.yaml RawHistoryFolder

1# WebKit API Migration Contract
2# Defines the interface mapping between WebKit2GTK 4.0 and WebKitGTK 6.0
3
4version: "1.0.0"
5migration:
6  from: "webkit2gtk-4.0"
7  to: "webkitgtk-6.0"
8
9# Core WebView Management
10webview:
11  creation:
12    old:
13      function: "webkit_web_view_new_with_context"
14      params: ["WebKitWebContext*"]
15      returns: "GtkWidget*"
16    new:
17      function: "g_object_new"
18      params: ["WEBKIT_TYPE_WEB_VIEW", "properties..."]
19      returns: "GtkWidget*"
20    
21  settings:
22    hardware_acceleration:
23      function: "webkit_settings_set_hardware_acceleration_policy"
24      params: ["WebKitSettings*", "WebKitHardwareAccelerationPolicy"]
25      values:
26        - WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND
27        - WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS
28        - WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER
29    
30    canvas_acceleration:
31      function: "webkit_settings_set_enable_2d_canvas_acceleration"
32      params: ["WebKitSettings*", "gboolean"]
33    
34    webgl:
35      function: "webkit_settings_set_enable_webgl"
36      params: ["WebKitSettings*", "gboolean"]
37
38# GTK4 Widget Changes
39gtk:
40  window:
41    create:
42      old: "gtk_window_new(GTK_WINDOW_TOPLEVEL)"
43      new: "gtk_window_new()"
44    
45    add_child:
46      old: "gtk_container_add(container, widget)"
47      new: "gtk_window_set_child(window, widget)"
48    
49    destroy:
50      old: "gtk_widget_destroy(widget)"
51      new: "gtk_window_destroy(GTK_WINDOW(widget))"
52
53  events:
54    key_press:
55      old:
56        signal: "key-press-event"
57        callback: "gboolean (*)(GtkWidget*, GdkEventKey*, gpointer)"
58      new:
59        controller: "gtk_event_controller_key_new()"
60        signal: "key-pressed"
61        callback: "gboolean (*)(GtkEventControllerKey*, guint, guint, GdkModifierType, gpointer)"
62    
63    button_press:
64      old:
65        signal: "button-press-event"
66        callback: "gboolean (*)(GtkWidget*, GdkEventButton*, gpointer)"
67      new:
68        controller: "gtk_gesture_click_new()"
69        signal: "pressed"
70        callback: "void (*)(GtkGestureClick*, gint, gdouble, gdouble, gpointer)"
71
72# Network Session (replaces WebContext)
73network:
74  session:
75    old:
76      type: "WebKitWebContext"
77      data_manager: "webkit_website_data_manager_new"
78    new:
79      type: "WebKitNetworkSession"
80      create: "webkit_network_session_new"
81      ephemeral: "webkit_network_session_new_ephemeral"
82      default: "webkit_network_session_get_default"
83
84# Build Configuration
85build:
86  pkg_config:
87    old:
88      - "webkit2gtk-4.0"
89      - "gtk+-3.0"
90      - "javascriptcoregtk-4.0"
91    new:
92      - "webkitgtk-6.0"
93      - "gtk4"
94      - "javascriptcoregtk-6.0"
95  
96  headers:
97    old:
98      - "#include <webkit2/webkit2.h>"
99      - "#include <gtk/gtk.h>"
100    new:
101      - "#include <webkit/webkit.h>"
102      - "#include <gtk/gtk.h>"
103
104# Compatibility Requirements
105compatibility:
106  minimum_gtk: "4.0"
107  minimum_webkit: "2.40"  # First version with webkitgtk-6.0
108  required_features:
109    - hardware_acceleration_policy
110    - network_session
111    - sandbox_always_enabled

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