/*
* Copyright (c) 2024, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/NonnullOwnPtr.h>
#include <AK/Vector.h>
#include <LibIPC/Forward.h>
#include <LibSQL/SQLClient.h>
#include <LibWebView/Forward.h>
namespace Ladybird {
struct ApplicationBridgeImpl;
class WebViewBridge;
class ApplicationBridge {
public:
ApplicationBridge();
~ApplicationBridge();
ErrorOr<void> launch_request_server(Vector<ByteString> const& certificates);
ErrorOr<NonnullRefPtr<SQL::SQLClient>> launch_sql_server();
ErrorOr<NonnullRefPtr<WebView::WebContentClient>> launch_web_content(WebViewBridge&);
ErrorOr<IPC::File> launch_web_worker();
void dump_connection_info();
private:
NonnullOwnPtr<ApplicationBridgeImpl> m_impl;
};
}