diff --git a/Services/WebContent/ImageCodecPluginSerenity.cpp b/Services/WebContent/ImageCodecPluginSerenity.cpp deleted file mode 100644 index e4c4ff9d427..00000000000 --- a/Services/WebContent/ImageCodecPluginSerenity.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2022, Dex♪ - * Copyright (c) 2022, Andreas Kling - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include "ImageCodecPluginSerenity.h" -#include - -namespace WebContent { - -ImageCodecPluginSerenity::ImageCodecPluginSerenity() = default; -ImageCodecPluginSerenity::~ImageCodecPluginSerenity() = default; - -NonnullRefPtr> ImageCodecPluginSerenity::decode_image(ReadonlyBytes bytes, Function(Web::Platform::DecodedImage&)> on_resolved, Function on_rejected) -{ - if (!m_client) { - m_client = ImageDecoderClient::Client::try_create().release_value_but_fixme_should_propagate_errors(); - m_client->on_death = [&] { - m_client = nullptr; - }; - } - - auto promise = Core::Promise::construct(); - if (on_resolved) - promise->on_resolution = move(on_resolved); - if (on_rejected) - promise->on_rejection = move(on_rejected); - - auto image_decoder_promise = m_client->decode_image( - bytes, - [promise](ImageDecoderClient::DecodedImage& result) -> ErrorOr { - // FIXME: Remove this codec plugin and just use the ImageDecoderClient directly to avoid these copies - Web::Platform::DecodedImage decoded_image; - decoded_image.is_animated = result.is_animated; - decoded_image.loop_count = result.loop_count; - for (auto const& frame : result.frames) { - decoded_image.frames.empend(move(frame.bitmap), frame.duration); - } - promise->resolve(move(decoded_image)); - return {}; - }, - [promise](auto& error) { - promise->reject(Error::copy(error)); - }); - - return promise; -} - -} diff --git a/Services/WebContent/ImageCodecPluginSerenity.h b/Services/WebContent/ImageCodecPluginSerenity.h deleted file mode 100644 index 7f58342e600..00000000000 --- a/Services/WebContent/ImageCodecPluginSerenity.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2022, Dex♪ - * Copyright (c) 2022, Andreas Kling - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include -#include - -namespace ImageDecoderClient { -class Client; -} - -namespace WebContent { - -class ImageCodecPluginSerenity final : public Web::Platform::ImageCodecPlugin { -public: - ImageCodecPluginSerenity(); - virtual ~ImageCodecPluginSerenity() override; - - virtual NonnullRefPtr> decode_image(ReadonlyBytes, ESCAPING Function(Web::Platform::DecodedImage&)> on_resolved, ESCAPING Function on_rejected) override; - -private: - RefPtr m_client; -}; - -}