applets/web: Implement the default web browser applet frontend
This commit is contained in:
parent
89df483567
commit
d6d1a8e02c
|
@ -11,4 +11,12 @@ WebBrowserApplet::~WebBrowserApplet() = default;
|
||||||
|
|
||||||
DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = 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
|
} // namespace Core::Frontend
|
||||||
|
|
|
@ -5,17 +5,29 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
|
#include "core/hle/service/am/applets/web_types.h"
|
||||||
|
|
||||||
|
using namespace Service::AM::Applets;
|
||||||
|
|
||||||
namespace Core::Frontend {
|
namespace Core::Frontend {
|
||||||
|
|
||||||
class WebBrowserApplet {
|
class WebBrowserApplet {
|
||||||
public:
|
public:
|
||||||
virtual ~WebBrowserApplet();
|
virtual ~WebBrowserApplet();
|
||||||
|
|
||||||
|
virtual void OpenLocalWebPage(
|
||||||
|
std::string_view local_url,
|
||||||
|
std::function<void(WebExitReason, std::string)> callback) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DefaultWebBrowserApplet final : public WebBrowserApplet {
|
class DefaultWebBrowserApplet final : public WebBrowserApplet {
|
||||||
public:
|
public:
|
||||||
~DefaultWebBrowserApplet() override;
|
~DefaultWebBrowserApplet() override;
|
||||||
|
|
||||||
|
void OpenLocalWebPage(std::string_view local_url,
|
||||||
|
std::function<void(WebExitReason, std::string)> callback) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core::Frontend
|
} // namespace Core::Frontend
|
||||||
|
|
|
@ -356,7 +356,10 @@ void WebBrowser::ExecuteLogin() {
|
||||||
|
|
||||||
void WebBrowser::ExecuteOffline() {
|
void WebBrowser::ExecuteOffline() {
|
||||||
LOG_INFO(Service_AM, "Opening offline document at {}", offline_document);
|
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() {
|
void WebBrowser::ExecuteShare() {
|
||||||
|
|
Reference in New Issue