diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
index 3e16b62..d353409 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
@@ -33,6 +33,10 @@
   m_pEdit->Initialize();
 }
 
+void CPWL_EditCtrl::OnDestroy() {
+  m_pEditCaret.Release();
+}
+
 bool CPWL_EditCtrl::IsWndHorV() const {
   CFX_Matrix mt = GetWindowMatrix();
   return mt.Transform(CFX_PointF(1, 1)).y == mt.Transform(CFX_PointF(0, 1)).y;
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.h b/fpdfsdk/pwl/cpwl_edit_ctrl.h
index fc649f7..1db4728 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.h
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.h
@@ -42,6 +42,7 @@
 
   // CPWL_Wnd:
   void OnCreated() override;
+  void OnDestroy() override;
   bool OnKeyDown(uint16_t nChar, uint32_t nFlag) override;
   bool OnChar(uint16_t nChar, uint32_t nFlag) override;
   bool OnLButtonDown(uint32_t nFlag, const CFX_PointF& point) override;
@@ -81,7 +82,7 @@
   void SetEditCaret(bool bVisible);
 
   std::unique_ptr<CPWL_EditImpl> const m_pEdit;
-  CPWL_Caret* m_pEditCaret = nullptr;
+  UnownedPtr<CPWL_Caret> m_pEditCaret;
   bool m_bMouseDown = false;
 
  private:
diff --git a/xfa/fwl/BUILD.gn b/xfa/fwl/BUILD.gn
index ac39851..dead643 100644
--- a/xfa/fwl/BUILD.gn
+++ b/xfa/fwl/BUILD.gn
@@ -68,6 +68,7 @@
     "cfwl_themebackground.h",
     "cfwl_themepart.cpp",
     "cfwl_themepart.h",
+    "cfwl_themetext.cpp",
     "cfwl_themetext.h",
     "cfwl_widget.cpp",
     "cfwl_widget.h",
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index fdb3536..9f1c32a 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -395,6 +395,7 @@
     dwPartStates |= CFWL_PartState_Focused;
   }
 
+  CFX_RectF rtFocus(rtItem);  // Must outlive |bg_param|.
   CFWL_ThemeBackground bg_param;
   bg_param.m_pWidget = this;
   bg_param.m_iPart = CFWL_Part::ListItem;
@@ -403,7 +404,6 @@
   bg_param.m_matrix.Concat(*pMatrix);
   bg_param.m_PartRect = rtItem;
   bg_param.m_bMaximize = true;
-  CFX_RectF rtFocus(rtItem);
   bg_param.m_pRtData = &rtFocus;
   if (m_pVertScrollBar && !m_pHorzScrollBar &&
       (dwPartStates & CFWL_PartState_Focused)) {
diff --git a/xfa/fwl/cfwl_message.h b/xfa/fwl/cfwl_message.h
index 35e4155..c77cc59 100644
--- a/xfa/fwl/cfwl_message.h
+++ b/xfa/fwl/cfwl_message.h
@@ -8,6 +8,7 @@
 #define XFA_FWL_CFWL_MESSAGE_H_
 
 #include "core/fxcrt/fx_system.h"
+#include "core/fxcrt/unowned_ptr.h"
 #include "v8/include/cppgc/macros.h"
 
 class CFWL_Widget;
@@ -33,8 +34,8 @@
 
  private:
   const Type m_type;
-  CFWL_Widget* m_pSrcTarget = nullptr;
-  CFWL_Widget* m_pDstTarget = nullptr;
+  UnownedPtr<CFWL_Widget> m_pSrcTarget;
+  UnownedPtr<CFWL_Widget> m_pDstTarget;
 };
 
 #endif  // XFA_FWL_CFWL_MESSAGE_H_
diff --git a/xfa/fwl/cfwl_themepart.cpp b/xfa/fwl/cfwl_themepart.cpp
index 0a98a4b..f488f2f 100644
--- a/xfa/fwl/cfwl_themepart.cpp
+++ b/xfa/fwl/cfwl_themepart.cpp
@@ -7,3 +7,5 @@
 #include "xfa/fwl/cfwl_themepart.h"
 
 CFWL_ThemePart::CFWL_ThemePart() = default;
+
+CFWL_ThemePart::~CFWL_ThemePart() = default;
diff --git a/xfa/fwl/cfwl_themepart.h b/xfa/fwl/cfwl_themepart.h
index af85e37..56ad8c8 100644
--- a/xfa/fwl/cfwl_themepart.h
+++ b/xfa/fwl/cfwl_themepart.h
@@ -9,6 +9,7 @@
 
 #include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_system.h"
+#include "core/fxcrt/unowned_ptr.h"
 
 enum class CFWL_Part : uint8_t {
   None = 0,
@@ -79,11 +80,12 @@
 class CFWL_ThemePart {
  public:
   CFWL_ThemePart();
+  ~CFWL_ThemePart();
 
   CFX_Matrix m_matrix;
   CFX_RectF m_PartRect;
-  CFWL_Widget* m_pWidget = nullptr;
-  CFX_RectF* m_pRtData = nullptr;
+  UnownedPtr<CFWL_Widget> m_pWidget;
+  UnownedPtr<CFX_RectF> m_pRtData;
   uint32_t m_dwStates = CFWL_PartState_Normal;
   CFWL_Part m_iPart = CFWL_Part::None;
   bool m_bMaximize = false;
diff --git a/xfa/fwl/cfwl_themetext.cpp b/xfa/fwl/cfwl_themetext.cpp
new file mode 100644
index 0000000..2cd07d0
--- /dev/null
+++ b/xfa/fwl/cfwl_themetext.cpp
@@ -0,0 +1,11 @@
+// Copyright 2021 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 "xfa/fwl/cfwl_themetext.h"
+
+CFWL_ThemeText::CFWL_ThemeText() = default;
+
+CFWL_ThemeText::~CFWL_ThemeText() = default;
diff --git a/xfa/fwl/cfwl_themetext.h b/xfa/fwl/cfwl_themetext.h
index cb1b770..ae924ed 100644
--- a/xfa/fwl/cfwl_themetext.h
+++ b/xfa/fwl/cfwl_themetext.h
@@ -8,17 +8,21 @@
 #define XFA_FWL_CFWL_THEMETEXT_H_
 
 #include "core/fxcrt/fx_string.h"
-#include "core/fxcrt/fx_system.h"
+#include "core/fxcrt/unowned_ptr.h"
+#include "xfa/fde/cfde_data.h"
 #include "xfa/fwl/cfwl_themepart.h"
 
+class CFGAS_GEGraphics;
+
 class CFWL_ThemeText final : public CFWL_ThemePart {
  public:
-  CFWL_ThemeText() = default;
+  CFWL_ThemeText();
+  ~CFWL_ThemeText();
 
   FDE_TextAlignment m_iTTOAlign = FDE_TextAlignment::kTopLeft;
-  CFGAS_GEGraphics* m_pGraphics = nullptr;
-  WideString m_wsText;
   FDE_TextStyle m_dwTTOStyles;
+  UnownedPtr<CFGAS_GEGraphics> m_pGraphics;
+  WideString m_wsText;
 };
 
 #endif  // XFA_FWL_CFWL_THEMETEXT_H_
