From 13ee55a8267963c9b39486a6a22646fbdd770742 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 14 Mar 2016 15:56:00 -0400 Subject: Move fx_crypto.h and fpdf_text.h out of core/include. This CL moves the two files and breaks fpdf_text.h apart into individual pieces. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1801973002 . --- BUILD.gn | 6 +- core/fdrm/crypto/fx_crypt.cpp | 2 +- core/fdrm/crypto/fx_crypt_aes.cpp | 2 +- core/fdrm/crypto/fx_crypt_sha.cpp | 2 +- core/fdrm/crypto/include/fx_crypt.h | 71 ++++++++++++ core/fpdfapi/fpdf_page/fpdf_page_doc.cpp | 2 +- .../fpdf_parser/cpdf_standard_crypto_handler.cpp | 2 +- .../fpdf_parser/cpdf_standard_security_handler.cpp | 2 +- core/fpdftext/fpdf_text_int.cpp | 19 +++- core/fpdftext/include/ipdf_linkextract.h | 26 +++++ core/fpdftext/include/ipdf_textpage.h | 69 ++++++++++++ core/fpdftext/include/ipdf_textpagefind.h | 29 +++++ core/fpdftext/text_int.h | 4 +- core/include/fdrm/fx_crypt.h | 71 ------------ core/include/fpdftext/fpdf_text.h | 121 --------------------- core/include/fxcrt/fx_coordinates.h | 1 + fpdfsdk/DEPS | 1 + fpdfsdk/fpdf_searchex.cpp | 2 +- fpdfsdk/fpdftext.cpp | 4 +- fpdfsdk/include/fsdk_mgr.h | 1 - fpdfsdk/javascript/DEPS | 1 + fpdfsdk/javascript/JS_GlobalData.cpp | 2 +- pdfium.gyp | 6 +- xfa/fxfa/app/DEPS | 3 + xfa/fxfa/app/xfa_checksum.cpp | 2 +- 25 files changed, 239 insertions(+), 212 deletions(-) create mode 100644 core/fdrm/crypto/include/fx_crypt.h create mode 100644 core/fpdftext/include/ipdf_linkextract.h create mode 100644 core/fpdftext/include/ipdf_textpage.h create mode 100644 core/fpdftext/include/ipdf_textpagefind.h delete mode 100644 core/include/fdrm/fx_crypt.h delete mode 100644 core/include/fpdftext/fpdf_text.h create mode 100644 xfa/fxfa/app/DEPS diff --git a/BUILD.gn b/BUILD.gn index 2f51c21fab..d0de412f08 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -201,7 +201,7 @@ static_library("fdrm") { "core/fdrm/crypto/fx_crypt.cpp", "core/fdrm/crypto/fx_crypt_aes.cpp", "core/fdrm/crypto/fx_crypt_sha.cpp", - "core/include/fdrm/fx_crypt.h", + "core/fdrm/crypto/include/fx_crypt.h", ] configs += [ ":pdfium_config" ] } @@ -390,11 +390,13 @@ static_library("fpdfapi") { static_library("fpdftext") { sources = [ "core/fpdftext/fpdf_text_int.cpp", + "core/fpdftext/include/ipdf_linkextract.h", + "core/fpdftext/include/ipdf_textpage.h", + "core/fpdftext/include/ipdf_textpagefind.h", "core/fpdftext/text_int.h", "core/fpdftext/unicodenormalization.cpp", "core/fpdftext/unicodenormalizationdata.cpp", "core/fpdftext/unicodenormalizationdata.h", - "core/include/fpdftext/fpdf_text.h", ] configs += [ ":pdfium_config" ] } diff --git a/core/fdrm/crypto/fx_crypt.cpp b/core/fdrm/crypto/fx_crypt.cpp index c1016cdcd9..d5cbdb5a82 100644 --- a/core/fdrm/crypto/fx_crypt.cpp +++ b/core/fdrm/crypto/fx_crypt.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/fdrm/crypto/fx_crypt_aes.cpp b/core/fdrm/crypto/fx_crypt_aes.cpp index d27783f820..b56d8fe33c 100644 --- a/core/fdrm/crypto/fx_crypt_aes.cpp +++ b/core/fdrm/crypto/fx_crypt_aes.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/fdrm/crypto/fx_crypt_sha.cpp b/core/fdrm/crypto/fx_crypt_sha.cpp index c7d171098b..5f1558943d 100644 --- a/core/fdrm/crypto/fx_crypt_sha.cpp +++ b/core/fdrm/crypto/fx_crypt_sha.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #ifdef __cplusplus extern "C" { diff --git a/core/fdrm/crypto/include/fx_crypt.h b/core/fdrm/crypto/include/fx_crypt.h new file mode 100644 index 0000000000..fdba0e7164 --- /dev/null +++ b/core/fdrm/crypto/include/fx_crypt.h @@ -0,0 +1,71 @@ +// 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_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ +#define CORE_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ + +#include "core/include/fxcrt/fx_system.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void CRYPT_ArcFourCryptBlock(uint8_t* data, + FX_DWORD size, + const uint8_t* key, + FX_DWORD keylen); +void CRYPT_ArcFourSetup(void* context, const uint8_t* key, FX_DWORD length); +void CRYPT_ArcFourCrypt(void* context, uint8_t* data, FX_DWORD size); +void CRYPT_AESSetKey(void* context, + FX_DWORD blocklen, + const uint8_t* key, + FX_DWORD keylen, + FX_BOOL bEncrypt); +void CRYPT_AESSetIV(void* context, const uint8_t* iv); +void CRYPT_AESDecrypt(void* context, + uint8_t* dest, + const uint8_t* src, + FX_DWORD size); +void CRYPT_AESEncrypt(void* context, + uint8_t* dest, + const uint8_t* src, + FX_DWORD size); +void CRYPT_MD5Generate(const uint8_t* data, FX_DWORD size, uint8_t digest[16]); +void CRYPT_MD5Start(void* context); +void CRYPT_MD5Update(void* context, const uint8_t* data, FX_DWORD size); +void CRYPT_MD5Finish(void* context, uint8_t digest[16]); +void CRYPT_SHA1Generate(const uint8_t* data, FX_DWORD size, uint8_t digest[20]); +void CRYPT_SHA1Start(void* context); +void CRYPT_SHA1Update(void* context, const uint8_t* data, FX_DWORD size); +void CRYPT_SHA1Finish(void* context, uint8_t digest[20]); +void CRYPT_SHA256Generate(const uint8_t* data, + FX_DWORD size, + uint8_t digest[32]); +void CRYPT_SHA256Start(void* context); +void CRYPT_SHA256Update(void* context, const uint8_t* data, FX_DWORD size); +void CRYPT_SHA256Finish(void* context, uint8_t digest[32]); +void CRYPT_SHA384Start(void* context); +void CRYPT_SHA384Update(void* context, const uint8_t* data, FX_DWORD size); +void CRYPT_SHA384Finish(void* context, uint8_t digest[48]); +void CRYPT_SHA384Generate(const uint8_t* data, + FX_DWORD size, + uint8_t digest[48]); +void CRYPT_SHA512Start(void* context); +void CRYPT_SHA512Update(void* context, const uint8_t* data, FX_DWORD size); +void CRYPT_SHA512Finish(void* context, uint8_t digest[64]); +void CRYPT_SHA512Generate(const uint8_t* data, + FX_DWORD size, + uint8_t digest[64]); +void CRYPT_SetPubKeyDecryptor(FX_BOOL (*func)(const uint8_t* pData, + FX_DWORD size, + uint8_t* data_buf, + FX_DWORD& data_len)); + +#ifdef __cplusplus +}; +#endif + +#endif // CORE_FDRM_CRYPTO_INCLUDE_FX_CRYPT_H_ diff --git a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp index 1a31364b1c..76ecdccae3 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_doc.cpp @@ -6,8 +6,8 @@ #include "core/fpdfapi/fpdf_page/pageint.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/fpdfapi/fpdf_font/font_int.h" -#include "core/include/fdrm/fx_crypt.h" #include "core/include/fpdfapi/cpdf_array.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_document.h" diff --git a/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp index b73238997c..0be414a135 100644 --- a/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp +++ b/core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.cpp @@ -8,7 +8,7 @@ #include -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/include/fpdfapi/cpdf_parser.h" #include "core/include/fpdfapi/cpdf_simple_parser.h" #include "core/include/fpdfapi/ipdf_security_handler.h" diff --git a/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp index e5eb4c8469..6da4cb1ff6 100644 --- a/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp +++ b/core/fpdfapi/fpdf_parser/cpdf_standard_security_handler.cpp @@ -8,8 +8,8 @@ #include +#include "core/fdrm/crypto/include/fx_crypt.h" #include "core/fpdfapi/fpdf_parser/cpdf_standard_crypto_handler.h" -#include "core/include/fdrm/fx_crypt.h" #include "core/include/fpdfapi/cpdf_array.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_object.h" diff --git a/core/fpdftext/fpdf_text_int.cpp b/core/fpdftext/fpdf_text_int.cpp index d16ccb8dde..1bd544c444 100644 --- a/core/fpdftext/fpdf_text_int.cpp +++ b/core/fpdftext/fpdf_text_int.cpp @@ -13,18 +13,28 @@ #include #include +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfapi/cpdf_dictionary.h" #include "core/include/fpdfapi/cpdf_string.h" #include "core/include/fpdfapi/fpdf_module.h" #include "core/include/fpdfapi/fpdf_page.h" #include "core/include/fpdfapi/fpdf_pageobj.h" #include "core/include/fpdfapi/fpdf_resource.h" -#include "core/include/fpdftext/fpdf_text.h" #include "core/include/fxcrt/fx_bidi.h" #include "core/include/fxcrt/fx_ext.h" #include "core/include/fxcrt/fx_ucd.h" #include "third_party/base/stl_util.h" +#define FPDFTEXT_RLTB 1 +#define FPDFTEXT_LEFT -1 +#define FPDFTEXT_RIGHT 1 + +#define FPDFTEXT_MATCHCASE 0x00000001 +#define FPDFTEXT_MATCHWHOLEWORD 0x00000002 +#define FPDFTEXT_CONSECUTIVE 0x00000004 + namespace { FX_BOOL _IsIgnoreSpaceCharacter(FX_WCHAR curChar) { @@ -1899,7 +1909,8 @@ CPDF_TextPageFind::CPDF_TextPageFind(const IPDF_TextPage* pTextPage) FPDF_CHAR_INFO info; pTextPage->GetCharInfo(i, &info); int indexSize = pdfium::CollectionSize(m_CharIndex); - if (info.m_Flag == CHAR_NORMAL || info.m_Flag == CHAR_GENERATED) { + if (info.m_Flag == FPDFTEXT_CHAR_NORMAL || + info.m_Flag == FPDFTEXT_CHAR_GENERATED) { if (indexSize % 2) { m_CharIndex.push_back(1); } else { @@ -2325,8 +2336,8 @@ void CPDF_LinkExtract::ParseLink() { while (pos < TotalChar) { FPDF_CHAR_INFO pageChar; m_pTextPage->GetCharInfo(pos, &pageChar); - if (pageChar.m_Flag == CHAR_GENERATED || pageChar.m_Unicode == 0x20 || - pos == TotalChar - 1) { + if (pageChar.m_Flag == FPDFTEXT_CHAR_GENERATED || + pageChar.m_Unicode == 0x20 || pos == TotalChar - 1) { int nCount = pos - start; if (pos == TotalChar - 1) { nCount++; diff --git a/core/fpdftext/include/ipdf_linkextract.h b/core/fpdftext/include/ipdf_linkextract.h new file mode 100644 index 0000000000..2d7fe02127 --- /dev/null +++ b/core/fpdftext/include/ipdf_linkextract.h @@ -0,0 +1,26 @@ +// 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_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ + +#include "core/include/fxcrt/fx_coordinates.h" +#include "core/include/fxcrt/fx_system.h" +#include "core/fpdftext/include/ipdf_textpage.h" + +class IPDF_LinkExtract { + public: + static IPDF_LinkExtract* CreateLinkExtract(); + virtual ~IPDF_LinkExtract() {} + + virtual FX_BOOL ExtractLinks(const IPDF_TextPage* pTextPage) = 0; + virtual int CountLinks() const = 0; + virtual CFX_WideString GetURL(int index) const = 0; + virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; + virtual void GetRects(int index, CFX_RectArray& rects) const = 0; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_LINKEXTRACT_H_ diff --git a/core/fpdftext/include/ipdf_textpage.h b/core/fpdftext/include/ipdf_textpage.h new file mode 100644 index 0000000000..1698e9ab28 --- /dev/null +++ b/core/fpdftext/include/ipdf_textpage.h @@ -0,0 +1,69 @@ +// 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_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ + +#include "core/include/fpdfapi/fpdf_page.h" +#include "core/include/fpdfapi/fpdf_pageobj.h" +#include "core/include/fxcrt/fx_coordinates.h" +#include "core/include/fxcrt/fx_system.h" + +struct FPDF_CHAR_INFO { + FX_WCHAR m_Unicode; + FX_WCHAR m_Charcode; + int32_t m_Flag; + FX_FLOAT m_FontSize; + FX_FLOAT m_OriginX; + FX_FLOAT m_OriginY; + CFX_FloatRect m_CharBox; + CPDF_TextObject* m_pTextObj; + CFX_Matrix m_Matrix; +}; + +class IPDF_TextPage { + public: + static IPDF_TextPage* CreateTextPage(const CPDF_Page* pPage, int flags = 0); + virtual ~IPDF_TextPage() {} + + virtual void ParseTextPage() = 0; + virtual bool IsParsed() const = 0; + virtual int CharIndexFromTextIndex(int TextIndex) const = 0; + virtual int TextIndexFromCharIndex(int CharIndex) const = 0; + virtual int CountChars() const = 0; + virtual void GetCharInfo(int index, FPDF_CHAR_INFO* info) const = 0; + virtual void GetRectArray(int start, + int nCount, + CFX_RectArray& rectArray) const = 0; + virtual int GetIndexAtPos(CFX_FloatPoint point, + FX_FLOAT xTolerance, + FX_FLOAT yTolerance) const = 0; + virtual int GetIndexAtPos(FX_FLOAT x, + FX_FLOAT y, + FX_FLOAT xTolerance, + FX_FLOAT yTolerance) const = 0; + virtual CFX_WideString GetTextByRect(const CFX_FloatRect& rect) const = 0; + virtual void GetRectsArrayByRect(const CFX_FloatRect& rect, + CFX_RectArray& resRectArray) const = 0; + virtual int CountRects(int start, int nCount) = 0; + virtual void GetRect(int rectIndex, + FX_FLOAT& left, + FX_FLOAT& top, + FX_FLOAT& right, + FX_FLOAT& bottom) const = 0; + virtual FX_BOOL GetBaselineRotate(int rectIndex, int& Rotate) = 0; + virtual FX_BOOL GetBaselineRotate(const CFX_FloatRect& rect, int& Rotate) = 0; + virtual int CountBoundedSegments(FX_FLOAT left, + FX_FLOAT top, + FX_FLOAT right, + FX_FLOAT bottom, + FX_BOOL bContains = FALSE) = 0; + virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; + virtual int GetWordBreak(int index, int direction) const = 0; + virtual CFX_WideString GetPageText(int start = 0, int nCount = -1) const = 0; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGE_H_ diff --git a/core/fpdftext/include/ipdf_textpagefind.h b/core/fpdftext/include/ipdf_textpagefind.h new file mode 100644 index 0000000000..88774b6061 --- /dev/null +++ b/core/fpdftext/include/ipdf_textpagefind.h @@ -0,0 +1,29 @@ +// 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_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ +#define CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ + +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/include/fxcrt/fx_coordinates.h" +#include "core/include/fxcrt/fx_string.h" + +class IPDF_TextPageFind { + public: + static IPDF_TextPageFind* CreatePageFind(const IPDF_TextPage* pTextPage); + virtual ~IPDF_TextPageFind() {} + + virtual FX_BOOL FindFirst(const CFX_WideString& findwhat, + int flags, + int startPos = 0) = 0; + virtual FX_BOOL FindNext() = 0; + virtual FX_BOOL FindPrev() = 0; + virtual void GetRectArray(CFX_RectArray& rects) const = 0; + virtual int GetCurOrder() const = 0; + virtual int GetMatchedCount() const = 0; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_IPDF_TEXTPAGEFIND_H_ diff --git a/core/fpdftext/text_int.h b/core/fpdftext/text_int.h index bc110c719b..42e254ee63 100644 --- a/core/fpdftext/text_int.h +++ b/core/fpdftext/text_int.h @@ -10,8 +10,10 @@ #include #include +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfapi/fpdf_page.h" -#include "core/include/fpdftext/fpdf_text.h" #include "core/include/fxcrt/fx_basic.h" class CFX_BidiChar; diff --git a/core/include/fdrm/fx_crypt.h b/core/include/fdrm/fx_crypt.h deleted file mode 100644 index 259dc85477..0000000000 --- a/core/include/fdrm/fx_crypt.h +++ /dev/null @@ -1,71 +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_FDRM_FX_CRYPT_H_ -#define CORE_INCLUDE_FDRM_FX_CRYPT_H_ - -#include "core/include/fxcrt/fx_system.h" - -#ifdef __cplusplus -extern "C" { -#endif - -void CRYPT_ArcFourCryptBlock(uint8_t* data, - FX_DWORD size, - const uint8_t* key, - FX_DWORD keylen); -void CRYPT_ArcFourSetup(void* context, const uint8_t* key, FX_DWORD length); -void CRYPT_ArcFourCrypt(void* context, uint8_t* data, FX_DWORD size); -void CRYPT_AESSetKey(void* context, - FX_DWORD blocklen, - const uint8_t* key, - FX_DWORD keylen, - FX_BOOL bEncrypt); -void CRYPT_AESSetIV(void* context, const uint8_t* iv); -void CRYPT_AESDecrypt(void* context, - uint8_t* dest, - const uint8_t* src, - FX_DWORD size); -void CRYPT_AESEncrypt(void* context, - uint8_t* dest, - const uint8_t* src, - FX_DWORD size); -void CRYPT_MD5Generate(const uint8_t* data, FX_DWORD size, uint8_t digest[16]); -void CRYPT_MD5Start(void* context); -void CRYPT_MD5Update(void* context, const uint8_t* data, FX_DWORD size); -void CRYPT_MD5Finish(void* context, uint8_t digest[16]); -void CRYPT_SHA1Generate(const uint8_t* data, FX_DWORD size, uint8_t digest[20]); -void CRYPT_SHA1Start(void* context); -void CRYPT_SHA1Update(void* context, const uint8_t* data, FX_DWORD size); -void CRYPT_SHA1Finish(void* context, uint8_t digest[20]); -void CRYPT_SHA256Generate(const uint8_t* data, - FX_DWORD size, - uint8_t digest[32]); -void CRYPT_SHA256Start(void* context); -void CRYPT_SHA256Update(void* context, const uint8_t* data, FX_DWORD size); -void CRYPT_SHA256Finish(void* context, uint8_t digest[32]); -void CRYPT_SHA384Start(void* context); -void CRYPT_SHA384Update(void* context, const uint8_t* data, FX_DWORD size); -void CRYPT_SHA384Finish(void* context, uint8_t digest[48]); -void CRYPT_SHA384Generate(const uint8_t* data, - FX_DWORD size, - uint8_t digest[48]); -void CRYPT_SHA512Start(void* context); -void CRYPT_SHA512Update(void* context, const uint8_t* data, FX_DWORD size); -void CRYPT_SHA512Finish(void* context, uint8_t digest[64]); -void CRYPT_SHA512Generate(const uint8_t* data, - FX_DWORD size, - uint8_t digest[64]); -void CRYPT_SetPubKeyDecryptor(FX_BOOL (*func)(const uint8_t* pData, - FX_DWORD size, - uint8_t* data_buf, - FX_DWORD& data_len)); - -#ifdef __cplusplus -}; -#endif - -#endif // CORE_INCLUDE_FDRM_FX_CRYPT_H_ diff --git a/core/include/fpdftext/fpdf_text.h b/core/include/fpdftext/fpdf_text.h deleted file mode 100644 index a3457fcf06..0000000000 --- a/core/include/fpdftext/fpdf_text.h +++ /dev/null @@ -1,121 +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_FPDFTEXT_FPDF_TEXT_H_ -#define CORE_INCLUDE_FPDFTEXT_FPDF_TEXT_H_ - -#include "core/include/fxcrt/fx_coordinates.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Page; -class CPDF_TextObject; -class IPDF_LinkExtract; -class IPDF_ReflowedPage; -class IPDF_TextPage; -class IPDF_TextPageFind; - -#define CHAR_ERROR -1 -#define CHAR_NORMAL 0 -#define CHAR_GENERATED 1 -#define CHAR_UNUNICODE 2 - -struct FPDF_CHAR_INFO { - FX_WCHAR m_Unicode; - FX_WCHAR m_Charcode; - int32_t m_Flag; - FX_FLOAT m_FontSize; - FX_FLOAT m_OriginX; - FX_FLOAT m_OriginY; - CFX_FloatRect m_CharBox; - CPDF_TextObject* m_pTextObj; - CFX_Matrix m_Matrix; -}; - -using CFX_RectArray = CFX_ArrayTemplate; - -#define FPDFTEXT_LRTB 0 -#define FPDFTEXT_RLTB 1 -#define FPDFTEXT_TBRL 2 -#define FPDFTEXT_LEFT -1 -#define FPDFTEXT_RIGHT 1 -#define FPDFTEXT_UP -2 -#define FPDFTEXT_DOWN 2 - -class IPDF_TextPage { - public: - static IPDF_TextPage* CreateTextPage(const CPDF_Page* pPage, int flags = 0); - static IPDF_TextPage* CreateReflowTextPage(IPDF_ReflowedPage* pRefPage); - virtual ~IPDF_TextPage() {} - - virtual void ParseTextPage() = 0; - virtual bool IsParsed() const = 0; - virtual int CharIndexFromTextIndex(int TextIndex) const = 0; - virtual int TextIndexFromCharIndex(int CharIndex) const = 0; - virtual int CountChars() const = 0; - virtual void GetCharInfo(int index, FPDF_CHAR_INFO* info) const = 0; - virtual void GetRectArray(int start, - int nCount, - CFX_RectArray& rectArray) const = 0; - virtual int GetIndexAtPos(CFX_FloatPoint point, - FX_FLOAT xTolerance, - FX_FLOAT yTolerance) const = 0; - virtual int GetIndexAtPos(FX_FLOAT x, - FX_FLOAT y, - FX_FLOAT xTolerance, - FX_FLOAT yTolerance) const = 0; - virtual CFX_WideString GetTextByRect(const CFX_FloatRect& rect) const = 0; - virtual void GetRectsArrayByRect(const CFX_FloatRect& rect, - CFX_RectArray& resRectArray) const = 0; - virtual int CountRects(int start, int nCount) = 0; - virtual void GetRect(int rectIndex, - FX_FLOAT& left, - FX_FLOAT& top, - FX_FLOAT& right, - FX_FLOAT& bottom) const = 0; - virtual FX_BOOL GetBaselineRotate(int rectIndex, int& Rotate) = 0; - virtual FX_BOOL GetBaselineRotate(const CFX_FloatRect& rect, int& Rotate) = 0; - virtual int CountBoundedSegments(FX_FLOAT left, - FX_FLOAT top, - FX_FLOAT right, - FX_FLOAT bottom, - FX_BOOL bContains = FALSE) = 0; - virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; - virtual int GetWordBreak(int index, int direction) const = 0; - virtual CFX_WideString GetPageText(int start = 0, int nCount = -1) const = 0; -}; - -#define FPDFTEXT_MATCHCASE 0x00000001 -#define FPDFTEXT_MATCHWHOLEWORD 0x00000002 -#define FPDFTEXT_CONSECUTIVE 0x00000004 - -class IPDF_TextPageFind { - public: - static IPDF_TextPageFind* CreatePageFind(const IPDF_TextPage* pTextPage); - virtual ~IPDF_TextPageFind() {} - - virtual FX_BOOL FindFirst(const CFX_WideString& findwhat, - int flags, - int startPos = 0) = 0; - virtual FX_BOOL FindNext() = 0; - virtual FX_BOOL FindPrev() = 0; - virtual void GetRectArray(CFX_RectArray& rects) const = 0; - virtual int GetCurOrder() const = 0; - virtual int GetMatchedCount() const = 0; -}; - -class IPDF_LinkExtract { - public: - static IPDF_LinkExtract* CreateLinkExtract(); - virtual ~IPDF_LinkExtract() {} - - virtual FX_BOOL ExtractLinks(const IPDF_TextPage* pTextPage) = 0; - virtual int CountLinks() const = 0; - virtual CFX_WideString GetURL(int index) const = 0; - virtual void GetBoundedSegment(int index, int& start, int& count) const = 0; - virtual void GetRects(int index, CFX_RectArray& rects) const = 0; -}; - -#endif // CORE_INCLUDE_FPDFTEXT_FPDF_TEXT_H_ diff --git a/core/include/fxcrt/fx_coordinates.h b/core/include/fxcrt/fx_coordinates.h index 53b4c1a12e..0422da1eaa 100644 --- a/core/include/fxcrt/fx_coordinates.h +++ b/core/include/fxcrt/fx_coordinates.h @@ -310,6 +310,7 @@ class CFX_FloatRect { FX_FLOAT right; FX_FLOAT top; }; +using CFX_RectArray = CFX_ArrayTemplate; // LTWH rectangles (y-axis runs downwards). template diff --git a/fpdfsdk/DEPS b/fpdfsdk/DEPS index 488a3963c1..ed111888c8 100644 --- a/fpdfsdk/DEPS +++ b/fpdfsdk/DEPS @@ -1,5 +1,6 @@ include_rules = [ '+core/include', + '+core/fpdftext/include', '+javascript/IJavaScript.h', '+public', '+v8', diff --git a/fpdfsdk/fpdf_searchex.cpp b/fpdfsdk/fpdf_searchex.cpp index 96c5e53309..ab2baf529c 100644 --- a/fpdfsdk/fpdf_searchex.cpp +++ b/fpdfsdk/fpdf_searchex.cpp @@ -6,7 +6,7 @@ #include "public/fpdf_searchex.h" -#include "core/include/fpdftext/fpdf_text.h" +#include "core/fpdftext/include/ipdf_textpage.h" DLLEXPORT int STDCALL FPDFText_GetCharIndexFromTextIndex(FPDF_TEXTPAGE text_page, int nTextIndex) { diff --git a/fpdfsdk/fpdftext.cpp b/fpdfsdk/fpdftext.cpp index 80d56920bc..3e64d8e2c4 100644 --- a/fpdfsdk/fpdftext.cpp +++ b/fpdfsdk/fpdftext.cpp @@ -6,8 +6,10 @@ #include "public/fpdf_text.h" +#include "core/fpdftext/include/ipdf_linkextract.h" +#include "core/fpdftext/include/ipdf_textpage.h" +#include "core/fpdftext/include/ipdf_textpagefind.h" #include "core/include/fpdfdoc/fpdf_doc.h" -#include "core/include/fpdftext/fpdf_text.h" #include "fpdfsdk/include/fsdk_define.h" #ifdef PDF_ENABLE_XFA diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index 6543000d4f..0073377893 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -12,7 +12,6 @@ #include #include "core/include/fpdfapi/cpdf_document.h" -#include "core/include/fpdftext/fpdf_text.h" #include "fpdfsdk/include/fsdk_actionhandler.h" #include "fpdfsdk/include/fsdk_annothandler.h" #include "fpdfsdk/include/fsdk_baseannot.h" diff --git a/fpdfsdk/javascript/DEPS b/fpdfsdk/javascript/DEPS index 4b3f3dd3d0..a1f0ec3a5e 100644 --- a/fpdfsdk/javascript/DEPS +++ b/fpdfsdk/javascript/DEPS @@ -1,3 +1,4 @@ include_rules = [ + '+core/fdrm/crypto/include', '+xfa/fxjse' ] diff --git a/fpdfsdk/javascript/JS_GlobalData.cpp b/fpdfsdk/javascript/JS_GlobalData.cpp index 1408dbe33d..ba547fe79e 100644 --- a/fpdfsdk/javascript/JS_GlobalData.cpp +++ b/fpdfsdk/javascript/JS_GlobalData.cpp @@ -6,7 +6,7 @@ #include "fpdfsdk/javascript/JS_GlobalData.h" -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "fpdfsdk/include/javascript/IJavaScript.h" #define JS_MAXGLOBALDATA (1024 * 4 - 8) diff --git a/pdfium.gyp b/pdfium.gyp index a7cb00d689..9d986b29eb 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -212,7 +212,7 @@ 'target_name': 'fdrm', 'type': 'static_library', 'sources': [ - 'core/include/fdrm/fx_crypt.h', + 'core/fdrm/crypto/include/fx_crypt.h', 'core/fdrm/crypto/fx_crypt.cpp', 'core/fdrm/crypto/fx_crypt_aes.cpp', 'core/fdrm/crypto/fx_crypt_sha.cpp', @@ -403,7 +403,9 @@ 'target_name': 'fpdftext', 'type': 'static_library', 'sources': [ - 'core/include/fpdftext/fpdf_text.h', + 'core/fpdftext/include/ipdf_linkextract.h', + 'core/fpdftext/include/ipdf_textpage.h', + 'core/fpdftext/include/ipdf_textpagefind.h', 'core/fpdftext/fpdf_text_int.cpp', 'core/fpdftext/text_int.h', 'core/fpdftext/unicodenormalization.cpp', diff --git a/xfa/fxfa/app/DEPS b/xfa/fxfa/app/DEPS new file mode 100644 index 0000000000..a0d113f3cf --- /dev/null +++ b/xfa/fxfa/app/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + '+core/fdrm/crypto/include', +] diff --git a/xfa/fxfa/app/xfa_checksum.cpp b/xfa/fxfa/app/xfa_checksum.cpp index 1639c0d2f6..b9a7b50be7 100644 --- a/xfa/fxfa/app/xfa_checksum.cpp +++ b/xfa/fxfa/app/xfa_checksum.cpp @@ -6,7 +6,7 @@ #include "xfa/fxfa/app/xfa_checksum.h" -#include "core/include/fdrm/fx_crypt.h" +#include "core/fdrm/crypto/include/fx_crypt.h" #include "xfa/fgas/crt/fgas_algorithm.h" CXFA_SAXReaderHandler::CXFA_SAXReaderHandler(CXFA_ChecksumContext* pContext) -- cgit v1.2.3