From 4bd11c8eb4428289c047e785a01ef38efea80f92 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Thu, 16 Nov 2023 08:58:38 -0500 Subject: [PATCH] LibPDF: Show a 'rendering unsupported' error for images with /Mask key --- Userland/Libraries/LibPDF/CommonNames.h | 1 + Userland/Libraries/LibPDF/Renderer.cpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Userland/Libraries/LibPDF/CommonNames.h b/Userland/Libraries/LibPDF/CommonNames.h index 65b2b6f2bb..d23bdb8987 100644 --- a/Userland/Libraries/LibPDF/CommonNames.h +++ b/Userland/Libraries/LibPDF/CommonNames.h @@ -122,6 +122,7 @@ X(Limits) \ X(Linearized) \ X(ML) \ + X(Mask) \ X(Matrix) \ X(MediaBox) \ X(MissingWidth) \ diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index c528a5d6cd..31d19f0315 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -1198,6 +1198,13 @@ PDFErrorOr Renderer::show_image(NonnullRefPtr image) image_bitmap->set_pixel(i, j, image_color); } } + } else if (image_dict->contains(CommonNames::Mask)) { + auto mask_object = TRY(image_dict->get_object(m_document, CommonNames::Mask)); + if (mask_object->is()) { + return Error::rendering_unsupported_error("/Mask stream objects not yet implemented"); + } else if (mask_object->is()) { + return Error::rendering_unsupported_error("/Mask array objects not yet implemented"); + } } auto image_space = calculate_image_space_transformation(width, height);