applets/web: Implement the default web browser applet frontend

This commit is contained in:
Morph 2020-11-15 09:00:19 -05:00
parent 89df483567
commit d6d1a8e02c
3 changed files with 24 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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() {