diff options
Diffstat (limited to 'core/fpdfapi/parser')
-rw-r--r-- | core/fpdfapi/parser/cpdf_document.cpp | 13 | ||||
-rw-r--r-- | core/fpdfapi/parser/cpdf_document.h | 1 |
2 files changed, 5 insertions, 9 deletions
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp index 5479a06174..7968d1b019 100644 --- a/core/fpdfapi/parser/cpdf_document.cpp +++ b/core/fpdfapi/parser/cpdf_document.cpp @@ -464,15 +464,10 @@ int CPDF_Document::RetrievePageCount() { } uint32_t CPDF_Document::GetUserPermissions() const { - // https://bugs.chromium.org/p/pdfium/issues/detail?id=499 - if (!m_pParser) { -#ifndef PDF_ENABLE_XFA - return 0; -#else // PDF_ENABLE_XFA - return 0xFFFFFFFF; -#endif - } - return m_pParser->GetPermissions(); + if (m_pParser) + return m_pParser->GetPermissions(); + + return m_pExtension ? m_pExtension->GetUserPermissions() : 0; } CPDF_Font* CPDF_Document::LoadFont(CPDF_Dictionary* pFontDict) { diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h index 013eded765..c2774b163a 100644 --- a/core/fpdfapi/parser/cpdf_document.h +++ b/core/fpdfapi/parser/cpdf_document.h @@ -49,6 +49,7 @@ class CPDF_Document : public CPDF_IndirectObjectHolder { virtual CPDF_Document* GetPDFDoc() const = 0; virtual int GetPageCount() const = 0; virtual void DeletePage(int page_index) = 0; + virtual uint32_t GetUserPermissions() const = 0; }; explicit CPDF_Document(std::unique_ptr<CPDF_Parser> pParser); |