Skip to content

webOS: fix file browser hang when opening filesystem root#19203

Open
gprot42 wants to merge 2 commits into
libretro:masterfrom
gprot42:pr/webos-file-browser-hang
Open

webOS: fix file browser hang when opening filesystem root#19203
gprot42 wants to merge 2 commits into
libretro:masterfrom
gprot42:pr/webos-file-browser-hang

Conversation

@gprot42

@gprot42 gprot42 commented Jul 14, 2026

Copy link
Copy Markdown

Summary

On webOS, RetroArch runs under jailer. Opening Load Content and selecting filesystem root (/), or navigating Parent Directory up to /, can freeze the UI. Under the jail, directory enumeration touches virtual filesystems such as /proc and /sys, which stalls the main thread.

This change keeps the file browser on safe storage locations and refuses to treat / as a normal browsable directory on webOS.

Changes

  1. frontend/drivers/platform_unix.c — Safe webOS drive list (app package, media, USB, temp); do not offer /
  2. menu/menu_displaylist.c — If path is /, re-show drive list instead of readdir on jail root
  3. libretro-common/lists/dir_list.c — Skip proc/sys/dev/run when listing /

Test plan

  • webOS TV (jailer): Load Content opens without hang
  • Opening or navigating to / does not freeze; safe drives shown
  • Can still open /media/internal, /media/developer, app directory
  • Non-webOS platforms unchanged

Notes

Companion PR for Load Content visibility (empty file list / wrong start dir) stacks on this branch.

Previously opened against the wrong fork (webosbrew#14); reopening here per maintainer guidance.

Under jailer, readdir/stat on / can stall the UI via /proc and /sys.
Do not offer "/" as a drive, redirect root back to the safe drive list,
and skip virtual FS nodes if root is enumerated.
Fixes CI webOS compile failure: implicit declaration of string_is_equal
when skipping virtual FS nodes under jail root.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant