Migrate chrome/browser/media to new pref update classes.
ListPrefUpdate and DictPrefUpdate are now deprecated, in favor of
ScopedListPrefUpdate and ScopedDictPrefUpdate, which only expose
Value::List and Value::Dict, respectively, to discourage use of other
APIs to manipulate lists and dicts, which are all deprecated.
Bug: 1362719
Change-Id: I968bd5146cd2fae3a8d845665610fa9eebe83758
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3904932
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1049903}
diff --git a/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc b/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
index 2acdce7..5bca6de 100644
--- a/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
+++ b/chrome/browser/media/android/cdm/media_drm_origin_id_manager.cc
@@ -79,10 +79,9 @@
if (media::MediaDrmBridge::IsPerApplicationProvisioningSupported())
return;
- DictionaryPrefUpdate update(pref_service, kMediaDrmOriginIds);
- auto& origin_id_dict = update->GetDict();
- origin_id_dict.Set(kExpirableToken,
- base::TimeToValue(base::Time::Now() + kExpirationDelta));
+ ScopedDictPrefUpdate update(pref_service, kMediaDrmOriginIds);
+ update->Set(kExpirableToken,
+ base::TimeToValue(base::Time::Now() + kExpirationDelta));
}
void RemoveExpirableToken(base::Value::Dict& origin_id_dict) {
@@ -140,10 +139,9 @@
base::UnguessableToken TakeFirstOriginId(PrefService* const pref_service) {
DVLOG(3) << __func__;
- DictionaryPrefUpdate update(pref_service, kMediaDrmOriginIds);
- base::Value::Dict& origin_id_dict = update->GetDict();
+ ScopedDictPrefUpdate update(pref_service, kMediaDrmOriginIds);
- base::Value::List* origin_ids = origin_id_dict.FindList(kOriginIds);
+ base::Value::List* origin_ids = update->FindList(kOriginIds);
if (!origin_ids)
return base::UnguessableToken::Null();
@@ -365,8 +363,8 @@
// On devices that need to, check that the user has recently requested
// an origin ID. If not, then skip pre-provisioning on those devices.
- DictionaryPrefUpdate update(pref_service_, kMediaDrmOriginIds);
- if (!CanPreProvision(update->GetDict())) {
+ ScopedDictPrefUpdate update(pref_service_, kMediaDrmOriginIds);
+ if (!CanPreProvision(*update)) {
// Disable any network monitoring, if it exists.
network_observer_.reset();
return;
@@ -374,8 +372,7 @@
// No need to pre-provision if there are already enough existing
// pre-provisioned origin IDs.
- if (CountAvailableOriginIds(update->GetDict()) >=
- kMaxPreProvisionedOriginIds) {
+ if (CountAvailableOriginIds(*update) >= kMaxPreProvisionedOriginIds) {
// Disable any network monitoring, if it exists.
network_observer_.reset();
return;
@@ -494,15 +491,14 @@
origin_id);
pending_provisioned_origin_id_cbs_.pop();
} else {
- DictionaryPrefUpdate update(pref_service_, kMediaDrmOriginIds);
- AddOriginId(update->GetDict(), origin_id.value());
+ ScopedDictPrefUpdate update(pref_service_, kMediaDrmOriginIds);
+ AddOriginId(*update, origin_id.value());
// If we already have enough pre-provisioned origin IDs, we're done.
// Stop watching for network change events.
- if (CountAvailableOriginIds(update->GetDict()) >=
- kMaxPreProvisionedOriginIds) {
+ if (CountAvailableOriginIds(*update) >= kMaxPreProvisionedOriginIds) {
network_observer_.reset();
- RemoveExpirableToken(update->GetDict());
+ RemoveExpirableToken(*update);
is_provisioning_ = false;
return;
}
diff --git a/chrome/browser/media/cdm_document_service_impl_test.cc b/chrome/browser/media/cdm_document_service_impl_test.cc
index fa72a8d..bed4242 100644
--- a/chrome/browser/media/cdm_document_service_impl_test.cc
+++ b/chrome/browser/media/cdm_document_service_impl_test.cc
@@ -115,13 +115,13 @@
entry.SetKey(kOriginId, base::UnguessableTokenToValue(
base::UnguessableToken::Create()));
- DictionaryPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
- base::Value* dict = update.Get();
+ ScopedDictPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
+ base::Value::Dict& dict = update.Get();
const std::string serialized_origin = web_contents()
->GetPrimaryMainFrame()
->GetLastCommittedOrigin()
.Serialize();
- dict->SetKey(serialized_origin, std::move(entry));
+ dict.Set(serialized_origin, std::move(entry));
}
protected:
diff --git a/chrome/browser/media/cdm_pref_service_helper.cc b/chrome/browser/media/cdm_pref_service_helper.cc
index f3a080a..a8bdaf3 100644
--- a/chrome/browser/media/cdm_pref_service_helper.cc
+++ b/chrome/browser/media/cdm_pref_service_helper.cc
@@ -174,10 +174,10 @@
const base::RepeatingCallback<bool(const GURL&)>& filter) {
DVLOG(1) << __func__ << " From [" << start << ", " << end << "]";
- DictionaryPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
+ ScopedDictPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
std::vector<std::string> origins_to_delete;
- for (auto key_value : update->DictItems()) {
+ for (auto key_value : *update) {
const std::string& origin = key_value.first;
// Null filter indicates that we should delete everything.
@@ -211,7 +211,7 @@
// Remove CDM preference data.
for (const auto& origin_str : origins_to_delete)
- update->RemoveKey(origin_str);
+ update->Remove(origin_str);
DVLOG(1) << __func__ << "Done removing CDM preference data";
}
@@ -244,12 +244,11 @@
// Create an new entry or overwrite the existing one in case we weren't able
// to get a valid origin ID from `FromDictValue()`.
if (!cdm_pref_data) {
- DictionaryPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
- base::Value* update_dict = update.Get();
+ ScopedDictPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
cdm_pref_data = std::make_unique<CdmPrefData>(
base::UnguessableToken::Create(), base::Time::Now());
- update_dict->SetKey(serialized_cdm_origin, ToDictValue(*cdm_pref_data));
+ update->Set(serialized_cdm_origin, ToDictValue(*cdm_pref_data));
}
return cdm_pref_data;
@@ -268,8 +267,8 @@
const std::string serialized_cdm_origin = cdm_origin.Serialize();
DCHECK(!serialized_cdm_origin.empty());
- DictionaryPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
- base::Value::Dict& dict = update->GetDict();
+ ScopedDictPrefUpdate update(user_prefs, prefs::kMediaCdmOriginData);
+ base::Value::Dict& dict = update.Get();
base::Value::Dict* dict_value = dict.FindDict(serialized_cdm_origin);
if (!dict_value) {
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc b/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
index c9763f7..84f48fda 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl_unittest.cc
@@ -67,9 +67,9 @@
// Set the user preference for |origin| to prefer tab mirroring.
void EnableTabMirroringForOrigin(PrefService* prefs,
const std::string& origin) {
- ListPrefUpdate update(prefs,
- media_router::prefs::kMediaRouterTabMirroringSources);
- base::Value::List& list = update->GetList();
+ ScopedListPrefUpdate update(
+ prefs, media_router::prefs::kMediaRouterTabMirroringSources);
+ base::Value::List& list = update.Get();
if (!base::Contains(list, base::Value(origin)))
list.Append(origin);
}
@@ -798,9 +798,9 @@
// Remove the user preference for |origin|.
{
- ListPrefUpdate update(profile()->GetPrefs(),
- prefs::kMediaRouterTabMirroringSources);
- update->GetList().EraseValue(base::Value(origin));
+ ScopedListPrefUpdate update(profile()->GetPrefs(),
+ prefs::kMediaRouterTabMirroringSources);
+ update->EraseValue(base::Value(origin));
}
// Auto-join requests should now go through.
@@ -854,10 +854,10 @@
// Remove the user preference for |origin| in OffTheRecord.
{
- ListPrefUpdate update(
+ ScopedListPrefUpdate update(
profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true)->GetPrefs(),
prefs::kMediaRouterTabMirroringSources);
- update->GetList().EraseValue(base::Value(origin));
+ update->EraseValue(base::Value(origin));
}
// Auto-join requests should now go through.