diff options
author | FearlessTobi <thm.frey@gmail.com> | 2020-03-01 22:25:36 +0100 |
---|---|---|
committer | FearlessTobi <thm.frey@gmail.com> | 2020-03-22 16:01:13 +0100 |
commit | 977418c65bdaa3f1157eafff0a4608e483b0bacb (patch) | |
tree | 614f81e5e5c0c196e1ca958fc3794654bad1dd63 | |
parent | ca7618684ce4be87673653e31631cafd487d7176 (diff) |
core/web_browser: Allow WebApplet to exit gracefully when an error occurs
Currently, yuzu just freezes when an error occurs while Initializing the WebApplet.
From a user perspective, this obviously isn't great as the game just softlocks.
With this change, yuzu will call the Finalize method, so to the game it seems like as the user just exited the WebApplet normally.
This works around https://github.com/yuzu-emu/yuzu/issues/2852.
-rw-r--r-- | src/core/hle/service/am/applets/web_browser.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/service/am/applets/web_browser.cpp b/src/core/hle/service/am/applets/web_browser.cpp index 12443c910..9f30e167d 100644 --- a/src/core/hle/service/am/applets/web_browser.cpp +++ b/src/core/hle/service/am/applets/web_browser.cpp @@ -254,6 +254,12 @@ void WebBrowser::Execute() { if (status != RESULT_SUCCESS) { complete = true; + + // This is a workaround in order not to softlock yuzu when an error happens during the + // webapplet init. In order to avoid an svcBreak, the status is set to RESULT_SUCCESS + Finalize(); + status = RESULT_SUCCESS; + return; } |