Use blink::mojom::ConsoleMessageLevel instead of content::ConsoleMessageLevel

blink::mojom::ConsoleMessageLevel and content::ConsoleMessageLevel are
essentially the same enums and represent same values for logging. This
CL replace use of content::ConsoleMessageLevel with
blink::mojom::ConsoleMessageLevel.

Bug: 937184
Change-Id: I4300df7d69c9759bac33947a4a857a5ecf3cb16d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1506672
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#640197}
diff --git a/chrome/browser/banners/app_banner_manager.cc b/chrome/browser/banners/app_banner_manager.cc
index 272b7b5..a1130fd 100644
--- a/chrome/browser/banners/app_banner_manager.cc
+++ b/chrome/browser/banners/app_banner_manager.cc
@@ -706,7 +706,7 @@
     TrackBeforeInstallEvent(BEFORE_INSTALL_EVENT_PREVENT_DEFAULT_CALLED);
     if (IsDebugMode()) {
       web_contents()->GetMainFrame()->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_INFO,
+          blink::mojom::ConsoleMessageLevel::kInfo,
           "Banner not shown: beforeinstallpromptevent.preventDefault() called. "
           "The page must call beforeinstallpromptevent.prompt() to show the "
           "banner.");
diff --git a/chrome/browser/chromeos/launcher_search_provider/error_reporter.cc b/chrome/browser/chromeos/launcher_search_provider/error_reporter.cc
index e31c17a..3d884ff 100644
--- a/chrome/browser/chromeos/launcher_search_provider/error_reporter.cc
+++ b/chrome/browser/chromeos/launcher_search_provider/error_reporter.cc
@@ -6,7 +6,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "content/public/browser/render_frame_host.h"
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace chromeos {
 namespace launcher_search_provider {
@@ -20,8 +20,8 @@
 void ErrorReporter::Warn(const std::string& message) {
   DCHECK(host_);
 
-  host_->AddMessageToConsole(
-      content::ConsoleMessageLevel::CONSOLE_MESSAGE_LEVEL_WARNING, message);
+  host_->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
+                             message);
 }
 
 std::unique_ptr<ErrorReporter> ErrorReporter::Duplicate() {
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index ce01812..cfe7f07 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -1326,7 +1326,7 @@
             content::DownloadItemUtils::GetWebContents(item);
         if (web_contents) {
           web_contents->GetMainFrame()->AddMessageToConsole(
-              content::CONSOLE_MESSAGE_LEVEL_WARNING,
+              blink::mojom::ConsoleMessageLevel::kWarning,
               base::StringPrintf(
                   "The download of %s has been blocked. Either the final "
                   "download origin or one of the origins in the redirect "
diff --git a/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc b/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
index 3823295..26a9d407 100644
--- a/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
+++ b/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
@@ -16,9 +16,9 @@
 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.h"
 #include "chrome/common/extensions/api/certificate_provider.h"
 #include "chrome/common/extensions/api/certificate_provider_internal.h"
-#include "content/public/common/console_message_level.h"
 #include "net/cert/x509_certificate.h"
 #include "net/ssl/ssl_private_key.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/boringssl/src/include/openssl/ssl.h"
 
 namespace api_cp = extensions::api::certificate_provider;
@@ -125,7 +125,7 @@
         chromeos::certificate_provider::CertificateInfo* out_info) {
   const std::vector<uint8_t>& cert_der = info.certificate;
   if (cert_der.empty()) {
-    WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR,
+    WriteToConsole(blink::mojom::ConsoleMessageLevel::kError,
                    kCertificateProviderErrorInvalidX509Cert);
     return false;
   }
@@ -137,7 +137,7 @@
   out_info->certificate = net::X509Certificate::CreateFromBytesUnsafeOptions(
       reinterpret_cast<const char*>(cert_der.data()), cert_der.size(), options);
   if (!out_info->certificate) {
-    WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR,
+    WriteToConsole(blink::mojom::ConsoleMessageLevel::kError,
                    kCertificateProviderErrorInvalidX509Cert);
     return false;
   }
@@ -152,11 +152,11 @@
     case net::X509Certificate::kPublicKeyTypeRSA:
       break;
     case net::X509Certificate::kPublicKeyTypeECDSA:
-      WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR,
+      WriteToConsole(blink::mojom::ConsoleMessageLevel::kError,
                      kCertificateProviderErrorECDSANotSupported);
       return false;
     default:
-      WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR,
+      WriteToConsole(blink::mojom::ConsoleMessageLevel::kError,
                      kCertificateProviderErrorUnknownKeyType);
       return false;
   }
diff --git a/chrome/browser/extensions/api/mdns/mdns_api.cc b/chrome/browser/extensions/api/mdns/mdns_api.cc
index e20b7ae..1656dfd9 100644
--- a/chrome/browser/extensions/api/mdns/mdns_api.cc
+++ b/chrome/browser/extensions/api/mdns/mdns_api.cc
@@ -156,12 +156,11 @@
       // the wiser.  Instead, changing the event to pass the number of
       // discovered instances would allow the caller to know when the list is
       // truncated and tell the user something meaningful in the extension/app.
-      WriteToConsole(service_type,
-                     content::CONSOLE_MESSAGE_LEVEL_WARNING,
-                     base::StringPrintf(
-                         "Truncating number of service instances in "
-                         "onServiceList to maximum allowed: %d",
-                         api::mdns::MAX_SERVICE_INSTANCES_PER_EVENT));
+      WriteToConsole(
+          service_type, blink::mojom::ConsoleMessageLevel::kWarning,
+          base::StringPrintf("Truncating number of service instances in "
+                             "onServiceList to maximum allowed: %d",
+                             api::mdns::MAX_SERVICE_INSTANCES_PER_EVENT));
       break;
     }
     mdns::MDnsService mdns_service;
@@ -232,7 +231,7 @@
 }
 
 void MDnsAPI::WriteToConsole(const std::string& service_type,
-                             content::ConsoleMessageLevel level,
+                             blink::mojom::ConsoleMessageLevel level,
                              const std::string& message) {
   // Get all the extensions with an onServiceList listener for a particular
   // service type.
diff --git a/chrome/browser/extensions/api/mdns/mdns_api.h b/chrome/browser/extensions/api/mdns/mdns_api.h
index a32095e..19464a2 100644
--- a/chrome/browser/extensions/api/mdns/mdns_api.h
+++ b/chrome/browser/extensions/api/mdns/mdns_api.h
@@ -87,7 +87,7 @@
   // Write a message to the consoles of extensions listening to a given service
   // type.
   void WriteToConsole(const std::string& service_type,
-                      content::ConsoleMessageLevel level,
+                      blink::mojom::ConsoleMessageLevel level,
                       const std::string& message);
 
   // Returns true if an extension or platform app |extension_id| is allowed to
diff --git a/chrome/browser/extensions/api/processes/processes_api.cc b/chrome/browser/extensions/api/processes/processes_api.cc
index d2f3c29..b880011 100644
--- a/chrome/browser/extensions/api/processes/processes_api.cc
+++ b/chrome/browser/extensions/api/processes/processes_api.cc
@@ -681,7 +681,7 @@
   // Report the invalid host ids sent in the arguments.
   for (const auto& host_id : process_host_ids_) {
     WriteToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         ErrorUtils::FormatErrorMessage(errors::kProcessNotFound,
                                        base::NumberToString(host_id)));
   }
diff --git a/chrome/browser/installable/installable_logging.cc b/chrome/browser/installable/installable_logging.cc
index 131b4369..65dab8f 100644
--- a/chrome/browser/installable/installable_logging.cc
+++ b/chrome/browser/installable/installable_logging.cc
@@ -74,7 +74,8 @@
   if (!web_contents)
     return;
 
-  content::ConsoleMessageLevel severity = content::CONSOLE_MESSAGE_LEVEL_ERROR;
+  blink::mojom::ConsoleMessageLevel severity =
+      blink::mojom::ConsoleMessageLevel::kError;
   std::string message;
   switch (code) {
     case NO_ERROR_DETECTED:
@@ -99,11 +100,11 @@
       break;
     case RENDERER_CANCELLED:
       message = kRendererCancelledMessage;
-      severity = content::CONSOLE_MESSAGE_LEVEL_INFO;
+      severity = blink::mojom::ConsoleMessageLevel::kInfo;
       break;
     case USER_NAVIGATED:
       message = kUserNavigatedMessage;
-      severity = content::CONSOLE_MESSAGE_LEVEL_WARNING;
+      severity = blink::mojom::ConsoleMessageLevel::kWarning;
       break;
     case NOT_IN_MAIN_FRAME:
       message = kNotInMainFrameMessage;
@@ -147,7 +148,7 @@
       break;
     case PLATFORM_NOT_SUPPORTED_ON_ANDROID:
       message = kPlatformNotSupportedOnAndroidMessage;
-      severity = content::CONSOLE_MESSAGE_LEVEL_WARNING;
+      severity = blink::mojom::ConsoleMessageLevel::kWarning;
       break;
     case NO_ID_SPECIFIED:
       message = kNoIdSpecifiedMessage;
diff --git a/chrome/browser/page_load_metrics/observers/use_counter_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/use_counter_page_load_metrics_observer.cc
index 1649a3c..892d3ab 100644
--- a/chrome/browser/page_load_metrics/observers/use_counter_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/use_counter_page_load_metrics_observer.cc
@@ -60,7 +60,7 @@
     case WebFeature::kNavigationDownloadInSandboxWithoutUserGesture:
     case WebFeature::kHTMLAnchorElementDownloadInSandboxWithoutUserGesture:
       rfh->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_WARNING,
+          blink::mojom::ConsoleMessageLevel::kWarning,
           "Download in sandbox without user activation is deprecated and will "
           "be removed in M74. You may consider adding "
           "'allow-downloads-without-user-activation' to the sandbox attribute "
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
index f23f5e5..bede441 100644
--- a/chrome/browser/permissions/permission_context_base.cc
+++ b/chrome/browser/permissions/permission_context_base.cc
@@ -82,7 +82,7 @@
                                  const char* message,
                                  ContentSettingsType type) {
   web_contents->GetMainFrame()->AddMessageToConsole(
-      content::CONSOLE_MESSAGE_LEVEL_WARNING,
+      blink::mojom::ConsoleMessageLevel::kWarning,
       base::StringPrintf(message,
                          PermissionUtil::GetPermissionString(type).c_str()));
 }
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index 80cbb47..13c76a0 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -459,7 +459,8 @@
 
   if (!options.user_visible_only) {
     web_contents->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR, kSilentPushUnsupportedMessage);
+        blink::mojom::ConsoleMessageLevel::kError,
+        kSilentPushUnsupportedMessage);
 
     SubscribeEndWithError(
         callback, content::mojom::PushRegistrationStatus::PERMISSION_DENIED);
diff --git a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
index 26e0f4f9..ee7bf07 100644
--- a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
+++ b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
@@ -24,7 +24,6 @@
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/tts_controller.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/browser/event_router.h"
 #include "extensions/browser/extension_host.h"
 #include "extensions/browser/extension_registry.h"
@@ -33,6 +32,7 @@
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_set.h"
 #include "net/base/network_change_notifier.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 
 using extensions::EventRouter;
@@ -68,7 +68,7 @@
       extensions::ProcessManager::Get(profile)->GetBackgroundHostForExtension(
           extension_id);
   host->host_contents()->GetMainFrame()->AddMessageToConsole(
-      content::CONSOLE_MESSAGE_LEVEL_WARNING,
+      blink::mojom::ConsoleMessageLevel::kWarning,
       constants::kErrorMissingPauseOrResume);
 }
 
diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
index da862cf..0066398 100644
--- a/chrome/browser/ssl/security_state_tab_helper.cc
+++ b/chrome/browser/ssl/security_state_tab_helper.cc
@@ -172,7 +172,7 @@
     if (parameter ==
         OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterEvToSecure) {
       web_contents()->GetMainFrame()->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_INFO,
+          blink::mojom::ConsoleMessageLevel::kInfo,
           "As part of an experiment, Chrome temporarily shows only the "
           "\"Secure\" text in the address bar. Your SSL certificate with "
           "Extended Validation is still valid.");
@@ -180,7 +180,7 @@
     if (parameter ==
         OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterBothToLock) {
       web_contents()->GetMainFrame()->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_INFO,
+          blink::mojom::ConsoleMessageLevel::kInfo,
           "As part of an experiment, Chrome temporarily shows only the lock "
           "icon in the address bar. Your SSL certificate with Extended "
           "Validation is still valid.");
diff --git a/chrome/browser/ssl/ssl_error_handler.cc b/chrome/browser/ssl/ssl_error_handler.cc
index e804016..fc0d3e8 100644
--- a/chrome/browser/ssl/ssl_error_handler.cc
+++ b/chrome/browser/ssl/ssl_error_handler.cc
@@ -129,7 +129,7 @@
   void NavigationEntryCommitted(
       const content::LoadCommittedDetails& /* load_details */) override {
     web_contents_->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_INFO,
+        blink::mojom::ConsoleMessageLevel::kInfo,
         base::StringPrintf(
             "Redirecting navigation %s -> %s because the server presented a "
             "certificate valid for %s but not for %s. To disable such "
diff --git a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
index e95b021..90be2db 100644
--- a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
+++ b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
@@ -18,7 +18,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/web/web_triggering_event_info.h"
 
 namespace {
@@ -99,7 +99,7 @@
   LogAction(Action::kBlocked);
   current_page_data_->inc_num_popups_blocked();
   web_contents()->GetMainFrame()->AddMessageToConsole(
-      content::CONSOLE_MESSAGE_LEVEL_ERROR, kAbusiveEnforceMessage);
+      blink::mojom::ConsoleMessageLevel::kError, kAbusiveEnforceMessage);
   return true;
 }
 
@@ -138,7 +138,7 @@
     LogAction(Action::kEnforcedSite);
   } else if (level == SubresourceFilterLevel::WARN) {
     web_contents()->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_WARNING, kAbusiveWarnMessage);
+        blink::mojom::ConsoleMessageLevel::kWarning, kAbusiveWarnMessage);
     LogAction(Action::kWarningSite);
   }
   LogAction(Action::kNavigation);
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
index 7a5289b..1f5ec42 100644
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
@@ -33,12 +33,12 @@
 #include "content/public/browser/visibility.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_delegate.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/common/constants.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/gurl.h"
 
 #if defined(OS_ANDROID)
@@ -192,7 +192,7 @@
         base::StringPrintf(kBlockTabUnderFormatMessage,
                            navigation_handle()->GetURL().spec().c_str());
     contents->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR, error.c_str());
+        blink::mojom::ConsoleMessageLevel::kError, error.c_str());
     LogAction(Action::kBlocked, off_the_record_);
     ShowUI();
     return content::NavigationThrottle::CANCEL;
diff --git a/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc b/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
index 6ff5fe5..b37a037 100644
--- a/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
+++ b/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
@@ -264,7 +264,7 @@
       case content::JAVASCRIPT_DIALOG_TYPE_CONFIRM: {
         *did_suppress_message = true;
         alerting_web_contents->GetMainFrame()->AddMessageToConsole(
-            content::CONSOLE_MESSAGE_LEVEL_WARNING,
+            blink::mojom::ConsoleMessageLevel::kWarning,
             base::StringPrintf(kDialogSuppressedConsoleMessageFormat, "confirm",
                                "5140698722467840"));
         return;
@@ -272,7 +272,7 @@
       case content::JAVASCRIPT_DIALOG_TYPE_PROMPT: {
         *did_suppress_message = true;
         alerting_web_contents->GetMainFrame()->AddMessageToConsole(
-            content::CONSOLE_MESSAGE_LEVEL_WARNING,
+            blink::mojom::ConsoleMessageLevel::kWarning,
             base::StringPrintf(kDialogSuppressedConsoleMessageFormat, "prompt",
                                "5637107137642496"));
         return;
diff --git a/chrome/renderer/plugins/chrome_plugin_placeholder.cc b/chrome/renderer/plugins/chrome_plugin_placeholder.cc
index 83de4a9d..fe074e5 100644
--- a/chrome/renderer/plugins/chrome_plugin_placeholder.cc
+++ b/chrome/renderer/plugins/chrome_plugin_placeholder.cc
@@ -369,7 +369,7 @@
                        "visible size larger than 400 x 300 pixels, or it will "
                        "be blocked. Invisible content is always blocked.",
       GetPluginParams().url.GetString().Utf8().c_str());
-  render_frame()->AddMessageToConsole(content::CONSOLE_MESSAGE_LEVEL_INFO,
+  render_frame()->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kInfo,
                                       message);
 }
 
diff --git a/components/payments/content/DEPS b/components/payments/content/DEPS
index 111c1d7..58b31c9 100644
--- a/components/payments/content/DEPS
+++ b/components/payments/content/DEPS
@@ -15,6 +15,7 @@
   "+services/metrics/public/cpp",
   "+sql",
   "+third_party/blink/public/common",
+  "+third_party/blink/public/mojom/devtools/console_message.mojom.h",
   "+third_party/blink/public/mojom/payments",
   "+third_party/blink/public/platform/modules/payments",
   "+third_party/skia/include/core/SkBitmap.h",
diff --git a/components/payments/content/developer_console_logger.cc b/components/payments/content/developer_console_logger.cc
index a4b4634..eb584e35 100644
--- a/components/payments/content/developer_console_logger.cc
+++ b/components/payments/content/developer_console_logger.cc
@@ -19,7 +19,7 @@
     return;
   if (web_contents() && web_contents()->GetMainFrame()) {
     web_contents()->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_WARNING, warning_message);
+        blink::mojom::ConsoleMessageLevel::kWarning, warning_message);
   } else {
     ErrorLogger::Warn(warning_message);
   }
@@ -30,7 +30,7 @@
     return;
   if (web_contents() && web_contents()->GetMainFrame()) {
     web_contents()->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR, error_message);
+        blink::mojom::ConsoleMessageLevel::kError, error_message);
   } else {
     ErrorLogger::Error(error_message);
   }
diff --git a/components/payments/content/installable_payment_app_crawler.cc b/components/payments/content/installable_payment_app_crawler.cc
index ba7fde2..38720a85 100644
--- a/components/payments/content/installable_payment_app_crawler.cc
+++ b/components/payments/content/installable_payment_app_crawler.cc
@@ -17,10 +17,10 @@
 #include "content/public/browser/permission_controller.h"
 #include "content/public/browser/permission_type.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "third_party/blink/public/common/manifest/manifest.h"
 #include "third_party/blink/public/common/manifest/manifest_icon_selector.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "ui/gfx/geometry/size.h"
 #include "url/gurl.h"
 #include "url/origin.h"
diff --git a/components/payments/content/manifest_verifier.cc b/components/payments/content/manifest_verifier.cc
index 29fa3aa..47c82e4 100644
--- a/components/payments/content/manifest_verifier.cc
+++ b/components/payments/content/manifest_verifier.cc
@@ -18,8 +18,8 @@
 #include "components/webdata/common/web_data_results.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "net/base/url_util.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
index 2e647ea..814b4b0 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -28,9 +28,9 @@
 #include "content/public/browser/navigation_throttle.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "net/base/net_errors.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace subresource_filter {
 
@@ -168,7 +168,7 @@
         DCHECK(filter->activation_state().activation_level !=
                mojom::ActivationLevel::kDisabled);
         NavigationConsoleLogger::LogMessageOnCommit(
-            navigation_handle, content::CONSOLE_MESSAGE_LEVEL_WARNING,
+            navigation_handle, blink::mojom::ConsoleMessageLevel::kWarning,
             kActivationConsoleMessage);
       }
     }
