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

Unified Diff: base/android/java/src/org/chromium/base/metrics/CachedMetrics.java

Issue 2439113002: Reland "Move Java CachedMetrics functionality to base/." (Closed)
Patch Set: Add missing CachedMetrics class - unchanged from original CL. Created 4 years, 2 months 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: base/android/java/src/org/chromium/base/metrics/CachedMetrics.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/base/android/java/src/org/chromium/base/metrics/CachedMetrics.java
similarity index 53%
copy from chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
copy to base/android/java/src/org/chromium/base/metrics/CachedMetrics.java
index ad58bb1a954194773eff9d105fe75756fca1eb21..f57dba23e14f10bb6bd124823171ceafcd5cb26b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
+++ b/base/android/java/src/org/chromium/base/metrics/CachedMetrics.java
@@ -1,29 +1,21 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package org.chromium.chrome.browser.metrics;
+package org.chromium.base.metrics;
-import android.util.Pair;
-
-import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.content_public.browser.WebContents;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
- * Used for recording metrics about Chrome launches that need to be recorded before the native
- * library may have been loaded. Metrics are cached until the library is known to be loaded, then
- * committed to the MetricsService all at once.
+ * Utility classes for recording UMA metrics before the native library
+ * may have been loaded. Metrics are cached until the library is known
+ * to be loaded, then committed to the MetricsService all at once.
*/
-@JNINamespace("metrics")
-public class LaunchMetrics {
-
+public class CachedMetrics {
/**
* Creating an instance of a subclass of this class automatically adds it to a list of objects
* that are committed when the native library is available.
@@ -167,81 +159,11 @@ public class LaunchMetrics {
}
}
- // Each list item is a pair of the url and where it was added from e.g. from the add to
- // homescreen menu item, an app banner, or unknown. The mapping of int source values to
- // their string names is found in the C++ ShortcutInfo struct.
- private static final List<Pair<String, Integer>> sActivityUrls =
- new ArrayList<Pair<String, Integer>>();
- private static final List<Pair<String, Integer>> sTabUrls =
- new ArrayList<Pair<String, Integer>>();
-
- private static final List<Long> sWebappHistogramTimes = new ArrayList<Long>();
-
- /**
- * Records the launch of a standalone Activity for a URL (i.e. a WebappActivity)
- * added from a specific source.
- * @param url URL that kicked off the Activity's creation.
- * @param source integer id of the source from where the URL was added.
- */
- public static void recordHomeScreenLaunchIntoStandaloneActivity(String url, int source) {
- sActivityUrls.add(new Pair<String, Integer>(url, source));
- }
-
- /**
- * Records the launch of a Tab for a URL (i.e. a Home screen shortcut).
- * @param url URL that kicked off the Tab's creation.
- * @param source integer id of the source from where the URL was added.
- */
- public static void recordHomeScreenLaunchIntoTab(String url, int source) {
- sTabUrls.add(new Pair<String, Integer>(url, source));
- }
-
- /**
- * Records the time it took to look up from disk whether a MAC is valid during webapp startup.
- * @param time the number of milliseconds it took to finish.
- */
- public static void recordWebappHistogramTimes(long time) {
- sWebappHistogramTimes.add(time);
- }
-
/**
- * Calls out to native code to record URLs that have been launched via the Home screen.
- * This intermediate step is necessary because Activity.onCreate() may be called when
- * the native library has not yet been loaded.
- * @param webContents WebContents for the current Tab.
+ * Calls out to native code to commit any cached histograms and events.
+ * Should be called once the native library has been loaded.
*/
- public static void commitLaunchMetrics(WebContents webContents) {
- for (Pair<String, Integer> item : sActivityUrls) {
- nativeRecordLaunch(true, item.first, item.second, webContents);
- }
- sActivityUrls.clear();
-
- for (Pair<String, Integer> item : sTabUrls) {
- nativeRecordLaunch(false, item.first, item.second, webContents);
- }
- sTabUrls.clear();
-
- // Record generic cached events.
+ public static void commitCachedMetrics() {
for (CachedHistogram event : CachedHistogram.sEvents) event.commitAndClear();
}
-
- /**
- * Records metrics about the state of the homepage on launch.
- * @param showHomeButton Whether the home button is shown.
- * @param homepageIsNtp Whether the homepage is set to the NTP.
- * @param homepageUrl The value of the homepage URL.
- */
- public static void recordHomePageLaunchMetrics(
- boolean showHomeButton, boolean homepageIsNtp, String homepageUrl) {
- if (homepageUrl == null) {
- homepageUrl = "";
- assert !showHomeButton : "Homepage should be disabled for a null URL";
- }
- nativeRecordHomePageLaunchMetrics(showHomeButton, homepageIsNtp, homepageUrl);
- }
-
- private static native void nativeRecordLaunch(
- boolean standalone, String url, int source, WebContents webContents);
- private static native void nativeRecordHomePageLaunchMetrics(
- boolean showHomeButton, boolean homepageIsNtp, String homepageUrl);
}
« no previous file with comments | « base/BUILD.gn ('k') | chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabBottomBarDelegate.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698