- 
                Notifications
    You must be signed in to change notification settings 
- Fork 185
[GTK4] Migrate to API version 6.0 of webkit and jsc #2690
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GTK4] Migrate to API version 6.0 of webkit and jsc #2690
Conversation
d901d53    to
    9cc50e0      
    Compare
  
    | (not really ready for review - marked as such so that it runs gtk3 tests on Jenkins and gtk4 on GHA) | 
| GTK4's webkit tests don't seem to work at all on GHA, I get errors like below from this log. This is after adding apt install of libwebkitgtk-6.0-4 
 | 
| While I can run the Browser tests on my machine with xvfb-run, it only runs a few tests before I get  | 
| I have split off the ready to integrate parts into: 
 I am not sure what I am going to do with this PR as it has become rather messy. | 
With the most recent GTK4s the API version is now 6.0 for webkit/jsc and a lot of [deprecated items have been removed](https://webkitgtk.org/reference/webkitgtk/2.50.1/migrating-to-webkitgtk-6.0.html#stop-using-deprecated-apis). This commit brings some of the key implementations to the new webkit API when using GTK4. To make it easier to ensure I don't regress anything I had working, I marked all known tests that need attention for GTK4 with `@Tag("gtk4-todo")`. This allows running the test suite with exclude tag of `gtk4-todo` and have a fast and clean run. This includes a g_critical call when webkitgtk.c cannot dynamically load a called method. When a method cannot be loaded it fairly silently fails (normally returns 0). With the g_critical it makes it easier to spot the problems. This includes a change to the looping while waiting for a response from the async script to make timeout more accurate to the default 10s. TODOs: - [ ] I plan to split this PR up into a few component parts - [ ] Cookies - [ ] Arrays of items (gtk4_convertToJava missing jsc_value_is_object case) - [ ] a bunch of OpenWindowListener cases (see `@Tag("gtk4-todo")` tests) - [ ] probably more - [ ] check which version of API we can use as a reasonable minimum, in particular do we need to deal with API version 5 (version 4 was the version of the API that aligned with GTK3) - [ ] Remove `-DexcludedGroups=gtk4-todo` from GHA workflow Fixes eclipse-platform#2667
WebKit for GTK4 uses bwrap and on Ubuntu 24.04 default settings are not working so turn off apparmor. We are already running in a protected environment, so we don't really need this extra level.
Xvfb runs seem to leak a lot, which I will look into and address, but this is blocking other things.
b0143e7    to
    3794cd7      
    Compare
  
    | All 4 PRs are merged. This one is already providing good results. If it has to start a new so be it. | 
| 
 Thank you. 
 I am abandoning this PR, new work in the remaining areas are covered by this new umbrella issue #2714 | 
With the most recent GTK4s the API version is now 6.0 for webkit/jsc and a lot of deprecated items have been
removed.
This commit brings some of the key implementations to the new webkit API when using GTK4.
To make it easier to ensure I don't regress anything I had working, I marked all known tests that need attention for GTK4 with
@Tag("gtk4-todo"). This allows running the test suite with exclude tag ofgtk4-todoand have a fast and clean run.This includes a g_critical call when webkitgtk.c cannot dynamically load a called method. When a method cannot be loaded it fairly silently fails (normally returns 0). With the g_critical it makes it easier to spot the problems.
This includes a change to the looping while waiting for a response from the async script to make timeout more accurate to the default 10s.
TODOs:
@Tag("gtk4-todo")tests)-DexcludedGroups=gtk4-todofrom GHA workflowFixes #2667