Remove DISALLOW_* macros in crashpad

This change was partially scripted and partially done manually with vim
regex + manually placing the deleted constructors.

The script change looked for destructors in the public: section of a
class, if that existed the deleted constructors would go before the
destructor.

For manual placement I looked for any constructor in the public: section
of the corresponding class. If there wasn't one, then it would ideally
have gone as the first entry except below enums, classes and typedefs.
This may not have been perfect, but is hopefully good enough. Fingers
crossed.

#include "base/macros.h" is removed from files that don't use
ignore_result, which is the only other thing defined in base/macros.h.

Bug: chromium:1010217
Change-Id: I1eff77f632de3d5c15795ba506a11d5231068652
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3171034
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
GitOrigin-RevId: 1aa478d161fd0d99bee03cc26e03222f86428d3e
diff --git a/client/annotation.h b/client/annotation.h
index edb963c..8e7a3cb 100644
--- a/client/annotation.h
+++ b/client/annotation.h
@@ -23,7 +23,6 @@
 #include <sys/types.h>
 
 #include "base/check.h"
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/string_piece.h"
 #include "build/build_config.h"
@@ -139,6 +138,9 @@
         size_(0),
         type_(type) {}
 
+  Annotation(const Annotation&) = delete;
+  Annotation& operator=(const Annotation&) = delete;
+
   //! \brief Specifies the number of bytes in \a value_ptr_ to include when
   //!     generating a crash report.
   //!
@@ -189,8 +191,6 @@
   void* const value_ptr_;
   ValueSizeType size_;
   const Type type_;
-
-  DISALLOW_COPY_AND_ASSIGN(Annotation);
 };
 
 //! \brief An \sa Annotation that stores a `NUL`-terminated C-string value.
@@ -214,6 +214,9 @@
   constexpr explicit StringAnnotation(const char name[])
       : Annotation(Type::kString, name, value_), value_() {}
 
+  StringAnnotation(const StringAnnotation&) = delete;
+  StringAnnotation& operator=(const StringAnnotation&) = delete;
+
   //! \brief Constructs a new StringAnnotation with the given \a name.
   //!
   //! This constructor takes the ArrayInitializerTag for use when
@@ -262,8 +265,6 @@
   // This value is not `NUL`-terminated, since the size is stored by the base
   // annotation.
   char value_[MaxSize];
-
-  DISALLOW_COPY_AND_ASSIGN(StringAnnotation);
 };
 
 }  // namespace crashpad
diff --git a/client/annotation_list.h b/client/annotation_list.h
index 0b80768..0238953 100644
--- a/client/annotation_list.h
+++ b/client/annotation_list.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_CLIENT_ANNOTATION_LIST_H_
 #define CRASHPAD_CLIENT_ANNOTATION_LIST_H_
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "client/annotation.h"
 
@@ -35,6 +34,10 @@
 class AnnotationList {
  public:
   AnnotationList();
+
+  AnnotationList(const AnnotationList&) = delete;
+  AnnotationList& operator=(const AnnotationList&) = delete;
+
   ~AnnotationList();
 
   //! \brief Returns the instance of the list that has been registered on the
@@ -102,8 +105,6 @@
   // Dummy linked-list head and tail elements of \a Annotation::Type::kInvalid.
   Annotation head_;
   Annotation tail_;
-
-  DISALLOW_COPY_AND_ASSIGN(AnnotationList);
 };
 
 }  // namespace crashpad
diff --git a/client/crash_report_database.h b/client/crash_report_database.h
index 2cec726..19f1bf7 100644
--- a/client/crash_report_database.h
+++ b/client/crash_report_database.h
@@ -24,7 +24,6 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/file/file_reader.h"
 #include "util/file/file_writer.h"
@@ -111,6 +110,10 @@
   class NewReport {
    public:
     NewReport();
+
+    NewReport(const NewReport&) = delete;
+    NewReport& operator=(const NewReport&) = delete;
+
     ~NewReport();
 
     //! \brief An open FileWriter with which to write the report.
@@ -152,8 +155,6 @@
     std::vector<ScopedRemoveFile> attachment_removers_;
     UUID uuid_;
     CrashReportDatabase* database_;
-
-    DISALLOW_COPY_AND_ASSIGN(NewReport);
   };
 
   //! \brief A crash report that is in the process of being uploaded.
@@ -162,6 +163,10 @@
   class UploadReport : public Report {
    public:
     UploadReport();
+
+    UploadReport(const UploadReport&) = delete;
+    UploadReport& operator=(const UploadReport&) = delete;
+
     virtual ~UploadReport();
 
     //! \brief An open FileReader with which to read the report.
@@ -189,8 +194,6 @@
     std::vector<std::unique_ptr<FileReader>> attachment_readers_;
     std::map<std::string, FileReader*> attachment_map_;
     bool report_metrics_;
-
-    DISALLOW_COPY_AND_ASSIGN(UploadReport);
   };
 
   //! \brief The result code for operations performed on a database.
@@ -233,6 +236,9 @@
     kCannotRequestUpload,
   };
 
+  CrashReportDatabase(const CrashReportDatabase&) = delete;
+  CrashReportDatabase& operator=(const CrashReportDatabase&) = delete;
+
   virtual ~CrashReportDatabase() {}
 
   //! \brief Opens a database of crash reports, possibly creating it.
@@ -422,8 +428,6 @@
   virtual OperationStatus RecordUploadAttempt(UploadReport* report,
                                               bool successful,
                                               const std::string& id) = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportDatabase);
 };
 
 }  // namespace crashpad
diff --git a/client/crash_report_database_generic.cc b/client/crash_report_database_generic.cc
index aeaf2af..a433a90 100644
--- a/client/crash_report_database_generic.cc
+++ b/client/crash_report_database_generic.cc
@@ -21,6 +21,7 @@
 #include <utility>
 
 #include "base/logging.h"
+#include "base/macros.h"
 #include "build/build_config.h"
 #include "client/settings.h"
 #include "util/file/directory_reader.h"
@@ -100,6 +101,10 @@
 class ScopedLockFile {
  public:
   ScopedLockFile() = default;
+
+  ScopedLockFile(const ScopedLockFile&) = delete;
+  ScopedLockFile& operator=(const ScopedLockFile&) = delete;
+
   ~ScopedLockFile() = default;
 
   ScopedLockFile& operator=(ScopedLockFile&& other) {
@@ -158,8 +163,6 @@
 
  private:
   ScopedRemoveFile lock_file_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedLockFile);
 };
 
 off_t GetFileSize(const base::FilePath& filepath) {
@@ -195,6 +198,11 @@
 class CrashReportDatabaseGeneric : public CrashReportDatabase {
  public:
   CrashReportDatabaseGeneric();
+
+  CrashReportDatabaseGeneric(const CrashReportDatabaseGeneric&) = delete;
+  CrashReportDatabaseGeneric& operator=(const CrashReportDatabaseGeneric&) =
+      delete;
+
   ~CrashReportDatabaseGeneric() override;
 
   bool Initialize(const base::FilePath& path, bool may_create);
@@ -297,8 +305,6 @@
   base::FilePath base_dir_;
   Settings settings_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseGeneric);
 };
 
 FileWriter* CrashReportDatabase::NewReport::AddAttachment(
diff --git a/client/crash_report_database_mac.mm b/client/crash_report_database_mac.mm
index 485d05f..839cfc8 100644
--- a/client/crash_report_database_mac.mm
+++ b/client/crash_report_database_mac.mm
@@ -28,6 +28,7 @@
 #include "base/cxx17_backports.h"
 #include "base/logging.h"
 #include "base/mac/scoped_nsautorelease_pool.h"
+#include "base/macros.h"
 #include "base/posix/eintr_wrapper.h"
 #include "base/scoped_generic.h"
 #include "base/strings/string_piece.h"
@@ -127,6 +128,10 @@
 class CrashReportDatabaseMac : public CrashReportDatabase {
  public:
   explicit CrashReportDatabaseMac(const base::FilePath& path);
+
+  CrashReportDatabaseMac(const CrashReportDatabaseMac&) = delete;
+  CrashReportDatabaseMac& operator=(const CrashReportDatabaseMac&) = delete;
+
   virtual ~CrashReportDatabaseMac();
 
   bool Initialize(bool may_create);
@@ -243,8 +248,6 @@
   Settings settings_;
   bool xattr_new_names_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseMac);
 };
 
 FileWriter* CrashReportDatabase::NewReport::AddAttachment(
diff --git a/client/crash_report_database_test.cc b/client/crash_report_database_test.cc
index 3c6a057..9d3f1fc 100644
--- a/client/crash_report_database_test.cc
+++ b/client/crash_report_database_test.cc
@@ -32,6 +32,9 @@
  public:
   CrashReportDatabaseTest() {}
 
+  CrashReportDatabaseTest(const CrashReportDatabaseTest&) = delete;
+  CrashReportDatabaseTest& operator=(const CrashReportDatabaseTest&) = delete;
+
  protected:
   // testing::Test:
   void SetUp() override {
@@ -125,8 +128,6 @@
  private:
   ScopedTempDir temp_dir_;
   std::unique_ptr<CrashReportDatabase> db_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseTest);
 };
 
 TEST_F(CrashReportDatabaseTest, Initialize) {
diff --git a/client/crash_report_database_win.cc b/client/crash_report_database_win.cc
index 0195f6b..b8ecadb 100644
--- a/client/crash_report_database_win.cc
+++ b/client/crash_report_database_win.cc
@@ -24,6 +24,7 @@
 #include <utility>
 
 #include "base/logging.h"
+#include "base/macros.h"
 #include "base/numerics/safe_math.h"
 #include "base/strings/utf_string_conversions.h"
 #include "client/settings.h"
@@ -208,6 +209,9 @@
 //!     to disk, and queries.
 class Metadata {
  public:
+  Metadata(const Metadata&) = delete;
+  Metadata& operator=(const Metadata&) = delete;
+
   //! \brief Writes any changes if necessary, unlocks and closes the file
   //!     handle.
   ~Metadata();
@@ -296,8 +300,6 @@
   const base::FilePath report_dir_;
   bool dirty_;  //! \brief `true` when a Write() is required on destruction.
   std::vector<ReportDisk> reports_;
-
-  DISALLOW_COPY_AND_ASSIGN(Metadata);
 };
 
 Metadata::~Metadata() {
@@ -615,6 +617,10 @@
 class CrashReportDatabaseWin : public CrashReportDatabase {
  public:
   explicit CrashReportDatabaseWin(const base::FilePath& path);
+
+  CrashReportDatabaseWin(const CrashReportDatabaseWin&) = delete;
+  CrashReportDatabaseWin& operator=(const CrashReportDatabaseWin&) = delete;
+
   ~CrashReportDatabaseWin() override;
 
   bool Initialize(bool may_create);
@@ -662,8 +668,6 @@
   base::FilePath base_dir_;
   Settings settings_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportDatabaseWin);
 };
 
 base::FilePath CrashReportDatabaseWin::AttachmentsRootPath() {
diff --git a/client/crashpad_client.h b/client/crashpad_client.h
index eea953d..c8016d2 100644
--- a/client/crashpad_client.h
+++ b/client/crashpad_client.h
@@ -23,7 +23,6 @@
 #include <stdint.h>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "util/file/file_io.h"
@@ -46,6 +45,10 @@
 class CrashpadClient {
  public:
   CrashpadClient();
+
+  CrashpadClient(const CrashpadClient&) = delete;
+  CrashpadClient& operator=(const CrashpadClient&) = delete;
+
   ~CrashpadClient();
 
   //! \brief Starts a Crashpad handler process, performing any necessary
@@ -744,8 +747,6 @@
 #elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
   std::set<int> unhandled_signals_;
 #endif  // OS_APPLE
-
-  DISALLOW_COPY_AND_ASSIGN(CrashpadClient);
 };
 
 }  // namespace crashpad
diff --git a/client/crashpad_client_ios.cc b/client/crashpad_client_ios.cc
index f53a6d5..b32678d 100644
--- a/client/crashpad_client_ios.cc
+++ b/client/crashpad_client_ios.cc
@@ -42,6 +42,9 @@
                      public UniversalMachExcServer::Interface,
                      public ObjcExceptionDelegate {
  public:
+  CrashHandler(const CrashHandler&) = delete;
+  CrashHandler& operator=(const CrashHandler&) = delete;
+
   static CrashHandler* Get() {
     static CrashHandler* instance = new CrashHandler();
     return instance;
@@ -215,8 +218,6 @@
   struct sigaction old_action_ = {};
   internal::IOSSystemDataCollector system_data_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashHandler);
 };
 
 }  // namespace
diff --git a/client/crashpad_client_linux.cc b/client/crashpad_client_linux.cc
index cf94e6b..eccf204 100644
--- a/client/crashpad_client_linux.cc
+++ b/client/crashpad_client_linux.cc
@@ -129,6 +129,9 @@
 // A base class for Crashpad signal handler implementations.
 class SignalHandler {
  public:
+  SignalHandler(const SignalHandler&) = delete;
+  SignalHandler& operator=(const SignalHandler&) = delete;
+
   // Returns the currently installed signal hander. May be `nullptr` if no
   // handler has been installed.
   static SignalHandler* Get() { return handler_; }
@@ -208,8 +211,6 @@
   static SignalHandler* handler_;
 
   static thread_local bool disabled_for_thread_;
-
-  DISALLOW_COPY_AND_ASSIGN(SignalHandler);
 };
 SignalHandler* SignalHandler::handler_ = nullptr;
 thread_local bool SignalHandler::disabled_for_thread_ = false;
@@ -217,6 +218,9 @@
 // Launches a single use handler to snapshot this process.
 class LaunchAtCrashHandler : public SignalHandler {
  public:
+  LaunchAtCrashHandler(const LaunchAtCrashHandler&) = delete;
+  LaunchAtCrashHandler& operator=(const LaunchAtCrashHandler&) = delete;
+
   static LaunchAtCrashHandler* Get() {
     static LaunchAtCrashHandler* instance = new LaunchAtCrashHandler();
     return instance;
@@ -272,12 +276,13 @@
   std::vector<std::string> envp_strings_;
   std::vector<const char*> envp_;
   bool set_envp_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(LaunchAtCrashHandler);
 };
 
 class RequestCrashDumpHandler : public SignalHandler {
  public:
+  RequestCrashDumpHandler(const RequestCrashDumpHandler&) = delete;
+  RequestCrashDumpHandler& operator=(const RequestCrashDumpHandler&) = delete;
+
   static RequestCrashDumpHandler* Get() {
     static RequestCrashDumpHandler* instance = new RequestCrashDumpHandler();
     return instance;
@@ -365,8 +370,6 @@
   // don't anything with it except pass it along).
   uint64_t crash_loop_before_time_ = 0;
 #endif
-
-  DISALLOW_COPY_AND_ASSIGN(RequestCrashDumpHandler);
 };
 
 }  // namespace
diff --git a/client/crashpad_client_linux_test.cc b/client/crashpad_client_linux_test.cc
index 0153355..a17589a 100644
--- a/client/crashpad_client_linux_test.cc
+++ b/client/crashpad_client_linux_test.cc
@@ -81,6 +81,10 @@
           std::tuple<bool, bool, bool, bool, CrashType>> {
  public:
   StartHandlerForSelfTest() = default;
+
+  StartHandlerForSelfTest(const StartHandlerForSelfTest&) = delete;
+  StartHandlerForSelfTest& operator=(const StartHandlerForSelfTest&) = delete;
+
   ~StartHandlerForSelfTest() = default;
 
   void SetUp() override {
@@ -95,8 +99,6 @@
 
  private:
   StartHandlerForSelfTestOptions options_;
-
-  DISALLOW_COPY_AND_ASSIGN(StartHandlerForSelfTest);
 };
 
 bool HandleCrashSuccessfully(int, siginfo_t*, ucontext_t*) {
@@ -212,6 +214,9 @@
  public:
   ScopedAltSignalStack() = default;
 
+  ScopedAltSignalStack(const ScopedAltSignalStack&) = delete;
+  ScopedAltSignalStack& operator=(const ScopedAltSignalStack&) = delete;
+
   ~ScopedAltSignalStack() {
     if (stack_mem_.is_valid()) {
       stack_t stack;
@@ -242,8 +247,6 @@
 
  private:
   ScopedMmap stack_mem_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedAltSignalStack);
 };
 
 class CrashThread : public Thread {
@@ -252,6 +255,9 @@
               CrashpadClient* client)
       : client_signal_stack_(), options_(options), client_(client) {}
 
+  CrashThread(const CrashThread&) = delete;
+  CrashThread& operator=(const CrashThread&) = delete;
+
  private:
   void ThreadMain() override {
     // It is only necessary to call InitializeSignalStackForThread() once, but
@@ -269,8 +275,6 @@
   ScopedAltSignalStack client_signal_stack_;
   const StartHandlerForSelfTestOptions& options_;
   CrashpadClient* client_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashThread);
 };
 
 CRASHPAD_CHILD_TEST_MAIN(StartHandlerForSelfTestChild) {
@@ -360,6 +364,11 @@
     }
   }
 
+  StartHandlerForSelfInChildTest(const StartHandlerForSelfInChildTest&) =
+      delete;
+  StartHandlerForSelfInChildTest& operator=(
+      const StartHandlerForSelfInChildTest&) = delete;
+
  private:
   void MultiprocessParent() override {
     ScopedTempDir temp_dir;
@@ -415,8 +424,6 @@
   }
 
   StartHandlerForSelfTestOptions options_;
-
-  DISALLOW_COPY_AND_ASSIGN(StartHandlerForSelfInChildTest);
 };
 
 TEST_P(StartHandlerForSelfTest, StartHandlerInChild) {
@@ -450,6 +457,11 @@
 class StartHandlerForClientTest {
  public:
   StartHandlerForClientTest() = default;
+
+  StartHandlerForClientTest(const StartHandlerForClientTest&) = delete;
+  StartHandlerForClientTest& operator=(const StartHandlerForClientTest&) =
+      delete;
+
   ~StartHandlerForClientTest() = default;
 
   bool Initialize(bool sanitize) {
@@ -513,6 +525,9 @@
   // more privileged, process.
   class SandboxedHandler {
    public:
+    SandboxedHandler(const SandboxedHandler&) = delete;
+    SandboxedHandler& operator=(const SandboxedHandler&) = delete;
+
     static SandboxedHandler* Get() {
       static SandboxedHandler* instance = new SandboxedHandler();
       return instance;
@@ -565,22 +580,22 @@
 
     FileHandle client_sock_;
     bool sanitize_;
-
-    DISALLOW_COPY_AND_ASSIGN(SandboxedHandler);
   };
 
   ScopedTempDir temp_dir_;
   ScopedFileHandle client_sock_;
   ScopedFileHandle server_sock_;
   bool sanitize_;
-
-  DISALLOW_COPY_AND_ASSIGN(StartHandlerForClientTest);
 };
 
 // Tests starting the handler for a child process.
 class StartHandlerForChildTest : public Multiprocess {
  public:
   StartHandlerForChildTest() = default;
+
+  StartHandlerForChildTest(const StartHandlerForChildTest&) = delete;
+  StartHandlerForChildTest& operator=(const StartHandlerForChildTest&) = delete;
+
   ~StartHandlerForChildTest() = default;
 
   bool Initialize(bool sanitize) {
@@ -607,8 +622,6 @@
   }
 
   StartHandlerForClientTest test_state_;
-
-  DISALLOW_COPY_AND_ASSIGN(StartHandlerForChildTest);
 };
 
 TEST(CrashpadClient, StartHandlerForChild) {
diff --git a/client/crashpad_client_mac.cc b/client/crashpad_client_mac.cc
index ddcd485..f4256f0 100644
--- a/client/crashpad_client_mac.cc
+++ b/client/crashpad_client_mac.cc
@@ -25,6 +25,7 @@
 
 #include "base/logging.h"
 #include "base/mac/mach_logging.h"
+#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "util/mac/mac_util.h"
 #include "util/mach/bootstrap.h"
@@ -94,6 +95,9 @@
       : pthread_attr_(pthread_attr) {
   }
 
+  ScopedPthreadAttrDestroy(const ScopedPthreadAttrDestroy&) = delete;
+  ScopedPthreadAttrDestroy& operator=(const ScopedPthreadAttrDestroy&) = delete;
+
   ~ScopedPthreadAttrDestroy() {
     errno = pthread_attr_destroy(pthread_attr_);
     PLOG_IF(WARNING, errno != 0) << "pthread_attr_destroy";
@@ -101,13 +105,14 @@
 
  private:
   pthread_attr_t* pthread_attr_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedPthreadAttrDestroy);
 };
 
 //! \brief Starts a Crashpad handler, possibly restarting it if it dies.
 class HandlerStarter final : public NotifyServer::DefaultInterface {
  public:
+  HandlerStarter(const HandlerStarter&) = delete;
+  HandlerStarter& operator=(const HandlerStarter&) = delete;
+
   ~HandlerStarter() {}
 
   //! \brief Starts a Crashpad handler initially, as opposed to starting it for
@@ -427,8 +432,6 @@
   std::vector<std::string> arguments_;
   base::mac::ScopedMachReceiveRight notify_port_;
   uint64_t last_start_time_;
-
-  DISALLOW_COPY_AND_ASSIGN(HandlerStarter);
 };
 
 }  // namespace
diff --git a/client/crashpad_client_win.cc b/client/crashpad_client_win.cc
index 4ae8da0..0973c2a 100644
--- a/client/crashpad_client_win.cc
+++ b/client/crashpad_client_win.cc
@@ -24,7 +24,6 @@
 
 #include "base/atomicops.h"
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/scoped_generic.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -339,6 +338,11 @@
  public:
   ScopedCallSetHandlerStartupState() : successful_(false) {}
 
+  ScopedCallSetHandlerStartupState(const ScopedCallSetHandlerStartupState&) =
+      delete;
+  ScopedCallSetHandlerStartupState& operator=(
+      const ScopedCallSetHandlerStartupState&) = delete;
+
   ~ScopedCallSetHandlerStartupState() {
     SetHandlerStartupState(successful_ ? StartupState::kSucceeded
                                        : StartupState::kFailed);
@@ -348,8 +352,6 @@
 
  private:
   bool successful_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedCallSetHandlerStartupState);
 };
 
 bool StartHandlerProcess(
diff --git a/client/crashpad_info.h b/client/crashpad_info.h
index 62efc10..cc05398 100644
--- a/client/crashpad_info.h
+++ b/client/crashpad_info.h
@@ -17,7 +17,6 @@
 
 #include <stdint.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "client/annotation_list.h"
 #include "client/simple_address_range_bag.h"
@@ -71,6 +70,9 @@
 
   CrashpadInfo();
 
+  CrashpadInfo(const CrashpadInfo&) = delete;
+  CrashpadInfo& operator=(const CrashpadInfo&) = delete;
+
   //! \brief Sets the bag of extra memory ranges to be included in the snapshot.
   //!
   //! Extra memory ranges may exist in \a address_range_bag at the time that
@@ -270,8 +272,6 @@
 #if defined(__clang__)
 #pragma clang diagnostic pop
 #endif
-
-  DISALLOW_COPY_AND_ASSIGN(CrashpadInfo);
 };
 
 }  // namespace crashpad
diff --git a/client/ios_handler/in_process_intermediate_dump_handler.cc b/client/ios_handler/in_process_intermediate_dump_handler.cc
index 43552a7..9c1a316 100644
--- a/client/ios_handler/in_process_intermediate_dump_handler.cc
+++ b/client/ios_handler/in_process_intermediate_dump_handler.cc
@@ -64,6 +64,9 @@
                              mach_msg_type_number_t thread_count)
       : threads_(threads), thread_count_(thread_count) {}
 
+  ScopedTaskThreads(const ScopedTaskThreads&) = delete;
+  ScopedTaskThreads& operator=(const ScopedTaskThreads&) = delete;
+
   ~ScopedTaskThreads() {
     for (uint32_t thread_index = 0; thread_index < thread_count_;
          ++thread_index) {
@@ -77,8 +80,6 @@
  private:
   thread_act_array_t threads_;
   mach_msg_type_number_t thread_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTaskThreads);
 };
 
 //! \brief Log \a key as a string.
diff --git a/client/ios_handler/in_process_intermediate_dump_handler.h b/client/ios_handler/in_process_intermediate_dump_handler.h
index 9a33ff4..6281563 100644
--- a/client/ios_handler/in_process_intermediate_dump_handler.h
+++ b/client/ios_handler/in_process_intermediate_dump_handler.h
@@ -32,6 +32,12 @@
 //! Note: All methods are `RUNS-DURING-CRASH`.
 class InProcessIntermediateDumpHandler final {
  public:
+  InProcessIntermediateDumpHandler() = delete;
+  InProcessIntermediateDumpHandler(const InProcessIntermediateDumpHandler&) =
+      delete;
+  InProcessIntermediateDumpHandler& operator=(
+      const InProcessIntermediateDumpHandler&) = delete;
+
   //! \brief Set kVersion to 1.
   //!
   //! \param[in] writer The dump writer
@@ -136,8 +142,6 @@
   //! \brief Write Crashpad annotations list.
   static void WriteCrashpadAnnotationsList(IOSIntermediateDumpWriter* writer,
                                            CrashpadInfo* crashpad_info);
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(InProcessIntermediateDumpHandler);
 };
 
 }  // namespace internal
diff --git a/client/prune_crash_reports.h b/client/prune_crash_reports.h
index 07a7098..b80cf7a 100644
--- a/client/prune_crash_reports.h
+++ b/client/prune_crash_reports.h
@@ -20,7 +20,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "client/crash_report_database.h"
 
 namespace crashpad {
@@ -81,14 +80,16 @@
   //! \param[in] max_age_in_days Reports created more than this many days ago
   //!     will be deleted.
   explicit AgePruneCondition(int max_age_in_days);
+
+  AgePruneCondition(const AgePruneCondition&) = delete;
+  AgePruneCondition& operator=(const AgePruneCondition&) = delete;
+
   ~AgePruneCondition();
 
   bool ShouldPruneReport(const CrashReportDatabase::Report& report) override;
 
  private:
   const time_t oldest_report_time_;
-
-  DISALLOW_COPY_AND_ASSIGN(AgePruneCondition);
 };
 
 //! \brief A PruneCondition that deletes older reports to keep the total
@@ -102,6 +103,11 @@
   //! \param[in] max_size_in_kb The maximum number of kilobytes that all crash
   //!     reports should consume.
   explicit DatabaseSizePruneCondition(size_t max_size_in_kb);
+
+  DatabaseSizePruneCondition(const DatabaseSizePruneCondition&) = delete;
+  DatabaseSizePruneCondition& operator=(const DatabaseSizePruneCondition&) =
+      delete;
+
   ~DatabaseSizePruneCondition();
 
   bool ShouldPruneReport(const CrashReportDatabase::Report& report) override;
@@ -109,8 +115,6 @@
  private:
   const size_t max_size_in_kb_;
   size_t measured_size_in_kb_;
-
-  DISALLOW_COPY_AND_ASSIGN(DatabaseSizePruneCondition);
 };
 
 //! \brief A PruneCondition that conjoins two other PruneConditions.
@@ -133,6 +137,10 @@
   //! \param[in] lhs The left-hand side of \a op. This class takes ownership.
   //! \param[in] rhs The right-hand side of \a op. This class takes ownership.
   BinaryPruneCondition(Operator op, PruneCondition* lhs, PruneCondition* rhs);
+
+  BinaryPruneCondition(const BinaryPruneCondition&) = delete;
+  BinaryPruneCondition& operator=(const BinaryPruneCondition&) = delete;
+
   ~BinaryPruneCondition();
 
   bool ShouldPruneReport(const CrashReportDatabase::Report& report) override;
@@ -141,8 +149,6 @@
   const Operator op_;
   std::unique_ptr<PruneCondition> lhs_;
   std::unique_ptr<PruneCondition> rhs_;
-
-  DISALLOW_COPY_AND_ASSIGN(BinaryPruneCondition);
 };
 
 }  // namespace crashpad
diff --git a/client/prune_crash_reports_test.cc b/client/prune_crash_reports_test.cc
index 333c37e..b989d2f 100644
--- a/client/prune_crash_reports_test.cc
+++ b/client/prune_crash_reports_test.cc
@@ -149,6 +149,10 @@
 class StaticCondition final : public PruneCondition {
  public:
   explicit StaticCondition(bool value) : value_(value), did_execute_(false) {}
+
+  StaticCondition(const StaticCondition&) = delete;
+  StaticCondition& operator=(const StaticCondition&) = delete;
+
   ~StaticCondition() {}
 
   bool ShouldPruneReport(const CrashReportDatabase::Report& report) override {
@@ -161,8 +165,6 @@
  private:
   const bool value_;
   bool did_execute_;
-
-  DISALLOW_COPY_AND_ASSIGN(StaticCondition);
 };
 
 TEST(PruneCrashReports, BinaryCondition) {
diff --git a/client/settings.h b/client/settings.h
index 5761c6b..d17f357 100644
--- a/client/settings.h
+++ b/client/settings.h
@@ -20,7 +20,6 @@
 #include <string>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "base/scoped_generic.h"
 #include "build/build_config.h"
 #include "util/file/file_io.h"
@@ -46,6 +45,10 @@
 class Settings {
  public:
   Settings();
+
+  Settings(const Settings&) = delete;
+  Settings& operator=(const Settings&) = delete;
+
   ~Settings();
 
   //! \brief Initializes the settings data store.
@@ -130,6 +133,10 @@
                            const base::FilePath& lockfile_path);
     ScopedLockedFileHandle(ScopedLockedFileHandle&& other);
     ScopedLockedFileHandle& operator=(ScopedLockedFileHandle&& other);
+
+    ScopedLockedFileHandle(const ScopedLockedFileHandle&) = delete;
+    ScopedLockedFileHandle& operator=(const ScopedLockedFileHandle&) = delete;
+
     ~ScopedLockedFileHandle();
 
     // These mirror the non-Fuchsia ScopedLockedFileHandle via ScopedGeneric so
@@ -147,8 +154,6 @@
 
     FileHandle handle_;
     base::FilePath lockfile_path_;
-
-    DISALLOW_COPY_AND_ASSIGN(ScopedLockedFileHandle);
   };
 #else  // OS_FUCHSIA
   using ScopedLockedFileHandle =
@@ -221,8 +226,6 @@
   base::FilePath file_path_;
 
   InitializationState initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(Settings);
 };
 
 }  // namespace crashpad
diff --git a/client/settings_test.cc b/client/settings_test.cc
index 3a5730b..5f13cfc 100644
--- a/client/settings_test.cc
+++ b/client/settings_test.cc
@@ -28,6 +28,9 @@
  public:
   SettingsTest() = default;
 
+  SettingsTest(const SettingsTest&) = delete;
+  SettingsTest& operator=(const SettingsTest&) = delete;
+
   base::FilePath settings_path() {
     return temp_dir_.path().Append(FILE_PATH_LITERAL("settings"));
   }
@@ -55,8 +58,6 @@
  private:
   ScopedTempDir temp_dir_;
   Settings settings_;
-
-  DISALLOW_COPY_AND_ASSIGN(SettingsTest);
 };
 
 TEST_F(SettingsTest, ClientID) {
diff --git a/client/simple_address_range_bag.h b/client/simple_address_range_bag.h
index 0a87a89..1bdfa82 100644
--- a/client/simple_address_range_bag.h
+++ b/client/simple_address_range_bag.h
@@ -22,7 +22,6 @@
 
 #include "base/check_op.h"
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 #include "util/misc/from_pointer_cast.h"
 #include "util/numeric/checked_range.h"
@@ -66,6 +65,9 @@
           current_(0) {
     }
 
+    Iterator(const Iterator&) = delete;
+    Iterator& operator=(const Iterator&) = delete;
+
     //! \brief Returns the next entry in the bag, or `nullptr` if at the end of
     //!     the collection.
     const Entry* Next() {
@@ -81,8 +83,6 @@
    private:
     const TSimpleAddressRangeBag& bag_;
     size_t current_;
-
-    DISALLOW_COPY_AND_ASSIGN(Iterator);
   };
 
   TSimpleAddressRangeBag()
diff --git a/client/simple_string_dictionary.h b/client/simple_string_dictionary.h
index 31c7548..43483dd 100644
--- a/client/simple_string_dictionary.h
+++ b/client/simple_string_dictionary.h
@@ -22,7 +22,6 @@
 #include <type_traits>
 
 #include "base/check_op.h"
-#include "base/macros.h"
 #include "base/strings/string_piece.h"
 #include "util/misc/implicit_cast.h"
 
@@ -82,6 +81,9 @@
           current_(0) {
     }
 
+    Iterator(const Iterator&) = delete;
+    Iterator& operator=(const Iterator&) = delete;
+
     //! \brief Returns the next entry in the map, or `nullptr` if at the end of
     //!     the collection.
     const Entry* Next() {
@@ -97,8 +99,6 @@
    private:
     const TSimpleStringDictionary& map_;
     size_t current_;
-
-    DISALLOW_COPY_AND_ASSIGN(Iterator);
   };
 
   TSimpleStringDictionary()
diff --git a/client/simulate_crash_mac_test.cc b/client/simulate_crash_mac_test.cc
index 92ae73e..f22b2a6 100644
--- a/client/simulate_crash_mac_test.cc
+++ b/client/simulate_crash_mac_test.cc
@@ -19,7 +19,6 @@
 #include <sys/types.h>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
@@ -80,6 +79,9 @@
         succeed_(true) {
   }
 
+  TestSimulateCrashMac(const TestSimulateCrashMac&) = delete;
+  TestSimulateCrashMac& operator=(const TestSimulateCrashMac&) = delete;
+
   ~TestSimulateCrashMac() {}
 
   // UniversalMachExcServer::Interface:
@@ -325,8 +327,6 @@
   exception_behavior_t behavior_;
   thread_state_flavor_t flavor_;
   bool succeed_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestSimulateCrashMac);
 };
 
 TEST(SimulateCrash, SimulateCrash) {
diff --git a/handler/crash_report_upload_thread.h b/handler/crash_report_upload_thread.h
index 2ec1147..1a88a08 100644
--- a/handler/crash_report_upload_thread.h
+++ b/handler/crash_report_upload_thread.h
@@ -18,7 +18,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "client/crash_report_database.h"
 #include "util/misc/uuid.h"
 #include "util/stdlib/thread_safe_vector.h"
@@ -70,6 +69,10 @@
   CrashReportUploadThread(CrashReportDatabase* database,
                           const std::string& url,
                           const Options& options);
+
+  CrashReportUploadThread(const CrashReportUploadThread&) = delete;
+  CrashReportUploadThread& operator=(const CrashReportUploadThread&) = delete;
+
   ~CrashReportUploadThread();
 
   //! \brief Informs the upload thread that a new pending report has been added
@@ -172,8 +175,6 @@
   WorkerThread thread_;
   ThreadSafeVector<UUID> known_pending_report_uuids_;
   CrashReportDatabase* database_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportUploadThread);
 };
 
 }  // namespace crashpad
diff --git a/handler/crashpad_handler_test_extended_handler.cc b/handler/crashpad_handler_test_extended_handler.cc
index 7a8f456..4abcacd 100644
--- a/handler/crashpad_handler_test_extended_handler.cc
+++ b/handler/crashpad_handler_test_extended_handler.cc
@@ -14,7 +14,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "handler/handler_main.h"
 #include "minidump/test/minidump_user_extension_stream_util.h"
@@ -30,11 +29,11 @@
  public:
   TestUserStreamDataSource() {}
 
+  TestUserStreamDataSource(const TestUserStreamDataSource&) = delete;
+  TestUserStreamDataSource& operator=(const TestUserStreamDataSource&) = delete;
+
   std::unique_ptr<crashpad::MinidumpUserExtensionStreamDataSource>
   ProduceStreamData(crashpad::ProcessSnapshot* process_snapshot) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(TestUserStreamDataSource);
 };
 
 std::unique_ptr<crashpad::MinidumpUserExtensionStreamDataSource>
diff --git a/handler/handler_main.cc b/handler/handler_main.cc
index 737ee4e..5733463 100644
--- a/handler/handler_main.cc
+++ b/handler/handler_main.cc
@@ -270,12 +270,14 @@
 class CallMetricsRecordNormalExit {
  public:
   CallMetricsRecordNormalExit() {}
+
+  CallMetricsRecordNormalExit(const CallMetricsRecordNormalExit&) = delete;
+  CallMetricsRecordNormalExit& operator=(const CallMetricsRecordNormalExit&) =
+      delete;
+
   ~CallMetricsRecordNormalExit() {
     MetricsRecordExit(Metrics::LifetimeMilestone::kExitedNormally);
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(CallMetricsRecordNormalExit);
 };
 
 #if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
@@ -391,6 +393,10 @@
 class TerminateHandler final : public SessionEndWatcher {
  public:
   TerminateHandler() : SessionEndWatcher() {}
+
+  TerminateHandler(const TerminateHandler&) = delete;
+  TerminateHandler& operator=(const TerminateHandler&) = delete;
+
   ~TerminateHandler() override {}
 
  private:
@@ -398,8 +404,6 @@
   void SessionEnding() override {
     MetricsRecordExit(Metrics::LifetimeMilestone::kTerminated);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TerminateHandler);
 };
 
 void ReinstallCrashHandler() {
@@ -489,6 +493,9 @@
  public:
   ScopedStoppable() = default;
 
+  ScopedStoppable(const ScopedStoppable&) = delete;
+  ScopedStoppable& operator=(const ScopedStoppable&) = delete;
+
   ~ScopedStoppable() {
     if (stoppable_) {
       stoppable_->Stop();
@@ -501,8 +508,6 @@
 
  private:
   std::unique_ptr<Stoppable> stoppable_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedStoppable);
 };
 
 void InitCrashpadLogging() {
diff --git a/handler/linux/crash_report_exception_handler.cc b/handler/linux/crash_report_exception_handler.cc
index 9dc313c..4d37582 100644
--- a/handler/linux/crash_report_exception_handler.cc
+++ b/handler/linux/crash_report_exception_handler.cc
@@ -46,6 +46,10 @@
 class Logger final : public LogOutputStream::Delegate {
  public:
   Logger() = default;
+
+  Logger(const Logger&) = delete;
+  Logger& operator=(const Logger&) = delete;
+
   ~Logger() override = default;
 
 #if defined(OS_ANDROID)
@@ -72,9 +76,6 @@
   size_t OutputCap() override { return 0; }
   size_t LineWidth() override { return 0; }
 #endif
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(Logger);
 };
 
 bool WriteMinidumpLogFromFile(FileReaderInterface* file_reader) {
diff --git a/handler/linux/crash_report_exception_handler.h b/handler/linux/crash_report_exception_handler.h
index ae28430..76fce92 100644
--- a/handler/linux/crash_report_exception_handler.h
+++ b/handler/linux/crash_report_exception_handler.h
@@ -18,7 +18,6 @@
 #include <map>
 #include <string>
 
-#include "base/macros.h"
 #include "client/crash_report_database.h"
 #include "handler/crash_report_upload_thread.h"
 #include "handler/linux/exception_handler_server.h"
@@ -72,6 +71,10 @@
       bool write_minidump_to_log,
       const UserStreamDataSources* user_stream_data_sources);
 
+  CrashReportExceptionHandler(const CrashReportExceptionHandler&) = delete;
+  CrashReportExceptionHandler& operator=(const CrashReportExceptionHandler&) =
+      delete;
+
   ~CrashReportExceptionHandler() override;
 
   // ExceptionHandlerServer::Delegate:
@@ -113,8 +116,6 @@
   bool write_minidump_to_database_;
   bool write_minidump_to_log_;
   const UserStreamDataSources* user_stream_data_sources_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportExceptionHandler);
 };
 
 }  // namespace crashpad
diff --git a/handler/linux/cros_crash_report_exception_handler.h b/handler/linux/cros_crash_report_exception_handler.h
index 0b14544..eaa6eb1 100644
--- a/handler/linux/cros_crash_report_exception_handler.h
+++ b/handler/linux/cros_crash_report_exception_handler.h
@@ -18,7 +18,6 @@
 #include <map>
 #include <string>
 
-#include "base/macros.h"
 #include "client/crash_report_database.h"
 #include "handler/linux/exception_handler_server.h"
 #include "handler/user_stream_data_source.h"
@@ -58,6 +57,11 @@
       const std::map<std::string, std::string>* process_annotations,
       const UserStreamDataSources* user_stream_data_sources);
 
+  CrosCrashReportExceptionHandler(const CrosCrashReportExceptionHandler&) =
+      delete;
+  CrosCrashReportExceptionHandler& operator=(
+      const CrosCrashReportExceptionHandler&) = delete;
+
   ~CrosCrashReportExceptionHandler() override;
 
   // ExceptionHandlerServer::Delegate:
@@ -92,8 +96,6 @@
   const UserStreamDataSources* user_stream_data_sources_;  // weak
   base::FilePath dump_dir_;
   bool always_allow_feedback_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrosCrashReportExceptionHandler);
 };
 
 }  // namespace crashpad
diff --git a/handler/linux/exception_handler_server.h b/handler/linux/exception_handler_server.h
index ac430a4..60bf496 100644
--- a/handler/linux/exception_handler_server.h
+++ b/handler/linux/exception_handler_server.h
@@ -22,7 +22,6 @@
 #include <memory>
 #include <unordered_map>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/linux/exception_handler_protocol.h"
 #include "util/misc/address_types.h"
@@ -116,6 +115,10 @@
   };
 
   ExceptionHandlerServer();
+
+  ExceptionHandlerServer(const ExceptionHandlerServer&) = delete;
+  ExceptionHandlerServer& operator=(const ExceptionHandlerServer&) = delete;
+
   ~ExceptionHandlerServer();
 
   //! \brief Sets the handler's PtraceStrategyDecider.
@@ -187,8 +190,6 @@
   ScopedFileHandle pollfd_;
   std::atomic<bool> keep_running_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServer);
 };
 
 }  // namespace crashpad
diff --git a/handler/linux/exception_handler_server_test.cc b/handler/linux/exception_handler_server_test.cc
index 81687fd..786bab1 100644
--- a/handler/linux/exception_handler_server_test.cc
+++ b/handler/linux/exception_handler_server_test.cc
@@ -45,6 +45,9 @@
                   ExceptionHandlerServer::Delegate* delegate)
       : server_(server), delegate_(delegate), join_sem_(0) {}
 
+  RunServerThread(const RunServerThread&) = delete;
+  RunServerThread& operator=(const RunServerThread&) = delete;
+
   ~RunServerThread() override {}
 
   bool JoinWithTimeout(double timeout) {
@@ -65,8 +68,6 @@
   ExceptionHandlerServer* server_;
   ExceptionHandlerServer::Delegate* delegate_;
   Semaphore join_sem_;
-
-  DISALLOW_COPY_AND_ASSIGN(RunServerThread);
 };
 
 class ScopedStopServerAndJoinThread {
@@ -75,6 +76,10 @@
                                 RunServerThread* thread)
       : server_(server), thread_(thread) {}
 
+  ScopedStopServerAndJoinThread(const ScopedStopServerAndJoinThread&) = delete;
+  ScopedStopServerAndJoinThread& operator=(
+      const ScopedStopServerAndJoinThread&) = delete;
+
   ~ScopedStopServerAndJoinThread() {
     server_->Stop();
     EXPECT_TRUE(thread_->JoinWithTimeout(5.0));
@@ -83,8 +88,6 @@
  private:
   ExceptionHandlerServer* server_;
   RunServerThread* thread_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedStopServerAndJoinThread);
 };
 
 class TestDelegate : public ExceptionHandlerServer::Delegate {
@@ -92,6 +95,9 @@
   TestDelegate()
       : Delegate(), last_exception_address_(0), last_client_(-1), sem_(0) {}
 
+  TestDelegate(const TestDelegate&) = delete;
+  TestDelegate& operator=(const TestDelegate&) = delete;
+
   ~TestDelegate() {}
 
   bool WaitForException(double timeout_seconds,
@@ -159,8 +165,6 @@
   VMAddress last_exception_address_;
   pid_t last_client_;
   Semaphore sem_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestDelegate);
 };
 
 class MockPtraceStrategyDecider : public PtraceStrategyDecider {
@@ -168,6 +172,10 @@
   MockPtraceStrategyDecider(PtraceStrategyDecider::Strategy strategy)
       : PtraceStrategyDecider(), strategy_(strategy) {}
 
+  MockPtraceStrategyDecider(const MockPtraceStrategyDecider&) = delete;
+  MockPtraceStrategyDecider& operator=(const MockPtraceStrategyDecider&) =
+      delete;
+
   ~MockPtraceStrategyDecider() {}
 
   Strategy ChooseStrategy(int sock,
@@ -198,8 +206,6 @@
 
  private:
   Strategy strategy_;
-
-  DISALLOW_COPY_AND_ASSIGN(MockPtraceStrategyDecider);
 };
 
 class ExceptionHandlerServerTest : public testing::TestWithParam<bool> {
@@ -211,6 +217,10 @@
         sock_to_handler_(),
         use_multi_client_socket_(GetParam()) {}
 
+  ExceptionHandlerServerTest(const ExceptionHandlerServerTest&) = delete;
+  ExceptionHandlerServerTest& operator=(const ExceptionHandlerServerTest&) =
+      delete;
+
   ~ExceptionHandlerServerTest() = default;
 
   int SockToHandler() { return sock_to_handler_.get(); }
@@ -228,6 +238,9 @@
     CrashDumpTest(ExceptionHandlerServerTest* server_test, bool succeeds)
         : Multiprocess(), server_test_(server_test), succeeds_(succeeds) {}
 
+    CrashDumpTest(const CrashDumpTest&) = delete;
+    CrashDumpTest& operator=(const CrashDumpTest&) = delete;
+
     ~CrashDumpTest() = default;
 
     void MultiprocessParent() override {
@@ -267,8 +280,6 @@
    private:
     ExceptionHandlerServerTest* server_test_;
     bool succeeds_;
-
-    DISALLOW_COPY_AND_ASSIGN(CrashDumpTest);
   };
 
   void ExpectCrashDumpUsingStrategy(PtraceStrategyDecider::Strategy strategy,
@@ -303,8 +314,6 @@
   ScopedFileHandle sock_to_handler_;
   int sock_to_client_;
   bool use_multi_client_socket_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServerTest);
 };
 
 TEST_P(ExceptionHandlerServerTest, ShutdownWithNoClients) {
diff --git a/handler/mac/crash_report_exception_handler.h b/handler/mac/crash_report_exception_handler.h
index b5a59e4..16c6691 100644
--- a/handler/mac/crash_report_exception_handler.h
+++ b/handler/mac/crash_report_exception_handler.h
@@ -20,7 +20,6 @@
 #include <map>
 #include <string>
 
-#include "base/macros.h"
 #include "client/crash_report_database.h"
 #include "handler/crash_report_upload_thread.h"
 #include "handler/user_stream_data_source.h"
@@ -59,6 +58,10 @@
       const std::map<std::string, std::string>* process_annotations,
       const UserStreamDataSources* user_stream_data_sources);
 
+  CrashReportExceptionHandler(const CrashReportExceptionHandler&) = delete;
+  CrashReportExceptionHandler& operator=(const CrashReportExceptionHandler&) =
+      delete;
+
   ~CrashReportExceptionHandler();
 
   // UniversalMachExcServer::Interface:
@@ -86,8 +89,6 @@
   CrashReportUploadThread* upload_thread_;  // weak
   const std::map<std::string, std::string>* process_annotations_;  // weak
   const UserStreamDataSources* user_stream_data_sources_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportExceptionHandler);
 };
 
 }  // namespace crashpad
diff --git a/handler/mac/exception_handler_server.cc b/handler/mac/exception_handler_server.cc
index 3f30e03..83bb269 100644
--- a/handler/mac/exception_handler_server.cc
+++ b/handler/mac/exception_handler_server.cc
@@ -50,6 +50,10 @@
     composite_mach_message_server_.AddHandler(&notify_server_);
   }
 
+  ExceptionHandlerServerRun(const ExceptionHandlerServerRun&) = delete;
+  ExceptionHandlerServerRun& operator=(const ExceptionHandlerServerRun&) =
+      delete;
+
   ~ExceptionHandlerServerRun() {
   }
 
@@ -183,8 +187,6 @@
   mach_port_t notify_port_;  // weak
   bool running_;
   bool launchd_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServerRun);
 };
 
 }  // namespace
diff --git a/handler/mac/exception_handler_server.h b/handler/mac/exception_handler_server.h
index 272cf76..c27ecf3 100644
--- a/handler/mac/exception_handler_server.h
+++ b/handler/mac/exception_handler_server.h
@@ -18,7 +18,6 @@
 #include <mach/mach.h>
 
 #include "base/mac/scoped_mach_port.h"
-#include "base/macros.h"
 #include "util/mach/exc_server_variants.h"
 
 namespace crashpad {
@@ -37,6 +36,10 @@
   //!     signal.
   ExceptionHandlerServer(base::mac::ScopedMachReceiveRight receive_port,
                          bool launchd);
+
+  ExceptionHandlerServer(const ExceptionHandlerServer&) = delete;
+  ExceptionHandlerServer& operator=(const ExceptionHandlerServer&) = delete;
+
   ~ExceptionHandlerServer();
 
   //! \brief Runs the exception-handling server.
@@ -73,8 +76,6 @@
   base::mac::ScopedMachReceiveRight receive_port_;
   base::mac::ScopedMachReceiveRight notify_port_;
   bool launchd_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServer);
 };
 
 }  // namespace crashpad
diff --git a/handler/prune_crash_reports_thread.h b/handler/prune_crash_reports_thread.h
index 0fd365b..5009ed6 100644
--- a/handler/prune_crash_reports_thread.h
+++ b/handler/prune_crash_reports_thread.h
@@ -17,7 +17,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/thread/stoppable.h"
 #include "util/thread/worker_thread.h"
 
@@ -41,6 +40,10 @@
   //!     pruning.
   PruneCrashReportThread(CrashReportDatabase* database,
                          std::unique_ptr<PruneCondition> condition);
+
+  PruneCrashReportThread(const PruneCrashReportThread&) = delete;
+  PruneCrashReportThread& operator=(const PruneCrashReportThread&) = delete;
+
   ~PruneCrashReportThread();
 
   // Stoppable:
@@ -70,8 +73,6 @@
   WorkerThread thread_;
   std::unique_ptr<PruneCondition> condition_;
   CrashReportDatabase* database_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(PruneCrashReportThread);
 };
 
 }  // namespace crashpad
diff --git a/handler/win/crash_report_exception_handler.h b/handler/win/crash_report_exception_handler.h
index cefb898..d322370 100644
--- a/handler/win/crash_report_exception_handler.h
+++ b/handler/win/crash_report_exception_handler.h
@@ -20,7 +20,6 @@
 #include <map>
 #include <string>
 
-#include "base/macros.h"
 #include "handler/user_stream_data_source.h"
 #include "util/win/exception_handler_server.h"
 
@@ -63,6 +62,10 @@
       const std::vector<base::FilePath>* attachments,
       const UserStreamDataSources* user_stream_data_sources);
 
+  CrashReportExceptionHandler(const CrashReportExceptionHandler&) = delete;
+  CrashReportExceptionHandler& operator=(const CrashReportExceptionHandler&) =
+      delete;
+
   ~CrashReportExceptionHandler();
 
   // ExceptionHandlerServer::Delegate:
@@ -81,8 +84,6 @@
   const std::map<std::string, std::string>* process_annotations_;  // weak
   const std::vector<base::FilePath>* attachments_;  // weak
   const UserStreamDataSources* user_stream_data_sources_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(CrashReportExceptionHandler);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_annotation_writer.h b/minidump/minidump_annotation_writer.h
index fc30dbc..ffb931d 100644
--- a/minidump/minidump_annotation_writer.h
+++ b/minidump/minidump_annotation_writer.h
@@ -36,6 +36,10 @@
 class MinidumpAnnotationWriter final : public internal::MinidumpWritable {
  public:
   MinidumpAnnotationWriter();
+
+  MinidumpAnnotationWriter(const MinidumpAnnotationWriter&) = delete;
+  MinidumpAnnotationWriter& operator=(const MinidumpAnnotationWriter&) = delete;
+
   ~MinidumpAnnotationWriter();
 
   //! \brief Initializes the annotation writer with data from an
@@ -62,8 +66,6 @@
   MinidumpAnnotation annotation_;
   internal::MinidumpUTF8StringWriter name_;
   MinidumpByteArrayWriter value_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpAnnotationWriter);
 };
 
 //! \brief The writer for a MinidumpAnnotationList object in a minidump file,
@@ -71,6 +73,11 @@
 class MinidumpAnnotationListWriter final : public internal::MinidumpWritable {
  public:
   MinidumpAnnotationListWriter();
+
+  MinidumpAnnotationListWriter(const MinidumpAnnotationListWriter&) = delete;
+  MinidumpAnnotationListWriter& operator=(const MinidumpAnnotationListWriter&) =
+      delete;
+
   ~MinidumpAnnotationListWriter();
 
   //! \brief Initializes the annotation list writer with a list of
@@ -100,8 +107,6 @@
  private:
   std::unique_ptr<MinidumpAnnotationList> minidump_list_;
   std::vector<std::unique_ptr<MinidumpAnnotationWriter>> objects_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpAnnotationListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_byte_array_writer.h b/minidump/minidump_byte_array_writer.h
index c399f03..2cbc279 100644
--- a/minidump/minidump_byte_array_writer.h
+++ b/minidump/minidump_byte_array_writer.h
@@ -18,7 +18,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_writable.h"
 
@@ -29,6 +28,10 @@
 class MinidumpByteArrayWriter final : public internal::MinidumpWritable {
  public:
   MinidumpByteArrayWriter();
+
+  MinidumpByteArrayWriter(const MinidumpByteArrayWriter&) = delete;
+  MinidumpByteArrayWriter& operator=(const MinidumpByteArrayWriter&) = delete;
+
   ~MinidumpByteArrayWriter() override;
 
   //! \brief Sets the data to be written.
@@ -56,8 +59,6 @@
  private:
   std::unique_ptr<MinidumpByteArray> minidump_array_;
   std::vector<uint8_t> data_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpByteArrayWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_context_writer.h b/minidump/minidump_context_writer.h
index d4ab936..80b312b 100644
--- a/minidump/minidump_context_writer.h
+++ b/minidump/minidump_context_writer.h
@@ -19,7 +19,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "minidump/minidump_context.h"
 #include "minidump/minidump_writable.h"
 
@@ -33,6 +32,9 @@
 //!     files.
 class MinidumpContextWriter : public internal::MinidumpWritable {
  public:
+  MinidumpContextWriter(const MinidumpContextWriter&) = delete;
+  MinidumpContextWriter& operator=(const MinidumpContextWriter&) = delete;
+
   ~MinidumpContextWriter() override;
 
   //! \brief Creates a MinidumpContextWriter based on \a context_snapshot.
@@ -59,15 +61,16 @@
 
   // MinidumpWritable:
   size_t SizeOfObject() final;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextWriter);
 };
 
 //! \brief The writer for a MinidumpContextX86 structure in a minidump file.
 class MinidumpContextX86Writer final : public MinidumpContextWriter {
  public:
   MinidumpContextX86Writer();
+
+  MinidumpContextX86Writer(const MinidumpContextX86Writer&) = delete;
+  MinidumpContextX86Writer& operator=(const MinidumpContextX86Writer&) = delete;
+
   ~MinidumpContextX86Writer() override;
 
   //! \brief Initializes the MinidumpContextX86 based on \a context_snapshot.
@@ -100,14 +103,17 @@
 
  private:
   MinidumpContextX86 context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextX86Writer);
 };
 
 //! \brief The writer for a MinidumpContextAMD64 structure in a minidump file.
 class MinidumpContextAMD64Writer final : public MinidumpContextWriter {
  public:
   MinidumpContextAMD64Writer();
+
+  MinidumpContextAMD64Writer(const MinidumpContextAMD64Writer&) = delete;
+  MinidumpContextAMD64Writer& operator=(const MinidumpContextAMD64Writer&) =
+      delete;
+
   ~MinidumpContextAMD64Writer() override;
 
   // Ensure proper alignment of heap-allocated objects. This should not be
@@ -151,14 +157,16 @@
 
  private:
   MinidumpContextAMD64 context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextAMD64Writer);
 };
 
 //! \brief The writer for a MinidumpContextARM structure in a minidump file.
 class MinidumpContextARMWriter final : public MinidumpContextWriter {
  public:
   MinidumpContextARMWriter();
+
+  MinidumpContextARMWriter(const MinidumpContextARMWriter&) = delete;
+  MinidumpContextARMWriter& operator=(const MinidumpContextARMWriter&) = delete;
+
   ~MinidumpContextARMWriter() override;
 
   //! \brief Initializes the MinidumpContextARM based on \a context_snapshot.
@@ -191,14 +199,17 @@
 
  private:
   MinidumpContextARM context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextARMWriter);
 };
 
 //! \brief The writer for a MinidumpContextARM64 structure in a minidump file.
 class MinidumpContextARM64Writer final : public MinidumpContextWriter {
  public:
   MinidumpContextARM64Writer();
+
+  MinidumpContextARM64Writer(const MinidumpContextARM64Writer&) = delete;
+  MinidumpContextARM64Writer& operator=(const MinidumpContextARM64Writer&) =
+      delete;
+
   ~MinidumpContextARM64Writer() override;
 
   //! \brief Initializes the MinidumpContextARM64 based on \a context_snapshot.
@@ -231,14 +242,17 @@
 
  private:
   MinidumpContextARM64 context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextARM64Writer);
 };
 
 //! \brief The writer for a MinidumpContextMIPS structure in a minidump file.
 class MinidumpContextMIPSWriter final : public MinidumpContextWriter {
  public:
   MinidumpContextMIPSWriter();
+
+  MinidumpContextMIPSWriter(const MinidumpContextMIPSWriter&) = delete;
+  MinidumpContextMIPSWriter& operator=(const MinidumpContextMIPSWriter&) =
+      delete;
+
   ~MinidumpContextMIPSWriter() override;
 
   //! \brief Initializes the MinidumpContextMIPS based on \a context_snapshot.
@@ -271,14 +285,17 @@
 
  private:
   MinidumpContextMIPS context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPSWriter);
 };
 
 //! \brief The writer for a MinidumpContextMIPS64 structure in a minidump file.
 class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
  public:
   MinidumpContextMIPS64Writer();
+
+  MinidumpContextMIPS64Writer(const MinidumpContextMIPS64Writer&) = delete;
+  MinidumpContextMIPS64Writer& operator=(const MinidumpContextMIPS64Writer&) =
+      delete;
+
   ~MinidumpContextMIPS64Writer() override;
 
   //! \brief Initializes the MinidumpContextMIPS based on \a context_snapshot.
@@ -311,8 +328,6 @@
 
  private:
   MinidumpContextMIPS64 context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_crashpad_info_writer.h b/minidump/minidump_crashpad_info_writer.h
index 4624b24..b7aa2d8 100644
--- a/minidump/minidump_crashpad_info_writer.h
+++ b/minidump/minidump_crashpad_info_writer.h
@@ -20,7 +20,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_stream_writer.h"
 #include "util/misc/uuid.h"
@@ -35,6 +34,11 @@
 class MinidumpCrashpadInfoWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpCrashpadInfoWriter();
+
+  MinidumpCrashpadInfoWriter(const MinidumpCrashpadInfoWriter&) = delete;
+  MinidumpCrashpadInfoWriter& operator=(const MinidumpCrashpadInfoWriter&) =
+      delete;
+
   ~MinidumpCrashpadInfoWriter() override;
 
   //! \brief Initializes MinidumpCrashpadInfo based on \a process_snapshot.
@@ -105,8 +109,6 @@
   MinidumpCrashpadInfo crashpad_info_;
   std::unique_ptr<MinidumpSimpleStringDictionaryWriter> simple_annotations_;
   std::unique_ptr<MinidumpModuleCrashpadInfoListWriter> module_list_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpCrashpadInfoWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_exception_writer.h b/minidump/minidump_exception_writer.h
index cc8c6be..82299a5 100644
--- a/minidump/minidump_exception_writer.h
+++ b/minidump/minidump_exception_writer.h
@@ -23,7 +23,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_thread_id_map.h"
 
@@ -37,6 +36,10 @@
 class MinidumpExceptionWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpExceptionWriter();
+
+  MinidumpExceptionWriter(const MinidumpExceptionWriter&) = delete;
+  MinidumpExceptionWriter& operator=(const MinidumpExceptionWriter&) = delete;
+
   ~MinidumpExceptionWriter() override;
 
   //! \brief Initializes the MINIDUMP_EXCEPTION_STREAM based on \a
@@ -117,8 +120,6 @@
  private:
   MINIDUMP_EXCEPTION_STREAM exception_;
   std::unique_ptr<MinidumpContextWriter> context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpExceptionWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_file_writer.h b/minidump/minidump_file_writer.h
index 0a1b064..443a947 100644
--- a/minidump/minidump_file_writer.h
+++ b/minidump/minidump_file_writer.h
@@ -23,7 +23,6 @@
 #include <set>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
@@ -41,6 +40,10 @@
 class MinidumpFileWriter final : public internal::MinidumpWritable {
  public:
   MinidumpFileWriter();
+
+  MinidumpFileWriter(const MinidumpFileWriter&) = delete;
+  MinidumpFileWriter& operator=(const MinidumpFileWriter&) = delete;
+
   ~MinidumpFileWriter() override;
 
   //! \brief Initializes the MinidumpFileWriter and populates it with
@@ -163,8 +166,6 @@
 
   // Protects against multiple streams with the same ID being added.
   std::set<MinidumpStreamType> stream_types_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpFileWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_file_writer_test.cc b/minidump/minidump_file_writer_test.cc
index c5d2845..efeaeab 100644
--- a/minidump/minidump_file_writer_test.cc
+++ b/minidump/minidump_file_writer_test.cc
@@ -64,6 +64,9 @@
              uint8_t stream_value)
       : stream_data_(stream_size, stream_value), stream_type_(stream_type) {}
 
+  TestStream(const TestStream&) = delete;
+  TestStream& operator=(const TestStream&) = delete;
+
   ~TestStream() override {}
 
   // MinidumpStreamWriter:
@@ -86,13 +89,15 @@
  private:
   std::string stream_data_;
   MinidumpStreamType stream_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestStream);
 };
 
 class StringFileOutputStream : public OutputStreamInterface {
  public:
   StringFileOutputStream() = default;
+
+  StringFileOutputStream(const StringFileOutputStream&) = delete;
+  StringFileOutputStream& operator=(const StringFileOutputStream&) = delete;
+
   ~StringFileOutputStream() override = default;
   bool Write(const uint8_t* data, size_t size) override {
     return string_file_.Write(data, size);
@@ -102,8 +107,6 @@
 
  private:
   StringFile string_file_;
-
-  DISALLOW_COPY_AND_ASSIGN(StringFileOutputStream);
 };
 
 TEST(MinidumpFileWriter, OneStream) {
diff --git a/minidump/minidump_handle_writer.h b/minidump/minidump_handle_writer.h
index f8eaeef..348f55e 100644
--- a/minidump/minidump_handle_writer.h
+++ b/minidump/minidump_handle_writer.h
@@ -43,6 +43,10 @@
 class MinidumpHandleDataWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpHandleDataWriter();
+
+  MinidumpHandleDataWriter(const MinidumpHandleDataWriter&) = delete;
+  MinidumpHandleDataWriter& operator=(const MinidumpHandleDataWriter&) = delete;
+
   ~MinidumpHandleDataWriter() override;
 
   //! \brief Adds a MINIDUMP_HANDLE_DESCRIPTOR for each handle in \a
@@ -68,8 +72,6 @@
   MINIDUMP_HANDLE_DATA_STREAM handle_data_stream_base_;
   std::vector<MINIDUMP_HANDLE_DESCRIPTOR> handle_descriptors_;
   std::map<std::string, internal::MinidumpUTF16StringWriter*> strings_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpHandleDataWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_memory_info_writer.h b/minidump/minidump_memory_info_writer.h
index ec66019..a4159a7 100644
--- a/minidump/minidump_memory_info_writer.h
+++ b/minidump/minidump_memory_info_writer.h
@@ -22,7 +22,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
 
@@ -39,6 +38,11 @@
     : public internal::MinidumpStreamWriter {
  public:
   MinidumpMemoryInfoListWriter();
+
+  MinidumpMemoryInfoListWriter(const MinidumpMemoryInfoListWriter&) = delete;
+  MinidumpMemoryInfoListWriter& operator=(const MinidumpMemoryInfoListWriter&) =
+      delete;
+
   ~MinidumpMemoryInfoListWriter() override;
 
   //! \brief Initializes a MINIDUMP_MEMORY_INFO_LIST based on \a memory_map.
@@ -63,8 +67,6 @@
  private:
   MINIDUMP_MEMORY_INFO_LIST memory_info_list_base_;
   std::vector<MINIDUMP_MEMORY_INFO> items_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryInfoListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_memory_writer.h b/minidump/minidump_memory_writer.h
index 4f4f27f..ef18de2 100644
--- a/minidump/minidump_memory_writer.h
+++ b/minidump/minidump_memory_writer.h
@@ -23,7 +23,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
 #include "snapshot/memory_snapshot.h"
@@ -37,6 +36,11 @@
                                      public MemorySnapshot::Delegate {
  public:
   explicit SnapshotMinidumpMemoryWriter(const MemorySnapshot* memory_snapshot);
+
+  SnapshotMinidumpMemoryWriter(const SnapshotMinidumpMemoryWriter&) = delete;
+  SnapshotMinidumpMemoryWriter& operator=(const SnapshotMinidumpMemoryWriter&) =
+      delete;
+
   ~SnapshotMinidumpMemoryWriter() override;
 
   //! \brief Returns a MINIDUMP_MEMORY_DESCRIPTOR referencing the data that this
@@ -111,8 +115,6 @@
   std::vector<MINIDUMP_MEMORY_DESCRIPTOR*> registered_memory_descriptors_;
   const MemorySnapshot* memory_snapshot_;
   FileWriterInterface* file_writer_;
-
-  DISALLOW_COPY_AND_ASSIGN(SnapshotMinidumpMemoryWriter);
 };
 
 //! \brief The writer for a MINIDUMP_MEMORY_LIST stream in a minidump file,
@@ -120,6 +122,10 @@
 class MinidumpMemoryListWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpMemoryListWriter();
+
+  MinidumpMemoryListWriter(const MinidumpMemoryListWriter&) = delete;
+  MinidumpMemoryListWriter& operator=(const MinidumpMemoryListWriter&) = delete;
+
   ~MinidumpMemoryListWriter() override;
 
   //! \brief Adds a concrete initialized SnapshotMinidumpMemoryWriter for each
@@ -197,8 +203,6 @@
       snapshots_created_during_merge_;
   std::vector<SnapshotMinidumpMemoryWriter*> all_memory_writers_;  // weak
   MINIDUMP_MEMORY_LIST memory_list_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_memory_writer_test.cc b/minidump/minidump_memory_writer_test.cc
index 24dac9b..02a352f 100644
--- a/minidump/minidump_memory_writer_test.cc
+++ b/minidump/minidump_memory_writer_test.cc
@@ -235,6 +235,9 @@
   TestMemoryStream(uint64_t base_address, size_t size, uint8_t value)
       : MinidumpStreamWriter(), memory_(base_address, size, value) {}
 
+  TestMemoryStream(const TestMemoryStream&) = delete;
+  TestMemoryStream& operator=(const TestMemoryStream&) = delete;
+
   ~TestMemoryStream() override {}
 
   TestMinidumpMemoryWriter* memory() {
@@ -266,8 +269,6 @@
 
  private:
   TestMinidumpMemoryWriter memory_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMemoryStream);
 };
 
 TEST(MinidumpMemoryWriter, ExtraMemory) {
diff --git a/minidump/minidump_misc_info_writer.h b/minidump/minidump_misc_info_writer.h
index 0905e80..9d89fe6 100644
--- a/minidump/minidump_misc_info_writer.h
+++ b/minidump/minidump_misc_info_writer.h
@@ -24,7 +24,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
@@ -60,6 +59,10 @@
 class MinidumpMiscInfoWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpMiscInfoWriter();
+
+  MinidumpMiscInfoWriter(const MinidumpMiscInfoWriter&) = delete;
+  MinidumpMiscInfoWriter& operator=(const MinidumpMiscInfoWriter&) = delete;
+
   ~MinidumpMiscInfoWriter() override;
 
   //! \brief Initializes MINIDUMP_MISC_INFO_N based on \a process_snapshot.
@@ -135,8 +138,6 @@
 
   MINIDUMP_MISC_INFO_N misc_info_;
   bool has_xstate_data_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpMiscInfoWriter);
 };
 
 //! \brief Conversion functions from a native UTF16 C-string to a char16_t
diff --git a/minidump/minidump_module_crashpad_info_writer.h b/minidump/minidump_module_crashpad_info_writer.h
index 850db04..9af5c83 100644
--- a/minidump/minidump_module_crashpad_info_writer.h
+++ b/minidump/minidump_module_crashpad_info_writer.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_string_writer.h"
 #include "minidump/minidump_writable.h"
@@ -38,6 +37,12 @@
     : public internal::MinidumpWritable {
  public:
   MinidumpModuleCrashpadInfoWriter();
+
+  MinidumpModuleCrashpadInfoWriter(const MinidumpModuleCrashpadInfoWriter&) =
+      delete;
+  MinidumpModuleCrashpadInfoWriter& operator=(
+      const MinidumpModuleCrashpadInfoWriter&) = delete;
+
   ~MinidumpModuleCrashpadInfoWriter() override;
 
   //! \brief Initializes MinidumpModuleCrashpadInfo based on \a module_snapshot.
@@ -107,8 +112,6 @@
   std::unique_ptr<MinidumpUTF8StringListWriter> list_annotations_;
   std::unique_ptr<MinidumpSimpleStringDictionaryWriter> simple_annotations_;
   std::unique_ptr<MinidumpAnnotationListWriter> annotation_objects_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCrashpadInfoWriter);
 };
 
 //! \brief The writer for a MinidumpModuleCrashpadInfoList object in a minidump
@@ -117,6 +120,12 @@
     : public internal::MinidumpWritable {
  public:
   MinidumpModuleCrashpadInfoListWriter();
+
+  MinidumpModuleCrashpadInfoListWriter(
+      const MinidumpModuleCrashpadInfoListWriter&) = delete;
+  MinidumpModuleCrashpadInfoListWriter& operator=(
+      const MinidumpModuleCrashpadInfoListWriter&) = delete;
+
   ~MinidumpModuleCrashpadInfoListWriter() override;
 
   //! \brief Adds an initialized MinidumpModuleCrashpadInfo for modules in \a
@@ -171,8 +180,6 @@
       module_crashpad_infos_;
   std::vector<MinidumpModuleCrashpadInfoLink> module_crashpad_info_links_;
   MinidumpModuleCrashpadInfoList module_crashpad_info_list_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCrashpadInfoListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_module_writer.h b/minidump/minidump_module_writer.h
index 423b9b5..d450892 100644
--- a/minidump/minidump_module_writer.h
+++ b/minidump/minidump_module_writer.h
@@ -25,7 +25,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
@@ -42,13 +41,15 @@
 //!     MINIDUMP_MODULE::CvRecord in minidump files.
 class MinidumpModuleCodeViewRecordWriter : public internal::MinidumpWritable {
  public:
+  MinidumpModuleCodeViewRecordWriter(
+      const MinidumpModuleCodeViewRecordWriter&) = delete;
+  MinidumpModuleCodeViewRecordWriter& operator=(
+      const MinidumpModuleCodeViewRecordWriter&) = delete;
+
   ~MinidumpModuleCodeViewRecordWriter() override;
 
  protected:
   MinidumpModuleCodeViewRecordWriter() : MinidumpWritable() {}
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCodeViewRecordWriter);
 };
 
 namespace internal {
@@ -59,6 +60,11 @@
 class MinidumpModuleCodeViewRecordPDBLinkWriter
     : public MinidumpModuleCodeViewRecordWriter {
  public:
+  MinidumpModuleCodeViewRecordPDBLinkWriter(
+      const MinidumpModuleCodeViewRecordPDBLinkWriter&) = delete;
+  MinidumpModuleCodeViewRecordPDBLinkWriter& operator=(
+      const MinidumpModuleCodeViewRecordPDBLinkWriter&) = delete;
+
   //! \brief Sets the name of the `.pdb` file being linked to.
   void SetPDBName(const std::string& pdb_name) { pdb_name_ = pdb_name; }
 
@@ -79,8 +85,6 @@
  private:
   CodeViewRecordType codeview_record_;
   std::string pdb_name_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCodeViewRecordPDBLinkWriter);
 };
 
 }  // namespace internal
@@ -97,13 +101,15 @@
       : internal::MinidumpModuleCodeViewRecordPDBLinkWriter<
             CodeViewRecordPDB20>() {}
 
+  MinidumpModuleCodeViewRecordPDB20Writer(
+      const MinidumpModuleCodeViewRecordPDB20Writer&) = delete;
+  MinidumpModuleCodeViewRecordPDB20Writer& operator=(
+      const MinidumpModuleCodeViewRecordPDB20Writer&) = delete;
+
   ~MinidumpModuleCodeViewRecordPDB20Writer() override;
 
   //! \brief Sets CodeViewRecordPDB20::timestamp and CodeViewRecordPDB20::age.
   void SetTimestampAndAge(time_t timestamp, uint32_t age);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCodeViewRecordPDB20Writer);
 };
 
 //! \brief The writer for a CodeViewRecordPDB70 object in a minidump file.
@@ -115,6 +121,11 @@
       : internal::MinidumpModuleCodeViewRecordPDBLinkWriter<
             CodeViewRecordPDB70>() {}
 
+  MinidumpModuleCodeViewRecordPDB70Writer(
+      const MinidumpModuleCodeViewRecordPDB70Writer&) = delete;
+  MinidumpModuleCodeViewRecordPDB70Writer& operator=(
+      const MinidumpModuleCodeViewRecordPDB70Writer&) = delete;
+
   ~MinidumpModuleCodeViewRecordPDB70Writer() override;
 
   //! \brief Initializes the CodeViewRecordPDB70 based on \a module_snapshot.
@@ -131,9 +142,6 @@
     codeview_record()->uuid = uuid;
     codeview_record()->age = age;
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCodeViewRecordPDB70Writer);
 };
 
 //! \brief The writer for a CodeViewRecordBuildID object in a minidump file.
@@ -141,6 +149,12 @@
     : public MinidumpModuleCodeViewRecordWriter {
  public:
   MinidumpModuleCodeViewRecordBuildIDWriter();
+
+  MinidumpModuleCodeViewRecordBuildIDWriter(
+      const MinidumpModuleCodeViewRecordBuildIDWriter&) = delete;
+  MinidumpModuleCodeViewRecordBuildIDWriter& operator=(
+      const MinidumpModuleCodeViewRecordBuildIDWriter&) = delete;
+
   ~MinidumpModuleCodeViewRecordBuildIDWriter() override;
 
   //! \brief Sets the build ID used for symbol lookup.
@@ -152,8 +166,6 @@
   bool WriteObject(FileWriterInterface* file_writer) override;
 
   std::vector<uint8_t> build_id_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleCodeViewRecordBuildIDWriter);
 };
 
 //! \brief The writer for an IMAGE_DEBUG_MISC object in a minidump file.
@@ -163,6 +175,12 @@
     : public internal::MinidumpWritable {
  public:
   MinidumpModuleMiscDebugRecordWriter();
+
+  MinidumpModuleMiscDebugRecordWriter(
+      const MinidumpModuleMiscDebugRecordWriter&) = delete;
+  MinidumpModuleMiscDebugRecordWriter& operator=(
+      const MinidumpModuleMiscDebugRecordWriter&) = delete;
+
   ~MinidumpModuleMiscDebugRecordWriter() override;
 
   //! \brief Sets IMAGE_DEBUG_MISC::DataType.
@@ -189,8 +207,6 @@
   IMAGE_DEBUG_MISC image_debug_misc_;
   std::string data_;
   std::u16string data_utf16_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleMiscDebugRecordWriter);
 };
 
 //! \brief The writer for a MINIDUMP_MODULE object in a minidump file.
@@ -202,6 +218,10 @@
 class MinidumpModuleWriter final : public internal::MinidumpWritable {
  public:
   MinidumpModuleWriter();
+
+  MinidumpModuleWriter(const MinidumpModuleWriter&) = delete;
+  MinidumpModuleWriter& operator=(const MinidumpModuleWriter&) = delete;
+
   ~MinidumpModuleWriter() override;
 
   //! \brief Initializes the MINIDUMP_MODULE based on \a module_snapshot.
@@ -320,8 +340,6 @@
   std::unique_ptr<internal::MinidumpUTF16StringWriter> name_;
   std::unique_ptr<MinidumpModuleCodeViewRecordWriter> codeview_record_;
   std::unique_ptr<MinidumpModuleMiscDebugRecordWriter> misc_debug_record_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleWriter);
 };
 
 //! \brief The writer for a MINIDUMP_MODULE_LIST stream in a minidump file,
@@ -329,6 +347,10 @@
 class MinidumpModuleListWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpModuleListWriter();
+
+  MinidumpModuleListWriter(const MinidumpModuleListWriter&) = delete;
+  MinidumpModuleListWriter& operator=(const MinidumpModuleListWriter&) = delete;
+
   ~MinidumpModuleListWriter() override;
 
   //! \brief Adds an initialized MINIDUMP_MODULE for each module in \a
@@ -363,8 +385,6 @@
  private:
   std::vector<std::unique_ptr<MinidumpModuleWriter>> modules_;
   MINIDUMP_MODULE_LIST module_list_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpModuleListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_rva_list_writer.h b/minidump/minidump_rva_list_writer.h
index af584f1..ba7bd68 100644
--- a/minidump/minidump_rva_list_writer.h
+++ b/minidump/minidump_rva_list_writer.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_writable.h"
 
@@ -33,6 +32,10 @@
 class MinidumpRVAListWriter : public MinidumpWritable {
  protected:
   MinidumpRVAListWriter();
+
+  MinidumpRVAListWriter(const MinidumpRVAListWriter&) = delete;
+  MinidumpRVAListWriter& operator=(const MinidumpRVAListWriter&) = delete;
+
   ~MinidumpRVAListWriter() override;
 
   //! \brief Adds an ::RVA referencing an MinidumpWritable to the
@@ -68,8 +71,6 @@
   std::unique_ptr<MinidumpRVAList> rva_list_base_;
   std::vector<std::unique_ptr<MinidumpWritable>> children_;
   std::vector<RVA> child_rvas_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpRVAListWriter);
 };
 
 }  // namespace internal
diff --git a/minidump/minidump_rva_list_writer_test.cc b/minidump/minidump_rva_list_writer_test.cc
index 8ae2b9e..f99d943 100644
--- a/minidump/minidump_rva_list_writer_test.cc
+++ b/minidump/minidump_rva_list_writer_test.cc
@@ -31,15 +31,17 @@
 class TestMinidumpRVAListWriter final : public internal::MinidumpRVAListWriter {
  public:
   TestMinidumpRVAListWriter() : MinidumpRVAListWriter() {}
+
+  TestMinidumpRVAListWriter(const TestMinidumpRVAListWriter&) = delete;
+  TestMinidumpRVAListWriter& operator=(const TestMinidumpRVAListWriter&) =
+      delete;
+
   ~TestMinidumpRVAListWriter() override {}
 
   void AddChild(uint32_t value) {
     auto child = std::make_unique<TestUInt32MinidumpWritable>(value);
     MinidumpRVAListWriter::AddChild(std::move(child));
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(TestMinidumpRVAListWriter);
 };
 
 TEST(MinidumpRVAListWriter, Empty) {
diff --git a/minidump/minidump_simple_string_dictionary_writer.h b/minidump/minidump_simple_string_dictionary_writer.h
index f2662bc..5e46a64 100644
--- a/minidump/minidump_simple_string_dictionary_writer.h
+++ b/minidump/minidump_simple_string_dictionary_writer.h
@@ -22,7 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_string_writer.h"
 #include "minidump/minidump_writable.h"
@@ -41,6 +40,12 @@
     : public internal::MinidumpWritable {
  public:
   MinidumpSimpleStringDictionaryEntryWriter();
+
+  MinidumpSimpleStringDictionaryEntryWriter(
+      const MinidumpSimpleStringDictionaryEntryWriter&) = delete;
+  MinidumpSimpleStringDictionaryEntryWriter& operator=(
+      const MinidumpSimpleStringDictionaryEntryWriter&) = delete;
+
   ~MinidumpSimpleStringDictionaryEntryWriter() override;
 
   //! \brief Returns a MinidumpSimpleStringDictionaryEntry referencing this
@@ -76,8 +81,6 @@
   struct MinidumpSimpleStringDictionaryEntry entry_;
   internal::MinidumpUTF8StringWriter key_;
   internal::MinidumpUTF8StringWriter value_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpSimpleStringDictionaryEntryWriter);
 };
 
 //! \brief The writer for a MinidumpSimpleStringDictionary object in a minidump
@@ -89,6 +92,12 @@
     : public internal::MinidumpWritable {
  public:
   MinidumpSimpleStringDictionaryWriter();
+
+  MinidumpSimpleStringDictionaryWriter(
+      const MinidumpSimpleStringDictionaryWriter&) = delete;
+  MinidumpSimpleStringDictionaryWriter& operator=(
+      const MinidumpSimpleStringDictionaryWriter&) = delete;
+
   ~MinidumpSimpleStringDictionaryWriter() override;
 
   //! \brief Adds an initialized MinidumpSimpleStringDictionaryEntryWriter for
@@ -138,8 +147,6 @@
 
   std::unique_ptr<MinidumpSimpleStringDictionary>
       simple_string_dictionary_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpSimpleStringDictionaryWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_stream_writer.h b/minidump/minidump_stream_writer.h
index 894889a..447566b 100644
--- a/minidump/minidump_stream_writer.h
+++ b/minidump/minidump_stream_writer.h
@@ -18,7 +18,6 @@
 #include <windows.h>
 #include <dbghelp.h>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_writable.h"
 
@@ -32,6 +31,9 @@
 //! MinidumpFileWriter object.
 class MinidumpStreamWriter : public MinidumpWritable {
  public:
+  MinidumpStreamWriter(const MinidumpStreamWriter&) = delete;
+  MinidumpStreamWriter& operator=(const MinidumpStreamWriter&) = delete;
+
   ~MinidumpStreamWriter() override;
 
   //! \brief Returns an object’s stream type.
@@ -56,8 +58,6 @@
 
  private:
   MINIDUMP_DIRECTORY directory_list_entry_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpStreamWriter);
 };
 
 }  // namespace internal
diff --git a/minidump/minidump_string_writer.h b/minidump/minidump_string_writer.h
index 33186dd..d11e8cc 100644
--- a/minidump/minidump_string_writer.h
+++ b/minidump/minidump_string_writer.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_rva_list_writer.h"
 #include "minidump/minidump_writable.h"
@@ -55,6 +54,10 @@
 class MinidumpStringWriter : public MinidumpWritable {
  public:
   MinidumpStringWriter();
+
+  MinidumpStringWriter(const MinidumpStringWriter&) = delete;
+  MinidumpStringWriter& operator=(const MinidumpStringWriter&) = delete;
+
   ~MinidumpStringWriter() override;
 
  protected:
@@ -78,8 +81,6 @@
  private:
   std::unique_ptr<MinidumpStringType> string_base_;
   StringType string_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpStringWriter);
 };
 
 //! \brief Writes a variable-length UTF-16-encoded MINIDUMP_STRING to a minidump
@@ -91,6 +92,11 @@
     : public MinidumpStringWriter<MinidumpStringWriterUTF16Traits> {
  public:
   MinidumpUTF16StringWriter() : MinidumpStringWriter() {}
+
+  MinidumpUTF16StringWriter(const MinidumpUTF16StringWriter&) = delete;
+  MinidumpUTF16StringWriter& operator=(const MinidumpUTF16StringWriter&) =
+      delete;
+
   ~MinidumpUTF16StringWriter() override;
 
   //! \brief Converts a UTF-8 string to UTF-16 and sets it as the string to be
@@ -98,9 +104,6 @@
   //!
   //! \note Valid in #kStateMutable.
   void SetUTF8(const std::string& string_utf8);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUTF16StringWriter);
 };
 
 //! \brief Writes a variable-length UTF-8-encoded MinidumpUTF8String to a
@@ -112,6 +115,10 @@
     : public MinidumpStringWriter<MinidumpStringWriterUTF8Traits> {
  public:
   MinidumpUTF8StringWriter() : MinidumpStringWriter() {}
+
+  MinidumpUTF8StringWriter(const MinidumpUTF8StringWriter&) = delete;
+  MinidumpUTF8StringWriter& operator=(const MinidumpUTF8StringWriter&) = delete;
+
   ~MinidumpUTF8StringWriter() override;
 
   //! \brief Sets the string to be written.
@@ -123,9 +130,6 @@
   //!
   //! \note Valid in any state.
   const std::string& UTF8() const { return string(); }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUTF8StringWriter);
 };
 
 //! \brief The writer for a MinidumpRVAList object in a minidump file,
@@ -134,6 +138,10 @@
 class MinidumpStringListWriter final : public MinidumpRVAListWriter {
  public:
   MinidumpStringListWriter();
+
+  MinidumpStringListWriter(const MinidumpStringListWriter&) = delete;
+  MinidumpStringListWriter& operator=(const MinidumpStringListWriter&) = delete;
+
   ~MinidumpStringListWriter() override;
 
   //! \brief Adds a new \a Traits::MinidumpStringWriterType for each element in
@@ -166,9 +174,6 @@
   //!
   //! \return `true` if the object is useful, `false` otherwise.
   bool IsUseful() const;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MinidumpStringListWriter);
 };
 
 }  // namespace internal
diff --git a/minidump/minidump_system_info_writer.h b/minidump/minidump_system_info_writer.h
index 866530c..07dbcf3 100644
--- a/minidump/minidump_system_info_writer.h
+++ b/minidump/minidump_system_info_writer.h
@@ -24,7 +24,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
@@ -41,6 +40,10 @@
 class MinidumpSystemInfoWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpSystemInfoWriter();
+
+  MinidumpSystemInfoWriter(const MinidumpSystemInfoWriter&) = delete;
+  MinidumpSystemInfoWriter& operator=(const MinidumpSystemInfoWriter&) = delete;
+
   ~MinidumpSystemInfoWriter() override;
 
   //! \brief Initializes MINIDUMP_SYSTEM_INFO based on \a system_snapshot.
@@ -188,8 +191,6 @@
  private:
   MINIDUMP_SYSTEM_INFO system_info_;
   std::unique_ptr<internal::MinidumpUTF16StringWriter> csd_version_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpSystemInfoWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_thread_id_map_test.cc b/minidump/minidump_thread_id_map_test.cc
index 0c48c01..e972aeb 100644
--- a/minidump/minidump_thread_id_map_test.cc
+++ b/minidump/minidump_thread_id_map_test.cc
@@ -19,7 +19,6 @@
 #include <vector>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "snapshot/test/test_thread_snapshot.h"
 
@@ -35,6 +34,9 @@
         test_thread_snapshots_() {
   }
 
+  MinidumpThreadIDMapTest(const MinidumpThreadIDMapTest&) = delete;
+  MinidumpThreadIDMapTest& operator=(const MinidumpThreadIDMapTest&) = delete;
+
   ~MinidumpThreadIDMapTest() override {}
 
   // testing::Test:
@@ -72,8 +74,6 @@
  private:
   std::vector<const ThreadSnapshot*> thread_snapshots_;
   TestThreadSnapshot test_thread_snapshots_[5];
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpThreadIDMapTest);
 };
 
 TEST_F(MinidumpThreadIDMapTest, NoThreads) {
diff --git a/minidump/minidump_thread_writer.h b/minidump/minidump_thread_writer.h
index 82092e2..9ea428b 100644
--- a/minidump/minidump_thread_writer.h
+++ b/minidump/minidump_thread_writer.h
@@ -23,7 +23,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_thread_id_map.h"
 #include "minidump/minidump_writable.h"
@@ -44,6 +43,10 @@
 class MinidumpThreadWriter final : public internal::MinidumpWritable {
  public:
   MinidumpThreadWriter();
+
+  MinidumpThreadWriter(const MinidumpThreadWriter&) = delete;
+  MinidumpThreadWriter& operator=(const MinidumpThreadWriter&) = delete;
+
   ~MinidumpThreadWriter() override;
 
   //! \brief Initializes the MINIDUMP_THREAD based on \a thread_snapshot.
@@ -131,8 +134,6 @@
   MINIDUMP_THREAD thread_;
   std::unique_ptr<SnapshotMinidumpMemoryWriter> stack_;
   std::unique_ptr<MinidumpContextWriter> context_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpThreadWriter);
 };
 
 //! \brief The writer for a MINIDUMP_THREAD_LIST stream in a minidump file,
@@ -140,6 +141,10 @@
 class MinidumpThreadListWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpThreadListWriter();
+
+  MinidumpThreadListWriter(const MinidumpThreadListWriter&) = delete;
+  MinidumpThreadListWriter& operator=(const MinidumpThreadListWriter&) = delete;
+
   ~MinidumpThreadListWriter() override;
 
   //! \brief Adds an initialized MINIDUMP_THREAD for each thread in \a
@@ -205,8 +210,6 @@
   std::vector<std::unique_ptr<MinidumpThreadWriter>> threads_;
   MinidumpMemoryListWriter* memory_list_writer_;  // weak
   MINIDUMP_THREAD_LIST thread_list_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpThreadListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_unloaded_module_writer.h b/minidump/minidump_unloaded_module_writer.h
index 97651db..6b3ac90 100644
--- a/minidump/minidump_unloaded_module_writer.h
+++ b/minidump/minidump_unloaded_module_writer.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_string_writer.h"
 #include "minidump/minidump_writable.h"
@@ -41,6 +40,11 @@
 class MinidumpUnloadedModuleWriter final : public internal::MinidumpWritable {
  public:
   MinidumpUnloadedModuleWriter();
+
+  MinidumpUnloadedModuleWriter(const MinidumpUnloadedModuleWriter&) = delete;
+  MinidumpUnloadedModuleWriter& operator=(const MinidumpUnloadedModuleWriter&) =
+      delete;
+
   ~MinidumpUnloadedModuleWriter() override;
 
   //! \brief Initializes the MINIDUMP_UNLOADED_MODULE based on \a
@@ -97,8 +101,6 @@
  private:
   MINIDUMP_UNLOADED_MODULE unloaded_module_;
   std::unique_ptr<internal::MinidumpUTF16StringWriter> name_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUnloadedModuleWriter);
 };
 
 //! \brief The writer for a MINIDUMP_UNLOADED_MODULE_LIST stream in a minidump
@@ -107,6 +109,12 @@
     : public internal::MinidumpStreamWriter {
  public:
   MinidumpUnloadedModuleListWriter();
+
+  MinidumpUnloadedModuleListWriter(const MinidumpUnloadedModuleListWriter&) =
+      delete;
+  MinidumpUnloadedModuleListWriter& operator=(
+      const MinidumpUnloadedModuleListWriter&) = delete;
+
   ~MinidumpUnloadedModuleListWriter() override;
 
   //! \brief Adds an initialized MINIDUMP_UNLOADED_MODULE for each unloaded
@@ -145,8 +153,6 @@
  private:
   std::vector<std::unique_ptr<MinidumpUnloadedModuleWriter>> unloaded_modules_;
   MINIDUMP_UNLOADED_MODULE_LIST unloaded_module_list_base_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUnloadedModuleListWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_user_extension_stream_data_source.h b/minidump/minidump_user_extension_stream_data_source.h
index 3eb0c87..4a45e45 100644
--- a/minidump/minidump_user_extension_stream_data_source.h
+++ b/minidump/minidump_user_extension_stream_data_source.h
@@ -18,7 +18,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 
 #include "minidump/minidump_extensions.h"
 
@@ -54,6 +53,12 @@
   //!
   //! \param[in] stream_type The type of the user extension stream.
   explicit MinidumpUserExtensionStreamDataSource(uint32_t stream_type);
+
+  MinidumpUserExtensionStreamDataSource(
+      const MinidumpUserExtensionStreamDataSource&) = delete;
+  MinidumpUserExtensionStreamDataSource& operator=(
+      const MinidumpUserExtensionStreamDataSource&) = delete;
+
   virtual ~MinidumpUserExtensionStreamDataSource();
 
   MinidumpStreamType stream_type() const { return stream_type_; }
@@ -75,8 +80,6 @@
 
  private:
   MinidumpStreamType stream_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUserExtensionStreamDataSource);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_user_stream_writer.cc b/minidump/minidump_user_stream_writer.cc
index 29bb71c..4fbe252 100644
--- a/minidump/minidump_user_stream_writer.cc
+++ b/minidump/minidump_user_stream_writer.cc
@@ -33,6 +33,9 @@
   explicit SnapshotContentsWriter(const MemorySnapshot* snapshot)
       : snapshot_(snapshot), writer_(nullptr) {}
 
+  SnapshotContentsWriter(const SnapshotContentsWriter&) = delete;
+  SnapshotContentsWriter& operator=(const SnapshotContentsWriter&) = delete;
+
   bool WriteContents(FileWriterInterface* writer) override {
     DCHECK(!writer_);
 
@@ -52,8 +55,6 @@
  private:
   const MemorySnapshot* snapshot_;
   FileWriterInterface* writer_;
-
-  DISALLOW_COPY_AND_ASSIGN(SnapshotContentsWriter);
 };
 
 class MinidumpUserStreamWriter::ExtensionStreamContentsWriter final
@@ -64,6 +65,10 @@
       std::unique_ptr<MinidumpUserExtensionStreamDataSource> data_source)
       : data_source_(std::move(data_source)), writer_(nullptr) {}
 
+  ExtensionStreamContentsWriter(const ExtensionStreamContentsWriter&) = delete;
+  ExtensionStreamContentsWriter& operator=(
+      const ExtensionStreamContentsWriter&) = delete;
+
   bool WriteContents(FileWriterInterface* writer) override {
     DCHECK(!writer_);
 
@@ -80,8 +85,6 @@
  private:
   std::unique_ptr<MinidumpUserExtensionStreamDataSource> data_source_;
   FileWriterInterface* writer_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExtensionStreamContentsWriter);
 };
 
 MinidumpUserStreamWriter::MinidumpUserStreamWriter() : stream_type_() {}
diff --git a/minidump/minidump_user_stream_writer.h b/minidump/minidump_user_stream_writer.h
index c1bad0a..8f123e2 100644
--- a/minidump/minidump_user_stream_writer.h
+++ b/minidump/minidump_user_stream_writer.h
@@ -22,7 +22,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_stream_writer.h"
 #include "minidump/minidump_writable.h"
@@ -35,6 +34,10 @@
 class MinidumpUserStreamWriter final : public internal::MinidumpStreamWriter {
  public:
   MinidumpUserStreamWriter();
+
+  MinidumpUserStreamWriter(const MinidumpUserStreamWriter&) = delete;
+  MinidumpUserStreamWriter& operator=(const MinidumpUserStreamWriter&) = delete;
+
   ~MinidumpUserStreamWriter() override;
 
   //! \brief Initializes a MINIDUMP_USER_STREAM based on \a stream.
@@ -70,8 +73,6 @@
   std::unique_ptr<ContentsWriter> contents_writer_;
 
   MinidumpStreamType stream_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpUserStreamWriter);
 };
 
 }  // namespace crashpad
diff --git a/minidump/minidump_writable.h b/minidump/minidump_writable.h
index b2ebf04..bc36cb5 100644
--- a/minidump/minidump_writable.h
+++ b/minidump/minidump_writable.h
@@ -22,7 +22,6 @@
 #include <limits>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 
 namespace crashpad {
@@ -35,6 +34,9 @@
 //!     file.
 class MinidumpWritable {
  public:
+  MinidumpWritable(const MinidumpWritable&) = delete;
+  MinidumpWritable& operator=(const MinidumpWritable&) = delete;
+
   virtual ~MinidumpWritable();
 
   //! \brief Writes an object and all of its children to a minidump file.
@@ -270,8 +272,6 @@
 
   size_t leading_pad_bytes_;
   State state_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpWritable);
 };
 
 }  // namespace internal
diff --git a/minidump/minidump_writable_test.cc b/minidump/minidump_writable_test.cc
index 74b51a8..ef34e54 100644
--- a/minidump/minidump_writable_test.cc
+++ b/minidump/minidump_writable_test.cc
@@ -17,7 +17,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "util/file/string_file.h"
 
@@ -37,6 +36,9 @@
         has_phase_(false),
         verified_(false) {}
 
+  BaseTestMinidumpWritable(const BaseTestMinidumpWritable&) = delete;
+  BaseTestMinidumpWritable& operator=(const BaseTestMinidumpWritable&) = delete;
+
   ~BaseTestMinidumpWritable() { EXPECT_TRUE(verified_); }
 
   void SetAlignment(size_t alignment) {
@@ -113,14 +115,16 @@
   bool has_alignment_;
   bool has_phase_;
   bool verified_;
-
-  DISALLOW_COPY_AND_ASSIGN(BaseTestMinidumpWritable);
 };
 
 class TestStringMinidumpWritable final : public BaseTestMinidumpWritable {
  public:
   TestStringMinidumpWritable() : BaseTestMinidumpWritable(), data_() {}
 
+  TestStringMinidumpWritable(const TestStringMinidumpWritable&) = delete;
+  TestStringMinidumpWritable& operator=(const TestStringMinidumpWritable&) =
+      delete;
+
   ~TestStringMinidumpWritable() {}
 
   void SetData(const std::string& string) { data_ = string; }
@@ -140,8 +144,6 @@
 
  private:
   std::string data_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestStringMinidumpWritable);
 };
 
 TEST(MinidumpWritable, MinidumpWritable) {
@@ -487,6 +489,9 @@
  public:
   TestRVAMinidumpWritable() : BaseTestMinidumpWritable(), rva_() {}
 
+  TestRVAMinidumpWritable(const TestRVAMinidumpWritable&) = delete;
+  TestRVAMinidumpWritable& operator=(const TestRVAMinidumpWritable&) = delete;
+
   ~TestRVAMinidumpWritable() {}
 
   void SetRVA(MinidumpWritable* other) { other->RegisterRVA(&rva_); }
@@ -505,8 +510,6 @@
 
  private:
   RVA rva_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestRVAMinidumpWritable);
 };
 
 RVA RVAAtIndex(const std::string& string, size_t index) {
@@ -620,6 +623,11 @@
   TestLocationDescriptorMinidumpWritable()
       : BaseTestMinidumpWritable(), location_descriptor_(), string_() {}
 
+  TestLocationDescriptorMinidumpWritable(
+      const TestLocationDescriptorMinidumpWritable&) = delete;
+  TestLocationDescriptorMinidumpWritable& operator=(
+      const TestLocationDescriptorMinidumpWritable&) = delete;
+
   ~TestLocationDescriptorMinidumpWritable() {}
 
   void SetLocationDescriptor(MinidumpWritable* other) {
@@ -652,8 +660,6 @@
  private:
   MINIDUMP_LOCATION_DESCRIPTOR location_descriptor_;
   std::string string_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestLocationDescriptorMinidumpWritable);
 };
 
 struct LocationDescriptorAndData {
diff --git a/minidump/minidump_writer_util.h b/minidump/minidump_writer_util.h
index 16a4e5b..6bb7a5c 100644
--- a/minidump/minidump_writer_util.h
+++ b/minidump/minidump_writer_util.h
@@ -21,7 +21,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 
 namespace crashpad {
 namespace internal {
@@ -30,6 +29,10 @@
 //!     of classes.
 class MinidumpWriterUtil final {
  public:
+  MinidumpWriterUtil() = delete;
+  MinidumpWriterUtil(const MinidumpWriterUtil&) = delete;
+  MinidumpWriterUtil& operator=(const MinidumpWriterUtil&) = delete;
+
   //! \brief Assigns a `time_t` value, logging a warning if the result overflows
   //!     the destination buffer and will be truncated.
   //!
@@ -78,9 +81,6 @@
   static void AssignUTF8ToUTF16(char16_t* destination,
                                 size_t destination_size,
                                 const std::string& source);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(MinidumpWriterUtil);
 };
 
 }  // namespace internal
diff --git a/minidump/test/minidump_memory_writer_test_util.h b/minidump/test/minidump_memory_writer_test_util.h
index 90c3b86..83b3138 100644
--- a/minidump/test/minidump_memory_writer_test_util.h
+++ b/minidump/test/minidump_memory_writer_test_util.h
@@ -24,7 +24,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/test/test_memory_snapshot.h"
 #include "util/file/file_writer.h"
 
@@ -38,14 +37,16 @@
 class TestMinidumpMemoryWriter final : public SnapshotMinidumpMemoryWriter {
  public:
   TestMinidumpMemoryWriter(uint64_t base_address, size_t size, uint8_t value);
+
+  TestMinidumpMemoryWriter(const TestMinidumpMemoryWriter&) = delete;
+  TestMinidumpMemoryWriter& operator=(const TestMinidumpMemoryWriter&) = delete;
+
   ~TestMinidumpMemoryWriter();
 
   void SetShouldFailRead(bool should_fail);
 
  private:
   TestMemorySnapshot test_snapshot_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMinidumpMemoryWriter);
 };
 
 //! \brief Verifies, via Google Test assertions, that a
diff --git a/minidump/test/minidump_user_extension_stream_util.h b/minidump/test/minidump_user_extension_stream_util.h
index 3a31b94..2dc60f4 100644
--- a/minidump/test/minidump_user_extension_stream_util.h
+++ b/minidump/test/minidump_user_extension_stream_util.h
@@ -38,13 +38,16 @@
                                   const void* data,
                                   size_t data_size);
 
+  BufferExtensionStreamDataSource(const BufferExtensionStreamDataSource&) =
+      delete;
+  BufferExtensionStreamDataSource& operator=(
+      const BufferExtensionStreamDataSource&) = delete;
+
   size_t StreamDataSize() override;
   bool ReadStreamData(Delegate* delegate) override;
 
  private:
   std::vector<uint8_t> data_;
-
-  DISALLOW_COPY_AND_ASSIGN(BufferExtensionStreamDataSource);
 };
 
 }  // namespace test
diff --git a/minidump/test/minidump_writable_test_util.h b/minidump/test/minidump_writable_test_util.h
index 84c1073..9ebb9d0 100644
--- a/minidump/test/minidump_writable_test_util.h
+++ b/minidump/test/minidump_writable_test_util.h
@@ -22,7 +22,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "minidump/minidump_extensions.h"
 #include "minidump/minidump_writable.h"
@@ -277,6 +276,10 @@
   //! \brief Constructs the object to write a `uint32_t` with value \a value.
   explicit TestUInt32MinidumpWritable(uint32_t value);
 
+  TestUInt32MinidumpWritable(const TestUInt32MinidumpWritable&) = delete;
+  TestUInt32MinidumpWritable& operator=(const TestUInt32MinidumpWritable&) =
+      delete;
+
   ~TestUInt32MinidumpWritable() override;
 
  protected:
@@ -286,8 +289,6 @@
 
  private:
   uint32_t value_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestUInt32MinidumpWritable);
 };
 
 }  // namespace test
diff --git a/snapshot/capture_memory.h b/snapshot/capture_memory.h
index a134824..c4ca1f5 100644
--- a/snapshot/capture_memory.h
+++ b/snapshot/capture_memory.h
@@ -19,7 +19,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/cpu_context.h"
 #include "util/numeric/checked_range.h"
 
@@ -65,6 +64,10 @@
         const CheckedRange<uint64_t, uint64_t>& range) = 0;
   };
 
+  CaptureMemory() = delete;
+  CaptureMemory(const CaptureMemory&) = delete;
+  CaptureMemory& operator=(const CaptureMemory&) = delete;
+
   //! \brief For all registers that appear to be pointer-like in \a context,
   //!     captures a small amount of memory near their pointed to location.
   //!
@@ -88,9 +91,6 @@
   //!     process and adding new ranges.
   static void PointedToByMemoryRange(const MemorySnapshot& memory,
                                      Delegate* delegate);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(CaptureMemory);
 };
 
 }  // namespace internal
diff --git a/snapshot/crashpad_info_client_options_test.cc b/snapshot/crashpad_info_client_options_test.cc
index a0d22c1..f5baa5b 100644
--- a/snapshot/crashpad_info_client_options_test.cc
+++ b/snapshot/crashpad_info_client_options_test.cc
@@ -16,7 +16,6 @@
 
 #include "base/auto_reset.h"
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "client/crashpad_info.h"
@@ -63,6 +62,11 @@
       : crashpad_info_(crashpad_info) {
   }
 
+  ScopedUnsetCrashpadInfoOptions(const ScopedUnsetCrashpadInfoOptions&) =
+      delete;
+  ScopedUnsetCrashpadInfoOptions& operator=(
+      const ScopedUnsetCrashpadInfoOptions&) = delete;
+
   ~ScopedUnsetCrashpadInfoOptions() {
     crashpad_info_->set_crashpad_handler_behavior(TriState::kUnset);
     crashpad_info_->set_system_crash_reporter_forwarding(TriState::kUnset);
@@ -72,8 +76,6 @@
 
  private:
   CrashpadInfo* crashpad_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedUnsetCrashpadInfoOptions);
 };
 
 CrashpadInfoClientOptions SelfProcessSnapshotAndGetCrashpadOptions() {
diff --git a/snapshot/crashpad_types/crashpad_info_reader.h b/snapshot/crashpad_types/crashpad_info_reader.h
index 5f2352e..9494522 100644
--- a/snapshot/crashpad_types/crashpad_info_reader.h
+++ b/snapshot/crashpad_types/crashpad_info_reader.h
@@ -19,7 +19,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/misc/tri_state.h"
@@ -32,6 +31,10 @@
 class CrashpadInfoReader {
  public:
   CrashpadInfoReader();
+
+  CrashpadInfoReader(const CrashpadInfoReader&) = delete;
+  CrashpadInfoReader& operator=(const CrashpadInfoReader&) = delete;
+
   ~CrashpadInfoReader();
 
   //! \brief Initializes this object.
@@ -66,8 +69,6 @@
   std::unique_ptr<InfoContainer> container_;
   bool is_64_bit_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashpadInfoReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/crashpad_types/crashpad_info_reader_test.cc b/snapshot/crashpad_types/crashpad_info_reader_test.cc
index 556ead1..3a1806a 100644
--- a/snapshot/crashpad_types/crashpad_info_reader_test.cc
+++ b/snapshot/crashpad_types/crashpad_info_reader_test.cc
@@ -49,6 +49,9 @@
   explicit ScopedUnsetCrashpadInfo(CrashpadInfo* crashpad_info)
       : crashpad_info_(crashpad_info) {}
 
+  ScopedUnsetCrashpadInfo(const ScopedUnsetCrashpadInfo&) = delete;
+  ScopedUnsetCrashpadInfo& operator=(const ScopedUnsetCrashpadInfo&) = delete;
+
   ~ScopedUnsetCrashpadInfo() {
     crashpad_info_->set_crashpad_handler_behavior(TriState::kUnset);
     crashpad_info_->set_system_crash_reporter_forwarding(TriState::kUnset);
@@ -61,8 +64,6 @@
 
  private:
   CrashpadInfo* crashpad_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedUnsetCrashpadInfo);
 };
 
 class CrashpadInfoTestDataSetup {
@@ -80,6 +81,10 @@
         kGatherIndirectlyReferencedMemory, kIndirectlyReferencedMemoryCap);
   }
 
+  CrashpadInfoTestDataSetup(const CrashpadInfoTestDataSetup&) = delete;
+  CrashpadInfoTestDataSetup& operator=(const CrashpadInfoTestDataSetup&) =
+      delete;
+
   void GetAddresses(VMAddress* info_address,
                     VMAddress* extra_memory_address,
                     VMAddress* simple_annotations_address,
@@ -96,8 +101,6 @@
   SimpleAddressRangeBag extra_memory_;
   SimpleStringDictionary simple_annotations_;
   AnnotationList annotation_list_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashpadInfoTestDataSetup);
 };
 
 void ExpectCrashpadInfo(ProcessType process,
@@ -184,6 +187,9 @@
     SetChildTestMainFunction("ReadFromChildTestMain");
   }
 
+  ReadFromChildTest(const ReadFromChildTest&) = delete;
+  ReadFromChildTest& operator=(const ReadFromChildTest&) = delete;
+
   ~ReadFromChildTest() = default;
 
  private:
@@ -215,8 +221,6 @@
                        simple_annotations_address,
                        annotations_list_address);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ReadFromChildTest);
 };
 
 TEST(CrashpadInfoReader, ReadFromChild) {
diff --git a/snapshot/crashpad_types/image_annotation_reader.h b/snapshot/crashpad_types/image_annotation_reader.h
index e425bef..f7bb512 100644
--- a/snapshot/crashpad_types/image_annotation_reader.h
+++ b/snapshot/crashpad_types/image_annotation_reader.h
@@ -19,7 +19,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/annotation_snapshot.h"
 #include "util/misc/address_types.h"
 #include "util/process/process_memory_range.h"
@@ -37,6 +36,9 @@
   //! \param[in] memory A memory reader for the remote process.
   explicit ImageAnnotationReader(const ProcessMemoryRange* memory);
 
+  ImageAnnotationReader(const ImageAnnotationReader&) = delete;
+  ImageAnnotationReader& operator=(const ImageAnnotationReader&) = delete;
+
   ~ImageAnnotationReader();
 
   //! \brief Reads annotations that are organized as key-value pairs, where all
@@ -67,8 +69,6 @@
                           std::vector<AnnotationSnapshot>* annotations) const;
 
   const ProcessMemoryRange* memory_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(ImageAnnotationReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/crashpad_types/image_annotation_reader_test.cc b/snapshot/crashpad_types/image_annotation_reader_test.cc
index 9d9970e..b5289e7 100644
--- a/snapshot/crashpad_types/image_annotation_reader_test.cc
+++ b/snapshot/crashpad_types/image_annotation_reader_test.cc
@@ -163,6 +163,9 @@
     SetChildTestMainFunction("ReadAnnotationsFromChildTestMain");
   }
 
+  ReadFromChildTest(const ReadFromChildTest&) = delete;
+  ReadFromChildTest& operator=(const ReadFromChildTest&) = delete;
+
   ~ReadFromChildTest() = default;
 
  private:
@@ -182,8 +185,6 @@
     ExpectAnnotations(
         ChildProcess(), am_64_bit, simple_map_address, annotations_address);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ReadFromChildTest);
 };
 
 TEST(ImageAnnotationReader, ReadFromChild) {
diff --git a/snapshot/elf/elf_dynamic_array_reader.h b/snapshot/elf/elf_dynamic_array_reader.h
index e80a8cb..f5cddf6 100644
--- a/snapshot/elf/elf_dynamic_array_reader.h
+++ b/snapshot/elf/elf_dynamic_array_reader.h
@@ -20,7 +20,6 @@
 #include <map>
 
 #include "base/logging.h"
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/reinterpret_bytes.h"
 #include "util/process/process_memory_range.h"
@@ -31,6 +30,10 @@
 class ElfDynamicArrayReader {
  public:
   ElfDynamicArrayReader();
+
+  ElfDynamicArrayReader(const ElfDynamicArrayReader&) = delete;
+  ElfDynamicArrayReader& operator=(const ElfDynamicArrayReader&) = delete;
+
   ~ElfDynamicArrayReader();
 
   //! \brief Initializes the reader.
@@ -66,8 +69,6 @@
 
  private:
   std::map<uint64_t, uint64_t> values_;
-
-  DISALLOW_COPY_AND_ASSIGN(ElfDynamicArrayReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/elf/elf_image_reader.cc b/snapshot/elf/elf_image_reader.cc
index 1f361ac..5ea14c0 100644
--- a/snapshot/elf/elf_image_reader.cc
+++ b/snapshot/elf/elf_image_reader.cc
@@ -57,6 +57,12 @@
     : public ElfImageReader::ProgramHeaderTable {
  public:
   ProgramHeaderTableSpecific<PhdrType>() {}
+
+  ProgramHeaderTableSpecific<PhdrType>(
+      const ProgramHeaderTableSpecific<PhdrType>&) = delete;
+  ProgramHeaderTableSpecific<PhdrType>& operator=(
+      const ProgramHeaderTableSpecific<PhdrType>&) = delete;
+
   ~ProgramHeaderTableSpecific<PhdrType>() {}
 
   bool Initialize(const ProcessMemoryRange& memory,
@@ -183,8 +189,6 @@
  private:
   std::vector<PhdrType> table_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProgramHeaderTableSpecific<PhdrType>);
 };
 
 ElfImageReader::NoteReader::~NoteReader() = default;
diff --git a/snapshot/elf/elf_image_reader.h b/snapshot/elf/elf_image_reader.h
index ab1799f..1fd399f 100644
--- a/snapshot/elf/elf_image_reader.h
+++ b/snapshot/elf/elf_image_reader.h
@@ -22,7 +22,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/elf/elf_dynamic_array_reader.h"
 #include "snapshot/elf/elf_symbol_table_reader.h"
 #include "util/misc/address_types.h"
@@ -46,6 +45,9 @@
   //! ElfImageReader::Notes() or ElfImageReader::NotesWithNameAndType().
   class NoteReader {
    public:
+    NoteReader(const NoteReader&) = delete;
+    NoteReader& operator=(const NoteReader&) = delete;
+
     ~NoteReader();
 
     //! \brief The return value for NextNote().
@@ -111,11 +113,13 @@
     bool use_filter_;
     bool is_valid_;
     bool retry_;
-
-    DISALLOW_COPY_AND_ASSIGN(NoteReader);
   };
 
   ElfImageReader();
+
+  ElfImageReader(const ElfImageReader&) = delete;
+  ElfImageReader& operator=(const ElfImageReader&) = delete;
+
   ~ElfImageReader();
 
   //! \brief Initializes the reader.
@@ -285,8 +289,6 @@
   InitializationStateDcheck initialized_;
   InitializationState dynamic_array_initialized_;
   InitializationState symbol_table_initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ElfImageReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/elf/elf_symbol_table_reader.h b/snapshot/elf/elf_symbol_table_reader.h
index 1593037..89f99e9 100644
--- a/snapshot/elf/elf_symbol_table_reader.h
+++ b/snapshot/elf/elf_symbol_table_reader.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/process/process_memory_range.h"
 
@@ -63,6 +62,10 @@
                        ElfImageReader* elf_reader,
                        VMAddress address,
                        VMSize num_entries);
+
+  ElfSymbolTableReader(const ElfSymbolTableReader&) = delete;
+  ElfSymbolTableReader& operator=(const ElfSymbolTableReader&) = delete;
+
   ~ElfSymbolTableReader();
 
   //! \brief Lookup information about a symbol.
@@ -80,8 +83,6 @@
   ElfImageReader* const elf_reader_;  // weak
   const VMAddress base_address_;
   const VMSize num_entries_;
-
-  DISALLOW_COPY_AND_ASSIGN(ElfSymbolTableReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/elf/module_snapshot_elf.h b/snapshot/elf/module_snapshot_elf.h
index 67ecdf7..86741b3 100644
--- a/snapshot/elf/module_snapshot_elf.h
+++ b/snapshot/elf/module_snapshot_elf.h
@@ -22,7 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "client/crashpad_info.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/crashpad_types/crashpad_info_reader.h"
@@ -50,6 +49,10 @@
                     ModuleSnapshot::ModuleType type,
                     ProcessMemoryRange* process_memory_range,
                     const ProcessMemory* process_memory);
+
+  ModuleSnapshotElf(const ModuleSnapshotElf&) = delete;
+  ModuleSnapshotElf& operator=(const ModuleSnapshotElf&) = delete;
+
   ~ModuleSnapshotElf() override;
 
   //! \brief Initializes the object.
@@ -98,8 +101,6 @@
   InitializationStateDcheck initialized_;
   // Too const-y: https://crashpad.chromium.org/bug/9.
   mutable std::vector<std::unique_ptr<const UserMinidumpStream>> streams_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotElf);
 };
 
 }  // namespace internal
diff --git a/snapshot/fuchsia/exception_snapshot_fuchsia.h b/snapshot/fuchsia/exception_snapshot_fuchsia.h
index 3126944..1b0a4e2 100644
--- a/snapshot/fuchsia/exception_snapshot_fuchsia.h
+++ b/snapshot/fuchsia/exception_snapshot_fuchsia.h
@@ -35,6 +35,10 @@
 class ExceptionSnapshotFuchsia final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotFuchsia();
+
+  ExceptionSnapshotFuchsia(const ExceptionSnapshotFuchsia&) = delete;
+  ExceptionSnapshotFuchsia& operator=(const ExceptionSnapshotFuchsia&) = delete;
+
   ~ExceptionSnapshotFuchsia() override;
 
   //! \brief Initializes the object.
@@ -73,8 +77,6 @@
   uint32_t exception_;
   uint32_t exception_info_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotFuchsia);
 };
 
 }  // namespace internal
diff --git a/snapshot/fuchsia/memory_map_fuchsia.h b/snapshot/fuchsia/memory_map_fuchsia.h
index cdbdb17..1c2736a 100644
--- a/snapshot/fuchsia/memory_map_fuchsia.h
+++ b/snapshot/fuchsia/memory_map_fuchsia.h
@@ -28,6 +28,10 @@
 class MemoryMapFuchsia {
  public:
   MemoryMapFuchsia();
+
+  MemoryMapFuchsia(const MemoryMapFuchsia&) = delete;
+  MemoryMapFuchsia& operator=(const MemoryMapFuchsia&) = delete;
+
   ~MemoryMapFuchsia();
 
   //! \brief Initializes this object with information about the mapped memory
@@ -53,8 +57,6 @@
  private:
   std::vector<zx_info_maps_t> map_entries_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemoryMapFuchsia);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/fuchsia/process_reader_fuchsia.h b/snapshot/fuchsia/process_reader_fuchsia.h
index 91c6331..b57f0b9 100644
--- a/snapshot/fuchsia/process_reader_fuchsia.h
+++ b/snapshot/fuchsia/process_reader_fuchsia.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/elf/elf_image_reader.h"
 #include "snapshot/fuchsia/memory_map_fuchsia.h"
@@ -88,6 +87,10 @@
   };
 
   ProcessReaderFuchsia();
+
+  ProcessReaderFuchsia(const ProcessReaderFuchsia&) = delete;
+  ProcessReaderFuchsia& operator=(const ProcessReaderFuchsia&) = delete;
+
   ~ProcessReaderFuchsia();
 
   //! \brief Initializes this object. This method must be called before any
@@ -138,8 +141,6 @@
   bool initialized_threads_ = false;
   bool initialized_memory_map_ = false;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderFuchsia);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/fuchsia/process_reader_fuchsia_test.cc b/snapshot/fuchsia/process_reader_fuchsia_test.cc
index 4fcf6a4..f5a8aea 100644
--- a/snapshot/fuchsia/process_reader_fuchsia_test.cc
+++ b/snapshot/fuchsia/process_reader_fuchsia_test.cc
@@ -92,6 +92,10 @@
   BasicChildTest() : MultiprocessExec() {
     SetChildTestMainFunction("ProcessReaderBasicChildTestMain");
   }
+
+  BasicChildTest(const BasicChildTest&) = delete;
+  BasicChildTest& operator=(const BasicChildTest&) = delete;
+
   ~BasicChildTest() {}
 
  private:
@@ -106,8 +110,6 @@
     ASSERT_TRUE(process_reader.Memory()->ReadCString(addr, &read_string));
     EXPECT_EQ(read_string, kTestMemory);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(BasicChildTest);
 };
 
 TEST(ProcessReaderFuchsia, ChildBasic) {
@@ -156,6 +158,10 @@
   ThreadsChildTest() : MultiprocessExec() {
     SetChildTestMainFunction("ProcessReaderChildThreadsTestMain");
   }
+
+  ThreadsChildTest(const ThreadsChildTest&) = delete;
+  ThreadsChildTest& operator=(const ThreadsChildTest&) = delete;
+
   ~ThreadsChildTest() {}
 
  private:
@@ -178,8 +184,6 @@
       EXPECT_LE(threads[i].stack_regions[0].size(), i * 4096u);
     }
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadsChildTest);
 };
 
 // TODO(scottmg): US-553. ScopedTaskSuspend fails sometimes, with a 50ms
diff --git a/snapshot/fuchsia/process_snapshot_fuchsia.h b/snapshot/fuchsia/process_snapshot_fuchsia.h
index 6af2ebe..47efaa3 100644
--- a/snapshot/fuchsia/process_snapshot_fuchsia.h
+++ b/snapshot/fuchsia/process_snapshot_fuchsia.h
@@ -23,7 +23,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/elf/elf_image_reader.h"
 #include "snapshot/elf/module_snapshot_elf.h"
@@ -45,6 +44,10 @@
 class ProcessSnapshotFuchsia : public ProcessSnapshot {
  public:
   ProcessSnapshotFuchsia();
+
+  ProcessSnapshotFuchsia(const ProcessSnapshotFuchsia&) = delete;
+  ProcessSnapshotFuchsia& operator=(const ProcessSnapshotFuchsia&) = delete;
+
   ~ProcessSnapshotFuchsia() override;
 
   //! \brief Initializes the object.
@@ -145,8 +148,6 @@
   UUID client_id_;
   timeval snapshot_time_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotFuchsia);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/fuchsia/process_snapshot_fuchsia_test.cc b/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
index 0473011..496d97a 100644
--- a/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
+++ b/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
@@ -103,6 +103,10 @@
   AddressSpaceTest() : MultiprocessExec() {
     SetChildTestMainFunction("AddressSpaceChildTestMain");
   }
+
+  AddressSpaceTest(const AddressSpaceTest&) = delete;
+  AddressSpaceTest& operator=(const AddressSpaceTest&) = delete;
+
   ~AddressSpaceTest() {}
 
  private:
@@ -131,8 +135,6 @@
                  t.minidump_perm);
     }
   }
-
-  DISALLOW_COPY_AND_ASSIGN(AddressSpaceTest);
 };
 
 TEST(ProcessSnapshotFuchsiaTest, AddressSpaceMapping) {
@@ -171,6 +173,10 @@
     SetExpectedChildTermination(kTerminationNormal,
                                 ZX_TASK_RETCODE_SYSCALL_KILL);
   }
+
+  InvalidStackPointerTest(const InvalidStackPointerTest&) = delete;
+  InvalidStackPointerTest& operator=(const InvalidStackPointerTest&) = delete;
+
   ~InvalidStackPointerTest() {}
 
  private:
@@ -215,8 +221,6 @@
     // As we've corrupted the child, don't let it run again.
     ASSERT_EQ(ChildProcess()->kill(), ZX_OK);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(InvalidStackPointerTest);
 };
 
 // This is a test for a specific failure detailed in
diff --git a/snapshot/fuchsia/system_snapshot_fuchsia.h b/snapshot/fuchsia/system_snapshot_fuchsia.h
index c7cd35d..aadffac 100644
--- a/snapshot/fuchsia/system_snapshot_fuchsia.h
+++ b/snapshot/fuchsia/system_snapshot_fuchsia.h
@@ -17,7 +17,6 @@
 
 #include <sys/time.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/system_snapshot.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -33,6 +32,10 @@
 class SystemSnapshotFuchsia final : public SystemSnapshot {
  public:
   SystemSnapshotFuchsia();
+
+  SystemSnapshotFuchsia(const SystemSnapshotFuchsia&) = delete;
+  SystemSnapshotFuchsia& operator=(const SystemSnapshotFuchsia&) = delete;
+
   ~SystemSnapshotFuchsia() override;
 
   //! \brief Initializes the object.
@@ -77,8 +80,6 @@
   CpuidReader cpuid_;
 #endif  // ARCH_CPU_X86_FAMILY
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotFuchsia);
 };
 
 }  // namespace internal
diff --git a/snapshot/fuchsia/thread_snapshot_fuchsia.h b/snapshot/fuchsia/thread_snapshot_fuchsia.h
index 45d4f11..b91a514 100644
--- a/snapshot/fuchsia/thread_snapshot_fuchsia.h
+++ b/snapshot/fuchsia/thread_snapshot_fuchsia.h
@@ -18,7 +18,6 @@
 #include <stdint.h>
 #include <zircon/types.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/fuchsia/process_reader_fuchsia.h"
@@ -34,6 +33,10 @@
 class ThreadSnapshotFuchsia final : public ThreadSnapshot {
  public:
   ThreadSnapshotFuchsia();
+
+  ThreadSnapshotFuchsia(const ThreadSnapshotFuchsia&) = delete;
+  ThreadSnapshotFuchsia& operator=(const ThreadSnapshotFuchsia&) = delete;
+
   ~ThreadSnapshotFuchsia() override;
 
   //! \brief Initializes the object.
@@ -71,8 +74,6 @@
   zx_koid_t thread_id_;
   zx_vaddr_t thread_specific_data_address_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotFuchsia);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/exception_snapshot_ios_intermediate_dump.h b/snapshot/ios/exception_snapshot_ios_intermediate_dump.h
index 88d5ea6..7e22330 100644
--- a/snapshot/ios/exception_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/exception_snapshot_ios_intermediate_dump.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/exception_snapshot.h"
@@ -37,6 +36,12 @@
 class ExceptionSnapshotIOSIntermediateDump final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotIOSIntermediateDump();
+
+  ExceptionSnapshotIOSIntermediateDump(
+      const ExceptionSnapshotIOSIntermediateDump&) = delete;
+  ExceptionSnapshotIOSIntermediateDump& operator=(
+      const ExceptionSnapshotIOSIntermediateDump&) = delete;
+
   ~ExceptionSnapshotIOSIntermediateDump() override;
 
   //! \brief Initialize the snapshot as a signal exception.
@@ -102,8 +107,6 @@
   uint32_t exception_;
   uint32_t exception_info_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/memory_snapshot_ios_intermediate_dump.h b/snapshot/ios/memory_snapshot_ios_intermediate_dump.h
index 895cbd0..a932000 100644
--- a/snapshot/ios/memory_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/memory_snapshot_ios_intermediate_dump.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_SNAPSHOT_IOS_INTERMEDIATE_DUMP_MEMORY_SNAPSHOT_IOS_INTERMEDIATEDUMP_H_
 #define CRASHPAD_SNAPSHOT_IOS_INTERMEDIATE_DUMP_MEMORY_SNAPSHOT_IOS_INTERMEDIATEDUMP_H_
 
-#include "base/macros.h"
 #include "snapshot/memory_snapshot.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -27,6 +26,12 @@
 class MemorySnapshotIOSIntermediateDump final : public MemorySnapshot {
  public:
   MemorySnapshotIOSIntermediateDump() = default;
+
+  MemorySnapshotIOSIntermediateDump(const MemorySnapshotIOSIntermediateDump&) =
+      delete;
+  MemorySnapshotIOSIntermediateDump& operator=(
+      const MemorySnapshotIOSIntermediateDump&) = delete;
+
   ~MemorySnapshotIOSIntermediateDump() = default;
 
   //! \brief Initializes the object.
@@ -52,8 +57,6 @@
   vm_address_t data_;
   vm_size_t size_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemorySnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/module_snapshot_ios_intermediate_dump.h b/snapshot/ios/module_snapshot_ios_intermediate_dump.h
index cd85c44..55b7ace 100644
--- a/snapshot/ios/module_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/module_snapshot_ios_intermediate_dump.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/module_snapshot.h"
 #include "util/ios/ios_intermediate_dump_map.h"
@@ -37,6 +36,12 @@
 class ModuleSnapshotIOSIntermediateDump final : public ModuleSnapshot {
  public:
   ModuleSnapshotIOSIntermediateDump();
+
+  ModuleSnapshotIOSIntermediateDump(const ModuleSnapshotIOSIntermediateDump&) =
+      delete;
+  ModuleSnapshotIOSIntermediateDump& operator=(
+      const ModuleSnapshotIOSIntermediateDump&) = delete;
+
   ~ModuleSnapshotIOSIntermediateDump() override;
 
   //! \brief Initialize the snapshot
@@ -84,8 +89,6 @@
   std::vector<AnnotationSnapshot> annotation_objects_;
 
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/process_snapshot_ios_intermediate_dump.h b/snapshot/ios/process_snapshot_ios_intermediate_dump.h
index 70a4d7d..61312f0 100644
--- a/snapshot/ios/process_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/process_snapshot_ios_intermediate_dump.h
@@ -39,6 +39,11 @@
  public:
   ProcessSnapshotIOSIntermediateDump() = default;
 
+  ProcessSnapshotIOSIntermediateDump(
+      const ProcessSnapshotIOSIntermediateDump&) = delete;
+  ProcessSnapshotIOSIntermediateDump& operator=(
+      const ProcessSnapshotIOSIntermediateDump&) = delete;
+
   //! \brief Initializes the object.
   //!
   //! \param[in] dump_path A class containing various system data points.
@@ -103,8 +108,6 @@
   std::map<std::string, std::string> annotations_simple_map_;
   timeval snapshot_time_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/system_snapshot_ios_intermediate_dump.h b/snapshot/ios/system_snapshot_ios_intermediate_dump.h
index 72eaa64..9708e7f 100644
--- a/snapshot/ios/system_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/system_snapshot_ios_intermediate_dump.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/system_snapshot.h"
 #include "util/ios/ios_intermediate_dump_map.h"
 #include "util/ios/ios_system_data_collector.h"
@@ -33,6 +32,12 @@
 class SystemSnapshotIOSIntermediateDump final : public SystemSnapshot {
  public:
   SystemSnapshotIOSIntermediateDump();
+
+  SystemSnapshotIOSIntermediateDump(const SystemSnapshotIOSIntermediateDump&) =
+      delete;
+  SystemSnapshotIOSIntermediateDump& operator=(
+      const SystemSnapshotIOSIntermediateDump&) = delete;
+
   ~SystemSnapshotIOSIntermediateDump() override;
 
   //! \brief Initializes the object.
@@ -87,8 +92,6 @@
   std::string standard_name_;
   std::string daylight_name_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/ios/thread_snapshot_ios_intermediate_dump.h b/snapshot/ios/thread_snapshot_ios_intermediate_dump.h
index d986c49..cf9ccec 100644
--- a/snapshot/ios/thread_snapshot_ios_intermediate_dump.h
+++ b/snapshot/ios/thread_snapshot_ios_intermediate_dump.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_SNAPSHOT_IOS_INTERMEDIATE_DUMP_THREAD_SNAPSHOT_IOS_INTERMEDIATEDUMP_H_
 #define CRASHPAD_SNAPSHOT_IOS_INTERMEDIATE_DUMP_THREAD_SNAPSHOT_IOS_INTERMEDIATEDUMP_H_
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/ios/memory_snapshot_ios_intermediate_dump.h"
@@ -30,6 +29,12 @@
 class ThreadSnapshotIOSIntermediateDump final : public ThreadSnapshot {
  public:
   ThreadSnapshotIOSIntermediateDump();
+
+  ThreadSnapshotIOSIntermediateDump(const ThreadSnapshotIOSIntermediateDump&) =
+      delete;
+  ThreadSnapshotIOSIntermediateDump& operator=(
+      const ThreadSnapshotIOSIntermediateDump&) = delete;
+
   ~ThreadSnapshotIOSIntermediateDump() override;
 
   //! \brief Initializes the object.
@@ -67,8 +72,6 @@
   std::vector<std::unique_ptr<internal::MemorySnapshotIOSIntermediateDump>>
       extra_memory_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotIOSIntermediateDump);
 };
 
 }  // namespace internal
diff --git a/snapshot/linux/debug_rendezvous.h b/snapshot/linux/debug_rendezvous.h
index 90106c9..f920517 100644
--- a/snapshot/linux/debug_rendezvous.h
+++ b/snapshot/linux/debug_rendezvous.h
@@ -18,7 +18,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/linux/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory_range.h"
@@ -48,6 +47,10 @@
   };
 
   DebugRendezvous();
+
+  DebugRendezvous(const DebugRendezvous&) = delete;
+  DebugRendezvous& operator=(const DebugRendezvous&) = delete;
+
   ~DebugRendezvous();
 
   //! \brief Initializes this object by reading an `r_debug` struct from a
@@ -79,8 +82,6 @@
   std::vector<LinkEntry> modules_;
   LinkEntry executable_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(DebugRendezvous);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/linux/debug_rendezvous_test.cc b/snapshot/linux/debug_rendezvous_test.cc
index 41956aa..c77e862 100644
--- a/snapshot/linux/debug_rendezvous_test.cc
+++ b/snapshot/linux/debug_rendezvous_test.cc
@@ -239,6 +239,10 @@
 class ChildTest : public Multiprocess {
  public:
   ChildTest() {}
+
+  ChildTest(const ChildTest&) = delete;
+  ChildTest& operator=(const ChildTest&) = delete;
+
   ~ChildTest() {}
 
  private:
@@ -250,8 +254,6 @@
   }
 
   void MultiprocessChild() { CheckedReadFileAtEOF(ReadPipeHandle()); }
-
-  DISALLOW_COPY_AND_ASSIGN(ChildTest);
 };
 
 TEST(DebugRendezvous, Child) {
diff --git a/snapshot/linux/exception_snapshot_linux.h b/snapshot/linux/exception_snapshot_linux.h
index ea0cd21..c722ac7 100644
--- a/snapshot/linux/exception_snapshot_linux.h
+++ b/snapshot/linux/exception_snapshot_linux.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/exception_snapshot.h"
@@ -37,6 +36,10 @@
 class ExceptionSnapshotLinux final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotLinux();
+
+  ExceptionSnapshotLinux(const ExceptionSnapshotLinux&) = delete;
+  ExceptionSnapshotLinux& operator=(const ExceptionSnapshotLinux&) = delete;
+
   ~ExceptionSnapshotLinux() override;
 
   //! \brief Initializes the object.
@@ -93,8 +96,6 @@
   uint32_t signal_number_;
   uint32_t signal_code_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotLinux);
 };
 
 }  // namespace internal
diff --git a/snapshot/linux/exception_snapshot_linux_test.cc b/snapshot/linux/exception_snapshot_linux_test.cc
index 1f72fe8..51d3fd3 100644
--- a/snapshot/linux/exception_snapshot_linux_test.cc
+++ b/snapshot/linux/exception_snapshot_linux_test.cc
@@ -23,7 +23,6 @@
 
 #include "base/bit_cast.h"
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "gtest/gtest.h"
 #include "snapshot/cpu_architecture.h"
@@ -333,6 +332,9 @@
  public:
   ScopedSigactionRestore() : old_action_(), signo_(-1), valid_(false) {}
 
+  ScopedSigactionRestore(const ScopedSigactionRestore&) = delete;
+  ScopedSigactionRestore& operator=(const ScopedSigactionRestore&) = delete;
+
   ~ScopedSigactionRestore() { Reset(); }
 
   bool Reset() {
@@ -361,12 +363,14 @@
   struct sigaction old_action_;
   int signo_;
   bool valid_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSigactionRestore);
 };
 
 class RaiseTest {
  public:
+  RaiseTest() = delete;
+  RaiseTest(const RaiseTest&) = delete;
+  RaiseTest& operator=(const RaiseTest&) = delete;
+
   static void Run() {
     test_complete_ = false;
 
@@ -406,8 +410,6 @@
 
   static constexpr uint32_t kSigno = SIGUSR1;
   static bool test_complete_;
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(RaiseTest);
 };
 bool RaiseTest::test_complete_ = false;
 
@@ -418,6 +420,10 @@
 class TimerTest {
  public:
   TimerTest() : event_(), timer_(-1), test_complete_(false) { test_ = this; }
+
+  TimerTest(const TimerTest&) = delete;
+  TimerTest& operator=(const TimerTest&) = delete;
+
   ~TimerTest() { test_ = nullptr; }
 
   void Run() {
@@ -479,8 +485,6 @@
 
   static constexpr uint32_t kSigno = SIGALRM;
   static TimerTest* test_;
-
-  DISALLOW_COPY_AND_ASSIGN(TimerTest);
 };
 TimerTest* TimerTest::test_;
 
diff --git a/snapshot/linux/process_reader_linux.h b/snapshot/linux/process_reader_linux.h
index 258e102..0eb1d40 100644
--- a/snapshot/linux/process_reader_linux.h
+++ b/snapshot/linux/process_reader_linux.h
@@ -22,7 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/elf/elf_image_reader.h"
 #include "snapshot/module_snapshot.h"
 #include "util/linux/address_types.h"
@@ -99,6 +98,10 @@
   };
 
   ProcessReaderLinux();
+
+  ProcessReaderLinux(const ProcessReaderLinux&) = delete;
+  ProcessReaderLinux& operator=(const ProcessReaderLinux&) = delete;
+
   ~ProcessReaderLinux();
 
   //! \brief Initializes this object.
@@ -175,8 +178,6 @@
   bool initialized_threads_;
   bool initialized_modules_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderLinux);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/linux/process_reader_linux_test.cc b/snapshot/linux/process_reader_linux_test.cc
index 5a0d137..250f12d 100644
--- a/snapshot/linux/process_reader_linux_test.cc
+++ b/snapshot/linux/process_reader_linux_test.cc
@@ -103,6 +103,10 @@
 class BasicChildTest : public Multiprocess {
  public:
   BasicChildTest() : Multiprocess() {}
+
+  BasicChildTest(const BasicChildTest&) = delete;
+  BasicChildTest& operator=(const BasicChildTest&) = delete;
+
   ~BasicChildTest() {}
 
  private:
@@ -129,8 +133,6 @@
   }
 
   void MultiprocessChild() override { CheckedReadFileAtEOF(ReadPipeHandle()); }
-
-  DISALLOW_COPY_AND_ASSIGN(BasicChildTest);
 };
 
 TEST(ProcessReaderLinux, ChildBasic) {
@@ -151,6 +153,9 @@
 
   TestThreadPool() : threads_() {}
 
+  TestThreadPool(const TestThreadPool&) = delete;
+  TestThreadPool& operator=(const TestThreadPool&) = delete;
+
   ~TestThreadPool() {
     for (const auto& thread : threads_) {
       thread->exit_semaphore.Signal();
@@ -252,8 +257,6 @@
   }
 
   std::vector<std::unique_ptr<Thread>> threads_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestThreadPool);
 };
 
 using ThreadMap = std::map<pid_t, TestThreadPool::ThreadExpectation>;
@@ -307,6 +310,10 @@
  public:
   ChildThreadTest(size_t stack_size = 0)
       : Multiprocess(), stack_size_(stack_size) {}
+
+  ChildThreadTest(const ChildThreadTest&) = delete;
+  ChildThreadTest& operator=(const ChildThreadTest&) = delete;
+
   ~ChildThreadTest() {}
 
  private:
@@ -375,8 +382,6 @@
 
   static constexpr size_t kThreadCount = 3;
   const size_t stack_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildThreadTest);
 };
 
 TEST(ProcessReaderLinux, ChildWithThreads) {
@@ -393,6 +398,10 @@
 class ChildWithSplitStackTest : public Multiprocess {
  public:
   ChildWithSplitStackTest() : Multiprocess(), page_size_(getpagesize()) {}
+
+  ChildWithSplitStackTest(const ChildWithSplitStackTest&) = delete;
+  ChildWithSplitStackTest& operator=(const ChildWithSplitStackTest&) = delete;
+
   ~ChildWithSplitStackTest() {}
 
  private:
@@ -465,8 +474,6 @@
   }
 
   const size_t page_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildWithSplitStackTest);
 };
 
 // AddressSanitizer with use-after-return detection causes stack variables to
@@ -587,6 +594,10 @@
 class ChildModuleTest : public Multiprocess {
  public:
   ChildModuleTest() : Multiprocess(), module_soname_("test_module_soname") {}
+
+  ChildModuleTest(const ChildModuleTest&) = delete;
+  ChildModuleTest& operator=(const ChildModuleTest&) = delete;
+
   ~ChildModuleTest() = default;
 
  private:
@@ -620,8 +631,6 @@
   }
 
   const std::string module_soname_;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildModuleTest);
 };
 
 TEST(ProcessReaderLinux, ChildModules) {
diff --git a/snapshot/linux/process_snapshot_linux.h b/snapshot/linux/process_snapshot_linux.h
index 06b72af..62517bb 100644
--- a/snapshot/linux/process_snapshot_linux.h
+++ b/snapshot/linux/process_snapshot_linux.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/elf/module_snapshot_elf.h"
 #include "snapshot/linux/exception_snapshot_linux.h"
@@ -49,6 +48,10 @@
 class ProcessSnapshotLinux final : public ProcessSnapshot {
  public:
   ProcessSnapshotLinux();
+
+  ProcessSnapshotLinux(const ProcessSnapshotLinux&) = delete;
+  ProcessSnapshotLinux& operator=(const ProcessSnapshotLinux&) = delete;
+
   ~ProcessSnapshotLinux() override;
 
   //! \brief Initializes the object.
@@ -147,8 +150,6 @@
   ProcessReaderLinux process_reader_;
   ProcessMemoryRange memory_range_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotLinux);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/linux/system_snapshot_linux.h b/snapshot/linux/system_snapshot_linux.h
index d22c49a..e13c9df 100644
--- a/snapshot/linux/system_snapshot_linux.h
+++ b/snapshot/linux/system_snapshot_linux.h
@@ -20,7 +20,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/linux/process_reader_linux.h"
 #include "snapshot/system_snapshot.h"
@@ -37,6 +36,10 @@
 class SystemSnapshotLinux final : public SystemSnapshot {
  public:
   SystemSnapshotLinux();
+
+  SystemSnapshotLinux(const SystemSnapshotLinux&) = delete;
+  SystemSnapshotLinux& operator=(const SystemSnapshotLinux&) = delete;
+
   ~SystemSnapshotLinux() override;
 
   //! \brief Initializes the object.
@@ -103,8 +106,6 @@
   uint32_t target_cpu_;
   uint8_t cpu_count_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotLinux);
 };
 
 }  // namespace internal
diff --git a/snapshot/linux/thread_snapshot_linux.h b/snapshot/linux/thread_snapshot_linux.h
index 44cc6f6..17a6668 100644
--- a/snapshot/linux/thread_snapshot_linux.h
+++ b/snapshot/linux/thread_snapshot_linux.h
@@ -17,7 +17,6 @@
 
 #include <stdint.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/linux/process_reader_linux.h"
@@ -33,6 +32,10 @@
 class ThreadSnapshotLinux final : public ThreadSnapshot {
  public:
   ThreadSnapshotLinux();
+
+  ThreadSnapshotLinux(const ThreadSnapshotLinux&) = delete;
+  ThreadSnapshotLinux& operator=(const ThreadSnapshotLinux&) = delete;
+
   ~ThreadSnapshotLinux() override;
 
   //! \brief Initializes the object.
@@ -78,8 +81,6 @@
   pid_t thread_id_;
   int priority_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotLinux);
 };
 
 }  // namespace internal
diff --git a/snapshot/mac/exception_snapshot_mac.h b/snapshot/mac/exception_snapshot_mac.h
index 7c0b87c..ea7150a 100644
--- a/snapshot/mac/exception_snapshot_mac.h
+++ b/snapshot/mac/exception_snapshot_mac.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/exception_snapshot.h"
@@ -38,6 +37,10 @@
 class ExceptionSnapshotMac final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotMac();
+
+  ExceptionSnapshotMac(const ExceptionSnapshotMac&) = delete;
+  ExceptionSnapshotMac& operator=(const ExceptionSnapshotMac&) = delete;
+
   ~ExceptionSnapshotMac() override;
 
   //! \brief Initializes the object.
@@ -96,8 +99,6 @@
   exception_type_t exception_;
   uint32_t exception_code_0_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotMac);
 };
 
 }  // namespace internal
diff --git a/snapshot/mac/mach_o_image_annotations_reader.h b/snapshot/mac/mach_o_image_annotations_reader.h
index a56b073..7a1a0a1 100644
--- a/snapshot/mac/mach_o_image_annotations_reader.h
+++ b/snapshot/mac/mach_o_image_annotations_reader.h
@@ -19,7 +19,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/annotation_snapshot.h"
 #include "snapshot/mac/process_types.h"
 
@@ -58,6 +57,10 @@
                               const MachOImageReader* image_reader,
                               const std::string& name);
 
+  MachOImageAnnotationsReader(const MachOImageAnnotationsReader&) = delete;
+  MachOImageAnnotationsReader& operator=(const MachOImageAnnotationsReader&) =
+      delete;
+
   ~MachOImageAnnotationsReader() {}
 
   //! \brief Returns the module’s annotations that are organized as a vector of
@@ -93,8 +96,6 @@
   std::string name_;
   ProcessReaderMac* process_reader_;  // weak
   const MachOImageReader* image_reader_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(MachOImageAnnotationsReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/mach_o_image_annotations_reader_test.cc b/snapshot/mac/mach_o_image_annotations_reader_test.cc
index cddc399..74a21be 100644
--- a/snapshot/mac/mach_o_image_annotations_reader_test.cc
+++ b/snapshot/mac/mach_o_image_annotations_reader_test.cc
@@ -27,7 +27,6 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "client/annotation.h"
 #include "client/annotation_list.h"
 #include "client/crashpad_info.h"
@@ -128,6 +127,11 @@
     }
   }
 
+  TestMachOImageAnnotationsReader(const TestMachOImageAnnotationsReader&) =
+      delete;
+  TestMachOImageAnnotationsReader& operator=(
+      const TestMachOImageAnnotationsReader&) = delete;
+
   ~TestMachOImageAnnotationsReader() {}
 
   // UniversalMachExcServer::Interface:
@@ -442,8 +446,6 @@
   }
 
   TestType test_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMachOImageAnnotationsReader);
 };
 
 TEST(MachOImageAnnotationsReader, DontCrash) {
diff --git a/snapshot/mac/mach_o_image_reader.h b/snapshot/mac/mach_o_image_reader.h
index aded956..0c60bca 100644
--- a/snapshot/mac/mach_o_image_reader.h
+++ b/snapshot/mac/mach_o_image_reader.h
@@ -24,7 +24,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/mac/process_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/misc/uuid.h"
@@ -45,6 +44,10 @@
 class MachOImageReader {
  public:
   MachOImageReader();
+
+  MachOImageReader(const MachOImageReader&) = delete;
+  MachOImageReader& operator=(const MachOImageReader&) = delete;
+
   ~MachOImageReader();
 
   //! \brief Reads the Mach-O image file’s load commands from another process.
@@ -347,8 +350,6 @@
   // set. symbol_table_initialized_ will be valid without symbol_table_ being
   // set in modules that have no symbol table.
   mutable InitializationState symbol_table_initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachOImageReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/mach_o_image_segment_reader.h b/snapshot/mac/mach_o_image_segment_reader.h
index 708cc37..d639a5d 100644
--- a/snapshot/mac/mach_o_image_segment_reader.h
+++ b/snapshot/mac/mach_o_image_segment_reader.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/mac/process_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 
@@ -78,6 +77,10 @@
 class MachOImageSegmentReader {
  public:
   MachOImageSegmentReader();
+
+  MachOImageSegmentReader(const MachOImageSegmentReader&) = delete;
+  MachOImageSegmentReader& operator=(const MachOImageSegmentReader&) = delete;
+
   ~MachOImageSegmentReader();
 
   //! \brief Reads the segment load command from another process.
@@ -291,8 +294,6 @@
 
   InitializationStateDcheck initialized_;
   InitializationStateDcheck initialized_slide_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachOImageSegmentReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/mach_o_image_symbol_table_reader.cc b/snapshot/mac/mach_o_image_symbol_table_reader.cc
index bf72ac9..ef5a598 100644
--- a/snapshot/mac/mach_o_image_symbol_table_reader.cc
+++ b/snapshot/mac/mach_o_image_symbol_table_reader.cc
@@ -53,6 +53,11 @@
     DCHECK(linkedit_range_.IsValid());
   }
 
+  MachOImageSymbolTableReaderInitializer(
+      const MachOImageSymbolTableReaderInitializer&) = delete;
+  MachOImageSymbolTableReaderInitializer& operator=(
+      const MachOImageSymbolTableReaderInitializer&) = delete;
+
   ~MachOImageSymbolTableReaderInitializer() {}
 
   //! \brief Reads the symbol table from another process.
@@ -246,8 +251,6 @@
   CheckedMachAddressRange linkedit_range_;
   ProcessReaderMac* process_reader_;  // weak
   const MachOImageSegmentReader* linkedit_segment_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(MachOImageSymbolTableReaderInitializer);
 };
 
 }  // namespace internal
diff --git a/snapshot/mac/mach_o_image_symbol_table_reader.h b/snapshot/mac/mach_o_image_symbol_table_reader.h
index b1bcc3a..2af4853 100644
--- a/snapshot/mac/mach_o_image_symbol_table_reader.h
+++ b/snapshot/mac/mach_o_image_symbol_table_reader.h
@@ -21,7 +21,6 @@
 #include <mach/mach.h>
 #include <stdint.h>
 
-#include "base/macros.h"
 #include "snapshot/mac/mach_o_image_segment_reader.h"
 #include "snapshot/mac/process_reader_mac.h"
 #include "snapshot/mac/process_types.h"
@@ -66,6 +65,11 @@
   using SymbolInformationMap = std::map<std::string, SymbolInformation>;
 
   MachOImageSymbolTableReader();
+
+  MachOImageSymbolTableReader(const MachOImageSymbolTableReader&) = delete;
+  MachOImageSymbolTableReader& operator=(const MachOImageSymbolTableReader&) =
+      delete;
+
   ~MachOImageSymbolTableReader();
 
   //! \brief Reads the symbol table from another process.
@@ -123,8 +127,6 @@
  private:
   SymbolInformationMap external_defined_symbols_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachOImageSymbolTableReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/module_snapshot_mac.h b/snapshot/mac/module_snapshot_mac.h
index d78c326..ce1e19d 100644
--- a/snapshot/mac/module_snapshot_mac.h
+++ b/snapshot/mac/module_snapshot_mac.h
@@ -22,7 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "client/crashpad_info.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/mac/process_reader_mac.h"
@@ -41,6 +40,10 @@
 class ModuleSnapshotMac final : public ModuleSnapshot {
  public:
   ModuleSnapshotMac();
+
+  ModuleSnapshotMac(const ModuleSnapshotMac&) = delete;
+  ModuleSnapshotMac& operator=(const ModuleSnapshotMac&) = delete;
+
   ~ModuleSnapshotMac() override;
 
   //! \brief Initializes the object.
@@ -90,8 +93,6 @@
   const MachOImageReader* mach_o_image_reader_;  // weak
   ProcessReaderMac* process_reader_;  // weak
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotMac);
 };
 
 }  // namespace internal
diff --git a/snapshot/mac/process_reader_mac.h b/snapshot/mac/process_reader_mac.h
index 2f8ea9d..85cfe7c 100644
--- a/snapshot/mac/process_reader_mac.h
+++ b/snapshot/mac/process_reader_mac.h
@@ -26,7 +26,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/posix/process_info.h"
@@ -111,6 +110,10 @@
   };
 
   ProcessReaderMac();
+
+  ProcessReaderMac(const ProcessReaderMac&) = delete;
+  ProcessReaderMac& operator=(const ProcessReaderMac&) = delete;
+
   ~ProcessReaderMac();
 
   //! \brief Initializes this object. This method must be called before any
@@ -262,8 +265,6 @@
 
   bool initialized_threads_;
   bool initialized_modules_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderMac);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/process_reader_mac_test.cc b/snapshot/mac/process_reader_mac_test.cc
index c2c504c..2f37758 100644
--- a/snapshot/mac/process_reader_mac_test.cc
+++ b/snapshot/mac/process_reader_mac_test.cc
@@ -82,6 +82,9 @@
  public:
   ProcessReaderChild() : MachMultiprocess() {}
 
+  ProcessReaderChild(const ProcessReaderChild&) = delete;
+  ProcessReaderChild& operator=(const ProcessReaderChild&) = delete;
+
   ~ProcessReaderChild() {}
 
  private:
@@ -118,8 +121,6 @@
     // the pipe.
     CheckedReadFileAtEOF(ReadPipeHandle());
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderChild);
 };
 
 TEST(ProcessReaderMac, ChildBasic) {
@@ -166,6 +167,9 @@
 
   TestThreadPool() : thread_infos_() {}
 
+  TestThreadPool(const TestThreadPool&) = delete;
+  TestThreadPool& operator=(const TestThreadPool&) = delete;
+
   // Resumes suspended threads, signals each thread’s exit semaphore asking it
   // to exit, and joins each thread, blocking until they have all exited.
   ~TestThreadPool() {
@@ -289,8 +293,6 @@
   // This is a vector of pointers because the address of a ThreadInfo object is
   // passed to each thread’s ThreadMain(), so they cannot move around in memory.
   std::vector<std::unique_ptr<ThreadInfo>> thread_infos_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestThreadPool);
 };
 
 using ThreadMap = std::map<uint64_t, TestThreadPool::ThreadExpectation>;
@@ -432,6 +434,10 @@
   explicit ProcessReaderThreadedChild(size_t thread_count)
       : MachMultiprocess(), thread_count_(thread_count) {}
 
+  ProcessReaderThreadedChild(const ProcessReaderThreadedChild&) = delete;
+  ProcessReaderThreadedChild& operator=(const ProcessReaderThreadedChild&) =
+      delete;
+
   ~ProcessReaderThreadedChild() {}
 
  private:
@@ -516,8 +522,6 @@
   }
 
   size_t thread_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderThreadedChild);
 };
 
 TEST(ProcessReaderMac, ChildOneThread) {
@@ -622,6 +626,9 @@
         kernel_(nullptr),
         success_(false) {}
 
+  ScopedOpenCLNoOpKernel(const ScopedOpenCLNoOpKernel&) = delete;
+  ScopedOpenCLNoOpKernel& operator=(const ScopedOpenCLNoOpKernel&) = delete;
+
   ~ScopedOpenCLNoOpKernel() {
     if (kernel_) {
       cl_int rv = clReleaseKernel(kernel_);
@@ -720,8 +727,6 @@
   cl_program program_;
   cl_kernel kernel_;
   bool success_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedOpenCLNoOpKernel);
 };
 
 // Although Mac OS X 10.6 has OpenCL and can compile and execute OpenCL code,
@@ -809,6 +814,10 @@
       : MachMultiprocess(),
         ensure_cl_kernels_success_(ensure_cl_kernels_success) {}
 
+  ProcessReaderModulesChild(const ProcessReaderModulesChild&) = delete;
+  ProcessReaderModulesChild& operator=(const ProcessReaderModulesChild&) =
+      delete;
+
   ~ProcessReaderModulesChild() {}
 
  private:
@@ -925,8 +934,6 @@
   }
 
   bool ensure_cl_kernels_success_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderModulesChild);
 };
 
 TEST(ProcessReaderMac, ChildModules) {
diff --git a/snapshot/mac/process_snapshot_mac.h b/snapshot/mac/process_snapshot_mac.h
index 2edc222..5923910 100644
--- a/snapshot/mac/process_snapshot_mac.h
+++ b/snapshot/mac/process_snapshot_mac.h
@@ -24,7 +24,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "client/crashpad_info.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/exception_snapshot.h"
@@ -50,6 +49,10 @@
 class ProcessSnapshotMac final : public ProcessSnapshot {
  public:
   ProcessSnapshotMac();
+
+  ProcessSnapshotMac(const ProcessSnapshotMac&) = delete;
+  ProcessSnapshotMac& operator=(const ProcessSnapshotMac&) = delete;
+
   ~ProcessSnapshotMac() override;
 
   //! \brief Initializes the object.
@@ -150,8 +153,6 @@
   std::map<std::string, std::string> annotations_simple_map_;
   timeval snapshot_time_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotMac);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/mac/system_snapshot_mac.h b/snapshot/mac/system_snapshot_mac.h
index 62b2ae6..cca6be2 100644
--- a/snapshot/mac/system_snapshot_mac.h
+++ b/snapshot/mac/system_snapshot_mac.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/system_snapshot.h"
 #include "util/misc/initialization_state_dcheck.h"
 
@@ -33,6 +32,10 @@
 class SystemSnapshotMac final : public SystemSnapshot {
  public:
   SystemSnapshotMac();
+
+  SystemSnapshotMac(const SystemSnapshotMac&) = delete;
+  SystemSnapshotMac& operator=(const SystemSnapshotMac&) = delete;
+
   ~SystemSnapshotMac() override;
 
   //! \brief Initializes the object.
@@ -91,8 +94,6 @@
   int os_version_bugfix_;
   bool os_server_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotMac);
 };
 
 }  // namespace internal
diff --git a/snapshot/mac/system_snapshot_mac_test.cc b/snapshot/mac/system_snapshot_mac_test.cc
index 0cf1a7c..6bf32b1 100644
--- a/snapshot/mac/system_snapshot_mac_test.cc
+++ b/snapshot/mac/system_snapshot_mac_test.cc
@@ -43,6 +43,9 @@
         system_snapshot_() {
   }
 
+  SystemSnapshotMacTest(const SystemSnapshotMacTest&) = delete;
+  SystemSnapshotMacTest& operator=(const SystemSnapshotMacTest&) = delete;
+
   const internal::SystemSnapshotMac& system_snapshot() const {
     return system_snapshot_;
   }
@@ -59,8 +62,6 @@
   ProcessReaderMac process_reader_;
   timeval snapshot_time_;
   internal::SystemSnapshotMac system_snapshot_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotMacTest);
 };
 
 TEST_F(SystemSnapshotMacTest, GetCPUArchitecture) {
diff --git a/snapshot/mac/thread_snapshot_mac.h b/snapshot/mac/thread_snapshot_mac.h
index 06331fa..4d9cb31 100644
--- a/snapshot/mac/thread_snapshot_mac.h
+++ b/snapshot/mac/thread_snapshot_mac.h
@@ -18,7 +18,6 @@
 #include <mach/mach.h>
 #include <stdint.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/mac/process_reader_mac.h"
@@ -38,6 +37,10 @@
 class ThreadSnapshotMac final : public ThreadSnapshot {
  public:
   ThreadSnapshotMac();
+
+  ThreadSnapshotMac(const ThreadSnapshotMac&) = delete;
+  ThreadSnapshotMac& operator=(const ThreadSnapshotMac&) = delete;
+
   ~ThreadSnapshotMac() override;
 
   //! \brief Initializes the object.
@@ -81,8 +84,6 @@
   int suspend_count_;
   int priority_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotMac);
 };
 
 }  // namespace internal
diff --git a/snapshot/memory_snapshot_generic.h b/snapshot/memory_snapshot_generic.h
index 6e50a58..b09e7a9 100644
--- a/snapshot/memory_snapshot_generic.h
+++ b/snapshot/memory_snapshot_generic.h
@@ -19,7 +19,6 @@
 #include <sys/types.h>
 
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/numerics/safe_math.h"
 #include "snapshot/memory_snapshot.h"
 #include "util/misc/address_types.h"
@@ -35,6 +34,10 @@
 class MemorySnapshotGeneric final : public MemorySnapshot {
  public:
   MemorySnapshotGeneric() = default;
+
+  MemorySnapshotGeneric(const MemorySnapshotGeneric&) = delete;
+  MemorySnapshotGeneric& operator=(const MemorySnapshotGeneric&) = delete;
+
   ~MemorySnapshotGeneric() = default;
 
   //! \brief Initializes the object.
@@ -110,8 +113,6 @@
   VMAddress address_;
   size_t size_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemorySnapshotGeneric);
 };
 
 }  // namespace internal
diff --git a/snapshot/memory_snapshot_test.cc b/snapshot/memory_snapshot_test.cc
index 91e847f..14ba78e 100644
--- a/snapshot/memory_snapshot_test.cc
+++ b/snapshot/memory_snapshot_test.cc
@@ -14,7 +14,6 @@
 
 #include "snapshot/memory_snapshot.h"
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "snapshot/test/test_memory_snapshot.h"
 
diff --git a/snapshot/minidump/exception_snapshot_minidump.h b/snapshot/minidump/exception_snapshot_minidump.h
index 62f834f..917c237 100644
--- a/snapshot/minidump/exception_snapshot_minidump.h
+++ b/snapshot/minidump/exception_snapshot_minidump.h
@@ -32,6 +32,11 @@
 class ExceptionSnapshotMinidump final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotMinidump();
+
+  ExceptionSnapshotMinidump(const ExceptionSnapshotMinidump&) = delete;
+  ExceptionSnapshotMinidump& operator=(const ExceptionSnapshotMinidump&) =
+      delete;
+
   ~ExceptionSnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -66,8 +71,6 @@
   MinidumpContextConverter context_;
   std::vector<uint64_t> exception_information_;
   InitializationState initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotMinidump);
 };
 
 }  // namespace internal
diff --git a/snapshot/minidump/memory_snapshot_minidump.h b/snapshot/minidump/memory_snapshot_minidump.h
index 69521be..0ab05b2 100644
--- a/snapshot/minidump/memory_snapshot_minidump.h
+++ b/snapshot/minidump/memory_snapshot_minidump.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/memory_snapshot.h"
 #include "util/file/file_reader.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -30,6 +29,10 @@
 class MemorySnapshotMinidump : public MemorySnapshot {
  public:
   MemorySnapshotMinidump();
+
+  MemorySnapshotMinidump(const MemorySnapshotMinidump&) = delete;
+  MemorySnapshotMinidump& operator=(const MemorySnapshotMinidump&) = delete;
+
   ~MemorySnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -53,8 +56,6 @@
   uint64_t address_;
   std::vector<uint8_t> data_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemorySnapshotMinidump);
 };
 
 }  // namespace internal
diff --git a/snapshot/minidump/minidump_stream.h b/snapshot/minidump/minidump_stream.h
index 2b0ac2e..20f1dda 100644
--- a/snapshot/minidump/minidump_stream.h
+++ b/snapshot/minidump/minidump_stream.h
@@ -19,7 +19,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -29,14 +28,15 @@
   MinidumpStream(uint32_t stream_type, std::vector<uint8_t> data)
       : stream_type_(stream_type), data_(data) {}
 
+  MinidumpStream(const MinidumpStream&) = delete;
+  MinidumpStream& operator=(const MinidumpStream&) = delete;
+
   uint32_t stream_type() const { return stream_type_; }
   const std::vector<uint8_t>& data() const { return data_; }
 
  private:
   uint32_t stream_type_;
   std::vector<uint8_t> data_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpStream);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/minidump/module_snapshot_minidump.h b/snapshot/minidump/module_snapshot_minidump.h
index 023d0d5..f00e566 100644
--- a/snapshot/minidump/module_snapshot_minidump.h
+++ b/snapshot/minidump/module_snapshot_minidump.h
@@ -24,7 +24,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/annotation_snapshot.h"
 #include "snapshot/module_snapshot.h"
 #include "util/file/file_reader.h"
@@ -37,6 +36,10 @@
 class ModuleSnapshotMinidump final : public ModuleSnapshot {
  public:
   ModuleSnapshotMinidump();
+
+  ModuleSnapshotMinidump(const ModuleSnapshotMinidump&) = delete;
+  ModuleSnapshotMinidump& operator=(const ModuleSnapshotMinidump&) = delete;
+
   ~ModuleSnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -103,8 +106,6 @@
   std::string debug_file_name_;
   uint32_t age_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotMinidump);
 };
 
 }  // namespace internal
diff --git a/snapshot/minidump/process_snapshot_minidump.h b/snapshot/minidump/process_snapshot_minidump.h
index cf2d82b..f76956d 100644
--- a/snapshot/minidump/process_snapshot_minidump.h
+++ b/snapshot/minidump/process_snapshot_minidump.h
@@ -25,7 +25,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "snapshot/exception_snapshot.h"
 #include "snapshot/memory_snapshot.h"
@@ -54,6 +53,10 @@
 class ProcessSnapshotMinidump final : public ProcessSnapshot {
  public:
   ProcessSnapshotMinidump();
+
+  ProcessSnapshotMinidump(const ProcessSnapshotMinidump&) = delete;
+  ProcessSnapshotMinidump& operator=(const ProcessSnapshotMinidump&) = delete;
+
   ~ProcessSnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -157,8 +160,6 @@
   uint32_t user_time_;
   uint32_t kernel_time_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotMinidump);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/minidump/system_snapshot_minidump.h b/snapshot/minidump/system_snapshot_minidump.h
index 0f2880e..8a7ad1f 100644
--- a/snapshot/minidump/system_snapshot_minidump.h
+++ b/snapshot/minidump/system_snapshot_minidump.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 #include "minidump/minidump_extensions.h"
 #include "snapshot/system_snapshot.h"
 #include "util/file/file_reader.h"
@@ -30,6 +29,10 @@
 class SystemSnapshotMinidump : public SystemSnapshot {
  public:
   SystemSnapshotMinidump();
+
+  SystemSnapshotMinidump(const SystemSnapshotMinidump&) = delete;
+  SystemSnapshotMinidump& operator=(const SystemSnapshotMinidump&) = delete;
+
   ~SystemSnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -77,8 +80,6 @@
   std::string minidump_build_name_;
   std::string full_version_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotMinidump);
 };
 
 }  // namespace internal
diff --git a/snapshot/minidump/thread_snapshot_minidump.h b/snapshot/minidump/thread_snapshot_minidump.h
index 262b8da..7efb18d 100644
--- a/snapshot/minidump/thread_snapshot_minidump.h
+++ b/snapshot/minidump/thread_snapshot_minidump.h
@@ -32,6 +32,10 @@
 class ThreadSnapshotMinidump : public ThreadSnapshot {
  public:
   ThreadSnapshotMinidump();
+
+  ThreadSnapshotMinidump(const ThreadSnapshotMinidump&) = delete;
+  ThreadSnapshotMinidump& operator=(const ThreadSnapshotMinidump&) = delete;
+
   ~ThreadSnapshotMinidump() override;
 
   //! \brief Initializes the object.
@@ -70,8 +74,6 @@
   MinidumpContextConverter context_;
   MemorySnapshotMinidump stack_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotMinidump);
 };
 
 }  // namespace internal
diff --git a/snapshot/module_snapshot.h b/snapshot/module_snapshot.h
index f7eb83c..5f205ce 100644
--- a/snapshot/module_snapshot.h
+++ b/snapshot/module_snapshot.h
@@ -40,6 +40,9 @@
   UserMinidumpStream(uint32_t stream_type, MemorySnapshot* memory)
       : memory_(memory), stream_type_(stream_type) {}
 
+  UserMinidumpStream(const UserMinidumpStream&) = delete;
+  UserMinidumpStream& operator=(const UserMinidumpStream&) = delete;
+
   const MemorySnapshot* memory() const { return memory_.get(); }
   uint32_t stream_type() const { return stream_type_; }
 
@@ -49,8 +52,6 @@
 
   //! \brief The stream type that the minidump stream will be tagged with.
   uint32_t stream_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(UserMinidumpStream);
 };
 
 //! \brief An abstract interface to a snapshot representing a code module
diff --git a/snapshot/posix/timezone_test.cc b/snapshot/posix/timezone_test.cc
index 4d60b83..6a34376 100644
--- a/snapshot/posix/timezone_test.cc
+++ b/snapshot/posix/timezone_test.cc
@@ -21,7 +21,6 @@
 #include <string>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "gtest/gtest.h"
 #include "test/errors.h"
@@ -43,6 +42,9 @@
     tzset();
   }
 
+  ScopedSetTZ(const ScopedSetTZ&) = delete;
+  ScopedSetTZ& operator=(const ScopedSetTZ&) = delete;
+
   ~ScopedSetTZ() {
     if (old_tz_set_) {
       EXPECT_EQ(setenv(kTZ, old_tz_.c_str(), 1), 0) << ErrnoMessage("setenv");
@@ -57,8 +59,6 @@
   bool old_tz_set_;
 
   static constexpr char kTZ[] = "TZ";
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSetTZ);
 };
 
 constexpr char ScopedSetTZ::kTZ[];
diff --git a/snapshot/sanitized/memory_snapshot_sanitized.cc b/snapshot/sanitized/memory_snapshot_sanitized.cc
index e71629d..a253491 100644
--- a/snapshot/sanitized/memory_snapshot_sanitized.cc
+++ b/snapshot/sanitized/memory_snapshot_sanitized.cc
@@ -32,6 +32,9 @@
         address_(address),
         is_64_bit_(is_64_bit) {}
 
+  MemorySanitizer(const MemorySanitizer&) = delete;
+  MemorySanitizer& operator=(const MemorySanitizer&) = delete;
+
   ~MemorySanitizer() = default;
 
   bool MemorySnapshotDelegateRead(void* data, size_t size) override {
@@ -77,8 +80,6 @@
   RangeSet* ranges_;
   VMAddress address_;
   bool is_64_bit_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemorySanitizer);
 };
 
 }  // namespace
diff --git a/snapshot/sanitized/memory_snapshot_sanitized.h b/snapshot/sanitized/memory_snapshot_sanitized.h
index be3e5d4..30885f5 100644
--- a/snapshot/sanitized/memory_snapshot_sanitized.h
+++ b/snapshot/sanitized/memory_snapshot_sanitized.h
@@ -47,6 +47,9 @@
                           RangeSet* ranges,
                           bool is_64_bit);
 
+  MemorySnapshotSanitized(const MemorySnapshotSanitized&) = delete;
+  MemorySnapshotSanitized& operator=(const MemorySnapshotSanitized&) = delete;
+
   ~MemorySnapshotSanitized() override;
 
   // MemorySnapshot:
@@ -64,8 +67,6 @@
   const MemorySnapshot* snapshot_;
   RangeSet* ranges_;
   bool is_64_bit_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemorySnapshotSanitized);
 };
 
 }  // namespace internal
diff --git a/snapshot/sanitized/module_snapshot_sanitized.h b/snapshot/sanitized/module_snapshot_sanitized.h
index b64999e..f8937f3 100644
--- a/snapshot/sanitized/module_snapshot_sanitized.h
+++ b/snapshot/sanitized/module_snapshot_sanitized.h
@@ -18,7 +18,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/module_snapshot.h"
 
 namespace crashpad {
@@ -36,6 +35,10 @@
   //!     `nullptr`, all annotations will be returned.
   ModuleSnapshotSanitized(const ModuleSnapshot* snapshot,
                           const std::vector<std::string>* allowed_annotations);
+
+  ModuleSnapshotSanitized(const ModuleSnapshotSanitized&) = delete;
+  ModuleSnapshotSanitized& operator=(const ModuleSnapshotSanitized&) = delete;
+
   ~ModuleSnapshotSanitized() override;
 
   // ModuleSnapshot:
@@ -65,8 +68,6 @@
  private:
   const ModuleSnapshot* snapshot_;
   const std::vector<std::string>* allowed_annotations_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotSanitized);
 };
 
 }  // namespace internal
diff --git a/snapshot/sanitized/process_snapshot_sanitized.h b/snapshot/sanitized/process_snapshot_sanitized.h
index eb05973..86c7c4e 100644
--- a/snapshot/sanitized/process_snapshot_sanitized.h
+++ b/snapshot/sanitized/process_snapshot_sanitized.h
@@ -19,7 +19,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/exception_snapshot.h"
 #include "snapshot/process_snapshot.h"
 #include "snapshot/sanitized/module_snapshot_sanitized.h"
@@ -39,6 +38,10 @@
 class ProcessSnapshotSanitized final : public ProcessSnapshot {
  public:
   ProcessSnapshotSanitized();
+
+  ProcessSnapshotSanitized(const ProcessSnapshotSanitized&) = delete;
+  ProcessSnapshotSanitized& operator=(const ProcessSnapshotSanitized&) = delete;
+
   ~ProcessSnapshotSanitized() override;
 
   //! \brief Initializes this object.
@@ -105,8 +108,6 @@
   std::unique_ptr<const std::vector<std::string>> allowed_annotations_;
   bool sanitize_stacks_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotSanitized);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/sanitized/process_snapshot_sanitized_test.cc b/snapshot/sanitized/process_snapshot_sanitized_test.cc
index 48aad78..0bdea43 100644
--- a/snapshot/sanitized/process_snapshot_sanitized_test.cc
+++ b/snapshot/sanitized/process_snapshot_sanitized_test.cc
@@ -17,7 +17,6 @@
 #include <string.h>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/notreached.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
@@ -41,6 +40,9 @@
 
 class ExceptionGenerator {
  public:
+  ExceptionGenerator(const ExceptionGenerator&) = delete;
+  ExceptionGenerator& operator=(const ExceptionGenerator&) = delete;
+
   static ExceptionGenerator* Get() {
     static ExceptionGenerator* instance = new ExceptionGenerator();
     return instance;
@@ -73,8 +75,6 @@
 
   FileHandle in_;
   FileHandle out_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionGenerator);
 };
 
 constexpr char kAllowedAnnotationName[] = "name_of_allowed_anno";
@@ -248,6 +248,9 @@
     SetExpectedChildTerminationBuiltinTrap();
   }
 
+  SanitizeTest(const SanitizeTest&) = delete;
+  SanitizeTest& operator=(const SanitizeTest&) = delete;
+
   ~SanitizeTest() = default;
 
  private:
@@ -298,8 +301,6 @@
     EXPECT_FALSE(screened_snapshot.Initialize(
         &snapshot, nullptr, nullptr, addrs.non_module_address, false));
   }
-
-  DISALLOW_COPY_AND_ASSIGN(SanitizeTest);
 };
 
 TEST(ProcessSnapshotSanitized, Sanitize) {
diff --git a/snapshot/sanitized/thread_snapshot_sanitized.h b/snapshot/sanitized/thread_snapshot_sanitized.h
index 081627a..dca0a0e 100644
--- a/snapshot/sanitized/thread_snapshot_sanitized.h
+++ b/snapshot/sanitized/thread_snapshot_sanitized.h
@@ -34,6 +34,9 @@
   //!     thread's stacks. \see internal::MemorySnapshotSanitized.
   ThreadSnapshotSanitized(const ThreadSnapshot* snapshot, RangeSet* ranges);
 
+  ThreadSnapshotSanitized(const ThreadSnapshotSanitized&) = delete;
+  ThreadSnapshotSanitized& operator=(const ThreadSnapshotSanitized&) = delete;
+
   ~ThreadSnapshotSanitized() override;
 
   // ThreadSnapshot:
@@ -49,8 +52,6 @@
  private:
   const ThreadSnapshot* snapshot_;
   MemorySnapshotSanitized stack_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotSanitized);
 };
 
 }  // namespace internal
diff --git a/snapshot/test/test_exception_snapshot.h b/snapshot/test/test_exception_snapshot.h
index aa75539..0f6b7c0 100644
--- a/snapshot/test/test_exception_snapshot.h
+++ b/snapshot/test/test_exception_snapshot.h
@@ -21,7 +21,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/exception_snapshot.h"
 
@@ -33,6 +32,10 @@
 class TestExceptionSnapshot final : public ExceptionSnapshot {
  public:
   TestExceptionSnapshot();
+
+  TestExceptionSnapshot(const TestExceptionSnapshot&) = delete;
+  TestExceptionSnapshot& operator=(const TestExceptionSnapshot&) = delete;
+
   ~TestExceptionSnapshot();
 
   //! \brief Obtains a pointer to the underlying mutable CPUContext structure.
@@ -85,8 +88,6 @@
   uint64_t exception_address_;
   std::vector<uint64_t> codes_;
   std::vector<std::unique_ptr<MemorySnapshot>> extra_memory_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestExceptionSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_memory_map_region_snapshot.h b/snapshot/test/test_memory_map_region_snapshot.h
index 0a76888..c4e1ca7 100644
--- a/snapshot/test/test_memory_map_region_snapshot.h
+++ b/snapshot/test/test_memory_map_region_snapshot.h
@@ -17,7 +17,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/memory_map_region_snapshot.h"
 
 namespace crashpad {
@@ -28,6 +27,11 @@
 class TestMemoryMapRegionSnapshot final : public MemoryMapRegionSnapshot {
  public:
   TestMemoryMapRegionSnapshot();
+
+  TestMemoryMapRegionSnapshot(const TestMemoryMapRegionSnapshot&) = delete;
+  TestMemoryMapRegionSnapshot& operator=(const TestMemoryMapRegionSnapshot&) =
+      delete;
+
   ~TestMemoryMapRegionSnapshot() override;
 
   void SetMindumpMemoryInfo(const MINIDUMP_MEMORY_INFO& mmi);
@@ -37,8 +41,6 @@
 
  private:
   MINIDUMP_MEMORY_INFO memory_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMemoryMapRegionSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_memory_snapshot.h b/snapshot/test/test_memory_snapshot.h
index 011e6c6..a9e8fb1 100644
--- a/snapshot/test/test_memory_snapshot.h
+++ b/snapshot/test/test_memory_snapshot.h
@@ -18,7 +18,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "snapshot/memory_snapshot.h"
 
 namespace crashpad {
@@ -29,6 +28,10 @@
 class TestMemorySnapshot final : public MemorySnapshot {
  public:
   TestMemorySnapshot();
+
+  TestMemorySnapshot(const TestMemorySnapshot&) = delete;
+  TestMemorySnapshot& operator=(const TestMemorySnapshot&) = delete;
+
   ~TestMemorySnapshot();
 
   void SetAddress(uint64_t address) { address_ = address; }
@@ -55,8 +58,6 @@
   size_t size_;
   char value_;
   bool should_fail_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMemorySnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_module_snapshot.h b/snapshot/test/test_module_snapshot.h
index fb84aaf..19e1299 100644
--- a/snapshot/test/test_module_snapshot.h
+++ b/snapshot/test/test_module_snapshot.h
@@ -22,7 +22,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/module_snapshot.h"
 
 namespace crashpad {
@@ -33,6 +32,10 @@
 class TestModuleSnapshot final : public ModuleSnapshot {
  public:
   TestModuleSnapshot();
+
+  TestModuleSnapshot(const TestModuleSnapshot&) = delete;
+  TestModuleSnapshot& operator=(const TestModuleSnapshot&) = delete;
+
   ~TestModuleSnapshot() override;
 
   void SetName(const std::string& name) { name_ = name; }
@@ -127,8 +130,6 @@
   std::map<std::string, std::string> annotations_simple_map_;
   std::vector<AnnotationSnapshot> annotation_objects_;
   std::set<CheckedRange<uint64_t>> extra_memory_ranges_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestModuleSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_process_snapshot.h b/snapshot/test/test_process_snapshot.h
index 5495cba..16873fe 100644
--- a/snapshot/test/test_process_snapshot.h
+++ b/snapshot/test/test_process_snapshot.h
@@ -25,7 +25,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/exception_snapshot.h"
 #include "snapshot/memory_map_region_snapshot.h"
 #include "snapshot/memory_snapshot.h"
@@ -46,6 +45,10 @@
 class TestProcessSnapshot final : public ProcessSnapshot {
  public:
   TestProcessSnapshot();
+
+  TestProcessSnapshot(const TestProcessSnapshot&) = delete;
+  TestProcessSnapshot& operator=(const TestProcessSnapshot&) = delete;
+
   ~TestProcessSnapshot() override;
 
   void SetProcessID(crashpad::ProcessID process_id) {
@@ -187,8 +190,6 @@
   std::vector<HandleSnapshot> handles_;
   std::vector<std::unique_ptr<MemorySnapshot>> extra_memory_;
   std::unique_ptr<ProcessMemory> process_memory_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestProcessSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_system_snapshot.h b/snapshot/test/test_system_snapshot.h
index 31787eb..6126265 100644
--- a/snapshot/test/test_system_snapshot.h
+++ b/snapshot/test/test_system_snapshot.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/system_snapshot.h"
 
 namespace crashpad {
@@ -30,6 +29,10 @@
 class TestSystemSnapshot final : public SystemSnapshot {
  public:
   TestSystemSnapshot();
+
+  TestSystemSnapshot(const TestSystemSnapshot&) = delete;
+  TestSystemSnapshot& operator=(const TestSystemSnapshot&) = delete;
+
   ~TestSystemSnapshot() override;
 
   void SetCPUArchitecture(CPUArchitecture cpu_architecture) {
@@ -138,8 +141,6 @@
   int time_zone_daylight_offset_seconds_;
   std::string time_zone_standard_name_;
   std::string time_zone_daylight_name_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestSystemSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/test/test_thread_snapshot.h b/snapshot/test/test_thread_snapshot.h
index e705c16..f865bdf 100644
--- a/snapshot/test/test_thread_snapshot.h
+++ b/snapshot/test/test_thread_snapshot.h
@@ -21,7 +21,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/memory_snapshot.h"
 #include "snapshot/thread_snapshot.h"
@@ -34,6 +33,10 @@
 class TestThreadSnapshot final : public ThreadSnapshot {
  public:
   TestThreadSnapshot();
+
+  TestThreadSnapshot(const TestThreadSnapshot&) = delete;
+  TestThreadSnapshot& operator=(const TestThreadSnapshot&) = delete;
+
   ~TestThreadSnapshot();
 
   //! \brief Obtains a pointer to the underlying mutable CPUContext structure.
@@ -97,8 +100,6 @@
   int priority_;
   uint64_t thread_specific_data_address_;
   std::vector<std::unique_ptr<MemorySnapshot>> extra_memory_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestThreadSnapshot);
 };
 
 }  // namespace test
diff --git a/snapshot/win/exception_snapshot_win.h b/snapshot/win/exception_snapshot_win.h
index fd4e854..9167a9e 100644
--- a/snapshot/win/exception_snapshot_win.h
+++ b/snapshot/win/exception_snapshot_win.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/exception_snapshot.h"
@@ -50,6 +49,10 @@
 class ExceptionSnapshotWin final : public ExceptionSnapshot {
  public:
   ExceptionSnapshotWin();
+
+  ExceptionSnapshotWin(const ExceptionSnapshotWin&) = delete;
+  ExceptionSnapshotWin& operator=(const ExceptionSnapshotWin&) = delete;
+
   ~ExceptionSnapshotWin() override;
 
   //! \brief Initializes the object.
@@ -102,8 +105,6 @@
   uint32_t exception_flags_;
   DWORD exception_code_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSnapshotWin);
 };
 
 }  // namespace internal
diff --git a/snapshot/win/exception_snapshot_win_test.cc b/snapshot/win/exception_snapshot_win_test.cc
index 63f9bf8..dbf9cfc 100644
--- a/snapshot/win/exception_snapshot_win_test.cc
+++ b/snapshot/win/exception_snapshot_win_test.cc
@@ -42,6 +42,10 @@
   RunServerThread(ExceptionHandlerServer* server,
                   ExceptionHandlerServer::Delegate* delegate)
       : server_(server), delegate_(delegate) {}
+
+  RunServerThread(const RunServerThread&) = delete;
+  RunServerThread& operator=(const RunServerThread&) = delete;
+
   ~RunServerThread() override {}
 
  private:
@@ -50,8 +54,6 @@
 
   ExceptionHandlerServer* server_;
   ExceptionHandlerServer::Delegate* delegate_;
-
-  DISALLOW_COPY_AND_ASSIGN(RunServerThread);
 };
 
 // During destruction, ensures that the server is stopped and the background
@@ -60,6 +62,11 @@
  public:
   ScopedStopServerAndJoinThread(ExceptionHandlerServer* server, Thread* thread)
       : server_(server), thread_(thread) {}
+
+  ScopedStopServerAndJoinThread(const ScopedStopServerAndJoinThread&) = delete;
+  ScopedStopServerAndJoinThread& operator=(
+      const ScopedStopServerAndJoinThread&) = delete;
+
   ~ScopedStopServerAndJoinThread() {
     server_->Stop();
     thread_->Join();
@@ -68,7 +75,6 @@
  private:
   ExceptionHandlerServer* server_;
   Thread* thread_;
-  DISALLOW_COPY_AND_ASSIGN(ScopedStopServerAndJoinThread);
 };
 
 class CrashingDelegate : public ExceptionHandlerServer::Delegate {
@@ -77,6 +83,10 @@
       : server_ready_(server_ready),
         completed_test_event_(completed_test_event),
         break_near_(0) {}
+
+  CrashingDelegate(const CrashingDelegate&) = delete;
+  CrashingDelegate& operator=(const CrashingDelegate&) = delete;
+
   ~CrashingDelegate() {}
 
   void set_break_near(WinVMAddress break_near) { break_near_ = break_near; }
@@ -120,8 +130,6 @@
   HANDLE server_ready_;  // weak
   HANDLE completed_test_event_;  // weak
   WinVMAddress break_near_;
-
-  DISALLOW_COPY_AND_ASSIGN(CrashingDelegate);
 };
 
 void TestCrashingChild(TestPaths::Architecture architecture) {
@@ -192,6 +200,10 @@
       : server_ready_(server_ready),
         completed_test_event_(completed_test_event),
         dump_near_(0) {}
+
+  SimulateDelegate(const SimulateDelegate&) = delete;
+  SimulateDelegate& operator=(const SimulateDelegate&) = delete;
+
   ~SimulateDelegate() {}
 
   void set_dump_near(WinVMAddress dump_near) { dump_near_ = dump_near; }
@@ -240,8 +252,6 @@
   HANDLE server_ready_;  // weak
   HANDLE completed_test_event_;  // weak
   WinVMAddress dump_near_;
-
-  DISALLOW_COPY_AND_ASSIGN(SimulateDelegate);
 };
 
 void TestDumpWithoutCrashingChild(TestPaths::Architecture architecture) {
diff --git a/snapshot/win/module_snapshot_win.h b/snapshot/win/module_snapshot_win.h
index b32216c..5b375f4 100644
--- a/snapshot/win/module_snapshot_win.h
+++ b/snapshot/win/module_snapshot_win.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/crashpad_types/crashpad_info_reader.h"
 #include "snapshot/module_snapshot.h"
@@ -44,6 +43,10 @@
 class ModuleSnapshotWin final : public ModuleSnapshot {
  public:
   ModuleSnapshotWin();
+
+  ModuleSnapshotWin(const ModuleSnapshotWin&) = delete;
+  ModuleSnapshotWin& operator=(const ModuleSnapshotWin&) = delete;
+
   ~ModuleSnapshotWin() override;
 
   //! \brief Initializes the object.
@@ -124,8 +127,6 @@
   time_t timestamp_;
   uint32_t age_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleSnapshotWin);
 };
 
 }  // namespace internal
diff --git a/snapshot/win/pe_image_annotations_reader.h b/snapshot/win/pe_image_annotations_reader.h
index 6379b27..97b1e8f 100644
--- a/snapshot/win/pe_image_annotations_reader.h
+++ b/snapshot/win/pe_image_annotations_reader.h
@@ -19,7 +19,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/annotation_snapshot.h"
 
 namespace crashpad {
@@ -49,6 +48,10 @@
   PEImageAnnotationsReader(ProcessReaderWin* process_reader,
                            const PEImageReader* pe_image_reader,
                            const std::wstring& name);
+
+  PEImageAnnotationsReader(const PEImageAnnotationsReader&) = delete;
+  PEImageAnnotationsReader& operator=(const PEImageAnnotationsReader&) = delete;
+
   ~PEImageAnnotationsReader() {}
 
   //! \brief Returns the module's annotations that are organized as key-value
@@ -73,8 +76,6 @@
   std::wstring name_;
   ProcessReaderWin* process_reader_;  // weak
   const PEImageReader* pe_image_reader_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(PEImageAnnotationsReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/pe_image_reader.h b/snapshot/win/pe_image_reader.h
index ebdbe57..a2bd28e 100644
--- a/snapshot/win/pe_image_reader.h
+++ b/snapshot/win/pe_image_reader.h
@@ -21,7 +21,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/win/process_subrange_reader.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/misc/uuid.h"
@@ -63,6 +62,10 @@
 class PEImageReader {
  public:
   PEImageReader();
+
+  PEImageReader(const PEImageReader&) = delete;
+  PEImageReader& operator=(const PEImageReader&) = delete;
+
   ~PEImageReader();
 
   //! \brief Initializes the reader.
@@ -194,8 +197,6 @@
 
   ProcessSubrangeReader module_subrange_reader_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(PEImageReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/pe_image_resource_reader.h b/snapshot/win/pe_image_resource_reader.h
index ce339dd..a8468db 100644
--- a/snapshot/win/pe_image_resource_reader.h
+++ b/snapshot/win/pe_image_resource_reader.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "snapshot/win/process_subrange_reader.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/win/address_types.h"
@@ -34,6 +33,10 @@
 class PEImageResourceReader {
  public:
   PEImageResourceReader();
+
+  PEImageResourceReader(const PEImageResourceReader&) = delete;
+  PEImageResourceReader& operator=(const PEImageResourceReader&) = delete;
+
   ~PEImageResourceReader();
 
   //! \brief Initializes the resource reader.
@@ -170,8 +173,6 @@
   ProcessSubrangeReader resources_subrange_reader_;
   WinVMAddress module_base_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(PEImageResourceReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/process_reader_win.h b/snapshot/win/process_reader_win.h
index a4e32aa..7875de0 100644
--- a/snapshot/win/process_reader_win.h
+++ b/snapshot/win/process_reader_win.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory_win.h"
@@ -63,6 +62,10 @@
   };
 
   ProcessReaderWin();
+
+  ProcessReaderWin(const ProcessReaderWin&) = delete;
+  ProcessReaderWin& operator=(const ProcessReaderWin&) = delete;
+
   ~ProcessReaderWin();
 
   //! \brief Initializes this object. This method must be called before any
@@ -135,8 +138,6 @@
   ProcessSuspensionState suspension_state_;
   bool initialized_threads_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderWin);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/process_reader_win_test.cc b/snapshot/win/process_reader_win_test.cc
index 7c6c739..68933bb 100644
--- a/snapshot/win/process_reader_win_test.cc
+++ b/snapshot/win/process_reader_win_test.cc
@@ -55,6 +55,10 @@
 class ProcessReaderChild final : public WinMultiprocess {
  public:
   ProcessReaderChild() : WinMultiprocess() {}
+
+  ProcessReaderChild(const ProcessReaderChild&) = delete;
+  ProcessReaderChild& operator=(const ProcessReaderChild&) = delete;
+
   ~ProcessReaderChild() {}
 
  private:
@@ -86,8 +90,6 @@
     // the pipe.
     CheckedReadFileAtEOF(ReadPipeHandle());
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderChild);
 };
 
 TEST(ProcessReaderWin, ChildBasic) {
@@ -115,6 +117,12 @@
 class ProcessReaderChildThreadSuspendCount final : public WinMultiprocess {
  public:
   ProcessReaderChildThreadSuspendCount() : WinMultiprocess() {}
+
+  ProcessReaderChildThreadSuspendCount(
+      const ProcessReaderChildThreadSuspendCount&) = delete;
+  ProcessReaderChildThreadSuspendCount& operator=(
+      const ProcessReaderChildThreadSuspendCount&) = delete;
+
   ~ProcessReaderChildThreadSuspendCount() {}
 
  private:
@@ -190,8 +198,6 @@
     for (auto& thread : threads)
       thread.Join();
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessReaderChildThreadSuspendCount);
 };
 
 TEST(ProcessReaderWin, ChildThreadSuspendCounts) {
diff --git a/snapshot/win/process_snapshot_win.h b/snapshot/win/process_snapshot_win.h
index 8b0bf52..7a8ae2f 100644
--- a/snapshot/win/process_snapshot_win.h
+++ b/snapshot/win/process_snapshot_win.h
@@ -25,7 +25,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "client/crashpad_info.h"
 #include "snapshot/crashpad_info_client_options.h"
 #include "snapshot/exception_snapshot.h"
@@ -55,6 +54,10 @@
 class ProcessSnapshotWin final : public ProcessSnapshot {
  public:
   ProcessSnapshotWin();
+
+  ProcessSnapshotWin(const ProcessSnapshotWin&) = delete;
+  ProcessSnapshotWin& operator=(const ProcessSnapshotWin&) = delete;
+
   ~ProcessSnapshotWin() override;
 
   //! \brief Initializes the object.
@@ -192,8 +195,6 @@
   timeval snapshot_time_;
   CrashpadInfoClientOptions options_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSnapshotWin);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/process_subrange_reader.h b/snapshot/win/process_subrange_reader.h
index f6af00e..bcdff5e 100644
--- a/snapshot/win/process_subrange_reader.h
+++ b/snapshot/win/process_subrange_reader.h
@@ -17,7 +17,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/win/address_types.h"
 #include "util/win/checked_win_address_range.h"
@@ -35,6 +34,10 @@
 class ProcessSubrangeReader {
  public:
   ProcessSubrangeReader();
+
+  ProcessSubrangeReader(const ProcessSubrangeReader&) = delete;
+  ProcessSubrangeReader& operator=(const ProcessSubrangeReader&) = delete;
+
   ~ProcessSubrangeReader();
 
   //! \brief Initializes the object.
@@ -105,8 +108,6 @@
   CheckedWinAddressRange range_;
   ProcessReaderWin* process_reader_;  // weak
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessSubrangeReader);
 };
 
 }  // namespace crashpad
diff --git a/snapshot/win/system_snapshot_win.h b/snapshot/win/system_snapshot_win.h
index fc209a5..d10c25f 100644
--- a/snapshot/win/system_snapshot_win.h
+++ b/snapshot/win/system_snapshot_win.h
@@ -20,7 +20,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "snapshot/system_snapshot.h"
 #include "snapshot/win/process_reader_win.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -35,6 +34,10 @@
 class SystemSnapshotWin final : public SystemSnapshot {
  public:
   SystemSnapshotWin();
+
+  SystemSnapshotWin(const SystemSnapshotWin&) = delete;
+  SystemSnapshotWin& operator=(const SystemSnapshotWin&) = delete;
+
   ~SystemSnapshotWin() override;
 
   //! \brief Initializes the object.
@@ -86,8 +89,6 @@
   int os_version_bugfix_;
   bool os_server_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotWin);
 };
 
 }  // namespace internal
diff --git a/snapshot/win/system_snapshot_win_test.cc b/snapshot/win/system_snapshot_win_test.cc
index d93c654..c8716b3 100644
--- a/snapshot/win/system_snapshot_win_test.cc
+++ b/snapshot/win/system_snapshot_win_test.cc
@@ -35,6 +35,9 @@
         system_snapshot_() {
   }
 
+  SystemSnapshotWinTest(const SystemSnapshotWinTest&) = delete;
+  SystemSnapshotWinTest& operator=(const SystemSnapshotWinTest&) = delete;
+
   const internal::SystemSnapshotWin& system_snapshot() const {
     return system_snapshot_;
   }
@@ -49,8 +52,6 @@
  private:
   ProcessReaderWin process_reader_;
   internal::SystemSnapshotWin system_snapshot_;
-
-  DISALLOW_COPY_AND_ASSIGN(SystemSnapshotWinTest);
 };
 
 TEST_F(SystemSnapshotWinTest, GetCPUArchitecture) {
diff --git a/snapshot/win/thread_snapshot_win.h b/snapshot/win/thread_snapshot_win.h
index 64ec43d..b9fafaa 100644
--- a/snapshot/win/thread_snapshot_win.h
+++ b/snapshot/win/thread_snapshot_win.h
@@ -20,7 +20,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "snapshot/cpu_context.h"
 #include "snapshot/memory_snapshot.h"
@@ -40,6 +39,10 @@
 class ThreadSnapshotWin final : public ThreadSnapshot {
  public:
   ThreadSnapshotWin();
+
+  ThreadSnapshotWin(const ThreadSnapshotWin&) = delete;
+  ThreadSnapshotWin& operator=(const ThreadSnapshotWin&) = delete;
+
   ~ThreadSnapshotWin() override;
 
   //! \brief Initializes the object.
@@ -87,8 +90,6 @@
   ProcessReaderWin::Thread thread_;
   InitializationStateDcheck initialized_;
   std::vector<std::unique_ptr<MemorySnapshotGeneric>> pointed_to_memory_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSnapshotWin);
 };
 
 }  // namespace internal
diff --git a/test/linux/fake_ptrace_connection.h b/test/linux/fake_ptrace_connection.h
index 79cdbd9..bf09d95 100644
--- a/test/linux/fake_ptrace_connection.h
+++ b/test/linux/fake_ptrace_connection.h
@@ -20,7 +20,6 @@
 #include <memory>
 #include <set>
 
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory_linux.h"
@@ -35,6 +34,10 @@
 class FakePtraceConnection : public PtraceConnection {
  public:
   FakePtraceConnection();
+
+  FakePtraceConnection(const FakePtraceConnection&) = delete;
+  FakePtraceConnection& operator=(const FakePtraceConnection&) = delete;
+
   ~FakePtraceConnection();
 
   //! \brief Initializes this connection for the process whose process ID is
@@ -74,8 +77,6 @@
   pid_t pid_;
   bool is_64_bit_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(FakePtraceConnection);
 };
 
 }  // namespace test
diff --git a/test/mac/exception_swallower.cc b/test/mac/exception_swallower.cc
index 76ca394..3098643 100644
--- a/test/mac/exception_swallower.cc
+++ b/test/mac/exception_swallower.cc
@@ -66,6 +66,9 @@
     Start();
   }
 
+  ExceptionSwallowerThread(const ExceptionSwallowerThread&) = delete;
+  ExceptionSwallowerThread& operator=(const ExceptionSwallowerThread&) = delete;
+
   ~ExceptionSwallowerThread() override {}
 
   void Stop() { exception_handler_server_.Stop(); }
@@ -107,8 +110,6 @@
 
   ExceptionHandlerServer exception_handler_server_;
   pid_t pid_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSwallowerThread);
 };
 
 ExceptionSwallower::ExceptionSwallower() : exception_swallower_thread_() {
diff --git a/test/mac/exception_swallower.h b/test/mac/exception_swallower.h
index 7c3a442..ac14562 100644
--- a/test/mac/exception_swallower.h
+++ b/test/mac/exception_swallower.h
@@ -17,7 +17,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 
 namespace crashpad {
 namespace test {
@@ -56,6 +55,10 @@
 class ExceptionSwallower {
  public:
   ExceptionSwallower();
+
+  ExceptionSwallower(const ExceptionSwallower&) = delete;
+  ExceptionSwallower& operator=(const ExceptionSwallower&) = delete;
+
   ~ExceptionSwallower();
 
   //! \brief In a test child process, arranges to swallow `EXC_CRASH` and
@@ -76,8 +79,6 @@
   class ExceptionSwallowerThread;
 
   std::unique_ptr<ExceptionSwallowerThread> exception_swallower_thread_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionSwallower);
 };
 
 }  // namespace test
diff --git a/test/mac/mach_multiprocess.cc b/test/mac/mach_multiprocess.cc
index 01b242a..35df061 100644
--- a/test/mac/mach_multiprocess.cc
+++ b/test/mac/mach_multiprocess.cc
@@ -22,6 +22,7 @@
 
 #include "base/auto_reset.h"
 #include "base/mac/scoped_mach_port.h"
+#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "test/errors.h"
 #include "test/mac/mach_errors.h"
diff --git a/test/mac/mach_multiprocess.h b/test/mac/mach_multiprocess.h
index 8b7063d..b3b0bb1 100644
--- a/test/mac/mach_multiprocess.h
+++ b/test/mac/mach_multiprocess.h
@@ -18,7 +18,6 @@
 #include <mach/mach.h>
 #include <unistd.h>
 
-#include "base/macros.h"
 #include "test/multiprocess.h"
 
 namespace crashpad {
@@ -43,6 +42,9 @@
  public:
   MachMultiprocess();
 
+  MachMultiprocess(const MachMultiprocess&) = delete;
+  MachMultiprocess& operator=(const MachMultiprocess&) = delete;
+
   void Run();
 
  protected:
@@ -110,8 +112,6 @@
   virtual void MachMultiprocessChild() = 0;
 
   internal::MachMultiprocessInfo* info_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachMultiprocess);
 };
 
 }  // namespace test
diff --git a/test/mac/mach_multiprocess_test.cc b/test/mac/mach_multiprocess_test.cc
index ef39559..455249b 100644
--- a/test/mac/mach_multiprocess_test.cc
+++ b/test/mac/mach_multiprocess_test.cc
@@ -16,7 +16,6 @@
 
 #include <unistd.h>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 
 namespace crashpad {
@@ -27,6 +26,9 @@
  public:
   TestMachMultiprocess() : MachMultiprocess() {}
 
+  TestMachMultiprocess(const TestMachMultiprocess&) = delete;
+  TestMachMultiprocess& operator=(const TestMachMultiprocess&) = delete;
+
   ~TestMachMultiprocess() {}
 
  private:
@@ -35,8 +37,6 @@
   void MachMultiprocessParent() override {}
 
   void MachMultiprocessChild() override {}
-
-  DISALLOW_COPY_AND_ASSIGN(TestMachMultiprocess);
 };
 
 TEST(MachMultiprocess, MachMultiprocess) {
diff --git a/test/multiprocess.h b/test/multiprocess.h
index eb16161..ca48ce8 100644
--- a/test/multiprocess.h
+++ b/test/multiprocess.h
@@ -18,7 +18,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/file/file_io.h"
 
@@ -67,6 +66,9 @@
 
   Multiprocess();
 
+  Multiprocess(const Multiprocess&) = delete;
+  Multiprocess& operator=(const Multiprocess&) = delete;
+
   //! \brief Runs the test.
   //!
   //! This method establishes the proper testing environment by calling
@@ -222,8 +224,6 @@
   internal::MultiprocessInfo* info_;
   ReturnCodeType code_;
   TerminationReason reason_;
-
-  DISALLOW_COPY_AND_ASSIGN(Multiprocess);
 };
 
 }  // namespace test
diff --git a/test/multiprocess_exec.h b/test/multiprocess_exec.h
index 1e17a07..a03f8c1 100644
--- a/test/multiprocess_exec.h
+++ b/test/multiprocess_exec.h
@@ -19,7 +19,6 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "test/multiprocess.h"
 #include "test/process_type.h"
@@ -89,6 +88,9 @@
  public:
   MultiprocessExec();
 
+  MultiprocessExec(const MultiprocessExec&) = delete;
+  MultiprocessExec& operator=(const MultiprocessExec&) = delete;
+
   //! \brief Sets the command to `exec()` in the child.
   //!
   //! This method must be called before the test can be Run().
@@ -144,8 +146,6 @@
 #elif defined(OS_WIN)
   std::wstring command_line_;
 #endif  // OS_POSIX
-
-  DISALLOW_COPY_AND_ASSIGN(MultiprocessExec);
 };
 
 }  // namespace test
diff --git a/test/multiprocess_exec_test.cc b/test/multiprocess_exec_test.cc
index 4f5418a..fb77d64 100644
--- a/test/multiprocess_exec_test.cc
+++ b/test/multiprocess_exec_test.cc
@@ -15,7 +15,6 @@
 #include "test/multiprocess_exec.h"
 
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
@@ -30,6 +29,9 @@
  public:
   TestMultiprocessExec() : MultiprocessExec() {}
 
+  TestMultiprocessExec(const TestMultiprocessExec&) = delete;
+  TestMultiprocessExec& operator=(const TestMultiprocessExec&) = delete;
+
   ~TestMultiprocessExec() {}
 
  private:
@@ -44,8 +46,6 @@
     ASSERT_TRUE(LoggingReadFileExactly(ReadPipeHandle(), &c, 1));
     EXPECT_EQ(c, 'Z');
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestMultiprocessExec);
 };
 
 TEST(MultiprocessExec, MultiprocessExec) {
@@ -82,12 +82,15 @@
 class TestMultiprocessExecEmpty final : public MultiprocessExec {
  public:
   TestMultiprocessExecEmpty() = default;
+
+  TestMultiprocessExecEmpty(const TestMultiprocessExecEmpty&) = delete;
+  TestMultiprocessExecEmpty& operator=(const TestMultiprocessExecEmpty&) =
+      delete;
+
   ~TestMultiprocessExecEmpty() = default;
 
  private:
   void MultiprocessParent() override {}
-
-  DISALLOW_COPY_AND_ASSIGN(TestMultiprocessExecEmpty);
 };
 
 TEST(MultiprocessExec, MultiprocessExecSimpleChildReturnsNonZero) {
@@ -112,12 +115,14 @@
     SetExpectedChildTerminationBuiltinTrap();
   }
 
+  TestBuiltinTrapTermination(const TestBuiltinTrapTermination&) = delete;
+  TestBuiltinTrapTermination& operator=(const TestBuiltinTrapTermination&) =
+      delete;
+
   ~TestBuiltinTrapTermination() = default;
 
  private:
   void MultiprocessParent() override {}
-
-  DISALLOW_COPY_AND_ASSIGN(TestBuiltinTrapTermination);
 };
 
 TEST(MultiprocessExec, BuiltinTrapTermination) {
diff --git a/test/multiprocess_posix_test.cc b/test/multiprocess_posix_test.cc
index b866695..dd5f63f 100644
--- a/test/multiprocess_posix_test.cc
+++ b/test/multiprocess_posix_test.cc
@@ -18,7 +18,6 @@
 #include <stdlib.h>
 #include <unistd.h>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "test/gtest_death.h"
 #include "util/file/file_io.h"
@@ -31,6 +30,9 @@
  public:
   TestMultiprocess() : Multiprocess() {}
 
+  TestMultiprocess(const TestMultiprocess&) = delete;
+  TestMultiprocess& operator=(const TestMultiprocess&) = delete;
+
   ~TestMultiprocess() {}
 
  private:
@@ -66,8 +68,6 @@
     CheckedReadFileExactly(ReadPipeHandle(), &c, 1);
     EXPECT_EQ(c, 'm');
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestMultiprocess);
 };
 
 TEST(Multiprocess, Multiprocess) {
@@ -94,6 +94,9 @@
     }
   }
 
+  TestMultiprocessUnclean(const TestMultiprocessUnclean&) = delete;
+  TestMultiprocessUnclean& operator=(const TestMultiprocessUnclean&) = delete;
+
   ~TestMultiprocessUnclean() {}
 
  private:
@@ -115,8 +118,6 @@
   }
 
   TerminationType type_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMultiprocessUnclean);
 };
 
 TEST(Multiprocess, SuccessfulExit) {
@@ -159,6 +160,10 @@
     testing::GTEST_FLAG(death_test_style) = "fast";
   }
 
+  TestMultiprocessClosePipe(const TestMultiprocessClosePipe&) = delete;
+  TestMultiprocessClosePipe& operator=(const TestMultiprocessClosePipe&) =
+      delete;
+
   ~TestMultiprocessClosePipe() {}
 
  private:
@@ -241,8 +246,6 @@
 
   WhoCloses who_closes_;
   WhatCloses what_closes_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMultiprocessClosePipe);
 };
 
 TEST(MultiprocessDeathTest, ParentClosesReadPipe) {
diff --git a/test/scoped_guarded_page.h b/test/scoped_guarded_page.h
index 55ef272..f7513d4 100644
--- a/test/scoped_guarded_page.h
+++ b/test/scoped_guarded_page.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_TEST_SCOPED_GUARDED_PAGE_
 #define CRASHPAD_TEST_SCOPED_GUARDED_PAGE_
 
-#include "base/macros.h"
 
 namespace crashpad {
 namespace test {
@@ -31,6 +30,10 @@
 class ScopedGuardedPage {
  public:
   ScopedGuardedPage();
+
+  ScopedGuardedPage(const ScopedGuardedPage&) = delete;
+  ScopedGuardedPage& operator=(const ScopedGuardedPage&) = delete;
+
   ~ScopedGuardedPage();
 
   //! \brief Returns the address of the read-write page.
@@ -40,7 +43,6 @@
 
  private:
   void* ptr_;
-  DISALLOW_COPY_AND_ASSIGN(ScopedGuardedPage);
 };
 
 }  // namespace test
diff --git a/test/scoped_module_handle.h b/test/scoped_module_handle.h
index bbab066..0e96c95 100644
--- a/test/scoped_module_handle.h
+++ b/test/scoped_module_handle.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_TEST_SCOPED_MODULE_HANDLE_H_
 #define CRASHPAD_TEST_SCOPED_MODULE_HANDLE_H_
 
-#include "base/macros.h"
 #include "build/build_config.h"
 
 #if defined(OS_POSIX)
@@ -33,6 +32,10 @@
  private:
   class Impl {
    public:
+    Impl() = delete;
+    Impl(const Impl&) = delete;
+    Impl& operator=(const Impl&) = delete;
+
 #if defined(OS_POSIX)
     using ModuleHandle = void*;
 
@@ -48,9 +51,6 @@
 #endif
 
     static void Close(ModuleHandle handle);
-
-   private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Impl);
   };
 
  public:
@@ -58,6 +58,10 @@
 
   explicit ScopedModuleHandle(ModuleHandle handle);
   ScopedModuleHandle(ScopedModuleHandle&& handle);
+
+  ScopedModuleHandle(const ScopedModuleHandle&) = delete;
+  ScopedModuleHandle& operator=(const ScopedModuleHandle&) = delete;
+
   ~ScopedModuleHandle();
 
   //! \return The module handle being managed.
@@ -75,8 +79,6 @@
 
  private:
   ModuleHandle handle_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedModuleHandle);
 };
 
 }  // namespace test
diff --git a/test/scoped_temp_dir.h b/test/scoped_temp_dir.h
index a648758..a133190 100644
--- a/test/scoped_temp_dir.h
+++ b/test/scoped_temp_dir.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_TEST_SCOPED_TEMP_DIR_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 
 namespace crashpad {
 namespace test {
@@ -29,6 +28,10 @@
 class ScopedTempDir {
  public:
   ScopedTempDir();
+
+  ScopedTempDir(const ScopedTempDir&) = delete;
+  ScopedTempDir& operator=(const ScopedTempDir&) = delete;
+
   ~ScopedTempDir();
 
   //! \brief Returns the path of the temporary directory.
@@ -54,8 +57,6 @@
   static void RecursivelyDeleteTemporaryDirectory(const base::FilePath& path);
 
   base::FilePath path_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTempDir);
 };
 
 }  // namespace test
diff --git a/test/test_paths.h b/test/test_paths.h
index 89ca485..72bb155 100644
--- a/test/test_paths.h
+++ b/test/test_paths.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_TEST_TEST_PATHS_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 
 namespace crashpad {
@@ -60,6 +59,10 @@
 #endif  // OS_WIN && ARCH_CPU_64_BITS
   };
 
+  TestPaths() = delete;
+  TestPaths(const TestPaths&) = delete;
+  TestPaths& operator=(const TestPaths&) = delete;
+
   //! \brief Returns the pathname of the currently-running test executable.
   //!
   //! On failure, aborts execution.
@@ -140,8 +143,6 @@
   //! with Architecture::kDefault.
   static bool Has32BitBuildArtifacts();
 #endif  // OS_WIN && ARCH_CPU_64_BITS
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(TestPaths);
 };
 
 }  // namespace test
diff --git a/test/win/win_child_process.h b/test/win/win_child_process.h
index a28da65..a93f3ca 100644
--- a/test/win/win_child_process.h
+++ b/test/win/win_child_process.h
@@ -17,7 +17,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/win/scoped_handle.h"
 
@@ -41,6 +40,10 @@
   };
 
   WinChildProcess();
+
+  WinChildProcess(const WinChildProcess&) = delete;
+  WinChildProcess& operator=(const WinChildProcess&) = delete;
+
   virtual ~WinChildProcess() {}
 
   //! \brief Returns true if the current process is a child process.
@@ -109,8 +112,6 @@
 
   ScopedFileHANDLE pipe_read_;
   ScopedFileHANDLE pipe_write_;
-
-  DISALLOW_COPY_AND_ASSIGN(WinChildProcess);
 };
 
 }  // namespace test
diff --git a/test/win/win_child_process_test.cc b/test/win/win_child_process_test.cc
index eb38ba9..45b2dce 100644
--- a/test/win/win_child_process_test.cc
+++ b/test/win/win_child_process_test.cc
@@ -17,7 +17,6 @@
 #include <windows.h>
 #include <stdlib.h>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 
 namespace crashpad {
@@ -43,6 +42,9 @@
  public:
   TestWinChildProcess() : WinChildProcess() {}
 
+  TestWinChildProcess(const TestWinChildProcess&) = delete;
+  TestWinChildProcess& operator=(const TestWinChildProcess&) = delete;
+
   ~TestWinChildProcess() {}
 
  private:
@@ -52,8 +54,6 @@
     WriteInt(WritePipeHandle(), value);
     return testing::Test::HasFailure() ? EXIT_FAILURE : EXIT_SUCCESS;
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestWinChildProcess);
 };
 
 TEST(WinChildProcessTest, WinChildProcess) {
diff --git a/test/win/win_multiprocess.h b/test/win/win_multiprocess.h
index d145563..91bee7e 100644
--- a/test/win/win_multiprocess.h
+++ b/test/win/win_multiprocess.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "test/win/win_child_process.h"
 #include "util/file/file_io.h"
@@ -31,6 +30,9 @@
  public:
   WinMultiprocess();
 
+  WinMultiprocess(const WinMultiprocess&) = delete;
+  WinMultiprocess& operator=(const WinMultiprocess&) = delete;
+
   //! \brief Runs the test.
   //!
   //! This method establishes the testing environment by respawning the process
@@ -127,15 +129,16 @@
   class ChildProcessHelperBase : public WinChildProcess {
    public:
     ChildProcessHelperBase() {}
+
+    ChildProcessHelperBase(const ChildProcessHelperBase&) = delete;
+    ChildProcessHelperBase& operator=(const ChildProcessHelperBase&) = delete;
+
     ~ChildProcessHelperBase() override {}
 
     void CloseWritePipeForwarder() { CloseWritePipe(); }
     void CloseReadPipeForwarder() { CloseReadPipe(); }
     FileHandle ReadPipeHandleForwarder() const { return ReadPipeHandle(); }
     FileHandle WritePipeHandleForwarder() const { return WritePipeHandle(); }
-
-   private:
-    DISALLOW_COPY_AND_ASSIGN(ChildProcessHelperBase);
   };
 
   // Forwards WinChildProcess::Run to T::WinMultiprocessChild.
@@ -143,6 +146,10 @@
   class ChildProcessHelper : public ChildProcessHelperBase {
    public:
     ChildProcessHelper() {}
+
+    ChildProcessHelper(const ChildProcessHelper&) = delete;
+    ChildProcessHelper& operator=(const ChildProcessHelper&) = delete;
+
     ~ChildProcessHelper() override {}
 
    private:
@@ -154,8 +161,6 @@
         return 255;
       return EXIT_SUCCESS;
     }
-
-    DISALLOW_COPY_AND_ASSIGN(ChildProcessHelper);
   };
 
   //! \brief The subclass-provided parent routine.
@@ -197,8 +202,6 @@
   unsigned int exit_code_;
   WinChildProcess::Handles* child_handles_;
   ChildProcessHelperBase* child_process_helper_;
-
-  DISALLOW_COPY_AND_ASSIGN(WinMultiprocess);
 };
 
 }  // namespace test
diff --git a/test/win/win_multiprocess_test.cc b/test/win/win_multiprocess_test.cc
index e1a315e..60eb9d8 100644
--- a/test/win/win_multiprocess_test.cc
+++ b/test/win/win_multiprocess_test.cc
@@ -14,7 +14,6 @@
 
 #include "test/win/win_multiprocess.h"
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 
 namespace crashpad {
@@ -26,6 +25,9 @@
  public:
   TestWinMultiprocess() {}
 
+  TestWinMultiprocess(const TestWinMultiprocess&) = delete;
+  TestWinMultiprocess& operator=(const TestWinMultiprocess&) = delete;
+
  private:
   // WinMultiprocess will have already exercised the pipes.
   void WinMultiprocessParent() override { SetExpectedChildExitCode(ExitCode); }
@@ -33,34 +35,38 @@
   void WinMultiprocessChild() override {
     exit(ExitCode);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestWinMultiprocess);
 };
 
 class TestWinMultiprocessChildAsserts final : public WinMultiprocess {
  public:
   TestWinMultiprocessChildAsserts() {}
 
+  TestWinMultiprocessChildAsserts(const TestWinMultiprocessChildAsserts&) =
+      delete;
+  TestWinMultiprocessChildAsserts& operator=(
+      const TestWinMultiprocessChildAsserts&) = delete;
+
  private:
   void WinMultiprocessParent() override { SetExpectedChildExitCode(255); }
   void WinMultiprocessChild() override {
     ASSERT_FALSE(true);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestWinMultiprocessChildAsserts);
 };
 
 class TestWinMultiprocessChildExpects final : public WinMultiprocess {
  public:
   TestWinMultiprocessChildExpects() {}
 
+  TestWinMultiprocessChildExpects(const TestWinMultiprocessChildExpects&) =
+      delete;
+  TestWinMultiprocessChildExpects& operator=(
+      const TestWinMultiprocessChildExpects&) = delete;
+
  private:
   void WinMultiprocessParent() override { SetExpectedChildExitCode(255); }
   void WinMultiprocessChild() override {
     EXPECT_FALSE(true);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestWinMultiprocessChildExpects);
 };
 
 TEST(WinMultiprocess, WinMultiprocess) {
diff --git a/test/win/win_multiprocess_with_temp_dir.h b/test/win/win_multiprocess_with_temp_dir.h
index 6840cc6..5e47c22 100644
--- a/test/win/win_multiprocess_with_temp_dir.h
+++ b/test/win/win_multiprocess_with_temp_dir.h
@@ -22,7 +22,6 @@
 #include <string>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "test/scoped_temp_dir.h"
 #include "test/win/win_multiprocess.h"
 
@@ -40,6 +39,10 @@
  public:
   WinMultiprocessWithTempDir();
 
+  WinMultiprocessWithTempDir(const WinMultiprocessWithTempDir&) = delete;
+  WinMultiprocessWithTempDir& operator=(const WinMultiprocessWithTempDir&) =
+      delete;
+
  protected:
   void WinMultiprocessParentBeforeChild() override;
   void WinMultiprocessParentAfterChild(HANDLE child) override;
@@ -51,6 +54,11 @@
   class ScopedEnvironmentVariable {
    public:
     explicit ScopedEnvironmentVariable(const wchar_t* name);
+
+    ScopedEnvironmentVariable(const ScopedEnvironmentVariable&) = delete;
+    ScopedEnvironmentVariable& operator=(const ScopedEnvironmentVariable&) =
+        delete;
+
     ~ScopedEnvironmentVariable();
 
     std::wstring GetValue() const;
@@ -65,14 +73,10 @@
     std::wstring original_value_;
     const wchar_t* name_;
     bool was_defined_;
-
-    DISALLOW_COPY_AND_ASSIGN(ScopedEnvironmentVariable);
   };
 
   std::unique_ptr<ScopedTempDir> temp_dir_;
   ScopedEnvironmentVariable temp_dir_env_;
-
-  DISALLOW_COPY_AND_ASSIGN(WinMultiprocessWithTempDir);
 };
 
 }  // namespace test
diff --git a/tools/mac/exception_port_tool.cc b/tools/mac/exception_port_tool.cc
index 9e977b4..2fdc580 100644
--- a/tools/mac/exception_port_tool.cc
+++ b/tools/mac/exception_port_tool.cc
@@ -27,7 +27,6 @@
 
 #include "base/mac/mach_logging.h"
 #include "base/mac/scoped_mach_port.h"
-#include "base/macros.h"
 #include "tools/tool_support.h"
 #include "util/mach/bootstrap.h"
 #include "util/mach/exception_ports.h"
@@ -65,6 +64,9 @@
       : send_rights_() {
   }
 
+  MachSendRightPool(const MachSendRightPool&) = delete;
+  MachSendRightPool& operator=(const MachSendRightPool&) = delete;
+
   ~MachSendRightPool() {
     for (mach_port_t send_right : send_rights_) {
       kern_return_t kr = mach_port_deallocate(mach_task_self(), send_right);
@@ -94,8 +96,6 @@
 
  private:
   std::vector<mach_port_t> send_rights_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachSendRightPool);
 };
 
 struct ExceptionHandlerDescription {
diff --git a/tools/tool_support.h b/tools/tool_support.h
index 48f412f..fd4955e 100644
--- a/tools/tool_support.h
+++ b/tools/tool_support.h
@@ -18,7 +18,6 @@
 #include <string>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "base/strings/string_piece.h"
 #include "build/build_config.h"
 
@@ -27,6 +26,10 @@
 //! \brief Common functions used by command line tools.
 class ToolSupport {
  public:
+  ToolSupport() = delete;
+  ToolSupport(const ToolSupport&) = delete;
+  ToolSupport& operator=(const ToolSupport&) = delete;
+
   //! \brief Handles `--version`.
   //!
   //! \param[in] me The tool’s name, the basename of `argv[0]`.
@@ -83,9 +86,6 @@
   //! Wmain().
   static std::string FilePathToCommandLineArgument(
       const base::FilePath& file_path);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(ToolSupport);
 };
 
 }  // namespace crashpad
diff --git a/util/file/delimited_file_reader.h b/util/file/delimited_file_reader.h
index 93fd738..16bef25 100644
--- a/util/file/delimited_file_reader.h
+++ b/util/file/delimited_file_reader.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/file/file_reader.h"
 
 namespace crashpad {
@@ -51,6 +50,10 @@
   };
 
   explicit DelimitedFileReader(FileReaderInterface* file_reader);
+
+  DelimitedFileReader(const DelimitedFileReader&) = delete;
+  DelimitedFileReader& operator=(const DelimitedFileReader&) = delete;
+
   ~DelimitedFileReader();
 
   //! \brief Reads a single field from the file.
@@ -84,8 +87,6 @@
   uint16_t buf_pos_;  // Index into buf_ of the start of the next field.
   uint16_t buf_len_;  // The size of buf_ that’s been filled.
   bool eof_;  // Caches the EOF signal when detected following a partial field.
-
-  DISALLOW_COPY_AND_ASSIGN(DelimitedFileReader);
 };
 
 }  // namespace crashpad
diff --git a/util/file/directory_reader.h b/util/file/directory_reader.h
index d397692..096d120 100644
--- a/util/file/directory_reader.h
+++ b/util/file/directory_reader.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_UTIL_FILE_DIRECTORY_READER_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 
 #if defined(OS_POSIX)
@@ -48,6 +47,10 @@
   };
 
   DirectoryReader();
+
+  DirectoryReader(const DirectoryReader&) = delete;
+  DirectoryReader& operator=(const DirectoryReader&) = delete;
+
   ~DirectoryReader();
 
   //! \brief Opens the directory specified by \a path for reading.
@@ -78,8 +81,6 @@
   ScopedSearchHANDLE handle_;
   bool first_entry_;
 #endif  // OS_POSIX
-
-  DISALLOW_COPY_AND_ASSIGN(DirectoryReader);
 };
 
 }  // namespace crashpad
diff --git a/util/file/file_io.cc b/util/file/file_io.cc
index 3bd86cc..48da638 100644
--- a/util/file/file_io.cc
+++ b/util/file/file_io.cc
@@ -16,7 +16,6 @@
 
 #include "base/check_op.h"
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 
 namespace crashpad {
@@ -27,6 +26,10 @@
  public:
   explicit FileIOReadExactly(FileHandle file)
       : ReadExactlyInternal(), file_(file) {}
+
+  FileIOReadExactly(const FileIOReadExactly&) = delete;
+  FileIOReadExactly& operator=(const FileIOReadExactly&) = delete;
+
   ~FileIOReadExactly() {}
 
  private:
@@ -41,13 +44,15 @@
   }
 
   FileHandle file_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileIOReadExactly);
 };
 
 class FileIOWriteAll final : public internal::WriteAllInternal {
  public:
   explicit FileIOWriteAll(FileHandle file) : WriteAllInternal(), file_(file) {}
+
+  FileIOWriteAll(const FileIOWriteAll&) = delete;
+  FileIOWriteAll& operator=(const FileIOWriteAll&) = delete;
+
   ~FileIOWriteAll() {}
 
  private:
@@ -57,8 +62,6 @@
   }
 
   FileHandle file_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileIOWriteAll);
 };
 
 }  // namespace
diff --git a/util/file/file_io.h b/util/file/file_io.h
index 3b6d767..526debd 100644
--- a/util/file/file_io.h
+++ b/util/file/file_io.h
@@ -164,6 +164,9 @@
 //! FileReaderInterface::ReadExactly() instead.
 class ReadExactlyInternal {
  public:
+  ReadExactlyInternal(const ReadExactlyInternal&) = delete;
+  ReadExactlyInternal& operator=(const ReadExactlyInternal&) = delete;
+
   //! \brief Calls Read(), retrying following a short read, ensuring that
   //!     exactly \a size bytes are read.
   //!
@@ -182,8 +185,6 @@
   //! \return The number of bytes read and placed into \a buffer, or `-1` on
   //!     error. When returning `-1`, if \a can_log is `true`, logs a message.
   virtual FileOperationResult Read(void* buffer, size_t size, bool can_log) = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(ReadExactlyInternal);
 };
 
 //! \brief The internal implementation of WriteFile() and its wrappers.
@@ -194,6 +195,9 @@
 //! FileWriterInterface::Write() instead.
 class WriteAllInternal {
  public:
+  WriteAllInternal(const WriteAllInternal&) = delete;
+  WriteAllInternal& operator=(const WriteAllInternal&) = delete;
+
   //! \brief Calls Write(), retrying following a short write, ensuring that
   //!     exactly \a size bytes are written.
   //!
@@ -210,8 +214,6 @@
   //!
   //! \return The number of bytes written from \a buffer, or `-1` on error.
   virtual FileOperationResult Write(const void* buffer, size_t size) = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(WriteAllInternal);
 };
 
 //! \brief Writes to a file, retrying when interrupted on POSIX.
diff --git a/util/file/file_io_test.cc b/util/file/file_io_test.cc
index fc61857..abfef12 100644
--- a/util/file/file_io_test.cc
+++ b/util/file/file_io_test.cc
@@ -22,7 +22,6 @@
 #include "base/atomicops.h"
 #include "base/cxx17_backports.h"
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include "test/errors.h"
@@ -42,6 +41,10 @@
 class MockReadExactly : public internal::ReadExactlyInternal {
  public:
   MockReadExactly() : ReadExactlyInternal() {}
+
+  MockReadExactly(const MockReadExactly&) = delete;
+  MockReadExactly& operator=(const MockReadExactly&) = delete;
+
   ~MockReadExactly() {}
 
   // Since it’s more convenient for the test to use uintptr_t than void*,
@@ -57,9 +60,6 @@
   FileOperationResult Read(void* data, size_t size, bool can_log) {
     return ReadInt(reinterpret_cast<uintptr_t>(data), size, can_log);
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MockReadExactly);
 };
 
 TEST(FileIO, ReadExactly_Zero) {
@@ -239,6 +239,10 @@
 class MockWriteAll : public internal::WriteAllInternal {
  public:
   MockWriteAll() : WriteAllInternal() {}
+
+  MockWriteAll(const MockWriteAll&) = delete;
+  MockWriteAll& operator=(const MockWriteAll&) = delete;
+
   ~MockWriteAll() {}
 
   // Since it’s more convenient for the test to use uintptr_t than const void*,
@@ -254,9 +258,6 @@
   FileOperationResult Write(const void* data, size_t size) {
     return WriteInt(reinterpret_cast<uintptr_t>(data), size);
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MockWriteAll);
 };
 
 TEST(FileIO, WriteAll_Zero) {
@@ -582,6 +583,9 @@
   LockingTestThread()
       : file_(), lock_type_(), iterations_(), actual_iterations_() {}
 
+  LockingTestThread(const LockingTestThread&) = delete;
+  LockingTestThread& operator=(const LockingTestThread&) = delete;
+
   void Init(FileHandle file,
             FileLocking lock_type,
             int iterations,
@@ -608,8 +612,6 @@
   FileLocking lock_type_;
   int iterations_;
   base::subtle::Atomic32* actual_iterations_;
-
-  DISALLOW_COPY_AND_ASSIGN(LockingTestThread);
 };
 
 void LockingTest(FileLocking main_lock, FileLocking other_locks) {
diff --git a/util/file/file_reader.cc b/util/file/file_reader.cc
index 6f272f0..f22bd7e 100644
--- a/util/file/file_reader.cc
+++ b/util/file/file_reader.cc
@@ -26,6 +26,10 @@
  public:
   explicit FileReaderReadExactly(FileReaderInterface* file_reader)
       : ReadExactlyInternal(), file_reader_(file_reader) {}
+
+  FileReaderReadExactly(const FileReaderReadExactly&) = delete;
+  FileReaderReadExactly& operator=(const FileReaderReadExactly&) = delete;
+
   ~FileReaderReadExactly() {}
 
  private:
@@ -36,8 +40,6 @@
   }
 
   FileReaderInterface* file_reader_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(FileReaderReadExactly);
 };
 
 }  // namespace
diff --git a/util/file/file_reader.h b/util/file/file_reader.h
index d44be1c..f24366c 100644
--- a/util/file/file_reader.h
+++ b/util/file/file_reader.h
@@ -18,7 +18,6 @@
 #include <sys/types.h>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/file/file_seeker.h"
 
@@ -65,6 +64,10 @@
 class WeakFileHandleFileReader : public FileReaderInterface {
  public:
   explicit WeakFileHandleFileReader(FileHandle file_handle);
+
+  WeakFileHandleFileReader(const WeakFileHandleFileReader&) = delete;
+  WeakFileHandleFileReader& operator=(const WeakFileHandleFileReader&) = delete;
+
   ~WeakFileHandleFileReader() override;
 
   // FileReaderInterface:
@@ -89,8 +92,6 @@
   // construction because no file descriptor will be available until
   // FileReader::Open() is called.
   friend class FileReader;
-
-  DISALLOW_COPY_AND_ASSIGN(WeakFileHandleFileReader);
 };
 
 //! \brief A file reader implementation that wraps traditional system file
@@ -98,6 +99,10 @@
 class FileReader : public FileReaderInterface {
  public:
   FileReader();
+
+  FileReader(const FileReader&) = delete;
+  FileReader& operator=(const FileReader&) = delete;
+
   ~FileReader() override;
 
   // FileReaderInterface:
@@ -137,8 +142,6 @@
  private:
   ScopedFileHandle file_;
   WeakFileHandleFileReader weak_file_handle_file_reader_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileReader);
 };
 
 }  // namespace crashpad
diff --git a/util/file/file_reader_test.cc b/util/file/file_reader_test.cc
index ea2dd35..bda1a3b 100644
--- a/util/file/file_reader_test.cc
+++ b/util/file/file_reader_test.cc
@@ -33,6 +33,10 @@
 class MockFileReader : public FileReaderInterface {
  public:
   MockFileReader() : FileReaderInterface() {}
+
+  MockFileReader(const MockFileReader&) = delete;
+  MockFileReader& operator=(const MockFileReader&) = delete;
+
   ~MockFileReader() override {}
 
   // Since it’s more convenient for the test to use uintptr_t than void*,
@@ -51,9 +55,6 @@
 
   // FileSeekerInterface:
   MOCK_METHOD(FileOffset, Seek, (FileOffset, int), (override));
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MockFileReader);
 };
 
 TEST(FileReader, ReadExactly_Zero) {
diff --git a/util/file/file_writer.h b/util/file/file_writer.h
index 987c0f5..4ba7a43 100644
--- a/util/file/file_writer.h
+++ b/util/file/file_writer.h
@@ -20,7 +20,6 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/file/file_seeker.h"
 
@@ -82,6 +81,10 @@
 class WeakFileHandleFileWriter : public FileWriterInterface {
  public:
   explicit WeakFileHandleFileWriter(FileHandle file_handle);
+
+  WeakFileHandleFileWriter(const WeakFileHandleFileWriter&) = delete;
+  WeakFileHandleFileWriter& operator=(const WeakFileHandleFileWriter&) = delete;
+
   ~WeakFileHandleFileWriter() override;
 
   // FileWriterInterface:
@@ -107,8 +110,6 @@
   // construction because no file descriptor will be available until
   // FileWriter::Open() is called.
   friend class FileWriter;
-
-  DISALLOW_COPY_AND_ASSIGN(WeakFileHandleFileWriter);
 };
 
 //! \brief A file writer implementation that wraps traditional system file
@@ -116,6 +117,10 @@
 class FileWriter : public FileWriterInterface {
  public:
   FileWriter();
+
+  FileWriter(const FileWriter&) = delete;
+  FileWriter& operator=(const FileWriter&) = delete;
+
   ~FileWriter() override;
 
   // FileWriterInterface:
@@ -179,8 +184,6 @@
  private:
   ScopedFileHandle file_;
   WeakFileHandleFileWriter weak_file_handle_file_writer_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileWriter);
 };
 
 }  // namespace crashpad
diff --git a/util/file/output_stream_file_writer.h b/util/file/output_stream_file_writer.h
index 6bf1c2c..60965f9 100644
--- a/util/file/output_stream_file_writer.h
+++ b/util/file/output_stream_file_writer.h
@@ -17,7 +17,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/file/file_writer.h"
 
 namespace crashpad {
@@ -31,6 +30,10 @@
   //! \param[in] output_stream The output stream that this object writes to.
   explicit OutputStreamFileWriter(
       std::unique_ptr<OutputStreamInterface> output_stream);
+
+  OutputStreamFileWriter(const OutputStreamFileWriter&) = delete;
+  OutputStreamFileWriter& operator=(const OutputStreamFileWriter&) = delete;
+
   ~OutputStreamFileWriter() override;
 
   // FileWriterInterface:
@@ -53,8 +56,6 @@
   std::unique_ptr<OutputStreamInterface> output_stream_;
   bool flush_needed_;
   bool flushed_;
-
-  DISALLOW_COPY_AND_ASSIGN(OutputStreamFileWriter);
 };
 
 }  // namespace crashpad
diff --git a/util/file/string_file.h b/util/file/string_file.h
index 313310e..bd68987 100644
--- a/util/file/string_file.h
+++ b/util/file/string_file.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "base/numerics/safe_math.h"
 #include "util/file/file_io.h"
 #include "util/file/file_reader.h"
@@ -37,6 +36,10 @@
 class StringFile : public FileReaderInterface, public FileWriterInterface {
  public:
   StringFile();
+
+  StringFile(const StringFile&) = delete;
+  StringFile& operator=(const StringFile&) = delete;
+
   ~StringFile() override;
 
   //! \brief Returns a string containing the virtual file’s contents.
@@ -72,8 +75,6 @@
   //!     report file offsets. The implementation must take care when converting
   //!     between these distinct types.
   base::CheckedNumeric<size_t> offset_;
-
-  DISALLOW_COPY_AND_ASSIGN(StringFile);
 };
 
 }  // namespace crashpad
diff --git a/util/fuchsia/scoped_task_suspend.h b/util/fuchsia/scoped_task_suspend.h
index afe497b..49a73cf 100644
--- a/util/fuchsia/scoped_task_suspend.h
+++ b/util/fuchsia/scoped_task_suspend.h
@@ -21,7 +21,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -36,12 +35,14 @@
 class ScopedTaskSuspend {
  public:
   explicit ScopedTaskSuspend(const zx::process& process);
+
+  ScopedTaskSuspend(const ScopedTaskSuspend&) = delete;
+  ScopedTaskSuspend& operator=(const ScopedTaskSuspend&) = delete;
+
   ~ScopedTaskSuspend() = default;
 
  private:
   zx::suspend_token suspend_token_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTaskSuspend);
 };
 
 }  // namespace crashpad
diff --git a/util/ios/ios_intermediate_dump_data.h b/util/ios/ios_intermediate_dump_data.h
index def5ab9..c2613e9 100644
--- a/util/ios/ios_intermediate_dump_data.h
+++ b/util/ios/ios_intermediate_dump_data.h
@@ -18,7 +18,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/ios/ios_intermediate_dump_object.h"
 
 namespace crashpad {
@@ -28,6 +27,10 @@
 class IOSIntermediateDumpData : public IOSIntermediateDumpObject {
  public:
   IOSIntermediateDumpData();
+
+  IOSIntermediateDumpData(const IOSIntermediateDumpData&) = delete;
+  IOSIntermediateDumpData& operator=(const IOSIntermediateDumpData&) = delete;
+
   ~IOSIntermediateDumpData() override;
 
   //! \brief Constructs a new data object which owns a std::vector<uint8_t>.
@@ -58,8 +61,6 @@
   bool GetValueInternal(void* value, size_t value_size) const;
 
   std::vector<uint8_t> data_;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpData);
 };
 
 }  // namespace internal
diff --git a/util/ios/ios_intermediate_dump_list.h b/util/ios/ios_intermediate_dump_list.h
index 42d1ef2..e2ad925 100644
--- a/util/ios/ios_intermediate_dump_list.h
+++ b/util/ios/ios_intermediate_dump_list.h
@@ -17,7 +17,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "util/ios/ios_intermediate_dump_map.h"
 #include "util/ios/ios_intermediate_dump_object.h"
 
@@ -30,6 +29,10 @@
 class IOSIntermediateDumpList : public IOSIntermediateDumpObject {
  public:
   IOSIntermediateDumpList();
+
+  IOSIntermediateDumpList(const IOSIntermediateDumpList&) = delete;
+  IOSIntermediateDumpList& operator=(const IOSIntermediateDumpList&) = delete;
+
   ~IOSIntermediateDumpList() override;
 
   // IOSIntermediateDumpObject:
@@ -45,8 +48,6 @@
 
  private:
   VectorType list_;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpList);
 };
 
 }  // namespace internal
diff --git a/util/ios/ios_intermediate_dump_map.h b/util/ios/ios_intermediate_dump_map.h
index a11d6a6..ca26cb3 100644
--- a/util/ios/ios_intermediate_dump_map.h
+++ b/util/ios/ios_intermediate_dump_map.h
@@ -18,7 +18,6 @@
 #include <map>
 #include <memory>
 
-#include "base/macros.h"
 #include "util/ios/ios_intermediate_dump_format.h"
 #include "util/ios/ios_intermediate_dump_object.h"
 
@@ -34,6 +33,10 @@
 class IOSIntermediateDumpMap : public IOSIntermediateDumpObject {
  public:
   IOSIntermediateDumpMap();
+
+  IOSIntermediateDumpMap(const IOSIntermediateDumpMap&) = delete;
+  IOSIntermediateDumpMap& operator=(const IOSIntermediateDumpMap&) = delete;
+
   ~IOSIntermediateDumpMap() override;
 
   // IOSIntermediateDumpObject:
@@ -60,8 +63,6 @@
   friend class IOSIntermediateDumpReader;
   std::map<IntermediateDumpKey, std::unique_ptr<IOSIntermediateDumpObject>>
       map_;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpMap);
 };
 
 }  // namespace internal
diff --git a/util/ios/ios_intermediate_dump_object.h b/util/ios/ios_intermediate_dump_object.h
index 21ccd29..fde7e1e 100644
--- a/util/ios/ios_intermediate_dump_object.h
+++ b/util/ios/ios_intermediate_dump_object.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_OBJECT_H_
 #define CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_OBJECT_H_
 
-#include "base/macros.h"
 #include "util/ios/ios_intermediate_dump_writer.h"
 
 namespace crashpad {
@@ -25,6 +24,11 @@
 class IOSIntermediateDumpObject {
  public:
   IOSIntermediateDumpObject();
+
+  IOSIntermediateDumpObject(const IOSIntermediateDumpObject&) = delete;
+  IOSIntermediateDumpObject& operator=(const IOSIntermediateDumpObject&) =
+      delete;
+
   virtual ~IOSIntermediateDumpObject();
 
   //! \brief The type of object stored in the intermediate dump.  .
@@ -41,8 +45,6 @@
 
   //! \brief Returns a type.
   virtual Type GetType() const = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpObject);
 };
 
 }  // namespace internal
diff --git a/util/ios/ios_intermediate_dump_reader.h b/util/ios/ios_intermediate_dump_reader.h
index 2966e7c..e1c4217 100644
--- a/util/ios/ios_intermediate_dump_reader.h
+++ b/util/ios/ios_intermediate_dump_reader.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_READER_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/file/file_reader.h"
 #include "util/ios/ios_intermediate_dump_map.h"
 
@@ -28,6 +27,10 @@
  public:
   IOSIntermediateDumpReader() {}
 
+  IOSIntermediateDumpReader(const IOSIntermediateDumpReader&) = delete;
+  IOSIntermediateDumpReader& operator=(const IOSIntermediateDumpReader&) =
+      delete;
+
   //! \brief Open and parses \a path, ignoring empty files.
   //!
   //! Will attempt to parse the binary file, similar to a JSON file, using the
@@ -48,8 +51,6 @@
  private:
   bool Parse(FileReaderInterface* reader, FileOffset file_size);
   IOSIntermediateDumpMap minidump_;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpReader);
 };
 
 }  // namespace internal
diff --git a/util/ios/ios_intermediate_dump_writer.h b/util/ios/ios_intermediate_dump_writer.h
index 0f8b1b7..836fbe7 100644
--- a/util/ios/ios_intermediate_dump_writer.h
+++ b/util/ios/ios_intermediate_dump_writer.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_WRITER_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/ios/ios_intermediate_dump_format.h"
 
 namespace crashpad {
@@ -42,6 +41,10 @@
  public:
   IOSIntermediateDumpWriter() = default;
 
+  IOSIntermediateDumpWriter(const IOSIntermediateDumpWriter&) = delete;
+  IOSIntermediateDumpWriter& operator=(const IOSIntermediateDumpWriter&) =
+      delete;
+
   //! \brief Command instructions for the intermediate dump reader.
   enum class CommandType : uint8_t {
     //! \brief Indicates a new map, followed by associated key.
@@ -88,11 +91,14 @@
         : writer_(writer) {
       writer->RootMapStart();
     }
+
+    ScopedRootMap(const ScopedRootMap&) = delete;
+    ScopedRootMap& operator=(const ScopedRootMap&) = delete;
+
     ~ScopedRootMap() { writer_->RootMapEnd(); }
 
    private:
     IOSIntermediateDumpWriter* writer_;
-    DISALLOW_COPY_AND_ASSIGN(ScopedRootMap);
   };
 
   //! \brief A scoped wrapper for calls to MapStart and MapEnd.
@@ -103,11 +109,14 @@
         : writer_(writer) {
       writer->MapStart(key);
     }
+
+    ScopedMap(const ScopedMap&) = delete;
+    ScopedMap& operator=(const ScopedMap&) = delete;
+
     ~ScopedMap() { writer_->MapEnd(); }
 
    private:
     IOSIntermediateDumpWriter* writer_;
-    DISALLOW_COPY_AND_ASSIGN(ScopedMap);
   };
 
   //! \brief A scoped wrapper for calls to ArrayMapStart and MapEnd.
@@ -117,11 +126,14 @@
         : writer_(writer) {
       writer->ArrayMapStart();
     }
+
+    ScopedArrayMap(const ScopedArrayMap&) = delete;
+    ScopedArrayMap& operator=(const ScopedArrayMap&) = delete;
+
     ~ScopedArrayMap() { writer_->MapEnd(); }
 
    private:
     IOSIntermediateDumpWriter* writer_;
-    DISALLOW_COPY_AND_ASSIGN(ScopedArrayMap);
   };
 
   //! \brief A scoped wrapper for calls to ArrayStart and ArrayEnd.
@@ -132,11 +144,14 @@
         : writer_(writer) {
       writer->ArrayStart(key);
     }
+
+    ScopedArray(const ScopedArray&) = delete;
+    ScopedArray& operator=(const ScopedArray&) = delete;
+
     ~ScopedArray() { writer_->ArrayEnd(); }
 
    private:
     IOSIntermediateDumpWriter* writer_;
-    DISALLOW_COPY_AND_ASSIGN(ScopedArray);
   };
 
   //! \return The `true` if able to AddPropertyInternal the \a key \a value
@@ -187,8 +202,6 @@
   bool RootMapEnd();
 
   int fd_;
-
-  DISALLOW_COPY_AND_ASSIGN(IOSIntermediateDumpWriter);
 };
 
 }  // namespace internal
diff --git a/util/ios/scoped_vm_read.h b/util/ios/scoped_vm_read.h
index 3f396d4..3fa1249 100644
--- a/util/ios/scoped_vm_read.h
+++ b/util/ios/scoped_vm_read.h
@@ -17,7 +17,6 @@
 
 #include <mach/mach.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 namespace internal {
@@ -28,6 +27,10 @@
 class ScopedVMReadInternal {
  public:
   ScopedVMReadInternal();
+
+  ScopedVMReadInternal(const ScopedVMReadInternal&) = delete;
+  ScopedVMReadInternal& operator=(const ScopedVMReadInternal&) = delete;
+
   ~ScopedVMReadInternal();
 
   //! \brief Releases any previously read data and vm_reads \a data. Logs an
@@ -51,8 +54,6 @@
 
   // The size of the pages that were actually read.
   mach_msg_type_number_t vm_read_data_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedVMReadInternal);
 };
 
 //! \brief A scoped wrapper for calls to `vm_read` and `vm_deallocate`.  Allows
@@ -63,6 +64,10 @@
 class ScopedVMRead {
  public:
   ScopedVMRead() : internal_() {}
+
+  ScopedVMRead(const ScopedVMRead&) = delete;
+  ScopedVMRead& operator=(const ScopedVMRead&) = delete;
+
   ~ScopedVMRead() {}
 
   //! \brief Releases any previously read data and vm_reads data.
@@ -96,7 +101,6 @@
 
  private:
   ScopedVMReadInternal internal_;
-  DISALLOW_COPY_AND_ASSIGN(ScopedVMRead);
 };
 
 }  // namespace internal
diff --git a/util/linux/auxiliary_vector.h b/util/linux/auxiliary_vector.h
index a6a44c4..63a1154 100644
--- a/util/linux/auxiliary_vector.h
+++ b/util/linux/auxiliary_vector.h
@@ -20,7 +20,6 @@
 #include <map>
 
 #include "base/logging.h"
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/misc/reinterpret_bytes.h"
 
@@ -30,6 +29,10 @@
 class AuxiliaryVector {
  public:
   AuxiliaryVector();
+
+  AuxiliaryVector(const AuxiliaryVector&) = delete;
+  AuxiliaryVector& operator=(const AuxiliaryVector&) = delete;
+
   ~AuxiliaryVector();
 
   //! \brief Initializes this object with the auxiliary vector for the process
@@ -65,8 +68,6 @@
  private:
   template <typename ULong>
   bool Read(PtraceConnection* connection);
-
-  DISALLOW_COPY_AND_ASSIGN(AuxiliaryVector);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/auxiliary_vector_test.cc b/util/linux/auxiliary_vector_test.cc
index 2f6c942..75c20d1 100644
--- a/util/linux/auxiliary_vector_test.cc
+++ b/util/linux/auxiliary_vector_test.cc
@@ -21,7 +21,6 @@
 #include <limits>
 
 #include "base/bit_cast.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
 #include "test/errors.h"
@@ -151,14 +150,16 @@
 class ReadChildTest : public Multiprocess {
  public:
   ReadChildTest() : Multiprocess() {}
+
+  ReadChildTest(const ReadChildTest&) = delete;
+  ReadChildTest& operator=(const ReadChildTest&) = delete;
+
   ~ReadChildTest() {}
 
  private:
   void MultiprocessParent() override { TestAgainstCloneOrSelf(ChildPID()); }
 
   void MultiprocessChild() override { CheckedReadFileAtEOF(ReadPipeHandle()); }
-
-  DISALLOW_COPY_AND_ASSIGN(ReadChildTest);
 };
 
 TEST(AuxiliaryVector, ReadChild) {
diff --git a/util/linux/direct_ptrace_connection.h b/util/linux/direct_ptrace_connection.h
index 99ad233..a120889 100644
--- a/util/linux/direct_ptrace_connection.h
+++ b/util/linux/direct_ptrace_connection.h
@@ -20,7 +20,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/linux/ptracer.h"
 #include "util/linux/scoped_ptrace_attach.h"
@@ -36,6 +35,10 @@
 class DirectPtraceConnection : public PtraceConnection {
  public:
   DirectPtraceConnection();
+
+  DirectPtraceConnection(const DirectPtraceConnection&) = delete;
+  DirectPtraceConnection& operator=(const DirectPtraceConnection&) = delete;
+
   ~DirectPtraceConnection();
 
   //! \brief Initializes this connection for the process whose process ID is
@@ -65,8 +68,6 @@
   pid_t pid_;
   Ptracer ptracer_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(DirectPtraceConnection);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/exception_handler_client.cc b/util/linux/exception_handler_client.cc
index 98edb30..608a199 100644
--- a/util/linux/exception_handler_client.cc
+++ b/util/linux/exception_handler_client.cc
@@ -46,6 +46,9 @@
     DPLOG_IF(ERROR, !mask_is_set_) << "sigprocmask";
   }
 
+  ScopedSigprocmaskRestore(const ScopedSigprocmaskRestore&) = delete;
+  ScopedSigprocmaskRestore& operator=(const ScopedSigprocmaskRestore&) = delete;
+
   ~ScopedSigprocmaskRestore() {
     if (mask_is_set_ &&
         sys_sigprocmask(SIG_SETMASK, &orig_mask_, nullptr) != 0) {
@@ -56,8 +59,6 @@
  private:
   kernel_sigset_t orig_mask_;
   bool mask_is_set_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSigprocmaskRestore);
 };
 
 }  // namespace
diff --git a/util/linux/exception_handler_client.h b/util/linux/exception_handler_client.h
index 4e10fa6..7b28bd4 100644
--- a/util/linux/exception_handler_client.h
+++ b/util/linux/exception_handler_client.h
@@ -18,7 +18,6 @@
 #include <sys/socket.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "util/linux/exception_handler_protocol.h"
 
 namespace crashpad {
@@ -33,6 +32,9 @@
   //!     clients.
   ExceptionHandlerClient(int sock, bool multiple_clients);
 
+  ExceptionHandlerClient(const ExceptionHandlerClient&) = delete;
+  ExceptionHandlerClient& operator=(const ExceptionHandlerClient&) = delete;
+
   ~ExceptionHandlerClient();
 
   //! \brief Communicates with the handler to determine its credentials.
@@ -78,8 +80,6 @@
   pid_t ptracer_;
   bool can_set_ptracer_;
   bool multiple_clients_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerClient);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/exception_handler_protocol.h b/util/linux/exception_handler_protocol.h
index 60b0b1b..cbd2441 100644
--- a/util/linux/exception_handler_protocol.h
+++ b/util/linux/exception_handler_protocol.h
@@ -20,7 +20,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/file/file_io.h"
 #include "util/misc/address_types.h"
@@ -124,9 +123,11 @@
     pid_t pid;
   };
 
-#pragma pack(pop)
+  ExceptionHandlerProtocol() = delete;
+  ExceptionHandlerProtocol(const ExceptionHandlerProtocol&) = delete;
+  ExceptionHandlerProtocol& operator=(const ExceptionHandlerProtocol&) = delete;
 
-  DISALLOW_IMPLICIT_CONSTRUCTORS(ExceptionHandlerProtocol);
+#pragma pack(pop)
 };
 
 }  // namespace crashpad
diff --git a/util/linux/memory_map.cc b/util/linux/memory_map.cc
index 0890cd6..dabc114 100644
--- a/util/linux/memory_map.cc
+++ b/util/linux/memory_map.cc
@@ -190,6 +190,9 @@
 
   SparseReverseIterator() : mappings_(), riter_(mappings_.rend()) {}
 
+  SparseReverseIterator(const SparseReverseIterator&) = delete;
+  SparseReverseIterator& operator=(const SparseReverseIterator&) = delete;
+
   // Iterator:
   const MemoryMap::Mapping* Next() override {
     return riter_ == mappings_.rend() ? nullptr : *(riter_++);
@@ -200,8 +203,6 @@
  private:
   std::vector<const MemoryMap::Mapping*> mappings_;
   std::vector<const MemoryMap::Mapping*>::reverse_iterator riter_;
-
-  DISALLOW_COPY_AND_ASSIGN(SparseReverseIterator);
 };
 
 class FullReverseIterator : public MemoryMap::Iterator {
@@ -211,6 +212,9 @@
       std::vector<MemoryMap::Mapping>::const_reverse_iterator rend)
       : riter_(rbegin), rend_(rend) {}
 
+  FullReverseIterator(const FullReverseIterator&) = delete;
+  FullReverseIterator& operator=(const FullReverseIterator&) = delete;
+
   // Iterator:
   const MemoryMap::Mapping* Next() override {
     return riter_ == rend_ ? nullptr : &*riter_++;
@@ -221,8 +225,6 @@
  private:
   std::vector<MemoryMap::Mapping>::const_reverse_iterator riter_;
   std::vector<MemoryMap::Mapping>::const_reverse_iterator rend_;
-
-  DISALLOW_COPY_AND_ASSIGN(FullReverseIterator);
 };
 
 }  // namespace
diff --git a/util/linux/memory_map_test.cc b/util/linux/memory_map_test.cc
index 0ee9080..4ab7b05 100644
--- a/util/linux/memory_map_test.cc
+++ b/util/linux/memory_map_test.cc
@@ -136,6 +136,10 @@
 class MapChildTest : public Multiprocess {
  public:
   MapChildTest() : Multiprocess(), page_size_(getpagesize()) {}
+
+  MapChildTest(const MapChildTest&) = delete;
+  MapChildTest& operator=(const MapChildTest&) = delete;
+
   ~MapChildTest() {}
 
  private:
@@ -249,8 +253,6 @@
   }
 
   const size_t page_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(MapChildTest);
 };
 
 TEST(MemoryMap, MapChild) {
@@ -326,6 +328,10 @@
 class MapRunningChildTest : public Multiprocess {
  public:
   MapRunningChildTest() : Multiprocess(), page_size_(getpagesize()) {}
+
+  MapRunningChildTest(const MapRunningChildTest&) = delete;
+  MapRunningChildTest& operator=(const MapRunningChildTest&) = delete;
+
   ~MapRunningChildTest() {}
 
  private:
@@ -384,8 +390,6 @@
 
   static constexpr size_t kNumMappings = 1024;
   const size_t page_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(MapRunningChildTest);
 };
 
 TEST(MemoryMap, MapRunningChild) {
diff --git a/util/linux/proc_stat_reader.h b/util/linux/proc_stat_reader.h
index 6eae8fb..193330c 100644
--- a/util/linux/proc_stat_reader.h
+++ b/util/linux/proc_stat_reader.h
@@ -21,7 +21,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/misc/initialization_state_dcheck.h"
 
@@ -31,6 +30,10 @@
 class ProcStatReader {
  public:
   ProcStatReader();
+
+  ProcStatReader(const ProcStatReader&) = delete;
+  ProcStatReader& operator=(const ProcStatReader&) = delete;
+
   ~ProcStatReader();
 
   //! \brief Initializes the reader.
@@ -74,8 +77,6 @@
   std::string contents_;
   size_t third_column_position_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcStatReader);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/proc_task_reader_test.cc b/util/linux/proc_task_reader_test.cc
index a93b2d4..ab2650f 100644
--- a/util/linux/proc_task_reader_test.cc
+++ b/util/linux/proc_task_reader_test.cc
@@ -14,7 +14,6 @@
 
 #include "util/linux/proc_task_reader.h"
 
-#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "gtest/gtest.h"
 #include "test/multiprocess_exec.h"
@@ -123,6 +122,9 @@
     SetChildTestMainFunction("ProcTaskTestChild");
   }
 
+  ProcTaskTest(const ProcTaskTest&) = delete;
+  ProcTaskTest& operator=(const ProcTaskTest&) = delete;
+
  private:
   bool ReadIDFromChild(std::vector<pid_t>* threads) {
     pid_t tid;
@@ -147,8 +149,6 @@
       EXPECT_TRUE(FindThreadID(ids_to_find[index], threads));
     }
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ProcTaskTest);
 };
 
 TEST(ProcTaskReader, ReadChild) {
diff --git a/util/linux/ptrace_broker.cc b/util/linux/ptrace_broker.cc
index 13c8b79..9bf133b 100644
--- a/util/linux/ptrace_broker.cc
+++ b/util/linux/ptrace_broker.cc
@@ -61,6 +61,9 @@
  public:
   AttachmentsArray() : allocation_(false), attach_count_(0) {}
 
+  AttachmentsArray(const AttachmentsArray&) = delete;
+  AttachmentsArray& operator=(const AttachmentsArray&) = delete;
+
   ~AttachmentsArray() {
     for (size_t index = 0; index < attach_count_; ++index) {
       PtraceDetach(Attachments()[index], false);
@@ -98,8 +101,6 @@
 
   ScopedMmap allocation_;
   size_t attach_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(AttachmentsArray);
 };
 
 PtraceBroker::PtraceBroker(int sock, pid_t pid, bool is_64_bit)
diff --git a/util/linux/ptrace_broker.h b/util/linux/ptrace_broker.h
index 5d90cb2..4502da2 100644
--- a/util/linux/ptrace_broker.h
+++ b/util/linux/ptrace_broker.h
@@ -19,7 +19,6 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/linux/exception_handler_protocol.h"
 #include "util/linux/ptrace_connection.h"
@@ -163,6 +162,9 @@
   //!     64-bit process.
   PtraceBroker(int sock, pid_t pid, bool is_64_bit);
 
+  PtraceBroker(const PtraceBroker&) = delete;
+  PtraceBroker& operator=(const PtraceBroker&) = delete;
+
   ~PtraceBroker();
 
   //! \brief Restricts the broker to serving the contents of files under \a
@@ -210,8 +212,6 @@
   int sock_;
   pid_t memory_pid_;
   bool tried_opening_mem_file_;
-
-  DISALLOW_COPY_AND_ASSIGN(PtraceBroker);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/ptrace_broker_test.cc b/util/linux/ptrace_broker_test.cc
index 2012df3..b07a9be 100644
--- a/util/linux/ptrace_broker_test.cc
+++ b/util/linux/ptrace_broker_test.cc
@@ -40,6 +40,10 @@
 class ScopedTimeoutThread : public Thread {
  public:
   ScopedTimeoutThread() : join_sem_(0) {}
+
+  ScopedTimeoutThread(const ScopedTimeoutThread&) = delete;
+  ScopedTimeoutThread& operator=(const ScopedTimeoutThread&) = delete;
+
   ~ScopedTimeoutThread() { EXPECT_TRUE(JoinWithTimeout(5.0)); }
 
  protected:
@@ -55,8 +59,6 @@
   }
 
   Semaphore join_sem_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTimeoutThread);
 };
 
 class RunBrokerThread : public ScopedTimeoutThread {
@@ -64,6 +66,9 @@
   RunBrokerThread(PtraceBroker* broker)
       : ScopedTimeoutThread(), broker_(broker) {}
 
+  RunBrokerThread(const RunBrokerThread&) = delete;
+  RunBrokerThread& operator=(const RunBrokerThread&) = delete;
+
   ~RunBrokerThread() {}
 
  private:
@@ -73,8 +78,6 @@
   }
 
   PtraceBroker* broker_;
-
-  DISALLOW_COPY_AND_ASSIGN(RunBrokerThread);
 };
 
 class BlockOnReadThread : public ScopedTimeoutThread {
@@ -82,6 +85,9 @@
   BlockOnReadThread(int readfd, int writefd)
       : ScopedTimeoutThread(), readfd_(readfd), writefd_(writefd) {}
 
+  BlockOnReadThread(const BlockOnReadThread&) = delete;
+  BlockOnReadThread& operator=(const BlockOnReadThread&) = delete;
+
   ~BlockOnReadThread() {}
 
  private:
@@ -98,13 +104,15 @@
 
   int readfd_;
   int writefd_;
-
-  DISALLOW_COPY_AND_ASSIGN(BlockOnReadThread);
 };
 
 class SameBitnessTest : public Multiprocess {
  public:
   SameBitnessTest() : Multiprocess(), mapping_() {}
+
+  SameBitnessTest(const SameBitnessTest&) = delete;
+  SameBitnessTest& operator=(const SameBitnessTest&) = delete;
+
   ~SameBitnessTest() {}
 
  protected:
@@ -267,8 +275,6 @@
   }
 
   ScopedMmap mapping_;
-
-  DISALLOW_COPY_AND_ASSIGN(SameBitnessTest);
 };
 
 TEST(PtraceBroker, SameBitness) {
diff --git a/util/linux/ptrace_client.h b/util/linux/ptrace_client.h
index 896a8b4..299aafc 100644
--- a/util/linux/ptrace_client.h
+++ b/util/linux/ptrace_client.h
@@ -19,7 +19,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -35,6 +34,10 @@
 class PtraceClient : public PtraceConnection {
  public:
   PtraceClient();
+
+  PtraceClient(const PtraceClient&) = delete;
+  PtraceClient& operator=(const PtraceClient&) = delete;
+
   ~PtraceClient();
 
   //! \brief Initializes this object.
@@ -69,8 +72,6 @@
   pid_t pid_;
   bool is_64_bit_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(PtraceClient);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/ptracer.h b/util/linux/ptracer.h
index 33eeb3a..696ac33 100644
--- a/util/linux/ptracer.h
+++ b/util/linux/ptracer.h
@@ -17,7 +17,6 @@
 
 #include <sys/types.h>
 
-#include "base/macros.h"
 #include "util/linux/address_types.h"
 #include "util/linux/thread_info.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -46,6 +45,9 @@
   //! \param[in] can_log Whether methods in this class can log error messages.
   explicit Ptracer(bool can_log);
 
+  Ptracer(const Ptracer&) = delete;
+  Ptracer& operator=(const Ptracer&) = delete;
+
   ~Ptracer();
 
   //! \brief Initializes this object to the bitness of the process whose process
@@ -98,8 +100,6 @@
   bool is_64_bit_;
   bool can_log_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(Ptracer);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/ptracer_test.cc b/util/linux/ptracer_test.cc
index 9a75985..7465f90 100644
--- a/util/linux/ptracer_test.cc
+++ b/util/linux/ptracer_test.cc
@@ -28,6 +28,10 @@
 class SameBitnessTest : public Multiprocess {
  public:
   SameBitnessTest() : Multiprocess() {}
+
+  SameBitnessTest(const SameBitnessTest&) = delete;
+  SameBitnessTest& operator=(const SameBitnessTest&) = delete;
+
   ~SameBitnessTest() {}
 
  private:
@@ -65,8 +69,6 @@
 
     CheckedReadFileAtEOF(ReadPipeHandle());
   }
-
-  DISALLOW_COPY_AND_ASSIGN(SameBitnessTest);
 };
 
 TEST(Ptracer, SameBitness) {
diff --git a/util/linux/scoped_pr_set_dumpable.h b/util/linux/scoped_pr_set_dumpable.h
index 1681930..7cd3aa7 100644
--- a/util/linux/scoped_pr_set_dumpable.h
+++ b/util/linux/scoped_pr_set_dumpable.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_LINUX_SCOPED_PR_SET_DUMPABLE_H_
 #define CRASHPAD_UTIL_LINUX_SCOPED_PR_SET_DUMPABLE_H_
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -30,13 +29,14 @@
   //! \param[in] may_log `true` if this object may log error messages.
   explicit ScopedPrSetDumpable(bool may_log);
 
+  ScopedPrSetDumpable(const ScopedPrSetDumpable&) = delete;
+  ScopedPrSetDumpable& operator=(const ScopedPrSetDumpable&) = delete;
+
   ~ScopedPrSetDumpable();
 
  private:
   bool was_dumpable_;
   bool may_log_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedPrSetDumpable);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/scoped_pr_set_ptracer.h b/util/linux/scoped_pr_set_ptracer.h
index 2bc8677..3d5e55c 100644
--- a/util/linux/scoped_pr_set_ptracer.h
+++ b/util/linux/scoped_pr_set_ptracer.h
@@ -17,7 +17,6 @@
 
 #include <sys/types.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -37,13 +36,14 @@
   //! \param[in] may_log if `true`, this class may log error messages.
   ScopedPrSetPtracer(pid_t pid, bool may_log);
 
+  ScopedPrSetPtracer(const ScopedPrSetPtracer&) = delete;
+  ScopedPrSetPtracer& operator=(const ScopedPrSetPtracer&) = delete;
+
   ~ScopedPrSetPtracer();
 
  private:
   bool success_;
   bool may_log_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedPrSetPtracer);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/scoped_ptrace_attach.h b/util/linux/scoped_ptrace_attach.h
index f380d25..e38464a 100644
--- a/util/linux/scoped_ptrace_attach.h
+++ b/util/linux/scoped_ptrace_attach.h
@@ -17,7 +17,6 @@
 
 #include <sys/types.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -45,6 +44,10 @@
 class ScopedPtraceAttach {
  public:
   ScopedPtraceAttach();
+
+  ScopedPtraceAttach(const ScopedPtraceAttach&) = delete;
+  ScopedPtraceAttach& operator=(const ScopedPtraceAttach&) = delete;
+
   ~ScopedPtraceAttach();
 
   //! \brief Detaches from the process by calling `ptrace()`.
@@ -61,8 +64,6 @@
 
  private:
   pid_t pid_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedPtraceAttach);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/scoped_ptrace_attach_test.cc b/util/linux/scoped_ptrace_attach_test.cc
index d009e68..b22c5ae 100644
--- a/util/linux/scoped_ptrace_attach_test.cc
+++ b/util/linux/scoped_ptrace_attach_test.cc
@@ -39,18 +39,23 @@
 class AttachTest : public Multiprocess {
  public:
   AttachTest() : Multiprocess() {}
+
+  AttachTest(const AttachTest&) = delete;
+  AttachTest& operator=(const AttachTest&) = delete;
+
   ~AttachTest() {}
 
  protected:
   const long kWord = 42;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(AttachTest);
 };
 
 class AttachToChildTest : public AttachTest {
  public:
   AttachToChildTest() : AttachTest() {}
+
+  AttachToChildTest(const AttachToChildTest&) = delete;
+  AttachToChildTest& operator=(const AttachToChildTest&) = delete;
+
   ~AttachToChildTest() {}
 
  private:
@@ -82,8 +87,6 @@
 
     CheckedReadFileAtEOF(ReadPipeHandle());
   }
-
-  DISALLOW_COPY_AND_ASSIGN(AttachToChildTest);
 };
 
 TEST(ScopedPtraceAttach, AttachChild) {
@@ -94,6 +97,10 @@
 class AttachToParentResetTest : public AttachTest {
  public:
   AttachToParentResetTest() : AttachTest() {}
+
+  AttachToParentResetTest(const AttachToParentResetTest&) = delete;
+  AttachToParentResetTest& operator=(const AttachToParentResetTest&) = delete;
+
   ~AttachToParentResetTest() {}
 
  private:
@@ -124,8 +131,6 @@
     ASSERT_EQ(ptrace(PTRACE_PEEKDATA, pid, &kWord, nullptr), -1);
     EXPECT_EQ(errno, ESRCH) << ErrnoMessage("ptrace");
   }
-
-  DISALLOW_COPY_AND_ASSIGN(AttachToParentResetTest);
 };
 
 TEST(ScopedPtraceAttach, AttachParentReset) {
@@ -136,6 +141,11 @@
 class AttachToParentDestructorTest : public AttachTest {
  public:
   AttachToParentDestructorTest() : AttachTest() {}
+
+  AttachToParentDestructorTest(const AttachToParentDestructorTest&) = delete;
+  AttachToParentDestructorTest& operator=(const AttachToParentDestructorTest&) =
+      delete;
+
   ~AttachToParentDestructorTest() {}
 
  private:
@@ -164,8 +174,6 @@
     ASSERT_EQ(ptrace(PTRACE_PEEKDATA, pid, &kWord, nullptr), -1);
     EXPECT_EQ(errno, ESRCH) << ErrnoMessage("ptrace");
   }
-
-  DISALLOW_COPY_AND_ASSIGN(AttachToParentDestructorTest);
 };
 
 TEST(ScopedPtraceAttach, AttachParentDestructor) {
diff --git a/util/linux/socket.h b/util/linux/socket.h
index d762592..f232778 100644
--- a/util/linux/socket.h
+++ b/util/linux/socket.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 
 namespace crashpad {
@@ -29,6 +28,10 @@
 //!     sockets.
 class UnixCredentialSocket {
  public:
+  UnixCredentialSocket() = delete;
+  UnixCredentialSocket(const UnixCredentialSocket&) = delete;
+  UnixCredentialSocket& operator=(const UnixCredentialSocket&) = delete;
+
   //! \brief Creates an `AF_UNIX` family socket pair with `SO_PASSCRED` set on
   //!     each socket.
   //!
@@ -86,9 +89,6 @@
                       size_t buf_size,
                       ucred* creds,
                       std::vector<ScopedFileHandle>* fds = nullptr);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(UnixCredentialSocket);
 };
 
 }  // namespace crashpad
diff --git a/util/linux/socket_test.cc b/util/linux/socket_test.cc
index d73ec0b..284953f 100644
--- a/util/linux/socket_test.cc
+++ b/util/linux/socket_test.cc
@@ -14,7 +14,6 @@
 
 #include "util/linux/socket.h"
 
-#include "base/macros.h"
 #include "base/posix/eintr_wrapper.h"
 #include "gtest/gtest.h"
 #include "util/linux/socket.h"
diff --git a/util/mach/child_port_handshake.cc b/util/mach/child_port_handshake.cc
index 433cb05..28fdbae 100644
--- a/util/mach/child_port_handshake.cc
+++ b/util/mach/child_port_handshake.cc
@@ -51,6 +51,10 @@
 class ChildPortHandshakeServer final : public ChildPortServer::Interface {
  public:
   ChildPortHandshakeServer();
+
+  ChildPortHandshakeServer(const ChildPortHandshakeServer&) = delete;
+  ChildPortHandshakeServer& operator=(const ChildPortHandshakeServer&) = delete;
+
   ~ChildPortHandshakeServer();
 
   mach_port_t RunServer(base::ScopedFD server_write_fd,
@@ -69,8 +73,6 @@
   mach_port_t port_;
   mach_msg_type_name_t right_type_;
   bool checked_in_;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildPortHandshakeServer);
 };
 
 ChildPortHandshakeServer::ChildPortHandshakeServer()
diff --git a/util/mach/child_port_handshake.h b/util/mach/child_port_handshake.h
index 429164a..0399f9b 100644
--- a/util/mach/child_port_handshake.h
+++ b/util/mach/child_port_handshake.h
@@ -155,6 +155,10 @@
   };
 
   ChildPortHandshake();
+
+  ChildPortHandshake(const ChildPortHandshake&) = delete;
+  ChildPortHandshake& operator=(const ChildPortHandshake&) = delete;
+
   ~ChildPortHandshake();
 
   //! \brief Obtains the “read” side of the pipe, to be used by the client.
@@ -321,8 +325,6 @@
   base::ScopedFD server_write_fd_;
 
   friend class test::ChildPortHandshakeTest;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildPortHandshake);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/child_port_handshake_test.cc b/util/mach/child_port_handshake_test.cc
index 44139b1..5301c4c 100644
--- a/util/mach/child_port_handshake_test.cc
+++ b/util/mach/child_port_handshake_test.cc
@@ -87,6 +87,9 @@
         test_type_(test_type) {
   }
 
+  ChildPortHandshakeTest(const ChildPortHandshakeTest&) = delete;
+  ChildPortHandshakeTest& operator=(const ChildPortHandshakeTest&) = delete;
+
   ~ChildPortHandshakeTest() {
   }
 
@@ -254,8 +257,6 @@
   ChildPortHandshake child_port_handshake_;
   ClientProcess client_process_;
   TestType test_type_;
-
-  DISALLOW_COPY_AND_ASSIGN(ChildPortHandshakeTest);
 };
 
 TEST(ChildPortHandshake, ChildClientChecksIn_ReceiveRight) {
diff --git a/util/mach/child_port_server.h b/util/mach/child_port_server.h
index 47d72e4..b7a9895 100644
--- a/util/mach/child_port_server.h
+++ b/util/mach/child_port_server.h
@@ -19,7 +19,6 @@
 
 #include <set>
 
-#include "base/macros.h"
 #include "util/mach/child_port_types.h"
 #include "util/mach/mach_message_server.h"
 
@@ -62,6 +61,9 @@
   //! \param[in] interface The interface to dispatch requests to. Weak.
   explicit ChildPortServer(Interface* interface);
 
+  ChildPortServer(const ChildPortServer&) = delete;
+  ChildPortServer& operator=(const ChildPortServer&) = delete;
+
   // MachMessageServer::Interface:
   bool MachMessageServerFunction(const mach_msg_header_t* in_header,
                                  mach_msg_header_t* out_header,
@@ -72,8 +74,6 @@
 
  private:
   Interface* interface_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(ChildPortServer);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/composite_mach_message_server.h b/util/mach/composite_mach_message_server.h
index 785af4d..f1f75f3 100644
--- a/util/mach/composite_mach_message_server.h
+++ b/util/mach/composite_mach_message_server.h
@@ -20,7 +20,6 @@
 #include <map>
 #include <set>
 
-#include "base/macros.h"
 #include "util/mach/mach_message_server.h"
 
 namespace crashpad {
@@ -41,6 +40,11 @@
 class CompositeMachMessageServer : public MachMessageServer::Interface {
  public:
   CompositeMachMessageServer();
+
+  CompositeMachMessageServer(const CompositeMachMessageServer&) = delete;
+  CompositeMachMessageServer& operator=(const CompositeMachMessageServer&) =
+      delete;
+
   ~CompositeMachMessageServer();
 
   //! \brief Adds a handler that messages can be dispatched to based on request
@@ -94,8 +98,6 @@
   HandlerMap handler_map_;  // weak
   mach_msg_size_t request_size_;
   mach_msg_size_t reply_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(CompositeMachMessageServer);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/composite_mach_message_server_test.cc b/util/mach/composite_mach_message_server_test.cc
index af4a600..91a3851 100644
--- a/util/mach/composite_mach_message_server_test.cc
+++ b/util/mach/composite_mach_message_server_test.cc
@@ -55,6 +55,9 @@
         destroy_complex_request_(false) {
   }
 
+  TestMachMessageHandler(const TestMachMessageHandler&) = delete;
+  TestMachMessageHandler& operator=(const TestMachMessageHandler&) = delete;
+
   ~TestMachMessageHandler() {
   }
 
@@ -110,8 +113,6 @@
   kern_return_t return_code_;
   bool return_value_;
   bool destroy_complex_request_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMachMessageHandler);
 };
 
 TEST(CompositeMachMessageServer, HandlerDoesNotHandle) {
diff --git a/util/mach/exc_client_variants_test.cc b/util/mach/exc_client_variants_test.cc
index 867eb08..aba7205 100644
--- a/util/mach/exc_client_variants_test.cc
+++ b/util/mach/exc_client_variants_test.cc
@@ -20,7 +20,6 @@
 #include <sys/types.h>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "gtest/gtest.h"
 #include "test/mac/mach_errors.h"
@@ -50,6 +49,9 @@
     ++exception_subcode_;
   }
 
+  TestExcClientVariants(const TestExcClientVariants&) = delete;
+  TestExcClientVariants& operator=(const TestExcClientVariants&) = delete;
+
   // UniversalMachExcServer::Interface:
 
   virtual kern_return_t CatchMachException(
@@ -251,8 +253,6 @@
   static exception_type_t exception_;
   static mach_exception_code_t exception_code_;
   static mach_exception_subcode_t exception_subcode_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestExcClientVariants);
 };
 
 exception_type_t TestExcClientVariants::exception_ = 0;
diff --git a/util/mach/exc_server_variants.cc b/util/mach/exc_server_variants.cc
index 94070b1..b9357a7 100644
--- a/util/mach/exc_server_variants.cc
+++ b/util/mach/exc_server_variants.cc
@@ -230,6 +230,9 @@
   explicit ExcServer(Interface* interface)
       : MachMessageServer::Interface(), interface_(interface) {}
 
+  ExcServer(const ExcServer&) = delete;
+  ExcServer& operator=(const ExcServer&) = delete;
+
   // MachMessageServer::Interface:
 
   bool MachMessageServerFunction(const mach_msg_header_t* in_header,
@@ -256,8 +259,6 @@
 
  private:
   Interface* interface_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(ExcServer);
 };
 
 template <typename Traits>
@@ -453,6 +454,9 @@
         ExcServer<Traits>::Interface(),
         interface_(interface) {}
 
+  SimplifiedExcServer(const SimplifiedExcServer&) = delete;
+  SimplifiedExcServer& operator=(const SimplifiedExcServer&) = delete;
+
   // ExcServer::Interface:
 
   kern_return_t CatchExceptionRaise(exception_handler_t exception_port,
@@ -544,8 +548,6 @@
 
  private:
   Interface* interface_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(SimplifiedExcServer);
 };
 
 }  // namespace
@@ -569,6 +571,10 @@
     AddHandler(&mach_exc_server_);
   }
 
+  UniversalMachExcServerImpl(const UniversalMachExcServerImpl&) = delete;
+  UniversalMachExcServerImpl& operator=(const UniversalMachExcServerImpl&) =
+      delete;
+
   ~UniversalMachExcServerImpl() {}
 
   // SimplifiedExcServer<ExcTraits>::Interface:
@@ -643,8 +649,6 @@
   SimplifiedExcServer<ExcTraits> exc_server_;
   SimplifiedExcServer<MachExcTraits> mach_exc_server_;
   UniversalMachExcServer::Interface* interface_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServerImpl);
 };
 
 }  // namespace internal
diff --git a/util/mach/exc_server_variants.h b/util/mach/exc_server_variants.h
index c7b35d4..15d1cb2 100644
--- a/util/mach/exc_server_variants.h
+++ b/util/mach/exc_server_variants.h
@@ -20,7 +20,6 @@
 #include <memory>
 #include <set>
 
-#include "base/macros.h"
 #include "util/mach/mach_extensions.h"
 #include "util/mach/mach_message_server.h"
 
@@ -115,6 +114,9 @@
   //! \param[in] interface The interface to dispatch requests to. Weak.
   explicit UniversalMachExcServer(Interface* interface);
 
+  UniversalMachExcServer(const UniversalMachExcServer&) = delete;
+  UniversalMachExcServer& operator=(const UniversalMachExcServer&) = delete;
+
   ~UniversalMachExcServer();
 
   // MachMessageServer::Interface:
@@ -127,8 +129,6 @@
 
  private:
   std::unique_ptr<internal::UniversalMachExcServerImpl> impl_;
-
-  DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServer);
 };
 
 //! \brief Computes an approriate successful return value for an exception
diff --git a/util/mach/exc_server_variants_test.cc b/util/mach/exc_server_variants_test.cc
index 836048b..d74cbc5 100644
--- a/util/mach/exc_server_variants_test.cc
+++ b/util/mach/exc_server_variants_test.cc
@@ -979,6 +979,9 @@
     SetExpectedChildTerminationBuiltinTrap();
   }
 
+  TestExcServerVariants(const TestExcServerVariants&) = delete;
+  TestExcServerVariants& operator=(const TestExcServerVariants&) = delete;
+
   // UniversalMachExcServer::Interface:
 
   virtual kern_return_t CatchMachException(
@@ -1089,8 +1092,6 @@
 
   static const mach_msg_option_t kMachMessageOptions =
       MACH_RCV_TRAILER_TYPE(MACH_MSG_TRAILER_FORMAT_0);
-
-  DISALLOW_COPY_AND_ASSIGN(TestExcServerVariants);
 };
 
 TEST(ExcServerVariants, ExceptionRaise) {
diff --git a/util/mach/exception_ports.h b/util/mach/exception_ports.h
index e128f65..06a9520 100644
--- a/util/mach/exception_ports.h
+++ b/util/mach/exception_ports.h
@@ -19,7 +19,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -97,6 +96,10 @@
     using VectorType = std::vector<ExceptionHandler>;
 
     ExceptionHandlerVector();
+
+    ExceptionHandlerVector(const ExceptionHandlerVector&) = delete;
+    ExceptionHandlerVector& operator=(const ExceptionHandlerVector&) = delete;
+
     ~ExceptionHandlerVector();
 
     VectorType::const_iterator begin() const { return vector_.begin(); }
@@ -113,8 +116,6 @@
     void Deallocate();
 
     VectorType vector_;
-
-    DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerVector);
   };
 
   //! \brief Constructs an interface object to get or set exception ports on a
@@ -136,6 +137,9 @@
   //!     appropriately for \a target_type.
   ExceptionPorts(TargetType target_type, mach_port_t target_port);
 
+  ExceptionPorts(const ExceptionPorts&) = delete;
+  ExceptionPorts& operator=(const ExceptionPorts&) = delete;
+
   ~ExceptionPorts();
 
   //! \brief Calls `*_get_exception_ports()` on the target.
@@ -253,8 +257,6 @@
   // even with a TASK_NULL target_port, because it is incorrect to deallocate
   // the result of mach_task_self().
   bool dealloc_target_port_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionPorts);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/exception_ports_test.cc b/util/mach/exception_ports_test.cc
index d3a211f..b29e125 100644
--- a/util/mach/exception_ports_test.cc
+++ b/util/mach/exception_ports_test.cc
@@ -22,7 +22,6 @@
 #include "base/check.h"
 #include "base/mac/mach_logging.h"
 #include "base/mac/scoped_mach_port.h"
-#include "base/macros.h"
 #include "base/notreached.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
@@ -149,6 +148,9 @@
     }
   }
 
+  TestExceptionPorts(const TestExceptionPorts&) = delete;
+  TestExceptionPorts& operator=(const TestExceptionPorts&) = delete;
+
   SetOrSwap set_or_swap() const { return set_or_swap_; }
   SetOn set_on() const { return set_on_; }
   SetType set_type() const { return set_type_; }
@@ -230,6 +232,9 @@
           init_semaphore_(0),
           crash_semaphore_(0) {}
 
+    Child(const Child&) = delete;
+    Child& operator=(const Child&) = delete;
+
     ~Child() {}
 
     void Run() {
@@ -412,8 +417,6 @@
     // The child thread waits on this for the parent thread to indicate that the
     // child can test its exception ports and possibly crash, as appropriate.
     Semaphore crash_semaphore_;
-
-    DISALLOW_COPY_AND_ASSIGN(Child);
   };
 
   // MachMultiprocess:
@@ -583,8 +586,6 @@
 
   // true if an exception message was handled.
   bool handled_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestExceptionPorts);
 };
 
 TEST(ExceptionPorts, TaskExceptionPorts_SetInProcess_NoCrash) {
diff --git a/util/mach/mach_message_server.cc b/util/mach/mach_message_server.cc
index 3963373..8cf119c 100644
--- a/util/mach/mach_message_server.cc
+++ b/util/mach/mach_message_server.cc
@@ -32,6 +32,9 @@
  public:
   MachMessageBuffer() : vm_() {}
 
+  MachMessageBuffer(const MachMessageBuffer&) = delete;
+  MachMessageBuffer& operator=(const MachMessageBuffer&) = delete;
+
   ~MachMessageBuffer() {}
 
   //! \return A pointer to the buffer.
@@ -81,8 +84,6 @@
 
  private:
   base::mac::ScopedMachVM vm_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachMessageBuffer);
 };
 
 // Wraps MachMessageWithDeadline(), using a MachMessageBuffer argument which
diff --git a/util/mach/mach_message_server.h b/util/mach/mach_message_server.h
index 5e96c4c..6781291 100644
--- a/util/mach/mach_message_server.h
+++ b/util/mach/mach_message_server.h
@@ -19,7 +19,6 @@
 
 #include <set>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -125,6 +124,10 @@
     kReceiveLargeResize,
   };
 
+  MachMessageServer() = delete;
+  MachMessageServer(const MachMessageServer&) = delete;
+  MachMessageServer& operator=(const MachMessageServer&) = delete;
+
   //! \brief Runs a Mach message server to handle a Mach RPC request for MIG
   //!     servers.
   //!
@@ -173,9 +176,6 @@
                                Persistent persistent,
                                ReceiveLarge receive_large,
                                mach_msg_timeout_t timeout_ms);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(MachMessageServer);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/mach_message_server_test.cc b/util/mach/mach_message_server_test.cc
index 4a744d9..6785827 100644
--- a/util/mach/mach_message_server_test.cc
+++ b/util/mach/mach_message_server_test.cc
@@ -23,7 +23,6 @@
 
 #include "base/cxx17_backports.h"
 #include "base/mac/scoped_mach_port.h"
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "test/mac/mach_errors.h"
 #include "test/mac/mach_multiprocess.h"
@@ -181,6 +180,9 @@
         parent_complex_message_port_(MACH_PORT_NULL) {
   }
 
+  TestMachMessageServer(const TestMachMessageServer&) = delete;
+  TestMachMessageServer& operator=(const TestMachMessageServer&) = delete;
+
   // Runs the test.
   void Test() {
     EXPECT_EQ(replies_, requests_);
@@ -592,8 +594,6 @@
 
   static constexpr mach_msg_id_t kRequestMessageID = 16237;
   static constexpr mach_msg_id_t kReplyMessageID = kRequestMessageID + 100;
-
-  DISALLOW_COPY_AND_ASSIGN(TestMachMessageServer);
 };
 
 uint32_t TestMachMessageServer::requests_;
diff --git a/util/mach/notify_server.h b/util/mach/notify_server.h
index ad0a888..9e31820 100644
--- a/util/mach/notify_server.h
+++ b/util/mach/notify_server.h
@@ -19,7 +19,6 @@
 
 #include <set>
 
-#include "base/macros.h"
 #include "util/mach/mach_message_server.h"
 
 namespace crashpad {
@@ -180,6 +179,9 @@
   //! was unexpected and not processed.
   class DefaultInterface : public Interface {
    public:
+    DefaultInterface(const DefaultInterface&) = delete;
+    DefaultInterface& operator=(const DefaultInterface&) = delete;
+
     // Interface:
 
     kern_return_t DoMachNotifyPortDeleted(
@@ -210,9 +212,6 @@
    protected:
     DefaultInterface() : Interface() {}
     ~DefaultInterface() {}
-
-   private:
-    DISALLOW_COPY_AND_ASSIGN(DefaultInterface);
   };
 
   //! \brief Constructs an object of this class.
@@ -220,6 +219,9 @@
   //! \param[in] interface The interface to dispatch requests to. Weak.
   explicit NotifyServer(Interface* interface);
 
+  NotifyServer(const NotifyServer&) = delete;
+  NotifyServer& operator=(const NotifyServer&) = delete;
+
   // MachMessageServer::Interface:
 
   bool MachMessageServerFunction(const mach_msg_header_t* in_header,
@@ -233,8 +235,6 @@
 
  private:
   Interface* interface_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(NotifyServer);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/notify_server_test.cc b/util/mach/notify_server_test.cc
index 40a3826..98a6882 100644
--- a/util/mach/notify_server_test.cc
+++ b/util/mach/notify_server_test.cc
@@ -163,6 +163,9 @@
 class NotifyServerTestBase : public testing::Test,
                              public NotifyServer::Interface {
  public:
+  NotifyServerTestBase(const NotifyServerTestBase&) = delete;
+  NotifyServerTestBase& operator=(const NotifyServerTestBase&) = delete;
+
   // NotifyServer::Interface:
 
   MOCK_METHOD(kern_return_t,
@@ -282,8 +285,6 @@
 
  private:
   base::mac::ScopedMachReceiveRight server_port_;
-
-  DISALLOW_COPY_AND_ASSIGN(NotifyServerTestBase);
 };
 
 using NotifyServerTest = StrictMock<NotifyServerTestBase>;
diff --git a/util/mach/scoped_task_suspend.h b/util/mach/scoped_task_suspend.h
index 389ea5f..f935983 100644
--- a/util/mach/scoped_task_suspend.h
+++ b/util/mach/scoped_task_suspend.h
@@ -17,7 +17,6 @@
 
 #include <mach/mach.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -32,12 +31,14 @@
 class ScopedTaskSuspend {
  public:
   explicit ScopedTaskSuspend(task_t task);
+
+  ScopedTaskSuspend(const ScopedTaskSuspend&) = delete;
+  ScopedTaskSuspend& operator=(const ScopedTaskSuspend&) = delete;
+
   ~ScopedTaskSuspend();
 
  private:
   task_t task_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTaskSuspend);
 };
 
 }  // namespace crashpad
diff --git a/util/mach/scoped_task_suspend_test.cc b/util/mach/scoped_task_suspend_test.cc
index b23e612..06a518d 100644
--- a/util/mach/scoped_task_suspend_test.cc
+++ b/util/mach/scoped_task_suspend_test.cc
@@ -44,6 +44,10 @@
 class ScopedTaskSuspendTest final : public MachMultiprocess {
  public:
   ScopedTaskSuspendTest() : MachMultiprocess() {}
+
+  ScopedTaskSuspendTest(const ScopedTaskSuspendTest&) = delete;
+  ScopedTaskSuspendTest& operator=(const ScopedTaskSuspendTest&) = delete;
+
   ~ScopedTaskSuspendTest() {}
 
  private:
@@ -71,8 +75,6 @@
 
   void MachMultiprocessChild() override {
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedTaskSuspendTest);
 };
 
 TEST(ScopedTaskSuspend, ScopedTaskSuspend) {
diff --git a/util/misc/initialization_state.h b/util/misc/initialization_state.h
index 85f9b28..c8e2405 100644
--- a/util/misc/initialization_state.h
+++ b/util/misc/initialization_state.h
@@ -17,7 +17,6 @@
 
 #include <stdint.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -57,6 +56,10 @@
   };
 
   InitializationState() : state_(kStateUninitialized) {}
+
+  InitializationState(const InitializationState&) = delete;
+  InitializationState& operator=(const InitializationState&) = delete;
+
   ~InitializationState() { state_ = kStateDestroyed; }
 
   //! \brief Returns `true` if the object’s state is #kStateUninitialized and it
@@ -91,8 +94,6 @@
   // kStateDestroyed, limiting this class’ ability to catch use-after-free
   // errors.
   volatile State state_;
-
-  DISALLOW_COPY_AND_ASSIGN(InitializationState);
 };
 
 }  // namespace crashpad
diff --git a/util/misc/initialization_state_dcheck.h b/util/misc/initialization_state_dcheck.h
index 9fcfc76..e04ff23 100644
--- a/util/misc/initialization_state_dcheck.h
+++ b/util/misc/initialization_state_dcheck.h
@@ -19,7 +19,6 @@
 
 #include "base/check_op.h"
 #include "base/compiler_specific.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/misc/initialization_state.h"
 
@@ -65,6 +64,10 @@
  public:
   InitializationStateDcheck() : InitializationState() {}
 
+  InitializationStateDcheck(const InitializationStateDcheck&) = delete;
+  InitializationStateDcheck& operator=(const InitializationStateDcheck&) =
+      delete;
+
   //! \brief Returns the object’s state.
   //!
   //! Consumers of this class should not call this method. Use the
@@ -99,9 +102,6 @@
   //! Consumers of this class should not call this method. Use the
   //! INITIALIZATION_STATE_SET_VALID() macro instead.
   State SetValid();
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(InitializationStateDcheck);
 };
 
 // Using macros enables the non-DCHECK no-op implementation below to be more
diff --git a/util/misc/metrics.h b/util/misc/metrics.h
index 292f23a..63c673a 100644
--- a/util/misc/metrics.h
+++ b/util/misc/metrics.h
@@ -17,7 +17,6 @@
 
 #include <inttypes.h>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/file/file_io.h"
 
@@ -35,6 +34,10 @@
 //! Chromium's base, they allow integration with its metrics system.
 class Metrics {
  public:
+  Metrics() = delete;
+  Metrics(const Metrics&) = delete;
+  Metrics& operator=(const Metrics&) = delete;
+
   //! \brief Values for CrashReportPending().
   //!
   //! \note These are used as metrics enumeration values, so new values should
@@ -209,9 +212,6 @@
   static void InvalidIntermediateDumpKeySize(
       const internal::IntermediateDumpKey& key);
 #endif
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(Metrics);
 };
 
 }  // namespace crashpad
diff --git a/util/misc/paths.h b/util/misc/paths.h
index 30bbec5..0b0cfe4 100644
--- a/util/misc/paths.h
+++ b/util/misc/paths.h
@@ -16,13 +16,16 @@
 #define CRASHPAD_UTIL_PATHS_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 
 namespace crashpad {
 
 //! \brief Functions to obtain paths.
 class Paths {
  public:
+  Paths() = delete;
+  Paths(const Paths&) = delete;
+  Paths& operator=(const Paths&) = delete;
+
   //! \brief Obtains the pathname of the currently-running executable.
   //!
   //! \param[out] path The pathname of the currently-running executable.
@@ -31,8 +34,6 @@
   //!
   //! \note In test code, use test::TestPaths::Executable() instead.
   static bool Executable(base::FilePath* path);
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(Paths);
 };
 
 }  // namespace crashpad
diff --git a/util/misc/range_set.h b/util/misc/range_set.h
index 573705e..77be64c 100644
--- a/util/misc/range_set.h
+++ b/util/misc/range_set.h
@@ -17,7 +17,6 @@
 
 #include <map>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 
 namespace crashpad {
@@ -26,6 +25,10 @@
 class RangeSet {
  public:
   RangeSet();
+
+  RangeSet(const RangeSet&) = delete;
+  RangeSet& operator=(const RangeSet&) = delete;
+
   ~RangeSet();
 
   //! \brief Inserts a range into the set.
@@ -42,8 +45,6 @@
   // the range. Overlapping ranges are merged on insertion. Adjacent ranges may
   // be merged.
   std::map<VMAddress, VMAddress> ranges_;
-
-  DISALLOW_COPY_AND_ASSIGN(RangeSet);
 };
 
 }  // namespace crashpad
diff --git a/util/misc/scoped_forbid_return.h b/util/misc/scoped_forbid_return.h
index 4f1e214..31d48d8 100644
--- a/util/misc/scoped_forbid_return.h
+++ b/util/misc/scoped_forbid_return.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_MISC_SCOPED_FORBID_RETURN_H_
 #define CRASHPAD_UTIL_MISC_SCOPED_FORBID_RETURN_H_
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -31,6 +30,10 @@
 class ScopedForbidReturn {
  public:
   ScopedForbidReturn() : armed_(true) {}
+
+  ScopedForbidReturn(const ScopedForbidReturn&) = delete;
+  ScopedForbidReturn& operator=(const ScopedForbidReturn&) = delete;
+
   ~ScopedForbidReturn();
 
   //! \brief Arms the object so that it will abort execution when destroyed.
@@ -45,8 +48,6 @@
 
  private:
   bool armed_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedForbidReturn);
 };
 
 }  // namespace crashpad
diff --git a/util/net/http_body.h b/util/net/http_body.h
index 927e4a7..7d8ce7e 100644
--- a/util/net/http_body.h
+++ b/util/net/http_body.h
@@ -21,7 +21,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/file/file_reader.h"
 
@@ -58,6 +57,9 @@
   //! \param[in] string The string to turn into a stream.
   explicit StringHTTPBodyStream(const std::string& string);
 
+  StringHTTPBodyStream(const StringHTTPBodyStream&) = delete;
+  StringHTTPBodyStream& operator=(const StringHTTPBodyStream&) = delete;
+
   ~StringHTTPBodyStream() override;
 
   // HTTPBodyStream:
@@ -66,8 +68,6 @@
  private:
   std::string string_;
   size_t bytes_read_;
-
-  DISALLOW_COPY_AND_ASSIGN(StringHTTPBodyStream);
 };
 
 //! \brief An implementation of HTTPBodyStream that reads from a
@@ -80,6 +80,9 @@
   //!     will read.
   explicit FileReaderHTTPBodyStream(FileReaderInterface* reader);
 
+  FileReaderHTTPBodyStream(const FileReaderHTTPBodyStream&) = delete;
+  FileReaderHTTPBodyStream& operator=(const FileReaderHTTPBodyStream&) = delete;
+
   ~FileReaderHTTPBodyStream() override;
 
   // HTTPBodyStream:
@@ -88,8 +91,6 @@
  private:
   FileReaderInterface* reader_;  // weak
   bool reached_eof_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileReaderHTTPBodyStream);
 };
 
 //! \brief An implementation of HTTPBodyStream that combines an array of
@@ -106,6 +107,9 @@
   //!     an instance of this class.
   explicit CompositeHTTPBodyStream(const PartsList& parts);
 
+  CompositeHTTPBodyStream(const CompositeHTTPBodyStream&) = delete;
+  CompositeHTTPBodyStream& operator=(const CompositeHTTPBodyStream&) = delete;
+
   ~CompositeHTTPBodyStream() override;
 
   // HTTPBodyStream:
@@ -114,8 +118,6 @@
  private:
   PartsList parts_;
   PartsList::iterator current_part_;
-
-  DISALLOW_COPY_AND_ASSIGN(CompositeHTTPBodyStream);
 };
 
 }  // namespace crashpad
diff --git a/util/net/http_body_gzip.h b/util/net/http_body_gzip.h
index da3a5f2..461a9a9 100644
--- a/util/net/http_body_gzip.h
+++ b/util/net/http_body_gzip.h
@@ -20,7 +20,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/net/http_body.h"
 
@@ -36,6 +35,9 @@
  public:
   explicit GzipHTTPBodyStream(std::unique_ptr<HTTPBodyStream> source);
 
+  GzipHTTPBodyStream(const GzipHTTPBodyStream&) = delete;
+  GzipHTTPBodyStream& operator=(const GzipHTTPBodyStream&) = delete;
+
   ~GzipHTTPBodyStream() override;
 
   // HTTPBodyStream:
@@ -58,8 +60,6 @@
   std::unique_ptr<HTTPBodyStream> source_;
   std::unique_ptr<z_stream> z_stream_;
   State state_;
-
-  DISALLOW_COPY_AND_ASSIGN(GzipHTTPBodyStream);
 };
 
 }  // namespace crashpad
diff --git a/util/net/http_body_gzip_test.cc b/util/net/http_body_gzip_test.cc
index 926dfca..125f4d4 100644
--- a/util/net/http_body_gzip_test.cc
+++ b/util/net/http_body_gzip_test.cc
@@ -21,7 +21,6 @@
 #include <string>
 #include <utility>
 
-#include "base/macros.h"
 #include "base/rand_util.h"
 #include "base/numerics/safe_conversions.h"
 #include "gtest/gtest.h"
@@ -36,6 +35,10 @@
 class ScopedZlibInflateStream {
  public:
   explicit ScopedZlibInflateStream(z_stream* zlib) : zlib_(zlib) {}
+
+  ScopedZlibInflateStream(const ScopedZlibInflateStream&) = delete;
+  ScopedZlibInflateStream& operator=(const ScopedZlibInflateStream&) = delete;
+
   ~ScopedZlibInflateStream() {
     int zr = inflateEnd(zlib_);
     EXPECT_EQ(zr, Z_OK) << "inflateEnd: " << ZlibErrorString(zr);
@@ -43,7 +46,6 @@
 
  private:
   z_stream* zlib_;  // weak
-  DISALLOW_COPY_AND_ASSIGN(ScopedZlibInflateStream);
 };
 
 void GzipInflate(const std::string& compressed,
diff --git a/util/net/http_multipart_builder.h b/util/net/http_multipart_builder.h
index c7c59a7..56ce52d 100644
--- a/util/net/http_multipart_builder.h
+++ b/util/net/http_multipart_builder.h
@@ -19,7 +19,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "util/file/file_reader.h"
 #include "util/net/http_headers.h"
 
@@ -32,6 +31,10 @@
 class HTTPMultipartBuilder {
  public:
   HTTPMultipartBuilder();
+
+  HTTPMultipartBuilder(const HTTPMultipartBuilder&) = delete;
+  HTTPMultipartBuilder& operator=(const HTTPMultipartBuilder&) = delete;
+
   ~HTTPMultipartBuilder();
 
   //! \brief Enables or disables `gzip` compression.
@@ -95,8 +98,6 @@
   std::map<std::string, std::string> form_data_;
   std::map<std::string, FileAttachment> file_attachments_;
   bool gzip_enabled_;
-
-  DISALLOW_COPY_AND_ASSIGN(HTTPMultipartBuilder);
 };
 
 }  // namespace crashpad
diff --git a/util/net/http_transport.h b/util/net/http_transport.h
index acd4e44..0937ed4 100644
--- a/util/net/http_transport.h
+++ b/util/net/http_transport.h
@@ -19,7 +19,6 @@
 #include <string>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "util/net/http_headers.h"
 
 namespace crashpad {
@@ -35,6 +34,9 @@
 //! request that is appropriate for the host operating system.
 class HTTPTransport {
  public:
+  HTTPTransport(const HTTPTransport&) = delete;
+  HTTPTransport& operator=(const HTTPTransport&) = delete;
+
   virtual ~HTTPTransport();
 
   //! \brief Instantiates a concrete HTTPTransport class for the current
@@ -112,8 +114,6 @@
   HTTPHeaders headers_;
   std::unique_ptr<HTTPBodyStream> body_stream_;
   double timeout_;
-
-  DISALLOW_COPY_AND_ASSIGN(HTTPTransport);
 };
 
 }  // namespace crashpad
diff --git a/util/net/http_transport_libcurl.cc b/util/net/http_transport_libcurl.cc
index 8993ebc..7e3f411 100644
--- a/util/net/http_transport_libcurl.cc
+++ b/util/net/http_transport_libcurl.cc
@@ -43,6 +43,9 @@
 // as a linkage table for libcurl procedures.
 class Libcurl {
  public:
+  Libcurl(const Libcurl&) = delete;
+  Libcurl& operator=(const Libcurl&) = delete;
+
   static bool Initialized() {
     static bool initialized = Get()->Initialize();
     return initialized;
@@ -155,8 +158,6 @@
   NoCfiIcall<decltype(curl_slist_free_all)*> curl_slist_free_all_;
   NoCfiIcall<decltype(curl_slist_append)*> curl_slist_append_;
   NoCfiIcall<decltype(curl_version)*> curl_version_;
-
-  DISALLOW_COPY_AND_ASSIGN(Libcurl);
 };
 
 std::string UserAgent() {
@@ -271,6 +272,10 @@
 class CurlSList {
  public:
   CurlSList() : list_(nullptr) {}
+
+  CurlSList(const CurlSList&) = delete;
+  CurlSList& operator=(const CurlSList&) = delete;
+
   ~CurlSList() {
     if (list_) {
       Libcurl::CurlSlistFreeAll(list_);
@@ -289,14 +294,15 @@
 
  private:
   curl_slist* list_;
-
-  DISALLOW_COPY_AND_ASSIGN(CurlSList);
 };
 
 class ScopedClearString {
  public:
   explicit ScopedClearString(std::string* string) : string_(string) {}
 
+  ScopedClearString(const ScopedClearString&) = delete;
+  ScopedClearString& operator=(const ScopedClearString&) = delete;
+
   ~ScopedClearString() {
     if (string_) {
       string_->clear();
@@ -307,13 +313,15 @@
 
  private:
   std::string* string_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedClearString);
 };
 
 class HTTPTransportLibcurl final : public HTTPTransport {
  public:
   HTTPTransportLibcurl();
+
+  HTTPTransportLibcurl(const HTTPTransportLibcurl&) = delete;
+  HTTPTransportLibcurl& operator=(const HTTPTransportLibcurl&) = delete;
+
   ~HTTPTransportLibcurl() override;
 
   // HTTPTransport:
@@ -328,8 +336,6 @@
                                   size_t size,
                                   size_t nitems,
                                   void* userdata);
-
-  DISALLOW_COPY_AND_ASSIGN(HTTPTransportLibcurl);
 };
 
 HTTPTransportLibcurl::HTTPTransportLibcurl() : HTTPTransport() {}
diff --git a/util/net/http_transport_mac.mm b/util/net/http_transport_mac.mm
index b9be11c..e1cfd25 100644
--- a/util/net/http_transport_mac.mm
+++ b/util/net/http_transport_mac.mm
@@ -113,6 +113,10 @@
       : body_stream_(body_stream) {
   }
 
+  HTTPBodyStreamCFReadStream(const HTTPBodyStreamCFReadStream&) = delete;
+  HTTPBodyStreamCFReadStream& operator=(const HTTPBodyStreamCFReadStream&) =
+      delete;
+
   // Creates a new NSInputStream, which the caller owns.
   NSInputStream* CreateInputStream() {
     CFStreamClientContext context = {
@@ -213,19 +217,18 @@
                          void* info) {}
 
   HTTPBodyStream* body_stream_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(HTTPBodyStreamCFReadStream);
 };
 
 class HTTPTransportMac final : public HTTPTransport {
  public:
   HTTPTransportMac();
+
+  HTTPTransportMac(const HTTPTransportMac&) = delete;
+  HTTPTransportMac& operator=(const HTTPTransportMac&) = delete;
+
   ~HTTPTransportMac() override;
 
   bool ExecuteSynchronously(std::string* response_body) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(HTTPTransportMac);
 };
 
 HTTPTransportMac::HTTPTransportMac() : HTTPTransport() {
diff --git a/util/net/http_transport_socket.cc b/util/net/http_transport_socket.cc
index c12702a..4de9280 100644
--- a/util/net/http_transport_socket.cc
+++ b/util/net/http_transport_socket.cc
@@ -22,7 +22,6 @@
 
 #include "base/cxx17_backports.h"
 #include "base/logging.h"
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/posix/eintr_wrapper.h"
 #include "base/scoped_generic.h"
@@ -47,12 +46,13 @@
 class HTTPTransportSocket final : public HTTPTransport {
  public:
   HTTPTransportSocket() = default;
+
+  HTTPTransportSocket(const HTTPTransportSocket&) = delete;
+  HTTPTransportSocket& operator=(const HTTPTransportSocket&) = delete;
+
   ~HTTPTransportSocket() override = default;
 
   bool ExecuteSynchronously(std::string* response_body) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(HTTPTransportSocket);
 };
 
 struct ScopedAddrinfoTraits {
@@ -74,6 +74,9 @@
  public:
   explicit FdStream(int fd) : fd_(fd) { CHECK(fd_ >= 0); }
 
+  FdStream(const FdStream&) = delete;
+  FdStream& operator=(const FdStream&) = delete;
+
   bool LoggingWrite(const void* data, size_t size) override {
     return LoggingWriteFile(fd_, data, size);
   }
@@ -88,8 +91,6 @@
 
  private:
   int fd_;
-
-  DISALLOW_COPY_AND_ASSIGN(FdStream);
 };
 
 #if defined(CRASHPAD_USE_BORINGSSL)
@@ -97,6 +98,9 @@
  public:
   SSLStream() = default;
 
+  SSLStream(const SSLStream&) = delete;
+  SSLStream& operator=(const SSLStream&) = delete;
+
   bool Initialize(const base::FilePath& root_cert_path,
                   int sock,
                   const std::string& hostname) {
@@ -210,8 +214,6 @@
 
   ScopedSSLCTX ctx_;
   ScopedSSL ssl_;
-
-  DISALLOW_COPY_AND_ASSIGN(SSLStream);
 };
 #endif
 
@@ -262,6 +264,9 @@
     }
   }
 
+  ScopedSetNonblocking(const ScopedSetNonblocking&) = delete;
+  ScopedSetNonblocking& operator=(const ScopedSetNonblocking&) = delete;
+
   ~ScopedSetNonblocking() {
     if (sock_ >= 0) {
       int flags = fcntl(sock_, F_GETFL, 0);
@@ -278,8 +283,6 @@
 
  private:
   int sock_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSetNonblocking);
 };
 
 base::ScopedFD CreateSocket(const std::string& hostname,
diff --git a/util/net/http_transport_win.cc b/util/net/http_transport_win.cc
index a91d2d2..cb04c2e 100644
--- a/util/net/http_transport_win.cc
+++ b/util/net/http_transport_win.cc
@@ -131,12 +131,13 @@
 class HTTPTransportWin final : public HTTPTransport {
  public:
   HTTPTransportWin();
+
+  HTTPTransportWin(const HTTPTransportWin&) = delete;
+  HTTPTransportWin& operator=(const HTTPTransportWin&) = delete;
+
   ~HTTPTransportWin() override;
 
   bool ExecuteSynchronously(std::string* response_body) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(HTTPTransportWin);
 };
 
 HTTPTransportWin::HTTPTransportWin() : HTTPTransport() {
diff --git a/util/numeric/checked_address_range.h b/util/numeric/checked_address_range.h
index 40c8239..5279bbc 100644
--- a/util/numeric/checked_address_range.h
+++ b/util/numeric/checked_address_range.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/numeric/checked_range.h"
 
diff --git a/util/posix/process_info.h b/util/posix/process_info.h
index d144c04..7a58788 100644
--- a/util/posix/process_info.h
+++ b/util/posix/process_info.h
@@ -23,7 +23,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "util/misc/initialization_state.h"
 #include "util/misc/initialization_state_dcheck.h"
@@ -42,6 +41,10 @@
 class ProcessInfo {
  public:
   ProcessInfo();
+
+  ProcessInfo(const ProcessInfo&) = delete;
+  ProcessInfo& operator=(const ProcessInfo&) = delete;
+
   ~ProcessInfo();
 
 #if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || DOXYGEN
@@ -189,8 +192,6 @@
   mutable InitializationState start_time_initialized_;
 #endif
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessInfo);
 };
 
 }  // namespace crashpad
diff --git a/util/posix/process_info_test.cc b/util/posix/process_info_test.cc
index 7806184..1d9b065 100644
--- a/util/posix/process_info_test.cc
+++ b/util/posix/process_info_test.cc
@@ -206,6 +206,10 @@
 class ProcessInfoForkedTest : public Multiprocess {
  public:
   ProcessInfoForkedTest() : Multiprocess() {}
+
+  ProcessInfoForkedTest(const ProcessInfoForkedTest&) = delete;
+  ProcessInfoForkedTest& operator=(const ProcessInfoForkedTest&) = delete;
+
   ~ProcessInfoForkedTest() {}
 
   // Multiprocess:
@@ -233,9 +237,6 @@
     // Hang around until the parent is done.
     CheckedReadFileAtEOF(ReadPipeHandle());
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(ProcessInfoForkedTest);
 };
 
 TEST(ProcessInfo, Forked) {
diff --git a/util/posix/scoped_mmap.h b/util/posix/scoped_mmap.h
index 12f5cee..706f1e7 100644
--- a/util/posix/scoped_mmap.h
+++ b/util/posix/scoped_mmap.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_POSIX_SCOPED_MMAP_H_
 #define CRASHPAD_UTIL_POSIX_SCOPED_MMAP_H_
 
-#include "base/macros.h"
 
 #include <sys/mman.h>
 #include <sys/types.h>
@@ -34,6 +33,10 @@
   //!
   //! \param can_log `true` if methods of this class may log messages.
   explicit ScopedMmap(bool can_log = true);
+
+  ScopedMmap(const ScopedMmap&) = delete;
+  ScopedMmap& operator=(const ScopedMmap&) = delete;
+
   ~ScopedMmap();
 
   //! \brief Releases the memory-mapped region by calling `munmap()`.
@@ -109,8 +112,6 @@
   void* addr_ = MAP_FAILED;
   size_t len_ = 0;
   bool can_log_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedMmap);
 };
 
 }  // namespace crashpad
diff --git a/util/posix/scoped_mmap_test.cc b/util/posix/scoped_mmap_test.cc
index 6509b3a..f8307cc 100644
--- a/util/posix/scoped_mmap_test.cc
+++ b/util/posix/scoped_mmap_test.cc
@@ -59,6 +59,9 @@
   // SetUp() called on it.
   explicit TestCookie() : address_(&cookie_), cookie_(0) {}
 
+  TestCookie(const TestCookie&) = delete;
+  TestCookie& operator=(const TestCookie&) = delete;
+
   ~TestCookie() {}
 
   void SetUp(uint64_t* address) {
@@ -78,8 +81,6 @@
  private:
   uint64_t* address_;
   uint64_t cookie_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestCookie);
 };
 
 TEST(ScopedMmap, Mmap) {
diff --git a/util/posix/signals.h b/util/posix/signals.h
index 368161b..cfa196b 100644
--- a/util/posix/signals.h
+++ b/util/posix/signals.h
@@ -19,7 +19,6 @@
 
 #include <set>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -56,6 +55,9 @@
     // when an object of this class is given static storage duration.
     OldActions() = default;
 
+    OldActions(const OldActions&) = delete;
+    OldActions& operator=(const OldActions&) = delete;
+
     //! \brief Returns a `struct sigaction` structure corresponding to the
     //!     given signal.
     //!
@@ -66,10 +68,12 @@
     // As a small storage optimization, don’t waste any space on a slot for
     // signal 0, because there is no signal 0.
     struct sigaction actions_[NSIG - 1];
-
-    DISALLOW_COPY_AND_ASSIGN(OldActions);
   };
 
+  Signals() = delete;
+  Signals(const Signals&) = delete;
+  Signals& operator=(const Signals&) = delete;
+
   //! \brief Installs a new signal handler.
   //!
   //! \param[in] sig The signal number to handle.
@@ -235,9 +239,6 @@
   //!
   //! \note This function is safe to call from a signal handler.
   static bool IsTerminateSignal(int sig);
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(Signals);
 };
 
 }  // namespace crashpad
diff --git a/util/posix/signals_test.cc b/util/posix/signals_test.cc
index 3538cf2..d26c291 100644
--- a/util/posix/signals_test.cc
+++ b/util/posix/signals_test.cc
@@ -228,6 +228,10 @@
         sig_(sig),
         test_type_(test_type),
         signal_source_(signal_source) {}
+
+  SignalsTest(const SignalsTest&) = delete;
+  SignalsTest& operator=(const SignalsTest&) = delete;
+
   ~SignalsTest() {}
 
  private:
@@ -314,8 +318,6 @@
   TestType test_type_;
   SignalSource signal_source_;
   static Signals::OldActions old_actions_;
-
-  DISALLOW_COPY_AND_ASSIGN(SignalsTest);
 };
 
 Signals::OldActions SignalsTest::old_actions_;
diff --git a/util/process/process_memory_fuchsia.h b/util/process/process_memory_fuchsia.h
index 6c9ceba..6693c5a 100644
--- a/util/process/process_memory_fuchsia.h
+++ b/util/process/process_memory_fuchsia.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory.h"
@@ -30,6 +29,10 @@
 class ProcessMemoryFuchsia final : public ProcessMemory {
  public:
   ProcessMemoryFuchsia();
+
+  ProcessMemoryFuchsia(const ProcessMemoryFuchsia&) = delete;
+  ProcessMemoryFuchsia& operator=(const ProcessMemoryFuchsia&) = delete;
+
   ~ProcessMemoryFuchsia();
 
   //! \brief Initializes this object to read the memory of a process by handle.
@@ -50,8 +53,6 @@
 
   zx::unowned_process process_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemoryFuchsia);
 };
 
 }  // namespace crashpad
diff --git a/util/process/process_memory_linux.h b/util/process/process_memory_linux.h
index 1150f14..496cf2d 100644
--- a/util/process/process_memory_linux.h
+++ b/util/process/process_memory_linux.h
@@ -21,7 +21,6 @@
 #include <string>
 
 #include "base/files/scoped_file.h"
-#include "base/macros.h"
 #include "util/linux/ptrace_connection.h"
 #include "util/misc/address_types.h"
 #include "util/process/process_memory.h"
@@ -32,6 +31,10 @@
 class ProcessMemoryLinux final : public ProcessMemory {
  public:
   explicit ProcessMemoryLinux(PtraceConnection* connection);
+
+  ProcessMemoryLinux(const ProcessMemoryLinux&) = delete;
+  ProcessMemoryLinux& operator=(const ProcessMemoryLinux&) = delete;
+
   ~ProcessMemoryLinux();
 
  private:
@@ -39,8 +42,6 @@
 
   std::function<ssize_t(VMAddress, size_t, void*)> read_up_to_;
   base::ScopedFD mem_fd_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemoryLinux);
 };
 
 }  // namespace crashpad
diff --git a/util/process/process_memory_mac.h b/util/process/process_memory_mac.h
index 214e489..ba37383 100644
--- a/util/process/process_memory_mac.h
+++ b/util/process/process_memory_mac.h
@@ -22,7 +22,6 @@
 #include <string>
 
 #include "base/mac/scoped_mach_vm.h"
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory.h"
@@ -37,6 +36,9 @@
   //! The mapping is maintained until this object is destroyed.
   class MappedMemory {
    public:
+    MappedMemory(const MappedMemory&) = delete;
+    MappedMemory& operator=(const MappedMemory&) = delete;
+
     ~MappedMemory();
 
     //! \brief Returns a pointer to the data requested by the user.
@@ -86,11 +88,13 @@
 
     // The outer class needs to be able to call this class’ private constructor.
     friend class ProcessMemoryMac;
-
-    DISALLOW_COPY_AND_ASSIGN(MappedMemory);
   };
 
   ProcessMemoryMac();
+
+  ProcessMemoryMac(const ProcessMemoryMac&) = delete;
+  ProcessMemoryMac& operator=(const ProcessMemoryMac&) = delete;
+
   ~ProcessMemoryMac() {}
 
   //! \brief Initializes this object to read the memory of a task with the
@@ -126,8 +130,6 @@
 
   task_t task_;  // weak
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemoryMac);
 };
 
 }  // namespace crashpad
diff --git a/util/process/process_memory_range.h b/util/process/process_memory_range.h
index aabee49..21be765 100644
--- a/util/process/process_memory_range.h
+++ b/util/process/process_memory_range.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/numeric/checked_vm_address_range.h"
@@ -31,6 +30,10 @@
 class ProcessMemoryRange {
  public:
   ProcessMemoryRange();
+
+  ProcessMemoryRange(const ProcessMemoryRange&) = delete;
+  ProcessMemoryRange& operator=(const ProcessMemoryRange&) = delete;
+
   ~ProcessMemoryRange();
 
   //! \brief Initializes this object.
@@ -120,8 +123,6 @@
   const ProcessMemory* memory_;  // weak
   CheckedVMAddressRange range_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemoryRange);
 };
 
 }  // namespace crashpad
diff --git a/util/process/process_memory_sanitized.h b/util/process/process_memory_sanitized.h
index e050a47..a406e01 100644
--- a/util/process/process_memory_sanitized.h
+++ b/util/process/process_memory_sanitized.h
@@ -20,7 +20,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory.h"
@@ -31,6 +30,10 @@
 class ProcessMemorySanitized final : public ProcessMemory {
  public:
   ProcessMemorySanitized();
+
+  ProcessMemorySanitized(const ProcessMemorySanitized&) = delete;
+  ProcessMemorySanitized& operator=(const ProcessMemorySanitized&) = delete;
+
   ~ProcessMemorySanitized();
 
   //! \brief Initializes this object to read memory from the underlying
@@ -53,8 +56,6 @@
   const ProcessMemory* memory_;
   InitializationStateDcheck initialized_;
   std::vector<std::pair<VMAddress, VMAddress>> allowed_ranges_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemorySanitized);
 };
 
 }  // namespace crashpad
diff --git a/util/process/process_memory_test.cc b/util/process/process_memory_test.cc
index 6857b04..fe9971b 100644
--- a/util/process/process_memory_test.cc
+++ b/util/process/process_memory_test.cc
@@ -131,6 +131,9 @@
     SetChildTestMainFunction("ReadTestChild");
   }
 
+  ReadTest(const ReadTest&) = delete;
+  ReadTest& operator=(const ReadTest&) = delete;
+
   void RunAgainstSelf() {
     size_t region_size;
     std::unique_ptr<char[]> region;
@@ -209,8 +212,6 @@
     EXPECT_EQ(result[0], 2);
     EXPECT_EQ(result[1], 'J');
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ReadTest);
 };
 
 TEST(ProcessMemory, ReadSelf) {
@@ -279,6 +280,9 @@
     SetChildTestMainFunction("ReadCStringTestChild");
   }
 
+  ReadCStringTest(const ReadCStringTest&) = delete;
+  ReadCStringTest& operator=(const ReadCStringTest&) = delete;
+
   void RunAgainstSelf() {
     const char* const_empty;
     const char* const_short;
@@ -357,8 +361,6 @@
   }
 
   const bool limit_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(ReadCStringTest);
 };
 
 TEST(ProcessMemory, ReadCStringSelf) {
@@ -406,6 +408,9 @@
     SetChildTestMainFunction("ReadUnmappedChildMain");
   }
 
+  ReadUnmappedTest(const ReadUnmappedTest&) = delete;
+  ReadUnmappedTest& operator=(const ReadUnmappedTest&) = delete;
+
   void RunAgainstChild() { Run(); }
 
  private:
@@ -437,8 +442,6 @@
     EXPECT_FALSE(memory.Read(page_addr2, base::GetPageSize(), result.get()));
     EXPECT_FALSE(memory.Read(page_addr2 - 1, 2, result.get()));
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ReadUnmappedTest);
 };
 
 TEST(ProcessMemory, ReadUnmappedChild) {
@@ -534,6 +537,9 @@
     SetChildTestMainFunction("ReadCStringUnmappedChildMain");
   }
 
+  ReadCStringUnmappedTest(const ReadCStringUnmappedTest&) = delete;
+  ReadCStringUnmappedTest& operator=(const ReadCStringUnmappedTest&) = delete;
+
   void RunAgainstChild() { Run(); }
 
  private:
@@ -582,8 +588,6 @@
   }
 
   const bool limit_size_;
-
-  DISALLOW_COPY_AND_ASSIGN(ReadCStringUnmappedTest);
 };
 
 TEST(ProcessMemory, ReadCStringUnmappedChild) {
diff --git a/util/process/process_memory_win.h b/util/process/process_memory_win.h
index 2856900..919946e 100644
--- a/util/process/process_memory_win.h
+++ b/util/process/process_memory_win.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 #include "util/misc/address_types.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/process/process_memory.h"
@@ -29,6 +28,10 @@
 class ProcessMemoryWin final : public ProcessMemory {
  public:
   ProcessMemoryWin();
+
+  ProcessMemoryWin(const ProcessMemoryWin&) = delete;
+  ProcessMemoryWin& operator=(const ProcessMemoryWin&) = delete;
+
   ~ProcessMemoryWin();
 
   //! \brief Initializes this object to read the memory of a process with the
@@ -57,8 +60,6 @@
   HANDLE handle_;
   ProcessInfo process_info_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessMemoryWin);
 };
 
 }  // namespace crashpad
diff --git a/util/stdlib/thread_safe_vector.h b/util/stdlib/thread_safe_vector.h
index f97024d..64a4bd2 100644
--- a/util/stdlib/thread_safe_vector.h
+++ b/util/stdlib/thread_safe_vector.h
@@ -18,7 +18,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "base/synchronization/lock.h"
 
 namespace crashpad {
@@ -32,6 +31,10 @@
 class ThreadSafeVector {
  public:
   ThreadSafeVector() : vector_(), lock_() {}
+
+  ThreadSafeVector(const ThreadSafeVector&) = delete;
+  ThreadSafeVector& operator=(const ThreadSafeVector&) = delete;
+
   ~ThreadSafeVector() {}
 
   //! \brief Wraps `std::vector<>::%push_back()`.
@@ -54,8 +57,6 @@
  private:
   std::vector<T> vector_;
   base::Lock lock_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSafeVector);
 };
 
 }  // namespace crashpad
diff --git a/util/stdlib/thread_safe_vector_test.cc b/util/stdlib/thread_safe_vector_test.cc
index f589ca6..8962430 100644
--- a/util/stdlib/thread_safe_vector_test.cc
+++ b/util/stdlib/thread_safe_vector_test.cc
@@ -27,6 +27,11 @@
 class ThreadSafeVectorTestThread : public Thread {
  public:
   ThreadSafeVectorTestThread() : thread_safe_vector_(nullptr), start_(0) {}
+
+  ThreadSafeVectorTestThread(const ThreadSafeVectorTestThread&) = delete;
+  ThreadSafeVectorTestThread& operator=(const ThreadSafeVectorTestThread&) =
+      delete;
+
   ~ThreadSafeVectorTestThread() {}
 
   void SetTestParameters(ThreadSafeVector<int>* thread_safe_vector, int start) {
@@ -44,8 +49,6 @@
  private:
   ThreadSafeVector<int>* thread_safe_vector_;
   int start_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadSafeVectorTestThread);
 };
 
 TEST(ThreadSafeVector, ThreadSafeVector) {
diff --git a/util/stream/base94_output_stream.h b/util/stream/base94_output_stream.h
index 9d27b2a..2f26d1c 100644
--- a/util/stream/base94_output_stream.h
+++ b/util/stream/base94_output_stream.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/stream/output_stream_interface.h"
 
 namespace crashpad {
@@ -47,6 +46,10 @@
   //! \param[in] output_stream The output_stream that this object writes to.
   Base94OutputStream(Mode mode,
                      std::unique_ptr<OutputStreamInterface> output_stream);
+
+  Base94OutputStream(const Base94OutputStream&) = delete;
+  Base94OutputStream& operator=(const Base94OutputStream&) = delete;
+
   ~Base94OutputStream() override;
 
   // OutputStreamInterface:
@@ -70,8 +73,6 @@
   char symbol_buffer_;
   bool flush_needed_;
   bool flushed_;
-
-  DISALLOW_COPY_AND_ASSIGN(Base94OutputStream);
 };
 
 }  // namespace crashpad
diff --git a/util/stream/base94_output_stream_test.cc b/util/stream/base94_output_stream_test.cc
index c15d697..d0a2985 100644
--- a/util/stream/base94_output_stream_test.cc
+++ b/util/stream/base94_output_stream_test.cc
@@ -20,7 +20,6 @@
 #include <sstream>
 
 #include "base/cxx17_backports.h"
-#include "base/macros.h"
 #include "base/rand_util.h"
 #include "base/strings/stringprintf.h"
 #include "gtest/gtest.h"
@@ -50,6 +49,9 @@
  public:
   Base94OutputStreamTest() {}
 
+  Base94OutputStreamTest(const Base94OutputStreamTest&) = delete;
+  Base94OutputStreamTest& operator=(const Base94OutputStreamTest&) = delete;
+
  protected:
   void SetUp() override {
     auto output_stream = std::make_unique<TestOutputStream>();
@@ -127,8 +129,6 @@
   TestOutputStream* round_trip_test_output_stream_;
   std::unique_ptr<uint8_t[]> input_;
   std::unique_ptr<uint8_t[]> deterministic_input_;
-
-  DISALLOW_COPY_AND_ASSIGN(Base94OutputStreamTest);
 };
 
 TEST_F(Base94OutputStreamTest, Encoding) {
diff --git a/util/stream/file_encoder.h b/util/stream/file_encoder.h
index 2f34b0b..72ea307 100644
--- a/util/stream/file_encoder.h
+++ b/util/stream/file_encoder.h
@@ -16,7 +16,6 @@
 #define CRASHPAD_UTIL_STREAM_FILE_ENCODER_H_
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -38,6 +37,10 @@
   FileEncoder(Mode mode,
               const base::FilePath& input_path,
               const base::FilePath& output_path);
+
+  FileEncoder(const FileEncoder&) = delete;
+  FileEncoder& operator=(const FileEncoder&) = delete;
+
   ~FileEncoder();
 
   //! \brief Encode/decode the data from \a input_path_ file according work
@@ -50,8 +53,6 @@
   Mode mode_;
   base::FilePath input_path_;
   base::FilePath output_path_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileEncoder);
 };
 
 }  // namespace crashpad
diff --git a/util/stream/file_encoder_test.cc b/util/stream/file_encoder_test.cc
index ff98914..23d78dd 100644
--- a/util/stream/file_encoder_test.cc
+++ b/util/stream/file_encoder_test.cc
@@ -19,7 +19,6 @@
 #include <string>
 
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "gtest/gtest.h"
 #include "test/scoped_temp_dir.h"
 #include "util/file/file_io.h"
diff --git a/util/stream/file_output_stream.h b/util/stream/file_output_stream.h
index 128ccd5..d7fc017 100644
--- a/util/stream/file_output_stream.h
+++ b/util/stream/file_output_stream.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_STREAM_FILE_OUTPUT_STREAM_H_
 #define CRASHPAD_UTIL_STREAM_FILE_OUTPUT_STREAM_H_
 
-#include "base/macros.h"
 #include "util/file/file_io.h"
 #include "util/file/file_writer.h"
 #include "util/stream/output_stream_interface.h"
@@ -27,6 +26,10 @@
  public:
   //! \param[in] file_handle The file that this object writes to.
   explicit FileOutputStream(FileHandle file_handle);
+
+  FileOutputStream(const FileOutputStream&) = delete;
+  FileOutputStream& operator=(const FileOutputStream&) = delete;
+
   ~FileOutputStream();
 
   // OutputStream.
@@ -37,8 +40,6 @@
   WeakFileHandleFileWriter writer_;
   bool flush_needed_;
   bool flushed_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileOutputStream);
 };
 
 }  // namespace crashpad
diff --git a/util/stream/log_output_stream.h b/util/stream/log_output_stream.h
index a1b6df3..a90a156 100644
--- a/util/stream/log_output_stream.h
+++ b/util/stream/log_output_stream.h
@@ -21,7 +21,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "util/stream/output_stream_interface.h"
 
 namespace crashpad {
@@ -51,6 +50,10 @@
   };
 
   explicit LogOutputStream(std::unique_ptr<Delegate> delegate);
+
+  LogOutputStream(const LogOutputStream&) = delete;
+  LogOutputStream& operator=(const LogOutputStream&) = delete;
+
   ~LogOutputStream() override;
 
   // OutputStreamInterface:
@@ -68,8 +71,6 @@
   size_t output_count_;
   bool flush_needed_;
   bool flushed_;
-
-  DISALLOW_COPY_AND_ASSIGN(LogOutputStream);
 };
 
 }  // namespace crashpad
diff --git a/util/stream/log_output_stream_test.cc b/util/stream/log_output_stream_test.cc
index 9faf34b..7c62513 100644
--- a/util/stream/log_output_stream_test.cc
+++ b/util/stream/log_output_stream_test.cc
@@ -18,7 +18,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "gtest/gtest.h"
 
 namespace crashpad {
@@ -55,6 +54,9 @@
  public:
   LogOutputStreamTest() {}
 
+  LogOutputStreamTest(const LogOutputStreamTest&) = delete;
+  LogOutputStreamTest& operator=(const LogOutputStreamTest&) = delete;
+
  protected:
   void SetUp() override {
     log_stream_ = std::make_unique<LogOutputStream>(
@@ -77,8 +79,6 @@
   std::unique_ptr<LogOutputStream> log_stream_;
   std::string test_log_output_;
   std::unique_ptr<uint8_t[]> deterministic_input_;
-
-  DISALLOW_COPY_AND_ASSIGN(LogOutputStreamTest);
 };
 
 TEST_F(LogOutputStreamTest, WriteShortLog) {
diff --git a/util/stream/test_output_stream.h b/util/stream/test_output_stream.h
index dcd0d45..e8f9cf9 100644
--- a/util/stream/test_output_stream.h
+++ b/util/stream/test_output_stream.h
@@ -20,7 +20,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "util/stream/output_stream_interface.h"
 
 namespace crashpad {
@@ -30,6 +29,10 @@
 class TestOutputStream : public OutputStreamInterface {
  public:
   TestOutputStream();
+
+  TestOutputStream(const TestOutputStream&) = delete;
+  TestOutputStream& operator=(const TestOutputStream&) = delete;
+
   ~TestOutputStream() override;
 
   // OutputStreamInterface:
@@ -56,8 +59,6 @@
   size_t write_count_;
   size_t flush_count_;
   bool flush_needed_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestOutputStream);
 };
 
 }  // namespace test
diff --git a/util/stream/zlib_output_stream.h b/util/stream/zlib_output_stream.h
index d8e62a6..62253ee 100644
--- a/util/stream/zlib_output_stream.h
+++ b/util/stream/zlib_output_stream.h
@@ -20,7 +20,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "third_party/zlib/zlib_crashpad.h"
 #include "util/misc/initialization_state.h"
 #include "util/stream/output_stream_interface.h"
@@ -56,6 +55,10 @@
   //!
   ZlibOutputStream(Mode mode,
                    std::unique_ptr<OutputStreamInterface> output_stream);
+
+  ZlibOutputStream(const ZlibOutputStream&) = delete;
+  ZlibOutputStream& operator=(const ZlibOutputStream&) = delete;
+
   ~ZlibOutputStream() override;
 
   // OutputStreamInterface:
@@ -73,8 +76,6 @@
   Mode mode_;
   InitializationState initialized_;  // protects zlib_stream_
   bool flush_needed_;
-
-  DISALLOW_COPY_AND_ASSIGN(ZlibOutputStream);
 };
 
 }  // namespace crashpad
diff --git a/util/stream/zlib_output_stream_test.cc b/util/stream/zlib_output_stream_test.cc
index 194f811..306a61b 100644
--- a/util/stream/zlib_output_stream_test.cc
+++ b/util/stream/zlib_output_stream_test.cc
@@ -42,6 +42,9 @@
                                            std::move(test_output_stream)));
   }
 
+  ZlibOutputStreamTest(const ZlibOutputStreamTest&) = delete;
+  ZlibOutputStreamTest& operator=(const ZlibOutputStreamTest&) = delete;
+
   const uint8_t* BuildDeterministicInput(size_t size) {
     deterministic_input_ = std::make_unique<uint8_t[]>(size);
     uint8_t* deterministic_input_base = deterministic_input_.get();
@@ -69,8 +72,6 @@
   std::unique_ptr<uint8_t[]> input_;
   std::unique_ptr<uint8_t[]> deterministic_input_;
   TestOutputStream* test_output_stream_;  // weak, owned by zlib_output_stream_
-
-  DISALLOW_COPY_AND_ASSIGN(ZlibOutputStreamTest);
 };
 
 TEST_F(ZlibOutputStreamTest, WriteDeterministicShortData) {
diff --git a/util/thread/stoppable.h b/util/thread/stoppable.h
index e7a5127..62bb40b 100644
--- a/util/thread/stoppable.h
+++ b/util/thread/stoppable.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_THREAD_STOPPABLE_H_
 #define CRASHPAD_UTIL_THREAD_STOPPABLE_H_
 
-#include "base/macros.h"
 
 namespace crashpad {
 
diff --git a/util/thread/thread.h b/util/thread/thread.h
index 595d308..e06ca3c 100644
--- a/util/thread/thread.h
+++ b/util/thread/thread.h
@@ -15,7 +15,6 @@
 #ifndef CRASHPAD_UTIL_THREAD_THREAD_H_
 #define CRASHPAD_UTIL_THREAD_THREAD_H_
 
-#include "base/macros.h"
 #include "build/build_config.h"
 
 #if defined(OS_POSIX)
@@ -31,6 +30,10 @@
 class Thread {
  public:
   Thread();
+
+  Thread(const Thread&) = delete;
+  Thread& operator=(const Thread&) = delete;
+
   virtual ~Thread();
 
   //! \brief Create a platform thread, and run ThreadMain() on that thread. Must
@@ -58,8 +61,6 @@
 #elif defined(OS_WIN)
   HANDLE platform_thread_;
 #endif
-
-  DISALLOW_COPY_AND_ASSIGN(Thread);
 };
 
 }  // namespace crashpad
diff --git a/util/thread/thread_log_messages.cc b/util/thread/thread_log_messages.cc
index 70680b3..230bb87 100644
--- a/util/thread/thread_log_messages.cc
+++ b/util/thread/thread_log_messages.cc
@@ -34,6 +34,9 @@
 // object of this class exists.
 class ThreadLogMessagesMaster {
  public:
+  ThreadLogMessagesMaster(const ThreadLogMessagesMaster&) = delete;
+  ThreadLogMessagesMaster& operator=(const ThreadLogMessagesMaster&) = delete;
+
   void SetThreadMessageList(std::vector<std::string>* message_list) {
     DCHECK_EQ(logging::GetLogMessageHandler(), &LogMessageHandler);
     DCHECK_NE(tls_.Get() != nullptr, message_list != nullptr);
@@ -70,8 +73,6 @@
   }
 
   base::ThreadLocalStorage::Slot tls_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadLogMessagesMaster);
 };
 
 }  // namespace
diff --git a/util/thread/thread_log_messages.h b/util/thread/thread_log_messages.h
index e8eef35..67bee62 100644
--- a/util/thread/thread_log_messages.h
+++ b/util/thread/thread_log_messages.h
@@ -18,7 +18,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -31,6 +30,10 @@
 class ThreadLogMessages {
  public:
   ThreadLogMessages();
+
+  ThreadLogMessages(const ThreadLogMessages&) = delete;
+  ThreadLogMessages& operator=(const ThreadLogMessages&) = delete;
+
   ~ThreadLogMessages();
 
   //! \return The log messages collected on the thread that this object was
@@ -39,8 +42,6 @@
 
  private:
   std::vector<std::string> log_messages_;
-
-  DISALLOW_COPY_AND_ASSIGN(ThreadLogMessages);
 };
 
 }  // namespace crashpad
diff --git a/util/thread/thread_log_messages_test.cc b/util/thread/thread_log_messages_test.cc
index 143e4c1..f3dc1a6 100644
--- a/util/thread/thread_log_messages_test.cc
+++ b/util/thread/thread_log_messages_test.cc
@@ -104,6 +104,10 @@
 class LoggingTestThread : public Thread {
  public:
   LoggingTestThread() : thread_number_(0), start_(0), count_(0) {}
+
+  LoggingTestThread(const LoggingTestThread&) = delete;
+  LoggingTestThread& operator=(const LoggingTestThread&) = delete;
+
   ~LoggingTestThread() override {}
 
   void Initialize(size_t thread_number, int start, int count) {
@@ -137,8 +141,6 @@
   size_t thread_number_;
   int start_;
   int count_;
-
-  DISALLOW_COPY_AND_ASSIGN(LoggingTestThread);
 };
 
 TEST(ThreadLogMessages, Multithreaded) {
diff --git a/util/thread/thread_test.cc b/util/thread/thread_test.cc
index 47a711c..f2ea345 100644
--- a/util/thread/thread_test.cc
+++ b/util/thread/thread_test.cc
@@ -24,31 +24,39 @@
 class NoopThread : public Thread {
  public:
   NoopThread() {}
+
+  NoopThread(const NoopThread&) = delete;
+  NoopThread& operator=(const NoopThread&) = delete;
+
   ~NoopThread() override {}
 
  private:
   void ThreadMain() override {}
-
-  DISALLOW_COPY_AND_ASSIGN(NoopThread);
 };
 
 class WaitThread : public Thread {
  public:
   explicit WaitThread(Semaphore* semaphore) : semaphore_(semaphore) {}
+
+  WaitThread(const WaitThread&) = delete;
+  WaitThread& operator=(const WaitThread&) = delete;
+
   ~WaitThread() override {}
 
  private:
   void ThreadMain() override { semaphore_->Wait(); }
 
   Semaphore* semaphore_;
-
-  DISALLOW_COPY_AND_ASSIGN(WaitThread);
 };
 
 class JoinAndSignalThread : public Thread {
  public:
   JoinAndSignalThread(Thread* thread, Semaphore* semaphore)
       : thread_(thread), semaphore_(semaphore) {}
+
+  JoinAndSignalThread(const JoinAndSignalThread&) = delete;
+  JoinAndSignalThread& operator=(const JoinAndSignalThread&) = delete;
+
   ~JoinAndSignalThread() override {}
 
  private:
@@ -59,8 +67,6 @@
 
   Thread* thread_;
   Semaphore* semaphore_;
-
-  DISALLOW_COPY_AND_ASSIGN(JoinAndSignalThread);
 };
 
 TEST(ThreadTest, NoStart) {
diff --git a/util/thread/worker_thread.h b/util/thread/worker_thread.h
index 0fae009..a07fd7d 100644
--- a/util/thread/worker_thread.h
+++ b/util/thread/worker_thread.h
@@ -17,7 +17,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "util/synchronization/semaphore.h"
 
 namespace crashpad {
@@ -53,6 +52,10 @@
   //!     called.
   //! \param[in] delegate The work delegate to invoke every interval.
   WorkerThread(double work_interval, Delegate* delegate);
+
+  WorkerThread(const WorkerThread&) = delete;
+  WorkerThread& operator=(const WorkerThread&) = delete;
+
   ~WorkerThread();
 
   //! \brief Starts the worker thread.
@@ -93,8 +96,6 @@
   std::unique_ptr<internal::WorkerThreadImpl> impl_;
   bool running_;
   bool do_work_now_;
-
-  DISALLOW_COPY_AND_ASSIGN(WorkerThread);
 };
 
 }  // namespace crashpad
diff --git a/util/thread/worker_thread_test.cc b/util/thread/worker_thread_test.cc
index 4e4fbf9..811d09c 100644
--- a/util/thread/worker_thread_test.cc
+++ b/util/thread/worker_thread_test.cc
@@ -27,6 +27,10 @@
 class WorkDelegate : public WorkerThread::Delegate {
  public:
   WorkDelegate() {}
+
+  WorkDelegate(const WorkDelegate&) = delete;
+  WorkDelegate& operator=(const WorkDelegate&) = delete;
+
   ~WorkDelegate() {}
 
   void DoWork(const WorkerThread* thread) override {
@@ -53,8 +57,6 @@
   Semaphore semaphore_{0};
   int work_count_ = 0;
   int waiting_for_count_ = -1;
-
-  DISALLOW_COPY_AND_ASSIGN(WorkDelegate);
 };
 
 TEST(WorkerThread, DoWork) {
diff --git a/util/win/exception_handler_server.cc b/util/win/exception_handler_server.cc
index 9394256..92d5c5d 100644
--- a/util/win/exception_handler_server.cc
+++ b/util/win/exception_handler_server.cc
@@ -78,6 +78,9 @@
         clients_(clients),
         shutdown_token_(shutdown_token) {}
 
+  PipeServiceContext(const PipeServiceContext&) = delete;
+  PipeServiceContext& operator=(const PipeServiceContext&) = delete;
+
   HANDLE port() const { return port_; }
   HANDLE pipe() const { return pipe_.get(); }
   ExceptionHandlerServer::Delegate* delegate() const { return delegate_; }
@@ -92,8 +95,6 @@
   base::Lock* clients_lock_;  // weak
   std::set<internal::ClientData*>* clients_;  // weak
   uint64_t shutdown_token_;
-
-  DISALLOW_COPY_AND_ASSIGN(PipeServiceContext);
 };
 
 //! \brief The context data for registered threadpool waits.
@@ -137,6 +138,9 @@
                             process_end_callback);
   }
 
+  ClientData(const ClientData&) = delete;
+  ClientData& operator=(const ClientData&) = delete;
+
   ~ClientData() {
     // It is important that this only access the threadpool waits (it's called
     // from the main thread) until the waits are unregistered, to ensure that
@@ -230,8 +234,6 @@
   WinVMAddress crash_exception_information_address_;
   WinVMAddress non_crash_exception_information_address_;
   WinVMAddress debug_critical_section_address_;
-
-  DISALLOW_COPY_AND_ASSIGN(ClientData);
 };
 
 }  // namespace internal
diff --git a/util/win/exception_handler_server.h b/util/win/exception_handler_server.h
index 994cdba..6d9a367 100644
--- a/util/win/exception_handler_server.h
+++ b/util/win/exception_handler_server.h
@@ -18,7 +18,6 @@
 #include <set>
 #include <string>
 
-#include "base/macros.h"
 #include "base/synchronization/lock.h"
 #include "util/file/file_io.h"
 #include "util/win/address_types.h"
@@ -70,6 +69,9 @@
   //!     although Run() will always wait for the first client to connect.
   explicit ExceptionHandlerServer(bool persistent);
 
+  ExceptionHandlerServer(const ExceptionHandlerServer&) = delete;
+  ExceptionHandlerServer& operator=(const ExceptionHandlerServer&) = delete;
+
   ~ExceptionHandlerServer();
 
   //! \brief Sets the pipe name to listen for client registrations on.
@@ -131,8 +133,6 @@
   std::set<internal::ClientData*> clients_;
 
   bool persistent_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServer);
 };
 
 }  // namespace crashpad
diff --git a/util/win/exception_handler_server_test.cc b/util/win/exception_handler_server_test.cc
index ce31677..ed83e16 100644
--- a/util/win/exception_handler_server_test.cc
+++ b/util/win/exception_handler_server_test.cc
@@ -20,7 +20,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "client/crashpad_client.h"
 #include "gtest/gtest.h"
@@ -41,6 +40,10 @@
   RunServerThread(ExceptionHandlerServer* server,
                   ExceptionHandlerServer::Delegate* delegate)
       : server_(server), delegate_(delegate) {}
+
+  RunServerThread(const RunServerThread&) = delete;
+  RunServerThread& operator=(const RunServerThread&) = delete;
+
   ~RunServerThread() override {}
 
  private:
@@ -49,13 +52,15 @@
 
   ExceptionHandlerServer* server_;
   ExceptionHandlerServer::Delegate* delegate_;
-
-  DISALLOW_COPY_AND_ASSIGN(RunServerThread);
 };
 
 class TestDelegate : public ExceptionHandlerServer::Delegate {
  public:
   explicit TestDelegate(HANDLE server_ready) : server_ready_(server_ready) {}
+
+  TestDelegate(const TestDelegate&) = delete;
+  TestDelegate& operator=(const TestDelegate&) = delete;
+
   ~TestDelegate() {}
 
   void ExceptionHandlerServerStarted() override {
@@ -72,8 +77,6 @@
 
  private:
   HANDLE server_ready_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(TestDelegate);
 };
 
 class ExceptionHandlerServerTest : public testing::Test {
@@ -87,6 +90,10 @@
     server_.SetPipeName(pipe_name_);
   }
 
+  ExceptionHandlerServerTest(const ExceptionHandlerServerTest&) = delete;
+  ExceptionHandlerServerTest& operator=(const ExceptionHandlerServerTest&) =
+      delete;
+
   TestDelegate& delegate() { return delegate_; }
   ExceptionHandlerServer& server() { return server_; }
   Thread& server_thread() { return server_thread_; }
@@ -98,8 +105,6 @@
   ScopedKernelHANDLE server_ready_;
   TestDelegate delegate_;
   RunServerThread server_thread_;
-
-  DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServerTest);
 };
 
 // During destruction, ensures that the server is stopped and the background
@@ -108,6 +113,11 @@
  public:
   ScopedStopServerAndJoinThread(ExceptionHandlerServer* server, Thread* thread)
       : server_(server), thread_(thread) {}
+
+  ScopedStopServerAndJoinThread(const ScopedStopServerAndJoinThread&) = delete;
+  ScopedStopServerAndJoinThread& operator=(
+      const ScopedStopServerAndJoinThread&) = delete;
+
   ~ScopedStopServerAndJoinThread() {
     server_->Stop();
     thread_->Join();
@@ -116,7 +126,6 @@
  private:
   ExceptionHandlerServer* server_;
   Thread* thread_;
-  DISALLOW_COPY_AND_ASSIGN(ScopedStopServerAndJoinThread);
 };
 
 TEST_F(ExceptionHandlerServerTest, Instantiate) {
@@ -163,6 +172,9 @@
  public:
   TestClient() : WinChildProcess() {}
 
+  TestClient(const TestClient&) = delete;
+  TestClient& operator=(const TestClient&) = delete;
+
   ~TestClient() {}
 
  private:
@@ -176,8 +188,6 @@
     WriteWString(WritePipeHandle(), L"OK");
     return EXIT_SUCCESS;
   }
-
-  DISALLOW_COPY_AND_ASSIGN(TestClient);
 };
 
 TEST_F(ExceptionHandlerServerTest, MultipleConnections) {
diff --git a/util/win/initial_client_data.h b/util/win/initial_client_data.h
index f686959..856de8d 100644
--- a/util/win/initial_client_data.h
+++ b/util/win/initial_client_data.h
@@ -19,7 +19,6 @@
 
 #include <string>
 
-#include "base/macros.h"
 #include "util/win/address_types.h"
 
 namespace crashpad {
@@ -67,6 +66,9 @@
                     WinVMAddress non_crash_exception_information,
                     WinVMAddress debug_critical_section_address);
 
+  InitialClientData(const InitialClientData&) = delete;
+  InitialClientData& operator=(const InitialClientData&) = delete;
+
   //! \brief Returns whether the object has been initialized successfully.
   bool IsValid() const { return is_valid_; }
 
@@ -107,8 +109,6 @@
   HANDLE first_pipe_instance_;
   HANDLE client_process_;
   bool is_valid_;
-
-  DISALLOW_COPY_AND_ASSIGN(InitialClientData);
 };
 
 }  // namespace crashpad
diff --git a/util/win/ntstatus_logging.h b/util/win/ntstatus_logging.h
index 7eececc..24e6d90 100644
--- a/util/win/ntstatus_logging.h
+++ b/util/win/ntstatus_logging.h
@@ -18,7 +18,6 @@
 #include <windows.h>
 
 #include "base/logging.h"
-#include "base/macros.h"
 
 namespace logging {
 
@@ -32,12 +31,14 @@
       int line,
       LogSeverity severity,
       DWORD ntstatus);
+
+  NtstatusLogMessage(const NtstatusLogMessage&) = delete;
+  NtstatusLogMessage& operator=(const NtstatusLogMessage&) = delete;
+
   ~NtstatusLogMessage();
 
  private:
   DWORD ntstatus_;
-
-  DISALLOW_COPY_AND_ASSIGN(NtstatusLogMessage);
 };
 
 }  // namespace logging
diff --git a/util/win/process_info.h b/util/win/process_info.h
index afbe146..7b28a65 100644
--- a/util/win/process_info.h
+++ b/util/win/process_info.h
@@ -21,7 +21,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "util/misc/initialization_state_dcheck.h"
 #include "util/numeric/checked_range.h"
 #include "util/process/process_id.h"
@@ -87,6 +86,10 @@
   };
 
   ProcessInfo();
+
+  ProcessInfo(const ProcessInfo&) = delete;
+  ProcessInfo& operator=(const ProcessInfo&) = delete;
+
   ~ProcessInfo();
 
   //! \brief Initializes this object with information about the given
@@ -202,8 +205,6 @@
   bool is_64_bit_;
   bool is_wow64_;
   InitializationStateDcheck initialized_;
-
-  DISALLOW_COPY_AND_ASSIGN(ProcessInfo);
 };
 
 //! \brief Given a memory map of a process, and a range to be read from the
diff --git a/util/win/safe_terminate_process_test.cc b/util/win/safe_terminate_process_test.cc
index 6904d03..6ca5aa6 100644
--- a/util/win/safe_terminate_process_test.cc
+++ b/util/win/safe_terminate_process_test.cc
@@ -22,7 +22,6 @@
 #include "base/check.h"
 #include "base/cxx17_backports.h"
 #include "base/files/file_path.h"
-#include "base/macros.h"
 #include "build/build_config.h"
 #include "gtest/gtest.h"
 #include "test/errors.h"
@@ -46,6 +45,9 @@
     memcpy(target_, source, size_);
   }
 
+  ScopedExecutablePatch(const ScopedExecutablePatch&) = delete;
+  ScopedExecutablePatch& operator=(const ScopedExecutablePatch&) = delete;
+
   ~ScopedExecutablePatch() {
     ScopedVirtualProtectRWX protect_rwx(target_, size_);
     memcpy(target_, original_.get(), size_);
@@ -71,6 +73,9 @@
           << "VirtualProtect";
     }
 
+    ScopedVirtualProtectRWX(const ScopedVirtualProtectRWX&) = delete;
+    ScopedVirtualProtectRWX& operator=(const ScopedVirtualProtectRWX&) = delete;
+
     ~ScopedVirtualProtectRWX() {
       DWORD last_protect_;
       PCHECK(VirtualProtect(address_, size_, old_protect_, &last_protect_))
@@ -81,15 +86,11 @@
     void* address_;
     size_t size_;
     DWORD old_protect_;
-
-    DISALLOW_COPY_AND_ASSIGN(ScopedVirtualProtectRWX);
   };
 
   std::unique_ptr<uint8_t[]> original_;
   void* target_;
   size_t size_;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedExecutablePatch);
 };
 
 // SafeTerminateProcess is calling convention specific only for x86.
diff --git a/util/win/scoped_process_suspend.h b/util/win/scoped_process_suspend.h
index 913886e..e809723 100644
--- a/util/win/scoped_process_suspend.h
+++ b/util/win/scoped_process_suspend.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -33,6 +32,10 @@
  public:
   //! Does not take ownership of \a process.
   explicit ScopedProcessSuspend(HANDLE process);
+
+  ScopedProcessSuspend(const ScopedProcessSuspend&) = delete;
+  ScopedProcessSuspend& operator=(const ScopedProcessSuspend&) = delete;
+
   ~ScopedProcessSuspend();
 
   //! \brief Informs the object that the suspended process may be terminating,
@@ -47,8 +50,6 @@
  private:
   HANDLE process_;
   bool tolerate_termination_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedProcessSuspend);
 };
 
 }  // namespace crashpad
diff --git a/util/win/scoped_process_suspend_test.cc b/util/win/scoped_process_suspend_test.cc
index 2d0f5a0..d8ca62f 100644
--- a/util/win/scoped_process_suspend_test.cc
+++ b/util/win/scoped_process_suspend_test.cc
@@ -75,6 +75,10 @@
 class ScopedProcessSuspendTest final : public WinChildProcess {
  public:
   ScopedProcessSuspendTest() : WinChildProcess() {}
+
+  ScopedProcessSuspendTest(const ScopedProcessSuspendTest&) = delete;
+  ScopedProcessSuspendTest& operator=(const ScopedProcessSuspendTest&) = delete;
+
   ~ScopedProcessSuspendTest() {}
 
  private:
@@ -85,8 +89,6 @@
     EXPECT_EQ(c, ' ');
     return EXIT_SUCCESS;
   }
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedProcessSuspendTest);
 };
 
 TEST(ScopedProcessSuspend, ScopedProcessSuspend) {
diff --git a/util/win/scoped_set_event.h b/util/win/scoped_set_event.h
index 82a1b31..ba58d2b 100644
--- a/util/win/scoped_set_event.h
+++ b/util/win/scoped_set_event.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 
 namespace crashpad {
 
@@ -28,6 +27,10 @@
 class ScopedSetEvent {
  public:
   explicit ScopedSetEvent(HANDLE event);
+
+  ScopedSetEvent(const ScopedSetEvent&) = delete;
+  ScopedSetEvent& operator=(const ScopedSetEvent&) = delete;
+
   ~ScopedSetEvent();
 
   //! \brief Calls `SetEvent()` immediately.
@@ -39,8 +42,6 @@
 
  private:
   HANDLE event_;  // weak
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedSetEvent);
 };
 
 }  // namespace crashpad
diff --git a/util/win/session_end_watcher.h b/util/win/session_end_watcher.h
index b23d391..6da1af8 100644
--- a/util/win/session_end_watcher.h
+++ b/util/win/session_end_watcher.h
@@ -17,7 +17,6 @@
 
 #include <windows.h>
 
-#include "base/macros.h"
 #include "util/thread/thread.h"
 #include "util/win/scoped_handle.h"
 
@@ -36,6 +35,9 @@
  public:
   SessionEndWatcher();
 
+  SessionEndWatcher(const SessionEndWatcher&) = delete;
+  SessionEndWatcher& operator=(const SessionEndWatcher&) = delete;
+
   //! \note The destructor waits for the thread that runs the message loop to
   //!     terminate.
   ~SessionEndWatcher() override;
@@ -70,8 +72,6 @@
   HWND window_;  // Conceptually strong, but ownership managed in ThreadMain()
   ScopedKernelHANDLE started_;
   ScopedKernelHANDLE stopped_;
-
-  DISALLOW_COPY_AND_ASSIGN(SessionEndWatcher);
 };
 
 }  // namespace crashpad
diff --git a/util/win/session_end_watcher_test.cc b/util/win/session_end_watcher_test.cc
index 692d76e..d6749da 100644
--- a/util/win/session_end_watcher_test.cc
+++ b/util/win/session_end_watcher_test.cc
@@ -25,6 +25,9 @@
  public:
   SessionEndWatcherTest() : SessionEndWatcher(), called_(false) {}
 
+  SessionEndWatcherTest(const SessionEndWatcherTest&) = delete;
+  SessionEndWatcherTest& operator=(const SessionEndWatcherTest&) = delete;
+
   ~SessionEndWatcherTest() override {}
 
   void Run() {
@@ -44,8 +47,6 @@
   void SessionEnding() override { called_ = true; }
 
   bool called_;
-
-  DISALLOW_COPY_AND_ASSIGN(SessionEndWatcherTest);
 };
 
 TEST(SessionEndWatcher, SessionEndWatcher) {