diff --git a/components/subresource_filter/content/browser/navigation_console_logger.cc b/components/subresource_filter/content/browser/navigation_console_logger.cc
index 4e3c00f..dff4fc10 100644
--- a/components/subresource_filter/content/browser/navigation_console_logger.cc
+++ b/components/subresource_filter/content/browser/navigation_console_logger.cc
@@ -12,7 +12,7 @@
 // static
 void NavigationConsoleLogger::LogMessageOnCommit(
     content::NavigationHandle* handle,
-    content::ConsoleMessageLevel level,
+    blink::mojom::ConsoleMessageLevel level,
     const std::string& message) {
   DCHECK(handle->IsInMainFrame());
   if (handle->HasCommitted() && !handle->IsErrorPage()) {
diff --git a/components/subresource_filter/content/browser/navigation_console_logger.h b/components/subresource_filter/content/browser/navigation_console_logger.h
index b39c22d..ac49f80 100644
--- a/components/subresource_filter/content/browser/navigation_console_logger.h
+++ b/components/subresource_filter/content/browser/navigation_console_logger.h
@@ -12,7 +12,7 @@
 #include "base/macros.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace content {
 class NavigationHandle;
@@ -34,7 +34,7 @@
   // navigation in |contents| commits its next navigation. If |handle| has
   // already committed, logs the message immediately.
   static void LogMessageOnCommit(content::NavigationHandle* handle,
-                                 content::ConsoleMessageLevel level,
+                                 blink::mojom::ConsoleMessageLevel level,
                                  const std::string& message);
 
   ~NavigationConsoleLogger() override;
@@ -54,7 +54,7 @@
   // content::WebContentsObserver:
   void DidFinishNavigation(content::NavigationHandle* handle) override;
 
-  using Message = std::pair<content::ConsoleMessageLevel, std::string>;
+  using Message = std::pair<blink::mojom::ConsoleMessageLevel, std::string>;
   std::vector<Message> commit_messages_;
 
   // |handle_| must outlive this class. This is guaranteed because the object
diff --git a/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc b/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc
index 53a65d9..d2ec5992 100644
--- a/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc
+++ b/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc
@@ -50,8 +50,8 @@
       GURL("http://example.test/"), main_rfh());
   navigation->Start();
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "foo");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "foo");
   navigation->Fail(net::ERR_ABORTED);
 
   EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty());
@@ -62,8 +62,8 @@
       GURL("http://example.test/"), main_rfh());
   navigation->Start();
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "foo");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "foo");
   navigation->Fail(net::ERR_TIMED_OUT);
 
   EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty());
@@ -74,8 +74,8 @@
       GURL("http://example.test/"), main_rfh());
   navigation->Start();
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "foo");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "foo");
 
   EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty());
   navigation->Commit();
@@ -86,7 +86,7 @@
 TEST_F(NavigationConsoleLoggerTest, NavigationAlreadyCommit_Logs) {
   auto on_finish = [](content::NavigationHandle* handle) {
     NavigationConsoleLogger::LogMessageOnCommit(
-        handle, content::CONSOLE_MESSAGE_LEVEL_WARNING, "foo");
+        handle, blink::mojom::ConsoleMessageLevel::kWarning, "foo");
   };
   NavigationFinishCaller caller(web_contents(), base::BindRepeating(on_finish));
   NavigateAndCommit(GURL("http://example.test/"));
@@ -96,7 +96,7 @@
 TEST_F(NavigationConsoleLoggerTest, NavigationAlreadyFailed_NoLog) {
   auto on_finish = [](content::NavigationHandle* handle) {
     NavigationConsoleLogger::LogMessageOnCommit(
-        handle, content::CONSOLE_MESSAGE_LEVEL_WARNING, "foo");
+        handle, blink::mojom::ConsoleMessageLevel::kWarning, "foo");
   };
   NavigationFinishCaller caller(web_contents(), base::BindRepeating(on_finish));
   content::NavigationSimulator::NavigateAndFailFromBrowser(
@@ -111,7 +111,7 @@
     navigation->Start();
     NavigationConsoleLogger::LogMessageOnCommit(
         navigation->GetNavigationHandle(),
-        content::CONSOLE_MESSAGE_LEVEL_WARNING, "foo");
+        blink::mojom::ConsoleMessageLevel::kWarning, "foo");
     navigation->Commit();
   }
   NavigateAndCommit(GURL("http://example.test/"));
@@ -123,11 +123,11 @@
       GURL("http://example.test/"), main_rfh());
   navigation->Start();
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "foo");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "foo");
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "bar");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "bar");
 
   EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty());
   navigation->Commit();
@@ -142,8 +142,8 @@
       GURL("http://example.test/path"), main_rfh());
   navigation->Start();
   NavigationConsoleLogger::LogMessageOnCommit(
-      navigation->GetNavigationHandle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
-      "foo");
+      navigation->GetNavigationHandle(),
+      blink::mojom::ConsoleMessageLevel::kWarning, "foo");
 
   content::NavigationSimulator::CreateRendererInitiated(
       GURL("http://example.test/#hash"), main_rfh())
diff --git a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
index 9d5a874..0a9cfe4 100644
--- a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
+++ b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
@@ -18,7 +18,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace subresource_filter {
 
@@ -102,7 +102,7 @@
       navigation_handle()
           ->GetWebContents()
           ->GetMainFrame()
-          ->AddMessageToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR,
+          ->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kError,
                                 console_message);
     }
 
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
index a79d997..30ddd90 100644
--- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
+++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
@@ -22,10 +22,10 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
 #include "services/metrics/public/cpp/ukm_source.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "ui/base/page_transition_types.h"
 #include "url/gurl.h"
 
@@ -172,7 +172,7 @@
   if (selection.warning &&
       activation_level == mojom::ActivationLevel::kEnabled) {
     NavigationConsoleLogger::LogMessageOnCommit(
-        navigation_handle(), content::CONSOLE_MESSAGE_LEVEL_WARNING,
+        navigation_handle(), blink::mojom::ConsoleMessageLevel::kWarning,
         kActivationWarningConsoleMessage);
     activation_level = mojom::ActivationLevel::kDisabled;
   }
diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
index dc7b2a2a..480649e 100644
--- a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
+++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
@@ -319,7 +319,7 @@
         BLOCK_GLOBALLY_DISABLED: {
       // Log to the developer console.
       web_contents_->GetMainFrame()->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_INFO,
+          blink::mojom::ConsoleMessageLevel::kInfo,
           "Bluetooth permission has been blocked.");
       // Block requests.
       RecordRequestDeviceOutcome(
diff --git a/content/browser/browsing_data/clear_site_data_handler.cc b/content/browser/browsing_data/clear_site_data_handler.cc
index 44a67fce..7c717e1 100644
--- a/content/browser/browsing_data/clear_site_data_handler.cc
+++ b/content/browser/browsing_data/clear_site_data_handler.cc
@@ -51,7 +51,7 @@
 
 // Outputs a single |formatted_message| on the UI thread.
 void OutputFormattedMessage(WebContents* web_contents,
-                            ConsoleMessageLevel level,
+                            blink::mojom::ConsoleMessageLevel level,
                             const std::string& formatted_text) {
   if (web_contents)
     web_contents->GetMainFrame()->AddMessageToConsole(level, formatted_text);
@@ -71,7 +71,7 @@
 void ClearSiteDataHandler::ConsoleMessagesDelegate::AddMessage(
     const GURL& url,
     const std::string& text,
-    ConsoleMessageLevel level) {
+    blink::mojom::ConsoleMessageLevel level) {
   messages_.push_back({url, text, level});
 }
 
@@ -167,14 +167,14 @@
   // Only accept the header on secure non-unique origins.
   if (!IsOriginSecure(url_)) {
     delegate_->AddMessage(url_, "Not supported for insecure origins.",
-                          CONSOLE_MESSAGE_LEVEL_ERROR);
+                          blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
   url::Origin origin = url::Origin::Create(url_);
   if (origin.opaque()) {
     delegate_->AddMessage(url_, "Not supported for unique origins.",
-                          CONSOLE_MESSAGE_LEVEL_ERROR);
+                          blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -189,7 +189,7 @@
         url_,
         "The request's credentials mode prohibits modifying cookies "
         "and other local data.",
-        CONSOLE_MESSAGE_LEVEL_ERROR);
+        blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -226,7 +226,7 @@
                                        const GURL& current_url) {
   if (!base::IsStringASCII(header)) {
     delegate->AddMessage(current_url, "Must only contain ASCII characters.",
-                         CONSOLE_MESSAGE_LEVEL_ERROR);
+                         blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -257,7 +257,7 @@
       delegate->AddMessage(
           current_url,
           base::StringPrintf("Unrecognized type: %s.", input_types[i].c_str()),
-          CONSOLE_MESSAGE_LEVEL_ERROR);
+          blink::mojom::ConsoleMessageLevel::kError);
       continue;
     }
 
@@ -274,7 +274,7 @@
 
   if (!*clear_cookies && !*clear_storage && !*clear_cache) {
     delegate->AddMessage(current_url, "No recognized types specified.",
-                         CONSOLE_MESSAGE_LEVEL_ERROR);
+                         blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -287,7 +287,8 @@
         " Clearing channel IDs and HTTP authentication cache is currently not"
         " supported, as it breaks active network connections.";
   }
-  delegate->AddMessage(current_url, console_output, CONSOLE_MESSAGE_LEVEL_INFO);
+  delegate->AddMessage(current_url, console_output,
+                       blink::mojom::ConsoleMessageLevel::kInfo);
 
   return true;
 }
diff --git a/content/browser/browsing_data/clear_site_data_handler.h b/content/browser/browsing_data/clear_site_data_handler.h
index 9d836ae..c377368 100644
--- a/content/browser/browsing_data/clear_site_data_handler.h
+++ b/content/browser/browsing_data/clear_site_data_handler.h
@@ -13,7 +13,7 @@
 #include "base/macros.h"
 #include "base/time/time.h"
 #include "content/common/content_export.h"
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
@@ -34,11 +34,13 @@
     struct Message {
       GURL url;
       std::string text;
-      ConsoleMessageLevel level;
+      blink::mojom::ConsoleMessageLevel level;
     };
 
-    using OutputFormattedMessageFunction = base::RepeatingCallback<
-        void(WebContents*, ConsoleMessageLevel, const std::string&)>;
+    using OutputFormattedMessageFunction =
+        base::RepeatingCallback<void(WebContents*,
+                                     blink::mojom::ConsoleMessageLevel,
+                                     const std::string&)>;
 
     ConsoleMessagesDelegate();
     virtual ~ConsoleMessagesDelegate();
@@ -46,7 +48,7 @@
     // Logs a |text| message from |url| with |level|.
     virtual void AddMessage(const GURL& url,
                             const std::string& text,
-                            ConsoleMessageLevel level);
+                            blink::mojom::ConsoleMessageLevel level);
 
     // Outputs stored messages to the console of WebContents identified by
     // |web_contents_getter|.
diff --git a/content/browser/browsing_data/clear_site_data_handler_unittest.cc b/content/browser/browsing_data/clear_site_data_handler_unittest.cc
index 33614b1f..5ac0de1 100644
--- a/content/browser/browsing_data/clear_site_data_handler_unittest.cc
+++ b/content/browser/browsing_data/clear_site_data_handler_unittest.cc
@@ -125,7 +125,7 @@
  private:
   static void OutputFormattedMessage(std::string* output_buffer,
                                      WebContents* web_contents,
-                                     ConsoleMessageLevel level,
+                                     blink::mojom::ConsoleMessageLevel level,
                                      const std::string& formatted_text) {
     *output_buffer += formatted_text + "\n";
   }
