Skip to content

Commit 6c98da0

Browse files
committed
Set brave wallet string state synchronously.
fix brave/brave-browser#21809
1 parent f8111ff commit 6c98da0

File tree

15 files changed

+56
-8
lines changed

15 files changed

+56
-8
lines changed

components/brave_rewards/browser/rewards_service_impl.cc

+5
Original file line numberDiff line numberDiff line change
@@ -1509,6 +1509,11 @@ double RewardsServiceImpl::GetDoubleState(const std::string& name) const {
15091509
return profile_->GetPrefs()->GetDouble(GetPrefPath(name));
15101510
}
15111511

1512+
void RewardsServiceImpl::SetStringStateSync(const std::string& name,
1513+
const std::string& value) {
1514+
profile_->GetPrefs()->SetString(GetPrefPath(name), value);
1515+
}
1516+
15121517
void RewardsServiceImpl::SetStringState(const std::string& name,
15131518
const std::string& value) {
15141519
profile_->GetPrefs()->SetString(GetPrefPath(name), value);

components/brave_rewards/browser/rewards_service_impl.h

+2
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,8 @@ class RewardsServiceImpl : public RewardsService,
628628
int GetIntegerState(const std::string& name) const override;
629629
void SetDoubleState(const std::string& name, double value) override;
630630
double GetDoubleState(const std::string& name) const override;
631+
void SetStringStateSync(const std::string& name,
632+
const std::string& value) override;
631633
void SetStringState(const std::string& name,
632634
const std::string& value) override;
633635
std::string GetStringState(const std::string& name) const override;

components/services/bat_ledger/bat_ledger_client_mojo_bridge.cc

+6-1
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,13 @@ double BatLedgerClientMojoBridge::GetDoubleState(
182182
return value;
183183
}
184184

185+
void BatLedgerClientMojoBridge::SetStringStateSync(const std::string& name,
186+
const std::string& value) {
187+
bat_ledger_client_->SetStringStateSync(name, value);
188+
}
189+
185190
void BatLedgerClientMojoBridge::SetStringState(const std::string& name,
186-
const std::string& value) {
191+
const std::string& value) {
187192
bat_ledger_client_->SetStringState(name, value);
188193
}
189194

components/services/bat_ledger/bat_ledger_client_mojo_bridge.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ class BatLedgerClientMojoBridge :
6464
int GetIntegerState(const std::string& name) const override;
6565
void SetDoubleState(const std::string& name, double value) override;
6666
double GetDoubleState(const std::string& name) const override;
67+
void SetStringStateSync(const std::string& name,
68+
const std::string& value) override;
6769
void SetStringState(const std::string& name,
68-
const std::string& value) override;
70+
const std::string& value) override;
6971
std::string GetStringState(const std::string& name) const override;
7072
void SetInt64State(const std::string& name, int64_t value) override;
7173
int64_t GetInt64State(const std::string& name) const override;

components/services/bat_ledger/public/cpp/ledger_client_mojo_bridge.cc

+9-1
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,16 @@ void LedgerClientMojoBridge::GetDoubleState(const std::string& name,
161161
std::move(callback).Run(ledger_client_->GetDoubleState(name));
162162
}
163163

164+
void LedgerClientMojoBridge::SetStringStateSync(
165+
const std::string& name,
166+
const std::string& value,
167+
SetStringStateSyncCallback callback) {
168+
ledger_client_->SetStringStateSync(name, value);
169+
std::move(callback).Run();
170+
}
171+
164172
void LedgerClientMojoBridge::SetStringState(const std::string& name,
165-
const std::string& value) {
173+
const std::string& value) {
166174
ledger_client_->SetStringState(name, value);
167175
}
168176

components/services/bat_ledger/public/cpp/ledger_client_mojo_bridge.h

