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 |