Chromium Code Reviews| Index: chrome/browser/android/data_usage/data_use_ui_tab_model.cc |
| diff --git a/chrome/browser/android/data_usage/data_use_ui_tab_model.cc b/chrome/browser/android/data_usage/data_use_ui_tab_model.cc |
| index 181741218f219a9cb937af00556c715a66c4af69..a271215885ad0a4c993ee6c4c1264520f1026998 100644 |
| --- a/chrome/browser/android/data_usage/data_use_ui_tab_model.cc |
| +++ b/chrome/browser/android/data_usage/data_use_ui_tab_model.cc |
| @@ -61,8 +61,8 @@ void DataUseUITabModel::ReportTabClosure(SessionID::id_type tab_id) { |
| void DataUseUITabModel::ReportCustomTabInitialNavigation( |
| SessionID::id_type tab_id, |
| - const std::string& url, |
| - const std::string& package_name) { |
| + const std::string& package_name, |
| + const std::string& url) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| if (tab_id <= 0) |
| @@ -89,6 +89,8 @@ base::WeakPtr<DataUseUITabModel> DataUseUITabModel::GetWeakPtr() { |
| void DataUseUITabModel::NotifyTrackingStarting(SessionID::id_type tab_id) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| + RemoveTabEvent(tab_id, DATA_USE_CONTINUE_CLICKED); |
|
megjablon
2015/12/18 20:17:53
Add comment why this is here.
tbansal1
2015/12/18 21:35:37
Done.
|
| + |
| if (MaybeCreateTabEvent(tab_id, DATA_USE_TRACKING_STARTED)) |
| return; |
| // Since tracking started before the UI could indicate that it ended, it is |
| @@ -104,6 +106,10 @@ void DataUseUITabModel::NotifyTrackingEnding(SessionID::id_type tab_id) { |
| // Since tracking ended before the UI could indicate that it stated, it is not |
| // useful for UI to show that it ended. |
| RemoveTabEvent(tab_id, DATA_USE_TRACKING_STARTED); |
| + |
| + // If the user clicked "Continue" before this navigation, then we do not need |
| + // to show another UI on this tab. |
| + RemoveTabEvent(tab_id, DATA_USE_CONTINUE_CLICKED); |
|
megjablon
2015/12/18 20:17:53
Won't MaybeCreateTabEvent create the event and ret
tbansal1
2015/12/18 21:35:37
Added comments in the file. Done.
If the state wa
|
| } |
| bool DataUseUITabModel::HasDataUseTrackingStarted(SessionID::id_type tab_id) { |
| @@ -116,6 +122,39 @@ bool DataUseUITabModel::HasDataUseTrackingStarted(SessionID::id_type tab_id) { |
| return RemoveTabEvent(tab_id, DATA_USE_TRACKING_STARTED); |
| } |
| +bool DataUseUITabModel::WouldDataUseTrackingEnd( |
| + const std::string& url, |
| + int page_transition, |
| + SessionID::id_type tab_id) const { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + |
| + TabEvents::const_iterator it = tab_events_.find(tab_id); |
| + |
| + if (it != tab_events_.end() && it->second == DATA_USE_CONTINUE_CLICKED) |
| + return false; |
| + |
| + DataUseTabModel::TransitionType transition_type; |
| + |
| + if (!ConvertTransitionType(ui::PageTransitionFromInt(page_transition), |
| + &transition_type)) { |
| + return false; |
| + } |
| + |
| + // TODO(tbansal): Hook up to DataUseTabModel, and add tests. |
| + return false; |
| +} |
| + |
| +void DataUseUITabModel::UserClickedContinueOnDialogBox( |
| + SessionID::id_type tab_id) { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + |
| + TabEvents::iterator it = tab_events_.find(tab_id); |
| + if (it != tab_events_.end()) |
| + tab_events_.erase(it); |
| + |
| + MaybeCreateTabEvent(tab_id, DATA_USE_CONTINUE_CLICKED); |
| +} |
| + |
| bool DataUseUITabModel::HasDataUseTrackingEnded(SessionID::id_type tab_id) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| @@ -136,7 +175,9 @@ bool DataUseUITabModel::RemoveTabEvent(SessionID::id_type tab_id, |
| DataUseTrackingEvent event) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| TabEvents::iterator it = tab_events_.find(tab_id); |
| - DCHECK(it != tab_events_.end()); |
| + if (it == tab_events_.end()) |
| + return false; |
| + |
| if (it->second == event) { |
| tab_events_.erase(it); |
| return true; |
| @@ -147,6 +188,8 @@ bool DataUseUITabModel::RemoveTabEvent(SessionID::id_type tab_id, |
| bool DataUseUITabModel::ConvertTransitionType( |
| ui::PageTransition page_transition, |
| DataUseTabModel::TransitionType* transition_type) const { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + |
| if (!ui::PageTransitionIsMainFrame(page_transition) || |
| (((page_transition & ui::PAGE_TRANSITION_CORE_MASK) != |
| ui::PAGE_TRANSITION_RELOAD) && |