+3
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ class LedgerClientMojoBridge :
6363
void SetDoubleState(const std::string& name, double value) override;
6464
void GetDoubleState(const std::string& name,
6565
GetDoubleStateCallback callback) override;
66+
void SetStringStateSync(const std::string& name,
67+
const std::string& value,
68+
SetStringStateSyncCallback callback) override;
6669
void SetStringState(const std::string& name,
6770
const std::string& value) override;
6871
void GetStringState(const std::string& name,

components/services/bat_ledger/public/interfaces/bat_ledger.mojom

+2
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ interface BatLedgerClient {
193193
SetDoubleState(string name, double value);
194194
[Sync]
195195
GetStringState(string name) => (string value);
196+
[Sync]
197+
SetStringStateSync(string name, string value) => ();
196198
SetStringState(string name, string value);
197199
[Sync]
198200
GetInt64State(string name) => (int64 value);

ios/browser/api/ledger/ledger_client_ios.h

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ class LedgerClientIOS : public ledger::LedgerClient {
5050
int GetIntegerState(const std::string& name) const override;
5151
void SetDoubleState(const std::string& name, double value) override;
5252
double GetDoubleState(const std::string& name) const override;
53+
void SetStringStateSync(const std::string& name,
54+
const std::string& value) override;
5355
void SetStringState(const std::string& name,
5456
const std::string& value) override;
5557
std::string GetStringState(const std::string& name) const override;

ios/browser/api/ledger/ledger_client_ios.mm

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@
8585
double LedgerClientIOS::GetDoubleState(const std::string& name) const {
8686
return [bridge_ getDoubleState:name];
8787
}
88+
void LedgerClientIOS::SetStringStateSync(const std::string& name,
89+
const std::string& value) {
90+
[bridge_ setStringStateSync:name value:value];
91+
}
8892
void LedgerClientIOS::SetStringState(const std::string& name,
8993
const std::string& value) {
9094
[bridge_ setStringState:name value:value];

vendor/bat-native-ledger/include/bat/ledger/ledger_client.h

+3
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ class LEDGER_EXPORT LedgerClient {
9393

9494
virtual double GetDoubleState(const std::string& name) const = 0;
9595

96+
virtual void SetStringStateSync(const std::string& name,
97+
const std::string& value) = 0;
98+
9699
virtual void SetStringState(
97100
const std::string& name,
98101
const std::string& value) = 0;

vendor/bat-native-ledger/src/bat/ledger/internal/core/test_ledger_client.cc

+5
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ double TestLedgerClient::GetDoubleState(const std::string& name) const {
169169
return opt ? *opt : 0.0;
170170
}
171171

172+
void TestLedgerClient::SetStringStateSync(const std::string& name,
173+
const std::string& value) {
174+
state_store_.SetStringPath(name, value);
175+
}
176+
172177
void TestLedgerClient::SetStringState(const std::string& name,
173178
const std::string& value) {
174179
state_store_.SetStringPath(name, value);

vendor/bat-native-ledger/src/bat/ledger/internal/core/test_ledger_client.h

+3
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ class TestLedgerClient : public LedgerClient {
9696

9797
double GetDoubleState(const std::string& name) const override;
9898

99+
void SetStringStateSync(const std::string& name,
100+
const std::string& value) override;
101+
99102
void SetStringState(const std::string& name,
100103
const std::string& value) override;
101104

vendor/bat-native-ledger/src/bat/ledger/internal/ledger_client_mock.h

+3
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ class MockLedgerClient : public LedgerClient {
8888
MOCK_CONST_METHOD1(GetDoubleState, double(
8989
const std::string& name));
9090

91+
MOCK_METHOD2(SetStringStateSync,
92+
void(const std::string& name, const std::string& value));
93+
9194
MOCK_METHOD2(SetStringState, void(
9295
const std::string& name,
9396
const std::string& value));

vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,8 @@ bool Wallet::SetWallet(type::BraveWalletPtr wallet) {
317317
std::string json;
318318
base::JSONWriter::Write(new_wallet, &json);
319319

320-
ledger_->ledger_client()->SetStringState(state::kWalletBrave, json);
320+
// Set brave wallet string state synchronously as it will be requested soon.
321+
ledger_->ledger_client()->SetStringStateSync(state::kWalletBrave, json);
321322

322323
ledger_->database()->SaveEventLog(state::kRecoverySeed, event_string);
323324

vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet_unittest.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ TEST_F(WalletTest, GetWallet) {
4848

4949
// When there is no current wallet information, `GetWallet` returns empty and
5050
// sets the corrupted flag to false.
51-
GetTestLedgerClient()->SetStringState(state::kWalletBrave, "");
51+
GetTestLedgerClient()->SetStringStateSync(state::kWalletBrave, "");
5252
corrupted = true;
5353
mojom::BraveWalletPtr wallet = ledger->wallet()->GetWallet(&corrupted);
5454
EXPECT_FALSE(wallet);
5555
EXPECT_FALSE(corrupted);
5656

5757
// When there is invalid wallet information, `GetWallet` returns empty, sets
5858
// the corrupted flag to true, and does not modify prefs.
59-
GetTestLedgerClient()->SetStringState(state::kWalletBrave, "BAD-DATA");
59+
GetTestLedgerClient()->SetStringStateSync(state::kWalletBrave, "BAD-DATA");
6060
wallet = ledger->wallet()->GetWallet(&corrupted);
6161
EXPECT_FALSE(wallet);
6262
EXPECT_TRUE(corrupted);
@@ -68,7 +68,7 @@ TEST_F(WalletTest, CreateWallet) {
6868
auto* ledger = GetLedgerImpl();
6969

7070
// Create a wallet when there is no current wallet information.
71-
GetTestLedgerClient()->SetStringState(state::kWalletBrave, "");
71+
GetTestLedgerClient()->SetStringStateSync(state::kWalletBrave, "");
7272
mojom::Result result = CreateWalletIfNecessary();
7373
EXPECT_EQ(result, mojom::Result::WALLET_CREATED);
7474
mojom::BraveWalletPtr wallet = ledger->wallet()->GetWallet();
@@ -77,7 +77,7 @@ TEST_F(WalletTest, CreateWallet) {
7777
EXPECT_TRUE(!wallet->recovery_seed.empty());
7878

7979
// Create a wallet when there is corrupted wallet information.
80-
GetTestLedgerClient()->SetStringState(state::kWalletBrave, "BAD-DATA");
80+
GetTestLedgerClient()->SetStringStateSync(state::kWalletBrave, "BAD-DATA");
8181
result = CreateWalletIfNecessary();
8282
EXPECT_EQ(result, mojom::Result::WALLET_CREATED);
8383
wallet = ledger->wallet()->GetWallet();

0 commit comments

Comments
 (0)