| 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/data_use_tab_model.h" | 5 #include "chrome/browser/android/data_usage/data_use_tab_model.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/metrics/histogram_macros.h" | 9 #include "base/metrics/histogram_macros.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 DataUseTabModel::~DataUseTabModel() { | 142 DataUseTabModel::~DataUseTabModel() { |
| 143 DCHECK(thread_checker_.CalledOnValidThread()); | 143 DCHECK(thread_checker_.CalledOnValidThread()); |
| 144 } | 144 } |
| 145 | 145 |
| 146 base::WeakPtr<DataUseTabModel> DataUseTabModel::GetWeakPtr() { | 146 base::WeakPtr<DataUseTabModel> DataUseTabModel::GetWeakPtr() { |
| 147 DCHECK(thread_checker_.CalledOnValidThread()); | 147 DCHECK(thread_checker_.CalledOnValidThread()); |
| 148 return weak_factory_.GetWeakPtr(); | 148 return weak_factory_.GetWeakPtr(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 void DataUseTabModel::InitOnUIThread( | 151 void DataUseTabModel::InitOnUIThread( |
| 152 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, | 152 const ExternalDataUseObserverBridge* external_data_use_observer_bridge) { |
| 153 const base::WeakPtr<ExternalDataUseObserver>& external_data_use_observer) { | |
| 154 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 153 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| 155 DCHECK(thread_checker_.CalledOnValidThread()); | 154 DCHECK(thread_checker_.CalledOnValidThread()); |
| 156 DCHECK(io_task_runner); | 155 DCHECK(external_data_use_observer_bridge); |
| 157 | 156 |
| 158 tick_clock_.reset(new base::DefaultTickClock()); | 157 tick_clock_.reset(new base::DefaultTickClock()); |
| 159 data_use_matcher_.reset(new DataUseMatcher( | 158 data_use_matcher_.reset( |
| 160 GetWeakPtr(), io_task_runner, external_data_use_observer, | 159 new DataUseMatcher(GetWeakPtr(), external_data_use_observer_bridge, |
| 161 GetDefaultMatchingRuleExpirationDuration())); | 160 GetDefaultMatchingRuleExpirationDuration())); |
| 162 } | 161 } |
| 163 | 162 |
| 164 void DataUseTabModel::OnNavigationEvent(SessionID::id_type tab_id, | 163 void DataUseTabModel::OnNavigationEvent(SessionID::id_type tab_id, |
| 165 TransitionType transition, | 164 TransitionType transition, |
| 166 const GURL& url, | 165 const GURL& url, |
| 167 const std::string& package) { | 166 const std::string& package) { |
| 168 DCHECK(thread_checker_.CalledOnValidThread()); | 167 DCHECK(thread_checker_.CalledOnValidThread()); |
| 169 DCHECK(IsValidTabID(tab_id)); | 168 DCHECK(IsValidTabID(tab_id)); |
| 170 std::string current_label, new_label; | 169 std::string current_label, new_label; |
| 171 bool is_package_match; | 170 bool is_package_match; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 if (!is_control_app_installed_) | 257 if (!is_control_app_installed_) |
| 259 return; | 258 return; |
| 260 data_use_matcher_->RegisterURLRegexes(app_package_name, domain_path_regex, | 259 data_use_matcher_->RegisterURLRegexes(app_package_name, domain_path_regex, |
| 261 label); | 260 label); |
| 262 } | 261 } |
| 263 | 262 |
| 264 void DataUseTabModel::OnControlAppInstallStateChange( | 263 void DataUseTabModel::OnControlAppInstallStateChange( |
| 265 bool is_control_app_installed) { | 264 bool is_control_app_installed) { |
| 266 DCHECK(thread_checker_.CalledOnValidThread()); | 265 DCHECK(thread_checker_.CalledOnValidThread()); |
| 267 DCHECK_NE(is_control_app_installed_, is_control_app_installed); | 266 DCHECK_NE(is_control_app_installed_, is_control_app_installed); |
| 267 DCHECK(data_use_matcher_); |
| 268 | 268 |
| 269 is_control_app_installed_ = is_control_app_installed; | 269 is_control_app_installed_ = is_control_app_installed; |
| 270 std::vector<std::string> empty; | 270 std::vector<std::string> empty; |
| 271 if (!is_control_app_installed_) { | 271 if (!is_control_app_installed_) { |
| 272 // Clear rules. | 272 // Clear rules. |
| 273 data_use_matcher_->RegisterURLRegexes(empty, empty, empty); | 273 data_use_matcher_->RegisterURLRegexes(empty, empty, empty); |
| 274 } else { | 274 } else { |
| 275 // Fetch the matching rules when the app is installed. | 275 // Fetch the matching rules when the app is installed. |
| 276 data_use_matcher_->FetchMatchingRules(); | 276 data_use_matcher_->FetchMatchingRules(); |
| 277 } | 277 } |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 NowTicks() - | 455 NowTicks() - |
| 456 oldest_tab_entry_iterator->second.GetLatestStartOrEndTime(), | 456 oldest_tab_entry_iterator->second.GetLatestStartOrEndTime(), |
| 457 base::TimeDelta::FromMinutes(1), base::TimeDelta::FromHours(1), 50); | 457 base::TimeDelta::FromMinutes(1), base::TimeDelta::FromHours(1), 50); |
| 458 active_tabs_.erase(oldest_tab_entry_iterator); | 458 active_tabs_.erase(oldest_tab_entry_iterator); |
| 459 } | 459 } |
| 460 } | 460 } |
| 461 | 461 |
| 462 } // namespace android | 462 } // namespace android |
| 463 | 463 |
| 464 } // namespace chrome | 464 } // namespace chrome |
| OLD | NEW |