[go: nahoru, domu]

Replace PrintingContext::Result with mojom::ResultCode

Pushing document printing to out-of-process means that there could now
be a new possible access-denied result for PrintingContext operations.
While the PrintingResult enum could be extended to include this, it
can instead just use the same mojom::ResultCode that is used for other
operations which interact with OS APIs since they would have the same
effective enum values.

In preparation for adding access-denied support to PrintingContext,
first replace all usage of PrintingContext::Result with
mojom::ResultCode.  There is no logical change with this replacement.

Bug: 809738
Change-Id: I997d4d207232142dbd36e59e3689ec71bb15fed9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3171346
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Queue: Alan Screen <awscreen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923261}
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc
index 3f75537..c5bf0918 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -95,7 +95,7 @@
   DCHECK(printer_query);
   auto params = mojom::PrintPagesParams::New();
   params->params = mojom::PrintParams::New();
-  if (printer_query->last_status() == PrintingContext::OK) {
+  if (printer_query->last_status() == mojom::ResultCode::kSuccess) {
     RenderParamsFromPrintSettings(printer_query->settings(),
                                   params->params.get());
     params->params->document_cookie = printer_query->cookie();
@@ -103,7 +103,7 @@
     snooped_settings =
         std::make_unique<PrintSettings>(printer_query->settings());
   }
-  bool canceled = printer_query->last_status() == PrintingContext::CANCEL;
+  bool canceled = printer_query->last_status() == mojom::ResultCode::kCanceled;
 
   params->params = GetPrintParams();
 
diff --git a/chrome/browser/printing/print_job_unittest.cc b/chrome/browser/printing/print_job_unittest.cc
index 01d13e4..e020df8 100644
--- a/chrome/browser/printing/print_job_unittest.cc
+++ b/chrome/browser/printing/print_job_unittest.cc
@@ -19,6 +19,7 @@
 #include "content/public/browser/notification_service.h"
 #include "content/public/common/child_process_host.h"
 #include "content/public/test/browser_task_environment.h"
+#include "printing/mojom/print.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace printing {
@@ -41,7 +42,7 @@
 
   void GetSettingsDone(base::OnceClosure callback,
                        std::unique_ptr<PrintSettings> new_settings,
-                       PrintingContext::Result result) override {
+                       mojom::ResultCode result) override {
     FAIL();
   }
 
diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
index 43059434..fdb3b71 100644
--- a/chrome/browser/printing/print_job_worker.cc
+++ b/chrome/browser/printing/print_job_worker.cc
@@ -240,7 +240,7 @@
 #endif  // defined(OS_LINUX) && defined(USE_CUPS)
   }
 
-  PrintingContext::Result result;
+  mojom::ResultCode result;
   {
 #if defined(OS_WIN)
     // Blocking is needed here because Windows printer drivers are oftentimes
@@ -257,14 +257,14 @@
     std::unique_ptr<PrintSettings> new_settings,
     SettingsCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  PrintingContext::Result result =
+  mojom::ResultCode result =
       printing_context_->UpdatePrintSettingsFromPOD(std::move(new_settings));
   GetSettingsDone(std::move(callback), result);
 }
 #endif
 
 void PrintJobWorker::GetSettingsDone(SettingsCallback callback,
-                                     PrintingContext::Result result) {
+                                     mojom::ResultCode result) {
   std::move(callback).Run(printing_context_->TakeAndResetSettings(), result);
 }
 
@@ -275,7 +275,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   if (document_page_count > kMaxPageCount) {
-    GetSettingsDone(std::move(callback), PrintingContext::Result::FAILED);
+    GetSettingsDone(std::move(callback), mojom::ResultCode::kFailed);
     return;
   }
 
