diff --git a/core/fpdfapi/page/cpdf_form.cpp b/core/fpdfapi/page/cpdf_form.cpp
index 0bc59a3..ab3296e 100644
--- a/core/fpdfapi/page/cpdf_form.cpp
+++ b/core/fpdfapi/page/cpdf_form.cpp
@@ -44,7 +44,7 @@
                               pParentResources,
                               pPageResources)),
       m_pFormStream(pFormStream) {
-  LoadTransInfo();
+  LoadTransparencyInfo();
 }
 
 CPDF_Form::~CPDF_Form() = default;
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index 1d1ce32..210f266 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -33,7 +33,7 @@
 
   UpdateDimensions();
   m_Transparency.SetIsolated();
-  LoadTransInfo();
+  LoadTransparencyInfo();
 }
 
 CPDF_Page::~CPDF_Page() {}
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
index 4f22e88..d7307ab 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
@@ -76,18 +76,13 @@
   m_MaskBoundingBoxes.push_back(box);
 }
 
-void CPDF_PageObjectHolder::Transform(const CFX_Matrix& matrix) {
-  for (auto& pObj : m_PageObjectList)
-    pObj->Transform(matrix);
-}
-
 std::set<int32_t> CPDF_PageObjectHolder::TakeDirtyStreams() {
   auto dirty_streams = std::move(m_DirtyStreams);
   m_DirtyStreams.clear();
   return dirty_streams;
 }
 
-void CPDF_PageObjectHolder::LoadTransInfo() {
+void CPDF_PageObjectHolder::LoadTransparencyInfo() {
   CPDF_Dictionary* pGroup = m_pDict->GetDictFor("Group");
   if (!pGroup)
     return;
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h
index 70a76b8..b9eff30 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.h
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -93,7 +93,6 @@
     return m_MaskBoundingBoxes;
   }
   void AddImageMaskBoundingBox(const CFX_FloatRect& box);
-  void Transform(const CFX_Matrix& matrix);
   bool HasDirtyStreams() const { return !m_DirtyStreams.empty(); }
   std::set<int32_t> TakeDirtyStreams();
 
@@ -103,7 +102,7 @@
   std::map<FontData, ByteString> m_FontsMap;
 
  protected:
-  void LoadTransInfo();
+  void LoadTransparencyInfo();
 
   CFX_FloatRect m_BBox;
   CPDF_Transparency m_Transparency;
