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 94b5f9f1d7006bb9717bf0ed7d1d948057b2ddfb..897f9062e65204af43b25ebccd8d93349e5ac735 100644 |
--- a/chrome/browser/budget_service/budget_manager.cc |
+++ b/chrome/browser/budget_service/budget_manager.cc |
@@ -75,10 +75,9 @@ void BudgetManager::Reserve(const GURL& origin, |
const ReserveCallback& callback) { |
DCHECK_EQ(origin, origin.GetOrigin()); |
- 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 GURL& origin, |
@@ -104,19 +103,30 @@ void BudgetManager::Consume(const GURL& 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 GURL& 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 || !success) { |
Peter Beverloo
2016/09/08 17:16:06
Let's remove "!success" from this conditional, so
harkness
2016/09/13 13:41:29
Good point. Updated.
|
+ callback.Run(false /* success */); |
return; |
} |
+ callback.Run(success); |
+} |
+ |
+void BudgetManager::DidReserve(const GURL& 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.spec()]++; |
- // Write the new reservation into the map. |
- reservation_map_[origin.spec()]++; |
- callback.Run(true); |
+ callback.Run(error, success); |
} |