diff --git a/core/fpdfapi/render/BUILD.gn b/core/fpdfapi/render/BUILD.gn
index a4ab336..514d204 100644
--- a/core/fpdfapi/render/BUILD.gn
+++ b/core/fpdfapi/render/BUILD.gn
@@ -13,8 +13,6 @@
     "cpdf_devicebuffer.h",
     "cpdf_docrenderdata.cpp",
     "cpdf_docrenderdata.h",
-    "cpdf_imagecacheentry.cpp",
-    "cpdf_imagecacheentry.h",
     "cpdf_imageloader.cpp",
     "cpdf_imageloader.h",
     "cpdf_imagerenderer.cpp",
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
deleted file mode 100644
index fe4e331..0000000
--- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp
+++ /dev/null
@@ -1,112 +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
-
-#include "core/fpdfapi/render/cpdf_imagecacheentry.h"
-
-#include <utility>
-
-#include "core/fpdfapi/page/cpdf_dib.h"
-#include "core/fpdfapi/page/cpdf_image.h"
-#include "core/fpdfapi/page/cpdf_page.h"
-#include "core/fpdfapi/parser/cpdf_dictionary.h"
-#include "core/fpdfapi/parser/cpdf_document.h"
-#include "core/fpdfapi/parser/cpdf_stream.h"
-#include "core/fpdfapi/render/cpdf_pagerendercache.h"
-#include "core/fpdfapi/render/cpdf_rendercontext.h"
-#include "core/fpdfapi/render/cpdf_renderstatus.h"
-#include "core/fxge/dib/cfx_dibitmap.h"
-#include "third_party/base/check_op.h"
-
-CPDF_ImageCacheEntry::CPDF_ImageCacheEntry(CPDF_Document* pDoc,
-                                           RetainPtr<CPDF_Image> pImage)
-    : m_pDocument(pDoc), m_pImage(std::move(pImage)) {}
-
-CPDF_ImageCacheEntry::~CPDF_ImageCacheEntry() = default;
-
-void CPDF_ImageCacheEntry::Reset() {
-  m_pCachedBitmap.Reset();
-  CalcSize();
-}
-
-RetainPtr<CFX_DIBBase> CPDF_ImageCacheEntry::DetachBitmap() {
-  return std::move(m_pCurBitmap);
-}
-
-RetainPtr<CFX_DIBBase> CPDF_ImageCacheEntry::DetachMask() {
-  return std::move(m_pCurMask);
-}
-
-CPDF_DIB::LoadState CPDF_ImageCacheEntry::StartGetCachedBitmap(
-    const CPDF_Dictionary* pPageResources,
-    const CPDF_RenderStatus* pRenderStatus,
-    bool bStdCS) {
-  if (m_pCachedBitmap) {
-    m_pCurBitmap = m_pCachedBitmap;
-    m_pCurMask = m_pCachedMask;
-    return CPDF_DIB::LoadState::kSuccess;
-  }
-
-  // A cross-document image may have come from the embedder.
-  if (m_pDocument != m_pImage->GetDocument())
-    return CPDF_DIB::LoadState::kFail;
-
-  m_pCurBitmap = m_pImage->CreateNewDIB();
-  CPDF_DIB::LoadState ret = m_pCurBitmap.As<CPDF_DIB>()->StartLoadDIBBase(
-      true, pRenderStatus->GetFormResource(), pPageResources, bStdCS,
-      pRenderStatus->GetGroupFamily(), pRenderStatus->GetLoadMask());
-  if (ret == CPDF_DIB::LoadState::kContinue)
-    return CPDF_DIB::LoadState::kContinue;
-
-  if (ret == CPDF_DIB::LoadState::kSuccess)
-    ContinueGetCachedBitmap(pRenderStatus);
-  else
-    m_pCurBitmap.Reset();
-  return CPDF_DIB::LoadState::kFail;
-}
-
-bool CPDF_ImageCacheEntry::Continue(PauseIndicatorIface* pPause,
-                                    CPDF_RenderStatus* pRenderStatus) {
-  CPDF_DIB::LoadState ret =
-      m_pCurBitmap.As<CPDF_DIB>()->ContinueLoadDIBBase(pPause);
-  if (ret == CPDF_DIB::LoadState::kContinue)
-    return true;
-
-  if (ret == CPDF_DIB::LoadState::kSuccess)
-    ContinueGetCachedBitmap(pRenderStatus);
-  else
-    m_pCurBitmap.Reset();
-  return false;
-}
-
-void CPDF_ImageCacheEntry::ContinueGetCachedBitmap(
-    const CPDF_RenderStatus* pRenderStatus) {
-  m_MatteColor = m_pCurBitmap.As<CPDF_DIB>()->GetMatteColor();
-  m_pCurMask = m_pCurBitmap.As<CPDF_DIB>()->DetachMask();
-  CPDF_RenderContext* pContext = pRenderStatus->GetContext();
-  CPDF_PageRenderCache* pPageRenderCache = pContext->GetPageCache();
-  m_dwTimeCount = pPageRenderCache->GetTimeCount();
-  if (m_pCurBitmap->GetPitch() * m_pCurBitmap->GetHeight() < kHugeImageSize) {
-    m_pCachedBitmap = m_pCurBitmap->Realize();
-    m_pCurBitmap.Reset();
-  } else {
-    m_pCachedBitmap = m_pCurBitmap;
-  }
-  if (m_pCurMask) {
-    m_pCachedMask = m_pCurMask->Realize();
-    m_pCurMask.Reset();
-  }
-  m_pCurBitmap = m_pCachedBitmap;
-  m_pCurMask = m_pCachedMask;
-  CalcSize();
-}
-
-void CPDF_ImageCacheEntry::CalcSize() {
-  m_dwCacheSize = 0;
-  if (m_pCachedBitmap)
-    m_dwCacheSize += m_pCachedBitmap->GetEstimatedImageMemoryBurden();
-  if (m_pCachedMask)
-    m_dwCacheSize += m_pCachedMask->GetEstimatedImageMemoryBurden();
-}
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.h b/core/fpdfapi/render/cpdf_imagecacheentry.h
deleted file mode 100644
index 802da84..0000000
--- a/core/fpdfapi/render/cpdf_imagecacheentry.h
+++ /dev/null
@@ -1,60 +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_FPDFAPI_RENDER_CPDF_IMAGECACHEENTRY_H_
-#define CORE_FPDFAPI_RENDER_CPDF_IMAGECACHEENTRY_H_
-
-#include <stdint.h>
-
-#include "core/fpdfapi/page/cpdf_dib.h"
-#include "core/fxcrt/retain_ptr.h"
-#include "core/fxcrt/unowned_ptr.h"
-
-class CPDF_Dictionary;
-class CPDF_Document;
-class CPDF_Image;
-class CPDF_RenderStatus;
-class PauseIndicatorIface;
-
-class CPDF_ImageCacheEntry {
- public:
-  CPDF_ImageCacheEntry(CPDF_Document* pDoc, RetainPtr<CPDF_Image> pImage);
-  ~CPDF_ImageCacheEntry();
-
-  void Reset();
-  uint32_t EstimateSize() const { return m_dwCacheSize; }
-  uint32_t GetMatteColor() const { return m_MatteColor; }
-  uint32_t GetTimeCount() const { return m_dwTimeCount; }
-  void SetTimeCount(uint32_t count) { m_dwTimeCount = count; }
-  CPDF_Image* GetImage() const { return m_pImage.Get(); }
-
-  CPDF_DIB::LoadState StartGetCachedBitmap(
-      const CPDF_Dictionary* pPageResources,
-      const CPDF_RenderStatus* pRenderStatus,
-      bool bStdCS);
-
-  // Returns whether to Continue() or not.
-  bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus);
-
-  RetainPtr<CFX_DIBBase> DetachBitmap();
-  RetainPtr<CFX_DIBBase> DetachMask();
-
- private:
-  void ContinueGetCachedBitmap(const CPDF_RenderStatus* pRenderStatus);
-  void CalcSize();
-
-  uint32_t m_dwTimeCount = 0;
-  uint32_t m_MatteColor = 0;
-  uint32_t m_dwCacheSize = 0;
-  UnownedPtr<CPDF_Document> const m_pDocument;
-  RetainPtr<CPDF_Image> const m_pImage;
-  RetainPtr<CFX_DIBBase> m_pCurBitmap;
-  RetainPtr<CFX_DIBBase> m_pCurMask;
-  RetainPtr<CFX_DIBBase> m_pCachedBitmap;
-  RetainPtr<CFX_DIBBase> m_pCachedMask;
-};
-
-#endif  // CORE_FPDFAPI_RENDER_CPDF_IMAGECACHEENTRY_H_
diff --git a/core/fpdfapi/render/cpdf_imageloader.cpp b/core/fpdfapi/render/cpdf_imageloader.cpp
index f2d53df..f1602eb 100644
--- a/core/fpdfapi/render/cpdf_imageloader.cpp
+++ b/core/fpdfapi/render/cpdf_imageloader.cpp
@@ -12,7 +12,6 @@
 #include "core/fpdfapi/page/cpdf_image.h"
 #include "core/fpdfapi/page/cpdf_imageobject.h"
 #include "core/fpdfapi/page/cpdf_transferfunc.h"
