Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: chrome/browser/android/data_usage/data_use_ui_tab_model.cc

Issue 1539763004: Miscellaneous fixes to DataUse UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) &&

Powered by Google App Engine
This is Rietveld 408576698