summaryrefslogtreecommitdiff
path: root/xfa/fde/css/cfde_cssselector.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-08-08 13:23:24 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-08-08 17:37:54 +0000
commit9f0e85ac36826e39a242f8039c2b2c333ee99f4f (patch)
treec93f2a9322968f7723a4b3da5ea5e4cb7b79b075 /xfa/fde/css/cfde_cssselector.cpp
parent78fc9aa402409f3fcd8dc1f458e67798cb3b483e (diff)
downloadpdfium-9f0e85ac36826e39a242f8039c2b2c333ee99f4f.tar.xz
Move CSS code to core
The xfa/fde/css code has no other links into xfa/. This CL moves the css code to core/fxcrt/css and sets to only build when pdf_enable_xfa is enabled. Change-Id: Iefd208e1f83a28b80b567c574e841e87bce310be Reviewed-on: https://pdfium-review.googlesource.com/9251 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'xfa/fde/css/cfde_cssselector.cpp')
-rw-r--r--xfa/fde/css/cfde_cssselector.cpp87
1 files changed, 0 insertions, 87 deletions
diff --git a/xfa/fde/css/cfde_cssselector.cpp b/xfa/fde/css/cfde_cssselector.cpp
deleted file mode 100644
index ad2ec40c2b..0000000000
--- a/xfa/fde/css/cfde_cssselector.cpp
+++ /dev/null
@@ -1,87 +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/fde/css/cfde_cssselector.h"
-
-#include <utility>
-
-#include "core/fxcrt/fx_extension.h"
-#include "third_party/base/ptr_util.h"
-
-namespace {
-
-int32_t GetCSSNameLen(const wchar_t* psz, const wchar_t* pEnd) {
- const wchar_t* pStart = psz;
- while (psz < pEnd) {
- wchar_t wch = *psz;
- if (!FXSYS_iswalnum(wch) && wch != '_' && wch != '-')
- break;
- ++psz;
- }
- return psz - pStart;
-}
-
-} // namespace
-
-CFDE_CSSSelector::CFDE_CSSSelector(FDE_CSSSelectorType eType,
- const wchar_t* psz,
- int32_t iLen,
- bool bIgnoreCase)
- : m_eType(eType),
- m_dwHash(FX_HashCode_GetW(CFX_WideStringC(psz, iLen), bIgnoreCase)) {}
-
-CFDE_CSSSelector::~CFDE_CSSSelector() {}
-
-FDE_CSSSelectorType CFDE_CSSSelector::GetType() const {
- return m_eType;
-}
-
-uint32_t CFDE_CSSSelector::GetNameHash() const {
- return m_dwHash;
-}
-
-CFDE_CSSSelector* CFDE_CSSSelector::GetNextSelector() const {
- return m_pNext.get();
-}
-
-// static.
-std::unique_ptr<CFDE_CSSSelector> CFDE_CSSSelector::FromString(
- const CFX_WideStringC& str) {
- ASSERT(!str.IsEmpty());
-
- const wchar_t* psz = str.unterminated_c_str();
- const wchar_t* pStart = psz;
- const wchar_t* pEnd = psz + str.GetLength();
- for (; psz < pEnd; ++psz) {
- switch (*psz) {
- case '>':
- case '[':
- case '+':
- return nullptr;
- }
- }
-
- std::unique_ptr<CFDE_CSSSelector> pFirst = nullptr;
- for (psz = pStart; psz < pEnd;) {
- wchar_t wch = *psz;
- if (FXSYS_iswalpha(wch) || wch == '*') {
- int32_t iNameLen = wch == '*' ? 1 : GetCSSNameLen(psz, pEnd);
- auto p = pdfium::MakeUnique<CFDE_CSSSelector>(
- FDE_CSSSelectorType::Element, psz, iNameLen, true);
- if (pFirst) {
- pFirst->SetType(FDE_CSSSelectorType::Descendant);
- p->SetNext(std::move(pFirst));
- }
- pFirst = std::move(p);
- psz += iNameLen;
- } else if (wch == ' ') {
- psz++;
- } else {
- return nullptr;
- }
- }
- return pFirst;
-}