Chromium Code Reviews| Index: chrome/browser/android/data_usage/data_use_tab_model.cc |
| diff --git a/chrome/browser/android/data_usage/data_use_tab_model.cc b/chrome/browser/android/data_usage/data_use_tab_model.cc |
| index 1b27aaf77da6a3bc53439110e8c9817700459382..796383fe5c282ba2d614f04be999a494c8093bde 100644 |
| --- a/chrome/browser/android/data_usage/data_use_tab_model.cc |
| +++ b/chrome/browser/android/data_usage/data_use_tab_model.cc |
| @@ -6,8 +6,8 @@ |
| #include <stdint.h> |
| +#include "base/bind.h" |
| #include "base/metrics/histogram_macros.h" |
| -#include "base/single_thread_task_runner.h" |
| #include "base/strings/string16.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| @@ -17,7 +17,6 @@ |
| #include "chrome/browser/android/data_usage/data_use_matcher.h" |
| #include "chrome/browser/android/data_usage/external_data_use_observer.h" |
| #include "components/variations/variations_associated_data.h" |
| -#include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/navigation_entry.h" |
| #include "url/gurl.h" |
| @@ -137,14 +136,24 @@ namespace android { |
| const char DataUseTabModel::kDefaultTag[] = "ChromeTab"; |
| const char DataUseTabModel::kCustomTabTag[] = "ChromeCustomTab"; |
| -DataUseTabModel::DataUseTabModel() |
| +DataUseTabModel::DataUseTabModel( |
| + const base::Closure& fetch_matching_rules_callback, |
| + const base::Callback<void(bool)>& on_matching_rules_fetched_callback) |
| : max_tab_entries_(GetMaxTabEntries()), |
| max_sessions_per_tab_(GetMaxSessionsPerTab()), |
| closed_tab_expiration_duration_(GetClosedTabExpirationDuration()), |
| open_tab_expiration_duration_(GetOpenTabExpirationDuration()), |
| + tick_clock_(new base::DefaultTickClock()), |
| + fetch_matching_rules_callback_(fetch_matching_rules_callback), |
| is_ready_for_navigation_event_(false), |
| is_control_app_installed_(false), |
| weak_factory_(this) { |
| + DCHECK(fetch_matching_rules_callback); |
|
tbansal1
2016/07/19 17:59:32
DCHECK the local variables.
Raj
2016/07/19 21:29:08
Done.
|
| + DCHECK(on_matching_rules_fetched_callback); |
| + data_use_matcher_.reset(new DataUseMatcher( |
| + base::Bind(&DataUseTabModel::OnTrackingLabelRemoved, GetWeakPtr()), |
| + on_matching_rules_fetched_callback, |
| + GetDefaultMatchingRuleExpirationDuration())); |
| // Detach from current thread since rest of DataUseTabModel lives on the UI |
| // thread and the current thread may not be UI thread.. |
| thread_checker_.DetachFromThread(); |
| @@ -159,18 +168,6 @@ base::WeakPtr<DataUseTabModel> DataUseTabModel::GetWeakPtr() { |
| return weak_factory_.GetWeakPtr(); |
| } |
| -void DataUseTabModel::InitOnUIThread( |
| - const ExternalDataUseObserverBridge* external_data_use_observer_bridge) { |
| - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| - DCHECK(external_data_use_observer_bridge); |
| - |
| - tick_clock_.reset(new base::DefaultTickClock()); |
| - data_use_matcher_.reset( |
| - new DataUseMatcher(GetWeakPtr(), external_data_use_observer_bridge, |
| - GetDefaultMatchingRuleExpirationDuration())); |
| -} |
| - |
| void DataUseTabModel::OnNavigationEvent( |
| SessionID::id_type tab_id, |
| TransitionType transition, |
| @@ -185,7 +182,7 @@ void DataUseTabModel::OnNavigationEvent( |
| bool is_package_match; |
| if (is_control_app_installed_ && !data_use_matcher_->HasRules()) |
| - data_use_matcher_->FetchMatchingRules(); |
| + fetch_matching_rules_callback_.Run(); |
| GetCurrentAndNewLabelForNavigationEvent(tab_id, transition, url, package, |
| navigation_entry, ¤t_label, |
| @@ -218,7 +215,7 @@ void DataUseTabModel::OnTabCloseEvent(SessionID::id_type tab_id) { |
| tab_entry.OnTabCloseEvent(); |
| } |
| -void DataUseTabModel::OnTrackingLabelRemoved(std::string label) { |
| +void DataUseTabModel::OnTrackingLabelRemoved(const std::string& label) { |
| for (auto& tab_entry : active_tabs_) |
| tab_entry.second.EndTrackingWithLabel(label); |
| } |
| @@ -311,7 +308,7 @@ void DataUseTabModel::OnControlAppInstallStateChange( |
| } |
| } else { |
| // Fetch the matching rules when the app is installed. |
| - data_use_matcher_->FetchMatchingRules(); |
| + fetch_matching_rules_callback_.Run(); |
| } |
| } |