Remove unused DMTokenStorage class
The class was used for active directory in the past.
CL that introduced it: https://issues.chromium.org/issues/41286804
Now it's unused.
BUG=b:320682630
TEST=CQ passes
Change-Id: I98f1aec7a271588ca1253b1375431a085fb5bdc7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5803194
Reviewed-by: Marc Treib <[email protected]>
Commit-Queue: Igor <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1344782}
diff --git a/chrome/browser/ash/policy/core/BUILD.gn b/chrome/browser/ash/policy/core/BUILD.gn
index 220e89fdd..5c8697d 100644
--- a/chrome/browser/ash/policy/core/BUILD.gn
+++ b/chrome/browser/ash/policy/core/BUILD.gn
@@ -42,8 +42,6 @@
"device_policy_decoder.cc",
"device_policy_decoder.h",
"device_policy_remover.h",
- "dm_token_storage.cc",
- "dm_token_storage.h",
"file_util.cc",
"file_util.h",
"policy_oauth2_token_fetcher.cc",
@@ -213,7 +211,6 @@
"device_local_account_policy_service_unittest.cc",
"device_local_account_unittest.cc",
"device_policy_decoder_unittest.cc",
- "dm_token_storage_unittest.cc",
"reporting_user_tracker_unittest.cc",
"user_cloud_policy_manager_ash_unittest.cc",
"user_cloud_policy_store_ash_unittest.cc",
diff --git a/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc b/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc
index ec26b4dc..3450d0d1 100644
--- a/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc
+++ b/chrome/browser/ash/policy/core/browser_policy_connector_ash.cc
@@ -29,7 +29,6 @@
#include "chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h"
#include "chrome/browser/ash/policy/core/device_local_account.h"
#include "chrome/browser/ash/policy/core/device_local_account_policy_service.h"
-#include "chrome/browser/ash/policy/core/dm_token_storage.h"
#include "chrome/browser/ash/policy/enrollment/auto_enrollment_type_checker.h"
#include "chrome/browser/ash/policy/enrollment/device_cloud_policy_initializer.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
diff --git a/chrome/browser/ash/policy/core/dm_token_storage.cc b/chrome/browser/ash/policy/core/dm_token_storage.cc
deleted file mode 100644
index e612b43c..0000000
--- a/chrome/browser/ash/policy/core/dm_token_storage.cc
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ash/policy/core/dm_token_storage.h"
-
-#include "base/functional/bind.h"
-#include "base/logging.h"
-#include "base/task/thread_pool.h"
-#include "chrome/browser/ash/settings/token_encryptor.h"
-#include "chrome/common/pref_names.h"
-#include "chromeos/ash/components/cryptohome/system_salt_getter.h"
-#include "components/prefs/pref_registry_simple.h"
-#include "components/prefs/pref_service.h"
-#include "content/public/browser/browser_thread.h"
-
-namespace {
-
-std::string EncryptToken(const std::string& system_salt,
- const std::string& dm_token) {
- ash::CryptohomeTokenEncryptor encryptor(system_salt);
- return encryptor.EncryptWithSystemSalt(dm_token);
-}
-
-std::string DecryptToken(const std::string& system_salt,
- const std::string encrypted_dm_token,
- bool is_weakly_encrypted) {
- ash::CryptohomeTokenEncryptor encryptor(system_salt);
- return is_weakly_encrypted
- ? encryptor.WeakDecryptWithSystemSalt(encrypted_dm_token)
- : encryptor.DecryptWithSystemSalt(encrypted_dm_token);
-}
-
-} // namespace
-
-namespace policy {
-
-DMTokenStorageBase::~DMTokenStorageBase() = default;
-
-DMTokenStorage::DMTokenStorage(PrefService* local_state)
- : local_state_(local_state) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- ash::SystemSaltGetter::Get()->GetSystemSalt(base::BindOnce(
- &DMTokenStorage::OnSystemSaltReceived, weak_ptr_factory_.GetWeakPtr()));
-}
-
-DMTokenStorage::~DMTokenStorage() {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- FlushStoreTokenCallback(false);
- FlushRetrieveTokenCallback(std::string());
-}
-
-// static
-void DMTokenStorage::RegisterPrefs(PrefRegistrySimple* registry) {
- registry->RegisterStringPref(prefs::kDeviceDMTokenV1, std::string());
- registry->RegisterStringPref(prefs::kDeviceDMTokenV2, std::string());
-}
-
-void DMTokenStorage::StoreDMToken(const std::string& dm_token,
- StoreCallback callback) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- if (!store_callback_.is_null()) {
- DLOG(ERROR)
- << "Failed to store DM token: Previous store operation is not finished";
- std::move(callback).Run(false);
- return;
- }
- if (!retrieve_callbacks_.empty()) {
- DLOG(ERROR)
- << "Failed to store DM token: Retrieve operation is not finished";
- std::move(callback).Run(false);
- return;
- }
- store_callback_ = std::move(callback);
- dm_token_ = dm_token;
- switch (state_) {
- case SaltState::LOADING:
- // Do nothing. Waiting for system salt.
- break;
- case SaltState::LOADED:
- EncryptAndStoreToken();
- break;
- case SaltState::ERROR:
- FlushStoreTokenCallback(false);
- break;
- }
-}
-
-void DMTokenStorage::RetrieveDMToken(RetrieveCallback callback) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- if (!store_callback_.is_null()) {
- DCHECK(retrieve_callbacks_.empty());
- DLOG(ERROR)
- << "Failed to retrieve DM token: Store operation is not finished";
- std::move(callback).Run(std::string());
- return;
- }
- retrieve_callbacks_.push_back(std::move(callback));
- switch (state_) {
- case SaltState::LOADING:
- // Do nothing. Waiting for system salt.
- break;
- case SaltState::LOADED:
- if (retrieve_callbacks_.size() == 1) { // First consumer.
- LoadAndDecryptToken();
- }
- break;
- case SaltState::ERROR:
- FlushRetrieveTokenCallback(std::string());
- break;
- }
-}
-
-void DMTokenStorage::OnSystemSaltReceived(const std::string& system_salt) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- system_salt_ = system_salt;
- if (system_salt_.empty()) {
- state_ = SaltState::ERROR;
- DLOG(ERROR) << "Failed to get system salt.";
- FlushStoreTokenCallback(false);
- FlushRetrieveTokenCallback(std::string());
- return;
- }
- // Should not be concurrent store and get operations.
- DCHECK(store_callback_.is_null() || retrieve_callbacks_.empty());
- state_ = SaltState::LOADED;
- if (!store_callback_.is_null())
- EncryptAndStoreToken();
- else if (!retrieve_callbacks_.empty())
- LoadAndDecryptToken();
-}
-
-void DMTokenStorage::EncryptAndStoreToken() {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- DCHECK(!system_salt_.empty());
- DCHECK(!dm_token_.empty());
- base::ThreadPool::PostTaskAndReplyWithResult(
- FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
- base::BindOnce(&EncryptToken, system_salt_, dm_token_),
- base::BindOnce(&DMTokenStorage::OnTokenEncrypted,
- weak_ptr_factory_.GetWeakPtr()));
-}
-
-void DMTokenStorage::OnTokenEncrypted(const std::string& encrypted_dm_token) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- if (encrypted_dm_token.empty()) {
- DLOG(ERROR) << "Failed to encrypt DM token.";
- } else {
- local_state_->SetString(prefs::kDeviceDMTokenV2, encrypted_dm_token);
- }
- FlushStoreTokenCallback(!encrypted_dm_token.empty());
-}
-
-void DMTokenStorage::LoadAndDecryptToken() {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- DCHECK_EQ(SaltState::LOADED, state_);
- bool is_weakly_encrypted = false;
- std::string encrypted_dm_token =
- local_state_->GetString(prefs::kDeviceDMTokenV2);
- if (encrypted_dm_token.empty()) {
- is_weakly_encrypted = true;
- encrypted_dm_token = local_state_->GetString(prefs::kDeviceDMTokenV1);
- }
- if (!encrypted_dm_token.empty()) {
- base::ThreadPool::PostTaskAndReplyWithResult(
- FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
- base::BindOnce(&DecryptToken, system_salt_, encrypted_dm_token,
- is_weakly_encrypted),
- base::BindOnce(&DMTokenStorage::FlushRetrieveTokenCallback,
- weak_ptr_factory_.GetWeakPtr()));
- } else {
- DLOG(ERROR) << "No DM token in the local state.";
- FlushRetrieveTokenCallback(std::string());
- }
-}
-
-void DMTokenStorage::FlushStoreTokenCallback(bool status) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- if (!store_callback_.is_null()) {
- std::move(store_callback_).Run(status);
- }
-}
-
-void DMTokenStorage::FlushRetrieveTokenCallback(const std::string& dm_token) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- if (retrieve_callbacks_.empty())
- return;
- if (dm_token.empty())
- DLOG(ERROR) << "Failed to retrieve DM token.";
- std::vector<RetrieveCallback> callbacks;
- callbacks.swap(retrieve_callbacks_);
- for (RetrieveCallback& callback : callbacks)
- std::move(callback).Run(dm_token);
-}
-
-} // namespace policy
diff --git a/chrome/browser/ash/policy/core/dm_token_storage.h b/chrome/browser/ash/policy/core/dm_token_storage.h
deleted file mode 100644
index 7e779553..0000000
--- a/chrome/browser/ash/policy/core/dm_token_storage.h
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_ASH_POLICY_CORE_DM_TOKEN_STORAGE_H_
-#define CHROME_BROWSER_ASH_POLICY_CORE_DM_TOKEN_STORAGE_H_
-
-#include <string>
-#include <vector>
-
-#include "base/functional/callback.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/weak_ptr.h"
-
-class PrefRegistrySimple;
-class PrefService;
-
-namespace policy {
-
-// Interface to store/retrieve DM token.
-// TODO(b/181210862): Refactor and align with "Impl" naming convention.
-class DMTokenStorageBase {
- public:
- using StoreCallback = base::OnceCallback<void(bool success)>;
- using RetrieveCallback =
- base::OnceCallback<void(const std::string& dm_token)>;
-
- virtual ~DMTokenStorageBase();
-
- // Persists |dm_token|. Signals completion via |callback|, passing true if the
- // operation succeeded.
- virtual void StoreDMToken(const std::string& dm_token,
- StoreCallback callback) = 0;
-
- // Loads DM token. Fires callback on completion. Empty |dm_token| means error.
- virtual void RetrieveDMToken(RetrieveCallback callback) = 0;
-};
-
-// Implementation of DMTokenStorageBase interface to store/retrieve DM token
-// to/from local state on the device. This is needed for Active Directory
-// management because AD devices lacks DM token in the policies.
-//
-// Note that requests must be made from the UI thread because SystemSaltGetter
-// calls CryptohomeMiscClient which must be called from the UI thread.
-class DMTokenStorage : public DMTokenStorageBase {
- public:
- explicit DMTokenStorage(PrefService* local_state);
- ~DMTokenStorage() override;
-
- static void RegisterPrefs(PrefRegistrySimple* registry);
-
- // Persists |dm_token| on the device. Overwrites any previous value. Signals
- // completion via |callback|, passing true if the operation succeeded. Fails
- // if another operation is running (store or retrieve).
- void StoreDMToken(const std::string& dm_token,
- StoreCallback callback) override;
-
- // Loads DM token from the local state and decrypts it. Fires callback on
- // completion. Empty |dm_token| means error. Calls |callback| with empty token
- // if store operation is running.
- void RetrieveDMToken(RetrieveCallback callback) override;
-
- private:
- enum class SaltState {
- // Pending system salt.
- LOADING,
- // Failed to load system salt.
- ERROR,
- // System salt is loaded.
- LOADED,
- };
-
- // Callback for SystemSaltRetrieveter.
- void OnSystemSaltReceived(const std::string& system_salt);
-
- // Encrypts DM token using system salt and stores it into the local state.
- void EncryptAndStoreToken();
-
- // Callback waiting for DM token to be encrypted.
- void OnTokenEncrypted(const std::string& encrypted_dm_token);
-
- // Loads encrypted DM token from the local state and decrypts it using system
- // salt.
- void LoadAndDecryptToken();
-
- // Fires StoreCallback (if exists) with the status.
- void FlushStoreTokenCallback(bool status);
-
- // Fires RetrieveCallbacks (if exists) with |dm_token|.
- void FlushRetrieveTokenCallback(const std::string& dm_token);
-
- raw_ptr<PrefService> local_state_;
- SaltState state_ = SaltState::LOADING;
- std::string system_salt_;
- // Stored |dm_token| while waiting for system salt.
- std::string dm_token_;
- StoreCallback store_callback_;
- std::vector<RetrieveCallback> retrieve_callbacks_;
- base::WeakPtrFactory<DMTokenStorage> weak_ptr_factory_{this};
-};
-
-} // namespace policy
-
-#endif // CHROME_BROWSER_ASH_POLICY_CORE_DM_TOKEN_STORAGE_H_
diff --git a/chrome/browser/ash/policy/core/dm_token_storage_unittest.cc b/chrome/browser/ash/policy/core/dm_token_storage_unittest.cc
deleted file mode 100644
index bf4a6675..0000000
--- a/chrome/browser/ash/policy/core/dm_token_storage_unittest.cc
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ash/policy/core/dm_token_storage.h"
-
-#include <memory>
-
-#include "base/functional/bind.h"
-#include "base/functional/callback.h"
-#include "base/run_loop.h"
-#include "base/test/test_future.h"
-#include "chrome/browser/ash/settings/token_encryptor.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/scoped_testing_local_state.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chromeos/ash/components/cryptohome/system_salt_getter.h"
-#include "chromeos/ash/components/dbus/userdataauth/fake_cryptohome_misc_client.h"
-#include "content/public/test/browser_task_environment.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-
-namespace policy {
-namespace {
-
-using ::ash::FakeCryptohomeMiscClient;
-using ::base::test::TestFuture;
-
-} // namespace
-
-class DMTokenStorageTest : public testing::Test {
- public:
- DMTokenStorageTest()
- : scoped_testing_local_state_(TestingBrowserProcess::GetGlobal()) {}
- ~DMTokenStorageTest() override {}
-
- std::string GetStubSaltAsString() {
- std::vector<uint8_t> bytes = FakeCryptohomeMiscClient::GetStubSystemSalt();
- return std::string(bytes.begin(), bytes.end());
- }
-
- void SetSaltPending() {
- // Clear the cached salt.
- ash::SystemSaltGetter::Shutdown();
- FakeCryptohomeMiscClient::Get()->set_system_salt(std::vector<uint8_t>());
- FakeCryptohomeMiscClient::Get()->SetServiceIsAvailable(false);
- ash::SystemSaltGetter::Initialize();
- }
-
- void SetSaltAvailable() {
- FakeCryptohomeMiscClient::Get()->set_system_salt(
- FakeCryptohomeMiscClient::GetStubSystemSalt());
- FakeCryptohomeMiscClient::Get()->SetServiceIsAvailable(true);
- }
-
- void SetSaltError() {
- FakeCryptohomeMiscClient::Get()->set_system_salt(std::vector<uint8_t>());
- FakeCryptohomeMiscClient::Get()->SetServiceIsAvailable(true);
- }
-
- void SetUp() override {
- ash::CryptohomeMiscClient::InitializeFake();
- SetSaltAvailable();
-
- ash::SystemSaltGetter::Initialize();
- }
-
- void TearDown() override {
- dm_token_storage_.reset();
- ash::SystemSaltGetter::Shutdown();
- ash::CryptohomeMiscClient::Shutdown();
- base::RunLoop().RunUntilIdle();
- }
-
- void CreateDMStorage() {
- dm_token_storage_ =
- std::make_unique<DMTokenStorage>(scoped_testing_local_state_.Get());
- }
-
- void StoreDMToken() {
- TestFuture<bool> store_result_future;
- dm_token_storage_->StoreDMToken("test-token",
- store_result_future.GetCallback());
- EXPECT_TRUE(store_result_future.Get());
- EXPECT_TRUE(scoped_testing_local_state_.Get()
- ->GetString(prefs::kDeviceDMTokenV1)
- .empty());
- EXPECT_FALSE(scoped_testing_local_state_.Get()
- ->GetString(prefs::kDeviceDMTokenV2)
- .empty());
- }
-
- void StoreV1Token(const std::string& token) {
- ash::CryptohomeTokenEncryptor encryptor(GetStubSaltAsString());
- scoped_testing_local_state_.Get()->SetString(
- prefs::kDeviceDMTokenV1, encryptor.WeakEncryptWithSystemSalt(token));
- }
-
- void StoreV2Token(const std::string& token) {
- ash::CryptohomeTokenEncryptor encryptor(GetStubSaltAsString());
- scoped_testing_local_state_.Get()->SetString(
- prefs::kDeviceDMTokenV2, encryptor.EncryptWithSystemSalt(token));
- }
-
- content::BrowserTaskEnvironment task_environment_;
- ScopedTestingLocalState scoped_testing_local_state_;
- std::unique_ptr<DMTokenStorage> dm_token_storage_;
-};
-
-TEST_F(DMTokenStorageTest, SaveEncryptedToken) {
- CreateDMStorage();
- StoreDMToken();
-
- TestFuture<std::string> token_future1;
- dm_token_storage_->RetrieveDMToken(
- token_future1.GetCallback<const std::string&>());
- EXPECT_EQ(token_future1.Get(), "test-token");
-
- // Reload shouldn't change the token.
- CreateDMStorage();
- TestFuture<std::string> token_future2;
- dm_token_storage_->RetrieveDMToken(
- token_future2.GetCallback<const std::string&>());
- EXPECT_EQ(token_future2.Get(), "test-token");
-
- // Subsequent retrieving DM token should succeed.
- TestFuture<std::string> token_future3;
- dm_token_storage_->RetrieveDMToken(
- token_future3.GetCallback<const std::string&>());
- EXPECT_EQ(token_future3.Get(), "test-token");
-}
-
-TEST_F(DMTokenStorageTest, RetrieveV1Token) {
- StoreV1Token("test-token");
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- EXPECT_EQ(token_future.Get(), "test-token");
-}
-
-TEST_F(DMTokenStorageTest, RetrieveV2Token) {
- StoreV2Token("test-token");
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- EXPECT_EQ(token_future.Get(), "test-token");
-}
-
-TEST_F(DMTokenStorageTest, RetrievePrefersV2Token) {
- StoreV1Token("test-token-v1");
- StoreV2Token("test-token-v2");
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- EXPECT_EQ(token_future.Get(), "test-token-v2");
-}
-
-TEST_F(DMTokenStorageTest, RetrieveEncryptedTokenWithPendingSalt) {
- CreateDMStorage();
- StoreDMToken();
-
- SetSaltPending();
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- SetSaltAvailable();
- EXPECT_EQ(token_future.Get(), "test-token");
-}
-
-TEST_F(DMTokenStorageTest, StoreEncryptedTokenWithPendingSalt) {
- SetSaltPending();
- CreateDMStorage();
-
- TestFuture<bool> store_result_future;
- dm_token_storage_->StoreDMToken("test-token",
- store_result_future.GetCallback());
- SetSaltAvailable();
- EXPECT_TRUE(store_result_future.Get());
-}
-
-TEST_F(DMTokenStorageTest, MultipleRetrieveTokenCalls) {
- CreateDMStorage();
- StoreDMToken();
-
- std::vector<TestFuture<std::string>> token_futures(3);
- for (TestFuture<std::string>& token_future : token_futures) {
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- }
- for (TestFuture<std::string>& token_future : token_futures) {
- EXPECT_EQ(token_future.Get(), "test-token");
- }
-}
-
-TEST_F(DMTokenStorageTest, StoreWithSaltError) {
- SetSaltError();
- CreateDMStorage();
-
- TestFuture<bool> store_result_future;
- dm_token_storage_->StoreDMToken("test-token",
- store_result_future.GetCallback());
- EXPECT_FALSE(store_result_future.Get());
-}
-
-TEST_F(DMTokenStorageTest, RetrieveWithSaltError) {
- CreateDMStorage();
- StoreDMToken();
- SetSaltPending();
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- SetSaltError();
- EXPECT_EQ(token_future.Get(), "");
-}
-
-TEST_F(DMTokenStorageTest, RetrieveWithNoToken) {
- CreateDMStorage();
-
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- EXPECT_EQ(token_future.Get(), "");
-}
-
-TEST_F(DMTokenStorageTest, RetrieveFailIfStoreRunning) {
- SetSaltPending();
- CreateDMStorage();
-
- TestFuture<bool> store_result_future;
- dm_token_storage_->StoreDMToken("test-token",
- store_result_future.GetCallback());
- TestFuture<std::string> token_future;
- dm_token_storage_->RetrieveDMToken(
- token_future.GetCallback<const std::string&>());
- SetSaltAvailable();
- EXPECT_TRUE(store_result_future.Get());
- EXPECT_EQ(token_future.Get(), "");
-}
-
-TEST_F(DMTokenStorageTest, StoreFailIfAnotherStoreRunning) {
- SetSaltPending();
- CreateDMStorage();
-
- TestFuture<bool> first_store_result_future;
- TestFuture<bool> later_store_result_future;
- dm_token_storage_->StoreDMToken("test-token",
- first_store_result_future.GetCallback());
- dm_token_storage_->StoreDMToken("test-token",
- later_store_result_future.GetCallback());
- SetSaltAvailable();
- EXPECT_TRUE(first_store_result_future.Get());
- EXPECT_FALSE(later_store_result_future.Get());
-}
-
-} // namespace policy
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index bcbad496..22cb825 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -405,7 +405,6 @@
#include "chrome/browser/ash/plugin_vm/plugin_vm_pref_names.h"
#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
#include "chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h"
-#include "chrome/browser/ash/policy/core/dm_token_storage.h"
#include "chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
#include "chrome/browser/ash/policy/external_data/handlers/device_wallpaper_image_external_data_handler.h"
@@ -1049,6 +1048,12 @@
constexpr char kSafeBrowsingEsbOptInWithFriendlierSettings[] =
"safebrowsing.esb_opt_in_with_friendlier_settings";
+// Deprecated 08/2024.
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+constexpr char kDeviceDMTokenV1[] = "device_dm_token";
+constexpr char kDeviceDMTokenV2[] = "device_dm_token_v2";
+#endif
+
// Register local state used only for migration (clearing or moving to a new
// key).
void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
@@ -1131,6 +1136,12 @@
// Deprecated 07/2024.
registry->RegisterStringPref(kFirstRunStudyGroup, std::string());
#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ // Deprecated 08/2024.
+ registry->RegisterStringPref(kDeviceDMTokenV1, std::string());
+ registry->RegisterStringPref(kDeviceDMTokenV2, std::string());
+#endif
}
// Register prefs used only for migration (clearing or moving to a new key).
@@ -1678,7 +1689,6 @@
registry);
policy::DeviceStatusCollector::RegisterPrefs(registry);
policy::DeviceWallpaperImageExternalDataHandler::RegisterPrefs(registry);
- policy::DMTokenStorage::RegisterPrefs(registry);
policy::EnrollmentRequisitionManager::RegisterPrefs(registry);
policy::EuiccStatusUploader::RegisterLocalStatePrefs(registry);
policy::MinimumVersionPolicyHandler::RegisterPrefs(registry);
@@ -2349,6 +2359,12 @@
local_state->ClearPref(kFirstRunStudyGroup);
#endif
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ // Added 08/2024.
+ local_state->ClearPref(kDeviceDMTokenV1);
+ local_state->ClearPref(kDeviceDMTokenV2);
+#endif
+
// Please don't delete the following line. It is used by PRESUBMIT.py.
// END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 25817a57..4d48d017 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -2958,12 +2958,6 @@
// Whether the user may exit enrollment.
inline constexpr char kDeviceEnrollmentCanExit[] = "enrollment.can_exit";
-// DM token fetched from the DM server during enrollment. Stored for Active
-// Directory devices only. The versions are used to distinguish different token
-// formats.
-inline constexpr char kDeviceDMTokenV1[] = "device_dm_token";
-inline constexpr char kDeviceDMTokenV2[] = "device_dm_token_v2";
-
// A string pref with initial locale set in VPD or manifest.
inline constexpr char kInitialLocale[] = "intl.initial_locale";