summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/frontend/applets/web_browser.cpp9
-rw-r--r--src/core/frontend/applets/web_browser.h8
-rw-r--r--src/core/hle/service/am/applets/web_browser.cpp12
-rw-r--r--src/core/hle/service/am/applets/web_browser.h2
4 files changed, 28 insertions, 3 deletions
diff --git a/src/core/frontend/applets/web_browser.cpp b/src/core/frontend/applets/web_browser.cpp
index a5d8f82ac..50db6a654 100644
--- a/src/core/frontend/applets/web_browser.cpp
+++ b/src/core/frontend/applets/web_browser.cpp
@@ -20,4 +20,13 @@ void DefaultWebBrowserApplet::OpenLocalWebPage(
20 callback(Service::AM::Applets::WebExitReason::WindowClosed, "http://localhost/"); 20 callback(Service::AM::Applets::WebExitReason::WindowClosed, "http://localhost/");
21} 21}
22 22
23void DefaultWebBrowserApplet::OpenExternalWebPage(
24 std::string_view external_url,
25 std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const {
26 LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open external web page at {}",
27 external_url);
28
29 callback(Service::AM::Applets::WebExitReason::WindowClosed, "http://localhost/");
30}
31
23} // namespace Core::Frontend 32} // namespace Core::Frontend
diff --git a/src/core/frontend/applets/web_browser.h b/src/core/frontend/applets/web_browser.h
index 5b0629cfb..1c5ef19a9 100644
--- a/src/core/frontend/applets/web_browser.h
+++ b/src/core/frontend/applets/web_browser.h
@@ -18,6 +18,10 @@ public:
18 virtual void OpenLocalWebPage( 18 virtual void OpenLocalWebPage(
19 std::string_view local_url, std::function<void()> extract_romfs_callback, 19 std::string_view local_url, std::function<void()> extract_romfs_callback,
20 std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0; 20 std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0;
21
22 virtual void OpenExternalWebPage(
23 std::string_view external_url,
24 std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0;
21}; 25};
22 26
23class DefaultWebBrowserApplet final : public WebBrowserApplet { 27class DefaultWebBrowserApplet final : public WebBrowserApplet {
@@ -27,6 +31,10 @@ public:
27 void OpenLocalWebPage(std::string_view local_url, std::function<void()> extract_romfs_callback, 31 void OpenLocalWebPage(std::string_view local_url, std::function<void()> extract_romfs_callback,
28 std::function<void(Service::AM::Applets::WebExitReason, std::string)> 32 std::function<void(Service::AM::Applets::WebExitReason, std::string)>
29 callback) const override; 33 callback) const override;
34
35 void OpenExternalWebPage(std::string_view external_url,
36 std::function<void(Service::AM::Applets::WebExitReason, std::string)>
37 callback) const override;
30}; 38};
31 39
32} // namespace Core::Frontend 40} // namespace Core::Frontend
diff --git a/src/core/hle/service/am/applets/web_browser.cpp b/src/core/hle/service/am/applets/web_browser.cpp
index 9c8be156f..2ab420789 100644
--- a/src/core/hle/service/am/applets/web_browser.cpp
+++ b/src/core/hle/service/am/applets/web_browser.cpp
@@ -409,7 +409,9 @@ void WebBrowser::InitializeOffline() {
409 409
410void WebBrowser::InitializeShare() {} 410void WebBrowser::InitializeShare() {}
411 411
412void WebBrowser::InitializeWeb() {} 412void WebBrowser::InitializeWeb() {
413 external_url = ParseStringValue(GetInputTLVData(WebArgInputTLVType::InitialURL).value());
414}
413 415
414void WebBrowser::InitializeWifi() {} 416void WebBrowser::InitializeWifi() {}
415 417
@@ -456,8 +458,12 @@ void WebBrowser::ExecuteShare() {
456} 458}
457 459
458void WebBrowser::ExecuteWeb() { 460void WebBrowser::ExecuteWeb() {
459 LOG_WARNING(Service_AM, "(STUBBED) called, Web Applet is not implemented"); 461 LOG_INFO(Service_AM, "Opening external URL at {}", external_url);
460 WebBrowserExit(WebExitReason::EndButtonPressed); 462
463 frontend.OpenExternalWebPage(external_url,
464 [this](WebExitReason exit_reason, std::string last_url) {
465 WebBrowserExit(exit_reason, last_url);
466 });
461} 467}
462 468
463void WebBrowser::ExecuteWifi() { 469void WebBrowser::ExecuteWifi() {
diff --git a/src/core/hle/service/am/applets/web_browser.h b/src/core/hle/service/am/applets/web_browser.h
index 936a49a86..04c274754 100644
--- a/src/core/hle/service/am/applets/web_browser.h
+++ b/src/core/hle/service/am/applets/web_browser.h
@@ -79,6 +79,8 @@ private:
79 std::string offline_document; 79 std::string offline_document;
80 FileSys::VirtualFile offline_romfs; 80 FileSys::VirtualFile offline_romfs;
81 81
82 std::string external_url;
83
82 Core::System& system; 84 Core::System& system;
83}; 85};
84 86