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() {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user