Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java |
index deb2e7d7807ebc83e011f1acd829cac174e46c65..d6c08f6b24a7793441f6e904024c05e3a27e1044 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java |
@@ -16,6 +16,8 @@ import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
import org.chromium.chrome.browser.rappor.RapporServiceBridge; |
import org.chromium.chrome.browser.tab.EmptyTabObserver; |
import org.chromium.chrome.browser.tab.Tab; |
+import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; |
+import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
import org.chromium.chrome.browser.util.UrlUtilities; |
import org.chromium.content_public.browser.LoadUrlParams; |
import org.chromium.ui.base.PageTransition; |
@@ -266,6 +268,15 @@ public final class NewTabPageUma { |
} |
/** |
+ * Records how often new tabs with a NewTabPage are created. This helps to determine how often |
+ * users navigate back to already opened NTPs. |
+ * @param tabModelSelector Model selector controlling the creation of new tabs. |
+ */ |
+ public static void monitorNTPCreation(TabModelSelector tabModelSelector) { |
+ tabModelSelector.addObserver(new TabCreationRecorder()); |
+ } |
+ |
+ /** |
* Records the type of load for the NTP, such as cold or warm start. |
*/ |
public static void recordLoadType(ChromeActivity activity) { |
@@ -308,6 +319,18 @@ public final class NewTabPageUma { |
} |
/** |
+ * Records the number of new NTPs opened in a new tab. Use through |
+ * {@link NewTabPageUma#monitorNTPCreation(TabModelSelector)}. |
+ */ |
+ private static class TabCreationRecorder extends EmptyTabModelSelectorObserver { |
+ @Override |
+ public void onNewTabCreated(Tab tab) { |
+ if (!NewTabPage.isNTPUrl(tab.getUrl())) return; |
+ RecordUserAction.record("MobileNTPOpenedInNewTab"); |
+ } |
+ } |
+ |
+ /** |
* Records stats related to content suggestion visits, such as the time spent on the website, or |
* if the user comes back to the NTP. Use through |
* {@link NewTabPageUma#monitorContentSuggestionVisit(Tab, int)}. |