From b669f92df58dd3497b899d64610043e11448ddea Mon Sep 17 00:00:00 2001 From: MaranBr Date: Mon, 13 Oct 2025 14:51:43 -0400 Subject: [PATCH] Better approach to enabling and disabling the Web Applet --- src/common/settings.h | 1 + .../hle/service/am/frontend/applet_web_browser.cpp | 11 +++++++++++ src/qt_common/uisettings.h | 2 +- src/yuzu/configuration/configure_debug.cpp | 4 ++-- src/yuzu/main.cpp | 4 ++-- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/common/settings.h b/src/common/settings.h index dd9b03f28e..d30b2c651b 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -735,6 +735,7 @@ struct Values { Setting enable_all_controllers{linkage, false, "enable_all_controllers", Category::Debugging}; Setting perform_vulkan_check{linkage, true, "perform_vulkan_check", Category::Debugging}; + Setting disable_web_applet{linkage, true, "disable_web_applet", Category::Debugging}; // Miscellaneous Setting log_filter{linkage, "*:Info", "log_filter", Category::Miscellaneous}; diff --git a/src/core/hle/service/am/frontend/applet_web_browser.cpp b/src/core/hle/service/am/frontend/applet_web_browser.cpp index e35a1daa1e..69eabdc60c 100644 --- a/src/core/hle/service/am/frontend/applet_web_browser.cpp +++ b/src/core/hle/service/am/frontend/applet_web_browser.cpp @@ -6,6 +6,7 @@ #include "common/fs/fs.h" #include "common/fs/path_util.h" #include "common/logging/log.h" +#include "common/settings.h" #include "common/string_util.h" #include "core/core.h" #include "core/file_sys/content_archive.h" @@ -232,6 +233,11 @@ WebBrowser::WebBrowser(Core::System& system_, std::shared_ptr applet_, WebBrowser::~WebBrowser() = default; void WebBrowser::Initialize() { + if (Settings::values.disable_web_applet) { + LOG_INFO(Service_AM, "Web Browser Applet disabled, skipping."); + return; + } + FrontendApplet::Initialize(); LOG_INFO(Service_AM, "Initializing Web Browser Applet."); @@ -295,6 +301,11 @@ void WebBrowser::ExecuteInteractive() { } void WebBrowser::Execute() { + if (Settings::values.disable_web_applet) { + WebBrowserExit(WebExitReason::EndButtonPressed); + return; + } + switch (web_arg_header.shim_kind) { case ShimKind::Shop: ExecuteShop(); diff --git a/src/qt_common/uisettings.h b/src/qt_common/uisettings.h index 4981d98dbf..3362dc47bd 100644 --- a/src/qt_common/uisettings.h +++ b/src/qt_common/uisettings.h @@ -139,7 +139,7 @@ struct Values { Settings::Specialization::Default, true, true}; - Setting disable_web_applet{linkage, true, "disable_web_applet", Category::Ui}; + Setting check_for_updates{linkage, true, "check_for_updates", Category::UiGeneral}; // Discord RPC diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index b825348760..a1a3d94dbc 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp @@ -81,7 +81,7 @@ void ConfigureDebug::SetConfiguration() { ui->perform_vulkan_check->setChecked(Settings::values.perform_vulkan_check.GetValue()); #ifdef YUZU_USE_QT_WEB_ENGINE - ui->disable_web_applet->setChecked(UISettings::values.disable_web_applet.GetValue()); + ui->disable_web_applet->setChecked(Settings::values.disable_web_applet.GetValue()); #else ui->disable_web_applet->setVisible(false); #endif @@ -116,7 +116,7 @@ void ConfigureDebug::ApplyConfiguration() { Settings::values.disable_macro_hle = ui->disable_macro_hle->isChecked(); Settings::values.extended_logging = ui->extended_logging->isChecked(); Settings::values.perform_vulkan_check = ui->perform_vulkan_check->isChecked(); - UISettings::values.disable_web_applet = ui->disable_web_applet->isChecked(); + Settings::values.disable_web_applet = ui->disable_web_applet->isChecked(); Debugger::ToggleConsole(); Common::Log::Filter filter; filter.ParseFilterString(Settings::values.log_filter.GetValue()); diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 44ed29f141..2c991b9208 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -934,7 +934,7 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url, #ifdef YUZU_USE_QT_WEB_ENGINE // Raw input breaks with the web applet, Disable web applets if enabled - if (UISettings::values.disable_web_applet || Settings::values.enable_raw_input) { + if (Settings::values.disable_web_applet || Settings::values.enable_raw_input) { emit WebBrowserClosed(Service::AM::Frontend::WebExitReason::WindowClosed, "http://localhost/"); return; @@ -1007,7 +1007,7 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url, "applet?\n(This can be re-enabled in the Debug settings.)"), QMessageBox::Yes | QMessageBox::No); if (result == QMessageBox::Yes) { - UISettings::values.disable_web_applet = true; + Settings::values.disable_web_applet = true; web_applet->SetFinished(true); } });