diff --git a/BUILD.gn b/BUILD.gn
index 3324de7..451af01 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -363,7 +363,6 @@
     "core/fpdfdoc/cpvt_generateap.h",
     "core/fpdfdoc/cpvt_line.h",
     "core/fpdfdoc/cpvt_lineinfo.h",
-    "core/fpdfdoc/cpvt_section.h",
     "core/fpdfdoc/cpvt_sectioninfo.cpp",
     "core/fpdfdoc/cpvt_sectioninfo.h",
     "core/fpdfdoc/cpvt_word.h",
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp
index d2643e8..e12f949 100644
--- a/core/fpdfdoc/cpdf_variabletext.cpp
+++ b/core/fpdfdoc/cpdf_variabletext.cpp
@@ -11,7 +11,6 @@
 
 #include "core/fpdfapi/font/cpdf_font.h"
 #include "core/fpdfdoc/cline.h"
-#include "core/fpdfdoc/cpvt_section.h"
 #include "core/fpdfdoc/cpvt_word.h"
 #include "core/fpdfdoc/cpvt_wordinfo.h"
 #include "core/fpdfdoc/csection.h"
@@ -178,15 +177,6 @@
   return true;
 }
 
-bool CPDF_VariableText::Iterator::GetSection(CPVT_Section& section) const {
-  if (!pdfium::IndexInBounds(m_pVT->m_SectionArray, m_CurPos.nSecIndex))
-    return false;
-
-  CSection* pSection = m_pVT->m_SectionArray[m_CurPos.nSecIndex].get();
-  section.rcSection = m_pVT->InToOut(pSection->m_SecInfo.rcSection);
-  return true;
-}
-
 CPDF_VariableText::CPDF_VariableText()
     : m_nLimitChar(0),
       m_nCharArray(0),
diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h
index a438a1c..22ed09a 100644
--- a/core/fpdfdoc/cpdf_variabletext.h
+++ b/core/fpdfdoc/cpdf_variabletext.h
@@ -23,7 +23,6 @@
 class CPVT_Word;
 class CSection;
 class IPVT_FontMap;
-struct CPVT_Section;
 struct CPVT_SectionInfo;
 
 struct CPVT_WordInfo;
@@ -44,7 +43,6 @@
     bool NextLine();
     bool GetWord(CPVT_Word& word) const;
     bool GetLine(CPVT_Line& line) const;
-    bool GetSection(CPVT_Section& section) const;
     void SetAt(int32_t nWordIndex);
     void SetAt(const CPVT_WordPlace& place);
     const CPVT_WordPlace& GetAt() const { return m_CurPos; }
diff --git a/core/fpdfdoc/cpvt_section.h b/core/fpdfdoc/cpvt_section.h
deleted file mode 100644
index 2a89034..0000000
--- a/core/fpdfdoc/cpvt_section.h
+++ /dev/null
@@ -1,17 +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_FPDFDOC_CPVT_SECTION_H_
-#define CORE_FPDFDOC_CPVT_SECTION_H_
-
-#include "core/fpdfdoc/cpvt_wordplace.h"
-#include "core/fxcrt/fx_coordinates.h"
-
-struct CPVT_Section {
-  CFX_FloatRect rcSection;
-};
-
-#endif  // CORE_FPDFDOC_CPVT_SECTION_H_
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
index 2fe6e28..06b5ded 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
@@ -6,7 +6,6 @@
 
 #include "fpdfsdk/pwl/cpwl_edit_ctrl.h"
 
-#include "core/fpdfdoc/cpvt_section.h"
 #include "core/fpdfdoc/cpvt_word.h"
 #include "core/fxge/fx_font.h"
 #include "fpdfsdk/pwl/cpwl_caret.h"
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index 7ed38f1..7f6d853 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -19,7 +19,6 @@
 #include "core/fpdfapi/parser/fpdf_parser_decode.h"
 #include "core/fpdfapi/render/cpdf_renderoptions.h"
 #include "core/fpdfapi/render/cpdf_textrenderer.h"
-#include "core/fpdfdoc/cpvt_section.h"
 #include "core/fpdfdoc/cpvt_word.h"
 #include "core/fpdfdoc/ipvt_fontmap.h"
 #include "core/fxcrt/autorestorer.h"
@@ -1562,12 +1561,10 @@
   if (!m_pVT->IsValid() || m_wpCaret == m_pVT->GetBeginWordPlace())
     return false;
 
-  CPVT_Section section;
   CPVT_Word word;
   if (bAddUndo) {
     CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator();
     pIterator->SetAt(m_wpCaret);
-    pIterator->GetSection(section);
     pIterator->GetWord(word);
   }
   m_pVT->UpdateWordPlace(m_wpCaret);
@@ -1602,12 +1599,10 @@
   if (!m_pVT->IsValid() || m_wpCaret == m_pVT->GetEndWordPlace())
     return false;
 
-  CPVT_Section section;
   CPVT_Word word;
   if (bAddUndo) {
     CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator();
     pIterator->SetAt(m_pVT->GetNextWordPlace(m_wpCaret));
-    pIterator->GetSection(section);
     pIterator->GetWord(word);
   }
   m_pVT->UpdateWordPlace(m_wpCaret);
