Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Unified Diff: chrome/browser/budget_service/budget_manager.cc

Issue 2326523003: Connect Mojo budget_service to BudgetManager implementation of Reserve. (Closed)
Patch Set: Fixed issue dependency. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/budget_service/budget_manager.cc
diff --git a/chrome/browser/budget_service/budget_manager.cc b/chrome/browser/budget_service/budget_manager.cc
index c60a17afcba620c6ed505979fdcba36dbfea1d55..24f6d26b26f1ca6b851df189475b1e5c871a67b2 100644
--- a/chrome/browser/budget_service/budget_manager.cc
+++ b/chrome/browser/budget_service/budget_manager.cc
@@ -74,10 +74,9 @@ void BudgetManager::GetBudget(const url::Origin& origin,
void BudgetManager::Reserve(const url::Origin& origin,
blink::mojom::BudgetOperationType type,
const ReserveCallback& callback) {
- db_.SpendBudget(
- origin, GetCost(type),
- base::Bind(&BudgetManager::DidReserve, weak_ptr_factory_.GetWeakPtr(),
- origin, type, callback));
+ db_.SpendBudget(origin, GetCost(type),
+ base::Bind(&BudgetManager::DidReserve,
+ weak_ptr_factory_.GetWeakPtr(), origin, callback));
}
void BudgetManager::Consume(const url::Origin& origin,
@@ -86,12 +85,12 @@ void BudgetManager::Consume(const url::Origin& origin,
bool found_reservation = false;
// First, see if there is a reservation already.
- auto count = reservation_map_.find(origin.host());
+ auto count = reservation_map_.find(origin);
if (count != reservation_map_.end()) {
if (count->second == 1)
- reservation_map_.erase(origin.host());
+ reservation_map_.erase(origin);
else
- reservation_map_[origin.host()]--;
+ reservation_map_[origin]--;
found_reservation = true;
}
@@ -102,19 +101,30 @@ void BudgetManager::Consume(const url::Origin& origin,
// If there wasn't a reservation already, try to directly consume budget.
// The callback will return directly to the caller.
- db_.SpendBudget(origin, GetCost(type), callback);
+ db_.SpendBudget(origin, GetCost(type),
+ base::Bind(&BudgetManager::DidConsume,
+ weak_ptr_factory_.GetWeakPtr(), callback));
}
-void BudgetManager::DidReserve(const url::Origin& origin,
- blink::mojom::BudgetOperationType type,
- const ReserveCallback& callback,
+void BudgetManager::DidConsume(const ConsumeCallback& callback,
+ blink::mojom::BudgetServiceErrorType error,
bool success) {
- if (!success) {
- callback.Run(false);
+ // The caller of Consume only cares whether it succeeded or failed and not
+ // why. So, only return a combined bool.
+ if (error != blink::mojom::BudgetServiceErrorType::NONE) {
+ callback.Run(false /* success */);
return;
}
+ callback.Run(success);
+}
+
+void BudgetManager::DidReserve(const url::Origin& origin,
+ const ReserveCallback& callback,
+ blink::mojom::BudgetServiceErrorType error,
+ bool success) {
+ // If the call succeeded, write the new reservation into the map.
+ if (success && error == blink::mojom::BudgetServiceErrorType::NONE)
+ reservation_map_[origin]++;
- // Write the new reservation into the map.
- reservation_map_[origin.host()]++;
- callback.Run(true);
+ callback.Run(error, success);
}
« no previous file with comments | « chrome/browser/budget_service/budget_manager.h ('k') | chrome/browser/budget_service/budget_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698