diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 7eb08e8c1e4dc..078f73444bcef 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5285,6 +5285,7 @@ static_library("browser") {
       "//chromeos/ash/components/audio",
       "//chromeos/ash/components/audio/public/mojom",
       "//chromeos/ash/components/boca",
+      "//chromeos/ash/components/boca/on_task",
       "//chromeos/ash/components/browser_context_helper",
       "//chromeos/ash/components/carrier_lock",
       "//chromeos/ash/components/channel",
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index c4cda530ba2a6..8f7f92615f499 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -440,6 +440,7 @@
 #include "chrome/browser/ui/webui/settings/reset_settings_handler.h"
 #include "chrome/browser/upgrade_detector/upgrade_detector_chromeos.h"
 #include "chromeos/ash/components/audio/audio_devices_pref_handler_impl.h"
+#include "chromeos/ash/components/boca/on_task/on_task_prefs.h"
 #include "chromeos/ash/components/local_search_service/search_metrics_reporter.h"
 #include "chromeos/ash/components/network/cellular_esim_profile_handler_impl.h"
 #include "chromeos/ash/components/network/cellular_metrics_logger.h"
@@ -2233,6 +2234,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
   wallpaper_handlers::prefs::RegisterProfilePrefs(registry);
   ash::reporting::RegisterProfilePrefs(registry);
   ChromeMediaAppGuestUIDelegate::RegisterProfilePrefs(registry);
+  ash::boca::RegisterOnTaskProfilePrefs(registry);
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromeos/ash/components/boca/on_task/BUILD.gn b/chromeos/ash/components/boca/on_task/BUILD.gn
index e5dcd156df6e1..d99030034627f 100644
--- a/chromeos/ash/components/boca/on_task/BUILD.gn
+++ b/chromeos/ash/components/boca/on_task/BUILD.gn
@@ -10,6 +10,8 @@ static_library("on_task") {
   sources = [
     "on_task_blocklist.cc",
     "on_task_blocklist.h",
+    "on_task_prefs.cc",
+    "on_task_prefs.h",
     "on_task_session_manager.cc",
     "on_task_session_manager.h",
     "on_task_system_web_app_manager.h",
@@ -22,6 +24,7 @@ static_library("on_task") {
     "//chromeos/ash/components/boca/proto",
     "//components/google/core/common",
     "//components/policy/core/browser",
+    "//components/pref_registry",
     "//components/sessions",
     "//components/sessions:session_id",
     "//content/public/browser",
diff --git a/chromeos/ash/components/boca/on_task/on_task_prefs.cc b/chromeos/ash/components/boca/on_task/on_task_prefs.cc
new file mode 100644
index 0000000000000..84b06e323b0fb
--- /dev/null
+++ b/chromeos/ash/components/boca/on_task/on_task_prefs.cc
@@ -0,0 +1,20 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/ash/components/boca/on_task/on_task_prefs.h"
+
+#include "base/check.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+
+namespace ash::boca {
+
+// A list pref used to track disabled extensions for OnTask.
+const char kDisabledOnTaskExtensions[] = "boca.disabled_on_task_extensions";
+
+void RegisterOnTaskProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+  CHECK(registry);
+  registry->RegisterListPref(kDisabledOnTaskExtensions);
+}
+
+}  // namespace ash::boca
diff --git a/chromeos/ash/components/boca/on_task/on_task_prefs.h b/chromeos/ash/components/boca/on_task/on_task_prefs.h
new file mode 100644
index 0000000000000..9b0c2755545a4
--- /dev/null
+++ b/chromeos/ash/components/boca/on_task/on_task_prefs.h
@@ -0,0 +1,21 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_ASH_COMPONENTS_BOCA_ON_TASK_ON_TASK_PREFS_H_
+#define CHROMEOS_ASH_COMPONENTS_BOCA_ON_TASK_ON_TASK_PREFS_H_
+
+namespace user_prefs {
+class PrefRegistrySyncable;
+}
+
+namespace ash::boca {
+
+// A list pref used to track disabled extensions for OnTask.
+extern const char kDisabledOnTaskExtensions[];
+
+void RegisterOnTaskProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
+
+}  // namespace ash::boca
+
+#endif  // CHROMEOS_ASH_COMPONENTS_BOCA_ON_TASK_ON_TASK_PREFS_H_