@@ -285,7 +285,7 @@
 
     std::string multiline_message;
     for (const auto& message : console_delegate.messages()) {
-      EXPECT_EQ(CONSOLE_MESSAGE_LEVEL_ERROR, message.level);
+      EXPECT_EQ(blink::mojom::ConsoleMessageLevel::kError, message.level);
       multiline_message += message.text + "\n";
     }
 
@@ -314,7 +314,8 @@
       "Clearing channel IDs and HTTP authentication cache is currently "
       "not supported, as it breaks active network connections.",
       message_buffer.front().text);
-  EXPECT_EQ(message_buffer.front().level, CONSOLE_MESSAGE_LEVEL_INFO);
+  EXPECT_EQ(message_buffer.front().level,
+            blink::mojom::ConsoleMessageLevel::kInfo);
   testing::Mock::VerifyAndClearExpectations(&handler);
 }
 
@@ -339,7 +340,8 @@
       "The request's credentials mode prohibits modifying cookies "
       "and other local data.",
       message_buffer.front().text);
-  EXPECT_EQ(CONSOLE_MESSAGE_LEVEL_ERROR, message_buffer.front().level);
+  EXPECT_EQ(blink::mojom::ConsoleMessageLevel::kError,
+            message_buffer.front().level);
   testing::Mock::VerifyAndClearExpectations(&handler);
 }
 
@@ -386,8 +388,9 @@
 
     EXPECT_EQ(defer, test_case.expect_success);
     EXPECT_EQ(message_buffer.size(), 1u);
-    EXPECT_EQ(test_case.expect_success ? CONSOLE_MESSAGE_LEVEL_INFO
-                                       : CONSOLE_MESSAGE_LEVEL_ERROR,
+    EXPECT_EQ(test_case.expect_success
+                  ? blink::mojom::ConsoleMessageLevel::kInfo
+                  : blink::mojom::ConsoleMessageLevel::kError,
               message_buffer.front().level);
     if (!test_case.expect_success) {
       EXPECT_EQ(test_case.error_message, message_buffer.front().text);
diff --git a/content/browser/browsing_data/clear_site_data_throttle.cc b/content/browser/browsing_data/clear_site_data_throttle.cc
index e8ddbf9..00d130d 100644
--- a/content/browser/browsing_data/clear_site_data_throttle.cc
+++ b/content/browser/browsing_data/clear_site_data_throttle.cc
@@ -95,7 +95,7 @@
 
 // Outputs a single |formatted_message| on the UI thread.
 void OutputFormattedMessage2(WebContents* web_contents,
-                             ConsoleMessageLevel level,
+                             blink::mojom::ConsoleMessageLevel level,
                              const std::string& formatted_text) {
   if (web_contents)
     web_contents->GetMainFrame()->AddMessageToConsole(level, formatted_text);
@@ -136,7 +136,7 @@
 void ClearSiteDataThrottle::ConsoleMessagesDelegate::AddMessage(
     const GURL& url,
     const std::string& text,
-    ConsoleMessageLevel level) {
+    blink::mojom::ConsoleMessageLevel level) {
   messages_.push_back({url, text, level});
 }
 
@@ -252,14 +252,14 @@
   if (!IsOriginSecure(GetCurrentURL())) {
     delegate_->AddMessage(GetCurrentURL(),
                           "Not supported for insecure origins.",
-                          CONSOLE_MESSAGE_LEVEL_ERROR);
+                          blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
   url::Origin origin = url::Origin::Create(GetCurrentURL());
   if (origin.opaque()) {
     delegate_->AddMessage(GetCurrentURL(), "Not supported for unique origins.",
-                          CONSOLE_MESSAGE_LEVEL_ERROR);
+                          blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -274,7 +274,7 @@
         GetCurrentURL(),
         "The request's credentials mode prohibits modifying cookies "
         "and other local data.",
-        CONSOLE_MESSAGE_LEVEL_ERROR);
+        blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -294,7 +294,7 @@
       delegate_->AddMessage(
           GetCurrentURL(),
           "Ignoring, as the response came from a service worker.",
-          CONSOLE_MESSAGE_LEVEL_ERROR);
+          blink::mojom::ConsoleMessageLevel::kError);
       return false;
     }
   }
@@ -341,7 +341,7 @@
                                         const GURL& current_url) {
   if (!base::IsStringASCII(header)) {
     delegate->AddMessage(current_url, "Must only contain ASCII characters.",
-                         CONSOLE_MESSAGE_LEVEL_ERROR);
+                         blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -372,7 +372,7 @@
       delegate->AddMessage(
           current_url,
           base::StringPrintf("Unrecognized type: %s.", input_types[i].c_str()),
-          CONSOLE_MESSAGE_LEVEL_ERROR);
+          blink::mojom::ConsoleMessageLevel::kError);
       continue;
     }
 
@@ -389,7 +389,7 @@
 
   if (!*clear_cookies && !*clear_storage && !*clear_cache) {
     delegate->AddMessage(current_url, "No recognized types specified.",
-                         CONSOLE_MESSAGE_LEVEL_ERROR);
+                         blink::mojom::ConsoleMessageLevel::kError);
     return false;
   }
 
@@ -402,7 +402,8 @@
         " Clearing channel IDs and HTTP authentication cache is currently not"
         " supported, as it breaks active network connections.";
   }
-  delegate->AddMessage(current_url, console_output, CONSOLE_MESSAGE_LEVEL_INFO);
+  delegate->AddMessage(current_url, console_output,
+                       blink::mojom::ConsoleMessageLevel::kInfo);
 
   return true;
 }
diff --git a/content/browser/browsing_data/clear_site_data_throttle.h b/content/browser/browsing_data/clear_site_data_throttle.h
index 053ce9f..45bd023 100644
--- a/content/browser/browsing_data/clear_site_data_throttle.h
+++ b/content/browser/browsing_data/clear_site_data_throttle.h
@@ -16,8 +16,8 @@
 #include "base/time/time.h"
 #include "content/public/browser/resource_request_info.h"
 #include "content/public/browser/resource_throttle.h"
-#include "content/public/common/console_message_level.h"
 #include "net/http/http_response_headers.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/gurl.h"
 
 namespace net {
@@ -49,11 +49,12 @@
     struct Message {
       GURL url;
       std::string text;
-      ConsoleMessageLevel level;
+      blink::mojom::ConsoleMessageLevel level;
     };
 
-    typedef base::Callback<
-        void(WebContents*, ConsoleMessageLevel, const std::string&)>
+    typedef base::Callback<void(WebContents*,
+                                blink::mojom::ConsoleMessageLevel,
+                                const std::string&)>
         OutputFormattedMessageFunction;
 
     ConsoleMessagesDelegate();
@@ -62,7 +63,7 @@
     // Logs a |text| message from |url| with |level|.
     virtual void AddMessage(const GURL& url,
                             const std::string& text,
-                            ConsoleMessageLevel level);
+                            blink::mojom::ConsoleMessageLevel level);
 
     // Outputs stored messages to the console of WebContents identified by
     // |web_contents_getter|.
diff --git a/content/browser/browsing_data/clear_site_data_throttle_unittest.cc b/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
index e54b190..c7295d6 100644
--- a/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
+++ b/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
@@ -133,7 +133,7 @@
  private:
   static void OutputFormattedMessage(std::string* output_buffer,
                                      WebContents* web_contents,
-                                     ConsoleMessageLevel level,
+                                     blink::mojom::ConsoleMessageLevel level,
                                      const std::string& formatted_text) {
     *output_buffer += formatted_text + "\n";
   }
@@ -314,7 +314,7 @@
 
     std::string multiline_message;
     for (const auto& message : console_delegate.messages()) {
-      EXPECT_EQ(CONSOLE_MESSAGE_LEVEL_ERROR, message.level);
+      EXPECT_EQ(blink::mojom::ConsoleMessageLevel::kError, message.level);
       multiline_message += message.text + "\n";
     }
 
@@ -347,7 +347,7 @@
       "not supported, as it breaks active network connections.",
       console_delegate->messages().front().text);
   EXPECT_EQ(console_delegate->messages().front().level,
-            CONSOLE_MESSAGE_LEVEL_INFO);
+            blink::mojom::ConsoleMessageLevel::kInfo);
   testing::Mock::VerifyAndClearExpectations(&throttle);
 
   request->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
@@ -359,7 +359,7 @@
       "The request's credentials mode prohibits modifying cookies "
       "and other local data.",
       console_delegate->messages().rbegin()->text);
-  EXPECT_EQ(CONSOLE_MESSAGE_LEVEL_ERROR,
+  EXPECT_EQ(blink::mojom::ConsoleMessageLevel::kError,
             console_delegate->messages().rbegin()->level);
   testing::Mock::VerifyAndClearExpectations(&throttle);
 }
@@ -410,8 +410,9 @@
 
     EXPECT_EQ(defer, test_case.expect_success);
     EXPECT_EQ(console_delegate->messages().size(), 1u);
