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;