summaryrefslogtreecommitdiff
path: root/xfa/fde/css/cfde_cssstylesheet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fde/css/cfde_cssstylesheet.cpp')
-rw-r--r--xfa/fde/css/cfde_cssstylesheet.cpp140
1 files changed, 0 insertions, 140 deletions
diff --git a/xfa/fde/css/cfde_cssstylesheet.cpp b/xfa/fde/css/cfde_cssstylesheet.cpp
deleted file mode 100644
index 369279853e..0000000000
--- a/xfa/fde/css/cfde_cssstylesheet.cpp
+++ /dev/null
@@ -1,140 +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
-
-#include "xfa/fde/css/cfde_cssstylesheet.h"
-
-#include <utility>
-
-#include "core/fxcrt/fx_codepage.h"
-#include "third_party/base/ptr_util.h"
-#include "third_party/base/stl_util.h"
-#include "xfa/fde/css/cfde_cssdeclaration.h"
-#include "xfa/fde/css/cfde_cssstylerule.h"
-#include "xfa/fde/css/fde_cssdatatable.h"
-
-CFDE_CSSStyleSheet::CFDE_CSSStyleSheet() {}
-
-CFDE_CSSStyleSheet::~CFDE_CSSStyleSheet() {
- Reset();
-}
-
-void CFDE_CSSStyleSheet::Reset() {
- m_RuleArray.clear();
- m_StringCache.clear();
-}
-
-int32_t CFDE_CSSStyleSheet::CountRules() const {
- return pdfium::CollectionSize<int32_t>(m_RuleArray);
-}
-
-CFDE_CSSStyleRule* CFDE_CSSStyleSheet::GetRule(int32_t index) const {
- return m_RuleArray[index].get();
-}
-
-bool CFDE_CSSStyleSheet::LoadBuffer(const wchar_t* pBuffer, int32_t iBufSize) {
- ASSERT(pBuffer);
- ASSERT(iBufSize > 0);
-
- auto pSyntax = pdfium::MakeUnique<CFDE_CSSSyntaxParser>(pBuffer, iBufSize);
- Reset();
- FDE_CSSSyntaxStatus eStatus;
- do {
- switch (eStatus = pSyntax->DoSyntaxParse()) {
- case FDE_CSSSyntaxStatus::StyleRule:
- eStatus = LoadStyleRule(pSyntax.get(), &m_RuleArray);
- break;
- default:
- break;
- }
- } while (eStatus >= FDE_CSSSyntaxStatus::None);
-
- m_StringCache.clear();
- return eStatus != FDE_CSSSyntaxStatus::Error;
-}
-
-FDE_CSSSyntaxStatus CFDE_CSSStyleSheet::LoadStyleRule(
- CFDE_CSSSyntaxParser* pSyntax,
- std::vector<std::unique_ptr<CFDE_CSSStyleRule>>* ruleArray) {
- std::vector<std::unique_ptr<CFDE_CSSSelector>> selectors;
-
- CFDE_CSSStyleRule* pStyleRule = nullptr;
- int32_t iValueLen = 0;
- const FDE_CSSPropertyTable* propertyTable = nullptr;
- CFX_WideString wsName;
- while (1) {
- switch (pSyntax->DoSyntaxParse()) {
- case FDE_CSSSyntaxStatus::Selector: {
- CFX_WideStringC strValue = pSyntax->GetCurrentString();
- auto pSelector = CFDE_CSSSelector::FromString(strValue);
- if (pSelector)
- selectors.push_back(std::move(pSelector));
- break;
- }
- case FDE_CSSSyntaxStatus::PropertyName: {
- CFX_WideStringC strValue = pSyntax->GetCurrentString();
- propertyTable = FDE_GetCSSPropertyByName(strValue);
- if (!propertyTable)
- wsName = CFX_WideString(strValue);
- break;
- }
- case FDE_CSSSyntaxStatus::PropertyValue: {
- if (propertyTable || iValueLen > 0) {
- CFX_WideStringC strValue = pSyntax->GetCurrentString();
- auto* decl = pStyleRule->GetDeclaration();
- if (!strValue.IsEmpty()) {
- if (propertyTable) {
- decl->AddProperty(propertyTable, strValue);
- } else {
- decl->AddProperty(wsName, CFX_WideString(strValue));
- }
- }
- }
- break;
- }
- case FDE_CSSSyntaxStatus::DeclOpen: {
- if (!pStyleRule && !selectors.empty()) {
- auto rule = pdfium::MakeUnique<CFDE_CSSStyleRule>();
- pStyleRule = rule.get();
- pStyleRule->SetSelector(&selectors);
- ruleArray->push_back(std::move(rule));
- } else {
- SkipRuleSet(pSyntax);
- return FDE_CSSSyntaxStatus::None;
- }
- break;
- }
- case FDE_CSSSyntaxStatus::DeclClose: {
- if (pStyleRule && pStyleRule->GetDeclaration()->empty()) {
- ruleArray->pop_back();
- pStyleRule = nullptr;
- }
- return FDE_CSSSyntaxStatus::None;
- }
- case FDE_CSSSyntaxStatus::EOS:
- return FDE_CSSSyntaxStatus::EOS;
- case FDE_CSSSyntaxStatus::Error:
- default:
- return FDE_CSSSyntaxStatus::Error;
- }
- }
-}
-
-void CFDE_CSSStyleSheet::SkipRuleSet(CFDE_CSSSyntaxParser* pSyntax) {
- while (1) {
- switch (pSyntax->DoSyntaxParse()) {
- case FDE_CSSSyntaxStatus::Selector:
- case FDE_CSSSyntaxStatus::DeclOpen:
- case FDE_CSSSyntaxStatus::PropertyName:
- case FDE_CSSSyntaxStatus::PropertyValue:
- break;
- case FDE_CSSSyntaxStatus::DeclClose:
- case FDE_CSSSyntaxStatus::EOS:
- case FDE_CSSSyntaxStatus::Error:
- default:
- return;
- }
- }
-}