-    EXPECT_EQ(test_case.expect_success ? CONSOLE_MESSAGE_LEVEL_INFO
-                                       : CONSOLE_MESSAGE_LEVEL_ERROR,
+    EXPECT_EQ(test_case.expect_success
+                  ? blink::mojom::ConsoleMessageLevel::kInfo
+                  : blink::mojom::ConsoleMessageLevel::kError,
               console_delegate->messages().front().level);
     if (!test_case.expect_success) {
       EXPECT_EQ(test_case.error_message,
diff --git a/content/browser/frame_host/ancestor_throttle.cc b/content/browser/frame_host/ancestor_throttle.cc
index bcafb9f..2045100 100644
--- a/content/browser/frame_host/ancestor_throttle.cc
+++ b/content/browser/frame_host/ancestor_throttle.cc
@@ -15,8 +15,8 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/navigation_throttle.h"
-#include "content/public/common/console_message_level.h"
 #include "net/http/http_response_headers.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/origin.h"
 
 namespace content {
@@ -239,7 +239,7 @@
   // Log a console error in the parent of the current RenderFrameHost (as
   // the current RenderFrameHost itself doesn't yet have a document).
   navigation_handle()->GetRenderFrameHost()->GetParent()->AddMessageToConsole(
-      CONSOLE_MESSAGE_LEVEL_ERROR, message);
+      blink::mojom::ConsoleMessageLevel::kError, message);
 }
 
 void AncestorThrottle::ConsoleError(HeaderDisposition disposition) {
@@ -257,7 +257,7 @@
   // Log a console error in the parent of the current RenderFrameHost (as
   // the current RenderFrameHost itself doesn't yet have a document).
   navigation_handle()->GetRenderFrameHost()->GetParent()->AddMessageToConsole(
-      CONSOLE_MESSAGE_LEVEL_ERROR, message);
+      blink::mojom::ConsoleMessageLevel::kError, message);
 }
 
 AncestorThrottle::HeaderDisposition AncestorThrottle::ParseHeader(
diff --git a/content/browser/frame_host/blocked_scheme_navigation_throttle.cc b/content/browser/frame_host/blocked_scheme_navigation_throttle.cc
index 5c1d2cc..68f5754 100644
--- a/content/browser/frame_host/blocked_scheme_navigation_throttle.cc
+++ b/content/browser/frame_host/blocked_scheme_navigation_throttle.cc
@@ -12,8 +12,8 @@
 #include "content/browser/frame_host/navigation_handle_impl.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/content_features.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "url/url_constants.h"
 
 namespace content {
@@ -38,7 +38,7 @@
   RenderFrameHost* top_frame =
       handle->frame_tree_node()->frame_tree()->root()->current_frame_host();
   top_frame->AddMessageToConsole(
-      CONSOLE_MESSAGE_LEVEL_ERROR,
+      blink::mojom::ConsoleMessageLevel::kError,
       base::StringPrintf(kConsoleError, handle->GetURL().scheme().c_str(),
                          handle->GetURL().spec().c_str()));
   return CANCEL;
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
index 9831f03..5406b61f 100644
--- a/content/browser/frame_host/navigation_request.cc
+++ b/content/browser/frame_host/navigation_request.cc
@@ -1061,7 +1061,7 @@
       download_policy.IsType(NavigationDownloadType::kOpenerCrossOrigin)) {
     content::RenderFrameHost* rfh = frame_tree_node_->current_frame_host();
     rfh->AddMessageToConsole(
-        CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         base::StringPrintf(
             "Navigating a cross-origin opener to a download (%s) is "
             "deprecated, see "
@@ -2084,7 +2084,8 @@
       "`https://user:pass@host/`) are blocked. See "
       "https://www.chromestatus.com/feature/5669008342777856 for more "
       "details.";
-  parent->AddMessageToConsole(CONSOLE_MESSAGE_LEVEL_WARNING, console_message);
+  parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
+                              console_message);
 
   if (!base::FeatureList::IsEnabled(features::kBlockCredentialedSubresources))
     return CredentialedSubresourceCheckResult::ALLOW_REQUEST;
@@ -2115,7 +2116,8 @@
       "Please deliver web-accessible resources over modern protocols like "
       "HTTPS. See https://www.chromestatus.com/feature/5709390967472128 for "
       "details.";
-  parent->AddMessageToConsole(CONSOLE_MESSAGE_LEVEL_WARNING, console_message);
+  parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
+                              console_message);
 
   return LegacyProtocolInSubresourceCheckResult::BLOCK_REQUEST;
 }
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 88841bba..978b3081 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -1182,8 +1182,9 @@
   return view->GetNativeView();
 }
 
-void RenderFrameHostImpl::AddMessageToConsole(ConsoleMessageLevel level,
-                                              const std::string& message) {
+void RenderFrameHostImpl::AddMessageToConsole(
+    blink::mojom::ConsoleMessageLevel level,
+    const std::string& message) {
   Send(new FrameMsg_AddMessageToConsole(routing_id_, level, message));
 }
 
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index db6cad49..fe9bade 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -221,7 +221,7 @@
   const GURL& GetLastCommittedURL() override;
   const url::Origin& GetLastCommittedOrigin() override;
   gfx::NativeView GetNativeView() override;
-  void AddMessageToConsole(ConsoleMessageLevel level,
+  void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                            const std::string& message) override;
   void ExecuteJavaScript(const base::string16& javascript,
                          JavaScriptResultCallback callback) override;
diff --git a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
index 941a901..80a109d5 100644
--- a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
+++ b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
@@ -18,8 +18,8 @@
 #include "content/browser/renderer_host/render_widget_host_impl.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_widget_host.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/content_features.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "ui/events/keycodes/dom/dom_code.h"
 #include "ui/events/keycodes/dom/keycode_converter.h"
 
@@ -85,7 +85,7 @@
     } else {
       invalid_key_code_found = true;
       render_frame_host_->AddMessageToConsole(
-          ConsoleMessageLevel::CONSOLE_MESSAGE_LEVEL_WARNING,
+          blink::mojom::ConsoleMessageLevel::kWarning,
           "Invalid DOMString passed into keyboard.lock(): '" + code + "'");
     }
   }
diff --git a/content/browser/manifest/manifest_icon_downloader.cc b/content/browser/manifest/manifest_icon_downloader.cc
index fa47fe0..785cdb12 100644
--- a/content/browser/manifest/manifest_icon_downloader.cc
+++ b/content/browser/manifest/manifest_icon_downloader.cc
@@ -17,8 +17,8 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "content/public/common/console_message_level.h"
 #include "skia/ext/image_operations.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace content {
 
@@ -33,7 +33,8 @@
   explicit DevToolsConsoleHelper(WebContents* web_contents);
   ~DevToolsConsoleHelper() override = default;
 
