diff --git a/fpdfsdk/BUILD.gn b/fpdfsdk/BUILD.gn
index d2a36c4..e8d5774 100644
--- a/fpdfsdk/BUILD.gn
+++ b/fpdfsdk/BUILD.gn
@@ -38,6 +38,8 @@
     "cpdfsdk_interactiveform.h",
     "cpdfsdk_pageview.cpp",
     "cpdfsdk_pageview.h",
+    "cpdfsdk_pauseadapter.cpp",
+    "cpdfsdk_pauseadapter.h",
     "cpdfsdk_widget.cpp",
     "cpdfsdk_widget.h",
     "cpdfsdk_widgethandler.cpp",
@@ -66,8 +68,6 @@
     "fpdf_transformpage.cpp",
     "fpdf_view.cpp",
     "ipdfsdk_annothandler.h",
-    "ipdfsdk_pauseadapter.cpp",
-    "ipdfsdk_pauseadapter.h",
   ]
 
   configs += [ "../:pdfium_core_config" ]
diff --git a/fpdfsdk/cpdfsdk_helpers.h b/fpdfsdk/cpdfsdk_helpers.h
index 6171969..d91e0b0 100644
--- a/fpdfsdk/cpdfsdk_helpers.h
+++ b/fpdfsdk/cpdfsdk_helpers.h
@@ -40,7 +40,7 @@
 class CPDF_TextPageFind;
 class CPDFSDK_FormFillEnvironment;
 class CPDFSDK_InteractiveForm;
-class IPDFSDK_PauseAdapter;
+class CPDFSDK_PauseAdapter;
 class FX_PATHPOINT;
 struct CPDF_JavaScript;
 
@@ -270,7 +270,7 @@
                            int rotate,
                            int flags,
                            bool bNeedToRestore,
-                           IPDFSDK_PauseAdapter* pause);
+                           CPDFSDK_PauseAdapter* pause);
 
 void SetPDFUnsupportInfo(UNSUPPORT_INFO* unsp_info);
 UNSUPPORT_INFO* GetPDFUnssuportInto();
diff --git a/fpdfsdk/ipdfsdk_pauseadapter.cpp b/fpdfsdk/cpdfsdk_pauseadapter.cpp
similarity index 63%
rename from fpdfsdk/ipdfsdk_pauseadapter.cpp
rename to fpdfsdk/cpdfsdk_pauseadapter.cpp
index 3cdf133..bf3f1c7 100644
--- a/fpdfsdk/ipdfsdk_pauseadapter.cpp
+++ b/fpdfsdk/cpdfsdk_pauseadapter.cpp
@@ -4,13 +4,13 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "fpdfsdk/ipdfsdk_pauseadapter.h"
+#include "fpdfsdk/cpdfsdk_pauseadapter.h"
 
-IPDFSDK_PauseAdapter::IPDFSDK_PauseAdapter(IFSDK_PAUSE* IPause)
+CPDFSDK_PauseAdapter::CPDFSDK_PauseAdapter(IFSDK_PAUSE* IPause)
     : m_IPause(IPause) {}
 
-IPDFSDK_PauseAdapter::~IPDFSDK_PauseAdapter() {}
+CPDFSDK_PauseAdapter::~CPDFSDK_PauseAdapter() = default;
 
-bool IPDFSDK_PauseAdapter::NeedToPauseNow() {
+bool CPDFSDK_PauseAdapter::NeedToPauseNow() {
   return m_IPause->NeedToPauseNow && m_IPause->NeedToPauseNow(m_IPause.Get());
 }
diff --git a/fpdfsdk/ipdfsdk_pauseadapter.h b/fpdfsdk/cpdfsdk_pauseadapter.h
similarity index 64%
rename from fpdfsdk/ipdfsdk_pauseadapter.h
rename to fpdfsdk/cpdfsdk_pauseadapter.h
index 7ee01ba..dfbc2b4 100644
--- a/fpdfsdk/ipdfsdk_pauseadapter.h
+++ b/fpdfsdk/cpdfsdk_pauseadapter.h
@@ -4,18 +4,18 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef FPDFSDK_IPDFSDK_PAUSEADAPTER_H_
-#define FPDFSDK_IPDFSDK_PAUSEADAPTER_H_
+#ifndef FPDFSDK_CPDFSDK_PAUSEADAPTER_H_
+#define FPDFSDK_CPDFSDK_PAUSEADAPTER_H_
 
 #include "core/fxcrt/fx_system.h"
 #include "core/fxcrt/pauseindicator_iface.h"
 #include "core/fxcrt/unowned_ptr.h"
 #include "public/fpdf_progressive.h"
 
-class IPDFSDK_PauseAdapter : public PauseIndicatorIface {
+class CPDFSDK_PauseAdapter final : public PauseIndicatorIface {
  public:
-  explicit IPDFSDK_PauseAdapter(IFSDK_PAUSE* IPause);
-  ~IPDFSDK_PauseAdapter() override;
+  explicit CPDFSDK_PauseAdapter(IFSDK_PAUSE* IPause);
+  ~CPDFSDK_PauseAdapter() override;
 
   bool NeedToPauseNow() override;
 
@@ -23,4 +23,4 @@
   UnownedPtr<IFSDK_PAUSE> const m_IPause;
 };
 
-#endif  // FPDFSDK_IPDFSDK_PAUSEADAPTER_H_
+#endif  // FPDFSDK_CPDFSDK_PAUSEADAPTER_H_
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp
index c151e7c..212509f 100644
--- a/fpdfsdk/fpdf_progressive.cpp
+++ b/fpdfsdk/fpdf_progressive.cpp
@@ -14,7 +14,7 @@
 #include "core/fxge/cfx_defaultrenderdevice.h"
 #include "core/fxge/cfx_renderdevice.h"
 #include "fpdfsdk/cpdfsdk_helpers.h"
-#include "fpdfsdk/ipdfsdk_pauseadapter.h"
+#include "fpdfsdk/cpdfsdk_pauseadapter.h"
 #include "public/fpdfview.h"
 #include "third_party/base/ptr_util.h"
 
@@ -55,9 +55,9 @@
   pContext->m_pDevice = std::move(pOwnedDevice);
   pDevice->Attach(pBitmap, !!(flags & FPDF_REVERSE_BYTE_ORDER), nullptr, false);
 
-  IPDFSDK_PauseAdapter IPauseAdapter(pause);
+  CPDFSDK_PauseAdapter pause_adapter(pause);
   RenderPageWithContext(pContext, page, start_x, start_y, size_x, size_y,
-                        rotate, flags, false, &IPauseAdapter);
+                        rotate, flags, false, &pause_adapter);
 
 #ifdef _SKIA_SUPPORT_PATHS_
   pDevice->Flush(false);
@@ -82,8 +82,8 @@
   auto* pContext =
       static_cast<CPDF_PageRenderContext*>(pPage->GetRenderContext());
   if (pContext && pContext->m_pRenderer) {
-    IPDFSDK_PauseAdapter IPauseAdapter(pause);
-    pContext->m_pRenderer->Continue(&IPauseAdapter);
+    CPDFSDK_PauseAdapter pause_adapter(pause);
+    pContext->m_pRenderer->Continue(&pause_adapter);
 #ifdef _SKIA_SUPPORT_PATHS_
     CFX_RenderDevice* pDevice = pContext->m_pDevice.get();
     pDevice->Flush(false);
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index d724330..0e96a3d 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -41,7 +41,7 @@
 #include "fpdfsdk/cpdfsdk_formfillenvironment.h"
 #include "fpdfsdk/cpdfsdk_helpers.h"
 #include "fpdfsdk/cpdfsdk_pageview.h"
-#include "fpdfsdk/ipdfsdk_pauseadapter.h"
+#include "fpdfsdk/cpdfsdk_pauseadapter.h"
 #include "fxjs/ijs_runtime.h"
 #include "public/fpdf_formfill.h"
 #include "third_party/base/ptr_util.h"
@@ -84,7 +84,7 @@
                     const FX_RECT& clipping_rect,
                     int flags,
                     bool bNeedToRestore,
-                    IPDFSDK_PauseAdapter* pause) {
+                    CPDFSDK_PauseAdapter* pause) {
   if (!pContext->m_pOptions)
     pContext->m_pOptions = pdfium::MakeUnique<CPDF_RenderOptions>();
 
@@ -904,7 +904,7 @@
                            int rotate,
                            int flags,
                            bool bNeedToRestore,
-                           IPDFSDK_PauseAdapter* pause) {
+                           CPDFSDK_PauseAdapter* pause) {
   CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
   if (!pPage)
     return;
