Skip to content

Commit a4ad957

Browse files
Merge pull request #14176 from brave/brave-ads-base-value-refactor
Migrate brave ads from rapidjson to base::Value
2 parents ca19446 + ee39677 commit a4ad957

File tree

106 files changed

+2092
-2994
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+2092
-2994
lines changed

browser/ui/webui/brave_rewards_page_ui.cc

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,8 @@ void RewardsDOMHandler::ToggleAdThumbUp(const base::Value::List& args) {
13001300

13011301
ads::AdContentInfo ad_content;
13021302
const base::Value& value = args[0];
1303-
ad_content.FromValue(value);
1303+
if (value.is_dict())
1304+
ad_content.FromValue(value.GetDict());
13041305

13051306
ads_service_->ToggleAdThumbUp(
13061307
ad_content.ToJson(), base::BindOnce(&RewardsDOMHandler::OnToggleAdThumbUp,
@@ -1316,8 +1317,8 @@ void RewardsDOMHandler::OnToggleAdThumbUp(const std::string& json) {
13161317
const bool success = ad_content.FromJson(json);
13171318
DCHECK(success);
13181319

1319-
const base::Value value = ad_content.ToValue();
1320-
CallJavascriptFunction("brave_rewards.onToggleAdThumbUp", value);
1320+
CallJavascriptFunction("brave_rewards.onToggleAdThumbUp",
1321+
base::Value(ad_content.ToValue()));
13211322
}
13221323

13231324
void RewardsDOMHandler::ToggleAdThumbDown(const base::Value::List& args) {
@@ -1331,7 +1332,8 @@ void RewardsDOMHandler::ToggleAdThumbDown(const base::Value::List& args) {
13311332

13321333
ads::AdContentInfo ad_content;
13331334
const base::Value& value = args[0];
1334-
ad_content.FromValue(value);
1335+
if (value.is_dict())
1336+
ad_content.FromValue(value.GetDict());
13351337

13361338
ads_service_->ToggleAdThumbDown(
13371339
ad_content.ToJson(),
@@ -1348,8 +1350,8 @@ void RewardsDOMHandler::OnToggleAdThumbDown(const std::string& json) {
13481350
const bool success = ad_content.FromJson(json);
13491351
DCHECK(success);
13501352

1351-
const base::Value value = ad_content.ToValue();
1352-
CallJavascriptFunction("brave_rewards.onToggleAdThumbDown", value);
1353+
CallJavascriptFunction("brave_rewards.onToggleAdThumbDown",
1354+
base::Value(ad_content.ToValue()));
13531355
}
13541356

13551357
void RewardsDOMHandler::ToggleAdOptIn(const base::Value::List& args) {
@@ -1421,7 +1423,8 @@ void RewardsDOMHandler::ToggleSavedAd(const base::Value::List& args) {
14211423

14221424
ads::AdContentInfo ad_content;
14231425
const base::Value& value = args[0];
1424-
ad_content.FromValue(value);
1426+
if (value.is_dict())
1427+
ad_content.FromValue(value.GetDict());
14251428

14261429
ads_service_->ToggleSavedAd(
14271430
ad_content.ToJson(), base::BindOnce(&RewardsDOMHandler::OnToggleSavedAd,
@@ -1437,8 +1440,8 @@ void RewardsDOMHandler::OnToggleSavedAd(const std::string& json) {
14371440
const bool success = ad_content.FromJson(json);
14381441
DCHECK(success);
14391442

1440-
const base::Value value = ad_content.ToValue();
1441-
CallJavascriptFunction("brave_rewards.onToggleSavedAd", value);
1443+
CallJavascriptFunction("brave_rewards.onToggleSavedAd",
1444+
base::Value(ad_content.ToValue()));
14421445
}
14431446

14441447
void RewardsDOMHandler::ToggleFlaggedAd(const base::Value::List& args) {
@@ -1452,7 +1455,8 @@ void RewardsDOMHandler::ToggleFlaggedAd(const base::Value::List& args) {
14521455

14531456
ads::AdContentInfo ad_content;
14541457
const base::Value& value = args[0];
1455-
ad_content.FromValue(value);
1458+
if (value.is_dict())
1459+
ad_content.FromValue(value.GetDict());
14561460

14571461
ads_service_->ToggleFlaggedAd(
14581462
ad_content.ToJson(), base::BindOnce(&RewardsDOMHandler::OnToggleFlaggedAd,
@@ -1468,8 +1472,8 @@ void RewardsDOMHandler::OnToggleFlaggedAd(const std::string& json) {
14681472
const bool success = ad_content.FromJson(json);
14691473
DCHECK(success);
14701474

1471-
const base::Value value = ad_content.ToValue();
1472-
CallJavascriptFunction("brave_rewards.onToggleFlaggedAd", value);
1475+
CallJavascriptFunction("brave_rewards.onToggleFlaggedAd",
1476+
base::Value(ad_content.ToValue()));
14731477
}
14741478

14751479
void RewardsDOMHandler::SaveAdsSetting(const base::Value::List& args) {

components/brave_ads/browser/ads_service.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ void AdsService::RegisterProfilePrefs(
7474
base::Time::Now());
7575

7676
registry->RegisterBooleanPref(ads::prefs::kHasMigratedClientState, false);
77+
registry->RegisterBooleanPref(ads::prefs::kHasMigratedConfirmationState,
78+
false);
7779
registry->RegisterBooleanPref(ads::prefs::kHasMigratedConversionState, false);
7880
registry->RegisterBooleanPref(ads::prefs::kHasMigratedRewardsState, false);
7981

components/brave_ads/browser/ads_service_callback.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,9 @@
99
#include <string>
1010

1111
#include "base/callback.h"
12+
#include "base/values.h"
1213
#include "brave/vendor/bat-native-ads/include/bat/ads/public/interfaces/ads.mojom.h"
1314

14-
namespace base {
15-
class DictionaryValue;
16-
class ListValue;
17-
} // namespace base
18-
1915
namespace ads {
2016
struct NewTabPageAdInfo;
2117
} // namespace ads
@@ -29,7 +25,7 @@ using GetStatementOfAccountsCallback = base::OnceCallback<
2925
void(const bool, const double, const int, const double, const double)>;
3026

3127
using MaybeServeInlineContentAdCallback = base::OnceCallback<
32-
void(const bool, const std::string&, const base::DictionaryValue&)>;
28+
void(const bool, const std::string&, const base::Value::Dict&)>;
3329

3430
using TriggerSearchResultAdEventCallback =
3531
base::OnceCallback<void(const bool,

components/brave_ads/browser/ads_service_impl.cc

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,7 +1289,7 @@ void AdsServiceImpl::MaybeServeInlineContentAd(
12891289
const std::string& dimensions,
12901290
MaybeServeInlineContentAdCallback callback) {
12911291
if (!IsBatAdsBound()) {
1292-
std::move(callback).Run(false, "", base::DictionaryValue());
1292+
std::move(callback).Run(false, "", base::Value::Dict());
12931293
return;
12941294
}
12951295

@@ -2017,16 +2017,15 @@ void AdsServiceImpl::OnMaybeServeInlineContentAd(
20172017
const bool success,
20182018
const std::string& dimensions,
20192019
const std::string& json) {
2020-
base::DictionaryValue dictionary;
2020+
base::Value::Dict dict;
20212021

20222022
if (success) {
20232023
ads::InlineContentAdInfo ad;
20242024
ad.FromJson(json);
2025-
2026-
dictionary = ad.ToValue();
2025+
dict = ad.ToValue();
20272026
}
20282027

2029-
std::move(callback).Run(success, dimensions, dictionary);
2028+
std::move(callback).Run(success, dimensions, dict);
20302029
}
20312030

20322031
void AdsServiceImpl::OnTriggerSearchResultAdEvent(
@@ -2056,24 +2055,19 @@ void AdsServiceImpl::OnGetHistory(GetHistoryCallback callback,
20562055
base::ListValue list;
20572056

20582057
for (const auto& item : history.items) {
2059-
base::DictionaryValue history_item_dictionary;
2060-
base::DictionaryValue ad_content_dictionary = item.ad_content.ToValue();
2061-
history_item_dictionary.SetPath("adContent",
2062-
std::move(ad_content_dictionary));
2063-
base::DictionaryValue category_content_dictionary =
2064-
item.category_content.ToValue();
2065-
history_item_dictionary.SetPath("categoryContent",
2066-
std::move(category_content_dictionary));
2067-
base::ListValue history_item_list;
2068-
history_item_list.Append(std::move(history_item_dictionary));
2069-
2070-
base::DictionaryValue dictionary;
2071-
dictionary.SetStringKey("uuid", base::NumberToString(uuid++));
2058+
base::Value::Dict history_item_dict;
2059+
history_item_dict.Set("adContent", item.ad_content.ToValue());
2060+
history_item_dict.Set("categoryContent", item.category_content.ToValue());
2061+
base::Value::List history_item_list;
2062+
history_item_list.Append(std::move(history_item_dict));
2063+
2064+
base::Value::Dict dict;
2065+
dict.Set("uuid", base::NumberToString(uuid++));
20722066
const double js_time = item.created_at.ToJsTimeIgnoringNull();
2073-
dictionary.SetDoubleKey("timestampInMilliseconds", js_time);
2074-
dictionary.SetPath("adDetailRows", std::move(history_item_list));
2067+
dict.Set("timestampInMilliseconds", js_time);
2068+
dict.Set("adDetailRows", std::move(history_item_list));
20752069

2076-
list.Append(std::move(dictionary));
2070+
list.Append(std::move(dict));
20772071
}
20782072

20792073
std::move(callback).Run(list);

components/brave_ads/test/BUILD.gn

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,10 @@ source_set("brave_ads_unit_tests") {
290290
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/client/legacy_client_migration_unittest_util.cc",
291291
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/client/legacy_client_migration_unittest_util.h",
292292
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/client/legacy_client_migration_util_unittest.cc",
293+
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_unittest.cc",
294+
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_unittest_util.cc",
295+
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_unittest_util.h",
296+
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_util_unittest.cc",
293297
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_issue_17231_unittest.cc",
294298
"//brave/vendor/bat-native-ads/src/bat/ads/internal/legacy_migration/database/database_migration_unittest.cc",
295299
"//brave/vendor/bat-native-ads/src/bat/ads/internal/locale/locale_manager_unittest.cc",

components/brave_sync/qr_code_data.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ std::unique_ptr<QrCodeData> QrCodeData::FromJson(
8080
return nullptr;
8181
}
8282

83-
const std::string* version_value = value->FindStringKey("version");
83+
const auto& root = value->GetDict();
84+
const std::string* version_value = root.FindString("version");
8485
if (!version_value) {
8586
VLOG(1) << "Missing version";
8687
return nullptr;
@@ -93,15 +94,14 @@ std::unique_ptr<QrCodeData> QrCodeData::FromJson(
9394
}
9495
qr_data->version = version;
9596

96-
const std::string* sync_code_hex_value =
97-
value->FindStringKey("sync_code_hex");
97+
const std::string* sync_code_hex_value = root.FindString("sync_code_hex");
9898
if (!sync_code_hex_value) {
9999
VLOG(1) << "Missing sync code hex";
100100
return nullptr;
101101
}
102102
qr_data->sync_code_hex = *sync_code_hex_value;
103103

104-
const std::string* not_after_string = value->FindStringKey("not_after");
104+
const std::string* not_after_string = root.FindString("not_after");
105105
if (!not_after_string) {
106106
VLOG(1) << "Missing not after time";
107107
return nullptr;

components/brave_today/browser/brave_news_controller.cc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ void BraveNewsController::GetDisplayAd(GetDisplayAdCallback callback) {
323323
}
324324
auto on_ad_received = base::BindOnce(
325325
[](GetDisplayAdCallback callback, const bool success,
326-
const std::string& dimensions, const base::DictionaryValue& ad_data) {
326+
const std::string& dimensions, const base::Value::Dict& ad_data) {
327327
if (!success) {
328328
VLOG(1) << "GetDisplayAd: no ad";
329329
std::move(callback).Run(nullptr);
@@ -334,16 +334,16 @@ void BraveNewsController::GetDisplayAd(GetDisplayAdCallback callback) {
334334
// TODO(petemill): brave_ads seems to use mojom, perhaps we can receive
335335
// and send to callback the actual typed mojom struct from brave_ads?
336336
auto ad = mojom::DisplayAd::New();
337-
ad->uuid = *ad_data.FindStringKey("uuid");
338-
ad->creative_instance_id = *ad_data.FindStringKey("creativeInstanceId");
339-
if (ad_data.HasKey("ctaText"))
340-
ad->cta_text = *ad_data.FindStringKey("ctaText");
341-
ad->dimensions = *ad_data.FindStringKey("dimensions");
342-
ad->title = *ad_data.FindStringKey("title");
343-
ad->description = *ad_data.FindStringKey("description");
337+
ad->uuid = *ad_data.FindString("uuid");
338+
ad->creative_instance_id = *ad_data.FindString("creativeInstanceId");
339+
if (const auto* value = ad_data.FindString("ctaText"))
340+
ad->cta_text = *value;
341+
ad->dimensions = *ad_data.FindString("dimensions");
342+
ad->title = *ad_data.FindString("title");
343+
ad->description = *ad_data.FindString("description");
344344
ad->image = mojom::Image::NewPaddedImageUrl(
345-
GURL(*ad_data.FindStringKey("imageUrl")));
346-
ad->target_url = GURL(*ad_data.FindStringKey("targetUrl"));
345+
GURL(*ad_data.FindString("imageUrl")));
346+
ad->target_url = GURL(*ad_data.FindString("targetUrl"));
347347
std::move(callback).Run(std::move(ad));
348348
},
349349
std::move(callback));

vendor/bat-native-ads/BUILD.gn

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -838,6 +838,10 @@ source_set("ads") {
838838
"src/bat/ads/internal/legacy_migration/client/legacy_client_migration.h",
839839
"src/bat/ads/internal/legacy_migration/client/legacy_client_migration_util.cc",
840840
"src/bat/ads/internal/legacy_migration/client/legacy_client_migration_util.h",
841+
"src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration.cc",
842+
"src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration.h",
843+
"src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_util.cc",
844+
"src/bat/ads/internal/legacy_migration/confirmations/legacy_confirmation_migration_util.h",
841845
"src/bat/ads/internal/legacy_migration/conversions/legacy_conversions_migration.cc",
842846
"src/bat/ads/internal/legacy_migration/conversions/legacy_conversions_migration.h",
843847
"src/bat/ads/internal/legacy_migration/database/database_constants.h",

vendor/bat-native-ads/include/bat/ads/ad_content_info.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,13 @@
88

99
#include <string>
1010

11+
#include "base/values.h"
1112
#include "bat/ads/ad_content_action_types.h"
1213
#include "bat/ads/ad_type.h"
1314
#include "bat/ads/confirmation_type.h"
1415
#include "bat/ads/export.h"
1516
#include "url/gurl.h"
1617

17-
namespace base {
18-
class DictionaryValue;
19-
class Value;
20-
} // namespace base
21-
2218
namespace ads {
2319

2420
struct ADS_EXPORT AdContentInfo final {
@@ -33,8 +29,8 @@ struct ADS_EXPORT AdContentInfo final {
3329
AdContentLikeActionType ToggleThumbUpActionType() const;
3430
AdContentLikeActionType ToggleThumbDownActionType() const;
3531

36-
base::DictionaryValue ToValue() const;
37-
bool FromValue(const base::Value& value);
32+
base::Value::Dict ToValue() const;
33+
bool FromValue(const base::Value::Dict& value);
3834

3935
std::string ToJson() const;
4036
bool FromJson(const std::string& json);

vendor/bat-native-ads/include/bat/ads/category_content_info.h

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,10 @@
88

99
#include <string>
1010

11+
#include "base/values.h"
1112
#include "bat/ads/category_content_action_types.h"
1213
#include "bat/ads/export.h"
1314

14-
namespace base {
15-
class DictionaryValue;
16-
class Value;
17-
} // namespace base
18-
1915
namespace ads {
2016

2117
struct ADS_EXPORT CategoryContentInfo final {
@@ -27,11 +23,8 @@ struct ADS_EXPORT CategoryContentInfo final {
2723
bool operator==(const CategoryContentInfo& rhs) const;
2824
bool operator!=(const CategoryContentInfo& rhs) const;
2925

30-
base::DictionaryValue ToValue() const;
31-
bool FromValue(const base::Value& value);
32-
33-
std::string ToJson() const;
34-
bool FromJson(const std::string& json);
26+
base::Value::Dict ToValue() const;
27+
void FromValue(const base::Value::Dict& value);
3528

3629
std::string category;
3730
CategoryContentOptActionType opt_action_type =

vendor/bat-native-ads/include/bat/ads/history_info.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <string>
1010
#include <vector>
1111

12+
#include "base/values.h"
1213
#include "bat/ads/export.h"
1314
#include "bat/ads/history_item_info.h"
1415

@@ -20,6 +21,9 @@ struct ADS_EXPORT HistoryInfo final {
2021
HistoryInfo& operator=(const HistoryInfo& info);
2122
~HistoryInfo();
2223

24+
base::Value::Dict ToValue() const;
25+
bool FromValue(const base::Value::Dict& value);
26+
2327
std::string ToJson() const;
2428
bool FromJson(const std::string& json);
2529

vendor/bat-native-ads/include/bat/ads/history_item_info.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ struct ADS_EXPORT HistoryItemInfo final {
2525
bool operator==(const HistoryItemInfo& rhs) const;
2626
bool operator!=(const HistoryItemInfo& rhs) const;
2727

28-
std::string ToJson() const;
29-
bool FromJson(const std::string& json);
28+
base::Value::Dict ToValue() const;
29+
bool FromValue(const base::Value::Dict& value);
3030

3131
base::Time created_at;
3232
AdContentInfo ad_content;

vendor/bat-native-ads/include/bat/ads/inline_content_ad_info.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,11 @@
88

99
#include <string>
1010

11+
#include "base/values.h"
1112
#include "bat/ads/ad_info.h"
1213
#include "bat/ads/export.h"
1314
#include "url/gurl.h"
1415

15-
namespace base {
16-
class DictionaryValue;
17-
class Value;
18-
} // namespace base
19-
2016
namespace ads {
2117

2218
struct ADS_EXPORT InlineContentAdInfo final : AdInfo {
@@ -30,8 +26,8 @@ struct ADS_EXPORT InlineContentAdInfo final : AdInfo {
3026

3127
bool IsValid() const;
3228

33-
base::DictionaryValue ToValue() const;
34-
bool FromValue(const base::Value& value);
29+
base::Value::Dict ToValue() const;
30+
bool FromValue(const base::Value::Dict& value);
3531

3632
std::string ToJson() const;
3733
bool FromJson(const std::string& json);

0 commit comments

Comments
 (0)