2020-11-08 13:17:12 +01:00
|
|
|
// Copyright 2020 yuzu Emulator Project
|
2018-12-24 22:21:12 +01:00
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2020-11-08 13:17:12 +01:00
|
|
|
#include "common/common_funcs.h"
|
|
|
|
#include "common/common_types.h"
|
|
|
|
#include "core/hle/result.h"
|
2018-12-24 22:21:12 +01:00
|
|
|
#include "core/hle/service/am/applets/applets.h"
|
2020-11-09 05:27:33 +01:00
|
|
|
#include "core/hle/service/am/applets/web_types.h"
|
2018-12-24 22:21:12 +01:00
|
|
|
|
2019-07-11 06:53:55 +02:00
|
|
|
namespace Core {
|
|
|
|
class System;
|
|
|
|
}
|
|
|
|
|
2018-12-24 22:21:12 +01:00
|
|
|
namespace Service::AM::Applets {
|
|
|
|
|
|
|
|
class WebBrowser final : public Applet {
|
|
|
|
public:
|
2020-11-08 13:17:12 +01:00
|
|
|
WebBrowser(Core::System& system_, const Core::Frontend::WebBrowserApplet& frontend_);
|
2019-06-05 18:18:53 +02:00
|
|
|
|
2018-12-24 22:21:12 +01:00
|
|
|
~WebBrowser() override;
|
|
|
|
|
|
|
|
void Initialize() override;
|
|
|
|
|
|
|
|
bool TransactionComplete() const override;
|
|
|
|
ResultCode GetStatus() const override;
|
|
|
|
void ExecuteInteractive() override;
|
|
|
|
void Execute() override;
|
|
|
|
|
2020-11-09 05:27:33 +01:00
|
|
|
void WebBrowserExit(WebExitReason exit_reason, std::string last_url = "");
|
|
|
|
|
2018-12-24 22:21:12 +01:00
|
|
|
private:
|
2020-11-09 05:27:33 +01:00
|
|
|
// Initializers for the various types of browser applets
|
|
|
|
void InitializeShop();
|
|
|
|
void InitializeLogin();
|
|
|
|
void InitializeOffline();
|
|
|
|
void InitializeShare();
|
|
|
|
void InitializeWeb();
|
|
|
|
void InitializeWifi();
|
|
|
|
void InitializeLobby();
|
|
|
|
|
|
|
|
// Executors for the various types of browser applets
|
|
|
|
void ExecuteShop();
|
|
|
|
void ExecuteLogin();
|
|
|
|
void ExecuteOffline();
|
|
|
|
void ExecuteShare();
|
|
|
|
void ExecuteWeb();
|
|
|
|
void ExecuteWifi();
|
|
|
|
void ExecuteLobby();
|
|
|
|
|
2020-11-08 13:17:12 +01:00
|
|
|
const Core::Frontend::WebBrowserApplet& frontend;
|
2019-06-05 18:17:31 +02:00
|
|
|
|
2020-11-08 13:17:12 +01:00
|
|
|
bool complete{false};
|
|
|
|
ResultCode status{RESULT_SUCCESS};
|
2019-07-11 06:53:55 +02:00
|
|
|
|
2020-11-09 05:27:33 +01:00
|
|
|
WebAppletVersion web_applet_version;
|
|
|
|
WebArgHeader web_arg_header;
|
|
|
|
WebArgInputTLVMap web_arg_input_tlv_map;
|
|
|
|
|
2019-07-11 06:53:55 +02:00
|
|
|
Core::System& system;
|
2018-12-24 22:21:12 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Service::AM::Applets
|