-  void AddMessage(ConsoleMessageLevel level, const std::string& message);
+  void AddMessage(blink::mojom::ConsoleMessageLevel level,
+                  const std::string& message);
 };
 
 ManifestIconDownloader::DevToolsConsoleHelper::DevToolsConsoleHelper(
@@ -41,7 +42,7 @@
     : WebContentsObserver(web_contents) {}
 
 void ManifestIconDownloader::DevToolsConsoleHelper::AddMessage(
-    ConsoleMessageLevel level,
+    blink::mojom::ConsoleMessageLevel level,
     const std::string& message) {
   if (!web_contents())
     return;
@@ -83,7 +84,7 @@
 
   if (bitmaps.empty()) {
     console_helper->AddMessage(
-        CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         "Error while trying to use the following icon from the Manifest: " +
             url.spec() + " (Download error or resource isn't a valid image)");
 
@@ -96,7 +97,7 @@
 
   if (closest_index == -1) {
     console_helper->AddMessage(
-        CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         "Error while trying to use the following icon from the Manifest: " +
             url.spec() +
             " (Resource size is not correct - typo in the Manifest?)");
diff --git a/content/browser/payments/payment_app_info_fetcher.cc b/content/browser/payments/payment_app_info_fetcher.cc
index 546d5cf..30b5798 100644
--- a/content/browser/payments/payment_app_info_fetcher.cc
+++ b/content/browser/payments/payment_app_info_fetcher.cc
@@ -17,8 +17,8 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/global_routing_id.h"
 #include "content/public/browser/manifest_icon_downloader.h"
-#include "content/public/common/console_message_level.h"
 #include "third_party/blink/public/common/manifest/manifest_icon_selector.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "ui/gfx/codec/png_codec.h"
 #include "url/origin.h"
 
@@ -114,7 +114,7 @@
         WebContents::FromRenderFrameHost(top_level_render_frame_host));
     if (!top_level_web_content) {
       top_level_render_frame_host->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_ERROR,
+          blink::mojom::ConsoleMessageLevel::kError,
           "Unable to find the web page for \"" + context_url.spec() +
               "\" to fetch payment handler manifest (for name and icon).");
       continue;
@@ -122,7 +122,7 @@
 
     if (top_level_web_content->IsHidden()) {
       top_level_render_frame_host->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_ERROR,
+          blink::mojom::ConsoleMessageLevel::kError,
           "Unable to fetch payment handler manifest (for name and icon) for "
           "\"" +
               context_url.spec() + "\" from a hidden top level web page \"" +
@@ -133,7 +133,7 @@
     if (!url::IsSameOriginWith(context_url,
                                top_level_web_content->GetLastCommittedURL())) {
       top_level_render_frame_host->AddMessageToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_ERROR,
+          blink::mojom::ConsoleMessageLevel::kError,
           "Unable to fetch payment handler manifest (for name and icon) for "
           "\"" +
               context_url.spec() +
@@ -323,7 +323,7 @@
 
   if (web_contents_helper_->web_contents()) {
     web_contents_helper_->web_contents()->GetMainFrame()->AddMessageToConsole(
-        CONSOLE_MESSAGE_LEVEL_WARNING, message);
+        blink::mojom::ConsoleMessageLevel::kWarning, message);
   } else {
     LOG(WARNING) << message;
   }
diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc
index 2af523b..54c182f 100644
--- a/content/browser/push_messaging/push_messaging_manager.cc
+++ b/content/browser/push_messaging/push_messaging_manager.cc
@@ -29,9 +29,9 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/child_process_host.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/common/push_messaging_status.mojom.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/platform/modules/permissions/permission_status.mojom.h"
 
 namespace content {
@@ -444,7 +444,8 @@
             WebContents::FromRenderFrameHost(render_frame_host);
         if (web_contents) {
           web_contents->GetMainFrame()->AddMessageToConsole(
-              CONSOLE_MESSAGE_LEVEL_ERROR, kIncognitoPushUnsupportedMessage);
+              blink::mojom::ConsoleMessageLevel::kError,
+              kIncognitoPushUnsupportedMessage);
 
           BrowserContext* browser_context = web_contents->GetBrowserContext();
 
diff --git a/content/browser/service_worker/service_worker_context_watcher.cc b/content/browser/service_worker/service_worker_context_watcher.cc
index 820ffc2..2946bc79 100644
--- a/content/browser/service_worker/service_worker_context_watcher.cc
+++ b/content/browser/service_worker/service_worker_context_watcher.cc
@@ -14,7 +14,6 @@
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/console_message.h"
-#include "content/public/common/console_message_level.h"
 #include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h"
diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc
index 581b150..a9fec38 100644
--- a/content/browser/ssl/ssl_manager.cc
+++ b/content/browser/ssl/ssl_manager.cc
@@ -28,10 +28,10 @@
 #include "content/public/browser/devtools_agent_host.h"
 #include "content/public/browser/navigation_details.h"
 #include "content/public/browser/ssl_host_state_delegate.h"
-#include "content/public/common/console_message_level.h"
 #include "net/url_request/url_request.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace content {
 
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index ae66982..6bf5dfc 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -571,10 +571,10 @@
     jint level,
     const JavaParamRef<jstring>& message) {
   DCHECK_GE(level, 0);
-  DCHECK_LE(level, CONSOLE_MESSAGE_LEVEL_LAST);
+  DCHECK_LE(level, static_cast<int>(blink::mojom::ConsoleMessageLevel::kError));
 
   web_contents_->GetMainFrame()->AddMessageToConsole(
-      static_cast<ConsoleMessageLevel>(level),
+      static_cast<blink::mojom::ConsoleMessageLevel>(level),
       ConvertJavaStringToUTF8(env, message));
 }
 
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 06988f3..d80128a 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6968,7 +6968,7 @@
     return;
 
   GetMainFrame()->AddMessageToConsole(
-      content::CONSOLE_MESSAGE_LEVEL_WARNING,
+      blink::mojom::ConsoleMessageLevel::kWarning,
       base::StringPrintf("This site does not have a valid SSL "
                          "certificate! Without SSL, your site's and "
                          "visitors' data is vulnerable to theft and "
diff --git a/content/browser/web_package/signed_exchange_devtools_proxy.cc b/content/browser/web_package/signed_exchange_devtools_proxy.cc
index c42d93e..2b71146 100644
--- a/content/browser/web_package/signed_exchange_devtools_proxy.cc
+++ b/content/browser/web_package/signed_exchange_devtools_proxy.cc
@@ -29,7 +29,7 @@
   if (!web_contents)
     return;
   web_contents->GetMainFrame()->AddMessageToConsole(
-      content::CONSOLE_MESSAGE_LEVEL_ERROR, error_message);
+      blink::mojom::ConsoleMessageLevel::kError, error_message);
 }
 
 void CertificateRequestSentOnUI(
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index 8faa07a..d0a3aa2 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -36,7 +36,6 @@
 #include "content/common/resource_timing_info.h"
 #include "content/common/savable_subframe.h"
 #include "content/public/common/common_param_traits.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/context_menu_params.h"
 #include "content/public/common/favicon_url.h"
 #include "content/public/common/frame_navigate_params.h"
@@ -61,6 +60,7 @@
 #include "third_party/blink/public/common/messaging/message_port_channel.h"
 #include "third_party/blink/public/common/messaging/transferable_message.h"
 #include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h"
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom.h"
 #include "third_party/blink/public/platform/web_focus_type.h"
@@ -837,7 +837,7 @@
 
 // Add message to the frame console.
 IPC_MESSAGE_ROUTED2(FrameMsg_AddMessageToConsole,
-                    content::ConsoleMessageLevel /* level */,
+                    blink::mojom::ConsoleMessageLevel /* level */,
                     std::string /* message */)
 
 // Tells the renderer to reload the frame, optionally bypassing the cache while
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h
index 27d08fa9..76b89de 100644
--- a/content/public/browser/render_frame_host.h
+++ b/content/public/browser/render_frame_host.h
@@ -15,12 +15,12 @@
 #include "build/build_config.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/page_visibility_state.h"
-#include "content/public/common/console_message_level.h"
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
 #include "services/network/public/mojom/url_loader_factory.mojom-forward.h"
 #include "third_party/blink/public/common/feature_policy/feature_policy.h"
 #include "third_party/blink/public/common/frame/sandbox_flags.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/loader/pause_subresource_loading_handle.mojom-forward.h"
 #include "third_party/blink/public/platform/web_sudden_termination_disabler_type.h"
 #include "ui/accessibility/ax_tree_id.h"
@@ -172,7 +172,7 @@
   virtual gfx::NativeView GetNativeView() = 0;
 
   // Adds |message| to the DevTools console.
-  virtual void AddMessageToConsole(ConsoleMessageLevel level,
+  virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                                    const std::string& message) = 0;
 
   // Functions to run JavaScript in this frame's context. Pass in a callback to
diff --git a/content/public/common/common_param_traits_macros.h b/content/public/common/common_param_traits_macros.h
index 39ff864..a2038e5 100644
--- a/content/public/common/common_param_traits_macros.h
+++ b/content/public/common/common_param_traits_macros.h
@@ -10,7 +10,6 @@
 
 #include "build/build_config.h"
 #include "cc/input/touch_action.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/drop_data.h"
 #include "content/public/common/referrer.h"
 #include "content/public/common/web_preferences.h"
@@ -18,6 +17,7 @@
 #include "ipc/ipc_message_macros.h"
 #include "services/network/public/cpp/network_ipc_param_traits.h"
 #include "services/network/public/mojom/referrer_policy.mojom.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/renderer_preferences.mojom.h"
 #include "third_party/blink/public/platform/modules/permissions/permission_status.mojom.h"
 #include "third_party/blink/public/platform/web_drag_operation.h"
@@ -46,8 +46,8 @@
                          ((value &
                            ui::PageTransition::PAGE_TRANSITION_CORE_MASK) <=
                           ui::PageTransition::PAGE_TRANSITION_LAST_CORE))
-IPC_ENUM_TRAITS_MAX_VALUE(content::ConsoleMessageLevel,
-                          content::CONSOLE_MESSAGE_LEVEL_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(blink::mojom::ConsoleMessageLevel,
+                          blink::mojom::ConsoleMessageLevel::kError)
 IPC_ENUM_TRAITS_MAX_VALUE(network::mojom::ReferrerPolicy,
                           network::mojom::ReferrerPolicy::kMaxValue)
 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebHistoryScrollRestorationType,
diff --git a/content/public/renderer/render_frame.h b/content/public/renderer/render_frame.h
index 59f14073..e5c2a0a 100644
--- a/content/public/renderer/render_frame.h
+++ b/content/public/renderer/render_frame.h
@@ -14,7 +14,6 @@
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string16.h"
 #include "content/common/content_export.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/previews_state.h"
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
@@ -22,6 +21,7 @@
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
 #include "third_party/blink/public/common/loader/url_loader_factory_bundle.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/frame/document_interface_broker.mojom.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/public/web/web_navigation_policy.h"
@@ -246,7 +246,7 @@
   virtual double GetZoomLevel() = 0;
 
   // Adds |message| to the DevTools console.
-  virtual void AddMessageToConsole(ConsoleMessageLevel level,
+  virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                                    const std::string& message) = 0;
 
   // Sets the PreviewsState of this frame, a bitmask of potentially several
diff --git a/content/renderer/pepper/pepper_media_device_manager.cc b/content/renderer/pepper/pepper_media_device_manager.cc
index 6a086eb..d23f0f05 100644
--- a/content/renderer/pepper/pepper_media_device_manager.cc
+++ b/content/renderer/pepper/pepper_media_device_manager.cc
@@ -11,7 +11,6 @@
 #include "base/single_thread_task_runner.h"
 #include "base/stl_util.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/content_features.h"
 #include "content/renderer/media/stream/media_stream_device_observer.h"
 #include "content/renderer/pepper/renderer_ppapi_host_impl.h"
@@ -19,6 +18,7 @@
 #include "media/media_buildflags.h"
 #include "ppapi/shared_impl/ppb_device_ref_shared.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace content {
 
@@ -159,8 +159,9 @@
   if (!host->IsSecureContext(pp_instance)) {
     RenderFrame* render_frame = host->GetRenderFrameForInstance(pp_instance);
     if (render_frame) {
-      render_frame->AddMessageToConsole(CONSOLE_MESSAGE_LEVEL_WARNING,
-                                        kPepperInsecureOriginMessage);
+      render_frame->AddMessageToConsole(
+          blink::mojom::ConsoleMessageLevel::kWarning,
+          kPepperInsecureOriginMessage);
     }
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, base::BindOnce(&PepperMediaDeviceManager::OnDeviceOpened,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 97df5f2b..f5133b5 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2440,8 +2440,9 @@
   frame_->SaveImageAt(WebPoint(viewport_position.x, viewport_position.y));
 }
 
-void RenderFrameImpl::OnAddMessageToConsole(ConsoleMessageLevel level,
-                                            const std::string& message) {
+void RenderFrameImpl::OnAddMessageToConsole(
+    blink::mojom::ConsoleMessageLevel level,
+    const std::string& message) {
   AddMessageToConsole(level, message);
 }
 
@@ -3135,26 +3136,10 @@
   return render_view_->page_zoom_level();
 }
 
-void RenderFrameImpl::AddMessageToConsole(ConsoleMessageLevel level,
-                                          const std::string& message) {
-  blink::mojom::ConsoleMessageLevel target_level =
-      blink::mojom::ConsoleMessageLevel::kInfo;
-  switch (level) {
-    case CONSOLE_MESSAGE_LEVEL_VERBOSE:
-      target_level = blink::mojom::ConsoleMessageLevel::kVerbose;
-      break;
-    case CONSOLE_MESSAGE_LEVEL_INFO:
-      target_level = blink::mojom::ConsoleMessageLevel::kInfo;
-      break;
-    case CONSOLE_MESSAGE_LEVEL_WARNING:
-      target_level = blink::mojom::ConsoleMessageLevel::kWarning;
-      break;
-    case CONSOLE_MESSAGE_LEVEL_ERROR:
-      target_level = blink::mojom::ConsoleMessageLevel::kError;
-      break;
-  }
-
-  blink::WebConsoleMessage wcm(target_level, WebString::FromUTF8(message));
+void RenderFrameImpl::AddMessageToConsole(
+    blink::mojom::ConsoleMessageLevel level,
+    const std::string& message) {
+  blink::WebConsoleMessage wcm(level, WebString::FromUTF8(message));
   frame_->AddMessageToConsole(wcm);
 }
 
@@ -5452,8 +5437,9 @@
   tls_version_warning_origins_.insert(origin);
   // To avoid spamming the console, use verbose message level for subframe
   // resources, and only use the warning level for main-frame resources.
-  AddMessageToConsole(frame_->Parent() ? CONSOLE_MESSAGE_LEVEL_VERBOSE
-                                       : CONSOLE_MESSAGE_LEVEL_WARNING,
+  AddMessageToConsole(frame_->Parent()
+                          ? blink::mojom::ConsoleMessageLevel::kVerbose
+                          : blink::mojom::ConsoleMessageLevel::kWarning,
                       console_message);
 }
 
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index d12697e6..e149504 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -42,7 +42,6 @@
 #include "content/common/renderer.mojom.h"
 #include "content/common/unique_name_helper.h"
 #include "content/common/widget.mojom.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/fullscreen_video_element.mojom.h"
 #include "content/public/common/javascript_dialog_type.h"
 #include "content/public/common/previews_state.h"
@@ -79,6 +78,7 @@
 #include "third_party/blink/public/common/frame/frame_owner_element_type.h"
 #include "third_party/blink/public/mojom/autoplay/autoplay.mojom.h"
 #include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h"
 #include "third_party/blink/public/mojom/manifest/manifest_manager.mojom.h"
 #include "third_party/blink/public/mojom/renderer_preferences.mojom.h"
@@ -504,7 +504,7 @@
                        const gfx::Range& range) override;
   void SetZoomLevel(double zoom_level) override;
   double GetZoomLevel() override;
-  void AddMessageToConsole(ConsoleMessageLevel level,
+  void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                            const std::string& message) override;
   void SetPreviewsState(PreviewsState previews_state) override;
   PreviewsState GetPreviewsState() override;
@@ -1106,7 +1106,7 @@
   void OnSelectRange(const gfx::Point& base, const gfx::Point& extent);
   void OnCopyImageAt(int x, int y);
   void OnSaveImageAt(int x, int y);
-  void OnAddMessageToConsole(ConsoleMessageLevel level,
+  void OnAddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                              const std::string& message);
   void OnVisualStateRequest(uint64_t key);
   void OnReload(bool bypass_cache);
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
index eb71d95..c9a1c39 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -90,8 +90,9 @@
       RenderFrameHostImpl::GetRenderWidgetHost());
 }
 
-void TestRenderFrameHost::AddMessageToConsole(ConsoleMessageLevel level,
-                                              const std::string& message) {
+void TestRenderFrameHost::AddMessageToConsole(
+    blink::mojom::ConsoleMessageLevel level,
+    const std::string& message) {
   console_messages_.push_back(message);
   RenderFrameHostImpl::AddMessageToConsole(level, message);
 }
diff --git a/content/test/test_render_frame_host.h b/content/test/test_render_frame_host.h
index 62d7874..4d3b51e 100644
--- a/content/test/test_render_frame_host.h
+++ b/content/test/test_render_frame_host.h
@@ -62,7 +62,7 @@
   TestRenderViewHost* GetRenderViewHost() override;
   MockRenderProcessHost* GetProcess() override;
   TestRenderWidgetHost* GetRenderWidgetHost() override;
-  void AddMessageToConsole(ConsoleMessageLevel level,
+  void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
                            const std::string& message) override;
 
   // RenderFrameHostTester implementation.
diff --git a/extensions/browser/api/alarms/alarms_api.cc b/extensions/browser/api/alarms/alarms_api.cc
index ea6ca52..a21d45d 100644
--- a/extensions/browser/api/alarms/alarms_api.cc
+++ b/extensions/browser/api/alarms/alarms_api.cc
@@ -101,7 +101,7 @@
   }
   for (std::vector<std::string>::const_iterator it = warnings.begin();
        it != warnings.end(); ++it)
-    WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING, *it);
+    WriteToConsole(blink::mojom::ConsoleMessageLevel::kWarning, *it);
 
   const int kSecondsPerMinute = 60;
   base::TimeDelta granularity =
diff --git a/extensions/browser/api/alarms/alarms_api_unittest.cc b/extensions/browser/api/alarms/alarms_api_unittest.cc
index d5aa621..5a1c56f 100644
--- a/extensions/browser/api/alarms/alarms_api_unittest.cc
+++ b/extensions/browser/api/alarms/alarms_api_unittest.cc
@@ -315,8 +315,8 @@
   std::string message;
   ASSERT_TRUE(iter.ReadString(&message));
 
-  EXPECT_EQ(content::CONSOLE_MESSAGE_LEVEL_WARNING,
-            static_cast<content::ConsoleMessageLevel>(level));
+  EXPECT_EQ(blink::mojom::ConsoleMessageLevel::kWarning,
+            static_cast<blink::mojom::ConsoleMessageLevel>(level));
   EXPECT_THAT(message, testing::HasSubstr("delay is less than minimum of 1"));
 }
 
diff --git a/extensions/browser/api/app_window/app_window_api.cc b/extensions/browser/api/app_window/app_window_api.cc
index d9edc51..6c167ed 100644
--- a/extensions/browser/api/app_window/app_window_api.cc
+++ b/extensions/browser/api/app_window/app_window_api.cc
@@ -175,10 +175,10 @@
       create_params.window_key = *options->id;
 
       if (options->singleton && *options->singleton == false) {
-        WriteToConsole(
-          content::CONSOLE_MESSAGE_LEVEL_WARNING,
-          "The 'singleton' option in chrome.apps.window.create() is deprecated!"
-          " Change your code to no longer rely on this.");
+        WriteToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
+                       "The 'singleton' option in chrome.apps.window.create() "
+                       "is deprecated!"
+                       " Change your code to no longer rely on this.");
       }
 
       if (!options->singleton || *options->singleton) {
@@ -217,7 +217,7 @@
       return RespondNow(Error(error));
 
     if (options->type == app_window::WINDOW_TYPE_PANEL) {
-      WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING,
+      WriteToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
                      "Panels are no longer supported.");
     }
 
diff --git a/extensions/browser/api/vpn_provider/vpn_provider_api.cc b/extensions/browser/api/vpn_provider/vpn_provider_api.cc
index 23816e79..4c53ca0 100644
--- a/extensions/browser/api/vpn_provider/vpn_provider_api.cc
+++ b/extensions/browser/api/vpn_provider/vpn_provider_api.cc
@@ -167,7 +167,7 @@
 void VpnThreadExtensionFunction::SignalCallCompletionSuccessWithWarning(
     const std::string& warning) {
   if (!warning.empty()) {
-    WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING, warning);
+    WriteToConsole(blink::mojom::ConsoleMessageLevel::kWarning, warning);
   }
   Respond(NoArguments());
 }