@@ -313,7 +313,7 @@
 }
 
 void PrintJobWorker::UseDefaultSettings(SettingsCallback callback) {
-  PrintingContext::Result result;
+  mojom::ResultCode result;
   {
 #if defined(OS_WIN)
     // Blocking is needed here because Windows printer drivers are oftentimes
@@ -348,9 +348,8 @@
     document_name = SimplifyDocumentTitle(
         l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
   }
-  PrintingContext::Result result =
-      printing_context_->NewDocument(document_name);
-  if (result != PrintingContext::OK) {
+  mojom::ResultCode result = printing_context_->NewDocument(document_name);
+  if (result != mojom::ResultCode::kSuccess) {
     OnFailure();
     return;
   }
@@ -480,7 +479,7 @@
   DCHECK(print_job_);
 
   int job_id = printing_context_->job_id();
-  if (printing_context_->DocumentDone() != PrintingContext::OK) {
+  if (printing_context_->DocumentDone() != mojom::ResultCode::kSuccess) {
     OnFailure();
     return;
   }
@@ -501,7 +500,7 @@
   DCHECK_NE(page_number_, PageNumber::npos());
 
   // Preprocess.
-  if (printing_context_->NewPage() != PrintingContext::OK) {
+  if (printing_context_->NewPage() != mojom::ResultCode::kSuccess) {
     OnFailure();
     return;
   }
@@ -510,7 +509,7 @@
   document_->RenderPrintedPage(*page, printing_context_->context());
 
   // Postprocess.
-  if (printing_context_->PageDone() != PrintingContext::OK) {
+  if (printing_context_->PageDone() != mojom::ResultCode::kSuccess) {
     OnFailure();
     return;
   }
diff --git a/chrome/browser/printing/print_job_worker.h b/chrome/browser/printing/print_job_worker.h
index 553277b..4b2001b 100644
--- a/chrome/browser/printing/print_job_worker.h
+++ b/chrome/browser/printing/print_job_worker.h
@@ -37,7 +37,7 @@
  public:
   using SettingsCallback =
       base::OnceCallback<void(std::unique_ptr<PrintSettings>,
-                              PrintingContext::Result)>;
+                              mojom::ResultCode)>;
 
   PrintJobWorker(int render_process_id, int render_frame_id);
 
@@ -161,8 +161,7 @@
 #endif
 
   // Reports settings back to |callback|.
-  void GetSettingsDone(SettingsCallback callback,
-                       PrintingContext::Result result);
+  void GetSettingsDone(SettingsCallback callback, mojom::ResultCode result);
 
   // Use the default settings. When using GTK+ or Mac, this can still end up
   // displaying a dialog. So this needs to happen from the UI thread on these
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
index e4cacbf..0a31c54 100644
--- a/chrome/browser/printing/print_view_manager_base.cc
+++ b/chrome/browser/printing/print_view_manager_base.cc
@@ -155,7 +155,8 @@
     mojom::PrintManagerHost::GetDefaultPrintSettingsCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   mojom::PrintParamsPtr params = mojom::PrintParams::New();
-  if (printer_query && printer_query->last_status() == PrintingContext::OK) {
+  if (printer_query &&
+      printer_query->last_status() == mojom::ResultCode::kSuccess) {
     RenderParamsFromPrintSettings(printer_query->settings(), params.get());
     params->document_cookie = printer_query->cookie();
   }
@@ -237,13 +238,13 @@
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   DCHECK(printer_query);
   mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr();
-  if (printer_query->last_status() == PrintingContext::OK) {
+  if (printer_query->last_status() == mojom::ResultCode::kSuccess) {
     RenderParamsFromPrintSettings(printer_query->settings(),
                                   params->params.get());
     params->params->document_cookie = printer_query->cookie();
     params->pages = PageRange::GetPages(printer_query->settings().ranges());
   }
-  bool canceled = printer_query->last_status() == PrintingContext::CANCEL;
+  bool canceled = printer_query->last_status() == mojom::ResultCode::kCanceled;
 #if defined(OS_WIN)
   if (canceled) {
     content::GetUIThreadTaskRunner({})->PostTask(
@@ -291,7 +292,7 @@
     mojom::PrintManagerHost::ScriptedPrintCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr();
-  if (printer_query->last_status() == PrintingContext::OK &&
+  if (printer_query->last_status() == mojom::ResultCode::kSuccess &&
       printer_query->settings().dpi()) {
     RenderParamsFromPrintSettings(printer_query->settings(),
                                   params->params.get());
@@ -428,7 +429,7 @@
 
   // Check if the job was cancelled. This should only happen on Windows when
   // the system dialog is cancelled.
-  if (printer_query->last_status() == PrintingContext::CANCEL) {
+  if (printer_query->last_status() == mojom::ResultCode::kCanceled) {
     queue_->QueuePrinterQuery(std::move(printer_query));
 #if defined(OS_WIN)
     content::GetUIThreadTaskRunner({})->PostTask(
diff --git a/chrome/browser/printing/printer_query.cc b/chrome/browser/printing/printer_query.cc
index a65e9fd..68f987c5 100644
--- a/chrome/browser/printing/printer_query.cc
+++ b/chrome/browser/printing/printer_query.cc
@@ -36,11 +36,11 @@
 
 void PrinterQuery::GetSettingsDone(base::OnceClosure callback,
                                    std::unique_ptr<PrintSettings> new_settings,
-                                   PrintingContext::Result result) {
+                                   mojom::ResultCode result) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   is_print_dialog_box_shown_ = false;
   last_status_ = result;
-  if (result != PrintingContext::FAILED) {
+  if (result == mojom::ResultCode::kSuccess) {
     settings_ = std::move(new_settings);
     cookie_ = PrintSettings::NewCookie();
   } else {
@@ -54,7 +54,7 @@
 void PrinterQuery::PostSettingsDoneToIO(
     base::OnceClosure callback,
     std::unique_ptr<PrintSettings> new_settings,
-    PrintingContext::Result result) {
+    mojom::ResultCode result) {
   // |this| is owned by |callback|, so |base::Unretained()| is safe.
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE,
diff --git a/chrome/browser/printing/printer_query.h b/chrome/browser/printing/printer_query.h
index c936e39..44c0509 100644
--- a/chrome/browser/printing/printer_query.h
+++ b/chrome/browser/printing/printer_query.h
@@ -78,7 +78,7 @@
   virtual void StopWorker();
 
   int cookie() const;
-  PrintingContext::Result last_status() const { return last_status_; }
+  mojom::ResultCode last_status() const { return last_status_; }
 
   // Returns if a worker thread is still associated to this instance.
   bool is_valid() const;
@@ -90,11 +90,11 @@
   // Virtual so that tests can override.
   virtual void GetSettingsDone(base::OnceClosure callback,
                                std::unique_ptr<PrintSettings> new_settings,
-                               PrintingContext::Result result);
+                               mojom::ResultCode result);
 
   void PostSettingsDoneToIO(base::OnceClosure callback,
                             std::unique_ptr<PrintSettings> new_settings,
-                            PrintingContext::Result result);
+                            mojom::ResultCode result);
 
   void SetSettingsForTest(std::unique_ptr<PrintSettings> settings);
 
@@ -112,7 +112,7 @@
   int cookie_;
 
   // Results from the last GetSettingsDone() callback.
-  PrintingContext::Result last_status_ = PrintingContext::FAILED;
+  mojom::ResultCode last_status_ = mojom::ResultCode::kFailed;
 
   // All the UI is done in a worker thread because many Win32 print functions
   // are blocking and enters a message loop without your consent. There is one
diff --git a/chrome/browser/printing/test_printer_query.cc b/chrome/browser/printing/test_printer_query.cc
index 028bd4c..a0cb31fe 100644
--- a/chrome/browser/printing/test_printer_query.cc
+++ b/chrome/browser/printing/test_printer_query.cc
@@ -59,10 +59,10 @@
 #endif
   std::unique_ptr<PrintSettings> settings =
       PrintSettingsFromJobSettings(new_settings);
-  PrintingContext::Result result = PrintingContext::OK;
+  mojom::ResultCode result = mojom::ResultCode::kSuccess;
   if (!settings) {
     settings = std::make_unique<PrintSettings>();
-    result = PrintingContext::FAILED;
+    result = mojom::ResultCode::kFailed;
   }
 
   float device_microns_per_device_unit =
diff --git a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
index 1b18146..8933bc14 100644
--- a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
@@ -89,7 +89,7 @@
 gfx::Size GetDefaultPdfMediaSizeMicrons() {
   PrintingContextDelegate delegate;
   auto printing_context(PrintingContext::Create(&delegate));
-  if (PrintingContext::OK != printing_context->UsePdfSettings() ||
+  if (mojom::ResultCode::kSuccess != printing_context->UsePdfSettings() ||
       printing_context->settings().device_units_per_inch() <= 0) {
     return gfx::Size();
   }
diff --git a/chrome/services/printing/print_backend_service_impl.cc b/chrome/services/printing/print_backend_service_impl.cc
index 76d6128..2a86e36 100644
--- a/chrome/services/printing/print_backend_service_impl.cc
+++ b/chrome/services/printing/print_backend_service_impl.cc
@@ -316,14 +316,11 @@
   // `StartPrinting()` might be called.
   std::unique_ptr<PrintingContext> context =
       PrintingContext::Create(&context_delegate_);
-  PrintingContext::Result context_result =
+  mojom::ResultCode result =
       context->UpdatePrintSettings(base::Value(std::move(job_settings)));
 
-  if (context_result != PrintingContext::OK) {
-    std::move(callback).Run(mojom::PrintSettingsResult::NewResultCode(
-        context_result == PrintingContext::CANCEL
-            ? mojom::ResultCode::kCanceled
-            : mojom::ResultCode::kFailed));
+  if (result != mojom::ResultCode::kSuccess) {
+    std::move(callback).Run(mojom::PrintSettingsResult::NewResultCode(result));
     return;
   }
 
@@ -408,23 +405,19 @@
   }
 #endif
   context->ApplyPrintSettings(document->settings());
-  PrintingContext::Result context_result = context->UpdatePrinterSettings(
+  mojom::ResultCode result = context->UpdatePrinterSettings(
       external_preview, show_system_dialog, document_container.page_count);
-  if (context_result != PrintingContext::OK) {
+  if (result != mojom::ResultCode::kSuccess) {
     DLOG(ERROR) << "Failure updating printer settings for document "
-                << document->cookie() << ", error: " << context_result;
-    return context_result == PrintingContext::CANCEL
-               ? mojom::ResultCode::kCanceled
-               : mojom::ResultCode::kFailed;
+                << document->cookie() << ", error: " << result;
+    return result;
   }
 
-  context_result = context->NewDocument(document->name());
-  if (context_result != PrintingContext::OK) {
+  result = context->NewDocument(document->name());
+  if (result != mojom::ResultCode::kSuccess) {
     DLOG(ERROR) << "Failure initializing new document " << document->cookie()
-                << ", error: " << context_result;
-    return context_result == PrintingContext::CANCEL
-               ? mojom::ResultCode::kCanceled
-               : mojom::ResultCode::kFailed;
+                << ", error: " << result;
+    return result;
   }
 
   document_container.context = std::move(context);
diff --git a/content/browser/renderer_host/pepper/pepper_print_settings_manager.cc b/content/browser/renderer_host/pepper/pepper_print_settings_manager.cc
index 4653987..630ffc9 100644
--- a/content/browser/renderer_host/pepper/pepper_print_settings_manager.cc
+++ b/content/browser/renderer_host/pepper/pepper_print_settings_manager.cc
@@ -84,7 +84,7 @@
   std::unique_ptr<printing::PrintingContext> context(
       printing::PrintingContext::Create(&delegate));
   if (!context.get() ||
-      context->UseDefaultSettings() != printing::PrintingContext::OK) {
+      context->UseDefaultSettings() != printing::mojom::ResultCode::kSuccess) {
     return PepperPrintSettingsManager::Result(PP_PrintSettings_Dev(),
                                               PP_ERROR_FAILED);
   }
diff --git a/printing/BUILD.gn b/printing/BUILD.gn
index a250fb5e..040e0c3 100644
--- a/printing/BUILD.gn
+++ b/printing/BUILD.gn
@@ -241,6 +241,7 @@
   public_deps = [
     "//printing",
     "//printing/backend:test_support",
+    "//printing/mojom",
     "//ui/gfx/geometry",
   ]
   deps = [
diff --git a/printing/emf_win_unittest.cc b/printing/emf_win_unittest.cc
index a1a6f03..e830a101 100644
--- a/printing/emf_win_unittest.cc
+++ b/printing/emf_win_unittest.cc
@@ -91,7 +91,7 @@
 
   // Initialize it.
   PrintingContextWin context(this);
-  EXPECT_EQ(PrintingContext::OK,
+  EXPECT_EQ(mojom::ResultCode::kSuccess,
             context.InitWithSettingsForTest(std::move(settings)));
 
   base::FilePath emf_file;
diff --git a/printing/printed_document_android.cc b/printing/printed_document_android.cc
index 33b4ec7..a9d26e0 100644
--- a/printing/printed_document_android.cc
+++ b/printing/printed_document_android.cc
@@ -4,19 +4,20 @@
 
 #include "printing/printed_document.h"
 
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context_android.h"
 
 namespace printing {
 
 bool PrintedDocument::RenderPrintedDocument(PrintingContext* context) {
-  if (context->NewPage() != PrintingContext::OK)
+  if (context->NewPage() != mojom::ResultCode::kSuccess)
     return false;
   {
     base::AutoLock lock(lock_);
     const MetafilePlayer* metafile = GetMetafile();
     static_cast<PrintingContextAndroid*>(context)->PrintDocument(*metafile);
   }
-  return context->PageDone() == PrintingContext::OK;
+  return context->PageDone() == mojom::ResultCode::kSuccess;
 }
 
 }  // namespace printing
diff --git a/printing/printed_document_chromeos.cc b/printing/printed_document_chromeos.cc
index 224acd89..6e997c31 100644
--- a/printing/printed_document_chromeos.cc
+++ b/printing/printed_document_chromeos.cc
@@ -8,6 +8,7 @@
 
 #if defined(USE_CUPS)
 #include "printing/metafile.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context_chromeos.h"
 #endif
 
@@ -17,7 +18,7 @@
 #if defined(USE_CUPS)
   DCHECK(context);
 
-  if (context->NewPage() != PrintingContext::OK)
+  if (context->NewPage() != mojom::ResultCode::kSuccess)
     return false;
   {
     base::AutoLock lock(lock_);
@@ -30,7 +31,7 @@
       LOG(WARNING) << "Failed to read data from metafile";
     }
   }
-  return context->PageDone() == PrintingContext::OK;
+  return context->PageDone() == mojom::ResultCode::kSuccess;
 #else
   NOTREACHED();
   return false;
diff --git a/printing/printed_document_linux.cc b/printing/printed_document_linux.cc
index c2e2a5d..d6f59cd7 100644
--- a/printing/printed_document_linux.cc
+++ b/printing/printed_document_linux.cc
@@ -6,6 +6,7 @@
 
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context_linux.h"
 
 #if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
@@ -15,14 +16,14 @@
 namespace printing {
 
 bool PrintedDocument::RenderPrintedDocument(PrintingContext* context) {
-  if (context->NewPage() != PrintingContext::OK)
+  if (context->NewPage() != mojom::ResultCode::kSuccess)
     return false;
   {
     base::AutoLock lock(lock_);
     const MetafilePlayer* metafile = GetMetafile();
     static_cast<PrintingContextLinux*>(context)->PrintDocument(*metafile);
   }
-  return context->PageDone() == PrintingContext::OK;
+  return context->PageDone() == mojom::ResultCode::kSuccess;
 }
 
 }  // namespace printing
diff --git a/printing/printed_document_mac.cc b/printing/printed_document_mac.cc
index 204a969..0f30d2e 100644
--- a/printing/printed_document_mac.cc
+++ b/printing/printed_document_mac.cc
@@ -29,11 +29,11 @@
   size_t num_pages = expected_page_count();
   for (size_t metafile_page_number = 1; metafile_page_number <= num_pages;
        metafile_page_number++) {
-    if (context->NewPage() != PrintingContext::OK)
+    if (context->NewPage() != mojom::ResultCode::kSuccess)
       return false;
     metafile->RenderPage(metafile_page_number, context->context(), paper_rect,
                          /*autorotate=*/true, /*fit_to_page=*/false);
-    if (context->PageDone() != PrintingContext::OK)
+    if (context->PageDone() != mojom::ResultCode::kSuccess)
       return false;
   }
   return true;
diff --git a/printing/printed_document_win.cc b/printing/printed_document_win.cc
index 8806e53..9ef78e3b 100644
--- a/printing/printed_document_win.cc
+++ b/printing/printed_document_win.cc
@@ -81,7 +81,7 @@
 }
 
 bool PrintedDocument::RenderPrintedDocument(PrintingContext* context) {
-  if (context->NewPage() != PrintingContext::OK)
+  if (context->NewPage() != mojom::ResultCode::kSuccess)
     return false;
 
   std::wstring device_name =
@@ -92,7 +92,7 @@
     static_cast<PrintingContextWin*>(context)->PrintDocument(
         device_name, *(static_cast<const MetafileSkia*>(metafile)));
   }
-  return context->PageDone() == PrintingContext::OK;
+  return context->PageDone() == mojom::ResultCode::kSuccess;
 }
 
 }  // namespace printing
diff --git a/printing/printing_context.cc b/printing/printing_context.cc
index 744c3ac..cdfb2e0 100644
--- a/printing/printing_context.cc
+++ b/printing/printing_context.cc
@@ -81,13 +81,14 @@
   return result;
 }
 
-PrintingContext::Result PrintingContext::OnError() {
-  Result result = abort_printing_ ? CANCEL : FAILED;
+mojom::ResultCode PrintingContext::OnError() {
+  mojom::ResultCode result = abort_printing_ ? mojom::ResultCode::kCanceled
+                                             : mojom::ResultCode::kFailed;
   ResetSettings();
   return result;
 }
 
-PrintingContext::Result PrintingContext::UsePdfSettings() {
+mojom::ResultCode PrintingContext::UsePdfSettings() {
   base::Value pdf_settings(base::Value::Type::DICTIONARY);
   pdf_settings.SetBoolKey(kSettingHeaderFooterEnabled, false);
   pdf_settings.SetBoolKey(kSettingShouldPrintBackgrounds, false);
@@ -113,7 +114,7 @@
   return UpdatePrintSettings(std::move(pdf_settings));
 }
 
-PrintingContext::Result PrintingContext::UpdatePrintSettings(
+mojom::ResultCode PrintingContext::UpdatePrintSettings(
     base::Value job_settings) {
   ResetSettings();
   {
@@ -157,7 +158,7 @@
           kCloudPrintMarginInch * settings_->device_units_per_inch());
     }
     settings_->SetPrinterPrintableArea(paper_size, paper_rect, true);
-    return OK;
+    return mojom::ResultCode::kSuccess;
   }
 
   return UpdatePrinterSettings(
@@ -167,7 +168,7 @@
 }
 
 #if defined(OS_CHROMEOS)
-PrintingContext::Result PrintingContext::UpdatePrintSettingsFromPOD(
+mojom::ResultCode PrintingContext::UpdatePrintSettingsFromPOD(
     std::unique_ptr<PrintSettings> job_settings) {
   ResetSettings();
   settings_ = std::move(job_settings);
diff --git a/printing/printing_context.h b/printing/printing_context.h
index 753bc1d..eac7da5 100644
--- a/printing/printing_context.h
+++ b/printing/printing_context.h
@@ -40,20 +40,13 @@
     virtual std::string GetAppLocale() = 0;
   };
 
-  // Tri-state result for user behavior-dependent functions.
-  enum Result {
-    OK,
-    CANCEL,
-    FAILED,
-  };
-
   PrintingContext(const PrintingContext&) = delete;
   PrintingContext& operator=(const PrintingContext&) = delete;
   virtual ~PrintingContext();
 
   // Callback of AskUserForSettings, used to notify the PrintJobWorker when
   // print settings are available.
-  using PrintSettingsCallback = base::OnceCallback<void(Result)>;
+  using PrintSettingsCallback = base::OnceCallback<void(mojom::ResultCode)>;
 
   // Asks the user what printer and format should be used to print. Updates the
   // context with the select device settings. The result of the call is returned
@@ -69,10 +62,10 @@
 
   // Selects the user's default printer and format. Updates the context with the
   // default device settings.
-  virtual Result UseDefaultSettings() = 0;
+  virtual mojom::ResultCode UseDefaultSettings() = 0;
 
   // Updates the context with PDF printer settings.
-  Result UsePdfSettings();
+  mojom::ResultCode UsePdfSettings();
 
   // Returns paper size to be used for PDF or Cloud Print in device units.
   virtual gfx::Size GetPdfPaperSizeDeviceUnits() = 0;
@@ -80,17 +73,17 @@
   // Updates printer settings.
   // `external_preview` is true if pdf is going to be opened in external
   // preview. Used by MacOS only now to open Preview.app.
-  virtual Result UpdatePrinterSettings(bool external_preview,
-                                       bool show_system_dialog,
-                                       int page_count) = 0;
+  virtual mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                                  bool show_system_dialog,
+                                                  int page_count) = 0;
 
   // Updates Print Settings. `job_settings` contains all print job
   // settings information.
-  Result UpdatePrintSettings(base::Value job_settings);
+  mojom::ResultCode UpdatePrintSettings(base::Value job_settings);
 
 #if defined(OS_CHROMEOS)
   // Updates Print Settings.
-  Result UpdatePrintSettingsFromPOD(
+  mojom::ResultCode UpdatePrintSettingsFromPOD(
       std::unique_ptr<PrintSettings> job_settings);
 #endif
 
@@ -104,17 +97,18 @@
   // like IPC message processing! Some printers have side-effects on this call
   // like virtual printers that ask the user for the path of the saved document;
   // for example a PDF printer.
-  virtual Result NewDocument(const std::u16string& document_name) = 0;
+  virtual mojom::ResultCode NewDocument(
+      const std::u16string& document_name) = 0;
 
   // Starts a new page.
-  virtual Result NewPage() = 0;
+  virtual mojom::ResultCode NewPage() = 0;
 
   // Closes the printed page.
-  virtual Result PageDone() = 0;
+  virtual mojom::ResultCode PageDone() = 0;
 
   // Closes the printing job. After this call the object is ready to start a new
   // document.
-  virtual Result DocumentDone() = 0;
+  virtual mojom::ResultCode DocumentDone() = 0;
 
   // Cancels printing. Can be used in a multi-threaded context. Takes effect
   // immediately.
@@ -128,7 +122,7 @@
 
 #if defined(OS_WIN)
   // Initializes with predefined settings.
-  virtual Result InitWithSettingsForTest(
+  virtual mojom::ResultCode InitWithSettingsForTest(
       std::unique_ptr<PrintSettings> settings) = 0;
 #endif
 
@@ -160,7 +154,7 @@
   void ResetSettings();
 
   // Does bookkeeping when an error occurs.
-  PrintingContext::Result OnError();
+  mojom::ResultCode OnError();
 
   // Complete print context settings.
   std::unique_ptr<PrintSettings> settings_;
diff --git a/printing/printing_context_android.cc b/printing/printing_context_android.cc
index 079722a..c91b80c 100644
--- a/printing/printing_context_android.cc
+++ b/printing/printing_context_android.cc
@@ -18,6 +18,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/values.h"
 #include "printing/metafile.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_job_constants.h"
 #include "printing/printing_jni_headers/PrintingContext_jni.h"
 #include "printing/units.h"
@@ -117,8 +118,8 @@
     jboolean success) {
   DCHECK(callback_);
   if (!success) {
-    // TODO(cimamoglu): Differentiate between FAILED And CANCEL.
-    std::move(callback_).Run(FAILED);
+    // TODO(cimamoglu): Differentiate between `kFailed` And `kCancel`.
+    std::move(callback_).Run(mojom::ResultCode::kFailed);
     return;
   }
 
@@ -145,7 +146,7 @@
   height = ConvertUnit(height, kMilsPerInch, dpi);
   SetSizes(settings_.get(), dpi, width, height);
 
-  std::move(callback_).Run(OK);
+  std::move(callback_).Run(mojom::ResultCode::kSuccess);
 }
 
 void PrintingContextAndroid::ShowSystemDialogDone(
@@ -153,7 +154,7 @@
     const JavaParamRef<jobject>& obj) {
   DCHECK(callback_);
   // Settings are not updated, callback is called only to unblock javascript.
-  std::move(callback_).Run(CANCEL);
+  std::move(callback_).Run(mojom::ResultCode::kCanceled);
 }
 
 void PrintingContextAndroid::PrintDocument(const MetafilePlayer& metafile) {
@@ -162,7 +163,7 @@
   metafile.SaveToFileDescriptor(fd_);
 }
 
-PrintingContext::Result PrintingContextAndroid::UseDefaultSettings() {
+mojom::ResultCode PrintingContextAndroid::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   ResetSettings();
@@ -170,7 +171,7 @@
   gfx::Size physical_size = GetPdfPaperSizeDeviceUnits();
   SetSizes(settings_.get(), kDefaultPdfDpi, physical_size.width(),
            physical_size.height());
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 gfx::Size PrintingContextAndroid::GetPdfPaperSizeDeviceUnits() {
@@ -198,7 +199,7 @@
   return gfx::Size(width, height);
 }
 
-PrintingContext::Result PrintingContextAndroid::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextAndroid::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -207,44 +208,44 @@
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextAndroid::NewDocument(
+mojom::ResultCode PrintingContextAndroid::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
   in_print_job_ = true;
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextAndroid::NewPage() {
+mojom::ResultCode PrintingContextAndroid::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextAndroid::PageDone() {
+mojom::ResultCode PrintingContextAndroid::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextAndroid::DocumentDone() {
+mojom::ResultCode PrintingContextAndroid::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextAndroid::Cancel() {
diff --git a/printing/printing_context_android.h b/printing/printing_context_android.h
index 9fbeed6..34dbc5bb1 100644
--- a/printing/printing_context_android.h
+++ b/printing/printing_context_android.h
@@ -9,6 +9,7 @@
 
 #include "base/android/scoped_java_ref.h"
 #include "base/file_descriptor_posix.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context.h"
 
 namespace ui {
@@ -59,15 +60,15 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
diff --git a/printing/printing_context_chromeos.cc b/printing/printing_context_chromeos.cc
index 2800993..0faf418 100644
--- a/printing/printing_context_chromeos.cc
+++ b/printing/printing_context_chromeos.cc
@@ -281,7 +281,7 @@
   NOTREACHED();
 }
 
-PrintingContext::Result PrintingContextChromeos::UseDefaultSettings() {
+mojom::ResultCode PrintingContextChromeos::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   ResetSettings();
@@ -298,7 +298,7 @@
   }
 
   // Retrieve device information and set it
-  if (InitializeDevice(device_name) != OK) {
+  if (InitializeDevice(device_name) != mojom::ResultCode::kSuccess) {
     LOG(ERROR) << "Could not initialize printer";
     return OnError();
   }
@@ -316,7 +316,7 @@
       printer_->GetMediaMarginsByName(paper.vendor_id);
   SetPrintableArea(settings_.get(), media, margins, true /* flip landscape */);
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 gfx::Size PrintingContextChromeos::GetPdfPaperSizeDeviceUnits() {
@@ -343,14 +343,16 @@
   return gfx::Size(width, height);
 }
 
-PrintingContext::Result PrintingContextChromeos::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextChromeos::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
   DCHECK(!show_system_dialog);
 
-  if (InitializeDevice(base::UTF16ToUTF8(settings_->device_name())) != OK)
+  if (InitializeDevice(base::UTF16ToUTF8(settings_->device_name())) !=
+      mojom::ResultCode::kSuccess) {
     return OnError();
+  }
 
   // TODO(skau): Convert to DCHECK when https://crbug.com/613779 is resolved
   // Print quality suffers when this is set to the resolution reported by the
@@ -384,10 +386,10 @@
                                                 : kUsernamePlaceholder;
   }
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextChromeos::InitializeDevice(
+mojom::ResultCode PrintingContextChromeos::InitializeDevice(
     const std::string& device) {
   DCHECK(!in_print_job_);
 
@@ -399,10 +401,10 @@
 
   printer_ = std::move(printer);
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextChromeos::NewDocument(
+mojom::ResultCode PrintingContextChromeos::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
   in_print_job_ = true;
@@ -441,34 +443,34 @@
     return OnError();
   }
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextChromeos::NewPage() {
+mojom::ResultCode PrintingContextChromeos::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
 
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextChromeos::PageDone() {
+mojom::ResultCode PrintingContextChromeos::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
 
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextChromeos::DocumentDone() {
+mojom::ResultCode PrintingContextChromeos::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
 
   DCHECK(in_print_job_);
 
@@ -486,7 +488,7 @@
   }
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextChromeos::Cancel() {
@@ -503,10 +505,10 @@
   return nullptr;
 }
 
-PrintingContext::Result PrintingContextChromeos::StreamData(
+mojom::ResultCode PrintingContextChromeos::StreamData(
     const std::vector<char>& buffer) {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
 
   DCHECK(in_print_job_);
   DCHECK(printer_);
@@ -514,7 +516,7 @@
   if (!printer_->StreamData(buffer))
     return OnError();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 }  // namespace printing
diff --git a/printing/printing_context_chromeos.h b/printing/printing_context_chromeos.h
index 61b256c..4bd4c05 100644
--- a/printing/printing_context_chromeos.h
+++ b/printing/printing_context_chromeos.h
@@ -12,6 +12,7 @@
 #include "printing/backend/cups_connection.h"
 #include "printing/backend/cups_deleters.h"
 #include "printing/backend/cups_printer.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context.h"
 
 namespace printing {
@@ -33,20 +34,20 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
 
-  Result StreamData(const std::vector<char>& buffer);
+  mojom::ResultCode StreamData(const std::vector<char>& buffer);
 
  private:
   // For testing. Use CreateForTesting() to create.
@@ -54,7 +55,7 @@
                           std::unique_ptr<CupsConnection> connection);
 
   // Lazily initializes `printer_`.
-  Result InitializeDevice(const std::string& device);
+  mojom::ResultCode InitializeDevice(const std::string& device);
 
   const std::unique_ptr<CupsConnection> connection_;
   std::unique_ptr<CupsPrinter> printer_;
diff --git a/printing/printing_context_linux.cc b/printing/printing_context_linux.cc
index 4af3ccdd..2d3458c7 100644
--- a/printing/printing_context_linux.cc
+++ b/printing/printing_context_linux.cc
@@ -11,6 +11,7 @@
 #include "base/notreached.h"
 #include "base/values.h"
 #include "printing/metafile.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_dialog_gtk_interface.h"
 #include "printing/print_job_constants.h"
 #include "printing/units.h"
@@ -75,7 +76,7 @@
     // Can only get here if the renderer is sending bad messages.
     // http://crbug.com/341777
     NOTREACHED();
-    std::move(callback).Run(FAILED);
+    std::move(callback).Run(mojom::ResultCode::kFailed);
     return;
   }
 
@@ -83,13 +84,13 @@
                             std::move(callback));
 }
 
-PrintingContext::Result PrintingContextLinux::UseDefaultSettings() {
+mojom::ResultCode PrintingContextLinux::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   ResetSettings();
 
   if (!create_dialog_func_)
-    return OK;
+    return mojom::ResultCode::kSuccess;
 
   if (!print_dialog_) {
     print_dialog_ = create_dialog_func_(this);
@@ -97,7 +98,7 @@
   }
   print_dialog_->UseDefaultSettings();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceUnits() {
@@ -107,7 +108,7 @@
   return gfx::Size();
 }
 
-PrintingContext::Result PrintingContextLinux::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextLinux::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -116,7 +117,7 @@
   DCHECK(!external_preview) << "Not implemented";
 
   if (!create_dialog_func_)
-    return OK;
+    return mojom::ResultCode::kSuccess;
 
   if (!print_dialog_) {
     print_dialog_ = create_dialog_func_(this);
@@ -128,7 +129,7 @@
   print_dialog_->UpdateSettings(std::move(settings_));
   DCHECK(settings_);
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextLinux::InitWithSettings(
@@ -138,43 +139,43 @@
   settings_ = std::move(settings);
 }
 
-PrintingContext::Result PrintingContextLinux::NewDocument(
+mojom::ResultCode PrintingContextLinux::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
   in_print_job_ = true;
 
   document_name_ = document_name;
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextLinux::NewPage() {
+mojom::ResultCode PrintingContextLinux::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextLinux::PageDone() {
+mojom::ResultCode PrintingContextLinux::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextLinux::DocumentDone() {
+mojom::ResultCode PrintingContextLinux::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextLinux::Cancel() {
diff --git a/printing/printing_context_linux.h b/printing/printing_context_linux.h
index 88c8c54..3d6df6cc 100644
--- a/printing/printing_context_linux.h
+++ b/printing/printing_context_linux.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context.h"
 
 namespace printing {
@@ -43,14 +44,14 @@
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UseDefaultSettings() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UseDefaultSettings() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h
index 0fb5c91..7fde07c7 100644
--- a/printing/printing_context_mac.h
+++ b/printing/printing_context_mac.h
@@ -30,15 +30,15 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm
index dfa69dfe..dd9bb77 100644
--- a/printing/printing_context_mac.mm
+++ b/printing/printing_context_mac.mm
@@ -17,6 +17,7 @@
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_settings_initializer_mac.h"
 #include "printing/printing_features.h"
 #include "printing/units.h"
@@ -134,9 +135,9 @@
         print_info_.reset([[panel printInfo] retain]);
         settings_->set_ranges(GetPageRangesFromPrintInfo());
         InitPrintSettingsFromPrintInfo();
-        std::move(block_callback).Run(OK);
+        std::move(block_callback).Run(mojom::ResultCode::kSuccess);
       } else {
-        std::move(block_callback).Run(CANCEL);
+        std::move(block_callback).Run(mojom::ResultCode::kCanceled);
       }
     }];
   }
@@ -160,17 +161,17 @@
   return physical_size_device_units;
 }
 
-PrintingContext::Result PrintingContextMac::UseDefaultSettings() {
+mojom::ResultCode PrintingContextMac::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]);
   settings_->set_ranges(GetPageRangesFromPrintInfo());
   InitPrintSettingsFromPrintInfo();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextMac::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextMac::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -204,7 +205,7 @@
   [print_info_.get() updateFromPMPrintSettings];
 
   InitPrintSettingsFromPrintInfo();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 bool PrintingContextMac::SetPrintPreviewJob() {
@@ -494,7 +495,7 @@
   return page_ranges;
 }
 
-PrintingContext::Result PrintingContextMac::NewDocument(
+mojom::ResultCode PrintingContextMac::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
 
@@ -516,12 +517,12 @@
   if (status != noErr)
     return OnError();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextMac::NewPage() {
+mojom::ResultCode PrintingContextMac::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
   DCHECK(!context_);
 
@@ -537,12 +538,12 @@
   if (status != noErr)
     return OnError();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextMac::PageDone() {
+mojom::ResultCode PrintingContextMac::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
   DCHECK(context_);
 
@@ -553,12 +554,12 @@
     OnError();
   context_ = nullptr;
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextMac::DocumentDone() {
+mojom::ResultCode PrintingContextMac::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   PMPrintSession print_session =
@@ -568,7 +569,7 @@
     OnError();
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextMac::Cancel() {
diff --git a/printing/printing_context_no_system_dialog.cc b/printing/printing_context_no_system_dialog.cc
index 59a943b..9e655e55 100644
--- a/printing/printing_context_no_system_dialog.cc
+++ b/printing/printing_context_no_system_dialog.cc
@@ -39,10 +39,10 @@
     bool is_scripted,
     PrintSettingsCallback callback) {
   // We don't want to bring up a dialog here.  Ever.  Just signal the callback.
-  std::move(callback).Run(OK);
+  std::move(callback).Run(mojom::ResultCode::kSuccess);
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::UseDefaultSettings() {
+mojom::ResultCode PrintingContextNoSystemDialog::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   ResetSettings();
@@ -52,7 +52,7 @@
   gfx::Rect printable_area(0, 0, physical_size.width(), physical_size.height());
   DCHECK_EQ(settings_->device_units_per_inch(), kDefaultPdfDpi);
   settings_->SetPrinterPrintableArea(physical_size, printable_area, true);
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 gfx::Size PrintingContextNoSystemDialog::GetPdfPaperSizeDeviceUnits() {
@@ -79,7 +79,7 @@
   return gfx::Size(width, height);
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextNoSystemDialog::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -88,44 +88,44 @@
   if (settings_->dpi() == 0)
     UseDefaultSettings();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::NewDocument(
+mojom::ResultCode PrintingContextNoSystemDialog::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
   in_print_job_ = true;
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::NewPage() {
+mojom::ResultCode PrintingContextNoSystemDialog::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::PageDone() {
+mojom::ResultCode PrintingContextNoSystemDialog::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op.
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextNoSystemDialog::DocumentDone() {
+mojom::ResultCode PrintingContextNoSystemDialog::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextNoSystemDialog::Cancel() {
diff --git a/printing/printing_context_no_system_dialog.h b/printing/printing_context_no_system_dialog.h
index d68a4969..314d8a3 100644
--- a/printing/printing_context_no_system_dialog.h
+++ b/printing/printing_context_no_system_dialog.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "base/component_export.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context.h"
 
 namespace printing {
@@ -26,15 +27,15 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
diff --git a/printing/printing_context_system_dialog_win.cc b/printing/printing_context_system_dialog_win.cc
index 891e957..acb040f 100644
--- a/printing/printing_context_system_dialog_win.cc
+++ b/printing/printing_context_system_dialog_win.cc
@@ -11,6 +11,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/current_thread.h"
 #include "printing/backend/win_helper.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_settings_initializer_win.h"
 #include "skia/ext/skia_utils_win.h"
 
@@ -69,7 +70,7 @@
 
   if (ShowPrintDialog(&dialog_options) != S_OK) {
     ResetSettings();
-    std::move(callback).Run(FAILED);
+    std::move(callback).Run(mojom::ResultCode::kFailed);
     return;
   }
 
@@ -142,7 +143,7 @@
   return true;
 }
 
-PrintingContext::Result PrintingContextSystemDialogWin::ParseDialogResultEx(
+mojom::ResultCode PrintingContextSystemDialogWin::ParseDialogResultEx(
     const PRINTDLGEX& dialog_options) {
   // If the user clicked OK or Apply then Cancel, but not only Cancel.
   if (dialog_options.dwResultAction != PD_RESULT_CANCEL) {
@@ -211,13 +212,15 @@
 
   switch (dialog_options.dwResultAction) {
     case PD_RESULT_PRINT:
-      return context() ? OK : FAILED;
+      return context() ? mojom::ResultCode::kSuccess
+                       : mojom::ResultCode::kFailed;
     case PD_RESULT_APPLY:
-      return context() ? CANCEL : FAILED;
+      return context() ? mojom::ResultCode::kCanceled
+                       : mojom::ResultCode::kFailed;
     case PD_RESULT_CANCEL:
-      return CANCEL;
+      return mojom::ResultCode::kCanceled;
     default:
-      return FAILED;
+      return mojom::ResultCode::kFailed;
   }
 }
 
diff --git a/printing/printing_context_system_dialog_win.h b/printing/printing_context_system_dialog_win.h
index 73397eb2..d44698f 100644
--- a/printing/printing_context_system_dialog_win.h
+++ b/printing/printing_context_system_dialog_win.h
@@ -11,6 +11,7 @@
 
 #include <string>
 
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context_win.h"
 #include "ui/gfx/native_widget_types.h"
 
@@ -46,7 +47,7 @@
                                     bool selection_only);
 
   // Parses the result of a PRINTDLGEX result.
-  Result ParseDialogResultEx(const PRINTDLGEX& dialog_options);
+  mojom::ResultCode ParseDialogResultEx(const PRINTDLGEX& dialog_options);
 };
 
 }  // namespace printing
diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc
index a0042fea..5206d8ff 100644
--- a/printing/printing_context_win.cc
+++ b/printing/printing_context_win.cc
@@ -35,7 +35,7 @@
 
 namespace {
 
-void AssignResult(PrintingContext::Result* out, PrintingContext::Result in) {
+void AssignResult(mojom::ResultCode* out, mojom::ResultCode in) {
   *out = in;
 }
 
@@ -74,7 +74,7 @@
   NOTIMPLEMENTED();
 }
 
-PrintingContext::Result PrintingContextWin::UseDefaultSettings() {
+mojom::ResultCode PrintingContextWin::UseDefaultSettings() {
   DCHECK(!in_print_job_);
 
   scoped_refptr<PrintBackend> backend =
@@ -83,7 +83,7 @@
   mojom::ResultCode result =
       backend->GetDefaultPrinterName(default_printer_name);
   if (result != mojom::ResultCode::kSuccess)
-    return FAILED;
+    return result;
 
   std::wstring default_printer = base::UTF8ToWide(default_printer_name);
   if (!default_printer.empty()) {
@@ -91,8 +91,10 @@
     if (printer.OpenPrinterWithName(default_printer.c_str())) {
       std::unique_ptr<DEVMODE, base::FreeDeleter> dev_mode =
           CreateDevMode(printer.Get(), nullptr);
-      if (InitializeSettings(default_printer, dev_mode.get()) == OK)
-        return OK;
+      if (InitializeSettings(default_printer, dev_mode.get()) ==
+          mojom::ResultCode::kSuccess) {
+        return mojom::ResultCode::kSuccess;
+      }
     }
   }
 
@@ -120,11 +122,13 @@
           continue;
         std::unique_ptr<DEVMODE, base::FreeDeleter> dev_mode =
             CreateDevMode(printer.Get(), nullptr);
-        if (InitializeSettings(info_2->pPrinterName, dev_mode.get()) == OK)
-          return OK;
+        if (InitializeSettings(info_2->pPrinterName, dev_mode.get()) ==
+            mojom::ResultCode::kSuccess) {
+          return mojom::ResultCode::kSuccess;
+        }
       }
       if (context_)
-        return OK;
+        return mojom::ResultCode::kSuccess;
     }
   }
 
@@ -160,7 +164,7 @@
                    paper_size.height() * settings_->device_units_per_inch());
 }
 
-PrintingContext::Result PrintingContextWin::UpdatePrinterSettings(
+mojom::ResultCode PrintingContextWin::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -237,7 +241,7 @@
 
   // Update data using DocumentProperties.
   if (show_system_dialog) {
-    PrintingContext::Result result = PrintingContext::FAILED;
+    mojom::ResultCode result = mojom::ResultCode::kFailed;
     AskUserForSettings(page_count, false, false,
                        base::BindOnce(&AssignResult, &result));
     return result;
@@ -258,7 +262,7 @@
                             scoped_dev_mode.get());
 }
 
-PrintingContext::Result PrintingContextWin::InitWithSettingsForTest(
+mojom::ResultCode PrintingContextWin::InitWithSettingsForTest(
     std::unique_ptr<PrintSettings> settings) {
   DCHECK(!in_print_job_);
 
@@ -267,7 +271,7 @@
   // TODO(maruel): settings_.ToDEVMODE()
   ScopedPrinterHandle printer;
   if (!printer.OpenPrinterWithName(base::as_wcstr(settings_->device_name())))
-    return FAILED;
+    return mojom::ResultCode::kFailed;
 
   std::unique_ptr<DEVMODE, base::FreeDeleter> dev_mode =
       CreateDevMode(printer.Get(), nullptr);
@@ -276,7 +280,7 @@
                             dev_mode.get());
 }
 
-PrintingContext::Result PrintingContextWin::NewDocument(
+mojom::ResultCode PrintingContextWin::NewDocument(
     const std::u16string& document_name) {
   DCHECK(!in_print_job_);
   if (!context_)
@@ -287,8 +291,10 @@
 
   in_print_job_ = true;
 
-  if (base::FeatureList::IsEnabled(printing::features::kUseXpsForPrinting))
-    return OK;  // This is all the new document context needed when using XPS.
+  if (base::FeatureList::IsEnabled(printing::features::kUseXpsForPrinting)) {
+    // This is all the new document context needed when using XPS.
+    return mojom::ResultCode::kSuccess;
+  }
 
   // Need more context setup when using GDI.
 
@@ -318,35 +324,35 @@
   if (StartDoc(context_, &di) <= 0)
     return OnError();
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextWin::NewPage() {
+mojom::ResultCode PrintingContextWin::NewPage() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(context_);
   DCHECK(in_print_job_);
 
   // Intentional No-op. MetafileSkia::SafePlayback takes care of calling
   // ::StartPage().
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextWin::PageDone() {
+mojom::ResultCode PrintingContextWin::PageDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
 
   // Intentional No-op. MetafileSkia::SafePlayback takes care of calling
   // ::EndPage().
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result PrintingContextWin::DocumentDone() {
+mojom::ResultCode PrintingContextWin::DocumentDone() {
   if (abort_printing_)
-    return CANCEL;
+    return mojom::ResultCode::kCanceled;
   DCHECK(in_print_job_);
   DCHECK(context_);
 
@@ -355,7 +361,7 @@
     return OnError();
 
   ResetSettings();
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 void PrintingContextWin::Cancel() {
@@ -386,7 +392,7 @@
   return true;
 }
 
-PrintingContext::Result PrintingContextWin::InitializeSettings(
+mojom::ResultCode PrintingContextWin::InitializeSettings(
     const std::wstring& device_name,
     DEVMODE* dev_mode) {
   if (!dev_mode)
@@ -404,7 +410,7 @@
   PrintSettingsInitializerWin::InitPrintSettings(context_, *dev_mode,
                                                  settings_.get());
 
-  return OK;
+  return mojom::ResultCode::kSuccess;
 }
 
 HWND PrintingContextWin::GetRootWindow(gfx::NativeView view) {
diff --git a/printing/printing_context_win.h b/printing/printing_context_win.h
index f131f461..758a193 100644
--- a/printing/printing_context_win.h
+++ b/printing/printing_context_win.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_context.h"
 #include "ui/gfx/native_widget_types.h"
 
@@ -32,19 +33,19 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   printing::NativeDrawingContext context() const override;
-  Result InitWithSettingsForTest(
+  mojom::ResultCode InitWithSettingsForTest(
       std::unique_ptr<PrintSettings> settings) override;
 
  protected:
@@ -52,8 +53,8 @@
 
   // Reads the settings from the selected device context. Updates settings_ and
   // its margins.
-  virtual Result InitializeSettings(const std::wstring& device_name,
-                                    DEVMODE* dev_mode);
+  virtual mojom::ResultCode InitializeSettings(const std::wstring& device_name,
+                                               DEVMODE* dev_mode);
 
   void set_context(HDC context) { context_ = context; }
 
diff --git a/printing/printing_context_win_unittest.cc b/printing/printing_context_win_unittest.cc
index 62ada59..ab414a0 100644
--- a/printing/printing_context_win_unittest.cc
+++ b/printing/printing_context_win_unittest.cc
@@ -28,19 +28,17 @@
 class PrintingContextTest : public PrintingTest<testing::Test>,
                             public PrintingContext::Delegate {
  public:
-  void PrintSettingsCallback(PrintingContext::Result result) {
-    result_ = result;
-  }
+  void PrintSettingsCallback(mojom::ResultCode result) { result_ = result; }
 
   // PrintingContext::Delegate methods.
   gfx::NativeView GetParentView() override { return nullptr; }
   std::string GetAppLocale() override { return std::string(); }
 
  protected:
-  PrintingContext::Result result() const { return result_; }
+  mojom::ResultCode result() const { return result_; }
 
  private:
-  PrintingContext::Result result_;
+  mojom::ResultCode result_;
 };
 
 namespace {
@@ -156,7 +154,7 @@
       123, false, false,
       base::BindOnce(&PrintingContextTest::PrintSettingsCallback,
                      base::Unretained(this)));
-  EXPECT_EQ(PrintingContext::OK, result());
+  EXPECT_EQ(mojom::ResultCode::kSuccess, result());
   const PrintSettings& settings = context.settings();
   EXPECT_EQ(0u, settings.ranges().size());
 }
@@ -172,7 +170,7 @@
       123, false, false,
       base::BindOnce(&PrintingContextTest::PrintSettingsCallback,
                      base::Unretained(this)));
-  EXPECT_EQ(PrintingContext::OK, result());
+  EXPECT_EQ(mojom::ResultCode::kSuccess, result());
   const PrintSettings& settings = context.settings();
   EXPECT_NE(settings.color(), mojom::ColorModel::kUnknownColorModel);
 }
@@ -186,7 +184,7 @@
   settings->set_device_name(base::WideToUTF16(GetDefaultPrinter()));
   // Initialize it.
   PrintingContextWin context(this);
-  EXPECT_EQ(PrintingContext::OK,
+  EXPECT_EQ(mojom::ResultCode::kSuccess,
             context.InitWithSettingsForTest(std::move(settings)));
 
   // The print may lie to use and may not support world transformation.
diff --git a/printing/test_printing_context.cc b/printing/test_printing_context.cc
index 0a54c496e9..9d2e9ea2 100644
--- a/printing/test_printing_context.cc
+++ b/printing/test_printing_context.cc
@@ -12,6 +12,7 @@
 #include "base/notreached.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_settings.h"
 #include "printing/printing_context.h"
 #include "ui/gfx/geometry/size.h"
@@ -48,9 +49,9 @@
   NOTIMPLEMENTED();
 }
 
-PrintingContext::Result TestPrintingContext::UseDefaultSettings() {
+mojom::ResultCode TestPrintingContext::UseDefaultSettings() {
   NOTIMPLEMENTED();
-  return PrintingContext::FAILED;
+  return mojom::ResultCode::kFailed;
 }
 
 gfx::Size TestPrintingContext::GetPdfPaperSizeDeviceUnits() {
@@ -58,7 +59,7 @@
   return gfx::Size();
 }
 
-PrintingContext::Result TestPrintingContext::UpdatePrinterSettings(
+mojom::ResultCode TestPrintingContext::UpdatePrinterSettings(
     bool external_preview,
     bool show_system_dialog,
     int page_count) {
@@ -73,7 +74,7 @@
   if (found == device_settings_.end()) {
     DLOG(ERROR) << "No such device found in test printing context: `"
                 << device_name << "`";
-    return PrintingContext::FAILED;
+    return mojom::ResultCode::kFailed;
   }
 
   // Perform some initialization, akin to various platform-specific actions in
@@ -87,28 +88,28 @@
     settings_->advanced_settings().emplace(item.first, item.second.Clone());
 #endif
 
-  return PrintingContext::OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result TestPrintingContext::NewDocument(
+mojom::ResultCode TestPrintingContext::NewDocument(
     const std::u16string& document_name) {
   // No-op.
-  return PrintingContext::Result::OK;
+  return mojom::ResultCode::kSuccess;
 }
 
-PrintingContext::Result TestPrintingContext::NewPage() {
+mojom::ResultCode TestPrintingContext::NewPage() {
   NOTIMPLEMENTED();
-  return PrintingContext::Result::FAILED;
+  return mojom::ResultCode::kFailed;
 }
 
-PrintingContext::Result TestPrintingContext::PageDone() {
+mojom::ResultCode TestPrintingContext::PageDone() {
   NOTIMPLEMENTED();
-  return PrintingContext::Result::FAILED;
+  return mojom::ResultCode::kFailed;
 }
 
-PrintingContext::Result TestPrintingContext::DocumentDone() {
+mojom::ResultCode TestPrintingContext::DocumentDone() {
   NOTIMPLEMENTED();
-  return PrintingContext::Result::FAILED;
+  return mojom::ResultCode::kFailed;
 }
 
 void TestPrintingContext::Cancel() {
@@ -122,10 +123,10 @@
 }
 
 #if defined(OS_WIN)
-PrintingContext::Result TestPrintingContext::InitWithSettingsForTest(
+mojom::ResultCode TestPrintingContext::InitWithSettingsForTest(
     std::unique_ptr<PrintSettings> settings) {
   NOTIMPLEMENTED();
-  return PrintingContext::Result::FAILED;
+  return mojom::ResultCode::kFailed;
 }
 #endif  // defined(OS_WIN)
 
diff --git a/printing/test_printing_context.h b/printing/test_printing_context.h
index 88b14516..ed9ac232 100644
--- a/printing/test_printing_context.h
+++ b/printing/test_printing_context.h
@@ -10,6 +10,7 @@
 
 #include "base/containers/flat_map.h"
 #include "build/build_config.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_settings.h"
 #include "printing/printing_context.h"
 
@@ -47,20 +48,20 @@
                           bool has_selection,
                           bool is_scripted,
                           PrintSettingsCallback callback) override;
-  Result UseDefaultSettings() override;
+  mojom::ResultCode UseDefaultSettings() override;
   gfx::Size GetPdfPaperSizeDeviceUnits() override;
-  Result UpdatePrinterSettings(bool external_preview,
-                               bool show_system_dialog,
-                               int page_count) override;
-  Result NewDocument(const std::u16string& document_name) override;
-  Result NewPage() override;
-  Result PageDone() override;
-  Result DocumentDone() override;
+  mojom::ResultCode UpdatePrinterSettings(bool external_preview,
+                                          bool show_system_dialog,
+                                          int page_count) override;
+  mojom::ResultCode NewDocument(const std::u16string& document_name) override;
+  mojom::ResultCode NewPage() override;
+  mojom::ResultCode PageDone() override;
+  mojom::ResultCode DocumentDone() override;
   void Cancel() override;
   void ReleaseContext() override;
   NativeDrawingContext context() const override;
 #if defined(OS_WIN)
-  Result InitWithSettingsForTest(
+  mojom::ResultCode InitWithSettingsForTest(
       std::unique_ptr<PrintSettings> settings) override;
 #endif
 
diff --git a/ui/gtk/printing/print_dialog_gtk.cc b/ui/gtk/printing/print_dialog_gtk.cc
index 62108f0..414e653e 100644
--- a/ui/gtk/printing/print_dialog_gtk.cc
+++ b/ui/gtk/printing/print_dialog_gtk.cc
@@ -23,6 +23,7 @@
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/values.h"
 #include "printing/metafile.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/print_job_constants.h"
 #include "printing/print_settings.h"
 #include "ui/aura/window.h"
@@ -515,12 +516,12 @@
       settings->set_selection_only(print_selection_only);
       InitPrintSettingsGtk(gtk_settings_, page_setup_, settings.get());
       context_->InitWithSettings(std::move(settings));
-      std::move(callback_).Run(PrintingContextLinux::OK);
+      std::move(callback_).Run(printing::mojom::ResultCode::kSuccess);
       return;
     }
     case GTK_RESPONSE_DELETE_EVENT:  // Fall through.
     case GTK_RESPONSE_CANCEL: {
-      std::move(callback_).Run(PrintingContextLinux::CANCEL);
+      std::move(callback_).Run(printing::mojom::ResultCode::kCanceled);
       return;
     }
     case GTK_RESPONSE_APPLY:
@@ -586,5 +587,5 @@
   gtk::ClearAuraTransientParent(dialog_, window);
   window->RemoveObserver(this);
   if (callback_)
-    std::move(callback_).Run(PrintingContextLinux::CANCEL);
+    std::move(callback_).Run(printing::mojom::ResultCode::kCanceled);
 }