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

Side by Side Diff: chrome/browser/android/data_usage/external_data_use_observer.cc

Issue 1447363006: ExternalDataUseObserver matches package names (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed invalid DCHECK Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/data_usage/external_data_use_observer.h" 5 #include "chrome/browser/android/data_usage/external_data_use_observer.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 base::WeakPtr<ExternalDataUseObserver> ExternalDataUseObserver::GetIOWeakPtr() { 192 base::WeakPtr<ExternalDataUseObserver> ExternalDataUseObserver::GetIOWeakPtr() {
193 return io_weak_factory_.GetWeakPtr(); 193 return io_weak_factory_.GetWeakPtr();
194 } 194 }
195 195
196 base::WeakPtr<ExternalDataUseObserver> ExternalDataUseObserver::GetUIWeakPtr() { 196 base::WeakPtr<ExternalDataUseObserver> ExternalDataUseObserver::GetUIWeakPtr() {
197 return ui_weak_factory_.GetWeakPtr(); 197 return ui_weak_factory_.GetWeakPtr();
198 } 198 }
199 199
200 void ExternalDataUseObserver::OnReportDataUseDoneOnIOThread(bool success) { 200 void ExternalDataUseObserver::OnReportDataUseDoneOnIOThread(bool success) {
201 DCHECK(thread_checker_.CalledOnValidThread()); 201 DCHECK(thread_checker_.CalledOnValidThread());
202 DCHECK(!buffered_data_reports_.empty());
203 DCHECK(submit_data_report_pending_); 202 DCHECK(submit_data_report_pending_);
204 203
205 // TODO(tbansal): If not successful, record UMA. 204 // TODO(tbansal): If not successful, record UMA.
206 205
207 submit_data_report_pending_ = false; 206 submit_data_report_pending_ = false;
208 207
209 SubmitBufferedDataUseReport(); 208 SubmitBufferedDataUseReport();
210 } 209 }
211 210
212 void ExternalDataUseObserver::OnDataUse( 211 void ExternalDataUseObserver::OnDataUse(
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 } 378 }
380 379
381 bool ExternalDataUseObserver::Matches(const GURL& gurl, 380 bool ExternalDataUseObserver::Matches(const GURL& gurl,
382 std::string* label) const { 381 std::string* label) const {
383 DCHECK(thread_checker_.CalledOnValidThread()); 382 DCHECK(thread_checker_.CalledOnValidThread());
384 *label = ""; 383 *label = "";
385 384
386 if (!gurl.is_valid() || gurl.is_empty()) 385 if (!gurl.is_valid() || gurl.is_empty())
387 return false; 386 return false;
388 387
389 for (size_t i = 0; i < matching_rules_.size(); ++i) { 388 for (const auto* matching_rule : matching_rules_) {
390 const re2::RE2* pattern = matching_rules_[i]->pattern(); 389 const re2::RE2* pattern = matching_rule->pattern();
391 if (re2::RE2::FullMatch(gurl.spec(), *pattern)) { 390 if (re2::RE2::FullMatch(gurl.spec(), *pattern)) {
392 *label = matching_rules_[i]->label(); 391 *label = matching_rule->label();
393 return true; 392 return true;
394 } 393 }
395 } 394 }
395
396 return false;
397 }
398
399 bool ExternalDataUseObserver::MatchesAppPackageName(
400 const std::string& app_package_name,
401 std::string* label) const {
402 DCHECK(thread_checker_.CalledOnValidThread());
403 *label = "";
404
405 if (app_package_name.empty())
406 return false;
407
408 for (const auto* matching_rule : matching_rules_) {
409 if (app_package_name == matching_rule->app_package_name()) {
410 *label = matching_rule->label();
411 return true;
412 }
413 }
396 414
397 return false; 415 return false;
398 } 416 }
399 417
400 ExternalDataUseObserver::DataUseReportKey::DataUseReportKey( 418 ExternalDataUseObserver::DataUseReportKey::DataUseReportKey(
401 const std::string& label, 419 const std::string& label,
402 net::NetworkChangeNotifier::ConnectionType connection_type, 420 net::NetworkChangeNotifier::ConnectionType connection_type,
403 const std::string& mcc_mnc) 421 const std::string& mcc_mnc)
404 : label(label), connection_type(connection_type), mcc_mnc(mcc_mnc) {} 422 : label(label), connection_type(connection_type), mcc_mnc(mcc_mnc) {}
405 423
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 : app_package_name_(app_package_name), 461 : app_package_name_(app_package_name),
444 pattern_(pattern.Pass()), 462 pattern_(pattern.Pass()),
445 label_(label) {} 463 label_(label) {}
446 464
447 ExternalDataUseObserver::MatchingRule::~MatchingRule() {} 465 ExternalDataUseObserver::MatchingRule::~MatchingRule() {}
448 466
449 const re2::RE2* ExternalDataUseObserver::MatchingRule::pattern() const { 467 const re2::RE2* ExternalDataUseObserver::MatchingRule::pattern() const {
450 return pattern_.get(); 468 return pattern_.get();
451 } 469 }
452 470
471 const std::string& ExternalDataUseObserver::MatchingRule::app_package_name()
472 const {
473 return app_package_name_;
474 }
475
453 const std::string& ExternalDataUseObserver::MatchingRule::label() const { 476 const std::string& ExternalDataUseObserver::MatchingRule::label() const {
454 return label_; 477 return label_;
455 } 478 }
456 479
457 bool RegisterExternalDataUseObserver(JNIEnv* env) { 480 bool RegisterExternalDataUseObserver(JNIEnv* env) {
458 return RegisterNativesImpl(env); 481 return RegisterNativesImpl(env);
459 } 482 }
460 483
461 } // namespace android 484 } // namespace android
462 485
463 } // namespace chrome 486 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698