diff --git a/extensions/browser/app_window/app_web_contents_helper.cc b/extensions/browser/app_window/app_web_contents_helper.cc
index d495ff8..7cad88ff 100644
--- a/extensions/browser/app_window/app_web_contents_helper.cc
+++ b/extensions/browser/app_window/app_web_contents_helper.cc
@@ -9,11 +9,11 @@
 #include "content/public/browser/page_navigator.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/browser/app_window/app_delegate.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/suggest_permission_util.h"
 #include "extensions/common/permissions/api_permission.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/platform/web_gesture_event.h"
 
 namespace extensions {
@@ -58,7 +58,7 @@
   WindowOpenDisposition disposition = params.disposition;
   if (disposition == WindowOpenDisposition::CURRENT_TAB) {
     web_contents_->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         base::StringPrintf(
             "Can't open same-window link to \"%s\"; try target=\"_blank\".",
             params.url.spec().c_str()));
@@ -74,7 +74,7 @@
       app_delegate_->OpenURLFromTab(browser_context_, web_contents_, params);
   if (!contents) {
     web_contents_->GetMainFrame()->AddMessageToConsole(
-        content::CONSOLE_MESSAGE_LEVEL_ERROR,
+        blink::mojom::ConsoleMessageLevel::kError,
         base::StringPrintf(
             "Can't navigate to \"%s\"; apps do not support navigation.",
             params.url.spec().c_str()));
diff --git a/extensions/browser/app_window/app_window.cc b/extensions/browser/app_window/app_window.cc
index f39f0e9..3804502b 100644
--- a/extensions/browser/app_window/app_window.cc
+++ b/extensions/browser/app_window/app_window.cc
@@ -62,8 +62,8 @@
 #include "extensions/browser/pref_names.h"
 #endif
 
+using blink::mojom::ConsoleMessageLevel;
 using content::BrowserContext;
-using content::ConsoleMessageLevel;
 using content::WebContents;
 using web_modal::WebContentsModalDialogHost;
 using web_modal::WebContentsModalDialogManager;
diff --git a/extensions/browser/extension_function.cc b/extensions/browser/extension_function.cc
index c01fb22..01426c1 100644
--- a/extensions/browser/extension_function.cc
+++ b/extensions/browser/extension_function.cc
@@ -586,7 +586,7 @@
 }
 
 void UIThreadExtensionFunction::WriteToConsole(
-    content::ConsoleMessageLevel level,
+    blink::mojom::ConsoleMessageLevel level,
     const std::string& message) {
   // Only the main frame handles dev tools messages.
   WebContents::FromRenderFrameHost(render_frame_host_)
diff --git a/extensions/browser/extension_function.h b/extensions/browser/extension_function.h
index 4dd3163..1c5ddeb 100644
--- a/extensions/browser/extension_function.h
+++ b/extensions/browser/extension_function.h
@@ -20,13 +20,13 @@
 #include "base/sequenced_task_runner_helpers.h"
 #include "base/timer/elapsed_timer.h"
 #include "content/public/browser/browser_thread.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/browser/extension_function_histogram_value.h"
 #include "extensions/browser/info_map.h"
 #include "extensions/common/constants.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/features/feature.h"
 #include "ipc/ipc_message.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom-forward.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom-forward.h"
 
@@ -548,7 +548,7 @@
 
  protected:
   // Emits a message to the extension's devtools console.
-  void WriteToConsole(content::ConsoleMessageLevel level,
+  void WriteToConsole(blink::mojom::ConsoleMessageLevel level,
                       const std::string& message);
 
   friend struct content::BrowserThread::DeleteOnThread<
diff --git a/extensions/browser/suggest_permission_util.cc b/extensions/browser/suggest_permission_util.cc
index d0b018f..e9e30ab 100644
--- a/extensions/browser/suggest_permission_util.cc
+++ b/extensions/browser/suggest_permission_util.cc
@@ -7,12 +7,10 @@
 #include "base/strings/stringprintf.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "extensions/common/permissions/permissions_info.h"
-
-using content::CONSOLE_MESSAGE_LEVEL_WARNING;
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace extensions {
 
@@ -42,7 +40,8 @@
   // Only the main frame handles dev tools messages.
   content::WebContents::FromRenderFrameHost(render_frame_host)
       ->GetMainFrame()
-      ->AddMessageToConsole(CONSOLE_MESSAGE_LEVEL_WARNING, message);
+      ->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
+                            message);
 }
 
 }  // namespace
diff --git a/extensions/renderer/DEPS b/extensions/renderer/DEPS
index f0de456..13a758e 100644
--- a/extensions/renderer/DEPS
+++ b/extensions/renderer/DEPS
@@ -13,6 +13,7 @@
   "+third_party/skia/include/core",
   "+third_party/cld_3",
 
+  "+third_party/blink/public/mojom/devtools/console_message.mojom.h",
   "+third_party/blink/public/mojom/frame/document_interface_broker.mojom.h",
   "+third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h",
   "+third_party/blink/public/platform",
diff --git a/extensions/renderer/console.cc b/extensions/renderer/console.cc
index bf1c535..c0e0dc7 100644
--- a/extensions/renderer/console.cc
+++ b/extensions/renderer/console.cc
@@ -45,7 +45,7 @@
       GetScriptContextFromV8Context(info.GetIsolate()->GetCurrentContext());
 
   // TODO(devlin): Consider (D)CHECK(script_context)
-  const auto level = static_cast<content::ConsoleMessageLevel>(
+  const auto level = static_cast<blink::mojom::ConsoleMessageLevel>(
       info.Data().As<v8::Int32>()->Value());
   AddMessage(script_context, level, message);
 }
@@ -55,12 +55,12 @@
 }  // namespace
 
 void Fatal(ScriptContext* context, const std::string& message) {
-  AddMessage(context, content::CONSOLE_MESSAGE_LEVEL_ERROR, message);
+  AddMessage(context, blink::mojom::ConsoleMessageLevel::kError, message);
   CheckWithMinidump(message);
 }
 
 void AddMessage(ScriptContext* script_context,
-                content::ConsoleMessageLevel level,
+                blink::mojom::ConsoleMessageLevel level,
                 const std::string& message) {
   if (!script_context) {
     LOG(WARNING) << "Could not log \"" << message
@@ -74,25 +74,8 @@
     return;
   }
 
-  blink::mojom::ConsoleMessageLevel web_level =
-      blink::mojom::ConsoleMessageLevel::kInfo;
-  switch (level) {
-    case content::CONSOLE_MESSAGE_LEVEL_VERBOSE:
-      web_level = blink::mojom::ConsoleMessageLevel::kVerbose;
-      break;
-    case content::CONSOLE_MESSAGE_LEVEL_INFO:
-      web_level = blink::mojom::ConsoleMessageLevel::kInfo;
-      break;
-    case content::CONSOLE_MESSAGE_LEVEL_WARNING:
-      web_level = blink::mojom::ConsoleMessageLevel::kWarning;
-      break;
-    case content::CONSOLE_MESSAGE_LEVEL_ERROR:
-      web_level = blink::mojom::ConsoleMessageLevel::kError;
-      break;
-  }
-
   blink::WebConsoleMessage web_console_message(
-      web_level, blink::WebString::FromUTF8(message));
+      level, blink::WebString::FromUTF8(message));
   blink::WebConsoleMessage::LogWebConsoleMessage(script_context->v8_context(),
                                                  web_console_message);
 }
