Repository navigation
Conversation
Deses
force-pushed
the
feat/webbrowserdialog-cookie-calls
branch
from
October 8, 2026 14:03
bf9e74e to
24b06eb
Compare
This was referenced Oct 8, 2026
Deses
force-pushed
the
feat/webbrowserdialog-cookie-calls
branch
from
October 8, 2026 14:17
24b06eb to
3fece9c
Compare
Deses
marked this pull request as ready for review
October 8, 2026 14:17
Author
|
All three are text overlaps in
None of them implements these three calls and this PR does not build on any of them, so Depends on stays none. Whichever merges first, this branch is rebased on |
… ResetCookie, OpenForPredeterminedContent
Deses
force-pushed
the
feat/webbrowserdialog-cookie-calls
branch
from
October 8, 2026 15:22
3fece9c to
582e598
Compare
9 tasks done
9 tasks done
Collaborator
|
Closing: these three calls come from import lists, no title is shown stopping at them on main, and nothing reads the cookie store yet. Reopen when one is a title's next stop on main, with the log line. |
ycbuzi
pushed a commit
to ycbuzi/AnyPS5
that referenced
this pull request
Oct 10, 2026
…WebBrowserDialogSetCookie, ResetCookie, OpenForPredeterminedContent Harvested from upstream (closed unmerged); library completion 2925/3298 -> 2928/3298. Additive conflicts resolved by keeping both sides: docs/dev/TechnicalDebt.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011krDVCnnMQPaEFEqCDnKmA
11 tasks done
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
Implements three
libSceWebBrowserDialogcalls (core/libs/prx/libSceWebBrowserDialog/Export.cpp).int sceWebBrowserDialogSetCookie(const SceWebBrowserDialogSetCookieParam* param)(NIDTZnDVkP91Rg). The param is 280 bytes: size, url, cookie, 256 reserved bytes. ReturnsNOT_INITIALIZED(0x80B80003) beforesceWebBrowserDialogInitializeandARG_NULL(0x80B8000D) for a null param. Throws for a size other than 280, a null url or cookie, or a url/cookie that does not end within its 2048-/4096-byte buffer. Otherwise copies the url and cookie into an in-memory store (mutex-guarded) and returns 0. Allowed in any initialized state, including finished.int sceWebBrowserDialogResetCookie(const SceWebBrowserDialogResetCookieParam* param)(NIDCya+jvTtPqg). The param is 264 bytes: size, 256 reserved bytes. SameNOT_INITIALIZED/ARG_NULLchecks, throws for a size other than 264, otherwise empties the store and returns 0.int sceWebBrowserDialogOpenForPredeterminedContent(const SceWebBrowserDialogParam* param, const SceWebBrowserDialogPredeterminedContentParam* contentParam)(NIDO7dIZQrwVFY). Same state machine assceWebBrowserDialogOpen:NOT_INITIALIZEDwhen not initialized,BUSYwhile running,ARG_NULLwhen either pointer is null, otherwise the dialog finishes at once andsceWebBrowserDialogGetResultreportsUSER_CANCELED. The domain allow-list in the second param is not read.Cookies are kept until
sceWebBrowserDialogResetCookie(Terminate does not clear them). No page is ever loaded, so they are never sent. Nothing in the library reads the store yet; it is the state a future dialog implementation would send. #1002 (closed by its author) accepted and discarded the cookie; this keeps it in a store that ResetCookie empties.TechnicalDebt: WebBrowserDialog is removed from the two "added without an implementation" entries (PPSA12544 Unity plugins: SetCookie; PPSA14632: ResetCookie, OpenForPredeterminedContent). One new "Unknown function info" entry (signature sources, unconfirmed error codes, what throws) and one new "Functional" entry (the dialog shows nothing, domains not read, cookies kept but never sent).
Test
guest_web_browser_dialog(core/libs/tests/GuestWebBrowserDialog.cpp) is extended: the three calls before Initialize, null params, valid cookie set/reset, wrong sizes, null url, unterminated url and cookie throw, the 2047-/4095-character boundary is accepted, OpenForPredeterminedContent after Open with null first/second param and valid params, status FINISHED, result USER_CANCELED, cookie calls in the finished state. The test now linkslibcand callsconfigure_windows_unwind, as the other tests that catch library exceptions do (catching needs the guest libc's__gxx_personality_v0).Not settled: no source gives error codes for these three calls or says whether the cookie calls need an initialized library;
NOT_INITIALIZED/ARG_NULLfollow the library's other calls.SCE_WEB_BROWSER_DIALOG_COOKIE_COUNT(the sample's loop bound) has no known value, so the store has no limit. Recorded in TechnicalDebt.Sources:
src/SharpProspero/Interop/Dialog/WebBrowserDialog.cs(PS5; structs lines 145-189, bindings 252-284, commit 5dfdb4b0): https://github.com/SvenGDK/SharpProspero/blob/5dfdb4b0b166e83dc9ae275001afb695f12c7174/src/SharpProspero/Interop/Dialog/WebBrowserDialog.cstools/ida/db_types.jsonlines 2509-2511 (param counts and pointer types agree with SharpProspero): https://github.com/AlexAltea/orbital/blob/master/tools/ida/db_types.jsonSCE_WEB_BROWSER_DIALOG_COOKIE_URL_SIZE(2048) /COOKIE_DATA_SIZE(4096) buffer sizes: ps5debugVanilla/include/imports.hlines 282-290: https://github.com/someguythatmods/PS5Debug-CleanELF/blob/master/Vanilla/include/imports.hps5_api_webbrowser/webbrowser_dialog_menu.cppin DNNDHH/PS5-PKGs (commit c41e0cd1).sceWebBrowserDialogInitializeat module start-up (line 514).openBrowserSetCookie(lines 408-470) callsResetCookieand thenSetCookieonce per cookie on what its comments call a "temporary buffer", thensceWebBrowserDialogOpen.openBrowserForPredeterminedContent(lines 304-338) fillsdomain[0],domain[1]andsizeand callssceWebBrowserDialogOpenForPredeterminedContent(¶m, ¶m2): https://github.com/DNNDHH/PS5-PKGs/blob/c41e0cd19d7c6a9e9d2b03022e51c200b9ca659e/ps5_api_webbrowser/webbrowser_dialog_menu.cppsrc/core/libraries/web_browser_dialog/webbrowserdialog.cpplines 131-136 (PS4) and the PS5 3.20 library stubs in DNNDHH/PS5-3.20_LibslibSceWebBrowserDialog.clines 111-113.sizeanddomainfields.Side note, not part of this PR: the library's existing
COMMON_DIALOG_ERROR_BUSYis 0x80B80007, which shadPS4'scommondialog.hlists asRESULT_NONE(BUSY there is 0x80B80008); the same value is used by LoginDialog, MsgDialog and CdlgPlayerReview.OpenForPredeterminedContentreuses the library's constant to matchOpen; the state is never RUNNING here, so the path is not reached. Left for a separate PR.Tested
Windows 11, MinGW-w64 GCC 15.2.0, built in this branch's own tree: full build, the
libstarget andctest -R "web_browser|dialog"(8 tests,guest_web_browser_dialogincluded) pass, last on4d03ecf4after an incremental rebuild;check_conventions.pyandcheck_test_registration.pypass. No title run.CI: the upstream runs for this head are waiting for approval (#1631). The same Build workflow ran on the fork for head
582e5984: https://github.com/Deses/AnyPS5/actions/runs/37804534368, Linux and Windows (full build,libs, ctest) and the relinker jobs (Linux, Windows, macOS) green.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)