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

Unified Diff: chrome/browser/metrics/tab_usage_recorder.cc

Issue 2488743005: Add the Tab.TimeToReactivation metric to TabUsageRecorder (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/tab_usage_recorder.cc
diff --git a/chrome/browser/metrics/tab_usage_recorder.cc b/chrome/browser/metrics/tab_usage_recorder.cc
index ed9a3fdf126b56c750102a236ba462528a8dc7c6..6840b06d0d4aebe9535e9faca57f46d5b975df12 100644
--- a/chrome/browser/metrics/tab_usage_recorder.cc
+++ b/chrome/browser/metrics/tab_usage_recorder.cc
@@ -5,9 +5,8 @@
#include "chrome/browser/metrics/tab_usage_recorder.h"
#include "base/metrics/histogram_macros.h"
-#include "chrome/browser/bookmarks/bookmark_model_factory.h"
+#include "base/time/time.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "components/bookmarks/browser/bookmark_model.h"
#include "content/public/browser/web_contents_user_data.h"
#include "content/public/common/page_importance_signals.h"
@@ -17,7 +16,7 @@ namespace metrics {
namespace {
-// This global is never freed.
+// The recorder is never stopped, thus it is ok to leak.
TabUsageRecorder* g_tab_usage_recorder = nullptr;
} // namespace
@@ -39,15 +38,14 @@ class TabUsageRecorder::WebContentsData
explicit WebContentsData(content::WebContents* contents);
- // Returns true if |contents_|'s URL is bookmarked.
- bool IsBookmarked();
-
// The WebContents associated to this instance.
content::WebContents* contents_;
// Indicates if the tab is pinned to the tab strip.
bool is_pinned_;
+ base::TimeTicks last_inactive_time_;
+
DISALLOW_COPY_AND_ASSIGN(WebContentsData);
};
@@ -62,29 +60,33 @@ TabUsageRecorder::WebContentsData::WebContentsData(
content::WebContents* contents)
: contents_(contents), is_pinned_(false) {}
-bool TabUsageRecorder::WebContentsData::IsBookmarked() {
- bookmarks::BookmarkModel* bookmark_model =
- BookmarkModelFactory::GetForBrowserContextIfExists(
- contents_->GetBrowserContext());
-
- return bookmark_model &&
- bookmark_model->IsBookmarked(contents_->GetLastCommittedURL());
-}
-
void TabUsageRecorder::WebContentsData::RecordTabDeactivation() {
+ last_inactive_time_ = base::TimeTicks::Now();
UMA_HISTOGRAM_BOOLEAN("Tab.Deactivation.Pinned", is_pinned_);
UMA_HISTOGRAM_BOOLEAN(
"Tab.Deactivation.HadFormInteraction",
contents_->GetPageImportanceSignals().had_form_interaction);
- UMA_HISTOGRAM_BOOLEAN("Tab.Deactivation.Bookmarked", IsBookmarked());
}
void TabUsageRecorder::WebContentsData::RecordTabReactivation() {
+ bool had_form_interaction =
+ contents_->GetPageImportanceSignals().had_form_interaction;
+
UMA_HISTOGRAM_BOOLEAN("Tab.Reactivation.Pinned", is_pinned_);
- UMA_HISTOGRAM_BOOLEAN(
- "Tab.Reactivation.HadFormInteraction",
- contents_->GetPageImportanceSignals().had_form_interaction);
- UMA_HISTOGRAM_BOOLEAN("Tab.Reactivation.Bookmarked", IsBookmarked());
+ UMA_HISTOGRAM_BOOLEAN("Tab.Reactivation.HadFormInteraction",
+ had_form_interaction);
+
+ base::TimeDelta time_to_reactivation =
+ base::TimeTicks::Now() - last_inactive_time_;
+ if (is_pinned_ || had_form_interaction) {
+ UMA_HISTOGRAM_CUSTOM_TIMES(
+ "Tab.TimeToReactivation.Important", time_to_reactivation,
+ base::TimeDelta::FromSeconds(1), base::TimeDelta::FromHours(2), 100);
+ } else {
+ UMA_HISTOGRAM_CUSTOM_TIMES(
+ "Tab.TimeToReactivation.Normal", time_to_reactivation,
+ base::TimeDelta::FromSeconds(1), base::TimeDelta::FromHours(2), 100);
+ }
}
// static
@@ -105,7 +107,7 @@ void TabUsageRecorder::TabInsertedAt(TabStripModel* tab_strip_model,
content::WebContents* contents,
int index,
bool foreground) {
- // Set the initial pinned value.
+ // Set the initial pin state.
TabPinnedStateChanged(tab_strip_model, contents, index);
}
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698