@@ -105,17 +88,17 @@
     templ = v8::ObjectTemplate::New(isolate);
     static const struct {
       const char* name;
-      content::ConsoleMessageLevel level;
+      blink::mojom::ConsoleMessageLevel level;
     } methods[] = {
-        {"debug", content::CONSOLE_MESSAGE_LEVEL_VERBOSE},
-        {"log", content::CONSOLE_MESSAGE_LEVEL_INFO},
-        {"warn", content::CONSOLE_MESSAGE_LEVEL_WARNING},
-        {"error", content::CONSOLE_MESSAGE_LEVEL_ERROR},
+        {"debug", blink::mojom::ConsoleMessageLevel::kVerbose},
+        {"log", blink::mojom::ConsoleMessageLevel::kInfo},
+        {"warn", blink::mojom::ConsoleMessageLevel::kWarning},
+        {"error", blink::mojom::ConsoleMessageLevel::kError},
     };
     for (const auto& method : methods) {
-      v8::Local<v8::FunctionTemplate> function =
-          v8::FunctionTemplate::New(isolate, BoundLogMethodCallback,
-                                    v8::Integer::New(isolate, method.level));
+      v8::Local<v8::FunctionTemplate> function = v8::FunctionTemplate::New(
+          isolate, BoundLogMethodCallback,
+          v8::Integer::New(isolate, static_cast<int>(method.level)));
       function->RemovePrototype();
       templ->Set(gin::StringToSymbol(isolate, method.name), function);
     }
diff --git a/extensions/renderer/console.h b/extensions/renderer/console.h
index 52402b0..b62bc1dd 100644
--- a/extensions/renderer/console.h
+++ b/extensions/renderer/console.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "content/public/common/console_message_level.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "v8/include/v8.h"
 
 namespace extensions {
@@ -19,7 +19,7 @@
 // Adds |message| to the console of of the |script_context|. If |script_context|
 // is null, LOG()s the message instead.
 void AddMessage(ScriptContext* script_context,
-                content::ConsoleMessageLevel level,
+                blink::mojom::ConsoleMessageLevel level,
                 const std::string& message);
 
 // Logs an Error then crashes the current process.
diff --git a/extensions/renderer/content_setting.cc b/extensions/renderer/content_setting.cc
index 6c03bfe..da65bef 100644
--- a/extensions/renderer/content_setting.cc
+++ b/extensions/renderer/content_setting.cc
@@ -6,7 +6,6 @@
 
 #include "base/strings/stringprintf.h"
 #include "base/values.h"
-#include "content/public/common/console_message_level.h"
 #include "extensions/renderer/bindings/api_binding_types.h"
 #include "extensions/renderer/bindings/api_binding_util.h"
 #include "extensions/renderer/bindings/api_invocation_errors.h"
@@ -21,6 +20,7 @@
 #include "gin/converter.h"
 #include "gin/handle.h"
 #include "gin/object_template_builder.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace extensions {
 
@@ -159,7 +159,7 @@
 
   if (IsDeprecated(pref_name_)) {
     console::AddMessage(ScriptContextSet::GetContextByV8Context(context),
-                        content::CONSOLE_MESSAGE_LEVEL_WARNING,
+                        blink::mojom::ConsoleMessageLevel::kWarning,
                         base::StringPrintf("contentSettings.%s is deprecated.",
                                            pref_name_.c_str()));
     // If a callback was provided, call it immediately.
diff --git a/extensions/renderer/extension_frame_helper.h b/extensions/renderer/extension_frame_helper.h
index 5322509..4920314 100644
--- a/extensions/renderer/extension_frame_helper.h
+++ b/extensions/renderer/extension_frame_helper.h
@@ -11,10 +11,10 @@
 #include "base/callback_forward.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "content/public/renderer/render_frame_observer_tracker.h"
 #include "extensions/common/view_type.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "v8/include/v8.h"
 
 struct ExtensionMsg_ExternalConnectionInfo;
diff --git a/extensions/renderer/module_system.cc b/extensions/renderer/module_system.cc
index b0f7213..d1d76376 100644
--- a/extensions/renderer/module_system.cc
+++ b/extensions/renderer/module_system.cc
@@ -61,7 +61,7 @@
 
   ExtensionsClient* client = ExtensionsClient::Get();
   if (client->ShouldSuppressFatalErrors()) {
-    console::AddMessage(context, content::CONSOLE_MESSAGE_LEVEL_ERROR,
+    console::AddMessage(context, blink::mojom::ConsoleMessageLevel::kError,
                         full_message);
     client->RecordDidSuppressFatalError();
   } else {
@@ -72,8 +72,8 @@
 void Warn(v8::Isolate* isolate, const std::string& message) {
   ScriptContext* script_context =
       ScriptContextSet::GetContextByV8Context(isolate->GetCurrentContext());
-  console::AddMessage(script_context, content::CONSOLE_MESSAGE_LEVEL_WARNING,
-                      message);
+  console::AddMessage(script_context,
+                      blink::mojom::ConsoleMessageLevel::kWarning, message);
 }
 
 // Default exception handler which logs the exception.
diff --git a/extensions/renderer/native_extension_bindings_system.cc b/extensions/renderer/native_extension_bindings_system.cc
index e34600b5..a3256bae 100644
--- a/extensions/renderer/native_extension_bindings_system.cc
+++ b/extensions/renderer/native_extension_bindings_system.cc
@@ -10,7 +10,6 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/timer/elapsed_timer.h"
 #include "components/crx_file/id_util.h"
-#include "content/public/common/console_message_level.h"
 #include "content/public/common/content_switches.h"
 #include "extensions/common/constants.h"
 #include "extensions/common/event_filtering_info.h"
@@ -40,6 +39,7 @@
 #include "gin/converter.h"
 #include "gin/handle.h"
 #include "gin/per_context_data.h"
+#include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h"
 #include "third_party/blink/public/web/web_document.h"
 #include "third_party/blink/public/web/web_local_frame.h"
@@ -166,7 +166,7 @@
   // messaging binding tear down exhibited by
   // MessagingApiTest.MessagingBackgroundOnly.
   // console::AddMessage() can handle a null script context.
-  console::AddMessage(script_context, content::CONSOLE_MESSAGE_LEVEL_ERROR,
+  console::AddMessage(script_context, blink::mojom::ConsoleMessageLevel::kError,
                       error);
 }
 
diff --git a/extensions/renderer/object_backed_native_handler.cc b/extensions/renderer/object_backed_native_handler.cc
index 504e7eb..f9f5cb3 100644
--- a/extensions/renderer/object_backed_native_handler.cc
+++ b/extensions/renderer/object_backed_native_handler.cc
@@ -73,7 +73,8 @@
       !feature_name_value->IsString()) {
     ScriptContext* script_context =
         ScriptContextSet::GetContextByV8Context(context);
-    console::AddMessage(script_context, content::CONSOLE_MESSAGE_LEVEL_ERROR,
+    console::AddMessage(script_context,
+                        blink::mojom::ConsoleMessageLevel::kError,
                         "Extension view no longer exists");
     return;
   }
diff --git a/third_party/blink/public/mojom/devtools/console_message.mojom b/third_party/blink/public/mojom/devtools/console_message.mojom
index b0b5c8b..93d018ee 100644
--- a/third_party/blink/public/mojom/devtools/console_message.mojom
+++ b/third_party/blink/public/mojom/devtools/console_message.mojom
@@ -4,8 +4,6 @@
 
 module blink.mojom;
 
-// TODO(leonhsl) We can remove blink::MessageLevel and
-// content::ConsoleMessageLevel by using this mojom enum instead.
 enum ConsoleMessageLevel {
   kVerbose,
   kInfo,