applets/web: Implement the default web browser applet frontend
This commit is contained in:
		| @@ -11,4 +11,12 @@ WebBrowserApplet::~WebBrowserApplet() = default; | ||||
|  | ||||
| DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default; | ||||
|  | ||||
| void DefaultWebBrowserApplet::OpenLocalWebPage( | ||||
|     std::string_view local_url, std::function<void(WebExitReason, std::string)> callback) const { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open local web page at {}", | ||||
|                 local_url); | ||||
|  | ||||
|     callback(WebExitReason::WindowClosed, "http://localhost/"); | ||||
| } | ||||
|  | ||||
| } // namespace Core::Frontend | ||||
|   | ||||
| @@ -5,17 +5,29 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <functional> | ||||
| #include <string_view> | ||||
|  | ||||
| #include "core/hle/service/am/applets/web_types.h" | ||||
|  | ||||
| using namespace Service::AM::Applets; | ||||
|  | ||||
| namespace Core::Frontend { | ||||
|  | ||||
| class WebBrowserApplet { | ||||
| public: | ||||
|     virtual ~WebBrowserApplet(); | ||||
|  | ||||
|     virtual void OpenLocalWebPage( | ||||
|         std::string_view local_url, | ||||
|         std::function<void(WebExitReason, std::string)> callback) const = 0; | ||||
| }; | ||||
|  | ||||
| class DefaultWebBrowserApplet final : public WebBrowserApplet { | ||||
| public: | ||||
|     ~DefaultWebBrowserApplet() override; | ||||
|  | ||||
|     void OpenLocalWebPage(std::string_view local_url, | ||||
|                           std::function<void(WebExitReason, std::string)> callback) const override; | ||||
| }; | ||||
|  | ||||
| } // namespace Core::Frontend | ||||
|   | ||||
| @@ -356,7 +356,10 @@ void WebBrowser::ExecuteLogin() { | ||||
|  | ||||
| void WebBrowser::ExecuteOffline() { | ||||
|     LOG_INFO(Service_AM, "Opening offline document at {}", offline_document); | ||||
|     WebBrowserExit(WebExitReason::WindowClosed); | ||||
|     frontend.OpenLocalWebPage(offline_document, | ||||
|                               [this](WebExitReason exit_reason, std::string last_url) { | ||||
|                                   WebBrowserExit(exit_reason, last_url); | ||||
|                               }); | ||||
| } | ||||
|  | ||||
| void WebBrowser::ExecuteShare() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user