| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |