Repository navigation
Conversation
Open the URI in the host's default browser: ShellExecuteW on Windows, xdg-open on Linux and open on macOS. The (uri, param) signature follows the public homebrew callers, which all pass a null param; a non-null param and a scheme other than http or https throw. A null or empty URI returns SYSTEM_SERVICE_ERROR_PARAMETER. PPSA69420 (ScreenTester5 01.000.000) imports it (#1578).
This was referenced Oct 9, 2026
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
Contributor
Author
|
Closing in favour of #2065, which was opened a few minutes before this one and implements the same export. One note for whoever settles the behaviour: this PR opened the URI in the host's default browser. A loopback page like RommPS's |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
ScreenTester5 (PPSA69420, Marice/ScreenTester5 01.000.000) imports
sceSystemServiceLaunchWebBrowser(-+3hY+y8bNo), one of its nine absent imports in the #1578 audit. Onmainf145139,tools/import_audit.pyon the relinked release lists it as the only absent libSceSystemService import; the other eight are libkernel (sysctl,sysctlbyname,sigaction,pthread_sigmask,sigaddset,sigemptyset,pthread_set_name_np,pthread_setcanceltype), each with an open PR.The export opens the URI in the host's default browser and returns once the browser has started:
ShellExecuteWon Windows,xdg-openon Linux,openon macOS.Signature
(const char* uri, const void* param). No reimplementation has a body for it: shadPS4 stubs it without parameters, OpenOrbis declares itvoid(), and KytyPS5, SharpProspero, sharpemu and fpPS4 don't have it. The public callers agree on two arguments and all pass a nullparam: CTurt's PS4 userland write-up (int (*)(const char *uri, void *), called withNULL), elf-launcher (sceSystemServiceLaunchWebBrowser("http://127.0.0.1:1000/", 0)) and stremio-ps4 (extern "C" int sceSystemServiceLaunchWebBrowser(const char *uri, void *param), called withNULL).SYSTEM_SERVICE_ERROR_PARAMETER, like the library's other argument checks.paramthrows: its layout is unknown.httpandhttpsURIs are handed to the host; another scheme throws, so a title can't hand the host shell a file path or an executable.Recorded in TechnicalDebt: the console's error for a bad URI, whether the call waits for the browser, and the overlay status and events a title sees while the browser is up are unverified;
sceSystemServiceGetStatuskeeps reporting no overlay and no event is queued.Refs #1578.
Tested
Windows 11 (10.0.26200), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release,
BUILD_TESTING=ON,ANYPS5_ENABLE_SPIRV_TOOLS=ON, RTX 3080.guest_system_servicenow covers the null and empty URI, a non-nullparam, andftp://,file://, scheme-less andhttp:/URIs. It passes, and the six SystemService tests pass together..prxfrom a small host program:https://example.com/returned 0 and opened the default browser;ftp://example.com/threw with the scheme message.--windows --registry:tools/import_audit.pygoes from 9 absent imports onmainto 8 with this PR, and the patchedlibSceSystemService.prxexports-+3hY+y8bNo. The title doesn't start yet (the libkernel imports above), so the call is not reached on a title.ANYPS5_REQUIRE_VULKAN=1 --parallel 4: 491 of 491 pass in 106 s, none over 30 s.python tools/check_conventions.py --base origin/mainpasses.Not built on Linux or macOS.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)