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 e47c9c563fb2c24031df90bc74c4575df06f71f9..7e07480342e5da6dbe94d16863a9dc0249b60599 100644 |
--- a/chrome/browser/budget_service/budget_manager.cc |
+++ b/chrome/browser/budget_service/budget_manager.cc |
@@ -74,7 +74,9 @@ void BudgetManager::GetBudget(const url::Origin& origin, |
std::vector<blink::mojom::BudgetStatePtr>()); |
return; |
} |
- db_.GetBudgetDetails(origin, callback); |
+ db_.GetBudgetDetails(origin, |
+ base::Bind(&BudgetManager::DidGetBudget, |
+ weak_ptr_factory_.GetWeakPtr(), callback)); |
} |
void BudgetManager::Reserve(const url::Origin& origin, |
@@ -122,6 +124,20 @@ void BudgetManager::Consume(const url::Origin& origin, |
weak_ptr_factory_.GetWeakPtr(), callback)); |
} |
+void BudgetManager::DidGetBudget( |
+ const GetBudgetCallback& callback, |
+ const blink::mojom::BudgetServiceErrorType error, |
+ std::vector<blink::mojom::BudgetStatePtr> budget) { |
+ // If there was an error, just record a budget of 0, so the API query is still |
+ // counted. |
+ double budget_at = 0; |
+ if (error == blink::mojom::BudgetServiceErrorType::NONE) |
+ budget_at = budget[0]->budget_at; |
+ UMA_HISTOGRAM_COUNTS_100("Blink.BudgetAPI.QueryBudget", budget_at); |
+ |
+ callback.Run(error, std::move(budget)); |
+} |
+ |
void BudgetManager::DidConsume(const ConsumeCallback& callback, |
blink::mojom::BudgetServiceErrorType error, |
bool success) { |
@@ -142,5 +158,7 @@ void BudgetManager::DidReserve(const url::Origin& origin, |
if (success && error == blink::mojom::BudgetServiceErrorType::NONE) |
reservation_map_[origin]++; |
+ UMA_HISTOGRAM_BOOLEAN("Blink.BudgetAPI.Reserve", success); |
+ |
callback.Run(error, success); |
} |