summaryrefslogtreecommitdiff
path: root/core/include
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2016-03-15 14:57:22 -0400
committerDan Sinclair <dsinclair@chromium.org>2016-03-15 14:57:22 -0400
commitaa403d3f68a966e24a6d8e8c109970930f096afb (patch)
treefeee638c1d8cee4b191bf09c2637009bb9cd6f30 /core/include
parente40764862208b8cb76f507c489b01e3795fd93bd (diff)
downloadpdfium-aa403d3f68a966e24a6d8e8c109970930f096afb.tar.xz
core/include/fdpfapi cleanup Part I.
This Cl moves a bunch of the files from core/include/fpdfapi to their correct location outside the core/include tree. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1805603002 .
Diffstat (limited to 'core/include')
-rw-r--r--core/include/fpdfapi/cfdf_document.h36
-rw-r--r--core/include/fpdfapi/cpdf_array.h65
-rw-r--r--core/include/fpdfapi/cpdf_boolean.h35
-rw-r--r--core/include/fpdfapi/cpdf_dictionary.h99
-rw-r--r--core/include/fpdfapi/cpdf_document.h137
-rw-r--r--core/include/fpdfapi/cpdf_indirect_object_holder.h44
-rw-r--r--core/include/fpdfapi/cpdf_name.h35
-rw-r--r--core/include/fpdfapi/cpdf_null.h21
-rw-r--r--core/include/fpdfapi/cpdf_number.h44
-rw-r--r--core/include/fpdfapi/cpdf_object.h161
-rw-r--r--core/include/fpdfapi/cpdf_parser.h173
-rw-r--r--core/include/fpdfapi/cpdf_reference.h51
-rw-r--r--core/include/fpdfapi/cpdf_simple_parser.h35
-rw-r--r--core/include/fpdfapi/cpdf_stream.h61
-rw-r--r--core/include/fpdfapi/cpdf_stream_acc.h46
-rw-r--r--core/include/fpdfapi/cpdf_string.h40
-rw-r--r--core/include/fpdfapi/fpdf_module.h101
-rw-r--r--core/include/fpdfapi/fpdf_parser_decode.h76
-rw-r--r--core/include/fpdfapi/fpdf_render.h263
-rw-r--r--core/include/fpdfapi/fpdf_resource.h4
-rw-r--r--core/include/fpdfapi/fpdf_serial.h105
-rw-r--r--core/include/fpdfapi/ipdf_crypto_handler.h45
-rw-r--r--core/include/fpdfapi/ipdf_data_avail.h80
-rw-r--r--core/include/fpdfapi/ipdf_security_handler.h36
-rw-r--r--core/include/fpdfdoc/fpdf_doc.h12
25 files changed, 11 insertions, 1794 deletions
diff --git a/core/include/fpdfapi/cfdf_document.h b/core/include/fpdfapi/cfdf_document.h
deleted file mode 100644
index 85852cd8cf..0000000000
--- a/core/include/fpdfapi/cfdf_document.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_
-#define CORE_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_
-
-#include "core/include/fpdfapi/cpdf_indirect_object_holder.h"
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_basic.h"
-
-class CPDF_Dictionary;
-
-class CFDF_Document : public CPDF_IndirectObjectHolder {
- public:
- static CFDF_Document* CreateNewDoc();
- static CFDF_Document* ParseFile(IFX_FileRead* pFile,
- FX_BOOL bOwnFile = FALSE);
- static CFDF_Document* ParseMemory(const uint8_t* pData, FX_DWORD size);
- ~CFDF_Document();
-
- FX_BOOL WriteBuf(CFX_ByteTextBuf& buf) const;
- CPDF_Dictionary* GetRoot() const { return m_pRootDict; }
-
- protected:
- CFDF_Document();
- void ParseStream(IFX_FileRead* pFile, FX_BOOL bOwnFile);
-
- CPDF_Dictionary* m_pRootDict;
- IFX_FileRead* m_pFile;
- FX_BOOL m_bOwnFile;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_
diff --git a/core/include/fpdfapi/cpdf_array.h b/core/include/fpdfapi/cpdf_array.h
deleted file mode 100644
index 8e47d9fef5..0000000000
--- a/core/include/fpdfapi/cpdf_array.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_ARRAY_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_ARRAY_H_
-
-#include "core/include/fpdfapi/cpdf_indirect_object_holder.h"
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_basic.h"
-#include "core/include/fxcrt/fx_coordinates.h"
-
-class CPDF_Array : public CPDF_Object {
- public:
- CPDF_Array();
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CPDF_Array* GetArray() const override;
- bool IsArray() const override;
- CPDF_Array* AsArray() override;
- const CPDF_Array* AsArray() const override;
-
- FX_DWORD GetCount() const { return m_Objects.GetSize(); }
- CPDF_Object* GetElement(FX_DWORD index) const;
- CPDF_Object* GetElementValue(FX_DWORD index) const;
- CFX_Matrix GetMatrix();
- CFX_FloatRect GetRect();
- CFX_ByteString GetStringAt(FX_DWORD index) const;
- CFX_ByteStringC GetConstStringAt(FX_DWORD index) const;
- int GetIntegerAt(FX_DWORD index) const;
- FX_FLOAT GetNumberAt(FX_DWORD index) const;
- CPDF_Dictionary* GetDictAt(FX_DWORD index) const;
- CPDF_Stream* GetStreamAt(FX_DWORD index) const;
- CPDF_Array* GetArrayAt(FX_DWORD index) const;
- FX_FLOAT GetFloatAt(FX_DWORD index) const { return GetNumberAt(index); }
-
- void SetAt(FX_DWORD index,
- CPDF_Object* pObj,
- CPDF_IndirectObjectHolder* pObjs = nullptr);
- void InsertAt(FX_DWORD index,
- CPDF_Object* pObj,
- CPDF_IndirectObjectHolder* pObjs = nullptr);
- void RemoveAt(FX_DWORD index, int nCount = 1);
-
- void Add(CPDF_Object* pObj, CPDF_IndirectObjectHolder* pObjs = nullptr);
- void AddNumber(FX_FLOAT f);
- void AddInteger(int i);
- void AddString(const CFX_ByteString& str);
- void AddName(const CFX_ByteString& str);
- void AddReference(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum);
- void AddReference(CPDF_IndirectObjectHolder* pDoc, CPDF_Object* obj) {
- AddReference(pDoc, obj->GetObjNum());
- }
-
- protected:
- ~CPDF_Array() override;
-
- CFX_ArrayTemplate<CPDF_Object*> m_Objects;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_ARRAY_H_
diff --git a/core/include/fpdfapi/cpdf_boolean.h b/core/include/fpdfapi/cpdf_boolean.h
deleted file mode 100644
index 0621c0441c..0000000000
--- a/core/include/fpdfapi/cpdf_boolean.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Boolean : public CPDF_Object {
- public:
- CPDF_Boolean();
- explicit CPDF_Boolean(FX_BOOL value);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CFX_ByteString GetString() const override;
- int GetInteger() const override;
- void SetString(const CFX_ByteString& str) override;
- bool IsBoolean() const override;
- CPDF_Boolean* AsBoolean() override;
- const CPDF_Boolean* AsBoolean() const override;
-
- protected:
- ~CPDF_Boolean() override;
-
- FX_BOOL m_bValue;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_
diff --git a/core/include/fpdfapi/cpdf_dictionary.h b/core/include/fpdfapi/cpdf_dictionary.h
deleted file mode 100644
index e547f75729..0000000000
--- a/core/include/fpdfapi/cpdf_dictionary.h
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_
-
-#include <map>
-
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_coordinates.h"
-#include "core/include/fxcrt/fx_string.h"
-
-class CPDF_IndirectObjectHolder;
-
-class CPDF_Dictionary : public CPDF_Object {
- public:
- using iterator = std::map<CFX_ByteString, CPDF_Object*>::iterator;
- using const_iterator = std::map<CFX_ByteString, CPDF_Object*>::const_iterator;
-
- CPDF_Dictionary();
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CPDF_Dictionary* GetDict() const override;
- bool IsDictionary() const override;
- CPDF_Dictionary* AsDictionary() override;
- const CPDF_Dictionary* AsDictionary() const override;
-
- size_t GetCount() const { return m_Map.size(); }
- CPDF_Object* GetElement(const CFX_ByteStringC& key) const;
- CPDF_Object* GetElementValue(const CFX_ByteStringC& key) const;
- CFX_ByteString GetStringBy(const CFX_ByteStringC& key) const;
- CFX_ByteStringC GetConstStringBy(const CFX_ByteStringC& key) const;
- CFX_ByteString GetStringBy(const CFX_ByteStringC& key,
- const CFX_ByteStringC& default_str) const;
- CFX_ByteStringC GetConstStringBy(const CFX_ByteStringC& key,
- const CFX_ByteStringC& default_str) const;
- CFX_WideString GetUnicodeTextBy(const CFX_ByteStringC& key) const;
- int GetIntegerBy(const CFX_ByteStringC& key) const;
- int GetIntegerBy(const CFX_ByteStringC& key, int default_int) const;
- FX_BOOL GetBooleanBy(const CFX_ByteStringC& key,
- FX_BOOL bDefault = FALSE) const;
- FX_FLOAT GetNumberBy(const CFX_ByteStringC& key) const;
- CPDF_Dictionary* GetDictBy(const CFX_ByteStringC& key) const;
- CPDF_Stream* GetStreamBy(const CFX_ByteStringC& key) const;
- CPDF_Array* GetArrayBy(const CFX_ByteStringC& key) const;
- CFX_FloatRect GetRectBy(const CFX_ByteStringC& key) const;
- CFX_Matrix GetMatrixBy(const CFX_ByteStringC& key) const;
- FX_FLOAT GetFloatBy(const CFX_ByteStringC& key) const {
- return GetNumberBy(key);
- }
-
- FX_BOOL KeyExist(const CFX_ByteStringC& key) const;
- bool IsSignatureDict() const;
-
- // Set* functions invalidate iterators for the element with the key |key|.
- void SetAt(const CFX_ByteStringC& key, CPDF_Object* pObj);
- void SetAtName(const CFX_ByteStringC& key, const CFX_ByteString& name);
- void SetAtString(const CFX_ByteStringC& key, const CFX_ByteString& str);
- void SetAtInteger(const CFX_ByteStringC& key, int i);
- void SetAtNumber(const CFX_ByteStringC& key, FX_FLOAT f);
- void SetAtReference(const CFX_ByteStringC& key,
- CPDF_IndirectObjectHolder* pDoc,
- FX_DWORD objnum);
- void SetAtReference(const CFX_ByteStringC& key,
- CPDF_IndirectObjectHolder* pDoc,
- CPDF_Object* obj) {
- SetAtReference(key, pDoc, obj->GetObjNum());
- }
- void SetAtRect(const CFX_ByteStringC& key, const CFX_FloatRect& rect);
- void SetAtMatrix(const CFX_ByteStringC& key, const CFX_Matrix& matrix);
- void SetAtBoolean(const CFX_ByteStringC& key, FX_BOOL bValue);
-
- void AddReference(const CFX_ByteStringC& key,
- CPDF_IndirectObjectHolder* pDoc,
- FX_DWORD objnum);
-
- // Invalidates iterators for the element with the key |key|.
- void RemoveAt(const CFX_ByteStringC& key);
-
- // Invalidates iterators for the element with the key |oldkey|.
- void ReplaceKey(const CFX_ByteStringC& oldkey, const CFX_ByteStringC& newkey);
-
- iterator begin() { return m_Map.begin(); }
- iterator end() { return m_Map.end(); }
- const_iterator begin() const { return m_Map.begin(); }
- const_iterator end() const { return m_Map.end(); }
-
- protected:
- ~CPDF_Dictionary() override;
-
- std::map<CFX_ByteString, CPDF_Object*> m_Map;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_
diff --git a/core/include/fpdfapi/cpdf_document.h b/core/include/fpdfapi/cpdf_document.h
deleted file mode 100644
index af7e2ab787..0000000000
--- a/core/include/fpdfapi/cpdf_document.h
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_
-
-#include "core/include/fpdfapi/cpdf_indirect_object_holder.h"
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_basic.h"
-
-class CFX_Font;
-class CFX_Matrix;
-class CPDF_ColorSpace;
-class CPDF_DocPageData;
-class CPDF_DocRenderData;
-class CPDF_Font;
-class CPDF_FontEncoding;
-class CPDF_IccProfile;
-class CPDF_Image;
-class CPDF_Pattern;
-class CPDF_StreamAcc;
-
-#define FPDFPERM_PRINT 0x0004
-#define FPDFPERM_MODIFY 0x0008
-#define FPDFPERM_EXTRACT 0x0010
-#define FPDFPERM_ANNOT_FORM 0x0020
-#define FPDFPERM_FILL_FORM 0x0100
-#define FPDFPERM_EXTRACT_ACCESS 0x0200
-#define FPDFPERM_ASSEMBLE 0x0400
-#define FPDFPERM_PRINT_HIGH 0x0800
-#define FPDF_PAGE_MAX_NUM 0xFFFFF
-
-class CPDF_Document : public CFX_PrivateData, public CPDF_IndirectObjectHolder {
- public:
- CPDF_Document();
- explicit CPDF_Document(CPDF_Parser* pParser);
- ~CPDF_Document();
-
- CPDF_Parser* GetParser() const { return m_pParser; }
- CPDF_Dictionary* GetRoot() const { return m_pRootDict; }
- CPDF_Dictionary* GetInfo() const { return m_pInfoDict; }
-
- void GetID(CFX_ByteString& id1, CFX_ByteString& id2) const {
- id1 = m_ID1;
- id2 = m_ID2;
- }
-
- int GetPageCount() const;
- CPDF_Dictionary* GetPage(int iPage);
- int GetPageIndex(FX_DWORD objnum);
- FX_DWORD GetUserPermissions(FX_BOOL bCheckRevision = FALSE) const;
- CPDF_DocPageData* GetPageData() { return GetValidatePageData(); }
- void ClearPageData();
- void RemoveColorSpaceFromPageData(CPDF_Object* pObject);
-
- CPDF_DocRenderData* GetRenderData() { return GetValidateRenderData(); }
- void ClearRenderData();
- void ClearRenderFont();
-
- FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm) const;
-
- // |pFontDict| must not be null.
- CPDF_Font* LoadFont(CPDF_Dictionary* pFontDict);
- CPDF_ColorSpace* LoadColorSpace(CPDF_Object* pCSObj,
- CPDF_Dictionary* pResources = NULL);
-
- CPDF_Pattern* LoadPattern(CPDF_Object* pObj,
- FX_BOOL bShading,
- const CFX_Matrix* matrix = NULL);
-
- CPDF_Image* LoadImageF(CPDF_Object* pObj);
- CPDF_StreamAcc* LoadFontFile(CPDF_Stream* pStream);
- CPDF_IccProfile* LoadIccProfile(CPDF_Stream* pStream);
-
-#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
-
- CPDF_Font* AddWindowsFont(LOGFONTA* pLogFont,
- FX_BOOL bVert,
- FX_BOOL bTranslateName = FALSE);
- CPDF_Font* AddWindowsFont(LOGFONTW* pLogFont,
- FX_BOOL bVert,
- FX_BOOL bTranslateName = FALSE);
-#endif
-#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
- CPDF_Font* AddMacFont(CTFontRef pFont,
- FX_BOOL bVert,
- FX_BOOL bTranslateName = FALSE);
-#endif
-
- CPDF_Font* AddStandardFont(const FX_CHAR* font, CPDF_FontEncoding* pEncoding);
- CPDF_Font* AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert);
- void CreateNewDoc();
-
- CPDF_Dictionary* CreateNewPage(int iPage);
- void DeletePage(int iPage);
-
- void LoadDoc();
- void LoadAsynDoc(CPDF_Dictionary* pLinearized);
- void LoadPages();
-
- protected:
- // Retrieve page count information by getting count value from the tree nodes
- // or walking through the tree nodes to calculate it.
- int RetrievePageCount() const;
- CPDF_Dictionary* _FindPDFPage(CPDF_Dictionary* pPages,
- int iPage,
- int nPagesToGo,
- int level);
- int _FindPageIndex(CPDF_Dictionary* pNode,
- FX_DWORD& skip_count,
- FX_DWORD objnum,
- int& index,
- int level = 0);
- FX_BOOL CheckOCGVisible(CPDF_Dictionary* pOCG, FX_BOOL bPrinting);
- CPDF_DocPageData* GetValidatePageData();
- CPDF_DocRenderData* GetValidateRenderData();
- friend class CPDF_Creator;
- friend class CPDF_Parser;
- friend class CPDF_DataAvail;
- friend class CPDF_OCContext;
-
- CPDF_Dictionary* m_pRootDict;
- CPDF_Dictionary* m_pInfoDict;
- CFX_ByteString m_ID1;
- CFX_ByteString m_ID2;
- FX_BOOL m_bLinearized;
- FX_DWORD m_dwFirstPageNo;
- FX_DWORD m_dwFirstPageObjNum;
- CFX_DWordArray m_PageList;
- CPDF_DocPageData* m_pDocPage;
- CPDF_DocRenderData* m_pDocRender;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_
diff --git a/core/include/fpdfapi/cpdf_indirect_object_holder.h b/core/include/fpdfapi/cpdf_indirect_object_holder.h
deleted file mode 100644
index 9f12323669..0000000000
--- a/core/include/fpdfapi/cpdf_indirect_object_holder.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_
-
-#include <map>
-
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Object;
-class CPDF_Parser;
-
-class CPDF_IndirectObjectHolder {
- public:
- using iterator = std::map<FX_DWORD, CPDF_Object*>::iterator;
- using const_iterator = std::map<FX_DWORD, CPDF_Object*>::const_iterator;
-
- explicit CPDF_IndirectObjectHolder(CPDF_Parser* pParser);
- ~CPDF_IndirectObjectHolder();
-
- CPDF_Object* GetIndirectObject(FX_DWORD objnum);
- FX_DWORD AddIndirectObject(CPDF_Object* pObj);
- void ReleaseIndirectObject(FX_DWORD objnum);
-
- // Takes ownership of |pObj|.
- FX_BOOL InsertIndirectObject(FX_DWORD objnum, CPDF_Object* pObj);
-
- FX_DWORD GetLastObjNum() const { return m_LastObjNum; }
- iterator begin() { return m_IndirectObjs.begin(); }
- const_iterator begin() const { return m_IndirectObjs.begin(); }
- iterator end() { return m_IndirectObjs.end(); }
- const_iterator end() const { return m_IndirectObjs.end(); }
-
- protected:
- CPDF_Parser* m_pParser;
- FX_DWORD m_LastObjNum;
- std::map<FX_DWORD, CPDF_Object*> m_IndirectObjs;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_
diff --git a/core/include/fpdfapi/cpdf_name.h b/core/include/fpdfapi/cpdf_name.h
deleted file mode 100644
index c956244112..0000000000
--- a/core/include/fpdfapi/cpdf_name.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_NAME_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_NAME_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-
-class CPDF_Name : public CPDF_Object {
- public:
- explicit CPDF_Name(const CFX_ByteString& str);
- explicit CPDF_Name(const CFX_ByteStringC& str);
- explicit CPDF_Name(const FX_CHAR* str);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CFX_ByteString GetString() const override;
- CFX_ByteStringC GetConstString() const override;
- CFX_WideString GetUnicodeText() const override;
- void SetString(const CFX_ByteString& str) override;
- bool IsName() const override;
- CPDF_Name* AsName() override;
- const CPDF_Name* AsName() const override;
-
- protected:
- ~CPDF_Name() override;
-
- CFX_ByteString m_Name;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_NAME_H_
diff --git a/core/include/fpdfapi/cpdf_null.h b/core/include/fpdfapi/cpdf_null.h
deleted file mode 100644
index 654c2a4029..0000000000
--- a/core/include/fpdfapi/cpdf_null.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_NULL_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_NULL_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-
-class CPDF_Null : public CPDF_Object {
- public:
- CPDF_Null();
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_NULL_H_
diff --git a/core/include/fpdfapi/cpdf_number.h b/core/include/fpdfapi/cpdf_number.h
deleted file mode 100644
index 8bab95ebc2..0000000000
--- a/core/include/fpdfapi/cpdf_number.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_NUMBER_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_NUMBER_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Number : public CPDF_Object {
- public:
- CPDF_Number();
- explicit CPDF_Number(int value);
- explicit CPDF_Number(FX_FLOAT value);
- explicit CPDF_Number(const CFX_ByteStringC& str);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CFX_ByteString GetString() const override;
- FX_FLOAT GetNumber() const override;
- int GetInteger() const override;
- void SetString(const CFX_ByteString& str) override;
- bool IsNumber() const override;
- CPDF_Number* AsNumber() override;
- const CPDF_Number* AsNumber() const override;
-
- FX_BOOL IsInteger() { return m_bInteger; }
-
- protected:
- ~CPDF_Number() override;
-
- FX_BOOL m_bInteger;
- union {
- int m_Integer;
- FX_FLOAT m_Float;
- };
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_NUMBER_H_
diff --git a/core/include/fpdfapi/cpdf_object.h b/core/include/fpdfapi/cpdf_object.h
deleted file mode 100644
index 97499d140c..0000000000
--- a/core/include/fpdfapi/cpdf_object.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_OBJECT_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_OBJECT_H_
-
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Array;
-class CPDF_Boolean;
-class CPDF_Dictionary;
-class CPDF_Name;
-class CPDF_Null;
-class CPDF_Number;
-class CPDF_Reference;
-class CPDF_Stream;
-class CPDF_String;
-
-class CPDF_Object {
- public:
- enum Type {
- BOOLEAN = 1,
- NUMBER,
- STRING,
- NAME,
- ARRAY,
- DICTIONARY,
- STREAM,
- NULLOBJ,
- REFERENCE
- };
-
- virtual Type GetType() const = 0;
- FX_DWORD GetObjNum() const { return m_ObjNum; }
- FX_DWORD GetGenNum() const { return m_GenNum; }
-
- virtual CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const = 0;
- virtual CPDF_Object* GetDirect() const;
-
- FX_BOOL IsModified() const { return FALSE; }
- void Release();
-
- virtual CFX_ByteString GetString() const;
- virtual CFX_ByteStringC GetConstString() const;
- virtual CFX_WideString GetUnicodeText() const;
- virtual FX_FLOAT GetNumber() const;
- virtual int GetInteger() const;
- virtual CPDF_Dictionary* GetDict() const;
- virtual CPDF_Array* GetArray() const;
-
- virtual void SetString(const CFX_ByteString& str);
-
- virtual bool IsArray() const;
- virtual bool IsBoolean() const;
- virtual bool IsDictionary() const;
- virtual bool IsName() const;
- virtual bool IsNumber() const;
- virtual bool IsReference() const;
- virtual bool IsStream() const;
- virtual bool IsString() const;
-
- virtual CPDF_Array* AsArray();
- virtual const CPDF_Array* AsArray() const;
- virtual CPDF_Boolean* AsBoolean();
- virtual const CPDF_Boolean* AsBoolean() const;
- virtual CPDF_Dictionary* AsDictionary();
- virtual const CPDF_Dictionary* AsDictionary() const;
- virtual CPDF_Name* AsName();
- virtual const CPDF_Name* AsName() const;
- virtual CPDF_Number* AsNumber();
- virtual const CPDF_Number* AsNumber() const;
- virtual CPDF_Reference* AsReference();
- virtual const CPDF_Reference* AsReference() const;
- virtual CPDF_Stream* AsStream();
- virtual const CPDF_Stream* AsStream() const;
- virtual CPDF_String* AsString();
- virtual const CPDF_String* AsString() const;
-
- protected:
- CPDF_Object() : m_ObjNum(0), m_GenNum(0) {}
- virtual ~CPDF_Object();
- void Destroy() { delete this; }
-
- FX_DWORD m_ObjNum;
- FX_DWORD m_GenNum;
-
- friend class CPDF_IndirectObjectHolder;
- friend class CPDF_Parser;
-
- private:
- CPDF_Object(const CPDF_Object& src) {}
-};
-
-inline CPDF_Boolean* ToBoolean(CPDF_Object* obj) {
- return obj ? obj->AsBoolean() : nullptr;
-}
-
-inline const CPDF_Boolean* ToBoolean(const CPDF_Object* obj) {
- return obj ? obj->AsBoolean() : nullptr;
-}
-
-inline CPDF_Number* ToNumber(CPDF_Object* obj) {
- return obj ? obj->AsNumber() : nullptr;
-}
-
-inline const CPDF_Number* ToNumber(const CPDF_Object* obj) {
- return obj ? obj->AsNumber() : nullptr;
-}
-
-inline CPDF_String* ToString(CPDF_Object* obj) {
- return obj ? obj->AsString() : nullptr;
-}
-
-inline const CPDF_String* ToString(const CPDF_Object* obj) {
- return obj ? obj->AsString() : nullptr;
-}
-
-inline CPDF_Name* ToName(CPDF_Object* obj) {
- return obj ? obj->AsName() : nullptr;
-}
-
-inline const CPDF_Name* ToName(const CPDF_Object* obj) {
- return obj ? obj->AsName() : nullptr;
-}
-
-inline CPDF_Array* ToArray(CPDF_Object* obj) {
- return obj ? obj->AsArray() : nullptr;
-}
-
-inline const CPDF_Array* ToArray(const CPDF_Object* obj) {
- return obj ? obj->AsArray() : nullptr;
-}
-
-inline CPDF_Dictionary* ToDictionary(CPDF_Object* obj) {
- return obj ? obj->AsDictionary() : nullptr;
-}
-
-inline const CPDF_Dictionary* ToDictionary(const CPDF_Object* obj) {
- return obj ? obj->AsDictionary() : nullptr;
-}
-inline CPDF_Reference* ToReference(CPDF_Object* obj) {
- return obj ? obj->AsReference() : nullptr;
-}
-
-inline const CPDF_Reference* ToReference(const CPDF_Object* obj) {
- return obj ? obj->AsReference() : nullptr;
-}
-
-inline CPDF_Stream* ToStream(CPDF_Object* obj) {
- return obj ? obj->AsStream() : nullptr;
-}
-
-inline const CPDF_Stream* ToStream(const CPDF_Object* obj) {
- return obj ? obj->AsStream() : nullptr;
-}
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_OBJECT_H_
diff --git a/core/include/fpdfapi/cpdf_parser.h b/core/include/fpdfapi/cpdf_parser.h
deleted file mode 100644
index f2d7343e87..0000000000
--- a/core/include/fpdfapi/cpdf_parser.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_PARSER_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_PARSER_H_
-
-#include <map>
-#include <memory>
-#include <set>
-
-#include "core/include/fxcrt/fx_basic.h"
-
-class CPDF_Array;
-class CPDF_Dictionary;
-class CPDF_Document;
-class CPDF_IndirectObjectHolder;
-class CPDF_Object;
-class CPDF_StreamAcc;
-class CPDF_SyntaxParser;
-class IFX_FileRead;
-class IPDF_CryptoHandler;
-class IPDF_SecurityHandler;
-
-class CPDF_Parser {
- public:
- enum Error {
- SUCCESS = 0,
- FILE_ERROR,
- FORMAT_ERROR,
- PASSWORD_ERROR,
- HANDLER_ERROR
- };
-
- CPDF_Parser();
- ~CPDF_Parser();
-
- Error StartParse(IFX_FileRead* pFile);
- FX_DWORD GetPermissions(FX_BOOL bCheckRevision = FALSE);
-
- void SetPassword(const FX_CHAR* password) { m_Password = password; }
- CFX_ByteString GetPassword() { return m_Password; }
- CPDF_Dictionary* GetTrailer() const { return m_pTrailer; }
- FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; }
- CPDF_Document* GetDocument() const { return m_pDocument; }
-
- FX_DWORD GetRootObjNum();
- FX_DWORD GetInfoObjNum();
- CPDF_Array* GetIDArray();
-
- CPDF_Dictionary* GetEncryptDict() const { return m_pEncryptDict; }
-
- CPDF_Object* ParseIndirectObject(CPDF_IndirectObjectHolder* pObjList,
- FX_DWORD objnum);
-
- FX_DWORD GetLastObjNum() const;
- bool IsValidObjectNumber(FX_DWORD objnum) const;
- FX_FILESIZE GetObjectPositionOrZero(FX_DWORD objnum) const;
- uint8_t GetObjectType(FX_DWORD objnum) const;
- uint16_t GetObjectGenNum(FX_DWORD objnum) const;
- bool IsVersionUpdated() const { return m_bVersionUpdated; }
- bool IsObjectFreeOrNull(FX_DWORD objnum) const;
- FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm);
- IPDF_CryptoHandler* GetCryptoHandler();
- IFX_FileRead* GetFileAccess() const;
-
- FX_FILESIZE GetObjectOffset(FX_DWORD objnum) const;
- FX_FILESIZE GetObjectSize(FX_DWORD objnum) const;
-
- void GetIndirectBinary(FX_DWORD objnum, uint8_t*& pBuffer, FX_DWORD& size);
- int GetFileVersion() const { return m_FileVersion; }
- FX_BOOL IsXRefStream() const { return m_bXRefStream; }
-
- CPDF_Object* ParseIndirectObjectAt(CPDF_IndirectObjectHolder* pObjList,
- FX_FILESIZE pos,
- FX_DWORD objnum);
-
- CPDF_Object* ParseIndirectObjectAtByStrict(
- CPDF_IndirectObjectHolder* pObjList,
- FX_FILESIZE pos,
- FX_DWORD objnum,
- FX_FILESIZE* pResultPos);
-
- Error StartAsyncParse(IFX_FileRead* pFile);
-
- FX_DWORD GetFirstPageNo() const { return m_dwFirstPageNo; }
-
- protected:
- struct ObjectInfo {
- ObjectInfo() : pos(0), type(0), gennum(0) {}
-
- FX_FILESIZE pos;
- uint8_t type;
- uint16_t gennum;
- };
-
- void CloseParser();
- CPDF_Object* ParseDirect(CPDF_Object* pObj);
- FX_BOOL LoadAllCrossRefV4(FX_FILESIZE pos);
- FX_BOOL LoadAllCrossRefV5(FX_FILESIZE pos);
- bool LoadCrossRefV4(FX_FILESIZE pos, FX_FILESIZE streampos, FX_BOOL bSkip);
- FX_BOOL LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef);
- CPDF_Dictionary* LoadTrailerV4();
- FX_BOOL RebuildCrossRef();
- Error SetEncryptHandler();
- void ReleaseEncryptHandler();
- FX_BOOL LoadLinearizedAllCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount);
- FX_BOOL LoadLinearizedCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount);
- FX_BOOL LoadLinearizedAllCrossRefV5(FX_FILESIZE pos);
- Error LoadLinearizedMainXRefTable();
- CPDF_StreamAcc* GetObjectStream(FX_DWORD number);
- FX_BOOL IsLinearizedFile(IFX_FileRead* pFileAccess, FX_DWORD offset);
- void SetEncryptDictionary(CPDF_Dictionary* pDict);
- void ShrinkObjectMap(FX_DWORD size);
-
- CPDF_Document* m_pDocument;
- std::unique_ptr<CPDF_SyntaxParser> m_pSyntax;
- bool m_bOwnFileRead;
- int m_FileVersion;
- CPDF_Dictionary* m_pTrailer;
- CPDF_Dictionary* m_pEncryptDict;
- FX_FILESIZE m_LastXRefOffset;
- FX_BOOL m_bXRefStream;
- std::unique_ptr<IPDF_SecurityHandler> m_pSecurityHandler;
- CFX_ByteString m_bsRecipient;
- CFX_ByteString m_FilePath;
- CFX_ByteString m_Password;
- std::map<FX_DWORD, ObjectInfo> m_ObjectInfo;
- std::set<FX_FILESIZE> m_SortedOffset;
- CFX_ArrayTemplate<CPDF_Dictionary*> m_Trailers;
- bool m_bVersionUpdated;
- CPDF_Object* m_pLinearized;
- FX_DWORD m_dwFirstPageNo;
- FX_DWORD m_dwXrefStartObjNum;
-
- // A map of object numbers to indirect streams. Map owns the streams.
- std::map<FX_DWORD, std::unique_ptr<CPDF_StreamAcc>> m_ObjectStreamMap;
-
- // Mapping of object numbers to offsets. The offsets are relative to the first
- // object in the stream.
- using StreamObjectCache = std::map<FX_DWORD, FX_DWORD>;
-
- // Mapping of streams to their object caches. This is valid as long as the
- // streams in |m_ObjectStreamMap| are valid.
- std::map<CPDF_StreamAcc*, StreamObjectCache> m_ObjCache;
-
- // All indirect object numbers that are being parsed.
- std::set<FX_DWORD> m_ParsingObjNums;
-
- friend class CPDF_DataAvail;
-
- private:
- enum class ParserState {
- kDefault,
- kComment,
- kWhitespace,
- kString,
- kHexString,
- kEscapedString,
- kXref,
- kObjNum,
- kPostObjNum,
- kGenNum,
- kPostGenNum,
- kTrailer,
- kBeginObj,
- kEndObj
- };
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_PARSER_H_
diff --git a/core/include/fpdfapi/cpdf_reference.h b/core/include/fpdfapi/cpdf_reference.h
deleted file mode 100644
index 2444aad4fd..0000000000
--- a/core/include/fpdfapi/cpdf_reference.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-
-class CPDF_IndirectObjectHolder;
-
-class CPDF_Reference : public CPDF_Object {
- public:
- CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, int objnum);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CPDF_Object* GetDirect() const override;
- CFX_ByteString GetString() const override;
- CFX_ByteStringC GetConstString() const override;
- FX_FLOAT GetNumber() const override;
- int GetInteger() const override;
- CPDF_Dictionary* GetDict() const override;
-
- // TODO(weili): check whether GetUnicodeText() and GetArray() are needed.
- bool IsReference() const override;
- CPDF_Reference* AsReference() override;
- const CPDF_Reference* AsReference() const override;
-
- CPDF_IndirectObjectHolder* GetObjList() const { return m_pObjList; }
- FX_DWORD GetRefObjNum() const { return m_RefObjNum; }
-
- void SetRef(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum);
-
- protected:
- ~CPDF_Reference() override;
- CPDF_Object* SafeGetDirect() const {
- CPDF_Object* obj = GetDirect();
- if (!obj || obj->IsReference())
- return nullptr;
- return obj;
- }
-
- CPDF_IndirectObjectHolder* m_pObjList;
- FX_DWORD m_RefObjNum;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_
diff --git a/core/include/fpdfapi/cpdf_simple_parser.h b/core/include/fpdfapi/cpdf_simple_parser.h
deleted file mode 100644
index dc1441d18e..0000000000
--- a/core/include/fpdfapi/cpdf_simple_parser.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_
-
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_SimpleParser {
- public:
- CPDF_SimpleParser(const uint8_t* pData, FX_DWORD dwSize);
- CPDF_SimpleParser(const CFX_ByteStringC& str);
-
- CFX_ByteStringC GetWord();
-
- // Find the token and its |nParams| parameters from the start of data,
- // and move the current position to the start of those parameters.
- bool FindTagParamFromStart(const CFX_ByteStringC& token, int nParams);
-
- // For testing only.
- FX_DWORD GetCurPos() const { return m_dwCurPos; }
-
- private:
- void ParseWord(const uint8_t*& pStart, FX_DWORD& dwSize);
-
- const uint8_t* m_pData;
- FX_DWORD m_dwSize;
- FX_DWORD m_dwCurPos;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_
diff --git a/core/include/fpdfapi/cpdf_stream.h b/core/include/fpdfapi/cpdf_stream.h
deleted file mode 100644
index 579a3a97be..0000000000
--- a/core/include/fpdfapi/cpdf_stream.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_STREAM_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_STREAM_H_
-
-#include "core/include/fpdfapi/cpdf_dictionary.h"
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_stream.h"
-
-class CPDF_Stream : public CPDF_Object {
- public:
- CPDF_Stream(uint8_t* pData, FX_DWORD size, CPDF_Dictionary* pDict);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CPDF_Dictionary* GetDict() const override;
- CFX_WideString GetUnicodeText() const override;
- bool IsStream() const override;
- CPDF_Stream* AsStream() override;
- const CPDF_Stream* AsStream() const override;
-
- FX_DWORD GetRawSize() const { return m_dwSize; }
- uint8_t* GetRawData() const { return m_pDataBuf; }
-
- void SetData(const uint8_t* pData,
- FX_DWORD size,
- FX_BOOL bCompressed,
- FX_BOOL bKeepBuf);
-
- void InitStream(uint8_t* pData, FX_DWORD size, CPDF_Dictionary* pDict);
- void InitStreamFromFile(IFX_FileRead* pFile, CPDF_Dictionary* pDict);
-
- FX_BOOL ReadRawData(FX_FILESIZE start_pos,
- uint8_t* pBuf,
- FX_DWORD buf_size) const;
-
- bool IsMemoryBased() const { return m_GenNum == kMemoryBasedGenNum; }
-
- protected:
- static const FX_DWORD kMemoryBasedGenNum = (FX_DWORD)-1;
-
- ~CPDF_Stream() override;
-
- void InitStreamInternal(CPDF_Dictionary* pDict);
-
- CPDF_Dictionary* m_pDict;
- FX_DWORD m_dwSize;
- FX_DWORD m_GenNum;
-
- union {
- uint8_t* m_pDataBuf;
- IFX_FileRead* m_pFile;
- };
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_STREAM_H_
diff --git a/core/include/fpdfapi/cpdf_stream_acc.h b/core/include/fpdfapi/cpdf_stream_acc.h
deleted file mode 100644
index 77ad272de3..0000000000
--- a/core/include/fpdfapi/cpdf_stream_acc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_
-
-#include "core/include/fpdfapi/cpdf_stream.h"
-#include "core/include/fpdfapi/cpdf_dictionary.h"
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_StreamAcc {
- public:
- CPDF_StreamAcc();
- ~CPDF_StreamAcc();
-
- void LoadAllData(const CPDF_Stream* pStream,
- FX_BOOL bRawAccess = FALSE,
- FX_DWORD estimated_size = 0,
- FX_BOOL bImageAcc = FALSE);
-
- const CPDF_Stream* GetStream() const { return m_pStream; }
- CPDF_Dictionary* GetDict() const {
- return m_pStream ? m_pStream->GetDict() : nullptr;
- }
-
- const uint8_t* GetData() const;
- FX_DWORD GetSize() const;
- const CFX_ByteString& GetImageDecoder() const { return m_ImageDecoder; }
- const CPDF_Dictionary* GetImageParam() const { return m_pImageParam; }
- uint8_t* DetachData();
-
- protected:
- uint8_t* m_pData;
- FX_DWORD m_dwSize;
- FX_BOOL m_bNewBuf;
- CFX_ByteString m_ImageDecoder;
- CPDF_Dictionary* m_pImageParam;
- const CPDF_Stream* m_pStream;
- uint8_t* m_pSrcData;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_
diff --git a/core/include/fpdfapi/cpdf_string.h b/core/include/fpdfapi/cpdf_string.h
deleted file mode 100644
index 895513813c..0000000000
--- a/core/include/fpdfapi/cpdf_string.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_CPDF_STRING_H_
-#define CORE_INCLUDE_FPDFAPI_CPDF_STRING_H_
-
-#include "core/include/fpdfapi/cpdf_object.h"
-#include "core/include/fxcrt/fx_string.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_String : public CPDF_Object {
- public:
- CPDF_String();
- CPDF_String(const CFX_ByteString& str, FX_BOOL bHex);
- explicit CPDF_String(const CFX_WideString& str);
-
- // CPDF_Object.
- Type GetType() const override;
- CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override;
- CFX_ByteString GetString() const override;
- CFX_ByteStringC GetConstString() const override;
- CFX_WideString GetUnicodeText() const override;
- void SetString(const CFX_ByteString& str) override;
- bool IsString() const override;
- CPDF_String* AsString() override;
- const CPDF_String* AsString() const override;
-
- FX_BOOL IsHex() const { return m_bHex; }
-
- protected:
- ~CPDF_String() override;
-
- CFX_ByteString m_String;
- FX_BOOL m_bHex;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_CPDF_STRING_H_
diff --git a/core/include/fpdfapi/fpdf_module.h b/core/include/fpdfapi/fpdf_module.h
deleted file mode 100644
index e8cbb0d201..0000000000
--- a/core/include/fpdfapi/fpdf_module.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_
-#define CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_
-
-#include <memory>
-
-#include "core/include/fxcrt/fx_coordinates.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CCodec_ModuleMgr;
-class CPDF_ColorSpace;
-class CPDF_DocPageData;
-class CPDF_DocRenderData;
-class CPDF_Document;
-class CPDF_FontGlobals;
-class CPDF_Page;
-class CPDF_PageRenderCache;
-class ICodec_FaxModule;
-class ICodec_FlateModule;
-class ICodec_IccModule;
-class ICodec_Jbig2Module;
-class ICodec_JpegModule;
-class ICodec_JpxModule;
-class IPDF_PageModule;
-class IPDF_RenderModule;
-
-class CPDF_ModuleMgr {
- public:
- static CPDF_ModuleMgr* Get();
- static void Create();
- static void Destroy();
- static const int kFileBufSize = 512;
-
- void SetCodecModule(CCodec_ModuleMgr* pModule) { m_pCodecModule = pModule; }
- CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; }
-
- void InitPageModule();
- void InitRenderModule();
-
- IPDF_RenderModule* GetRenderModule() const { return m_pRenderModule.get(); }
- IPDF_PageModule* GetPageModule() const { return m_pPageModule.get(); }
-
- void LoadEmbeddedGB1CMaps();
- void LoadEmbeddedCNS1CMaps();
- void LoadEmbeddedJapan1CMaps();
- void LoadEmbeddedKorea1CMaps();
-
- ICodec_FaxModule* GetFaxModule();
- ICodec_JpegModule* GetJpegModule();
- ICodec_JpxModule* GetJpxModule();
- ICodec_Jbig2Module* GetJbig2Module();
- ICodec_IccModule* GetIccModule();
- ICodec_FlateModule* GetFlateModule();
-
- void SetPrivateData(void* module_id,
- void* pData,
- PD_CALLBACK_FREEDATA callback);
-
- void* GetPrivateData(void* module_id);
-
- private:
- CPDF_ModuleMgr();
- ~CPDF_ModuleMgr();
-
- CCodec_ModuleMgr* m_pCodecModule;
- std::unique_ptr<IPDF_RenderModule> m_pRenderModule;
- std::unique_ptr<IPDF_PageModule> m_pPageModule;
- CFX_PrivateData m_privateData;
-};
-
-class IPDF_PageModule {
- public:
- virtual ~IPDF_PageModule() {}
-
- virtual CPDF_DocPageData* CreateDocData(CPDF_Document* pDoc) = 0;
- virtual void ReleaseDoc(CPDF_Document* pDoc) = 0;
- virtual void ClearDoc(CPDF_Document* pDoc) = 0;
- virtual CPDF_FontGlobals* GetFontGlobals() = 0;
- virtual void ClearStockFont(CPDF_Document* pDoc) = 0;
- virtual void NotifyCJKAvailable() = 0;
- virtual CPDF_ColorSpace* GetStockCS(int family) = 0;
-};
-
-class IPDF_RenderModule {
- public:
- virtual ~IPDF_RenderModule() {}
-
- virtual CPDF_DocRenderData* CreateDocData(CPDF_Document* pDoc) = 0;
- virtual void DestroyDocData(CPDF_DocRenderData* pDocRenderData) = 0;
- virtual void ClearDocData(CPDF_DocRenderData* pDocRenderData) = 0;
- virtual CPDF_DocRenderData* GetRenderData() = 0;
- virtual CPDF_PageRenderCache* CreatePageCache(CPDF_Page* pPage) = 0;
- virtual void DestroyPageCache(CPDF_PageRenderCache* pCache) = 0;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_
diff --git a/core/include/fpdfapi/fpdf_parser_decode.h b/core/include/fpdfapi/fpdf_parser_decode.h
deleted file mode 100644
index 1217c7ea21..0000000000
--- a/core/include/fpdfapi/fpdf_parser_decode.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_
-#define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_
-
-#include "core/include/fxcrt/fx_basic.h"
-
-class CPDF_Dictionary;
-
-// Indexed by 8-bit char code, contains unicode code points.
-extern const FX_WORD PDFDocEncoding[256];
-
-CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig);
-CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig);
-CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig);
-CFX_ByteString PDF_EncodeString(const CFX_ByteString& src,
- FX_BOOL bHex = FALSE);
-CFX_WideString PDF_DecodeText(const uint8_t* pData, FX_DWORD size);
-CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr);
-CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1);
-CFX_ByteString PDF_EncodeText(const CFX_WideString& str);
-
-void FlateEncode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-void FlateEncode(const uint8_t* src_buf,
- FX_DWORD src_size,
- int predictor,
- int Colors,
- int BitsPerComponent,
- int Columns,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-FX_DWORD FlateDecode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-FX_DWORD RunLengthDecode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-
-// Public for testing.
-FX_DWORD A85Decode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-// Public for testing.
-FX_DWORD HexDecode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-// Public for testing.
-FX_DWORD FPDFAPI_FlateOrLZWDecode(FX_BOOL bLZW,
- const uint8_t* src_buf,
- FX_DWORD src_size,
- CPDF_Dictionary* pParams,
- FX_DWORD estimated_size,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size);
-FX_BOOL PDF_DataDecode(const uint8_t* src_buf,
- FX_DWORD src_size,
- const CPDF_Dictionary* pDict,
- uint8_t*& dest_buf,
- FX_DWORD& dest_size,
- CFX_ByteString& ImageEncoding,
- CPDF_Dictionary*& pImageParms,
- FX_DWORD estimated_size,
- FX_BOOL bImageAcc);
-
-#endif // CORE_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_
diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h
deleted file mode 100644
index 71711e3b16..0000000000
--- a/core/include/fpdfapi/fpdf_render.h
+++ /dev/null
@@ -1,263 +0,0 @@
-// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_
-#define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_
-
-#include <map>
-#include <memory>
-
-#include "core/include/fpdfapi/fpdf_page.h"
-#include "core/include/fxge/fx_ge.h"
-
-class CFX_GraphStateData;
-class CFX_PathData;
-class CFX_RenderDevice;
-class CPDF_ImageCacheEntry;
-class CPDF_RenderStatus;
-class IFX_Pause;
-
-class IPDF_OCContext {
- public:
- virtual ~IPDF_OCContext() {}
-
- virtual FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCG) = 0;
-
- FX_BOOL CheckObjectVisible(const CPDF_PageObject* pObj);
-};
-#define RENDER_COLOR_NORMAL 0
-#define RENDER_COLOR_GRAY 1
-#define RENDER_COLOR_TWOCOLOR 2
-#define RENDER_COLOR_ALPHA 3
-#define RENDER_CLEARTYPE 0x00000001
-#define RENDER_PRINTGRAPHICTEXT 0x00000002
-#define RENDER_FORCE_DOWNSAMPLE 0x00000004
-#define RENDER_PRINTPREVIEW 0x00000008
-#define RENDER_BGR_STRIPE 0x00000010
-#define RENDER_NO_NATIVETEXT 0x00000020
-#define RENDER_FORCE_HALFTONE 0x00000040
-#define RENDER_RECT_AA 0x00000080
-#define RENDER_FILL_FULLCOVER 0x00000100
-#define RENDER_PRINTIMAGETEXT 0x00000200
-#define RENDER_OVERPRINT 0x00000400
-#define RENDER_THINLINE 0x00000800
-#define RENDER_NOTEXTSMOOTH 0x10000000
-#define RENDER_NOPATHSMOOTH 0x20000000
-#define RENDER_NOIMAGESMOOTH 0x40000000
-#define RENDER_LIMITEDIMAGECACHE 0x80000000
-
-class CPDF_RenderOptions {
- public:
- CPDF_RenderOptions();
- FX_ARGB TranslateColor(FX_ARGB argb) const;
-
- int m_ColorMode;
- FX_COLORREF m_BackColor;
- FX_COLORREF m_ForeColor;
- FX_DWORD m_Flags;
- int m_Interpolation;
- FX_DWORD m_AddFlags;
- IPDF_OCContext* m_pOCContext;
- FX_DWORD m_dwLimitCacheSize;
- int m_HalftoneLimit;
-};
-
-class CPDF_RenderContext {
- public:
- class Layer {
- public:
- CPDF_PageObjectHolder* m_pObjectHolder;
- CFX_Matrix m_Matrix;
- };
-
- explicit CPDF_RenderContext(CPDF_Page* pPage);
- CPDF_RenderContext(CPDF_Document* pDoc, CPDF_PageRenderCache* pPageCache);
- ~CPDF_RenderContext();
-
- void AppendLayer(CPDF_PageObjectHolder* pObjectHolder,
- const CFX_Matrix* pObject2Device);
-
- void Render(CFX_RenderDevice* pDevice,
- const CPDF_RenderOptions* pOptions,
- const CFX_Matrix* pFinalMatrix);
-
- void Render(CFX_RenderDevice* pDevice,
- const CPDF_PageObject* pStopObj,
- const CPDF_RenderOptions* pOptions,
- const CFX_Matrix* pFinalMatrix);
-
- void GetBackground(CFX_DIBitmap* pBuffer,
- const CPDF_PageObject* pObj,
- const CPDF_RenderOptions* pOptions,
- CFX_Matrix* pFinalMatrix);
-
- FX_DWORD CountLayers() const { return m_Layers.GetSize(); }
- Layer* GetLayer(FX_DWORD index) { return m_Layers.GetDataPtr(index); }
-
- CPDF_Document* GetDocument() const { return m_pDocument; }
- CPDF_Dictionary* GetPageResources() const { return m_pPageResources; }
- CPDF_PageRenderCache* GetPageCache() const { return m_pPageCache; }
-
- protected:
- CPDF_Document* const m_pDocument;
- CPDF_Dictionary* m_pPageResources;
- CPDF_PageRenderCache* m_pPageCache;
- FX_BOOL m_bFirstLayer;
- CFX_ArrayTemplate<Layer> m_Layers;
-};
-
-class CPDF_ProgressiveRenderer {
- public:
- // Must match FDF_RENDER_* definitions in public/fpdf_progressive.h, but
- // cannot #include that header. fpdfsdk/fpdf_progressive.cpp has
- // static_asserts to make sure the two sets of values match.
- enum Status {
- Ready, // FPDF_RENDER_READER
- ToBeContinued, // FPDF_RENDER_TOBECOUNTINUED
- Done, // FPDF_RENDER_DONE
- Failed // FPDF_RENDER_FAILED
- };
-
- static int ToFPDFStatus(Status status) { return static_cast<int>(status); }
-
- CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext,
- CFX_RenderDevice* pDevice,
- const CPDF_RenderOptions* pOptions);
- ~CPDF_ProgressiveRenderer();
-
- Status GetStatus() const { return m_Status; }
- void Start(IFX_Pause* pPause);
- void Continue(IFX_Pause* pPause);
-
- private:
- void RenderStep();
-
- // Maximum page objects to render before checking for pause.
- static const int kStepLimit = 100;
-
- Status m_Status;
- CPDF_RenderContext* const m_pContext;
- CFX_RenderDevice* const m_pDevice;
- const CPDF_RenderOptions* const m_pOptions;
- std::unique_ptr<CPDF_RenderStatus> m_pRenderStatus;
- CFX_FloatRect m_ClipRect;
- FX_DWORD m_LayerIndex;
- CPDF_RenderContext::Layer* m_pCurrentLayer;
- CPDF_PageObjectList::iterator m_LastObjectRendered;
-};
-
-class CPDF_TextRenderer {
- public:
- static void DrawTextString(CFX_RenderDevice* pDevice,
- int left,
- int top,
- CPDF_Font* pFont,
- int height,
- const CFX_ByteString& str,
- FX_ARGB argb);
-
- static void DrawTextString(CFX_RenderDevice* pDevice,
- FX_FLOAT origin_x,
- FX_FLOAT origin_y,
- CPDF_Font* pFont,
- FX_FLOAT font_size,
- const CFX_Matrix* matrix,
- const CFX_ByteString& str,
- FX_ARGB fill_argb,
- FX_ARGB stroke_argb = 0,
- const CFX_GraphStateData* pGraphState = NULL,
- const CPDF_RenderOptions* pOptions = NULL);
-
- static FX_BOOL DrawTextPath(CFX_RenderDevice* pDevice,
- int nChars,
- FX_DWORD* pCharCodes,
- FX_FLOAT* pCharPos,
- CPDF_Font* pFont,
- FX_FLOAT font_size,
- const CFX_Matrix* pText2User,
- const CFX_Matrix* pUser2Device,
- const CFX_GraphStateData* pGraphState,
- FX_ARGB fill_argb,
- FX_ARGB stroke_argb,
- CFX_PathData* pClippingPath,
- int nFlag = 0);
-
- static FX_BOOL DrawNormalText(CFX_RenderDevice* pDevice,
- int nChars,
- FX_DWORD* pCharCodes,
- FX_FLOAT* pCharPos,
- CPDF_Font* pFont,
- FX_FLOAT font_size,
- const CFX_Matrix* pText2Device,
- FX_ARGB fill_argb,
- const CPDF_RenderOptions* pOptions);
-
- static FX_BOOL DrawType3Text(CFX_RenderDevice* pDevice,
- int nChars,
- FX_DWORD* pCharCodes,
- FX_FLOAT* pCharPos,
- CPDF_Font* pFont,
- FX_FLOAT font_size,
- const CFX_Matrix* pText2Device,
- FX_ARGB fill_argb);
-};
-class CPDF_PageRenderCache {
- public:
- explicit CPDF_PageRenderCache(CPDF_Page* pPage)
- : m_pPage(pPage),
- m_pCurImageCacheEntry(nullptr),
- m_nTimeCount(0),
- m_nCacheSize(0),
- m_bCurFindCache(FALSE) {}
- ~CPDF_PageRenderCache();
- void ClearImageData();
-
- FX_DWORD EstimateSize();
- void CacheOptimization(int32_t dwLimitCacheSize);
- FX_DWORD GetTimeCount() const { return m_nTimeCount; }
- void SetTimeCount(FX_DWORD dwTimeCount) { m_nTimeCount = dwTimeCount; }
-
- void GetCachedBitmap(CPDF_Stream* pStream,
- CFX_DIBSource*& pBitmap,
- CFX_DIBSource*& pMask,
- FX_DWORD& MatteColor,
- FX_BOOL bStdCS = FALSE,
- FX_DWORD GroupFamily = 0,
- FX_BOOL bLoadMask = FALSE,
- CPDF_RenderStatus* pRenderStatus = NULL,
- int32_t downsampleWidth = 0,
- int32_t downsampleHeight = 0);
-
- void ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap);
- void ClearImageCacheEntry(CPDF_Stream* pStream);
- CPDF_Page* GetPage() const { return m_pPage; }
- CPDF_ImageCacheEntry* GetCurImageCacheEntry() const {
- return m_pCurImageCacheEntry;
- }
-
- FX_BOOL StartGetCachedBitmap(CPDF_Stream* pStream,
- FX_BOOL bStdCS = FALSE,
- FX_DWORD GroupFamily = 0,
- FX_BOOL bLoadMask = FALSE,
- CPDF_RenderStatus* pRenderStatus = NULL,
- int32_t downsampleWidth = 0,
- int32_t downsampleHeight = 0);
-
- FX_BOOL Continue(IFX_Pause* pPause);
-
- protected:
- friend class CPDF_Page;
- CPDF_Page* const m_pPage;
- CPDF_ImageCacheEntry* m_pCurImageCacheEntry;
- std::map<CPDF_Stream*, CPDF_ImageCacheEntry*> m_ImageCache;
- FX_DWORD m_nTimeCount;
- FX_DWORD m_nCacheSize;
- FX_BOOL m_bCurFindCache;
-};
-
-FX_BOOL IsAvailableMatrix(const CFX_Matrix& matrix);
-
-#endif // CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_
diff --git a/core/include/fpdfapi/fpdf_resource.h b/core/include/fpdfapi/fpdf_resource.h
index 7c19dd52c3..a8a3ecc52a 100644
--- a/core/include/fpdfapi/fpdf_resource.h
+++ b/core/include/fpdfapi/fpdf_resource.h
@@ -9,8 +9,8 @@
#include <map>
-#include "core/include/fpdfapi/cpdf_stream.h"
-#include "core/include/fpdfapi/cpdf_stream_acc.h"
+#include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h"
+#include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h"
#include "core/include/fxcrt/fx_system.h"
#include "core/include/fxge/fx_font.h"
diff --git a/core/include/fpdfapi/fpdf_serial.h b/core/include/fpdfapi/fpdf_serial.h
deleted file mode 100644
index cb0c290783..0000000000
--- a/core/include/fpdfapi/fpdf_serial.h
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_FPDF_SERIAL_H_
-#define CORE_INCLUDE_FPDFAPI_FPDF_SERIAL_H_
-
-#include "core/include/fpdfapi/fpdf_page.h"
-#include "core/include/fpdfapi/fpdf_pageobj.h"
-
-class CPDF_XRefStream;
-class IPDF_CryptoHandler;
-
-CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& buf, const CPDF_Object* pObj);
-
-#define FPDFCREATE_INCREMENTAL 1
-#define FPDFCREATE_NO_ORIGINAL 2
-#define FPDFCREATE_PROGRESSIVE 4
-#define FPDFCREATE_OBJECTSTREAM 8
-
-class CPDF_Creator {
- public:
- CPDF_Creator(CPDF_Document* pDoc);
- ~CPDF_Creator();
-
- void RemoveSecurity();
- bool Create(IFX_StreamWrite* pFile, FX_DWORD flags = 0);
- int32_t Continue(IFX_Pause* pPause = NULL);
- FX_BOOL SetFileVersion(int32_t fileVersion = 17);
-
- protected:
- CPDF_Document* m_pDocument;
-
- CPDF_Parser* m_pParser;
-
- FX_BOOL m_bCompress;
-
- FX_BOOL m_bSecurityChanged;
-
- CPDF_Dictionary* m_pEncryptDict;
- FX_DWORD m_dwEnryptObjNum;
- FX_BOOL m_bEncryptCloned;
-
- FX_BOOL m_bStandardSecurity;
-
- IPDF_CryptoHandler* m_pCryptoHandler;
- FX_BOOL m_bNewCrypto;
-
- FX_BOOL m_bEncryptMetadata;
-
- CPDF_Object* m_pMetadata;
-
- CPDF_XRefStream* m_pXRefStream;
-
- int32_t m_ObjectStreamSize;
-
- FX_DWORD m_dwLastObjNum;
- bool Create(FX_DWORD flags);
- void ResetStandardSecurity();
- void Clear();
- int32_t WriteDoc_Stage1(IFX_Pause* pPause);
- int32_t WriteDoc_Stage2(IFX_Pause* pPause);
- int32_t WriteDoc_Stage3(IFX_Pause* pPause);
- int32_t WriteDoc_Stage4(IFX_Pause* pPause);
-
- CFX_FileBufferArchive m_File;
-
- FX_FILESIZE m_Offset;
- void InitOldObjNumOffsets();
- void InitNewObjNumOffsets();
- void AppendNewObjNum(FX_DWORD objbum);
- int32_t WriteOldIndirectObject(FX_DWORD objnum);
- int32_t WriteOldObjs(IFX_Pause* pPause);
- int32_t WriteNewObjs(FX_BOOL bIncremental, IFX_Pause* pPause);
- int32_t WriteIndirectObj(const CPDF_Object* pObj);
- int32_t WriteDirectObj(FX_DWORD objnum,
- const CPDF_Object* pObj,
- FX_BOOL bEncrypt = TRUE);
- int32_t WriteIndirectObjectToStream(const CPDF_Object* pObj);
- int32_t WriteIndirectObj(FX_DWORD objnum, const CPDF_Object* pObj);
- int32_t WriteIndirectObjectToStream(FX_DWORD objnum,
- const uint8_t* pBuffer,
- FX_DWORD dwSize);
- int32_t AppendObjectNumberToXRef(FX_DWORD objnum);
- void InitID(FX_BOOL bDefault = TRUE);
- int32_t WriteStream(const CPDF_Object* pStream,
- FX_DWORD objnum,
- IPDF_CryptoHandler* pCrypto);
-
- int32_t m_iStage;
- FX_DWORD m_dwFlags;
- FX_POSITION m_Pos;
- FX_FILESIZE m_XrefStart;
- CFX_FileSizeListArray m_ObjectOffset;
- CFX_DWordArray m_NewObjNumArray;
- CPDF_Array* m_pIDArray;
- int32_t m_FileVersion;
-
- friend class CPDF_ObjectStream;
- friend class CPDF_XRefStream;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_FPDF_SERIAL_H_
diff --git a/core/include/fpdfapi/ipdf_crypto_handler.h b/core/include/fpdfapi/ipdf_crypto_handler.h
deleted file mode 100644
index 6a09a02278..0000000000
--- a/core/include/fpdfapi/ipdf_crypto_handler.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_
-#define CORE_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_
-
-#include "core/include/fxcrt/fx_basic.h"
-
-class CPDF_Dictionary;
-class IPDF_SecurityHandler;
-
-class IPDF_CryptoHandler {
- public:
- virtual ~IPDF_CryptoHandler();
-
- virtual FX_BOOL Init(CPDF_Dictionary* pEncryptDict,
- IPDF_SecurityHandler* pSecurityHandler) = 0;
-
- virtual FX_DWORD DecryptGetSize(FX_DWORD src_size) = 0;
- virtual void* DecryptStart(FX_DWORD objnum, FX_DWORD gennum) = 0;
- virtual FX_BOOL DecryptStream(void* context,
- const uint8_t* src_buf,
- FX_DWORD src_size,
- CFX_BinaryBuf& dest_buf) = 0;
-
- virtual FX_BOOL DecryptFinish(void* context, CFX_BinaryBuf& dest_buf) = 0;
- virtual FX_DWORD EncryptGetSize(FX_DWORD objnum,
- FX_DWORD version,
- const uint8_t* src_buf,
- FX_DWORD src_size) = 0;
-
- virtual FX_BOOL EncryptContent(FX_DWORD objnum,
- FX_DWORD version,
- const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t* dest_buf,
- FX_DWORD& dest_size) = 0;
-
- void Decrypt(FX_DWORD objnum, FX_DWORD version, CFX_ByteString& str);
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_
diff --git a/core/include/fpdfapi/ipdf_data_avail.h b/core/include/fpdfapi/ipdf_data_avail.h
deleted file mode 100644
index e2b22eaf2a..0000000000
--- a/core/include/fpdfapi/ipdf_data_avail.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_
-#define CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_
-
-#include "core/include/fxcrt/fx_stream.h"
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Document;
-class CPDF_Object;
-
-class IPDF_DataAvail {
- public:
- // Must match PDF_DATA_* definitions in public/fpdf_dataavail.h, but cannot
- // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts
- // to make sure the two sets of values match.
- enum DocAvailStatus {
- DataError = -1, // PDF_DATA_ERROR
- DataNotAvailable = 0, // PDF_DATA_NOTAVAIL
- DataAvailable = 1, // PDF_DATA_AVAIL
- };
-
- // Must match PDF_*LINEAR* definitions in public/fpdf_dataavail.h, but cannot
- // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts
- // to make sure the two sets of values match.
- enum DocLinearizationStatus {
- LinearizationUnknown = -1, // PDF_LINEARIZATION_UNKNOWN
- NotLinearized = 0, // PDF_NOT_LINEARIZED
- Linearized = 1, // PDF_LINEARIZED
- };
-
- // Must match PDF_FORM_* definitions in public/fpdf_dataavail.h, but cannot
- // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts
- // to make sure the two sets of values match.
- enum DocFormStatus {
- FormError = -1, // PDF_FORM_ERROR
- FormNotAvailable = 0, // PDF_FORM_NOTAVAIL
- FormAvailable = 1, // PDF_FORM_AVAIL
- FormNotExist = 2, // PDF_FORM_NOTEXIST
- };
-
- class FileAvail {
- public:
- virtual ~FileAvail();
- virtual FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) = 0;
- };
-
- class DownloadHints {
- public:
- virtual ~DownloadHints();
- virtual void AddSegment(FX_FILESIZE offset, FX_DWORD size) = 0;
- };
-
- static IPDF_DataAvail* Create(FileAvail* pFileAvail, IFX_FileRead* pFileRead);
- virtual ~IPDF_DataAvail();
-
- FileAvail* GetFileAvail() const { return m_pFileAvail; }
- IFX_FileRead* GetFileRead() const { return m_pFileRead; }
-
- virtual DocAvailStatus IsDocAvail(DownloadHints* pHints) = 0;
- virtual void SetDocument(CPDF_Document* pDoc) = 0;
- virtual DocAvailStatus IsPageAvail(int iPage, DownloadHints* pHints) = 0;
- virtual FX_BOOL IsLinearized() = 0;
- virtual DocFormStatus IsFormAvail(DownloadHints* pHints) = 0;
- virtual DocLinearizationStatus IsLinearizedPDF() = 0;
- virtual void GetLinearizedMainXRefInfo(FX_FILESIZE* pPos,
- FX_DWORD* pSize) = 0;
-
- protected:
- IPDF_DataAvail(FileAvail* pFileAvail, IFX_FileRead* pFileRead);
-
- FileAvail* m_pFileAvail;
- IFX_FileRead* m_pFileRead;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_
diff --git a/core/include/fpdfapi/ipdf_security_handler.h b/core/include/fpdfapi/ipdf_security_handler.h
deleted file mode 100644
index 4dce7c6963..0000000000
--- a/core/include/fpdfapi/ipdf_security_handler.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_
-#define CORE_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_
-
-#include "core/include/fxcrt/fx_system.h"
-
-class CPDF_Parser;
-class CPDF_Dictionary;
-class IPDF_CryptoHandler;
-
-#define FXCIPHER_NONE 0
-#define FXCIPHER_RC4 1
-#define FXCIPHER_AES 2
-#define FXCIPHER_AES2 3
-
-class IPDF_SecurityHandler {
- public:
- virtual ~IPDF_SecurityHandler();
- virtual FX_BOOL OnInit(CPDF_Parser* pParser,
- CPDF_Dictionary* pEncryptDict) = 0;
-
- virtual FX_DWORD GetPermissions() = 0;
- virtual FX_BOOL GetCryptInfo(int& cipher,
- const uint8_t*& buffer,
- int& keylen) = 0;
-
- virtual FX_BOOL IsMetadataEncrypted() = 0;
- virtual IPDF_CryptoHandler* CreateCryptoHandler() = 0;
-};
-
-#endif // CORE_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_
diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h
index 60a0939211..28d62effd4 100644
--- a/core/include/fpdfdoc/fpdf_doc.h
+++ b/core/include/fpdfdoc/fpdf_doc.h
@@ -11,9 +11,10 @@
#include <memory>
#include <vector>
-#include "core/include/fpdfapi/cpdf_dictionary.h"
-#include "core/include/fpdfapi/fpdf_parser_decode.h"
-#include "core/include/fpdfapi/fpdf_render.h"
+#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
+#include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h"
+#include "core/fpdfapi/fpdf_parser/ipdf_occontext.h"
+#include "core/include/fxge/fx_dib.h"
class CFDF_Document;
class CFieldTree;
@@ -27,6 +28,7 @@ class CPDF_Bookmark;
class CPDF_BookmarkTree;
class CPDF_DefaultAppearance;
class CPDF_Dest;
+class CPDF_Document;
class CPDF_DocJSActions;
class CPDF_FileSpec;
class CPDF_FormControl;
@@ -38,9 +40,13 @@ class CPDF_Link;
class CPDF_Metadata;
class CPDF_OCContext;
class CPDF_Page;
+class CPDF_Font;
+class CPDF_Form;
class CPDF_RenderOptions;
+class CPDF_RenderContext;
class CPDF_ViewerPreferences;
class CXML_Element;
+class CFX_RenderDevice;
class CPDF_NameTree {
public: