Make FPDF_GetDocPermissions() consistent for XFA vs. non-XFA The API should consistently return the same value on failure. Bug: pdfium:499 Change-Id: I9568c0cc0da3d7257a05aeccaefb88d208544fed Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/111250 Reviewed-by: Nigi <nigi@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp index ee9dfcd..143933b 100644 --- a/core/fpdfapi/parser/cpdf_document.cpp +++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -397,10 +397,7 @@ } uint32_t CPDF_Document::GetUserPermissions() const { - if (m_pParser) - return m_pParser->GetPermissions(); - - return m_pExtension ? m_pExtension->GetUserPermissions() : 0; + return m_pParser ? m_pParser->GetPermissions() : 0; } RetainPtr<CPDF_StreamAcc> CPDF_Document::GetFontFileStreamAcc(
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h index 9ceff30..fcde3eb 100644 --- a/core/fpdfapi/parser/cpdf_document.h +++ b/core/fpdfapi/parser/cpdf_document.h
@@ -33,7 +33,6 @@ virtual ~Extension() = default; virtual int GetPageCount() const = 0; virtual void DeletePage(int page_index) = 0; - virtual uint32_t GetUserPermissions() const = 0; virtual bool ContainsExtensionForm() const = 0; virtual bool ContainsExtensionFullForm() const = 0; virtual bool ContainsExtensionForegroundForm() const = 0;
diff --git a/fpdfsdk/fpdf_view_embeddertest.cpp b/fpdfsdk/fpdf_view_embeddertest.cpp index 06b337e..6d0a824 100644 --- a/fpdfsdk/fpdf_view_embeddertest.cpp +++ b/fpdfsdk/fpdf_view_embeddertest.cpp
@@ -543,14 +543,7 @@ EXPECT_FALSE(FPDF_GetFileVersion(document(), &version)); EXPECT_EQ(0, version); } - { -#ifdef PDF_ENABLE_XFA - const unsigned long kExpected = static_cast<uint32_t>(-1); -#else // PDF_ENABLE_XFA - const unsigned long kExpected = 0; -#endif // PDF_ENABLE_XFA - EXPECT_EQ(kExpected, FPDF_GetDocPermissions(document())); - } + EXPECT_EQ(0U, FPDF_GetDocPermissions(document())); EXPECT_EQ(-1, FPDF_GetSecurityHandlerRevision(document())); EXPECT_EQ(0, FPDF_GetPageCount(document())); EXPECT_TRUE(FPDF_VIEWERREF_GetPrintScaling(document()));
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp index 7318cee..4450f8a 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp
@@ -266,11 +266,6 @@ m_XFAPageList[page_index].Reset(); } -uint32_t CPDFXFA_Context::GetUserPermissions() const { - // See https://bugs.chromium.org/p/pdfium/issues/detail?id=499 - return 0xFFFFFFFF; -} - bool CPDFXFA_Context::ContainsExtensionForm() const { return m_FormType == FormType::kXFAFull || m_FormType == FormType::kXFAForeground;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.h b/fpdfsdk/fpdfxfa/cpdfxfa_context.h index 4188438..a8b563e 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_context.h +++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.h
@@ -70,7 +70,6 @@ // CPDF_Document::Extension: int GetPageCount() const override; void DeletePage(int page_index) override; - uint32_t GetUserPermissions() const override; bool ContainsExtensionForm() const override; bool ContainsExtensionFullForm() const override; bool ContainsExtensionForegroundForm() const override;