diff --git a/core/fpdfapi/fpdf_page/cpdf_page.cpp b/core/fpdfapi/fpdf_page/cpdf_page.cpp
index 6b0609f..441bbfe 100644
--- a/core/fpdfapi/fpdf_page/cpdf_page.cpp
+++ b/core/fpdfapi/fpdf_page/cpdf_page.cpp
@@ -21,6 +21,7 @@
                      bool bPageCache)
     : m_PageWidth(100),
       m_PageHeight(100),
+      m_pView(nullptr),
       m_pPageRender(bPageCache ? new CPDF_PageRenderCache(this) : nullptr) {
   m_pFormDict = pPageDict;
   m_pDocument = pDocument;
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_page.h b/core/fpdfapi/fpdf_page/include/cpdf_page.h
index 7f44301..9973488 100644
--- a/core/fpdfapi/fpdf_page/include/cpdf_page.h
+++ b/core/fpdfapi/fpdf_page/include/cpdf_page.h
@@ -19,8 +19,10 @@
 class CPDF_Object;
 class CPDF_PageRenderCache;
 
-class CPDF_Page : public CPDF_PageObjectHolder, public CFX_PrivateData {
+class CPDF_Page : public CPDF_PageObjectHolder {
  public:
+  class View {};  // Caller implements as desired, empty here due to layering.
+
   CPDF_Page(CPDF_Document* pDocument,
             CPDF_Dictionary* pPageDict,
             bool bPageCache);
@@ -42,6 +44,14 @@
   CPDF_Object* GetPageAttr(const CFX_ByteString& name) const;
   CPDF_PageRenderCache* GetRenderCache() const { return m_pPageRender.get(); }
 
+  CFX_Deletable* GetRenderContext() const { return m_pRenderContext.get(); }
+  void SetRenderContext(std::unique_ptr<CFX_Deletable> pContext) {
+    m_pRenderContext = std::move(pContext);
+  }
+
+  View* GetView() const { return m_pView; }
+  void SetView(View* pView) { m_pView = pView; }
+
  protected:
   friend class CPDF_ContentParser;
 
@@ -50,7 +60,9 @@
   FX_FLOAT m_PageWidth;
   FX_FLOAT m_PageHeight;
   CFX_Matrix m_PageMatrix;
+  View* m_pView;
   std::unique_ptr<CPDF_PageRenderCache> m_pPageRender;
+  std::unique_ptr<CFX_Deletable> m_pRenderContext;
 };
 
 #endif  // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_PAGE_H_
diff --git a/core/fpdfdoc/include/fpdf_doc.h b/core/fpdfdoc/include/fpdf_doc.h
index 3ee583d..8c7ce4e 100644
--- a/core/fpdfdoc/include/fpdf_doc.h
+++ b/core/fpdfdoc/include/fpdf_doc.h
@@ -317,7 +317,7 @@
 #define ANNOTFLAG_LOCKED 0x0080
 #define ANNOTFLAG_TOGGLENOVIEW 0x0100
 
-class CPDF_Annot : public CFX_PrivateData {
+class CPDF_Annot {
  public:
   enum AppearanceMode { Normal, Rollover, Down };
 
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp
index d42d954..90e8402 100644
--- a/fpdfsdk/fpdf_progressive.cpp
+++ b/fpdfsdk/fpdf_progressive.cpp
@@ -40,15 +40,16 @@
     return FPDF_RENDER_FAILED;
 
   CRenderContext* pContext = new CRenderContext;
-  pPage->SetPrivateData((void*)1, pContext, DropContext);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>(pContext));
   pContext->m_pDevice = new CFX_FxgeDevice;
-  if (flags & FPDF_REVERSE_BYTE_ORDER)
+  if (flags & FPDF_REVERSE_BYTE_ORDER) {
     ((CFX_FxgeDevice*)pContext->m_pDevice)
         ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
-  else
+  } else {
     ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
-  IFSDK_PAUSE_Adapter IPauseAdapter(pause);
+  }
 
+  IFSDK_PAUSE_Adapter IPauseAdapter(pause);
   FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
                          rotate, flags, FALSE, &IPauseAdapter);
 
@@ -68,7 +69,8 @@
   if (!pPage)
     return FPDF_RENDER_FAILED;
 
-  CRenderContext* pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
+  CRenderContext* pContext =
+      static_cast<CRenderContext*>(pPage->GetRenderContext());
   if (pContext && pContext->m_pRenderer) {
     IFSDK_PAUSE_Adapter IPauseAdapter(pause);
     pContext->m_pRenderer->Continue(&IPauseAdapter);
@@ -83,11 +85,11 @@
   if (!pPage)
     return;
 
-  CRenderContext* pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
+  CRenderContext* pContext =
+      static_cast<CRenderContext*>(pPage->GetRenderContext());
   if (!pContext)
     return;
 
   pContext->m_pDevice->RestoreState();
-  delete pContext;
-  pPage->RemovePrivateData((void*)1);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>());
 }
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index cdcaba4..bf7ae0f 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -517,10 +517,6 @@
   return pPage ? pPage->GetPageHeight() : 0.0;
 }
 
-void DropContext(void* data) {
-  delete (CRenderContext*)data;
-}
-
 #if defined(_WIN32)
 DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
                                        FPDF_PAGE page,
@@ -535,7 +531,7 @@
     return;
 
   CRenderContext* pContext = new CRenderContext;
-  pPage->SetPrivateData((void*)1, pContext, DropContext);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>(pContext));
 
 #if !defined(_WIN32_WCE)
   CFX_DIBitmap* pBitmap = nullptr;
@@ -619,8 +615,7 @@
   if (bBackgroundAlphaNeeded || bHasImageMask)
     delete pBitmap;
 
