Utility: Stand in for the HtmlViewer, offering to open the page in a browser

Instead of the PSP's web browser, a dialog shows the URL the game wants
and opens it in the host's browser on X, or backs out on O. Either way the
game sees the browser closed normally. Platforms that can't open a URL
(the new SYSPROP_CAN_LAUNCH_URL) only offer to back out. Only plain
printable-ASCII http(s) addresses are handed over, and on Linux without a
shell.

What the firmware does (sceUtility_Driver, 6.61, plus
utility/dialog/htmlviewer): the HtmlViewer has its own state apart from the
other dialogs, so they don't block each other, and its calls return
WRONG_TYPE until one has started. The request size picks the 2.00 to 3.00
layout, and InitStart allocates 3.5MB of user memory (4.5MB with options
bit 0x400 from 2.70 on), failing with 800200d9 without it.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-09-25 12:50:23 -06:00
1 parent 3c15b2b112
commit 5f261bd7ff
22 files changed
+373 -11

No files matched your search

+2
View File
@@ -129,6 +129,7 @@
<ClInclude Include="..\..\Core\Dialog\PSPMsgDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPNetconfDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPNpSigninDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPHtmlViewerDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPOskConstants.h" />
<ClInclude Include="..\..\Core\Dialog\PSPOskDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPPlaceholderDialog.h" />
@@ -416,6 +417,7 @@
<ClCompile Include="..\..\Core\Dialog\PSPMsgDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPNetconfDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPNpSigninDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPHtmlViewerDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPOskConstants.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPOskDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPPlaceholderDialog.cpp" />
+2
View File
@@ -42,6 +42,7 @@
<ClCompile Include="..\..\Core\Dialog\PSPMsgDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPNetconfDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPNpSigninDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPHtmlViewerDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPOskConstants.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPOskDialog.cpp" />
<ClCompile Include="..\..\Core\Dialog\PSPPlaceholderDialog.cpp" />
@@ -472,6 +473,7 @@
<ClInclude Include="..\..\Core\Dialog\PSPMsgDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPNetconfDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPNpSigninDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPHtmlViewerDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPOskConstants.h" />
<ClInclude Include="..\..\Core\Dialog\PSPOskDialog.h" />
<ClInclude Include="..\..\Core\Dialog\PSPPlaceholderDialog.h" />
+2
View File
@@ -463,6 +463,8 @@ bool System_GetPropertyBool(SystemProperty prop) {
}
case SYSPROP_HAS_FILE_BROWSER:
return true;
case SYSPROP_CAN_LAUNCH_URL:
return true;
case SYSPROP_HAS_FOLDER_BROWSER:
return true;
case SYSPROP_HAS_IMAGE_BROWSER: