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

headless-browser: Port screenshot output to Core::Stream

As noted in https://github.com/SerenityOS/serenity/issues/15239
`headless-browser` is currently broken, with or without these changes.
This commit is contained in:
Sam Atkins 2022-09-14 14:17:24 +01:00 committed by Linus Groh
parent 2228786329
commit 78a94cd3b7

View file

@ -16,7 +16,6 @@
#include <LibCore/ConfigFile.h> #include <LibCore/ConfigFile.h>
#include <LibCore/EventLoop.h> #include <LibCore/EventLoop.h>
#include <LibCore/File.h> #include <LibCore/File.h>
#include <LibCore/IODevice.h>
#include <LibCore/MemoryStream.h> #include <LibCore/MemoryStream.h>
#include <LibCore/Stream.h> #include <LibCore/Stream.h>
#include <LibCore/System.h> #include <LibCore/System.h>
@ -725,7 +724,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
if (Core::File::exists(output_file_path)) if (Core::File::exists(output_file_path))
[[maybe_unused]] [[maybe_unused]]
auto ignored = Core::File::remove(output_file_path, Core::File::RecursionMode::Disallowed, true); auto ignored = Core::File::remove(output_file_path, Core::File::RecursionMode::Disallowed, true);
auto output_file = MUST(Core::File::open(output_file_path, Core::OpenMode::WriteOnly)); auto output_file = MUST(Core::Stream::File::open(output_file_path, Core::Stream::OpenMode::Write));
auto output_rect = page_client->screen_rect(); auto output_rect = page_client->screen_rect();
auto output_bitmap = MUST(Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, output_rect.size())); auto output_bitmap = MUST(Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, output_rect.size()));
@ -733,7 +732,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
page_client->paint(output_rect, output_bitmap); page_client->paint(output_rect, output_bitmap);
auto image_buffer = Gfx::PNGWriter::encode(output_bitmap); auto image_buffer = Gfx::PNGWriter::encode(output_bitmap);
output_file->write(image_buffer.data(), image_buffer.size()); MUST(output_file->write(image_buffer.bytes()));
exit(0); exit(0);
}); });