-  delete pContext;
-  pPage->RemovePrivateData((void*)1);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>());
 }
 #endif  // defined(_WIN32)
 
@@ -634,24 +629,25 @@
                                              int flags) {
   if (!bitmap)
     return;
+
   CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
   if (!pPage)
     return;
-  CRenderContext* pContext = new CRenderContext;
-  pPage->SetPrivateData((void*)1, pContext, DropContext);
-  pContext->m_pDevice = new CFX_FxgeDevice;
 
-  if (flags & FPDF_REVERSE_BYTE_ORDER)
+  CRenderContext* pContext = new CRenderContext;
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>(pContext));
+  pContext->m_pDevice = new CFX_FxgeDevice;
+  if (flags & FPDF_REVERSE_BYTE_ORDER) {
     ((CFX_FxgeDevice*)pContext->m_pDevice)
         ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
-  else
+  } else {
     ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
+  }
 
   FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
-                         rotate, flags, TRUE, NULL);
+                         rotate, flags, TRUE, nullptr);
 
-  delete pContext;
-  pPage->RemovePrivateData((void*)1);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>());
 }
 
 #ifdef _SKIA_SUPPORT_
@@ -661,33 +657,33 @@
   CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
   if (!pPage)
     return nullptr;
-  std::unique_ptr<CRenderContext> pContext(new CRenderContext);
-  pPage->SetPrivateData((void*)1, pContext.get(), DropContext);
+
+  CRenderContext* pContext = new CRenderContext;
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>(pContext));
   CFX_FxgeDevice* skDevice = new CFX_FxgeDevice;
   FPDF_RECORDER recorder = skDevice->CreateRecorder(size_x, size_y);
   pContext->m_pDevice = skDevice;
-
   FPDF_RenderPage_Retail(pContext.get(), page, 0, 0, size_x, size_y, 0, 0, TRUE,
-                         NULL);
-  pPage->RemovePrivateData((void*)1);
+                         nullptr);
+  pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>());
   return recorder;
 }
 #endif
 
 DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page) {
+  UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page);
   if (!page)
     return;
 #ifdef PDF_ENABLE_XFA
-  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
   pPage->Release();
 #else   // PDF_ENABLE_XFA
   CPDFSDK_PageView* pPageView =
-      (CPDFSDK_PageView*)(((CPDF_Page*)page))->GetPrivateData((void*)page);
+      static_cast<CPDFSDK_PageView*>(pPage->GetView());
   if (pPageView && pPageView->IsLocked()) {
     pPageView->TakeOverPage();
     return;
   }
-  delete (CPDF_Page*)page;
+  delete pPage;
 #endif  // PDF_ENABLE_XFA
 }
 
diff --git a/fpdfsdk/fsdk_mgr.cpp b/fpdfsdk/fsdk_mgr.cpp
index fac98d8..83fee90 100644
--- a/fpdfsdk/fsdk_mgr.cpp
+++ b/fpdfsdk/fsdk_mgr.cpp
@@ -480,7 +480,7 @@
 #endif  // PDF_ENABLE_XFA
   }
 #ifndef PDF_ENABLE_XFA
-  m_page->SetPrivateData((void*)m_page, (void*)this, nullptr);
+  m_page->SetView(this);
 #endif  // PDF_ENABLE_XFA
 }
 
@@ -493,7 +493,7 @@
   m_fxAnnotArray.clear();
   m_pAnnotList.reset();
 #ifndef PDF_ENABLE_XFA
-  m_page->RemovePrivateData((void*)m_page);
+  m_page->SetView(nullptr);
   if (m_bTakeOverPage) {
     delete m_page;
   }
diff --git a/fpdfsdk/include/fsdk_define.h b/fpdfsdk/include/fsdk_define.h
index f3ed2da..536e358 100644
--- a/fpdfsdk/include/fsdk_define.h
+++ b/fpdfsdk/include/fsdk_define.h
@@ -109,7 +109,6 @@
 
 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page);
 
-void DropContext(void* data);
 void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable);
 FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy);
 void FPDF_RenderPage_Retail(CRenderContext* pContext,
diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h
index ca46a06..a47f230 100644
--- a/fpdfsdk/include/fsdk_mgr.h
+++ b/fpdfsdk/include/fsdk_mgr.h
@@ -11,6 +11,7 @@
 #include <memory>
 #include <vector>
 
+#include "core/fpdfapi/fpdf_page/include/cpdf_page.h"
 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
 #include "fpdfsdk/cfx_systemhandler.h"
 #include "fpdfsdk/include/fsdk_actionhandler.h"
@@ -530,7 +531,7 @@
   FX_BOOL m_bBeingDestroyed;
 };
 
-class CPDFSDK_PageView final {
+class CPDFSDK_PageView final : public CPDF_Page::View {
  public:
   CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page);
   ~CPDFSDK_PageView();
diff --git a/fpdfsdk/include/fsdk_rendercontext.h b/fpdfsdk/include/fsdk_rendercontext.h
index f984a64..1bcd076 100644
--- a/fpdfsdk/include/fsdk_rendercontext.h
+++ b/fpdfsdk/include/fsdk_rendercontext.h
@@ -8,14 +8,15 @@
 #define FPDFSDK_INCLUDE_FSDK_RENDERCONTEXT_H_
 
 #include "core/fpdfapi/fpdf_render/include/cpdf_progressiverenderer.h"
+#include "core/fxcrt/include/fx_basic.h"
 #include "fpdfsdk/include/fsdk_define.h"
 #include "public/fpdf_progressive.h"
 
 // Everything about rendering is put here: for OOM recovery
-class CRenderContext {
+class CRenderContext : public CFX_Deletable {
  public:
   CRenderContext() { Clear(); }
-  ~CRenderContext();
+  ~CRenderContext() override;
 
   void Clear();
 
