diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/frontend/applets/web_browser.cpp | 9 | ||||
| -rw-r--r-- | src/core/frontend/applets/web_browser.h | 8 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/web_browser.cpp | 12 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/web_browser.h | 2 |
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 | ||
| 23 | void 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 | ||
| 23 | class DefaultWebBrowserApplet final : public WebBrowserApplet { | 27 | class 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 | ||
| 410 | void WebBrowser::InitializeShare() {} | 410 | void WebBrowser::InitializeShare() {} |
| 411 | 411 | ||
| 412 | void WebBrowser::InitializeWeb() {} | 412 | void WebBrowser::InitializeWeb() { |
| 413 | external_url = ParseStringValue(GetInputTLVData(WebArgInputTLVType::InitialURL).value()); | ||
| 414 | } | ||
| 413 | 415 | ||
| 414 | void WebBrowser::InitializeWifi() {} | 416 | void WebBrowser::InitializeWifi() {} |
| 415 | 417 | ||
| @@ -456,8 +458,12 @@ void WebBrowser::ExecuteShare() { | |||
| 456 | } | 458 | } |
| 457 | 459 | ||
| 458 | void WebBrowser::ExecuteWeb() { | 460 | void 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 | ||
| 463 | void WebBrowser::ExecuteWifi() { | 469 | void 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 | ||