1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:48:10 +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

@ -41,7 +41,7 @@ bool Download::stop()
return m_client->stop_download({}, *this);
}
void Download::did_finish(Badge<Client>, bool success, u32 total_size, i32 shbuf_id)
void Download::did_finish(Badge<Client>, bool success, u32 total_size, i32 shbuf_id, const IPC::Dictionary& response_headers)
{
if (!on_finish)
return;
@ -52,7 +52,8 @@ void Download::did_finish(Badge<Client>, bool success, u32 total_size, i32 shbuf
shared_buffer = SharedBuffer::create_from_shbuf_id(shbuf_id);
payload = ByteBuffer::wrap(shared_buffer->data(), total_size);
}
on_finish(success, payload, move(shared_buffer));
on_finish(success, payload, move(shared_buffer), response_headers.entries());
}
void Download::did_progress(Badge<Client>, Optional<u32> total_size, u32 downloaded_size)