You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-some-disable-pdfium-fi...

104 lines
4.5 KiB

From a537480c5738bef1a16e90484d44b8777bd573fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 10 Aug 2022 09:00:34 +0100
Subject: [PATCH] some --disable-pdfium fixes
Change-Id: I33867397cd5783adb90e9dc2c62b037ced131e26
---
desktop/qa/desktop_lib/test_desktop_lib.cxx | 2 ++
filter/qa/pdf.cxx | 9 ++++++++-
svx/qa/unit/core.cxx | 2 ++
svx/source/svdraw/svdpdf.cxx | 2 +-
vcl/qa/cppunit/filter/ipdf/ipdf.cxx | 2 ++
5 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 12e34a58ee5a..aa52f3edc16b 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -697,6 +697,8 @@ void DesktopLOKTest::testSaveAsJsonOptions()
SvMemoryStream aMemory;
aMemory.WriteStream(aFile);
std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get();
+ if (!pPDFium)
+ return;
std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument
= pPDFium->openDocument(aMemory.GetData(), aMemory.GetSize(), OString());
CPPUNIT_ASSERT(pPdfDocument);
diff --git a/filter/qa/pdf.cxx b/filter/qa/pdf.cxx
index 3500bb5dae28..29129f2b08f2 100644
--- a/filter/qa/pdf.cxx
+++ b/filter/qa/pdf.cxx
@@ -59,6 +59,10 @@ constexpr OUStringLiteral DATA_DIRECTORY = u"/filter/qa/data/";
CPPUNIT_TEST_FIXTURE(Test, testSignCertificateSubjectName)
{
+ std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get();
+ if (!pPDFium)
+ return;
+
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer
= xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext
@@ -99,7 +103,6 @@ CPPUNIT_TEST_FIXTURE(Test, testSignCertificateSubjectName)
xFilter->filter(aDescriptor);
// Then make sure the resulting PDF has a signature:
- std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get();
std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument
= pPDFium->openDocument(aStream.GetData(), aStream.GetSize(), OString());
// Without the accompanying fix in place, this test would have failed, as signing was enabled
@@ -110,6 +113,10 @@ CPPUNIT_TEST_FIXTURE(Test, testSignCertificateSubjectName)
CPPUNIT_TEST_FIXTURE(Test, testPdfDecompositionSize)
{
+ std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get();
+ if (!pPDFium)
+ return;
+
// Given an empty Writer document:
getComponent().set(
loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument"));
diff --git a/svx/qa/unit/core.cxx b/svx/qa/unit/core.cxx
index 27e5783e20db..3966010012e6 100644
--- a/svx/qa/unit/core.cxx
+++ b/svx/qa/unit/core.cxx
@@ -70,6 +70,8 @@ CPPUNIT_TEST_FIXTURE(Test, testChartExportToPdf)
// Then make sure we get a valid, non-empty PDF:
auto pPdfium = vcl::pdf::PDFiumLibrary::get();
+ if (!pPdfium)
+ return;
SvMemoryStream aMemory;
aMemory.WriteStream(*aTempFile.GetStream(StreamMode::READ));
std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx
index 13a75fddbb3a..fb608bd2c5cf 100644
--- a/svx/source/svdraw/svdpdf.cxx
+++ b/svx/source/svdraw/svdpdf.cxx
@@ -115,7 +115,7 @@ ImpSdrPdfImport::ImpSdrPdfImport(SdrModel& rModel, SdrLayerID nLay, const tools:
auto const& rVectorGraphicData = rGraphic.getVectorGraphicData();
auto* pData = rVectorGraphicData->getBinaryDataContainer().getData();
sal_Int32 nSize = rVectorGraphicData->getBinaryDataContainer().getSize();
- mpPdfDocument = mpPDFium->openDocument(pData, nSize, OString());
+ mpPdfDocument = mpPDFium ? mpPDFium->openDocument(pData, nSize, OString()) : nullptr;
if (!mpPdfDocument)
return;
diff --git a/vcl/qa/cppunit/filter/ipdf/ipdf.cxx b/vcl/qa/cppunit/filter/ipdf/ipdf.cxx
index 3beedaad0dc0..fa8b7374c5d6 100644
--- a/vcl/qa/cppunit/filter/ipdf/ipdf.cxx
+++ b/vcl/qa/cppunit/filter/ipdf/ipdf.cxx
@@ -128,6 +128,8 @@ CPPUNIT_TEST_FIXTURE(VclFilterIpdfTest, testPDFAddVisibleSignatureLastPage)
// Then: count the # of shapes on the signature widget/annotation.
std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get();
+ if (!pPDFium)
+ return;
SvFileStream aFile(aTempFile.GetURL(), StreamMode::READ);
SvMemoryStream aMemory;
aMemory.WriteStream(aFile);
--
2.37.1