diff --git a/core/fxcodec/BUILD.gn b/core/fxcodec/BUILD.gn
index 3040dae..deee958 100644
--- a/core/fxcodec/BUILD.gn
+++ b/core/fxcodec/BUILD.gn
@@ -73,8 +73,7 @@
     "../../:pdfium_strict_config",
     "../../:pdfium_noshorten_config",
   ]
-  include_dirs = []
-  public_deps = [ "../fxcrt:unowned_ptr" ]
+  public_deps = [ "../../third_party:pdfium_base" ]
   deps = [
     "../../third_party:lcms2",
     "../../third_party:libopenjpeg2",
@@ -83,7 +82,6 @@
     "../fxge",
     "//third_party:jpeg",
   ]
-
   if (pdf_enable_xfa) {
     sources += [
       "jpeg/jpeg_progressive_decoder.cpp",
diff --git a/core/fxcrt/BUILD.gn b/core/fxcrt/BUILD.gn
index e8b6aa8..9e80bc6 100644
--- a/core/fxcrt/BUILD.gn
+++ b/core/fxcrt/BUILD.gn
@@ -6,18 +6,6 @@
 import("../../pdfium.gni")
 import("../../testing/test.gni")
 
-source_set("unowned_ptr") {
-  sources = [ "unowned_ptr.h" ]
-  deps = [ "../../third_party:pdfium_compiler_specific" ]
-  configs += [ "../../:pdfium_strict_config" ]
-  if (pdf_use_partition_alloc) {
-    public_deps = [
-      "//base/allocator/partition_allocator/src/partition_alloc:partition_alloc_buildflags",
-      "//base/allocator/partition_allocator/src/partition_alloc:raw_ptr",
-    ]
-  }
-}
-
 source_set("fxcrt") {
   sources = [
     "autonuller.h",
@@ -94,6 +82,7 @@
     "string_pool_template.h",
     "string_view_template.h",
     "tree_node.h",
+    "unowned_ptr.h",
     "utf16.h",
     "weak_ptr.h",
     "widestring.cpp",
@@ -133,17 +122,19 @@
     "../../third_party:fx_tiff",
     "../../xfa/*",
   ]
-  deps = [ "../../third_party:pdfium_base" ]
+  deps = [
+    "../../third_party:pdfium_base",
+    "../../third_party:pdfium_compiler_specific",
+  ]
   public_deps = [
-    ":unowned_ptr",
     "../../:freetype_common",
     "../../third_party:pdfium_base",
     "//third_party/icu:icuuc",
   ]
   if (pdf_use_partition_alloc) {
     sources += [ "fx_memory_pa.cpp" ]
-    deps += [
-      "//base/allocator/partition_allocator/src/partition_alloc",
+    deps += [ "//base/allocator/partition_allocator/src/partition_alloc" ]
+    public_deps += [
       "//base/allocator/partition_allocator/src/partition_alloc:partition_alloc_buildflags",
       "//base/allocator/partition_allocator/src/partition_alloc:raw_ptr",
     ]
diff --git a/core/fxcrt/unowned_ptr.h b/core/fxcrt/unowned_ptr.h
index 964ef7c..ac820c7 100644
--- a/core/fxcrt/unowned_ptr.h
+++ b/core/fxcrt/unowned_ptr.h
@@ -55,8 +55,6 @@
 static_assert(raw_ptr<int>::kZeroOnConstruct, "Unsafe build arguments");
 static_assert(raw_ptr<int>::kZeroOnMove, "Unsafe build arguments");
 
-#define UNOWNED_PTR_IS_BASE_RAW_PTR
-
 template <typename T>
 using UnownedPtr = raw_ptr<T>;
 
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
index 27a06b8..bf12e49 100644
--- a/third_party/BUILD.gn
+++ b/third_party/BUILD.gn
@@ -572,9 +572,12 @@
   ]
   public_deps = [
     ":pdfium_compiler_specific",
-    "../core/fxcrt:unowned_ptr",
     "//third_party/abseil-cpp:absl",
   ]
+  if (pdf_use_partition_alloc) {
+    public_deps +=
+        [ "//base/allocator/partition_allocator/src/partition_alloc:raw_ptr" ]
+  }
   if (is_win) {
     sources += [
       "base/win/scoped_select_object.h",
diff --git a/third_party/DEPS b/third_party/DEPS
index dfd263b..6ffb470 100644
--- a/third_party/DEPS
+++ b/third_party/DEPS
@@ -3,5 +3,5 @@
   '+core/fxcrt/fx_coordinates.h',
   '+core/fxcrt/fx_memory.h',
   '+core/fxcrt/fx_system.h',
-  '+core/fxcrt/unowned_ptr.h',
+  '+partition_alloc/pointers',
 ]
diff --git a/third_party/base/containers/span.h b/third_party/base/containers/span.h
index 435fafa..0d600c3 100644
--- a/third_party/base/containers/span.h
+++ b/third_party/base/containers/span.h
@@ -13,10 +13,13 @@
 #include <type_traits>
 #include <utility>
 
-#include "core/fxcrt/unowned_ptr.h"
 #include "third_party/base/check.h"
 #include "third_party/base/compiler_specific.h"
 
+#if defined(PDF_USE_PARTITION_ALLOC)
+#include "partition_alloc/pointers/raw_ptr.h"
+#endif
+
 namespace pdfium {
 
 constexpr size_t dynamic_extent = static_cast<size_t>(-1);
@@ -187,7 +190,7 @@
   using const_reverse_iterator = std::reverse_iterator<const_iterator>;
 
   // [span.cons], span constructors, copy, assignment, and destructor
-  constexpr span() noexcept : data_(nullptr), size_(0) {}
+  constexpr span() noexcept = default;
   constexpr span(T* data, size_t size) noexcept : data_(data), size_(size) {
     DCHECK(data_ || size_ == 0);
   }
@@ -202,8 +205,8 @@
   // Conversion from a container that provides |T* data()| and |integral_type
   // size()|. Note that |data()| may not return nullptr for some empty
   // containers, which can lead to container overflow errors when probing
-  // unowned ptrs.
-#if defined(ADDRESS_SANITIZER) && defined(UNOWNED_PTR_IS_BASE_RAW_PTR)
+  // raw ptrs.
+#if defined(ADDRESS_SANITIZER) && defined(PDF_USE_PARTITION_ALLOC)
   template <typename Container,
             typename = internal::EnableIfSpanCompatibleContainer<Container, T>>
   constexpr span(Container& container)
@@ -298,12 +301,12 @@
   }
 
  private:
-#if defined(UNOWNED_PTR_IS_BASE_RAW_PTR)
+#if defined(PDF_USE_PARTITION_ALLOC)
   raw_ptr<T, AllowPtrArithmetic> data_ = nullptr;
 #else
-  UnownedPtr<T> data_;
+  T* data_ = nullptr;
 #endif
-  size_t size_;
+  size_t size_ = 0;
 };
 
 // [span.comparison], span comparison operators