-#include "core/fpdfapi/render/cpdf_imagecacheentry.h"
 #include "core/fpdfapi/render/cpdf_pagerendercache.h"
 #include "core/fpdfapi/render/cpdf_rendercontext.h"
 #include "core/fpdfapi/render/cpdf_renderstatus.h"
@@ -64,11 +63,10 @@
 
 void CPDF_ImageLoader::HandleFailure() {
   if (m_pCache) {
-    CPDF_ImageCacheEntry* entry = m_pCache->GetCurImageCacheEntry();
     m_bCached = true;
-    m_pBitmap = entry->DetachBitmap();
-    m_pMask = entry->DetachMask();
-    m_MatteColor = entry->GetMatteColor();
+    m_pBitmap = m_pCache->DetachCurBitmap();
+    m_pMask = m_pCache->DetachCurMask();
+    m_MatteColor = m_pCache->GetCurMatteColor();
     return;
   }
   RetainPtr<CPDF_Image> pImage = m_pImageObject->GetImage();
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.cpp b/core/fpdfapi/render/cpdf_pagerendercache.cpp
index 956f2fe..4a49778 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.cpp
+++ b/core/fpdfapi/render/cpdf_pagerendercache.cpp
@@ -10,9 +10,13 @@
 #include <utility>
 #include <vector>
 
+#include "core/fpdfapi/page/cpdf_dib.h"
 #include "core/fpdfapi/page/cpdf_image.h"
 #include "core/fpdfapi/page/cpdf_page.h"
-#include "core/fpdfapi/render/cpdf_imagecacheentry.h"
+#include "core/fpdfapi/parser/cpdf_dictionary.h"
+#include "core/fpdfapi/parser/cpdf_document.h"
+#include "core/fpdfapi/parser/cpdf_stream.h"
+#include "core/fpdfapi/render/cpdf_rendercontext.h"
 #include "core/fpdfapi/render/cpdf_renderstatus.h"
 #include "core/fxcrt/stl_util.h"
 #include "core/fxge/dib/cfx_dibitmap.h"
@@ -83,7 +87,7 @@
   if (m_bCurFindCache) {
     m_pCurImageCacheEntry = it->second.get();
   } else {
-    m_pCurImageCacheEntry = std::make_unique<CPDF_ImageCacheEntry>(
+    m_pCurImageCacheEntry = std::make_unique<ImageCacheEntry>(
         m_pPage->GetDocument(), std::move(pImage));
   }
   CPDF_DIB::LoadState ret = m_pCurImageCacheEntry->StartGetCachedBitmap(
@@ -117,14 +121,118 @@
 }
 
 void CPDF_PageRenderCache::ResetBitmapForImage(RetainPtr<CPDF_Image> pImage) {
-  CPDF_ImageCacheEntry* pEntry;
   const CPDF_Stream* pStream = pImage->GetStream();
   const auto it = m_ImageCache.find(pStream);
   if (it == m_ImageCache.end())
     return;
 
-  pEntry = it->second.get();
+  ImageCacheEntry* pEntry = it->second.get();
   m_nCacheSize -= pEntry->EstimateSize();
   pEntry->Reset();
   m_nCacheSize += pEntry->EstimateSize();
 }
+
+uint32_t CPDF_PageRenderCache::GetCurMatteColor() const {
+  return m_pCurImageCacheEntry->GetMatteColor();
+}
+
+RetainPtr<CFX_DIBBase> CPDF_PageRenderCache::DetachCurBitmap() {
+  return m_pCurImageCacheEntry->DetachBitmap();
+}
+
+RetainPtr<CFX_DIBBase> CPDF_PageRenderCache::DetachCurMask() {
+  return m_pCurImageCacheEntry->DetachMask();
+}
+
+CPDF_PageRenderCache::ImageCacheEntry::ImageCacheEntry(
+    CPDF_Document* pDoc,
+    RetainPtr<CPDF_Image> pImage)
+    : m_pDocument(pDoc), m_pImage(std::move(pImage)) {}
+
+CPDF_PageRenderCache::ImageCacheEntry::~ImageCacheEntry() = default;
+
+void CPDF_PageRenderCache::ImageCacheEntry::Reset() {
+  m_pCachedBitmap.Reset();
+  CalcSize();
+}
+
+RetainPtr<CFX_DIBBase> CPDF_PageRenderCache::ImageCacheEntry::DetachBitmap() {
+  return std::move(m_pCurBitmap);
+}
+
+RetainPtr<CFX_DIBBase> CPDF_PageRenderCache::ImageCacheEntry::DetachMask() {
+  return std::move(m_pCurMask);
+}
+
+CPDF_DIB::LoadState CPDF_PageRenderCache::ImageCacheEntry::StartGetCachedBitmap(
+    const CPDF_Dictionary* pPageResources,
+    const CPDF_RenderStatus* pRenderStatus,
+    bool bStdCS) {
+  if (m_pCachedBitmap) {
+    m_pCurBitmap = m_pCachedBitmap;
+    m_pCurMask = m_pCachedMask;
+    return CPDF_DIB::LoadState::kSuccess;
+  }
+
+  // A cross-document image may have come from the embedder.
+  if (m_pDocument != m_pImage->GetDocument())
+    return CPDF_DIB::LoadState::kFail;
+
+  m_pCurBitmap = m_pImage->CreateNewDIB();
+  CPDF_DIB::LoadState ret = m_pCurBitmap.As<CPDF_DIB>()->StartLoadDIBBase(
+      true, pRenderStatus->GetFormResource(), pPageResources, bStdCS,
+      pRenderStatus->GetGroupFamily(), pRenderStatus->GetLoadMask());
+  if (ret == CPDF_DIB::LoadState::kContinue)
+    return CPDF_DIB::LoadState::kContinue;
+
+  if (ret == CPDF_DIB::LoadState::kSuccess)
+    ContinueGetCachedBitmap(pRenderStatus);
+  else
+    m_pCurBitmap.Reset();
+  return CPDF_DIB::LoadState::kFail;
+}
+
+bool CPDF_PageRenderCache::ImageCacheEntry::Continue(
+    PauseIndicatorIface* pPause,
+    CPDF_RenderStatus* pRenderStatus) {
+  CPDF_DIB::LoadState ret =
+      m_pCurBitmap.As<CPDF_DIB>()->ContinueLoadDIBBase(pPause);
+  if (ret == CPDF_DIB::LoadState::kContinue)
+    return true;
+
+  if (ret == CPDF_DIB::LoadState::kSuccess)
+    ContinueGetCachedBitmap(pRenderStatus);
+  else
+    m_pCurBitmap.Reset();
+  return false;
+}
+
+void CPDF_PageRenderCache::ImageCacheEntry::ContinueGetCachedBitmap(
+    const CPDF_RenderStatus* pRenderStatus) {
+  m_MatteColor = m_pCurBitmap.As<CPDF_DIB>()->GetMatteColor();
+  m_pCurMask = m_pCurBitmap.As<CPDF_DIB>()->DetachMask();
+  CPDF_RenderContext* pContext = pRenderStatus->GetContext();
+  CPDF_PageRenderCache* pPageRenderCache = pContext->GetPageCache();
+  m_dwTimeCount = pPageRenderCache->GetTimeCount();
+  if (m_pCurBitmap->GetPitch() * m_pCurBitmap->GetHeight() < kHugeImageSize) {
+    m_pCachedBitmap = m_pCurBitmap->Realize();
+    m_pCurBitmap.Reset();
+  } else {
+    m_pCachedBitmap = m_pCurBitmap;
+  }
+  if (m_pCurMask) {
+    m_pCachedMask = m_pCurMask->Realize();
+    m_pCurMask.Reset();
+  }
+  m_pCurBitmap = m_pCachedBitmap;
+  m_pCurMask = m_pCachedMask;
+  CalcSize();
+}
+
+void CPDF_PageRenderCache::ImageCacheEntry::CalcSize() {
+  m_dwCacheSize = 0;
+  if (m_pCachedBitmap)
+    m_dwCacheSize += m_pCachedBitmap->GetEstimatedImageMemoryBurden();
+  if (m_pCachedMask)
+    m_dwCacheSize += m_pCachedMask->GetEstimatedImageMemoryBurden();
+}
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.h b/core/fpdfapi/render/cpdf_pagerendercache.h
index 6270964..e98dba1 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.h
+++ b/core/fpdfapi/render/cpdf_pagerendercache.h
@@ -12,13 +12,15 @@
 #include <map>
 #include <memory>
 
+#include "core/fpdfapi/page/cpdf_dib.h"
 #include "core/fpdfapi/page/cpdf_page.h"
 #include "core/fxcrt/maybe_owned.h"
 #include "core/fxcrt/retain_ptr.h"
 #include "core/fxcrt/unowned_ptr.h"
 
+class CPDF_Dictionary;
+class CPDF_Document;
 class CPDF_Image;
-class CPDF_ImageCacheEntry;
 class CPDF_Page;
 class CPDF_RenderStatus;
 class CPDF_Stream;
@@ -35,9 +37,6 @@
   void CacheOptimization(int32_t dwLimitCacheSize);
   uint32_t GetTimeCount() const { return m_nTimeCount; }
   CPDF_Page* GetPage() const { return m_pPage.Get(); }
-  CPDF_ImageCacheEntry* GetCurImageCacheEntry() const {
-    return m_pCurImageCacheEntry.Get();
-  }
 
   bool StartGetCachedBitmap(RetainPtr<CPDF_Image> pImage,
                             const CPDF_RenderStatus* pRenderStatus,
@@ -45,13 +44,55 @@
 
   bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus);
 
+  uint32_t GetCurMatteColor() const;
+  RetainPtr<CFX_DIBBase> DetachCurBitmap();
+  RetainPtr<CFX_DIBBase> DetachCurMask();
+
  private:
+  class ImageCacheEntry {
+   public:
+    ImageCacheEntry(CPDF_Document* pDoc, RetainPtr<CPDF_Image> pImage);
+    ~ImageCacheEntry();
+
+    void Reset();
+    uint32_t EstimateSize() const { return m_dwCacheSize; }
+    uint32_t GetMatteColor() const { return m_MatteColor; }
+    uint32_t GetTimeCount() const { return m_dwTimeCount; }
+    void SetTimeCount(uint32_t count) { m_dwTimeCount = count; }
+    CPDF_Image* GetImage() const { return m_pImage.Get(); }
+
+    CPDF_DIB::LoadState StartGetCachedBitmap(
+        const CPDF_Dictionary* pPageResources,
+        const CPDF_RenderStatus* pRenderStatus,
+        bool bStdCS);
+
+    // Returns whether to Continue() or not.
+    bool Continue(PauseIndicatorIface* pPause,
+                  CPDF_RenderStatus* pRenderStatus);
+
+    RetainPtr<CFX_DIBBase> DetachBitmap();
+    RetainPtr<CFX_DIBBase> DetachMask();
+
+   private:
+    void ContinueGetCachedBitmap(const CPDF_RenderStatus* pRenderStatus);
+    void CalcSize();
+
+    uint32_t m_dwTimeCount = 0;
+    uint32_t m_MatteColor = 0;
+    uint32_t m_dwCacheSize = 0;
+    UnownedPtr<CPDF_Document> const m_pDocument;
+    RetainPtr<CPDF_Image> const m_pImage;
+    RetainPtr<CFX_DIBBase> m_pCurBitmap;
+    RetainPtr<CFX_DIBBase> m_pCurMask;
+    RetainPtr<CFX_DIBBase> m_pCachedBitmap;
+    RetainPtr<CFX_DIBBase> m_pCachedMask;
+  };
+
   void ClearImageCacheEntry(const CPDF_Stream* pStream);
 
   UnownedPtr<CPDF_Page> const m_pPage;
-  std::map<const CPDF_Stream*, std::unique_ptr<CPDF_ImageCacheEntry>>
-      m_ImageCache;
-  MaybeOwned<CPDF_ImageCacheEntry> m_pCurImageCacheEntry;
+  std::map<const CPDF_Stream*, std::unique_ptr<ImageCacheEntry>> m_ImageCache;
+  MaybeOwned<ImageCacheEntry> m_pCurImageCacheEntry;
   uint32_t m_nTimeCount = 0;
   uint32_t m_nCacheSize = 0;
   bool m_bCurFindCache = false;
diff --git a/core/fpdfapi/render/cpdf_renderstatus.h b/core/fpdfapi/render/cpdf_renderstatus.h
index e42cda9..a1e5079 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.h
+++ b/core/fpdfapi/render/cpdf_renderstatus.h
@@ -26,7 +26,6 @@
 class CPDF_Color;
 class CPDF_Font;
 class CPDF_FormObject;
-class CPDF_ImageCacheEntry;
 class CPDF_ImageObject;
 class CPDF_ImageRenderer;
 class CPDF_Object;
