Serenity Operating System
at master 53 lines 1.6 kB view raw
1/* 2 * Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Function.h> 10#include <AK/URL.h> 11#include <LibWeb/Loader/ResourceLoader.h> 12 13namespace Protocol { 14class Request; 15class RequestClient; 16} 17 18namespace WebView { 19 20class RequestServerRequestAdapter 21 : public Web::ResourceLoaderConnectorRequest 22 , public Weakable<RequestServerRequestAdapter> { 23public: 24 static ErrorOr<NonnullRefPtr<RequestServerRequestAdapter>> try_create(NonnullRefPtr<Protocol::Request>); 25 virtual ~RequestServerRequestAdapter() override; 26 27 virtual void set_should_buffer_all_input(bool) override; 28 virtual bool stop() override; 29 30 virtual void stream_into(Stream&) override; 31 32private: 33 RequestServerRequestAdapter(NonnullRefPtr<Protocol::Request>); 34 NonnullRefPtr<Protocol::Request> m_request; 35}; 36 37class RequestServerAdapter : public Web::ResourceLoaderConnector { 38public: 39 static ErrorOr<NonnullRefPtr<RequestServerAdapter>> try_create(); 40 virtual ~RequestServerAdapter() override; 41 42 virtual void prefetch_dns(AK::URL const& url) override; 43 virtual void preconnect(AK::URL const& url) override; 44 45 virtual RefPtr<Web::ResourceLoaderConnectorRequest> start_request(DeprecatedString const& method, URL const&, HashMap<DeprecatedString, DeprecatedString> const& request_headers = {}, ReadonlyBytes request_body = {}, Core::ProxyData const& = {}) override; 46 47private: 48 RequestServerAdapter(NonnullRefPtr<Protocol::RequestClient> protocol_client); 49 50 RefPtr<Protocol::RequestClient> m_protocol_client; 51}; 52 53}