summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFearlessTobi <thm.frey@gmail.com>2020-03-01 22:25:36 +0100
committerFearlessTobi <thm.frey@gmail.com>2020-03-22 16:01:13 +0100
commit977418c65bdaa3f1157eafff0a4608e483b0bacb (patch)
tree614f81e5e5c0c196e1ca958fc3794654bad1dd63
parentca7618684ce4be87673653e31631cafd487d7176 (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.cpp6
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;
}