1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

ProtocolServer: Pass HTTP response headers to the client

We now store the response headers in a download object on the protocol
server side and pass it to the client when finishing up a download.

Response headers are passed as an IPC::Dictionary. :^)
This commit is contained in:
Andreas Kling 2020-05-03 22:20:49 +02:00
parent a83d74b38c
commit eb6e35a1be
18 changed files with 49 additions and 30 deletions

View file

@ -31,6 +31,7 @@
#include <AK/Function.h>
#include <AK/RefCounted.h>
#include <AK/WeakPtr.h>
#include <LibIPC/Forward.h>
namespace Protocol {
@ -46,10 +47,10 @@ public:
int id() const { return m_download_id; }
bool stop();
Function<void(bool success, const ByteBuffer& payload, RefPtr<SharedBuffer> payload_storage)> on_finish;
Function<void(bool success, const ByteBuffer& payload, RefPtr<SharedBuffer> payload_storage, const HashMap<String, String>& response_headers)> on_finish;
Function<void(Optional<u32> total_size, u32 downloaded_size)> on_progress;
void did_finish(Badge<Client>, bool success, u32 total_size, i32 shbuf_id);
void did_finish(Badge<Client>, bool success, u32 total_size, i32 shbuf_id, const IPC::Dictionary& response_headers);
void did_progress(Badge<Client>, Optional<u32> total_size, u32 downloaded_size);
private: