Index: chrome/browser/android/data_usage/external_data_use_observer.cc |
diff --git a/chrome/browser/android/data_usage/external_data_use_observer.cc b/chrome/browser/android/data_usage/external_data_use_observer.cc |
index 23ecc6dd3857d1736a394cdb298952d6bd2f3f43..65283e08f9f27aa36e4f5f0b68e18ace6df312b3 100644 |
--- a/chrome/browser/android/data_usage/external_data_use_observer.cc |
+++ b/chrome/browser/android/data_usage/external_data_use_observer.cc |
@@ -199,7 +199,6 @@ base::WeakPtr<ExternalDataUseObserver> ExternalDataUseObserver::GetUIWeakPtr() { |
void ExternalDataUseObserver::OnReportDataUseDoneOnIOThread(bool success) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- DCHECK(!buffered_data_reports_.empty()); |
DCHECK(submit_data_report_pending_); |
// TODO(tbansal): If not successful, record UMA. |
@@ -386,10 +385,29 @@ bool ExternalDataUseObserver::Matches(const GURL& gurl, |
if (!gurl.is_valid() || gurl.is_empty()) |
return false; |
- for (size_t i = 0; i < matching_rules_.size(); ++i) { |
- const re2::RE2* pattern = matching_rules_[i]->pattern(); |
+ for (const auto* matching_rule : matching_rules_) { |
+ const re2::RE2* pattern = matching_rule->pattern(); |
if (re2::RE2::FullMatch(gurl.spec(), *pattern)) { |
- *label = matching_rules_[i]->label(); |
+ *label = matching_rule->label(); |
+ return true; |
+ } |
+ } |
+ |
+ return false; |
+} |
+ |
+bool ExternalDataUseObserver::MatchesAppPackageName( |
+ const std::string& app_package_name, |
+ std::string* label) const { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ *label = ""; |
+ |
+ if (app_package_name.empty()) |
+ return false; |
+ |
+ for (const auto* matching_rule : matching_rules_) { |
+ if (app_package_name == matching_rule->app_package_name()) { |
+ *label = matching_rule->label(); |
return true; |
} |
} |
@@ -450,6 +468,11 @@ const re2::RE2* ExternalDataUseObserver::MatchingRule::pattern() const { |
return pattern_.get(); |
} |
+const std::string& ExternalDataUseObserver::MatchingRule::app_package_name() |
+ const { |
+ return app_package_name_; |
+} |
+ |
const std::string& ExternalDataUseObserver::MatchingRule::label() const { |
return label_; |
} |