Move CXFA_CSSTagProvider to inner class of CXFA_TextParser
The TagProvider is only used in CXFA_TextParser. This CL moves the code
to a private inner class and renames to TagProvider.
Change-Id: Idd1926250fc59592cc923fde9ec6f8750cb10abf
Reviewed-on: https://pdfium-review.googlesource.com/9231
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 9f8c52a..057e84f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1614,8 +1614,6 @@
"xfa/fwl/theme/cfwl_utils.h",
"xfa/fwl/theme/cfwl_widgettp.cpp",
"xfa/fwl/theme/cfwl_widgettp.h",
- "xfa/fxfa/cxfa_csstagprovider.cpp",
- "xfa/fxfa/cxfa_csstagprovider.h",
"xfa/fxfa/cxfa_deffontmgr.cpp",
"xfa/fxfa/cxfa_deffontmgr.h",
"xfa/fxfa/cxfa_eventparam.cpp",
diff --git a/xfa/fde/css/cfde_cssstyleselector.cpp b/xfa/fde/css/cfde_cssstyleselector.cpp
index 2213feb..51e60bc 100644
--- a/xfa/fde/css/cfde_cssstyleselector.cpp
+++ b/xfa/fde/css/cfde_cssstyleselector.cpp
@@ -21,7 +21,6 @@
#include "xfa/fde/css/cfde_cssstylesheet.h"
#include "xfa/fde/css/cfde_csssyntaxparser.h"
#include "xfa/fde/css/cfde_cssvaluelist.h"
-#include "xfa/fxfa/cxfa_csstagprovider.h"
CFDE_CSSStyleSelector::CFDE_CSSStyleSelector(CFGAS_FontMgr* pFontMgr)
: m_pFontMgr(pFontMgr), m_fDefFontSize(12.0f) {}
diff --git a/xfa/fxfa/cxfa_csstagprovider.cpp b/xfa/fxfa/cxfa_csstagprovider.cpp
deleted file mode 100644
index 98d00d4..0000000
--- a/xfa/fxfa/cxfa_csstagprovider.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2017 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
-
-#include "xfa/fxfa/cxfa_csstagprovider.h"
-
-CXFA_CSSTagProvider::CXFA_CSSTagProvider()
- : m_bTagAvailable(false), m_bContent(false) {}
-
-CXFA_CSSTagProvider::~CXFA_CSSTagProvider() {}
diff --git a/xfa/fxfa/cxfa_csstagprovider.h b/xfa/fxfa/cxfa_csstagprovider.h
deleted file mode 100644
index 058740b..0000000
--- a/xfa/fxfa/cxfa_csstagprovider.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2017 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 XFA_FXFA_CXFA_CSSTAGPROVIDER_H_
-#define XFA_FXFA_CXFA_CSSTAGPROVIDER_H_
-
-#include <map>
-
-#include "core/fxcrt/fx_string.h"
-
-class CXFA_CSSTagProvider {
- public:
- CXFA_CSSTagProvider();
- ~CXFA_CSSTagProvider();
-
- CFX_WideString GetTagName() { return m_wsTagName; }
-
- void SetTagName(const CFX_WideString& wsName) { m_wsTagName = wsName; }
- void SetAttribute(const CFX_WideString& wsAttr,
- const CFX_WideString& wsValue) {
- m_Attributes.insert({wsAttr, wsValue});
- }
-
- CFX_WideString GetAttribute(const CFX_WideString& wsAttr) {
- return m_Attributes[wsAttr];
- }
-
- bool m_bTagAvailable;
- bool m_bContent;
-
- private:
- CFX_WideString m_wsTagName;
- std::map<CFX_WideString, CFX_WideString> m_Attributes;
-};
-
-#endif // XFA_FXFA_CXFA_CSSTAGPROVIDER_H_
diff --git a/xfa/fxfa/cxfa_textparser.cpp b/xfa/fxfa/cxfa_textparser.cpp
index 2bc0096..c74cf50 100644
--- a/xfa/fxfa/cxfa_textparser.cpp
+++ b/xfa/fxfa/cxfa_textparser.cpp
@@ -19,7 +19,6 @@
#include "xfa/fde/css/cfde_cssstylesheet.h"
#include "xfa/fde/css/fde_css.h"
#include "xfa/fgas/font/cfgas_fontmgr.h"
-#include "xfa/fxfa/cxfa_csstagprovider.h"
#include "xfa/fxfa/cxfa_ffapp.h"
#include "xfa/fxfa/cxfa_ffdoc.h"
#include "xfa/fxfa/cxfa_fontmgr.h"
@@ -269,9 +268,9 @@
FX_HashCode_GetW(wsName.AsStringC(), true));
}
-std::unique_ptr<CXFA_CSSTagProvider> CXFA_TextParser::ParseTagInfo(
+std::unique_ptr<CXFA_TextParser::TagProvider> CXFA_TextParser::ParseTagInfo(
CFX_XMLNode* pXMLNode) {
- auto tagProvider = pdfium::MakeUnique<CXFA_CSSTagProvider>();
+ auto tagProvider = pdfium::MakeUnique<TagProvider>();
CFX_WideString wsName;
if (pXMLNode->GetType() == FX_XMLNODE_Element) {
@@ -623,3 +622,8 @@
}
return true;
}
+
+CXFA_TextParser::TagProvider::TagProvider()
+ : m_bTagAvailable(false), m_bContent(false) {}
+
+CXFA_TextParser::TagProvider::~TagProvider() {}
diff --git a/xfa/fxfa/cxfa_textparser.h b/xfa/fxfa/cxfa_textparser.h
index 3c1b603..303b10c 100644
--- a/xfa/fxfa/cxfa_textparser.h
+++ b/xfa/fxfa/cxfa_textparser.h
@@ -20,7 +20,6 @@
class CFDE_CSSStyleSelector;
class CFDE_CSSStyleSheet;
class CFX_XMLNode;
-class CXFA_CSSTagProvider;
class CXFA_TextParseContext;
class CXFA_TextProvider;
class CXFA_TextTabstopsContext;
@@ -86,10 +85,35 @@
bool TagValidate(const CFX_WideString& str) const;
private:
+ class TagProvider {
+ public:
+ TagProvider();
+ ~TagProvider();
+
+ CFX_WideString GetTagName() { return m_wsTagName; }
+
+ void SetTagName(const CFX_WideString& wsName) { m_wsTagName = wsName; }
+ void SetAttribute(const CFX_WideString& wsAttr,
+ const CFX_WideString& wsValue) {
+ m_Attributes.insert({wsAttr, wsValue});
+ }
+
+ CFX_WideString GetAttribute(const CFX_WideString& wsAttr) {
+ return m_Attributes[wsAttr];
+ }
+
+ bool m_bTagAvailable;
+ bool m_bContent;
+
+ private:
+ CFX_WideString m_wsTagName;
+ std::map<CFX_WideString, CFX_WideString> m_Attributes;
+ };
+
void InitCSSData(CXFA_TextProvider* pTextProvider);
void ParseRichText(CFX_XMLNode* pXMLNode,
CFDE_CSSComputedStyle* pParentStyle);
- std::unique_ptr<CXFA_CSSTagProvider> ParseTagInfo(CFX_XMLNode* pXMLNode);
+ std::unique_ptr<TagProvider> ParseTagInfo(CFX_XMLNode* pXMLNode);
std::unique_ptr<CFDE_CSSStyleSheet> LoadDefaultSheetStyle();
CFX_RetainPtr<CFDE_CSSComputedStyle> CreateStyle(
CFDE_CSSComputedStyle* pParentStyle);