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) && |