elementary / elementary/flatpak-platform

WebKitGTK Crash

Open
#228 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Meson
Stars
57
Forks
11
Avg merge
4h 2m
Merged PRs (30d)
4

Description

### What Happened?

A GTK4/WebKitGTK Flatpak app crashes its WebKit web process on `io.elementary.Platform//8`, but the same app logic works on `org.gnome.Platform`.

In my app, the user-visible symptom was:

- preview pane stays blank
- no WebKit context menu appears

The key runtime log on the failing platform was:

```text
Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...
```

## Affected Setup

- App type: GTK4 + WebKitGTK 6.0 Flatpak app
- Failing runtime: `io.elementary.Platform//8`
- Working runtimes tested:
- `org.gnome.Platform//47`

## Initial Symptom

Inside the Flatpak build on elementary runtime:

- `WebKit.WebView` area stayed blank
- right-click context menu did not appear
- native non-Flatpak app did not show the issue

## Isolation Results

The following app-level factors were ruled out:

- rendered app HTML/CSS/JS payload
- JavaScript bridge registration
- `evaluate_javascript()` timing
- app window layout and pane structure
- startup order / initial render flow

The following WebKit settings/workarounds were tested:

- `hardware_acceleration_policy = NEVER`
- `enable_webgl = false`
- `enable_webaudio = false`
- `WEBKIT_DISABLE_DMABUF_RENDERER=1`
- `WEBKIT_DISABLE_COMPOSITING_MODE=1`
- `LIBGL_ALWAYS_SOFTWARE=1`
- `GALLIUM_DRIVER=llvmpipe`
- `GSK_RENDERER=cairo`
- `GDK_DISABLE=egl`

These were not sufficient to make the app work on `io.elementary.Platform//8`.

## Strongest Evidence

The same minimized code path was then built against `org.gnome.Platform//47`.

On GNOME runtime:

- `WebKit.WebView` stayed alive
- context menu worked
- no `EGL_BAD_PARAMETER` abort

This indicates the problem is not Folio logic, but the runtime stack exposed by `io.elementary.Platform//8`, most likely in WebKitGTK/EGL integration on that platform.

## Actual Result

The WebKit web process aborts during EGL/display initialization, leaving the view blank.

## Practical Impact

This blocks Flatpak apps using WebKitGTK from functioning correctly on the elementary runtime even when the same applications work on other current GNOME runtimes.

### Steps to Reproduce

The issue reproduced in the main app and in a reduced test matrix:

1. Normal app Flatpak on `io.elementary.Platform//8`
2. Reduced test case with:
- plain `Gtk.ApplicationWindow`
- single `WebKit.WebView`
- minimal static HTML
- no custom bridge logic
3. Even more reduced app activation path bypassing the normal app window

The failure still occurred on the elementary runtime.

## Example Working Result On GNOME Runtime

The same reduced app on GNOME runtime produced a live WebKit view and working context menu instead of crashing.

## Expected Result

On `io.elementary.Platform//8`, a GTK4 + WebKitGTK Flatpak app with a simple `WebKit.WebView` should render content or at minimum keep the web process alive when loading trivial HTML.

### OS Version

8.x (Circe)

### OS Architecture

amd64 (on most hardwares)

### Session Type

Secure Session (Wayland, This is the default), Classic Session (X11)

### Software Version

Latest release (I have run all updates)

### Log Output

```shell
## Example Failing Log

[WebPane] constructed, hardware_acceleration=NEVER webgl=false webaudio=false
[WebPane] DISPLAY=:0 WAYLAND_DISPLAY=(null)
Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...
```

### Hardware Info

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.